diff --git a/.eslintrc b/.eslintrc deleted file mode 100644 index 446859d47..000000000 --- a/.eslintrc +++ /dev/null @@ -1,61 +0,0 @@ -{ - "root": true, - "extends": [ - "eslint:recommended", - "plugin:regexp/recommended" - ], - "ignorePatterns": [ - "**/builds/*" - ], - "env": { - "es6": true, - "browser": true, - "node": true - }, - "parserOptions": { - "ecmaVersion": 2020, - "sourceType": "module" - }, - "rules": { - "comma-dangle": [ - 1, - "only-multiline" - ], - "quotes": [ - 0, - "single", - "avoid-escape" - ], - "max-nested-callbacks": [ - 1, - 4 - ], - "max-params": [ - 1, - 5 - ], - "consistent-return": 1, - "no-bitwise": 1, - "no-empty": 1, - "no-console": 1, - "no-duplicate-imports": 1, - "no-eval": 2, - "no-implied-eval": 2, - "no-mixed-operators": 2, - "no-multi-assign": 2, - "no-nested-ternary": 1, - "no-prototype-builtins": 0, - "no-self-compare": 1, - "no-sequences": 1, - "no-shadow": 2, - "no-unmodified-loop-condition": 1, - "no-use-before-define": 1, - "prefer-const": 0, - "radix": 1, - "no-unused-vars": 1, - "regexp/prefer-d": 0, - "regexp/prefer-w": 0, - "regexp/prefer-range": 0, - "regexp/no-unused-capturing-group": 0 - } -} \ No newline at end of file diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index 2bb331343..e8de29ff1 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -10,7 +10,7 @@ jobs: strategy: matrix: - node-version: [14.x, 18.x] + node-version: [18.x, 22.x] os: [macos-latest, ubuntu-latest, windows-latest] steps: diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index bb51dd12f..284e6bff8 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -19,7 +19,7 @@ jobs: - uses: actions/setup-node@v4 with: - node-version: '16' + node-version: '20' cache: npm - run: npm ci diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index dd53c7eb6..216a41bba 100755 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -23,7 +23,7 @@ jobs: - uses: actions/setup-node@v4 with: - node-version: 16.x + node-version: 20.x cache: npm - name: install diff --git a/.gitignore b/.gitignore index 96df0e9f4..3480f1a3f 100644 --- a/.gitignore +++ b/.gitignore @@ -9,4 +9,11 @@ coverage.lcov codecov.yml plugins/phrases/data/ learn/giga/result/ -.scratch.js \ No newline at end of file +.scratch.js +.eslintrc +.npmignore +.github +.gitignore +LICENSE +package-lock.json +rollup.config.js diff --git a/.jshintrc b/.jshintrc deleted file mode 100644 index c4076b340..000000000 --- a/.jshintrc +++ /dev/null @@ -1,10 +0,0 @@ -{ - "esversion": 8, - "node": true, - "asi": true, - "undef": true, - "-W138": true, - "globals": { - "self": true - } -} \ No newline at end of file diff --git a/README.md b/README.md index ef2554a81..093ffdfed 100644 --- a/README.md +++ b/README.md @@ -68,7 +68,7 @@ and how hard it is to actually parse and use? - @@ -292,11 +292,11 @@ import nlp from 'compromise/one' let doc = nlp("Wayne's World, party time") let data = doc.json() -/* [{ +/* [{ normal:"wayne's world party time", - terms:[{ text: "Wayne's", normal: "wayne" }, + terms:[{ text: "Wayne's", normal: "wayne" }, ... - ] + ] }] */ ``` @@ -717,6 +717,8 @@ _(these methods are on the main `nlp` object)_ - **[.possessives().strip()](https://observablehq.com/@spencermountain/compromise-selections)** - "Spencer's" -> "Spencer" - **[.quotations()](https://observablehq.com/@spencermountain/compromise-selections)** - return any terms inside paired quotation marks - **[.quotations().strip()](https://observablehq.com/@spencermountain/compromise-selections)** - remove quotation marks +- **[.slashes()](https://observablehq.com/@spencermountain/compromise-selections)** - return any terms grouped by slashes + - **[.slashes().split()](https://observablehq.com/@spencermountain/compromise-selections)** - turn 'love/hate' into 'love hate'

@@ -990,7 +992,7 @@ nlpEx('This is type safe!').ngrams({ min: 1 })

-

+

๐Ÿ’ƒ Can it run on my arduino-watch? @@ -1021,13 +1023,13 @@ nlpEx('This is type safe!').ngrams({ min: 1 })

diff --git a/builds/compromise.js b/builds/compromise.js index 0947a6006..29f66ce63 100644 --- a/builds/compromise.js +++ b/builds/compromise.js @@ -1 +1 @@ -var e,t;e=this,t=function(){var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};const 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=t,r={forEach:function(e){return this.fullPointer.forEach(((t,n)=>{let r=this.update([t]);e(r,n)})),this},map:function(e,t){let n=this.fullPointer.map(((t,n)=>{let r=this.update([t]),a=e(r,n);return void 0===a?this.none():a}));if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach((e=>{r=r.concat(e.fullPointer)})),this.toView(r)},filter:function(e){let t=this.fullPointer;return t=t.filter(((t,n)=>{let r=this.update([t]);return e(r,n)})),this.update(t)},find:function(e){let t=this.fullPointer.find(((t,n)=>{let r=this.update([t]);return e(r,n)}));return this.update([t])},some:function(e){return this.fullPointer.some(((t,n)=>{let r=this.update([t]);return e(r,n)}))},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const a={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach((e=>{t[e]=this.update(this._groups[e])})),t},eq:function(e){let t=this.pointer;return t||(t=this.docs.map(((e,t)=>[t]))),t[e]?this.update([t[e]]):this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map(((e,t)=>[t]));return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map((e=>[e[0]]));return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every(((e,t)=>!!n[t]&&e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2]))},wordCount:function(){return this.docs.reduce(((e,t)=>(e+=t.filter((e=>""!==e.text)).length,e)),0)},isFull:function(){let e=this.pointer;if(!e)return!0;if(0===e.length||0!==e[0][0])return!1;let t=0,n=0;return this.document.forEach((e=>t+=e.length)),this.docs.forEach((e=>n+=e.length)),t===n},getNth:function(e){return"number"==typeof e?this.eq(e):"string"==typeof e?this.if(e):this}};a.group=a.groups,a.fullSentence=a.fullSentences,a.sentence=a.fullSentences,a.lastTerm=a.lastTerms,a.firstTerm=a.firstTerms;var o=a;const i=Object.assign({},o,n,r);i.get=i.eq;var s=i;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,r=t||e.map(((e,t)=>[t]));return r.map((e=>{let[t,r,a,o,i]=e;return r=r||0,a=a||(n[t]||[]).length,n[t]&&n[t][r]&&(o=o||n[t][r].id,n[t][a-1]&&(i=i||n[t][a-1].id)),[t,r,a,o,i]}))}update(e){let t=new View(this.document,e);if(this._cache&&e&&e.length>0){let n=[];e.forEach(((e,t)=>{let[r,a,o]=e;(1===e.length||0===a&&this.document[r].length===o)&&(n[t]=this._cache[r])})),n.length>0&&(t._cache=n)}return t.world=this.world,t}toView(e){return new View(this.document,e||this.pointer)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","freeze","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r.compute("unfreeze"),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,s);var l=View;const u=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};function c(e,t){if(u(t))for(const n in t)u(t[n])?(e[n]||Object.assign(e,{[n]:{}}),c(e[n],t[n])):Object.assign(e,{[n]:t[n]});return e}var h=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&&c(o,e.model),e.irregulars&&function(e,t){let n=e.two.models||{};Object.keys(t).forEach((e=>{t[e].pastTense&&(n.toPast&&(n.toPast.ex[e]=t[e].pastTense),n.fromPast&&(n.fromPast.ex[t[e].pastTense]=e)),t[e].presentTense&&(n.toPresent&&(n.toPresent.ex[e]=t[e].presentTense),n.fromPresent&&(n.fromPresent.ex[t[e].presentTense]=e)),t[e].gerund&&(n.toGerund&&(n.toGerund.ex[e]=t[e].gerund),n.fromGerund&&(n.fromGerund.ex[t[e].gerund]=e)),t[e].comparative&&(n.toComparative&&(n.toComparative.ex[e]=t[e].comparative),n.fromComparative&&(n.fromComparative.ex[t[e].comparative]=e)),t[e].superlative&&(n.toSuperlative&&(n.toSuperlative.ex[e]=t[e].superlative),n.fromSuperlative&&(n.fromSuperlative.ex[t[e].superlative]=e))}))}(o,e.irregulars),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.frozen&&r.addWords(e.frozen,!0),e.mutate&&e.mutate(t)};const d=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var m=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(d(e)){if(d(e[0])){let n=e.map((e=>e.map((e=>({text:e,normal:e,pre:"",post:" ",tags:new Set})))));return new t(n)}let n=function(e){return e.map((e=>e.terms.map((e=>(d(e.tags)&&(e.tags=new Set(e.tags)),e)))))}(e);return new t(n)}return a};let p=Object.assign({},e);const f=function(e,t){t&&f.addWords(t);let n=m(e,l,p);return e&&n.compute(p.hooks),n};Object.defineProperty(f,"_world",{value:p,writable:!0}),f.tokenize=function(e,t){const{compute:n}=this._world;t&&f.addWords(t);let r=m(e,l,p);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},f.plugin=function(e){return h(e,this._world,l,this),this},f.extend=f.plugin,f.world=function(){return this._world},f.model=function(){return this._world.model},f.methods=function(){return this._world.methods},f.hooks=function(){return this._world.hooks},f.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},f.version="14.13.0";var v=f,b=function(e){let t=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),A=(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},C=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-โ€“โ€”]/.test(t.post)||(t.post+=" ")},j=(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,"")}},N=function(e,t,n,r){let[a,o,i]=t;0===o||i===r[a].length?C(n):(C(n),C([e[t[1]]])),function(e,t,n){let r=e[t];if(0!==t||!P(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")||P(a.text)&&a.text.length>1&&(a.text=a.text.replace(/^\p{Lu}/u,(e=>e.toLowerCase())))}(e,o,n),A(e,o,n)};let x=0;const I=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var T=function(e){let[t,n]=e.index||[0,0];x+=1,x=x>46655?0:x,t=t>46655?0:t,n=n>1294?0:n;let r=I(x.toString(36));r+=I(t.toString(36));let a=n.toString(36);return a=a.length<2?"0"+a:a,r+=a,r+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+r.toUpperCase()};const D=function(e){e.has("@hasContraction")&&"function"==typeof e.contractions&&e.grow("@hasContraction").contractions().expand()},H=e=>"[object Array]"===Object.prototype.toString.call(e),G=function(e,t,n){const{document:r,world:a}=t;t.uncache();let o=t.fullPointer,i=t.fullPointer;t.forEach(((s,l)=>{let u=s.fullPointer[0],[c]=u,h=r[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]||[]:H(e)?H(e[0])?e[0]:e:[]}(e,a);0!==d.length&&(d=function(e){return e.map((e=>(e.id=T(e),e)))}(d),n?(D(t.update([u]).firstTerm()),N(h,u,d,r)):(D(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);let a=r.docs[0],o=t.possessives&&a[a.length-1].tags.has("Possessive");e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e=e.replace(F,(e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})),e}(e,r);let i=this.update(n);n=n.map((e=>e.slice(0,3)));let s=(i.docs[0]||[]).map((e=>Array.from(e.tags)));if("string"==typeof e&&(e=this.fromText(e).compute("id")),r.insertAfter(e),i.has("@hasContraction")&&r.contractions&&r.grow("@hasContraction+").contractions().expand(),r.delete(i),o){let e=r.docs[0],t=e[e.length-1];t.tags.has("Possessive")||(t.text+="'s",t.normal+="'s",t.tags.add("Possessive"))}let l=r.toView(n).compute(["index","freeze","lexicon"]);return l.world.compute.preTagger&&l.compute("preTagger"),l.compute("unfreeze"),t.tags&&l.terms().forEach(((e,t)=>{e.tagSafe(s[t])})),t.case&&l.docs[0]&&l.docs[0][0]&&0===l.docs[0][0].index[1]&&(l.docs[0][0].text=l.docs[0][0].text.replace(/\w\S*/g,(e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase()))),l},replace:function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let r=this.match(e);return r.found?(this.soften(),r.replaceWith(t,n)):this}};var z=V,B=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 $={remove:function(e){const{indexN:t}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;e&&(n=this,r=this.match(e));let a=!n.ptrs;r.has("@hasContraction")&&r.contractions&&r.grow("@hasContraction").contractions().expand();let o=n.fullPointer,i=r.fullPointer.reverse(),s=B(this.document,i);return o=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})),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)))}(o,t(i)),n.ptrs=o,n.document=s,n.compute("index"),a&&(n.ptrs=void 0),e?n.toView(o):(this.ptrs=[],n.none())}};$.delete=$.remove;var S=$;const K={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}};K.deHyphenate=K.dehyphenate,K.toQuotation=K.toQuotations;var M=K,L={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 J=new Set(["index","sequence","seq","sequential","chron","chronological"]),W=new Set(["freq","frequency","topk","repeats"]),q=new Set(["alpha","alphabetical"]);var U={unique:function(){let e=new Set,t=this.filter((t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)}));return t},reverse:function(){let e=this.pointer||this.docs.map(((e,t)=>[t]));return e=[].concat(e),e=e.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if(this.uncache(),"function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort(((n,r)=>(n=e.update([n]),r=e.update([r]),t(n,r)))),e.ptrs=n,e}(this,e);e=e||"alpha";let r=n||t.map(((e,t)=>[t])),a=t.map(((e,t)=>({index:t,words:e.length,normal:e.map((e=>e.machine||e.normal||"")).join(" "),pointer:r[t]})));return J.has(e)&&(e="sequential"),q.has(e)&&(e="alpha"),W.has(e)?(a=L.byFreq(a),this.update(a.map((e=>e.pointer)))):"function"==typeof L[e]?(a=a.sort(L[e]),this.update(a.map((e=>e.pointer)))):this}};const R=function(e,t){if(e.length>0){let t=e[e.length-1],n=t[t.length-1];!1===/ /.test(n.post)&&(n.post+=" ")}return e=e.concat(t)};var Q={concat:function(e){if("string"==typeof e){let t=this.fromText(e);if(this.found&&this.ptrs){let e=this.fullPointer,n=e[e.length-1][0];this.document.splice(n,0,...t.document)}else this.document=this.document.concat(t.document);return this.all().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=R(e.document,t.docs),e.all()}(this,e);if(t=e,"[object Array]"===Object.prototype.toString.call(t)){let t=R(this.document,e);return this.document=t,this.all()}var t;return this}},_={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 Z=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}},O,z,S,M,U,Q,_);var X=function(e){Object.assign(e.prototype,Z)};const Y={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))),n[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const ae=/'/,oe=new Set(["what","how","when","where","why"]),ie=new Set(["be","go","start","think","need"]),se=new Set(["been","gone"]);var le=function(e,t){let n=e[t].normal.split(ae)[0];if(oe.has(n))return[n,"did"];if(e[t+1]){if(se.has(e[t+1].normal))return[n,"had"];if(ie.has(e[t+1].normal))return[n,"would"]}return null},ue=function(e,t){return"ain't"===e[t].normal||"aint"===e[t].normal?null:[e[t].normal.replace(/n't/,""),"not"]};const ce=/'/,he=/(e|รฉ|aison|sion|tion)$/,de=/(age|isme|acle|ege|oire)$/;var ge=(e,t)=>["je",e[t].normal.split(ce)[1]],me=(e,t)=>{let n=e[t].normal.split(ce)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},pe=(e,t)=>{let n=e[t].normal.split(ce)[1];return n&&he.test(n)&&!de.test(n)?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const fe=/^([0-9.]{1,4}[a-z]{0,2}) ?[-โ€“โ€”] ?([0-9]{1,4}[a-z]{0,2})$/i,ve=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-โ€“โ€”] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,be=/^[0-9]{3}-[0-9]{4}$/;var ye=function(e,t){let n=e[t],r=n.text.match(fe);return null!==r?!0===n.tags.has("PhoneNumber")||be.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(ve),null!==r?[r[1],"to",r[4]]:null)};const we=/^([+-]?[0-9][.,0-9]*)([a-zยฐยฒยณยต/]+)$/;var ke=function(e,t,n){const r=n.model.one.numberSuffixes||{};let a=e[t].text.match(we);if(null!==a){let e=a[2].toLowerCase().trim();return r.hasOwnProperty(e)?null:[a[1],e]}return null};const Pe=/'/,Ae=/^[0-9][^-โ€“โ€”]*[-โ€“โ€”].*?[0-9]/,Ce=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]]},je={t:(e,t)=>ue(e,t),d:(e,t)=>le(e,t)},Ne={j:(e,t)=>ge(e,t),l:(e,t)=>me(e,t),d:(e,t)=>pe(e,t)},xe=function(e,t,n,r){for(let a=0;a2)return o.out.concat(r)}return null},Ie=function(e,t){let n=t.fromText(e.join(" "));return n.compute(["id","alias"]),n.docs[0]},Te=function(e,t){for(let n=t+1;n<5&&e[n];n+=1)if("been"===e[n].normal)return["there","has"];return["there","is"]};var De=e=>{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;if(!0===Pe.test(r[s].normal)){let e=r[s].normal.split(Pe);l=e[0],u=e[1]}let c=xe(o,r[s],l,u);!c&&je.hasOwnProperty(u)&&(c=je[u](r,s,t)),!c&&Ne.hasOwnProperty(l)&&(c=Ne[l](r,s)),"there"===l&&"s"===u&&(c=Te(r,s)),c?(c=Ie(c,e),re(n,[i,s],c),Ce(n[i],e,s,c.length)):Ae.test(r[s].normal)?(c=ye(r,s),c&&(c=Ie(c,e),re(n,[i,s],c),a.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&a.one.setTag([c[0]],"Time",t,null,"time-range"),Ce(n[i],e,s,c.length))):(c=ke(r,s,t),c&&(c=Ie(c,e),re(n,[i,s],c),a.one.setTag([c[1]],"Unit",t,null,"contraction-unit")))}}))},He={model:ne,compute:{contractions:De},hooks:["contractions"]};const Ge=function(e){const t=e.world,{model:n,methods:r}=e.world,a=r.one.setTag,{frozenLex:o}=n.one,i=n.one._multiCache||{};e.docs.forEach((e=>{for(let n=0;nn;r-=1){let i=e.slice(n,r+1),s=i.map((e=>e.machine||e.normal)).join(" ");!0!==o.hasOwnProperty(s)||(a(i,o[s],t,!1,"1-frozen-multi-lexicon"),i.forEach((e=>e.frozen=!0)))}void 0!==o[s]&&o.hasOwnProperty(s)&&(a([r],o[s],t,!1,"1-freeze-lexicon"),r.frozen=!0)}}))},Ee=e=>""+e+"",Oe=e=>""+e+"";var Fe=function(e){e.docs.forEach((e=>{console.log(Ee("\n โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€")),e.forEach((e=>{let t=` ${Oe("โ”‚")} `,n=e.implicit||e.text||"-";!0===e.frozen?t+=`${Ee(n)} โ„๏ธ`:t+=Oe(n),console.log(t)}))}))},Ve={compute:{frozen:Ge,freeze:Ge,unfreeze:function(e){return e.docs.forEach((e=>{e.forEach((e=>{delete e.frozen}))})),e}},mutate:e=>{const t=e.methods.one;t.termMethods.isFrozen=e=>!0===e.frozen,t.debug.freeze=Fe,t.debug.frozen=Fe},api:function(e){e.prototype.freeze=function(){return this.docs.forEach((e=>{e.forEach((e=>{e.frozen=!0}))})),this},e.prototype.unfreeze=function(){this.compute("unfreeze")},e.prototype.isFrozen=function(){return this.match("@isFrozen+")}},hooks:["freeze"]},ze=function(e,t,n){const{model:r,methods:a}=n,o=a.one.setTag,i=r.one._multiCache||{},{lexicon:s}=r.one||{};let l=e[t],u=l.machine||l.normal;if(void 0!==i[u]&&e[t+1]){for(let r=t+i[u]-1;r>t;r-=1){let a=e.slice(t,r+1);if(a.length<=1)return!1;let i=a.map((e=>e.machine||e.normal)).join(" ");if(!0===s.hasOwnProperty(i)){let e=s[i];return o(a,e,n,!1,"1-multi-lexicon"),!e||2!==e.length||"PhrasalVerb"!==e[0]&&"PhrasalVerb"!==e[1]||o([a[1]],"Particle",n,!1,"1-phrasal-particle"),!0}}return!1}return null};const Be=/^(under|over|mis|re|un|dis|semi|pre|post)-?/,$e=new Set(["Verb","Infinitive","PastTense","Gerund","PresentTense","Adjective","Participle"]);var Se=function(e,t,n){const{model:r,methods:a}=n,o=a.one.setTag,{lexicon:i}=r.one;let s=e[t],l=s.machine||s.normal;if(void 0!==i[l]&&i.hasOwnProperty(l))return o([s],i[l],n,!1,"1-lexicon"),!0;if(s.alias){let e=s.alias.find((e=>i.hasOwnProperty(e)));if(e)return o([s],i[e],n,!1,"1-lexicon-alias"),!0}if(!0===Be.test(l)){let e=l.replace(Be,"");if(i.hasOwnProperty(e)&&e.length>3&&$e.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null},Ke={lexicon:function(e){const t=e.world;e.docs.forEach((e=>{for(let n=0;n{let a=e[r],o=(r=(r=r.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);o.length>1&&(void 0===n[o[0]]||o.length>n[o[0]])&&(n[o[0]]=o.length),t[r]=t[r]||a})),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}},Le={addWords:function(e,t=!1){const n=this.world(),{methods:r,model:a}=n;if(!e)return;if(Object.keys(e).forEach((t=>{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))})),!0===t){let{lex:t,_multi:o}=r.one.expandLexicon(e,n);return Object.assign(a.one._multiCache,o),void Object.assign(a.one.frozenLex,t)}if(r.two.expandLexicon){let{lex:t,_multi:o}=r.two.expandLexicon(e,n);Object.assign(a.one.lexicon,t),Object.assign(a.one._multiCache,o)}let{lex:o,_multi:i}=r.one.expandLexicon(e,n);Object.assign(a.one.lexicon,o),Object.assign(a.one._multiCache,i)}},Je={model:{one:{lexicon:{},_multiCache:{},frozenLex:{}}},methods:{one:{expandLexicon:Me}},compute:Ke,lib:Le,hooks:["lexicon"]},We=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;let a=n.one.tokenize.splitTerms(e,r).map((e=>n.one.tokenize.splitWhitespace(e,r)));return a.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 qe=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 Qe=(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 _e=function(e){return e.goNext=e.goNext.map((e=>{if(0!==Object.keys(e).length)return e})),e.goNext=Qe(e.goNext,void 0),e.failTo=Qe(e.failTo,0),e.endAs=Qe(e.endAs,null),e};const Ze={buildTrie:function(e){const t=We(e,this.world());return _e(t)}};Ze.compile=Ze.buildTrie;var Xe={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:We(e,this.world));var r;let a=Re(this,n,t);return a=a.settle(),a}},lib:Ze};const Ye=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},et=function(e,t){let{ptrs:n,byGroup:r}=e;return n=Ye(n,t),Object.keys(r).forEach((e=>{r[e]=Ye(r[e],t)})),{ptrs:n,byGroup:r}},tt=function(e,t,n){const r=n.methods.one;return"number"==typeof e&&(e=String(e)),"string"==typeof e&&(e=r.killUnicode(e,n),e=r.parseMatch(e,t,n)),e},nt=e=>"[object Object]"===Object.prototype.toString.call(e),rt=e=>e&&nt(e)&&!0===e.isView,at=e=>e&&nt(e)&&!0===e.isNet;var ot={matchOne:function(e,t,n){const r=this.methods.one;if(rt(e))return this.intersection(e).eq(0);if(at(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;let a={regs:e=tt(e,n,this.world),group:t,justOne:!0},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=et(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const r=this.methods.one;if(rt(e))return this.intersection(e);if(at(e))return this.sweep(e,{tagger:!1}).view.settle();let a={regs:e=tt(e,n,this.world),group:t},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=et(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const r=this.methods.one;if(rt(e))return this.intersection(e).fullPointer.length>0;if(at(e))return this.sweep(e,{tagger:!1}).view.found;let a={regs:e=tt(e,n,this.world),group:t,justOne:!0};return r.match(this.docs,a,this._cache).ptrs.length>0},if:function(e,t,n){const r=this.methods.one;if(rt(e))return this.filter((t=>t.intersection(e).found));if(at(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}let a={regs:e=tt(e,n,this.world),group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter(((e,t)=>{let n=this.update([e]);return r.match(n.docs,a,i[t]).ptrs.length>0}));let s=this.update(o);return this._cache&&(s._cache=o.map((e=>i[e[0]]))),s},ifNo:function(e,t,n){const{methods:r}=this,a=r.one;if(rt(e))return this.filter((t=>!t.intersection(e).found));if(at(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}e=tt(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}},it={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 st=function(e,t){return[e[0],e[1],t[2]]},lt=(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},ut=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},ct={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=lt(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=>ut(e,this))),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=lt(e,this,t).fullPointer,a=n(this.fullPointer,r);for(let e=0;e{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(st(e.match,e.after)):o.push(e.match)})),o=o.filter((e=>e)),o=o.map((e=>ut(e,this))),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=lt(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),e.before&&e.match?o.push(st(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=>ut(e,this))),this.update(o)}};ct.split=ct.splitAfter;var ht=ct;const dt=function(e,t){return!(!e||!t)&&e[0]===t[0]&&e[2]===t[1]},gt=function(e,t,n){const r=e.world,a=r.methods.one.parseMatch;n=n||"^.";let o=a(t=t||".$",{},r),i=a(n,{},r);o[o.length-1].end=!0,i[0].start=!0;let s=e.fullPointer,l=[s[0]];for(let t=1;t)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,bt=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,yt=/ /g,wt=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),kt=function(e){return e=(e=e.map((e=>e.trim()))).filter((e=>e))};var Pt=function(e){let t=e.split(vt),n=[];t.forEach((e=>{wt(e)?n.push(e):n=n.concat(e.split(bt))})),n=kt(n);let r=[];return n.forEach((e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||wt(e)?r.push(e):r=r.concat(e.split(yt))})),r=kt(r),r};const At=/\{([0-9]+)?(, *[0-9]*)?\}/,Ct=/&&/,jt=new RegExp(/^<\s*(\S+)\s*>/),Nt=e=>e.charAt(0).toUpperCase()+e.substring(1),xt=e=>e.charAt(e.length-1),It=e=>e.charAt(0),Tt=e=>e.substring(1),Dt=e=>e.substring(0,e.length-1),Ht=function(e){return e=Tt(e),e=Dt(e)},Gt=function(e,t){let n={};for(let r=0;r<2;r+=1){if("$"===xt(e)&&(n.end=!0,e=Dt(e)),"^"===It(e)&&(n.start=!0,e=Tt(e)),"?"===xt(e)&&(n.optional=!0,e=Dt(e)),("["===It(e)||"]"===xt(e))&&(n.group=null,"["===It(e)&&(n.groupStart=!0),"]"===xt(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===It(e))){const t=jt.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===xt(e)&&(n.greedy=!0,e=Dt(e)),"*"!==e&&"*"===xt(e)&&"\\*"!==e&&(n.greedy=!0,e=Dt(e)),"!"===It(e)&&(n.negative=!0,e=Tt(e)),"~"===It(e)&&"~"===xt(e)&&e.length>2&&(e=Ht(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("/"===It(e)&&"/"===xt(e))return e=Ht(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if(!0===At.test(e)&&(e=e.replace(At,((e,t,r)=>(void 0===r?(n.min=Number(t),n.max=Number(t)):(r=r.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(r)):(n.min=Number(t),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),"")))),"("===It(e)&&")"===xt(e)){Ct.test(e)?(n.choices=e.split(Ct),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=Tt(n.choices[0]);let r=n.choices.length-1;n.choices[r]=Dt(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=>Gt(e,t))))),e=""}if("{"===It(e)&&"}"===xt(e)){if(e=Ht(e),n.root=e,/\//.test(e)){let e=n.root.split(/\//);n.root=e[0],n.pos=e[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==e[2]&&(n.sense=e[2])}return n}if("<"===It(e)&&">"===xt(e))return e=Ht(e),n.chunk=Nt(e),n.greedy=!0,n;if("%"===It(e)&&"%"===xt(e))return e=Ht(e),n.switch=e,n}return"#"===It(e)?(n.tag=Tt(e),n.tag=Nt(n.tag),n):"@"===It(e)?(n.method=Tt(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var Et=Gt;const Ot=/[a-z0-9][-โ€“โ€”][a-z]/i;var Ft=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&&Ot.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};const Vt=function(e,t){let{all:n}=t.methods.two.transform.verb||{},r=e.root;return n?n(r,t.model):[]},zt=function(e,t){let{all:n}=t.methods.two.transform.noun||{};return n?n(e.root,t.model):[e.root]},Bt=function(e,t){let{all:n}=t.methods.two.transform.adjective||{};return n?n(e.root,t.model):[e.root]};var $t=function(e,t){return e=e.map((e=>{if(e.root)if(t.methods.two&&t.methods.two.transform){let n=[];e.pos?"Verb"===e.pos?n=n.concat(Vt(e,t)):"Noun"===e.pos?n=n.concat(zt(e,t)):"Adjective"===e.pos&&(n=n.concat(Bt(e,t))):(n=n.concat(Vt(e,t)),n=n.concat(zt(e,t)),n=n.concat(Bt(e,t))),n=n.filter((e=>e)),n.length>0&&(e.operator="or",e.fastOr=new Set(n))}else e.machine=e.root,delete e.id,delete e.root;return e}))},St=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}))),e},Kt=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let r=Pt(e);return r=r.map((e=>Et(e,t))),r=Ft(r,n),r=$t(r,n),r=St(r),r};const Mt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var Lt=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),_t={hasQuote:e=>Wt.test(e.pre)||qt.test(e.post),hasComma:e=>Qt(e,","),hasPeriod:e=>!0===Qt(e,".")&&!1===Qt(e,"..."),hasExclamation:e=>Qt(e,"!"),hasQuestionMark:e=>Qt(e,"?")||Qt(e,"ยฟ"),hasEllipses:e=>Qt(e,"..")||Qt(e,"โ€ฆ"),hasSemicolon:e=>Qt(e,";"),hasColon:e=>Qt(e,":"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>Ut.test(e.post)||Ut.test(e.pre),hasDash:e=>Rt.test(e.post)||Rt.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)};_t.hasQuotation=_t.hasQuote;var Zt=_t;let Xt=function(){};Xt=function(e,t,n,r){let a=function(e,t,n,r){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==r-1)return!1;if(void 0!==t.id&&t.id===e.id)return!0;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(Jt(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some((e=>e===t.word)))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof Zt[t.method]&&!0===Zt[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)}if(void 0!==t.chunk)return e.chunk===t.chunk;if(void 0!==t.switch)return e.switch===t.switch;if(void 0!==t.machine)return e.normal===t.machine||e.machine===t.machine||e.root===t.machine;if(void 0!==t.sense)return e.sense===t.sense;if(void 0!==t.fastOr){if(t.pos&&!e.tags.has(t.pos))return null;let n=e.root||e.implicit||e.machine||e.normal;return t.fastOr.has(n)||t.fastOr.has(e.text)}return void 0!==t.choices&&("and"===t.operator?t.choices.every((t=>Xt(e,t,n,r))):t.choices.some((t=>Xt(e,t,n,r))))}(e,t,n,r);return!0===t.negative?!a:a};var Yt=Xt;const en=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&&(tn(e,e.t).length=r-e.t),e.t=r,!0)};const rn=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=Yt(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]&&Yt(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&&(tn(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},sn=function(e,t,n){let r=0;for(let a=e.t;ar||(e.t+=r,0))},ln=function(e){const{regs:t}=e;let n=t[e.r],r=Object.assign({},n);if(r.negative=!1,Yt(e.terms[e.t],r,e.start_i+e.t,e.phrase_length))return!1;if(n.optional){let n=t[e.r+1];n&&(Yt(e.terms[e.t],n,e.start_i+e.t,e.phrase_length)?e.r+=1:n.optional&&t[e.r+2]&&Yt(e.terms[e.t],t[e.r+2],e.start_i+e.t,e.phrase_length)&&(e.r+=2))}return n.greedy?sn(e,r,t[e.r+1]):(e.t+=1,!0)},un=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=Yt(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&&Yt(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}},cn=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},hn=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)}},dn=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]&&un(e),r.implicit&&e.terms[e.t+1]&&hn(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy?null:!0!==n.greedy||cn(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=tn(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0):null)},gn=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!==en(e,a)){if(e.negative){if(!ln(a))return null}else if(!0!==Yt(a.terms[a.t],e,a.start_i+a.t,a.phrase_length)){if(!0!==e.optional)return null}else if(!dn(a))return null}else if(!dn(a))return null}else{if(e.negative&&e.anything)return null;if(!dn(a))return null}else if(!on(a))return null}else if(!an(a))return null}else if(!nn(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}},mn=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}},pn=function(e,t,n){return e=e.filter((e=>{let[r,a,o]=e.pointer,i=n[r].slice(a,o);for(let e=0;e{e.groups[n][0]=t})),e},vn=function(e,t,n){let r=gn(e,t,0,e.length);return r?(r=fn(r,n),r):null};var bn=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=vn(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]}))),t.notIf&&(i=pn(i,t.notIf,e)),i=mn(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},yn={api:ft,methods:{one:{termMethods:Zt,parseMatch:Kt,match:bn}},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 wn=/^\../,kn=/^#./,Pn=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,"'"),wn.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 An={html:function(e){let{starts:t,ends:n}=Pn(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(jn,""),xn.test(a)&&(a=" "),a=a.replace(Nn,""),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(jn,""),a="-"===a?" ":a.replace(Cn,""));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&&In.test(a)||(a+=" "),r+=n+o+a})),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},Dn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{keepSpace:!1,whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{keepSpace:!1,whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};Dn.clean=Dn.normal,Dn.reduced=Dn.root;var Hn=Dn;let Gn=[],En=0;for(;En<64;)Gn[En]=0|4294967296*Math.sin(++En%Math.PI);var On=function(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(En=i=0;En>4]+Gn[i]+~~o[En|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|r>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)a[--i]+=s[i]}for(e="";i<32;)e+=(a[i>>3]>>4*(1^i++)&15).toString(16);return e};const Fn={text:!0,terms:!0};let Vn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const zn=function(e,t){return Object.assign({},e,t)},Bn={text:e=>Tn(e,{keepPunct:!0},!1),normal:e=>Tn(e,zn(Hn.normal,{keepPunct:!0}),!1),implicit:e=>Tn(e,zn(Hn.implicit,{keepPunct:!0}),!1),machine:e=>Tn(e,Vn,!1),root:e=>Tn(e,zn(Vn,{form:"root"}),!1),hash:e=>On(Tn(e,{keepPunct:!0},!1)),offset:e=>{let t=Bn.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))};Bn.sentences=Bn.sentence,Bn.clean=Bn.normal,Bn.reduced=Bn.root;const $n={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},Fn,r)).offset&&n.compute("offset"),n.docs.map(((e,t)=>{let a={};return Object.keys(r).forEach((o=>{r[o]&&Bn[o]&&(a[o]=Bn[o](e,n,t))})),a})));var n,r;return"number"==typeof e?t[e]:t}};$n.data=$n.json;var Sn=$n,Kn=function(e){let t=this.methods.one.debug||{};return e&&t.hasOwnProperty(e)?(t[e](this),this):"undefined"!=typeof window&&window.document?(t.clientSide(this),this):(t.tags(this),this)};const Mn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var Ln=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()));return e.filter((e=>e))}if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};e.forEach((e=>{t[e]=t[e]||0,t[e]+=1}));let n=Object.keys(t).map((e=>({normal:e,count:t[e]})));return n.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.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()},wrap:function(e){return Ln(this,e)}};var Wn=Jn,qn={text:function(e){let t={};var n;if(e&&"string"==typeof e&&Hn.hasOwnProperty(e)?t=Object.assign({},Hn[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e)),void 0!==t.keepSpace||this.isFull()||(t.keepSpace=!1),void 0===t.keepEndPunct&&this.pointer){let e=this.pointer[0];e&&e[1]?t.keepEndPunct=!1:t.keepEndPunct=!0}return void 0===t.keepPunct&&(t.keepPunct=!0),void 0===t.keepSpace&&(t.keepSpace=!0),function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let r=0;r{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 _n="";var Zn={green:e=>""+e+_n,red:e=>""+e+_n,blue:e=>""+e+_n,magenta:e=>""+e+_n,cyan:e=>""+e+_n,yellow:e=>""+e+_n,black:e=>""+e+_n,dim:e=>""+e+_n,i:e=>""+e+_n},Xn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(Zn.blue("\n โ”€โ”€โ”€โ”€โ”€โ”€")),t.forEach((t=>{console.log(Zn.blue("\n โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€")),t.forEach((t=>{let r=[...t.tags||[]],a=t.text||"-";t.sense&&(a=`{${t.normal}/${t.sense}}`),t.implicit&&(a="["+t.implicit+"]"),a=Zn.yellow(a);let o="'"+a+"'";if(t.reference){let n=e.update([t.reference]).text("normal");o+=` - ${Zn.dim(Zn.i("["+n+"]"))}`}o=o.padEnd(18);let i=Zn.blue(" โ”‚ ")+Zn.i(o)+" - "+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 Zn[n](e)}))),e.join(", ")}(r,n);console.log(i)}))})),console.log("\n")},Yn=function(e){let{docs:t}=e;console.log(""),t.forEach((e=>{let t=[];e.forEach((e=>{"Noun"===e.chunk?t.push(Zn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(Zn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(Zn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(Zn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)})),console.log(t.join(" "),"\n")})),console.log("\n")},er=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]}${Zn.blue(r[1])}${r[2]}`}(r,e.offset,t)})),console.log(r)})),console.log("\n")},tr={api:Rn,methods:{one:{hash:On,debug:{tags:Xn,clientSide:Qn,chunks:Yn,highlight:er}}}};const nr=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},rr=function(e){let t={};return e.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),t};var ar=function(e,t){let n=rr(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},or=function(e,t){let n=[];return e.forEach(((r,a)=>{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<20;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},ir={one:{termList:function(e){let t=[];for(let n=0;n{let[t]=e;if(1===r[t].length)return void a.push(e);let n=r[t].filter((t=>nr(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},ur=function(e,t){let n=rr(t),r=[];return e.forEach((e=>{let t=n[e[0]]||[];t=t.filter((t=>nr(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},hr=function(e,t){return e.map((e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e}))},dr={union:function(e){e=cr(e,this);let t=sr(this.fullPointer,e.fullPointer);return t=hr(t,this.document),this.toView(t)}};dr.and=dr.union,dr.intersection=function(e){e=cr(e,this);let t=ur(this.fullPointer,e.fullPointer);return t=hr(t,this.document),this.toView(t)},dr.not=function(e){e=cr(e,this);let t=lr(this.fullPointer,e.fullPointer);return t=hr(t,this.document),this.toView(t)},dr.difference=dr.not,dr.complement=function(){let e=this.all(),t=lr(e.fullPointer,this.fullPointer);return t=hr(t,this.document),this.toView(t)},dr.settle=function(){let e=this.fullPointer;return e.forEach((t=>{e=sr(e,[t])})),e=hr(e,this.document),this.update(e)};var gr=function(e){Object.assign(e.prototype,dr)},mr={methods:ir,api:gr},pr=function(e){e.prototype.sweep=function(e,t={}){const{world:n,docs:r}=this,{methods:a}=n;let o=a.one.bulkMatch(r,e,this.methods,t);!1!==t.tagger&&a.one.bulkTagger(o,r,this.world),o=o.map((e=>{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}}};const fr=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var vr=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.notIf&&(e.notIf=n(e.notIf,{},t)),e.needs=function(e){let t=[];return e.forEach((e=>{t.push(fr(e)),"and"===e.operator&&e.choices&&e.choices.forEach((e=>{e.forEach((e=>{t.push(fr(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=fr(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},br=function(e,t){e=vr(e,t);let n={};e.forEach((e=>{e.needs.forEach((t=>{n[t]=Array.isArray(n[t])?n[t]:[],n[t].push(e)})),e.wants.forEach((t=>{n[t]=Array.isArray(n[t])?n[t]:[],n[t].push(e)}))})),Object.keys(n).forEach((e=>{let t={};n[e]=n[e].filter((e=>"boolean"!=typeof 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}},yr=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=>"boolean"!=typeof o[e.match]&&(o[e.match]=!0,!0))),a}))},wr=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=>r.has(e)))))).filter((e=>0===e.wants.length||e.wants.filter((e=>r.has(e))).length>=e.minWant))}))},kr=function(e,t,n,r,a){let o=[];for(let n=0;n0&&(l.ptrs.forEach((e=>{e[0]=n;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),o.push(t)})),!0===a.matchOne))return[o[0]]}return o},Pr=function(e,t,n,r={}){let a=n.one.cacheDoc(e),o=yr(a,t.hooks);return o=wr(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=e.filter((e=>r>=e.minWords)),e}))}(o,e),kr(o,e,a,n,r)},Ar=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{if(!e.tag&&!e.chunk&&!e.unTag)return;let a=e.reason||e.match,u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===Ar(u,e.tag,r))return;if("-"===u[u.length-1].post)return}if(void 0!==e.tag){if(i(u,e.tag,n,e.safe,`[post] '${a}'`),"Noun"===e.tag&&l){let t=u[u.length-1];l(t.text)?i([t],"Plural",n,e.safe,"quick-plural"):i([t],"Singular",n,e.safe,"quick-singular")}!0===e.freeze&&u.forEach((e=>e.frozen=!0))}void 0!==e.unTag&&s(u,e.unTag,n,e.safe,a),e.chunk&&u.forEach((t=>t.chunk=e.chunk))})))},jr={lib:{buildNet:function(e){let t=this.methods().one.buildNet(e,this.world());return t.isNet=!0,t}},api:pr,methods:{one:{buildNet:br,bulkMatch:Pr,bulkTagger:Cr}}};const Nr=/ /,xr=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},Ir=function(e,t,n,r){if(!0===e.tags.has(t))return null;if("."===t)return null;!0===e.frozen&&(r=!0);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("string"==typeof t)if(t=t.trim(),Nr.test(t))!function(e,t,n,r){let a=t.split(Nr);e.forEach(((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),Ir(e,o,n,r))}))}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nTr(e,t,n,r)))};var Dr=Tr,Hr=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=>Er({id:e}))),t}return[Er({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},zr=e=>"[object Array]"===Object.prototype.toString.call(e),Br=e=>(e=e||"").trim(),$r=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach((e=>{if(!e.trim()||Or.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:Fr(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=Er({});return e.forEach((e=>{if((e=Er(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):(Vr(t=e).forEach(Er),t);var t},Sr=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("โ†’ "));let r="";return Vr(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},Kr=function(e){let t=Vr(e);t.forEach((e=>{delete(e=Object.assign({},e)).children}));let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},Mr={text:Sr,txt:Sr,array:Kr,flat:Kr},Lr=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Sr(e,!0)),null):Mr.hasOwnProperty(t)?Mr[t](e):e},Jr=e=>{Vr(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))}))},Wr=/\//;let qr=class g{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=Br(e),!Wr.test(e)){let t=this.json.children.find((t=>t.id===e));return new g(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)||Er({});return new g(t)}add(e,t={}){if(zr(e))return e.forEach((e=>this.add(Br(e),t))),this;e=Br(e);let n=Er({id:e,props:t});return this.json.children.push(n),new g(n)}remove(e){return e=Br(e),this.json.children=this.json.children.filter((t=>t.id!==e)),this}nodes(){return Vr(this.json).map((e=>(delete(e=Object.assign({},e)).children,e)))}cache(){return(e=>{let t=Vr(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 Vr(this.json)}fillDown(){var e;return e=this.json,Vr(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 zr(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])})),e))(t.props,e.props)})),this}depth(){Jr(this.json);let e=Vr(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 Jr(this.json),Lr(this.json,e)}debug(){return Jr(this.json),Lr(this.json,"debug"),this}};const Ur=function(e){let t=$r(e);return new qr(t)};Ur.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",Hyphenated:"cyan",Adverb:"cyan"};const Qr=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 _r=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:Qr(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 Zr=function(e){return e?"string"==typeof e?[e]:e:[]};var Xr=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=Zr(e[t].children),e[t].not=Zr(e[t].not)})),Object.keys(e).forEach((t=>{(e[t].not||[]).forEach((n=>{e[n]&&e[n].not&&e[n].not.push(t)}))})),e},Yr=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=Xr(e,t);const n=function(e){const t=Object.keys(e).map((t=>{let n=e[t];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:r,children:[]}}));return Ur(t).cache().fillDown().out("array")}(Object.assign({},t,e));return _r(n)},ea={one:{setTag:Dr,unTag:Hr,addTags:Yr,canBe:Gr}};const ta=function(e){return"[object Array]"===Object.prototype.toString.call(e)},na={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||""),ta(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 ta(e)?e.forEach((e=>r.one.unTag(n,e,i))):r.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){e=e.replace(/^#/,"");let t=this.model.one.tagSet,n=this.methods.one.canBe,r=[];this.document.forEach(((a,o)=>{a.forEach(((a,i)=>{n(a,e,t)||r.push([o,i,i+1])}))}));let a=this.update(r);return this.difference(a)}};var ra=na,aa=function(e){Object.assign(e.prototype,ra)},oa={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 ia=new Set(["Auxiliary","Possessive"]);var sa=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=e.sort(((e,n)=>{if(ia.has(e)||!t.hasOwnProperty(n))return 1;if(ia.has(n)||!t.hasOwnProperty(e))return-1;let r=t[e].children||[],a=r.length;return r=t[n].children||[],a-r.length})),e}(t,r)}))}))},la={model:{one:{tagSet:{}}},compute:{tagRank:sa},methods:ea,api:aa,lib:oa};const ua=/([.!?\u203D\u2E18\u203C\u2047-\u2049\u3002]+\s)/g,ca=/^[.!?\u203D\u2E18\u203C\u2047-\u2049\u3002]+\s$/,ha=/((?:\r?\n|\r)+)/;var da=function(e){let t=[],n=e.split(ha);for(let e=0;e0&&(a.push(o),e[t]="")}return a};const va={'"':'"',"๏ผ‚":"๏ผ‚","โ€œ":"โ€","โ€Ÿ":"โ€","โ€ž":"โ€","โน‚":"โ€","โ€š":"โ€™","ยซ":"ยป","โ€น":"โ€บ","โ€ต":"โ€ฒ","โ€ถ":"โ€ณ","โ€ท":"โ€ด","ใ€":"ใ€ž","ใ€Ÿ":"ใ€ž"},ba=RegExp("["+Object.keys(va).join("")+"]","g"),ya=RegExp("["+Object.values(va).join("")+"]","g"),wa=function(e){if(!e)return!1;let t=e.match(ya);return null!==t&&1===t.length};var ka=function(e){let t=[];for(let n=0;n(e[t]=!0,e)),{});var za=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(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=Ga(n),n=Da(n),n=n.filter((e=>e)),n};const Ba=/\p{Letter}/u,$a=/[\p{Number}\p{Currency_Symbol}]/u,Sa=/^[a-z]\.([a-z]\.)+/i,Ka=/[sn]['โ€™]$/;var Ma=function(e,t){let{prePunctuation:n,postPunctuation:r,emoticons:a}=t.one,o=e,i="",s="",l=Array.from(e);if(a.hasOwnProperty(e.trim()))return{str:e.trim(),pre:i,post:" "};let u=l.length;for(let e=0;e(s=e||"",""))),e=o,i=""),{str:e,pre:i,post:s}},La=(e,t)=>{let{str:n,pre:r,post:a}=Ma(e,t);return{text:n,pre:r,post:a,tags:new Set}},Ja=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("")},Wa=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 qa=/([A-Z]\.)+[A-Z]?,?$/,Ua=/^[A-Z]\.,?$/,Ra=/[A-Z]{2,}('s|,)?$/,Qa=/([a-z]\.)+[a-z]\.?$/;var _a=function(e){return function(e){return!0===qa.test(e)||!0===Qa.test(e)||!0===Ua.test(e)||!0===Ra.test(e)}(e)&&(e=e.replace(/\./g,"")),e},Za=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=Wa(r),r=n(r,t),r=_a(r),e.normal=r},Xa=function(e,t){const{methods:n,model:r}=t,{splitSentences:a,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=a(e=e||"",t).map((e=>{let n=o(e,r);return n=n.map((e=>i(e,r))),n.forEach((e=>{Za(e,t)})),n})),e};const Ya=/[ .][A-Z]\.? *$/i,eo=/(?:\u2026|\.{2,}) *$/,to=/\p{L}/u,no=/\. *$/,ro=/^[A-Z]\. $/;var ao=function(e,t){if(!1===to.test(e))return!1;if(!0===Ya.test(e))return!1;if(3===e.length&&ro.test(e))return!1;if(!0===eo.test(e))return!1;let n=e.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),r=n[n.length-1].toLowerCase();return!0!==t.hasOwnProperty(r)||!0!==no.test(e)},oo={one:{killUnicode:Ja,tokenize:{splitSentences:xa,isSentence:ao,splitTerms:za,splitWhitespace:La,fromString:Xa}}},io={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let so={},lo={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","ยตg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","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=>{so[t]=!0,lo[t]="Abbreviation",void 0!==e[1]&&(lo[t]=[lo[t],e[1]])}))}));var uo=["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","ex"].reduce(((e,t)=>(e[t]=!0,e)),{});let co={"!":"ยก","?":"ยฟษ",'"':'โ€œโ€"โโž',"'":"โ€˜โ€›โ›โœโ€™","-":"โ€”โ€“",a:"ยชร€รร‚รƒร„ร…ร รกรขรฃรครฅฤ€ฤฤ‚ฤƒฤ„ฤ…ววŽวžวŸว วกวบวปศ€ศศ‚ศƒศฆศงศบฮ†ฮ‘ฮ”ฮ›ฮฌฮฑฮปะะฐัฆังำำ‘ำ’ำ“ฦ›รฆ",b:"รŸรพฦ€ฦฦ‚ฦƒฦ„ฦ…ษƒฮ’ฮฒฯฯฆะ‘ะ’ะชะฌะฒัŠัŒัขัฃาŒา",c:"ยขยฉร‡รงฤ†ฤ‡ฤˆฤ‰ฤŠฤ‹ฤŒฤฦ†ฦ‡ฦˆศปศผอปอผฯฒฯนฯฝฯพะกัั”า€าาชาซ",d:"รฤŽฤฤฤ‘ฦ‰ฦŠศกฦ‹ฦŒ",e:"รˆร‰รŠร‹รจรฉรชรซฤ’ฤ“ฤ”ฤ•ฤ–ฤ—ฤ˜ฤ™ฤšฤ›ฦศ„ศ…ศ†ศ‡ศจศฉษ†ษ‡ฮˆฮ•ฮžฮฃฮญฮตฮพฯตะ€ะะ•ะตัั‘าผาฝาพาฟำ–ำ—แป…",f:"ฦ‘ฦ’ฯœฯำบำปา’า“ลฟ",g:"ฤœฤฤžฤŸฤ ฤกฤขฤฃฦ“วควฅวฆวงวดวต",h:"ฤคฤฅฤฆฤงฦ•วถศžศŸฮ‰ฮ—ะ‚ะŠะ‹ะะฝั’ั›าขาฃาคาฅาบาปำ‰ำŠ",I:"รŒรรŽร",i:"รฌรญรฎรฏฤจฤฉฤชฤซฤฌฤญฤฎฤฏฤฐฤฑฦ–ฦ—ศˆศ‰ศŠศ‹ฮŠฮฮชฮฏฮนฯŠะ†ะ‡ั–ั—iฬ‡",j:"ฤดฤตวฐศทษˆษ‰ฯณะˆั˜",k:"ฤถฤทฤธฦ˜ฦ™วจวฉฮšฮบะŒะ–ะšะถะบัœาšา›าœาาžาŸา าก",l:"ฤนฤบฤปฤผฤฝฤพฤฟล€ลล‚ฦšฦชว€ววศดศฝฮ™ำ€ำ",m:"ฮœฯบฯปะœะผำำŽ",n:"ร‘รฑลƒล„ล…ล†ล‡ลˆล‰ลŠล‹ฦฦžวธวนศ ศตฮฮ ฮฎฮทฯžะะ˜ะ™ะ›ะŸะธะนะปะฟัาŠา‹ำ…ำ†ำขำฃำคำฅฯ€",o:"ร’ร“ร”ร•ร–ร˜รฐรฒรณรดรตรถรธลŒลลŽลลล‘ฦŸฦ ฦกว‘ว’วชวซวฌวญวพวฟศŒศศŽศศชศซศฌศญศฎศฏศฐศฑฮŒฮ˜ฮŸฮธฮฟฯƒฯŒฯ•ฯ˜ฯ™ฯฌฯดะžะคะพัฒัณำฆำงำจำฉำชำซ",p:"ฦคฮกฯฯทฯธฯผะ ั€าŽารž",q:"ษŠษ‹",r:"ล”ล•ล–ล—ล˜ล™ฦฆศศ‘ศ’ศ“ษŒษะƒะ“ะฏะณัั“าา‘",s:"ลšล›ลœลลžลŸล ลกฦงฦจศ˜ศ™ศฟะ…ั•",t:"ลขลฃลคลฅลฆลงฦซฦฌฦญฦฎศšศ›ศถศพฮ“ฮคฯ„ฯฎะขั‚",u:"ร™รšร›รœรนรบรปรผลจลฉลชลซลฌลญลฎลฏลฐลฑลฒลณฦฏฦฐฦฑฦฒว“ว”ว•ว–ว—ว˜ว™วšว›วœศ”ศ•ศ–ศ—ษ„ฮฐฯ…ฯ‹ฯ",v:"ฮฝัดัตัถัท",w:"ลดลตฦœฯ‰ฯŽฯ–ฯขฯฃะจะฉัˆั‰ักัฟ",x:"ร—ฮงฯ‡ฯ—ฯฐะฅั…าฒาณำผำฝำพำฟ",y:"รรฝรฟลถลทลธฦณฦดศฒศณษŽษฮŽฮฅฮซฮณฯˆฯ’ฯ“ฯ”ะŽะฃัƒั‡ัžัฐัฑาฎาฏาฐาฑำฎำฏำฐำฑำฒำณ",z:"ลนลบลปลผลฝลพฦตฦถศคศฅษ€ฮ–"},ho={};Object.keys(co).forEach((function(e){co[e].split("").forEach((function(t){ho[t]=e}))}));const go=/\//,mo=/[a-z]\.[a-z]/i,po=/[0-9]/;var fo=function(e,t){let n=e.normal||e.text||e.machine;const r=t.model.one.aliases;if(r.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(r[n])),go.test(n)&&!mo.test(n)&&!po.test(n)){let t=n.split(go);t.length<=3&&t.forEach((t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))}))}return e};const vo=/^\p{Letter}+-\p{Letter}+$/u;var bo=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"),vo.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)},yo=function(e){let t=e.docs,n={};for(let e=0;eAo(e,fo),machine:e=>Ao(e,bo),normal:e=>Ao(e,Za),freq:yo,offset:wo,index:ko,wordCount:Po},methods:oo,model:{one:{aliases:io,abbreviations:so,prefixes:uo,suffixes:{like:!0,ish:!0,less:!0,able:!0,elect:!0,type:!0,designate:!0},prePunctuation:{"#":!0,"@":!0,_:!0,"ยฐ":!0,"โ€‹":!0,"โ€Œ":!0,"โ€":!0,"\ufeff":!0},postPunctuation:{"%":!0,_:!0,"ยฐ":!0,"โ€‹":!0,"โ€Œ":!0,"โ€":!0,"\ufeff":!0},lexicon:lo,unicode:ho,emoticons:{"<3":!0,"{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 To={safe:!0,min:3};var Do={typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},To,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=Io(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}},Ho={model:{one:{typeahead:{}}},api:xo,lib:Do,compute:jo,hooks:["typeahead"]};v.extend(ee),v.extend(tr),v.extend(yn),v.extend(mr),v.extend(la),v.plugin(He),v.extend(Co),v.extend(Ve),v.plugin(k),v.extend(Xe),v.extend(Ho),v.extend(Je),v.extend(jr);var Go={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",volcano:"volcanoes"},Eo={Comparative:"trueยฆbett1f0;arth0ew0in0;er",Superlative:"trueยฆearlier",PresentTense:"trueยฆbests,sounds",Condition:"trueยฆlest,unless",PastTense:"trueยฆbegan,came,d4had,kneel3l2m0sa4we1;ea0sg2;nt;eap0i0;ed;id",Participle:"trueยฆ0:09;a06b01cZdXeat0fSgQhPoJprov0rHs7t6u4w1;ak0ithdra02o2r1;i02uY;k0v0;nd1pr04;ergoJoJ;ak0hHo3;e9h7lain,o6p5t4un3w1;o1um;rn;g,k;ol0reS;iQok0;ught,wn;ak0o1runk;ne,wn;en,wn;ewriNi1uJ;dd0s0;ut3ver1;do4se0t1;ak0h2;do2g1;roG;ne;ast0i7;iv0o1;ne,tt0;all0loBor1;bi3g2s1;ak0e0;iv0o9;dd0;ove,r1;a5eamt,iv0;hos0lu1;ng;e4i3lo2ui1;lt;wn;tt0;at0en,gun;r2w1;ak0ok0;is0;en",Gerund:"trueยฆaccord0be0doin,go0result0stain0;ing",Expression:"trueยฆa0Yb0Uc0Sd0Oe0Mfarew0Lg0FhZjeez,lWmVnToOpLsJtIuFvEw7y0;a5e3i1u0;ck,p;k04p0;ee,pee;a0p,s;!h;!a,h,y;a5h2o1t0;af,f;rd up,w;atsoever,e1o0;a,ops;e,w;hoo,t;ery w06oi0L;gh,h0;! 0h,m;huh,oh;here nPsk,ut tut;h0ic;eesh,hh,it,oo;ff,h1l0ow,sst;ease,s,z;ew,ooey;h1i,mg,o0uch,w,y;h,o,ps;! 0h;hTmy go0wT;d,sh;a7evertheless,o0;!pe;eh,mm;ah,eh,m1ol0;!s;ao,fao;aCeBi9o2u0;h,mph,rra0zzC;h,y;l1o0;r6y9;la,y0;! 0;c1moCsmok0;es;ow;!p hip hoor0;ay;ck,e,llo,y;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;ell;e0h,t cetera,ureka,ww,xcuse me;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;mon,o0;ngratulations,wabunga;a2oo1r0tw,ye;avo,r;!ya;h,m; 1h0ka,las,men,rgh,ye;!a,em,h,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ยฆdick0gre0ones,records;ens","Unit|Noun":"trueยฆcEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,t,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s",Value:"trueยฆa few",Imperative:"trueยฆbewa0come he0;re","Plural|Verb":"trueยฆleaves",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:4Q;a3Tb3Bc2Od2He2Df27g1Zh1Ti1Pj1Nk1Ll1Gm12n0Po0Mp0Cqu0Br02sTtHuCv9w3xiaomi,y1;amaha,m1Bou1w1B;gov,tu3C;a4e2iki1orld trade organizati33;leaRped0O;lls fargo,st1;fie2Hinghou2R;l1rner br3U;gree3Jl street journ2Im1E;an halOeriz2Xisa,o1;dafo2Yl1;kswagMvo;b4kip,n2ps,s1;a tod3Aps;es3Mi1;lev3Fted natio3C;er,s; mobi32aco beRd bOe9gi frida3Lh3im horto3Amz,o1witt3D;shi49y1;ota,s r 05;e 1in lizzy;b3carpen3Jdaily ma3Dguess w2holli0s1w2;mashing pumpki35uprem0;ho;ea1lack eyed pe3Xyr0Q;ch bo3Dtl0;l2n3Qs1xas instrumen1U;co,la m1F;efoni0Kus;a8cientology,e5ieme2Ymirnoff,np,o3pice gir6quare0Ata1ubaru;rbuc1to34;ks;ny,undgard1;en;a2x pisto1;ls;g1Wrs;few2Minsbur31lesfor03msu2E;adiohead,b8e4o1yana3C;man empi1Xyal 1;b1dutch she4;ank;a3d 1max,vl20;bu1c2Ahot chili peppe2Ylobst2N;ll;ders dige1Ll madrid;c,s;ant3Aizn2Q;a8bs,e5fiz2Ihilip4i3r1;emier 1udenti1D;leagTo2K;nk floyd,zza hut; morrBs;psi2tro1uge0E;br33chi0Tn33;!co;lant2Un1yp16; 2ason27da2P;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0QvZ;l,s;c,st1Otflix,w1; 1sweek;kids on the block,york0D;a,c;nd22s2t1;ional aca2Po,we0U;a,c02d0S;aDcdonalCe9i6lb,o3tv,y1;spa1;ce;b1Tnsanto,ody blu0t1;ley cr1or0T;ue;c2t1;as,subisO;helin,rosoft;dica2rcedes benz,talli1;ca;id,re;ds;cs milk,tt19z24;a3e1g,ittle caesa1P; ore09novo,x1;is,mark,us; 1bour party;pres0Dz boy;atv,fc,kk,lm,m1od1O;art;iffy lu0Roy divisi0Jpmorgan1sa;! cha09;bm,hop,k3n1tv;g,te1;l,rpol;ea;a5ewlett pack1Vi3o1sbc,yundai;me dep1n1P;ot;tac1zbollah;hi;lliburt08sbro;eneral 6hq,ithub,l5mb,o2reen d0Ou1;cci,ns n ros0;ldman sachs,o1;dye1g0H;ar;axo smith kli04encoW;electr0Nm1;oto0Z;a5bi,c barcelo4da,edex,i2leetwood m03o1rito l0G;rd,xcY;at,fa,nancial1restoZ; tim0;na;cebook,nnie mae;b0Asa,u3xxon1; m1m1;ob0J;!rosceptics;aiml0De5isney,o4u1;nkin donu2po0Zran dur1;an;ts;j,w jon0;a,f lepp12ll,peche mode,r spieg02stiny's chi1;ld;aJbc,hFiDloudflaCnn,o3r1;aigsli5eedence clearwater reviv1ossra09;al;c7inba6l4m1o0Est09;ca2p1;aq;st;dplSg1;ate;se;a c1o chanQ;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil a,na daily;r1y;on;d2pital o1rls jr;ne;bury,ill1;ac;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;cardi,idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser busDol,ppleAr6s4u3v2y1;er;is,on;di,todesk;hland o1sociated E;il;b3g2m1;co;os;ys; compu1be0;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ยฆits,my,our0thy;!s","Noun|Verb":"trueยฆ0:9W;1:AA;2:96;3:A3;4:9R;5:A2;6:9K;7:8N;8:7L;9:A8;A:93;B:8D;C:8X;a9Ob8Qc7Id6Re6Gf5Sg5Hh55i4Xj4Uk4Rl4Em40n3Vo3Sp2Squ2Rr21s0Jt02u00vVwGyFzD;ip,oD;ne,om;awn,e6Fie68;aOeMhJiHoErD;ap,e9Oink2;nd0rDuC;kDry,sh5Hth;!shop;ck,nDpe,re,sh;!d,g;e86iD;p,sD;k,p0t2;aDed,lco8W;r,th0;it,lk,rEsDt4ve,x;h,te;!ehou1ra9;aGen5FiFoD;iDmAte,w;ce,d;be,ew,sA;cuum,l4B;pDr7;da5gra6Elo6A;aReQhrPiOoMrGuEwiDy5Z;n,st;nDrn;e,n7O;aGeFiEoDu6;t,ub2;bu5ck4Jgg0m,p;at,k,nd;ck,de,in,nsDp,v7J;f0i8R;ll,ne,p,r4Yss,t94uD;ch,r;ck,de,e,le,me,p,re;e5Wow,u6;ar,e,ll,mp0st,xt;g,lDng2rg7Ps5x;k,ly;a0Sc0Ne0Kh0Fi0Dk0Cl0Am08n06o05pXquaBtKuFwD;ea88iD;ng,pe,t4;bGit,m,ppErD;fa3ge,pri1v2U;lDo6S;e6Py;!je8;aMeLiKoHrEuDy2;dy,ff,mb2;a85eEiDo5Pugg2;ke,ng;am,ss,t4;ckEop,p,rD;e,m;ing,pi2;ck,nk,t4;er,m,p;ck,ff,ge,in,ke,lEmp,nd,p2rDte,y;!e,t;k,l;aJeIiHlGoFrDur,y;ay,e56inDu3;g,k2;ns8Bt;a5Qit;ll,n,r87te;ed,ll;m,n,rk;b,uC;aDee1Tow;ke,p;a5Je4FiDo53;le,rk;eep,iDou4;ce,p,t;ateboa7Ii;de,gnDl2Vnk,p,ze;!al;aGeFiEoDuff2;ck,p,re,w;ft,p,v0;d,i3Ylt0;ck,de,pe,re,ve;aEed,nDrv1It;se,t2N;l,r4t;aGhedu2oBrD;aEeDibb2o3Z;en,w;pe,t4;le,n,r2M;cDfegua72il,mp2;k,rifi3;aZeHhy6LiGoEuD;b,in,le,n,s5X;a6ck,ll,oDpe,u5;f,t;de,ng,ot,p,s1W;aTcSdo,el,fQgPje8lOmMnLo17pJque6sFturn,vDwa6V;eDi27;al,r1;er74oFpe8tEuD;lt,me;!a55;l71rt;air,eaDly,o53;l,t;dezvo2Zt;aDedy;ke,rk;ea1i4G;a6Iist0r5N;act6Yer1Vo71uD;nd,se;a38o6F;ch,s6G;c1Dge,iEke,lly,nDp1Wt1W;ge,k,t;n,se;es6Biv0;a04e00hYiXlToNrEsy4uD;mp,n4rcha1sh;aKeIiHoDu4O;be,ceFdu3fi2grDje8mi1p,te6;amDe6W;!me;ed,ss;ce,de,nt;sDy;er6Cs;cti3i1;iHlFoEp,re,sDuCw0;e,i5Yt;l,p;iDl;ce,sh;nt,s5V;aEce,e32uD;g,mp,n7;ce,nDy;!t;ck,le,n17pe,tNvot;a1oD;ne,tograph;ak,eFnErDt;fu55mA;!c32;!l,r;ckJiInHrFsEtDu1y;ch,e9;s,te;k,tD;!y;!ic;nt,r,se;!a7;bje8ff0il,oErDutli3Qver4B;bAd0ie9;ze;a4ReFoDur1;d,tD;e,i3;ed,gle8tD;!work;aMeKiIoEuD;rd0;ck,d3Rld,nEp,uDve;nt,th;it5EkD;ey;lk,n4Brr5CsDx;s,ta2B;asuBn4UrDss;ge,it;il,nFp,rk3WsEtD;ch,t0;h,k,t0;da5n0oeuvB;aLeJiHoEuD;mp,st;aEbby,ck,g,oDve;k,t;d,n;cDe,ft,mAnIst;en1k;aDc0Pe4vK;ch,d,k,p,se;bFcEnd,p,t4uD;gh,n4;e,k;el,o2U;eEiDno4E;ck,d,ll,ss;el,y;aEo1OuD;i3mp;m,zz;mpJnEr46ssD;ue;c1Rdex,fluGha2k,se2HteDvoi3;nt,rD;e6fa3viD;ew;en3;a8le2A;aJeHiGoEuD;g,nt;l3Ano2Dok,pDr1u1;!e;ghli1Fke,nt,re,t;aDd7lp;d,t;ck,mGndFrEsh,tDu9;ch,e;bo3Xm,ne4Eve6;!le;!m0;aMear,ift,lKossJrFuD;arDe4Alp,n;antee,d;aFiEoDumb2;uCwth;ll,nd,p;de,sp;ip;aBoDue;ss,w;g,in,me,ng,s,te,ze;aZeWiRlNoJrFuD;ck,el,nDss,zz;c38d;aEoDy;st,wn;cDgme,me,nchi1;tuB;cFg,il,ld,rD;ce,e29mDwa31;!at;us;aFe0Vip,oDy;at,ck,od,wD;!er;g,ke,me,re,sh,vo1E;eGgFlEnDre,sh,t,x;an3i0Q;e,m,t0;ht,uB;ld;aEeDn3;d,l;r,tuB;ce,il,ll,rm,vo2W;cho,d7ffe8nMsKxFyeD;!baD;ll;cGerci1hFpDtra8;eriDo0W;en3me9;au6ibA;el,han7u1;caDtima5;pe;count0d,vy;a01eSiMoJrEuDye;b,el,mp,pli2X;aGeFiEoD;ne,p;ft,ll,nk,p,ve;am,ss;ft,g,in;cEd7ubt,wnloD;ad;k,u0E;ge6p,sFt4vD;e,iDor3;de;char7gui1h,liEpD;at4lay,u5;ke;al,bKcJfeIlGmaCposAsEtaD;il;e07iD;gn,re;ay,ega5iD;ght;at,ct;li04rea1;a5ut;b,ma7n3rDte;e,t;a0Eent0Dh06irc2l03oKrFuD;be,e,rDt;b,e,l,ve;aGeFoEuDy;sh;p,ss,wd;dAep;ck,ft,sh;at,de,in,lTmMnFordina5py,re,st,uDv0;gh,nDp2rt;s01t;ceHdu8fli8glomeIsFtDveN;a8rD;a6ol;e9tru8;ct;ntDrn;ra5;bHfoGmFpD;leDouCromi1;me9;aCe9it,u5;rt;at,iD;ne;lap1oD;r,ur;aEiDoud,ub;ck,p;im,w;aEeDip;at,ck,er;iGllen7nErD;ge,m,t;ge,nD;el;n,r;er,re;ke,ll,mp,noe,pGrXsFtEuDve;se,ti0I;alog,ch;h,t;!tuB;re;a03eZiXlToPrHuEyD;pa11;bb2ck2dgEff0mp,rDst,zz;den,n;et;anJeHiFoadEuD;i1sh;ca6;be,d7;ge;aDed;ch,k;ch,d;aFg,mb,nEoDrd0tt2x,ycott;k,st,t;d,e;rd,st;aFeCiDoYur;nk,tz;nd;me;as,d,ke,nd,opsy,tD;!ch,e;aFef,lt,nDt;d,efA;it;r,t;ck,il,lan3nIrFsEtt2;le;e,h;!gDk;aDe;in;!d,g,k;bu1c05dZge,iYlVnTppQrLsIttGucEwaD;rd;tiD;on;aDempt;ck;k,sD;i6ocia5;st;chFmD;!oD;ur;!iD;ve;eEroa4;ch;al;chDg0sw0;or;aEt0;er;rm;d,m,r;dreHvD;an3oD;ca5;te;ce;ss;cDe,he,t;eFoD;rd,u9;nt;nt,ss;se",Actor:"trueยฆ0:7B;1:7G;2:6A;3:7F;4:7O;5:7K;a6Nb62c4Ud4Be41f3Sg3Bh30i2Uj2Qkin2Pl2Km26n1Zo1Sp0Vqu0Tr0JsQtJuHvEw8yo6;gi,ut6;h,ub0;aAe9i8o7r6;estl0it0;m2rk0;fe,nn0t2Bza2H;atherm2ld0;ge earn0it0nder0rri1;eter7i6oyF;ll5Qp,s3Z;an,ina2U;n6s0;c6Uder03;aoisea23e9herapi5iktok0o8r6ut1yco6S;a6endseLo43;d0mp,nscri0Bvel0;ddl0u1G;a0Qchn7en6na4st0;ag0;i3Oo0D;aiXcUeRhPiMki0mu26oJpGquaFtBu7wee6;p0theart;lt2per7r6;f0ge6Iviv1;h6inten0Ist5Ivis1;ero,um2;a8ep7r6;ang0eam0;bro2Nc2Ofa2Nmo2Nsi20;ff0tesm2;tt0;ec7ir2Do6;kesp59u0M;ia5Jt3;l7me6An,rcere6ul;r,ss;di0oi5;n7s6;sy,t0;g0n0;am2ephe1Iow6;girl,m2r2Q;cretInior cit3Fr6;gea4v6;a4it1;hol4Xi7reen6ulpt1;wr2C;e01on;l1nt;aEe9o8u6;l0nn6;er up,ingE;g40le mod3Zof0;a4Zc8fug2Ppo32searQv6;ere4Uolution6;ary;e6luYru22;ptio3T;bbi,dic5Vpp0;arter6e2Z;back;aYeWhSiRlOoKr8sycho7u6;nk,p31;logi5;aGeDiBo6;d9fess1g7ph47s6;pe2Ktitu51;en6ramm0;it1y;igy,uc0;est4Nme mini0Unce6s3E;!ss;a7si6;de4;ch0;ctiti39nk0P;dca0Oet,li6pula50rnst42;c2Itic6;al scie6i2;nti5;a6umb0;nn0y6;er,ma4Lwright;lgrim,one0;a8iloso7otogra7ra6ysi1V;se;ph0;ntom,rmaci5;r6ssi1T;form0s4O;i3El,nel3Yr8st1tr6wn;i6on;arWot;ent4Wi42tn0;ccupa4ffBp8r7ut6;ca5l0B;ac4Iganiz0ig2Fph2;er3t6;i1Jomet6;ri5;ic0spring;aBe9ie4Xo7u6;n,rser3J;b6mad,vi4V;le2Vo4D;i6mesis,phew;ce,ghb1;nny,rr3t1X;aEeDiAo7u6yst1Y;m8si16;der3gul,m7n6th0;arDk;!my;ni7s6;f02s0Jt0;on,st0;chan1Qnt1rcha4;gi9k0n8rtyr,t6y1;e,riar6;ch;ag0iac;ci2stra3I;a7e2Aieutena4o6;rd,s0v0;bor0d7ndlo6ss,urea3Fwy0ym2;rd;!y;!s28;e8o7u6;ggl0;gg0urna2U;st0;c3Hdol,llu3Ummigra4n6; l9c1Qfa4habi42nov3s7ve6;nt1stig3;pe0Nt6;a1Fig3ru0M;aw;airFeBistoAo8u6ygie1K;man6sba2H;!ita8;bo,st6usekN;age,e3P;ri2;ir,r6;m7o6;!ine;it;dress0sty2C;aLeIhostGirl26ladi3oCrand7u6;e5ru;c9daug0Jfa8m7pa6s2Y;!re4;a,o6;th0;hi1B;al7d6lf0;!de3A;ie,k6te26;eep0;!wr6;it0;isha,n6;i6tl04;us;mbl0rden0;aDella,iAo7r6;eela2Nie1P;e,re6ster pare4;be1Hm2r6st0;unn0;an2ZgZlmm17nanci0r6tt0;e6st la2H; marsh2OfigXm2;rm0th0;conoEdDlectriCm8n7x6;amin0cellency,i2A;emy,trepreneur,vironmenta1J;c8p6;er1loye6;e,r;ee;ci2;it1;mi5;aKeBi8ork,ri7u6we02;de,tche2H;ft0v0;ct3eti7plom2Hre6va;ct1;ci2ti2;aDcor3fencCi0InAput9s7tectLvel6;op0;ce1Ge6ign0;rt0;ee,y;iz6;en;em2;c1Ml0;d8nc0redev7ug6;ht0;il;!dy;a06e04fo,hXitizenWlToBr9u6;r3stomer6;! representat6;ive;e3it6;ic;lJmGnAord9rpor1Nu7w6;boy,ork0;n6ri0;ciTte1Q;in3;fidantAgressSs9t6;e0Kr6;ibut1o6;ll0;tab13ul1O;!e;edi2m6pos0rade;a0EeQissi6;on0;leag8on7um6;ni5;el;ue;e6own;an0r6;ic,k;!s;a9e7i6um;ld;erle6f;ad0;ir7nce6plFract0;ll1;m2wI;lebri6o;ty;dBptAr6shi0;e7pe6;nt0;r,t6;ak0;ain;et;aMeLiJlogg0oErBu6;dd0Fild0rgl9siness6;m2p7w6;om2;ers05;ar;i7o6;!k0th0;cklay0de,gadi0;hemi2oge8y6;!frie6;nd;ym2;an;cyc6sR;li5;atbox0ings;by,nk0r6;b0on7te6;nd0;!e07;c04dWge4nQpLrHsFtAu7yatull6;ah;nt7t6;h1oG;!ie;h8t6;e6orney;nda4;ie5le6;te;sis00tron6;aut,om0;chbis8isto7tis6;an,t;crU;hop;ost9p6;ari6rentiS;ti6;on;le;a9cest1im3nou8y6;bo6;dy;nc0;ly5rc6;hi5;mi8v6;entur0is1;er;ni7r6;al;str3;at1;or;counBquaintanArob9t6;ivi5or,re6;ss;st;at;ce;ta4;nt","Adj|Noun":"trueยฆ0:16;a1Db17c0Ud0Re0Mf0Dg0Ah08i06ju05l02mWnUoSpNrIsBt7u4v1watershed;a1ision0Z;gabo4nilla,ria1;b0Vnt;ndergr1pstairs;adua14ou1;nd;a3e1oken,ri0;en,r1;min0rori13;boo,n;age,e5ilv0Flack,o3quat,ta2u1well;bordina0Xper5;b0Lndard;ciali0Yl1vereign;e,ve16;cret,n1ri0;ior;a4e2ou1ubbiL;nd,tiY;ar,bBl0Wnt0p1side11;resent0Vublican;ci0Qsh;a4eriodic0last0Zotenti0r1;emi2incip0o1;!fession0;er,um;rall4st,tie0U;ff1pposi0Hv0;ens0Oi0C;agg01ov1uts;el;a5e3iniatJo1;bi01der07r1;al,t0;di1tr0N;an,um;le,riG;attOi2u1;sh;ber0ght,qC;stice,veniT;de0mpressioYn1;cumbe0Edividu0no0Dsta0Eterim;alf,o1umdrum;bby,melF;en2old,ra1;ph0Bve;er0ious;a7e5i4l3u1;git03t1;ure;uid;ne;llow,m1;aFiL;ir,t,vo1;riOuriO;l3p00x1;c1ecutUpeV;ess;d1iK;er;ar2e1;mographUrivO;k,l2;hiGlassSo2rude,unn1;ing;m5n1operK;creCstitueOte2vertab1;le;mpor1nt;ary;ic,m2p1;anion,lex;er2u1;ni8;ci0;al;e5lank,o4r1;i2u1;te;ef;ttom,urgeois;st;cadem9d6l2ntarct9r1;ab,ct8;e3tern1;at1;ive;rt;oles1ult;ce1;nt;ic","Adj|Past":"trueยฆ0:4Q;1:4C;2:4H;3:4E;a44b3Tc36d2Je29f20g1Wh1Si1Jj1Gkno1Fl1Am15n12o0Xp0Mqu0Kr08sLtEuAv9w4yellow0;a7ea6o4rinkl0;r4u3Y;n,ri0;k31th3;rp0sh0tZ;ari0e1O;n5p4s0;d1li1Rset;cov3derstood,i4;fi0t0;a8e3Rhr7i6ouTr4urn0wi4C;a4imm0ou2G;ck0in0pp0;ed,r0;eat2Qi37;m0nn0r4;get0ni2T;aOcKeIhGimFm0Hoak0pDt7u4;bsid3Ogge44s4;pe4ta2Y;ct0nd0;a8e7i2Eok0r5u4;ff0mp0nn0;ength2Hip4;ed,p0;am0reotyp0;in0t0;eci4ik0oH;al3Efi0;pRul1;a4ock0ut;d0r0;a4c1Jle2t31;l0s3Ut0;a6or5r4;at4e25;ch0;r0tt3;t4ut0;is2Mur1;aEe5o4;tt0;cAdJf2Bg9je2l8m0Knew0p7qu6s4;eTpe2t4;or0ri2;e3Dir0;e1lac0;at0e2Q;i0Rul1;eiv0o4ycl0;mme2Lrd0v3;in0lli0ti2A;a4ot0;li28;aCer30iBlAo9r5u4;mp0zzl0;e6i2Oo4;ce2Fd4lo1Anou30pos0te2v0;uc0;fe1CocCp0Iss0;i2Kli1L;ann0e2CuS;ck0erc0ss0;ck0i2Hr4st0;allLk0;bse7c6pp13rgan2Dver4;lo4whelm0;ok0;cupi0;rv0;aJe5o4;t0uri1A;ed0gle2;a6e5ix0o4ut0ys1N;di1Nt15u26;as0Clt0;n4rk0;ag0ufact0A;e6i5o4;ad0ck0st,v0;cens0m04st0;ft,v4;el0;tt0wn;a5o15u4;dg0s1B;gg0;llumSmpAn4sol1;br0cre1Ldebt0f8jZspir0t5v4;it0olv0;e4ox0Y;gr1n4re23;d0si15;e2l1o1Wuri1;li0o01r4;ov0;a6e1o4um03;ok0r4;ri0Z;mm3rm0;i6r5u4;a1Bid0;a0Ui0Rown;ft0;aAe9i8l6oc0Ir4;a4i0oz0Y;ctHg19m0;avo0Ju4;st3;ni08tt0x0;ar0;d0il0sc4;in1;dCl1mBn9quipp0s8x4;agger1c6p4te0T;a0Se4os0;ct0rie1D;it0;cap0tabliZ;cha0XgFha1As4;ur0;a0Zbarra0N;i0Buc1;aMeDi5r4;a01i0;gni08miniSre2s4;a9c6grun0Ft4;o4re0Hu17;rt0;iplWou4;nt0r4;ag0;bl0;cBdRf9l8p7ra6t5v4;elop0ot0;ail0ermQ;ng0;re07;ay0ight0;e4in0o0M;rr0;ay0enTor1;m5t0z4;ed,zl0;ag0p4;en0;aPeLhIlHo9r6u4;lt4r0stom03;iv1;a5owd0u4;sh0;ck0mp0;d0loAm7n4ok0v3;centr1f5s4troC;id3olid1;us0;b5pl4;ic1;in0;r0ur0;assi9os0utt3;ar5i4;ll0;g0m0;lebr1n6r4;ti4;fi0;tralJ;g0lcul1;aDewild3iCl9o7r5urn4;ed,t;ok4uis0;en;il0r0t4und;tl0;e5i4;nd0;ss0;as0;ffl0k0laMs0tt3;bPcNdKfIg0lFmaz0nDppBrm0ss9u5wa4;rd0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;a5leg0t3;er0;rm0;fe2;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;and5so4;rb0;on0;ed",Singular:"trueยฆ0:5I;1:5G;2:4V;3:4R;4:51;5:56;6:5K;a4Zb4Ic3Ld33e2Vf2Mg2Hh26in22j21k20l1Sm1Jn1Fo19p0Pqu0Or0DsXtKuFvAw7x r55yo yo;a7ha3No3O;f3i4Ot0Ey7;! arou37;arAe8ideo ga2Oo7;cabu4Gl59;gMr7t;di4Wt1W;iety,ni4M;n9p2Yr8s 7;do41s5B;bani1in0;coordinat38der7;estima1to22we3Z; rex,aIeHhFiDoCr9u8v7;! show;m2Mn2rntJto1B;agedy,ib7o4B;e,u7;n0ta43;ni1p2rq3J;c,er,m7;etD;ing7ree24;!y;am,mp3D;ct2le6x return;aLcKeIhor4NiHkFoEpin off,tBu9y7;ll7ner4Jst4Q;ab2V;b7i1n26per bowl,rro1V;st3Jtot0;at8ipe2Eo1Jrate4Fudent7;! lo0G;i37u1;ft ser4Imeo1G;elet5i7;ll,r3S;b36gn2Rte;ab2Hc7min39;t,urity gua2L;e6ho2W;bbatic0la3Gndwi0Opi5;av5eBhetor2i8o7;de6om,w;t8v7;erb2A;e,u0;bBc9f7publ2r0Yspi1;er7orm3;e6r0;i7ord label;p2Ft0;a1u43;estion mark,ot2D;aNeKhoJiGlEoCr8u7yram1D;ddi3EpCrpo1Hs3G;e9o7;bl3Ws7;pe3Gta1;dic1Pmi1Dp1Oroga3Sss relea1D;p7rt0;py;a7ebisci1;q2Bte;cn2e8g7;!gy;!r;ne call,tocoI;anut,d8r7t0yo1;cen3Gsp3H;al,est0;nop4r8t7;e,hog5;adi0Zi2S;atme0bj3Cc9pia1rde0thers,utspok5ve7wn3;n,r7;ti0Nview;cu8e7;an;pi3;ar9it8ot7umb3;a2Chi2O;e,ra1;cot2ra34;aDeAi8o7ur0;nopo4p16rni2Ksq1Pti33uld;c,li0Zn08s7tt5;chief,si31;d8nu,t7;al,i3;al,ic;gna1mm0nd13rsupi0te7yf4;ri0;aBegAi9u7;ddi1n7;ch;me,p07; 9e0K;bor12y7; 7er;up;eyno1itt5;el4ourn0;c9dices,itia2Kni22s8tel0Jvert7;eb1H;e25titu1;en2Hi2Q;aGeCighBo8u7;man right,s1Z;me7rmoDsp1Dtb0I;! r7;un; scho0WriW;a7i1K;d7v5; start,pho7;ne;ndful,sh brown,v5ze;a9elat0Glaci3r7ul4yp1P;an7enadi3id;a19d slam,ny;df4r7;l2ni1F;aEeti1EiDlu1oAr8un7;er0;ee market,i7onti3;ga1;l4ur7;so7;me;eNref4;br2mi4;conoDffi1Mgg,lecto0Pmbas1BnApidem2s1Wth2ven9x8yel7;id;ampXempl0Lte6;i16t;er1Iterp7;ri7;se;my;eJiCo9r7ump tru0R;agonf4i7;er,ve thru;c8g1Bi4or,ssi3wn7;side;to0CumenC;aCgniBnn3s8vide7;nd;conte6incen1Bp7tri0Y;osi7;tion;ta0E;le0U;ath9c8f7ni0terre6;ault 03err0;al,im0;!b7;ed;aUeRhKiJlHoBr7;edit ca9uc7;ib7;le;rd;efficBke,lAmmuniqJns8pi3rr0t0Uus7yo1;in;erv7uG;atoZ;ic,lO;ie6;er0Li7oth;e6n2;ty,vil wK;aBeqAick5oco9r7;istmas car7ysanthemum;ol;la1;ue;ndeli3racteri7;st2;i8llCr7;e0tifica1;liW;hi3nDpCrAt7ucus;erpi7hedr0;ll7;ar;!bohyd7ri3;ra1;it0;a7e,nib0;l,ry;aKeJiop2leHoFrBu7;nny,r7tterf4;g7i0;la7;ry;eak8i7;ck;fa7thro9;st;dy,ro7wl;ugh;mi7;sh;an,l4;nki8rri3;er;ng;cQdKlGnDppeti1rBs9tt2utop7;sy;ic;ce6pe7;ct;r7sen0;ay;ec8oma4ti8;ly;do1;i5l7;er7y;gy;en; hominBj8van7;tage;ec7;ti7;ve;em;cAe8qui7;tt0;ta1;te;i8ru0;al;de6;nt","Person|Noun":"trueยฆa0Eb07c03dWeUfQgOhLjHkiGlFmCnBolive,p7r4s3trini06v1wa0;ng,rd,tts;an,enus,iol0;a,et;ky,onPumm09;ay,e1o0uby;bin,d,se;ed,x;a2e1o0;l,tt04;aLnJ;dYge,tR;at,orm;a0eloW;t0x,ya;!s;a9eo,iH;ng,tP;a2e1o0;lGy;an,w3;de,smi4y;a0erb,iOolBuntR;ll,z0;el;ail,e0iLuy;ne;a1ern,i0lo;elds,nn;ith,n0;ny;a0dEmir,ula,ve;rl;a4e3i1j,ol0;ly;ck,x0;ie;an,ja;i0wn;sy;am,h0liff,rystal;a0in,ristian;mbers,ri0;ty;a4e3i2o,r0ud;an0ook;dy;ll;nedict,rg;k0nks;er;l0rt;fredo,ma","Actor|Verb":"trueยฆaCb8c5doctor,engineAfool,g3host,judge,m2nerd,p1recruit,scout,ushAvolunteAwi0;mp,tneA;arent,ilot;an,ime;eek,oof,r0uide;adu8oom;ha1o0;ach,nscript,ok;mpion,uffeur;o2u0;lly,tch0;er;ss;ddi1ffili0rchite1;ate;ct",MaleName:"trueยฆ0:H6;1:FZ;2:DS;3:GQ;4:CZ;5:FV;6:GM;7:FP;8:GW;9:ET;A:C2;B:GD;aF8bE1cCQdBMeASfA1g8Yh88i7Uj6Sk6Bl5Mm48n3So3Ip33qu31r26s1Et0Ru0Ov0CwTxSyHzC;aCor0;cChC1karia,nAT;!hDkC;!aF6;!ar7CeF5;aJevgenBSoEuC;en,rFVsCu3FvEF;if,uf;nDs6OusC;ouf,s6N;aCg;s,tC;an,h0;hli,nCrosE1ss09;is,nC;!iBU;avi2ho5;aPeNiDoCyaEL;jcieBJlfgang,odrFutR;lFnC;f8TsC;lCt1;ow;bGey,frEhe4QlC;aE5iCy;am,e,s;ed8iC;d,ed;eAur;i,ndeD2rn2sC;!l9t1;lDyC;l1ne;lDtC;!er;aCHy;aKernDAiFladDoC;jteB0lodymyr;!iC;mFQsDB;cFha0ktBZnceDrgCOvC;a0ek;!nC;t,zo;!e4StBV;lCnC7sily;!entC;in9J;ghE2lCm70nax,ri,sm0;riCyss87;ch,k;aWeRhNiLoGrEuDyC;!l2roEDs1;n6r6E;avD0eCist0oy,um0;ntCRvBKy;bFdAWmCny;!asDmCoharu;aFFie,y;!z;iA6y;mCt4;!my,othy;adEeoDia0SomC;!as;!dor91;!de4;dFrC;enBKrC;anBJeCy;ll,nBI;!dy;dgh,ha,iCnn2req,tsu5V;cDAka;aYcotWeThPiMlobod0oKpenc2tEurDvenAEyCzym1;ed,lvest2;aj,e9V;anFeDuC;!aA;fan17phEQvCwaA;e77ie;!islaCl9;v,w;lom1rBuC;leymaDHta;dDgmu9UlCm1yabonga;as,v8B;!dhart8Yn9;aEeClo75;lCrm0;d1t1;h9Jne,qu1Jun,wn,yne;aDbastiEDk2Yl5Mpp,rgCth,ymoCU;e1Dio;m4n;!tC;!ie,y;eDPlFmEnCq67tosCMul;dCj2UtiA5;e01ro;!iATkeB6mC4u5;!ik,vato9K;aZeUheC8iRoGuDyC;an,ou;b99dDf4peAssC;!elEG;ol00y;an,bLc7MdJel,geIh0lHmGnEry,sDyC;!ce;ar7Ocoe,s;!aCnBU;ld,n;an,eo;a7Ef;l7Jr;e3Eg2n9olfo,riC;go;bBNeDH;cCl9;ar87c86h54kCo;!ey,ie,y;cFeA3gDid,ubByCza;an8Ln06;g85iC;naC6s;ep;ch8Kfa5hHin2je8HlGmFndEoHpha5sDul,wi36yC;an,mo8O;h9Im4;alDSol3O;iD0on;f,ph;ul;e9CinC;cy,t1;aOeLhilJiFrCyoG;aDeC;m,st1;ka85v2O;eDoC;tr;r8GtC;er,ro;!ipCl6H;!p6U;dCLrcy,tC;ar,e9JrC;!o7;b9Udra8So9UscAHtri62ulCv8I;!ie,o7;ctav6Ji2lImHndrBRrGsDtCum6wB;is,to;aDc6k6m0vCwaBE;al79;ma;i,vR;ar,er;aDeksandr,ivC;er,i2;f,v;aNeLguyBiFoCu3O;aDel,j4l0ma0rC;beAm0;h,m;cFels,g5i9EkDlC;es,s;!au,h96l78olaC;!i,y;hCkCol76;ol75;al,d,il,ls1vC;ilAF;hom,tC;e,hC;anCy;!a5i5;aYeViLoGuDyC;l4Nr1;hamDr84staC;fa,p6E;ed,mG;di10e,hamEis4JntDritz,sCussa;es,he;e,y;ad,ed,mC;ad,ed;cGgu5hai,kFlEnDtchC;!e8O;a9Pik;house,o7t1;ae73eC3ha8Iolaj;ah,hDkC;!ey,y;aDeC;al,l;el,l;hDlv3rC;le,ri8Ev4T;di,met;ay0c00gn4hWjd,ks2NlTmadZnSrKsXtDuric7VxC;imilBKwe8B;eHhEi69tCus,y69;!eo,hCia7;ew,i67;eDiC;as,eu,s;us,w;j,o;cHiGkFlEqu8Qsha83tCv3;iCy;!m,n;in,on;el,o7us;a6Yo7us;!elCin,o7us;!l8o;frAEi5Zny,u5;achDcoCik;lm;ai,y;amDdi,e5VmC;oud;adCm6W;ou;aulCi9P;ay;aWeOiMloyd,oJuDyC;le,nd1;cFdEiDkCth2uk;a7e;gi,s,z;ov7Cv6Hw6H;!as,iC;a6Een;g0nn52renDuCvA4we7D;!iS;!zo;am,n4oC;n5r;a9Yevi,la5KnHoFst2thaEvC;eCi;nte;bo;nCpo8V;!a82el,id;!nC;aAy;mEnd1rDsz73urenCwr6K;ce,t;ry,s;ar,beAont;aOeIhalHiFla4onr63rDu5SylC;e,s;istCzysztof;i0oph2;er0ngsl9p,rC;ilA9k,ollos;ed,id;en0iGnDrmCv4Z;it;!dDnCt1;e2Ny;ri4Z;r,th;cp2j4mEna8BrDsp6them,uC;ri;im,l;al,il;a03eXiVoFuC;an,lCst3;en,iC;an,en,o,us;aQeOhKkub4AnIrGsDzC;ef;eDhCi9Wue;!ua;!f,ph;dCge;i,on;!aCny;h,s,th6J;anDnC;!ath6Hie,n72;!nC;!es;!l,sCy;ph;o,qu3;an,mC;!i,m6V;d,ffFns,rCs4;a7JemDmai7QoCry;me,ni1H;i9Dy;!e73rC;ey,y;cKdBkImHrEsDvi2yC;dBs1;on,p2;ed,oDrCv67;e6Qod;d,s61;al,es5Wis1;a,e,oCub;b,v;ob,qu13;aTbNchiMgLke53lija,nuKonut,rIsEtCv0;ai,suC;ki;aDha0i8XmaCsac;el,il;ac,iaC;h,s;a,vinCw3;!g;k,nngu6X;nac1Xor;ka;ai,rahC;im;aReLoIuCyd6;beAgGmFsC;eyDsC;a3e3;in,n;ber5W;h,o;m2raDsse3wC;a5Pie;c49t1K;a0Qct3XiGnDrC;beAman08;dr7VrC;iCy2N;!k,q1R;n0Tt3S;bKlJmza,nIo,rEsDyC;a5KdB;an,s0;lEo67r2IuCv9;hi5Hki,tC;a,o;an,ey;k,s;!im;ib;a08e00iUlenToQrMuCyorgy;iHnFsC;!taC;f,vC;!e,o;n6tC;er,h2;do,lC;herDlC;auCerQ;me;aEegCov2;!g,orC;!io,y;dy,h7C;dfr9nza3XrDttfC;ri6C;an,d47;!n;acoGlEno,oCuseppe;rgiCvan6O;!o,s;be6Ies,lC;es;mo;oFrC;aDha4HrC;it,y;ld,rd8;ffErgC;!e7iCy;!os;!r9;bElBrCv3;eCla1Nr4Hth,y;th;e,rC;e3YielC;!i4;aXeSiQlOorrest,rCyod2E;aHedFiC;edDtC;s,z;ri18;!d42eri11riC;ck,k;nCs2;cEkC;ie,lC;in,yn;esLisC;!co,z3M;etch2oC;ri0yd;d5lConn;ip;deriFliEng,rC;dinaCg4nan0B;nd8;pe,x;co;bCdi,hd;iEriC;ce,zC;io;an,en,o;benez2dZfrYit0lTmMnJo3rFsteb0th0ugenEvCymBzra;an,eCge4D;ns,re3K;!e;gi,iDnCrol,v3w3;est8ie,st;cCk;!h,k;o0DriCzo;co,qC;ue;aHerGiDmC;aGe3A;lCrh0;!iC;a10o,s;s1y;nu5;beAd1iEliDm2t1viCwood;n,s;ot28s;!as,j5Hot,sC;ha;a3en;!dGg6mFoDua2QwC;a2Pin;arC;do;oZuZ;ie;a04eTiOmitrNoFrag0uEwDylC;an,l0;ay3Hig4D;a3Gdl9nc0st3;minFnDri0ugCvydGy2S;!lF;!a36nCov0;e1Eie,y;go,iDykC;as;cCk;!k;i,y;armuFetDll1mitri7neCon,rk;sh;er,m6riC;ch;id;andLepak,j0lbeAmetri4nIon,rGsEvDwCxt2;ay30ey;en,in;hawn,moC;nd;ek,riC;ck;is,nC;is,y;rt;re;an,le,mKnIrEvC;e,iC;!d;en,iEne0PrCyl;eCin,yl;l45n;n,o,us;!iCny;el,lo;iCon;an,en,on;a0Fe0Ch03iar0lRoJrFuDyrC;il,us;rtC;!is;aEistC;iaCob12;no;ig;dy,lInErC;ey,neliCy;s,us;nEor,rDstaC;nt3;ad;or;by,e,in,l3t1;aHeEiCyde;fCnt,ve;fo0Xt1;menDt4;us;s,t;rFuDyC;!t1;dCs;e,io;enC;ce;aHeGrisC;!toC;phCs;!eC;!r;st2t;d,rCs;b5leC;s,y;cDdrCs6;ic;il;lHmFrC;ey,lDroCy;ll;!o7t1;er1iC;lo;!eb,v3;a09eZiVjorn,laUoSrEuCyr1;ddy,rtKst2;er;aKeFiEuDyC;an,ce,on;ce,no;an,ce;nDtC;!t;dDtC;!on;an,on;dFnC;dDisC;lav;en,on;!foOl9y;bby,gd0rCyd;is;i0Lke;bElDshC;al;al,lL;ek;nIrCshoi;at,nEtC;!raC;m,nd;aDhaCie;rd;rd8;!iDjam3nCs1;ie,y;to;kaMlazs,nHrC;n9rDtC;!holomew;eCy;tt;ey;dCeD;ar,iC;le;ar1Nb1Dd16fon15gust3hm12i0Zja0Yl0Bm07nTputsiSrGsaFugustEveDyCziz;a0kh0;ry;o,us;hi;aMchiKiJjun,mHnEon,tCy0;em,hCie,ur8;ur;aDoC;!ld;ud,v;aCin;an,nd8;!el,ki;baCe;ld;ta;aq;aMdHgel8tCw6;hoFoC;iDnC;!i8y;ne;ny;er7rCy;eDzC;ej;!as,i,j,s,w;!s;s,tolC;iCy;!y;ar,iEmaCos;nu5r;el;ne,r,t;aVbSdBeJfHiGl01onFphonsEt1vC;aPin;on;e,o;so,zo;!sR;!onZrC;ed;c,jaHksFssaHxC;!andC;er,rC;e,os,u;andCei;ar,er,r;ndC;ro;en;eDrecC;ht;rt8;dd3in,n,sC;taC;ir;ni;dDm6;ar;an,en;ad,eC;d,t;in;so;aGi,olErDvC;ik;ian8;f8ph;!o;mCn;!a;dGeFraDuC;!bakr,lfazl;hCm;am;!l;allFel,oulaye,ulC;!lDrahm0;an;ah,o;ah;av,on",Uncountable:"trueยฆ0:2E;1:2L;2:33;a2Ub2Lc29d22e1Rf1Ng1Eh16i11j0Yk0Wl0Rm0Hn0Do0Cp03rZsLt9uran2Jv7w3you gu0E;a5his17i4oo3;d,l;ldlife,ne;rm8t1;apor,ernacul29i3;neg28ol1Otae;eDhBiAo8r4un3yranny;a,gst1B;aff2Oea1Ko4ue nor3;th;o08u3;bleshoot2Ose1Tt;night,othpas1Vwn3;foEsfoE;me off,n;er3und1;e,mod2S;a,nnis;aDcCeBhAi9ki8o7p6t4u3weepstak0;g1Unshi2Hshi;ati08e3;am,el;ace2Keci0;ap,cc1meth2C;n,ttl0;lk;eep,ingl0or1C;lf,na1Gri0;ene1Kisso1C;d0Wfe2l4nd,t3;i0Iurn;m1Ut;abi0e4ic3;e,ke15;c3i01laxa11search;ogni10rea10;a9e8hys7luto,o5re3ut2;amble,mis0s3ten20;en1Zs0L;l3rk;i28l0EyH; 16i28;a24tr0F;nt3ti0M;i0s;bstetri24vercrowd1Qxyg09;a5e4owada3utella;ys;ptu1Ows;il poliZtional securi2;aAe8o5u3;m3s1H;ps;n3o1K;ey,o3;gamy;a3cha0Elancholy,rchandi1Htallurgy;sl0t;chine3g1Aj1Hrs,thema1Q; learn1Cry;aught1e6i5ogi4u3;ck,g12;c,s1M;ce,ghtn18nguis1LteratWv1;ath1isVss;ara0EindergartPn3;icke0Aowled0Y;e3upit1;a3llyfiGwel0G;ns;ce,gnor6mp5n3;forma00ter3;net,sta07;atiSort3rov;an18;a7e6isto09o3ung1;ckey,mework,ne4o3rseradi8spitali2use arrest;ky;s2y;adquarteXre;ir,libut,ppiHs3;hi3te;sh;ene8l6o5r3um,ymnas11;a3eZ;niUss;lf,re;ut3yce0F;en; 3ti0W;edit0Hpo3;ol;aNicFlour,o4urnit3;ure;od,rgive3uri1wl;ness;arCcono0LducaBlectr9n7quip8thi0Pvery6x3;ist4per3;ti0B;en0J;body,o08th07;joy3tertain3;ment;ici2o3;ni0H;tiS;nings,th;emi02i6o4raugh3ynas2;ts;pe,wnstai3;rs;abet0ce,s3;honZrepu3;te;aDelciChAivi07l8o3urrency;al,ld w6mmenta5n3ral,ttIuscoB;fusiHt 3;ed;ry;ar;assi01oth0;es;aos,e3;eMwK;us;d,rO;a8i6lood,owlHread5u3;ntGtt1;er;!th;lliarJs3;on;g3ss;ga3;ge;cKdviJeroGirFmBn6ppeal court,r4spi3thleL;rin;ithmet3sen3;ic;i6y3;o4th3;ing;ne;se;en5n3;es2;ty;ds;craft;bi8d3nau7;yna3;mi6;ce;id,ous3;ti3;cs",Infinitive:"trueยฆ0:9G;1:9T;2:AD;3:90;4:9Z;5:84;6:AH;7:A9;8:92;9:A0;A:AG;B:AI;C:9V;D:8R;E:8O;F:97;G:6H;H:7D;a94b8Hc7Jd68e4Zf4Mg4Gh4Ai3Qj3Nk3Kl3Bm34nou48o2Vp2Equ2Dr1Es0CtZuTvRwI;aOeNiLors5rI;eJiI;ng,te;ak,st3;d5e8TthI;draw,er;a2d,ep;i2ke,nIrn;d1t;aIie;liADniAry;nJpI;ho8Llift;cov1dJear8Hfound8DlIplug,rav82tie,ve94;eaAo3X;erIo;cut,go,staAFvalA3w2G;aSeQhNoMrIu73;aIe72;ffi3Smp3nsI;aBfo7CpI;i8oD;pp3ugh5;aJiJrIwaD;eat5i2;nk;aImA0;ch,se;ck3ilor,keImp1r8L;! paD;a0Ic0He0Fh0Bi0Al08mugg3n07o05p02qu01tUuLwI;aJeeIim;p,t5;ll7Wy;bNccMffLggeCmmKppJrI;mouFpa6Zvi2;o0re6Y;ari0on;er,i4;e7Numb;li9KmJsiIveD;de,st;er9it;aMe8MiKrI;ang3eIi2;ng27w;fIng;f5le;b,gg1rI;t3ve;a4AiA;a4UeJit,l7DoI;il,of;ak,nd;lIot7Kw;icEve;atGeak,i0O;aIi6;m,y;ft,ng,t;aKi6CoJriIun;nk,v6Q;ot,rt5;ke,rp5tt1;eIll,nd,que8Gv1w;!k,m;aven9ul8W;dd5tis1Iy;a0FeKiJoI;am,t,ut;d,p5;a0Ab08c06d05f01group,hea00iZjoi4lXmWnVpTq3MsOtMup,vI;amp,eJiIo3B;sEve;l,rI;e,t;i8rI;ie2ofE;eLiKpo8PtIurfa4;o24rI;aHiBuctu8;de,gn,st;mb3nt;el,hra0lIreseF;a4e71;d1ew,o07;aHe3Fo2;a7eFiIo6Jy;e2nq41ve;mbur0nf38;r0t;inKleBocus,rJuI;el,rbiA;aBeA;an4e;aBu4;ei2k8Bla43oIyc3;gni39nci3up,v1;oot,uI;ff;ct,d,liIp;se,ze;tt3viA;aAenGit,o7;aWerUinpoiFlumm1LoTrLuI;b47ke,niArIt;poDsuI;aFe;eMoI;cKd,fe4XhibEmo7noJpo0sp1tru6vI;e,i6o5L;un4;la3Nu8;aGclu6dJf1occupy,sup0JvI;a6BeF;etermi4TiB;aGllu7rtr5Ksse4Q;cei2fo4NiAmea7plex,sIva6;eve8iCua6;mp1rItrol,ve;a6It6E;bOccuNmEpMutLverIwe;l07sJtu6Yu0wI;helm;ee,h1F;gr5Cnu2Cpa4;era7i4Ipo0;py,r;ey,seItaH;r2ss;aMe0ViJoIultiply;leCu6Pw;micJnIspla4;ce,g3us;!k;iIke,na9;m,ntaH;aPeLiIo0u3N;ke,ng1quIv5;eIi6S;fy;aKnIss5;d,gI;th5;rn,ve;ng2Gu1N;eep,idnJnI;e4Cow;ap;oHuI;gg3xtaI;po0;gno8mVnIrk;cTdRfQgeChPitia7ju8q1CsNtKun6EvI;a6eIo11;nt,rt,st;erJimi6BoxiPrI;odu4u6;aBn,pr03ru6C;iCpi8tIu8;all,il,ruB;abEibE;eCo3Eu0;iIul9;ca7;i7lu6;b5Xmer0pI;aLer4Uin9ly,oJrI;e3Ais6Bo2;rt,se,veI;riA;le,rt;aLeKiIoiCuD;de,jaInd1;ck;ar,iT;mp1ng,pp5raIve;ng5Mss;ath1et,iMle27oLrI;aJeIow;et;b,pp3ze;!ve5A;gg3ve;aTer45i5RlSorMrJuI;lf4Cndrai0r48;eJiIolic;ght5;e0Qsh5;b3XeLfeEgJsI;a3Dee;eIi2;!t;clo0go,shIwa4Z;ad3F;att1ee,i36;lt1st5;a0OdEl0Mm0FnXquip,rWsVtGvTxI;aRcPeDhOiNpJtIu6;ing0Yol;eKi8lIo0un9;aHoI;it,re;ct,di7l;st,t;a3oDu3B;e30lI;a10u6;lt,mi28;alua7oI;ke,l2;chew,pou0tab19;a0u4U;aYcVdTfSgQhan4joy,lPqOrNsuMtKvI;e0YisI;a9i50;er,i4rI;aHenGuC;e,re;iGol0F;ui8;ar9iC;a9eIra2ulf;nd1;or4;ang1oIu8;r0w;irc3lo0ou0ErJuI;mb1;oaGy4D;b3ct;bKer9pI;hasiIow1;ze;aKody,rI;a4oiI;d1l;lm,rk;ap0eBuI;ci40de;rIt;ma0Rn;a0Re04iKo,rIwind3;aw,ed9oI;wn;agno0e,ff1g,mi2Kne,sLvI;eIul9;rIst;ge,t;aWbVcQlod9mant3pNru3TsMtI;iIoDu37;lJngI;uiA;!l;ol2ua6;eJlIo0ro2;a4ea0;n0r0;a2Xe36lKoIu0S;uIv1;ra9;aIo0;im;a3Kur0;b3rm;af5b01cVduBep5fUliTmQnOpMrLsiCtaGvI;eIol2;lop;ch;a20i2;aDiBloIoD;re,y;oIy;te,un4;eJoI;liA;an;mEv1;a4i0Ao06raud,y;ei2iMla8oKrI;ee,yI;!pt;de,mIup3;missi34po0;de,ma7ph1;aJrief,uI;g,nk;rk;mp5rk5uF;a0Dea0h0Ai09l08oKrIurta1G;a2ea7ipp3uI;mb3;ales4e04habEinci6ll03m00nIrro6;cXdUfQju8no7qu1sLtKvI;eIin4;ne,r9y;aHin2Bribu7;er2iLoli2Epi8tJuI;lt,me;itu7raH;in;d1st;eKiJoIroFu0;rm;de,gu8rm;ss;eJoI;ne;mn,n0;eIlu6ur;al,i2;buCe,men4pI;eIi3ly;l,te;eBi6u6;r4xiC;ean0iT;rcumveFte;eJirp,oI;o0p;riAw;ncIre5t1ulk;el;a02eSi6lQoPrKuI;iXrIy;st,y;aLeaKiJoad5;en;ng;stfeLtX;ke;il,l11mba0WrrMth1;eIow;ed;!coQfrie1LgPhMliLqueaKstJtrIwild1;ay;ow;th;e2tt3;a2eJoI;ld;ad;!in,ui3;me;bysEckfi8ff3tI;he;b15c0Rd0Iff0Ggree,l0Cm09n03ppZrXsQttOuMvJwaE;it;eDoI;id;rt;gIto0X;meF;aIeCraB;ch,in;pi8sJtoI;niA;aKeIi04u8;mb3rt,ss;le;il;re;g0Hi0ou0rI;an9i2;eaKly,oiFrI;ai0o2;nt;r,se;aMi0GnJtI;icipa7;eJoIul;un4y;al;ly0;aJu0;se;lga08ze;iKlI;e9oIu6;t,w;gn;ix,oI;rd;a03jNmiKoJsoI;rb;pt,rn;niIt;st1;er;ouJuC;st;rn;cLhie2knowled9quiItiva7;es4re;ce;ge;eQliOoKrJusI;e,tom;ue;mIst;moJpI;any,liA;da7;ma7;te;pt;andPduBet,i6oKsI;coKol2;ve;liArt,uI;nd;sh;de;ct;on",Person:"trueยฆ0:1Q;a29b1Zc1Md1Ee18f15g13h0Ri0Qj0Nk0Jl0Gm09n06o05p00rPsItCusain bolt,v9w4xzibit,y1;anni,oko on2uji,v1;an,es;en,o;a3ednesday adams,i2o1;lfram,o0Q;ll ferrell,z khalifa;lt disn1Qr1;hol,r0G;a2i1oltai06;n dies0Zrginia wo17;lentino rossi,n goG;a4h3i2ripp,u1yra banks;lZpac shakur;ger woods,mba07;eresa may,or;kashi,t1ylor;um,ya1B;a5carlett johanss0h4i3lobodan milosevic,no2ocr1Lpider1uperm0Fwami; m0Em0E;op dogg,w whi1H;egfried,nbad;akespeaTerlock holm1Sia labeouf;ddam hussa16nt1;a cla11ig9;aAe6i5o3u1za;mi,n dmc,paul,sh limbau1;gh;bin hood,d stew16nald1thko;in0Mo;han0Yngo starr,valdo;ese witherspo0i1mbrandt;ll2nh1;old;ey,y;chmaninoff,ffi,iJshid,y roma1H;a4e3i2la16o1uff daddy;cahont0Ie;lar,p19;le,rZ;lm17ris hilt0;leg,prah winfr0Sra;a2e1iles cra1Bostradam0J; yo,l5tt06wmQ;pole0s;a5e4i2o1ubar03;by,lie5net,rriss0N;randa ju1tt romn0M;ly;rl0GssiaB;cklemo1rkov,s0ta hari,ya angelou;re;ady gaga,e1ibera0Pu;bron jam0Xch wale1e;sa;anye west,e3i1obe bryant;d cudi,efer suther1;la0P;ats,sha;a2effers0fk,k rowling,rr tolki1;en;ck the ripp0Mwaharlal nehru,y z;liTnez,ron m7;a7e5i3u1;lk hog5mphrey1sa01;! bog05;l1tl0H;de; m1dwig,nry 4;an;ile selassFlle ber4m3rrison1;! 1;ford;id,mo09;ry;ast0iannis,o1;odwPtye;ergus0lorence nightinga08r1;an1ederic chopN;s,z;ff5m2nya,ustaXzeki1;el;eril lagasse,i1;le zatop1nem;ek;ie;a6e4i2octor w1rake;ho;ck w1ego maradoC;olf;g1mi lovaOnzel washingt0;as;l1nHrth vadR;ai lNt0;a8h5lint0o1thulhu;n1olio;an,fuci1;us;on;aucKop2ristian baMy1;na;in;millo,ptain beefhe4r1;dinal wols2son1;! palmF;ey;art;a8e5hatt,i3oHro1;ck,n1;te;ll g1ng crosby;atB;ck,nazir bhut2rtil,yon1;ce;to;nksy,rack ob1;ama;l 6r3shton kutch2vril lavig8yn ra1;nd;er;chimed2istot1;le;es;capo2paci1;no;ne",Adjective:"trueยฆ0:AI;1:BS;2:BI;3:BA;4:A8;5:84;6:AV;7:AN;8:AF;9:7H;A:BQ;B:AY;C:BC;D:BH;E:9Y;aA2b9Ec8Fd7We79f6Ng6Eh61i4Xj4Wk4Tl4Im41n3Po36p2Oquart7Pr2Ds1Dt14uSvOwFye29;aMeKhIiHoF;man5oFrth7G;dADzy;despreB1n w97s86;acked1UoleF;!sa6;ather1PeFll o70ste1D;!k5;nt1Ist6Ate4;aHeGiFola5T;bBUce versa,gi3Lle;ng67rsa5R;ca1gBSluAV;lt0PnLpHrGsFttermoBL;ef9Ku3;b96ge1; Hb32pGsFtiAH;ca6ide d4R;er,i85;f52to da2;a0Fbeco0Hc0Bd04e02f01gu1XheaBGiXkn4OmUnTopp06pRrNsJtHus0wF;aFiel3K;nt0rra0P;app0eXoF;ld,uS;eHi37o5ApGuF;perv06spec39;e1ok9O;en,ttl0;eFu5;cogn06gul2RlGqu84sF;erv0olv0;at0en33;aFrecede0E;id,rallel0;am0otic0;aFet;rri0tF;ch0;nFq26vers3;sur0terFv7U;eFrupt0;st0;air,inish0orese98;mploy0n7Ov97xpF;ect0lain0;eHisFocume01ue;clFput0;os0;cid0rF;!a8Scov9ha8Jlyi8nea8Gprivileg0sMwF;aFei9I;t9y;hGircumcFonvin2U;is0;aFeck0;lleng0rt0;b20ppea85ssuGttend0uthorF;iz0;mi8;i4Ara;aLeIhoHip 25oGrF;anspare1encha1i2;geth9leADp notch,rpB;rny,ugh6H;ena8DmpGrFs6U;r49tia4;eCo8P;leFst4M;nt0;a0Dc09e07h06i04ki03l01mug,nobbi4XoVpRqueami4XtKuFymb94;bHccinAi generis,pFr5;erFre7N;! dup9b,vi70;du0li7Lp6IsFurb7J;eq9Atanda9X;aKeJi16o2QrGubboFy4Q;rn;aightFin5GungS; fFfF;or7V;adfa9Pri6;lwa6Ftu82;arHeGir6NlendBot Fry;on;c3Qe1S;k5se; call0lImb9phistic16rHuFviV;ndFth1B;proof;dBry;dFub6; o2A;e60ipF;pe4shod;ll0n d7R;g2HnF;ceEg6ist9;am3Se9;co1Zem5lfFn6Are7; suf4Xi43;aGholFient3A;ar5;rlFt4A;et;cr0me,tisfac7F;aOeIheumatoBiGoF;bu8Ztt7Gy3;ghtFv3; 1Sf6X;cJdu8PlInown0pro69sGtF;ard0;is47oF;lu2na1;e1Suc45;alcit8Xe1ondi2;bBci3mpa1;aSePicayu7laOoNrGuF;bl7Tnjabi;eKiIoF;b7VfGmi49pFxi2M;er,ort81;a7uD;maFor,sti7va2;!ry;ciDexis0Ima2CpaB;in55puli8G;cBid;ac2Ynt 3IrFti2;ma40tFv7W;!i3Z;i2YrFss7R;anoBtF; 5XiF;al,s5V;bSffQkPld OnMrLth9utKverF;!aIbMdHhGni75seas,t,wF;ei74rou74;a63e7A;ue;ll;do1Ger,si6A;d3Qg2Aotu5Z; bFbFe on o7g3Uli7;oa80;fashion0school;!ay; gua7XbFha5Uli7;eat;eHligGsF;ce7er0So1C;at0;diFse;a1e1;aOeNiMoGuF;anc0de; moEnHrthFt6V;!eFwe7L;a7Krn;chaGdescri7Iprof30sF;top;la1;ght5;arby,cessa4ighbor5wlyw0xt;k0usiaFv3;ti8;aQeNiLoHuF;dIltiF;facet0p6;deHlGnFot,rbBst;ochro4Xth5;dy;rn,st;ddle ag0nF;dbloZi,or;ag9diocEga,naGrFtropolit4Q;e,ry;ci8;cIgenta,inHj0Fkeshift,mmGnFri4Oscu61ver18;da5Dy;ali4Lo4U;!stream;abEho;aOeLiIoFumberi8;ngFuti1R;stan3RtF;erm,i4H;ghtGteraF;l,ry,te;heart0wei5O;ft JgFss9th3;al,eFi0M;nda4;nguBps0te5;apGind5noF;wi8;ut;ad0itte4uniW;ce co0Hgno6Mll0Cm04nHpso 2UrF;a2releF;va1; ZaYcoWdReQfOgrNhibi4Ri05nMoLsHtFvalu5M;aAeF;nDrdepe2K;a7iGolFuboI;ub6ve1;de,gF;nifica1;rdi5N;a2er;own;eriIiLluenVrF;ar0eq5H;pt,rt;eHiGoFul1O;or;e,reA;fiFpe26termi5E;ni2;mpFnsideCrreA;le2;ccuCdeq5Ene,ppr4J;fFsitu,vitro;ro1;mJpF;arHeGl15oFrop9;li2r11;n2LrfeA;ti3;aGeFi18;d4BnD;tuE;egGiF;c0YteC;al,iF;tiF;ma2;ld;aOelNiLoFuma7;a4meInHrrGsFur5;ti6;if4E;e58o3U; ma3GsF;ick;ghfalut2HspF;an49;li00pf33;i4llow0ndGrdFtM; 05coEworki8;sy,y;aLener44iga3Blob3oKrGuF;il1Nng ho;aFea1Fizzl0;cGtF;ef2Vis;ef2U;ld3Aod;iFuc2D;nf2R;aVeSiQlOoJrF;aGeFil5ug3;q43tf2O;gFnt3S;i6ra1;lk13oHrF; keeps,eFge0Vm9tu41;g0Ei2Ds3R;liF;sh;ag4Mowe4uF;e1or45;e4nF;al,i2;d Gmini7rF;ti6ve1;up;bl0lDmIr Fst pac0ux;oGreacF;hi8;ff;ed,ili0R;aXfVlTmQnOqu3rMthere3veryday,xF;aApIquisi2traHuF;be48lF;ta1;!va2L;edRlF;icF;it;eAstF;whi6; Famor0ough,tiE;rou2sui2;erGiF;ne1;ge1;dFe2Aoq34;er5;ficF;ie1;g9sF;t,ygF;oi8;er;aWeMiHoGrFue;ea4owY;ci6mina1ne,r31ti8ubQ;dact2Jfficult,m,sGverF;ge1se;creGePjoi1paCtF;a1inA;et,te; Nadp0WceMfiLgeneCliJmuEpeIreliAsGvoF;id,ut;pFtitu2ul1L;eCoF;nde1;ca2ghF;tf13;a1ni2;as0;facto;i5ngero0I;ar0Ce09h07i06l05oOrIuF;rmudgeon5stoma4teF;sy;ly;aIeHu1EystalF; cleFli7;ar;epy;fFv17z0;ty;erUgTloSmPnGrpoCunterclVveFy;rt;cLdJgr21jIsHtrF;aFi2;dic0Yry;eq1Yta1;oi1ug3;escenFuN;di8;a1QeFiD;it0;atoDmensuCpF;ass1SulF;so4;ni3ss3;e1niza1;ci1J;ockwiD;rcumspeAvil;eFintzy;e4wy;leGrtaF;in;ba2;diac,ef00;a00ePiLliJoGrFuck nak0;and new,isk,on22;gGldface,naF; fi05fi05;us;nd,tF;he;gGpartisFzarE;an;tiF;me;autifOhiNlLnHsFyoN;iWtselF;li8;eGiFt;gn;aFfi03;th;at0oF;v0w;nd;ul;ckwards,rF;e,rT; priori,b13c0Zd0Tf0Ng0Ihe0Hl09mp6nt06pZrTsQttracti0MuLvIwF;aGkF;wa1B;ke,re;ant garGeraF;ge;de;diIsteEtF;heFoimmu7;nt07;re;to4;hGlFtu2;eep;en;bitIchiv3roHtF;ifiFsy;ci3;ga1;ra4;ry;pFt;aHetizi8rF;oprF;ia2;llFre1;ed,i8;ng;iquFsy;at0e;ed;cohKiJkaHl,oGriFterX;ght;ne,of;li7;ne;ke,ve;olF;ic;ad;ain07gressiIi6rF;eeF;ab6;le;ve;fGraB;id;ectGlF;ue1;ioF;na2; JaIeGvF;erD;pt,qF;ua2;ma1;hoc,infinitum;cuCquiGtu3u2;al;esce1;ra2;erSjeAlPoNrKsGuF;nda1;e1olu2trF;aAuD;se;te;eaGuF;pt;st;aFve;rd;aFe;ze;ct;ra1;nt",Pronoun:"trueยฆelle,h3i2me,she,th0us,we,you;e0ou;e,m,y;!l,t;e,im",Preposition:"trueยฆaPbMcLdKexcept,fIinGmid,notwithstandiWoDpXqua,sCt7u4v2w0;/o,hereSith0;! whHin,oW;ersus,i0;a,s a vis;n1p0;!on;like,til;h1ill,oward0;!s;an,ereby,r0;ough0u;!oM;ans,ince,o that,uch G;f1n0ut;!to;!f;! 0to;effect,part;or,r0;om;espite,own,u3;hez,irca;ar1e0oBy;sides,tween;ri7;bo8cross,ft7lo6m4propos,round,s1t0;!op;! 0;a whole,long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"trueยฆ0:18;1:1E;2:1D;3:14;a1Db15c0Sd0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Am01new UoRpKqueens parkJreal salt lake,sBt6utah jazz,vancouver whitecaps,w4yW;ashington 4h10;natio1Mredski2wizar0W;ampa bay 7e6o4;ronto 4ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasD;buccanee0ra0K;a8eattle 6porting kansas0Wt4; louis 4oke0V;c1Drams;marine0s4;eah13ounH;cramento Rn 4;antonio spu0diego 4francisco gJjose earthquak1;char08paB; ran07;a9h6ittsburgh 5ortland t4;imbe0rail blaze0;pirat1steele0;il4oenix su2;adelphia 4li1;eagl1philNunE;dr1;akland 4klahoma city thunder,rlando magic;athle0Lrai4;de0;england 8orleans 7york 4;g5je3knYme3red bul0Xy4;anke1;ian3;pelica2sain3;patrio3revolut4;ion;anchEeAi4ontreal impact;ami 8lwaukee b7nnesota 4;t5vi4;kings;imberwolv1wi2;rewe0uc0J;dolphi2heat,marli2;mphis grizz4ts;li1;a6eic5os angeles 4;clippe0dodFlaB;esterV; galaxy,ke0;ansas city 4nF;chiefs,roya0D; pace0polis col3;astr05dynamo,rocke3texa2;olden state warrio0reen bay pac4;ke0;allas 8e4i04od6;nver 6troit 4;lio2pisto2ti4;ge0;broncYnugge3;cowbo5maver4;icZ;ys;arEelLhAincinnati 8leveland 6ol4;orado r4umbus crew sc;api7ocki1;brow2cavalie0guar4in4;dia2;bengaVre4;ds;arlotte horAicago 4;b5cubs,fire,wh4;iteB;ea0ulQ;diff4olina panthe0; city;altimore Alackburn rove0oston 6rooklyn 4uffalo bilN;ne3;ts;cel5red4; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 4;brav1falco2h4;awA;ns;es;on villa,r4;os;c6di4;amondbac4;ks;ardi4;na4;ls",Unit:"trueยฆa07b04cXdWexVfTgRhePinYjoule0BkMlJmDnan08oCp9quart0Bsq ft,t7volts,w6y2ze3ยฐ1ยต0;g,s;c,f,n;dVear1o0;ttR; 0s 0;old;att,b;erNon0;!ne02;ascals,e1i0;cXnt00;rcent,tJ;hms,unceY;/s,e4i0mยฒ,ยฒ,ยณ;/h,cro2l0;e0liK;!ยฒ;grLsR;gCtJ;it1u0;menQx;erPreP;b5elvins,ilo1m0notO;/h,ph,ยฒ;!byGgrEmCs;ct0rtzL;aJogrC;allonJb0ig3rB;ps;a0emtEl oz,t4;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;ยฒ,ยณ;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s","Noun|Gerund":"trueยฆ0:3O;1:3M;2:3N;3:3D;4:32;5:2V;6:3E;7:3K;8:36;9:3J;A:3B;a3Pb37c2Jd27e23f1Vg1Sh1Mi1Ij1Gk1Dl18m13n11o0Wp0Pques0Sr0EsTtNunderMvKwFyDzB;eroi0oB;ni0o3P;aw2eB;ar2l3;aEed4hispe5i5oCrB;ap8est3i1;n0ErB;ki0r31;i1r2s9tc9;isualizi0oB;lunt1Vti0;stan4ta6;aFeDhin6iCraBy8;c6di0i2vel1M;mi0p8;aBs1;c9si0;l6n2s1;aUcReQhOiMkatKl2Wmo6nowJpeItFuCwB;ea5im37;b35f0FrB;fi0vB;e2Mi2J;aAoryt1KrCuB;d2KfS;etc9ugg3;l3n4;bCi0;ebBi0;oar4;gnBnAt1;a3i0;ip8oB;p8rte2u1;a1r27t1;hCo5reBulp1;a2Qe2;edu3oo3;i3yi0;aKeEi4oCuB;li0n2;oBwi0;fi0;aFcEhear7laxi0nDpor1sB;pon4tructB;r2Iu5;de5;or4yc3;di0so2;p8ti0;aFeacek20laEoCrBublis9;a1Teten4in1oces7;iso2siB;tio2;n2yi0;ckaAin1rB;ki0t1O;fEpeDrganiCvB;erco24ula1;si0zi0;ni0ra1;fe5;avi0QeBur7;gotia1twor6;aDeCi2oB;de3nito5;a2dita1e1ssaA;int0XnBrke1;ifUufactu5;aEeaDiBodAyi0;cen7f1mi1stB;e2i0;r2si0;n4ug9;iCnB;ea4it1;c6l3;ogAuB;dAgg3stif12;ci0llust0VmDnBro2;nova1sp0NterBven1;ac1vie02;agi2plo4;aDea1iCoBun1;l4w3;ki0ri0;nd3rB;roWvB;es1;aCene0Lli4rBui4;ee1ie0N;rde2the5;aHeGiDlCorBros1un4;e0Pmat1;ir1oo4;gh1lCnBs9;anZdi0;i0li0;e3nX;r0Zscina1;a1du01nCxB;erci7plo5;chan1di0ginB;ee5;aLeHiGoub1rCum8wB;el3;aDeCiB;bb3n6vi0;a0Qs7;wi0;rTscoDvi0;ba1coZlBvelo8;eCiB;ve5;ga1;nGti0;aVelebUhSlPoDrBur3yc3;aBos7yi0;f1w3;aLdi0lJmFnBo6pi0ve5;dDsCvinB;ci0;trBul1;uc1;muniDpB;lBo7;ai2;ca1;lBo5;ec1;c9ti0;ap8eaCimToBubT;ni0t9;ni0ri0;aBee5;n1t1;ra1;m8rCs1te5;ri0;vi0;aPeNitMlLoGrDuB;dge1il4llBr8;yi0;an4eat9oadB;cas1;di0;a1mEokB;i0kB;ee8;pi0;bi0;es7oa1;c9i0;gin2lonAt1;gi0;bysit1c6ki0tt3;li0;ki0;bando2cGdverti7gi0pproac9rgDssuCtB;trac1;mi0;ui0;hi0;si0;coun1ti0;ti0;ni0;ng",PhrasalVerb:"trueยฆ0:92;1:96;2:8H;3:8V;4:8A;5:83;6:85;7:98;8:90;9:8G;A:8X;B:8R;C:8U;D:8S;E:70;F:97;G:8Y;H:81;I:7H;J:79;a9Fb7Uc6Rd6Le6Jf5Ig50h4Biron0j47k40l3Em31n2Yo2Wp2Cquiet Hr1Xs0KtZuXvacuu6QwNyammerBzK;ero Dip LonK;e0k0;by,ov9up;aQeMhLiKor0Mrit19;mp0n3Fpe0r5s5;ackAeel Di0S;aLiKn33;gh 3Wrd0;n Dr K;do1in,oJ;it 79k5lk Lrm 69sh Kt83v60;aw3do1o7up;aw3in,oC;rgeBsK;e 2herE;a00eYhViRoQrMuKypP;ckErn K;do1in,oJup;aLiKot0y 30;ckl7Zp F;ck HdK;e 5Y;n7Wp 3Es5K;ck MdLe Kghten 6me0p o0Rre0;aw3ba4do1in,up;e Iy 2;by,oG;ink Lrow K;aw3ba4in,up;ba4ov9up;aKe 77ll62;m 2r 5M;ckBke Llk K;ov9shit,u47;aKba4do1in,leave,o4Dup;ba4ft9pa69w3;a0Vc0Te0Mh0Ii0Fl09m08n07o06p01quar5GtQuOwK;earMiK;ngLtch K;aw3ba4o8K; by;cKi6Bm 2ss0;k 64;aReQiPoNrKud35;aigh2Det75iK;ke 7Sng K;al6Yup;p Krm2F;by,in,oG;c3Ln3Lr 2tc4O;p F;c3Jmp0nd LrKveAy 2O;e Ht 2L;ba4do1up;ar3GeNiMlLrKurB;ead0ingBuc5;a49it 6H;c5ll o3Cn 2;ak Fe1Xll0;a3Bber 2rt0und like;ap 5Vow Duggl5;ash 6Noke0;eep NiKow 6;cLp K;o6Dup;e 68;in,oK;ff,v9;de19gn 4NnKt 6Gz5;gKkE; al6Ale0;aMoKu5W;ot Kut0w 7M;aw3ba4f48oC;c2WdeEk6EveA;e Pll1Nnd Orv5tK; Ktl5J;do1foLin,o7upK;!on;ot,r5Z;aw3ba4do1in,o33up;oCto;al66out0rK;ap65ew 6J;ilAv5;aXeUiSoOuK;b 5Yle0n Kstl5;aLba4do1inKo2Ith4Nu5P;!to;c2Xr8w3;ll Mot LpeAuK;g3Ind17;a2Wf3Po7;ar8in,o7up;ng 68p oKs5;ff,p18;aKelAinEnt0;c6Hd K;o4Dup;c27t0;aZeYiWlToQrOsyc35uK;ll Mn5Kt K;aKba4do1in,oJto47up;pa4Dw3;a3Jdo1in,o21to45up;attleBess KiNop 2;ah2Fon;iLp Kr4Zu1Gwer 6N;do1in,o6Nup;nt0;aLuK;gEmp 6;ce u20y 6D;ck Kg0le 4An 6p5B;oJup;el 5NncilE;c53ir 39n0ss MtLy K;ba4oG; Hc2R;aw3ba4in,oJ;pKw4Y;e4Xt D;aLerd0oK;dAt53;il Hrrow H;aTeQiPoLuK;ddl5ll I;c1FnkeyMp 6uthAve K;aKdo1in,o4Lup;l4Nw3; wi4K;ss0x 2;asur5e3SlLss K;a21up;t 6;ke Ln 6rKs2Ax0;k 6ryA;do,fun,oCsure,up;a02eViQoLuK;ck0st I;aNc4Fg MoKse0;k Kse4D;aft9ba4do1forw37in56o0Zu46;in,oJ;d 6;e NghtMnLsKve 00;ten F;e 2k 2; 2e46;ar8do1in;aMt LvelK; oC;do1go,in,o7up;nEve K;in,oK;pKut;en;c5p 2sh LtchBughAy K;do1o59;in4Po7;eMick Lnock K;do1oCup;oCup;eLy K;in,up;l Ip K;aw3ba4do1f04in,oJto,up;aMoLuK;ic5mpE;ke3St H;c43zz 2;a01eWiToPuK;nLrrKsh 6;y 2;keLt K;ar8do1;r H;lKneErse3K;d Ke 2;ba4dKfast,o0Cup;ear,o1;de Lt K;ba4on,up;aw3o7;aKlp0;d Ml Ir Kt 2;fKof;rom;f11in,o03uW;cPm 2nLsh0ve Kz2P;at,it,to;d Lg KkerP;do1in,o2Tup;do1in,oK;ut,v9;k 2;aZeTive Rloss IoMrLunK; f0S;ab hold,in43ow 2U; Kof 2I;aMb1Mit,oLr8th1IuK;nd9;ff,n,v9;bo7ft9hQw3;aw3bKdo1in,oJrise,up,w3;a4ir2H;ar 6ek0t K;aLb1Fdo1in,oKr8up;ff,n,ut,v9;cLhKl2Fr8t,w3;ead;ross;d aKng 2;bo7;a0Ee07iYlUoQrMuK;ck Ke2N;ar8up;eLighten KownBy 2;aw3oG;eKshe27; 2z5;g 2lMol Krk I;aKwi20;bo7r8;d 6low 2;aLeKip0;sh0;g 6ke0mKrKtten H;e F;gRlPnNrLsKzzle0;h F;e Km 2;aw3ba4up;d0isK;h 2;e Kl 1T;aw3fPin,o7;ht ba4ure0;ePnLsK;s 2;cMd K;fKoG;or;e D;d04l 2;cNll Krm0t1G;aLbKdo1in,o09sho0Eth08victim;a4ehi2O;pa0C;e K;do1oGup;at Kdge0nd 12y5;in,o7up;aOi1HoNrK;aLess 6op KuN;aw3b03in,oC;gBwB; Ile0ubl1B;m 2;a0Ah05l02oOrLut K;aw3ba4do1oCup;ackBeep LoKy0;ss Dwd0;by,do1in,o0Uup;me NoLuntK; o2A;k 6l K;do1oG;aRbQforOin,oNtKu0O;hLoKrue;geth9;rough;ff,ut,v9;th,wK;ard;a4y;paKr8w3;rt;eaLose K;in,oCup;n 6r F;aNeLiK;ll0pE;ck Der Kw F;on,up;t 2;lRncel0rOsMtch LveE; in;o1Nup;h Dt K;doubt,oG;ry LvK;e 08;aw3oJ;l Km H;aLba4do1oJup;ff,n,ut;r8w3;a0Ve0MiteAl0Fo04rQuK;bblNckl05il0Dlk 6ndl05rLsKtMy FzzA;t 00;n 0HsK;t D;e I;ov9;anWeaUiLush K;oGup;ghQng K;aNba4do1forMin,oLuK;nd9p;n,ut;th;bo7lKr8w3;ong;teK;n 2;k K;do1in,o7up;ch0;arTg 6iRn5oPrNssMttlLunce Kx D;aw3ba4;e 6; ar8;e H;do1;k Dt 2;e 2;l 6;do1up;d 2;aPeed0oKurt0;cMw K;aw3ba4do1o7up;ck;k K;in,oC;ck0nk0stA; oQaNef 2lt0nd K;do1ov9up;er;up;r Lt K;do1in,oCup;do1o7;ff,nK;to;ck Pil0nMrgLsK;h D;ainBe D;g DkB; on;in,o7;aw3do1in,oCup;ff,ut;ay;ct FdQir0sk MuctionA; oG;ff;ar8o7;ouK;nd; o7;d K;do1oKup;ff,n;wn;o7up;ut",ProperNoun:"trueยฆabid,barbie,c3e2f1iron maiden,kirby,m0nis,riel;cgill,ercedes,issy;lorence,ranco;lmo,uro;atalina,hristi","Person|Place":"trueยฆa8d6h4jordan,k3orlando,s1vi0;ctor9rgin9;a0ydney;lvador,mara,ntia4;ent,obe;amil0ous0;ton;arw2ie0;go;lexandr1ust0;in;ia",LastName:"trueยฆ0:BR;1:BF;2:B5;3:BH;4:AX;5:9Y;6:B6;7:BK;8:B0;9:AV;A:AL;B:8Q;C:8G;D:7K;E:BM;F:AH;aBDb9Zc8Wd88e81f7Kg6Wh64i60j5Lk4Vl4Dm39n2Wo2Op25quispe,r1Ls0Pt0Ev03wTxSyKzG;aIhGimmerm6A;aGou,u;ng,o;khar5ytsE;aKeun9BiHoGun;koya32shiBU;!lG;diGmaz;rim,z;maGng;da,g52mo83sGzaC;aChiBV;iao,u;aLeJiHoGright,u;jcA5lff,ng;lGmm0nkl0sniewsC;kiB1liams33s3;bGiss,lt0;b,er,st0;a6Vgn0lHtG;anabe,s3;k0sh,tG;e2Non;aLeKiHoGukD;gt,lk5roby5;dHllalGnogr3Kr1Css0val3S;ba,ob1W;al,ov4;lasHsel8W;lJn dIrgBEsHzG;qu7;ilyEqu7siljE;en b6Aijk,yk;enzueAIverde;aPeix1VhKi2j8ka43oJrIsui,uG;om5UrG;c2n0un1;an,emblA7ynisC;dorAMlst3Km4rrAth;atch0i8UoG;mHrG;are84laci79;ps3sG;en,on;hirDkah9Mnaka,te,varA;a06ch01eYhUiRmOoMtIuHvGzabo;en9Jobod3N;ar7bot4lliv2zuC;aIeHoG;i7Bj4AyanAB;ele,in2FpheBvens25;l8rm0;kol5lovy5re7Tsa,to,uG;ng,sa;iGy72;rn5tG;!h;l71mHnGrbu;at9cla9Egh;moBo7M;aIeGimizu;hu,vchG;en8Luk;la,r1G;gu9infe5YmGoh,pulveA7rra5P;jGyG;on5;evi6iltz,miHneid0roed0uGwarz;be3Elz;dHtG;!t,z;!t;ar4Th8ito,ka4OlJnGr4saCto,unde19v4;ch7dHtGz;a5Le,os;b53e16;as,ihDm4Po0Y;aVeSiPoJuHyG;a6oo,u;bio,iz,sG;so,u;bKc8Fdrigue67ge10j9YmJosevelt,sItHux,wG;e,li6;a9Ch;enb4Usi;a54e4L;erts15i93;bei4JcHes,vGzzo;as,e9;ci,hards12;ag2es,iHut0yG;es,nol5N;s,t0;dImHnGsmu97v6C;tan1;ir7os;ic,u;aUeOhMiJoHrGut8;asad,if6Zochazk27;lishc2GpGrti72u10we76;e3Aov51;cHe45nG;as,to;as70hl0;aGillips;k,m,n6I;a3Hde3Wete0Bna,rJtG;ersHrovGters54;!a,ic;!en,on;eGic,kiBss3;i9ra,tz,z;h86k,padopoulIrk0tHvG;ic,l4N;el,te39;os;bMconn2Ag2TlJnei6PrHsbor6XweBzG;dem7Rturk;ella4DtGwe6N;ega,iz;iGof7Hs8I;vGyn1R;ei9;aSri1;aPeNiJoGune50ym2;rHvGwak;ak4Qik5otn66;odahl,r4S;cholsZeHkolGls4Jx3;ic,ov84;ls1miG;!n1;ils3mG;co4Xec;gy,kaGray2sh,var38;jiGmu9shiG;ma;a07c04eZiWoMuHyeG;rs;lJnIrGssoli6S;atGp03r7C;i,ov4;oz,te58;d0l0;h2lOnNo0RrHsGza1A;er,s;aKeJiIoz5risHtG;e56on;!on;!n7K;au,i9no,t5J;!lA;r1Btgome59;i3El0;cracFhhail5kkeHlG;l0os64;ls1;hmeJiIj30lHn3Krci0ssiGyer2N;!er;n0Po;er,j0;dDti;cartHlG;aughl8e2;hy;dQe7Egnu68i0jer3TkPmNnMrItHyG;er,r;ei,ic,su21thews;iHkDquAroqu8tinG;ez,s;a5Xc,nG;!o;ci5Vn;a5UmG;ad5;ar5e6Kin1;rig77s1;aVeOiLoJuHyG;!nch;k4nGo;d,gu;mbarGpe3Fvr4we;di;!nGu,yana2B;coln,dG;b21holm,strom;bedEfeKhIitn0kaHn8rGw35;oy;!j;m11tG;in1on1;bvGvG;re;iGmmy,ng,rs2Qu,voie,ws3;ne,t1F;aZeYh2iWlUnez50oNrJuHvar2woG;k,n;cerGmar68znets5;a,o34;aHem0isGyeziu;h23t3O;m0sni4Fus3KvG;ch4O;bay57ch,rh0Usk16vaIwalGzl5;czGsC;yk;cIlG;!cGen4K;huk;!ev4ic,s;e8uiveG;rt;eff0kGl4mu9nnun1;ucF;ll0nnedy;hn,llKminsCne,pIrHstra3Qto,ur,yGzl5;a,s0;j0Rls22;l2oG;or;oe;aPenOha6im14oHuG;ng,r4;e32hInHrge32u6vG;anD;es,ss3;anHnsG;en,on,t3;nesGs1R;en,s1;kiBnings,s1;cJkob4EnGrv0E;kDsG;en,sG;en0Ion;ks3obs2A;brahimDglesi5Nke5Fl0Qno07oneIshikHto,vanoG;u,v54;awa;scu;aVeOiNjaltal8oIrist50uG;!aGb0ghAynh;m2ng;a6dz4fIjgaa3Hk,lHpUrGwe,x3X;ak1Gvat;mAt;er,fm3WmG;ann;ggiBtchcock;iJmingw4BnHrGss;nand7re9;deGriks1;rs3;kkiHnG;on1;la,n1;dz4g1lvoQmOns0ZqNrMsJuIwHyG;asFes;kiB;g1ng;anHhiG;mo14;i,ov0J;di6p0r10t;ue;alaG;in1;rs1;aVeorgUheorghe,iSjonRoLrJuGw3;errGnnar3Co,staf3Ctierr7zm2;a,eG;ro;ayli6ee2Lg4iffithGub0;!s;lIme0UnHodGrbachE;e,m2;calvAzale0S;dGubE;bGs0E;erg;aj,i;bs3l,mGordaO;en7;iev3U;gnMlJmaIndFo,rGsFuthi0;cGdn0za;ia;ge;eaHlG;agh0i,o;no;e,on;aVerQiLjeldsted,lKoIrHuG;chs,entAji41ll0;eem2iedm2;ntaGrt8urni0wl0;na;emi6orA;lipIsHtzgeraG;ld;ch0h0;ovG;!ic;hatDnanIrG;arGei9;a,i;deY;ov4;b0rre1D;dKinsJriksIsGvaB;cob3GpGtra3D;inoza,osiQ;en,s3;te8;er,is3warG;ds;aXePiNjurhuMoKrisco15uHvorakG;!oT;arte,boHmitru,nn,rGt3C;and,ic;is;g2he0Omingu7nErd1ItG;to;us;aGcki2Hmitr2Ossanayake,x3;s,z; JbnaIlHmirGrvisFvi,w2;!ov4;gado,ic;th;bo0groot,jo6lHsilGvriA;va;a cruz,e3uG;ca;hl,mcevsCnIt2WviG;dGes,s;ov,s3;ielsGku22;!en;ki;a0Be06hRiobQlarkPoIrGunningh1H;awfo0RivGuz;elli;h1lKntJoIrGs2Nx;byn,reG;a,ia;ke,p0;i,rer2K;em2liB;ns;!e;anu;aOeMiu,oIristGu6we;eGiaG;ns1;i,ng,p9uHwGy;!dH;dGng;huJ;!n,onGu6;!g;kJnIpm2ttHudhGv7;ry;erjee,o14;!d,g;ma,raboG;rty;bJl0Cng4rG;eghetHnG;a,y;ti;an,ota1C;cerAlder3mpbeLrIstGvadi0B;iGro;llo;doHl0Er,t0uGvalho;so;so,zo;ll;a0Fe01hYiXlUoNrKuIyG;rLtyG;qi;chan2rG;ke,ns;ank5iem,oGyant;oks,wG;ne;gdan5nIruya,su,uchaHyKziG;c,n5;rd;darGik;enG;ko;ov;aGond15;nco,zG;ev4;ancFshw16;a08oGuiy2;umGwmG;ik;ckRethov1gu,ktPnNrG;gJisInG;ascoGds1;ni;ha;er,mG;anG;!n;gtGit7nP;ss3;asF;hi;er,hG;am;b4ch,ez,hRiley,kk0ldw8nMrIshHtAu0;es;ir;bInHtlGua;ett;es,i0;ieYosa;dGik;a9yoG;padhyG;ay;ra;k,ng;ic;bb0Acos09d07g04kht05lZnPrLsl2tJyG;aHd8;in;la;chis3kiG;ns3;aImstro6sl2;an;ng;ujo,ya;dJgelHsaG;ri;ovG;!a;ersJov,reG;aGjEws;ss1;en;en,on,s3;on;eksejEiyEmeiIvG;ar7es;ez;da;ev;arwHuilG;ar;al;ams,l0;er;ta;as",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:74;1:61;2:6G;3:6J;4:5S;a68b53c4Id48e44f3Wg3Hh39i31j2Wk2Fl23m1Mn1Co19p0Wq0Ur0Os05tRuQvLwDxiBy9z5;a7h5i4Muri4O;a5e5ongsh0;ng3H;greb,nzib5G;ang2e5okoha3Sunfu;katerin3Hrev0;a5n0Q;m5Hn;arsBeAi6roclBu5;h0xi,zh5P;c7n5;d5nipeg,terth4;hoek,s1L;hi5Zkl3A;l63xford;aw;a8e6i5ladivost5Molgogr6L;en3lni6S;ni22r5;o3saill4N;lenc4Wncouv3Sr3ughn;lan bat1Crumqi,trecht;aFbilisi,eEheDiBo9r7u5;l21n63r5;in,ku;i5ondh62;es51poli;kyo,m2Zron1Pulo5;n,uS;an5jua3l2Tmisoa6Bra3;j4Tshui; hag62ssaloni2H;gucigal26hr0l av1U;briz,i6llinn,mpe56ng5rtu,shk2R;i3Esh0;an,chu1n0p2Eyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4X;ba0Ht;aten is55ockholm,rasbou67uttga2V;an8e6i5;jiazhua1llo1m5Xy0;f50n5;ya1zh4H;gh3Kt4Q;att45o1Vv44;cramen16int ClBn5o paulo,ppo3Rrajevo; 7aa,t5;a 5o domin3E;a3fe,m1M;antonio,die3Cfrancisco,j5ped3Nsalvad0J;o5u0;se;em,t lake ci5Fz25;lou58peters24;a9e8i6o5;me,t59;ga,o5yadh;! de janei3F;cife,ims,nn3Jykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0Q;aFeEhDiCo9r7u6yong5;ya1;eb59ya1;a5etor3M;g52to;rt5zn0; 5la4Co;au prin0Melizabe24sa03;ls3Prae5Atts26;iladelph3Gnom pe1Aoenix;ki1r21tah tik3E;dua,lerYnaji,r4Ot5;na,r32;ak44des0Km1Mr6s5ttawa;a3Vlo;an,d06;a7ew5ing2Fovosibir1Jyc; 5cast36;del24orlea44taip14;g8iro4Wn5pl2Wshv33v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0W;aEeCi9o6u5;mb2Ani26sc3Y;gadishu,nt6s5;c13ul;evideo,pelli1Rre2Z;ami,l6n14s5;kolc,sissauga;an,waukee;cca,d5lbour2Mmph41ndo1Cssi3;an,ell2Xi3;cau,drAkass2Sl9n8r5shh4A;aca6ib5rakesh,se2L;or;i1Sy;a4EchFdal0Zi47;mo;id;aDeAi8o6u5vSy2;anMckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Lma5nz,sb2verpo28;!ss27; ma39i5;c5pzig;est16; p6g5ho2Wn0Cusan24;os;az,la33;aHharFiClaipeBo9rak0Du7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Hlka2Xpavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bHdu3llakuric0Qmpa3Fn6ohsiu1ra5un1Iwaguc0Q;c0Pj;d5o,p4;ah1Ty;a7e6i5ohannesV;l1Vn0;dd36rusalem;ip4k5;ar2H;bad0mph1OnArkutUs7taXz5;mir,tapala5;pa;fah0l6tanb5;ul;am2Zi2H;che2d5;ianap2Mo20;aAe7o5yder2W; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Oupe;ld coa1Bthen5;bu2S;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal29es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,nkirk,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Zr es sala1KugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1Q;lo7n6penhag0Ar5;do1Ok;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr14;ch8sha,zh07;gliari,i9lga8mayenJn6pe town,r5tanO;acCdiff;ber1Ac5;un;ry;ro;aWeNhKirmingh0WoJr9u5;chareTdapeTenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iCl9ng8r5;g6l5n;in;en;aluru,hazi;fa6grade,o horizon5;te;st;ji1rut;ghd0BkFn9ot8r7s6yan n4;ur;el,r07;celo3i,ranquil09;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a05b02cc01ddis aba00gartaZhmedXizawl,lSmPnHqa00rEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a8c5kaOtwerp;hora6o3;na;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 7buquerq6eppo,giers,ma5;ty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"trueยฆ0:2K;1:2Q;2:2H;3:2B;a2Ob2Bc1Xd1Ses1Rf1Pg1Kh1Gi1Bj17k12l0Zm0On06o04pYqVrSsJtEuBverAw6y4zacatec2S;akut0o0Cu4;cat2k06;a5est 4isconsin,yomi1K;bengal,virgin0;rwick3shington4;! dc;acruz,mont;dmurt0t4;ah,tar4; 2La0Y;a6e5laxca1Rripu1Xu4;scaEva;langa1nnessee,x2F;bas0Wm4smOtar25;aulip2Dil nadu;a9i7o5taf12u4ylh1F;ffZrr05s1A;me1Cno1Quth 4;cWdV;ber0c4kkim,naloa;hu2ily;n5skatchew2xo4;ny; luis potosi,ta catari1;a4hodeA;j4ngp08;asth2shahi;ingh25u4;e4intana roo;bec,en6retaro;ara8e6rince edward4unjab; i4;sl0C;i,nnsylv4rnambu0C;an0;!na;axa0Ydisha,h4klaho20ntar4reg7ss0Cx0H;io;aKeEo6u4;evo le4nav0W;on;r4tt17va scot0;f9mandy,th4; 4ampton3;c6d5yo4;rk3;ako1N;aroli1;olk;bras1Mva0Cw4; 5foundland4;! and labrador;brunswick,hamp3jers5mexiTyork4;! state;ey;galPyarit;aAeghala0Mi6o4;nta1r4;dov0elos;ch6dlanDn5ss4zor11;issippi,ouri;as geraPneso18;ig2oac2;dhy12harasht0Gine,ni5r4ssachusetts;anhao,i el,ylG;p4toba;ur;anca3e4incoln3ouisI;e4iR;ds;a6e5h4omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr4;achay,el0nata0X;alis6har4iangxi;kh4;and;co;daho,llino7n4owa;d5gush4;et0;ia1;is;a6ert5i4un2;dalFm0D;ford3;mp3rya1waii;ansu,eorg0lou7oa,u4;an4izhou,jarat;ajuato,gdo4;ng;cester3;lori4uji2;da;sex;ageUe7o5uran4;go;rs4;et;lawaMrby3;aFeaEh9o4rim08umbr0;ahui7l6nnectic5rsi4ventry;ca;ut;i03orado;la;e5hattisgarh,i4uvash0;apRhuahua;chn5rke4;ss0;ya;ra;lGm4;bridge3peche;a9ihar,r8u4;ck4ryat0;ingham3;shi4;re;emen,itish columb0;h0ja cal8lk7s4v7;hkorto4que;st2;an;ar0;iforn0;ia;dygHguascalientes,lBndhr9r5ss4;am;izo1kans5un4;achal 7;as;na;a 4;pradesh;a6ber5t4;ai;ta;ba5s4;ka;ma;ea",Country:"trueยฆ0:38;1:2L;2:3B;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om2pZqat1KrXsKtCu7v5wal4yemTz3;a25imbabwe;es,lis and futu2Y;a3enezue32ietnam;nuatu,tican city;gTk6nited 4ruXs3zbeE; 2Ca,sr;arab emirat0Kkingdom,states3;! of am2Y;!raiV;a8haCimor les0Co7rinidad 5u3;nis0rk3valu;ey,me2Zs and caic1V;and t3t3;oba1L;go,kel10nga;iw2ji3nz2T;ki2V;aDcotl1eCi9lov8o6pa2Dri lanka,u5w3yr0;az3edAitzerl1;il1;d2riname;lomon1Xmal0uth 3;afr2KkMsud2;ak0en0;erra leoFn3;gapo1Yt maart3;en;negLrb0ychellZ;int 3moa,n marino,udi arab0;hele26luc0mart21;epublic of ir0Eom2Euss0w3;an27;a4eIhilippinUitcairn1Mo3uerto riN;l1rtugF;ki2Dl4nama,pua new0Vra3;gu7;au,esti3;ne;aBe9i7or3;folk1Ith4w3;ay; k3ern mariana1D;or0O;caragua,ger3ue;!ia;p3ther1Aw zeal1;al;mib0u3;ru;a7exi6icro0Bo3yanm06;ldova,n3roc5zambA;a4gol0t3;enegro,serrat;co;cAdagasc01l7r5urit4yot3;te;an0i16;shall0Xtin3;ique;a4div3i,ta;es;wi,ys0;ao,ed02;a6e5i3uxembourg;b3echtenste12thu1G;er0ya;ban0Isotho;os,tv0;azakh1Fe4iriba04o3uwait,yrgyz1F;rXsovo;eling0Knya;a3erG;ma16p2;c7nd6r4s3taly,vory coast;le of m2rael;a3el1;n,q;ia,oJ;el1;aiTon3ungary;dur0Ng kong;aBermany,ha0QibraltAre8u3;a6ern5inea3ya0P;! biss3;au;sey;deloupe,m,tema0Q;e3na0N;ce,nl1;ar;bUmb0;a7i6r3;ance,ench 3;guia0Epoly3;nes0;ji,nl1;lklandUroeU;ast tim7cu6gypt,l salv6ngl1quatorial4ritr5st3thiop0;on0; guin3;ea;ad3;or;enmark,jibou5ominica4r con3;go;!n C;ti;aBentral african Ah8o5roat0u4yprRzech3; 9ia;ba,racao;c4lo3morQngo brazzaville,okGsta r04te de ivoiL;mb0;osE;i3ristmasG;le,na;republic;m3naUpe verde,ymanA;bod0ero3;on;aGeDhut2o9r5u3;lgar0r3;kina faso,ma,undi;azil,itish 3unei;virgin3; is3;lands;liv0nai5snia and herzegoviHtswaHuvet3; isl1;and;re;l3n8rmuG;ar3gium,ize;us;h4ngladesh,rbad3;os;am4ra3;in;as;fghaGlDmBn6r4ustr3zerbaij2;al0ia;genti3men0uba;na;dorra,g5t3;arct7igua and barbu3;da;o3uil3;la;er3;ica;b3ger0;an0;ia;ni3;st2;an",Place:"trueยฆa0Gb0Bc03d02e01f00gWhUiSkQlNmLnIorHpDrCsAt5u4v3w2y0;a0yz;kutPngtze;ake isHupatki;irgin islands,ostok;laanbaatar,p02;a3eotihuac0Hh1onto,sarskoe selo,u0;lXzigoot;am09e 0;bronx,hamptons;hiti,j mahE;a0cotts bluff,eine,fo,oho,under9;int lawrence river,khalY;ed s3io grande;a1ek,h0itcairn,ompeii;l,x;cif05pahanaumokuak0rthenX;ea;ange county,d,inoco;e0ile;uschwansteQw eng0;land;a0co,ekong,idLuc;chu picchu,gad00libu,nhatt00;a1gw,hr,incoln memori0;al;s,x;azan kremlJosrae,rasnoyar0ul;sk;ax,cn,nd0st;ianSochina;arlem,kg,nd,ov0;d,enweep;a2odavari,re0;at 0enwich;britaBlakI;ngHy village;co,ra;urope,vergladF;anube,en,fw,own4xb;arrizo pla6dg,edar 5gk,h1lt,olosse0;um;a2i0uuk;chen itza,mney rock,na0ricahua;town;morro,tham;breaks,fa5;in;cn,e2kk,ro0;oklyn,wns cany0;on;l air,verly hi0;lls;driadic,frica,lhambra,m7n3rc2sia,tl1zor0;es;!ant2; de triomphe,t1;adyr,tarct0;ic0; oce0;an;ericas,s",FirstName:"trueยฆaTblair,cQdOfrancoZgabMhinaLilya,jHkClBm6ni4quinn,re3s0;h0umit,yd;ay,e0iloh;a,lby;g9ne;co,ko0;!s;a1el0ina,org6;!okuhF;ds,naia,r1tt0xiB;i,y;ion,lo;ashawn,eif,uca;a3e1ir0rM;an;lsFn0rry;dall,yat5;i,sD;a0essIie,ude;i1m0;ie,mG;me;ta;rie0y;le;arcy,ev0;an,on;as1h0;arl8eyenne;ey,sidy;drien,kira,l4nd1ubr0vi;ey;i,r0;a,e0;a,y;ex2f1o0;is;ie;ei,is",WeekDay:"trueยฆfri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"trueยฆdec0february,july,nov0octo1sept0;em0;ber",Date:"trueยฆago,on4som4t1week0yesterd5; end,ends;mr1o0;d2morrow;!w;ed0;ay",Duration:"trueยฆcenturAd8h7m5q4se3w1y0;ear8r8;eek0k7;!end,s;ason,c5;tr,uarter;i0onth3;llisecond2nute2;our1r1;ay0ecade0;!s;ies,y",FemaleName:"trueยฆ0:J7;1:JB;2:IJ;3:IK;4:J1;5:IO;6:JS;7:JO;8:HB;9:JK;A:H4;B:I2;C:IT;D:JH;E:IX;F:BA;G:I4;aGTbFLcDRdD0eBMfB4gADh9Ti9Gj8Dk7Cl5Wm48n3Lo3Hp33qu32r29s15t0Eu0Cv02wVxiTyOzH;aLeIineb,oHsof3;e3Sf3la,ra;h2iKlIna,ynH;ab,ep;da,ma;da,h2iHra;nab;aKeJi0FolB7uIvH;et8onDP;i0na;le0sen3;el,gm3Hn,rGLs8W;aoHme0nyi;m5XyAD;aMendDZhiDGiH;dele9lJnH;if48niHo0;e,f47;a,helmi0lHma;a,ow;ka0nB;aNeKiHusa5;ck84kIl8oleAviH;anFenJ4;ky,toriBK;da,lA8rHs0;a,nHoniH9;a,iFR;leHnesH9;nILrH;i1y;g9rHs6xHA;su5te;aYeUhRiNoLrIuHy2;i,la;acJ3iHu0J;c3na,sH;hFta;nHr0F;iFya;aJffaEOnHs6;a,gtiH;ng;!nFSra;aIeHomasi0;a,l9Oo8Ares1;l3ndolwethu;g9Fo88rIssH;!a,ie;eHi,ri7;sa,za;bOlMmKnIrHs6tia0wa0;a60yn;iHya;a,ka,s6;arFe2iHm77ra;!ka;a,iH;a,t6;at6it6;a0Ecarlett,e0AhWiSkye,neza0oQri,tNuIyH;bIGlvi1;ha,mayIJniAsIzH;an3Net8ie,y;anHi7;!a,e,nH;aCe;aIeH;fan4l5Dphan6E;cI5r5;b3fiAAm0LnHphi1;d2ia,ja,ya;er2lJmon1nIobh8QtH;a,i;dy;lETv3;aMeIirHo0risFDy5;a,lDM;ba,e0i5lJrH;iHr6Jyl;!d8Ifa;ia,lDZ;hd,iMki2nJrIu0w0yH;la,ma,na;i,le9on,ron,yn;aIda,ia,nHon;a,on;!ya;k6mH;!aa;lJrItaye82vH;da,inj;e0ife;en1i0ma;anA9bLd5Oh1SiBkKlJmInd2rHs6vannaC;aCi0;ant6i2;lDOma,ome;ee0in8Tu2;in1ri0;a05eZhXiUoHuthDM;bScRghQl8LnPsJwIxH;anB3ie,y;an,e0;aIeHie,lD;ann7ll1marDGtA;!lHnn1;iHyn;e,nH;a,dF;da,i,na;ayy8G;hel67io;bDRerAyn;a,cIkHmas,nFta,ya;ki,o;h8Xki;ea,iannGMoH;da,n1P;an0bJemFgi0iInHta,y0;a8Bee;han86na;a,eH;cHkaC;a,ca;bi0chIe,i0mo0nHquETy0;di,ia;aERelHiB;!e,le;een4ia0;aPeOhMiLoJrHute6A;iHudenCV;scil3LyamvaB;lHrt3;i0ly;a,paluk;ilome0oebe,ylH;is,lis;ggy,nelope,r5t2;ige,m0VnKo5rvaDMtIulH;a,et8in1;ricHt4T;a,e,ia;do2i07;ctav3dIfD3is6ksa0lHphD3umC5yunbileg;a,ga,iv3;eHvAF;l3t8;aWeUiMoIurHy5;!ay,ul;a,eJor,rIuH;f,r;aCeEma;ll1mi;aNcLhariBQkKlaJna,sHta,vi;anHha;ur;!y;a,iDZki;hoGk9YolH;a,e4P;!mh;hir,lHna,risDEsreE;!a,lBV;asuMdLh3i6Dl5nKomi7rgEVtH;aHhal4;lHs6;i1ya;cy,et8;e9iF0ya;nngu2X;a0Ackenz4e02iMoJrignayani,uriDJyH;a,rH;a,iOlNna,tG;bi0i2llBJnH;a,iH;ca,ka,qD9;a,cUdo4ZkaTlOmi,nMrItzi,yH;ar;aJiIlH;anET;am;!l,nB;dy,eHh,n4;nhGrva;aKdJe0iCUlH;iHy;cent,e;red;!gros;!e5;ae5hH;ae5el3Z;ag5DgNi,lKrH;edi7AiIjem,on,yH;em,l;em,sCG;an4iHliCF;nHsCJ;a,da;!an,han;b09cASd07e,g05ha,i04ja,l02n00rLsoum5YtKuIv84xBKyHz4;bell,ra,soBB;d7rH;a,eE;h8Gild1t4;a,cUgQiKjor4l7Un4s6tJwa,yH;!aHbe6Xja9lAE;m,nBL;a,ha,in1;!aJbCGeIja,lDna,sHt63;!a,ol,sa;!l1D;!h,mInH;!a,e,n1;!awit,i;arJeIie,oHr48ueri8;!t;!ry;et46i3B;el4Xi7Cy;dHon,ue5;akranAy;ak,en,iHlo3S;a,ka,nB;a,re,s4te;daHg4;!l3E;alDd4elHge,isDJon0;ei9in1yn;el,le;a0Ne0CiXoQuLyH;d3la,nH;!a,dIe2OnHsCT;!a,e2N;a,sCR;aD4cJel0Pis1lIna,pHz;e,iA;a,u,wa;iHy;a0Se,ja,l2NnB;is,l1UrItt1LuHvel4;el5is1;aKeIi7na,rH;aADi7;lHn1tA;ei;!in1;aTbb9HdSepa,lNnKsJvIzH;!a,be5Ret8z4;!ia;a,et8;!a,dH;a,sHy;ay,ey,i,y;a,iJja,lH;iHy;aA8e;!aH;!nF;ia,ya;!nH;!a,ne;aPda,e0iNjYla,nMoKsJtHx93y5;iHt4;c3t3;e2PlCO;la,nHra;a,ie,o2;a,or1;a,gh,laH;!ni;!h,nH;a,d2e,n5V;cOdon9DiNkes6mi9Gna,rMtJurIvHxmi,y5;ern1in3;a,e5Aie,yn;as6iIoH;nya,ya;fa,s6;a,isA9;a,la;ey,ie,y;a04eZhXiOlASoNrJyH;lHra;a,ee,ie;istHy6I;a,en,iIyH;!na;!e,n5F;nul,ri,urtnB8;aOerNlB7mJrHzzy;a,stH;en,in;!berlImernH;aq;eHi,y;e,y;a,stE;!na,ra;aHei2ongordzol;dij1w5;el7UiKjsi,lJnIrH;a,i,ri;d2na,za;ey,i,lBLs4y;ra,s6;biAcARdiat7MeBAiSlQmPnyakuma1DrNss6NtKviAyH;!e,lH;a,eH;e,i8T;!a6HeIhHi4TlDri0y;ar8Her8Hie,leErBAy;!lyn8Ori0;a,en,iHl5Xoli0yn;!ma,nFs95;a5il1;ei8Mi,lH;e,ie;a,tl6O;a0AeZiWoOuH;anMdLlHst88;es,iH;a8NeHs8X;!n9tH;!a,te;e5Mi3My;a,iA;!anNcelDdMelGhan7VleLni,sIva0yH;a,ce;eHie;fHlDph7Y;a,in1;en,n1;i7y;!a,e,n45;lHng;!i1DlH;!i1C;anNle0nKrJsH;i8JsH;!e,i8I;i,ri;!a,elGif2CnH;a,et8iHy;!e,f2A;a,eJiInH;a,eIiH;e,n1;!t8;cMda,mi,nIque4YsminFvie2y9zH;min7;a7eIiH;ce,e,n1s;!lHs82t0F;e,le;inIk6HlDquelH;in1yn;da,ta;da,lRmPnOo0rNsIvaHwo0zaro;!a0lu,na;aJiIlaHob89;!n9R;do2;belHdo2;!a,e,l3B;a7Ben1i0ma;di2es,gr72ji;a9elBogH;en1;a,e9iHo0se;a0na;aSeOiJoHus7Kyacin2C;da,ll4rten24snH;a,i9U;lImaH;ri;aIdHlaI;a,egard;ry;ath1BiJlInrietArmi9sH;sa,t1A;en2Uga,mi;di;bi2Fil8MlNnMrJsItHwa,yl8M;i5Tt4;n60ti;iHmo51ri53;etH;!te;aCnaC;a,ey,l4;a02eWiRlPoNrKunJwH;enHyne1R;!dolD;ay,el;acieIetHiselB;a,chE;!la;ld1CogooH;sh;adys,enHor3yn2K;a,da,na;aKgi,lIna,ov8EselHta;a,e,le;da,liH;an;!n0;mLnJorgIrH;ald5Si,m3Etrud7;et8i4X;a,eHna;s29vieve;ma;bIle,mHrnet,yG;al5Si5;iIrielH;a,l1;!ja;aTeQiPlorOoz3rH;anJeIiH;da,eB;da,ja;!cH;esIiHoi0P;n1s66;!ca;a,enc3;en,o0;lIn0rnH;anB;ec3ic3;jr,nArKtHy7;emIiHma,oumaA;ha,ma,n;eh;ah,iBrah,za0;cr4Rd0Re0Qi0Pk0Ol07mXn54rUsOtNuMvHwa;aKelIiH;!e,ta;inFyn;!a;!ngel4V;geni1ni47;h5Yien9ta;mLperanKtH;eIhHrel5;er;l31r7;za;a,eralB;iHma,ne4Lyn;cHka,n;a,ka;aPeNiKmH;aHe21ie,y;!li9nuH;elG;lHn1;e7iHy;a,e,ja;lHrald;da,y;!nue5;aWeUiNlMma,no2oKsJvH;a,iH;na,ra;a,ie;iHuiH;se;a,en,ie,y;a0c3da,e,f,nMsJzaH;!betHveA;e,h;aHe,ka;!beH;th;!a,or;anor,nH;!a,i;!in1na;ate1Rta;leEs6;vi;eIiHna,wi0;e,th;l,n;aYeMh3iLjeneKoH;lor5Vminiq4Ln3FrHtt4;a,eEis,la,othHthy;ea,y;ba;an09naCon9ya;anQbPde,eOiMlJmetr3nHsir5M;a,iH;ce,se;a,iIla,orHphi9;es,is;a,l6F;dHrdH;re;!d5Ena;!b2ForaCraC;a,d2nH;!a,e;hl3i0l0GmNnLphn1rIvi1WyH;le,na;a,by,cIia,lH;a,en1;ey,ie;a,et8iH;!ca,el1Aka,z;arHia;is;a0Re0Nh04i02lUoJristIynH;di,th3;al,i0;lPnMrIurH;tn1D;aJd2OiHn2Ori9;!nH;a,e,n1;!l4;cepci5Cn4sH;tanHuelo;ce,za;eHleE;en,t8;aJeoIotH;il54;!pat2;ir7rJudH;et8iH;a,ne;a,e,iH;ce,sZ;a2er2ndH;i,y;aReNloe,rH;isJyH;stH;al;sy,tH;a1Sen,iHy;an1e,n1;deJlseIrH;!i7yl;a,y;li9;nMrH;isKlImH;ai9;a,eHot8;n1t8;!sa;d2elGtH;al,elG;cIlH;es8i47;el3ilH;e,ia,y;itlYlXmilWndVrMsKtHy5;aIeIhHri0;er1IleErDy;ri0;a38sH;a37ie;a,iOlLmeJolIrH;ie,ol;!e,in1yn;lHn;!a,la;a,eIie,otHy;a,ta;ne,y;na,s1X;a0Ii0I;a,e,l1;isAl4;in,yn;a0Ke02iZlXoUrH;andi7eRiJoIyH;an0nn;nwDoke;an3HdgMgiLtH;n31tH;!aInH;ey,i,y;ny;d,t8;etH;!t7;an0e,nH;da,na;bbi7glarIlo07nH;iAn4;ka;ancHythe;a,he;an1Clja0nHsm3M;iAtH;ou;aWcVlinUniArPssOtJulaCvH;!erlH;ey,y;hJsy,tH;e,iHy7;e,na;!anH;ie,y;!ie;nItHyl;ha,ie;adIiH;ce;et8i9;ay,da;ca,ky;!triH;ce,z;rbJyaH;rmH;aa;a2o2ra;a2Ub2Od25g21i1Sj5l18m0Zn0Boi,r06sWtVuPvOwa,yIzH;ra,u0;aKes6gJlIn,seH;!l;in;un;!nH;a,na;a,i2K;drLguJrIsteH;ja;el3;stH;in1;a,ey,i,y;aahua,he0;hIi2Gja,miAs2DtrH;id;aMlIraqHt21;at;eIi7yH;!n;e,iHy;gh;!nH;ti;iJleIo6piA;ta;en,n1t8;aHelG;!n1J;a01dje5eZgViTjRnKohito,toHya;inet8nH;el5ia;te;!aKeIiHmJ;e,ka;!mHtt7;ar4;!belIliHmU;sa;!l1;a,eliH;ca;ka,sHta;a,sa;elHie;a,iH;a,ca,n1qH;ue;!tH;a,te;!bImHstasiMya;ar3;el;aLberKeliJiHy;e,l3naH;!ta;a,ja;!ly;hGiIl3nB;da;a,ra;le;aWba,ePiMlKthJyH;a,c3sH;a,on,sa;ea;iHys0N;e,s0M;a,cIn1sHza;a,e,ha,on,sa;e,ia,ja;c3is6jaKksaKna,sJxH;aHia;!nd2;ia,saH;nd2;ra;ia;i0nIyH;ah,na;a,is,naCoud;la;c6da,leEmNnLsH;haClH;inHyY;g,n;!h;a,o,slH;ey;ee;en;at6g4nIusH;ti0;es;ie;aWdiTelMrH;eJiH;anMenH;a,e,ne;an0;na;!aLeKiIyH;nn;a,n1;a,e;!ne;!iH;de;e,lDsH;on;yn;!lH;i9yn;ne;aKbIiHrL;!e,gaK;ey,i7y;!e;gaH;il;dKliyJradhIs6;ha;ya;ah;a,ya",Honorific:"trueยฆdirector1field marsh2lieutenant1rear0sergeant major,vice0; admir1; gener0;al","Adj|Gerund":"trueยฆ0:3F;1:3H;2:31;3:2X;4:35;5:33;6:3C;7:2Z;8:36;9:29;a33b2Tc2Bd1Te1If19g12h0Zi0Rl0Nm0Gnu0Fo0Ap04rYsKtEuBvAw1Ayiel3;ar6e08;nBpA;l1Rs0B;fol3n1Zsett2;aEeDhrBi4ouc7rAwis0;e0Bif2oub2us0yi1;ea1SiA;l2vi1;l2mp0rr1J;nt1Vxi1;aMcreec7enten2NhLkyrocke0lo0Vmi2oJpHtDuBweA;e0Ul2;pp2ArA;gi1pri5roun3;aBea8iAri2Hun9;mula0r4;gge4rA;t2vi1;ark2eAraw2;e3llb2F;aAot7;ki1ri1;i9oc29;dYtisf6;aEeBive0oAus7;a4l2;assu4defi9fres7ig9juve07mai9s0vAwar3;ea2italiAol1G;si1zi1;gi1ll6mb2vi1;a6eDier23lun1VrAun2C;eBoA;mi5vo1Z;ce3s5vai2;n3rpleA;xi1;ffCpWutBverAwi1;arc7lap04p0Pri3whel8;goi1l6st1J;en3sA;et0;m2Jrtu4;aEeDiCoBuAyst0L;mb2;t1Jvi1;s5tiga0;an1Rl0n3smeri26;dAtu4;de9;aCeaBiAo0U;fesa0Tvi1;di1ni1;c1Fg19s0;llumiGmFnArri0R;cDfurHsCtBviA;go23ti1;e1Oimi21oxica0rig0V;pi4ul0;orpo20r0K;po5;na0;eaBorr02umilA;ia0;li1rtwar8;lFrA;atiDipCoBuelA;i1li1;undbrea10wi1;pi1;f6ng;a4ea8;a3etc7it0lEoCrBulfA;il2;ee1FighXust1L;rAun3;ebo3thco8;aCoA;a0wA;e4i1;mi1tte4;lectrJmHnExA;aCci0hBis0pA;an3lo3;aOila1B;c0spe1A;ab2coura0CdBergi13ga0Clive9ric7s02tA;hral2i0J;ea4u4;barras5er09pA;owe4;if6;aQeIiBrA;if0;sAzz6;aEgDhearCsen0tA;rAur11;ac0es5;te9;us0;ppoin0r8;biliGcDfi9gra3ligh0mBpres5sAvasG;erE;an3ea9orA;ali0L;a6eiBli9rA;ea5;vi1;ta0;maPri1s7un0zz2;aPhMlo5oAripp2ut0;mGnArrespon3;cer9fDspi4tA;inBrA;as0ibu0ol2;ui1;lic0u5;ni1;fDmCpA;eAromi5;l2ti1;an3;or0;aAil2;llenAnAr8;gi1;l8ptAri1;iva0;aff2eGin3lFoDrBuA;d3st2;eathtaAui5;ki1;gg2i2o8ri1unA;ci1;in3;co8wiA;lAtc7;de4;bsorVcOgonMlJmHnno6ppea2rFsA;pi4su4toA;nBun3;di1;is7;hi1;res0;li1;aFu5;si1;ar8lu4;ri1;mi1;iAzi1;zi1;cAhi1;eleDomA;moBpan6;yi1;da0;ra0;ti1;bi1;ng",Comparable:"trueยฆ0:3C;1:3Q;2:3F;a3Tb3Cc33d2Te2Mf2Ag1Wh1Li1Fj1Ek1Bl13m0Xn0So0Rp0Iqu0Gr07sHtCug0vAw4y3za0Q;el10ouN;ary,e6hi5i3ry;ck0Cde,l3n1ry,se;d,y;ny,te;a3i3R;k,ry;a3erda2ulgar;gue,in,st;a6en2Xhi5i4ouZr3;anqu2Cen1ue;dy,g36me0ny;ck,rs28;ll,me,rt,wd3I;aRcaPeOhMiLkin0BlImGoEpDt6u4w3;eet,ift;b3dd0Wperfi21rre28;sta26t21;a8e7iff,r4u3;pUr1;a4ict,o3;ng;ig2Vn0N;a1ep,rn;le,rk,te0;e1Si2Vright0;ci1Yft,l3on,re;emn,id;a3el0;ll,rt;e4i3y;g2Mm0Z;ek,nd2T;ck24l0mp1L;a3iRrill,y;dy,l01rp;ve0Jxy;n1Jr3;ce,y;d,fe,int0l1Hv0V;a8e6i5o3ude;mantic,o19sy,u3;gh;pe,t1P;a3d,mo0A;dy,l;gg4iFndom,p3re,w;id;ed;ai2i3;ck,et;hoAi1Fl9o8r5u3;ny,r3;e,p11;egna2ic4o3;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e5i4o3u14;b0Sisy,rm0Ysy;bb0ce,mb0R;a3r1w;r,t;ad,e5ild,o4u3;nda12te;ist,o1;a4ek,l3;low;s0ty;a8e7i6o3ucky;f0Jn4o15u3ve0w10y0N;d,sy;e0g;ke0l,mp,tt0Eve0;e1Qwd;me,r3te;ge;e4i3;nd;en;ol0ui19;cy,ll,n3;secu6t3;e3ima4;llege2rmedia3;te;re;aAe7i6o5u3;ge,m3ng1C;bYid;me0t;gh,l0;a3fXsita2;dy,rWv3;en0y;nd13ppy,r3;d3sh;!y;aFenEhCiBlAoofy,r3;a8e6i5o3ue0Z;o3ss;vy;m,s0;at,e3y;dy,n;nd,y;ad,ib,ooD;a2d1;a3o3;st0;tDuiS;u1y;aCeebBi9l8o6r5u3;ll,n3r0N;!ny;aCesh,iend0;a3nd,rmD;my;at,ir7;erce,nan3;ci9;le;r,ul3;ty;a6erie,sse4v3xtre0B;il;nti3;al;r4s3;tern,y;ly,th0;appZe9i5ru4u3;mb;nk;r5vi4z3;zy;ne;e,ty;a3ep,n9;d3f,r;!ly;agey,h8l7o5r4u3;dd0r0te;isp,uel;ar3ld,mmon,st0ward0zy;se;evKou1;e3il0;ap,e3;sy;aHiFlCoAr5u3;ff,r0sy;ly;a6i3oad;g4llia2;nt;ht;sh,ve;ld,un3;cy;a4o3ue;nd,o1;ck,nd;g,tt3;er;d,ld,w1;dy;bsu6ng5we3;so3;me;ry;rd",Adverb:"trueยฆa08b05d00eYfSheQinPjustOkinda,likewiZmMnJoEpCquite,r9s5t2u0very,well;ltima01p0; to,wards5;h1iny bit,o0wiO;o,t6;en,us;eldom,o0uch;!me1rt0; of;how,times,w0C;a1e0;alS;ndomRth05;ar excellenEer0oint blank; Lhaps;f3n0utright;ce0ly;! 0;ag05moX; courGten;ewJo0; longWt 0;onHwithstand9;aybe,eanwhiNore0;!ovT;! aboX;deed,steY;lla,n0;ce;or3u0;ck1l9rther0;!moK;ing; 0evK;exampCgood,suH;n mas0vI;se;e0irect2; 2fini0;te0;ly;juAtrop;ackward,y 0;far,no0; means,w; GbroFd nauseam,gEl7ny5part,s4t 2w0;ay,hi0;le;be7l0mo7wor7;arge,ea6; soon,i4;mo0way;re;l 3mo2ongsi1ready,so,togeth0ways;er;de;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"trueยฆaXbTcReNhowMiEjust00noBo9p8supposing,t5wh0yet;e1il0o3;e,st;n1re0thN; if,by,vM;evL;h0il,o;erefOo0;!uU;lus,rovided th9;r0therwiM;! not; mattEr,w0;! 0;since,th4w7;f4n0; 0asmuch;as mIcaForder t0;h0o;at;! 0;only,t0w0;hen;!ev3;ith2ven0;! 0;if,tB;er;o0uz;s,z;e0ut,y the time;cau1f0;ore;se;lt3nd,s 0;far1if,m0soon1t2;uch0; as;hou0;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",Determiner:"trueยฆaBboth,d9e6few,le5mu8neiDplenty,s4th2various,wh0;at0ich0;evC;a0e4is,ose;!t;everal,ome;!ast,s;a1l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er","Adj|Present":"trueยฆa07b04cVdQeNfJhollIidRlEmCnarrIoBp9qua8r7s3t2uttFw0;aKet,ro0;ng,u08;endChin;e2hort,l1mooth,our,pa9tray,u0;re,speU;i2ow;cu6da02leSpaN;eplica01i02;ck;aHerfePr0;eseUime,omV;bscu1pen,wn;atu0e3odeH;re;a2e1ive,ow0;er;an;st,y;ow;a2i1oul,r0;ee,inge;rm;iIke,ncy,st;l1mpty,x0;emHpress;abo4ic7;amp,e2i1oub0ry,ull;le;ffu9re6;fu8libe0;raE;alm,l5o0;mpleCn3ol,rr1unterfe0;it;e0u7;ct;juga8sum7;ea1o0;se;n,r;ankru1lu0;nt;pt;li2pproxi0rticula1;ma0;te;ght","Person|Adj":"trueยฆb3du2earnest,frank,mi2r0san1woo1;an0ich,u1;dy;sty;ella,rown",Modal:"trueยฆc5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Verb:"trueยฆborn,cannot,gonna,has,keep tabs,msg","Person|Verb":"trueยฆb8ch7dr6foster,gra5ja9lan4ma2ni9ollie,p1rob,s0wade;kip,pike,t5ue;at,eg,ier2;ck,r0;k,shal;ce;ce,nt;ew;ase,u1;iff,l1ob,u0;ck;aze,ossom","Person|Date":"trueยฆa2j0sep;an0une;!uary;p0ugust,v0;ril"};const Oo=36,Fo="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",Vo=Fo.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var zo=function(e){if(void 0!==Vo[e])return Vo[e];let t=0,n=1,r=Oo,a=1;for(;n=0;n--,a*=Oo){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t},Bo=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=So(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=Ko(Eo[e]);qo.test(e)?Object.keys(t).forEach((t=>{if(Ro[t]=e,"Noun|Verb"===e){let e=Wo(t,Qo);Ro[e]="Plural|Verb"}})):Object.keys(t).forEach((t=>{Uo[t]=e}))})),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Uo[e]="Emoticon")),delete Uo[""],delete Uo.null,delete Uo[" "];const _o="Singular";var Zo={beforeTags:{Determiner:_o,Possessive:_o,Acronym:_o,Noun:_o,Adjective:_o,PresentTense:_o,Gerund:_o,PastTense:_o,Infinitive:_o,Date:_o,Ordinal:_o,Demonym:_o},afterTags:{Value:_o,Modal:_o,Copula:_o,PresentTense:_o,PastTense:_o,Demonym:_o,Actor:_o},beforeWords:{the:_o,with:_o,without:_o,of:_o,for:_o,any:_o,all:_o,on:_o,cut:_o,cuts:_o,increase:_o,decrease:_o,raise:_o,drop:_o,save:_o,saved:_o,saves:_o,make:_o,makes:_o,made:_o,minus:_o,plus:_o,than:_o,another:_o,versus:_o,neither:_o,about:_o,favorite:_o,best:_o,daily:_o,weekly:_o,linear:_o,binary:_o,mobile:_o,lexical:_o,technical:_o,computer:_o,scientific:_o,security:_o,government:_o,popular:_o,formal:_o,no:_o,more:_o,one:_o,let:_o,her:_o,his:_o,their:_o,our:_o,us:_o,sheer:_o,monthly:_o,yearly:_o,current:_o,previous:_o,upcoming:_o,last:_o,next:_o,main:_o,initial:_o,final:_o,beginning:_o,end:_o,top:_o,bottom:_o,future:_o,past:_o,major:_o,minor:_o,side:_o,central:_o,peripheral:_o,public:_o,private:_o},afterWords:{of:_o,system:_o,aid:_o,method:_o,utility:_o,tool:_o,reform:_o,therapy:_o,philosophy:_o,room:_o,authority:_o,says:_o,said:_o,wants:_o,wanted:_o,is:_o,did:_o,do:_o,can:_o,wise:_o}};const Xo="Infinitive";var Yo={beforeTags:{Modal:Xo,Adverb:Xo,Negative:Xo,Plural:Xo},afterTags:{Determiner:Xo,Adverb:Xo,Possessive:Xo,Reflexive:Xo,Preposition:Xo,Cardinal:Xo,Comparative:Xo,Superlative:Xo},beforeWords:{i:Xo,we:Xo,you:Xo,they:Xo,to:Xo,please:Xo,will:Xo,have:Xo,had:Xo,would:Xo,could:Xo,should:Xo,do:Xo,did:Xo,does:Xo,can:Xo,must:Xo,us:Xo,me:Xo,let:Xo,even:Xo,when:Xo,help:Xo,he:Xo,she:Xo,it:Xo,being:Xo,bi:Xo,co:Xo,contra:Xo,de:Xo,inter:Xo,intra:Xo,mis:Xo,pre:Xo,out:Xo,counter:Xo,nobody:Xo,somebody:Xo,anybody:Xo,everybody:Xo},afterWords:{the:Xo,me:Xo,you:Xo,him:Xo,us:Xo,her:Xo,his:Xo,them:Xo,they:Xo,it:Xo,himself:Xo,herself:Xo,itself:Xo,myself:Xo,ourselves:Xo,themselves:Xo,something:Xo,anything:Xo,a:Xo,an:Xo,up:Xo,down:Xo,by:Xo,out:Xo,off:Xo,under:Xo,what:Xo,all:Xo,to:Xo,because:Xo,although:Xo,how:Xo,otherwise:Xo,together:Xo,though:Xo,into:Xo,yet:Xo,more:Xo,here:Xo,there:Xo,away:Xo}},ei={beforeTags:Object.assign({},Yo.beforeTags,Zo.beforeTags,{}),afterTags:Object.assign({},Yo.afterTags,Zo.afterTags,{}),beforeWords:Object.assign({},Yo.beforeWords,Zo.beforeWords,{}),afterWords:Object.assign({},Yo.afterWords,Zo.afterWords,{})};const ti="Adjective";var ni={beforeTags:{Determiner:ti,Possessive:ti,Hyphenated:ti},afterTags:{Adjective:ti},beforeWords:{seem:ti,seemed:ti,seems:ti,feel:ti,feels:ti,felt:ti,stay:ti,appear:ti,appears:ti,appeared:ti,also:ti,over:ti,under:ti,too:ti,it:ti,but:ti,still:ti,really:ti,quite:ti,well:ti,very:ti,truly:ti,how:ti,deeply:ti,hella:ti,profoundly:ti,extremely:ti,so:ti,badly:ti,mostly:ti,totally:ti,awfully:ti,rather:ti,nothing:ti,something:ti,anything:ti,not:ti,me:ti,is:ti,face:ti,faces:ti,faced:ti,look:ti,looks:ti,looked:ti,reveal:ti,reveals:ti,revealed:ti,sound:ti,sounded:ti,sounds:ti,remains:ti,remained:ti,prove:ti,proves:ti,proved:ti,becomes:ti,stays:ti,tastes:ti,taste:ti,smells:ti,smell:ti,gets:ti,grows:ti,as:ti,rings:ti,radiates:ti,conveys:ti,convey:ti,conveyed:ti,of:ti},afterWords:{too:ti,also:ti,or:ti,enough:ti,as:ti}};const ri="Gerund";var ai={beforeTags:{Adverb:ri,Preposition:ri,Conjunction:ri},afterTags:{Adverb:ri,Possessive:ri,Person:ri,Pronoun:ri,Determiner:ri,Copula:ri,Preposition:ri,Conjunction:ri,Comparative:ri},beforeWords:{been:ri,keep:ri,continue:ri,stop:ri,am:ri,be:ri,me:ri,began:ri,start:ri,starts:ri,started:ri,stops:ri,stopped:ri,help:ri,helps:ri,avoid:ri,avoids:ri,love:ri,loves:ri,loved:ri,hate:ri,hates:ri,hated:ri},afterWords:{you:ri,me:ri,her:ri,him:ri,his:ri,them:ri,their:ri,it:ri,this:ri,there:ri,on:ri,about:ri,for:ri,up:ri,down:ri}};const oi="Gerund",ii="Adjective";var si={beforeTags:Object.assign({},ni.beforeTags,ai.beforeTags,{Imperative:oi,Infinitive:ii,Plural:oi}),afterTags:Object.assign({},ni.afterTags,ai.afterTags,{Noun:ii}),beforeWords:Object.assign({},ni.beforeWords,ai.beforeWords,{is:ii,are:oi,was:ii,of:ii,suggest:oi,suggests:oi,suggested:oi,recommend:oi,recommends:oi,recommended:oi,imagine:oi,imagines:oi,imagined:oi,consider:oi,considered:oi,considering:oi,resist:oi,resists:oi,resisted:oi,avoid:oi,avoided:oi,avoiding:oi,except:ii,accept:ii,assess:oi,explore:oi,fear:oi,fears:oi,appreciate:oi,question:oi,help:oi,embrace:oi,with:ii}),afterWords:Object.assign({},ni.afterWords,ai.afterWords,{to:oi,not:oi,the:oi})};const li={beforeTags:{Determiner:void 0,Cardinal:"Noun",PhrasalVerb:"Adjective"},afterTags:{}};var ui={beforeTags:Object.assign({},ni.beforeTags,Zo.beforeTags,li.beforeTags),afterTags:Object.assign({},ni.afterTags,Zo.afterTags,li.afterTags),beforeWords:Object.assign({},ni.beforeWords,Zo.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective",off:"Adjective",out:"Adjective"}),afterWords:Object.assign({},ni.afterWords,Zo.afterWords)};let ci="PastTense",hi="Adjective";const di={beforeTags:{Adverb:ci,Pronoun:ci,ProperNoun:ci,Auxiliary:ci,Noun:ci},afterTags:{Possessive:ci,Pronoun:ci,Determiner:ci,Adverb:ci,Comparative:ci,Date:ci,Gerund:ci},beforeWords:{be:ci,who:ci,get:hi,had:ci,has:ci,have:ci,been:ci,it:ci,as:ci,for:hi,more:hi,always:hi},afterWords:{by:ci,back:ci,out:ci,in:ci,up:ci,down:ci,before:ci,after:ci,for:ci,the:ci,with:ci,as:ci,on:ci,at:ci,between:ci,to:ci,into:ci,us:ci,them:ci,his:ci,her:ci,their:ci,our:ci,me:ci,about:hi}};var gi={beforeTags:Object.assign({},ni.beforeTags,di.beforeTags),afterTags:Object.assign({},ni.afterTags,di.afterTags),beforeWords:Object.assign({},ni.beforeWords,di.beforeWords),afterWords:Object.assign({},ni.afterWords,di.afterWords)};const mi={afterTags:{Noun:"Adjective",Conjunction:void 0}};var pi={beforeTags:Object.assign({},ni.beforeTags,Yo.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},ni.afterTags,Yo.afterTags,mi.afterTags),beforeWords:Object.assign({},ni.beforeWords,Yo.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},ni.afterWords,Yo.afterWords,{to:void 0,as:"Adjective"})};const fi={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},vi={Value:"Gerund"},bi={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},yi={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var wi={beforeTags:Object.assign({},ai.beforeTags,Zo.beforeTags,fi),afterTags:Object.assign({},ai.afterTags,Zo.afterTags,vi),beforeWords:Object.assign({},ai.beforeWords,Zo.beforeWords,bi),afterWords:Object.assign({},ai.afterWords,Zo.afterWords,yi)};const ki="Singular",Pi="Infinitive";var Ai={beforeTags:Object.assign({},Yo.beforeTags,Zo.beforeTags,{Adjective:ki,Particle:ki}),afterTags:Object.assign({},Yo.afterTags,Zo.afterTags,{ProperNoun:Pi,Gerund:Pi,Adjective:Pi,Copula:ki}),beforeWords:Object.assign({},Yo.beforeWords,Zo.beforeWords,{is:ki,was:ki,of:ki,have:null}),afterWords:Object.assign({},Yo.afterWords,Zo.afterWords,{instead:Pi,about:Pi,his:Pi,her:Pi,to:null,by:null,in:null})};const Ci="Person";var ji={beforeTags:{Honorific:Ci,Person:Ci},afterTags:{Person:Ci,ProperNoun:Ci,Verb:Ci},ownTags:{ProperNoun:Ci},beforeWords:{hi:Ci,hey:Ci,yo:Ci,dear:Ci,hello:Ci},afterWords:{said:Ci,says:Ci,told:Ci,tells:Ci,feels:Ci,felt:Ci,seems:Ci,thinks:Ci,thought:Ci,spends:Ci,spendt:Ci,plays:Ci,played:Ci,sing:Ci,sang:Ci,learn:Ci,learned:Ci,wants:Ci,wanted:Ci}};const Ni="Month",xi={beforeTags:{Date:Ni,Value:Ni},afterTags:{Date:Ni,Value:Ni},beforeWords:{by:Ni,in:Ni,on:Ni,during:Ni,after:Ni,before:Ni,between:Ni,until:Ni,til:Ni,sometime:Ni,of:Ni,this:Ni,next:Ni,last:Ni,previous:Ni,following:Ni,with:"Person"},afterWords:{sometime:Ni,in:Ni,of:Ni,until:Ni,the:Ni}};var Ii={beforeTags:Object.assign({},ji.beforeTags,xi.beforeTags),afterTags:Object.assign({},ji.afterTags,xi.afterTags),beforeWords:Object.assign({},ji.beforeWords,xi.beforeWords),afterWords:Object.assign({},ji.afterWords,xi.afterWords)};const Ti="Place",Di={beforeTags:{Place:Ti},afterTags:{Place:Ti,Abbreviation:Ti},beforeWords:{in:Ti,by:Ti,near:Ti,from:Ti,to:Ti},afterWords:{in:Ti,by:Ti,near:Ti,from:Ti,to:Ti,government:Ti,council:Ti,region:Ti,city:Ti}};let Hi="Unit";const Gi={"Actor|Verb":ei,"Adj|Gerund":si,"Adj|Noun":ui,"Adj|Past":gi,"Adj|Present":pi,"Noun|Verb":Ai,"Noun|Gerund":wi,"Person|Noun":{beforeTags:Object.assign({},Zo.beforeTags,ji.beforeTags),afterTags:Object.assign({},Zo.afterTags,ji.afterTags),beforeWords:Object.assign({},Zo.beforeWords,ji.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Zo.afterWords,ji.afterWords)},"Person|Date":Ii,"Person|Verb":{beforeTags:Object.assign({},Zo.beforeTags,ji.beforeTags,Yo.beforeTags),afterTags:Object.assign({},Zo.afterTags,ji.afterTags,Yo.afterTags),beforeWords:Object.assign({},Zo.beforeWords,ji.beforeWords,Yo.beforeWords),afterWords:Object.assign({},Zo.afterWords,ji.afterWords,Yo.afterWords)},"Person|Place":{beforeTags:Object.assign({},Di.beforeTags,ji.beforeTags),afterTags:Object.assign({},Di.afterTags,ji.afterTags),beforeWords:Object.assign({},Di.beforeWords,ji.beforeWords),afterWords:Object.assign({},Di.afterWords,ji.afterWords)},"Person|Adj":{beforeTags:Object.assign({},ji.beforeTags,ni.beforeTags),afterTags:Object.assign({},ji.afterTags,ni.afterTags),beforeWords:Object.assign({},ji.beforeWords,ni.beforeWords),afterWords:Object.assign({},ji.afterWords,ni.afterWords)},"Unit|Noun":{beforeTags:{Value:Hi},afterTags:{},beforeWords:{per:Hi,every:Hi,each:Hi,square:Hi,cubic:Hi,sq:Hi,metric:Hi},afterWords:{per:Hi,squared:Hi,cubed:Hi,long:Hi}}},Ei=(e,t)=>{let n=Object.keys(e).reduce(((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t)),{});return Object.assign(n,t)};Gi["Plural|Verb"]={beforeWords:Ei(Gi["Noun|Verb"].beforeWords,{had:"Plural",have:"Plural"}),afterWords:Ei(Gi["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null,is:"PresentTense",by:"PresentTense"}),beforeTags:Ei(Gi["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:Ei(Gi["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var Oi=Gi;const Fi="Adjective",Vi="Infinitive",zi="PresentTense",Bi="Singular",$i="PastTense",Si="Adverb",Ki="Plural",Mi="Actor",Li="Verb",Ji="Noun",Wi="LastName",qi="Modal",Ui="Place",Ri="Participle";var Qi=[null,null,{ea:Bi,ia:Ji,ic:Fi,ly:Si,"'n":Li,"'t":Li},{oed:$i,ued:$i,xed:$i," so":Si,"'ll":qi,"'re":"Copula",azy:Fi,eer:Ji,end:Li,ped:$i,ffy:Fi,ify:Vi,ing:"Gerund",ize:Vi,ibe:Vi,lar:Fi,mum:Fi,nes:zi,nny:Fi,ous:Fi,que:Fi,ger:Ji,ber:Ji,rol:Bi,sis:Bi,ogy:Bi,oid:Bi,ian:Bi,zes:zi,eld:$i,ken:Ri,ven:Ri,ten:Ri,ect:Vi,ict:Vi,ign:Vi,oze:Vi,ful:Fi,bal:Fi,ton:Ji},{amed:$i,aped:$i,ched:$i,lked:$i,rked:$i,reed:$i,nded:$i,mned:Fi,cted:$i,dged:$i,ield:Bi,akis:Wi,cede:Vi,chuk:Wi,czyk:Wi,ects:zi,iend:Bi,ends:Li,enko:Wi,ette:Bi,iary:Bi,wner:Bi,fies:zi,fore:Si,gate:Vi,gone:Fi,ices:Ki,ints:Ki,ruct:Vi,ines:Ki,ions:Ki,ners:Ki,pers:Ki,lers:Ki,less:Fi,llen:Fi,made:Fi,nsen:Wi,oses:zi,ould:qi,some:Fi,sson:Wi,ians:Ki,tion:Bi,tage:Ji,ique:Bi,tive:Fi,tors:Ji,vice:Bi,lier:Bi,fier:Bi,wned:$i,gent:Bi,tist:Mi,pist:Mi,rist:Mi,mist:Mi,yist:Mi,vist:Mi,ists:Mi,lite:Bi,site:Bi,rite:Bi,mite:Bi,bite:Bi,mate:Bi,date:Bi,ndal:Bi,vent:Bi,uist:Mi,gist:Mi,note:Bi,cide:Bi,ence:Bi,wide:Fi,vide:Vi,ract:Vi,duce:Vi,pose:Vi,eive:Vi,lyze:Vi,lyse:Vi,iant:Fi,nary:Fi,ghty:Fi,uent:Fi,erer:Mi,bury:Ui,dorf:Ji,esty:Ji,wych:Ui,dale:Ui,folk:Ui},{elist:Mi,holic:Bi,phite:Bi,tized:$i,urned:$i,eased:$i,ances:Ki,bound:Fi,ettes:Ki,fully:Si,ishes:zi,ities:Ki,marek:Wi,nssen:Wi,ology:Ji,osome:Bi,tment:Bi,ports:Ki,rough:Fi,tches:zi,tieth:"Ordinal",tures:Ki,wards:Si,where:Si,archy:Ji,pathy:Ji,opoly:Ji,embly:Ji,phate:Ji,ndent:Bi,scent:Bi,onist:Mi,anist:Mi,alist:Mi,olist:Mi,icist:Mi,ounce:Vi,iable:Fi,borne:Fi,gnant:Fi,inant:Fi,igent:Fi,atory:Fi,rient:Bi,dient:Bi,maker:Mi,burgh:Ui,mouth:Ui,ceter:Ui,ville:Ui,worth:Ji},{auskas:Wi,parent:Bi,cedent:Bi,ionary:Bi,cklist:Bi,keeper:Mi,logist:Mi,teenth:"Value",worker:Mi,master:Mi,writer:Mi,brough:Ui,cester:Ui},{logists:Mi,opoulos:Wi,borough:Ui,sdottir:Wi}];const _i="Adjective",Zi="Noun",Xi="Verb";var Yi=[null,null,{},{neo:Zi,bio:Zi,"de-":Xi,"re-":Xi,"un-":Xi,"ex-":Zi},{anti:Zi,auto:Zi,faux:_i,hexa:Zi,kilo:Zi,mono:Zi,nano:Zi,octa:Zi,poly:Zi,semi:_i,tele:Zi,"pro-":_i,"mis-":Xi,"dis-":Xi,"pre-":_i},{anglo:Zi,centi:Zi,ethno:Zi,ferro:Zi,grand:Zi,hepta:Zi,hydro:Zi,intro:Zi,macro:Zi,micro:Zi,milli:Zi,nitro:Zi,penta:Zi,quasi:_i,radio:Zi,tetra:Zi,"omni-":_i,"post-":_i},{pseudo:_i,"extra-":_i,"hyper-":_i,"inter-":_i,"intra-":_i,"deca-":_i},{electro:Zi}];const es="Adjective",ts="Infinitive",ns="PresentTense",rs="Singular",as="PastTense",os="Adverb",is="Expression",ss="Actor",ls="Verb",us="Noun",cs="LastName";var hs={a:[[/.[aeiou]na$/,us,"tuna"],[/.[oau][wvl]ska$/,cs],[/.[^aeiou]ica$/,rs,"harmonica"],[/^([hyj]a+)+$/,is,"haha"]],c:[[/.[^aeiou]ic$/,es]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,as,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,as,"rammed"],[/.[aeiou][sg]hed$/,as,"gushed"],[/.[aeiou]red$/,as,"hired"],[/.[aeiou]r?ried$/,as,"hurried"],[/[^aeiou]ard$/,rs,"steward"],[/[aeiou][^aeiou]id$/,es,""],[/.[vrl]id$/,es,"livid"],[/..led$/,as,"hurled"],[/.[iao]sed$/,as,""],[/[aeiou]n?[cs]ed$/,as,""],[/[aeiou][rl]?[mnf]ed$/,as,""],[/[aeiou][ns]?c?ked$/,as,"bunked"],[/[aeiou]gned$/,as],[/[aeiou][nl]?ged$/,as],[/.[tdbwxyz]ed$/,as],[/[^aeiou][aeiou][tvx]ed$/,as],[/.[cdflmnprstv]ied$/,as,"emptied"]],e:[[/.[lnr]ize$/,ts,"antagonize"],[/.[^aeiou]ise$/,ts,"antagonise"],[/.[aeiou]te$/,ts,"bite"],[/.[^aeiou][ai]ble$/,es,"fixable"],[/.[^aeiou]eable$/,es,"maleable"],[/.[ts]ive$/,es,"festive"],[/[a-z]-like$/,es,"woman-like"]],h:[[/.[^aeiouf]ish$/,es,"cornish"],[/.v[iy]ch$/,cs,"..ovich"],[/^ug?h+$/,is,"ughh"],[/^uh[ -]?oh$/,is,"uhoh"],[/[a-z]-ish$/,es,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,cs,"polish-male"]],k:[[/^(k){2}$/,is,"kkkk"]],l:[[/.[gl]ial$/,es,"familial"],[/.[^aeiou]ful$/,es,"fitful"],[/.[nrtumcd]al$/,es,"natal"],[/.[^aeiou][ei]al$/,es,"familial"]],m:[[/.[^aeiou]ium$/,rs,"magnesium"],[/[^aeiou]ism$/,rs,"schism"],[/^[hu]m+$/,is,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,es,"republican"],[/[^aeiou]ician$/,ss,"musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,is,"noooo"],[/^(yo)+$/,is,"yoo"],[/^wo{2,}[pt]?$/,is,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,rs],[/[^i]fer$/,ts],[/.[^aeiou][ao]pher$/,ss],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,es],[/[aeiou].*ist$/,es],[/^[a-z]et$/,ls]],s:[[/.[^aeiou]ises$/,ns],[/.[rln]ates$/,ns],[/.[^z]ens$/,ls],[/.[lstrn]us$/,rs],[/.[aeiou]sks$/,ns],[/.[aeiou]kes$/,ns],[/[aeiou][^aeiou]is$/,rs],[/[a-z]'s$/,us],[/^yes+$/,is]],v:[[/.[^aeiou][ai][kln]ov$/,cs]],y:[[/.[cts]hy$/,es],[/.[st]ty$/,es],[/.[tnl]ary$/,es],[/.[oe]ry$/,rs],[/[rdntkbhs]ly$/,os],[/.(gg|bb|zz)ly$/,es],[/...lly$/,os],[/.[gk]y$/,es],[/[bszmp]{2}y$/,es],[/.[ai]my$/,es],[/[ea]{2}zy$/,es],[/.[^aeiou]ity$/,rs]]};const ds="Verb",gs="Noun";var ms={leftTags:[["Adjective",gs],["Possessive",gs],["Determiner",gs],["Adverb",ds],["Pronoun",ds],["Value",gs],["Ordinal",gs],["Modal",ds],["Superlative",gs],["Demonym",gs],["Honorific","Person"]],leftWords:[["i",ds],["first",gs],["it",ds],["there",ds],["not",ds],["because",gs],["if",gs],["but",gs],["who",ds],["this",gs],["his",gs],["when",gs],["you",ds],["very","Adjective"],["old",gs],["never",ds],["before",gs],["a",gs],["the",gs],["been",ds]],rightTags:[["Copula",gs],["PastTense",gs],["Conjunction",gs],["Modal",gs]],rightWords:[["there",ds],["me",ds],["man","Adjective"],["him",ds],["it",ds],["were",gs],["took",gs],["himself",ds],["went",gs],["who",gs],["jr","Person"]]},ps={fwd:"3:ser,ierยฆ1er:h,t,f,l,nยฆ1r:eยฆ2er:ss,or,om",both:"3er:ver,ear,almยฆ3ner:hinยฆ3ter:latยฆ2mer:imยฆ2er:ng,rm,mbยฆ2ber:ibยฆ2ger:igยฆ1er:w,p,k,dยฆier:y",rev:"1:tter,yerยฆ2:uer,ver,ffer,oner,eler,ller,iler,ster,cer,uler,sher,ener,gher,aner,adder,nter,eter,rter,hter,rner,fterยฆ3:oser,ooler,eafer,user,airer,bler,maler,tler,eater,uger,rger,ainer,urer,ealer,icher,pler,emner,icter,nser,iserยฆ4:arser,viner,ucher,rosser,somer,ndomer,moter,oother,uarer,hiterยฆ5:nuiner,esser,emierยฆar:urther",ex:"worse:badยฆbetter:goodยฆ4er:fair,gray,poorยฆ1urther:farยฆ3ter:fat,hot,wetยฆ3der:mad,sadยฆ3er:shy,funยฆ4der:gladยฆ:ยฆ4r:cute,dire,fake,fine,free,lame,late,pale,rare,ripe,rude,safe,sore,tame,wideยฆ5r:eerie,stale"},fs={fwd:"1:nning,tting,rring,pping,eing,mming,gging,dding,bbing,kkingยฆ2:eking,oling,eling,emingยฆ3:velling,siting,uiting,fiting,loting,geting,ialing,cellingยฆ4:graming",both:"1:aing,iing,fing,xing,ying,oing,hing,wingยฆ2:tzing,rping,izzing,bting,mning,sping,wling,rling,wding,rbing,uping,lming,wning,mping,oning,lting,mbing,lking,fting,hting,sking,gning,pting,cking,ening,nking,iling,eping,ering,rting,rming,cting,lping,ssing,nting,nding,lding,sting,rning,rding,rkingยฆ3:belling,siping,toming,yaking,uaking,oaning,auling,ooping,aiding,naping,euring,tolling,uzzing,ganing,haning,ualing,halling,iasing,auding,ieting,ceting,ouling,voring,ralling,garing,joring,oaming,oaking,roring,nelling,ooring,uelling,eaming,ooding,eaping,eeting,ooting,ooming,xiting,keting,ooking,ulling,airing,oaring,biting,outing,oiting,earing,naling,oading,eeding,ouring,eaking,aiming,illing,oining,eaning,onging,ealing,aining,eadingยฆ4:thoming,melling,aboring,ivoting,weating,dfilling,onoring,eriting,imiting,tialling,rgining,otoring,linging,winging,lleting,louding,spelling,mpelling,heating,feating,opelling,choring,welling,ymaking,ctoring,calling,peating,iloring,laiting,utoring,uditing,mmaking,loating,iciting,waiting,mbating,voiding,otalling,nsoring,nselling,ocusing,itoring,elopingยฆ5:rselling,umpeting,atrolling,treating,tselling,rpreting,pringing,ummeting,ossoming,elmaking,eselling,rediting,totyping,onmaking,rfeiting,ntrollingยฆ5e:chmaking,dkeeping,severing,erouting,ecreting,ephoning,uthoring,ravening,reathing,pediting,erfering,eotyping,fringing,entoring,ombining,ompetingยฆ4e:emaking,eething,twining,rruling,chuting,xciting,rseding,scoping,edoring,pinging,lunging,agining,craping,pleting,eleting,nciting,nfining,ncoding,tponing,ecoding,writing,esaling,nvening,gnoring,evoting,mpeding,rvening,dhering,mpiling,storing,nviting,ploringยฆ3e:tining,nuring,saking,miring,haling,ceding,xuding,rining,nuting,laring,caring,miling,riding,hoking,piring,lading,curing,uading,noting,taping,futing,paring,hading,loding,siring,guring,vading,voking,during,niting,laning,caping,luting,muting,ruding,ciding,juring,laming,caling,hining,uoting,liding,ciling,duling,tuting,puting,cuting,coring,uiding,tiring,turing,siding,rading,enging,haping,buting,lining,taking,anging,haring,uiring,coming,mining,moting,suring,viding,ludingยฆ2e:tring,zling,uging,oging,gling,iging,vring,fling,lging,obing,psing,pling,ubing,cling,dling,wsing,iking,rsing,dging,kling,ysing,tling,rging,eging,nsing,uning,osing,uming,using,ibing,bling,aging,ising,asing,atingยฆ2ie:rlyingยฆ1e:zing,uing,cing,ving",rev:"ying:ieยฆ1ing:se,ke,te,we,ne,re,de,pe,me,le,c,heยฆ2ing:ll,ng,dd,ee,ye,oe,rg,usยฆ2ning:unยฆ2ging:og,ag,ug,ig,egยฆ2ming:umยฆ2bing:ub,ab,eb,obยฆ3ning:lan,can,hin,pin,winยฆ3ring:cur,lur,tir,tar,pur,carยฆ3ing:ait,del,eel,fin,eat,oat,eem,lel,ool,ein,uinยฆ3ping:rop,rap,top,uip,wap,hip,hop,lap,rip,capยฆ3ming:tem,wim,rim,kim,limยฆ3ting:mat,cut,pot,lit,lot,hat,set,pit,putยฆ3ding:hed,bed,bidยฆ3king:rekยฆ3ling:cil,pelยฆ3bing:ribยฆ4ning:eginยฆ4ing:isit,ruit,ilot,nsit,dget,rkel,ival,rcelยฆ4ring:efer,nferยฆ4ting:rmit,mmit,ysit,dmit,emit,bmit,tfit,gretยฆ4ling:evel,xcel,ivelยฆ4ding:hredยฆ5ing:arget,posit,rofitยฆ5ring:nsferยฆ5ting:nsmit,orget,cquitยฆ5ling:ancel,istil",ex:"3:adding,eating,aiming,aiding,airing,outing,gassing,setting,getting,putting,cutting,winning,sitting,betting,mapping,tapping,letting,bidding,hitting,tanning,netting,popping,fitting,capping,lapping,barring,banning,vetting,topping,rotting,tipping,potting,wetting,pitting,dipping,budding,hemming,pinning,jetting,kidding,padding,podding,sipping,wedding,bedding,donning,warring,penning,gutting,cueing,wadding,petting,ripping,napping,matting,tinning,binning,dimming,hopping,mopping,nodding,panning,rapping,ridding,sinningยฆ4:selling,falling,calling,waiting,editing,telling,rolling,heating,boating,hanging,beating,coating,singing,tolling,felling,polling,discing,seating,voiding,gelling,yelling,baiting,reining,ruining,seeking,spanning,stepping,knitting,emitting,slipping,quitting,dialing,omitting,clipping,shutting,skinning,abutting,flipping,trotting,cramming,fretting,suitingยฆ5:bringing,treating,spelling,stalling,trolling,expelling,rivaling,wringing,deterring,singeing,befitting,refittingยฆ6:enrolling,distilling,scrolling,strolling,caucusing,travellingยฆ7:installing,redefining,stencilling,recharging,overeating,benefiting,unraveling,programingยฆ9:reprogrammingยฆis:beingยฆ2e:using,aging,owingยฆ3e:making,taking,coming,noting,hiring,filing,coding,citing,doping,baking,coping,hoping,lading,caring,naming,voting,riding,mining,curing,lining,ruling,typing,boring,dining,firing,hiding,piling,taping,waning,baling,boning,faring,honing,wiping,luring,timing,wading,piping,fading,biting,zoning,daring,waking,gaming,raking,ceding,tiring,coking,wining,joking,paring,gaping,poking,pining,coring,liming,toting,roping,wiring,achingยฆ4e:writing,storing,eroding,framing,smoking,tasting,wasting,phoning,shaking,abiding,braking,flaking,pasting,priming,shoring,sloping,withing,hingingยฆ5e:defining,refining,renaming,swathing,fringing,recitingยฆ1ie:dying,tying,lying,vyingยฆ7e:sunbathing"},vs={fwd:"1:mtยฆ2:llenยฆ3:iven,akenยฆ:neยฆy:in",both:"1:wnยฆ2:me,atenยฆ3:seen,bidden,isenยฆ4:roven,astenยฆ3l:piltยฆ3d:uiltยฆ2e:ittenยฆ1im:wumยฆ1eak:pokenยฆ1ine:honeยฆ1ose:osenยฆ1in:gunยฆ1ake:wokenยฆear:ornยฆeal:olenยฆeeze:ozenยฆet:ottenยฆink:unkยฆing:ung",rev:"2:unยฆoken:eakยฆought:eekยฆoven:eaveยฆ1ne:oยฆ1own:lyยฆ1den:deยฆ1in:ayยฆ2t:amยฆ2n:eeยฆ3en:allยฆ4n:rive,sake,takeยฆ5n:rgive",ex:"2:beenยฆ3:seen,runยฆ4:given,takenยฆ5:shakenยฆ2eak:brokenยฆ1ive:doveยฆ2y:flownยฆ3e:hidden,riddenยฆ1eek:soughtยฆ1ake:wokenยฆ1eave:woven"},bs={fwd:"1:oesยฆ1ve:as",both:"1:xesยฆ2:zzes,ches,shes,ssesยฆ3:iasesยฆ2y:llies,pliesยฆ1y:cies,bies,ties,vies,nies,pies,dies,ries,fiesยฆ:s",rev:"1ies:lyยฆ2es:us,go,doยฆ3es:cho,eto",ex:"2:does,goesยฆ3:gassesยฆ5:focusesยฆis:areยฆ3y:reliesยฆ2y:fliesยฆ2ve:has"},ys={fwd:"1st:eยฆ1est:l,m,f,sยฆ1iest:ceyยฆ2est:or,irยฆ3est:ver",both:"4:eastยฆ5:hwestยฆ5lest:erfulยฆ4est:weet,lgar,tter,oungยฆ4most:uterยฆ3est:ger,der,rey,iet,ong,earยฆ3test:latยฆ3most:nerยฆ2est:pt,ft,nt,ct,rt,htยฆ2test:itยฆ2gest:igยฆ1est:b,k,n,p,h,d,wยฆiest:y",rev:"1:ttest,nnest,yestยฆ2:sest,stest,rmest,cest,vest,lmest,olest,ilest,ulest,ssest,imest,uestยฆ3:rgest,eatest,oorest,plest,allest,urest,iefest,uelest,blest,ugest,amest,yalest,ealest,illest,tlest,itestยฆ4:cerest,eriest,somest,rmalest,ndomest,motest,uarest,tiffestยฆ5:leverest,rangestยฆar:urthestยฆ3ey:riciest",ex:"best:goodยฆworst:badยฆ5est:greatยฆ4est:fast,full,fair,dullยฆ3test:hot,wet,fatยฆ4nest:thinยฆ1urthest:farยฆ3est:gay,shy,illยฆ4test:neatยฆ4st:late,wide,fine,safe,cute,fake,pale,rare,rude,sore,ripe,direยฆ6st:severe"},ws={fwd:"1:tistic,eable,lful,sful,ting,ttyยฆ2:onate,rtable,geous,ced,seful,ctfulยฆ3:ortive,entedยฆarity:earยฆy:eticยฆfulness:begoneยฆ1ity:reยฆ1y:tiful,gicยฆ2ity:ile,imous,ilous,imeยฆ2ion:atedยฆ2eness:ivingยฆ2y:triousยฆ2ation:iringยฆ2tion:vantยฆ3ion:ectยฆ3ce:mant,manticยฆ3tion:irableยฆ3y:est,esticยฆ3m:mistic,listicยฆ3ess:ningยฆ4n:utiousยฆ4on:rative,native,vative,ectiveยฆ4ce:erant",both:"1:king,wingยฆ2:alous,ltuous,oyful,rdousยฆ3:gorous,ectable,werful,amaticยฆ4:oised,usical,agical,raceful,ocused,lined,ightfulยฆ5ness:stful,lding,itous,nuous,ulous,otous,nable,gious,ayful,rvous,ntous,lsive,peful,entle,ciful,osive,leful,isive,ncise,reful,miousยฆ5ty:ivaciousยฆ5ties:ubtleยฆ5ce:ilient,adiant,atientยฆ5cy:icientยฆ5sm:gmaticยฆ5on:sessive,dictiveยฆ5ity:pular,sonal,eative,enticยฆ5sity:uminousยฆ5ism:conicยฆ5nce:mperateยฆ5ility:mitableยฆ5ment:xcitedยฆ5n:bitiousยฆ4cy:brant,etent,curateยฆ4ility:erable,acable,icable,ptableยฆ4ty:nacious,aive,oyal,daciousยฆ4n:iciousยฆ4ce:vient,erent,stent,ndent,dient,quent,identยฆ4ness:adic,ound,hing,pant,sant,oing,oist,tuteยฆ4icity:impleยฆ4ment:fined,musedยฆ4ism:oticยฆ4ry:danticยฆ4ity:tund,eralยฆ4edness:handยฆ4on:uitiveยฆ4lity:pitableยฆ4sm:eroic,namicยฆ4sity:nerousยฆ3th:armยฆ3ility:pable,bable,dable,iableยฆ3cy:hant,nant,icateยฆ3ness:red,hin,nse,ict,iet,ite,oud,ind,ied,rceยฆ3ion:luteยฆ3ity:ual,gal,volous,ialยฆ3ce:sent,fensive,lant,gant,gent,lent,dantยฆ3on:asiveยฆ3m:fist,sistic,iasticยฆ3y:terious,xurious,ronic,tasticยฆ3ur:amorousยฆ3e:tunateยฆ3ation:minedยฆ3sy:rteousยฆ3ty:ainยฆ3ry:aveยฆ3ment:azedยฆ2ness:de,on,ue,rn,ur,ft,rp,pe,om,ge,rd,od,ay,ss,er,ll,oy,ap,ht,ld,ad,rtยฆ2inousness:umousยฆ2ity:neous,ene,id,aneยฆ2cy:bate,lateยฆ2ation:izedยฆ2ility:oble,ibleยฆ2y:odicยฆ2e:oving,aringยฆ2s:ostยฆ2itude:ptยฆ2dom:eeยฆ2ance:uringยฆ2tion:reetยฆ2ion:otedยฆ2sion:endingยฆ2liness:anยฆ2or:rdentยฆ1th:ungยฆ1e:uableยฆ1ness:w,h,k,fยฆ1ility:mbleยฆ1or:ventยฆ1ement:gingยฆ1tiquity:ncientยฆ1ment:hedยฆverty:orยฆength:ongยฆeat:otยฆpth:epยฆiness:y",rev:"",ex:"5:forceful,humorousยฆ8:charismaticยฆ13:understandingยฆ5ity:activeยฆ11ness:adventurous,inquisitive,resourcefulยฆ8on:aggressive,automatic,perceptiveยฆ7ness:amorous,fatuous,furtive,ominous,seriousยฆ5ness:ample,sweetยฆ12ness:apprehensive,cantankerous,contemptuous,ostentatiousยฆ13ness:argumentative,conscientiousยฆ9ness:assertive,facetious,imperious,inventive,oblivious,rapacious,receptive,seditious,whimsicalยฆ10ness:attractive,expressive,impressive,loquacious,salubrious,thoughtfulยฆ3edom:boringยฆ4ness:calm,fast,keen,tameยฆ8ness:cheerful,gracious,specious,spurious,timorous,unctuousยฆ5sity:curiousยฆ9ion:deliberateยฆ8ion:desperateยฆ6e:expensiveยฆ7ce:fragrantยฆ3y:furiousยฆ9ility:ineluctableยฆ6ism:mysticalยฆ8ity:physical,proactive,sensitive,verticalยฆ5cy:pliantยฆ7ity:positiveยฆ9ity:practicalยฆ12ism:professionalยฆ6ce:prudentยฆ3ness:redยฆ6cy:vagrantยฆ3dom:wise"},ks=function(e="",t={}){let n=function(e,t={}){return t.hasOwnProperty(e)?t[e]:null}(e,t.ex);return n=n||function(e,t=[]){for(let n=0;n=1;r-=1){let a=e.length-r,o=e.substring(a,e.length);if(!0===t.hasOwnProperty(o))return e.slice(0,a)+t[o];if(!0===n.hasOwnProperty(o))return e.slice(0,a)+n[o]}return t.hasOwnProperty("")?e+t[""]:n.hasOwnProperty("")?e+n[""]:null}(e,t.fwd,t.both),n=n||e,n};const Ps=function(e){return Object.entries(e).reduce(((e,t)=>(e[t[1]]=t[0],e)),{})};var As=function(e={}){return{reversed:!0,both:Ps(e.both),ex:Ps(e.ex),fwd:e.rev||{}}};const Cs=/^([0-9]+)/,js=function(e){let t=function(e){let t={};return e.split("ยฆ").forEach((e=>{let[n,r]=e.split(":");r=(r||"").split(","),r.forEach((e=>{t[e]=n}))})),t}(e);return Object.keys(t).reduce(((e,n)=>(e[n]=function(e="",t=""){let n=(t=String(t)).match(Cs);if(null===n)return t;let r=Number(n[1])||0;return e.substring(0,r)+t.replace(Cs,"")}(n,t[n]),e)),{})};var Ns=function(e={}){return"string"==typeof e&&(e=JSON.parse(e)),e.fwd=js(e.fwd||""),e.both=js(e.both||""),e.rev=js(e.rev||""),e.ex=js(e.ex||""),e};const xs=Ns({fwd:"1:tted,wed,gged,nned,een,rred,pped,yed,bbed,oed,dded,rd,wn,mmedยฆ2:eed,nded,et,hted,st,oled,ut,emed,eled,lded,ken,rt,nked,apt,ant,eped,ekedยฆ3:eared,eat,eaded,nelled,ealt,eeded,ooted,eaked,eaned,eeted,mited,bid,uit,ead,uited,ealed,geted,velled,ialed,belledยฆ4:ebuted,hined,comedยฆy:iedยฆome:ameยฆear:oreยฆind:oundยฆing:ung,angยฆep:ptยฆink:ank,unkยฆig:ugยฆall:ellยฆee:awยฆive:aveยฆeeze:ozeยฆold:eldยฆave:ftยฆake:ookยฆell:oldยฆite:oteยฆide:odeยฆine:oneยฆin:un,onยฆeal:oleยฆim:amยฆie:ayยฆand:oodยฆ1ise:roseยฆ1eak:rokeยฆ1ing:roughtยฆ1ive:roveยฆ1el:eltยฆ1id:badeยฆ1et:gotยฆ1y:aidยฆ1it:satยฆ3e:lidยฆ3d:pent",both:"1:aed,fed,xed,hedยฆ2:sged,xted,wled,rped,lked,kied,lmed,lped,uped,bted,rbed,rked,wned,rled,mped,fted,mned,mbed,zzed,omed,ened,cked,gned,lted,sked,ued,zed,nted,ered,rted,rmed,ced,sted,rned,ssed,rded,pted,ved,ctedยฆ3:cled,eined,siped,ooned,uked,ymed,jored,ouded,ioted,oaned,lged,asped,iged,mured,oided,eiled,yped,taled,moned,yled,lit,kled,oaked,gled,naled,fled,uined,oared,valled,koned,soned,aided,obed,ibed,meted,nicked,rored,micked,keted,vred,ooped,oaded,rited,aired,auled,filled,ouled,ooded,ceted,tolled,oited,bited,aped,tled,vored,dled,eamed,nsed,rsed,sited,owded,pled,sored,rged,osed,pelled,oured,psed,oated,loned,aimed,illed,eured,tred,ioned,celled,bled,wsed,ooked,oiled,itzed,iked,iased,onged,ased,ailed,uned,umed,ained,auded,nulled,ysed,eged,ised,aged,oined,ated,used,dged,donedยฆ4:ntied,efited,uaked,caded,fired,roped,halled,roked,himed,culed,tared,lared,tuted,uared,routed,pited,naked,miled,houted,helled,hared,cored,caled,tired,peated,futed,ciled,called,tined,moted,filed,sided,poned,iloted,honed,lleted,huted,ruled,cured,named,preted,vaded,sured,talled,haled,peded,gined,nited,uided,ramed,feited,laked,gured,ctored,unged,pired,cuted,voked,eloped,ralled,rined,coded,icited,vided,uaded,voted,mined,sired,noted,lined,nselled,luted,jured,fided,puted,piled,pared,olored,cided,hoked,enged,tured,geoned,cotted,lamed,uiled,waited,udited,anged,luded,mired,uired,radedยฆ5:modelled,izzled,eleted,umpeted,ailored,rseded,treated,eduled,ecited,rammed,eceded,atrolled,nitored,basted,twined,itialled,ncited,gnored,ploded,xcited,nrolled,namelled,plored,efeated,redited,ntrolled,nfined,pleted,llided,lcined,eathed,ibuted,lloted,dhered,ccededยฆ3ad:sledยฆ2aw:drewยฆ2ot:hotยฆ2ke:madeยฆ2ow:hrew,grewยฆ2ose:hoseยฆ2d:iltยฆ2in:eganยฆ1un:ranยฆ1ink:houghtยฆ1ick:tuckยฆ1ike:ruckยฆ1eak:poke,nuckยฆ1it:patยฆ1o:didยฆ1ow:newยฆ1ake:wokeยฆgo:went",rev:"3:rst,hed,hut,cut,setยฆ4:tbidยฆ5:dcast,eread,pread,erbidยฆought:uy,eekยฆ1ied:ny,ly,dy,ry,fy,py,vy,by,ty,cyยฆ1ung:ling,ting,wingยฆ1pt:eepยฆ1ank:rinkยฆ1ore:bear,wearยฆ1ave:giveยฆ1oze:reezeยฆ1ound:rind,windยฆ1ook:take,hakeยฆ1aw:seeยฆ1old:sellยฆ1ote:riteยฆ1ole:tealยฆ1unk:tinkยฆ1am:wimยฆ1ay:lieยฆ1ood:tandยฆ1eld:holdยฆ2d:he,ge,re,le,leed,ne,reed,be,ye,lee,pe,weยฆ2ed:dd,oy,or,ey,gg,rr,us,ew,toยฆ2ame:ecome,rcomeยฆ2ped:apยฆ2ged:ag,og,ug,egยฆ2bed:ub,ab,ib,obยฆ2lt:neelยฆ2id:payยฆ2ang:pringยฆ2ove:triveยฆ2med:umยฆ2ode:rrideยฆ2at:ysitยฆ3ted:mit,hat,mat,lat,pot,rot,batยฆ3ed:low,end,tow,und,ond,eem,lay,cho,dow,xit,eld,ald,uld,law,lel,eat,oll,ray,ank,fin,oam,out,how,iek,tay,haw,ait,vet,say,cay,bowยฆ3d:ste,ede,ode,ete,ree,ude,ame,oke,ote,ime,ute,adeยฆ3red:lur,cur,pur,carยฆ3ped:hop,rop,uip,rip,lip,tep,topยฆ3ded:bed,rod,kidยฆ3ade:orbidยฆ3led:uelยฆ3ned:lan,can,kin,pan,tunยฆ3med:rim,limยฆ4ted:quit,llotยฆ4ed:pear,rrow,rand,lean,mand,anel,pand,reet,link,abel,evel,imit,ceed,ruit,mind,peal,veal,hool,head,pell,well,mell,uell,band,hear,weakยฆ4led:nnel,qual,ebel,ivelยฆ4red:nfer,efer,sferยฆ4n:sake,trewยฆ4d:nteeยฆ4ded:hredยฆ4ned:rpinยฆ5ed:light,nceal,right,ndear,arget,hread,eight,rtial,ebootยฆ5d:edite,nviteยฆ5ted:egretยฆ5led:ravel",ex:"2:been,uppedยฆ3:added,aged,aided,aimed,aired,bid,died,dyed,egged,erred,eyed,fit,gassed,hit,lied,owed,pent,pied,tied,used,vied,oiled,outed,banned,barred,bet,canned,cut,dipped,donned,ended,feed,inked,jarred,let,manned,mowed,netted,padded,panned,pitted,popped,potted,put,set,sewn,sowed,tanned,tipped,topped,vowed,weed,bowed,jammed,binned,dimmed,hopped,mopped,nodded,pinned,rigged,sinned,towed,vettedยฆ4:ached,baked,baled,boned,bored,called,caned,cared,ceded,cited,coded,cored,cubed,cured,dared,dined,edited,exited,faked,fared,filed,fined,fired,fuelled,gamed,gelled,hired,hoped,joked,lined,mined,named,noted,piled,poked,polled,pored,pulled,reaped,roamed,rolled,ruled,seated,shed,sided,timed,tolled,toned,voted,waited,walled,waned,winged,wiped,wired,zoned,yelled,tamed,lubed,roped,faded,mired,caked,honed,banged,culled,heated,raked,welled,banded,beat,cast,cooled,cost,dealt,feared,folded,footed,handed,headed,heard,hurt,knitted,landed,leaked,leapt,linked,meant,minded,molded,neared,needed,peaked,plodded,plotted,pooled,quit,read,rooted,sealed,seeded,seeped,shipped,shunned,skimmed,slammed,sparred,stemmed,stirred,suited,thinned,twinned,swayed,winked,dialed,abutted,blotted,fretted,healed,heeded,peeled,reeledยฆ5:basted,cheated,equalled,eroded,exiled,focused,opined,pleated,primed,quoted,scouted,shored,sloped,smoked,sniped,spelled,spouted,routed,staked,stored,swelled,tasted,treated,wasted,smelled,dwelled,honored,prided,quelled,eloped,scared,coveted,sweated,breaded,cleared,debuted,deterred,freaked,modeled,pleaded,rebutted,speededยฆ6:anchored,defined,endured,impaled,invited,refined,revered,strolled,cringed,recast,thrust,unfoldedยฆ7:authored,combined,competed,conceded,convened,excreted,extruded,redefined,restored,secreted,rescinded,welcomedยฆ8:expedited,infringedยฆ9:interfered,intervened,perseveredยฆ10:contravenedยฆeat:ateยฆis:wasยฆgo:wentยฆare:wereยฆ3d:bent,lent,rent,sentยฆ3e:bit,fled,hid,lostยฆ3ed:bled,bredยฆ2ow:blew,grewยฆ1uy:boughtยฆ2tch:caughtยฆ1o:didยฆ1ive:dove,gaveยฆ2aw:drewยฆ2ed:fedยฆ2y:flew,laid,paid,saidยฆ1ight:foughtยฆ1et:gotยฆ2ve:hadยฆ1ang:hungยฆ2ad:ledยฆ2ght:litยฆ2ke:madeยฆ2et:metยฆ1un:ranยฆ1ise:roseยฆ1it:satยฆ1eek:soughtยฆ1each:taughtยฆ1ake:woke,tookยฆ1eave:woveยฆ2ise:aroseยฆ1ear:bore,tore,woreยฆ1ind:bound,found,woundยฆ2eak:brokeยฆ2ing:brought,wrungยฆ1ome:cameยฆ2ive:droveยฆ1ig:dugยฆ1all:fellยฆ2el:feltยฆ4et:forgotยฆ1old:heldยฆ2ave:leftยฆ1ing:rang,sangยฆ1ide:rodeยฆ1ink:sankยฆ1ee:sawยฆ2ine:shoneยฆ4e:slidยฆ1ell:sold,toldยฆ4d:spentยฆ2in:spunยฆ1in:won"}),Is=Ns(bs),Ts=Ns(fs),Ds=Ns(vs),Hs=As(xs),Gs=As(Is),Es=As(Ts),Os=As(Ds),Fs=Ns(ps),Vs=Ns(ys);var zs={fromPast:xs,fromPresent:Is,fromGerund:Ts,fromParticiple:Ds,toPast:Hs,toPresent:Gs,toGerund:Es,toParticiple:Os,toComparative:Fs,toSuperlative:Vs,fromComparative:As(Fs),fromSuperlative:As(Vs),adjToNoun:Ns(ws)},Bs=["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","faction","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","politburo","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","subsidiary","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce(((e,t)=>(e[t]=!0,e)),{}),$s=["atoll","basin","bay","beach","bluff","bog","camp","canyon","canyons","cape","cave","caves","cliffs","coast","cove","coves","crater","creek","desert","dune","dunes","escarpment","estuary","falls","fjord","fjords","forest","forests","glacier","gorge","gorges","gulf","gully","highland","hill","hills","inlet","island","islands","isthmus","knoll","lagoon","lake","marsh","marshes","mount","mountain","mountains","narrows","peninsula","plains","plateau","pond","rapids","ravine","reef","reefs","ridge","river","rivers","sandhill","shoal","shore","shoreline","shores","strait","straits","stream","swamp","tombolo","trail","trails","trench","valley","vallies","volcano","waterfall","watershed","wetland","woods","burough","county","district","municipality","prefecture","province","region","reservation","state","territory","borough","metropolis","downtown","uptown","midtown","city","town","township","hamlet","country","kingdom","enclave","neighbourhood","neighborhood","kingdom","ward","zone","airport","amphitheater","arch","arena","auditorium","bar","barn","basilica","battlefield","bridge","building","castle","centre","coliseum","cineplex","complex","dam","farm","field","fort","garden","gardens","gymnasium","hall","house","levee","library","memorial","monument","museum","gallery","palace","pillar","pits","plantation","playhouse","quarry","sportsfield","sportsplex","stadium","terrace","terraces","theater","tower","park","parks","site","raceway","sportsplex","st","street","rd","road","crescent","cr","way","tr","terrace","avenue","ave"].reduce(((e,t)=>(e[t]=!0,e)),{}),Ss=[[/([^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"],[/(..ase)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,""]],Ks=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(Ls[t].forEach((n=>e[n]=t)),e)),{});var Js=Ls,Ws=function(e){let t=e.substring(e.length-3);if(!0===Js.hasOwnProperty(t))return Js[t];let n=e.substring(e.length-2);return!0===Js.hasOwnProperty(n)?Js[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const qs={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var Us=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=Ws(e)),qs.hasOwnProperty(e))c=qs[e];else if("Participle"===n)c=ks(l,i);else if("PastTense"===n)c=ks(l,r);else if("PresentTense"===n)c=ks(l,a);else{if("Gerund"!==n)return e;c=ks(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c},Rs=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:i,PastTense:ks(i,n),PresentTense:ks(i,r),Gerund:ks(i,a),FutureTense:"will "+i},u=ks(i,o);if(u!==e&&u!==l.PastTense){let n=t.one.lexicon||{};"Participle"!==n[u]&&"Adjective"!==n[u]||("play"===e&&(u="played"),l.Participle=u)}return s&&Object.keys(l).forEach((e=>{l[e]+=" "+s})),l},Qs={toInfinitive:Us,conjugate:Rs,all:function(e,t){let n=Rs(e,t);return delete n.FutureTense,Object.values(n).filter((e=>e))}};const _s=function(e,t){const n=t.two.models.toSuperlative;return ks(e,n)},Zs=function(e,t){const n=t.two.models.toComparative;return ks(e,n)};var Xs=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 Ys="ically",el=new Set(["analyt"+Ys,"chem"+Ys,"class"+Ys,"clin"+Ys,"crit"+Ys,"ecolog"+Ys,"electr"+Ys,"empir"+Ys,"frant"+Ys,"grammat"+Ys,"ident"+Ys,"ideolog"+Ys,"log"+Ys,"mag"+Ys,"mathemat"+Ys,"mechan"+Ys,"med"+Ys,"method"+Ys,"method"+Ys,"mus"+Ys,"phys"+Ys,"phys"+Ys,"polit"+Ys,"pract"+Ys,"rad"+Ys,"satir"+Ys,"statist"+Ys,"techn"+Ys,"technolog"+Ys,"theoret"+Ys,"typ"+Ys,"vert"+Ys,"whims"+Ys]),tl=[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"}],nl=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"]),rl={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"quick",superbly:"superb",cynically:"cynical",well:"good"},al=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],ol={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var il=function(e){if(ol.hasOwnProperty(e))return ol[e];let t=Xs(e,al);return t||(t=e+"ly"),t},sl={toSuperlative:_s,toComparative:Zs,toAdverb:il,toNoun:function(e,t){const n=t.two.models.adjToNoun;return ks(e,n)},fromAdverb:function(e){return e.endsWith("ly")?el.has(e)?e.replace(/ically/,"ical"):nl.has(e)?null:rl.hasOwnProperty(e)?rl[e]:Xs(e,tl)||e:null},fromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return ks(e,n)},fromComparative:function(e,t){const n=t.two.models.fromComparative;return ks(e,n)},all:function(e,t){let n=[e];return n.push(_s(e,t)),n.push(Zs(e,t)),n.push(il(e)),n=n.filter((e=>e)),n=new Set(n),Array.from(n)}},ll={noun:Ms,verb:Qs,adjective:sl},ul={Singular:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.noun.toPlural(e,r);a[o]||(t[o]=t[o]||"Plural")},Actor:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.noun.toPlural(e,r);a[o]||(t[o]=t[o]||["Plural","Actor"])},Comparable:(e,t,n,r)=>{let a=r.one.lexicon,{toSuperlative:o,toComparative:i}=n.two.transform.adjective,s=o(e,r);a[s]||(t[s]=t[s]||"Superlative");let l=i(e,r);a[l]||(t[l]=t[l]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,r)=>{let a=n.two.transform.noun.toPlural(e,r);t[a]=t[a]||["Demonym","Plural"]},Infinitive:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.verb.conjugate(e,r);Object.entries(o).forEach((e=>{a[e[1]]||t[e[1]]||"FutureTense"===e[0]||(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.verb.conjugate(i,r);delete l.FutureTense,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]]=2;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"]},Place:(e,t)=>{t[e]=["Place","ProperNoun"]},Region:(e,t)=>{t[e]=["Region","ProperNoun"]}},cl=function(e,t){const{methods:n,model:r}=t;let a={},o={};return Object.keys(e).forEach((t=>{let i=e[t],s=(t=(t=t.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);s.length>1&&(void 0===o[s[0]]||s.length>o[s[0]])&&(o[s[0]]=s.length),!0===ul.hasOwnProperty(i)&&ul[i](t,a,n,r),a[t]=a[t]||i})),delete a[""],delete a.null,delete a[" "],{lex:a,_multi:o}},hl=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]){let n=e[t-1];if(n.tags.has("Date")||a.has(n.normal))return!1;if(n.tags.has("Adjective")||r.tags.has("Adjective"))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)})),re.endsWith(t))):"s"===t&&!ml.find((t=>e.endsWith(t)))},fl={two:{quickSplit:hl,expandLexicon:cl,transform:ll,looksPlural:pl}},vl=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};let bl={one:{lexicon:{}},two:{models:zs}};const yl={"Actor|Verb":"Actor","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":"FirstName","Person|Place":"Person","Person|Adj":"Comparative","Plural|Verb":"Plural","Unit|Noun":"Noun"},wl=function(e,t){const n={model:t,methods:fl};let{lex:r,_multi:a}=fl.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,r),Object.assign(t.one._multiCache,a),t},kl=function(e,t,n){let r=Rs(e,bl);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},Pl=function(e,t,n){let r=_s(e,n);t[r]=t[r]||"Superlative";let a=Zs(e,n);t[a]=t[a]||"Comparative"},Al=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach((a=>{const o=e[a];if(n[a]=yl[o],"Noun|Verb"!==o&&"Person|Verb"!==o&&"Actor|Verb"!==o||kl(a,r,!1),"Adj|Present"===o&&(kl(a,r,!0),Pl(a,r,t)),"Person|Adj"===o&&Pl(a,r,t),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=Us(a,bl,"Gerund");r[e]||(n[e]="Infinitive")}if("Noun|Gerund"!==o&&"Adj|Noun"!==o&&"Person|Noun"!==o||function(e,t,n){let r=Wo(e,n);t[r]=t[r]||"Plural"}(a,r,t),"Adj|Past"===o){let e=Us(a,bl,"PastTense");r[e]||(n[e]="Infinitive")}})),t=wl(n,t)};var Cl=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=wl(e.one.lexicon,e)).one.lexicon,e),e=Al(e.two.switches,e),e=vl(e)};let jl={one:{_multiCache:{},lexicon:Uo,frozenLex:{"20th century fox":"Organization","7 eleven":"Organization","motel 6":"Organization","excuse me":"Expression","financial times":"Organization","guns n roses":"Organization","la z boy":"Organization","labour party":"Organization","new kids on the block":"Organization","new york times":"Organization","the guess who":"Organization","thin lizzy":"Organization","prime minister":"Actor","free market":"Singular","lay up":"Singular","living room":"Singular","living rooms":"Plural","spin off":"Singular","appeal court":"Uncountable","cold war":"Uncountable","gene pool":"Uncountable","machine learning":"Uncountable","nail polish":"Uncountable","time off":"Uncountable","take part":"Infinitive","bill gates":"Person","doctor who":"Person","dr who":"Person","he man":"Person","iron man":"Person","kid cudi":"Person","run dmc":"Person","rush limbaugh":"Person","snow white":"Person","tiger woods":"Person","brand new":"Adjective","en route":"Adjective","left wing":"Adjective","off guard":"Adjective","on board":"Adjective","part time":"Adjective","right wing":"Adjective","so called":"Adjective","spot on":"Adjective","straight forward":"Adjective","super duper":"Adjective","tip top":"Adjective","top notch":"Adjective","up to date":"Adjective","win win":"Adjective","brooklyn nets":"SportsTeam","chicago bears":"SportsTeam","houston astros":"SportsTeam","houston dynamo":"SportsTeam","houston rockets":"SportsTeam","houston texans":"SportsTeam","minnesota twins":"SportsTeam","orlando magic":"SportsTeam","san antonio spurs":"SportsTeam","san diego chargers":"SportsTeam","san diego padres":"SportsTeam","iron maiden":"ProperNoun","isle of man":"Country","united states":"Country","united states of america":"Country","prince edward island":"Region","cedar breaks":"Place","cedar falls":"Place","point blank":"Adverb","tiny bit":"Adverb","by the time":"Conjunction","no matter":"Conjunction","civil wars":"Plural","credit cards":"Plural","default rates":"Plural","free markets":"Plural","head starts":"Plural","home runs":"Plural","lay ups":"Plural","phone calls":"Plural","press releases":"Plural","record labels":"Plural","soft serves":"Plural","student loans":"Plural","tax returns":"Plural","tv shows":"Plural","video games":"Plural","took part":"PastTense","takes part":"PresentTense","taking part":"Gerund","taken part":"Participle","light bulb":"Noun","rush hour":"Noun","fluid ounce":"Unit","the rolling stones":"Organization"}},two:{irregularPlurals:Go,models:zs,suffixPatterns:Qi,prefixPatterns:Yi,endsWith:hs,neighbours:ms,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'[a-z]{3}/,"LastName","mc'neil"],[/^o'[a-z]{3}/,"LastName","o'connor"],[/^ma?cd[aeiou][a-z]{3}/,"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]{4}|[0-9]{2})$/,"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})$/,"NumericValue","9km"]],switches:Ro,clues:Oi,uncountable:{},orgWords:Bs,placeWords:$s}};jl=Cl(jl);var Nl=jl,xl=function(e,t,n,r){const a=r.methods.one.setTag;if(0===t&&e.length>=3){const t=/:/;if(e[0].post.match(t)){let t=e[1];if(t.tags.has("Value")||t.tags.has("Email")||t.tags.has("PhoneNumber"))return;a([e[0]],"Expression",r,null,"2-punct-colon''")}}},Il=function(e,t,n,r){const a=r.methods.one.setTag;"-"===e[t].post&&e[t+1]&&a([e[t],e[t+1]],"Hyphenated",r,null,"1-punct-hyphen''")};const Tl=/^(under|over|mis|re|un|dis|semi)-?/;var Dl=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(Tl.test(a.normal)){let e=a.normal.replace(Tl,"");e.length>3&&r.hasOwnProperty(e)&&(a.switch=r[e])}},Hl=function(e,t,n){if(!t||0===t.length)return;if(!0===e.frozen)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 Gl=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific","Month"];var El=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t)))||(pl(e.normal)?Hl(e,"Plural","3-plural-guess"):Hl(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=Ws(e.normal);t&&Hl(e,t,"3-verb-tense-guess")}}(r)};const Ol=/^\p{Lu}[\p{Ll}'โ€™]/u,Fl=/[0-9]/,Vl=["Date","Month","WeekDay","Unit","Expression"],zl=/[IVX]/,Bl=/^[IVXLCDM]{2,}$/,$l=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,Sl={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var Kl=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===Ol.test(o)&&!1===Fl.test(o)?Vl.find((e=>r.tags.has(e)))||r.pre.match(/["']$/)||"the"===r.normal?null:(El(e,t,n),r.tags.has("Noun")||r.frozen||r.tags.clear(),Hl(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&Bl.test(o)&&zl.test(o)&&$l.test(o)&&!Sl[r.normal]?(Hl(r,"RomanNumeral","2-xvii"),!0):null};const Ml=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 Ll=function(e,t,n){let r=e[t];if(0===r.tags.size){let e=Ml(r.normal,n.two.suffixPatterns);if(null!==e)return Hl(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=Ml(r.implicit,n.two.suffixPatterns),null!==e))return Hl(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const Jl=/['โ€˜โ€™โ€›โ€ตโ€ฒ`ยด]/,Wl=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 Hl(r,e,"2-prefix"),r.confidence=.5,!0}return null};const Rl=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"]),Ql=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!Rl.has(t)||!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun")},_l=function(e){return!(!e||!e.tags.has("Ordinal")&&!(e.tags.has("Cardinal")&&e.normal.length<3)&&"is"!==e.normal&&"was"!==e.normal)},Zl=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var Xl=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(Ql(a)||Ql(o))return Hl(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(_l(a)||_l(o))return Hl(n,"Year","2-tagYear-close");if(Zl(e[t-2])||Zl(e[t+2]))return Hl(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 Hl(n,"Year","2-tagYear-noun")}}}return null},Yl=function(e,t,n,r){const a=r.methods.one.setTag,o=e[t],i=["PastTense","PresentTense","Auxiliary","Modal","Particle"];o.tags.has("Verb")&&(i.find((e=>o.tags.has(e)))||a([o],"Infinitive",r,null,"2-verb-type''"))};const eu=/^[A-Z]('s|,)?$/,tu=/^[A-Z-]+$/,nu=/^[A-Z]+s$/,ru=/([A-Z]\.)+[A-Z]?,?$/,au=/[A-Z]{2,}('s|,)?$/,ou=/([a-z]\.)+[a-z]\.?$/,iu={I:!0,A:!0},su={la:!0,ny:!0,us:!0,dc:!0,gb:!0};var lu=function(e,t,n){let r=e[t];return r.tags.has("RomanNumeral")||r.tags.has("Acronym")||r.frozen?null:function(e,t){let n=e.text;if(!1===tu.test(n)){if(!(n.length>3&&!0===nu.test(n)))return!1;n=n.replace(/s$/,"")}return!(n.length>5||iu.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==ru.test(n)&&!0!==ou.test(n)&&!0!==eu.test(n)&&!0!==au.test(n))}(r,n)?(r.tags.clear(),Hl(r,["Acronym","Noun"],"3-no-period-acronym"),!0===su[r.normal]&&Hl(r,"Place","3-place-acronym"),!0===nu.test(r.text)&&Hl(r,"Plural","3-plural-acronym"),!0):!iu.hasOwnProperty(r.text)&&eu.test(r.text)?(r.tags.clear(),Hl(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(Hl(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&tu.test(r.text)&&r.text.length<=6?(Hl(r,"Acronym","3-titlecase-acronym"),!0):null};const uu=function(e,t){if(!e)return null;let n=t.find((t=>e.normal===t[0]));return n?n[1]:null},cu=function(e,t){if(!e)return null;let n=t.find((t=>e.tags.has(t[0])));return n?n[1]:null};var hu=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||uu(e[t-1],a),l=l||uu(e[t+1],o),l=l||cu(e[t-1],r),l=l||cu(e[t+1],i),l)return Hl(s,l,"3-[neighbour]"),El(e,t,n),e[t].confidence=.2,!0}return null};const du=function(e,t,n){return!!e&&!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||!(n||(r=e.text,!/^\p{Lu}[\p{Ll}'โ€™]/u.test(r)))&&(0!==t||e.tags.has("Singular")));var r};var gu=function(e,t,n,r){const a=n.model.two.orgWords,o=n.methods.one.setTag;let i=e[t];if(!0===a[i.machine||i.normal]&&du(e[t-1],t-1,r)){o([e[t]],"Organization",n,null,"3-[org-word]");for(let a=t;a>=0&&du(e[a],a,r);a-=1)o([e[a]],"Organization",n,null,"3-[org-word]")}return null};const mu=/'s$/,pu=new Set(["athletic","city","community","eastern","federal","financial","great","historic","historical","local","memorial","municipal","national","northern","provincial","southern","state","western"]),fu=new Set(["center","centre","way","range","bar","bridge","field","pit"]),vu=function(e,t,n){if(!e)return!1;let r=e.tags;return!(r.has("Organization")||r.has("Possessive")||mu.test(e.normal))&&(!(!r.has("ProperNoun")&&!r.has("Place"))||!(n||(a=e.text,!/^\p{Lu}[\p{Ll}'โ€™]/u.test(a)))&&(0!==t||r.has("Singular")));var a};var bu=function(e,t,n,r){const a=n.model.two.placeWords,o=n.methods.one.setTag;let i=e[t],s=i.machine||i.normal;if(!0===a[s]){for(let a=t-1;a>=0;a-=1)if(!pu.has(e[a].normal)){if(!vu(e[a],a,r))break;o(e.slice(a,t+1),"Place",n,null,"3-[place-of-foo]")}if(fu.has(s))return!1;for(let a=t+1;ae[t].tags.has("ProperNoun")&&wu.test(e[t].text)?"Noun":null,Pu=(e,t,n)=>0!==t||e[1]?null:n,Au={"Adj|Gerund":(e,t)=>ku(e,t),"Adj|Noun":(e,t)=>ku(e,t)||function(e,t){return!e[t+1]&&e[t-1]&&e[t-1].tags.has("Determiner")?"Noun":null}(e,t),"Actor|Verb":(e,t)=>ku(e,t),"Adj|Past":(e,t)=>ku(e,t),"Adj|Present":(e,t)=>ku(e,t),"Noun|Gerund":(e,t)=>ku(e,t),"Noun|Verb":(e,t)=>t>0&&ku(e,t)||Pu(e,t,"Infinitive"),"Plural|Verb":(e,t)=>ku(e,t)||Pu(e,t,"PresentTense")||function(e,t,n){return 0===t&&e.length>3?n:null}(e,t,"Plural"),"Person|Noun":(e,t)=>ku(e,t),"Person|Verb":(e,t)=>0!==t?ku(e,t):null,"Person|Adj":(e,t)=>0===t&&e.length>1||ku(e,t)?"Person":null};var Cu=Au;const ju="undefined"!=typeof process&&process.env?process.env:self.env||{},Nu=/^(under|over|mis|re|un|dis|semi)-?/,xu=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit,r=null;return t.hasOwnProperty(n)&&(r=t[n]),r&&ju.DEBUG_TAGS&&console.log(`\n  โ†“ - '${n}' `),r},Iu=(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)),a=r.find((e=>t[e]));return a&&ju.DEBUG_TAGS&&console.log(`  โ†“ - '${e.normal||e.implicit}' (#${a}) `),a=t[a],a};var Tu=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(Nu.test(l)&&!o[l]&&(l=l.replace(Nu,"")),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="also"!==e[t-1]?.text?t-1:Math.max(0,t-2),o=r.one.tagSet;let i=xu(e[t+1],n.afterWords);return i=i||xu(e[a],n.beforeWords),i=i||Iu(e[a],n.beforeTags,o),i=i||Iu(e[t+1],n.afterTags,o),i}(e,t,i[o],r);Cu[o]&&(u=Cu[o](e,t)||u),u?(a([s],u,n,null,`3-[switch] (${o})`),El(e,t,r)):ju.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}};const Du={there:!0,this:!0,it:!0,him:!0,her:!0,us:!0};var Hu=function(e,t){const n=t.methods.one.setTag,r=t.model.one._multiCache||{};let a=e[0];if(("Noun|Verb"===a.switch||a.tags.has("Infinitive"))&&e.length>=2){if(e.length<4&&!Du[e[1].normal])return;if(!a.tags.has("PhrasalVerb")&&r.hasOwnProperty(a.normal))return;(e[1].tags.has("Noun")||e[1].tags.has("Determiner"))&&(e.slice(1,3).some((e=>e.tags.has("Verb")))&&!a.tags.has("#PhrasalVerb")||n([a],"Imperative",t,null,"3-[imperative]"))}};const Gu=function(e){if(e.filter((e=>!e.tags.has("ProperNoun"))).length<=3)return!1;const t=/^[a-z]/;return e.every((e=>!t.test(e.text)))},Eu=function(e,t,n,r){for(let a=0;a{xl(e,0,t,n)}))}(a,n,r);let o=t.two.quickSplit(a);for(let e=0;e{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.noun.toSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(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.verb.toInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromSuperlative(n,t.model)},Adverb:(e,t)=>{const{fromAdverb:n}=t.methods.two.transform.adjective;return n(e.machine||e.normal||e.text)}};var zu=function(e){const t=e.world,n=Object.keys(Vu);e.docs.forEach((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{let t=Qu.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=Ru},Zu=function(e,t,n){let[r,a]=t;n&&0!==n.length&&(n=n.map(((e,t)=>(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e))),n[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 Xu=/'/,Yu=new Set(["been","become"]),ec=new Set(["what","how","when","if","too"]);let tc=new Set(["too","also","enough"]);var nc=function(e,t){let n=e[t].normal.split(Xu)[0];if("let"===n)return[n,"us"];if("there"===n){let r=e[t+1];if(r&&r.tags.has("Plural"))return[n,"are"]}return"has"===((e,t)=>{for(let n=t+1;n{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("i"===n.normal)return["am","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const lc={that:!0,there:!0,let:!0,here:!0,everywhere:!0},uc={in:!0,by:!0,for:!0};let cc=new Set(["too","also","enough","about"]),hc=new Set(["is","are","did","were","could","should","must","had","have"]);var dc=(e,t)=>{let n=e[t];if(lc.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("QuestionWord"))return!1;if("he's"===n.normal||"she's"===n.normal)return!1;let r=e[t+1];if(!r)return!0;if("it's"===n.normal)return!!r.tags.has("#Noun");if("Noun|Gerund"==r.switch){let r=e[t+2];return r?!!r.tags.has("Copula")||("on"===r.normal||r.normal,!1):!(!n.tags.has("Actor")&&!n.tags.has("ProperNoun"))}if(r.tags.has("Verb"))return!!r.tags.has("Infinitive")||!r.tags.has("Gerund")&&!!r.tags.has("PresentTense");if("Adj|Noun"===r.switch){let n=e[t+2];if(!n)return!1;if(hc.has(n.normal))return!0;if(cc.has(n.normal))return!1}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===uc[e[t-1].normal])return!0;if(r.tags.has("Adjective")){let n=e[t+2];if(!n)return!1;if(n.tags.has("Noun")&&!n.tags.has("Pronoun")){let e=r.normal;return"above"!==e&&"below"!==e&&"behind"!==e}return"Noun|Verb"===n.switch}return!!r.tags.has("Value")};const gc=/'/,mc=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(["freeze","lexicon","preTagger","unfreeze"]),function(e){e.forEach(((e,t)=>{e.index&&(e.index[1]=t)}))}(e)},pc={d:(e,t)=>ic(e,t),t:(e,t)=>sc(e,t),s:(e,t,n)=>dc(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,null,"2-contraction"):nc(e,t)},fc=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var vc={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===gc.test(r[o].normal)&&(i=r[o].normal.split(gc)[1]);let s=null;pc.hasOwnProperty(i)&&(s=pc[i](r,o,t)),s&&(s=fc(s,e),Zu(n,[a,o],s),mc(n[a],e,o,s.length))}}))}},bc={compute:vc,api:_u,hooks:["contractionTwo"]};const yc="(hard|fast|late|early|high|right|deep|close|direct)",wc="(i|we|they)";let kc=[].concat([{match:"(got|were|was|is|are|am) (#PastTense|#Participle)",tag:"Passive",reason:"got-walked"},{match:"(was|were|is|are|am) being (#PastTense|#Participle)",tag:"Passive",reason:"was-being"},{match:"(had|have|has) been (#PastTense|#Participle)",tag:"Passive",reason:"had-been"},{match:"will be being? (#PastTense|#Participle)",tag:"Passive",reason:"will-be-cleaned"},{match:"#Noun [(#PastTense|#Participle)] by (the|a) #Noun",group:0,tag:"Passive",reason:"suffered-by"}],[{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,notIf:"(all|even)",tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"[#Hyphenated (#Hyphenated && #PastTense)] (#Noun|#Conjunction)",group:0,tag:"Adjective",notIf:"#Adverb",reason:"faith-based"},{match:"[#Hyphenated (#Hyphenated && #Gerund)] (#Noun|#Conjunction)",group:0,tag:"Adjective",notIf:"#Adverb",reason:"self-driving"},{match:"[#PastTense (#Hyphenated && #PhrasalVerb)] (#Noun|#Conjunction)",group:0,tag:"Adjective",reason:"dammed-up"},{match:"(#Hyphenated && #Value) fold",tag:"Adjective",reason:"two-fold"},{match:"must (#Hyphenated && #Infinitive)",tag:"Adjective",reason:"must-win"},{match:"(#Hyphenated && #Infinitive) #Hyphenated",tag:"Adjective",notIf:"#PhrasalVerb",reason:"vacuum-sealed"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"},{match:"[(un|contra|extra|inter|intra|macro|micro|mid|mis|mono|multi|pre|sub|tri|ex)] #Adjective",group:0,tag:["Adjective","Prefix"],reason:"un-skilled"}],[{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:"#Copula [far too] #Adjective",group:0,tag:"Adverb",reason:"far-too"},{match:"#Copula [still] (in|#Gerund|#Adjective)",group:0,tag:"Adverb",reason:"was-still-walking"},{match:`#Plural ${yc}`,tag:"#PresentTense #Adverb",reason:"studies-hard"},{match:`#Verb [${yc}] !#Noun?`,group:0,notIf:"(#Copula|get|got|getting|become|became|becoming|feel|feels|feeling|#Determiner|#Preposition)",tag:"Adverb",reason:"shops-direct"},{match:"[#Plural] a lot",tag:"PresentTense",reason:"studies-a-lot"}],[{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:"#Gerund [#Gerund]",group:0,tag:"Adjective",notIf:"(impersonating|practicing|considering|assuming)",reason:"looking-annoying"},{match:"(looked|look|looks) #Adverb? [%Adj|Gerund%]",group:0,tag:"Adjective",notIf:"(impersonating|practicing|considering|assuming)",reason:"looked-amazing"},{match:"[%Adj|Gerund%] #Determiner",group:0,tag:"Gerund",reason:"developing-a"},{match:"#Possessive [%Adj|Gerund%] #Noun",group:0,tag:"Adjective",reason:"leading-manufacturer"},{match:"%Noun|Gerund% %Adj|Gerund%",tag:"Gerund #Adjective",reason:"meaning-alluring"},{match:"(face|embrace|reveal|stop|start|resume) %Adj|Gerund%",tag:"#PresentTense #Adjective",reason:"face-shocking"},{match:"(are|were) [%Adj|Gerund%] #Plural",group:0,tag:"Adjective",reason:"are-enduring-symbols"}],[{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",notIf:"#Hyphenated",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:"no [#Adjective] #Modal",group:0,tag:"Noun",reason:"no-golden"},{match:"[brand #Gerund?] new",group:0,tag:"Adverb",reason:"brand-new"},{match:"(#Determiner|#Comparative|new|different) [kind]",group:0,tag:"Noun",reason:"some-kind"},{match:"#Possessive [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"her-favourite"},{match:"must && #Hyphenated .",tag:"Adjective",reason:"must-win"},{match:"#Determiner [#Adjective]$",tag:"Noun",notIf:"(this|that|#Comparative|#Superlative)",reason:"the-south"},{match:"(#Noun && #Hyphenated) (#Adjective && #Hyphenated)",tag:"Adjective",notIf:"(this|that|#Comparative|#Superlative)",reason:"company-wide"},{match:"#Determiner [#Adjective] (#Copula|#Determiner)",notIf:"(#Comparative|#Superlative)",group:0,tag:"Noun",reason:"the-poor"},{match:"[%Adj|Noun%] #Noun",notIf:"(#Pronoun|#ProperNoun)",group:0,tag:"Adjective",reason:"stable-foundations"}],[{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,notIf:"(#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] #Comparative",group:0,tag:"Adverb",reason:"even-worse"},{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|bright|slow|fast|backwards|forwards)]",notIf:"#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",notIf:"(getting|becoming|feeling)",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",notIf:"(#PhrasalVerb|#Copula)",reason:"charge-back"},{match:"#Verb [around]",group:0,tag:"Adverb",notIf:"#PhrasalVerb",reason:"send-around"},{match:"[later] #PresentTense",group:0,tag:"Adverb",reason:"later-say"},{match:"#Determiner [well] !#PastTense?",group:0,tag:"Noun",reason:"the-well"},{match:"#Adjective [enough]",group:0,tag:"Adverb",reason:"high-enough"}],[{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) !#Infinitive?",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:"#Value (am|pm)",tag:"Time",reason:"2-am"}],[{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:"(the|any) [more]",group:0,tag:"Singular",reason:"more-noun"},{match:"[more] #Noun",group:0,tag:"Adjective",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Singular",reason:"bit-2"},{match:"a [must]",group:0,tag:"Singular",reason:"must-2"},{match:"(we|us) [all]",group:0,tag:"Noun",reason:"we all"},{match:"due to [#Verb]",group:0,tag:"Noun",reason:"due-to"},{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",notIf:"#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:"(a|an|the) [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",notIf:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,notIf:"#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? [#PresentTense #Particle?]",group:0,tag:"Noun",notIf:"(seem|appear|include|#Gerund|#Copula)",reason:"det-inf"},{match:"#Noun #Actor",tag:"Actor",notIf:"(#Person|#Pronoun)",reason:"thing-doer"},{match:"#Gerund #Actor",tag:"Actor",reason:"gerund-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"[#Noun+] #Actor",group:0,tag:"Actor",notIf:"(#Honorific|#Pronoun|#Possessive)",reason:"air-traffic-controller"},{match:"(urban|cardiac|cardiovascular|respiratory|medical|clinical|visual|graphic|creative|dental|exotic|fine|certified|registered|technical|virtual|professional|amateur|junior|senior|special|pharmaceutical|theoretical)+ #Noun? #Actor",tag:"Actor",reason:"fine-artist"},{match:"#Noun+ (coach|chef|king|engineer|fellow|personality|boy|girl|man|woman|master)",tag:"Actor",reason:"dance-coach"},{match:"chief . officer",tag:"Actor",reason:"chief-x-officer"},{match:"chief of #Noun+",tag:"Actor",reason:"chief-of-police"},{match:"senior? vice? president of #Noun+",tag:"Actor",reason:"president-of"},{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:"#Possessive #PresentTense #Particle?",notIf:"(#Gerund|her)",tag:"Noun",reason:"possessive-verb"},{match:"(my|our|their|her|his|its) [(#Plural && #Actor)] #Noun",tag:"Possessive",reason:"my-dads"},{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 [#Verb] and #Noun",group:0,tag:"Noun",reason:"peace-and-flowers"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"},{match:"#Copula the [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"the-premier-university"},{match:"i #Verb [me] #Noun",group:0,tag:"Possessive",reason:"scottish-me"},{match:"[#PresentTense] (music|class|lesson|night|party|festival|league|ceremony)",group:0,tag:"Noun",reason:"dance-music"},{match:"[wit] (me|it)",group:0,tag:"Presposition",reason:"wit-me"},{match:"#PastTense #Possessive [#Verb]",group:0,tag:"Noun",notIf:"(saw|made)",reason:"left-her-boots"},{match:"#Value [%Plural|Verb%]",group:0,tag:"Plural",notIf:"(one|1|a|an)",reason:"35-signs"},{match:"had [#PresentTense]",group:0,tag:"Noun",notIf:"(#Gerund|come|become)",reason:"had-time"},{match:"%Adj|Noun% %Noun|Verb%",tag:"#Adjective #Noun",notIf:"#ProperNoun #Noun",reason:"instant-access"},{match:"#Determiner [%Adj|Noun%] #Conjunction",group:0,tag:"Noun",reason:"a-rep-to"},{match:"#Adjective #Noun [%Plural|Verb%]$",group:0,tag:"Plural",notIf:"#Pronoun",reason:"near-death-experiences"},{match:"#Possessive #Noun [%Plural|Verb%]$",group:0,tag:"Plural",reason:"your-guild-colors"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,ifNo:"#Copula",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",notIf:"(still|even|just)",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"#Copula [(#Gerund|#Activity)] #Copula",group:0,tag:"Gerund",reason:"are-doing-is"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"},{match:"#Singular for [%Noun|Gerund%]",group:0,tag:"Gerund",reason:"noun-for-gerund"},{match:"#Comparative (for|at) [%Noun|Gerund%]",group:0,tag:"Gerund",reason:"better-for-gerund"},{match:"#PresentTense the [#Gerund]",group:0,tag:"Noun",reason:"keep-the-touching"}],[{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 (only|further|just|more|backward) [#Infinitive]",group:0,tag:"Noun",reason:"the-only-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{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,notIf:"from",tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"#Plural 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 #Particle?]",notIf:"(#Copula|#Noun|sure|fun|up)",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",notIf:"#Pronoun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"this [#Plural]",group:0,tag:"PresentTense",notIf:"(#Preposition|#Date)",reason:"this-verbs"},{match:"#Noun that [#Plural]",group:0,tag:"PresentTense",notIf:"(#Preposition|#Pronoun|way)",reason:"voice-that-rocks"},{match:"that [#Plural] to",group:0,tag:"PresentTense",notIf:"#Preposition",reason:"that-leads-to"},{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]",notIf:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",notIf:"better",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",notIf:"(#Copula|better)",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"many-poses"},{match:"#Determiner #Adverb #Adjective [%Noun|Verb%]",group:0,tag:"Noun",notIf:"#Copula",reason:"very-big-dream"},{match:"from #Noun to [%Noun|Verb%]",group:0,tag:"Noun",reason:"start-to-finish"},{match:"(for|with|of) #Noun (and|or|not) [%Noun|Verb%]",group:0,tag:"Noun",notIf:"#Pronoun",reason:"for-food-and-gas"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",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) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #Particle #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] of",group:0,notIf:"(one|1|#Copula|#Infinitive)",tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",notIf:"#Copula",reason:"our-full-support"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",notIf:"going",reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"},{match:"how to [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"how-to-noun"},{match:"which [%Noun|Verb%] #Noun",group:0,tag:"Infinitive",reason:"which-boost-it"},{match:"#Gerund [%Plural|Verb%]",group:0,tag:"Plural",reason:"asking-questions"},{match:"(ready|available|difficult|hard|easy|made|attempt|try) to [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"ready-to-noun"},{match:"(bring|went|go|drive|run|bike) to [%Noun|Verb%]",group:0,tag:"Noun",reason:"bring-to-noun"},{match:"#Modal #Noun [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"would-you-look"},{match:"#Copula just [#Infinitive]",group:0,tag:"Noun",reason:"is-just-spam"},{match:"^%Noun|Verb% %Plural|Verb%",tag:"Imperative #Plural",reason:"request-copies"},{match:"#Adjective #Plural and [%Plural|Verb%]",group:0,tag:"#Plural",reason:"pickles-and-drinks"},{match:"#Determiner #Year [#Verb]",group:0,tag:"Noun",reason:"the-1968-film"},{match:"#Determiner [#PhrasalVerb #Particle]",group:0,tag:"Noun",reason:"the-break-up"},{match:"#Determiner [%Adj|Noun%] #Noun",group:0,tag:"Adjective",notIf:"(#Pronoun|#Possessive|#ProperNoun)",reason:"the-individual-goals"},{match:"[%Noun|Verb%] or #Infinitive",group:0,tag:"Infinitive",reason:"work-or-prepare"},{match:"to #Infinitive [#PresentTense]",group:0,tag:"Noun",notIf:"(#Gerund|#Copula|help)",reason:"to-give-thanks"},{match:"[#Noun] me",group:0,tag:"Verb",reason:"kills-me"},{match:"%Plural|Verb% %Plural|Verb%",tag:"#PresentTense #Plural",reason:"removes-wrinkles"}],[{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:"a pound",tag:"#Money #Unit",reason:"a-pound"},{match:"#Value (pound|pounds)",tag:"#Money #Unit",reason:"4-pounds"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"},{match:"#Value #Unit [(per|an) (hr|hour|sec|second|min|minute)]",group:0,tag:"Unit",reason:"12-miles-per-second"},{match:"#Value [(square|cubic)] #Unit",group:0,tag:"Unit",reason:"square-miles"},{match:"^[#Value] (#Determiner|#Gerund)",group:0,tag:"Expression",unTag:"Value",reason:"numbered-list"}],[{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(sister|pope|brother|father|aunt|uncle|grandpa|grandfather|grandma) #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",notIf:"#Place",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",notIf:"#Place",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",notIf:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",notIf:"#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:"[(lieutenant|corporal|sergeant|captain|qeen|king|admiral|major|colonel|marshal|president|queen|king)+] #ProperNoun",group:0,tag:"Honorific",reason:"seargeant-john"},{match:"[(private|general|major|rear|prime|field|count|miss)] #Honorific? #Person",group:0,tag:["Honorific","Person"],reason:"ambg-honorifics"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",notIf:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:"Honorific",reason:"his-excellency"},{match:"#Honorific #Actor",tag:"Honorific",reason:"Lieutenant colonel"},{match:"(first|second|third|1st|2nd|3rd) #Actor",tag:"Honorific",reason:"first lady"},{match:"#Person #RomanNumeral",tag:"Person",reason:"louis-IV"}],[{match:"#FirstName #Noun$",tag:". #LastName",notIf:"(#Possessive|#Organization|#Place|#Pronoun|@hasTitleCase)",reason:"firstname-noun"},{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",ifNo:"#Actor"},{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:"#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:"(#FirstName && !#Possessive) [#Singular] #Verb",group:0,safe:!0,tag:"LastName",reason:"jack-layton"},{match:"^[#Singular] #Person #Verb",group:0,safe:!0,tag:"Person",reason:"sherwood-anderson"},{match:"(a|an) [#Person]$",group:0,unTag:"Person",reason:"a-warhol"}],[{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",notIf:"(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:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(have|had) read",tag:"Modal #PastTense",reason:"read-read"},{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:"as #Pronoun [please]",group:0,tag:"Infinitive",reason:"as-we-please"},{match:"[(co|mis|de|inter|intra|pre|re|un|out|under|over|counter)] #Verb",group:0,tag:["Verb","Prefix"],notIf:"(#Copula|#PhrasalVerb)",reason:"co-write"},{match:"#PastTense and [%Adj|Past%]",group:0,tag:"PastTense",reason:"dressed-and-left"},{match:"[%Adj|Past%] and #PastTense",group:0,tag:"PastTense",reason:"dressed-and-left"},{match:"#Copula #Pronoun [%Adj|Past%]",group:0,tag:"Adjective",reason:"is-he-stoked"},{match:"to [%Noun|Verb%] #Preposition",group:0,tag:"Infinitive",reason:"to-dream-of"}],[{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:"#Copula [#Adjective] (well|badly|quickly|slowly)",group:0,tag:"Verb",reason:"done-well"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"},{match:"(seem|feel|seemed|felt) [#PastTense #Particle?]",group:0,tag:"Adjective",reason:"seem-confused"},{match:"a (bit|little|tad) [#PastTense #Particle?]",group:0,tag:"Adjective",reason:"a-bit-confused"},{match:"not be [%Adj|Past% #Particle?]",group:0,tag:"Adjective",reason:"do-not-be-confused"},{match:"#Copula just [%Adj|Past% #Particle?]",group:0,tag:"Adjective",reason:"is-just-right"},{match:"as [#Infinitive] as",group:0,tag:"Adjective",reason:"as-pale-as"},{match:"[%Adj|Past%] and #Adjective",group:0,tag:"Adjective",reason:"faled-and-oppressive"},{match:"or [#PastTense] #Noun",group:0,tag:"Adjective",notIf:"(#Copula|#Pronoun)",reason:"or-heightened-emotion"},{match:"(become|became|becoming|becomes) [#Verb]",group:0,tag:"Adjective",reason:"become-verb"},{match:"#Possessive [#PastTense] #Noun",group:0,tag:"Adjective",reason:"declared-intentions"},{match:"#Copula #Pronoun [%Adj|Present%]",group:0,tag:"Adjective",reason:"is-he-cool"},{match:"#Copula [%Adj|Past%] with",group:0,tag:"Adjective",notIf:"(associated|worn|baked|aged|armed|bound|fried|loaded|mixed|packed|pumped|filled|sealed)",reason:"is-crowded-with"},{match:"#Copula #Adverb? [%Adj|Present%]$",group:0,tag:"Adjective",reason:"was-empty$"}],[{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:"[(#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:"[(been|had|became|came)] #PastTense",group:0,notIf:"#PhrasalVerb",tag:"Auxiliary",reason:"been-told"},{match:"[(being|having|getting)] #Verb",group:0,tag:"Auxiliary",reason:"being-born"},{match:"[be] #Gerund",group:0,tag:"Auxiliary",reason:"be-walking"},{match:"[better] #PresentTense",group:0,tag:"Modal",notIf:"(#Copula|#Gerund)",reason:"better-go"},{match:"even better",tag:"Adverb #Comparative",reason:"even-better"}],[{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)",notIf:"#Copula",tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"#Verb (up|down|in|on|for)$",tag:"PhrasalVerb #Particle",notIf:"#PhrasalVerb",reason:"come-down$"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"#PhrasalVerb (in && #Particle) #Determiner",tag:"#Verb #Preposition #Determiner",unTag:"PhrasalVerb",reason:"work-in-the"},{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:wc,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:wc,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:wc,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",notIf:"(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|a|an|any|each|every|some|more|with|on)",group:0,notIf:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me|there)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^[#Infinitive] (#Adjective|#Adverb)? and #Infinitive",group:0,tag:"Imperative",reason:"call-and-reserve"},{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:"^[#PhrasalVerb #Particle] #Determiner #Noun",group:0,tag:"Imperative",reason:"turn-off-the-light"},{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:"^come #Infinitive",tag:"Imperative",notIf:"on",reason:"come-have"},{match:"^come and? #Infinitive",tag:"Imperative . Imperative",notIf:"#PhrasalVerb",reason:"come-and-have"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[(stay|be|keep)] #Adjective",group:0,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:"[#Infinitive] what .",group:0,tag:"Imperative",reason:"look-what"},{match:"^[#Infinitive] #Gerund",group:0,tag:"Imperative",reason:"keep-playing"},{match:"^[#Infinitive] (to|for|into|toward|here|there)",group:0,tag:"Imperative",reason:"go-to"},{match:"^[#Infinitive] (and|or) #Infinitive",group:0,tag:"Imperative",reason:"inf-and-inf"},{match:"^[%Noun|Verb%] to",group:0,tag:"Imperative",reason:"commit-to"},{match:"^[#Infinitive] #Adjective? #Singular #Singular",group:0,tag:"Imperative",reason:"maintain-eye-contact"},{match:"do not (forget|omit|neglect) to [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-forget"},{match:"^[(ask|wear|pay|look|help|show|watch|act|fix|kill|stop|start|turn|try|win)] #Noun",group:0,tag:"Imperative",reason:"pay-attention"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"},{match:"#Gerund [#Gerund] #Plural",group:0,tag:"Adjective",reason:"hard-working-fam"}],[{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:"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:"[right] (before|after|in|into|to|toward)",group:0,tag:"#Adverb",reason:"right-into"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"(are|#Modal|see|do|for) [ya]",group:0,tag:"Pronoun",reason:"are-ya"},{match:"[long live] .",group:0,tag:"#Adjective #Infinitive",reason:"long-live"},{match:"[plenty] of",group:0,tag:"#Uncountable",reason:"plenty-of"},{match:"(always|nearly|barely|practically) [there]",group:0,tag:"Adjective",reason:"always-there"},{match:"[there] (#Adverb|#Pronoun)? #Copula",group:0,tag:"There",reason:"there-is"},{match:"#Copula [there] .",group:0,tag:"There",reason:"is-there"},{match:"#Modal #Adverb? [there]",group:0,tag:"There",reason:"should-there"},{match:"^[do] (you|we|they)",group:0,tag:"QuestionWord",reason:"do-you"},{match:"^[does] (he|she|it|#ProperNoun)",group:0,tag:"QuestionWord",reason:"does-he"},{match:"#Determiner #Noun+ [who] #Verb",group:0,tag:"Preposition",reason:"the-x-who"},{match:"#Determiner #Noun+ [which] #Verb",group:0,tag:"Preposition",reason:"the-x-which"},{match:"a [while]",group:0,tag:"Noun",reason:"a-while"},{match:"guess who",tag:"#Infinitive #QuestionWord",reason:"guess-who"},{match:"[fucking] !#Verb",group:0,tag:"#Gerund",reason:"f-as-gerund"}],[{match:"university of #Place",tag:"Organization",reason:"university-of-Foo"},{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",notIf:"#FirstName",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:"government of the? [#Place+]",tag:"Organization",reason:"government-of-x"},{match:"(health|school|commerce) board",tag:"Organization",reason:"school-board"},{match:"(nominating|special|conference|executive|steering|central|congressional) committee",tag:"Organization",reason:"special-comittee"},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"},{match:"#Place+ #SportsTeam",tag:"SportsTeam",reason:"place-sportsteam"},{match:"(dc|atlanta|minnesota|manchester|newcastle|sheffield) united",tag:"SportsTeam",reason:"united-sportsteam"},{match:"#Place+ fc",tag:"SportsTeam",reason:"fc-sportsteam"}],[{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+ (cliff|place|range|pit|place|point|room|grounds|ruins)",tag:"Place",reason:"foo-point"},{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:"a #Noun [like] (#Noun|#Determiner)",group:0,tag:"Preposition",reason:"a-noun-like"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Infinitive #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"}],[{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^[(well|so|okay|now)] !#Adjective?",group:0,tag:"Expression",reason:"well-"},{match:"^come on",tag:"Expression",reason:"come-on"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"^(ok|alright|shoot|hell|anyways)",tag:"Expression",reason:"ok-"},{match:"^(say && @hasComma)",tag:"Expression",reason:"say-"},{match:"^(like && @hasComma)",tag:"Expression",reason:"like-"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}]),Pc=null;var Ac={postTagger:function(e){const{world:t}=e,{model:n,methods:r}=t;Pc=Pc||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(Pc),e.uncache(),e.unfreeze(),e},tagger:e=>e.compute(["freeze","lexicon","preTagger","postTagger","unfreeze"])};const Cc={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach((n=>{n.forEach((n=>{t+=1,e+=n.confidence||1}))})),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["tagger"])}},compute:Ac,model:{two:{matches:kc}},hooks:["postTagger"]};var jc=Cc,Nc=function(e,t){let n=function(e){return Object.keys(e.hooks).filter((e=>!e.startsWith("#")&&!e.startsWith("%")))}(t);if(0===n.length)return e;e._cache||e.cache();let r=e._cache;return e.filter(((e,t)=>n.some((e=>r[t].has(e)))))},xc=function(e,t){let n=t;"string"==typeof t&&(n=this.buildNet([{match:t}]));let r=this.tokenize(e),a=Nc(r,n);return a.found?(a.compute(["index","tagger"]),a.match(t)):r.none()},Ic={lib:{lazy:xc}},Tc=function(e,t){let n=t;return e.forEach((e=>{e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verb.conjugate)(t,e.model);return e.has("#Gerund")?n.Gerund:e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)})),e},Dc=function(e,t,n){let r=e.split(/ /g).map((e=>e.toLowerCase().trim()));r=r.filter((e=>e)),r=r.map((e=>`{${e}}`)).join(" ");let a=this.match(r);return n&&(a=a.if(n)),a.has("#Verb")?Tc(a,t):a.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.noun.toPlural)(t,e.model)),e.replaceWith(n,{possessives:!0})}(a,t):a.has("#Adverb")?function(e,t){const{toAdverb:n}=e.methods.two.transform.adjective;let r=n(t);r&&e.replaceWith(r)}(a,t):a.has("#Adjective")?function(e,t){const{toComparative:n,toSuperlative:r}=e.methods.two.transform.adjective;let a=t;e.has("#Comparative")?a=n(a,e.model):e.has("#Superlative")&&(a=r(a,e.model)),a&&e.replaceWith(a)}(a,t):this},Hc={api:function(e){e.prototype.swap=Dc}};v.plugin(Wu),v.plugin(bc),v.plugin(jc),v.plugin(Ic),v.plugin(Hc);const Gc=function(e){const{fromComparative:t,fromSuperlative:n}=e.methods.two.transform.adjective;let r=e.text("normal");return e.has("#Comparative")?t(r,e.model):e.has("#Superlative")?n(r,e.model):r};var Ec={api:function(e){class Adjectives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adjectives"}json(e={}){const{toAdverb:t,toNoun:n,toSuperlative:r,toComparative:a}=this.methods.two.transform.adjective;return e.normal=!0,this.map((o=>{let i=o.toView().json(e)[0]||{},s=Gc(o);return i.adjective={adverb:t(s,this.model),noun:n(s,this.model),superlative:r(s,this.model),comparative:a(s,this.model)},i}),[])}adverbs(){return this.before("#Adverb+$").concat(this.after("^#Adverb+"))}conjugate(e){const{toComparative:t,toSuperlative:n,toNoun:r,toAdverb:a}=this.methods.two.transform.adjective;return this.getNth(e).map((e=>{let o=Gc(e);return{Adjective:o,Comparative:t(o,this.model),Superlative:n(o,this.model),Noun:r(o,this.model),Adverb:a(o,this.model)}}),[])}toComparative(e){const{toComparative:t}=this.methods.two.transform.adjective;return this.getNth(e).map((e=>{let n=Gc(e),r=t(n,this.model);return e.replaceWith(r)}))}toSuperlative(e){const{toSuperlative:t}=this.methods.two.transform.adjective;return this.getNth(e).map((e=>{let n=Gc(e),r=t(n,this.model);return e.replaceWith(r)}))}toAdverb(e){const{toAdverb:t}=this.methods.two.transform.adjective;return this.getNth(e).map((e=>{let n=Gc(e),r=t(n,this.model);return e.replaceWith(r)}))}toNoun(e){const{toNoun:t}=this.methods.two.transform.adjective;return this.getNth(e).map((e=>{let n=Gc(e),r=t(n,this.model);return e.replaceWith(r)}))}}e.prototype.adjectives=function(e){let t=this.match("#Adjective");return t=t.getNth(e),new Adjectives(t.document,t.pointer)},e.prototype.superlatives=function(e){let t=this.match("#Superlative");return t=t.getNth(e),new Adjectives(t.document,t.pointer)},e.prototype.comparatives=function(e){let t=this.match("#Comparative");return t=t.getNth(e),new Adjectives(t.document,t.pointer)}}},Oc={api:function(e){class Adverbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adverbs"}conjugate(e){return this.getNth(e).map((e=>{let t=function(e){return e.compute("root").text("root")}(e);return{Adverb:e.text("normal"),Adjective:t}}),[])}json(e={}){const t=this.methods.two.transform.adjective.fromAdverb;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=t.getNth(e),new Adverbs(t.document,t.pointer)}}},Fc=function(e){let t=this;t=function(e){let t=e.parentheses();return t=t.filter((e=>e.wordCount()>=3&&e.has("#Verb")&&e.has("#Noun"))),e.splitOn(t)}(t),t=function(e){let t=e.quotations();return t=t.filter((e=>e.wordCount()>=3&&e.has("#Verb")&&e.has("#Noun"))),e.splitOn(t)}(t),t=function(e){let t=e.match("@hasComma");return t=t.filter((e=>{if(1===e.growLeft(".").wordCount())return!1;if(1===e.growRight(". .").wordCount())return!1;let t=e.grow(".");return t=t.ifNo("@hasComma @hasComma"),t=t.ifNo("@hasComma (and|or) ."),t=t.ifNo("(#City && @hasComma) #Country"),t=t.ifNo("(#WeekDay && @hasComma) #Date"),t=t.ifNo("(#Date+ && @hasComma) #Value"),t=t.ifNo("(#Adjective && @hasComma) #Adjective"),t.found})),e.splitAfter(t)}(t),t=t.splitAfter("(@hasEllipses|@hasSemicolon|@hasDash|@hasColon)"),t=t.splitAfter("^#Pronoun (said|says)"),t=t.splitBefore("(said|says) #ProperNoun$"),t=t.splitBefore(". . if .{4}"),t=t.splitBefore("and while"),t=t.splitBefore("now that"),t=t.splitBefore("ever since"),t=t.splitBefore("(supposing|although)"),t=t.splitBefore("even (while|if|though)"),t=t.splitBefore("(whereas|whose)"),t=t.splitBefore("as (though|if)"),t=t.splitBefore("(til|until)");let n=t.match("#Verb .* [but] .* #Verb",0);n.found&&(t=t.splitBefore(n));let r=t.if("if .{2,9} then .").match("then");return t=t.splitBefore(r),"number"==typeof e&&(t=t.get(e)),t},Vc=function(e){let t=[],n=null;return e.clauses().docs.forEach((e=>{e.forEach((e=>{e.chunk&&e.chunk===n?t[t.length-1][2]=e.index[1]+1:(n=e.chunk,t.push([e.index[0],e.index[1],e.index[1]+1]))})),n=null})),e.update(t)},zc=function(e){class Chunks extends e{constructor(e,t,n){super(e,t,n),this.viewType="Chunks"}isVerb(){return this.filter((e=>e.has("")))}isNoun(){return this.filter((e=>e.has("")))}isAdjective(){return this.filter((e=>e.has("")))}isPivot(){return this.filter((e=>e.has("")))}debug(){return this.toView().debug("chunks"),this}update(e){let t=new Chunks(this.document,e);return t._cache=this._cache,t}}e.prototype.chunks=function(e){let t=Vc(this);return t=t.getNth(e),new Chunks(this.document,t.pointer)},e.prototype.clauses=Fc};const Bc={this:"Noun",then:"Pivot"};var $c=function(e){for(let t=0;t",group:0,chunk:"Verb"},{match:"#Noun of #Determiner? #Noun",chunk:"Noun"},{match:"#Value+ #Adverb? #Adjective",chunk:"Noun"},{match:"the [#Adjective] #Noun",chunk:"Noun"},{match:"#Singular in #Determiner? #Singular",chunk:"Noun"},{match:"#Plural [in] #Determiner? #Noun",group:0,chunk:"Pivot"},{match:"#Noun and #Determiner? #Noun",notIf:"(#Possessive|#Pronoun)",chunk:"Noun"}];let Mc=null;var Lc=function(e,t,n){const{methods:r}=n;Mc=Mc||r.one.buildNet(Kc,n),e.sweep(Mc)};const Jc=function(e,t){if(("undefined"!=typeof process&&process.env?process.env:self.env||{}).DEBUG_CHUNKS){let n=(e.normal+"'").padEnd(8);console.log(` | '${n} โ†’ ${t.padEnd(12)}  -fallback- `)}e.chunk=t};var Wc=function(e){for(let t=0;t{for(let r=0;r{if("Verb"===e.chunk){const t=e.terms.find((e=>e.tags.has("Verb")));t||e.terms.forEach((e=>e.chunk=null))}}))},Uc={chunks:function(e){const{document:t,world:n}=e;$c(t),Sc(t),Lc(e,t,n),Wc(t),qc(t)}},Rc={compute:Uc,api:zc,hooks:["chunks"]};const Qc=/\./g;var _c=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(Qc,""),e.normal=e.normal.replace(Qc,"")}))})),this}addPeriods(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(Qc,""),e.normal=e.normal.replace(Qc,""),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=t.getNth(e),new Acronyms(t.document,t.pointer)}};const Zc=/\(/,Xc=/\)/,Yc=function(e,t){for(;t{e[0].pre=e[0].pre.replace(Zc,"");let t=e[e.length-1];t.post=t.post.replace(Xc,"")})),e}(this)}}e.prototype.parentheses=function(e){let t=function(e){let t=[];return e.docs.forEach((e=>{for(let n=0;n{e.forEach((e=>{e.text=e.text.replace(th,""),e.normal=e.normal.replace(th,"")}))})),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=t.getNth(e),new Possessives(t.document,t.pointer)}};const rh={'"':'"',"๏ผ‚":"๏ผ‚","'":"'","โ€œ":"โ€","โ€˜":"โ€™","โ€Ÿ":"โ€","โ€›":"โ€™","โ€ž":"โ€","โน‚":"โ€","โ€š":"โ€™","ยซ":"ยป","โ€น":"โ€บ","โ€ต":"โ€ฒ","โ€ถ":"โ€ณ","โ€ท":"โ€ด","ใ€":"ใ€ž","`":"ยด","ใ€Ÿ":"ใ€ž"},ah=RegExp("["+Object.keys(rh).join("")+"]"),oh=RegExp("["+Object.values(rh).join("")+"]"),ih=function(e,t){const n=e[t].pre.match(ah)[0]||"";if(!n||!rh[n])return null;const r=rh[n];for(;t{e[0].pre=e[0].pre.replace(ah,"");let t=e[e.length-1];t.post=t.post.replace(oh,"")}))}(this)}}e.prototype.quotations=function(e){let t=function(e){let t=[];return e.docs.forEach((e=>{for(let n=0;n{e.prototype[t[0]]=function(e){let n=this.match(t[1]);return"number"==typeof e?n.get(e):n}})),e.prototype.phoneNumbers=lh,ch.forEach((t=>{e.prototype[t[0]]=e.prototype[t[1]]}))},dh={api:function(e){_c(e),eh(e),nh(e),sh(e),hh(e)}};const gh=function(e,t){e.docs.forEach((e=>{e.forEach(t)}))};var mh={case:e=>{gh(e,(e=>{e.text=e.text.toLowerCase()}))},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;gh(e,(e=>e.text=n(e.text,t)))},whitespace:e=>{gh(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=>{gh(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()},debullet:e=>{const t=/^\s*([-โ€“โ€”*โ€ข])\s*$/;return e.docs.forEach((e=>{t.test(e[0].pre)&&(e[0].pre=e[0].pre.replace(t,""))})),e}};const ph=e=>e.split("|").reduce(((e,t)=>(e[t]=!0,e)),{}),fh="unicode|punctuation|whitespace|acronyms",vh="|case|contractions|parentheses|quotations|emoji|honorifics|debullet",bh={light:ph(fh),medium:ph(fh+vh),heavy:ph(fh+vh+"|possessives|adverbs|nouns|verbs")};var yh={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=bh[e]),Object.keys(e).forEach((t=>{mh.hasOwnProperty(t)&&mh[t](this,e[t])})),this}}},wh=function(e){let t=e.clauses().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|i)"),t=t.splitOn("(#Noun|#Adjective) [(he|him|she|it)]",0),t=t.splitOn("[(he|him|she|it)] (#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.splitBefore("(our|my|their|your)"),t=t.splitOn("#Noun [#Determiner]",0),t=t.if("#Noun"),t};const kh=["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 Ph=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")},Ch=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=t.first(),t.found?t:e}(e);return{determiner:e.match("#Determiner").eq(0),adjectives:e.match("#Adjective"),number:e.values(),isPlural:Ah(e,t),isSubordinate:Ph(e),root:t}};const jh=e=>e.text(),Nh=e=>e.json({terms:!1,normal:!0}).map((e=>e.normal)),xh=function(e){if(!e.found)return null;let t=e.values(0);return t.found?(t.parse()[0]||{}).num:null};var Ih=function(e){let t=Ch(e);return{root:jh(t.root),number:xh(t.number),determiner:jh(t.determiner),adjectives:Nh(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}},Th=function(e){return!e.has("^(#Uncountable|#ProperNoun|#Place|#Pronoun|#Acronym)+$")};const Dh={tags:!0};var Hh=function(e,t){if(!0===t.isPlural)return e;if(t.root.has("#Possessive")&&(t.root=t.root.possessives().strip()),!Th(t.root))return e;const{methods:n,model:r}=e.world,{toPlural:a}=n.two.transform.noun;let o=a(t.root.text({keepPunct:!1}),r);e.match(t.root).replaceWith(o,Dh).tag("Plural","toPlural"),t.determiner.has("(a|an)")&&e.remove(t.determiner);let i=t.root.after("not? #Adverb+? [#Copula]",0);return i.found&&(i.has("is")?e.replace(i,"are"):i.has("was")&&e.replace(i,"were")),e};const Gh={tags:!0};var Eh=function(e,t){if(!1===t.isPlural)return e;const{methods:n,model:r}=e.world,{toSingular:a}=n.two.transform.noun;let o=a(t.root.text("normal"),r);return e.replace(t.root,o,Gh).tag("Singular","toPlural"),e},Oh=function(e){class Nouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Nouns"}parse(e){return this.getNth(e).map(Ch)}json(e){let t="object"==typeof e?e:{};return this.getNth(e).map((e=>{let n=e.toView().json(t)[0]||{};return t&&!1!==t.noun&&(n.noun=Ih(e)),n}),[])}conjugate(e){const t=this.world.methods.two.transform.noun;return this.getNth(e).map((e=>{let n=Ch(e),r=n.root.compute("root").text("root"),a={Singular:r};return Th(n.root)&&(a.Plural=t.toPlural(r,this.model)),a.Singular===a.Plural&&delete a.Plural,a}),[])}isPlural(e){let t=this.filter((e=>Ch(e).isPlural));return t.getNth(e)}isSingular(e){let t=this.filter((e=>!Ch(e).isPlural));return t.getNth(e)}adjectives(e){let t=this.update([]);return this.forEach((e=>{let n=Ch(e).adjectives;n.found&&(t=t.concat(n))})),t.getNth(e)}toPlural(e){return this.getNth(e).map((e=>Hh(e,Ch(e))))}toSingular(e){return this.getNth(e).map((e=>{let t=Ch(e);return Eh(e,t)}))}update(e){let t=new Nouns(this.document,e);return t._cache=this._cache,t}}e.prototype.nouns=function(e){let t=wh(this);return t=t.getNth(e),new Nouns(this.document,t.pointer)}},Fh={api:Oh},Vh=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},zh=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(Bh.ones.hasOwnProperty(e)){if(t.ones||t.teens)return!1}else if(Bh.teens.hasOwnProperty(e)){if(t.ones||t.teens||t.tens)return!1}else if(Bh.tens.hasOwnProperty(e)&&(t.ones||t.teens||t.tens))return!1;return!0},Sh=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 Mh=/^([0-9,. ]+)\/([0-9,. ]+)$/,Lh={"a few":3,"a couple":2,"a dozen":12,"two dozen":24,zero:0},Jh=e=>Object.keys(e).reduce(((t,n)=>t+=e[n]),0);var Wh=function(e){if(!0===Lh.hasOwnProperty(e))return Lh[e];if("a"===e||"an"===e)return 1;const t=zh(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=Uh(n),r=Uh(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:Uh(n);let a=r.text("reduced");return qh.test(a)&&(a=a.replace(qh,""),r=r.replaceWith(a)),r=Rh.hasOwnProperty(a)?Rh[a]:Uh(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:Uh(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},_h=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 Zh=[["ninety",90],["eighty",80],["seventy",70],["sixty",60],["fifty",50],["forty",40],["thirty",30],["twenty",20]],Xh=["","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],Yh=[[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"]],ed=function(e){let t=[];if(e>100)return t;for(let n=0;n=Zh[n][1]&&(e-=Zh[n][1],t.push(Zh[n][0]));return Xh[e]&&t.push(Xh[e]),t};var td=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=_h(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));let r=function(e){let t=e,n=[];return Yh.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(ed(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=_h(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(" ")},nd=function(e){return e.numerator&&e.denominator?`${td({num:e.numerator})} out of ${td({num:e.denominator})}`:""};const rd={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 ad=e=>{let t=td(e).split(" "),n=t[t.length-1];return rd.hasOwnProperty(n)?t[t.length-1]=rd[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")},od=function(e){if(!e.numerator||!e.denominator)return"";let t=td({num:e.numerator}),n=ad({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""},id=function(e){class Fractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return this.getNth(e).map(Qh)}get(e){return this.getNth(e).map(Qh)}json(e){return this.getNth(e).map((t=>{let n=t.toView().json(e)[0],r=Qh(t);return n.fraction=r,n}),[])}toDecimal(e){return this.getNth(e).forEach((e=>{let{decimal:t}=Qh(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")})),this}toFraction(e){return this.getNth(e).forEach((e=>{let t=Qh(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 this.getNth(e).forEach((e=>{let t=Qh(e),n=od(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)})),this}toCardinal(e){return this.getNth(e).forEach((e=>{let t=Qh(e),n=nd(t);e.replaceWith(n)})),this}toPercentage(e){return this.getNth(e).forEach((e=>{let{decimal:t}=Qh(e),n=100*t;n=Math.round(100*n)/100,e.replaceWith(`${n}%`)})),this}}e.prototype.fractions=function(e){let t=Vh(this);return t=t.getNth(e),new Fractions(this.document,t.pointer)}};const sd="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty";var ld=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("("+sd+") #Cardinal #Cardinal")&&(t=t.splitAfter("("+sd+") #Cardinal")),t.has("#Value #Value")){t.has("#NumericValue #NumericValue")&&(t=t.splitOn("#Year")),t.has("("+sd+") (eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen)")&&(t=t.splitAfter("("+sd+")"));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) (${sd})`),r=e.has("("+sd+") #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("("+sd+") #Ordinal")||(t=t.splitAfter("#Ordinal"))),t=t.splitBefore("#Ordinal [#Cardinal]",0),t.has("#TextValue #NumericValue")&&!t.has("("+sd+"|#Multiple)")&&(t=t.splitBefore("#TextValue #NumericValue"))}return t=t.splitAfter("#NumberRange"),t=t.splitBefore("#Year"),t},ud=function(e){if("string"==typeof e)return{num:Wh(e)};let t=e.text("reduced"),n=e.growRight("#Unit").match("#Unit$").text("machine"),r=/[0-9],[0-9]/.test(e.text("text"));if(1===e.terms().length&&!e.has("#Multiple")){let a=function(e,t){let n=(e=e.replace(/,/g,"")).split(/([0-9.,]*)/),[r,a]=n,o=n.slice(2).join("");return""!==a&&t.length<2?(a=Number(a||e),"number"!=typeof a&&(a=null),o=o||"","st"!==o&&"nd"!==o&&"rd"!==o&&"th"!==o||(o=""),{prefix:r||"",num:a,suffix:o}):null}(t,e);if(null!==a)return a.hasComma=r,a.unit=n,a}let a=e.match("#Fraction{2,}$");a=!1===a.found?e.match("^#Fraction$"):a;let o=null;a.found&&(a.has("#Value and #Value #Fraction")&&(a=a.match("and #Value #Fraction")),o=Qh(a),t=(e=(e=e.not(a)).not("and$")).text("reduced"));let i=0;return t&&(i=Wh(t)||0),o&&o.decimal&&(i+=o.decimal),{hasComma:r,prefix:"",num:i,suffix:"",isOrdinal:e.has("#Ordinal"),isText:e.has("#TextValue"),isFraction:e.has("#Fraction"),isMoney:e.has("#Money"),unit:n}},cd=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=_h(t),o=a.slice(a.length-1,a.length);return a+=r[o]?r[o]:"th",a};const hd={"ยข":"cents",$:"dollars","ยฃ":"pounds","ยฅ":"yen","โ‚ฌ":"euros","โ‚ก":"colรณn","เธฟ":"baht","โ‚ญ":"kip","โ‚ฉ":"won","โ‚น":"rupees","โ‚ฝ":"ruble","โ‚บ":"liras"},dd={"%":"percent","ยฐ":"degrees"};var gd=function(e){let t={suffix:"",prefix:e.prefix};return hd.hasOwnProperty(e.prefix)&&(t.suffix+=" "+hd[e.prefix],t.prefix=""),dd.hasOwnProperty(e.suffix)&&(t.suffix+=" "+dd[e.suffix]),t.suffix&&1===e.num&&(t.suffix=t.suffix.replace(/s$/,"")),!t.suffix&&e.suffix&&(t.suffix+=" "+e.suffix),t},md=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=gd(e);return t+ad(e)+n}if("Ordinal"===t)return e.prefix+cd(e)+e.suffix;if("TextCardinal"===t){let{prefix:t,suffix:n}=gd(e);return t+td(e)+n}let n=e.num;return e.hasComma&&(n=n.toLocaleString()),e.prefix+String(n)+e.suffix};const pd=function(e){if("string"==typeof e||"number"==typeof e){let t={};return t[e]=!0,t}return t=e,"[object Array]"===Object.prototype.toString.call(t)?e.reduce(((e,t)=>(e[t]=!0,e)),{}):e||{};var t};var fd=function(e,t={}){return t=pd(t),e.filter((e=>{let{unit:n}=ud(e);return!(!n||!0!==t[n])}))},vd=function(e){class Numbers extends e{constructor(e,t,n){super(e,t,n),this.viewType="Numbers"}parse(e){return this.getNth(e).map(ud)}get(e){return this.getNth(e).map(ud).map((e=>e.num))}json(e){let t="object"==typeof e?e:{};return this.getNth(e).map((e=>{let n=e.toView().json(t)[0],r=ud(e);return n.number={prefix:r.prefix,num:r.num,suffix:r.suffix,hasComma:r.hasComma,unit:r.unit},n}),[])}units(){return this.growRight("#Unit").match("#Unit$")}isUnit(e){return fd(this,e)}isOrdinal(){return this.if("#Ordinal")}isCardinal(){return this.if("#Cardinal")}toNumber(){return this.if("#TextValue").forEach((e=>{let t=ud(e);if(null===t.num)return;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=md(t,n);e.replaceWith(r,{tags:!0}),e.tag("NumericValue")})),this}toLocaleString(){return this.forEach((e=>{let t=ud(e);if(null===t.num)return;let n=t.num.toLocaleString();if(e.has("#Ordinal")){let e=md(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=ud(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"TextOrdinal":"TextCardinal",r=md(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=ud(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextCardinal":"Cardinal",r=md(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=ud(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextOrdinal":"Ordinal",r=md(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=>ud(t).num===e))}greaterThan(e){return this.filter((t=>ud(t).num>e))}lessThan(e){return this.filter((t=>ud(t).num{let r=ud(n).num;return r>e&&r{let n=ud(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=md(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=ud(e).num);let t=this.map((t=>{let n=ud(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=md(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=ld(this);return t=t.getNth(e),new Numbers(this.document,t.pointer)},e.prototype.percentages=function(e){let t=ld(this);return t=t.filter((e=>e.has("#Percent")||e.after("^percent"))),t=t.getNth(e),new Numbers(this.document,t.pointer)},e.prototype.money=function(e){let t=ld(this);return t=t.filter((e=>e.has("#Money")||e.after("^#Currency"))),t=t.getNth(e),new Numbers(this.document,t.pointer)},e.prototype.values=e.prototype.numbers},bd={api:function(e){id(e),vd(e)}};const yd={people:!0,emails:!0,phoneNumbers:!0,places:!0},wd=function(e={}){return!1!==(e=Object.assign({},yd,e)).people&&this.people().replaceWith("โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ"),!1!==e.emails&&this.emails().replaceWith("โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ"),!1!==e.places&&this.places().replaceWith("โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ"),!1!==e.phoneNumbers&&this.phoneNumbers().replaceWith("โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ"),this},kd={api:function(e){e.prototype.redact=wd}};var Pd=kd,Ad=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))}))},Cd=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:(t=t.ifNo("^#Gerund"),1===t.length?t:(0===t.length&&(t=e),t.eq(0)))))))};const jd=function(e){let t=null;return e.has("#PastTense")?t="PastTense":e.has("#FutureTense")?t="FutureTense":e.has("#PresentTense")&&(t="PresentTense"),{tense:t}};var Nd=function(e){let t=e.clauses(),n=Cd(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,grammar:jd(a)}},xd=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},Id=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},Td=function(e){let t=e.verbs();if(t.eq(0).toFutureTense(),t=(e=e.fullSentence()).verbs(),t.length>1){t=t.slice(1);let e=t.filter((e=>!(e.lookBehind("to$").found||!e.has("#Copula #Gerund")&&(e.has("#Gerund")||!e.has("#Copula")&&e.has("#PresentTense")&&!e.has("#Infinitive")&&e.lookBefore("(he|she|it|that|which)$").found))));e.found&&e.forEach((e=>{if(e.has("#Copula"))return e.match("was").replaceWith("is"),void e.match("is").replaceWith("will be");e.toInfinitive()}))}return e},Dd=function(e){return e.verbs().toInfinitive(),e},Hd=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,grammar:i}=Nd(t);return n.sentence={subject:r.text("normal"),verb:a.text("normal"),predicate:o.text("normal"),grammar:i},n}),[])}toPastTense(e){return this.getNth(e).map((e=>(Nd(e),xd(e))))}toPresentTense(e){return this.getNth(e).map((e=>(Nd(e),Id(e))))}toFutureTense(e){return this.getNth(e).map((e=>(Nd(e),e=Td(e))))}toInfinitive(e){return this.getNth(e).map((e=>(Nd(e),Dd(e))))}toNegative(e){return this.getNth(e).map((e=>(Nd(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e))))}toPositive(e){return this.getNth(e).map((e=>(Nd(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 t.getNth(e)}isStatement(e){let t=this.filter((e=>!e.isExclamation().found&&!e.isQuestion().found));return t.getNth(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=t.getNth(e),new Sentences(this.document,t.pointer)},questions:function(e){return Ad(this).getNth(e)}};Object.assign(e.prototype,t)},Gd={api:Hd},Ed=function(e){let t=e.match("#Honorific+? #Person+"),n=t.match("#Possessive").notIf("(his|her)");return t=t.splitAfter(n),t},Od=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 Fd="male",Vd="female",zd={mr:Fd,mrs:Vd,miss:Vd,madam:Vd,king:Fd,queen:Vd,duke:Fd,duchess:Vd,baron:Fd,baroness:Vd,count:Fd,countess:Vd,prince:Fd,princess:Vd,sire:Fd,dame:Vd,lady:Vd,ayatullah:Fd,congressman:Fd,congresswoman:Vd,"first lady":Vd,mx:null};var Bd=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return Vd;if(n.has("#MaleName"))return Fd;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),zd.hasOwnProperty(e))return zd[e];if(/^her /.test(e))return Vd;if(/^his /.test(e))return Fd}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 Fd;if(n&&!t)return Vd}return null},$d=function(e){class People extends e{constructor(e,t,n){super(e,t,n),this.viewType="People"}parse(e){return this.getNth(e).map(Od)}json(e){let t="object"==typeof e?e:{};return this.getNth(e).map((e=>{let n=e.toView().json(t)[0],r=Od(e);return n.person={firstName:r.firstName.text("normal"),lastName:r.lastName.text("normal"),honorific:r.honorific.text("normal"),presumed_gender:Bd(r,e)},n}),[])}presumedMale(){return this.filter((e=>e.has("(#MaleName|mr|mister|sr|jr|king|pope|prince|sir)")))}presumedFemale(){return this.filter((e=>e.has("(#FemaleName|mrs|miss|queen|princess|madam)")))}update(e){let t=new People(this.document,e);return t._cache=this._cache,t}}e.prototype.people=function(e){let t=Ed(this);return t=t.getNth(e),new People(this.document,t.pointer)}},Sd=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},Kd=function(e){e.prototype.places=function(t){let n=Sd(this);return n=n.getNth(t),new e(this.document,n.pointer)}},Md=function(e){e.prototype.organizations=function(e){return this.match("#Organization+").getNth(e)}};const Ld=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=n.getNth(e),n};var Jd=function(e){e.prototype.topics=Ld},Wd={api:function(e){$d(e),Kd(e),Md(e),Jd(e)}},qd=function(e){let t=e.match("");return t=t.not("#Conjunction"),t=t.not("#Preposition"),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),t=t.splitBefore("(#PresentTense|#PastTense) [(had|has)]",0),t=t.not("#Reflexive$"),t=t.not("#Adjective"),t=t.splitAfter("[#PastTense] #PastTense",0),t=t.splitAfter("[#PastTense] #Auxiliary+ #PastTense",0),t=t.splitAfter("#Copula [#Gerund] #PastTense",0),t=t.if("#Verb"),t.has("(#Verb && !#Auxiliary) #Adverb+? #Copula")&&(t=t.splitBefore("#Copula")),t},Ud=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},Rd=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 Qd=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},_d=function(e){return e.match("#Negative")},Zd=function(e){if(!e.has("(#Particle|#PhrasalVerb)"))return{verb:e.none(),particle:e.none()};let t=e.match("#Particle$");return{verb:e.not(t),particle:t}};var Xd=function(e){let t=e.clone();t.contractions().expand();const n=Ud(t);return{root:n,prefix:t.match("#Prefix"),adverbs:Rd(t,n),auxiliary:Qd(t,n),negative:_d(t),phrasal:Zd(n)}};const Yd={tense:"PresentTense"},eg={conditional:!0},tg={tense:"FutureTense"},ng={progressive:!0},rg={tense:"PastTense"},ag={complete:!0,progressive:!1},og={passive:!0},ig=function(e){let t={};return e.forEach((e=>{Object.assign(t,e)})),t},sg={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[Yd]],["^wanted to #Infinitive$",[rg]],["^will want to #Infinitive$",[tg]]],"gerund-phrase":[["^#PastTense #Gerund$",[rg]],["^#PresentTense #Gerund$",[Yd]],["^#Infinitive #Gerund$",[Yd]],["^will #Infinitive #Gerund$",[tg]],["^have #PastTense #Gerund$",[rg]],["^will have #PastTense #Gerund$",[rg]]],"simple-present":[["^#PresentTense$",[Yd]],["^#Infinitive$",[Yd]]],"simple-past":[["^#PastTense$",[rg]]],"simple-future":[["^will #Adverb? #Infinitive",[tg]]],"present-progressive":[["^(is|are|am) #Gerund$",[Yd,ng]]],"past-progressive":[["^(was|were) #Gerund$",[rg,ng]]],"future-progressive":[["^will be #Gerund$",[tg,ng]]],"present-perfect":[["^(has|have) #PastTense$",[rg,ag]]],"past-perfect":[["^had #PastTense$",[rg,ag]],["^had #PastTense to #Infinitive",[rg,ag]]],"future-perfect":[["^will have #PastTense$",[tg,ag]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[rg,ng]]],"past-perfect-progressive":[["^had been #Gerund$",[rg,ng]]],"future-perfect-progressive":[["^will have been #Gerund$",[tg,ng]]],"passive-past":[["(got|were|was) #Passive",[rg,og]],["^(was|were) being #Passive",[rg,og]],["^(had|have) been #Passive",[rg,og]]],"passive-present":[["^(is|are|am) #Passive",[Yd,og]],["^(is|are|am) being #Passive",[Yd,og]],["^has been #Passive",[Yd,og]]],"passive-future":[["will have been #Passive",[tg,og,eg]],["will be being? #Passive",[tg,og,eg]]],"present-conditional":[["would be #PastTense",[Yd,eg]]],"past-conditional":[["would have been #PastTense",[rg,eg]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[tg]]],"auxiliary-past":[["^did #Infinitive$",[rg,{plural:!1}]],["^used to #Infinitive$",[rg,ag]]],"auxiliary-present":[["^(does|do) #Infinitive$",[Yd,ag,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[rg]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let lg=[];Object.keys(sg).map((e=>{sg[e].forEach((t=>{lg.push({name:e,match:t[0],data:ig(t[1])})}))}));var ug=lg,cg=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(),hg(r)&&(n.remove(r),r=n.last()),hg(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:dg(t,e)}};const mg=e=>e,pg=(e,t)=>{let n=gg(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},fg=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=gg(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},vg=function(e,t){let n=gg(e),r=n.subject;return r.has("i")||r.has("we")||n.plural?"do":"does"},bg=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},yg=function(e,t){const{toInfinitive:n}=e.methods.two.transform.verb;let r=t.root.text({keepPunct:!1});return r=n(r,e.model,bg(e)),r&&e.replace(t.root,r),e},wg=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),kg=function(e){return e&&e.isView?e.json({normal:!0,terms:!1,text:!1}).map((e=>e.normal)):[]},Pg=function(e){return e&&e.isView?e.text("normal"):""},Ag=function(e){const{toInfinitive:t}=e.methods.two.transform.verb;return t(e.text("normal"),e.model,bg(e))};var Cg=function(e){let t=Xd(e);e=e.clone().toView();const n=cg(e,t);return{root:t.root.text(),preAdverbs:kg(t.adverbs.pre),postAdverbs:kg(t.adverbs.post),auxiliary:Pg(t.auxiliary),negative:t.negative.found,prefix:Pg(t.prefix),infinitive:Ag(t.root),grammar:n}};const jg={tags:!0};var Ng=function(e,t){const{toInfinitive:n}=e.methods.two.transform.verb,{root:r,auxiliary:a}=t;let o=a.terms().harden(),i=r.text("normal");if(i=n(i,e.model,bg(r)),i&&e.replace(r,i,jg).tag("Verb").firstTerm().tag("Infinitive"),o.found&&e.remove(o),t.negative.found){e.has("not")||e.prepend("not");let t=vg(e);e.prepend(t)}return e.fullSentence().compute(["freeze","lexicon","preTagger","postTagger","unfreeze","chunks"]),e};const xg={tags:!0},Ig={noAux:(e,t)=>(t.auxiliary.found&&(e=e.remove(t.auxiliary)),e),simple:(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;if(a.has("#Modal"))return e;let o=a.text({keepPunct:!1});return o=r(o,e.model,bg(a)),o=n(o,e.model).PastTense,o="been"===o?"was":o,"was"===o&&(o=((e,t)=>{let{subject:n,plural:r}=gg(e);return r||n.has("we")?"were":"was"})(e)),o&&e.replace(a,o,xg),e},both:function(e,t){return t.negative.found?(e.replace("will","did"),e):(e=Ig.simple(e,t),e=Ig.noAux(e,t))},hasHad:e=>(e.replace("has","had",xg),e),hasParticiple:(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,bg(a)),n(o,e.model).Participle}},Tg={infinitive:Ig.simple,"simple-present":Ig.simple,"simple-past":mg,"simple-future":Ig.both,"present-progressive":e=>(e.replace("are","were",xg),e.replace("(is|are|am)","was",xg),e),"past-progressive":mg,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":Ig.hasHad,"past-perfect":mg,"future-perfect":(e,t)=>(e.match(t.root).insertBefore("had"),e.has("will")&&(e=wg(e)),e.remove("have"),e),"present-perfect-progressive":Ig.hasHad,"past-perfect-progressive":mg,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",xg),e),"passive-past":e=>(e.replace("have","had",xg),e),"passive-present":e=>(e.replace("(is|are)","was",xg),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",xg),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":mg,"auxiliary-future":e=>(e.replace("(is|are|am)","was",xg),e),"auxiliary-past":mg,"auxiliary-present":e=>(e.replace("(do|does)","did",xg),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",xg):(Ig.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":mg,"want-infinitive":e=>(e.replace("(want|wants)","wanted",xg),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Ig.simple(e,t),wg(e),e)};var Dg=function(e,t,n){return Tg.hasOwnProperty(n)?((e=Tg[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const Hg=function(e,t){let n=gg(e),r=n.subject;return r.has("(i|we|you)")?"have":!1===n.plural||r.has("he")||r.has("she")||r.has("#Person")?"has":"have"},Gg=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,{root:a,auxiliary:o}=t;if(a.has("#Modal"))return e;let i=a.text({keepPunct:!1});i=r(i,e.model,bg(a));let s=n(i,e.model);if(i=s.Participle||s.PastTense,i){e=e.replace(a,i);let t=Hg(e);e.prepend(t).match(t).tag("Auxiliary"),e.remove(o)}return e},Eg={infinitive:Gg,"simple-present":Gg,"simple-future":(e,t)=>e.replace("will",Hg(e)),"present-perfect":mg,"past-perfect":mg,"future-perfect":(e,t)=>e.replace("will have",Hg(e)),"present-perfect-progressive":mg,"past-perfect-progressive":mg,"future-perfect-progressive":mg};var Og=function(e,t,n){return Eg.hasOwnProperty(n)?((e=Eg[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):((e=Gg(e,t)).fullSentence().compute(["tagger","chunks"]),e)};const Fg={tags:!0},Vg=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,bg(a)),!1===pg(e)&&(o=n(o,e.model).PresentTense),a.has("#Copula")&&(o=fg(e)),o&&(e=e.replace(a,o,Fg)).not("#Particle").tag("PresentTense"),e},zg=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,bg(a)),!1===pg(e)&&(o=n(o,e.model).Gerund),o&&(e=e.replace(a,o,Fg)).not("#Particle").tag("Gerund"),e},Bg={infinitive:Vg,"simple-present":(e,t)=>{const{conjugate:n}=e.methods.two.transform.verb;let{root:r}=t;if(!r.has("#Infinitive"))return Vg(e,t);{let t=gg(e).subject;if(pg(e)||t.has("i"))return e;let a=r.text("normal"),o=n(a,e.model).PresentTense;a!==o&&e.replace(r,o,Fg)}return e},"simple-past":Vg,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=fg(e);e.replace(n,t),(e=e.remove("will")).replace("not "+t,t+" not")}else Vg(e,t),e=e.remove("will");return e},"present-progressive":mg,"past-progressive":(e,t)=>{let n=fg(e);return e.replace("(were|was)",n,Fg)},"future-progressive":e=>(e.match("will").insertBefore("is"),e.remove("be"),e.remove("will")),"present-perfect":(e,t)=>(Vg(e,t),e=e.remove("(have|had|has)")),"past-perfect":(e,t)=>{let n=gg(e).subject;return pg(e)||n.has("i")?((e=yg(e,t)).remove("had"),e):(e.replace("had","has",Fg),e)},"future-perfect":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"present-perfect-progressive":mg,"past-perfect-progressive":e=>e.replace("had","has",Fg),"future-perfect-progressive":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"passive-past":(e,t)=>{let n=fg(e);return e.has("(had|have|has)")&&e.has("been")?(e.replace("(had|have|has)",n,Fg),e.replace("been","being"),e):e.replace("(got|was|were)",n)},"passive-present":mg,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":mg,"past-conditional":e=>(e.replace("been","be"),e.remove("have")),"auxiliary-future":(e,t)=>(zg(e,t),e.remove("(going|to)"),e),"auxiliary-past":(e,t)=>{if(t.auxiliary.has("did")){let n=vg(e);return e.replace(t.auxiliary,n),e}return zg(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":mg,"modal-infinitive":mg,"modal-past":(e,t)=>(((e,t)=>{const{toInfinitive:n}=e.methods.two.transform.verb,r=t.root;let a=t.root.text("normal");a=n(a,e.model,bg(r)),a&&(e=e.replace(t.root,a,Fg))})(e,t),e.remove("have")),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Vg(e,t),e.remove("(will|have)")),"want-infinitive":(e,t)=>{let n="wants";return pg(e)&&(n="want"),e.replace("(want|wanted|wants)",n,Fg),e.remove("will"),e}};var $g=function(e,t,n){return Bg.hasOwnProperty(n)?((e=Bg[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const Sg={tags:!0},Kg=(e,t)=>{const{toInfinitive:n}=e.methods.two.transform.verb,{root:r,auxiliary:a}=t;if(r.has("#Modal"))return e;let o=r.text("normal");return o=n(o,e.model,bg(r)),o&&(e=e.replace(r,o,Sg)).not("#Particle").tag("Verb"),e.prepend("will").match("will").tag("Auxiliary"),e.remove(a),e},Mg=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,{root:a,auxiliary:o}=t;let i=a.text("normal");return i=r(i,e.model,bg(a)),i&&(i=n(i,e.model).Gerund,e.replace(a,i,Sg),e.not("#Particle").tag("PresentTense")),e.remove(o),e.prepend("will be").match("will be").tag("Auxiliary"),e},Lg={infinitive:Kg,"simple-present":Kg,"simple-past":Kg,"simple-future":mg,"present-progressive":Mg,"past-progressive":Mg,"future-progressive":mg,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":mg,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":mg,"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":mg,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":mg,"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":mg,"modal-past":mg,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Kg(e,t),e.remove("(had|have)")),"want-infinitive":e=>(e.replace("(want|wants|wanted)","will want"),e)};var Jg=function(e,t,n){return e.has("will")||e.has("going to")?e:Lg.hasOwnProperty(n)?((e=Lg[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const Wg={tags:!0};var qg=function(e,t){const{toInfinitive:n,conjugate:r}=e.methods.two.transform.verb,{root:a,auxiliary:o}=t;if(e.has("#Gerund"))return e;let i=a.text("normal");i=n(i,e.model,bg(a));let s=r(i,e.model).Gerund;if(s){let t=fg(e);e.replace(a,s,Wg),e.remove(o),e.prepend(t)}return e.replace("not is","is not"),e.replace("not are","are not"),e.fullSentence().compute(["tagger","chunks"]),e};const Ug={tags:!0},Rg=function(e,t){let n=vg(e);return e.prepend(n+" not"),e},Qg=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)},_g=e=>e.has("(is|was|am|are|will|were|be)"),Zg={"simple-present":(e,t)=>!0===_g(e)?Qg(e):(e=yg(e,t),e=Rg(e)),"simple-past":(e,t)=>!0===_g(e)?Qg(e):((e=yg(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===_g(e)?Qg(e):Rg(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",Ug),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=Rg(e)).replace("wants","want",Ug)};var Xg=function(e,t,n){if(e.has("#Negative"))return e;if(Zg.hasOwnProperty(n))return e=Zg[n](e,t);let r=e.matchOne("be");return r.found?(r.prepend("not"),e):!0===_g(e)?Qg(e):(r=e.matchOne("(will|had|have|has|did|does|do|#Modal)"),r.found?(r.append("not"),e):e)},Yg=function(e){class Verbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Verbs"}parse(e){return this.getNth(e).map(Xd)}json(e,t){let n=this.getNth(t).map((t=>{let n=t.toView().json(e)[0]||{};return n.verb=Cg(t),n}),[]);return n}subjects(e){return this.getNth(e).map((e=>(Xd(e),gg(e).subject)))}adverbs(e){return this.getNth(e).map((e=>e.match("#Adverb")))}isSingular(e){return this.getNth(e).filter((e=>!0!==gg(e).plural))}isPlural(e){return this.getNth(e).filter((e=>!0===gg(e).plural))}isImperative(e){return this.getNth(e).filter((e=>e.has("#Imperative")))}toInfinitive(e){return this.getNth(e).map((e=>{let t=Xd(e),n=cg(e,t);return Ng(e,t,n.form)}))}toPresentTense(e){return this.getNth(e).map((e=>{let t=Xd(e),n=cg(e,t);return n.isInfinitive?e:$g(e,t,n.form)}))}toPastTense(e){return this.getNth(e).map((e=>{let t=Xd(e),n=cg(e,t);return n.isInfinitive?e:Dg(e,t,n.form)}))}toFutureTense(e){return this.getNth(e).map((e=>{let t=Xd(e),n=cg(e,t);return n.isInfinitive?e:Jg(e,t,n.form)}))}toGerund(e){return this.getNth(e).map((e=>{let t=Xd(e),n=cg(e,t);return n.isInfinitive?e:qg(e,t,n.form)}))}toPastParticiple(e){return this.getNth(e).map((e=>{let t=Xd(e),n=cg(e,t);return n.isInfinitive?e:Og(e,t,n.form)}))}conjugate(e){const{conjugate:t,toInfinitive:n}=this.world.methods.two.transform.verb;return this.getNth(e).map((e=>{let r=Xd(e),a=cg(e,r);"imperative"===a.form&&(a.form="simple-present");let o=r.root.text("normal");if(!r.root.has("#Infinitive")){let t=bg(r.root);o=n(o,e.model,t)||o}return t(o,e.model)}),[])}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 this.getNth(e).map((e=>{let t=Xd(e),n=cg(e,t);return Xg(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=qd(this);return t=t.getNth(e),new Verbs(this.document,t.pointer)}},em={api:Yg};const tm=function(e,t){let n=t.match(e);if(n.found){let e=n.pronouns().refersTo();if(e.found)return e}return t.none()},nm=function(e){if(!e.found)return e;let[t]=e.fullPointer[0];return t&&t>0?e.update([[t-1]]):e.none()};var rm=function(e,t){let n=e.people();return n=function(e,t){return"m"===t?e.filter((e=>!e.presumedFemale().found)):"f"===t?e.filter((e=>!e.presumedMale().found)):e}(n,t),n.found?n.last():(n=e.nouns("#Actor"),n.found?n.last():"f"===t?tm("(she|her|hers)",e):"m"===t?tm("(he|him|his)",e):e.none())},am=function(e){let t=e.nouns(),n=t.isPlural().notIf("#Pronoun");if(n.found)return n.last();let r=tm("(they|their|theirs)",e);return r.found?r:(n=t.match("(somebody|nobody|everybody|anybody|someone|noone|everyone|anyone)"),n.found?n.last():e.none())};const om=function(e,t){let n=e.before(),r=t(n);return r.found?r:(n=nm(e),r=t(n),r.found?r:(n=nm(n),r=t(n),r.found?r:e.none()))};var im=function(e){e.pronouns().if("(he|him|his|she|her|hers|they|their|theirs|it|its)").forEach((e=>{let t=null;e.has("(he|him|his)")?t=om(e,(e=>rm(e,"m"))):e.has("(she|her|hers)")?t=om(e,(e=>rm(e,"f"))):e.has("(they|their|theirs)")&&(t=om(e,am)),t&&t.found&&function(e,t){t&&t.found&&(e.docs[0][0].reference=t.ptrs[0])}(e,t)}))},sm=function(e){class Pronouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Pronouns"}hasReference(){return this.compute("coreference"),this.filter((e=>e.docs[0][0].reference))}refersTo(){return this.compute("coreference"),this.map((e=>{if(!e.found)return e.none();let t=e.docs[0][0];return t.reference?e.update([t.reference]):e.none()}))}update(e){let t=new Pronouns(this.document,e);return t._cache=this._cache,t}}e.prototype.pronouns=function(e){let t=this.match("#Pronoun");return t=t.getNth(e),new Pronouns(t.document,t.pointer)}},lm={compute:{coreference:im},api:sm};return v.plugin(Ec),v.plugin(Oc),v.plugin(Rc),v.plugin(lm),v.plugin(dh),v.plugin(yh),v.plugin(Fh),v.plugin(bd),v.plugin(Pd),v.plugin(Gd),v.plugin(Wd),v.plugin(em),v},"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:[]};const t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach((r=>{t.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",e)})):"function"==typeof e?e(this):console.warn("no compute:",e),this}};var n={forEach:function(e){return this.fullPointer.forEach(((t,n)=>{let r=this.update([t]);e(r,n)})),this},map:function(e,t){let n=this.fullPointer.map(((t,n)=>{let r=this.update([t]),a=e(r,n);return void 0===a?this.none():a}));if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach((e=>{r=r.concat(e.fullPointer)})),this.toView(r)},filter:function(e){let t=this.fullPointer;return t=t.filter(((t,n)=>{let r=this.update([t]);return e(r,n)})),this.update(t)},find:function(e){let t=this.fullPointer.find(((t,n)=>{let r=this.update([t]);return e(r,n)}));return this.update([t])},some:function(e){return this.fullPointer.some(((t,n)=>{let r=this.update([t]);return e(r,n)}))},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const r={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach((e=>{t[e]=this.update(this._groups[e])})),t},eq:function(e){let t=this.pointer;return t||(t=this.docs.map(((e,t)=>[t]))),t[e]?this.update([t[e]]):this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map(((e,t)=>[t]));return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map((e=>[e[0]]));return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every(((e,t)=>!!n[t]&&e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2]))},wordCount:function(){return this.docs.reduce(((e,t)=>(e+=t.filter((e=>""!==e.text)).length,e)),0)},isFull:function(){let e=this.pointer;if(!e)return!0;if(0===e.length||0!==e[0][0])return!1;let t=0,n=0;return this.document.forEach((e=>t+=e.length)),this.docs.forEach((e=>n+=e.length)),t===n},getNth:function(e){return"number"==typeof e?this.eq(e):"string"==typeof e?this.if(e):this}};r.group=r.groups,r.fullSentence=r.fullSentences,r.sentence=r.fullSentences,r.lastTerm=r.lastTerms,r.firstTerm=r.firstTerms;const a=Object.assign({},r,t,n);a.get=a.eq;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,r=t||e.map(((e,t)=>[t]));return r.map((e=>{let[t,r,a,o,i]=e;return r=r||0,a=a||(n[t]||[]).length,n[t]&&n[t][r]&&(o=o||n[t][r].id,n[t][a-1]&&(i=i||n[t][a-1].id)),[t,r,a,o,i]}))}update(e){let t=new View(this.document,e);if(this._cache&&e&&e.length>0){let n=[];e.forEach(((e,t)=>{let[r,a,o]=e;(1===e.length||0===a&&this.document[r].length===o)&&(n[t]=this._cache[r])})),n.length>0&&(t._cache=n)}return t.world=this.world,t}toView(e){return new View(this.document,e||this.pointer)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","freeze","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r.compute("unfreeze"),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,a);const o=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};function i(e,t){if(o(t))for(const n in t)o(t[n])?(e[n]||Object.assign(e,{[n]:{}}),i(e[n],t[n])):Object.assign(e,{[n]:t[n]});return e}const s=function(e,t,n,r){const{methods:a,model:o,compute:s,hooks:l}=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&&i(o,e.model),e.irregulars&&function(e,t){let n=e.two.models||{};Object.keys(t).forEach((e=>{t[e].pastTense&&(n.toPast&&(n.toPast.ex[e]=t[e].pastTense),n.fromPast&&(n.fromPast.ex[t[e].pastTense]=e)),t[e].presentTense&&(n.toPresent&&(n.toPresent.ex[e]=t[e].presentTense),n.fromPresent&&(n.fromPresent.ex[t[e].presentTense]=e)),t[e].gerund&&(n.toGerund&&(n.toGerund.ex[e]=t[e].gerund),n.fromGerund&&(n.fromGerund.ex[t[e].gerund]=e)),t[e].comparative&&(n.toComparative&&(n.toComparative.ex[e]=t[e].comparative),n.fromComparative&&(n.fromComparative.ex[t[e].comparative]=e)),t[e].superlative&&(n.toSuperlative&&(n.toSuperlative.ex[e]=t[e].superlative),n.fromSuperlative&&(n.fromSuperlative.ex[t[e].superlative]=e))}))}(o,e.irregulars),e.compute&&Object.assign(s,e.compute),l&&(t.hooks=l.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.frozen&&r.addWords(e.frozen,!0),e.mutate&&e.mutate(t,r)},l=function(e){return"[object Array]"===Object.prototype.toString.call(e)},u=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(l(e)){if(l(e[0])){let n=e.map((e=>e.map((e=>({text:e,normal:e,pre:"",post:" ",tags:new Set})))));return new t(n)}let n=e.map((e=>e.terms.map((e=>(l(e.tags)&&(e.tags=new Set(e.tags)),e)))));return new t(n)}return a};let c=Object.assign({},e);const h=function(e,t){t&&h.addWords(t);let n=u(e,View,c);return e&&n.compute(c.hooks),n};Object.defineProperty(h,"_world",{value:c,writable:!0}),h.tokenize=function(e,t){const{compute:n}=this._world;t&&h.addWords(t);let r=u(e,View,c);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},h.plugin=function(e){return s(e,this._world,View,this),this},h.extend=h.plugin,h.world=function(){return this._world},h.model=function(){return this._world.model},h.methods=function(){return this._world.methods},h.hooks=function(){return this._world.hooks},h.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},h.version="14.14.0";var d={one:{cacheDoc:function(e){let t=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},v=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-โ€“โ€”]/.test(t.post)||(t.post+=" ")},y=(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,"")}},w=function(e,t,n,r){let[a,o,i]=t;0===o||i===r[a].length?v(n):(v(n),v([e[t[1]]])),function(e,t,n){let r=e[t];if(0!==t||!f(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")||f(a.text)&&a.text.length>1&&(a.text=a.text.replace(/^\p{Lu}/u,(e=>e.toLowerCase())))}(e,o,n),b(e,o,n)};let k=0;const P=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e,A=function(e){let[t,n]=e.index||[0,0];k+=1,k=k>46655?0:k,t=t>46655?0:t,n=n>1294?0:n;let r=P(k.toString(36));r+=P(t.toString(36));let a=n.toString(36);return a=a.length<2?"0"+a:a,r+=a,r+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+r.toUpperCase()},C=function(e){e.has("@hasContraction")&&"function"==typeof e.contractions&&e.grow("@hasContraction").contractions().expand()},N=e=>"[object Array]"===Object.prototype.toString.call(e),j=function(e,t,n){const{document:r,world:a}=t;t.uncache();let o=t.fullPointer,i=t.fullPointer;t.forEach(((s,l)=>{let u=s.fullPointer[0],[c]=u,h=r[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]||[]:N(e)?N(e[0])?e[0]:e:[]}(e,a);0!==d.length&&(d=function(e){return e.map((e=>(e.id=A(e),e)))}(d),n?(C(t.update([u]).firstTerm()),w(h,u,d,r)):(C(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);let a=r.docs[0],o=t.possessives&&a[a.length-1].tags.has("Possessive");e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e=e.replace(I,(e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})),e}(e,r);let i=this.update(n);n=n.map((e=>e.slice(0,3)));let s=(i.docs[0]||[]).map((e=>Array.from(e.tags)));if("string"==typeof e&&(e=this.fromText(e).compute("id")),r.insertAfter(e),i.has("@hasContraction")&&r.contractions&&r.grow("@hasContraction+").contractions().expand(),r.delete(i),o){let e=r.docs[0],t=e[e.length-1];t.tags.has("Possessive")||(t.text+="'s",t.normal+="'s",t.tags.add("Possessive"))}let l=r.toView(n).compute(["index","freeze","lexicon"]);return l.world.compute.preTagger&&l.compute("preTagger"),l.compute("unfreeze"),t.tags&&l.terms().forEach(((e,t)=>{e.tagSafe(s[t])})),t.case&&l.docs[0]&&l.docs[0][0]&&0===l.docs[0][0].index[1]&&(l.docs[0][0].text=l.docs[0][0].text.replace(/\w\S*/g,(e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase()))),l},replace:function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let r=this.match(e);return r.found?(this.soften(),r.replaceWith(t,n)):this}},D={remove:function(e){const{indexN:t}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;e&&(n=this,r=this.match(e));let a=!n.ptrs;r.has("@hasContraction")&&r.contractions&&r.grow("@hasContraction").contractions().expand();let o=n.fullPointer,i=r.fullPointer.reverse(),s=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}(this.document,i);return o=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})),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)))}(o,t(i)),n.ptrs=o,n.document=s,n.compute("index"),a&&(n.ptrs=void 0),e?n.toView(o):(this.ptrs=[],n.none())}};D.delete=D.remove;const H={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}};H.deHyphenate=H.dehyphenate,H.toQuotation=H.toQuotations;var E={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 G=new Set(["index","sequence","seq","sequential","chron","chronological"]),O=new Set(["freq","frequency","topk","repeats"]),F=new Set(["alpha","alphabetical"]);var V={unique:function(){let e=new Set,t=this.filter((t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)}));return t},reverse:function(){let e=this.pointer||this.docs.map(((e,t)=>[t]));return e=[].concat(e),e=e.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if(this.uncache(),"function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort(((n,r)=>(n=e.update([n]),r=e.update([r]),t(n,r)))),e.ptrs=n,e}(this,e);e=e||"alpha";let r=n||t.map(((e,t)=>[t])),a=t.map(((e,t)=>({index:t,words:e.length,normal:e.map((e=>e.machine||e.normal||"")).join(" "),pointer:r[t]})));return G.has(e)&&(e="sequential"),F.has(e)&&(e="alpha"),O.has(e)?(a=E.byFreq(a),this.update(a.map((e=>e.pointer)))):"function"==typeof E[e]?(a=a.sort(E[e]),this.update(a.map((e=>e.pointer)))):this}};const z=function(e,t){if(e.length>0){let t=e[e.length-1],n=t[t.length-1];!1===/ /.test(n.post)&&(n.post+=" ")}return e=e.concat(t)};var B={concat:function(e){if("string"==typeof e){let t=this.fromText(e);if(this.found&&this.ptrs){let e=this.fullPointer,n=e[e.length-1][0];this.document.splice(n,0,...t.document)}else this.document=this.document.concat(t.document);return this.all().compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach((t=>{t[0]+=e.document.length})),e.document=z(e.document,t.docs),e.all()}(this,e);if(t=e,"[object Array]"===Object.prototype.toString.call(t)){let t=z(this.document,e);return this.document=t,this.all()}var t;return this}},S={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 $=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}},x,T,D,H,V,B,S),M={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))),n[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))},q=/'/,U=new Set(["what","how","when","where","why"]),R=new Set(["be","go","start","think","need"]),Q=new Set(["been","gone"]),Z=/'/,_=/(e|รฉ|aison|sion|tion)$/,X=/(age|isme|acle|ege|oire)$/;var Y=(e,t)=>["je",e[t].normal.split(Z)[1]],ee=(e,t)=>{let n=e[t].normal.split(Z)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},te=(e,t)=>{let n=e[t].normal.split(Z)[1];return n&&_.test(n)&&!X.test(n)?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const ne=/^([0-9.]{1,4}[a-z]{0,2}) ?[-โ€“โ€”] ?([0-9]{1,4}[a-z]{0,2})$/i,re=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-โ€“โ€”] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,ae=/^[0-9]{3}-[0-9]{4}$/,oe=function(e,t){let n=e[t],r=n.text.match(ne);return null!==r?!0===n.tags.has("PhoneNumber")||ae.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(re),null!==r?[r[1],"to",r[4]]:null)},ie=/^([+-]?[0-9][.,0-9]*)([a-zยฐยฒยณยต/]+)$/,se=function(e,t,n){const r=n.model.one.numberSuffixes||{};let a=e[t].text.match(ie);if(null!==a){let e=a[2].toLowerCase().trim();return r.hasOwnProperty(e)?null:[a[1],e]}return null},le=/'/,ue=/^[0-9][^-โ€“โ€”]*[-โ€“โ€”].*?[0-9]/,ce=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]]},he={t:(e,t)=>function(e,t){return"ain't"===e[t].normal||"aint"===e[t].normal?null:[e[t].normal.replace(/n't/,""),"not"]}(e,t),d:(e,t)=>function(e,t){let n=e[t].normal.split(q)[0];if(U.has(n))return[n,"did"];if(e[t+1]){if(Q.has(e[t+1].normal))return[n,"had"];if(R.has(e[t+1].normal))return[n,"would"]}return null}(e,t)},de={j:(e,t)=>Y(e,t),l:(e,t)=>ee(e,t),d:(e,t)=>te(e,t)},ge=function(e,t,n,r){for(let a=0;a2)return o.out.concat(r)}return null},me=function(e,t){let n=t.fromText(e.join(" "));return n.compute(["id","alias"]),n.docs[0]},pe=function(e,t){for(let n=t+1;n<5&&e[n];n+=1)if("been"===e[n].normal)return["there","has"];return["there","is"]};var fe={contractions:e=>{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;if(!0===le.test(r[s].normal)){let e=r[s].normal.split(le);l=e[0],u=e[1]}let c=ge(o,r[s],l,u);!c&&he.hasOwnProperty(u)&&(c=he[u](r,s,t)),!c&&de.hasOwnProperty(l)&&(c=de[l](r,s)),"there"===l&&"s"===u&&(c=pe(r,s)),c?(c=me(c,e),W(n,[i,s],c),ce(n[i],e,s,c.length)):ue.test(r[s].normal)?(c=oe(r,s),c&&(c=me(c,e),W(n,[i,s],c),a.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&a.one.setTag([c[0]],"Time",t,null,"time-range"),ce(n[i],e,s,c.length))):(c=se(r,s,t),c&&(c=me(c,e),W(n,[i,s],c),a.one.setTag([c[1]],"Unit",t,null,"contraction-unit")))}}))}};const be={model:J,compute:fe,hooks:["contractions"]},ve=function(e){const t=e.world,{model:n,methods:r}=e.world,a=r.one.setTag,{frozenLex:o}=n.one,i=n.one._multiCache||{};e.docs.forEach((e=>{for(let n=0;nn;r-=1){let i=e.slice(n,r+1),s=i.map((e=>e.machine||e.normal)).join(" ");!0!==o.hasOwnProperty(s)||(a(i,o[s],t,!1,"1-frozen-multi-lexicon"),i.forEach((e=>e.frozen=!0)))}void 0!==o[s]&&o.hasOwnProperty(s)&&(a([r],o[s],t,!1,"1-freeze-lexicon"),r.frozen=!0)}}))},ye=e=>""+e+"",we=e=>""+e+"",ke=function(e){e.docs.forEach((e=>{console.log(ye("\n โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€")),e.forEach((e=>{let t=` ${we("โ”‚")} `,n=e.implicit||e.text||"-";!0===e.frozen?t+=`${ye(n)} โ„๏ธ`:t+=we(n),console.log(t)}))}))};var Pe={compute:{frozen:ve,freeze:ve,unfreeze:function(e){return e.docs.forEach((e=>{e.forEach((e=>{delete e.frozen}))})),e}},mutate:e=>{const t=e.methods.one;t.termMethods.isFrozen=e=>!0===e.frozen,t.debug.freeze=ke,t.debug.frozen=ke},api:function(e){e.prototype.freeze=function(){return this.docs.forEach((e=>{e.forEach((e=>{e.frozen=!0}))})),this},e.prototype.unfreeze=function(){this.compute("unfreeze")},e.prototype.isFrozen=function(){return this.match("@isFrozen+")}},hooks:["freeze"]};const Ae=function(e,t,n){const{model:r,methods:a}=n,o=a.one.setTag,i=r.one._multiCache||{},{lexicon:s}=r.one||{};let l=e[t],u=l.machine||l.normal;if(void 0!==i[u]&&e[t+1]){for(let r=t+i[u]-1;r>t;r-=1){let a=e.slice(t,r+1);if(a.length<=1)return!1;let i=a.map((e=>e.machine||e.normal)).join(" ");if(!0===s.hasOwnProperty(i)){let e=s[i];return o(a,e,n,!1,"1-multi-lexicon"),!e||2!==e.length||"PhrasalVerb"!==e[0]&&"PhrasalVerb"!==e[1]||o([a[1]],"Particle",n,!1,"1-phrasal-particle"),!0}}return!1}return null},Ce=/^(under|over|mis|re|un|dis|semi|pre|post)-?/,Ne=new Set(["Verb","Infinitive","PastTense","Gerund","PresentTense","Adjective","Participle"]),je=function(e,t,n){const{model:r,methods:a}=n,o=a.one.setTag,{lexicon:i}=r.one;let s=e[t],l=s.machine||s.normal;if(void 0!==i[l]&&i.hasOwnProperty(l))return o([s],i[l],n,!1,"1-lexicon"),!0;if(s.alias){let e=s.alias.find((e=>i.hasOwnProperty(e)));if(e)return o([s],i[e],n,!1,"1-lexicon-alias"),!0}if(!0===Ce.test(l)){let e=l.replace(Ce,"");if(i.hasOwnProperty(e)&&e.length>3&&Ne.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null};var xe={lexicon:function(e){const t=e.world;e.docs.forEach((e=>{for(let n=0;n{let a=e[r],o=(r=(r=r.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);o.length>1&&(void 0===n[o[0]]||o.length>n[o[0]])&&(n[o[0]]=o.length),t[r]=t[r]||a})),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}}}},Te={addWords:function(e,t=!1){const n=this.world(),{methods:r,model:a}=n;if(!e)return;if(Object.keys(e).forEach((t=>{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))})),!0===t){let{lex:t,_multi:o}=r.one.expandLexicon(e,n);return Object.assign(a.one._multiCache,o),void Object.assign(a.one.frozenLex,t)}if(r.two.expandLexicon){let{lex:t,_multi:o}=r.two.expandLexicon(e,n);Object.assign(a.one.lexicon,t),Object.assign(a.one._multiCache,o)}let{lex:o,_multi:i}=r.one.expandLexicon(e,n);Object.assign(a.one.lexicon,o),Object.assign(a.one._multiCache,i)}},De={model:{one:{lexicon:{},_multiCache:{},frozenLex:{}}},methods:Ie,compute:xe,lib:Te,hooks:["lexicon"]};const He=function(e,t){let n=[{}],r=[null],a=[0],o=[],i=0;e.forEach((function(e){let a=0,o=function(e,t){const{methods:n,model:r}=t;let a=n.one.tokenize.splitTerms(e,r).map((e=>n.one.tokenize.splitWhitespace(e,r)));return a.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}},Ee=function(e,t,n){let r=0,a=[];for(let o=0;o0&&(void 0===t.goNext[r]||!t.goNext[r].hasOwnProperty(i));)r=t.failTo[r]||0;if(t.goNext[r].hasOwnProperty(i)&&(r=t.goNext[r][i],t.endAs[r])){let n=t.endAs[r];for(let t=0;t{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1);return e},Fe={buildTrie:function(e){return function(e){return e.goNext=e.goNext.map((e=>{if(0!==Object.keys(e).length)return e})),e.goNext=Oe(e.goNext,void 0),e.failTo=Oe(e.failTo,0),e.endAs=Oe(e.endAs,null),e}(He(e,this.world()))}};Fe.compile=Fe.buildTrie;var Ve={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();var n;"string"==typeof e&&(e=[e]);let r=function(e,t,n){let r=[];n.form=n.form||"normal";let a=e.docs;if(!t.goNext||!t.goNext[0])return console.error("Compromise invalid lookup trie"),e.none();let o=Object.keys(t.goNext[0]);for(let i=0;i0&&(r=r.concat(l))}return e.update(r)}(this,(n=e,"[object Object]"===Object.prototype.toString.call(n)?e:He(e,this.world)),t);return r=r.settle(),r}},lib:Fe};const ze=function(e,t){return t?(e.forEach((e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])})),e):e},Be=function(e,t){let{ptrs:n,byGroup:r}=e;return n=ze(n,t),Object.keys(r).forEach((e=>{r[e]=ze(r[e],t)})),{ptrs:n,byGroup:r}},Se=function(e,t,n){const r=n.methods.one;return"number"==typeof e&&(e=String(e)),"string"==typeof e&&(e=r.killUnicode(e,n),e=r.parseMatch(e,t,n)),e},$e=e=>"[object Object]"===Object.prototype.toString.call(e),Me=e=>e&&$e(e)&&!0===e.isView,Ke=e=>e&&$e(e)&&!0===e.isNet;var Le={matchOne:function(e,t,n){const r=this.methods.one;if(Me(e))return this.intersection(e).eq(0);if(Ke(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;let a={regs:e=Se(e,n,this.world),group:t,justOne:!0},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Be(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const r=this.methods.one;if(Me(e))return this.intersection(e);if(Ke(e))return this.sweep(e,{tagger:!1}).view.settle();let a={regs:e=Se(e,n,this.world),group:t},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Be(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const r=this.methods.one;if(Me(e))return this.intersection(e).fullPointer.length>0;if(Ke(e))return this.sweep(e,{tagger:!1}).view.found;let a={regs:e=Se(e,n,this.world),group:t,justOne:!0};return r.match(this.docs,a,this._cache).ptrs.length>0},if:function(e,t,n){const r=this.methods.one;if(Me(e))return this.filter((t=>t.intersection(e).found));if(Ke(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}let a={regs:e=Se(e,n,this.world),group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter(((e,t)=>{let n=this.update([e]);return r.match(n.docs,a,i[t]).ptrs.length>0}));let s=this.update(o);return this._cache&&(s._cache=o.map((e=>i[e[0]]))),s},ifNo:function(e,t,n){const{methods:r}=this,a=r.one;if(Me(e))return this.filter((t=>!t.intersection(e).found));if(Ke(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}e=Se(e,n,this.world);let o=this._cache||[],i=this.filter(((n,r)=>{let i={regs:e,group:t,justOne:!0};return 0===a.match(n.docs,i,o[r]).ptrs.length}));return this._cache&&(i._cache=i.ptrs.map((e=>o[e[0]]))),i}},Je={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 We=function(e,t){return[e[0],e[1],t[2]]},qe=(e,t,n)=>{return"string"==typeof e||(r=e,"[object Array]"===Object.prototype.toString.call(r))?t.match(e,n):e||t.none();var r},Ue=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},Re={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=qe(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>Ue(e,this))),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=qe(e,this,t).fullPointer,a=n(this.fullPointer,r);for(let e=0;e{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(We(e.match,e.after)):o.push(e.match)})),o=o.filter((e=>e)),o=o.map((e=>Ue(e,this))),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=qe(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),e.before&&e.match?o.push(We(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=>Ue(e,this))),this.update(o)}};Re.split=Re.splitAfter;const Qe=function(e,t){return!(!e||!t)&&e[0]===t[0]&&e[2]===t[1]},Ze=function(e,t,n){const r=e.world,a=r.methods.one.parseMatch;n=n||"^.";let o=a(t=t||".$",{},r),i=a(n,{},r);o[o.length-1].end=!0,i[0].start=!0;let s=e.fullPointer,l=[s[0]];for(let t=1;t)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,et=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,tt=/ /g,nt=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),rt=function(e){return e=(e=e.map((e=>e.trim()))).filter((e=>e))},at=/\{([0-9]+)?(, *[0-9]*)?\}/,ot=/&&/,it=new RegExp(/^<\s*(\S+)\s*>/),st=e=>e.charAt(0).toUpperCase()+e.substring(1),lt=e=>e.charAt(e.length-1),ut=e=>e.charAt(0),ct=e=>e.substring(1),ht=e=>e.substring(0,e.length-1),dt=function(e){return e=ct(e),e=ht(e)},gt=function(e,t){let n={};for(let r=0;r<2;r+=1){if("$"===lt(e)&&(n.end=!0,e=ht(e)),"^"===ut(e)&&(n.start=!0,e=ct(e)),"?"===lt(e)&&(n.optional=!0,e=ht(e)),("["===ut(e)||"]"===lt(e))&&(n.group=null,"["===ut(e)&&(n.groupStart=!0),"]"===lt(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===ut(e))){const t=it.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===lt(e)&&(n.greedy=!0,e=ht(e)),"*"!==e&&"*"===lt(e)&&"\\*"!==e&&(n.greedy=!0,e=ht(e)),"!"===ut(e)&&(n.negative=!0,e=ct(e)),"~"===ut(e)&&"~"===lt(e)&&e.length>2&&(e=dt(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("/"===ut(e)&&"/"===lt(e))return e=dt(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if(!0===at.test(e)&&(e=e.replace(at,((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),"")))),"("===ut(e)&&")"===lt(e)){ot.test(e)?(n.choices=e.split(ot),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=ct(n.choices[0]);let r=n.choices.length-1;n.choices[r]=ht(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=>gt(e,t))))),e=""}if("{"===ut(e)&&"}"===lt(e)){if(e=dt(e),n.root=e,/\//.test(e)){let e=n.root.split(/\//);n.root=e[0],n.pos=e[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==e[2]&&(n.sense=e[2])}return n}if("<"===ut(e)&&">"===lt(e))return e=dt(e),n.chunk=st(e),n.greedy=!0,n;if("%"===ut(e)&&"%"===lt(e))return e=dt(e),n.switch=e,n}return"#"===ut(e)?(n.tag=ct(e),n.tag=st(n.tag),n):"@"===ut(e)?(n.method=ct(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)},mt=/[a-z0-9][-โ€“โ€”][a-z]/i,pt=function(e,t){let{all:n}=t.methods.two.transform.verb||{},r=e.root;return n?n(r,t.model):[]},ft=function(e,t){let{all:n}=t.methods.two.transform.noun||{};return n?n(e.root,t.model):[e.root]},bt=function(e,t){let{all:n}=t.methods.two.transform.adjective||{};return n?n(e.root,t.model):[e.root]},vt=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}))),e},yt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1},wt=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),xt={hasQuote:e=>Pt.test(e.pre)||At.test(e.post),hasComma:e=>jt(e,","),hasPeriod:e=>!0===jt(e,".")&&!1===jt(e,"..."),hasExclamation:e=>jt(e,"!"),hasQuestionMark:e=>jt(e,"?")||jt(e,"ยฟ"),hasEllipses:e=>jt(e,"..")||jt(e,"โ€ฆ"),hasSemicolon:e=>jt(e,";"),hasColon:e=>jt(e,":"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>Ct.test(e.post)||Ct.test(e.pre),hasDash:e=>Nt.test(e.post)||Nt.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};xt.hasQuotation=xt.hasQuote;let It=function(){};It=function(e,t,n,r){let a=function(e,t,n,r){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==r-1)return!1;if(void 0!==t.id&&t.id===e.id)return!0;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(kt(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some((e=>e===t.word)))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof xt[t.method]&&!0===xt[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}if(void 0!==t.chunk)return e.chunk===t.chunk;if(void 0!==t.switch)return e.switch===t.switch;if(void 0!==t.machine)return e.normal===t.machine||e.machine===t.machine||e.root===t.machine;if(void 0!==t.sense)return e.sense===t.sense;if(void 0!==t.fastOr){if(t.pos&&!e.tags.has(t.pos))return null;let n=e.root||e.implicit||e.machine||e.normal;return t.fastOr.has(n)||t.fastOr.has(e.text)}return void 0!==t.choices&&("and"===t.operator?t.choices.every((t=>It(e,t,n,r))):t.choices.some((t=>It(e,t,n,r))))}(e,t,n,r);return!0===t.negative?!a:a};const Tt=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max?(e.t=e.t+n.max,!0):(!0===e.hasGroup&&(Dt(e,e.t).length=r-e.t),e.t=r,!0)},Et=function(e,t=0){let n=e.regs[e.r],r=!1;for(let o=0;o{let a=0,o=e.t+r+t+a;if(void 0===e.terms[o])return!1;let i=It(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let r=n.every(((t,n)=>{let r=e.t+n;return void 0!==e.terms[r]&&It(e.terms[r],t,r,e.phrase_length)}));return!0===r&&n.length>t&&(t=n.length),r}))&&t}(e);if(r){if(!0===n.negative)return null;if(!0===e.hasGroup&&(Dt(e,e.t).length+=r),!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=r,!0}return!!n.optional||null},Ft=function(e){const{regs:t}=e;let n=t[e.r],r=Object.assign({},n);if(r.negative=!1,It(e.terms[e.t],r,e.start_i+e.t,e.phrase_length))return!1;if(n.optional){let n=t[e.r+1];n&&(It(e.terms[e.t],n,e.start_i+e.t,e.phrase_length)?e.r+=1:n.optional&&t[e.r+2]&&It(e.terms[e.t],t[e.r+2],e.start_i+e.t,e.phrase_length)&&(e.r+=2))}return n.greedy?function(e,t,n){let r=0;for(let a=e.t;ar||(e.t+=r,0))}(e,r,t[e.r+1]):(e.t+=1,!0)},Vt=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},zt=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]&&function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=It(r,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||a){let n=e.terms[e.t+1];n&&It(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}}(e),r.implicit&&e.terms[e.t+1]&&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)}}(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy?null:!0!==n.greedy||Vt(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=Dt(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0):null)},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!==Tt(e,a)){if(e.negative){if(!Ft(a))return null}else if(!0!==It(a.terms[a.t],e,a.start_i+a.t,a.phrase_length)){if(!0!==e.optional)return null}else if(!zt(a))return null}else if(!zt(a))return null}else{if(e.negative&&e.anything)return null;if(!zt(a))return null}else if(!Ot(a))return null}else if(!Gt(a))return null}else if(!Ht(a))return null}let o=[null,n,a.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(a.groups).forEach((e=>{let t=a.groups[e],r=n+t.start;i[e]=[null,r,r+t.length]})),{pointer:o,groups:i}},St=function(e,t){return e.pointer[0]=t,Object.keys(e.groups).forEach((n=>{e.groups[n][0]=t})),e},$t=function(e,t,n){let r=Bt(e,t,0,e.length);return r?(r=St(r,n),r):null},Mt={one:{termMethods:xt,parseMatch:function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let r=function(e){let t=e.split(Ye),n=[];t.forEach((e=>{nt(e)?n.push(e):n=n.concat(e.split(et))})),n=rt(n);let r=[];return n.forEach((e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||nt(e)?r.push(e):r=r.concat(e.split(tt))})),r=rt(r),r}(e);return r=r.map((e=>gt(e,t))),r=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&&mt.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}(r,n),r=function(e,t){return e.map((e=>{if(e.root)if(t.methods.two&&t.methods.two.transform){let n=[];e.pos?"Verb"===e.pos?n=n.concat(pt(e,t)):"Noun"===e.pos?n=n.concat(ft(e,t)):"Adjective"===e.pos&&(n=n.concat(bt(e,t))):(n=n.concat(pt(e,t)),n=n.concat(ft(e,t)),n=n.concat(bt(e,t))),n=n.filter((e=>e)),n.length>0&&(e.operator="or",e.fastOr=new Set(n))}else e.machine=e.root,delete e.id,delete e.root;return e}))}(r,n),r=vt(r),r},match:function(e,t,n){n=n||[];let{regs:r,group:a,justOne:o}=t,i=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const s=r.filter((e=>!0!==e.optional&&!0!==e.negative)).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=$t(a,r,t);e&&i.push(e)}}return!0===r[r.length-1].end&&(i=i.filter((t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]}))),t.notIf&&(i=function(e,t,n){return e=e.filter((e=>{let[r,a,o]=e.pointer,i=n[r].slice(a,o);for(let e=0;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}}(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}}};var Kt={api:function(e){Object.assign(e.prototype,Xe)},methods:Mt,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 Lt=/^\../,Jt=/^#./,Wt=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,"'"),Lt.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 qt={html:function(e){let{starts:t,ends:n}=Wt(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(Rt,""),Zt.test(a)&&(a=" "),a=a.replace(Qt,""),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(Rt,""),a="-"===a?" ":a.replace(Ut,""));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&&_t.test(a)||(a+=" "),r+=n+o+a})),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},Yt={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{keepSpace:!1,whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{keepSpace:!1,whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};Yt.clean=Yt.normal,Yt.reduced=Yt.root;let en=[],tn=0;for(;tn<64;)en[tn]=0|4294967296*Math.sin(++tn%Math.PI);const nn=function(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(tn=i=0;tn>4]+en[i]+~~o[tn|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},rn={text:!0,terms:!0};let an={case:"none",unicode:"some",form:"machine",punctuation:"some"};const on=function(e,t){return Object.assign({},e,t)},sn={text:e=>Xt(e,{keepPunct:!0},!1),normal:e=>Xt(e,on(Yt.normal,{keepPunct:!0}),!1),implicit:e=>Xt(e,on(Yt.implicit,{keepPunct:!0}),!1),machine:e=>Xt(e,an,!1),root:e=>Xt(e,on(an,{form:"root"}),!1),hash:e=>nn(Xt(e,{keepPunct:!0},!1)),offset:e=>{let t=sn.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map((e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t})),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some((e=>!0===e.dirty))};sn.sentences=sn.sentence,sn.clean=sn.normal,sn.reduced=sn.root;const ln={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},rn,r)).offset&&n.compute("offset"),n.docs.map(((e,t)=>{let a={};return Object.keys(r).forEach((o=>{r[o]&&sn[o]&&(a[o]=sn[o](e,n,t))})),a})));var n,r;return"number"==typeof e?t[e]:t}};ln.data=ln.json;const un=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n},cn=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()));return e.filter((e=>e))}if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};e.forEach((e=>{t[e]=t[e]||0,t[e]+=1}));let n=Object.keys(t).map((e=>({normal:e,count:t[e]})));return n.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.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()},wrap:function(e){return cn(this,e)}};var dn={text:function(e){let t={};var n;if(e&&"string"==typeof e&&Yt.hasOwnProperty(e)?t=Object.assign({},Yt[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e)),void 0!==t.keepSpace||this.isFull()||(t.keepSpace=!1),void 0===t.keepEndPunct&&this.pointer){let e=this.pointer[0];e&&e[1]?t.keepEndPunct=!1:t.keepEndPunct=!0}return void 0===t.keepPunct&&(t.keepPunct=!0),void 0===t.keepSpace&&(t.keepSpace=!0),function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let r=0;r""+e+mn,red:e=>""+e+mn,blue:e=>""+e+mn,magenta:e=>""+e+mn,cyan:e=>""+e+mn,yellow:e=>""+e+mn,black:e=>""+e+mn,dim:e=>""+e+mn,i:e=>""+e+mn},fn={tags:function(e){let{docs:t,model:n}=e;0===t.length&&console.log(pn.blue("\n โ”€โ”€โ”€โ”€โ”€โ”€")),t.forEach((t=>{console.log(pn.blue("\n โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€")),t.forEach((t=>{let r=[...t.tags||[]],a=t.text||"-";t.sense&&(a=`{${t.normal}/${t.sense}}`),t.implicit&&(a="["+t.implicit+"]"),a=pn.yellow(a);let o="'"+a+"'";if(t.reference){let n=e.update([t.reference]).text("normal");o+=` - ${pn.dim(pn.i("["+n+"]"))}`}o=o.padEnd(18);let i=pn.blue(" โ”‚ ")+pn.i(o)+" - "+function(e,t){return t.one.tagSet&&(e=e.map((e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return pn[n](e)}))),e.join(", ")}(r,n);console.log(i)}))})),console.log("\n")},clientSide: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()}))},chunks:function(e){let{docs:t}=e;console.log(""),t.forEach((e=>{let t=[];e.forEach((e=>{"Noun"===e.chunk?t.push(pn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(pn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(pn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(pn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)})),console.log(t.join(" "),"\n")})),console.log("\n")},highlight:function(e){if(!e.found)return;let t={};e.fullPointer.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),Object.keys(t).forEach((n=>{let r=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach(((e,t)=>{r=function(e,t,n){let r=((e,t,n)=>{let r=9*n,a=t.start+r,o=a+t.length;return[e.substring(0,a),e.substring(a,o),e.substring(o,e.length)]})(e,t,n);return`${r[0]}${pn.blue(r[1])}${r[2]}`}(r,e.offset,t)})),console.log(r)})),console.log("\n")}};var bn={api:function(e){Object.assign(e.prototype,gn)},methods:{one:{hash:nn,debug:fn}}};const vn=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},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<20;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}}};const 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=>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);a.push(o)})),a=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)})),n},Cn=(e,t)=>{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}))},jn={union:function(e){e=Cn(e,this);let t=Pn(this.fullPointer,e.fullPointer);return t=Nn(t,this.document),this.toView(t)}};jn.and=jn.union,jn.intersection=function(e){e=Cn(e,this);let t=function(e,t){let n=yn(t),r=[];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{e=Pn(e,[t])})),e=Nn(e,this.document),this.update(e)};var xn={methods:kn,api:function(e){Object.assign(e.prototype,jn)}};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},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.notIf&&(e.notIf=n(e.notIf,{},t)),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};var Dn={buildNet:function(e,t){e=Tn(e,t);let n={};e.forEach((e=>{e.needs.forEach((t=>{n[t]=Array.isArray(n[t])?n[t]:[],n[t].push(e)})),e.wants.forEach((t=>{n[t]=Array.isArray(n[t])?n[t]:[],n[t].push(e)}))})),Object.keys(n).forEach((e=>{let t={};n[e]=n[e].filter((e=>"boolean"!=typeof 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=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=>"boolean"!=typeof o[e.match]&&(o[e.match]=!0,!0))),a}))}(a,t.hooks);o=function(e,t){return e.map(((e,n)=>{let r=t[n];return(e=(e=e.filter((e=>e.needs.every((e=>r.has(e)))))).filter((e=>void 0===e.ifNo||!0!==e.ifNo.some((e=>r.has(e)))))).filter((e=>0===e.wants.length||e.wants.filter((e=>r.has(e))).length>=e.minWant))}))}(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=e.filter((e=>r>=e.minWords)),e}))}(o,e);let i=function(e,t,n,r,a){let o=[];for(let n=0;n0&&(l.ptrs.forEach((e=>{e[0]=n;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),o.push(t)})),!0===a.matchOne))return[o[0]]}return o}(o,e,0,n,r);return i},bulkTagger:function(e,t,n){const{model:r,methods:a}=n,{getDoc:o,setTag:i,unTag:s}=a.one,l=a.two.looksPlural;return 0===e.length?e:(("undefined"!=typeof process&&process.env?process.env:self.env||{}).DEBUG_TAGS&&console.log(`\n\n โ†’ ${e.length} post-tagger:`),e.map((e=>{if(!e.tag&&!e.chunk&&!e.unTag)return;let a=e.reason||e.match,u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===function(e,t,n){let r=n.one.tagSet;if(!r.hasOwnProperty(t))return!0;let a=r[t].not||[];for(let t=0;te.frozen=!0))}void 0!==e.unTag&&s(u,e.unTag,n,e.safe,a),e.chunk&&u.forEach((t=>t.chunk=e.chunk))})))}},Hn={lib:{buildNet:function(e){let t=this.methods().one.buildNet(e,this.world());return t.isNet=!0,t}},api:function(e){e.prototype.sweep=function(e,t={}){const{world:n,docs:r}=this,{methods:a}=n;let o=a.one.bulkMatch(r,e,this.methods,t);!1!==t.tagger&&a.one.bulkTagger(o,r,this.world),o=o.map((e=>{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:Dn}};const En=/ /,Gn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},On=function(e,t,n,r){if(!0===e.tags.has(t))return null;if("."===t)return null;!0===e.frozen&&(r=!0);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("string"==typeof t)if(t=t.trim(),En.test(t))!function(e,t,n,r){let a=t.split(En);e.forEach(((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),On(e,o,n,r))}))}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nFn(e,t,n,r)))},Vn=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},zn=/^ *(#|\/\/)/,Bn=function(e){let t=e.trim().split(/->/),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=>Vn({id:e}))),t}return[Vn({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),Mn=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()||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:Bn(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=Vn({});return e.forEach((e=>{if((e=Vn(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):(Sn(t=e).forEach(Vn),t);var t},Ln=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("โ†’ "));let r="";return Sn(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},Jn=function(e){let t=Sn(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},Wn={text:Ln,txt:Ln,array:Jn,flat:Jn},qn=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Ln(e,!0)),null):Wn.hasOwnProperty(t)?Wn[t](e):e},Un=e=>{Sn(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))}))},Rn=/\//;let Qn=class g{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=Mn(e),!Rn.test(e)){let t=this.json.children.find((t=>t.id===e));return new g(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)||Vn({});return new g(t)}add(e,t={}){if($n(e))return e.forEach((e=>this.add(Mn(e),t))),this;e=Mn(e);let n=Vn({id:e,props:t});return this.json.children.push(n),new g(n)}remove(e){return e=Mn(e),this.json.children=this.json.children.filter((t=>t.id!==e)),this}nodes(){return Sn(this.json).map((e=>(delete(e=Object.assign({},e)).children,e)))}cache(){return(e=>{let t=Sn(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 Sn(this.json)}fillDown(){var e;return e=this.json,Sn(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(){Un(this.json);let e=Sn(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 Un(this.json),qn(this.json,e)}debug(){return Un(this.json),qn(this.json,"debug"),this}};const Zn=function(e){let t=Kn(e);return new Qn(t)};Zn.prototype.plugin=function(e){e(this)};const _n={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Hyphenated:"cyan",Adverb:"cyan"},Xn=function(e){if(_n.hasOwnProperty(e.id))return _n[e.id];if(_n.hasOwnProperty(e.is))return _n[e.is];let t=e._cache.parents.find((e=>_n[e]));return _n[t]},Yn=function(e){return e?"string"==typeof e?[e]:e:[]},er=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=Yn(e[t].children),e[t].not=Yn(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 tr={one:{setTag:Fn,unTag:function(e,t,n){t=t.trim().replace(/^#/,"");for(let r=0;r0)for(let e=0;e0&&(e=function(e){return Object.keys(e).forEach((t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0})),e}(e)),e=er(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 Zn(t).cache().fillDown().out("array")}(Object.assign({},t,e)),r=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:Xn(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}(n);return r},canBe:function(e,t,n){if(!n.hasOwnProperty(t))return!0;let r=n[t].not||[];for(let t=0;ta.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 nr(e)?e.forEach((e=>r.one.unTag(n,e,i))):r.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){e=e.replace(/^#/,"");let t=this.model.one.tagSet,n=this.methods.one.canBe,r=[];this.document.forEach(((a,o)=>{a.forEach(((a,i)=>{n(a,e,t)||r.push([o,i,i+1])}))}));let a=this.update(r);return this.difference(a)}};var ar={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 or=new Set(["Auxiliary","Possessive"]);var ir={model:{one:{tagSet:{}}},compute:{tagRank:function(e){const{document:t,world:n}=e,r=n.model.one.tagSet;t.forEach((e=>{e.forEach((e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e=e.sort(((e,n)=>{if(or.has(e)||!t.hasOwnProperty(n))return 1;if(or.has(n)||!t.hasOwnProperty(e))return-1;let r=t[e].children||[],a=r.length;return r=t[n].children||[],a-r.length})),e}(t,r)}))}))}},methods:tr,api:function(e){Object.assign(e.prototype,rr)},lib:ar};const sr=/([.!?\u203D\u2E18\u203C\u2047-\u2049\u3002]+\s)/g,lr=/^[.!?\u203D\u2E18\u203C\u2047-\u2049\u3002]+\s$/,ur=/((?:\r?\n|\r)+)/,cr=/[a-z0-9\u00C0-\u00FF\u00a9\u00ae\u2000-\u3300\ud000-\udfff]/i,hr=/\S/,dr={'"':'"',"๏ผ‚":"๏ผ‚","โ€œ":"โ€","โ€Ÿ":"โ€","โ€ž":"โ€","โน‚":"โ€","โ€š":"โ€™","ยซ":"ยป","โ€น":"โ€บ","โ€ต":"โ€ฒ","โ€ถ":"โ€ณ","โ€ท":"โ€ด","ใ€":"ใ€ž","ใ€Ÿ":"ใ€ž"},gr=RegExp("["+Object.keys(dr).join("")+"]","g"),mr=RegExp("["+Object.values(dr).join("")+"]","g"),pr=function(e){if(!e)return!1;let t=e.match(mr);return null!==t&&1===t.length},fr=/\(/g,br=/\)/g,vr=/\S/,yr=/^\s+/,wr=function(e,t){let n=e.split(/[-โ€“โ€”]/);if(n.length<=1)return!1;const{prefixes:r,suffixes:a}=t.one;return(1!==n[0].length||!/[a-z]/i.test(n[0]))&&(!r.hasOwnProperty(n[0])&&(n[1]=n[1].trim().replace(/[.?!]$/,""),!a.hasOwnProperty(n[1])&&(!0===/^([a-z\u00C0-\u00FF`"'/]+)[-โ€“โ€”]([a-z0-9\u00C0-\u00FF].*)/i.test(e)||!0===/^[('"]?([0-9]{1,4})[-โ€“โ€”]([a-z\u00C0-\u00FF`"'/-]+[)'"]?$)/i.test(e))))},kr=function(e){let t=[];const n=e.split(/[-โ€“โ€”]/);let r="-",a=e.match(/[-โ€“โ€”]/);a&&a[0]&&(r=a);for(let e=0;e(e[t]=!0,e)),{});const xr=/\p{Letter}/u,Ir=/[\p{Number}\p{Currency_Symbol}]/u,Tr=/^[a-z]\.([a-z]\.)+/i,Dr=/[sn]['โ€™]$/,Hr=/([A-Z]\.)+[A-Z]?,?$/,Er=/^[A-Z]\.,?$/,Gr=/[A-Z]{2,}('s|,)?$/,Or=/([a-z]\.)+[a-z]\.?$/,Fr=function(e){return function(e){return!0===Hr.test(e)||!0===Or.test(e)||!0===Er.test(e)||!0===Gr.test(e)}(e)&&(e=e.replace(/\./g,"")),e},Vr=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=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.replace(/([0-9]),([0-9])/g,"$1$2")}(r),r=n(r,t),r=Fr(r),e.normal=r},zr=/[ .][A-Z]\.? *$/i,Br=/(?:\u2026|\.{2,}) *$/,Sr=/\p{L}/u,$r=/\. *$/,Mr=/^[A-Z]\. $/;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:function(e,t){if(e=e||"",!(e=String(e))||"string"!=typeof e||!1===vr.test(e))return[];let n=function(e){let t=[],n=e.split(ur);for(let e=0;e0&&(a.push(o),e[t]="")}return a}(r,t),r=function(e){let t=[];for(let n=0;n0?(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=function(e){for(let t=1;te)),n},splitWhitespace:(e,t)=>{let{str:n,pre:r,post:a}=function(e,t){let{prePunctuation:n,postPunctuation:r,emoticons:a}=t.one,o=e,i="",s="",l=Array.from(e);if(a.hasOwnProperty(e.trim()))return{str:e.trim(),pre:i,post:" "};let u=l.length;for(let e=0;e(s=e||"",""))),e=o,i=""),{str:e,pre:i,post:s}}(e,t);return{text:n,pre:r,post:a,tags:new Set}},fromString:function(e,t){const{methods:n,model:r}=t,{splitSentences:a,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=a(e=e||"",t).map((e=>{let n=o(e,r);return n=n.map((e=>i(e,r))),n.forEach((e=>{Vr(e,t)})),n})),e}}}};let Lr={},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","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","ยตg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","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=>{Lr[t]=!0,Jr[t]="Abbreviation",void 0!==e[1]&&(Jr[t]=[Jr[t],e[1]])}))}));var Wr=["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","ex"].reduce(((e,t)=>(e[t]=!0,e)),{});let qr={"!":"ยก","?":"ยฟษ",'"':'โ€œโ€"โโž',"'":"โ€˜โ€›โ›โœโ€™","-":"โ€”โ€“",a:"ยชร€รร‚รƒร„ร…ร รกรขรฃรครฅฤ€ฤฤ‚ฤƒฤ„ฤ…ววŽวžวŸว วกวบวปศ€ศศ‚ศƒศฆศงศบฮ†ฮ‘ฮ”ฮ›ฮฌฮฑฮปะะฐัฆังำำ‘ำ’ำ“ฦ›รฆ",b:"รŸรพฦ€ฦฦ‚ฦƒฦ„ฦ…ษƒฮ’ฮฒฯฯฆะ‘ะ’ะชะฌะฒัŠัŒัขัฃาŒา",c:"ยขยฉร‡รงฤ†ฤ‡ฤˆฤ‰ฤŠฤ‹ฤŒฤฦ†ฦ‡ฦˆศปศผอปอผฯฒฯนฯฝฯพะกัั”า€าาชาซ",d:"รฤŽฤฤฤ‘ฦ‰ฦŠศกฦ‹ฦŒ",e:"รˆร‰รŠร‹รจรฉรชรซฤ’ฤ“ฤ”ฤ•ฤ–ฤ—ฤ˜ฤ™ฤšฤ›ฦศ„ศ…ศ†ศ‡ศจศฉษ†ษ‡ฮˆฮ•ฮžฮฃฮญฮตฮพฯตะ€ะะ•ะตัั‘าผาฝาพาฟำ–ำ—แป…",f:"ฦ‘ฦ’ฯœฯำบำปา’า“ลฟ",g:"ฤœฤฤžฤŸฤ ฤกฤขฤฃฦ“วควฅวฆวงวดวต",h:"ฤคฤฅฤฆฤงฦ•วถศžศŸฮ‰ฮ—ะ‚ะŠะ‹ะะฝั’ั›าขาฃาคาฅาบาปำ‰ำŠ",I:"รŒรรŽร",i:"รฌรญรฎรฏฤจฤฉฤชฤซฤฌฤญฤฎฤฏฤฐฤฑฦ–ฦ—ศˆศ‰ศŠศ‹ฮŠฮฮชฮฏฮนฯŠะ†ะ‡ั–ั—iฬ‡",j:"ฤดฤตวฐศทษˆษ‰ฯณะˆั˜",k:"ฤถฤทฤธฦ˜ฦ™วจวฉฮšฮบะŒะ–ะšะถะบัœาšา›าœาาžาŸา าก",l:"ฤนฤบฤปฤผฤฝฤพฤฟล€ลล‚ฦšฦชว€ววศดศฝฮ™ำ€ำ",m:"ฮœฯบฯปะœะผำำŽ",n:"ร‘รฑลƒล„ล…ล†ล‡ลˆล‰ลŠล‹ฦฦžวธวนศ ศตฮฮ ฮฎฮทฯžะะ˜ะ™ะ›ะŸะธะนะปะฟัาŠา‹ำ…ำ†ำขำฃำคำฅฯ€",o:"ร’ร“ร”ร•ร–ร˜รฐรฒรณรดรตรถรธลŒลลŽลลล‘ฦŸฦ ฦกว‘ว’วชวซวฌวญวพวฟศŒศศŽศศชศซศฌศญศฎศฏศฐศฑฮŒฮ˜ฮŸฮธฮฟฯƒฯŒฯ•ฯ˜ฯ™ฯฌฯดะžะคะพัฒัณำฆำงำจำฉำชำซ",p:"ฦคฮกฯฯทฯธฯผะ ั€าŽารž",q:"ษŠษ‹",r:"ล”ล•ล–ล—ล˜ล™ฦฆศศ‘ศ’ศ“ษŒษะƒะ“ะฏะณัั“าา‘",s:"ลšล›ลœลลžลŸล ลกฦงฦจศ˜ศ™ศฟะ…ั•",t:"ลขลฃลคลฅลฆลงฦซฦฌฦญฦฎศšศ›ศถศพฮ“ฮคฯ„ฯฎะขั‚",u:"ร™รšร›รœรนรบรปรผลจลฉลชลซลฌลญลฎลฏลฐลฑลฒลณฦฏฦฐฦฑฦฒว“ว”ว•ว–ว—ว˜ว™วšว›วœศ”ศ•ศ–ศ—ษ„ฮฐฯ…ฯ‹ฯ",v:"ฮฝัดัตัถัท",w:"ลดลตฦœฯ‰ฯŽฯ–ฯขฯฃะจะฉัˆั‰ักัฟ",x:"ร—ฮงฯ‡ฯ—ฯฐะฅั…าฒาณำผำฝำพำฟ",y:"รรฝรฟลถลทลธฦณฦดศฒศณษŽษฮŽฮฅฮซฮณฯˆฯ’ฯ“ฯ”ะŽะฃัƒั‡ัžัฐัฑาฎาฏาฐาฑำฎำฏำฐำฑำฒำณ",z:"ลนลบลปลผลฝลพฦตฦถศคศฅษ€ฮ–"},Ur={};Object.keys(qr).forEach((function(e){qr[e].split("").forEach((function(t){Ur[t]=e}))}));const Rr=/\//,Qr=/[a-z]\.[a-z]/i,Zr=/[0-9]/,_r=function(e,t){let n=e.normal||e.text||e.machine;const r=t.model.one.aliases;if(r.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(r[n])),Rr.test(n)&&!Qr.test(n)&&!Zr.test(n)){let t=n.split(Rr);t.length<=3&&t.forEach((t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))}))}return e},Xr=/^\p{Letter}+-\p{Letter}+$/u,Yr=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"),Xr.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)},ea=function(e,t){let n=e.docs;for(let r=0;rea(e,_r),machine:e=>ea(e,Yr),normal:e=>ea(e,Vr),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}(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}},sa={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=aa},lib:ia,compute:ra,hooks:["typeahead"]};h.extend(K),h.extend(bn),h.extend(Kt),h.extend(xn),h.extend(ir),h.plugin(be),h.extend(na),h.extend(Pe),h.plugin(p),h.extend(Ve),h.extend(sa),h.extend(De),h.extend(Hn);var la={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",volcano:"volcanoes"},ua={Comparative:"trueยฆbett1f0;arth0ew0in0;er",Superlative:"trueยฆearlier",PresentTense:"trueยฆbests,sounds",Condition:"trueยฆlest,unless",PastTense:"trueยฆbegan,came,d4had,kneel3l2m0sa4we1;ea0sg2;nt;eap0i0;ed;id",Participle:"trueยฆ0:09;a06b01cZdXeat0fSgQhPoJprov0rHs7t6u4w1;ak0ithdra02o2r1;i02uY;k0v0;nd1pr04;ergoJoJ;ak0hHo3;e9h7lain,o6p5t4un3w1;o1um;rn;g,k;ol0reS;iQok0;ught,wn;ak0o1runk;ne,wn;en,wn;ewriNi1uJ;dd0s0;ut3ver1;do4se0t1;ak0h2;do2g1;roG;ne;ast0i7;iv0o1;ne,tt0;all0loBor1;bi3g2s1;ak0e0;iv0o9;dd0;ove,r1;a5eamt,iv0;hos0lu1;ng;e4i3lo2ui1;lt;wn;tt0;at0en,gun;r2w1;ak0ok0;is0;en",Gerund:"trueยฆaccord0be0doin,go0result0stain0;ing",Expression:"trueยฆa0Yb0Uc0Sd0Oe0Mfarew0Lg0FhZjeez,lWmVnToOpLsJtIuFvEw7y0;a5e3i1u0;ck,p;k04p0;ee,pee;a0p,s;!h;!a,h,y;a5h2o1t0;af,f;rd up,w;atsoever,e1o0;a,ops;e,w;hoo,t;ery w06oi0L;gh,h0;! 0h,m;huh,oh;here nPsk,ut tut;h0ic;eesh,hh,it,oo;ff,h1l0ow,sst;ease,s,z;ew,ooey;h1i,mg,o0uch,w,y;h,o,ps;! 0h;hTmy go0wT;d,sh;a7evertheless,o0;!pe;eh,mm;ah,eh,m1ol0;!s;ao,fao;aCeBi9o2u0;h,mph,rra0zzC;h,y;l1o0;r6y9;la,y0;! 0;c1moCsmok0;es;ow;!p hip hoor0;ay;ck,e,llo,y;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;ell;e0h,t cetera,ureka,ww,xcuse me;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;mon,o0;ngratulations,wabunga;a2oo1r0tw,ye;avo,r;!ya;h,m; 1h0ka,las,men,rgh,ye;!a,em,h,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ยฆdick0gre0ones,records;ens","Unit|Noun":"trueยฆcEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,t,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s",Value:"trueยฆa few",Imperative:"trueยฆbewa0come he0;re","Plural|Verb":"trueยฆleaves",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:4Q;a3Tb3Bc2Od2He2Df27g1Zh1Ti1Pj1Nk1Ll1Gm12n0Po0Mp0Cqu0Br02sTtHuCv9w3xiaomi,y1;amaha,m1Bou1w1B;gov,tu3C;a4e2iki1orld trade organizati33;leaRped0O;lls fargo,st1;fie2Hinghou2R;l1rner br3U;gree3Jl street journ2Im1E;an halOeriz2Xisa,o1;dafo2Yl1;kswagMvo;b4kip,n2ps,s1;a tod3Aps;es3Mi1;lev3Fted natio3C;er,s; mobi32aco beRd bOe9gi frida3Lh3im horto3Amz,o1witt3D;shi49y1;ota,s r 05;e 1in lizzy;b3carpen3Jdaily ma3Dguess w2holli0s1w2;mashing pumpki35uprem0;ho;ea1lack eyed pe3Xyr0Q;ch bo3Dtl0;l2n3Qs1xas instrumen1U;co,la m1F;efoni0Kus;a8cientology,e5ieme2Ymirnoff,np,o3pice gir6quare0Ata1ubaru;rbuc1to34;ks;ny,undgard1;en;a2x pisto1;ls;g1Wrs;few2Minsbur31lesfor03msu2E;adiohead,b8e4o1yana3C;man empi1Xyal 1;b1dutch she4;ank;a3d 1max,vl20;bu1c2Ahot chili peppe2Ylobst2N;ll;ders dige1Ll madrid;c,s;ant3Aizn2Q;a8bs,e5fiz2Ihilip4i3r1;emier 1udenti1D;leagTo2K;nk floyd,zza hut; morrBs;psi2tro1uge0E;br33chi0Tn33;!co;lant2Un1yp16; 2ason27da2P;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0QvZ;l,s;c,st1Otflix,w1; 1sweek;kids on the block,york0D;a,c;nd22s2t1;ional aca2Po,we0U;a,c02d0S;aDcdonalCe9i6lb,o3tv,y1;spa1;ce;b1Tnsanto,ody blu0t1;ley cr1or0T;ue;c2t1;as,subisO;helin,rosoft;dica2rcedes benz,talli1;ca;id,re;ds;cs milk,tt19z24;a3e1g,ittle caesa1P; ore09novo,x1;is,mark,us; 1bour party;pres0Dz boy;atv,fc,kk,lm,m1od1O;art;iffy lu0Roy divisi0Jpmorgan1sa;! cha09;bm,hop,k3n1tv;g,te1;l,rpol;ea;a5ewlett pack1Vi3o1sbc,yundai;me dep1n1P;ot;tac1zbollah;hi;lliburt08sbro;eneral 6hq,ithub,l5mb,o2reen d0Ou1;cci,ns n ros0;ldman sachs,o1;dye1g0H;ar;axo smith kli04encoW;electr0Nm1;oto0Z;a5bi,c barcelo4da,edex,i2leetwood m03o1rito l0G;rd,xcY;at,fa,nancial1restoZ; tim0;na;cebook,nnie mae;b0Asa,u3xxon1; m1m1;ob0J;!rosceptics;aiml0De5isney,o4u1;nkin donu2po0Zran dur1;an;ts;j,w jon0;a,f lepp12ll,peche mode,r spieg02stiny's chi1;ld;aJbc,hFiDloudflaCnn,o3r1;aigsli5eedence clearwater reviv1ossra09;al;c7inba6l4m1o0Est09;ca2p1;aq;st;dplSg1;ate;se;a c1o chanQ;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil a,na daily;r1y;on;d2pital o1rls jr;ne;bury,ill1;ac;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;cardi,idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser busDol,ppleAr6s4u3v2y1;er;is,on;di,todesk;hland o1sociated E;il;b3g2m1;co;os;ys; compu1be0;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ยฆits,my,our0thy;!s","Noun|Verb":"trueยฆ0:9W;1:AA;2:96;3:A3;4:9R;5:A2;6:9K;7:8N;8:7L;9:A8;A:93;B:8D;C:8X;a9Ob8Qc7Id6Re6Gf5Sg5Hh55i4Xj4Uk4Rl4Em40n3Vo3Sp2Squ2Rr21s0Jt02u00vVwGyFzD;ip,oD;ne,om;awn,e6Fie68;aOeMhJiHoErD;ap,e9Oink2;nd0rDuC;kDry,sh5Hth;!shop;ck,nDpe,re,sh;!d,g;e86iD;p,sD;k,p0t2;aDed,lco8W;r,th0;it,lk,rEsDt4ve,x;h,te;!ehou1ra9;aGen5FiFoD;iDmAte,w;ce,d;be,ew,sA;cuum,l4B;pDr7;da5gra6Elo6A;aReQhrPiOoMrGuEwiDy5Z;n,st;nDrn;e,n7O;aGeFiEoDu6;t,ub2;bu5ck4Jgg0m,p;at,k,nd;ck,de,in,nsDp,v7J;f0i8R;ll,ne,p,r4Yss,t94uD;ch,r;ck,de,e,le,me,p,re;e5Wow,u6;ar,e,ll,mp0st,xt;g,lDng2rg7Ps5x;k,ly;a0Sc0Ne0Kh0Fi0Dk0Cl0Am08n06o05pXquaBtKuFwD;ea88iD;ng,pe,t4;bGit,m,ppErD;fa3ge,pri1v2U;lDo6S;e6Py;!je8;aMeLiKoHrEuDy2;dy,ff,mb2;a85eEiDo5Pugg2;ke,ng;am,ss,t4;ckEop,p,rD;e,m;ing,pi2;ck,nk,t4;er,m,p;ck,ff,ge,in,ke,lEmp,nd,p2rDte,y;!e,t;k,l;aJeIiHlGoFrDur,y;ay,e56inDu3;g,k2;ns8Bt;a5Qit;ll,n,r87te;ed,ll;m,n,rk;b,uC;aDee1Tow;ke,p;a5Je4FiDo53;le,rk;eep,iDou4;ce,p,t;ateboa7Ii;de,gnDl2Vnk,p,ze;!al;aGeFiEoDuff2;ck,p,re,w;ft,p,v0;d,i3Ylt0;ck,de,pe,re,ve;aEed,nDrv1It;se,t2N;l,r4t;aGhedu2oBrD;aEeDibb2o3Z;en,w;pe,t4;le,n,r2M;cDfegua72il,mp2;k,rifi3;aZeHhy6LiGoEuD;b,in,le,n,s5X;a6ck,ll,oDpe,u5;f,t;de,ng,ot,p,s1W;aTcSdo,el,fQgPje8lOmMnLo17pJque6sFturn,vDwa6V;eDi27;al,r1;er74oFpe8tEuD;lt,me;!a55;l71rt;air,eaDly,o53;l,t;dezvo2Zt;aDedy;ke,rk;ea1i4G;a6Iist0r5N;act6Yer1Vo71uD;nd,se;a38o6F;ch,s6G;c1Dge,iEke,lly,nDp1Wt1W;ge,k,t;n,se;es6Biv0;a04e00hYiXlToNrEsy4uD;mp,n4rcha1sh;aKeIiHoDu4O;be,ceFdu3fi2grDje8mi1p,te6;amDe6W;!me;ed,ss;ce,de,nt;sDy;er6Cs;cti3i1;iHlFoEp,re,sDuCw0;e,i5Yt;l,p;iDl;ce,sh;nt,s5V;aEce,e32uD;g,mp,n7;ce,nDy;!t;ck,le,n17pe,tNvot;a1oD;ne,tograph;ak,eFnErDt;fu55mA;!c32;!l,r;ckJiInHrFsEtDu1y;ch,e9;s,te;k,tD;!y;!ic;nt,r,se;!a7;bje8ff0il,oErDutli3Qver4B;bAd0ie9;ze;a4ReFoDur1;d,tD;e,i3;ed,gle8tD;!work;aMeKiIoEuD;rd0;ck,d3Rld,nEp,uDve;nt,th;it5EkD;ey;lk,n4Brr5CsDx;s,ta2B;asuBn4UrDss;ge,it;il,nFp,rk3WsEtD;ch,t0;h,k,t0;da5n0oeuvB;aLeJiHoEuD;mp,st;aEbby,ck,g,oDve;k,t;d,n;cDe,ft,mAnIst;en1k;aDc0Pe4vK;ch,d,k,p,se;bFcEnd,p,t4uD;gh,n4;e,k;el,o2U;eEiDno4E;ck,d,ll,ss;el,y;aEo1OuD;i3mp;m,zz;mpJnEr46ssD;ue;c1Rdex,fluGha2k,se2HteDvoi3;nt,rD;e6fa3viD;ew;en3;a8le2A;aJeHiGoEuD;g,nt;l3Ano2Dok,pDr1u1;!e;ghli1Fke,nt,re,t;aDd7lp;d,t;ck,mGndFrEsh,tDu9;ch,e;bo3Xm,ne4Eve6;!le;!m0;aMear,ift,lKossJrFuD;arDe4Alp,n;antee,d;aFiEoDumb2;uCwth;ll,nd,p;de,sp;ip;aBoDue;ss,w;g,in,me,ng,s,te,ze;aZeWiRlNoJrFuD;ck,el,nDss,zz;c38d;aEoDy;st,wn;cDgme,me,nchi1;tuB;cFg,il,ld,rD;ce,e29mDwa31;!at;us;aFe0Vip,oDy;at,ck,od,wD;!er;g,ke,me,re,sh,vo1E;eGgFlEnDre,sh,t,x;an3i0Q;e,m,t0;ht,uB;ld;aEeDn3;d,l;r,tuB;ce,il,ll,rm,vo2W;cho,d7ffe8nMsKxFyeD;!baD;ll;cGerci1hFpDtra8;eriDo0W;en3me9;au6ibA;el,han7u1;caDtima5;pe;count0d,vy;a01eSiMoJrEuDye;b,el,mp,pli2X;aGeFiEoD;ne,p;ft,ll,nk,p,ve;am,ss;ft,g,in;cEd7ubt,wnloD;ad;k,u0E;ge6p,sFt4vD;e,iDor3;de;char7gui1h,liEpD;at4lay,u5;ke;al,bKcJfeIlGmaCposAsEtaD;il;e07iD;gn,re;ay,ega5iD;ght;at,ct;li04rea1;a5ut;b,ma7n3rDte;e,t;a0Eent0Dh06irc2l03oKrFuD;be,e,rDt;b,e,l,ve;aGeFoEuDy;sh;p,ss,wd;dAep;ck,ft,sh;at,de,in,lTmMnFordina5py,re,st,uDv0;gh,nDp2rt;s01t;ceHdu8fli8glomeIsFtDveN;a8rD;a6ol;e9tru8;ct;ntDrn;ra5;bHfoGmFpD;leDouCromi1;me9;aCe9it,u5;rt;at,iD;ne;lap1oD;r,ur;aEiDoud,ub;ck,p;im,w;aEeDip;at,ck,er;iGllen7nErD;ge,m,t;ge,nD;el;n,r;er,re;ke,ll,mp,noe,pGrXsFtEuDve;se,ti0I;alog,ch;h,t;!tuB;re;a03eZiXlToPrHuEyD;pa11;bb2ck2dgEff0mp,rDst,zz;den,n;et;anJeHiFoadEuD;i1sh;ca6;be,d7;ge;aDed;ch,k;ch,d;aFg,mb,nEoDrd0tt2x,ycott;k,st,t;d,e;rd,st;aFeCiDoYur;nk,tz;nd;me;as,d,ke,nd,opsy,tD;!ch,e;aFef,lt,nDt;d,efA;it;r,t;ck,il,lan3nIrFsEtt2;le;e,h;!gDk;aDe;in;!d,g,k;bu1c05dZge,iYlVnTppQrLsIttGucEwaD;rd;tiD;on;aDempt;ck;k,sD;i6ocia5;st;chFmD;!oD;ur;!iD;ve;eEroa4;ch;al;chDg0sw0;or;aEt0;er;rm;d,m,r;dreHvD;an3oD;ca5;te;ce;ss;cDe,he,t;eFoD;rd,u9;nt;nt,ss;se",Actor:"trueยฆ0:7B;1:7G;2:6A;3:7F;4:7O;5:7K;a6Nb62c4Ud4Be41f3Sg3Bh30i2Uj2Qkin2Pl2Km26n1Zo1Sp0Vqu0Tr0JsQtJuHvEw8yo6;gi,ut6;h,ub0;aAe9i8o7r6;estl0it0;m2rk0;fe,nn0t2Bza2H;atherm2ld0;ge earn0it0nder0rri1;eter7i6oyF;ll5Qp,s3Z;an,ina2U;n6s0;c6Uder03;aoisea23e9herapi5iktok0o8r6ut1yco6S;a6endseLo43;d0mp,nscri0Bvel0;ddl0u1G;a0Qchn7en6na4st0;ag0;i3Oo0D;aiXcUeRhPiMki0mu26oJpGquaFtBu7wee6;p0theart;lt2per7r6;f0ge6Iviv1;h6inten0Ist5Ivis1;ero,um2;a8ep7r6;ang0eam0;bro2Nc2Ofa2Nmo2Nsi20;ff0tesm2;tt0;ec7ir2Do6;kesp59u0M;ia5Jt3;l7me6An,rcere6ul;r,ss;di0oi5;n7s6;sy,t0;g0n0;am2ephe1Iow6;girl,m2r2Q;cretInior cit3Fr6;gea4v6;a4it1;hol4Xi7reen6ulpt1;wr2C;e01on;l1nt;aEe9o8u6;l0nn6;er up,ingE;g40le mod3Zof0;a4Zc8fug2Ppo32searQv6;ere4Uolution6;ary;e6luYru22;ptio3T;bbi,dic5Vpp0;arter6e2Z;back;aYeWhSiRlOoKr8sycho7u6;nk,p31;logi5;aGeDiBo6;d9fess1g7ph47s6;pe2Ktitu51;en6ramm0;it1y;igy,uc0;est4Nme mini0Unce6s3E;!ss;a7si6;de4;ch0;ctiti39nk0P;dca0Oet,li6pula50rnst42;c2Itic6;al scie6i2;nti5;a6umb0;nn0y6;er,ma4Lwright;lgrim,one0;a8iloso7otogra7ra6ysi1V;se;ph0;ntom,rmaci5;r6ssi1T;form0s4O;i3El,nel3Yr8st1tr6wn;i6on;arWot;ent4Wi42tn0;ccupa4ffBp8r7ut6;ca5l0B;ac4Iganiz0ig2Fph2;er3t6;i1Jomet6;ri5;ic0spring;aBe9ie4Xo7u6;n,rser3J;b6mad,vi4V;le2Vo4D;i6mesis,phew;ce,ghb1;nny,rr3t1X;aEeDiAo7u6yst1Y;m8si16;der3gul,m7n6th0;arDk;!my;ni7s6;f02s0Jt0;on,st0;chan1Qnt1rcha4;gi9k0n8rtyr,t6y1;e,riar6;ch;ag0iac;ci2stra3I;a7e2Aieutena4o6;rd,s0v0;bor0d7ndlo6ss,urea3Fwy0ym2;rd;!y;!s28;e8o7u6;ggl0;gg0urna2U;st0;c3Hdol,llu3Ummigra4n6; l9c1Qfa4habi42nov3s7ve6;nt1stig3;pe0Nt6;a1Fig3ru0M;aw;airFeBistoAo8u6ygie1K;man6sba2H;!ita8;bo,st6usekN;age,e3P;ri2;ir,r6;m7o6;!ine;it;dress0sty2C;aLeIhostGirl26ladi3oCrand7u6;e5ru;c9daug0Jfa8m7pa6s2Y;!re4;a,o6;th0;hi1B;al7d6lf0;!de3A;ie,k6te26;eep0;!wr6;it0;isha,n6;i6tl04;us;mbl0rden0;aDella,iAo7r6;eela2Nie1P;e,re6ster pare4;be1Hm2r6st0;unn0;an2ZgZlmm17nanci0r6tt0;e6st la2H; marsh2OfigXm2;rm0th0;conoEdDlectriCm8n7x6;amin0cellency,i2A;emy,trepreneur,vironmenta1J;c8p6;er1loye6;e,r;ee;ci2;it1;mi5;aKeBi8ork,ri7u6we02;de,tche2H;ft0v0;ct3eti7plom2Hre6va;ct1;ci2ti2;aDcor3fencCi0InAput9s7tectLvel6;op0;ce1Ge6ign0;rt0;ee,y;iz6;en;em2;c1Ml0;d8nc0redev7ug6;ht0;il;!dy;a06e04fo,hXitizenWlToBr9u6;r3stomer6;! representat6;ive;e3it6;ic;lJmGnAord9rpor1Nu7w6;boy,ork0;n6ri0;ciTte1Q;in3;fidantAgressSs9t6;e0Kr6;ibut1o6;ll0;tab13ul1O;!e;edi2m6pos0rade;a0EeQissi6;on0;leag8on7um6;ni5;el;ue;e6own;an0r6;ic,k;!s;a9e7i6um;ld;erle6f;ad0;ir7nce6plFract0;ll1;m2wI;lebri6o;ty;dBptAr6shi0;e7pe6;nt0;r,t6;ak0;ain;et;aMeLiJlogg0oErBu6;dd0Fild0rgl9siness6;m2p7w6;om2;ers05;ar;i7o6;!k0th0;cklay0de,gadi0;hemi2oge8y6;!frie6;nd;ym2;an;cyc6sR;li5;atbox0ings;by,nk0r6;b0on7te6;nd0;!e07;c04dWge4nQpLrHsFtAu7yatull6;ah;nt7t6;h1oG;!ie;h8t6;e6orney;nda4;ie5le6;te;sis00tron6;aut,om0;chbis8isto7tis6;an,t;crU;hop;ost9p6;ari6rentiS;ti6;on;le;a9cest1im3nou8y6;bo6;dy;nc0;ly5rc6;hi5;mi8v6;entur0is1;er;ni7r6;al;str3;at1;or;counBquaintanArob9t6;ivi5or,re6;ss;st;at;ce;ta4;nt","Adj|Noun":"trueยฆ0:16;a1Db17c0Ud0Re0Mf0Dg0Ah08i06ju05l02mWnUoSpNrIsBt7u4v1watershed;a1ision0Z;gabo4nilla,ria1;b0Vnt;ndergr1pstairs;adua14ou1;nd;a3e1oken,ri0;en,r1;min0rori13;boo,n;age,e5ilv0Flack,o3quat,ta2u1well;bordina0Xper5;b0Lndard;ciali0Yl1vereign;e,ve16;cret,n1ri0;ior;a4e2ou1ubbiL;nd,tiY;ar,bBl0Wnt0p1side11;resent0Vublican;ci0Qsh;a4eriodic0last0Zotenti0r1;emi2incip0o1;!fession0;er,um;rall4st,tie0U;ff1pposi0Hv0;ens0Oi0C;agg01ov1uts;el;a5e3iniatJo1;bi01der07r1;al,t0;di1tr0N;an,um;le,riG;attOi2u1;sh;ber0ght,qC;stice,veniT;de0mpressioYn1;cumbe0Edividu0no0Dsta0Eterim;alf,o1umdrum;bby,melF;en2old,ra1;ph0Bve;er0ious;a7e5i4l3u1;git03t1;ure;uid;ne;llow,m1;aFiL;ir,t,vo1;riOuriO;l3p00x1;c1ecutUpeV;ess;d1iK;er;ar2e1;mographUrivO;k,l2;hiGlassSo2rude,unn1;ing;m5n1operK;creCstitueOte2vertab1;le;mpor1nt;ary;ic,m2p1;anion,lex;er2u1;ni8;ci0;al;e5lank,o4r1;i2u1;te;ef;ttom,urgeois;st;cadem9d6l2ntarct9r1;ab,ct8;e3tern1;at1;ive;rt;oles1ult;ce1;nt;ic","Adj|Past":"trueยฆ0:4Q;1:4C;2:4H;3:4E;a44b3Tc36d2Je29f20g1Wh1Si1Jj1Gkno1Fl1Am15n12o0Xp0Mqu0Kr08sLtEuAv9w4yellow0;a7ea6o4rinkl0;r4u3Y;n,ri0;k31th3;rp0sh0tZ;ari0e1O;n5p4s0;d1li1Rset;cov3derstood,i4;fi0t0;a8e3Rhr7i6ouTr4urn0wi4C;a4imm0ou2G;ck0in0pp0;ed,r0;eat2Qi37;m0nn0r4;get0ni2T;aOcKeIhGimFm0Hoak0pDt7u4;bsid3Ogge44s4;pe4ta2Y;ct0nd0;a8e7i2Eok0r5u4;ff0mp0nn0;ength2Hip4;ed,p0;am0reotyp0;in0t0;eci4ik0oH;al3Efi0;pRul1;a4ock0ut;d0r0;a4c1Jle2t31;l0s3Ut0;a6or5r4;at4e25;ch0;r0tt3;t4ut0;is2Mur1;aEe5o4;tt0;cAdJf2Bg9je2l8m0Knew0p7qu6s4;eTpe2t4;or0ri2;e3Dir0;e1lac0;at0e2Q;i0Rul1;eiv0o4ycl0;mme2Lrd0v3;in0lli0ti2A;a4ot0;li28;aCer30iBlAo9r5u4;mp0zzl0;e6i2Oo4;ce2Fd4lo1Anou30pos0te2v0;uc0;fe1CocCp0Iss0;i2Kli1L;ann0e2CuS;ck0erc0ss0;ck0i2Hr4st0;allLk0;bse7c6pp13rgan2Dver4;lo4whelm0;ok0;cupi0;rv0;aJe5o4;t0uri1A;ed0gle2;a6e5ix0o4ut0ys1N;di1Nt15u26;as0Clt0;n4rk0;ag0ufact0A;e6i5o4;ad0ck0st,v0;cens0m04st0;ft,v4;el0;tt0wn;a5o15u4;dg0s1B;gg0;llumSmpAn4sol1;br0cre1Ldebt0f8jZspir0t5v4;it0olv0;e4ox0Y;gr1n4re23;d0si15;e2l1o1Wuri1;li0o01r4;ov0;a6e1o4um03;ok0r4;ri0Z;mm3rm0;i6r5u4;a1Bid0;a0Ui0Rown;ft0;aAe9i8l6oc0Ir4;a4i0oz0Y;ctHg19m0;avo0Ju4;st3;ni08tt0x0;ar0;d0il0sc4;in1;dCl1mBn9quipp0s8x4;agger1c6p4te0T;a0Se4os0;ct0rie1D;it0;cap0tabliZ;cha0XgFha1As4;ur0;a0Zbarra0N;i0Buc1;aMeDi5r4;a01i0;gni08miniSre2s4;a9c6grun0Ft4;o4re0Hu17;rt0;iplWou4;nt0r4;ag0;bl0;cBdRf9l8p7ra6t5v4;elop0ot0;ail0ermQ;ng0;re07;ay0ight0;e4in0o0M;rr0;ay0enTor1;m5t0z4;ed,zl0;ag0p4;en0;aPeLhIlHo9r6u4;lt4r0stom03;iv1;a5owd0u4;sh0;ck0mp0;d0loAm7n4ok0v3;centr1f5s4troC;id3olid1;us0;b5pl4;ic1;in0;r0ur0;assi9os0utt3;ar5i4;ll0;g0m0;lebr1n6r4;ti4;fi0;tralJ;g0lcul1;aDewild3iCl9o7r5urn4;ed,t;ok4uis0;en;il0r0t4und;tl0;e5i4;nd0;ss0;as0;ffl0k0laMs0tt3;bPcNdKfIg0lFmaz0nDppBrm0ss9u5wa4;rd0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;a5leg0t3;er0;rm0;fe2;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;and5so4;rb0;on0;ed",Singular:"trueยฆ0:5J;1:5H;2:4W;3:4S;4:52;5:57;6:5L;7:56;8:5B;a52b4Lc3Nd35e2Xf2Og2Jh28in24j23k22l1Um1Ln1Ho1Bp0Rqu0Qr0FsZtMuHvCw9x r58yo yo;a9ha3Po3Q;f3i4Rt0Gy9;! arou39;arCeAideo ga2Qo9;cabu4Jl5C;gOr9t;di4Zt1Y;iety,ni4P;nBp30rAs 9;do43s5E;bani1in0;coordinat3Ader9;estima1to24we41; rex,aKeJhHiFoErBuAv9;! show;m2On2rntLto1D;agedy,ib9o4E;e,u9;n0ta46;ni1p2rq3L;c,er,m9;etF;ing9ree26;!y;am,mp3F;ct2le6x return;aNcMeKhor4QiJkHoGpin off,tDuBy9;ll9ner7st4T;ab2X;b9i1n28per bowl,rro1X;st3Ltot0;atAipe2Go1Lrate7udent9;! lo0I;i39u1;ft ser4Lmeo1I;elet5i9;ll,r3V;b38gn2Tte;ab2Jc9min3B;t,urity gua2N;e6ho2Y;bbatic0la3Jndwi0Qpi5;av5eDhetor2iAo9;de6om,w;tAv9;erb2C;e,u0;bDcBf9publ2r10spi1;er9orm3;e6r0;i9ord label;p2Ht0;a1u46;estion mark,ot2F;aPeMhoLiIlGoErAu9yram1F;ddi3HpErpo1Js3J;eBo9;bl3Zs9;pe3Jta1;dic1Rmi1Fp1Qroga8ss relea1F;p9rt0;py;a9ebisci1;q2Dte;cn2eAg9;!gy;!r;ne call,tocoK;anut,dAr9t0yo1;cen3Jsp3K;al,est0;nop4rAt9;e,hog5;adi11i2V;atme0bj3FcBpia1rde0thers,utspok5ve9wn3;n,r9;ti0Pview;cuAe9;an;pi3;arBitAot9umb3;a2Fhi2R;e,ra1;cot2ra8;aFeCiAo9ur0;nopo4p18rni2Nsq1Rti36uld;c,li11n0As9tt5;chief,si34;dAnu,t9;al,i3;al,ic;gna1mm0nd15rsupi0te9yf4;ri0;aDegCiBu9;ddi1n9;ch;me,p09; Be0M;bor14y9; 9er;up;eyno1itt5;el4ourn0;cBdices,itia8ni25sAtel0Lvert9;eb1J;e28titu1;en8i2T;aIeEighDoAu9;man right,s22;me9rmoFsp1Ftb0K;! r9;un; scho0YriY;a9i1N;d9v5; start,pho9;ne;ndful,sh brown,v5ze;aBelat0Ilaci3r9ul4yp1S;an9enadi3id;a1Cd slam,ny;df4r9;l2ni1I;aGeti1HiFlu1oCrAun9;er0;ee market,i9onti3;ga1;l4ur9;so9;me;ePref4;br2mi4;conoFffi7gg,lecto0Rmbas1EnCpidem2s1Zth2venBxAyel9;id;ampZempl0Nte6;i19t;er7terp9;ri9;se;my;eLiEoBr9ump tru0U;agonf4i9;er,ve thru;cAg7i4or,ssi3wn9;side;to0EumenE;aEgniDnn3sAvide9;nd;conte6incen8p9tri11;osi9;ti0C;ta0H;le0X;athBcAf9ni0terre6;ault 05err0;al,im0;!b9;ed;aWeThMiLlJoDr9;edit caBuc9;ib9;le;rd;efficDke,lCmmuniqLnsApi3rr0t0Xus9yo1;in;erv9uI;ato02;ic,lQ;ie6;er7i9oth;e6n2;ty,vil wM;aDeqCick5ocoBr9;istmas car9ysanthemum;ol;la1;ue;ndeli3racteri9;st2;iAllEr9;e0tifica1;liZ;hi3nFpErCt9ucus;erpi9hedr0;ll9;ar;!bohyd9ri3;ra1;it0;aAe,nib0t9;on;l,ry;aMeLiop2leJoHrDu9;nny,r9tterf4;g9i0;la9;ry;eakAi9;ck;fa9throB;st;dy,ro9wl;ugh;mi9;sh;an,l4;nkiArri3;er;ng;cSdMlInFppeti1rDsBtt2utop9;sy;ic;ce6pe9;ct;r9sen0;ay;ecAoma4tiA;ly;do1;i5l9;er7y;gy;en; hominDjAvan9;tage;ec8;ti9;ve;em;cCeAqui9;tt0;ta1;te;iAru0;al;de6;nt","Person|Noun":"trueยฆa0Eb07c03dWeUfQgOhLjHkiGlFmCnBolive,p7r4s3trini06v1wa0;ng,rd,tts;an,enus,iol0;a,et;ky,onPumm09;ay,e1o0uby;bin,d,se;ed,x;a2e1o0;l,tt04;aLnJ;dYge,tR;at,orm;a0eloW;t0x,ya;!s;a9eo,iH;ng,tP;a2e1o0;lGy;an,w3;de,smi4y;a0erb,iOolBuntR;ll,z0;el;ail,e0iLuy;ne;a1ern,i0lo;elds,nn;ith,n0;ny;a0dEmir,ula,ve;rl;a4e3i1j,ol0;ly;ck,x0;ie;an,ja;i0wn;sy;am,h0liff,rystal;a0in,ristian;mbers,ri0;ty;a4e3i2o,r0ud;an0ook;dy;ll;nedict,rg;k0nks;er;l0rt;fredo,ma","Actor|Verb":"trueยฆaCb8c5doctor,engineAfool,g3host,judge,m2nerd,p1recruit,scout,ushAvolunteAwi0;mp,tneA;arent,ilot;an,ime;eek,oof,r0uide;adu8oom;ha1o0;ach,nscript,ok;mpion,uffeur;o2u0;lly,tch0;er;ss;ddi1ffili0rchite1;ate;ct",MaleName:"trueยฆ0:H6;1:FZ;2:DS;3:GQ;4:CZ;5:FV;6:GM;7:FP;8:GW;9:ET;A:C2;B:GD;aF8bE1cCQdBMeASfA1g8Yh88i7Uj6Sk6Bl5Mm48n3So3Ip33qu31r26s1Et0Ru0Ov0CwTxSyHzC;aCor0;cChC1karia,nAT;!hDkC;!aF6;!ar7CeF5;aJevgenBSoEuC;en,rFVsCu3FvEF;if,uf;nDs6OusC;ouf,s6N;aCg;s,tC;an,h0;hli,nCrosE1ss09;is,nC;!iBU;avi2ho5;aPeNiDoCyaEL;jcieBJlfgang,odrFutR;lFnC;f8TsC;lCt1;ow;bGey,frEhe4QlC;aE5iCy;am,e,s;ed8iC;d,ed;eAur;i,ndeD2rn2sC;!l9t1;lDyC;l1ne;lDtC;!er;aCHy;aKernDAiFladDoC;jteB0lodymyr;!iC;mFQsDB;cFha0ktBZnceDrgCOvC;a0ek;!nC;t,zo;!e4StBV;lCnC7sily;!entC;in9J;ghE2lCm70nax,ri,sm0;riCyss87;ch,k;aWeRhNiLoGrEuDyC;!l2roEDs1;n6r6E;avD0eCist0oy,um0;ntCRvBKy;bFdAWmCny;!asDmCoharu;aFFie,y;!z;iA6y;mCt4;!my,othy;adEeoDia0SomC;!as;!dor91;!de4;dFrC;enBKrC;anBJeCy;ll,nBI;!dy;dgh,ha,iCnn2req,tsu5V;cDAka;aYcotWeThPiMlobod0oKpenc2tEurDvenAEyCzym1;ed,lvest2;aj,e9V;anFeDuC;!aA;fan17phEQvCwaA;e77ie;!islaCl9;v,w;lom1rBuC;leymaDHta;dDgmu9UlCm1yabonga;as,v8B;!dhart8Yn9;aEeClo75;lCrm0;d1t1;h9Jne,qu1Jun,wn,yne;aDbastiEDk2Yl5Mpp,rgCth,ymoCU;e1Dio;m4n;!tC;!ie,y;eDPlFmEnCq67tosCMul;dCj2UtiA5;e01ro;!iATkeB6mC4u5;!ik,vato9K;aZeUheC8iRoGuDyC;an,ou;b99dDf4peAssC;!elEG;ol00y;an,bLc7MdJel,geIh0lHmGnEry,sDyC;!ce;ar7Ocoe,s;!aCnBU;ld,n;an,eo;a7Ef;l7Jr;e3Eg2n9olfo,riC;go;bBNeDH;cCl9;ar87c86h54kCo;!ey,ie,y;cFeA3gDid,ubByCza;an8Ln06;g85iC;naC6s;ep;ch8Kfa5hHin2je8HlGmFndEoHpha5sDul,wi36yC;an,mo8O;h9Im4;alDSol3O;iD0on;f,ph;ul;e9CinC;cy,t1;aOeLhilJiFrCyoG;aDeC;m,st1;ka85v2O;eDoC;tr;r8GtC;er,ro;!ipCl6H;!p6U;dCLrcy,tC;ar,e9JrC;!o7;b9Udra8So9UscAHtri62ulCv8I;!ie,o7;ctav6Ji2lImHndrBRrGsDtCum6wB;is,to;aDc6k6m0vCwaBE;al79;ma;i,vR;ar,er;aDeksandr,ivC;er,i2;f,v;aNeLguyBiFoCu3O;aDel,j4l0ma0rC;beAm0;h,m;cFels,g5i9EkDlC;es,s;!au,h96l78olaC;!i,y;hCkCol76;ol75;al,d,il,ls1vC;ilAF;hom,tC;e,hC;anCy;!a5i5;aYeViLoGuDyC;l4Nr1;hamDr84staC;fa,p6E;ed,mG;di10e,hamEis4JntDritz,sCussa;es,he;e,y;ad,ed,mC;ad,ed;cGgu5hai,kFlEnDtchC;!e8O;a9Pik;house,o7t1;ae73eC3ha8Iolaj;ah,hDkC;!ey,y;aDeC;al,l;el,l;hDlv3rC;le,ri8Ev4T;di,met;ay0c00gn4hWjd,ks2NlTmadZnSrKsXtDuric7VxC;imilBKwe8B;eHhEi69tCus,y69;!eo,hCia7;ew,i67;eDiC;as,eu,s;us,w;j,o;cHiGkFlEqu8Qsha83tCv3;iCy;!m,n;in,on;el,o7us;a6Yo7us;!elCin,o7us;!l8o;frAEi5Zny,u5;achDcoCik;lm;ai,y;amDdi,e5VmC;oud;adCm6W;ou;aulCi9P;ay;aWeOiMloyd,oJuDyC;le,nd1;cFdEiDkCth2uk;a7e;gi,s,z;ov7Cv6Hw6H;!as,iC;a6Een;g0nn52renDuCvA4we7D;!iS;!zo;am,n4oC;n5r;a9Yevi,la5KnHoFst2thaEvC;eCi;nte;bo;nCpo8V;!a82el,id;!nC;aAy;mEnd1rDsz73urenCwr6K;ce,t;ry,s;ar,beAont;aOeIhalHiFla4onr63rDu5SylC;e,s;istCzysztof;i0oph2;er0ngsl9p,rC;ilA9k,ollos;ed,id;en0iGnDrmCv4Z;it;!dDnCt1;e2Ny;ri4Z;r,th;cp2j4mEna8BrDsp6them,uC;ri;im,l;al,il;a03eXiVoFuC;an,lCst3;en,iC;an,en,o,us;aQeOhKkub4AnIrGsDzC;ef;eDhCi9Wue;!ua;!f,ph;dCge;i,on;!aCny;h,s,th6J;anDnC;!ath6Hie,n72;!nC;!es;!l,sCy;ph;o,qu3;an,mC;!i,m6V;d,ffFns,rCs4;a7JemDmai7QoCry;me,ni1H;i9Dy;!e73rC;ey,y;cKdBkImHrEsDvi2yC;dBs1;on,p2;ed,oDrCv67;e6Qod;d,s61;al,es5Wis1;a,e,oCub;b,v;ob,qu13;aTbNchiMgLke53lija,nuKonut,rIsEtCv0;ai,suC;ki;aDha0i8XmaCsac;el,il;ac,iaC;h,s;a,vinCw3;!g;k,nngu6X;nac1Xor;ka;ai,rahC;im;aReLoIuCyd6;beAgGmFsC;eyDsC;a3e3;in,n;ber5W;h,o;m2raDsse3wC;a5Pie;c49t1K;a0Qct3XiGnDrC;beAman08;dr7VrC;iCy2N;!k,q1R;n0Tt3S;bKlJmza,nIo,rEsDyC;a5KdB;an,s0;lEo67r2IuCv9;hi5Hki,tC;a,o;an,ey;k,s;!im;ib;a08e00iUlenToQrMuCyorgy;iHnFsC;!taC;f,vC;!e,o;n6tC;er,h2;do,lC;herDlC;auCerQ;me;aEegCov2;!g,orC;!io,y;dy,h7C;dfr9nza3XrDttfC;ri6C;an,d47;!n;acoGlEno,oCuseppe;rgiCvan6O;!o,s;be6Ies,lC;es;mo;oFrC;aDha4HrC;it,y;ld,rd8;ffErgC;!e7iCy;!os;!r9;bElBrCv3;eCla1Nr4Hth,y;th;e,rC;e3YielC;!i4;aXeSiQlOorrest,rCyod2E;aHedFiC;edDtC;s,z;ri18;!d42eri11riC;ck,k;nCs2;cEkC;ie,lC;in,yn;esLisC;!co,z3M;etch2oC;ri0yd;d5lConn;ip;deriFliEng,rC;dinaCg4nan0B;nd8;pe,x;co;bCdi,hd;iEriC;ce,zC;io;an,en,o;benez2dZfrYit0lTmMnJo3rFsteb0th0ugenEvCymBzra;an,eCge4D;ns,re3K;!e;gi,iDnCrol,v3w3;est8ie,st;cCk;!h,k;o0DriCzo;co,qC;ue;aHerGiDmC;aGe3A;lCrh0;!iC;a10o,s;s1y;nu5;beAd1iEliDm2t1viCwood;n,s;ot28s;!as,j5Hot,sC;ha;a3en;!dGg6mFoDua2QwC;a2Pin;arC;do;oZuZ;ie;a04eTiOmitrNoFrag0uEwDylC;an,l0;ay3Hig4D;a3Gdl9nc0st3;minFnDri0ugCvydGy2S;!lF;!a36nCov0;e1Eie,y;go,iDykC;as;cCk;!k;i,y;armuFetDll1mitri7neCon,rk;sh;er,m6riC;ch;id;andLepak,j0lbeAmetri4nIon,rGsEvDwCxt2;ay30ey;en,in;hawn,moC;nd;ek,riC;ck;is,nC;is,y;rt;re;an,le,mKnIrEvC;e,iC;!d;en,iEne0PrCyl;eCin,yl;l45n;n,o,us;!iCny;el,lo;iCon;an,en,on;a0Fe0Ch03iar0lRoJrFuDyrC;il,us;rtC;!is;aEistC;iaCob12;no;ig;dy,lInErC;ey,neliCy;s,us;nEor,rDstaC;nt3;ad;or;by,e,in,l3t1;aHeEiCyde;fCnt,ve;fo0Xt1;menDt4;us;s,t;rFuDyC;!t1;dCs;e,io;enC;ce;aHeGrisC;!toC;phCs;!eC;!r;st2t;d,rCs;b5leC;s,y;cDdrCs6;ic;il;lHmFrC;ey,lDroCy;ll;!o7t1;er1iC;lo;!eb,v3;a09eZiVjorn,laUoSrEuCyr1;ddy,rtKst2;er;aKeFiEuDyC;an,ce,on;ce,no;an,ce;nDtC;!t;dDtC;!on;an,on;dFnC;dDisC;lav;en,on;!foOl9y;bby,gd0rCyd;is;i0Lke;bElDshC;al;al,lL;ek;nIrCshoi;at,nEtC;!raC;m,nd;aDhaCie;rd;rd8;!iDjam3nCs1;ie,y;to;kaMlazs,nHrC;n9rDtC;!holomew;eCy;tt;ey;dCeD;ar,iC;le;ar1Nb1Dd16fon15gust3hm12i0Zja0Yl0Bm07nTputsiSrGsaFugustEveDyCziz;a0kh0;ry;o,us;hi;aMchiKiJjun,mHnEon,tCy0;em,hCie,ur8;ur;aDoC;!ld;ud,v;aCin;an,nd8;!el,ki;baCe;ld;ta;aq;aMdHgel8tCw6;hoFoC;iDnC;!i8y;ne;ny;er7rCy;eDzC;ej;!as,i,j,s,w;!s;s,tolC;iCy;!y;ar,iEmaCos;nu5r;el;ne,r,t;aVbSdBeJfHiGl01onFphonsEt1vC;aPin;on;e,o;so,zo;!sR;!onZrC;ed;c,jaHksFssaHxC;!andC;er,rC;e,os,u;andCei;ar,er,r;ndC;ro;en;eDrecC;ht;rt8;dd3in,n,sC;taC;ir;ni;dDm6;ar;an,en;ad,eC;d,t;in;so;aGi,olErDvC;ik;ian8;f8ph;!o;mCn;!a;dGeFraDuC;!bakr,lfazl;hCm;am;!l;allFel,oulaye,ulC;!lDrahm0;an;ah,o;ah;av,on",Uncountable:"trueยฆ0:2E;1:2L;2:33;a2Ub2Lc29d22e1Rf1Ng1Eh16i11j0Yk0Wl0Rm0Hn0Do0Cp03rZsLt9uran2Jv7w3you gu0E;a5his17i4oo3;d,l;ldlife,ne;rm8t1;apor,ernacul29i3;neg28ol1Otae;eDhBiAo8r4un3yranny;a,gst1B;aff2Oea1Ko4ue nor3;th;o08u3;bleshoot2Ose1Tt;night,othpas1Vwn3;foEsfoE;me off,n;er3und1;e,mod2S;a,nnis;aDcCeBhAi9ki8o7p6t4u3weepstak0;g1Unshi2Hshi;ati08e3;am,el;ace2Keci0;ap,cc1meth2C;n,ttl0;lk;eep,ingl0or1C;lf,na1Gri0;ene1Kisso1C;d0Wfe2l4nd,t3;i0Iurn;m1Ut;abi0e4ic3;e,ke15;c3i01laxa11search;ogni10rea10;a9e8hys7luto,o5re3ut2;amble,mis0s3ten20;en1Zs0L;l3rk;i28l0EyH; 16i28;a24tr0F;nt3ti0M;i0s;bstetri24vercrowd1Qxyg09;a5e4owada3utella;ys;ptu1Ows;il poliZtional securi2;aAe8o5u3;m3s1H;ps;n3o1K;ey,o3;gamy;a3cha0Elancholy,rchandi1Htallurgy;sl0t;chine3g1Aj1Hrs,thema1Q; learn1Cry;aught1e6i5ogi4u3;ck,g12;c,s1M;ce,ghtn18nguis1LteratWv1;ath1isVss;ara0EindergartPn3;icke0Aowled0Y;e3upit1;a3llyfiGwel0G;ns;ce,gnor6mp5n3;forma00ter3;net,sta07;atiSort3rov;an18;a7e6isto09o3ung1;ckey,mework,ne4o3rseradi8spitali2use arrest;ky;s2y;adquarteXre;ir,libut,ppiHs3;hi3te;sh;ene8l6o5r3um,ymnas11;a3eZ;niUss;lf,re;ut3yce0F;en; 3ti0W;edit0Hpo3;ol;aNicFlour,o4urnit3;ure;od,rgive3uri1wl;ness;arCcono0LducaBlectr9n7quip8thi0Pvery6x3;ist4per3;ti0B;en0J;body,o08th07;joy3tertain3;ment;ici2o3;ni0H;tiS;nings,th;emi02i6o4raugh3ynas2;ts;pe,wnstai3;rs;abet0ce,s3;honZrepu3;te;aDelciChAivi07l8o3urrency;al,ld w6mmenta5n3ral,ttIuscoB;fusiHt 3;ed;ry;ar;assi01oth0;es;aos,e3;eMwK;us;d,rO;a8i6lood,owlHread5u3;ntGtt1;er;!th;lliarJs3;on;g3ss;ga3;ge;cKdviJeroGirFmBn6ppeal court,r4spi3thleL;rin;ithmet3sen3;ic;i6y3;o4th3;ing;ne;se;en5n3;es2;ty;ds;craft;bi8d3nau7;yna3;mi6;ce;id,ous3;ti3;cs",Infinitive:"trueยฆ0:9G;1:9T;2:AD;3:90;4:9Z;5:84;6:AH;7:A9;8:92;9:A0;A:AG;B:AI;C:9V;D:8R;E:8O;F:97;G:6H;H:7D;a94b8Hc7Jd68e4Zf4Mg4Gh4Ai3Qj3Nk3Kl3Bm34nou48o2Vp2Equ2Dr1Es0CtZuTvRwI;aOeNiLors5rI;eJiI;ng,te;ak,st3;d5e8TthI;draw,er;a2d,ep;i2ke,nIrn;d1t;aIie;liADniAry;nJpI;ho8Llift;cov1dJear8Hfound8DlIplug,rav82tie,ve94;eaAo3X;erIo;cut,go,staAFvalA3w2G;aSeQhNoMrIu73;aIe72;ffi3Smp3nsI;aBfo7CpI;i8oD;pp3ugh5;aJiJrIwaD;eat5i2;nk;aImA0;ch,se;ck3ilor,keImp1r8L;! paD;a0Ic0He0Fh0Bi0Al08mugg3n07o05p02qu01tUuLwI;aJeeIim;p,t5;ll7Wy;bNccMffLggeCmmKppJrI;mouFpa6Zvi2;o0re6Y;ari0on;er,i4;e7Numb;li9KmJsiIveD;de,st;er9it;aMe8MiKrI;ang3eIi2;ng27w;fIng;f5le;b,gg1rI;t3ve;a4AiA;a4UeJit,l7DoI;il,of;ak,nd;lIot7Kw;icEve;atGeak,i0O;aIi6;m,y;ft,ng,t;aKi6CoJriIun;nk,v6Q;ot,rt5;ke,rp5tt1;eIll,nd,que8Gv1w;!k,m;aven9ul8W;dd5tis1Iy;a0FeKiJoI;am,t,ut;d,p5;a0Ab08c06d05f01group,hea00iZjoi4lXmWnVpTq3MsOtMup,vI;amp,eJiIo3B;sEve;l,rI;e,t;i8rI;ie2ofE;eLiKpo8PtIurfa4;o24rI;aHiBuctu8;de,gn,st;mb3nt;el,hra0lIreseF;a4e71;d1ew,o07;aHe3Fo2;a7eFiIo6Jy;e2nq41ve;mbur0nf38;r0t;inKleBocus,rJuI;el,rbiA;aBeA;an4e;aBu4;ei2k8Bla43oIyc3;gni39nci3up,v1;oot,uI;ff;ct,d,liIp;se,ze;tt3viA;aAenGit,o7;aWerUinpoiFlumm1LoTrLuI;b47ke,niArIt;poDsuI;aFe;eMoI;cKd,fe4XhibEmo7noJpo0sp1tru6vI;e,i6o5L;un4;la3Nu8;aGclu6dJf1occupy,sup0JvI;a6BeF;etermi4TiB;aGllu7rtr5Ksse4Q;cei2fo4NiAmea7plex,sIva6;eve8iCua6;mp1rItrol,ve;a6It6E;bOccuNmEpMutLverIwe;l07sJtu6Yu0wI;helm;ee,h1F;gr5Cnu2Cpa4;era7i4Ipo0;py,r;ey,seItaH;r2ss;aMe0ViJoIultiply;leCu6Pw;micJnIspla4;ce,g3us;!k;iIke,na9;m,ntaH;aPeLiIo0u3N;ke,ng1quIv5;eIi6S;fy;aKnIss5;d,gI;th5;rn,ve;ng2Gu1N;eep,idnJnI;e4Cow;ap;oHuI;gg3xtaI;po0;gno8mVnIrk;cTdRfQgeChPitia7ju8q1CsNtKun6EvI;a6eIo11;nt,rt,st;erJimi6BoxiPrI;odu4u6;aBn,pr03ru6C;iCpi8tIu8;all,il,ruB;abEibE;eCo3Eu0;iIul9;ca7;i7lu6;b5Xmer0pI;aLer4Uin9ly,oJrI;e3Ais6Bo2;rt,se,veI;riA;le,rt;aLeKiIoiCuD;de,jaInd1;ck;ar,iT;mp1ng,pp5raIve;ng5Mss;ath1et,iMle27oLrI;aJeIow;et;b,pp3ze;!ve5A;gg3ve;aTer45i5RlSorMrJuI;lf4Cndrai0r48;eJiIolic;ght5;e0Qsh5;b3XeLfeEgJsI;a3Dee;eIi2;!t;clo0go,shIwa4Z;ad3F;att1ee,i36;lt1st5;a0OdEl0Mm0FnXquip,rWsVtGvTxI;aRcPeDhOiNpJtIu6;ing0Yol;eKi8lIo0un9;aHoI;it,re;ct,di7l;st,t;a3oDu3B;e30lI;a10u6;lt,mi28;alua7oI;ke,l2;chew,pou0tab19;a0u4U;aYcVdTfSgQhan4joy,lPqOrNsuMtKvI;e0YisI;a9i50;er,i4rI;aHenGuC;e,re;iGol0F;ui8;ar9iC;a9eIra2ulf;nd1;or4;ang1oIu8;r0w;irc3lo0ou0ErJuI;mb1;oaGy4D;b3ct;bKer9pI;hasiIow1;ze;aKody,rI;a4oiI;d1l;lm,rk;ap0eBuI;ci40de;rIt;ma0Rn;a0Re04iKo,rIwind3;aw,ed9oI;wn;agno0e,ff1g,mi2Kne,sLvI;eIul9;rIst;ge,t;aWbVcQlod9mant3pNru3TsMtI;iIoDu37;lJngI;uiA;!l;ol2ua6;eJlIo0ro2;a4ea0;n0r0;a2Xe36lKoIu0S;uIv1;ra9;aIo0;im;a3Kur0;b3rm;af5b01cVduBep5fUliTmQnOpMrLsiCtaGvI;eIol2;lop;ch;a20i2;aDiBloIoD;re,y;oIy;te,un4;eJoI;liA;an;mEv1;a4i0Ao06raud,y;ei2iMla8oKrI;ee,yI;!pt;de,mIup3;missi34po0;de,ma7ph1;aJrief,uI;g,nk;rk;mp5rk5uF;a0Dea0h0Ai09l08oKrIurta1G;a2ea7ipp3uI;mb3;ales4e04habEinci6ll03m00nIrro6;cXdUfQju8no7qu1sLtKvI;eIin4;ne,r9y;aHin2Bribu7;er2iLoli2Epi8tJuI;lt,me;itu7raH;in;d1st;eKiJoIroFu0;rm;de,gu8rm;ss;eJoI;ne;mn,n0;eIlu6ur;al,i2;buCe,men4pI;eIi3ly;l,te;eBi6u6;r4xiC;ean0iT;rcumveFte;eJirp,oI;o0p;riAw;ncIre5t1ulk;el;a02eSi6lQoPrKuI;iXrIy;st,y;aLeaKiJoad5;en;ng;stfeLtX;ke;il,l11mba0WrrMth1;eIow;ed;!coQfrie1LgPhMliLqueaKstJtrIwild1;ay;ow;th;e2tt3;a2eJoI;ld;ad;!in,ui3;me;bysEckfi8ff3tI;he;b15c0Rd0Iff0Ggree,l0Cm09n03ppZrXsQttOuMvJwaE;it;eDoI;id;rt;gIto0X;meF;aIeCraB;ch,in;pi8sJtoI;niA;aKeIi04u8;mb3rt,ss;le;il;re;g0Hi0ou0rI;an9i2;eaKly,oiFrI;ai0o2;nt;r,se;aMi0GnJtI;icipa7;eJoIul;un4y;al;ly0;aJu0;se;lga08ze;iKlI;e9oIu6;t,w;gn;ix,oI;rd;a03jNmiKoJsoI;rb;pt,rn;niIt;st1;er;ouJuC;st;rn;cLhie2knowled9quiItiva7;es4re;ce;ge;eQliOoKrJusI;e,tom;ue;mIst;moJpI;any,liA;da7;ma7;te;pt;andPduBet,i6oKsI;coKol2;ve;liArt,uI;nd;sh;de;ct;on",Person:"trueยฆ0:1Q;a29b1Zc1Md1Ee18f15g13h0Ri0Qj0Nk0Jl0Gm09n06o05p00rPsItCusain bolt,v9w4xzibit,y1;anni,oko on2uji,v1;an,es;en,o;a3ednesday adams,i2o1;lfram,o0Q;ll ferrell,z khalifa;lt disn1Qr1;hol,r0G;a2i1oltai06;n dies0Zrginia wo17;lentino rossi,n goG;a4h3i2ripp,u1yra banks;lZpac shakur;ger woods,mba07;eresa may,or;kashi,t1ylor;um,ya1B;a5carlett johanss0h4i3lobodan milosevic,no2ocr1Lpider1uperm0Fwami; m0Em0E;op dogg,w whi1H;egfried,nbad;akespeaTerlock holm1Sia labeouf;ddam hussa16nt1;a cla11ig9;aAe6i5o3u1za;mi,n dmc,paul,sh limbau1;gh;bin hood,d stew16nald1thko;in0Mo;han0Yngo starr,valdo;ese witherspo0i1mbrandt;ll2nh1;old;ey,y;chmaninoff,ffi,iJshid,y roma1H;a4e3i2la16o1uff daddy;cahont0Ie;lar,p19;le,rZ;lm17ris hilt0;leg,prah winfr0Sra;a2e1iles cra1Bostradam0J; yo,l5tt06wmQ;pole0s;a5e4i2o1ubar03;by,lie5net,rriss0N;randa ju1tt romn0M;ly;rl0GssiaB;cklemo1rkov,s0ta hari,ya angelou;re;ady gaga,e1ibera0Pu;bron jam0Xch wale1e;sa;anye west,e3i1obe bryant;d cudi,efer suther1;la0P;ats,sha;a2effers0fk,k rowling,rr tolki1;en;ck the ripp0Mwaharlal nehru,y z;liTnez,ron m7;a7e5i3u1;lk hog5mphrey1sa01;! bog05;l1tl0H;de; m1dwig,nry 4;an;ile selassFlle ber4m3rrison1;! 1;ford;id,mo09;ry;ast0iannis,o1;odwPtye;ergus0lorence nightinga08r1;an1ederic chopN;s,z;ff5m2nya,ustaXzeki1;el;eril lagasse,i1;le zatop1nem;ek;ie;a6e4i2octor w1rake;ho;ck w1ego maradoC;olf;g1mi lovaOnzel washingt0;as;l1nHrth vadR;ai lNt0;a8h5lint0o1thulhu;n1olio;an,fuci1;us;on;aucKop2ristian baMy1;na;in;millo,ptain beefhe4r1;dinal wols2son1;! palmF;ey;art;a8e5hatt,i3oHro1;ck,n1;te;ll g1ng crosby;atB;ck,nazir bhut2rtil,yon1;ce;to;nksy,rack ob1;ama;l 6r3shton kutch2vril lavig8yn ra1;nd;er;chimed2istot1;le;es;capo2paci1;no;ne",Adjective:"trueยฆ0:AI;1:BS;2:BI;3:BA;4:A8;5:84;6:AV;7:AN;8:AF;9:7H;A:BQ;B:AY;C:BC;D:BH;E:9Y;aA2b9Ec8Fd7We79f6Ng6Eh61i4Xj4Wk4Tl4Im41n3Po36p2Oquart7Pr2Ds1Dt14uSvOwFye29;aMeKhIiHoF;man5oFrth7G;dADzy;despreB1n w97s86;acked1UoleF;!sa6;ather1PeFll o70ste1D;!k5;nt1Ist6Ate4;aHeGiFola5T;bBUce versa,gi3Lle;ng67rsa5R;ca1gBSluAV;lt0PnLpHrGsFttermoBL;ef9Ku3;b96ge1; Hb32pGsFtiAH;ca6ide d4R;er,i85;f52to da2;a0Fbeco0Hc0Bd04e02f01gu1XheaBGiXkn4OmUnTopp06pRrNsJtHus0wF;aFiel3K;nt0rra0P;app0eXoF;ld,uS;eHi37o5ApGuF;perv06spec39;e1ok9O;en,ttl0;eFu5;cogn06gul2RlGqu84sF;erv0olv0;at0en33;aFrecede0E;id,rallel0;am0otic0;aFet;rri0tF;ch0;nFq26vers3;sur0terFv7U;eFrupt0;st0;air,inish0orese98;mploy0n7Ov97xpF;ect0lain0;eHisFocume01ue;clFput0;os0;cid0rF;!a8Scov9ha8Jlyi8nea8Gprivileg0sMwF;aFei9I;t9y;hGircumcFonvin2U;is0;aFeck0;lleng0rt0;b20ppea85ssuGttend0uthorF;iz0;mi8;i4Ara;aLeIhoHip 25oGrF;anspare1encha1i2;geth9leADp notch,rpB;rny,ugh6H;ena8DmpGrFs6U;r49tia4;eCo8P;leFst4M;nt0;a0Dc09e07h06i04ki03l01mug,nobbi4XoVpRqueami4XtKuFymb94;bHccinAi generis,pFr5;erFre7N;! dup9b,vi70;du0li7Lp6IsFurb7J;eq9Atanda9X;aKeJi16o2QrGubboFy4Q;rn;aightFin5GungS; fFfF;or7V;adfa9Pri6;lwa6Ftu82;arHeGir6NlendBot Fry;on;c3Qe1S;k5se; call0lImb9phistic16rHuFviV;ndFth1B;proof;dBry;dFub6; o2A;e60ipF;pe4shod;ll0n d7R;g2HnF;ceEg6ist9;am3Se9;co1Zem5lfFn6Are7; suf4Xi43;aGholFient3A;ar5;rlFt4A;et;cr0me,tisfac7F;aOeIheumatoBiGoF;bu8Ztt7Gy3;ghtFv3; 1Sf6X;cJdu8PlInown0pro69sGtF;ard0;is47oF;lu2na1;e1Suc45;alcit8Xe1ondi2;bBci3mpa1;aSePicayu7laOoNrGuF;bl7Tnjabi;eKiIoF;b7VfGmi49pFxi2M;er,ort81;a7uD;maFor,sti7va2;!ry;ciDexis0Ima2CpaB;in55puli8G;cBid;ac2Ynt 3IrFti2;ma40tFv7W;!i3Z;i2YrFss7R;anoBtF; 5XiF;al,s5V;bSffQkPld OnMrLth9utKverF;!aIbMdHhGni75seas,t,wF;ei74rou74;a63e7A;ue;ll;do1Ger,si6A;d3Qg2Aotu5Z; bFbFe on o7g3Uli7;oa80;fashion0school;!ay; gua7XbFha5Uli7;eat;eHligGsF;ce7er0So1C;at0;diFse;a1e1;aOeNiMoGuF;anc0de; moEnHrthFt6V;!eFwe7L;a7Krn;chaGdescri7Iprof30sF;top;la1;ght5;arby,cessa4ighbor5wlyw0xt;k0usiaFv3;ti8;aQeNiLoHuF;dIltiF;facet0p6;deHlGnFot,rbBst;ochro4Xth5;dy;rn,st;ddle ag0nF;dbloZi,or;ag9diocEga,naGrFtropolit4Q;e,ry;ci8;cIgenta,inHj0Fkeshift,mmGnFri4Oscu61ver18;da5Dy;ali4Lo4U;!stream;abEho;aOeLiIoFumberi8;ngFuti1R;stan3RtF;erm,i4H;ghtGteraF;l,ry,te;heart0wei5O;ft JgFss9th3;al,eFi0M;nda4;nguBps0te5;apGind5noF;wi8;ut;ad0itte4uniW;ce co0Hgno6Mll0Cm04nHpso 2UrF;a2releF;va1; ZaYcoWdReQfOgrNhibi4Ri05nMoLsHtFvalu5M;aAeF;nDrdepe2K;a7iGolFuboI;ub6ve1;de,gF;nifica1;rdi5N;a2er;own;eriIiLluenVrF;ar0eq5H;pt,rt;eHiGoFul1O;or;e,reA;fiFpe26termi5E;ni2;mpFnsideCrreA;le2;ccuCdeq5Ene,ppr4J;fFsitu,vitro;ro1;mJpF;arHeGl15oFrop9;li2r11;n2LrfeA;ti3;aGeFi18;d4BnD;tuE;egGiF;c0YteC;al,iF;tiF;ma2;ld;aOelNiLoFuma7;a4meInHrrGsFur5;ti6;if4E;e58o3U; ma3GsF;ick;ghfalut2HspF;an49;li00pf33;i4llow0ndGrdFtM; 05coEworki8;sy,y;aLener44iga3Blob3oKrGuF;il1Nng ho;aFea1Fizzl0;cGtF;ef2Vis;ef2U;ld3Aod;iFuc2D;nf2R;aVeSiQlOoJrF;aGeFil5ug3;q43tf2O;gFnt3S;i6ra1;lk13oHrF; keeps,eFge0Vm9tu41;g0Ei2Ds3R;liF;sh;ag4Mowe4uF;e1or45;e4nF;al,i2;d Gmini7rF;ti6ve1;up;bl0lDmIr Fst pac0ux;oGreacF;hi8;ff;ed,ili0R;aXfVlTmQnOqu3rMthere3veryday,xF;aApIquisi2traHuF;be48lF;ta1;!va2L;edRlF;icF;it;eAstF;whi6; Famor0ough,tiE;rou2sui2;erGiF;ne1;ge1;dFe2Aoq34;er5;ficF;ie1;g9sF;t,ygF;oi8;er;aWeMiHoGrFue;ea4owY;ci6mina1ne,r31ti8ubQ;dact2Jfficult,m,sGverF;ge1se;creGePjoi1paCtF;a1inA;et,te; Nadp0WceMfiLgeneCliJmuEpeIreliAsGvoF;id,ut;pFtitu2ul1L;eCoF;nde1;ca2ghF;tf13;a1ni2;as0;facto;i5ngero0I;ar0Ce09h07i06l05oOrIuF;rmudgeon5stoma4teF;sy;ly;aIeHu1EystalF; cleFli7;ar;epy;fFv17z0;ty;erUgTloSmPnGrpoCunterclVveFy;rt;cLdJgr21jIsHtrF;aFi2;dic0Yry;eq1Yta1;oi1ug3;escenFuN;di8;a1QeFiD;it0;atoDmensuCpF;ass1SulF;so4;ni3ss3;e1niza1;ci1J;ockwiD;rcumspeAvil;eFintzy;e4wy;leGrtaF;in;ba2;diac,ef00;a00ePiLliJoGrFuck nak0;and new,isk,on22;gGldface,naF; fi05fi05;us;nd,tF;he;gGpartisFzarE;an;tiF;me;autifOhiNlLnHsFyoN;iWtselF;li8;eGiFt;gn;aFfi03;th;at0oF;v0w;nd;ul;ckwards,rF;e,rT; priori,b13c0Zd0Tf0Ng0Ihe0Hl09mp6nt06pZrTsQttracti0MuLvIwF;aGkF;wa1B;ke,re;ant garGeraF;ge;de;diIsteEtF;heFoimmu7;nt07;re;to4;hGlFtu2;eep;en;bitIchiv3roHtF;ifiFsy;ci3;ga1;ra4;ry;pFt;aHetizi8rF;oprF;ia2;llFre1;ed,i8;ng;iquFsy;at0e;ed;cohKiJkaHl,oGriFterX;ght;ne,of;li7;ne;ke,ve;olF;ic;ad;ain07gressiIi6rF;eeF;ab6;le;ve;fGraB;id;ectGlF;ue1;ioF;na2; JaIeGvF;erD;pt,qF;ua2;ma1;hoc,infinitum;cuCquiGtu3u2;al;esce1;ra2;erSjeAlPoNrKsGuF;nda1;e1olu2trF;aAuD;se;te;eaGuF;pt;st;aFve;rd;aFe;ze;ct;ra1;nt",Pronoun:"trueยฆelle,h3i2me,she,th0us,we,you;e0ou;e,m,y;!l,t;e,im",Preposition:"trueยฆaPbMcLdKexcept,fIinGmid,notwithstandiWoDpXqua,sCt7u4v2w0;/o,hereSith0;! whHin,oW;ersus,i0;a,s a vis;n1p0;!on;like,til;h1ill,oward0;!s;an,ereby,r0;ough0u;!oM;ans,ince,o that,uch G;f1n0ut;!to;!f;! 0to;effect,part;or,r0;om;espite,own,u3;hez,irca;ar1e0oBy;sides,tween;ri7;bo8cross,ft7lo6m4propos,round,s1t0;!op;! 0;a whole,long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"trueยฆ0:18;1:1E;2:1D;3:14;a1Db15c0Sd0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Am01new UoRpKqueens parkJreal salt lake,sBt6utah jazz,vancouver whitecaps,w4yW;ashington 4h10;natio1Mredski2wizar0W;ampa bay 7e6o4;ronto 4ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasD;buccanee0ra0K;a8eattle 6porting kansas0Wt4; louis 4oke0V;c1Drams;marine0s4;eah13ounH;cramento Rn 4;antonio spu0diego 4francisco gJjose earthquak1;char08paB; ran07;a9h6ittsburgh 5ortland t4;imbe0rail blaze0;pirat1steele0;il4oenix su2;adelphia 4li1;eagl1philNunE;dr1;akland 4klahoma city thunder,rlando magic;athle0Lrai4;de0;england 8orleans 7york 4;g5je3knYme3red bul0Xy4;anke1;ian3;pelica2sain3;patrio3revolut4;ion;anchEeAi4ontreal impact;ami 8lwaukee b7nnesota 4;t5vi4;kings;imberwolv1wi2;rewe0uc0J;dolphi2heat,marli2;mphis grizz4ts;li1;a6eic5os angeles 4;clippe0dodFlaB;esterV; galaxy,ke0;ansas city 4nF;chiefs,roya0D; pace0polis col3;astr05dynamo,rocke3texa2;olden state warrio0reen bay pac4;ke0;allas 8e4i04od6;nver 6troit 4;lio2pisto2ti4;ge0;broncYnugge3;cowbo5maver4;icZ;ys;arEelLhAincinnati 8leveland 6ol4;orado r4umbus crew sc;api7ocki1;brow2cavalie0guar4in4;dia2;bengaVre4;ds;arlotte horAicago 4;b5cubs,fire,wh4;iteB;ea0ulQ;diff4olina panthe0; city;altimore Alackburn rove0oston 6rooklyn 4uffalo bilN;ne3;ts;cel5red4; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 4;brav1falco2h4;awA;ns;es;on villa,r4;os;c6di4;amondbac4;ks;ardi4;na4;ls",Unit:"trueยฆa07b04cXdWexVfTgRhePinYjoule0BkMlJmDnan08oCp9quart0Bsq ft,t7volts,w6y2ze3ยฐ1ยต0;g,s;c,f,n;dVear1o0;ttR; 0s 0;old;att,b;erNon0;!ne02;ascals,e1i0;cXnt00;rcent,tJ;hms,unceY;/s,e4i0mยฒ,ยฒ,ยณ;/h,cro2l0;e0liK;!ยฒ;grLsR;gCtJ;it1u0;menQx;erPreP;b5elvins,ilo1m0notO;/h,ph,ยฒ;!byGgrEmCs;ct0rtzL;aJogrC;allonJb0ig3rB;ps;a0emtEl oz,t4;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;ยฒ,ยณ;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s","Noun|Gerund":"trueยฆ0:3O;1:3M;2:3N;3:3D;4:32;5:2V;6:3E;7:3K;8:36;9:3J;A:3B;a3Pb37c2Jd27e23f1Vg1Sh1Mi1Ij1Gk1Dl18m13n11o0Wp0Pques0Sr0EsTtNunderMvKwFyDzB;eroi0oB;ni0o3P;aw2eB;ar2l3;aEed4hispe5i5oCrB;ap8est3i1;n0ErB;ki0r31;i1r2s9tc9;isualizi0oB;lunt1Vti0;stan4ta6;aFeDhin6iCraBy8;c6di0i2vel1M;mi0p8;aBs1;c9si0;l6n2s1;aUcReQhOiMkatKl2Wmo6nowJpeItFuCwB;ea5im37;b35f0FrB;fi0vB;e2Mi2J;aAoryt1KrCuB;d2KfS;etc9ugg3;l3n4;bCi0;ebBi0;oar4;gnBnAt1;a3i0;ip8oB;p8rte2u1;a1r27t1;hCo5reBulp1;a2Qe2;edu3oo3;i3yi0;aKeEi4oCuB;li0n2;oBwi0;fi0;aFcEhear7laxi0nDpor1sB;pon4tructB;r2Iu5;de5;or4yc3;di0so2;p8ti0;aFeacek20laEoCrBublis9;a1Teten4in1oces7;iso2siB;tio2;n2yi0;ckaAin1rB;ki0t1O;fEpeDrganiCvB;erco24ula1;si0zi0;ni0ra1;fe5;avi0QeBur7;gotia1twor6;aDeCi2oB;de3nito5;a2dita1e1ssaA;int0XnBrke1;ifUufactu5;aEeaDiBodAyi0;cen7f1mi1stB;e2i0;r2si0;n4ug9;iCnB;ea4it1;c6l3;ogAuB;dAgg3stif12;ci0llust0VmDnBro2;nova1sp0NterBven1;ac1vie02;agi2plo4;aDea1iCoBun1;l4w3;ki0ri0;nd3rB;roWvB;es1;aCene0Lli4rBui4;ee1ie0N;rde2the5;aHeGiDlCorBros1un4;e0Pmat1;ir1oo4;gh1lCnBs9;anZdi0;i0li0;e3nX;r0Zscina1;a1du01nCxB;erci7plo5;chan1di0ginB;ee5;aLeHiGoub1rCum8wB;el3;aDeCiB;bb3n6vi0;a0Qs7;wi0;rTscoDvi0;ba1coZlBvelo8;eCiB;ve5;ga1;nGti0;aVelebUhSlPoDrBur3yc3;aBos7yi0;f1w3;aLdi0lJmFnBo6pi0ve5;dDsCvinB;ci0;trBul1;uc1;muniDpB;lBo7;ai2;ca1;lBo5;ec1;c9ti0;ap8eaCimToBubT;ni0t9;ni0ri0;aBee5;n1t1;ra1;m8rCs1te5;ri0;vi0;aPeNitMlLoGrDuB;dge1il4llBr8;yi0;an4eat9oadB;cas1;di0;a1mEokB;i0kB;ee8;pi0;bi0;es7oa1;c9i0;gin2lonAt1;gi0;bysit1c6ki0tt3;li0;ki0;bando2cGdverti7gi0pproac9rgDssuCtB;trac1;mi0;ui0;hi0;si0;coun1ti0;ti0;ni0;ng",PhrasalVerb:"trueยฆ0:92;1:96;2:8H;3:8V;4:8A;5:83;6:85;7:98;8:90;9:8G;A:8X;B:8R;C:8U;D:8S;E:70;F:97;G:8Y;H:81;I:7H;J:79;a9Fb7Uc6Rd6Le6Jf5Ig50h4Biron0j47k40l3Em31n2Yo2Wp2Cquiet Hr1Xs0KtZuXvacuu6QwNyammerBzK;ero Dip LonK;e0k0;by,ov9up;aQeMhLiKor0Mrit19;mp0n3Fpe0r5s5;ackAeel Di0S;aLiKn33;gh 3Wrd0;n Dr K;do1in,oJ;it 79k5lk Lrm 69sh Kt83v60;aw3do1o7up;aw3in,oC;rgeBsK;e 2herE;a00eYhViRoQrMuKypP;ckErn K;do1in,oJup;aLiKot0y 30;ckl7Zp F;ck HdK;e 5Y;n7Wp 3Es5K;ck MdLe Kghten 6me0p o0Rre0;aw3ba4do1in,up;e Iy 2;by,oG;ink Lrow K;aw3ba4in,up;ba4ov9up;aKe 77ll62;m 2r 5M;ckBke Llk K;ov9shit,u47;aKba4do1in,leave,o4Dup;ba4ft9pa69w3;a0Vc0Te0Mh0Ii0Fl09m08n07o06p01quar5GtQuOwK;earMiK;ngLtch K;aw3ba4o8K; by;cKi6Bm 2ss0;k 64;aReQiPoNrKud35;aigh2Det75iK;ke 7Sng K;al6Yup;p Krm2F;by,in,oG;c3Ln3Lr 2tc4O;p F;c3Jmp0nd LrKveAy 2O;e Ht 2L;ba4do1up;ar3GeNiMlLrKurB;ead0ingBuc5;a49it 6H;c5ll o3Cn 2;ak Fe1Xll0;a3Bber 2rt0und like;ap 5Vow Duggl5;ash 6Noke0;eep NiKow 6;cLp K;o6Dup;e 68;in,oK;ff,v9;de19gn 4NnKt 6Gz5;gKkE; al6Ale0;aMoKu5W;ot Kut0w 7M;aw3ba4f48oC;c2WdeEk6EveA;e Pll1Nnd Orv5tK; Ktl5J;do1foLin,o7upK;!on;ot,r5Z;aw3ba4do1in,o33up;oCto;al66out0rK;ap65ew 6J;ilAv5;aXeUiSoOuK;b 5Yle0n Kstl5;aLba4do1inKo2Ith4Nu5P;!to;c2Xr8w3;ll Mot LpeAuK;g3Ind17;a2Wf3Po7;ar8in,o7up;ng 68p oKs5;ff,p18;aKelAinEnt0;c6Hd K;o4Dup;c27t0;aZeYiWlToQrOsyc35uK;ll Mn5Kt K;aKba4do1in,oJto47up;pa4Dw3;a3Jdo1in,o21to45up;attleBess KiNop 2;ah2Fon;iLp Kr4Zu1Gwer 6N;do1in,o6Nup;nt0;aLuK;gEmp 6;ce u20y 6D;ck Kg0le 4An 6p5B;oJup;el 5NncilE;c53ir 39n0ss MtLy K;ba4oG; Hc2R;aw3ba4in,oJ;pKw4Y;e4Xt D;aLerd0oK;dAt53;il Hrrow H;aTeQiPoLuK;ddl5ll I;c1FnkeyMp 6uthAve K;aKdo1in,o4Lup;l4Nw3; wi4K;ss0x 2;asur5e3SlLss K;a21up;t 6;ke Ln 6rKs2Ax0;k 6ryA;do,fun,oCsure,up;a02eViQoLuK;ck0st I;aNc4Fg MoKse0;k Kse4D;aft9ba4do1forw37in56o0Zu46;in,oJ;d 6;e NghtMnLsKve 00;ten F;e 2k 2; 2e46;ar8do1in;aMt LvelK; oC;do1go,in,o7up;nEve K;in,oK;pKut;en;c5p 2sh LtchBughAy K;do1o59;in4Po7;eMick Lnock K;do1oCup;oCup;eLy K;in,up;l Ip K;aw3ba4do1f04in,oJto,up;aMoLuK;ic5mpE;ke3St H;c43zz 2;a01eWiToPuK;nLrrKsh 6;y 2;keLt K;ar8do1;r H;lKneErse3K;d Ke 2;ba4dKfast,o0Cup;ear,o1;de Lt K;ba4on,up;aw3o7;aKlp0;d Ml Ir Kt 2;fKof;rom;f11in,o03uW;cPm 2nLsh0ve Kz2P;at,it,to;d Lg KkerP;do1in,o2Tup;do1in,oK;ut,v9;k 2;aZeTive Rloss IoMrLunK; f0S;ab hold,in43ow 2U; Kof 2I;aMb1Mit,oLr8th1IuK;nd9;ff,n,v9;bo7ft9hQw3;aw3bKdo1in,oJrise,up,w3;a4ir2H;ar 6ek0t K;aLb1Fdo1in,oKr8up;ff,n,ut,v9;cLhKl2Fr8t,w3;ead;ross;d aKng 2;bo7;a0Ee07iYlUoQrMuK;ck Ke2N;ar8up;eLighten KownBy 2;aw3oG;eKshe27; 2z5;g 2lMol Krk I;aKwi20;bo7r8;d 6low 2;aLeKip0;sh0;g 6ke0mKrKtten H;e F;gRlPnNrLsKzzle0;h F;e Km 2;aw3ba4up;d0isK;h 2;e Kl 1T;aw3fPin,o7;ht ba4ure0;ePnLsK;s 2;cMd K;fKoG;or;e D;d04l 2;cNll Krm0t1G;aLbKdo1in,o09sho0Eth08victim;a4ehi2O;pa0C;e K;do1oGup;at Kdge0nd 12y5;in,o7up;aOi1HoNrK;aLess 6op KuN;aw3b03in,oC;gBwB; Ile0ubl1B;m 2;a0Ah05l02oOrLut K;aw3ba4do1oCup;ackBeep LoKy0;ss Dwd0;by,do1in,o0Uup;me NoLuntK; o2A;k 6l K;do1oG;aRbQforOin,oNtKu0O;hLoKrue;geth9;rough;ff,ut,v9;th,wK;ard;a4y;paKr8w3;rt;eaLose K;in,oCup;n 6r F;aNeLiK;ll0pE;ck Der Kw F;on,up;t 2;lRncel0rOsMtch LveE; in;o1Nup;h Dt K;doubt,oG;ry LvK;e 08;aw3oJ;l Km H;aLba4do1oJup;ff,n,ut;r8w3;a0Ve0MiteAl0Fo04rQuK;bblNckl05il0Dlk 6ndl05rLsKtMy FzzA;t 00;n 0HsK;t D;e I;ov9;anWeaUiLush K;oGup;ghQng K;aNba4do1forMin,oLuK;nd9p;n,ut;th;bo7lKr8w3;ong;teK;n 2;k K;do1in,o7up;ch0;arTg 6iRn5oPrNssMttlLunce Kx D;aw3ba4;e 6; ar8;e H;do1;k Dt 2;e 2;l 6;do1up;d 2;aPeed0oKurt0;cMw K;aw3ba4do1o7up;ck;k K;in,oC;ck0nk0stA; oQaNef 2lt0nd K;do1ov9up;er;up;r Lt K;do1in,oCup;do1o7;ff,nK;to;ck Pil0nMrgLsK;h D;ainBe D;g DkB; on;in,o7;aw3do1in,oCup;ff,ut;ay;ct FdQir0sk MuctionA; oG;ff;ar8o7;ouK;nd; o7;d K;do1oKup;ff,n;wn;o7up;ut",ProperNoun:"trueยฆaIbDc8dalhousHe7f5gosford,h4iron maiden,kirby,landsdowne,m2nis,r1s0wembF;herwood,paldiB;iel,othwe1;cgi0ercedes,issy;ll;intBudsB;airview,lorence,ra0;mpt9nco;lmo,uro;a1h0;arlt6es5risti;rl0talina;et4i0;ng;arb3e0;et1nt0rke0;ley;on;ie;bid,jax","Person|Place":"trueยฆa8d6h4jordan,k3orlando,s1vi0;ctor9rgin9;a0ydney;lvador,mara,ntia4;ent,obe;amil0ous0;ton;arw2ie0;go;lexandr1ust0;in;ia",LastName:"trueยฆ0:BR;1:BF;2:B5;3:BH;4:AX;5:9Y;6:B6;7:BK;8:B0;9:AV;A:AL;B:8Q;C:8G;D:7K;E:BM;F:AH;aBDb9Zc8Wd88e81f7Kg6Wh64i60j5Lk4Vl4Dm39n2Wo2Op25quispe,r1Ls0Pt0Ev03wTxSyKzG;aIhGimmerm6A;aGou,u;ng,o;khar5ytsE;aKeun9BiHoGun;koya32shiBU;!lG;diGmaz;rim,z;maGng;da,g52mo83sGzaC;aChiBV;iao,u;aLeJiHoGright,u;jcA5lff,ng;lGmm0nkl0sniewsC;kiB1liams33s3;bGiss,lt0;b,er,st0;a6Vgn0lHtG;anabe,s3;k0sh,tG;e2Non;aLeKiHoGukD;gt,lk5roby5;dHllalGnogr3Kr1Css0val3S;ba,ob1W;al,ov4;lasHsel8W;lJn dIrgBEsHzG;qu7;ilyEqu7siljE;en b6Aijk,yk;enzueAIverde;aPeix1VhKi2j8ka43oJrIsui,uG;om5UrG;c2n0un1;an,emblA7ynisC;dorAMlst3Km4rrAth;atch0i8UoG;mHrG;are84laci79;ps3sG;en,on;hirDkah9Mnaka,te,varA;a06ch01eYhUiRmOoMtIuHvGzabo;en9Jobod3N;ar7bot4lliv2zuC;aIeHoG;i7Bj4AyanAB;ele,in2FpheBvens25;l8rm0;kol5lovy5re7Tsa,to,uG;ng,sa;iGy72;rn5tG;!h;l71mHnGrbu;at9cla9Egh;moBo7M;aIeGimizu;hu,vchG;en8Luk;la,r1G;gu9infe5YmGoh,pulveA7rra5P;jGyG;on5;evi6iltz,miHneid0roed0uGwarz;be3Elz;dHtG;!t,z;!t;ar4Th8ito,ka4OlJnGr4saCto,unde19v4;ch7dHtGz;a5Le,os;b53e16;as,ihDm4Po0Y;aVeSiPoJuHyG;a6oo,u;bio,iz,sG;so,u;bKc8Fdrigue67ge10j9YmJosevelt,sItHux,wG;e,li6;a9Ch;enb4Usi;a54e4L;erts15i93;bei4JcHes,vGzzo;as,e9;ci,hards12;ag2es,iHut0yG;es,nol5N;s,t0;dImHnGsmu97v6C;tan1;ir7os;ic,u;aUeOhMiJoHrGut8;asad,if6Zochazk27;lishc2GpGrti72u10we76;e3Aov51;cHe45nG;as,to;as70hl0;aGillips;k,m,n6I;a3Hde3Wete0Bna,rJtG;ersHrovGters54;!a,ic;!en,on;eGic,kiBss3;i9ra,tz,z;h86k,padopoulIrk0tHvG;ic,l4N;el,te39;os;bMconn2Ag2TlJnei6PrHsbor6XweBzG;dem7Rturk;ella4DtGwe6N;ega,iz;iGof7Hs8I;vGyn1R;ei9;aSri1;aPeNiJoGune50ym2;rHvGwak;ak4Qik5otn66;odahl,r4S;cholsZeHkolGls4Jx3;ic,ov84;ls1miG;!n1;ils3mG;co4Xec;gy,kaGray2sh,var38;jiGmu9shiG;ma;a07c04eZiWoMuHyeG;rs;lJnIrGssoli6S;atGp03r7C;i,ov4;oz,te58;d0l0;h2lOnNo0RrHsGza1A;er,s;aKeJiIoz5risHtG;e56on;!on;!n7K;au,i9no,t5J;!lA;r1Btgome59;i3El0;cracFhhail5kkeHlG;l0os64;ls1;hmeJiIj30lHn3Krci0ssiGyer2N;!er;n0Po;er,j0;dDti;cartHlG;aughl8e2;hy;dQe7Egnu68i0jer3TkPmNnMrItHyG;er,r;ei,ic,su21thews;iHkDquAroqu8tinG;ez,s;a5Xc,nG;!o;ci5Vn;a5UmG;ad5;ar5e6Kin1;rig77s1;aVeOiLoJuHyG;!nch;k4nGo;d,gu;mbarGpe3Fvr4we;di;!nGu,yana2B;coln,dG;b21holm,strom;bedEfeKhIitn0kaHn8rGw35;oy;!j;m11tG;in1on1;bvGvG;re;iGmmy,ng,rs2Qu,voie,ws3;ne,t1F;aZeYh2iWlUnez50oNrJuHvar2woG;k,n;cerGmar68znets5;a,o34;aHem0isGyeziu;h23t3O;m0sni4Fus3KvG;ch4O;bay57ch,rh0Usk16vaIwalGzl5;czGsC;yk;cIlG;!cGen4K;huk;!ev4ic,s;e8uiveG;rt;eff0kGl4mu9nnun1;ucF;ll0nnedy;hn,llKminsCne,pIrHstra3Qto,ur,yGzl5;a,s0;j0Rls22;l2oG;or;oe;aPenOha6im14oHuG;ng,r4;e32hInHrge32u6vG;anD;es,ss3;anHnsG;en,on,t3;nesGs1R;en,s1;kiBnings,s1;cJkob4EnGrv0E;kDsG;en,sG;en0Ion;ks3obs2A;brahimDglesi5Nke5Fl0Qno07oneIshikHto,vanoG;u,v54;awa;scu;aVeOiNjaltal8oIrist50uG;!aGb0ghAynh;m2ng;a6dz4fIjgaa3Hk,lHpUrGwe,x3X;ak1Gvat;mAt;er,fm3WmG;ann;ggiBtchcock;iJmingw4BnHrGss;nand7re9;deGriks1;rs3;kkiHnG;on1;la,n1;dz4g1lvoQmOns0ZqNrMsJuIwHyG;asFes;kiB;g1ng;anHhiG;mo14;i,ov0J;di6p0r10t;ue;alaG;in1;rs1;aVeorgUheorghe,iSjonRoLrJuGw3;errGnnar3Co,staf3Ctierr7zm2;a,eG;ro;ayli6ee2Lg4iffithGub0;!s;lIme0UnHodGrbachE;e,m2;calvAzale0S;dGubE;bGs0E;erg;aj,i;bs3l,mGordaO;en7;iev3U;gnMlJmaIndFo,rGsFuthi0;cGdn0za;ia;ge;eaHlG;agh0i,o;no;e,on;aVerQiLjeldsted,lKoIrHuG;chs,entAji41ll0;eem2iedm2;ntaGrt8urni0wl0;na;emi6orA;lipIsHtzgeraG;ld;ch0h0;ovG;!ic;hatDnanIrG;arGei9;a,i;deY;ov4;b0rre1D;dKinsJriksIsGvaB;cob3GpGtra3D;inoza,osiQ;en,s3;te8;er,is3warG;ds;aXePiNjurhuMoKrisco15uHvorakG;!oT;arte,boHmitru,nn,rGt3C;and,ic;is;g2he0Omingu7nErd1ItG;to;us;aGcki2Hmitr2Ossanayake,x3;s,z; JbnaIlHmirGrvisFvi,w2;!ov4;gado,ic;th;bo0groot,jo6lHsilGvriA;va;a cruz,e3uG;ca;hl,mcevsCnIt2WviG;dGes,s;ov,s3;ielsGku22;!en;ki;a0Be06hRiobQlarkPoIrGunningh1H;awfo0RivGuz;elli;h1lKntJoIrGs2Nx;byn,reG;a,ia;ke,p0;i,rer2K;em2liB;ns;!e;anu;aOeMiu,oIristGu6we;eGiaG;ns1;i,ng,p9uHwGy;!dH;dGng;huJ;!n,onGu6;!g;kJnIpm2ttHudhGv7;ry;erjee,o14;!d,g;ma,raboG;rty;bJl0Cng4rG;eghetHnG;a,y;ti;an,ota1C;cerAlder3mpbeLrIstGvadi0B;iGro;llo;doHl0Er,t0uGvalho;so;so,zo;ll;a0Fe01hYiXlUoNrKuIyG;rLtyG;qi;chan2rG;ke,ns;ank5iem,oGyant;oks,wG;ne;gdan5nIruya,su,uchaHyKziG;c,n5;rd;darGik;enG;ko;ov;aGond15;nco,zG;ev4;ancFshw16;a08oGuiy2;umGwmG;ik;ckRethov1gu,ktPnNrG;gJisInG;ascoGds1;ni;ha;er,mG;anG;!n;gtGit7nP;ss3;asF;hi;er,hG;am;b4ch,ez,hRiley,kk0ldw8nMrIshHtAu0;es;ir;bInHtlGua;ett;es,i0;ieYosa;dGik;a9yoG;padhyG;ay;ra;k,ng;ic;bb0Acos09d07g04kht05lZnPrLsl2tJyG;aHd8;in;la;chis3kiG;ns3;aImstro6sl2;an;ng;ujo,ya;dJgelHsaG;ri;ovG;!a;ersJov,reG;aGjEws;ss1;en;en,on,s3;on;eksejEiyEmeiIvG;ar7es;ez;da;ev;arwHuilG;ar;al;ams,l0;er;ta;as",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:74;1:61;2:6G;3:6J;4:5S;a68b53c4Id48e44f3Wg3Hh39i31j2Wk2Fl23m1Mn1Co19p0Wq0Ur0Os05tRuQvLwDxiBy9z5;a7h5i4Muri4O;a5e5ongsh0;ng3H;greb,nzib5G;ang2e5okoha3Sunfu;katerin3Hrev0;a5n0Q;m5Hn;arsBeAi6roclBu5;h0xi,zh5P;c7n5;d5nipeg,terth4;hoek,s1L;hi5Zkl3A;l63xford;aw;a8e6i5ladivost5Molgogr6L;en3lni6S;ni22r5;o3saill4N;lenc4Wncouv3Sr3ughn;lan bat1Crumqi,trecht;aFbilisi,eEheDiBo9r7u5;l21n63r5;in,ku;i5ondh62;es51poli;kyo,m2Zron1Pulo5;n,uS;an5jua3l2Tmisoa6Bra3;j4Tshui; hag62ssaloni2H;gucigal26hr0l av1U;briz,i6llinn,mpe56ng5rtu,shk2R;i3Esh0;an,chu1n0p2Eyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4X;ba0Ht;aten is55ockholm,rasbou67uttga2V;an8e6i5;jiazhua1llo1m5Xy0;f50n5;ya1zh4H;gh3Kt4Q;att45o1Vv44;cramen16int ClBn5o paulo,ppo3Rrajevo; 7aa,t5;a 5o domin3E;a3fe,m1M;antonio,die3Cfrancisco,j5ped3Nsalvad0J;o5u0;se;em,t lake ci5Fz25;lou58peters24;a9e8i6o5;me,t59;ga,o5yadh;! de janei3F;cife,ims,nn3Jykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0Q;aFeEhDiCo9r7u6yong5;ya1;eb59ya1;a5etor3M;g52to;rt5zn0; 5la4Co;au prin0Melizabe24sa03;ls3Prae5Atts26;iladelph3Gnom pe1Aoenix;ki1tah tik3E;dua,lerYnaji,r4Ot5;na,r32;ak44des0Km1Mr6s5ttawa;a3Vlo;an,d06;a7ew5ing2Fovosibir1Jyc; 5cast36;del24orlea44taip14;g8iro4Wn5pl2Wshv33v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0W;aEeCi9o6u5;mb2Ani26sc3Y;gadishu,nt6s5;c13ul;evideo,pelli1Rre2Z;ami,l6n14s5;kolc,sissauga;an,waukee;cca,d5lbour2Mmph41ndo1Cssi3;an,ell2Xi3;cau,drAkass2Sl9n8r5shh4A;aca6ib5rakesh,se2L;or;i1Sy;a4EchFdal0Zi47;mo;id;aDeAi8o6u5vSy2;anMckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Lma5nz,sb2verpo28;!ss27; ma39i5;c5pzig;est16; p6g5ho2Wn0Cusan24;os;az,la33;aHharFiClaipeBo9rak0Du7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Hlka2Xpavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bHdu3llakuric0Qmpa3Fn6ohsiu1ra5un1Iwaguc0Q;c0Pj;d5o,p4;ah1Ty;a7e6i5ohannesV;l1Vn0;dd36rusalem;ip4k5;ar2H;bad0mph1OnArkutUs7taXz5;mir,tapala5;pa;fah0l6tanb5;ul;am2Zi2H;che2d5;ianap2Mo20;aAe7o5yder2W; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Oupe;ld coa1Bthen5;bu2S;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal29es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,nkirk,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Zr es sala1KugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1Q;lo7n6penhag0Ar5;do1Ok;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr14;ch8sha,zh07;gliari,i9lga8mayenJn6pe town,r5tanO;acCdiff;ber1Ac5;un;ry;ro;aWeNhKirmingh0WoJr9u5;chareTdapeTenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iCl9ng8r5;g6l5n;in;en;aluru,hazi;fa6grade,o horizon5;te;st;ji1rut;ghd0BkFn9ot8r7s6yan n4;ur;el,r07;celo3i,ranquil09;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a05b02cc01ddis aba00gartaZhmedXizawl,lSmPnHqa00rEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a8c5kaOtwerp;hora6o3;na;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 7buquerq6eppo,giers,ma5;ty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"trueยฆ0:2O;1:2L;2:2U;3:2F;a2Sb2Fc21d1Wes1Vf1Tg1Oh1Ki1Fj1Bk16l13m0Sn09o07pYqVrSsJtEuBverAw6y4zacatec2W;akut0o0Fu4;cat1k09;a5est 4isconsin,yomi1O;bengal,virgin0;rwick3shington4;! dc;acruz,mont;dmurt0t4;ah,tar4; 2Pa12;a6e5laxca1Vripu21u4;scaEva;langa2nnessee,x2J;bas10m4smQtar29;aulip2Hil nadu;a9elang07i7o5taf16u4ylh1J;ff02rr09s1E;me1Gno1Uuth 4;cZdY;ber0c4kkim,naloa;hu1ily;n5rawak,skatchew1xo4;ny; luis potosi,ta catari2;a4hodeA;j4ngp0C;asth1shahi;ingh29u4;e4intana roo;bec,en6retaro;aAe6rince edward4unjab; i4;sl0G;i,n5r4;ak,nambu0F;a0Rnsylv4;an0;ha0Pra4;!na;axa0Zdisha,h4klaho21ntar4reg7ss0Dx0I;io;aLeEo6u4;evo le4nav0X;on;r4tt18va scot0;f9mandy,th4; 4ampton3;c6d5yo4;rk3;ako1O;aroli2;olk;bras1Nva0Dw4; 6foundland4;! and labrad4;or;brunswick,hamp3jers5mexiTyork4;! state;ey;galPyarit;aAeghala0Mi6o4;nta2r4;dov0elos;ch6dlanDn5ss4zor11;issippi,ouri;as geraPneso18;ig1oac1;dhy12harasht0Gine,lac07ni5r4ssachusetts;anhao,i el,ylG;p4toba;ur;anca3e4incoln3ouisI;e4iR;ds;a6e5h4omi;aka06ul2;dah,lant1ntucky,ra01;bardino,lmyk0ns0Qr4;achay,el0nata0X;alis6har4iangxi;kh4;and;co;daho,llino7n4owa;d5gush4;et0;ia2;is;a6ert5i4un1;dalFm0D;ford3;mp3rya2waii;ansu,eorg0lou7oa,u4;an4izhou,jarat;ajuato,gdo4;ng;cester3;lori4uji1;da;sex;ageUe7o5uran4;go;rs4;et;lawaMrby3;aFeaEh9o4rim08umbr0;ahui7l6nnectic5rsi4ventry;ca;ut;i03orado;la;e5hattisgarh,i4uvash0;apRhuahua;chn5rke4;ss0;ya;ra;lGm4;bridge3peche;a9ihar,r8u4;ck4ryat0;ingham3;shi4;re;emen,itish columb0;h0ja cal8lk7s4v7;hkorto4que;st1;an;ar0;iforn0;ia;dygHguascalientes,lBndhr9r5ss4;am;izo2kans5un4;achal 7;as;na;a 4;pradesh;a6ber5t4;ai;ta;ba5s4;ka;ma;ea",Place:"trueยฆ0:4T;1:4V;2:44;3:4B;4:3I;a4Eb3Gc2Td2Ge26f25g1Vh1Ji1Fk1Cl14m0Vn0No0Jp08r04sTtNuLvJw7y5;a5o0Syz;kut1Bngtze;aDeChitBi9o5upatki,ycom2P;ki26o5;d5l1B;b3Ps5;i4to3Y;c0SllowbroCn5;c2Qgh2;by,chur1P;ed0ntw3Gs22;ke6r3St5;erf1f1; is0Gf3V;auxha3Mirgin is0Jost5;ok;laanbaatar,pto5xb3E;n,wn;a9eotihuac43h7ive49o6ru2Nsarskoe selo,u5;l2Dzigo47;nto,rquay,tt2J;am3e 5orn3E;bronx,hamptons;hiti,j mah0Iu1N;aEcotts bluff,eCfo,herbroQoApring9t7u5yd2F;dbu1Wn5;der03set3B;aff1ock2Nr5;atf1oud;hi37w24;ho,uth5; 1Iam1Zwo3E;a5i2O;f2Tt0;int lawrence riv3Pkhal2D;ayleigh,ed7i5oc1Z;chmo1Eo gran4ver5;be1Dfr09si4; s39cliffe,hi2Y;aCe9h8i5ompeii,utn2;c6ne5tcai2T; 2Pc0G;keri13t0;l,x;k,lh2mbr6n5r2J;n1Hzance;oke;cif38pahanaumokuak30r5;k5then0;si4w1K;ak7r6x5;f1l2X;ange county,d,f1inoco;mTw1G;e8i1Uo5;r5tt2N;th5wi0E; 0Sam19;uschwanste1Pw5; eng6a5h2market,po36;rk;la0P;a8co,e6i5uc;dt1Yll0Z;adow5ko0H;lands;chu picchu,gad2Ridsto1Ql8n7ple6r5;kh2; g1Cw11;hatt2Osf2B;ibu,t0ve1Z;a8e7gw,hr,in5owlOynd02;coln memori5dl2C;al;asi4w3;kefr7mbe1On5s,x;ca2Ig5si05;f1l27t0;ont;azan kreml14e6itchen2Gosrae,rasnoyar5ul;sk;ns0Hs1U;ax,cn,lf1n6ps5st;wiN;d5glew0Lverness;ian27ochina;aDeBi6kg,nd,ov5unti2H;d,enweep;gh6llc5;reL;bu03l5;and5;!s;r5yw0C;ef1tf1;libu24mp6r5stings;f1lem,row;stead,t0;aDodavari,r5uelph;avenAe5imsS;at 8en5; 6f1Fwi5;ch;acr3vall1H;brita0Flak3;hur5;st;ng3y villa0W;airhavHco,ra;aAgli9nf17ppi8u7ver6x5;et1Lf1;glad3t0;rope,st0;ng;nt0;rls1Ls5;t 5;e5si4;nd;aCe9fw,ig8o7ryd6u5xb;mfri3nstab00rh2tt0;en;nca18rcKv19wnt0B;by;n6r5vonpo1D;ry;!h2;nu8r5;l6t5;f1moor;ingt0;be;aLdg,eIgk,hClBo5royd0;l6m5rnwa0B;pt0;c7lingw6osse5;um;ood;he0S;earwat0St;a8el6i5uuk;chen itza,mney ro07natSricahua;m0Zt5;enh2;mor5rlottetPth2;ro;dar 5ntervilA;breaks,faZg5;rove;ld9m8r5versh2;lis6rizo pla5;in;le;bLpbellf1;weQ;aZcn,eNingl01kk,lackLolt0r5uckV;aGiAo5;ckt0ok5wns cany0;lyn,s5;i4to5;ne;de;dge6gh5;am,t0;n6t5;own;or5;th;ceb6m5;lNpt0;rid5;ge;bu5pool,wa8;rn;aconsfEdf1lBr9verly7x5;hi5;ll; hi5;lls;wi5;ck; air,l5;ingh2;am;ie5;ld;ltimore,rnsl6tters5;ea;ey;bLct0driadic,frica,ginJlGmFn9rc8s7tl6yleOzor3;es;!ant8;hcroft,ia; de triomphe,t6;adyr,ca8dov9tarct5;ic5; oce5;an;st5;er;ericas,s;be6dersh5hambra,list0;ot;rt0;cou5;rt;bot7i5;ngd0;on;sf1;ord",Country:"trueยฆ0:38;1:2L;2:3B;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om2pZqat1KrXsKtCu7v5wal4yemTz3;a25imbabwe;es,lis and futu2Y;a3enezue32ietnam;nuatu,tican city;gTk6nited 4ruXs3zbeE; 2Ca,sr;arab emirat0Kkingdom,states3;! of am2Y;!raiV;a8haCimor les0Co7rinidad 5u3;nis0rk3valu;ey,me2Zs and caic1V;and t3t3;oba1L;go,kel10nga;iw2ji3nz2T;ki2V;aDcotl1eCi9lov8o6pa2Dri lanka,u5w3yr0;az3edAitzerl1;il1;d2riname;lomon1Xmal0uth 3;afr2KkMsud2;ak0en0;erra leoFn3;gapo1Yt maart3;en;negLrb0ychellZ;int 3moa,n marino,udi arab0;hele26luc0mart21;epublic of ir0Eom2Euss0w3;an27;a4eIhilippinUitcairn1Mo3uerto riN;l1rtugF;ki2Dl4nama,pua new0Vra3;gu7;au,esti3;ne;aBe9i7or3;folk1Ith4w3;ay; k3ern mariana1D;or0O;caragua,ger3ue;!ia;p3ther1Aw zeal1;al;mib0u3;ru;a7exi6icro0Bo3yanm06;ldova,n3roc5zambA;a4gol0t3;enegro,serrat;co;cAdagasc01l7r5urit4yot3;te;an0i16;shall0Xtin3;ique;a4div3i,ta;es;wi,ys0;ao,ed02;a6e5i3uxembourg;b3echtenste12thu1G;er0ya;ban0Isotho;os,tv0;azakh1Fe4iriba04o3uwait,yrgyz1F;rXsovo;eling0Knya;a3erG;ma16p2;c7nd6r4s3taly,vory coast;le of m2rael;a3el1;n,q;ia,oJ;el1;aiTon3ungary;dur0Ng kong;aBermany,ha0QibraltAre8u3;a6ern5inea3ya0P;! biss3;au;sey;deloupe,m,tema0Q;e3na0N;ce,nl1;ar;bUmb0;a7i6r3;ance,ench 3;guia0Epoly3;nes0;ji,nl1;lklandUroeU;ast tim7cu6gypt,l salv6ngl1quatorial4ritr5st3thiop0;on0; guin3;ea;ad3;or;enmark,jibou5ominica4r con3;go;!n C;ti;aBentral african Ah8o5roat0u4yprRzech3; 9ia;ba,racao;c4lo3morQngo brazzaville,okGsta r04te de ivoiL;mb0;osE;i3ristmasG;le,na;republic;m3naUpe verde,ymanA;bod0ero3;on;aGeDhut2o9r5u3;lgar0r3;kina faso,ma,undi;azil,itish 3unei;virgin3; is3;lands;liv0nai5snia and herzegoviHtswaHuvet3; isl1;and;re;l3n8rmuG;ar3gium,ize;us;h4ngladesh,rbad3;os;am4ra3;in;as;fghaGlDmBn6r4ustr3zerbaij2;al0ia;genti3men0uba;na;dorra,g5t3;arct7igua and barbu3;da;o3uil3;la;er3;ica;b3ger0;an0;ia;ni3;st2;an",FirstName:"trueยฆaTblair,cQdOfrancoZgabMhinaLilya,jHkClBm6ni4quinn,re3s0;h0umit,yd;ay,e0iloh;a,lby;g9ne;co,ko0;!s;a1el0ina,org6;!okuhF;ds,naia,r1tt0xiB;i,y;ion,lo;ashawn,eif,uca;a3e1ir0rM;an;lsFn0rry;dall,yat5;i,sD;a0essIie,ude;i1m0;ie,mG;me;ta;rie0y;le;arcy,ev0;an,on;as1h0;arl8eyenne;ey,sidy;drien,kira,l4nd1ubr0vi;ey;i,r0;a,e0;a,y;ex2f1o0;is;ie;ei,is",WeekDay:"trueยฆfri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"trueยฆdec0february,july,nov0octo1sept0;em0;ber",Date:"trueยฆago,on4som4t1week0yesterd5; end,ends;mr1o0;d2morrow;!w;ed0;ay",Duration:"trueยฆcenturAd8h7m5q4se3w1y0;ear8r8;eek0k7;!end,s;ason,c5;tr,uarter;i0onth3;llisecond2nute2;our1r1;ay0ecade0;!s;ies,y",FemaleName:"trueยฆ0:J7;1:JB;2:IJ;3:IK;4:J1;5:IO;6:JS;7:JO;8:HB;9:JK;A:H4;B:I2;C:IT;D:JH;E:IX;F:BA;G:I4;aGTbFLcDRdD0eBMfB4gADh9Ti9Gj8Dk7Cl5Wm48n3Lo3Hp33qu32r29s15t0Eu0Cv02wVxiTyOzH;aLeIineb,oHsof3;e3Sf3la,ra;h2iKlIna,ynH;ab,ep;da,ma;da,h2iHra;nab;aKeJi0FolB7uIvH;et8onDP;i0na;le0sen3;el,gm3Hn,rGLs8W;aoHme0nyi;m5XyAD;aMendDZhiDGiH;dele9lJnH;if48niHo0;e,f47;a,helmi0lHma;a,ow;ka0nB;aNeKiHusa5;ck84kIl8oleAviH;anFenJ4;ky,toriBK;da,lA8rHs0;a,nHoniH9;a,iFR;leHnesH9;nILrH;i1y;g9rHs6xHA;su5te;aYeUhRiNoLrIuHy2;i,la;acJ3iHu0J;c3na,sH;hFta;nHr0F;iFya;aJffaEOnHs6;a,gtiH;ng;!nFSra;aIeHomasi0;a,l9Oo8Ares1;l3ndolwethu;g9Fo88rIssH;!a,ie;eHi,ri7;sa,za;bOlMmKnIrHs6tia0wa0;a60yn;iHya;a,ka,s6;arFe2iHm77ra;!ka;a,iH;a,t6;at6it6;a0Ecarlett,e0AhWiSkye,neza0oQri,tNuIyH;bIGlvi1;ha,mayIJniAsIzH;an3Net8ie,y;anHi7;!a,e,nH;aCe;aIeH;fan4l5Dphan6E;cI5r5;b3fiAAm0LnHphi1;d2ia,ja,ya;er2lJmon1nIobh8QtH;a,i;dy;lETv3;aMeIirHo0risFDy5;a,lDM;ba,e0i5lJrH;iHr6Jyl;!d8Ifa;ia,lDZ;hd,iMki2nJrIu0w0yH;la,ma,na;i,le9on,ron,yn;aIda,ia,nHon;a,on;!ya;k6mH;!aa;lJrItaye82vH;da,inj;e0ife;en1i0ma;anA9bLd5Oh1SiBkKlJmInd2rHs6vannaC;aCi0;ant6i2;lDOma,ome;ee0in8Tu2;in1ri0;a05eZhXiUoHuthDM;bScRghQl8LnPsJwIxH;anB3ie,y;an,e0;aIeHie,lD;ann7ll1marDGtA;!lHnn1;iHyn;e,nH;a,dF;da,i,na;ayy8G;hel67io;bDRerAyn;a,cIkHmas,nFta,ya;ki,o;h8Xki;ea,iannGMoH;da,n1P;an0bJemFgi0iInHta,y0;a8Bee;han86na;a,eH;cHkaC;a,ca;bi0chIe,i0mo0nHquETy0;di,ia;aERelHiB;!e,le;een4ia0;aPeOhMiLoJrHute6A;iHudenCV;scil3LyamvaB;lHrt3;i0ly;a,paluk;ilome0oebe,ylH;is,lis;ggy,nelope,r5t2;ige,m0VnKo5rvaDMtIulH;a,et8in1;ricHt4T;a,e,ia;do2i07;ctav3dIfD3is6ksa0lHphD3umC5yunbileg;a,ga,iv3;eHvAF;l3t8;aWeUiMoIurHy5;!ay,ul;a,eJor,rIuH;f,r;aCeEma;ll1mi;aNcLhariBQkKlaJna,sHta,vi;anHha;ur;!y;a,iDZki;hoGk9YolH;a,e4P;!mh;hir,lHna,risDEsreE;!a,lBV;asuMdLh3i6Dl5nKomi7rgEVtH;aHhal4;lHs6;i1ya;cy,et8;e9iF0ya;nngu2X;a0Ackenz4e02iMoJrignayani,uriDJyH;a,rH;a,iOlNna,tG;bi0i2llBJnH;a,iH;ca,ka,qD9;a,cUdo4ZkaTlOmi,nMrItzi,yH;ar;aJiIlH;anET;am;!l,nB;dy,eHh,n4;nhGrva;aKdJe0iCUlH;iHy;cent,e;red;!gros;!e5;ae5hH;ae5el3Z;ag5DgNi,lKrH;edi7AiIjem,on,yH;em,l;em,sCG;an4iHliCF;nHsCJ;a,da;!an,han;b09cASd07e,g05ha,i04ja,l02n00rLsoum5YtKuIv84xBKyHz4;bell,ra,soBB;d7rH;a,eE;h8Gild1t4;a,cUgQiKjor4l7Un4s6tJwa,yH;!aHbe6Xja9lAE;m,nBL;a,ha,in1;!aJbCGeIja,lDna,sHt63;!a,ol,sa;!l1D;!h,mInH;!a,e,n1;!awit,i;arJeIie,oHr48ueri8;!t;!ry;et46i3B;el4Xi7Cy;dHon,ue5;akranAy;ak,en,iHlo3S;a,ka,nB;a,re,s4te;daHg4;!l3E;alDd4elHge,isDJon0;ei9in1yn;el,le;a0Ne0CiXoQuLyH;d3la,nH;!a,dIe2OnHsCT;!a,e2N;a,sCR;aD4cJel0Pis1lIna,pHz;e,iA;a,u,wa;iHy;a0Se,ja,l2NnB;is,l1UrItt1LuHvel4;el5is1;aKeIi7na,rH;aADi7;lHn1tA;ei;!in1;aTbb9HdSepa,lNnKsJvIzH;!a,be5Ret8z4;!ia;a,et8;!a,dH;a,sHy;ay,ey,i,y;a,iJja,lH;iHy;aA8e;!aH;!nF;ia,ya;!nH;!a,ne;aPda,e0iNjYla,nMoKsJtHx93y5;iHt4;c3t3;e2PlCO;la,nHra;a,ie,o2;a,or1;a,gh,laH;!ni;!h,nH;a,d2e,n5V;cOdon9DiNkes6mi9Gna,rMtJurIvHxmi,y5;ern1in3;a,e5Aie,yn;as6iIoH;nya,ya;fa,s6;a,isA9;a,la;ey,ie,y;a04eZhXiOlASoNrJyH;lHra;a,ee,ie;istHy6I;a,en,iIyH;!na;!e,n5F;nul,ri,urtnB8;aOerNlB7mJrHzzy;a,stH;en,in;!berlImernH;aq;eHi,y;e,y;a,stE;!na,ra;aHei2ongordzol;dij1w5;el7UiKjsi,lJnIrH;a,i,ri;d2na,za;ey,i,lBLs4y;ra,s6;biAcARdiat7MeBAiSlQmPnyakuma1DrNss6NtKviAyH;!e,lH;a,eH;e,i8T;!a6HeIhHi4TlDri0y;ar8Her8Hie,leErBAy;!lyn8Ori0;a,en,iHl5Xoli0yn;!ma,nFs95;a5il1;ei8Mi,lH;e,ie;a,tl6O;a0AeZiWoOuH;anMdLlHst88;es,iH;a8NeHs8X;!n9tH;!a,te;e5Mi3My;a,iA;!anNcelDdMelGhan7VleLni,sIva0yH;a,ce;eHie;fHlDph7Y;a,in1;en,n1;i7y;!a,e,n45;lHng;!i1DlH;!i1C;anNle0nKrJsH;i8JsH;!e,i8I;i,ri;!a,elGif2CnH;a,et8iHy;!e,f2A;a,eJiInH;a,eIiH;e,n1;!t8;cMda,mi,nIque4YsminFvie2y9zH;min7;a7eIiH;ce,e,n1s;!lHs82t0F;e,le;inIk6HlDquelH;in1yn;da,ta;da,lRmPnOo0rNsIvaHwo0zaro;!a0lu,na;aJiIlaHob89;!n9R;do2;belHdo2;!a,e,l3B;a7Ben1i0ma;di2es,gr72ji;a9elBogH;en1;a,e9iHo0se;a0na;aSeOiJoHus7Kyacin2C;da,ll4rten24snH;a,i9U;lImaH;ri;aIdHlaI;a,egard;ry;ath1BiJlInrietArmi9sH;sa,t1A;en2Uga,mi;di;bi2Fil8MlNnMrJsItHwa,yl8M;i5Tt4;n60ti;iHmo51ri53;etH;!te;aCnaC;a,ey,l4;a02eWiRlPoNrKunJwH;enHyne1R;!dolD;ay,el;acieIetHiselB;a,chE;!la;ld1CogooH;sh;adys,enHor3yn2K;a,da,na;aKgi,lIna,ov8EselHta;a,e,le;da,liH;an;!n0;mLnJorgIrH;ald5Si,m3Etrud7;et8i4X;a,eHna;s29vieve;ma;bIle,mHrnet,yG;al5Si5;iIrielH;a,l1;!ja;aTeQiPlorOoz3rH;anJeIiH;da,eB;da,ja;!cH;esIiHoi0P;n1s66;!ca;a,enc3;en,o0;lIn0rnH;anB;ec3ic3;jr,nArKtHy7;emIiHma,oumaA;ha,ma,n;eh;ah,iBrah,za0;cr4Rd0Re0Qi0Pk0Ol07mXn54rUsOtNuMvHwa;aKelIiH;!e,ta;inFyn;!a;!ngel4V;geni1ni47;h5Yien9ta;mLperanKtH;eIhHrel5;er;l31r7;za;a,eralB;iHma,ne4Lyn;cHka,n;a,ka;aPeNiKmH;aHe21ie,y;!li9nuH;elG;lHn1;e7iHy;a,e,ja;lHrald;da,y;!nue5;aWeUiNlMma,no2oKsJvH;a,iH;na,ra;a,ie;iHuiH;se;a,en,ie,y;a0c3da,e,f,nMsJzaH;!betHveA;e,h;aHe,ka;!beH;th;!a,or;anor,nH;!a,i;!in1na;ate1Rta;leEs6;vi;eIiHna,wi0;e,th;l,n;aYeMh3iLjeneKoH;lor5Vminiq4Ln3FrHtt4;a,eEis,la,othHthy;ea,y;ba;an09naCon9ya;anQbPde,eOiMlJmetr3nHsir5M;a,iH;ce,se;a,iIla,orHphi9;es,is;a,l6F;dHrdH;re;!d5Ena;!b2ForaCraC;a,d2nH;!a,e;hl3i0l0GmNnLphn1rIvi1WyH;le,na;a,by,cIia,lH;a,en1;ey,ie;a,et8iH;!ca,el1Aka,z;arHia;is;a0Re0Nh04i02lUoJristIynH;di,th3;al,i0;lPnMrIurH;tn1D;aJd2OiHn2Ori9;!nH;a,e,n1;!l4;cepci5Cn4sH;tanHuelo;ce,za;eHleE;en,t8;aJeoIotH;il54;!pat2;ir7rJudH;et8iH;a,ne;a,e,iH;ce,sZ;a2er2ndH;i,y;aReNloe,rH;isJyH;stH;al;sy,tH;a1Sen,iHy;an1e,n1;deJlseIrH;!i7yl;a,y;li9;nMrH;isKlImH;ai9;a,eHot8;n1t8;!sa;d2elGtH;al,elG;cIlH;es8i47;el3ilH;e,ia,y;itlYlXmilWndVrMsKtHy5;aIeIhHri0;er1IleErDy;ri0;a38sH;a37ie;a,iOlLmeJolIrH;ie,ol;!e,in1yn;lHn;!a,la;a,eIie,otHy;a,ta;ne,y;na,s1X;a0Ii0I;a,e,l1;isAl4;in,yn;a0Ke02iZlXoUrH;andi7eRiJoIyH;an0nn;nwDoke;an3HdgMgiLtH;n31tH;!aInH;ey,i,y;ny;d,t8;etH;!t7;an0e,nH;da,na;bbi7glarIlo07nH;iAn4;ka;ancHythe;a,he;an1Clja0nHsm3M;iAtH;ou;aWcVlinUniArPssOtJulaCvH;!erlH;ey,y;hJsy,tH;e,iHy7;e,na;!anH;ie,y;!ie;nItHyl;ha,ie;adIiH;ce;et8i9;ay,da;ca,ky;!triH;ce,z;rbJyaH;rmH;aa;a2o2ra;a2Ub2Od25g21i1Sj5l18m0Zn0Boi,r06sWtVuPvOwa,yIzH;ra,u0;aKes6gJlIn,seH;!l;in;un;!nH;a,na;a,i2K;drLguJrIsteH;ja;el3;stH;in1;a,ey,i,y;aahua,he0;hIi2Gja,miAs2DtrH;id;aMlIraqHt21;at;eIi7yH;!n;e,iHy;gh;!nH;ti;iJleIo6piA;ta;en,n1t8;aHelG;!n1J;a01dje5eZgViTjRnKohito,toHya;inet8nH;el5ia;te;!aKeIiHmJ;e,ka;!mHtt7;ar4;!belIliHmU;sa;!l1;a,eliH;ca;ka,sHta;a,sa;elHie;a,iH;a,ca,n1qH;ue;!tH;a,te;!bImHstasiMya;ar3;el;aLberKeliJiHy;e,l3naH;!ta;a,ja;!ly;hGiIl3nB;da;a,ra;le;aWba,ePiMlKthJyH;a,c3sH;a,on,sa;ea;iHys0N;e,s0M;a,cIn1sHza;a,e,ha,on,sa;e,ia,ja;c3is6jaKksaKna,sJxH;aHia;!nd2;ia,saH;nd2;ra;ia;i0nIyH;ah,na;a,is,naCoud;la;c6da,leEmNnLsH;haClH;inHyY;g,n;!h;a,o,slH;ey;ee;en;at6g4nIusH;ti0;es;ie;aWdiTelMrH;eJiH;anMenH;a,e,ne;an0;na;!aLeKiIyH;nn;a,n1;a,e;!ne;!iH;de;e,lDsH;on;yn;!lH;i9yn;ne;aKbIiHrL;!e,gaK;ey,i7y;!e;gaH;il;dKliyJradhIs6;ha;ya;ah;a,ya",Honorific:"trueยฆdirector1field marsh2lieutenant1rear0sergeant major,vice0; admir1; gener0;al","Adj|Gerund":"trueยฆ0:3F;1:3H;2:31;3:2X;4:35;5:33;6:3C;7:2Z;8:36;9:29;a33b2Tc2Bd1Te1If19g12h0Zi0Rl0Nm0Gnu0Fo0Ap04rYsKtEuBvAw1Ayiel3;ar6e08;nBpA;l1Rs0B;fol3n1Zsett2;aEeDhrBi4ouc7rAwis0;e0Bif2oub2us0yi1;ea1SiA;l2vi1;l2mp0rr1J;nt1Vxi1;aMcreec7enten2NhLkyrocke0lo0Vmi2oJpHtDuBweA;e0Ul2;pp2ArA;gi1pri5roun3;aBea8iAri2Hun9;mula0r4;gge4rA;t2vi1;ark2eAraw2;e3llb2F;aAot7;ki1ri1;i9oc29;dYtisf6;aEeBive0oAus7;a4l2;assu4defi9fres7ig9juve07mai9s0vAwar3;ea2italiAol1G;si1zi1;gi1ll6mb2vi1;a6eDier23lun1VrAun2C;eBoA;mi5vo1Z;ce3s5vai2;n3rpleA;xi1;ffCpWutBverAwi1;arc7lap04p0Pri3whel8;goi1l6st1J;en3sA;et0;m2Jrtu4;aEeDiCoBuAyst0L;mb2;t1Jvi1;s5tiga0;an1Rl0n3smeri26;dAtu4;de9;aCeaBiAo0U;fesa0Tvi1;di1ni1;c1Fg19s0;llumiGmFnArri0R;cDfurHsCtBviA;go23ti1;e1Oimi21oxica0rig0V;pi4ul0;orpo20r0K;po5;na0;eaBorr02umilA;ia0;li1rtwar8;lFrA;atiDipCoBuelA;i1li1;undbrea10wi1;pi1;f6ng;a4ea8;a3etc7it0lEoCrBulfA;il2;ee1FighXust1L;rAun3;ebo3thco8;aCoA;a0wA;e4i1;mi1tte4;lectrJmHnExA;aCci0hBis0pA;an3lo3;aOila1B;c0spe1A;ab2coura0CdBergi13ga0Clive9ric7s02tA;hral2i0J;ea4u4;barras5er09pA;owe4;if6;aQeIiBrA;if0;sAzz6;aEgDhearCsen0tA;rAur11;ac0es5;te9;us0;ppoin0r8;biliGcDfi9gra3ligh0mBpres5sAvasG;erE;an3ea9orA;ali0L;a6eiBli9rA;ea5;vi1;ta0;maPri1s7un0zz2;aPhMlo5oAripp2ut0;mGnArrespon3;cer9fDspi4tA;inBrA;as0ibu0ol2;ui1;lic0u5;ni1;fDmCpA;eAromi5;l2ti1;an3;or0;aAil2;llenAnAr8;gi1;l8ptAri1;iva0;aff2eGin3lFoDrBuA;d3st2;eathtaAui5;ki1;gg2i2o8ri1unA;ci1;in3;co8wiA;lAtc7;de4;bsorVcOgonMlJmHnno6ppea2rFsA;pi4su4toA;nBun3;di1;is7;hi1;res0;li1;aFu5;si1;ar8lu4;ri1;mi1;iAzi1;zi1;cAhi1;eleDomA;moBpan6;yi1;da0;ra0;ti1;bi1;ng",Comparable:"trueยฆ0:3C;1:3Q;2:3F;a3Tb3Cc33d2Te2Mf2Ag1Wh1Li1Fj1Ek1Bl13m0Xn0So0Rp0Iqu0Gr07sHtCug0vAw4y3za0Q;el10ouN;ary,e6hi5i3ry;ck0Cde,l3n1ry,se;d,y;ny,te;a3i3R;k,ry;a3erda2ulgar;gue,in,st;a6en2Xhi5i4ouZr3;anqu2Cen1ue;dy,g36me0ny;ck,rs28;ll,me,rt,wd3I;aRcaPeOhMiLkin0BlImGoEpDt6u4w3;eet,ift;b3dd0Wperfi21rre28;sta26t21;a8e7iff,r4u3;pUr1;a4ict,o3;ng;ig2Vn0N;a1ep,rn;le,rk,te0;e1Si2Vright0;ci1Yft,l3on,re;emn,id;a3el0;ll,rt;e4i3y;g2Mm0Z;ek,nd2T;ck24l0mp1L;a3iRrill,y;dy,l01rp;ve0Jxy;n1Jr3;ce,y;d,fe,int0l1Hv0V;a8e6i5o3ude;mantic,o19sy,u3;gh;pe,t1P;a3d,mo0A;dy,l;gg4iFndom,p3re,w;id;ed;ai2i3;ck,et;hoAi1Fl9o8r5u3;ny,r3;e,p11;egna2ic4o3;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e5i4o3u14;b0Sisy,rm0Ysy;bb0ce,mb0R;a3r1w;r,t;ad,e5ild,o4u3;nda12te;ist,o1;a4ek,l3;low;s0ty;a8e7i6o3ucky;f0Jn4o15u3ve0w10y0N;d,sy;e0g;ke0l,mp,tt0Eve0;e1Qwd;me,r3te;ge;e4i3;nd;en;ol0ui19;cy,ll,n3;secu6t3;e3ima4;llege2rmedia3;te;re;aAe7i6o5u3;ge,m3ng1C;bYid;me0t;gh,l0;a3fXsita2;dy,rWv3;en0y;nd13ppy,r3;d3sh;!y;aFenEhCiBlAoofy,r3;a8e6i5o3ue0Z;o3ss;vy;m,s0;at,e3y;dy,n;nd,y;ad,ib,ooD;a2d1;a3o3;st0;tDuiS;u1y;aCeebBi9l8o6r5u3;ll,n3r0N;!ny;aCesh,iend0;a3nd,rmD;my;at,ir7;erce,nan3;ci9;le;r,ul3;ty;a6erie,sse4v3xtre0B;il;nti3;al;r4s3;tern,y;ly,th0;appZe9i5ru4u3;mb;nk;r5vi4z3;zy;ne;e,ty;a3ep,n9;d3f,r;!ly;agey,h8l7o5r4u3;dd0r0te;isp,uel;ar3ld,mmon,st0ward0zy;se;evKou1;e3il0;ap,e3;sy;aHiFlCoAr5u3;ff,r0sy;ly;a6i3oad;g4llia2;nt;ht;sh,ve;ld,un3;cy;a4o3ue;nd,o1;ck,nd;g,tt3;er;d,ld,w1;dy;bsu6ng5we3;so3;me;ry;rd",Adverb:"trueยฆa08b05d00eYfSheQinPjustOkinda,likewiZmMnJoEpCquite,r9s5t2u0very,well;ltima01p0; to,wards5;h1iny bit,o0wiO;o,t6;en,us;eldom,o0uch;!me1rt0; of;how,times,w0C;a1e0;alS;ndomRth05;ar excellenEer0oint blank; Lhaps;f3n0utright;ce0ly;! 0;ag05moX; courGten;ewJo0; longWt 0;onHwithstand9;aybe,eanwhiNore0;!ovT;! aboX;deed,steY;lla,n0;ce;or3u0;ck1l9rther0;!moK;ing; 0evK;exampCgood,suH;n mas0vI;se;e0irect2; 2fini0;te0;ly;juAtrop;ackward,y 0;far,no0; means,w; GbroFd nauseam,gEl7ny5part,s4t 2w0;ay,hi0;le;be7l0mo7wor7;arge,ea6; soon,i4;mo0way;re;l 3mo2ongsi1ready,so,togeth0ways;er;de;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"trueยฆaXbTcReNhowMiEjust00noBo9p8supposing,t5wh0yet;e1il0o3;e,st;n1re0thN; if,by,vM;evL;h0il,o;erefOo0;!uU;lus,rovided th9;r0therwiM;! not; mattEr,w0;! 0;since,th4w7;f4n0; 0asmuch;as mIcaForder t0;h0o;at;! 0;only,t0w0;hen;!ev3;ith2ven0;! 0;if,tB;er;o0uz;s,z;e0ut,y the time;cau1f0;ore;se;lt3nd,s 0;far1if,m0soon1t2;uch0; as;hou0;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",Determiner:"trueยฆaBboth,d9e6few,le5mu8neiDplenty,s4th2various,wh0;at0ich0;evC;a0e4is,ose;!t;everal,ome;!ast,s;a1l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er","Adj|Present":"trueยฆa07b04cVdQeNfJhollIidRlEmCnarrIoBp9qua8r7s3t2uttFw0;aKet,ro0;ng,u08;endChin;e2hort,l1mooth,our,pa9tray,u0;re,speU;i2ow;cu6da02leSpaN;eplica01i02;ck;aHerfePr0;eseUime,omV;bscu1pen,wn;atu0e3odeH;re;a2e1ive,ow0;er;an;st,y;ow;a2i1oul,r0;ee,inge;rm;iIke,ncy,st;l1mpty,x0;emHpress;abo4ic7;amp,e2i1oub0ry,ull;le;ffu9re6;fu8libe0;raE;alm,l5o0;mpleCn3ol,rr1unterfe0;it;e0u7;ct;juga8sum7;ea1o0;se;n,r;ankru1lu0;nt;pt;li2pproxi0rticula1;ma0;te;ght","Person|Adj":"trueยฆb3du2earnest,frank,mi2r0san1woo1;an0ich,u1;dy;sty;ella,rown",Modal:"trueยฆc5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Verb:"trueยฆborn,cannot,gonna,has,keep tabs,msg","Person|Verb":"trueยฆb8ch7dr6foster,gra5ja9lan4ma2ni9ollie,p1rob,s0wade;kip,pike,t5ue;at,eg,ier2;ck,r0;k,shal;ce;ce,nt;ew;ase,u1;iff,l1ob,u0;ck;aze,ossom","Person|Date":"trueยฆa2j0sep;an0une;!uary;p0ugust,v0;ril"};const ca=36,ha="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",da=ha.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var ga=function(e){if(void 0!==da[e])return da[e];let t=0,n=1,r=ca,a=1;for(;n=0;n--,a*=ca){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t};const ma=function(e,t,n){const r=ga(t);return r{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{let t=function(e){if(!e)return{};const t=e.split("|").reduce(((e,t)=>{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{if(Pa[t]=e,"Noun|Verb"===e){let e=ya(t,Aa);Pa[e]="Plural|Verb"}})):Object.keys(t).forEach((t=>{ka[t]=e}))})),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","ka[e]="Emoticon")),delete ka[""],delete ka.null,delete ka[" "];const Ca="Singular";var Na={beforeTags:{Determiner:Ca,Possessive:Ca,Acronym:Ca,Noun:Ca,Adjective:Ca,PresentTense:Ca,Gerund:Ca,PastTense:Ca,Infinitive:Ca,Date:Ca,Ordinal:Ca,Demonym:Ca},afterTags:{Value:Ca,Modal:Ca,Copula:Ca,PresentTense:Ca,PastTense:Ca,Demonym:Ca,Actor:Ca},beforeWords:{the:Ca,with:Ca,without:Ca,of:Ca,for:Ca,any:Ca,all:Ca,on:Ca,cut:Ca,cuts:Ca,increase:Ca,decrease:Ca,raise:Ca,drop:Ca,save:Ca,saved:Ca,saves:Ca,make:Ca,makes:Ca,made:Ca,minus:Ca,plus:Ca,than:Ca,another:Ca,versus:Ca,neither:Ca,about:Ca,favorite:Ca,best:Ca,daily:Ca,weekly:Ca,linear:Ca,binary:Ca,mobile:Ca,lexical:Ca,technical:Ca,computer:Ca,scientific:Ca,security:Ca,government:Ca,popular:Ca,formal:Ca,no:Ca,more:Ca,one:Ca,let:Ca,her:Ca,his:Ca,their:Ca,our:Ca,us:Ca,sheer:Ca,monthly:Ca,yearly:Ca,current:Ca,previous:Ca,upcoming:Ca,last:Ca,next:Ca,main:Ca,initial:Ca,final:Ca,beginning:Ca,end:Ca,top:Ca,bottom:Ca,future:Ca,past:Ca,major:Ca,minor:Ca,side:Ca,central:Ca,peripheral:Ca,public:Ca,private:Ca},afterWords:{of:Ca,system:Ca,aid:Ca,method:Ca,utility:Ca,tool:Ca,reform:Ca,therapy:Ca,philosophy:Ca,room:Ca,authority:Ca,says:Ca,said:Ca,wants:Ca,wanted:Ca,is:Ca,did:Ca,do:Ca,can:Ca,wise:Ca}};const ja="Infinitive";var xa={beforeTags:{Modal:ja,Adverb:ja,Negative:ja,Plural:ja},afterTags:{Determiner:ja,Adverb:ja,Possessive:ja,Reflexive:ja,Preposition:ja,Cardinal:ja,Comparative:ja,Superlative: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,let:ja,even:ja,when:ja,help:ja,he:ja,she:ja,it:ja,being:ja,bi:ja,co:ja,contra:ja,de:ja,inter:ja,intra:ja,mis:ja,pre:ja,out:ja,counter:ja,nobody:ja,somebody:ja,anybody:ja,everybody:ja},afterWords:{the:ja,me:ja,you:ja,him:ja,us:ja,her:ja,his:ja,them:ja,they:ja,it:ja,himself:ja,herself:ja,itself:ja,myself:ja,ourselves:ja,themselves:ja,something:ja,anything:ja,a:ja,an:ja,up:ja,down:ja,by:ja,out:ja,off:ja,under:ja,what:ja,all:ja,to:ja,because:ja,although:ja,how:ja,otherwise:ja,together:ja,though:ja,into:ja,yet:ja,more:ja,here:ja,there:ja,away:ja}};const Ia={beforeTags:Object.assign({},xa.beforeTags,Na.beforeTags,{}),afterTags:Object.assign({},xa.afterTags,Na.afterTags,{}),beforeWords:Object.assign({},xa.beforeWords,Na.beforeWords,{}),afterWords:Object.assign({},xa.afterWords,Na.afterWords,{})},Ta="Adjective";var Da={beforeTags:{Determiner:Ta,Possessive:Ta,Hyphenated:Ta},afterTags:{Adjective:Ta},beforeWords:{seem:Ta,seemed:Ta,seems:Ta,feel:Ta,feels:Ta,felt:Ta,stay: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,truly:Ta,how:Ta,deeply:Ta,hella:Ta,profoundly:Ta,extremely:Ta,so:Ta,badly:Ta,mostly:Ta,totally:Ta,awfully:Ta,rather:Ta,nothing:Ta,something:Ta,anything:Ta,not:Ta,me:Ta,is:Ta,face:Ta,faces:Ta,faced:Ta,look:Ta,looks:Ta,looked:Ta,reveal:Ta,reveals:Ta,revealed:Ta,sound:Ta,sounded:Ta,sounds:Ta,remains:Ta,remained:Ta,prove:Ta,proves:Ta,proved:Ta,becomes:Ta,stays:Ta,tastes:Ta,taste:Ta,smells:Ta,smell:Ta,gets:Ta,grows:Ta,as:Ta,rings:Ta,radiates:Ta,conveys:Ta,convey:Ta,conveyed:Ta,of:Ta},afterWords:{too:Ta,also:Ta,or:Ta,enough:Ta,as:Ta}};const Ha="Gerund";var Ea={beforeTags:{Adverb:Ha,Preposition:Ha,Conjunction:Ha},afterTags:{Adverb:Ha,Possessive:Ha,Person:Ha,Pronoun:Ha,Determiner:Ha,Copula:Ha,Preposition:Ha,Conjunction:Ha,Comparative:Ha},beforeWords:{been:Ha,keep:Ha,continue:Ha,stop:Ha,am:Ha,be:Ha,me:Ha,began:Ha,start:Ha,starts:Ha,started:Ha,stops:Ha,stopped:Ha,help:Ha,helps:Ha,avoid:Ha,avoids:Ha,love:Ha,loves:Ha,loved:Ha,hate:Ha,hates:Ha,hated:Ha},afterWords:{you:Ha,me:Ha,her:Ha,him:Ha,his:Ha,them:Ha,their:Ha,it:Ha,this:Ha,there:Ha,on:Ha,about:Ha,for:Ha,up:Ha,down:Ha}};const Ga="Gerund",Oa="Adjective",Fa={beforeTags:Object.assign({},Da.beforeTags,Ea.beforeTags,{Imperative:Ga,Infinitive:Oa,Plural:Ga}),afterTags:Object.assign({},Da.afterTags,Ea.afterTags,{Noun:Oa}),beforeWords:Object.assign({},Da.beforeWords,Ea.beforeWords,{is:Oa,are:Ga,was:Oa,of:Oa,suggest:Ga,suggests:Ga,suggested:Ga,recommend:Ga,recommends:Ga,recommended:Ga,imagine:Ga,imagines:Ga,imagined:Ga,consider:Ga,considered:Ga,considering:Ga,resist:Ga,resists:Ga,resisted:Ga,avoid:Ga,avoided:Ga,avoiding:Ga,except:Oa,accept:Oa,assess:Ga,explore:Ga,fear:Ga,fears:Ga,appreciate:Ga,question:Ga,help:Ga,embrace:Ga,with:Oa}),afterWords:Object.assign({},Da.afterWords,Ea.afterWords,{to:Ga,not:Ga,the:Ga})},Va={beforeTags:{Determiner:void 0,Cardinal:"Noun",PhrasalVerb:"Adjective"},afterTags:{}},za={beforeTags:Object.assign({},Da.beforeTags,Na.beforeTags,Va.beforeTags),afterTags:Object.assign({},Da.afterTags,Na.afterTags,Va.afterTags),beforeWords:Object.assign({},Da.beforeWords,Na.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective",off:"Adjective",out:"Adjective"}),afterWords:Object.assign({},Da.afterWords,Na.afterWords)};let Ba="PastTense",Sa="Adjective";const $a={beforeTags:{Adverb:Ba,Pronoun:Ba,ProperNoun:Ba,Auxiliary:Ba,Noun:Ba},afterTags:{Possessive:Ba,Pronoun:Ba,Determiner:Ba,Adverb:Ba,Comparative:Ba,Date:Ba,Gerund:Ba},beforeWords:{be:Ba,who:Ba,get:Sa,had:Ba,has:Ba,have:Ba,been:Ba,it:Ba,as:Ba,for:Sa,more:Sa,always:Sa},afterWords:{by:Ba,back:Ba,out:Ba,in:Ba,up:Ba,down:Ba,before:Ba,after:Ba,for:Ba,the:Ba,with:Ba,as:Ba,on:Ba,at:Ba,between:Ba,to:Ba,into:Ba,us:Ba,them:Ba,his:Ba,her:Ba,their:Ba,our:Ba,me:Ba,about:Sa}};var Ma={beforeTags:Object.assign({},Da.beforeTags,$a.beforeTags),afterTags:Object.assign({},Da.afterTags,$a.afterTags),beforeWords:Object.assign({},Da.beforeWords,$a.beforeWords),afterWords:Object.assign({},Da.afterWords,$a.afterWords)};const Ka={afterTags:{Noun:"Adjective",Conjunction:void 0}},La={beforeTags:Object.assign({},Da.beforeTags,xa.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Da.afterTags,xa.afterTags,Ka.afterTags),beforeWords:Object.assign({},Da.beforeWords,xa.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Da.afterWords,xa.afterWords,{to:void 0,as:"Adjective"})},Ja={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},Wa={Value:"Gerund"},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"},Ua={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"},Ra={beforeTags:Object.assign({},Ea.beforeTags,Na.beforeTags,Ja),afterTags:Object.assign({},Ea.afterTags,Na.afterTags,Wa),beforeWords:Object.assign({},Ea.beforeWords,Na.beforeWords,qa),afterWords:Object.assign({},Ea.afterWords,Na.afterWords,Ua)},Qa="Singular",Za="Infinitive",_a={beforeTags:Object.assign({},xa.beforeTags,Na.beforeTags,{Adjective:Qa,Particle:Qa}),afterTags:Object.assign({},xa.afterTags,Na.afterTags,{ProperNoun:Za,Gerund:Za,Adjective:Za,Copula:Qa}),beforeWords:Object.assign({},xa.beforeWords,Na.beforeWords,{is:Qa,was:Qa,of:Qa,have:null}),afterWords:Object.assign({},xa.afterWords,Na.afterWords,{instead:Za,about:Za,his:Za,her:Za,to:null,by:null,in:null})},Xa="Person";var Ya={beforeTags:{Honorific:Xa,Person: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 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,with:"Person"},afterWords:{sometime:eo,in:eo,of:eo,until:eo,the:eo}};var no={beforeTags:Object.assign({},Ya.beforeTags,to.beforeTags),afterTags:Object.assign({},Ya.afterTags,to.afterTags),beforeWords:Object.assign({},Ya.beforeWords,to.beforeWords),afterWords:Object.assign({},Ya.afterWords,to.afterWords)};const ro="Place",ao={beforeTags:{Place:ro},afterTags:{Place:ro,Abbreviation:ro},beforeWords:{in:ro,by:ro,near:ro,from:ro,to:ro},afterWords:{in:ro,by:ro,near:ro,from:ro,to:ro,government:ro,council:ro,region:ro,city:ro}};let oo="Unit";const io={"Actor|Verb":Ia,"Adj|Gerund":Fa,"Adj|Noun":za,"Adj|Past":Ma,"Adj|Present":La,"Noun|Verb":_a,"Noun|Gerund":Ra,"Person|Noun":{beforeTags:Object.assign({},Na.beforeTags,Ya.beforeTags),afterTags:Object.assign({},Na.afterTags,Ya.afterTags),beforeWords:Object.assign({},Na.beforeWords,Ya.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Na.afterWords,Ya.afterWords)},"Person|Date":no,"Person|Verb":{beforeTags:Object.assign({},Na.beforeTags,Ya.beforeTags,xa.beforeTags),afterTags:Object.assign({},Na.afterTags,Ya.afterTags,xa.afterTags),beforeWords:Object.assign({},Na.beforeWords,Ya.beforeWords,xa.beforeWords),afterWords:Object.assign({},Na.afterWords,Ya.afterWords,xa.afterWords)},"Person|Place":{beforeTags:Object.assign({},ao.beforeTags,Ya.beforeTags),afterTags:Object.assign({},ao.afterTags,Ya.afterTags),beforeWords:Object.assign({},ao.beforeWords,Ya.beforeWords),afterWords:Object.assign({},ao.afterWords,Ya.afterWords)},"Person|Adj":{beforeTags:Object.assign({},Ya.beforeTags,Da.beforeTags),afterTags:Object.assign({},Ya.afterTags,Da.afterTags),beforeWords:Object.assign({},Ya.beforeWords,Da.beforeWords),afterWords:Object.assign({},Ya.afterWords,Da.afterWords)},"Unit|Noun":{beforeTags:{Value:oo},afterTags:{},beforeWords:{per:oo,every:oo,each:oo,square:oo,cubic:oo,sq:oo,metric:oo},afterWords:{per:oo,squared:oo,cubed:oo,long:oo}}},so=(e,t)=>{let n=Object.keys(e).reduce(((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t)),{});return Object.assign(n,t)};io["Plural|Verb"]={beforeWords:so(io["Noun|Verb"].beforeWords,{had:"Plural",have:"Plural"}),afterWords:so(io["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null,is:"PresentTense",by:"PresentTense"}),beforeTags:so(io["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:so(io["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};const lo="Adjective",uo="Infinitive",co="PresentTense",ho="Singular",go="PastTense",mo="Adverb",po="Plural",fo="Actor",bo="Verb",vo="Noun",yo="LastName",wo="Modal",ko="Place",Po="Participle";var Ao=[null,null,{ea:ho,ia:vo,ic:lo,ly:mo,"'n":bo,"'t":bo},{oed:go,ued:go,xed:go," so":mo,"'ll":wo,"'re":"Copula",azy:lo,eer:vo,end:bo,ped:go,ffy:lo,ify:uo,ing:"Gerund",ize:uo,ibe:uo,lar:lo,mum:lo,nes:co,nny:lo,ous:lo,que:lo,ger:vo,ber:vo,rol:ho,sis:ho,ogy:ho,oid:ho,ian:ho,zes:co,eld:go,ken:Po,ven:Po,ten:Po,ect:uo,ict:uo,ign:uo,oze:uo,ful:lo,bal:lo,ton:vo,pur:ko},{amed:go,aped:go,ched:go,lked:go,rked:go,reed:go,nded:go,mned:lo,cted:go,dged:go,ield:ho,akis:yo,cede:uo,chuk:yo,czyk:yo,ects:co,iend:ho,ends:bo,enko:yo,ette:ho,iary:ho,wner:ho,fies:co,fore:mo,gate:uo,gone:lo,ices:po,ints:po,ruct:uo,ines:po,ions:po,ners:po,pers:po,lers:po,less:lo,llen:lo,made:lo,nsen:yo,oses:co,ould:wo,some:lo,sson:yo,ians:po,tion:ho,tage:vo,ique:ho,tive:lo,tors:vo,vice:ho,lier:ho,fier:ho,wned:go,gent:ho,tist:fo,pist:fo,rist:fo,mist:fo,yist:fo,vist:fo,ists:fo,lite:ho,site:ho,rite:ho,mite:ho,bite:ho,mate:ho,date:ho,ndal:ho,vent:ho,uist:fo,gist:fo,note:ho,cide:ho,ence:ho,wide:lo,vide:uo,ract:uo,duce:uo,pose:uo,eive:uo,lyze:uo,lyse:uo,iant:lo,nary:lo,ghty:lo,uent:lo,erer:fo,bury:ko,dorf:vo,esty:vo,wych:ko,dale:ko,folk:ko,vale:ko,abad:ko,sham:ko,wick:ko,view:ko},{elist:fo,holic:ho,phite:ho,tized:go,urned:go,eased:go,ances:po,bound:lo,ettes:po,fully:mo,ishes:co,ities:po,marek:yo,nssen:yo,ology:vo,osome:ho,tment:ho,ports:po,rough:lo,tches:co,tieth:"Ordinal",tures:po,wards:mo,where:mo,archy:vo,pathy:vo,opoly:vo,embly:vo,phate:vo,ndent:ho,scent:ho,onist:fo,anist:fo,alist:fo,olist:fo,icist:fo,ounce:uo,iable:lo,borne:lo,gnant:lo,inant:lo,igent:lo,atory:lo,rient:ho,dient:ho,maker:fo,burgh:ko,mouth:ko,ceter:ko,ville:ko,hurst:ko,stead:ko,endon:ko,brook:ko,shire:ko,worth:vo,field:"ProperNoun",ridge:ko},{auskas:yo,parent:ho,cedent:ho,ionary:ho,cklist:ho,brooke:ko,keeper:fo,logist:fo,teenth:"Value",worker:fo,master:fo,writer:fo,brough:ko,cester:ko,ington:ko,cliffe:ko,ingham:ko},{chester:ko,logists:fo,opoulos:yo,borough:ko,sdottir:yo}];const Co="Adjective",No="Noun",jo="Verb";var xo=[null,null,{},{neo:No,bio:No,"de-":jo,"re-":jo,"un-":jo,"ex-":No},{anti:No,auto:No,faux:Co,hexa:No,kilo:No,mono:No,nano:No,octa:No,poly:No,semi:Co,tele:No,"pro-":Co,"mis-":jo,"dis-":jo,"pre-":Co},{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:Co,radio:No,tetra:No,"omni-":Co,"post-":Co},{pseudo:Co,"extra-":Co,"hyper-":Co,"inter-":Co,"intra-":Co,"deca-":Co},{electro:No}];const Io="Adjective",To="Infinitive",Do="PresentTense",Ho="Singular",Eo="PastTense",Go="Adverb",Oo="Expression",Fo="Actor",Vo="Verb",zo="Noun",Bo="LastName";var So={a:[[/.[aeiou]na$/,zo,"tuna"],[/.[oau][wvl]ska$/,Bo],[/.[^aeiou]ica$/,Ho,"harmonica"],[/^([hyj]a+)+$/,Oo,"haha"]],c:[[/.[^aeiou]ic$/,Io]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Eo,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Eo,"rammed"],[/.[aeiou][sg]hed$/,Eo,"gushed"],[/.[aeiou]red$/,Eo,"hired"],[/.[aeiou]r?ried$/,Eo,"hurried"],[/[^aeiou]ard$/,Ho,"steward"],[/[aeiou][^aeiou]id$/,Io,""],[/.[vrl]id$/,Io,"livid"],[/..led$/,Eo,"hurled"],[/.[iao]sed$/,Eo,""],[/[aeiou]n?[cs]ed$/,Eo,""],[/[aeiou][rl]?[mnf]ed$/,Eo,""],[/[aeiou][ns]?c?ked$/,Eo,"bunked"],[/[aeiou]gned$/,Eo],[/[aeiou][nl]?ged$/,Eo],[/.[tdbwxyz]ed$/,Eo],[/[^aeiou][aeiou][tvx]ed$/,Eo],[/.[cdflmnprstv]ied$/,Eo,"emptied"]],e:[[/.[lnr]ize$/,To,"antagonize"],[/.[^aeiou]ise$/,To,"antagonise"],[/.[aeiou]te$/,To,"bite"],[/.[^aeiou][ai]ble$/,Io,"fixable"],[/.[^aeiou]eable$/,Io,"maleable"],[/.[ts]ive$/,Io,"festive"],[/[a-z]-like$/,Io,"woman-like"]],h:[[/.[^aeiouf]ish$/,Io,"cornish"],[/.v[iy]ch$/,Bo,"..ovich"],[/^ug?h+$/,Oo,"ughh"],[/^uh[ -]?oh$/,Oo,"uhoh"],[/[a-z]-ish$/,Io,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Bo,"polish-male"]],k:[[/^(k){2}$/,Oo,"kkkk"]],l:[[/.[gl]ial$/,Io,"familial"],[/.[^aeiou]ful$/,Io,"fitful"],[/.[nrtumcd]al$/,Io,"natal"],[/.[^aeiou][ei]al$/,Io,"familial"]],m:[[/.[^aeiou]ium$/,Ho,"magnesium"],[/[^aeiou]ism$/,Ho,"schism"],[/^[hu]m+$/,Oo,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Io,"republican"],[/[^aeiou]ician$/,Fo,"musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,Oo,"noooo"],[/^(yo)+$/,Oo,"yoo"],[/^wo{2,}[pt]?$/,Oo,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,Ho],[/[^i]fer$/,To],[/.[^aeiou][ao]pher$/,Fo],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Io],[/[aeiou].*ist$/,Io],[/^[a-z]et$/,Vo]],s:[[/.[^aeiou]ises$/,Do],[/.[rln]ates$/,Do],[/.[^z]ens$/,Vo],[/.[lstrn]us$/,Ho],[/.[aeiou]sks$/,Do],[/.[aeiou]kes$/,Do],[/[aeiou][^aeiou]is$/,Ho],[/[a-z]'s$/,zo],[/^yes+$/,Oo]],v:[[/.[^aeiou][ai][kln]ov$/,Bo]],y:[[/.[cts]hy$/,Io],[/.[st]ty$/,Io],[/.[tnl]ary$/,Io],[/.[oe]ry$/,Ho],[/[rdntkbhs]ly$/,Go],[/.(gg|bb|zz)ly$/,Io],[/...lly$/,Go],[/.[gk]y$/,Io],[/[bszmp]{2}y$/,Io],[/.[ai]my$/,Io],[/[ea]{2}zy$/,Io],[/.[^aeiou]ity$/,Ho]]};const $o="Verb",Mo="Noun";var Ko={leftTags:[["Adjective",Mo],["Possessive",Mo],["Determiner",Mo],["Adverb",$o],["Pronoun",$o],["Value",Mo],["Ordinal",Mo],["Modal",$o],["Superlative",Mo],["Demonym",Mo],["Honorific","Person"]],leftWords:[["i",$o],["first",Mo],["it",$o],["there",$o],["not",$o],["because",Mo],["if",Mo],["but",Mo],["who",$o],["this",Mo],["his",Mo],["when",Mo],["you",$o],["very","Adjective"],["old",Mo],["never",$o],["before",Mo],["a",Mo],["the",Mo],["been",$o]],rightTags:[["Copula",Mo],["PastTense",Mo],["Conjunction",Mo],["Modal",Mo]],rightWords:[["there",$o],["me",$o],["man","Adjective"],["him",$o],["it",$o],["were",Mo],["took",Mo],["himself",$o],["went",Mo],["who",Mo],["jr","Person"]]},Lo={fwd:"3:ser,ierยฆ1er:h,t,f,l,nยฆ1r:eยฆ2er:ss,or,om",both:"3er:ver,ear,almยฆ3ner:hinยฆ3ter:latยฆ2mer:imยฆ2er:ng,rm,mbยฆ2ber:ibยฆ2ger:igยฆ1er:w,p,k,dยฆier:y",rev:"1:tter,yerยฆ2:uer,ver,ffer,oner,eler,ller,iler,ster,cer,uler,sher,ener,gher,aner,adder,nter,eter,rter,hter,rner,fterยฆ3:oser,ooler,eafer,user,airer,bler,maler,tler,eater,uger,rger,ainer,urer,ealer,icher,pler,emner,icter,nser,iserยฆ4:arser,viner,ucher,rosser,somer,ndomer,moter,oother,uarer,hiterยฆ5:nuiner,esser,emierยฆar:urther",ex:"worse:badยฆbetter:goodยฆ4er:fair,gray,poorยฆ1urther:farยฆ3ter:fat,hot,wetยฆ3der:mad,sadยฆ3er:shy,funยฆ4der:gladยฆ:ยฆ4r:cute,dire,fake,fine,free,lame,late,pale,rare,ripe,rude,safe,sore,tame,wideยฆ5r:eerie,stale"},Jo={fwd:"1:nning,tting,rring,pping,eing,mming,gging,dding,bbing,kkingยฆ2:eking,oling,eling,emingยฆ3:velling,siting,uiting,fiting,loting,geting,ialing,cellingยฆ4:graming",both:"1:aing,iing,fing,xing,ying,oing,hing,wingยฆ2:tzing,rping,izzing,bting,mning,sping,wling,rling,wding,rbing,uping,lming,wning,mping,oning,lting,mbing,lking,fting,hting,sking,gning,pting,cking,ening,nking,iling,eping,ering,rting,rming,cting,lping,ssing,nting,nding,lding,sting,rning,rding,rkingยฆ3:belling,siping,toming,yaking,uaking,oaning,auling,ooping,aiding,naping,euring,tolling,uzzing,ganing,haning,ualing,halling,iasing,auding,ieting,ceting,ouling,voring,ralling,garing,joring,oaming,oaking,roring,nelling,ooring,uelling,eaming,ooding,eaping,eeting,ooting,ooming,xiting,keting,ooking,ulling,airing,oaring,biting,outing,oiting,earing,naling,oading,eeding,ouring,eaking,aiming,illing,oining,eaning,onging,ealing,aining,eadingยฆ4:thoming,melling,aboring,ivoting,weating,dfilling,onoring,eriting,imiting,tialling,rgining,otoring,linging,winging,lleting,louding,spelling,mpelling,heating,feating,opelling,choring,welling,ymaking,ctoring,calling,peating,iloring,laiting,utoring,uditing,mmaking,loating,iciting,waiting,mbating,voiding,otalling,nsoring,nselling,ocusing,itoring,elopingยฆ5:rselling,umpeting,atrolling,treating,tselling,rpreting,pringing,ummeting,ossoming,elmaking,eselling,rediting,totyping,onmaking,rfeiting,ntrollingยฆ5e:chmaking,dkeeping,severing,erouting,ecreting,ephoning,uthoring,ravening,reathing,pediting,erfering,eotyping,fringing,entoring,ombining,ompetingยฆ4e:emaking,eething,twining,rruling,chuting,xciting,rseding,scoping,edoring,pinging,lunging,agining,craping,pleting,eleting,nciting,nfining,ncoding,tponing,ecoding,writing,esaling,nvening,gnoring,evoting,mpeding,rvening,dhering,mpiling,storing,nviting,ploringยฆ3e:tining,nuring,saking,miring,haling,ceding,xuding,rining,nuting,laring,caring,miling,riding,hoking,piring,lading,curing,uading,noting,taping,futing,paring,hading,loding,siring,guring,vading,voking,during,niting,laning,caping,luting,muting,ruding,ciding,juring,laming,caling,hining,uoting,liding,ciling,duling,tuting,puting,cuting,coring,uiding,tiring,turing,siding,rading,enging,haping,buting,lining,taking,anging,haring,uiring,coming,mining,moting,suring,viding,ludingยฆ2e:tring,zling,uging,oging,gling,iging,vring,fling,lging,obing,psing,pling,ubing,cling,dling,wsing,iking,rsing,dging,kling,ysing,tling,rging,eging,nsing,uning,osing,uming,using,ibing,bling,aging,ising,asing,atingยฆ2ie:rlyingยฆ1e:zing,uing,cing,ving",rev:"ying:ieยฆ1ing:se,ke,te,we,ne,re,de,pe,me,le,c,heยฆ2ing:ll,ng,dd,ee,ye,oe,rg,usยฆ2ning:unยฆ2ging:og,ag,ug,ig,egยฆ2ming:umยฆ2bing:ub,ab,eb,obยฆ3ning:lan,can,hin,pin,winยฆ3ring:cur,lur,tir,tar,pur,carยฆ3ing:ait,del,eel,fin,eat,oat,eem,lel,ool,ein,uinยฆ3ping:rop,rap,top,uip,wap,hip,hop,lap,rip,capยฆ3ming:tem,wim,rim,kim,limยฆ3ting:mat,cut,pot,lit,lot,hat,set,pit,putยฆ3ding:hed,bed,bidยฆ3king:rekยฆ3ling:cil,pelยฆ3bing:ribยฆ4ning:eginยฆ4ing:isit,ruit,ilot,nsit,dget,rkel,ival,rcelยฆ4ring:efer,nferยฆ4ting:rmit,mmit,ysit,dmit,emit,bmit,tfit,gretยฆ4ling:evel,xcel,ivelยฆ4ding:hredยฆ5ing:arget,posit,rofitยฆ5ring:nsferยฆ5ting:nsmit,orget,cquitยฆ5ling:ancel,istil",ex:"3:adding,eating,aiming,aiding,airing,outing,gassing,setting,getting,putting,cutting,winning,sitting,betting,mapping,tapping,letting,bidding,hitting,tanning,netting,popping,fitting,capping,lapping,barring,banning,vetting,topping,rotting,tipping,potting,wetting,pitting,dipping,budding,hemming,pinning,jetting,kidding,padding,podding,sipping,wedding,bedding,donning,warring,penning,gutting,cueing,wadding,petting,ripping,napping,matting,tinning,binning,dimming,hopping,mopping,nodding,panning,rapping,ridding,sinningยฆ4:selling,falling,calling,waiting,editing,telling,rolling,heating,boating,hanging,beating,coating,singing,tolling,felling,polling,discing,seating,voiding,gelling,yelling,baiting,reining,ruining,seeking,spanning,stepping,knitting,emitting,slipping,quitting,dialing,omitting,clipping,shutting,skinning,abutting,flipping,trotting,cramming,fretting,suitingยฆ5:bringing,treating,spelling,stalling,trolling,expelling,rivaling,wringing,deterring,singeing,befitting,refittingยฆ6:enrolling,distilling,scrolling,strolling,caucusing,travellingยฆ7:installing,redefining,stencilling,recharging,overeating,benefiting,unraveling,programingยฆ9:reprogrammingยฆis:beingยฆ2e:using,aging,owingยฆ3e:making,taking,coming,noting,hiring,filing,coding,citing,doping,baking,coping,hoping,lading,caring,naming,voting,riding,mining,curing,lining,ruling,typing,boring,dining,firing,hiding,piling,taping,waning,baling,boning,faring,honing,wiping,luring,timing,wading,piping,fading,biting,zoning,daring,waking,gaming,raking,ceding,tiring,coking,wining,joking,paring,gaping,poking,pining,coring,liming,toting,roping,wiring,achingยฆ4e:writing,storing,eroding,framing,smoking,tasting,wasting,phoning,shaking,abiding,braking,flaking,pasting,priming,shoring,sloping,withing,hingingยฆ5e:defining,refining,renaming,swathing,fringing,recitingยฆ1ie:dying,tying,lying,vyingยฆ7e:sunbathing"},Wo={fwd:"1:mtยฆ2:llenยฆ3:iven,akenยฆ:neยฆy:in",both:"1:wnยฆ2:me,atenยฆ3:seen,bidden,isenยฆ4:roven,astenยฆ3l:piltยฆ3d:uiltยฆ2e:ittenยฆ1im:wumยฆ1eak:pokenยฆ1ine:honeยฆ1ose:osenยฆ1in:gunยฆ1ake:wokenยฆear:ornยฆeal:olenยฆeeze:ozenยฆet:ottenยฆink:unkยฆing:ung",rev:"2:unยฆoken:eakยฆought:eekยฆoven:eaveยฆ1ne:oยฆ1own:lyยฆ1den:deยฆ1in:ayยฆ2t:amยฆ2n:eeยฆ3en:allยฆ4n:rive,sake,takeยฆ5n:rgive",ex:"2:beenยฆ3:seen,runยฆ4:given,takenยฆ5:shakenยฆ2eak:brokenยฆ1ive:doveยฆ2y:flownยฆ3e:hidden,riddenยฆ1eek:soughtยฆ1ake:wokenยฆ1eave:woven"},qo={fwd:"1:oesยฆ1ve:as",both:"1:xesยฆ2:zzes,ches,shes,ssesยฆ3:iasesยฆ2y:llies,pliesยฆ1y:cies,bies,ties,vies,nies,pies,dies,ries,fiesยฆ:s",rev:"1ies:lyยฆ2es:us,go,doยฆ3es:cho,eto",ex:"2:does,goesยฆ3:gassesยฆ5:focusesยฆis:areยฆ3y:reliesยฆ2y:fliesยฆ2ve:has"},Uo={fwd:"1st:eยฆ1est:l,m,f,sยฆ1iest:ceyยฆ2est:or,irยฆ3est:ver",both:"4:eastยฆ5:hwestยฆ5lest:erfulยฆ4est:weet,lgar,tter,oungยฆ4most:uterยฆ3est:ger,der,rey,iet,ong,earยฆ3test:latยฆ3most:nerยฆ2est:pt,ft,nt,ct,rt,htยฆ2test:itยฆ2gest:igยฆ1est:b,k,n,p,h,d,wยฆiest:y",rev:"1:ttest,nnest,yestยฆ2:sest,stest,rmest,cest,vest,lmest,olest,ilest,ulest,ssest,imest,uestยฆ3:rgest,eatest,oorest,plest,allest,urest,iefest,uelest,blest,ugest,amest,yalest,ealest,illest,tlest,itestยฆ4:cerest,eriest,somest,rmalest,ndomest,motest,uarest,tiffestยฆ5:leverest,rangestยฆar:urthestยฆ3ey:riciest",ex:"best:goodยฆworst:badยฆ5est:greatยฆ4est:fast,full,fair,dullยฆ3test:hot,wet,fatยฆ4nest:thinยฆ1urthest:farยฆ3est:gay,shy,illยฆ4test:neatยฆ4st:late,wide,fine,safe,cute,fake,pale,rare,rude,sore,ripe,direยฆ6st:severe"},Ro={fwd:"1:tistic,eable,lful,sful,ting,ttyยฆ2:onate,rtable,geous,ced,seful,ctfulยฆ3:ortive,entedยฆarity:earยฆy:eticยฆfulness:begoneยฆ1ity:reยฆ1y:tiful,gicยฆ2ity:ile,imous,ilous,imeยฆ2ion:atedยฆ2eness:ivingยฆ2y:triousยฆ2ation:iringยฆ2tion:vantยฆ3ion:ectยฆ3ce:mant,manticยฆ3tion:irableยฆ3y:est,esticยฆ3m:mistic,listicยฆ3ess:ningยฆ4n:utiousยฆ4on:rative,native,vative,ectiveยฆ4ce:erant",both:"1:king,wingยฆ2:alous,ltuous,oyful,rdousยฆ3:gorous,ectable,werful,amaticยฆ4:oised,usical,agical,raceful,ocused,lined,ightfulยฆ5ness:stful,lding,itous,nuous,ulous,otous,nable,gious,ayful,rvous,ntous,lsive,peful,entle,ciful,osive,leful,isive,ncise,reful,miousยฆ5ty:ivaciousยฆ5ties:ubtleยฆ5ce:ilient,adiant,atientยฆ5cy:icientยฆ5sm:gmaticยฆ5on:sessive,dictiveยฆ5ity:pular,sonal,eative,enticยฆ5sity:uminousยฆ5ism:conicยฆ5nce:mperateยฆ5ility:mitableยฆ5ment:xcitedยฆ5n:bitiousยฆ4cy:brant,etent,curateยฆ4ility:erable,acable,icable,ptableยฆ4ty:nacious,aive,oyal,daciousยฆ4n:iciousยฆ4ce:vient,erent,stent,ndent,dient,quent,identยฆ4ness:adic,ound,hing,pant,sant,oing,oist,tuteยฆ4icity:impleยฆ4ment:fined,musedยฆ4ism:oticยฆ4ry:danticยฆ4ity:tund,eralยฆ4edness:handยฆ4on:uitiveยฆ4lity:pitableยฆ4sm:eroic,namicยฆ4sity:nerousยฆ3th:armยฆ3ility:pable,bable,dable,iableยฆ3cy:hant,nant,icateยฆ3ness:red,hin,nse,ict,iet,ite,oud,ind,ied,rceยฆ3ion:luteยฆ3ity:ual,gal,volous,ialยฆ3ce:sent,fensive,lant,gant,gent,lent,dantยฆ3on:asiveยฆ3m:fist,sistic,iasticยฆ3y:terious,xurious,ronic,tasticยฆ3ur:amorousยฆ3e:tunateยฆ3ation:minedยฆ3sy:rteousยฆ3ty:ainยฆ3ry:aveยฆ3ment:azedยฆ2ness:de,on,ue,rn,ur,ft,rp,pe,om,ge,rd,od,ay,ss,er,ll,oy,ap,ht,ld,ad,rtยฆ2inousness:umousยฆ2ity:neous,ene,id,aneยฆ2cy:bate,lateยฆ2ation:izedยฆ2ility:oble,ibleยฆ2y:odicยฆ2e:oving,aringยฆ2s:ostยฆ2itude:ptยฆ2dom:eeยฆ2ance:uringยฆ2tion:reetยฆ2ion:otedยฆ2sion:endingยฆ2liness:anยฆ2or:rdentยฆ1th:ungยฆ1e:uableยฆ1ness:w,h,k,fยฆ1ility:mbleยฆ1or:ventยฆ1ement:gingยฆ1tiquity:ncientยฆ1ment:hedยฆverty:orยฆength:ongยฆeat:otยฆpth:epยฆiness:y",rev:"",ex:"5:forceful,humorousยฆ8:charismaticยฆ13:understandingยฆ5ity:activeยฆ11ness:adventurous,inquisitive,resourcefulยฆ8on:aggressive,automatic,perceptiveยฆ7ness:amorous,fatuous,furtive,ominous,seriousยฆ5ness:ample,sweetยฆ12ness:apprehensive,cantankerous,contemptuous,ostentatiousยฆ13ness:argumentative,conscientiousยฆ9ness:assertive,facetious,imperious,inventive,oblivious,rapacious,receptive,seditious,whimsicalยฆ10ness:attractive,expressive,impressive,loquacious,salubrious,thoughtfulยฆ3edom:boringยฆ4ness:calm,fast,keen,tameยฆ8ness:cheerful,gracious,specious,spurious,timorous,unctuousยฆ5sity:curiousยฆ9ion:deliberateยฆ8ion:desperateยฆ6e:expensiveยฆ7ce:fragrantยฆ3y:furiousยฆ9ility:ineluctableยฆ6ism:mysticalยฆ8ity:physical,proactive,sensitive,verticalยฆ5cy:pliantยฆ7ity:positiveยฆ9ity:practicalยฆ12ism:professionalยฆ6ce:prudentยฆ3ness:redยฆ6cy:vagrantยฆ3dom:wise"};const Qo=function(e="",t={}){let n=function(e,t={}){return t.hasOwnProperty(e)?t[e]:null}(e,t.ex);return n=n||function(e,t=[]){for(let n=0;n=1;r-=1){let a=e.length-r,o=e.substring(a,e.length);if(!0===t.hasOwnProperty(o))return e.slice(0,a)+t[o];if(!0===n.hasOwnProperty(o))return e.slice(0,a)+n[o]}return t.hasOwnProperty("")?e+t[""]:n.hasOwnProperty("")?e+n[""]:null}(e,t.fwd,t.both),n=n||e,n},Zo=function(e){return Object.entries(e).reduce(((e,t)=>(e[t[1]]=t[0],e)),{})},_o=function(e={}){return{reversed:!0,both:Zo(e.both),ex:Zo(e.ex),fwd:e.rev||{}}},Xo=/^([0-9]+)/,Yo=function(e){let t=function(e){let t={};return e.split("ยฆ").forEach((e=>{let[n,r]=e.split(":");r=(r||"").split(","),r.forEach((e=>{t[e]=n}))})),t}(e);return Object.keys(t).reduce(((e,n)=>(e[n]=function(e="",t=""){let n=(t=String(t)).match(Xo);if(null===n)return t;let r=Number(n[1])||0;return e.substring(0,r)+t.replace(Xo,"")}(n,t[n]),e)),{})},ei=function(e={}){return"string"==typeof e&&(e=JSON.parse(e)),e.fwd=Yo(e.fwd||""),e.both=Yo(e.both||""),e.rev=Yo(e.rev||""),e.ex=Yo(e.ex||""),e},ti=ei({fwd:"1:tted,wed,gged,nned,een,rred,pped,yed,bbed,oed,dded,rd,wn,mmedยฆ2:eed,nded,et,hted,st,oled,ut,emed,eled,lded,ken,rt,nked,apt,ant,eped,ekedยฆ3:eared,eat,eaded,nelled,ealt,eeded,ooted,eaked,eaned,eeted,mited,bid,uit,ead,uited,ealed,geted,velled,ialed,belledยฆ4:ebuted,hined,comedยฆy:iedยฆome:ameยฆear:oreยฆind:oundยฆing:ung,angยฆep:ptยฆink:ank,unkยฆig:ugยฆall:ellยฆee:awยฆive:aveยฆeeze:ozeยฆold:eldยฆave:ftยฆake:ookยฆell:oldยฆite:oteยฆide:odeยฆine:oneยฆin:un,onยฆeal:oleยฆim:amยฆie:ayยฆand:oodยฆ1ise:roseยฆ1eak:rokeยฆ1ing:roughtยฆ1ive:roveยฆ1el:eltยฆ1id:badeยฆ1et:gotยฆ1y:aidยฆ1it:satยฆ3e:lidยฆ3d:pent",both:"1:aed,fed,xed,hedยฆ2:sged,xted,wled,rped,lked,kied,lmed,lped,uped,bted,rbed,rked,wned,rled,mped,fted,mned,mbed,zzed,omed,ened,cked,gned,lted,sked,ued,zed,nted,ered,rted,rmed,ced,sted,rned,ssed,rded,pted,ved,ctedยฆ3:cled,eined,siped,ooned,uked,ymed,jored,ouded,ioted,oaned,lged,asped,iged,mured,oided,eiled,yped,taled,moned,yled,lit,kled,oaked,gled,naled,fled,uined,oared,valled,koned,soned,aided,obed,ibed,meted,nicked,rored,micked,keted,vred,ooped,oaded,rited,aired,auled,filled,ouled,ooded,ceted,tolled,oited,bited,aped,tled,vored,dled,eamed,nsed,rsed,sited,owded,pled,sored,rged,osed,pelled,oured,psed,oated,loned,aimed,illed,eured,tred,ioned,celled,bled,wsed,ooked,oiled,itzed,iked,iased,onged,ased,ailed,uned,umed,ained,auded,nulled,ysed,eged,ised,aged,oined,ated,used,dged,donedยฆ4:ntied,efited,uaked,caded,fired,roped,halled,roked,himed,culed,tared,lared,tuted,uared,routed,pited,naked,miled,houted,helled,hared,cored,caled,tired,peated,futed,ciled,called,tined,moted,filed,sided,poned,iloted,honed,lleted,huted,ruled,cured,named,preted,vaded,sured,talled,haled,peded,gined,nited,uided,ramed,feited,laked,gured,ctored,unged,pired,cuted,voked,eloped,ralled,rined,coded,icited,vided,uaded,voted,mined,sired,noted,lined,nselled,luted,jured,fided,puted,piled,pared,olored,cided,hoked,enged,tured,geoned,cotted,lamed,uiled,waited,udited,anged,luded,mired,uired,radedยฆ5:modelled,izzled,eleted,umpeted,ailored,rseded,treated,eduled,ecited,rammed,eceded,atrolled,nitored,basted,twined,itialled,ncited,gnored,ploded,xcited,nrolled,namelled,plored,efeated,redited,ntrolled,nfined,pleted,llided,lcined,eathed,ibuted,lloted,dhered,ccededยฆ3ad:sledยฆ2aw:drewยฆ2ot:hotยฆ2ke:madeยฆ2ow:hrew,grewยฆ2ose:hoseยฆ2d:iltยฆ2in:eganยฆ1un:ranยฆ1ink:houghtยฆ1ick:tuckยฆ1ike:ruckยฆ1eak:poke,nuckยฆ1it:patยฆ1o:didยฆ1ow:newยฆ1ake:wokeยฆgo:went",rev:"3:rst,hed,hut,cut,setยฆ4:tbidยฆ5:dcast,eread,pread,erbidยฆought:uy,eekยฆ1ied:ny,ly,dy,ry,fy,py,vy,by,ty,cyยฆ1ung:ling,ting,wingยฆ1pt:eepยฆ1ank:rinkยฆ1ore:bear,wearยฆ1ave:giveยฆ1oze:reezeยฆ1ound:rind,windยฆ1ook:take,hakeยฆ1aw:seeยฆ1old:sellยฆ1ote:riteยฆ1ole:tealยฆ1unk:tinkยฆ1am:wimยฆ1ay:lieยฆ1ood:tandยฆ1eld:holdยฆ2d:he,ge,re,le,leed,ne,reed,be,ye,lee,pe,weยฆ2ed:dd,oy,or,ey,gg,rr,us,ew,toยฆ2ame:ecome,rcomeยฆ2ped:apยฆ2ged:ag,og,ug,egยฆ2bed:ub,ab,ib,obยฆ2lt:neelยฆ2id:payยฆ2ang:pringยฆ2ove:triveยฆ2med:umยฆ2ode:rrideยฆ2at:ysitยฆ3ted:mit,hat,mat,lat,pot,rot,batยฆ3ed:low,end,tow,und,ond,eem,lay,cho,dow,xit,eld,ald,uld,law,lel,eat,oll,ray,ank,fin,oam,out,how,iek,tay,haw,ait,vet,say,cay,bowยฆ3d:ste,ede,ode,ete,ree,ude,ame,oke,ote,ime,ute,adeยฆ3red:lur,cur,pur,carยฆ3ped:hop,rop,uip,rip,lip,tep,topยฆ3ded:bed,rod,kidยฆ3ade:orbidยฆ3led:uelยฆ3ned:lan,can,kin,pan,tunยฆ3med:rim,limยฆ4ted:quit,llotยฆ4ed:pear,rrow,rand,lean,mand,anel,pand,reet,link,abel,evel,imit,ceed,ruit,mind,peal,veal,hool,head,pell,well,mell,uell,band,hear,weakยฆ4led:nnel,qual,ebel,ivelยฆ4red:nfer,efer,sferยฆ4n:sake,trewยฆ4d:nteeยฆ4ded:hredยฆ4ned:rpinยฆ5ed:light,nceal,right,ndear,arget,hread,eight,rtial,ebootยฆ5d:edite,nviteยฆ5ted:egretยฆ5led:ravel",ex:"2:been,uppedยฆ3:added,aged,aided,aimed,aired,bid,died,dyed,egged,erred,eyed,fit,gassed,hit,lied,owed,pent,pied,tied,used,vied,oiled,outed,banned,barred,bet,canned,cut,dipped,donned,ended,feed,inked,jarred,let,manned,mowed,netted,padded,panned,pitted,popped,potted,put,set,sewn,sowed,tanned,tipped,topped,vowed,weed,bowed,jammed,binned,dimmed,hopped,mopped,nodded,pinned,rigged,sinned,towed,vettedยฆ4:ached,baked,baled,boned,bored,called,caned,cared,ceded,cited,coded,cored,cubed,cured,dared,dined,edited,exited,faked,fared,filed,fined,fired,fuelled,gamed,gelled,hired,hoped,joked,lined,mined,named,noted,piled,poked,polled,pored,pulled,reaped,roamed,rolled,ruled,seated,shed,sided,timed,tolled,toned,voted,waited,walled,waned,winged,wiped,wired,zoned,yelled,tamed,lubed,roped,faded,mired,caked,honed,banged,culled,heated,raked,welled,banded,beat,cast,cooled,cost,dealt,feared,folded,footed,handed,headed,heard,hurt,knitted,landed,leaked,leapt,linked,meant,minded,molded,neared,needed,peaked,plodded,plotted,pooled,quit,read,rooted,sealed,seeded,seeped,shipped,shunned,skimmed,slammed,sparred,stemmed,stirred,suited,thinned,twinned,swayed,winked,dialed,abutted,blotted,fretted,healed,heeded,peeled,reeledยฆ5:basted,cheated,equalled,eroded,exiled,focused,opined,pleated,primed,quoted,scouted,shored,sloped,smoked,sniped,spelled,spouted,routed,staked,stored,swelled,tasted,treated,wasted,smelled,dwelled,honored,prided,quelled,eloped,scared,coveted,sweated,breaded,cleared,debuted,deterred,freaked,modeled,pleaded,rebutted,speededยฆ6:anchored,defined,endured,impaled,invited,refined,revered,strolled,cringed,recast,thrust,unfoldedยฆ7:authored,combined,competed,conceded,convened,excreted,extruded,redefined,restored,secreted,rescinded,welcomedยฆ8:expedited,infringedยฆ9:interfered,intervened,perseveredยฆ10:contravenedยฆeat:ateยฆis:wasยฆgo:wentยฆare:wereยฆ3d:bent,lent,rent,sentยฆ3e:bit,fled,hid,lostยฆ3ed:bled,bredยฆ2ow:blew,grewยฆ1uy:boughtยฆ2tch:caughtยฆ1o:didยฆ1ive:dove,gaveยฆ2aw:drewยฆ2ed:fedยฆ2y:flew,laid,paid,saidยฆ1ight:foughtยฆ1et:gotยฆ2ve:hadยฆ1ang:hungยฆ2ad:ledยฆ2ght:litยฆ2ke:madeยฆ2et:metยฆ1un:ranยฆ1ise:roseยฆ1it:satยฆ1eek:soughtยฆ1each:taughtยฆ1ake:woke,tookยฆ1eave:woveยฆ2ise:aroseยฆ1ear:bore,tore,woreยฆ1ind:bound,found,woundยฆ2eak:brokeยฆ2ing:brought,wrungยฆ1ome:cameยฆ2ive:droveยฆ1ig:dugยฆ1all:fellยฆ2el:feltยฆ4et:forgotยฆ1old:heldยฆ2ave:leftยฆ1ing:rang,sangยฆ1ide:rodeยฆ1ink:sankยฆ1ee:sawยฆ2ine:shoneยฆ4e:slidยฆ1ell:sold,toldยฆ4d:spentยฆ2in:spunยฆ1in:won"}),ni=ei(qo),ri=ei(Jo),ai=ei(Wo),oi=_o(ti),ii=_o(ni),si=_o(ri),li=_o(ai),ui=ei(Lo),ci=ei(Uo);var hi={fromPast:ti,fromPresent:ni,fromGerund:ri,fromParticiple:ai,toPast:oi,toPresent:ii,toGerund:si,toParticiple:li,toComparative:ui,toSuperlative:ci,fromComparative:_o(ui),fromSuperlative:_o(ci),adjToNoun:ei(Ro)},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","faction","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","politburo","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","subsidiary","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce(((e,t)=>(e[t]=!0,e)),{}),gi=["atoll","basin","bay","beach","bluff","bog","camp","canyon","canyons","cape","cave","caves","cliffs","coast","cove","coves","crater","crossing","creek","desert","dune","dunes","downs","estates","escarpment","estuary","falls","fjord","fjords","forest","forests","glacier","gorge","gorges","grove","gulf","gully","highland","heights","hollow","hill","hills","inlet","island","islands","isthmus","junction","knoll","lagoon","lake","lakeshore","marsh","marshes","mount","mountain","mountains","narrows","peninsula","plains","plateau","pond","rapids","ravine","reef","reefs","ridge","river","rivers","sandhill","shoal","shore","shoreline","shores","strait","straits","springs","stream","swamp","tombolo","trail","trails","trench","valley","vallies","village","volcano","waterfall","watershed","wetland","woods","acres","burough","county","district","municipality","prefecture","province","region","reservation","state","territory","borough","metropolis","downtown","uptown","midtown","city","town","township","hamlet","country","kingdom","enclave","neighbourhood","neighborhood","kingdom","ward","zone","airport","amphitheater","arch","arena","auditorium","bar","barn","basilica","battlefield","bridge","building","castle","centre","coliseum","cineplex","complex","dam","farm","field","fort","garden","gardens","gymnasium","hall","house","levee","library","manor","memorial","monument","museum","gallery","palace","pillar","pits","plantation","playhouse","quarry","sportsfield","sportsplex","stadium","terrace","terraces","theater","tower","park","parks","site","ranch","raceway","sportsplex","ave","st","street","rd","road","lane","landing","crescent","cr","way","tr","terrace","avenue"].reduce(((e,t)=>(e[t]=!0,e)),{}),mi=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..ase)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,""]];const 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(bi[t].forEach((n=>e[n]=t)),e)),{});const vi=function(e){let t=e.substring(e.length-3);if(!0===bi.hasOwnProperty(t))return bi[t];let n=e.substring(e.length-2);return!0===bi.hasOwnProperty(n)?bi[n]:"s"===e.substring(e.length-1)?"PresentTense":null},yi={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"},wi=function(e,t,n){const{fromPast:r,fromPresent:a,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",r={};t.one&&t.one.prefixes&&(r=t.one.prefixes);let[a,o]=e.split(/ /);return o&&!0===r[a]&&(n=a,a=o,o=""),{prefix:n,verb:a,particle:o}}(e,t),c="";if(n||(n=vi(e)),yi.hasOwnProperty(e))c=yi[e];else if("Participle"===n)c=Qo(l,i);else if("PastTense"===n)c=Qo(l,r);else if("PresentTense"===n)c=Qo(l,a);else{if("Gerund"!==n)return e;c=Qo(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c},ki=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:i,PastTense:Qo(i,n),PresentTense:Qo(i,r),Gerund:Qo(i,a),FutureTense:"will "+i},u=Qo(i,o);if(u!==e&&u!==l.PastTense){let n=t.one.lexicon||{};"Participle"!==n[u]&&"Adjective"!==n[u]||("play"===e&&(u="played"),l.Participle=u)}return s&&Object.keys(l).forEach((e=>{l[e]+=" "+s})),l};var Pi={toInfinitive:wi,conjugate:ki,all:function(e,t){let n=ki(e,t);return delete n.FutureTense,Object.values(n).filter((e=>e))}};const Ai=function(e,t){const n=t.two.models.toSuperlative;return Qo(e,n)},Ci=function(e,t){const n=t.two.models.toComparative;return Qo(e,n)},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},ji="ically",xi=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]),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"}],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"]),Di={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"quick",superbly:"superb",cynically:"cynical",well:"good"},Hi=[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"},Gi=function(e){if(Ei.hasOwnProperty(e))return Ei[e];let t=Ni(e,Hi);return t||(t=e+"ly"),t};var Oi={toSuperlative:Ai,toComparative:Ci,toAdverb:Gi,toNoun:function(e,t){const n=t.two.models.adjToNoun;return Qo(e,n)},fromAdverb:function(e){return e.endsWith("ly")?xi.has(e)?e.replace(/ically/,"ical"):Ti.has(e)?null:Di.hasOwnProperty(e)?Di[e]:Ni(e,Ii)||e:null},fromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return Qo(e,n)},fromComparative:function(e,t){const n=t.two.models.fromComparative;return Qo(e,n)},all:function(e,t){let n=[e];return n.push(Ai(e,t)),n.push(Ci(e,t)),n.push(Gi(e)),n=n.filter((e=>e)),n=new Set(n),Array.from(n)}},Fi={noun:fi,verb:Pi,adjective:Oi},Vi={Singular:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.noun.toPlural(e,r);a[o]||(t[o]=t[o]||"Plural")},Actor:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.noun.toPlural(e,r);a[o]||(t[o]=t[o]||["Plural","Actor"])},Comparable:(e,t,n,r)=>{let a=r.one.lexicon,{toSuperlative:o,toComparative:i}=n.two.transform.adjective,s=o(e,r);a[s]||(t[s]=t[s]||"Superlative");let l=i(e,r);a[l]||(t[l]=t[l]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,r)=>{let a=n.two.transform.noun.toPlural(e,r);t[a]=t[a]||["Demonym","Plural"]},Infinitive:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.verb.conjugate(e,r);Object.entries(o).forEach((e=>{a[e[1]]||t[e[1]]||"FutureTense"===e[0]||(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.verb.conjugate(i,r);delete l.FutureTense,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]]=2;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"]},Place:(e,t)=>{t[e]=["Place","ProperNoun"]},Region:(e,t)=>{t[e]=["Region","ProperNoun"]}};const zi={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"],t:["feet"]},Bi=new Set(["israelis","menus","logos"]),Si=["bus","mas","was","ias","xas","vas","cis","lis","nis","ois","ris","sis","tis","xis","aus","cus","eus","fus","gus","ius","lus","nus","das","ous","pus","rus","sus","tus","xus","aos","igos","ados","ogos","'s","ss"],$i=function(e){if(!e||e.length<=3)return!1;if(Bi.has(e))return!0;let t=e[e.length-1];return zi.hasOwnProperty(t)?zi[t].find((t=>e.endsWith(t))):"s"===t&&!Si.find((t=>e.endsWith(t)))};var Mi={two:{quickSplit:function(e){const t=/[,:;]/;let n=[];return e.forEach((e=>{let r=0;e.forEach(((a,o)=>{t.test(a.post)&&function(e,t){const n=/^[0-9]+$/;let r=e[t];if(!r)return!1;const a=new Set(["may","april","august","jan"]);if("like"===r.normal||a.has(r.normal))return!1;if(r.tags.has("Place")||r.tags.has("Date"))return!1;if(e[t-1]){let n=e[t-1];if(n.tags.has("Date")||a.has(n.normal))return!1;if(n.tags.has("Adjective")||r.tags.has("Adjective"))return!1}let o=r.normal;return 1!==o.length&&2!==o.length&&4!==o.length||!n.test(o)}(e,o+1)&&(n.push(e.slice(r,o+1)),r=o+1)})),r{let i=e[t],s=(t=(t=t.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);s.length>1&&(void 0===o[s[0]]||s.length>o[s[0]])&&(o[s[0]]=s.length),!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:Fi,looksPlural:$i}};let Ki={one:{lexicon:{}},two:{models:hi}};const Li={"Actor|Verb":"Actor","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":"FirstName","Person|Place":"Person","Person|Adj":"Comparative","Plural|Verb":"Plural","Unit|Noun":"Noun"},Ji=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},Wi=function(e,t,n){let r=ki(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")},qi=function(e,t,n){let r=Ai(e,n);t[r]=t[r]||"Superlative";let a=Ci(e,n);t[a]=t[a]||"Comparative"},Ui=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach((a=>{const o=e[a];if(n[a]=Li[o],"Noun|Verb"!==o&&"Person|Verb"!==o&&"Actor|Verb"!==o||Wi(a,r,!1),"Adj|Present"===o&&(Wi(a,r,!0),qi(a,r,t)),"Person|Adj"===o&&qi(a,r,t),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=wi(a,Ki,"Gerund");r[e]||(n[e]="Infinitive")}if("Noun|Gerund"!==o&&"Adj|Noun"!==o&&"Person|Noun"!==o||function(e,t,n){let r=ya(e,n);t[r]=t[r]||"Plural"}(a,r,t),"Adj|Past"===o){let e=wi(a,Ki,"PastTense");r[e]||(n[e]="Infinitive")}})),t=Ji(n,t)};let Ri={one:{_multiCache:{},lexicon:ka,frozenLex:{"20th century fox":"Organization","7 eleven":"Organization","motel 6":"Organization","excuse me":"Expression","financial times":"Organization","guns n roses":"Organization","la z boy":"Organization","labour party":"Organization","new kids on the block":"Organization","new york times":"Organization","the guess who":"Organization","thin lizzy":"Organization","prime minister":"Actor","free market":"Singular","lay up":"Singular","living room":"Singular","living rooms":"Plural","spin off":"Singular","appeal court":"Uncountable","cold war":"Uncountable","gene pool":"Uncountable","machine learning":"Uncountable","nail polish":"Uncountable","time off":"Uncountable","take part":"Infinitive","bill gates":"Person","doctor who":"Person","dr who":"Person","he man":"Person","iron man":"Person","kid cudi":"Person","run dmc":"Person","rush limbaugh":"Person","snow white":"Person","tiger woods":"Person","brand new":"Adjective","en route":"Adjective","left wing":"Adjective","off guard":"Adjective","on board":"Adjective","part time":"Adjective","right wing":"Adjective","so called":"Adjective","spot on":"Adjective","straight forward":"Adjective","super duper":"Adjective","tip top":"Adjective","top notch":"Adjective","up to date":"Adjective","win win":"Adjective","brooklyn nets":"SportsTeam","chicago bears":"SportsTeam","houston astros":"SportsTeam","houston dynamo":"SportsTeam","houston rockets":"SportsTeam","houston texans":"SportsTeam","minnesota twins":"SportsTeam","orlando magic":"SportsTeam","san antonio spurs":"SportsTeam","san diego chargers":"SportsTeam","san diego padres":"SportsTeam","iron maiden":"ProperNoun","isle of man":"Country","united states":"Country","united states of america":"Country","prince edward island":"Region","cedar breaks":"Place","cedar falls":"Place","point blank":"Adverb","tiny bit":"Adverb","by the time":"Conjunction","no matter":"Conjunction","civil wars":"Plural","credit cards":"Plural","default rates":"Plural","free markets":"Plural","head starts":"Plural","home runs":"Plural","lay ups":"Plural","phone calls":"Plural","press releases":"Plural","record labels":"Plural","soft serves":"Plural","student loans":"Plural","tax returns":"Plural","tv shows":"Plural","video games":"Plural","took part":"PastTense","takes part":"PresentTense","taking part":"Gerund","taken part":"Participle","light bulb":"Noun","rush hour":"Noun","fluid ounce":"Unit","the rolling stones":"Organization"}},two:{irregularPlurals:la,models:hi,suffixPatterns:Ao,prefixPatterns:xo,endsWith:So,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'[a-z]{3}/,"LastName","mc'neil"],[/^o'[a-z]{3}/,"LastName","o'connor"],[/^ma?cd[aeiou][a-z]{3}/,"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"],[/[^:/]\/\p{Letter}/u,"SlashedTerm","love/hate"]],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]{4}|[0-9]{2})$/,"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})$/,"NumericValue","9km"]],switches:Pa,clues:io,uncountable:{},orgWords:di,placeWords:gi}};Ri=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=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}(e=Ui(e.two.switches,e)),e}(Ri);const Qi=function(e,t,n,r){const a=r.methods.one.setTag;"-"===e[t].post&&e[t+1]&&a([e[t],e[t+1]],"Hyphenated",r,null,"1-punct-hyphen''")},Zi=/^(under|over|mis|re|un|dis|semi)-?/,_i=function(e,t,n){const r=n.two.switches;let a=e[t];if(r.hasOwnProperty(a.normal))a.switch=r[a.normal];else if(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;if(!0===e.frozen)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)))},Yi=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific","Month"],es=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t)))||($i(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=vi(e.normal);t&&Xi(e,t,"3-verb-tense-guess")}}(r)},ts=/^\p{Lu}[\p{Ll}'โ€™]/u,ns=/[0-9]/,rs=["Date","Month","WeekDay","Unit","Expression"],as=/[IVX]/,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},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===ts.test(o)&&!1===ns.test(o)?rs.find((e=>r.tags.has(e)))||r.pre.match(/["']$/)||"the"===r.normal?null:(es(e,t,n),r.tags.has("Noun")||r.frozen||r.tags.clear(),Xi(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&os.test(o)&&as.test(o)&&is.test(o)&&!ss[r.normal]?(Xi(r,"RomanNumeral","2-xvii"),!0):null},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},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 Xi(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=us(r.implicit,n.two.suffixPatterns),null!==e))return Xi(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null},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 Xi(r,e,"2-prefix"),r.confidence=.5,!0}return null},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)},vs=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))},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 Xi(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(bs(a)||bs(o))return Xi(n,"Year","2-tagYear-close");if(vs(e[t-2])||vs(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},ws=function(e,t,n,r){const a=r.methods.one.setTag,o=e[t],i=["PastTense","PresentTense","Auxiliary","Modal","Particle"];o.tags.has("Verb")&&(i.find((e=>o.tags.has(e)))||a([o],"Infinitive",r,null,"2-verb-type''"))},ks=/^[A-Z]('s|,)?$/,Ps=/^[A-Z-]+$/,As=/^[A-Z]+s$/,Cs=/([A-Z]\.)+[A-Z]?,?$/,Ns=/[A-Z]{2,}('s|,)?$/,js=/([a-z]\.)+[a-z]\.?$/,xs={I:!0,A:!0},Is={la:!0,ny:!0,us:!0,dc:!0,gb:!0},Ts=function(e,t,n){let r=e[t];return r.tags.has("RomanNumeral")||r.tags.has("Acronym")||r.frozen?null:function(e,t){let n=e.text;if(!1===Ps.test(n)){if(!(n.length>3&&!0===As.test(n)))return!1;n=n.replace(/s$/,"")}return!(n.length>5||xs.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Cs.test(n)&&!0!==js.test(n)&&!0!==ks.test(n)&&!0!==Ns.test(n))}(r,n)?(r.tags.clear(),Xi(r,["Acronym","Noun"],"3-no-period-acronym"),!0===Is[r.normal]&&Xi(r,"Place","3-place-acronym"),!0===As.test(r.text)&&Xi(r,"Plural","3-plural-acronym"),!0):!xs.hasOwnProperty(r.text)&&ks.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")&&Ps.test(r.text)&&r.text.length<=6?(Xi(r,"Acronym","3-titlecase-acronym"),!0):null},Ds=function(e,t){if(!e)return null;let n=t.find((t=>e.normal===t[0]));return n?n[1]:null},Hs=function(e,t){if(!e)return null;let n=t.find((t=>e.tags.has(t[0])));return n?n[1]:null},Es=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||Hs(e[t-1],r),l=l||Hs(e[t+1],i),l)return Xi(s,l,"3-[neighbour]"),es(e,t,n),e[t].confidence=.2,!0}return null},Gs=function(e,t,n){return!!e&&!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||!(n||(r=e.text,!/^\p{Lu}[\p{Ll}'โ€™]/u.test(r)))&&(0!==t||e.tags.has("Singular")));var r},Os=function(e,t,n,r){const a=n.model.two.orgWords,o=n.methods.one.setTag;let i=e[t];if(!0===a[i.machine||i.normal]&&Gs(e[t-1],t-1,r)){o([e[t]],"Organization",n,null,"3-[org-word]");for(let a=t;a>=0&&Gs(e[a],a,r);a-=1)o([e[a]],"Organization",n,null,"3-[org-word]")}return null},Fs=/'s$/,Vs=new Set(["athletic","city","community","eastern","federal","financial","great","historic","historical","local","memorial","municipal","national","northern","provincial","southern","state","western","spring","pine","sunset","view","oak","maple","spruce","cedar","willow"]),zs=new Set(["center","centre","way","range","bar","bridge","field","pit"]),Bs=function(e,t,n){if(!e)return!1;let r=e.tags;return!(r.has("Organization")||r.has("Possessive")||Fs.test(e.normal))&&(!(!r.has("ProperNoun")&&!r.has("Place"))||!(n||(a=e.text,!/^\p{Lu}[\p{Ll}'โ€™]/u.test(a)))&&(0!==t||r.has("Singular")));var a},Ss=function(e,t,n,r){const a=n.model.two.placeWords,o=n.methods.one.setTag;let i=e[t],s=i.machine||i.normal;if(!0===a[s]){for(let a=t-1;a>=0;a-=1)if(!Vs.has(e[a].normal)){if(!Bs(e[a],a,r))break;o(e.slice(a,t+1),"Place",n,null,"3-[place-of-foo]")}if(zs.has(s))return!1;for(let a=t+1;ae[t].tags.has("ProperNoun")&&Ms.test(e[t].text)?"Noun":null,Ls=(e,t,n)=>0!==t||e[1]?null:n,Js={"Adj|Gerund":(e,t)=>Ks(e,t),"Adj|Noun":(e,t)=>Ks(e,t)||function(e,t){return!e[t+1]&&e[t-1]&&e[t-1].tags.has("Determiner")?"Noun":null}(e,t),"Actor|Verb":(e,t)=>Ks(e,t),"Adj|Past":(e,t)=>Ks(e,t),"Adj|Present":(e,t)=>Ks(e,t),"Noun|Gerund":(e,t)=>Ks(e,t),"Noun|Verb":(e,t)=>t>0&&Ks(e,t)||Ls(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Ks(e,t)||Ls(e,t,"PresentTense")||function(e,t,n){return 0===t&&e.length>3?n:null}(e,t,"Plural"),"Person|Noun":(e,t)=>Ks(e,t),"Person|Verb":(e,t)=>0!==t?Ks(e,t):null,"Person|Adj":(e,t)=>0===t&&e.length>1||Ks(e,t)?"Person":null},Ws="undefined"!=typeof process&&process.env?process.env:self.env||{},qs=/^(under|over|mis|re|un|dis|semi)-?/,Us=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit,r=null;return t.hasOwnProperty(n)&&(r=t[n]),r&&Ws.DEBUG_TAGS&&console.log(`\n  โ†“ - '${n}' `),r},Rs=(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)),a=r.find((e=>t[e]));return a&&Ws.DEBUG_TAGS&&console.log(`  โ†“ - '${e.normal||e.implicit}' (#${a}) `),a=t[a],a},Qs=function(e,t,n){const r=n.model,a=n.methods.one.setTag,{switches:o,clues:i}=r.two,s=e[t];let l=s.normal||s.implicit||"";if(qs.test(l)&&!o[l]&&(l=l.replace(qs,"")),s.switch){let o=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let u=function(e,t,n,r){if(!n)return null;const a="also"!==e[t-1]?.text?t-1:Math.max(0,t-2),o=r.one.tagSet;let i=Us(e[t+1],n.afterWords);return i=i||Us(e[a],n.beforeWords),i=i||Rs(e[a],n.beforeTags,o),i=i||Rs(e[t+1],n.afterTags,o),i}(e,t,i[o],r);Js[o]&&(u=Js[o](e,t)||u),u?(a([s],u,n,null,`3-[switch] (${o})`),es(e,t,r)):Ws.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}},Zs={there:!0,this:!0,it:!0,him:!0,her:!0,us:!0},_s=function(e){if(e.filter((e=>!e.tags.has("ProperNoun"))).length<=3)return!1;const t=/^[a-z]/;return e.every((e=>!t.test(e.text)))},Xs=function(e,t,n,r){for(let a=0;a=2){if(e.length<4&&!Zs[e[1].normal])return;if(!a.tags.has("PhrasalVerb")&&r.hasOwnProperty(a.normal))return;(e[1].tags.has("Noun")||e[1].tags.has("Determiner"))&&(e.slice(1,3).some((e=>e.tags.has("Verb")))&&!a.tags.has("#PhrasalVerb")||n([a],"Imperative",t,null,"3-[imperative]"))}}(e,n)},el={Possessive:e=>{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.noun.toSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(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.verb.toInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromSuperlative(n,t.model)},Adverb:(e,t)=>{const{fromAdverb:n}=t.methods.two.transform.adjective;return n(e.machine||e.normal||e.text)}},tl={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:"NN",Plural:"NNS",Noun:"NN",There:"EX"};var nl={preTagger:function(e){const{methods:t,model:n,world:r}=e;let a=e.docs;!function(e,t,n){e.forEach((e=>{!function(e,t,n,r){const a=r.methods.one.setTag;if(e.length>=3){const t=/:/;if(e[0].post.match(t)){let t=e[1];if(t.tags.has("Value")||t.tags.has("Email")||t.tags.has("PhoneNumber"))return;a([e[0]],"Expression",r,null,"2-punct-colon''")}}}(e,0,0,n)}))}(a,0,r);let o=t.two.quickSplit(a);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))),n[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))},gl=/'/,ml=new Set(["been","become"]),pl=new Set(["what","how","when","if","too"]);let fl=new Set(["too","also","enough"]);const bl=function(e,t){let n=e[t].normal.split(gl)[0];if("let"===n)return[n,"us"];if("there"===n){let r=e[t+1];if(r&&r.tags.has("Plural"))return[n,"are"]}return"has"===((e,t)=>{for(let n=t+1;n{for(let n=t+1;n0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]],a.compute(["freeze","lexicon","preTagger","unfreeze"]),function(e){e.forEach(((e,t)=>{e.index&&(e.index[1]=t)}))}(e)},Il={d:(e,t)=>kl(e,t),t:(e,t)=>function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){if(e[t+1]&&"never"===e[t+1].normal)return["have"];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("i"===n.normal)return["am","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]}(e,t),s:(e,t,n)=>((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("QuestionWord"))return!1;if("he's"===n.normal||"she's"===n.normal)return!1;let r=e[t+1];if(!r)return!0;if("it's"===n.normal)return!!r.tags.has("#Noun");if("Noun|Gerund"==r.switch){let r=e[t+2];return r?!!r.tags.has("Copula")||("on"===r.normal||r.normal,!1):!(!n.tags.has("Actor")&&!n.tags.has("ProperNoun"))}if(r.tags.has("Verb"))return!!r.tags.has("Infinitive")||!r.tags.has("Gerund")&&!!r.tags.has("PresentTense");if("Adj|Noun"===r.switch){let n=e[t+2];if(!n)return!1;if(Nl.has(n.normal))return!0;if(Cl.has(n.normal))return!1}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;if(r.tags.has("Adjective")){let n=e[t+2];if(!n)return!1;if(n.tags.has("Noun")&&!n.tags.has("Pronoun")){let e=r.normal;return"above"!==e&&"below"!==e&&"behind"!==e}return"Noun|Verb"===n.switch}return!!r.tags.has("Value")})(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,null,"2-contraction"):bl(e,t)},Tl=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var Dl={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)continue;let i=null;!0===jl.test(r[o].normal)&&(i=r[o].normal.split(jl)[1]);let s=null;Il.hasOwnProperty(i)&&(s=Il[i](r,o,t)),s&&(s=Tl(s,e),dl(n,[a,o],s),xl(n[a],e,o,s.length))}}))}},Hl={compute:Dl,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=cl},hooks:["contractionTwo"]};const El="(hard|fast|late|early|high|right|deep|close|direct)",Gl="(i|we|they)";let Ol=[].concat([{match:"(got|were|was|is|are|am) (#PastTense|#Participle)",tag:"Passive",reason:"got-walked"},{match:"(was|were|is|are|am) being (#PastTense|#Participle)",tag:"Passive",reason:"was-being"},{match:"(had|have|has) been (#PastTense|#Participle)",tag:"Passive",reason:"had-been"},{match:"will be being? (#PastTense|#Participle)",tag:"Passive",reason:"will-be-cleaned"},{match:"#Noun [(#PastTense|#Participle)] by (the|a) #Noun",group:0,tag:"Passive",reason:"suffered-by"}],[{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,notIf:"(all|even)",tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"[#Hyphenated (#Hyphenated && #PastTense)] (#Noun|#Conjunction)",group:0,tag:"Adjective",notIf:"#Adverb",reason:"faith-based"},{match:"[#Hyphenated (#Hyphenated && #Gerund)] (#Noun|#Conjunction)",group:0,tag:"Adjective",notIf:"#Adverb",reason:"self-driving"},{match:"[#PastTense (#Hyphenated && #PhrasalVerb)] (#Noun|#Conjunction)",group:0,tag:"Adjective",reason:"dammed-up"},{match:"(#Hyphenated && #Value) fold",tag:"Adjective",reason:"two-fold"},{match:"must (#Hyphenated && #Infinitive)",tag:"Adjective",reason:"must-win"},{match:"(#Hyphenated && #Infinitive) #Hyphenated",tag:"Adjective",notIf:"#PhrasalVerb",reason:"vacuum-sealed"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"},{match:"[(un|contra|extra|inter|intra|macro|micro|mid|mis|mono|multi|pre|sub|tri|ex)] #Adjective",group:0,tag:["Adjective","Prefix"],reason:"un-skilled"}],[{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:"#Copula [far too] #Adjective",group:0,tag:"Adverb",reason:"far-too"},{match:"#Copula [still] (in|#Gerund|#Adjective)",group:0,tag:"Adverb",reason:"was-still-walking"},{match:`#Plural ${El}`,tag:"#PresentTense #Adverb",reason:"studies-hard"},{match:`#Verb [${El}] !#Noun?`,group:0,notIf:"(#Copula|get|got|getting|become|became|becoming|feel|feels|feeling|#Determiner|#Preposition)",tag:"Adverb",reason:"shops-direct"},{match:"[#Plural] a lot",tag:"PresentTense",reason:"studies-a-lot"}],[{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:"#Gerund [#Gerund]",group:0,tag:"Adjective",notIf:"(impersonating|practicing|considering|assuming)",reason:"looking-annoying"},{match:"(looked|look|looks) #Adverb? [%Adj|Gerund%]",group:0,tag:"Adjective",notIf:"(impersonating|practicing|considering|assuming)",reason:"looked-amazing"},{match:"[%Adj|Gerund%] #Determiner",group:0,tag:"Gerund",reason:"developing-a"},{match:"#Possessive [%Adj|Gerund%] #Noun",group:0,tag:"Adjective",reason:"leading-manufacturer"},{match:"%Noun|Gerund% %Adj|Gerund%",tag:"Gerund #Adjective",reason:"meaning-alluring"},{match:"(face|embrace|reveal|stop|start|resume) %Adj|Gerund%",tag:"#PresentTense #Adjective",reason:"face-shocking"},{match:"(are|were) [%Adj|Gerund%] #Plural",group:0,tag:"Adjective",reason:"are-enduring-symbols"}],[{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",notIf:"#Hyphenated",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:"no [#Adjective] #Modal",group:0,tag:"Noun",reason:"no-golden"},{match:"[brand #Gerund?] new",group:0,tag:"Adverb",reason:"brand-new"},{match:"(#Determiner|#Comparative|new|different) [kind]",group:0,tag:"Noun",reason:"some-kind"},{match:"#Possessive [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"her-favourite"},{match:"must && #Hyphenated .",tag:"Adjective",reason:"must-win"},{match:"#Determiner [#Adjective]$",tag:"Noun",notIf:"(this|that|#Comparative|#Superlative)",reason:"the-south"},{match:"(#Noun && #Hyphenated) (#Adjective && #Hyphenated)",tag:"Adjective",notIf:"(this|that|#Comparative|#Superlative)",reason:"company-wide"},{match:"#Determiner [#Adjective] (#Copula|#Determiner)",notIf:"(#Comparative|#Superlative)",group:0,tag:"Noun",reason:"the-poor"},{match:"[%Adj|Noun%] #Noun",notIf:"(#Pronoun|#ProperNoun)",group:0,tag:"Adjective",reason:"stable-foundations"}],[{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,notIf:"(#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] #Comparative",group:0,tag:"Adverb",reason:"even-worse"},{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|bright|slow|fast|backwards|forwards)]",notIf:"#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",notIf:"(getting|becoming|feeling)",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",notIf:"(#PhrasalVerb|#Copula)",reason:"charge-back"},{match:"#Verb [around]",group:0,tag:"Adverb",notIf:"#PhrasalVerb",reason:"send-around"},{match:"[later] #PresentTense",group:0,tag:"Adverb",reason:"later-say"},{match:"#Determiner [well] !#PastTense?",group:0,tag:"Noun",reason:"the-well"},{match:"#Adjective [enough]",group:0,tag:"Adverb",reason:"high-enough"}],[{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) !#Infinitive?",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:"#Value (am|pm)",tag:"Time",reason:"2-am"}],[{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:"(the|any) [more]",group:0,tag:"Singular",reason:"more-noun"},{match:"[more] #Noun",group:0,tag:"Adjective",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Singular",reason:"bit-2"},{match:"a [must]",group:0,tag:"Singular",reason:"must-2"},{match:"(we|us) [all]",group:0,tag:"Noun",reason:"we all"},{match:"due to [#Verb]",group:0,tag:"Noun",reason:"due-to"},{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",notIf:"#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:"(a|an|the) [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",notIf:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,notIf:"#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? [#PresentTense #Particle?]",group:0,tag:"Noun",notIf:"(seem|appear|include|#Gerund|#Copula)",reason:"det-inf"},{match:"#Noun #Actor",tag:"Actor",notIf:"(#Person|#Pronoun)",reason:"thing-doer"},{match:"#Gerund #Actor",tag:"Actor",reason:"gerund-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"[#Noun+] #Actor",group:0,tag:"Actor",notIf:"(#Honorific|#Pronoun|#Possessive)",reason:"air-traffic-controller"},{match:"(urban|cardiac|cardiovascular|respiratory|medical|clinical|visual|graphic|creative|dental|exotic|fine|certified|registered|technical|virtual|professional|amateur|junior|senior|special|pharmaceutical|theoretical)+ #Noun? #Actor",tag:"Actor",reason:"fine-artist"},{match:"#Noun+ (coach|chef|king|engineer|fellow|personality|boy|girl|man|woman|master)",tag:"Actor",reason:"dance-coach"},{match:"chief . officer",tag:"Actor",reason:"chief-x-officer"},{match:"chief of #Noun+",tag:"Actor",reason:"chief-of-police"},{match:"senior? vice? president of #Noun+",tag:"Actor",reason:"president-of"},{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:"#Possessive #PresentTense #Particle?",notIf:"(#Gerund|her)",tag:"Noun",reason:"possessive-verb"},{match:"(my|our|their|her|his|its) [(#Plural && #Actor)] #Noun",tag:"Possessive",reason:"my-dads"},{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 [#Verb] and #Noun",group:0,tag:"Noun",reason:"peace-and-flowers"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"},{match:"#Copula the [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"the-premier-university"},{match:"i #Verb [me] #Noun",group:0,tag:"Possessive",reason:"scottish-me"},{match:"[#PresentTense] (music|class|lesson|night|party|festival|league|ceremony)",group:0,tag:"Noun",reason:"dance-music"},{match:"[wit] (me|it)",group:0,tag:"Presposition",reason:"wit-me"},{match:"#PastTense #Possessive [#Verb]",group:0,tag:"Noun",notIf:"(saw|made)",reason:"left-her-boots"},{match:"#Value [%Plural|Verb%]",group:0,tag:"Plural",notIf:"(one|1|a|an)",reason:"35-signs"},{match:"had [#PresentTense]",group:0,tag:"Noun",notIf:"(#Gerund|come|become)",reason:"had-time"},{match:"%Adj|Noun% %Noun|Verb%",tag:"#Adjective #Noun",notIf:"#ProperNoun #Noun",reason:"instant-access"},{match:"#Determiner [%Adj|Noun%] #Conjunction",group:0,tag:"Noun",reason:"a-rep-to"},{match:"#Adjective #Noun [%Plural|Verb%]$",group:0,tag:"Plural",notIf:"#Pronoun",reason:"near-death-experiences"},{match:"#Possessive #Noun [%Plural|Verb%]$",group:0,tag:"Plural",reason:"your-guild-colors"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,ifNo:"#Copula",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",notIf:"(still|even|just)",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"#Copula [(#Gerund|#Activity)] #Copula",group:0,tag:"Gerund",reason:"are-doing-is"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"},{match:"#Singular for [%Noun|Gerund%]",group:0,tag:"Gerund",reason:"noun-for-gerund"},{match:"#Comparative (for|at) [%Noun|Gerund%]",group:0,tag:"Gerund",reason:"better-for-gerund"},{match:"#PresentTense the [#Gerund]",group:0,tag:"Noun",reason:"keep-the-touching"}],[{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 (only|further|just|more|backward) [#Infinitive]",group:0,tag:"Noun",reason:"the-only-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{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,notIf:"from",tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"#Plural 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 #Particle?]",notIf:"(#Copula|#Noun|sure|fun|up)",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",notIf:"#Pronoun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"this [#Plural]",group:0,tag:"PresentTense",notIf:"(#Preposition|#Date)",reason:"this-verbs"},{match:"#Noun that [#Plural]",group:0,tag:"PresentTense",notIf:"(#Preposition|#Pronoun|way)",reason:"voice-that-rocks"},{match:"that [#Plural] to",group:0,tag:"PresentTense",notIf:"#Preposition",reason:"that-leads-to"},{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]",notIf:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",notIf:"better",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",notIf:"(#Copula|better)",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"many-poses"},{match:"#Determiner #Adverb #Adjective [%Noun|Verb%]",group:0,tag:"Noun",notIf:"#Copula",reason:"very-big-dream"},{match:"from #Noun to [%Noun|Verb%]",group:0,tag:"Noun",reason:"start-to-finish"},{match:"(for|with|of) #Noun (and|or|not) [%Noun|Verb%]",group:0,tag:"Noun",notIf:"#Pronoun",reason:"for-food-and-gas"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",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) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #Particle #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] of",group:0,notIf:"(one|1|#Copula|#Infinitive)",tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",notIf:"#Copula",reason:"our-full-support"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",notIf:"going",reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"},{match:"how to [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"how-to-noun"},{match:"which [%Noun|Verb%] #Noun",group:0,tag:"Infinitive",reason:"which-boost-it"},{match:"#Gerund [%Plural|Verb%]",group:0,tag:"Plural",reason:"asking-questions"},{match:"(ready|available|difficult|hard|easy|made|attempt|try) to [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"ready-to-noun"},{match:"(bring|went|go|drive|run|bike) to [%Noun|Verb%]",group:0,tag:"Noun",reason:"bring-to-noun"},{match:"#Modal #Noun [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"would-you-look"},{match:"#Copula just [#Infinitive]",group:0,tag:"Noun",reason:"is-just-spam"},{match:"^%Noun|Verb% %Plural|Verb%",tag:"Imperative #Plural",reason:"request-copies"},{match:"#Adjective #Plural and [%Plural|Verb%]",group:0,tag:"#Plural",reason:"pickles-and-drinks"},{match:"#Determiner #Year [#Verb]",group:0,tag:"Noun",reason:"the-1968-film"},{match:"#Determiner [#PhrasalVerb #Particle]",group:0,tag:"Noun",reason:"the-break-up"},{match:"#Determiner [%Adj|Noun%] #Noun",group:0,tag:"Adjective",notIf:"(#Pronoun|#Possessive|#ProperNoun)",reason:"the-individual-goals"},{match:"[%Noun|Verb%] or #Infinitive",group:0,tag:"Infinitive",reason:"work-or-prepare"},{match:"to #Infinitive [#PresentTense]",group:0,tag:"Noun",notIf:"(#Gerund|#Copula|help)",reason:"to-give-thanks"},{match:"[#Noun] me",group:0,tag:"Verb",reason:"kills-me"},{match:"%Plural|Verb% %Plural|Verb%",tag:"#PresentTense #Plural",reason:"removes-wrinkles"}],[{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:"a pound",tag:"#Money #Unit",reason:"a-pound"},{match:"#Value (pound|pounds)",tag:"#Money #Unit",reason:"4-pounds"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"},{match:"#Value #Unit [(per|an) (hr|hour|sec|second|min|minute)]",group:0,tag:"Unit",reason:"12-miles-per-second"},{match:"#Value [(square|cubic)] #Unit",group:0,tag:"Unit",reason:"square-miles"}],[{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(sister|pope|brother|father|aunt|uncle|grandpa|grandfather|grandma) #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",notIf:"#Place",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",notIf:"#Place",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",notIf:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",notIf:"#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:"[(lieutenant|corporal|sergeant|captain|qeen|king|admiral|major|colonel|marshal|president|queen|king)+] #ProperNoun",group:0,tag:"Honorific",reason:"seargeant-john"},{match:"[(private|general|major|rear|prime|field|count|miss)] #Honorific? #Person",group:0,tag:["Honorific","Person"],reason:"ambg-honorifics"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",notIf:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:"Honorific",reason:"his-excellency"},{match:"#Honorific #Actor",tag:"Honorific",reason:"Lieutenant colonel"},{match:"(first|second|third|1st|2nd|3rd) #Actor",tag:"Honorific",reason:"first lady"},{match:"#Person #RomanNumeral",tag:"Person",reason:"louis-IV"}],[{match:"#FirstName #Noun$",tag:". #LastName",notIf:"(#Possessive|#Organization|#Place|#Pronoun|@hasTitleCase)",reason:"firstname-noun"},{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",ifNo:"#Actor"},{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:"#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:"(#FirstName && !#Possessive) [#Singular] #Verb",group:0,safe:!0,tag:"LastName",reason:"jack-layton"},{match:"^[#Singular] #Person #Verb",group:0,safe:!0,tag:"Person",reason:"sherwood-anderson"},{match:"(a|an) [#Person]$",group:0,unTag:"Person",reason:"a-warhol"}],[{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",notIf:"(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:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(have|had) read",tag:"Modal #PastTense",reason:"read-read"},{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:"as #Pronoun [please]",group:0,tag:"Infinitive",reason:"as-we-please"},{match:"[(co|mis|de|inter|intra|pre|re|un|out|under|over|counter)] #Verb",group:0,tag:["Verb","Prefix"],notIf:"(#Copula|#PhrasalVerb)",reason:"co-write"},{match:"#PastTense and [%Adj|Past%]",group:0,tag:"PastTense",reason:"dressed-and-left"},{match:"[%Adj|Past%] and #PastTense",group:0,tag:"PastTense",reason:"dressed-and-left"},{match:"#Copula #Pronoun [%Adj|Past%]",group:0,tag:"Adjective",reason:"is-he-stoked"},{match:"to [%Noun|Verb%] #Preposition",group:0,tag:"Infinitive",reason:"to-dream-of"}],[{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:"#Copula [#Adjective] (well|badly|quickly|slowly)",group:0,tag:"Verb",reason:"done-well"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"},{match:"(seem|feel|seemed|felt) [#PastTense #Particle?]",group:0,tag:"Adjective",reason:"seem-confused"},{match:"a (bit|little|tad) [#PastTense #Particle?]",group:0,tag:"Adjective",reason:"a-bit-confused"},{match:"not be [%Adj|Past% #Particle?]",group:0,tag:"Adjective",reason:"do-not-be-confused"},{match:"#Copula just [%Adj|Past% #Particle?]",group:0,tag:"Adjective",reason:"is-just-right"},{match:"as [#Infinitive] as",group:0,tag:"Adjective",reason:"as-pale-as"},{match:"[%Adj|Past%] and #Adjective",group:0,tag:"Adjective",reason:"faled-and-oppressive"},{match:"or [#PastTense] #Noun",group:0,tag:"Adjective",notIf:"(#Copula|#Pronoun)",reason:"or-heightened-emotion"},{match:"(become|became|becoming|becomes) [#Verb]",group:0,tag:"Adjective",reason:"become-verb"},{match:"#Possessive [#PastTense] #Noun",group:0,tag:"Adjective",reason:"declared-intentions"},{match:"#Copula #Pronoun [%Adj|Present%]",group:0,tag:"Adjective",reason:"is-he-cool"},{match:"#Copula [%Adj|Past%] with",group:0,tag:"Adjective",notIf:"(associated|worn|baked|aged|armed|bound|fried|loaded|mixed|packed|pumped|filled|sealed)",reason:"is-crowded-with"},{match:"#Copula #Adverb? [%Adj|Present%]$",group:0,tag:"Adjective",reason:"was-empty$"}],[{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:"[(#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:"[(been|had|became|came)] #PastTense",group:0,notIf:"#PhrasalVerb",tag:"Auxiliary",reason:"been-told"},{match:"[(being|having|getting)] #Verb",group:0,tag:"Auxiliary",reason:"being-born"},{match:"[be] #Gerund",group:0,tag:"Auxiliary",reason:"be-walking"},{match:"[better] #PresentTense",group:0,tag:"Modal",notIf:"(#Copula|#Gerund)",reason:"better-go"},{match:"even better",tag:"Adverb #Comparative",reason:"even-better"}],[{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)",notIf:"#Copula",tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"#Verb (up|down|in|on|for)$",tag:"PhrasalVerb #Particle",notIf:"#PhrasalVerb",reason:"come-down$"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"#PhrasalVerb (in && #Particle) #Determiner",tag:"#Verb #Preposition #Determiner",unTag:"PhrasalVerb",reason:"work-in-the"},{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",notIf:"(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|a|an|any|each|every|some|more|with|on)",group:0,notIf:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me|there)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^[#Infinitive] (#Adjective|#Adverb)? and #Infinitive",group:0,tag:"Imperative",reason:"call-and-reserve"},{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:"^[#PhrasalVerb #Particle] #Determiner #Noun",group:0,tag:"Imperative",reason:"turn-off-the-light"},{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:"^come #Infinitive",tag:"Imperative",notIf:"on",reason:"come-have"},{match:"^come and? #Infinitive",tag:"Imperative . Imperative",notIf:"#PhrasalVerb",reason:"come-and-have"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[(stay|be|keep)] #Adjective",group:0,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:"[#Infinitive] what .",group:0,tag:"Imperative",reason:"look-what"},{match:"^[#Infinitive] #Gerund",group:0,tag:"Imperative",reason:"keep-playing"},{match:"^[#Infinitive] (to|for|into|toward|here|there)",group:0,tag:"Imperative",reason:"go-to"},{match:"^[#Infinitive] (and|or) #Infinitive",group:0,tag:"Imperative",reason:"inf-and-inf"},{match:"^[%Noun|Verb%] to",group:0,tag:"Imperative",reason:"commit-to"},{match:"^[#Infinitive] #Adjective? #Singular #Singular",group:0,tag:"Imperative",reason:"maintain-eye-contact"},{match:"do not (forget|omit|neglect) to [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-forget"},{match:"^[(ask|wear|pay|look|help|show|watch|act|fix|kill|stop|start|turn|try|win)] #Noun",group:0,tag:"Imperative",reason:"pay-attention"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"},{match:"#Gerund [#Gerund] #Plural",group:0,tag:"Adjective",reason:"hard-working-fam"}],[{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:"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:"[right] (before|after|in|into|to|toward)",group:0,tag:"#Adverb",reason:"right-into"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"(are|#Modal|see|do|for) [ya]",group:0,tag:"Pronoun",reason:"are-ya"},{match:"[long live] .",group:0,tag:"#Adjective #Infinitive",reason:"long-live"},{match:"[plenty] of",group:0,tag:"#Uncountable",reason:"plenty-of"},{match:"(always|nearly|barely|practically) [there]",group:0,tag:"Adjective",reason:"always-there"},{match:"[there] (#Adverb|#Pronoun)? #Copula",group:0,tag:"There",reason:"there-is"},{match:"#Copula [there] .",group:0,tag:"There",reason:"is-there"},{match:"#Modal #Adverb? [there]",group:0,tag:"There",reason:"should-there"},{match:"^[do] (you|we|they)",group:0,tag:"QuestionWord",reason:"do-you"},{match:"^[does] (he|she|it|#ProperNoun)",group:0,tag:"QuestionWord",reason:"does-he"},{match:"#Determiner #Noun+ [who] #Verb",group:0,tag:"Preposition",reason:"the-x-who"},{match:"#Determiner #Noun+ [which] #Verb",group:0,tag:"Preposition",reason:"the-x-which"},{match:"a [while]",group:0,tag:"Noun",reason:"a-while"},{match:"guess who",tag:"#Infinitive #QuestionWord",reason:"guess-who"},{match:"[fucking] !#Verb",group:0,tag:"#Gerund",reason:"f-as-gerund"}],[{match:"university of #Place",tag:"Organization",reason:"university-of-Foo"},{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",notIf:"#FirstName",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:"government of the? [#Place+]",tag:"Organization",reason:"government-of-x"},{match:"(health|school|commerce) board",tag:"Organization",reason:"school-board"},{match:"(nominating|special|conference|executive|steering|central|congressional) committee",tag:"Organization",reason:"special-comittee"},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"},{match:"#Place+ #SportsTeam",tag:"SportsTeam",reason:"place-sportsteam"},{match:"(dc|atlanta|minnesota|manchester|newcastle|sheffield) united",tag:"SportsTeam",reason:"united-sportsteam"},{match:"#Place+ fc",tag:"SportsTeam",reason:"fc-sportsteam"},{match:"#Place+ #Noun{0,2} (club|society|group|team|committee|commission|association|guild|crew)",tag:"Organization",reason:"place-noun-society"}],[{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+ (cliff|place|range|pit|place|point|room|grounds|ruins)",tag:"Place",reason:"foo-point"},{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:"(port|mount|mt) #ProperName",tag:"Place",reason:"port-name"}],[{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:"a #Noun [like] (#Noun|#Determiner)",group:0,tag:"Preposition",reason:"a-noun-like"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Infinitive #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"}],[{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^[(well|so|okay|now)] !#Adjective?",group:0,tag:"Expression",reason:"well-"},{match:"^come on",tag:"Expression",reason:"come-on"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"^(ok|alright|shoot|hell|anyways)",tag:"Expression",reason:"ok-"},{match:"^(say && @hasComma)",tag:"Expression",reason:"say-"},{match:"^(like && @hasComma)",tag:"Expression",reason:"like-"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}]),Fl=null;var Vl={postTagger:function(e){const{world:t}=e,{model:n,methods:r}=t;Fl=Fl||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(Fl),e.uncache(),e.unfreeze(),e},tagger:e=>e.compute(["freeze","lexicon","preTagger","postTagger","unfreeze"])};const zl={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach((n=>{n.forEach((n=>{t+=1,e+=n.confidence||1}))})),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["tagger"])}},compute:Vl,model:{two:{matches:Ol}},hooks:["postTagger"]},Bl=function(e,t){let n=function(e){return Object.keys(e.hooks).filter((e=>!e.startsWith("#")&&!e.startsWith("%")))}(t);if(0===n.length)return e;e._cache||e.cache();let r=e._cache;return e.filter(((e,t)=>n.some((e=>r[t].has(e)))))};var Sl={lib:{lazy:function(e,t){let n=t;"string"==typeof t&&(n=this.buildNet([{match:t}]));let r=this.tokenize(e),a=Bl(r,n);return a.found?(a.compute(["index","tagger"]),a.match(t)):r.none()}}};const $l=function(e,t,n){let r=e.split(/ /g).map((e=>e.toLowerCase().trim()));r=r.filter((e=>e)),r=r.map((e=>`{${e}}`)).join(" ");let a=this.match(r);return n&&(a=a.if(n)),a.has("#Verb")?function(e,t){let n=t;return e.forEach((e=>{e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verb.conjugate)(t,e.model);return e.has("#Gerund")?n.Gerund:e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)})),e}(a,t):a.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.noun.toPlural)(t,e.model)),e.replaceWith(n,{possessives:!0})}(a,t):a.has("#Adverb")?function(e,t){const{toAdverb:n}=e.methods.two.transform.adjective;let r=n(t);r&&e.replaceWith(r)}(a,t):a.has("#Adjective")?function(e,t){const{toComparative:n,toSuperlative:r}=e.methods.two.transform.adjective;let a=t;e.has("#Comparative")?a=n(a,e.model):e.has("#Superlative")&&(a=r(a,e.model)),a&&e.replaceWith(a)}(a,t):this};var Ml={api:function(e){e.prototype.swap=$l}};h.plugin(sl),h.plugin(Hl),h.plugin(zl),h.plugin(Sl),h.plugin(Ml);const Kl=function(e){const{fromComparative:t,fromSuperlative:n}=e.methods.two.transform.adjective;let r=e.text("normal");return e.has("#Comparative")?t(r,e.model):e.has("#Superlative")?n(r,e.model):r};var Ll={api:function(e){class Adjectives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adjectives"}json(e={}){const{toAdverb:t,toNoun:n,toSuperlative:r,toComparative:a}=this.methods.two.transform.adjective;return e.normal=!0,this.map((o=>{let i=o.toView().json(e)[0]||{},s=Kl(o);return i.adjective={adverb:t(s,this.model),noun:n(s,this.model),superlative:r(s,this.model),comparative:a(s,this.model)},i}),[])}adverbs(){return this.before("#Adverb+$").concat(this.after("^#Adverb+"))}conjugate(e){const{toComparative:t,toSuperlative:n,toNoun:r,toAdverb:a}=this.methods.two.transform.adjective;return this.getNth(e).map((e=>{let o=Kl(e);return{Adjective:o,Comparative:t(o,this.model),Superlative:n(o,this.model),Noun:r(o,this.model),Adverb:a(o,this.model)}}),[])}toComparative(e){const{toComparative:t}=this.methods.two.transform.adjective;return this.getNth(e).map((e=>{let n=Kl(e),r=t(n,this.model);return e.replaceWith(r)}))}toSuperlative(e){const{toSuperlative:t}=this.methods.two.transform.adjective;return this.getNth(e).map((e=>{let n=Kl(e),r=t(n,this.model);return e.replaceWith(r)}))}toAdverb(e){const{toAdverb:t}=this.methods.two.transform.adjective;return this.getNth(e).map((e=>{let n=Kl(e),r=t(n,this.model);return e.replaceWith(r)}))}toNoun(e){const{toNoun:t}=this.methods.two.transform.adjective;return this.getNth(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=t.getNth(e),new Adjectives(t.document,t.pointer)},e.prototype.superlatives=function(e){let t=this.match("#Superlative");return t=t.getNth(e),new Adjectives(t.document,t.pointer)},e.prototype.comparatives=function(e){let t=this.match("#Comparative");return t=t.getNth(e),new Adjectives(t.document,t.pointer)}}},Jl={api:function(e){class Adverbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adverbs"}conjugate(e){return this.getNth(e).map((e=>{let t=function(e){return e.compute("root").text("root")}(e);return{Adverb:e.text("normal"),Adjective:t}}),[])}json(e={}){const t=this.methods.two.transform.adjective.fromAdverb;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=t.getNth(e),new Adverbs(t.document,t.pointer)}}};const Wl=function(e){let t=this;t=function(e){let t=e.parentheses();return t=t.filter((e=>e.wordCount()>=3&&e.has("#Verb")&&e.has("#Noun"))),e.splitOn(t)}(t),t=function(e){let t=e.quotations();return t=t.filter((e=>e.wordCount()>=3&&e.has("#Verb")&&e.has("#Noun"))),e.splitOn(t)}(t),t=function(e){let t=e.match("@hasComma");return t=t.filter((e=>{if(1===e.growLeft(".").wordCount())return!1;if(1===e.growRight(". .").wordCount())return!1;let t=e.grow(".");return t=t.ifNo("@hasComma @hasComma"),t=t.ifNo("@hasComma (and|or) ."),t=t.ifNo("(#City && @hasComma) #Country"),t=t.ifNo("(#WeekDay && @hasComma) #Date"),t=t.ifNo("(#Date+ && @hasComma) #Value"),t=t.ifNo("(#Adjective && @hasComma) #Adjective"),t.found})),e.splitAfter(t)}(t),t=t.splitAfter("(@hasEllipses|@hasSemicolon|@hasDash|@hasColon)"),t=t.splitAfter("^#Pronoun (said|says)"),t=t.splitBefore("(said|says) #ProperNoun$"),t=t.splitBefore(". . if .{4}"),t=t.splitBefore("and while"),t=t.splitBefore("now that"),t=t.splitBefore("ever since"),t=t.splitBefore("(supposing|although)"),t=t.splitBefore("even (while|if|though)"),t=t.splitBefore("(whereas|whose)"),t=t.splitBefore("as (though|if)"),t=t.splitBefore("(til|until)");let n=t.match("#Verb .* [but] .* #Verb",0);n.found&&(t=t.splitBefore(n));let r=t.if("if .{2,9} then .").match("then");return t=t.splitBefore(r),"number"==typeof e&&(t=t.get(e)),t},ql={this:"Noun",then:"Pivot"},Ul=[{match:"[that] #Determiner #Noun",group:0,chunk:"Pivot"},{match:"#PastTense [that]",group:0,chunk:"Pivot"},{match:"[so] #Determiner",group:0,chunk:"Pivot"},{match:"#Copula #Adverb+? [#Adjective]",group:0,chunk:"Adjective"},{match:"#Adjective and #Adjective",chunk:"Adjective"},{match:"#Adverb+ and #Adverb #Verb",chunk:"Verb"},{match:"#Gerund #Adjective$",chunk:"Verb"},{match:"#Gerund to #Verb",chunk:"Verb"},{match:"#PresentTense and #PresentTense",chunk:"Verb"},{match:"#Adverb #Negative",chunk:"Verb"},{match:"(want|wants|wanted) to #Infinitive",chunk:"Verb"},{match:"#Verb #Reflexive",chunk:"Verb"},{match:"#Verb [to] #Adverb? #Infinitive",group:0,chunk:"Verb"},{match:"[#Preposition] #Gerund",group:0,chunk:"Verb"},{match:"#Infinitive [that] ",group:0,chunk:"Verb"},{match:"#Noun of #Determiner? #Noun",chunk:"Noun"},{match:"#Value+ #Adverb? #Adjective",chunk:"Noun"},{match:"the [#Adjective] #Noun",chunk:"Noun"},{match:"#Singular in #Determiner? #Singular",chunk:"Noun"},{match:"#Plural [in] #Determiner? #Noun",group:0,chunk:"Pivot"},{match:"#Noun and #Determiner? #Noun",notIf:"(#Possessive|#Pronoun)",chunk:"Noun"}];let Rl=null;const Ql=function(e,t){if(("undefined"!=typeof process&&process.env?process.env:self.env||{}).DEBUG_CHUNKS){let n=(e.normal+"'").padEnd(8);console.log(` | '${n} โ†’ ${t.padEnd(12)}  -fallback- `)}e.chunk=t};var Zl={chunks:function(e){const{document:t,world:n}=e;!function(e){for(let t=0;t{for(let r=0;r{if("Verb"===e.chunk){const t=e.terms.find((e=>e.tags.has("Verb")));t||e.terms.forEach((e=>e.chunk=null))}}))}(t)}},_l={compute:Zl,api:function(e){class Chunks extends e{constructor(e,t,n){super(e,t,n),this.viewType="Chunks"}isVerb(){return this.filter((e=>e.has("")))}isNoun(){return this.filter((e=>e.has("")))}isAdjective(){return this.filter((e=>e.has("")))}isPivot(){return this.filter((e=>e.has("")))}debug(){return this.toView().debug("chunks"),this}update(e){let t=new Chunks(this.document,e);return t._cache=this._cache,t}}e.prototype.chunks=function(e){let t=function(e){let t=[],n=null;return e.clauses().docs.forEach((e=>{e.forEach((e=>{e.chunk&&e.chunk===n?t[t.length-1][2]=e.index[1]+1:(n=e.chunk,t.push([e.index[0],e.index[1],e.index[1]+1]))})),n=null})),e.update(t)}(this);return t=t.getNth(e),new Chunks(this.document,t.pointer)},e.prototype.clauses=Wl},hooks:["chunks"]};const Xl=/\./g,Yl=/\(/,eu=/\)/,tu=function(e,t){for(;t{e[0].pre=e[0].pre.replace(Yl,"");let t=e[e.length-1];t.post=t.post.replace(eu,"")})),e}(this)}}e.prototype.parentheses=function(e){let t=function(e){let t=[];return e.docs.forEach((e=>{for(let n=0;n{e[0].pre=e[0].pre.replace(ou,"");let t=e[e.length-1];t.post=t.post.replace(iu,"")}))}(this)}}e.prototype.quotations=function(e){let t=function(e){let t=[];return e.docs.forEach((e=>{for(let n=0;n{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=t.getNth(e),new Acronyms(t.document,t.pointer)}}(e),nu(e),function(e){class Possessives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Possessives"}strip(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(ru,""),e.normal=e.normal.replace(ru,"")}))})),this}}e.prototype.possessives=function(e){let t=function(e){let t=e.match("#Possessive+");return t.has("#Person")&&(t=t.growLeft("#Person+")),t.has("#Place")&&(t=t.growLeft("#Place+")),t.has("#Organization")&&(t=t.growLeft("#Organization+")),t}(this);return t=t.getNth(e),new Possessives(t.document,t.pointer)}}(e),lu(e),function(e){cu.forEach((t=>{e.prototype[t[0]]=function(e){let n=this.match(t[1]);return"number"==typeof e?n.get(e):n}})),e.prototype.phoneNumbers=uu,hu.forEach((t=>{e.prototype[t[0]]=e.prototype[t[1]]}))}(e),function(e){class Slashes extends e{constructor(e,t,n){super(e,t,n),this.viewType="Slashes"}split(){return this.map((e=>{let t=e.text().split(du);return(e=e.replaceWith(t.join(" "))).growRight("("+t.join("|")+")+")}))}}e.prototype.slashes=function(e){let t=this.match("#SlashedTerm");return t=t.getNth(e),new Slashes(t.document,t.pointer)}}(e)}};const mu=function(e,t){e.docs.forEach((e=>{e.forEach(t)}))};var pu={case:e=>{mu(e,(e=>{e.text=e.text.toLowerCase()}))},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;mu(e,(e=>e.text=n(e.text,t)))},whitespace:e=>{mu(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=>{mu(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()},debullet:e=>{const t=/^\s*([-โ€“โ€”*โ€ข])\s*$/;return e.docs.forEach((e=>{t.test(e[0].pre)&&(e[0].pre=e[0].pre.replace(t,""))})),e}};const fu=e=>e.split("|").reduce(((e,t)=>(e[t]=!0,e)),{}),bu="unicode|punctuation|whitespace|acronyms",vu="|case|contractions|parentheses|quotations|emoji|honorifics|debullet",yu={light:fu(bu),medium:fu(bu+vu),heavy:fu(bu+vu+"|possessives|adverbs|nouns|verbs")};var wu={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=yu[e]),Object.keys(e).forEach((t=>{pu.hasOwnProperty(t)&&pu[t](this,e[t])})),this}}};const ku=["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"],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")},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=t.first(),t.found?t:e}(e);return{determiner:e.match("#Determiner").eq(0),adjectives:e.match("#Adjective"),number:e.values(),isPlural:Au(e,t),isSubordinate:Pu(e),root:t}},Nu=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},Iu=function(e){return!e.has("^(#Uncountable|#ProperNoun|#Place|#Pronoun|#Acronym)+$")},Tu={tags:!0},Du={tags:!0};var Hu={api:function(e){class Nouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Nouns"}parse(e){return this.getNth(e).map(Cu)}json(e){let t="object"==typeof e?e:{};return this.getNth(e).map((e=>{let n=e.toView().json(t)[0]||{};return t&&!1!==t.noun&&(n.noun=function(e){let t=Cu(e);return{root:Nu(t.root),number:xu(t.number),determiner:Nu(t.determiner),adjectives:ju(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}}(e)),n}),[])}conjugate(e){const t=this.world.methods.two.transform.noun;return this.getNth(e).map((e=>{let n=Cu(e),r=n.root.compute("root").text("root"),a={Singular:r};return Iu(n.root)&&(a.Plural=t.toPlural(r,this.model)),a.Singular===a.Plural&&delete a.Plural,a}),[])}isPlural(e){let t=this.filter((e=>Cu(e).isPlural));return t.getNth(e)}isSingular(e){let t=this.filter((e=>!Cu(e).isPlural));return t.getNth(e)}adjectives(e){let t=this.update([]);return this.forEach((e=>{let n=Cu(e).adjectives;n.found&&(t=t.concat(n))})),t.getNth(e)}toPlural(e){return this.getNth(e).map((e=>function(e,t){if(!0===t.isPlural)return e;if(t.root.has("#Possessive")&&(t.root=t.root.possessives().strip()),!Iu(t.root))return e;const{methods:n,model:r}=e.world,{toPlural:a}=n.two.transform.noun;let o=a(t.root.text({keepPunct:!1}),r);e.match(t.root).replaceWith(o,Tu).tag("Plural","toPlural"),t.determiner.has("(a|an)")&&e.remove(t.determiner);let i=t.root.after("not? #Adverb+? [#Copula]",0);return i.found&&(i.has("is")?e.replace(i,"are"):i.has("was")&&e.replace(i,"were")),e}(e,Cu(e))))}toSingular(e){return this.getNth(e).map((e=>function(e,t){if(!1===t.isPlural)return e;const{methods:n,model:r}=e.world,{toSingular:a}=n.two.transform.noun;let o=a(t.root.text("normal"),r);return e.replace(t.root,o,Du).tag("Singular","toPlural"),e}(e,Cu(e))))}update(e){let t=new Nouns(this.document,e);return t._cache=this._cache,t}}e.prototype.nouns=function(e){let t=function(e){let t=e.clauses().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|i)"),t=t.splitOn("(#Noun|#Adjective) [(he|him|she|it)]",0),t=t.splitOn("[(he|him|she|it)] (#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.splitBefore("(our|my|their|your)"),t=t.splitOn("#Noun [#Determiner]",0),t=t.if("#Noun"),t}(this);return t=t.getNth(e),new Nouns(this.document,t.pointer)}}},Eu={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:1e3,millionth:1e6,billionth:1e9,trillionth:1e12,quadrillionth:1e15,quintillionth:1e18,sextillionth:1e21,septillionth:1e24,hundred:100,thousand:1e3,million:1e6,billion:1e9,trillion:1e12,quadrillion:1e15,quintillion:1e18,sextillion:1e21,septillion:1e24,grand:1e3}};const Gu=(e,t)=>{if(Eu.ones.hasOwnProperty(e)){if(t.ones||t.teens)return!1}else if(Eu.teens.hasOwnProperty(e)){if(t.ones||t.teens||t.tens)return!1}else if(Eu.tens.hasOwnProperty(e)&&(t.ones||t.teens||t.tens))return!1;return!0},Ou=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"),Vu=/^([0-9,. ]+)\/([0-9,. ]+)$/,zu={"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),Su=function(e){if(!0===zu.hasOwnProperty(e))return zu[e];if("a"===e||"an"===e)return 1;const t=(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#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 $u.test(a)&&(a=a.replace($u,""),r=r.replaceWith(a)),r=Ku.hasOwnProperty(a)?Ku[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)}))},Wu=[["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"],Uu=[[1e24,"septillion"],[1e20,"hundred sextillion"],[1e21,"sextillion"],[1e20,"hundred quintillion"],[1e18,"quintillion"],[1e17,"hundred quadrillion"],[1e15,"quadrillion"],[1e14,"hundred trillion"],[1e12,"trillion"],[1e11,"hundred billion"],[1e9,"billion"],[1e8,"hundred million"],[1e6,"million"],[1e5,"hundred thousand"],[1e3,"thousand"],[100,"hundred"],[1,"one"]],Ru=function(e){let t=[];if(e>100)return t;for(let n=0;n=Wu[n][1]&&(e-=Wu[n][1],t.push(Wu[n][0]));return qu[e]&&t.push(qu[e]),t},Qu=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=Ju(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));let r=function(e){let t=e,n=[];return Uu.forEach((r=>{if(e>=r[0]){let e=Math.floor(t/r[0]);t-=e*r[0],e&&n.push({unit:r[1],count:e})}})),n}(t);for(let e=0;e1&&n.push("and")),n=n.concat(Ru(r[e].count)),n.push(t)}return n=n.concat((e=>{const t=["zero","one","two","three","four","five","six","seven","eight","nine"];let n=[],r=Ju(e).match(/\.([0-9]+)/);if(!r||!r[0])return n;n.push("point");let a=r[0].split("");for(let e=0;ee)),0===n.length&&(n[0]=""),n.join(" ")},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"},_u=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){class Fractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return this.getNth(e).map(Lu)}get(e){return this.getNth(e).map(Lu)}json(e){return this.getNth(e).map((t=>{let n=t.toView().json(e)[0],r=Lu(t);return n.fraction=r,n}),[])}toDecimal(e){return this.getNth(e).forEach((e=>{let{decimal:t}=Lu(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")})),this}toFraction(e){return this.getNth(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 this.getNth(e).forEach((e=>{let t=function(e){if(!e.numerator||!e.denominator)return"";let t=Qu({num:e.numerator}),n=_u({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""}(Lu(e));e.after("^#Noun").found&&(t+=" of"),e.replaceWith(t)})),this}toCardinal(e){return this.getNth(e).forEach((e=>{let t=function(e){return e.numerator&&e.denominator?`${Qu({num:e.numerator})} out of ${Qu({num:e.denominator})}`:""}(Lu(e));e.replaceWith(t)})),this}toPercentage(e){return this.getNth(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=function(e,t){let n=e.match("#Fraction+");return n=n.filter((e=>!e.lookBehind("#Value and$").found)),n=n.notIf("#Value seconds"),n}(this);return t=t.getNth(e),new Fractions(this.document,t.pointer)}},Yu="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty",ec=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},tc=function(e){if("string"==typeof e)return{num:Su(e)};let t=e.text("reduced"),n=e.growRight("#Unit").match("#Unit$").text("machine"),r=/[0-9],[0-9]/.test(e.text("text"));if(1===e.terms().length&&!e.has("#Multiple")){let a=function(e,t){let n=(e=e.replace(/,/g,"")).split(/([0-9.,]*)/),[r,a]=n,o=n.slice(2).join("");return""!==a&&t.length<2?(a=Number(a||e),"number"!=typeof a&&(a=null),o=o||"","st"!==o&&"nd"!==o&&"rd"!==o&&"th"!==o||(o=""),{prefix:r||"",num:a,suffix:o}):null}(t,e);if(null!==a)return a.hasComma=r,a.unit=n,a}let a=e.match("#Fraction{2,}$");a=!1===a.found?e.match("^#Fraction$"):a;let o=null;a.found&&(a.has("#Value and #Value #Fraction")&&(a=a.match("and #Value #Fraction")),o=Lu(a),t=(e=(e=e.not(a)).not("and$")).text("reduced"));let i=0;return t&&(i=Su(t)||0),o&&o.decimal&&(i+=o.decimal),{hasComma:r,prefix:"",num:i,suffix:"",isOrdinal:e.has("#Ordinal"),isText:e.has("#TextValue"),isFraction:e.has("#Fraction"),isMoney:e.has("#Money"),unit:n}},nc={"ยข":"cents",$:"dollars","ยฃ":"pounds","ยฅ":"yen","โ‚ฌ":"euros","โ‚ก":"colรณn","เธฟ":"baht","โ‚ญ":"kip","โ‚ฉ":"won","โ‚น":"rupees","โ‚ฝ":"ruble","โ‚บ":"liras"},rc={"%":"percent","ยฐ":"degrees"},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},oc=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=ac(e);return t+_u(e)+n}if("Ordinal"===t)return e.prefix+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}(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},ic=function(e){if("string"==typeof e||"number"==typeof e){let t={};return t[e]=!0,t}return t=e,"[object Array]"===Object.prototype.toString.call(t)?e.reduce(((e,t)=>(e[t]=!0,e)),{}):e||{};var t},sc=function(e){class Numbers extends e{constructor(e,t,n){super(e,t,n),this.viewType="Numbers"}parse(e){return this.getNth(e).map(tc)}get(e){return this.getNth(e).map(tc).map((e=>e.num))}json(e){let t="object"==typeof e?e:{};return this.getNth(e).map((e=>{let n=e.toView().json(t)[0],r=tc(e);return n.number={prefix:r.prefix,num:r.num,suffix:r.suffix,hasComma:r.hasComma,unit:r.unit},n}),[])}units(){return this.growRight("#Unit").match("#Unit$")}isUnit(e){return function(e,t={}){return t=ic(t),e.filter((e=>{let{unit:n}=tc(e);return!(!n||!0!==t[n])}))}(this,e)}isOrdinal(){return this.if("#Ordinal")}isCardinal(){return this.if("#Cardinal")}toNumber(){let e=this.map((e=>{if(!this.has("#TextValue"))return e;let t=tc(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=oc(t,n);return e.replaceWith(r,{tags:!0}),e.tag("NumericValue")}));return new Numbers(e.document,e.pointer)}toLocaleString(){return this.forEach((e=>{let t=tc(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=tc(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=tc(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=tc(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=>tc(t).num===e))}greaterThan(e){return this.filter((t=>tc(t).num>e))}lessThan(e){return this.filter((t=>tc(t).num{let r=tc(n).num;return r>e&&r{let n=tc(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=tc(e).num);let t=this.map((t=>{let n=tc(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=ec(this);return t=t.getNth(e),new Numbers(this.document,t.pointer)},e.prototype.percentages=function(e){let t=ec(this);return t=t.filter((e=>e.has("#Percent")||e.after("^percent"))),t=t.getNth(e),new Numbers(this.document,t.pointer)},e.prototype.money=function(e){let t=ec(this);return t=t.filter((e=>e.has("#Money")||e.after("^#Currency"))),t=t.getNth(e),new Numbers(this.document,t.pointer)},e.prototype.values=e.prototype.numbers};var lc={api:function(e){Xu(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},hc={api:function(e){e.prototype.redact=cc}},dc=function(e){let t=null;return e.has("#PastTense")?t="PastTense":e.has("#FutureTense")?t="FutureTense":e.has("#PresentTense")&&(t="PresentTense"),{tense:t}},gc=function(e){let t=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:(t=t.ifNo("^#Gerund"),1===t.length?t:(0===t.length&&(t=e),t.eq(0)))))))}(e.clauses()),n=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,grammar:dc(a)}};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,grammar:i}=gc(t);return n.sentence={subject:r.text("normal"),verb:a.text("normal"),predicate:o.text("normal"),grammar:i},n}),[])}toPastTense(e){return this.getNth(e).map((e=>(gc(e),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}(e))))}toPresentTense(e){return this.getNth(e).map((e=>(gc(e),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}(e))))}toFutureTense(e){return this.getNth(e).map((e=>(gc(e),e=function(e){let t=e.verbs();if(t.eq(0).toFutureTense(),t=(e=e.fullSentence()).verbs(),t.length>1){t=t.slice(1);let e=t.filter((e=>!(e.lookBehind("to$").found||!e.has("#Copula #Gerund")&&(e.has("#Gerund")||!e.has("#Copula")&&e.has("#PresentTense")&&!e.has("#Infinitive")&&e.lookBefore("(he|she|it|that|which)$").found))));e.found&&e.forEach((e=>{if(e.has("#Copula"))return e.match("was").replaceWith("is"),void e.match("is").replaceWith("will be");e.toInfinitive()}))}return e}(e),e)))}toInfinitive(e){return this.getNth(e).map((e=>(gc(e),function(e){return e.verbs().toInfinitive(),e}(e))))}toNegative(e){return this.getNth(e).map((e=>(gc(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e))))}toPositive(e){return this.getNth(e).map((e=>(gc(e),function(e){return e.verbs().first().toPositive().compute("chunks"),e}(e))))}isQuestion(e){return this.questions(e)}isExclamation(e){let t=this.filter((e=>e.lastTerm().has("@hasExclamation")));return t.getNth(e)}isStatement(e){let t=this.filter((e=>!e.isExclamation().found&&!e.isQuestion().found));return t.getNth(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=t.getNth(e),new Sentences(this.document,t.pointer)},questions:function(e){let t=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))}))}(this);return t.getNth(e)}};Object.assign(e.prototype,t)}};const 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},fc="male",bc="female",vc={mr:fc,mrs:bc,miss:bc,madam:bc,king:fc,queen:bc,duke:fc,duchess:bc,baron:fc,baroness:bc,count:fc,countess:bc,prince:fc,princess:bc,sire:fc,dame:bc,lady:bc,ayatullah:fc,congressman:fc,congresswoman:bc,"first lady":bc,mx:null},yc=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return bc;if(n.has("#MaleName"))return fc;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),vc.hasOwnProperty(e))return vc[e];if(/^her /.test(e))return bc;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 bc}return null},wc=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=n.getNth(e),n};var kc={api:function(e){!function(e){class People extends e{constructor(e,t,n){super(e,t,n),this.viewType="People"}parse(e){return this.getNth(e).map(pc)}json(e){let t="object"==typeof e?e:{};return this.getNth(e).map((e=>{let n=e.toView().json(t)[0],r=pc(e);return n.person={firstName:r.firstName.text("normal"),lastName:r.lastName.text("normal"),honorific:r.honorific.text("normal"),presumed_gender:yc(r,e)},n}),[])}presumedMale(){return this.filter((e=>e.has("(#MaleName|mr|mister|sr|jr|king|pope|prince|sir)")))}presumedFemale(){return this.filter((e=>e.has("(#FemaleName|mrs|miss|queen|princess|madam)")))}update(e){let t=new People(this.document,e);return t._cache=this._cache,t}}e.prototype.people=function(e){let t=function(e){let t=e.splitAfter("@hasComma");t=t.match("#Honorific+? #Person+");let n=t.match("#Possessive").notIf("(his|her)");return t=t.splitAfter(n),t}(this);return t=t.getNth(e),new People(this.document,t.pointer)}}(e),function(e){e.prototype.places=function(t){let n=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}(this);return n=n.getNth(t),new e(this.document,n.pointer)}}(e),function(e){e.prototype.organizations=function(e){return this.match("#Organization+").getNth(e)}}(e),function(e){e.prototype.topics=wc}(e)}};const Pc=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)},Ac=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")},Nc=function(e){if(!e.has("(#Particle|#PhrasalVerb)"))return{verb:e.none(),particle:e.none()};let t=e.match("#Particle$");return{verb:e.not(t),particle:t}},jc=function(e){let t=e.clone();t.contractions().expand();const n=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}(t);return{root:n,prefix:t.match("#Prefix"),adverbs:Pc(t,n),auxiliary:Ac(t,n),negative:Cc(t),phrasal:Nc(n)}},xc={tense:"PresentTense"},Ic={conditional:!0},Tc={tense:"FutureTense"},Dc={progressive:!0},Hc={tense:"PastTense"},Ec={complete:!0,progressive:!1},Gc={passive:!0},Oc=function(e){let t={};return e.forEach((e=>{Object.assign(t,e)})),t},Fc={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[xc]],["^wanted to #Infinitive$",[Hc]],["^will want to #Infinitive$",[Tc]]],"gerund-phrase":[["^#PastTense #Gerund$",[Hc]],["^#PresentTense #Gerund$",[xc]],["^#Infinitive #Gerund$",[xc]],["^will #Infinitive #Gerund$",[Tc]],["^have #PastTense #Gerund$",[Hc]],["^will have #PastTense #Gerund$",[Hc]]],"simple-present":[["^#PresentTense$",[xc]],["^#Infinitive$",[xc]]],"simple-past":[["^#PastTense$",[Hc]]],"simple-future":[["^will #Adverb? #Infinitive",[Tc]]],"present-progressive":[["^(is|are|am) #Gerund$",[xc,Dc]]],"past-progressive":[["^(was|were) #Gerund$",[Hc,Dc]]],"future-progressive":[["^will be #Gerund$",[Tc,Dc]]],"present-perfect":[["^(has|have) #PastTense$",[Hc,Ec]]],"past-perfect":[["^had #PastTense$",[Hc,Ec]],["^had #PastTense to #Infinitive",[Hc,Ec]]],"future-perfect":[["^will have #PastTense$",[Tc,Ec]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[Hc,Dc]]],"past-perfect-progressive":[["^had been #Gerund$",[Hc,Dc]]],"future-perfect-progressive":[["^will have been #Gerund$",[Tc,Dc]]],"passive-past":[["(got|were|was) #Passive",[Hc,Gc]],["^(was|were) being #Passive",[Hc,Gc]],["^(had|have) been #Passive",[Hc,Gc]]],"passive-present":[["^(is|are|am) #Passive",[xc,Gc]],["^(is|are|am) being #Passive",[xc,Gc]],["^has been #Passive",[xc,Gc]]],"passive-future":[["will have been #Passive",[Tc,Gc,Ic]],["will be being? #Passive",[Tc,Gc,Ic]]],"present-conditional":[["would be #PastTense",[xc,Ic]]],"past-conditional":[["would have been #PastTense",[Hc,Ic]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[Tc]]],"auxiliary-past":[["^did #Infinitive$",[Hc,{plural:!1}]],["^used to #Infinitive$",[Hc,Ec]]],"auxiliary-present":[["^(does|do) #Infinitive$",[xc,Ec,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[Hc]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let Vc=[];Object.keys(Fc).map((e=>{Fc[e].forEach((t=>{Vc.push({name:e,match:t[0],data:Oc(t[1])})}))}));const zc=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(),Bc(r)&&(n.remove(r),r=n.last()),Bc(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:Sc(t,e)}},Mc=e=>e,Kc=(e,t)=>{let n=$c(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},Lc=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=$c(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},Jc=function(e,t){let n=$c(e),r=n.subject;return r.has("i")||r.has("we")||n.plural?"do":"does"},Wc=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},qc=function(e,t){const{toInfinitive:n}=e.methods.two.transform.verb;let r=t.root.text({keepPunct:!1});return r=n(r,e.model,Wc(e)),r&&e.replace(t.root,r),e},Uc=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),Rc=function(e){return e&&e.isView?e.json({normal:!0,terms:!1,text:!1}).map((e=>e.normal)):[]},Qc=function(e){return e&&e.isView?e.text("normal"):""},Zc=function(e){const{toInfinitive:t}=e.methods.two.transform.verb;return t(e.text("normal"),e.model,Wc(e))},_c={tags:!0},Xc={tags:!0},Yc={noAux:(e,t)=>(t.auxiliary.found&&(e=e.remove(t.auxiliary)),e),simple:(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;if(a.has("#Modal"))return e;let o=a.text({keepPunct:!1});return o=r(o,e.model,Wc(a)),o=n(o,e.model).PastTense,o="been"===o?"was":o,"was"===o&&(o=((e,t)=>{let{subject:n,plural:r}=$c(e);return r||n.has("we")?"were":"was"})(e)),o&&e.replace(a,o,Xc),e},both:function(e,t){return t.negative.found?(e.replace("will","did"),e):(e=Yc.simple(e,t),e=Yc.noAux(e,t))},hasHad:e=>(e.replace("has","had",Xc),e),hasParticiple:(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,Wc(a)),n(o,e.model).Participle}},eh={infinitive:Yc.simple,"simple-present":Yc.simple,"simple-past":Mc,"simple-future":Yc.both,"present-progressive":e=>(e.replace("are","were",Xc),e.replace("(is|are|am)","was",Xc),e),"past-progressive":Mc,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":Yc.hasHad,"past-perfect":Mc,"future-perfect":(e,t)=>(e.match(t.root).insertBefore("had"),e.has("will")&&(e=Uc(e)),e.remove("have"),e),"present-perfect-progressive":Yc.hasHad,"past-perfect-progressive":Mc,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",Xc),e),"passive-past":e=>(e.replace("have","had",Xc),e),"passive-present":e=>(e.replace("(is|are)","was",Xc),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",Xc),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":Mc,"auxiliary-future":e=>(e.replace("(is|are|am)","was",Xc),e),"auxiliary-past":Mc,"auxiliary-present":e=>(e.replace("(do|does)","did",Xc),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",Xc):(Yc.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":Mc,"want-infinitive":e=>(e.replace("(want|wants)","wanted",Xc),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Yc.simple(e,t),Uc(e),e)},th=function(e,t){let n=$c(e),r=n.subject;return r.has("(i|we|you)")?"have":!1===n.plural||r.has("he")||r.has("she")||r.has("#Person")?"has":"have"},nh=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,{root:a,auxiliary:o}=t;if(a.has("#Modal"))return e;let i=a.text({keepPunct:!1});i=r(i,e.model,Wc(a));let s=n(i,e.model);if(i=s.Participle||s.PastTense,i){e=e.replace(a,i);let t=th(e);e.prepend(t).match(t).tag("Auxiliary"),e.remove(o)}return e},rh={infinitive:nh,"simple-present":nh,"simple-future":(e,t)=>e.replace("will",th(e)),"present-perfect":Mc,"past-perfect":Mc,"future-perfect":(e,t)=>e.replace("will have",th(e)),"present-perfect-progressive":Mc,"past-perfect-progressive":Mc,"future-perfect-progressive":Mc},ah={tags:!0},oh=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,Wc(a)),!1===Kc(e)&&(o=n(o,e.model).PresentTense),a.has("#Copula")&&(o=Lc(e)),o&&(e=e.replace(a,o,ah)).not("#Particle").tag("PresentTense"),e},ih=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,Wc(a)),!1===Kc(e)&&(o=n(o,e.model).Gerund),o&&(e=e.replace(a,o,ah)).not("#Particle").tag("Gerund"),e},sh={infinitive:oh,"simple-present":(e,t)=>{const{conjugate:n}=e.methods.two.transform.verb;let{root:r}=t;if(!r.has("#Infinitive"))return oh(e,t);{let t=$c(e).subject;if(Kc(e)||t.has("i"))return e;let a=r.text("normal"),o=n(a,e.model).PresentTense;a!==o&&e.replace(r,o,ah)}return e},"simple-past":oh,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=Lc(e);e.replace(n,t),(e=e.remove("will")).replace("not "+t,t+" not")}else oh(e,t),e=e.remove("will");return e},"present-progressive":Mc,"past-progressive":(e,t)=>{let n=Lc(e);return e.replace("(were|was)",n,ah)},"future-progressive":e=>(e.match("will").insertBefore("is"),e.remove("be"),e.remove("will")),"present-perfect":(e,t)=>(oh(e,t),e=e.remove("(have|had|has)")),"past-perfect":(e,t)=>{let n=$c(e).subject;return Kc(e)||n.has("i")?((e=qc(e,t)).remove("had"),e):(e.replace("had","has",ah),e)},"future-perfect":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"present-perfect-progressive":Mc,"past-perfect-progressive":e=>e.replace("had","has",ah),"future-perfect-progressive":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"passive-past":(e,t)=>{let n=Lc(e);return e.has("(had|have|has)")&&e.has("been")?(e.replace("(had|have|has)",n,ah),e.replace("been","being"),e):e.replace("(got|was|were)",n)},"passive-present":Mc,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":Mc,"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=Jc(e);return e.replace(t.auxiliary,n),e}return ih(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":Mc,"modal-infinitive":Mc,"modal-past":(e,t)=>(((e,t)=>{const{toInfinitive:n}=e.methods.two.transform.verb,r=t.root;let a=t.root.text("normal");a=n(a,e.model,Wc(r)),a&&(e=e.replace(t.root,a,ah))})(e,t),e.remove("have")),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),oh(e,t),e.remove("(will|have)")),"want-infinitive":(e,t)=>{let n="wants";return Kc(e)&&(n="want"),e.replace("(want|wanted|wants)",n,ah),e.remove("will"),e}},lh={tags:!0},uh=(e,t)=>{const{toInfinitive:n}=e.methods.two.transform.verb,{root:r,auxiliary:a}=t;if(r.has("#Modal"))return e;let o=r.text("normal");return o=n(o,e.model,Wc(r)),o&&(e=e.replace(r,o,lh)).not("#Particle").tag("Verb"),e.prepend("will").match("will").tag("Auxiliary"),e.remove(a),e},ch=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,{root:a,auxiliary:o}=t;let i=a.text("normal");return i=r(i,e.model,Wc(a)),i&&(i=n(i,e.model).Gerund,e.replace(a,i,lh),e.not("#Particle").tag("PresentTense")),e.remove(o),e.prepend("will be").match("will be").tag("Auxiliary"),e},hh={infinitive:uh,"simple-present":uh,"simple-past":uh,"simple-future":Mc,"present-progressive":ch,"past-progressive":ch,"future-progressive":Mc,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":Mc,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":Mc,"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":Mc,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":Mc,"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":Mc,"modal-past":Mc,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),uh(e,t),e.remove("(had|have)")),"want-infinitive":e=>(e.replace("(want|wants|wanted)","will want"),e)},dh={tags:!0},gh={tags:!0},mh=function(e,t){let n=Jc(e);return e.prepend(n+" not"),e},ph=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)},fh=e=>e.has("(is|was|am|are|will|were|be)"),bh={"simple-present":(e,t)=>!0===fh(e)?ph(e):(e=qc(e,t),e=mh(e)),"simple-past":(e,t)=>!0===fh(e)?ph(e):((e=qc(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===fh(e)?ph(e):mh(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",gh),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=mh(e)).replace("wants","want",gh)};var vh={api:function(e){class Verbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Verbs"}parse(e){return this.getNth(e).map(jc)}json(e,t){let n=this.getNth(t).map((t=>{let n=t.toView().json(e)[0]||{};return n.verb=function(e){let t=jc(e);e=e.clone().toView();const n=zc(e,t);return{root:t.root.text(),preAdverbs:Rc(t.adverbs.pre),postAdverbs:Rc(t.adverbs.post),auxiliary:Qc(t.auxiliary),negative:t.negative.found,prefix:Qc(t.prefix),infinitive:Zc(t.root),grammar:n}}(t),n}),[]);return n}subjects(e){return this.getNth(e).map((e=>(jc(e),$c(e).subject)))}adverbs(e){return this.getNth(e).map((e=>e.match("#Adverb")))}isSingular(e){return this.getNth(e).filter((e=>!0!==$c(e).plural))}isPlural(e){return this.getNth(e).filter((e=>!0===$c(e).plural))}isImperative(e){return this.getNth(e).filter((e=>e.has("#Imperative")))}toInfinitive(e){return this.getNth(e).map((e=>{let t=jc(e);return function(e,t){const{toInfinitive:n}=e.methods.two.transform.verb,{root:r,auxiliary:a}=t;let o=a.terms().harden(),i=r.text("normal");if(i=n(i,e.model,Wc(r)),i&&e.replace(r,i,_c).tag("Verb").firstTerm().tag("Infinitive"),o.found&&e.remove(o),t.negative.found){e.has("not")||e.prepend("not");let t=Jc(e);e.prepend(t)}return e.fullSentence().compute(["freeze","lexicon","preTagger","postTagger","unfreeze","chunks"]),e}(e,t,zc(e,t).form)}))}toPresentTense(e){return this.getNth(e).map((e=>{let t=jc(e),n=zc(e,t);return n.isInfinitive?e:function(e,t,n){return sh.hasOwnProperty(n)?((e=sh[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e}(e,t,n.form)}))}toPastTense(e){return this.getNth(e).map((e=>{let t=jc(e),n=zc(e,t);return n.isInfinitive?e:function(e,t,n){return eh.hasOwnProperty(n)?((e=eh[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e}(e,t,n.form)}))}toFutureTense(e){return this.getNth(e).map((e=>{let t=jc(e),n=zc(e,t);return n.isInfinitive?e:function(e,t,n){return e.has("will")||e.has("going to")?e:hh.hasOwnProperty(n)?((e=hh[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e}(e,t,n.form)}))}toGerund(e){return this.getNth(e).map((e=>{let t=jc(e),n=zc(e,t);return n.isInfinitive?e:function(e,t){const{toInfinitive:n,conjugate:r}=e.methods.two.transform.verb,{root:a,auxiliary:o}=t;if(e.has("#Gerund"))return e;let i=a.text("normal");i=n(i,e.model,Wc(a));let s=r(i,e.model).Gerund;if(s){let t=Lc(e);e.replace(a,s,dh),e.remove(o),e.prepend(t)}return e.replace("not is","is not"),e.replace("not are","are not"),e.fullSentence().compute(["tagger","chunks"]),e}(e,t,n.form)}))}toPastParticiple(e){return this.getNth(e).map((e=>{let t=jc(e),n=zc(e,t);return n.isInfinitive?e:function(e,t,n){return rh.hasOwnProperty(n)?((e=rh[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):((e=nh(e,t)).fullSentence().compute(["tagger","chunks"]),e)}(e,t,n.form)}))}conjugate(e){const{conjugate:t,toInfinitive:n}=this.world.methods.two.transform.verb;return this.getNth(e).map((e=>{let r=jc(e),a=zc(e,r);"imperative"===a.form&&(a.form="simple-present");let o=r.root.text("normal");if(!r.root.has("#Infinitive")){let t=Wc(r.root);o=n(o,e.model,t)||o}return t(o,e.model)}),[])}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 this.getNth(e).map((e=>{let t=jc(e);return function(e,t,n){if(e.has("#Negative"))return e;if(bh.hasOwnProperty(n))return bh[n](e,t);let r=e.matchOne("be");return r.found?(r.prepend("not"),e):!0===fh(e)?ph(e):(r=e.matchOne("(will|had|have|has|did|does|do|#Modal)"),r.found?(r.append("not"),e):e)}(e,t,zc(e,t).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=function(e){let t=e.match("");return t=t.not("#Conjunction"),t=t.not("#Preposition"),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),t=t.splitBefore("(#PresentTense|#PastTense) [(had|has)]",0),t=t.not("#Reflexive$"),t=t.not("#Adjective"),t=t.splitAfter("[#PastTense] #PastTense",0),t=t.splitAfter("[#PastTense] #Auxiliary+ #PastTense",0),t=t.splitAfter("#Copula [#Gerund] #PastTense",0),t=t.if("#Verb"),t.has("(#Verb && !#Auxiliary) #Adverb+? #Copula")&&(t=t.splitBefore("#Copula")),t}(this);return t=t.getNth(e),new Verbs(this.document,t.pointer)}}};const yh=function(e,t){let n=t.match(e);if(n.found){let e=n.pronouns().refersTo();if(e.found)return e}return t.none()},wh=function(e){if(!e.found)return e;let[t]=e.fullPointer[0];return t&&t>0?e.update([[t-1]]):e.none()},kh=function(e,t){let n=e.people();return n=function(e,t){return"m"===t?e.filter((e=>!e.presumedFemale().found)):"f"===t?e.filter((e=>!e.presumedMale().found)):e}(n,t),n.found?n.last():(n=e.nouns("#Actor"),n.found?n.last():"f"===t?yh("(she|her|hers)",e):"m"===t?yh("(he|him|his)",e):e.none())},Ph=function(e){let t=e.nouns(),n=t.isPlural().notIf("#Pronoun");if(n.found)return n.last();let r=yh("(they|their|theirs)",e);return r.found?r:(n=t.match("(somebody|nobody|everybody|anybody|someone|noone|everyone|anyone)"),n.found?n.last():e.none())},Ah=function(e,t){let n=e.before(),r=t(n);return r.found?r:(n=wh(e),r=t(n),r.found?r:(n=wh(n),r=t(n),r.found?r:e.none()))};var Ch={compute:{coreference:function(e){e.pronouns().if("(he|him|his|she|her|hers|they|their|theirs|it|its)").forEach((e=>{let t=null;e.has("(he|him|his)")?t=Ah(e,(e=>kh(e,"m"))):e.has("(she|her|hers)")?t=Ah(e,(e=>kh(e,"f"))):e.has("(they|their|theirs)")&&(t=Ah(e,Ph)),t&&t.found&&function(e,t){t&&t.found&&(e.docs[0][0].reference=t.ptrs[0])}(e,t)}))}},api:function(e){class Pronouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Pronouns"}hasReference(){return this.compute("coreference"),this.filter((e=>e.docs[0][0].reference))}refersTo(){return this.compute("coreference"),this.map((e=>{if(!e.found)return e.none();let t=e.docs[0][0];return t.reference?e.update([t.reference]):e.none()}))}update(e){let t=new Pronouns(this.document,e);return t._cache=this._cache,t}}e.prototype.pronouns=function(e){let t=this.match("#Pronoun");return t=t.getNth(e),new Pronouns(t.document,t.pointer)}}};return h.plugin(Ll),h.plugin(Jl),h.plugin(_l),h.plugin(Ch),h.plugin(gu),h.plugin(wu),h.plugin(Hu),h.plugin(lc),h.plugin(hc),h.plugin(mc),h.plugin(kc),h.plugin(vh),h},"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 9386c1cbd..2743188ed 100644 --- a/builds/one/compromise-one.cjs +++ b/builds/one/compromise-one.cjs @@ -1 +1 @@ -var t,e;t=this,e=function(){var t={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};const 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=e,r={forEach:function(t){return this.fullPointer.forEach(((e,n)=>{let r=this.update([e]);t(r,n)})),this},map:function(t,e){let n=this.fullPointer.map(((e,n)=>{let r=this.update([e]),o=t(r,n);return void 0===o?this.none():o}));if(0===n.length)return e||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach((t=>{r=r.concat(t.fullPointer)})),this.toView(r)},filter:function(t){let e=this.fullPointer;return e=e.filter(((e,n)=>{let r=this.update([e]);return t(r,n)})),this.update(e)},find:function(t){let e=this.fullPointer.find(((e,n)=>{let r=this.update([e]);return t(r,n)}));return this.update([e])},some:function(t){return this.fullPointer.some(((e,n)=>{let r=this.update([e]);return t(r,n)}))},random:function(t=1){let e=this.fullPointer,n=Math.floor(Math.random()*e.length);return n+t>this.length&&(n=this.length-t,n=n<0?0:n),e=e.slice(n,n+t),this.update(e)}};const o={termList:function(){return this.methods.one.termList(this.docs)},terms:function(t){let e=this.match(".");return"number"==typeof t?e.eq(t):e},groups:function(t){if(t||0===t)return this.update(this._groups[t]||[]);let e={};return Object.keys(this._groups).forEach((t=>{e[t]=this.update(this._groups[t])})),e},eq:function(t){let e=this.pointer;return e||(e=this.docs.map(((t,e)=>[e]))),e[t]?this.update([e[t]]):this.none()},first:function(){return this.eq(0)},last:function(){let t=this.fullPointer.length-1;return this.eq(t)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(t,e){let n=this.pointer||this.docs.map(((t,e)=>[e]));return n=n.slice(t,e),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let t=this.fullPointer.map((t=>[t[0]]));return this.update(t).toView()},none:function(){return this.update([])},isDoc:function(t){if(!t||!t.isView)return!1;let e=this.fullPointer,n=t.fullPointer;return!e.length!==n.length&&e.every(((t,e)=>!!n[e]&&t[0]===n[e][0]&&t[1]===n[e][1]&&t[2]===n[e][2]))},wordCount:function(){return this.docs.reduce(((t,e)=>(t+=e.filter((t=>""!==t.text)).length,t)),0)},isFull:function(){let t=this.pointer;if(!t)return!0;if(0===t.length||0!==t[0][0])return!1;let e=0,n=0;return this.document.forEach((t=>e+=t.length)),this.docs.forEach((t=>n+=t.length)),e===n},getNth:function(t){return"number"==typeof t?this.eq(t):"string"==typeof t?this.if(t):this}};o.group=o.groups,o.fullSentence=o.fullSentences,o.sentence=o.fullSentences,o.lastTerm=o.lastTerms,o.firstTerm=o.firstTerms;var i=o;const s=Object.assign({},i,n,r);s.get=s.eq;var l=s;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,r=e||t.map(((t,e)=>[e]));return r.map((t=>{let[e,r,o,i,s]=t;return r=r||0,o=o||(n[e]||[]).length,n[e]&&n[e][r]&&(i=i||n[e][r].id,n[e][o-1]&&(s=s||n[e][o-1].id)),[e,r,o,i,s]}))}update(t){let e=new View(this.document,t);if(this._cache&&t&&t.length>0){let n=[];t.forEach(((t,e)=>{let[r,o,i]=t;(1===t.length||0===o&&this.document[r].length===i)&&(n[e]=this._cache[r])})),n.length>0&&(e._cache=n)}return e.world=this.world,e}toView(t){return new View(this.document,t||this.pointer)}fromText(t){const{methods:e}=this;let n=e.one.tokenize.fromString(t,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","freeze","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r.compute("unfreeze"),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,l);var a=View;const c=function(t){return t&&"object"==typeof t&&!Array.isArray(t)};function u(t,e){if(c(e))for(const n in e)c(e[n])?(t[n]||Object.assign(t,{[n]:{}}),u(t[n],e[n])):Object.assign(t,{[n]:e[n]});return t}var h=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&&u(i,t.model),t.irregulars&&function(t,e){let n=t.two.models||{};Object.keys(e).forEach((t=>{e[t].pastTense&&(n.toPast&&(n.toPast.ex[t]=e[t].pastTense),n.fromPast&&(n.fromPast.ex[e[t].pastTense]=t)),e[t].presentTense&&(n.toPresent&&(n.toPresent.ex[t]=e[t].presentTense),n.fromPresent&&(n.fromPresent.ex[e[t].presentTense]=t)),e[t].gerund&&(n.toGerund&&(n.toGerund.ex[t]=e[t].gerund),n.fromGerund&&(n.fromGerund.ex[e[t].gerund]=t)),e[t].comparative&&(n.toComparative&&(n.toComparative.ex[t]=e[t].comparative),n.fromComparative&&(n.fromComparative.ex[e[t].comparative]=t)),e[t].superlative&&(n.toSuperlative&&(n.toSuperlative.ex[t]=e[t].superlative),n.fromSuperlative&&(n.fromSuperlative.ex[e[t].superlative]=t))}))}(i,t.irregulars),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.frozen&&r.addWords(t.frozen,!0),t.mutate&&t.mutate(e)};const f=function(t){return"[object Array]"===Object.prototype.toString.call(t)};var p=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(f(t)){if(f(t[0])){let n=t.map((t=>t.map((t=>({text:t,normal:t,pre:"",post:" ",tags:new Set})))));return new e(n)}let n=function(t){return t.map((t=>t.terms.map((t=>(f(t.tags)&&(t.tags=new Set(t.tags)),t)))))}(t);return new e(n)}return o};let d=Object.assign({},t);const m=function(t,e){e&&m.addWords(e);let n=p(t,a,d);return t&&n.compute(d.hooks),n};Object.defineProperty(m,"_world",{value:d,writable:!0}),m.tokenize=function(t,e){const{compute:n}=this._world;e&&m.addWords(e);let r=p(t,a,d);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},m.plugin=function(t){return h(t,this._world,a,this),this},m.extend=m.plugin,m.world=function(){return this._world},m.model=function(){return this._world.model},m.methods=function(){return this._world.methods},m.hooks=function(){return this._world.hooks},m.verbose=function(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},m.version="14.13.0";var w=m,b=function(t){let e=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),E=(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},O=function(t){let e=t[t.length-1];!e||/ $/.test(e.post)||/[-โ€“โ€”]/.test(e.post)||(e.post+=" ")},k=(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,"")}},P=function(t,e,n,r){let[o,i,s]=e;0===i||s===r[o].length?O(n):(O(n),O([t[e[1]]])),function(t,e,n){let r=t[e];if(0!==e||!j(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")||j(o.text)&&o.text.length>1&&(o.text=o.text.replace(/^\p{Lu}/u,(t=>t.toLowerCase())))}(t,i,n),E(t,i,n)};let _=0;const S=t=>(t=t.length<3?"0"+t:t).length<3?"0"+t:t;var z=function(t){let[e,n]=t.index||[0,0];_+=1,_=_>46655?0:_,e=e>46655?0:e,n=n>1294?0:n;let r=S(_.toString(36));r+=S(e.toString(36));let o=n.toString(36);return o=o.length<2?"0"+o:o,r+=o,r+=parseInt(36*Math.random(),10).toString(36),t.normal+"|"+r.toUpperCase()};const A=function(t){t.has("@hasContraction")&&"function"==typeof t.contractions&&t.grow("@hasContraction").contractions().expand()},$=t=>"[object Array]"===Object.prototype.toString.call(t),T=function(t,e,n){const{document:r,world:o}=e;e.uncache();let i=e.fullPointer,s=e.fullPointer;e.forEach(((l,a)=>{let c=l.fullPointer[0],[u]=c,h=r[u],f=function(t,e){const{methods:n}=e;return"string"==typeof t?n.one.tokenize.fromString(t,e)[0]:"object"==typeof t&&t.isView?t.clone().docs[0]||[]:$(t)?$(t[0])?t[0]:t:[]}(t,o);0!==f.length&&(f=function(t){return t.map((t=>(t.id=z(t),t)))}(f),n?(A(e.update([c]).firstTerm()),P(h,c,f,r)):(A(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);let o=r.docs[0],i=e.possessives&&o[o.length-1].tags.has("Possessive");t=function(t,e){if("string"!=typeof t)return t;let n=e.groups();return t=t.replace(L,(t=>{let e=t.replace(/\$/,"");return n.hasOwnProperty(e)?n[e].text():t})),t}(t,r);let s=this.update(n);n=n.map((t=>t.slice(0,3)));let l=(s.docs[0]||[]).map((t=>Array.from(t.tags)));if("string"==typeof t&&(t=this.fromText(t).compute("id")),r.insertAfter(t),s.has("@hasContraction")&&r.contractions&&r.grow("@hasContraction+").contractions().expand(),r.delete(s),i){let t=r.docs[0],e=t[t.length-1];e.tags.has("Possessive")||(e.text+="'s",e.normal+="'s",e.tags.add("Possessive"))}let a=r.toView(n).compute(["index","freeze","lexicon"]);return a.world.compute.preTagger&&a.compute("preTagger"),a.compute("unfreeze"),e.tags&&a.terms().forEach(((t,e)=>{t.tagSafe(l[e])})),e.case&&a.docs[0]&&a.docs[0][0]&&0===a.docs[0][0].index[1]&&(a.docs[0][0].text=a.docs[0][0].text.replace(/\w\S*/g,(t=>t.charAt(0).toUpperCase()+t.substring(1).toLowerCase()))),a},replace:function(t,e,n){if(t&&!e)return this.replaceWith(t,n);let r=this.match(t);return r.found?(this.soften(),r.replaceWith(e,n)):this}};var F=V,q=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 G={remove:function(t){const{indexN:e}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;t&&(n=this,r=this.match(t));let o=!n.ptrs;r.has("@hasContraction")&&r.contractions&&r.grow("@hasContraction").contractions().expand();let i=n.fullPointer,s=r.fullPointer.reverse(),l=q(this.document,s);return i=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})),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)))}(i,e(s)),n.ptrs=i,n.document=l,n.compute("index"),o&&(n.ptrs=void 0),t?n.toView(i):(this.ptrs=[],n.none())}};G.delete=G.remove;var D=G;const B={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}};B.deHyphenate=B.dehyphenate,B.toQuotation=B.toQuotations;var M=B,U={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 W=new Set(["index","sequence","seq","sequential","chron","chronological"]),I=new Set(["freq","frequency","topk","repeats"]),R=new Set(["alpha","alphabetical"]);var Q={unique:function(){let t=new Set;return this.filter((e=>{let n=e.text("machine");return!t.has(n)&&(t.add(n),!0)}))},reverse:function(){let t=this.pointer||this.docs.map(((t,e)=>[e]));return t=[].concat(t),t=t.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(t)},sort:function(t){let{docs:e,pointer:n}=this;if(this.uncache(),"function"==typeof t)return function(t,e){let n=t.fullPointer;return n=n.sort(((n,r)=>(n=t.update([n]),r=t.update([r]),e(n,r)))),t.ptrs=n,t}(this,t);t=t||"alpha";let r=n||e.map(((t,e)=>[e])),o=e.map(((t,e)=>({index:e,words:t.length,normal:t.map((t=>t.machine||t.normal||"")).join(" "),pointer:r[e]})));return W.has(t)&&(t="sequential"),R.has(t)&&(t="alpha"),I.has(t)?(o=U.byFreq(o),this.update(o.map((t=>t.pointer)))):"function"==typeof U[t]?(o=o.sort(U[t]),this.update(o.map((t=>t.pointer)))):this}};const H=function(t,e){if(t.length>0){let e=t[t.length-1],n=e[e.length-1];!1===/ /.test(n.post)&&(n.post+=" ")}return t=t.concat(e)};var Z={concat:function(t){if("string"==typeof t){let e=this.fromText(t);if(this.found&&this.ptrs){let t=this.fullPointer,n=t[t.length-1][0];this.document.splice(n,0,...e.document)}else this.document=this.document.concat(e.document);return this.all().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=H(t.document,e.docs),t.all()}(this,t);if(e=t,"[object Array]"===Object.prototype.toString.call(e)){let e=H(this.document,t);return this.document=e,this.all()}var e;return this}},K={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 J=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}},N,F,D,M,Q,Z,K);var X=function(t){Object.assign(t.prototype,J)};const Y={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))),n[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 ot=/'/,it=new Set(["what","how","when","where","why"]),st=new Set(["be","go","start","think","need"]),lt=new Set(["been","gone"]);var at=function(t,e){let n=t[e].normal.split(ot)[0];if(it.has(n))return[n,"did"];if(t[e+1]){if(lt.has(t[e+1].normal))return[n,"had"];if(st.has(t[e+1].normal))return[n,"would"]}return null},ct=function(t,e){return"ain't"===t[e].normal||"aint"===t[e].normal?null:[t[e].normal.replace(/n't/,""),"not"]};const ut=/'/,ht=/(e|รฉ|aison|sion|tion)$/,ft=/(age|isme|acle|ege|oire)$/;var pt=(t,e)=>["je",t[e].normal.split(ut)[1]],dt=(t,e)=>{let n=t[e].normal.split(ut)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},mt=(t,e)=>{let n=t[e].normal.split(ut)[1];return n&&ht.test(n)&&!ft.test(n)?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const gt=/^([0-9.]{1,4}[a-z]{0,2}) ?[-โ€“โ€”] ?([0-9]{1,4}[a-z]{0,2})$/i,wt=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-โ€“โ€”] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,bt=/^[0-9]{3}-[0-9]{4}$/;var yt=function(t,e){let n=t[e],r=n.text.match(gt);return null!==r?!0===n.tags.has("PhoneNumber")||bt.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(wt),null!==r?[r[1],"to",r[4]]:null)};const vt=/^([+-]?[0-9][.,0-9]*)([a-zยฐยฒยณยต/]+)$/;var xt=function(t,e,n){const r=n.model.one.numberSuffixes||{};let o=t[e].text.match(vt);if(null!==o){let t=o[2].toLowerCase().trim();return r.hasOwnProperty(t)?null:[o[1],t]}return null};const jt=/'/,Et=/^[0-9][^-โ€“โ€”]*[-โ€“โ€”].*?[0-9]/,Ot=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]]},kt={t:(t,e)=>ct(t,e),d:(t,e)=>at(t,e)},Pt={j:(t,e)=>pt(t,e),l:(t,e)=>dt(t,e),d:(t,e)=>mt(t,e)},_t=function(t,e,n,r){for(let o=0;o2)return i.out.concat(r)}return null},St=function(t,e){let n=e.fromText(t.join(" "));return n.compute(["id","alias"]),n.docs[0]},zt=function(t,e){for(let n=e+1;n<5&&t[n];n+=1)if("been"===t[n].normal)return["there","has"];return["there","is"]};var At=t=>{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;if(!0===jt.test(r[l].normal)){let t=r[l].normal.split(jt);a=t[0],c=t[1]}let u=_t(i,r[l],a,c);!u&&kt.hasOwnProperty(c)&&(u=kt[c](r,l,e)),!u&&Pt.hasOwnProperty(a)&&(u=Pt[a](r,l)),"there"===a&&"s"===c&&(u=zt(r,l)),u?(u=St(u,t),rt(n,[s,l],u),Ot(n[s],t,l,u.length)):Et.test(r[l].normal)?(u=yt(r,l),u&&(u=St(u,t),rt(n,[s,l],u),o.one.setTag(u,"NumberRange",e),u[2]&&u[2].tags.has("Time")&&o.one.setTag([u[0]],"Time",e,null,"time-range"),Ot(n[s],t,l,u.length))):(u=xt(r,l,e),u&&(u=St(u,t),rt(n,[s,l],u),o.one.setTag([u[1]],"Unit",e,null,"contraction-unit")))}}))},$t={model:nt,compute:{contractions:At},hooks:["contractions"]};const Tt=function(t){const e=t.world,{model:n,methods:r}=t.world,o=r.one.setTag,{frozenLex:i}=n.one,s=n.one._multiCache||{};t.docs.forEach((t=>{for(let n=0;nn;r-=1){let s=t.slice(n,r+1),l=s.map((t=>t.machine||t.normal)).join(" ");!0!==i.hasOwnProperty(l)||(o(s,i[l],e,!1,"1-frozen-multi-lexicon"),s.forEach((t=>t.frozen=!0)))}void 0!==i[l]&&i.hasOwnProperty(l)&&(o([r],i[l],e,!1,"1-freeze-lexicon"),r.frozen=!0)}}))},Ct=t=>""+t+"",Nt=t=>""+t+"";var Lt=function(t){t.docs.forEach((t=>{console.log(Ct("\n โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€")),t.forEach((t=>{let e=` ${Nt("โ”‚")} `,n=t.implicit||t.text||"-";!0===t.frozen?e+=`${Ct(n)} โ„๏ธ`:e+=Nt(n),console.log(e)}))}))},Vt={compute:{frozen:Tt,freeze:Tt,unfreeze:function(t){return t.docs.forEach((t=>{t.forEach((t=>{delete t.frozen}))})),t}},mutate:t=>{const e=t.methods.one;e.termMethods.isFrozen=t=>!0===t.frozen,e.debug.freeze=Lt,e.debug.frozen=Lt},api:function(t){t.prototype.freeze=function(){return this.docs.forEach((t=>{t.forEach((t=>{t.frozen=!0}))})),this},t.prototype.unfreeze=function(){this.compute("unfreeze")},t.prototype.isFrozen=function(){return this.match("@isFrozen+")}},hooks:["freeze"]},Ft=function(t,e,n){const{model:r,methods:o}=n,i=o.one.setTag,s=r.one._multiCache||{},{lexicon:l}=r.one||{};let a=t[e],c=a.machine||a.normal;if(void 0!==s[c]&&t[e+1]){for(let r=e+s[c]-1;r>e;r-=1){let o=t.slice(e,r+1);if(o.length<=1)return!1;let s=o.map((t=>t.machine||t.normal)).join(" ");if(!0===l.hasOwnProperty(s)){let t=l[s];return i(o,t,n,!1,"1-multi-lexicon"),!t||2!==t.length||"PhrasalVerb"!==t[0]&&"PhrasalVerb"!==t[1]||i([o[1]],"Particle",n,!1,"1-phrasal-particle"),!0}}return!1}return null};const qt=/^(under|over|mis|re|un|dis|semi|pre|post)-?/,Gt=new Set(["Verb","Infinitive","PastTense","Gerund","PresentTense","Adjective","Participle"]);var Dt=function(t,e,n){const{model:r,methods:o}=n,i=o.one.setTag,{lexicon:s}=r.one;let l=t[e],a=l.machine||l.normal;if(void 0!==s[a]&&s.hasOwnProperty(a))return i([l],s[a],n,!1,"1-lexicon"),!0;if(l.alias){let t=l.alias.find((t=>s.hasOwnProperty(t)));if(t)return i([l],s[t],n,!1,"1-lexicon-alias"),!0}if(!0===qt.test(a)){let t=a.replace(qt,"");if(s.hasOwnProperty(t)&&t.length>3&&Gt.has(s[t]))return i([l],s[t],n,!1,"1-lexicon-prefix"),!0}return null},Bt={lexicon:function(t){const e=t.world;t.docs.forEach((t=>{for(let n=0;n{let o=t[r],i=(r=(r=r.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);i.length>1&&(void 0===n[i[0]]||i.length>n[i[0]])&&(n[i[0]]=i.length),e[r]=e[r]||o})),delete e[""],delete e.null,delete e[" "],{lex:e,_multi:n}},Ut={addWords:function(t,e=!1){const n=this.world(),{methods:r,model:o}=n;if(!t)return;if(Object.keys(t).forEach((e=>{"string"==typeof t[e]&&t[e].startsWith("#")&&(t[e]=t[e].replace(/^#/,""))})),!0===e){let{lex:e,_multi:i}=r.one.expandLexicon(t,n);return Object.assign(o.one._multiCache,i),void Object.assign(o.one.frozenLex,e)}if(r.two.expandLexicon){let{lex:e,_multi:i}=r.two.expandLexicon(t,n);Object.assign(o.one.lexicon,e),Object.assign(o.one._multiCache,i)}let{lex:i,_multi:s}=r.one.expandLexicon(t,n);Object.assign(o.one.lexicon,i),Object.assign(o.one._multiCache,s)}},Wt={model:{one:{lexicon:{},_multiCache:{},frozenLex:{}}},methods:{one:{expandLexicon:Mt}},compute:Bt,lib:Ut,hooks:["lexicon"]},It=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;let o=n.one.tokenize.splitTerms(t,r).map((t=>n.one.tokenize.splitWhitespace(t,r)));return o.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 Rt=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 Zt=(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 Kt=function(t){return t.goNext=t.goNext.map((t=>{if(0!==Object.keys(t).length)return t})),t.goNext=Zt(t.goNext,void 0),t.failTo=Zt(t.failTo,0),t.endAs=Zt(t.endAs,null),t};const Jt={buildTrie:function(t){const e=It(t,this.world());return Kt(e)}};Jt.compile=Jt.buildTrie;var Xt={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:It(t,this.world));var r;let o=Ht(this,n,e);return o=o.settle(),o}},lib:Jt};const Yt=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},te=function(t,e){let{ptrs:n,byGroup:r}=t;return n=Yt(n,e),Object.keys(r).forEach((t=>{r[t]=Yt(r[t],e)})),{ptrs:n,byGroup:r}},ee=function(t,e,n){const r=n.methods.one;return"number"==typeof t&&(t=String(t)),"string"==typeof t&&(t=r.killUnicode(t,n),t=r.parseMatch(t,e,n)),t},ne=t=>"[object Object]"===Object.prototype.toString.call(t),re=t=>t&&ne(t)&&!0===t.isView,oe=t=>t&&ne(t)&&!0===t.isNet;var ie={matchOne:function(t,e,n){const r=this.methods.one;if(re(t))return this.intersection(t).eq(0);if(oe(t))return this.sweep(t,{tagger:!1,matchOne:!0}).view;let o={regs:t=ee(t,n,this.world),group:e,justOne:!0},i=r.match(this.docs,o,this._cache),{ptrs:s,byGroup:l}=te(i,this.fullPointer),a=this.toView(s);return a._groups=l,a},match:function(t,e,n){const r=this.methods.one;if(re(t))return this.intersection(t);if(oe(t))return this.sweep(t,{tagger:!1}).view.settle();let o={regs:t=ee(t,n,this.world),group:e},i=r.match(this.docs,o,this._cache),{ptrs:s,byGroup:l}=te(i,this.fullPointer),a=this.toView(s);return a._groups=l,a},has:function(t,e,n){const r=this.methods.one;if(re(t))return this.intersection(t).fullPointer.length>0;if(oe(t))return this.sweep(t,{tagger:!1}).view.found;let o={regs:t=ee(t,n,this.world),group:e,justOne:!0};return r.match(this.docs,o,this._cache).ptrs.length>0},if:function(t,e,n){const r=this.methods.one;if(re(t))return this.filter((e=>e.intersection(t).found));if(oe(t)){let e=this.sweep(t,{tagger:!1}).view.settle();return this.if(e)}let o={regs:t=ee(t,n,this.world),group:e,justOne:!0},i=this.fullPointer,s=this._cache||[];i=i.filter(((t,e)=>{let n=this.update([t]);return r.match(n.docs,o,s[e]).ptrs.length>0}));let l=this.update(i);return this._cache&&(l._cache=i.map((t=>s[t[0]]))),l},ifNo:function(t,e,n){const{methods:r}=this,o=r.one;if(re(t))return this.filter((e=>!e.intersection(t).found));if(oe(t)){let e=this.sweep(t,{tagger:!1}).view.settle();return this.ifNo(e)}t=ee(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}},se={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 le=function(t,e){return[t[0],t[1],e[2]]},ae=(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},ce=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},ue={splitOn:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=ae(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=>ce(t,this))),this.update(i)},splitBefore:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=ae(t,this,e).fullPointer,o=n(this.fullPointer,r);for(let t=0;t{i.push(t.passthrough),i.push(t.before),t.match&&t.after?i.push(le(t.match,t.after)):i.push(t.match)})),i=i.filter((t=>t)),i=i.map((t=>ce(t,this))),this.update(i)},splitAfter:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=ae(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach((t=>{i.push(t.passthrough),t.before&&t.match?i.push(le(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=>ce(t,this))),this.update(i)}};ue.split=ue.splitAfter;var he=ue;const fe=function(t,e){return!(!t||!e)&&t[0]===e[0]&&t[2]===e[1]},pe=function(t,e,n){const r=t.world,o=r.methods.one.parseMatch;n=n||"^.";let i=o(e=e||".$",{},r),s=o(n,{},r);i[i.length-1].end=!0,s[0].start=!0;let l=t.fullPointer,a=[l[0]];for(let e=1;e)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,be=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,ye=/ /g,ve=t=>/^[![^]*(<[^<]*>)?\//.test(t)&&/\/[?\]+*$~]*$/.test(t),xe=function(t){return t=(t=t.map((t=>t.trim()))).filter((t=>t))};var je=function(t){let e=t.split(we),n=[];e.forEach((t=>{ve(t)?n.push(t):n=n.concat(t.split(be))})),n=xe(n);let r=[];return n.forEach((t=>{(t=>/^[![^]*(<[^<]*>)?\(/.test(t)&&/\)[?\]+*$~]*$/.test(t))(t)||ve(t)?r.push(t):r=r.concat(t.split(ye))})),r=xe(r),r};const Ee=/\{([0-9]+)?(, *[0-9]*)?\}/,Oe=/&&/,ke=new RegExp(/^<\s*(\S+)\s*>/),Pe=t=>t.charAt(0).toUpperCase()+t.substring(1),_e=t=>t.charAt(t.length-1),Se=t=>t.charAt(0),ze=t=>t.substring(1),Ae=t=>t.substring(0,t.length-1),$e=function(t){return t=ze(t),t=Ae(t)},Te=function(t,e){let n={};for(let r=0;r<2;r+=1){if("$"===_e(t)&&(n.end=!0,t=Ae(t)),"^"===Se(t)&&(n.start=!0,t=ze(t)),"?"===_e(t)&&(n.optional=!0,t=Ae(t)),("["===Se(t)||"]"===_e(t))&&(n.group=null,"["===Se(t)&&(n.groupStart=!0),"]"===_e(t)&&(n.groupEnd=!0),t=(t=t.replace(/^\[/,"")).replace(/\]$/,""),"<"===Se(t))){const e=ke.exec(t);e.length>=2&&(n.group=e[1],t=t.replace(e[0],""))}if("+"===_e(t)&&(n.greedy=!0,t=Ae(t)),"*"!==t&&"*"===_e(t)&&"\\*"!==t&&(n.greedy=!0,t=Ae(t)),"!"===Se(t)&&(n.negative=!0,t=ze(t)),"~"===Se(t)&&"~"===_e(t)&&t.length>2&&(t=$e(t),n.fuzzy=!0,n.min=e.fuzzy||.85,!1===/\(/.test(t)))return n.word=t,n;if("/"===Se(t)&&"/"===_e(t))return t=$e(t),e.caseSensitive&&(n.use="text"),n.regex=new RegExp(t),n;if(!0===Ee.test(t)&&(t=t.replace(Ee,((t,e,r)=>(void 0===r?(n.min=Number(e),n.max=Number(e)):(r=r.replace(/, */,""),void 0===e?(n.min=0,n.max=Number(r)):(n.min=Number(e),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),"")))),"("===Se(t)&&")"===_e(t)){Oe.test(t)?(n.choices=t.split(Oe),n.operator="and"):(n.choices=t.split("|"),n.operator="or"),n.choices[0]=ze(n.choices[0]);let r=n.choices.length-1;n.choices[r]=Ae(n.choices[r]),n.choices=n.choices.map((t=>t.trim())),n.choices=n.choices.filter((t=>t)),n.choices=n.choices.map((t=>t.split(/ /g).map((t=>Te(t,e))))),t=""}if("{"===Se(t)&&"}"===_e(t)){if(t=$e(t),n.root=t,/\//.test(t)){let t=n.root.split(/\//);n.root=t[0],n.pos=t[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==t[2]&&(n.sense=t[2])}return n}if("<"===Se(t)&&">"===_e(t))return t=$e(t),n.chunk=Pe(t),n.greedy=!0,n;if("%"===Se(t)&&"%"===_e(t))return t=$e(t),n.switch=t,n}return"#"===Se(t)?(n.tag=ze(t),n.tag=Pe(n.tag),n):"@"===Se(t)?(n.method=ze(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 Ce=Te;const Ne=/[a-z0-9][-โ€“โ€”][a-z]/i;var Le=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&&Ne.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};const Ve=function(t,e){let{all:n}=e.methods.two.transform.verb||{},r=t.root;return n?n(r,e.model):[]},Fe=function(t,e){let{all:n}=e.methods.two.transform.noun||{};return n?n(t.root,e.model):[t.root]},qe=function(t,e){let{all:n}=e.methods.two.transform.adjective||{};return n?n(t.root,e.model):[t.root]};var Ge=function(t,e){return t=t.map((t=>{if(t.root)if(e.methods.two&&e.methods.two.transform){let n=[];t.pos?"Verb"===t.pos?n=n.concat(Ve(t,e)):"Noun"===t.pos?n=n.concat(Fe(t,e)):"Adjective"===t.pos&&(n=n.concat(qe(t,e))):(n=n.concat(Ve(t,e)),n=n.concat(Fe(t,e)),n=n.concat(qe(t,e))),n=n.filter((t=>t)),n.length>0&&(t.operator="or",t.fastOr=new Set(n))}else t.machine=t.root,delete t.id,delete t.root;return t}))},De=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}))),t},Be=function(t,e,n){if(null==t||""===t)return[];e=e||{},"number"==typeof t&&(t=String(t));let r=je(t);return r=r.map((t=>Ce(t,e))),r=Le(r,n),r=Ge(r,n),r=De(r),r};const Me=function(t,e){for(let n of e)if(t.has(n))return!0;return!1};var Ue=function(t,e){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(o||100))return o||100;let i,s,l,a,c,u,h=[];for(let t=0;t4)return n;l=e[i-1],a=s===l?0:1,c=h[o-1][i]+1,(u=h[o][i-1]+1)1&&i>1&&s===e[i-2]&&t[o-2]===l&&(u=h[o-2][i-2]+a)-1!==t.post.indexOf(e),Ke={hasQuote:t=>Ie.test(t.pre)||Re.test(t.post),hasComma:t=>Ze(t,","),hasPeriod:t=>!0===Ze(t,".")&&!1===Ze(t,"..."),hasExclamation:t=>Ze(t,"!"),hasQuestionMark:t=>Ze(t,"?")||Ze(t,"ยฟ"),hasEllipses:t=>Ze(t,"..")||Ze(t,"โ€ฆ"),hasSemicolon:t=>Ze(t,";"),hasColon:t=>Ze(t,":"),hasSlash:t=>/\//.test(t.text),hasHyphen:t=>Qe.test(t.post)||Qe.test(t.pre),hasDash:t=>He.test(t.post)||He.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)};Ke.hasQuotation=Ke.hasQuote;var Je=Ke;let Xe=function(){};Xe=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.id&&e.id===t.id)return!0;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(We(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)}if(void 0!==e.chunk)return t.chunk===e.chunk;if(void 0!==e.switch)return t.switch===e.switch;if(void 0!==e.machine)return t.normal===e.machine||t.machine===e.machine||t.root===e.machine;if(void 0!==e.sense)return t.sense===e.sense;if(void 0!==e.fastOr){if(e.pos&&!t.tags.has(e.pos))return null;let n=t.root||t.implicit||t.machine||t.normal;return e.fastOr.has(n)||e.fastOr.has(t.text)}return void 0!==e.choices&&("and"===e.operator?e.choices.every((e=>Xe(t,e,n,r))):e.choices.some((e=>Xe(t,e,n,r))))}(t,e,n,r);return!0===e.negative?!o:o};var Ye=Xe;const tn=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&&(en(t,t.t).length=r-t.t),t.t=r,!0)};const rn=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=Ye(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]&&Ye(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&&(en(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},ln=function(t,e,n){let r=0;for(let o=t.t;or||(t.t+=r,0))},an=function(t){const{regs:e}=t;let n=e[t.r],r=Object.assign({},n);if(r.negative=!1,Ye(t.terms[t.t],r,t.start_i+t.t,t.phrase_length))return!1;if(n.optional){let n=e[t.r+1];n&&(Ye(t.terms[t.t],n,t.start_i+t.t,t.phrase_length)?t.r+=1:n.optional&&e[t.r+2]&&Ye(t.terms[t.t],e[t.r+2],t.start_i+t.t,t.phrase_length)&&(t.r+=2))}return n.greedy?ln(t,r,e[t.r+1]):(t.t+=1,!0)},cn=function(t){const{regs:e}=t;let n=e[t.r],r=t.terms[t.t],o=Ye(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&&Ye(n,e[t.r+1],t.start_i+t.t,t.phrase_length)||(t.r+=1)}},un=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},hn=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)}},fn=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]&&cn(t),r.implicit&&t.terms[t.t+1]&&hn(t),t.t+=1,!0===n.end&&t.t!==t.terms.length&&!0!==n.greedy?null:!0!==n.greedy||un(t)?(!0===t.hasGroup&&function(t,e){let n=t.regs[t.r];const r=en(t,e);t.t>1&&n.greedy?r.length+=t.t-e:r.length++}(t,o),!0):null)},pn=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!==tn(t,o)){if(t.negative){if(!an(o))return null}else if(!0!==Ye(o.terms[o.t],t,o.start_i+o.t,o.phrase_length)){if(!0!==t.optional)return null}else if(!fn(o))return null}else if(!fn(o))return null}else{if(t.negative&&t.anything)return null;if(!fn(o))return null}else if(!sn(o))return null}else if(!on(o))return null}else if(!nn(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}},dn=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}},mn=function(t,e,n){return t=t.filter((t=>{let[r,o,i]=t.pointer,s=n[r].slice(o,i);for(let t=0;t{t.groups[n][0]=e})),t},wn=function(t,e,n){let r=pn(t,e,0,t.length);return r?(r=gn(r,n),r):null};var bn=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=wn(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]}))),e.notIf&&(s=mn(s,e.notIf,t)),s=dn(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},yn={api:ge,methods:{one:{termMethods:Je,parseMatch:Be,match:bn}},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 vn=/^\../,xn=/^#./,jn=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,"'"),vn.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 En={html:function(t){let{starts:e,ends:n}=jn(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(kn,""),_n.test(o)&&(o=" "),o=o.replace(Pn,""),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(kn,""),o="-"===o?" ":o.replace(On,""));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&&Sn.test(o)||(o+=" "),r+=n+i+o})),!1===n&&(r=r.trim()),!0===e.lowerCase&&(r=r.toLowerCase()),r},An={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{keepSpace:!1,whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{keepSpace:!1,whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};An.clean=An.normal,An.reduced=An.root;var $n=An;let Tn=[],Cn=0;for(;Cn<64;)Tn[Cn]=0|4294967296*Math.sin(++Cn%Math.PI);var Nn=function(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(Cn=s=0;Cn>4]+Tn[s]+~~i[Cn|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 Ln={text:!0,terms:!0};let Vn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const Fn=function(t,e){return Object.assign({},t,e)},qn={text:t=>zn(t,{keepPunct:!0},!1),normal:t=>zn(t,Fn($n.normal,{keepPunct:!0}),!1),implicit:t=>zn(t,Fn($n.implicit,{keepPunct:!0}),!1),machine:t=>zn(t,Vn,!1),root:t=>zn(t,Fn(Vn,{form:"root"}),!1),hash:t=>Nn(zn(t,{keepPunct:!0},!1)),offset:t=>{let e=qn.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))};qn.sentences=qn.sentence,qn.clean=qn.normal,qn.reduced=qn.root;const Gn={json:function(t){let e=(n=this,"string"==typeof(r=(r=t)||{})&&(r={}),(r=Object.assign({},Ln,r)).offset&&n.compute("offset"),n.docs.map(((t,e)=>{let o={};return Object.keys(r).forEach((i=>{r[i]&&qn[i]&&(o[i]=qn[i](t,n,e))})),o})));var n,r;return"number"==typeof t?e[t]:e}};Gn.data=Gn.json;var Dn=Gn,Bn=function(t){let e=this.methods.one.debug||{};return t&&e.hasOwnProperty(t)?(e[t](this),this):"undefined"!=typeof window&&window.document?(e.clientSide(this),this):(e.tags(this),this)};const Mn=function(t){let e=t.pre||"",n=t.post||"";return e+t.text+n};var Un=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()));return t.filter((t=>t))}if("freq"===t||"frequency"===t||"topk"===t)return function(t){let e={};t.forEach((t=>{e[t]=e[t]||0,e[t]+=1}));let n=Object.keys(e).map((t=>({normal:t,count:e[t]})));return n.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.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()},wrap:function(t){return Un(this,t)}};var In=Wn,Rn={text:function(t){let e={};var n;if(t&&"string"==typeof t&&$n.hasOwnProperty(t)?e=Object.assign({},$n[t]):t&&(n=t,"[object Object]"===Object.prototype.toString.call(n))&&(e=Object.assign({},t)),void 0!==e.keepSpace||this.isFull()||(e.keepSpace=!1),void 0===e.keepEndPunct&&this.pointer){let t=this.pointer[0];t&&t[1]?e.keepEndPunct=!1:e.keepEndPunct=!0}return void 0===e.keepPunct&&(e.keepPunct=!0),void 0===e.keepSpace&&(e.keepSpace=!0),function(t,e){let n="";if(!t||!t[0]||!t[0][0])return n;for(let r=0;r{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 Kn="";var Jn={green:t=>""+t+Kn,red:t=>""+t+Kn,blue:t=>""+t+Kn,magenta:t=>""+t+Kn,cyan:t=>""+t+Kn,yellow:t=>""+t+Kn,black:t=>""+t+Kn,dim:t=>""+t+Kn,i:t=>""+t+Kn},Xn=function(t){let{docs:e,model:n}=t;0===e.length&&console.log(Jn.blue("\n โ”€โ”€โ”€โ”€โ”€โ”€")),e.forEach((e=>{console.log(Jn.blue("\n โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€")),e.forEach((e=>{let r=[...e.tags||[]],o=e.text||"-";e.sense&&(o=`{${e.normal}/${e.sense}}`),e.implicit&&(o="["+e.implicit+"]"),o=Jn.yellow(o);let i="'"+o+"'";if(e.reference){let n=t.update([e.reference]).text("normal");i+=` - ${Jn.dim(Jn.i("["+n+"]"))}`}i=i.padEnd(18);let s=Jn.blue(" โ”‚ ")+Jn.i(i)+" - "+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 Jn[n](t)}))),t.join(", ")}(r,n);console.log(s)}))})),console.log("\n")},Yn=function(t){let{docs:e}=t;console.log(""),e.forEach((t=>{let e=[];t.forEach((t=>{"Noun"===t.chunk?e.push(Jn.blue(t.implicit||t.normal)):"Verb"===t.chunk?e.push(Jn.green(t.implicit||t.normal)):"Adjective"===t.chunk?e.push(Jn.yellow(t.implicit||t.normal)):"Pivot"===t.chunk?e.push(Jn.red(t.implicit||t.normal)):e.push(t.implicit||t.normal)})),console.log(e.join(" "),"\n")})),console.log("\n")},tr=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]}${Jn.blue(r[1])}${r[2]}`}(r,t.offset,e)})),console.log(r)})),console.log("\n")},er={api:Hn,methods:{one:{hash:Nn,debug:{tags:Xn,clientSide:Zn,chunks:Yn,highlight:tr}}}};const nr=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},rr=function(t){let e={};return t.forEach((t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)})),e};var or=function(t,e){let n=rr(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},ir=function(t,e){let n=[];return t.forEach(((r,o)=>{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<20;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},sr={one:{termList:function(t){let e=[];for(let n=0;n{let[e]=t;if(1===r[e].length)return void o.push(t);let n=r[e].filter((e=>nr(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},cr=function(t,e){let n=rr(e),r=[];return t.forEach((t=>{let e=n[t[0]]||[];e=e.filter((e=>nr(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},hr=function(t,e){return t.map((t=>{let[n,r]=t;return e[n]&&e[n][r]&&(t[3]=e[n][r].id),t}))},fr={union:function(t){t=ur(t,this);let e=lr(this.fullPointer,t.fullPointer);return e=hr(e,this.document),this.toView(e)}};fr.and=fr.union,fr.intersection=function(t){t=ur(t,this);let e=cr(this.fullPointer,t.fullPointer);return e=hr(e,this.document),this.toView(e)},fr.not=function(t){t=ur(t,this);let e=ar(this.fullPointer,t.fullPointer);return e=hr(e,this.document),this.toView(e)},fr.difference=fr.not,fr.complement=function(){let t=this.all(),e=ar(t.fullPointer,this.fullPointer);return e=hr(e,this.document),this.toView(e)},fr.settle=function(){let t=this.fullPointer;return t.forEach((e=>{t=lr(t,[e])})),t=hr(t,this.document),this.update(t)};var pr=function(t){Object.assign(t.prototype,fr)},dr={methods:sr,api:pr},mr=function(t){t.prototype.sweep=function(t,e={}){const{world:n,docs:r}=this,{methods:o}=n;let i=o.one.bulkMatch(r,t,this.methods,e);!1!==e.tagger&&o.one.bulkTagger(i,r,this.world),i=i.map((t=>{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}}};const gr=function(t){return!0===t.optional||!0===t.negative?null:t.tag?"#"+t.tag:t.word?t.word:t.switch?`%${t.switch}%`:null};var wr=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.notIf&&(t.notIf=n(t.notIf,{},e)),t.needs=function(t){let e=[];return t.forEach((t=>{e.push(gr(t)),"and"===t.operator&&t.choices&&t.choices.forEach((t=>{t.forEach((t=>{e.push(gr(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=gr(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},br=function(t,e){t=wr(t,e);let n={};t.forEach((t=>{t.needs.forEach((e=>{n[e]=Array.isArray(n[e])?n[e]:[],n[e].push(t)})),t.wants.forEach((e=>{n[e]=Array.isArray(n[e])?n[e]:[],n[e].push(t)}))})),Object.keys(n).forEach((t=>{let e={};n[t]=n[t].filter((t=>"boolean"!=typeof 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}},yr=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=>"boolean"!=typeof i[t.match]&&(i[t.match]=!0,!0))),o}))},vr=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=>r.has(t)))))).filter((t=>0===t.wants.length||t.wants.filter((t=>r.has(t))).length>=t.minWant))}))},xr=function(t,e,n,r,o){let i=[];for(let n=0;n0&&(a.ptrs.forEach((t=>{t[0]=n;let e=Object.assign({},l,{pointer:t});void 0!==l.unTag&&(e.unTag=l.unTag),i.push(e)})),!0===o.matchOne))return[i[0]]}return i},jr=function(t,e,n,r={}){let o=n.one.cacheDoc(t),i=yr(o,e.hooks);return i=vr(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=t.filter((t=>r>=t.minWords)),t}))}(i,t),xr(i,t,o,n,r)},Er=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{if(!t.tag&&!t.chunk&&!t.unTag)return;let o=t.reason||t.match,c=i([t.pointer],e)[0];if(!0===t.safe){if(!1===Er(c,t.tag,r))return;if("-"===c[c.length-1].post)return}if(void 0!==t.tag){if(s(c,t.tag,n,t.safe,`[post] '${o}'`),"Noun"===t.tag&&a){let e=c[c.length-1];a(e.text)?s([e],"Plural",n,t.safe,"quick-plural"):s([e],"Singular",n,t.safe,"quick-singular")}!0===t.freeze&&c.forEach((t=>t.frozen=!0))}void 0!==t.unTag&&l(c,t.unTag,n,t.safe,o),t.chunk&&c.forEach((e=>e.chunk=t.chunk))})))},kr={lib:{buildNet:function(t){let e=this.methods().one.buildNet(t,this.world());return e.isNet=!0,e}},api:mr,methods:{one:{buildNet:br,bulkMatch:jr,bulkTagger:Or}}};const Pr=/ /,_r=function(t,e){"Noun"===e&&(t.chunk=e),"Verb"===e&&(t.chunk=e)},Sr=function(t,e,n,r){if(!0===t.tags.has(e))return null;if("."===e)return null;!0===t.frozen&&(r=!0);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("string"==typeof e)if(e=e.trim(),Pr.test(e))!function(t,e,n,r){let o=e.split(Pr);t.forEach(((t,e)=>{let i=o[e];i&&(i=i.replace(/^#/,""),Sr(t,i,n,r))}))}(t,e,i,r);else{e=e.replace(/^#/,"");for(let n=0;nzr(t,e,n,r)))};var Ar=zr,$r=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=>Cr({id:t}))),e}return[Cr({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},Fr=t=>"[object Array]"===Object.prototype.toString.call(t),qr=t=>(t=t||"").trim(),Gr=function(t=[]){return"string"==typeof t?function(t){let e=t.split(/\r?\n/),n=[];e.forEach((t=>{if(!t.trim()||Nr.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:Lr(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=Cr({});return t.forEach((t=>{if((t=Cr(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):(Vr(e=t).forEach(Cr),e);var e},Dr=function(t,e){let n="-> ";e&&(n=(t=>""+t+"")("โ†’ "));let r="";return Vr(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},Br=function(t){let e=Vr(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},Mr={text:Dr,txt:Dr,array:Br,flat:Br},Ur=function(t,e){return"nested"===e||"json"===e?t:"debug"===e?(console.log(Dr(t,!0)),null):Mr.hasOwnProperty(e)?Mr[e](t):t},Wr=t=>{Vr(t,((t,e)=>{t.id&&(t._cache.parents=t._cache.parents||[],e._cache.parents=t._cache.parents.concat([t.id]))}))},Ir=/\//;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=qr(t),!Ir.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)||Cr({});return new g(e)}add(t,e={}){if(Fr(t))return t.forEach((t=>this.add(qr(t),e))),this;t=qr(t);let n=Cr({id:t,props:e});return this.json.children.push(n),new g(n)}remove(t){return t=qr(t),this.json.children=this.json.children.filter((e=>e.id!==t)),this}nodes(){return Vr(this.json).map((t=>(delete(t=Object.assign({},t)).children,t)))}cache(){return(t=>{let e=Vr(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 Vr(this.json)}fillDown(){var t;return t=this.json,Vr(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 Fr(e[n])?t[n]=e[n].concat(t[n]||[]):void 0===t[n]&&(t[n]=e[n])})),t))(e.props,t.props)})),this}depth(){Wr(this.json);let t=Vr(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 Wr(this.json),Ur(this.json,t)}debug(){return Wr(this.json),Ur(this.json,"debug"),this}}const Rr=function(t){let e=Gr(t);return new g(e)};Rr.prototype.plugin=function(t){t(this)};var Qr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Hyphenated:"cyan",Adverb:"cyan"};const Hr=function(t){if(Qr.hasOwnProperty(t.id))return Qr[t.id];if(Qr.hasOwnProperty(t.is))return Qr[t.is];let e=t._cache.parents.find((t=>Qr[t]));return Qr[e]};var Zr=function(t){const e={};return t.forEach((t=>{let{not:n,also:r,is:o,novel:i}=t.props,s=t._cache.parents;r&&(s=s.concat(r)),e[t.id]={is:o,not:n,novel:i,also:r,parents:s,children:t._cache.children,color:Hr(t)}})),Object.keys(e).forEach((t=>{let n=new Set(e[t].not);e[t].not.forEach((t=>{e[t]&&e[t].children.forEach((t=>n.add(t)))})),e[t].not=Array.from(n)})),e};const Kr=function(t){return t?"string"==typeof t?[t]:t:[]};var Jr=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=Kr(t[e].children),t[e].not=Kr(t[e].not)})),Object.keys(t).forEach((e=>{(t[e].not||[]).forEach((n=>{t[n]&&t[n].not&&t[n].not.push(e)}))})),t},Xr=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=Jr(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 Zr(n)},Yr={one:{setTag:Ar,unTag:$r,addTags:Xr,canBe:Tr}};const to=function(t){return"[object Array]"===Object.prototype.toString.call(t)},eo={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||""),to(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 to(t)?t.forEach((t=>r.one.unTag(n,t,s))):r.one.unTag(n,t,s),this.uncache(),this},canBe:function(t){t=t.replace(/^#/,"");let e=this.model.one.tagSet,n=this.methods.one.canBe,r=[];this.document.forEach(((o,i)=>{o.forEach(((o,s)=>{n(o,t,e)||r.push([i,s,s+1])}))}));let o=this.update(r);return this.difference(o)}};var no=eo,ro=function(t){Object.assign(t.prototype,no)},oo={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 io=new Set(["Auxiliary","Possessive"]);var so=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=t.sort(((t,n)=>{if(io.has(t)||!e.hasOwnProperty(n))return 1;if(io.has(n)||!e.hasOwnProperty(t))return-1;let r=e[t].children||[],o=r.length;return r=e[n].children||[],o-r.length})),t}(e,r)}))}))},lo={model:{one:{tagSet:{}}},compute:{tagRank:so},methods:Yr,api:ro,lib:oo};const ao=/([.!?\u203D\u2E18\u203C\u2047-\u2049\u3002]+\s)/g,co=/^[.!?\u203D\u2E18\u203C\u2047-\u2049\u3002]+\s$/,uo=/((?:\r?\n|\r)+)/;var ho=function(t){let e=[],n=t.split(uo);for(let t=0;t0&&(o.push(i),t[e]="")}return o};const wo={'"':'"',"๏ผ‚":"๏ผ‚","โ€œ":"โ€","โ€Ÿ":"โ€","โ€ž":"โ€","โน‚":"โ€","โ€š":"โ€™","ยซ":"ยป","โ€น":"โ€บ","โ€ต":"โ€ฒ","โ€ถ":"โ€ณ","โ€ท":"โ€ด","ใ€":"ใ€ž","ใ€Ÿ":"ใ€ž"},bo=RegExp("["+Object.keys(wo).join("")+"]","g"),yo=RegExp("["+Object.values(wo).join("")+"]","g"),vo=function(t){if(!t)return!1;let e=t.match(yo);return null!==e&&1===e.length};var xo=function(t){let e=[];for(let n=0;n(t[e]=!0,t)),{});var Fo=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(Lo);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=To(n),n=Ao(n),n=n.filter((t=>t)),n};const qo=/\p{Letter}/u,Go=/[\p{Number}\p{Currency_Symbol}]/u,Do=/^[a-z]\.([a-z]\.)+/i,Bo=/[sn]['โ€™]$/;var Mo=function(t,e){let{prePunctuation:n,postPunctuation:r,emoticons:o}=e.one,i=t,s="",l="",a=Array.from(t);if(o.hasOwnProperty(t.trim()))return{str:t.trim(),pre:s,post:" "};let c=a.length;for(let t=0;t(l=t||"",""))),t=i,s=""),{str:t,pre:s,post:l}},Uo=(t,e)=>{let{str:n,pre:r,post:o}=Mo(t,e);return{text:n,pre:r,post:o,tags:new Set}},Wo=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("")},Io=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 Ro=/([A-Z]\.)+[A-Z]?,?$/,Qo=/^[A-Z]\.,?$/,Ho=/[A-Z]{2,}('s|,)?$/,Zo=/([a-z]\.)+[a-z]\.?$/;var Ko=function(t){return function(t){return!0===Ro.test(t)||!0===Zo.test(t)||!0===Qo.test(t)||!0===Ho.test(t)}(t)&&(t=t.replace(/\./g,"")),t},Jo=function(t,e){const n=e.methods.one.killUnicode;let r=t.text||"";r=Io(r),r=n(r,e),r=Ko(r),t.normal=r},Xo=function(t,e){const{methods:n,model:r}=e,{splitSentences:o,splitTerms:i,splitWhitespace:s}=n.one.tokenize;return t=o(t=t||"",e).map((t=>{let n=i(t,r);return n=n.map((t=>s(t,r))),n.forEach((t=>{Jo(t,e)})),n})),t};const Yo=/[ .][A-Z]\.? *$/i,ti=/(?:\u2026|\.{2,}) *$/,ei=/\p{L}/u,ni=/\. *$/,ri=/^[A-Z]\. $/;var oi={one:{killUnicode:Wo,tokenize:{splitSentences:_o,isSentence:function(t,e){if(!1===ei.test(t))return!1;if(!0===Yo.test(t))return!1;if(3===t.length&&ri.test(t))return!1;if(!0===ti.test(t))return!1;let n=t.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),r=n[n.length-1].toLowerCase();return!0!==e.hasOwnProperty(r)||!0!==ni.test(t)},splitTerms:Fo,splitWhitespace:Uo,fromString:Xo}}},ii={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let si={},li={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","ยตg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","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=>{si[e]=!0,li[e]="Abbreviation",void 0!==t[1]&&(li[e]=[li[e],t[1]])}))}));var ai=["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","ex"].reduce(((t,e)=>(t[e]=!0,t)),{});let ci={"!":"ยก","?":"ยฟษ",'"':'โ€œโ€"โโž',"'":"โ€˜โ€›โ›โœโ€™","-":"โ€”โ€“",a:"ยชร€รร‚รƒร„ร…ร รกรขรฃรครฅฤ€ฤฤ‚ฤƒฤ„ฤ…ววŽวžวŸว วกวบวปศ€ศศ‚ศƒศฆศงศบฮ†ฮ‘ฮ”ฮ›ฮฌฮฑฮปะะฐัฆังำำ‘ำ’ำ“ฦ›รฆ",b:"รŸรพฦ€ฦฦ‚ฦƒฦ„ฦ…ษƒฮ’ฮฒฯฯฆะ‘ะ’ะชะฌะฒัŠัŒัขัฃาŒา",c:"ยขยฉร‡รงฤ†ฤ‡ฤˆฤ‰ฤŠฤ‹ฤŒฤฦ†ฦ‡ฦˆศปศผอปอผฯฒฯนฯฝฯพะกัั”า€าาชาซ",d:"รฤŽฤฤฤ‘ฦ‰ฦŠศกฦ‹ฦŒ",e:"รˆร‰รŠร‹รจรฉรชรซฤ’ฤ“ฤ”ฤ•ฤ–ฤ—ฤ˜ฤ™ฤšฤ›ฦศ„ศ…ศ†ศ‡ศจศฉษ†ษ‡ฮˆฮ•ฮžฮฃฮญฮตฮพฯตะ€ะะ•ะตัั‘าผาฝาพาฟำ–ำ—แป…",f:"ฦ‘ฦ’ฯœฯำบำปา’า“ลฟ",g:"ฤœฤฤžฤŸฤ ฤกฤขฤฃฦ“วควฅวฆวงวดวต",h:"ฤคฤฅฤฆฤงฦ•วถศžศŸฮ‰ฮ—ะ‚ะŠะ‹ะะฝั’ั›าขาฃาคาฅาบาปำ‰ำŠ",I:"รŒรรŽร",i:"รฌรญรฎรฏฤจฤฉฤชฤซฤฌฤญฤฎฤฏฤฐฤฑฦ–ฦ—ศˆศ‰ศŠศ‹ฮŠฮฮชฮฏฮนฯŠะ†ะ‡ั–ั—iฬ‡",j:"ฤดฤตวฐศทษˆษ‰ฯณะˆั˜",k:"ฤถฤทฤธฦ˜ฦ™วจวฉฮšฮบะŒะ–ะšะถะบัœาšา›าœาาžาŸา าก",l:"ฤนฤบฤปฤผฤฝฤพฤฟล€ลล‚ฦšฦชว€ววศดศฝฮ™ำ€ำ",m:"ฮœฯบฯปะœะผำำŽ",n:"ร‘รฑลƒล„ล…ล†ล‡ลˆล‰ลŠล‹ฦฦžวธวนศ ศตฮฮ ฮฎฮทฯžะะ˜ะ™ะ›ะŸะธะนะปะฟัาŠา‹ำ…ำ†ำขำฃำคำฅฯ€",o:"ร’ร“ร”ร•ร–ร˜รฐรฒรณรดรตรถรธลŒลลŽลลล‘ฦŸฦ ฦกว‘ว’วชวซวฌวญวพวฟศŒศศŽศศชศซศฌศญศฎศฏศฐศฑฮŒฮ˜ฮŸฮธฮฟฯƒฯŒฯ•ฯ˜ฯ™ฯฌฯดะžะคะพัฒัณำฆำงำจำฉำชำซ",p:"ฦคฮกฯฯทฯธฯผะ ั€าŽารž",q:"ษŠษ‹",r:"ล”ล•ล–ล—ล˜ล™ฦฆศศ‘ศ’ศ“ษŒษะƒะ“ะฏะณัั“าา‘",s:"ลšล›ลœลลžลŸล ลกฦงฦจศ˜ศ™ศฟะ…ั•",t:"ลขลฃลคลฅลฆลงฦซฦฌฦญฦฎศšศ›ศถศพฮ“ฮคฯ„ฯฎะขั‚",u:"ร™รšร›รœรนรบรปรผลจลฉลชลซลฌลญลฎลฏลฐลฑลฒลณฦฏฦฐฦฑฦฒว“ว”ว•ว–ว—ว˜ว™วšว›วœศ”ศ•ศ–ศ—ษ„ฮฐฯ…ฯ‹ฯ",v:"ฮฝัดัตัถัท",w:"ลดลตฦœฯ‰ฯŽฯ–ฯขฯฃะจะฉัˆั‰ักัฟ",x:"ร—ฮงฯ‡ฯ—ฯฐะฅั…าฒาณำผำฝำพำฟ",y:"รรฝรฟลถลทลธฦณฦดศฒศณษŽษฮŽฮฅฮซฮณฯˆฯ’ฯ“ฯ”ะŽะฃัƒั‡ัžัฐัฑาฎาฏาฐาฑำฎำฏำฐำฑำฒำณ",z:"ลนลบลปลผลฝลพฦตฦถศคศฅษ€ฮ–"},ui={};Object.keys(ci).forEach((function(t){ci[t].split("").forEach((function(e){ui[e]=t}))}));const hi=/\//,fi=/[a-z]\.[a-z]/i,pi=/[0-9]/;var di=function(t,e){let n=t.normal||t.text||t.machine;const r=e.model.one.aliases;if(r.hasOwnProperty(n)&&(t.alias=t.alias||[],t.alias.push(r[n])),hi.test(n)&&!fi.test(n)&&!pi.test(n)){let e=n.split(hi);e.length<=3&&e.forEach((e=>{""!==(e=e.trim())&&(t.alias=t.alias||[],t.alias.push(e))}))}return t};const mi=/^\p{Letter}+-\p{Letter}+$/u;var gi=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"),mi.test(e)&&(e=e.replace(/-/g,"")),e=e.replace(/^[#@]/,""),e!==t.normal&&(t.machine=e)},wi=function(t){let e=t.docs,n={};for(let t=0;txi(t,di),machine:t=>xi(t,gi),normal:t=>xi(t,Jo),freq:wi,offset:bi,index:yi,wordCount:vi},methods:oi,model:{one:{aliases:ii,abbreviations:si,prefixes:ai,suffixes:{like:!0,ish:!0,less:!0,able:!0,elect:!0,type:!0,designate:!0},prePunctuation:{"#":!0,"@":!0,_:!0,"ยฐ":!0,"โ€‹":!0,"โ€Œ":!0,"โ€":!0,"\ufeff":!0},postPunctuation:{"%":!0,_:!0,"ยฐ":!0,"โ€‹":!0,"โ€Œ":!0,"โ€":!0,"\ufeff":!0},lexicon:li,unicode:ui,emoticons:{"<3":!0,"{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 _i={safe:!0,min:3};var Si={typeahead:function(t=[],e={}){let n=this.model();var r;e=Object.assign({},_i,e),r=t,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,t),t=Object.keys(t));let o=Pi(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}},zi={model:{one:{typeahead:{}}},api:ki,lib:Si,compute:Ei,hooks:["typeahead"]};return w.extend(tt),w.extend(er),w.extend(yn),w.extend(dr),w.extend(lo),w.plugin($t),w.extend(ji),w.extend(Vt),w.plugin(x),w.extend(Xt),w.extend(zi),w.extend(Wt),w.extend(kr),w},"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:[]};const e={compute:function(t){const{world:e}=this,n=e.compute;return"string"==typeof t&&n.hasOwnProperty(t)?n[t](this):(t=>"[object Array]"===Object.prototype.toString.call(t))(t)?t.forEach((r=>{e.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",t)})):"function"==typeof t?t(this):console.warn("no compute:",t),this}};var n={forEach:function(t){return this.fullPointer.forEach(((e,n)=>{let r=this.update([e]);t(r,n)})),this},map:function(t,e){let n=this.fullPointer.map(((e,n)=>{let r=this.update([e]),o=t(r,n);return void 0===o?this.none():o}));if(0===n.length)return e||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach((t=>{r=r.concat(t.fullPointer)})),this.toView(r)},filter:function(t){let e=this.fullPointer;return e=e.filter(((e,n)=>{let r=this.update([e]);return t(r,n)})),this.update(e)},find:function(t){let e=this.fullPointer.find(((e,n)=>{let r=this.update([e]);return t(r,n)}));return this.update([e])},some:function(t){return this.fullPointer.some(((e,n)=>{let r=this.update([e]);return t(r,n)}))},random:function(t=1){let e=this.fullPointer,n=Math.floor(Math.random()*e.length);return n+t>this.length&&(n=this.length-t,n=n<0?0:n),e=e.slice(n,n+t),this.update(e)}};const r={termList:function(){return this.methods.one.termList(this.docs)},terms:function(t){let e=this.match(".");return"number"==typeof t?e.eq(t):e},groups:function(t){if(t||0===t)return this.update(this._groups[t]||[]);let e={};return Object.keys(this._groups).forEach((t=>{e[t]=this.update(this._groups[t])})),e},eq:function(t){let e=this.pointer;return e||(e=this.docs.map(((t,e)=>[e]))),e[t]?this.update([e[t]]):this.none()},first:function(){return this.eq(0)},last:function(){let t=this.fullPointer.length-1;return this.eq(t)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(t,e){let n=this.pointer||this.docs.map(((t,e)=>[e]));return n=n.slice(t,e),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let t=this.fullPointer.map((t=>[t[0]]));return this.update(t).toView()},none:function(){return this.update([])},isDoc:function(t){if(!t||!t.isView)return!1;let e=this.fullPointer,n=t.fullPointer;return!e.length!==n.length&&e.every(((t,e)=>!!n[e]&&t[0]===n[e][0]&&t[1]===n[e][1]&&t[2]===n[e][2]))},wordCount:function(){return this.docs.reduce(((t,e)=>(t+=e.filter((t=>""!==t.text)).length,t)),0)},isFull:function(){let t=this.pointer;if(!t)return!0;if(0===t.length||0!==t[0][0])return!1;let e=0,n=0;return this.document.forEach((t=>e+=t.length)),this.docs.forEach((t=>n+=t.length)),e===n},getNth:function(t){return"number"==typeof t?this.eq(t):"string"==typeof t?this.if(t):this}};r.group=r.groups,r.fullSentence=r.fullSentences,r.sentence=r.fullSentences,r.lastTerm=r.lastTerms,r.firstTerm=r.firstTerms;const o=Object.assign({},r,e,n);o.get=o.eq;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,r=e||t.map(((t,e)=>[e]));return r.map((t=>{let[e,r,o,i,s]=t;return r=r||0,o=o||(n[e]||[]).length,n[e]&&n[e][r]&&(i=i||n[e][r].id,n[e][o-1]&&(s=s||n[e][o-1].id)),[e,r,o,i,s]}))}update(t){let e=new View(this.document,t);if(this._cache&&t&&t.length>0){let n=[];t.forEach(((t,e)=>{let[r,o,i]=t;(1===t.length||0===o&&this.document[r].length===i)&&(n[e]=this._cache[r])})),n.length>0&&(e._cache=n)}return e.world=this.world,e}toView(t){return new View(this.document,t||this.pointer)}fromText(t){const{methods:e}=this;let n=e.one.tokenize.fromString(t,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","freeze","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r.compute("unfreeze"),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,o);const i=function(t){return t&&"object"==typeof t&&!Array.isArray(t)};function s(t,e){if(i(e))for(const n in e)i(e[n])?(t[n]||Object.assign(t,{[n]:{}}),s(t[n],e[n])):Object.assign(t,{[n]:e[n]});return t}const l=function(t,e,n,r){const{methods:o,model:i,compute:l,hooks:a}=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&&s(i,t.model),t.irregulars&&function(t,e){let n=t.two.models||{};Object.keys(e).forEach((t=>{e[t].pastTense&&(n.toPast&&(n.toPast.ex[t]=e[t].pastTense),n.fromPast&&(n.fromPast.ex[e[t].pastTense]=t)),e[t].presentTense&&(n.toPresent&&(n.toPresent.ex[t]=e[t].presentTense),n.fromPresent&&(n.fromPresent.ex[e[t].presentTense]=t)),e[t].gerund&&(n.toGerund&&(n.toGerund.ex[t]=e[t].gerund),n.fromGerund&&(n.fromGerund.ex[e[t].gerund]=t)),e[t].comparative&&(n.toComparative&&(n.toComparative.ex[t]=e[t].comparative),n.fromComparative&&(n.fromComparative.ex[e[t].comparative]=t)),e[t].superlative&&(n.toSuperlative&&(n.toSuperlative.ex[t]=e[t].superlative),n.fromSuperlative&&(n.fromSuperlative.ex[e[t].superlative]=t))}))}(i,t.irregulars),t.compute&&Object.assign(l,t.compute),a&&(e.hooks=a.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.frozen&&r.addWords(t.frozen,!0),t.mutate&&t.mutate(e,r)},a=function(t){return"[object Array]"===Object.prototype.toString.call(t)},u=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(a(t)){if(a(t[0])){let n=t.map((t=>t.map((t=>({text:t,normal:t,pre:"",post:" ",tags:new Set})))));return new e(n)}let n=t.map((t=>t.terms.map((t=>(a(t.tags)&&(t.tags=new Set(t.tags)),t)))));return new e(n)}return o};let c=Object.assign({},t);const h=function(t,e){e&&h.addWords(e);let n=u(t,View,c);return t&&n.compute(c.hooks),n};Object.defineProperty(h,"_world",{value:c,writable:!0}),h.tokenize=function(t,e){const{compute:n}=this._world;e&&h.addWords(e);let r=u(t,View,c);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},h.plugin=function(t){return l(t,this._world,View,this),this},h.extend=h.plugin,h.world=function(){return this._world},h.model=function(){return this._world.model},h.methods=function(){return this._world.methods},h.hooks=function(){return this._world.hooks},h.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},h.version="14.14.0";var f={one:{cacheDoc:function(t){let e=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),w=(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+=" ")},y=(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,"")}},v=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||!m(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")||m(o.text)&&o.text.length>1&&(o.text=o.text.replace(/^\p{Lu}/u,(t=>t.toLowerCase())))}(t,i,n),w(t,i,n)};let x=0;const j=t=>(t=t.length<3?"0"+t:t).length<3?"0"+t:t,E=function(t){let[e,n]=t.index||[0,0];x+=1,x=x>46655?0:x,e=e>46655?0:e,n=n>1294?0:n;let r=j(x.toString(36));r+=j(e.toString(36));let o=n.toString(36);return o=o.length<2?"0"+o:o,r+=o,r+=parseInt(36*Math.random(),10).toString(36),t.normal+"|"+r.toUpperCase()},O=function(t){t.has("@hasContraction")&&"function"==typeof t.contractions&&t.grow("@hasContraction").contractions().expand()},k=t=>"[object Array]"===Object.prototype.toString.call(t),P=function(t,e,n){const{document:r,world:o}=e;e.uncache();let i=e.fullPointer,s=e.fullPointer;e.forEach(((l,a)=>{let u=l.fullPointer[0],[c]=u,h=r[c],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]||[]:k(t)?k(t[0])?t[0]:t:[]}(t,o);0!==f.length&&(f=function(t){return t.map((t=>(t.id=E(t),t)))}(f),n?(O(e.update([u]).firstTerm()),v(h,u,f,r)):(O(e.update([u]).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);let o=r.docs[0],i=e.possessives&&o[o.length-1].tags.has("Possessive");t=function(t,e){if("string"!=typeof t)return t;let n=e.groups();return t=t.replace(S,(t=>{let e=t.replace(/\$/,"");return n.hasOwnProperty(e)?n[e].text():t})),t}(t,r);let s=this.update(n);n=n.map((t=>t.slice(0,3)));let l=(s.docs[0]||[]).map((t=>Array.from(t.tags)));if("string"==typeof t&&(t=this.fromText(t).compute("id")),r.insertAfter(t),s.has("@hasContraction")&&r.contractions&&r.grow("@hasContraction+").contractions().expand(),r.delete(s),i){let t=r.docs[0],e=t[t.length-1];e.tags.has("Possessive")||(e.text+="'s",e.normal+="'s",e.tags.add("Possessive"))}let a=r.toView(n).compute(["index","freeze","lexicon"]);return a.world.compute.preTagger&&a.compute("preTagger"),a.compute("unfreeze"),e.tags&&a.terms().forEach(((t,e)=>{t.tagSafe(l[e])})),e.case&&a.docs[0]&&a.docs[0][0]&&0===a.docs[0][0].index[1]&&(a.docs[0][0].text=a.docs[0][0].text.replace(/\w\S*/g,(t=>t.charAt(0).toUpperCase()+t.substring(1).toLowerCase()))),a},replace:function(t,e,n){if(t&&!e)return this.replaceWith(t,n);let r=this.match(t);return r.found?(this.soften(),r.replaceWith(e,n)):this}},A={remove:function(t){const{indexN:e}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;t&&(n=this,r=this.match(t));let o=!n.ptrs;r.has("@hasContraction")&&r.contractions&&r.grow("@hasContraction").contractions().expand();let i=n.fullPointer,s=r.fullPointer.reverse(),l=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}(this.document,s);return i=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})),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)))}(i,e(s)),n.ptrs=i,n.document=l,n.compute("index"),o&&(n.ptrs=void 0),t?n.toView(i):(this.ptrs=[],n.none())}};A.delete=A.remove;const $={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}};$.deHyphenate=$.dehyphenate,$.toQuotation=$.toQuotations;var T={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 C=new Set(["index","sequence","seq","sequential","chron","chronological"]),N=new Set(["freq","frequency","topk","repeats"]),L=new Set(["alpha","alphabetical"]);var V={unique:function(){let t=new Set;return this.filter((e=>{let n=e.text("machine");return!t.has(n)&&(t.add(n),!0)}))},reverse:function(){let t=this.pointer||this.docs.map(((t,e)=>[e]));return t=[].concat(t),t=t.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(t)},sort:function(t){let{docs:e,pointer:n}=this;if(this.uncache(),"function"==typeof t)return function(t,e){let n=t.fullPointer;return n=n.sort(((n,r)=>(n=t.update([n]),r=t.update([r]),e(n,r)))),t.ptrs=n,t}(this,t);t=t||"alpha";let r=n||e.map(((t,e)=>[e])),o=e.map(((t,e)=>({index:e,words:t.length,normal:t.map((t=>t.machine||t.normal||"")).join(" "),pointer:r[e]})));return C.has(t)&&(t="sequential"),L.has(t)&&(t="alpha"),N.has(t)?(o=T.byFreq(o),this.update(o.map((t=>t.pointer)))):"function"==typeof T[t]?(o=o.sort(T[t]),this.update(o.map((t=>t.pointer)))):this}};const F=function(t,e){if(t.length>0){let e=t[t.length-1],n=e[e.length-1];!1===/ /.test(n.post)&&(n.post+=" ")}return t=t.concat(e)};var q={concat:function(t){if("string"==typeof t){let e=this.fromText(t);if(this.found&&this.ptrs){let t=this.fullPointer,n=t[t.length-1][0];this.document.splice(n,0,...e.document)}else this.document=this.document.concat(e.document);return this.all().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=F(t.document,e.docs),t.all()}(this,t);if(e=t,"[object Array]"===Object.prototype.toString.call(e)){let e=F(this.document,t);return this.document=e,this.all()}var e;return this}},G={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 D=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,A,$,V,q,G),B={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))),n[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))},R=/'/,Q=new Set(["what","how","when","where","why"]),H=new Set(["be","go","start","think","need"]),Z=new Set(["been","gone"]),K=/'/,J=/(e|รฉ|aison|sion|tion)$/,X=/(age|isme|acle|ege|oire)$/;var Y=(t,e)=>["je",t[e].normal.split(K)[1]],tt=(t,e)=>{let n=t[e].normal.split(K)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},et=(t,e)=>{let n=t[e].normal.split(K)[1];return n&&J.test(n)&&!X.test(n)?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const nt=/^([0-9.]{1,4}[a-z]{0,2}) ?[-โ€“โ€”] ?([0-9]{1,4}[a-z]{0,2})$/i,rt=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-โ€“โ€”] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,ot=/^[0-9]{3}-[0-9]{4}$/,it=function(t,e){let n=t[e],r=n.text.match(nt);return null!==r?!0===n.tags.has("PhoneNumber")||ot.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(rt),null!==r?[r[1],"to",r[4]]:null)},st=/^([+-]?[0-9][.,0-9]*)([a-zยฐยฒยณยต/]+)$/,lt=function(t,e,n){const r=n.model.one.numberSuffixes||{};let o=t[e].text.match(st);if(null!==o){let t=o[2].toLowerCase().trim();return r.hasOwnProperty(t)?null:[o[1],t]}return null},at=/'/,ut=/^[0-9][^-โ€“โ€”]*[-โ€“โ€”].*?[0-9]/,ct=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]]},ht={t:(t,e)=>function(t,e){return"ain't"===t[e].normal||"aint"===t[e].normal?null:[t[e].normal.replace(/n't/,""),"not"]}(t,e),d:(t,e)=>function(t,e){let n=t[e].normal.split(R)[0];if(Q.has(n))return[n,"did"];if(t[e+1]){if(Z.has(t[e+1].normal))return[n,"had"];if(H.has(t[e+1].normal))return[n,"would"]}return null}(t,e)},ft={j:(t,e)=>Y(t,e),l:(t,e)=>tt(t,e),d:(t,e)=>et(t,e)},pt=function(t,e,n,r){for(let o=0;o2)return i.out.concat(r)}return null},dt=function(t,e){let n=e.fromText(t.join(" "));return n.compute(["id","alias"]),n.docs[0]},mt=function(t,e){for(let n=e+1;n<5&&t[n];n+=1)if("been"===t[n].normal)return["there","has"];return["there","is"]};var gt={contractions:t=>{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,u=null;if(!0===at.test(r[l].normal)){let t=r[l].normal.split(at);a=t[0],u=t[1]}let c=pt(i,r[l],a,u);!c&&ht.hasOwnProperty(u)&&(c=ht[u](r,l,e)),!c&&ft.hasOwnProperty(a)&&(c=ft[a](r,l)),"there"===a&&"s"===u&&(c=mt(r,l)),c?(c=dt(c,t),I(n,[s,l],c),ct(n[s],t,l,c.length)):ut.test(r[l].normal)?(c=it(r,l),c&&(c=dt(c,t),I(n,[s,l],c),o.one.setTag(c,"NumberRange",e),c[2]&&c[2].tags.has("Time")&&o.one.setTag([c[0]],"Time",e,null,"time-range"),ct(n[s],t,l,c.length))):(c=lt(r,l,e),c&&(c=dt(c,t),I(n,[s,l],c),o.one.setTag([c[1]],"Unit",e,null,"contraction-unit")))}}))}};const wt={model:W,compute:gt,hooks:["contractions"]},bt=function(t){const e=t.world,{model:n,methods:r}=t.world,o=r.one.setTag,{frozenLex:i}=n.one,s=n.one._multiCache||{};t.docs.forEach((t=>{for(let n=0;nn;r-=1){let s=t.slice(n,r+1),l=s.map((t=>t.machine||t.normal)).join(" ");!0!==i.hasOwnProperty(l)||(o(s,i[l],e,!1,"1-frozen-multi-lexicon"),s.forEach((t=>t.frozen=!0)))}void 0!==i[l]&&i.hasOwnProperty(l)&&(o([r],i[l],e,!1,"1-freeze-lexicon"),r.frozen=!0)}}))},yt=t=>""+t+"",vt=t=>""+t+"",xt=function(t){t.docs.forEach((t=>{console.log(yt("\n โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€")),t.forEach((t=>{let e=` ${vt("โ”‚")} `,n=t.implicit||t.text||"-";!0===t.frozen?e+=`${yt(n)} โ„๏ธ`:e+=vt(n),console.log(e)}))}))};var jt={compute:{frozen:bt,freeze:bt,unfreeze:function(t){return t.docs.forEach((t=>{t.forEach((t=>{delete t.frozen}))})),t}},mutate:t=>{const e=t.methods.one;e.termMethods.isFrozen=t=>!0===t.frozen,e.debug.freeze=xt,e.debug.frozen=xt},api:function(t){t.prototype.freeze=function(){return this.docs.forEach((t=>{t.forEach((t=>{t.frozen=!0}))})),this},t.prototype.unfreeze=function(){this.compute("unfreeze")},t.prototype.isFrozen=function(){return this.match("@isFrozen+")}},hooks:["freeze"]};const Et=function(t,e,n){const{model:r,methods:o}=n,i=o.one.setTag,s=r.one._multiCache||{},{lexicon:l}=r.one||{};let a=t[e],u=a.machine||a.normal;if(void 0!==s[u]&&t[e+1]){for(let r=e+s[u]-1;r>e;r-=1){let o=t.slice(e,r+1);if(o.length<=1)return!1;let s=o.map((t=>t.machine||t.normal)).join(" ");if(!0===l.hasOwnProperty(s)){let t=l[s];return i(o,t,n,!1,"1-multi-lexicon"),!t||2!==t.length||"PhrasalVerb"!==t[0]&&"PhrasalVerb"!==t[1]||i([o[1]],"Particle",n,!1,"1-phrasal-particle"),!0}}return!1}return null},Ot=/^(under|over|mis|re|un|dis|semi|pre|post)-?/,kt=new Set(["Verb","Infinitive","PastTense","Gerund","PresentTense","Adjective","Participle"]),Pt=function(t,e,n){const{model:r,methods:o}=n,i=o.one.setTag,{lexicon:s}=r.one;let l=t[e],a=l.machine||l.normal;if(void 0!==s[a]&&s.hasOwnProperty(a))return i([l],s[a],n,!1,"1-lexicon"),!0;if(l.alias){let t=l.alias.find((t=>s.hasOwnProperty(t)));if(t)return i([l],s[t],n,!1,"1-lexicon-alias"),!0}if(!0===Ot.test(a)){let t=a.replace(Ot,"");if(s.hasOwnProperty(t)&&t.length>3&&kt.has(s[t]))return i([l],s[t],n,!1,"1-lexicon-prefix"),!0}return null};var _t={lexicon:function(t){const e=t.world;t.docs.forEach((t=>{for(let n=0;n{let o=t[r],i=(r=(r=r.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);i.length>1&&(void 0===n[i[0]]||i.length>n[i[0]])&&(n[i[0]]=i.length),e[r]=e[r]||o})),delete e[""],delete e.null,delete e[" "],{lex:e,_multi:n}}}},zt={addWords:function(t,e=!1){const n=this.world(),{methods:r,model:o}=n;if(!t)return;if(Object.keys(t).forEach((e=>{"string"==typeof t[e]&&t[e].startsWith("#")&&(t[e]=t[e].replace(/^#/,""))})),!0===e){let{lex:e,_multi:i}=r.one.expandLexicon(t,n);return Object.assign(o.one._multiCache,i),void Object.assign(o.one.frozenLex,e)}if(r.two.expandLexicon){let{lex:e,_multi:i}=r.two.expandLexicon(t,n);Object.assign(o.one.lexicon,e),Object.assign(o.one._multiCache,i)}let{lex:i,_multi:s}=r.one.expandLexicon(t,n);Object.assign(o.one.lexicon,i),Object.assign(o.one._multiCache,s)}},At={model:{one:{lexicon:{},_multiCache:{},frozenLex:{}}},methods:St,compute:_t,lib:zt,hooks:["lexicon"]};const $t=function(t,e){let n=[{}],r=[null],o=[0],i=[],s=0;t.forEach((function(t){let o=0,i=function(t,e){const{methods:n,model:r}=e;let o=n.one.tokenize.splitTerms(t,r).map((t=>n.one.tokenize.splitWhitespace(t,r)));return o.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[u]=t,r[t]&&(r[u]=r[u]||[],r[u]=r[u].concat(r[t]))}else o[u]=0}}return{goNext:n,endAs:r,failTo:o}},Tt=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;e{for(let n=t.length-1;n>=0;n-=1)if(t[n]!==e)return t=t.slice(0,n+1);return t},Lt={buildTrie:function(t){return function(t){return t.goNext=t.goNext.map((t=>{if(0!==Object.keys(t).length)return t})),t.goNext=Nt(t.goNext,void 0),t.failTo=Nt(t.failTo,0),t.endAs=Nt(t.endAs,null),t}($t(t,this.world()))}};Lt.compile=Lt.buildTrie;var Vt={api:function(t){t.prototype.lookup=function(t,e={}){if(!t)return this.none();var n;"string"==typeof t&&(t=[t]);let r=function(t,e,n){let r=[];n.form=n.form||"normal";let o=t.docs;if(!e.goNext||!e.goNext[0])return console.error("Compromise invalid lookup trie"),t.none();let i=Object.keys(e.goNext[0]);for(let s=0;s0&&(r=r.concat(a))}return t.update(r)}(this,(n=t,"[object Object]"===Object.prototype.toString.call(n)?t:$t(t,this.world)),e);return r=r.settle(),r}},lib:Lt};const Ft=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},qt=function(t,e){let{ptrs:n,byGroup:r}=t;return n=Ft(n,e),Object.keys(r).forEach((t=>{r[t]=Ft(r[t],e)})),{ptrs:n,byGroup:r}},Gt=function(t,e,n){const r=n.methods.one;return"number"==typeof t&&(t=String(t)),"string"==typeof t&&(t=r.killUnicode(t,n),t=r.parseMatch(t,e,n)),t},Dt=t=>"[object Object]"===Object.prototype.toString.call(t),Bt=t=>t&&Dt(t)&&!0===t.isView,Mt=t=>t&&Dt(t)&&!0===t.isNet;var Ut={matchOne:function(t,e,n){const r=this.methods.one;if(Bt(t))return this.intersection(t).eq(0);if(Mt(t))return this.sweep(t,{tagger:!1,matchOne:!0}).view;let o={regs:t=Gt(t,n,this.world),group:e,justOne:!0},i=r.match(this.docs,o,this._cache),{ptrs:s,byGroup:l}=qt(i,this.fullPointer),a=this.toView(s);return a._groups=l,a},match:function(t,e,n){const r=this.methods.one;if(Bt(t))return this.intersection(t);if(Mt(t))return this.sweep(t,{tagger:!1}).view.settle();let o={regs:t=Gt(t,n,this.world),group:e},i=r.match(this.docs,o,this._cache),{ptrs:s,byGroup:l}=qt(i,this.fullPointer),a=this.toView(s);return a._groups=l,a},has:function(t,e,n){const r=this.methods.one;if(Bt(t))return this.intersection(t).fullPointer.length>0;if(Mt(t))return this.sweep(t,{tagger:!1}).view.found;let o={regs:t=Gt(t,n,this.world),group:e,justOne:!0};return r.match(this.docs,o,this._cache).ptrs.length>0},if:function(t,e,n){const r=this.methods.one;if(Bt(t))return this.filter((e=>e.intersection(t).found));if(Mt(t)){let e=this.sweep(t,{tagger:!1}).view.settle();return this.if(e)}let o={regs:t=Gt(t,n,this.world),group:e,justOne:!0},i=this.fullPointer,s=this._cache||[];i=i.filter(((t,e)=>{let n=this.update([t]);return r.match(n.docs,o,s[e]).ptrs.length>0}));let l=this.update(i);return this._cache&&(l._cache=i.map((t=>s[t[0]]))),l},ifNo:function(t,e,n){const{methods:r}=this,o=r.one;if(Bt(t))return this.filter((e=>!e.intersection(t).found));if(Mt(t)){let e=this.sweep(t,{tagger:!1}).view.settle();return this.ifNo(e)}t=Gt(t,n,this.world);let i=this._cache||[],s=this.filter(((n,r)=>{let s={regs:t,group:e,justOne:!0};return 0===o.match(n.docs,s,i[r]).ptrs.length}));return this._cache&&(s._cache=s.ptrs.map((t=>i[t[0]]))),s}},Wt={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 It=function(t,e){return[t[0],t[1],e[2]]},Rt=(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},Qt=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},Ht={splitOn:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=Rt(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=>Qt(t,this))),this.update(i)},splitBefore:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=Rt(t,this,e).fullPointer,o=n(this.fullPointer,r);for(let t=0;t{i.push(t.passthrough),i.push(t.before),t.match&&t.after?i.push(It(t.match,t.after)):i.push(t.match)})),i=i.filter((t=>t)),i=i.map((t=>Qt(t,this))),this.update(i)},splitAfter:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=Rt(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach((t=>{i.push(t.passthrough),t.before&&t.match?i.push(It(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=>Qt(t,this))),this.update(i)}};Ht.split=Ht.splitAfter;const Zt=function(t,e){return!(!t||!e)&&t[0]===e[0]&&t[2]===e[1]},Kt=function(t,e,n){const r=t.world,o=r.methods.one.parseMatch;n=n||"^.";let i=o(e=e||".$",{},r),s=o(n,{},r);i[i.length-1].end=!0,s[0].start=!0;let l=t.fullPointer,a=[l[0]];for(let e=1;e)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,te=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,ee=/ /g,ne=t=>/^[![^]*(<[^<]*>)?\//.test(t)&&/\/[?\]+*$~]*$/.test(t),re=function(t){return t=(t=t.map((t=>t.trim()))).filter((t=>t))},oe=/\{([0-9]+)?(, *[0-9]*)?\}/,ie=/&&/,se=new RegExp(/^<\s*(\S+)\s*>/),le=t=>t.charAt(0).toUpperCase()+t.substring(1),ae=t=>t.charAt(t.length-1),ue=t=>t.charAt(0),ce=t=>t.substring(1),he=t=>t.substring(0,t.length-1),fe=function(t){return t=ce(t),t=he(t)},pe=function(t,e){let n={};for(let r=0;r<2;r+=1){if("$"===ae(t)&&(n.end=!0,t=he(t)),"^"===ue(t)&&(n.start=!0,t=ce(t)),"?"===ae(t)&&(n.optional=!0,t=he(t)),("["===ue(t)||"]"===ae(t))&&(n.group=null,"["===ue(t)&&(n.groupStart=!0),"]"===ae(t)&&(n.groupEnd=!0),t=(t=t.replace(/^\[/,"")).replace(/\]$/,""),"<"===ue(t))){const e=se.exec(t);e.length>=2&&(n.group=e[1],t=t.replace(e[0],""))}if("+"===ae(t)&&(n.greedy=!0,t=he(t)),"*"!==t&&"*"===ae(t)&&"\\*"!==t&&(n.greedy=!0,t=he(t)),"!"===ue(t)&&(n.negative=!0,t=ce(t)),"~"===ue(t)&&"~"===ae(t)&&t.length>2&&(t=fe(t),n.fuzzy=!0,n.min=e.fuzzy||.85,!1===/\(/.test(t)))return n.word=t,n;if("/"===ue(t)&&"/"===ae(t))return t=fe(t),e.caseSensitive&&(n.use="text"),n.regex=new RegExp(t),n;if(!0===oe.test(t)&&(t=t.replace(oe,((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),"")))),"("===ue(t)&&")"===ae(t)){ie.test(t)?(n.choices=t.split(ie),n.operator="and"):(n.choices=t.split("|"),n.operator="or"),n.choices[0]=ce(n.choices[0]);let r=n.choices.length-1;n.choices[r]=he(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=>pe(t,e))))),t=""}if("{"===ue(t)&&"}"===ae(t)){if(t=fe(t),n.root=t,/\//.test(t)){let t=n.root.split(/\//);n.root=t[0],n.pos=t[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==t[2]&&(n.sense=t[2])}return n}if("<"===ue(t)&&">"===ae(t))return t=fe(t),n.chunk=le(t),n.greedy=!0,n;if("%"===ue(t)&&"%"===ae(t))return t=fe(t),n.switch=t,n}return"#"===ue(t)?(n.tag=ce(t),n.tag=le(n.tag),n):"@"===ue(t)?(n.method=ce(t),n):"."===t?(n.anything=!0,n):"*"===t?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(t&&(t=(t=t.replace("\\*","*")).replace("\\.","."),e.caseSensitive?n.use="text":t=t.toLowerCase(),n.word=t),n)},de=/[a-z0-9][-โ€“โ€”][a-z]/i,me=function(t,e){let{all:n}=e.methods.two.transform.verb||{},r=t.root;return n?n(r,e.model):[]},ge=function(t,e){let{all:n}=e.methods.two.transform.noun||{};return n?n(t.root,e.model):[t.root]},we=function(t,e){let{all:n}=e.methods.two.transform.adjective||{};return n?n(t.root,e.model):[t.root]},be=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}))),t},ye=function(t,e){for(let n of e)if(t.has(n))return!0;return!1},ve=function(t,e){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(o||100))return o||100;let i,s,l,a,u,c,h=[];for(let t=0;t4)return n;l=e[i-1],a=s===l?0:1,u=h[o-1][i]+1,(c=h[o][i-1]+1)1&&i>1&&s===e[i-2]&&t[o-2]===l&&(c=h[o-2][i-2]+a)-1!==t.post.indexOf(e),_e={hasQuote:t=>je.test(t.pre)||Ee.test(t.post),hasComma:t=>Pe(t,","),hasPeriod:t=>!0===Pe(t,".")&&!1===Pe(t,"..."),hasExclamation:t=>Pe(t,"!"),hasQuestionMark:t=>Pe(t,"?")||Pe(t,"ยฟ"),hasEllipses:t=>Pe(t,"..")||Pe(t,"โ€ฆ"),hasSemicolon:t=>Pe(t,";"),hasColon:t=>Pe(t,":"),hasSlash:t=>/\//.test(t.text),hasHyphen:t=>Oe.test(t.post)||Oe.test(t.pre),hasDash:t=>ke.test(t.post)||ke.test(t.pre),hasContraction:t=>Boolean(t.implicit),isAcronym:t=>t.tags.has("Acronym"),isKnown:t=>t.tags.size>0,isTitleCase:t=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(t.text),isUpperCase:t=>/^\p{Lu}+$/u.test(t.text)};_e.hasQuotation=_e.hasQuote;let Se=function(){};Se=function(t,e,n,r){let o=function(t,e,n,r){if(!0===e.anything)return!0;if(!0===e.start&&0!==n)return!1;if(!0===e.end&&n!==r-1)return!1;if(void 0!==e.id&&e.id===t.id)return!0;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(xe(e.word,t.normal)>=e.min)return!0}return!(!t.alias||!t.alias.some((t=>t===e.word)))||e.word===t.text||e.word===t.normal}if(void 0!==e.tag)return!0===t.tags.has(e.tag);if(void 0!==e.method)return"function"==typeof _e[e.method]&&!0===_e[e.method](t);if(void 0!==e.pre)return t.pre&&t.pre.includes(e.pre);if(void 0!==e.post)return t.post&&t.post.includes(e.post);if(void 0!==e.regex){let n=t.normal;return e.use&&(n=t[e.use]),e.regex.test(n)}if(void 0!==e.chunk)return t.chunk===e.chunk;if(void 0!==e.switch)return t.switch===e.switch;if(void 0!==e.machine)return t.normal===e.machine||t.machine===e.machine||t.root===e.machine;if(void 0!==e.sense)return t.sense===e.sense;if(void 0!==e.fastOr){if(e.pos&&!t.tags.has(e.pos))return null;let n=t.root||t.implicit||t.machine||t.normal;return e.fastOr.has(n)||e.fastOr.has(t.text)}return void 0!==e.choices&&("and"===e.operator?e.choices.every((e=>Se(t,e,n,r))):e.choices.some((e=>Se(t,e,n,r))))}(t,e,n,r);return!0===e.negative?!o:o};const ze=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&&(Ae(t,t.t).length=r-t.t),t.t=r,!0)},Te=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=Se(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]&&Se(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&&(Ae(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},Le=function(t){const{regs:e}=t;let n=e[t.r],r=Object.assign({},n);if(r.negative=!1,Se(t.terms[t.t],r,t.start_i+t.t,t.phrase_length))return!1;if(n.optional){let n=e[t.r+1];n&&(Se(t.terms[t.t],n,t.start_i+t.t,t.phrase_length)?t.r+=1:n.optional&&e[t.r+2]&&Se(t.terms[t.t],e[t.r+2],t.start_i+t.t,t.phrase_length)&&(t.r+=2))}return n.greedy?function(t,e,n){let r=0;for(let o=t.t;or||(t.t+=r,0))}(t,r,e[t.r+1]):(t.t+=1,!0)},Ve=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},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]&&function(t){const{regs:e}=t;let n=e[t.r],r=t.terms[t.t],o=Se(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&&Se(n,e[t.r+1],t.start_i+t.t,t.phrase_length)||(t.r+=1)}}(t),r.implicit&&t.terms[t.t+1]&&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)}}(t),t.t+=1,!0===n.end&&t.t!==t.terms.length&&!0!==n.greedy?null:!0!==n.greedy||Ve(t)?(!0===t.hasGroup&&function(t,e){let n=t.regs[t.r];const r=Ae(t,e);t.t>1&&n.greedy?r.length+=t.t-e:r.length++}(t,o),!0):null)},qe=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!==ze(t,o)){if(t.negative){if(!Le(o))return null}else if(!0!==Se(o.terms[o.t],t,o.start_i+o.t,o.phrase_length)){if(!0!==t.optional)return null}else if(!Fe(o))return null}else if(!Fe(o))return null}else{if(t.negative&&t.anything)return null;if(!Fe(o))return null}else if(!Ne(o))return null}else if(!Ce(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}},Ge=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=qe(t,e,0,t.length);return r?(r=Ge(r,n),r):null},Be={one:{termMethods:_e,parseMatch:function(t,e,n){if(null==t||""===t)return[];e=e||{},"number"==typeof t&&(t=String(t));let r=function(t){let e=t.split(Yt),n=[];e.forEach((t=>{ne(t)?n.push(t):n=n.concat(t.split(te))})),n=re(n);let r=[];return n.forEach((t=>{(t=>/^[![^]*(<[^<]*>)?\(/.test(t)&&/\)[?\]+*$~]*$/.test(t))(t)||ne(t)?r.push(t):r=r.concat(t.split(ee))})),r=re(r),r}(t);return r=r.map((t=>pe(t,e))),r=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&&de.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}(r,n),r=function(t,e){return t.map((t=>{if(t.root)if(e.methods.two&&e.methods.two.transform){let n=[];t.pos?"Verb"===t.pos?n=n.concat(me(t,e)):"Noun"===t.pos?n=n.concat(ge(t,e)):"Adjective"===t.pos&&(n=n.concat(we(t,e))):(n=n.concat(me(t,e)),n=n.concat(ge(t,e)),n=n.concat(we(t,e))),n=n.filter((t=>t)),n.length>0&&(t.operator="or",t.fastOr=new Set(n))}else t.machine=t.root,delete t.id,delete t.root;return t}))}(r,n),r=be(r),r},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]}))),e.notIf&&(s=function(t,e,n){return t=t.filter((t=>{let[r,o,i]=t.pointer,s=n[r].slice(o,i);for(let t=0;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}}(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}}};var Me={api:function(t){Object.assign(t.prototype,Xt)},methods:Be,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 Ue=/^\../,We=/^#./,Ie=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,"'"),Ue.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 Re={html:function(t){let{starts:e,ends:n}=Ie(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(He,""),Ke.test(o)&&(o=" "),o=o.replace(Ze,""),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(He,""),o="-"===o?" ":o.replace(Qe,""));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&&Je.test(o)||(o+=" "),r+=n+i+o})),!1===n&&(r=r.trim()),!0===e.lowerCase&&(r=r.toLowerCase()),r},Ye={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{keepSpace:!1,whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{keepSpace:!1,whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};Ye.clean=Ye.normal,Ye.reduced=Ye.root;let tn=[],en=0;for(;en<64;)tn[en]=0|4294967296*Math.sin(++en%Math.PI);const nn=function(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(en=s=0;en>4]+tn[s]+~~i[en|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},rn={text:!0,terms:!0};let on={case:"none",unicode:"some",form:"machine",punctuation:"some"};const sn=function(t,e){return Object.assign({},t,e)},ln={text:t=>Xe(t,{keepPunct:!0},!1),normal:t=>Xe(t,sn(Ye.normal,{keepPunct:!0}),!1),implicit:t=>Xe(t,sn(Ye.implicit,{keepPunct:!0}),!1),machine:t=>Xe(t,on,!1),root:t=>Xe(t,sn(on,{form:"root"}),!1),hash:t=>nn(Xe(t,{keepPunct:!0},!1)),offset:t=>{let e=ln.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))};ln.sentences=ln.sentence,ln.clean=ln.normal,ln.reduced=ln.root;const an={json:function(t){let e=(n=this,"string"==typeof(r=(r=t)||{})&&(r={}),(r=Object.assign({},rn,r)).offset&&n.compute("offset"),n.docs.map(((t,e)=>{let o={};return Object.keys(r).forEach((i=>{r[i]&&ln[i]&&(o[i]=ln[i](t,n,e))})),o})));var n,r;return"number"==typeof t?e[t]:e}};an.data=an.json;const un=function(t){let e=t.pre||"",n=t.post||"";return e+t.text+n},cn=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()));return t.filter((t=>t))}if("freq"===t||"frequency"===t||"topk"===t)return function(t){let e={};t.forEach((t=>{e[t]=e[t]||0,e[t]+=1}));let n=Object.keys(e).map((t=>({normal:t,count:e[t]})));return n.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.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()},wrap:function(t){return cn(this,t)}};var fn={text:function(t){let e={};var n;if(t&&"string"==typeof t&&Ye.hasOwnProperty(t)?e=Object.assign({},Ye[t]):t&&(n=t,"[object Object]"===Object.prototype.toString.call(n))&&(e=Object.assign({},t)),void 0!==e.keepSpace||this.isFull()||(e.keepSpace=!1),void 0===e.keepEndPunct&&this.pointer){let t=this.pointer[0];t&&t[1]?e.keepEndPunct=!1:e.keepEndPunct=!0}return void 0===e.keepPunct&&(e.keepPunct=!0),void 0===e.keepSpace&&(e.keepSpace=!0),function(t,e){let n="";if(!t||!t[0]||!t[0][0])return n;for(let r=0;r""+t+dn,red:t=>""+t+dn,blue:t=>""+t+dn,magenta:t=>""+t+dn,cyan:t=>""+t+dn,yellow:t=>""+t+dn,black:t=>""+t+dn,dim:t=>""+t+dn,i:t=>""+t+dn},gn={tags:function(t){let{docs:e,model:n}=t;0===e.length&&console.log(mn.blue("\n โ”€โ”€โ”€โ”€โ”€โ”€")),e.forEach((e=>{console.log(mn.blue("\n โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€")),e.forEach((e=>{let r=[...e.tags||[]],o=e.text||"-";e.sense&&(o=`{${e.normal}/${e.sense}}`),e.implicit&&(o="["+e.implicit+"]"),o=mn.yellow(o);let i="'"+o+"'";if(e.reference){let n=t.update([e.reference]).text("normal");i+=` - ${mn.dim(mn.i("["+n+"]"))}`}i=i.padEnd(18);let s=mn.blue(" โ”‚ ")+mn.i(i)+" - "+function(t,e){return e.one.tagSet&&(t=t.map((t=>{if(!e.one.tagSet.hasOwnProperty(t))return t;const n=e.one.tagSet[t].color||"blue";return mn[n](t)}))),t.join(", ")}(r,n);console.log(s)}))})),console.log("\n")},clientSide: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()}))},chunks:function(t){let{docs:e}=t;console.log(""),e.forEach((t=>{let e=[];t.forEach((t=>{"Noun"===t.chunk?e.push(mn.blue(t.implicit||t.normal)):"Verb"===t.chunk?e.push(mn.green(t.implicit||t.normal)):"Adjective"===t.chunk?e.push(mn.yellow(t.implicit||t.normal)):"Pivot"===t.chunk?e.push(mn.red(t.implicit||t.normal)):e.push(t.implicit||t.normal)})),console.log(e.join(" "),"\n")})),console.log("\n")},highlight:function(t){if(!t.found)return;let e={};t.fullPointer.forEach((t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)})),Object.keys(e).forEach((n=>{let r=t.update([[Number(n)]]).text();t.update(e[n]).json({offset:!0}).forEach(((t,e)=>{r=function(t,e,n){let r=((t,e,n)=>{let r=9*n,o=e.start+r,i=o+e.length;return[t.substring(0,o),t.substring(o,i),t.substring(i,t.length)]})(t,e,n);return`${r[0]}${mn.blue(r[1])}${r[2]}`}(r,t.offset,e)})),console.log(r)})),console.log("\n")}};var wn={api:function(t){Object.assign(t.prototype,pn)},methods:{one:{hash:nn,debug:gn}}};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},yn=function(t){let e={};return t.forEach((t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)})),e},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 xn={one:{termList:function(t){let e=[];for(let n=0;n{if(!r)return;let[i,s,l,a,u]=r,c=e[i]||[];if(void 0===s&&(s=0),void 0===l&&(l=c.length),!a||c[s]&&c[s].id===a)c=c.slice(s,l);else{let n=function(t,e,n){for(let r=0;r<20;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;c=e[n[0]].slice(n[1],n[1]+r);let i=c[0]?c[0].id:null;t[o]=[n[0],n[1],n[1]+r,i]}}0!==c.length&&s!==l&&(u&&c[c.length-1].id!==u&&(c=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(c))})),n=n.filter((t=>t.length>0)),n},pointer:{indexN:yn,splitAll:vn}}};const jn=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=>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},On=(t,e)=>{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=jn(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=function(t,e){let n=yn(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{t=jn(t,[e])})),t=kn(t,this.document),this.update(t)};var _n={methods:xn,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},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.notIf&&(t.notIf=n(t.notIf,{},e)),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 An={buildNet:function(t,e){t=zn(t,e);let n={};t.forEach((t=>{t.needs.forEach((e=>{n[e]=Array.isArray(n[e])?n[e]:[],n[e].push(t)})),t.wants.forEach((e=>{n[e]=Array.isArray(n[e])?n[e]:[],n[e].push(t)}))})),Object.keys(n).forEach((t=>{let e={};n[t]=n[t].filter((t=>"boolean"!=typeof 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=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=>"boolean"!=typeof i[t.match]&&(i[t.match]=!0,!0))),o}))}(o,e.hooks);i=function(t,e){return t.map(((t,n)=>{let r=e[n];return(t=(t=t.filter((t=>t.needs.every((t=>r.has(t)))))).filter((t=>void 0===t.ifNo||!0!==t.ifNo.some((t=>r.has(t)))))).filter((t=>0===t.wants.length||t.wants.filter((t=>r.has(t))).length>=t.minWant))}))}(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=t.filter((t=>r>=t.minWords)),t}))}(i,t);let s=function(t,e,n,r,o){let i=[];for(let n=0;n0&&(a.ptrs.forEach((t=>{t[0]=n;let e=Object.assign({},l,{pointer:t});void 0!==l.unTag&&(e.unTag=l.unTag),i.push(e)})),!0===o.matchOne))return[i[0]]}return i}(i,t,0,n,r);return s},bulkTagger:function(t,e,n){const{model:r,methods:o}=n,{getDoc:i,setTag:s,unTag:l}=o.one,a=o.two.looksPlural;return 0===t.length?t:(("undefined"!=typeof process&&process.env?process.env:self.env||{}).DEBUG_TAGS&&console.log(`\n\n โ†’ ${t.length} post-tagger:`),t.map((t=>{if(!t.tag&&!t.chunk&&!t.unTag)return;let o=t.reason||t.match,u=i([t.pointer],e)[0];if(!0===t.safe){if(!1===function(t,e,n){let r=n.one.tagSet;if(!r.hasOwnProperty(e))return!0;let o=r[e].not||[];for(let e=0;et.frozen=!0))}void 0!==t.unTag&&l(u,t.unTag,n,t.safe,o),t.chunk&&u.forEach((e=>e.chunk=t.chunk))})))}},$n={lib:{buildNet:function(t){let e=this.methods().one.buildNet(t,this.world());return e.isNet=!0,e}},api:function(t){t.prototype.sweep=function(t,e={}){const{world:n,docs:r}=this,{methods:o}=n;let i=o.one.bulkMatch(r,t,this.methods,e);!1!==e.tagger&&o.one.bulkTagger(i,r,this.world),i=i.map((t=>{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:An}};const Tn=/ /,Cn=function(t,e){"Noun"===e&&(t.chunk=e),"Verb"===e&&(t.chunk=e)},Nn=function(t,e,n,r){if(!0===t.tags.has(e))return null;if("."===e)return null;!0===t.frozen&&(r=!0);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("string"==typeof e)if(e=e.trim(),Tn.test(e))!function(t,e,n,r){let o=e.split(Tn);t.forEach(((t,e)=>{let i=o[e];i&&(i=i.replace(/^#/,""),Nn(t,i,n,r))}))}(t,e,i,r);else{e=e.replace(/^#/,"");for(let n=0;nLn(t,e,n,r)))},Vn=function(t){return t.children=t.children||[],t._cache=t._cache||{},t.props=t.props||{},t._cache.parents=t._cache.parents||[],t._cache.children=t._cache.children||[],t},Fn=/^ *(#|\/\/)/,qn=function(t){let e=t.trim().split(/->/),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=>Vn({id:t}))),e}return[Vn({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},Dn=t=>"[object Array]"===Object.prototype.toString.call(t),Bn=t=>(t=t||"").trim(),Mn=function(t=[]){return"string"==typeof t?function(t){let e=t.split(/\r?\n/),n=[];e.forEach((t=>{if(!t.trim()||Fn.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=Vn({});return t.forEach((t=>{if((t=Vn(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):(Gn(e=t).forEach(Vn),e);var e},Un=function(t,e){let n="-> ";e&&(n=(t=>""+t+"")("โ†’ "));let r="";return Gn(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},Wn=function(t){let e=Gn(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},In={text:Un,txt:Un,array:Wn,flat:Wn},Rn=function(t,e){return"nested"===e||"json"===e?t:"debug"===e?(console.log(Un(t,!0)),null):In.hasOwnProperty(e)?In[e](t):t},Qn=t=>{Gn(t,((t,e)=>{t.id&&(t._cache.parents=t._cache.parents||[],e._cache.parents=t._cache.parents.concat([t.id]))}))},Hn=/\//;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=Bn(t),!Hn.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)||Vn({});return new g(e)}add(t,e={}){if(Dn(t))return t.forEach((t=>this.add(Bn(t),e))),this;t=Bn(t);let n=Vn({id:t,props:e});return this.json.children.push(n),new g(n)}remove(t){return t=Bn(t),this.json.children=this.json.children.filter((e=>e.id!==t)),this}nodes(){return Gn(this.json).map((t=>(delete(t=Object.assign({},t)).children,t)))}cache(){return(t=>{let e=Gn(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 Gn(this.json)}fillDown(){var t;return t=this.json,Gn(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 Dn(e[n])?t[n]=e[n].concat(t[n]||[]):void 0===t[n]&&(t[n]=e[n])})),t))(e.props,t.props)})),this}depth(){Qn(this.json);let t=Gn(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 Qn(this.json),Rn(this.json,t)}debug(){return Qn(this.json),Rn(this.json,"debug"),this}}const Zn=function(t){let e=Mn(t);return new g(e)};Zn.prototype.plugin=function(t){t(this)};const Kn={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Hyphenated:"cyan",Adverb:"cyan"},Jn=function(t){if(Kn.hasOwnProperty(t.id))return Kn[t.id];if(Kn.hasOwnProperty(t.is))return Kn[t.is];let e=t._cache.parents.find((t=>Kn[t]));return Kn[e]},Xn=function(t){return t?"string"==typeof t?[t]:t:[]},Yn=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=Xn(t[e].children),t[e].not=Xn(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 tr={one:{setTag:Ln,unTag:function(t,e,n){e=e.trim().replace(/^#/,"");for(let r=0;r0)for(let t=0;t0&&(t=function(t){return Object.keys(t).forEach((e=>{t[e]=Object.assign({},t[e]),t[e].novel=!0})),t}(t)),t=Yn(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 Zn(e).cache().fillDown().out("array")}(Object.assign({},e,t)),r=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:Jn(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}(n);return r},canBe:function(t,e,n){if(!n.hasOwnProperty(e))return!0;let r=n[e].not||[];for(let e=0;eo.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 er(t)?t.forEach((t=>r.one.unTag(n,t,s))):r.one.unTag(n,t,s),this.uncache(),this},canBe:function(t){t=t.replace(/^#/,"");let e=this.model.one.tagSet,n=this.methods.one.canBe,r=[];this.document.forEach(((o,i)=>{o.forEach(((o,s)=>{n(o,t,e)||r.push([i,s,s+1])}))}));let o=this.update(r);return this.difference(o)}};var rr={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 or=new Set(["Auxiliary","Possessive"]);var ir={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=t.sort(((t,n)=>{if(or.has(t)||!e.hasOwnProperty(n))return 1;if(or.has(n)||!e.hasOwnProperty(t))return-1;let r=e[t].children||[],o=r.length;return r=e[n].children||[],o-r.length})),t}(e,r)}))}))}},methods:tr,api:function(t){Object.assign(t.prototype,nr)},lib:rr};const sr=/([.!?\u203D\u2E18\u203C\u2047-\u2049\u3002]+\s)/g,lr=/^[.!?\u203D\u2E18\u203C\u2047-\u2049\u3002]+\s$/,ar=/((?:\r?\n|\r)+)/,ur=/[a-z0-9\u00C0-\u00FF\u00a9\u00ae\u2000-\u3300\ud000-\udfff]/i,cr=/\S/,hr={'"':'"',"๏ผ‚":"๏ผ‚","โ€œ":"โ€","โ€Ÿ":"โ€","โ€ž":"โ€","โน‚":"โ€","โ€š":"โ€™","ยซ":"ยป","โ€น":"โ€บ","โ€ต":"โ€ฒ","โ€ถ":"โ€ณ","โ€ท":"โ€ด","ใ€":"ใ€ž","ใ€Ÿ":"ใ€ž"},fr=RegExp("["+Object.keys(hr).join("")+"]","g"),pr=RegExp("["+Object.values(hr).join("")+"]","g"),dr=function(t){if(!t)return!1;let e=t.match(pr);return null!==e&&1===e.length},mr=/\(/g,gr=/\)/g,wr=/\S/,br=/^\s+/,yr=function(t,e){let n=t.split(/[-โ€“โ€”]/);if(n.length<=1)return!1;const{prefixes:r,suffixes:o}=e.one;return(1!==n[0].length||!/[a-z]/i.test(n[0]))&&(!r.hasOwnProperty(n[0])&&(n[1]=n[1].trim().replace(/[.?!]$/,""),!o.hasOwnProperty(n[1])&&(!0===/^([a-z\u00C0-\u00FF`"'/]+)[-โ€“โ€”]([a-z0-9\u00C0-\u00FF].*)/i.test(t)||!0===/^[('"]?([0-9]{1,4})[-โ€“โ€”]([a-z\u00C0-\u00FF`"'/-]+[)'"]?$)/i.test(t))))},vr=function(t){let e=[];const n=t.split(/[-โ€“โ€”]/);let r="-",o=t.match(/[-โ€“โ€”]/);o&&o[0]&&(r=o);for(let t=0;t(t[e]=!0,t)),{});const Pr=/\p{Letter}/u,_r=/[\p{Number}\p{Currency_Symbol}]/u,Sr=/^[a-z]\.([a-z]\.)+/i,zr=/[sn]['โ€™]$/,Ar=/([A-Z]\.)+[A-Z]?,?$/,$r=/^[A-Z]\.,?$/,Tr=/[A-Z]{2,}('s|,)?$/,Cr=/([a-z]\.)+[a-z]\.?$/,Nr=function(t){return function(t){return!0===Ar.test(t)||!0===Cr.test(t)||!0===$r.test(t)||!0===Tr.test(t)}(t)&&(t=t.replace(/\./g,"")),t},Lr=function(t,e){const n=e.methods.one.killUnicode;let r=t.text||"";r=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.replace(/([0-9]),([0-9])/g,"$1$2")}(r),r=n(r,e),r=Nr(r),t.normal=r},Vr=/[ .][A-Z]\.? *$/i,Fr=/(?:\u2026|\.{2,}) *$/,qr=/\p{L}/u,Gr=/\. *$/,Dr=/^[A-Z]\. $/;var Br={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:function(t,e){if(t=t||"",!(t=String(t))||"string"!=typeof t||!1===wr.test(t))return[];let n=function(t){let e=[],n=t.split(ar);for(let t=0;t0&&(o.push(i),t[e]="")}return o}(r,e),r=function(t){let e=[];for(let n=0;n0?(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=function(t){for(let e=1;et)),n},splitWhitespace:(t,e)=>{let{str:n,pre:r,post:o}=function(t,e){let{prePunctuation:n,postPunctuation:r,emoticons:o}=e.one,i=t,s="",l="",a=Array.from(t);if(o.hasOwnProperty(t.trim()))return{str:t.trim(),pre:s,post:" "};let u=a.length;for(let t=0;t(l=t||"",""))),t=i,s=""),{str:t,pre:s,post:l}}(t,e);return{text:n,pre:r,post:o,tags:new Set}},fromString:function(t,e){const{methods:n,model:r}=e,{splitSentences:o,splitTerms:i,splitWhitespace:s}=n.one.tokenize;return t=o(t=t||"",e).map((t=>{let n=i(t,r);return n=n.map((t=>s(t,r))),n.forEach((t=>{Lr(t,e)})),n})),t}}}};let Mr={},Ur={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","ยตg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","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=>{Mr[e]=!0,Ur[e]="Abbreviation",void 0!==t[1]&&(Ur[e]=[Ur[e],t[1]])}))}));var Wr=["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","ex"].reduce(((t,e)=>(t[e]=!0,t)),{});let Ir={"!":"ยก","?":"ยฟษ",'"':'โ€œโ€"โโž',"'":"โ€˜โ€›โ›โœโ€™","-":"โ€”โ€“",a:"ยชร€รร‚รƒร„ร…ร รกรขรฃรครฅฤ€ฤฤ‚ฤƒฤ„ฤ…ววŽวžวŸว วกวบวปศ€ศศ‚ศƒศฆศงศบฮ†ฮ‘ฮ”ฮ›ฮฌฮฑฮปะะฐัฆังำำ‘ำ’ำ“ฦ›รฆ",b:"รŸรพฦ€ฦฦ‚ฦƒฦ„ฦ…ษƒฮ’ฮฒฯฯฆะ‘ะ’ะชะฌะฒัŠัŒัขัฃาŒา",c:"ยขยฉร‡รงฤ†ฤ‡ฤˆฤ‰ฤŠฤ‹ฤŒฤฦ†ฦ‡ฦˆศปศผอปอผฯฒฯนฯฝฯพะกัั”า€าาชาซ",d:"รฤŽฤฤฤ‘ฦ‰ฦŠศกฦ‹ฦŒ",e:"รˆร‰รŠร‹รจรฉรชรซฤ’ฤ“ฤ”ฤ•ฤ–ฤ—ฤ˜ฤ™ฤšฤ›ฦศ„ศ…ศ†ศ‡ศจศฉษ†ษ‡ฮˆฮ•ฮžฮฃฮญฮตฮพฯตะ€ะะ•ะตัั‘าผาฝาพาฟำ–ำ—แป…",f:"ฦ‘ฦ’ฯœฯำบำปา’า“ลฟ",g:"ฤœฤฤžฤŸฤ ฤกฤขฤฃฦ“วควฅวฆวงวดวต",h:"ฤคฤฅฤฆฤงฦ•วถศžศŸฮ‰ฮ—ะ‚ะŠะ‹ะะฝั’ั›าขาฃาคาฅาบาปำ‰ำŠ",I:"รŒรรŽร",i:"รฌรญรฎรฏฤจฤฉฤชฤซฤฌฤญฤฎฤฏฤฐฤฑฦ–ฦ—ศˆศ‰ศŠศ‹ฮŠฮฮชฮฏฮนฯŠะ†ะ‡ั–ั—iฬ‡",j:"ฤดฤตวฐศทษˆษ‰ฯณะˆั˜",k:"ฤถฤทฤธฦ˜ฦ™วจวฉฮšฮบะŒะ–ะšะถะบัœาšา›าœาาžาŸา าก",l:"ฤนฤบฤปฤผฤฝฤพฤฟล€ลล‚ฦšฦชว€ววศดศฝฮ™ำ€ำ",m:"ฮœฯบฯปะœะผำำŽ",n:"ร‘รฑลƒล„ล…ล†ล‡ลˆล‰ลŠล‹ฦฦžวธวนศ ศตฮฮ ฮฎฮทฯžะะ˜ะ™ะ›ะŸะธะนะปะฟัาŠา‹ำ…ำ†ำขำฃำคำฅฯ€",o:"ร’ร“ร”ร•ร–ร˜รฐรฒรณรดรตรถรธลŒลลŽลลล‘ฦŸฦ ฦกว‘ว’วชวซวฌวญวพวฟศŒศศŽศศชศซศฌศญศฎศฏศฐศฑฮŒฮ˜ฮŸฮธฮฟฯƒฯŒฯ•ฯ˜ฯ™ฯฌฯดะžะคะพัฒัณำฆำงำจำฉำชำซ",p:"ฦคฮกฯฯทฯธฯผะ ั€าŽารž",q:"ษŠษ‹",r:"ล”ล•ล–ล—ล˜ล™ฦฆศศ‘ศ’ศ“ษŒษะƒะ“ะฏะณัั“าา‘",s:"ลšล›ลœลลžลŸล ลกฦงฦจศ˜ศ™ศฟะ…ั•",t:"ลขลฃลคลฅลฆลงฦซฦฌฦญฦฎศšศ›ศถศพฮ“ฮคฯ„ฯฎะขั‚",u:"ร™รšร›รœรนรบรปรผลจลฉลชลซลฌลญลฎลฏลฐลฑลฒลณฦฏฦฐฦฑฦฒว“ว”ว•ว–ว—ว˜ว™วšว›วœศ”ศ•ศ–ศ—ษ„ฮฐฯ…ฯ‹ฯ",v:"ฮฝัดัตัถัท",w:"ลดลตฦœฯ‰ฯŽฯ–ฯขฯฃะจะฉัˆั‰ักัฟ",x:"ร—ฮงฯ‡ฯ—ฯฐะฅั…าฒาณำผำฝำพำฟ",y:"รรฝรฟลถลทลธฦณฦดศฒศณษŽษฮŽฮฅฮซฮณฯˆฯ’ฯ“ฯ”ะŽะฃัƒั‡ัžัฐัฑาฎาฏาฐาฑำฎำฏำฐำฑำฒำณ",z:"ลนลบลปลผลฝลพฦตฦถศคศฅษ€ฮ–"},Rr={};Object.keys(Ir).forEach((function(t){Ir[t].split("").forEach((function(e){Rr[e]=t}))}));const Qr=/\//,Hr=/[a-z]\.[a-z]/i,Zr=/[0-9]/,Kr=function(t,e){let n=t.normal||t.text||t.machine;const r=e.model.one.aliases;if(r.hasOwnProperty(n)&&(t.alias=t.alias||[],t.alias.push(r[n])),Qr.test(n)&&!Hr.test(n)&&!Zr.test(n)){let e=n.split(Qr);e.length<=3&&e.forEach((e=>{""!==(e=e.trim())&&(t.alias=t.alias||[],t.alias.push(e))}))}return t},Jr=/^\p{Letter}+-\p{Letter}+$/u,Xr=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"),Jr.test(e)&&(e=e.replace(/-/g,"")),e=e.replace(/^[#@]/,""),e!==t.normal&&(t.machine=e)},Yr=function(t,e){let n=t.docs;for(let r=0;rYr(t,Kr),machine:t=>Yr(t,Xr),normal:t=>Yr(t,Lr),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}(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}},so={model:{one:{typeahead:{}}},api:function(t){t.prototype.autoFill=ro},lib:io,compute:no,hooks:["typeahead"]};return h.extend(M),h.extend(wn),h.extend(Me),h.extend(_n),h.extend(ir),h.plugin(wt),h.extend(eo),h.extend(jt),h.plugin(d),h.extend(Vt),h.extend(so),h.extend(At),h.extend($n),h},"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 73383731b..2d480c8a2 100644 --- a/builds/one/compromise-one.mjs +++ b/builds/one/compromise-one.mjs @@ -1 +1 @@ -var t={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};const 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=e;var r={forEach:function(t){return this.fullPointer.forEach(((e,n)=>{let r=this.update([e]);t(r,n)})),this},map:function(t,e){let n=this.fullPointer.map(((e,n)=>{let r=this.update([e]),o=t(r,n);return void 0===o?this.none():o}));if(0===n.length)return e||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach((t=>{r=r.concat(t.fullPointer)})),this.toView(r)},filter:function(t){let e=this.fullPointer;return e=e.filter(((e,n)=>{let r=this.update([e]);return t(r,n)})),this.update(e)},find:function(t){let e=this.fullPointer.find(((e,n)=>{let r=this.update([e]);return t(r,n)}));return this.update([e])},some:function(t){return this.fullPointer.some(((e,n)=>{let r=this.update([e]);return t(r,n)}))},random:function(t=1){let e=this.fullPointer,n=Math.floor(Math.random()*e.length);return n+t>this.length&&(n=this.length-t,n=n<0?0:n),e=e.slice(n,n+t),this.update(e)}};const o={termList:function(){return this.methods.one.termList(this.docs)},terms:function(t){let e=this.match(".");return"number"==typeof t?e.eq(t):e},groups:function(t){if(t||0===t)return this.update(this._groups[t]||[]);let e={};return Object.keys(this._groups).forEach((t=>{e[t]=this.update(this._groups[t])})),e},eq:function(t){let e=this.pointer;return e||(e=this.docs.map(((t,e)=>[e]))),e[t]?this.update([e[t]]):this.none()},first:function(){return this.eq(0)},last:function(){let t=this.fullPointer.length-1;return this.eq(t)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(t,e){let n=this.pointer||this.docs.map(((t,e)=>[e]));return n=n.slice(t,e),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let t=this.fullPointer.map((t=>[t[0]]));return this.update(t).toView()},none:function(){return this.update([])},isDoc:function(t){if(!t||!t.isView)return!1;let e=this.fullPointer,n=t.fullPointer;return!e.length!==n.length&&e.every(((t,e)=>!!n[e]&&(t[0]===n[e][0]&&t[1]===n[e][1]&&t[2]===n[e][2])))},wordCount:function(){return this.docs.reduce(((t,e)=>(t+=e.filter((t=>""!==t.text)).length,t)),0)},isFull:function(){let t=this.pointer;if(!t)return!0;if(0===t.length||0!==t[0][0])return!1;let e=0,n=0;return this.document.forEach((t=>e+=t.length)),this.docs.forEach((t=>n+=t.length)),e===n},getNth:function(t){return"number"==typeof t?this.eq(t):"string"==typeof t?this.if(t):this}};o.group=o.groups,o.fullSentence=o.fullSentences,o.sentence=o.fullSentences,o.lastTerm=o.lastTerms,o.firstTerm=o.firstTerms;var i=o;const s=Object.assign({},i,n,r);s.get=s.eq;var l=s;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,r=e||t.map(((t,e)=>[e]));return r.map((t=>{let[e,r,o,i,s]=t;return r=r||0,o=o||(n[e]||[]).length,n[e]&&n[e][r]&&(i=i||n[e][r].id,n[e][o-1]&&(s=s||n[e][o-1].id)),[e,r,o,i,s]}))}update(t){let e=new View(this.document,t);if(this._cache&&t&&t.length>0){let n=[];t.forEach(((t,e)=>{let[r,o,i]=t;(1===t.length||0===o&&this.document[r].length===i)&&(n[e]=this._cache[r])})),n.length>0&&(e._cache=n)}return e.world=this.world,e}toView(t){return new View(this.document,t||this.pointer)}fromText(t){const{methods:e}=this;let n=e.one.tokenize.fromString(t,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","freeze","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r.compute("unfreeze"),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,l);var a=View;const c=function(t){return t&&"object"==typeof t&&!Array.isArray(t)};function u(t,e){if(c(e))for(const n in e)c(e[n])?(t[n]||Object.assign(t,{[n]:{}}),u(t[n],e[n])):Object.assign(t,{[n]:e[n]});return t}var h=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&&u(i,t.model),t.irregulars&&function(t,e){let n=t.two.models||{};Object.keys(e).forEach((t=>{e[t].pastTense&&(n.toPast&&(n.toPast.ex[t]=e[t].pastTense),n.fromPast&&(n.fromPast.ex[e[t].pastTense]=t)),e[t].presentTense&&(n.toPresent&&(n.toPresent.ex[t]=e[t].presentTense),n.fromPresent&&(n.fromPresent.ex[e[t].presentTense]=t)),e[t].gerund&&(n.toGerund&&(n.toGerund.ex[t]=e[t].gerund),n.fromGerund&&(n.fromGerund.ex[e[t].gerund]=t)),e[t].comparative&&(n.toComparative&&(n.toComparative.ex[t]=e[t].comparative),n.fromComparative&&(n.fromComparative.ex[e[t].comparative]=t)),e[t].superlative&&(n.toSuperlative&&(n.toSuperlative.ex[t]=e[t].superlative),n.fromSuperlative&&(n.fromSuperlative.ex[e[t].superlative]=t))}))}(i,t.irregulars),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.frozen&&r.addWords(t.frozen,!0),t.mutate&&t.mutate(e)};const f=function(t){return"[object Array]"===Object.prototype.toString.call(t)};var p=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(f(t)){if(f(t[0])){let n=t.map((t=>t.map((t=>({text:t,normal:t,pre:"",post:" ",tags:new Set})))));return new e(n)}let n=function(t){return t.map((t=>t.terms.map((t=>(f(t.tags)&&(t.tags=new Set(t.tags)),t)))))}(t);return new e(n)}return o};let d=Object.assign({},t);const m=function(t,e){e&&m.addWords(e);let n=p(t,a,d);return t&&n.compute(d.hooks),n};Object.defineProperty(m,"_world",{value:d,writable:!0}),m.tokenize=function(t,e){const{compute:n}=this._world;e&&m.addWords(e);let r=p(t,a,d);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},m.plugin=function(t){return h(t,this._world,a,this),this},m.extend=m.plugin,m.world=function(){return this._world},m.model=function(){return this._world.model},m.methods=function(){return this._world.methods},m.hooks=function(){return this._world.hooks},m.verbose=function(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},m.version="14.13.0";var w=m;var v=function(t){let e=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),E=(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},O=function(t){let e=t[t.length-1];!e||/ $/.test(e.post)||/[-โ€“โ€”]/.test(e.post)||(e.post+=" ")},k=(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,"")}},P=function(t,e,n,r){let[o,i,s]=e;0===i||s===r[o].length?O(n):(O(n),O([t[e[1]]])),function(t,e,n){let r=t[e];if(0!==e||!j(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")||j(o.text)&&o.text.length>1&&(o.text=(i=o.text,i.replace(/^\p{Lu}/u,(t=>t.toLowerCase()))));var i}(t,i,n),E(t,i,n)};let _=0;const S=t=>(t=t.length<3?"0"+t:t).length<3?"0"+t:t;var z=function(t){let[e,n]=t.index||[0,0];_+=1,_=_>46655?0:_,e=e>46655?0:e,n=n>1294?0:n;let r=S(_.toString(36));r+=S(e.toString(36));let o=n.toString(36);return o=o.length<2?"0"+o:o,r+=o,r+=parseInt(36*Math.random(),10).toString(36),t.normal+"|"+r.toUpperCase()};const A=function(t){if(t.has("@hasContraction")&&"function"==typeof t.contractions){t.grow("@hasContraction").contractions().expand()}},$=t=>"[object Array]"===Object.prototype.toString.call(t),T=function(t,e,n){const{document:r,world:o}=e;e.uncache();let i=e.fullPointer,s=e.fullPointer;e.forEach(((l,a)=>{let c=l.fullPointer[0],[u]=c,h=r[u],f=function(t,e){const{methods:n}=e;return"string"==typeof t?n.one.tokenize.fromString(t,e)[0]:"object"==typeof t&&t.isView?t.clone().docs[0]||[]:$(t)?$(t[0])?t[0]:t:[]}(t,o);0!==f.length&&(f=function(t){return t.map((t=>(t.id=z(t),t)))}(f),n?(A(e.update([c]).firstTerm()),P(h,c,f,r)):(A(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);let o=r.docs[0],i=e.possessives&&o[o.length-1].tags.has("Possessive");t=function(t,e){if("string"!=typeof t)return t;let n=e.groups();return t=t.replace(L,(t=>{let e=t.replace(/\$/,"");return n.hasOwnProperty(e)?n[e].text():t})),t}(t,r);let s=this.update(n);n=n.map((t=>t.slice(0,3)));let l=(s.docs[0]||[]).map((t=>Array.from(t.tags)));if("string"==typeof t&&(t=this.fromText(t).compute("id")),r.insertAfter(t),s.has("@hasContraction")&&r.contractions){r.grow("@hasContraction+").contractions().expand()}if(r.delete(s),i){let t=r.docs[0],e=t[t.length-1];e.tags.has("Possessive")||(e.text+="'s",e.normal+="'s",e.tags.add("Possessive"))}let a=r.toView(n).compute(["index","freeze","lexicon"]);return a.world.compute.preTagger&&a.compute("preTagger"),a.compute("unfreeze"),e.tags&&a.terms().forEach(((t,e)=>{t.tagSafe(l[e])})),e.case&&a.docs[0]&&a.docs[0][0]&&0===a.docs[0][0].index[1]&&(a.docs[0][0].text=a.docs[0][0].text.replace(/\w\S*/g,(t=>t.charAt(0).toUpperCase()+t.substring(1).toLowerCase()))),a},V.replace=function(t,e,n){if(t&&!e)return this.replaceWith(t,n);let r=this.match(t);return r.found?(this.soften(),r.replaceWith(e,n)):this};var F=V;var q=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 G={remove:function(t){const{indexN:e}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;t&&(n=this,r=this.match(t));let o=!n.ptrs;if(r.has("@hasContraction")&&r.contractions){r.grow("@hasContraction").contractions().expand()}let i=n.fullPointer,s=r.fullPointer.reverse(),l=q(this.document,s);return i=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})),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)))}(i,e(s)),n.ptrs=i,n.document=l,n.compute("index"),o&&(n.ptrs=void 0),t?n.toView(i):(this.ptrs=[],n.none())}};G.delete=G.remove;var D=G;const B={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}};B.deHyphenate=B.dehyphenate,B.toQuotation=B.toQuotations;var M=B;var U={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 W=new Set(["index","sequence","seq","sequential","chron","chronological"]),I=new Set(["freq","frequency","topk","repeats"]),R=new Set(["alpha","alphabetical"]);var Q={unique:function(){let t=new Set;return this.filter((e=>{let n=e.text("machine");return!t.has(n)&&(t.add(n),!0)}))},reverse:function(){let t=this.pointer||this.docs.map(((t,e)=>[e]));return t=[].concat(t),t=t.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(t)},sort:function(t){let{docs:e,pointer:n}=this;if(this.uncache(),"function"==typeof t)return function(t,e){let n=t.fullPointer;return n=n.sort(((n,r)=>(n=t.update([n]),r=t.update([r]),e(n,r)))),t.ptrs=n,t}(this,t);t=t||"alpha";let r=n||e.map(((t,e)=>[e])),o=e.map(((t,e)=>({index:e,words:t.length,normal:t.map((t=>t.machine||t.normal||"")).join(" "),pointer:r[e]})));return W.has(t)&&(t="sequential"),R.has(t)&&(t="alpha"),I.has(t)?(o=U.byFreq(o),this.update(o.map((t=>t.pointer)))):"function"==typeof U[t]?(o=o.sort(U[t]),this.update(o.map((t=>t.pointer)))):this}};const H=function(t,e){if(t.length>0){let e=t[t.length-1],n=e[e.length-1];!1===/ /.test(n.post)&&(n.post+=" ")}return t=t.concat(e)};var Z={concat:function(t){if("string"==typeof t){let e=this.fromText(t);if(this.found&&this.ptrs){let t=this.fullPointer,n=t[t.length-1][0];this.document.splice(n,0,...e.document)}else this.document=this.document.concat(e.document);return this.all().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=H(t.document,e.docs),t.all()}(this,t);if(e=t,"[object Array]"===Object.prototype.toString.call(e)){let e=H(this.document,t);return this.document=e,this.all()}var e;return this}};var K={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 J=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}},N,F,D,M,Q,Z,K);var X=function(t){Object.assign(t.prototype,J)};const Y={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))),n[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 ot=/'/,it=new Set(["what","how","when","where","why"]),st=new Set(["be","go","start","think","need"]),lt=new Set(["been","gone"]);var at=function(t,e){let n=t[e].normal.split(ot)[0];if(it.has(n))return[n,"did"];if(t[e+1]){if(lt.has(t[e+1].normal))return[n,"had"];if(st.has(t[e+1].normal))return[n,"would"]}return null};var ct=function(t,e){if("ain't"===t[e].normal||"aint"===t[e].normal)return null;return[t[e].normal.replace(/n't/,""),"not"]};const ut=/'/,ht=/(e|รฉ|aison|sion|tion)$/,ft=/(age|isme|acle|ege|oire)$/;var pt=(t,e)=>["je",t[e].normal.split(ut)[1]],dt=(t,e)=>{let n=t[e].normal.split(ut)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},mt=(t,e)=>{let n=t[e].normal.split(ut)[1];return n&&ht.test(n)&&!ft.test(n)?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const gt=/^([0-9.]{1,4}[a-z]{0,2}) ?[-โ€“โ€”] ?([0-9]{1,4}[a-z]{0,2})$/i,wt=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-โ€“โ€”] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,vt=/^[0-9]{3}-[0-9]{4}$/;var bt=function(t,e){let n=t[e],r=n.text.match(gt);return null!==r?!0===n.tags.has("PhoneNumber")||vt.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(wt),null!==r?[r[1],"to",r[4]]:null)};const yt=/^([+-]?[0-9][.,0-9]*)([a-zยฐยฒยณยต/]+)$/;var xt=function(t,e,n){const r=n.model.one.numberSuffixes||{};let o=t[e].text.match(yt);if(null!==o){let t=o[2].toLowerCase().trim();return r.hasOwnProperty(t)?null:[o[1],t]}return null};const jt=/'/,Et=/^[0-9][^-โ€“โ€”]*[-โ€“โ€”].*?[0-9]/,Ot=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]]},kt={t:(t,e)=>ct(t,e),d:(t,e)=>at(t,e)},Pt={j:(t,e)=>pt(t,e),l:(t,e)=>dt(t,e),d:(t,e)=>mt(t,e)},_t=function(t,e,n,r){for(let o=0;o2)return i.out.concat(r)}return null},St=function(t,e){let n=e.fromText(t.join(" "));return n.compute(["id","alias"]),n.docs[0]},zt=function(t,e){for(let n=e+1;n<5&&t[n];n+=1)if("been"===t[n].normal)return["there","has"];return["there","is"]};var At=t=>{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;if(!0===jt.test(r[l].normal)){let t=r[l].normal.split(jt);a=t[0],c=t[1]}let u=_t(i,r[l],a,c);!u&&kt.hasOwnProperty(c)&&(u=kt[c](r,l,e)),!u&&Pt.hasOwnProperty(a)&&(u=Pt[a](r,l)),"there"===a&&"s"===c&&(u=zt(r,l)),u?(u=St(u,t),rt(n,[s,l],u),Ot(n[s],t,l,u.length)):Et.test(r[l].normal)?(u=bt(r,l),u&&(u=St(u,t),rt(n,[s,l],u),o.one.setTag(u,"NumberRange",e),u[2]&&u[2].tags.has("Time")&&o.one.setTag([u[0]],"Time",e,null,"time-range"),Ot(n[s],t,l,u.length))):(u=xt(r,l,e),u&&(u=St(u,t),rt(n,[s,l],u),o.one.setTag([u[1]],"Unit",e,null,"contraction-unit")))}}))};var $t={model:nt,compute:{contractions:At},hooks:["contractions"]};const Tt=function(t){const e=t.world,{model:n,methods:r}=t.world,o=r.one.setTag,{frozenLex:i}=n.one,s=n.one._multiCache||{};t.docs.forEach((t=>{for(let n=0;nn;r-=1){let s=t.slice(n,r+1),l=s.map((t=>t.machine||t.normal)).join(" ");!0!==i.hasOwnProperty(l)||(o(s,i[l],e,!1,"1-frozen-multi-lexicon"),s.forEach((t=>t.frozen=!0)))}}void 0!==i[l]&&i.hasOwnProperty(l)&&(o([r],i[l],e,!1,"1-freeze-lexicon"),r.frozen=!0)}}))};const Ct=t=>""+t+"",Nt=t=>""+t+"";var Lt=function(t){t.docs.forEach((t=>{console.log(Ct("\n โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€")),t.forEach((t=>{let e=` ${Nt("โ”‚")} `,n=t.implicit||t.text||"-";!0===t.frozen?e+=`${Ct(n)} โ„๏ธ`:e+=Nt(n),console.log(e)}))}))},Vt={compute:{frozen:Tt,freeze:Tt,unfreeze:function(t){return t.docs.forEach((t=>{t.forEach((t=>{delete t.frozen}))})),t}},mutate:t=>{const e=t.methods.one;e.termMethods.isFrozen=t=>!0===t.frozen,e.debug.freeze=Lt,e.debug.frozen=Lt},api:function(t){t.prototype.freeze=function(){return this.docs.forEach((t=>{t.forEach((t=>{t.frozen=!0}))})),this},t.prototype.unfreeze=function(){this.compute("unfreeze")},t.prototype.isFrozen=function(){return this.match("@isFrozen+")}},hooks:["freeze"]};var Ft=function(t,e,n){const{model:r,methods:o}=n,i=o.one.setTag,s=r.one._multiCache||{},{lexicon:l}=r.one||{};let a=t[e],c=a.machine||a.normal;if(void 0!==s[c]&&t[e+1]){for(let r=e+s[c]-1;r>e;r-=1){let o=t.slice(e,r+1);if(o.length<=1)return!1;let s=o.map((t=>t.machine||t.normal)).join(" ");if(!0===l.hasOwnProperty(s)){let t=l[s];return i(o,t,n,!1,"1-multi-lexicon"),!t||2!==t.length||"PhrasalVerb"!==t[0]&&"PhrasalVerb"!==t[1]||i([o[1]],"Particle",n,!1,"1-phrasal-particle"),!0}}return!1}return null};const qt=/^(under|over|mis|re|un|dis|semi|pre|post)-?/,Gt=new Set(["Verb","Infinitive","PastTense","Gerund","PresentTense","Adjective","Participle"]);var Dt=function(t,e,n){const{model:r,methods:o}=n,i=o.one.setTag,{lexicon:s}=r.one;let l=t[e],a=l.machine||l.normal;if(void 0!==s[a]&&s.hasOwnProperty(a))return i([l],s[a],n,!1,"1-lexicon"),!0;if(l.alias){let t=l.alias.find((t=>s.hasOwnProperty(t)));if(t)return i([l],s[t],n,!1,"1-lexicon-alias"),!0}if(!0===qt.test(a)){let t=a.replace(qt,"");if(s.hasOwnProperty(t)&&t.length>3&&Gt.has(s[t]))return i([l],s[t],n,!1,"1-lexicon-prefix"),!0}return null};var Bt={lexicon:function(t){const e=t.world;t.docs.forEach((t=>{for(let n=0;n{let o=t[r],i=(r=(r=r.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);i.length>1&&(void 0===n[i[0]]||i.length>n[i[0]])&&(n[i[0]]=i.length),e[r]=e[r]||o})),delete e[""],delete e.null,delete e[" "],{lex:e,_multi:n}};var Ut={addWords:function(t,e=!1){const n=this.world(),{methods:r,model:o}=n;if(!t)return;if(Object.keys(t).forEach((e=>{"string"==typeof t[e]&&t[e].startsWith("#")&&(t[e]=t[e].replace(/^#/,""))})),!0===e){let{lex:e,_multi:i}=r.one.expandLexicon(t,n);return Object.assign(o.one._multiCache,i),void Object.assign(o.one.frozenLex,e)}if(r.two.expandLexicon){let{lex:e,_multi:i}=r.two.expandLexicon(t,n);Object.assign(o.one.lexicon,e),Object.assign(o.one._multiCache,i)}let{lex:i,_multi:s}=r.one.expandLexicon(t,n);Object.assign(o.one.lexicon,i),Object.assign(o.one._multiCache,s)}};var Wt={model:{one:{lexicon:{},_multiCache:{},frozenLex:{}}},methods:{one:{expandLexicon:Mt}},compute:Bt,lib:Ut,hooks:["lexicon"]};var It=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;let o=n.one.tokenize.splitTerms(t,r).map((t=>n.one.tokenize.splitWhitespace(t,r)));return o.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 Rt=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 Zt=(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 Kt=function(t){return t.goNext=t.goNext.map((t=>{if(0!==Object.keys(t).length)return t})),t.goNext=Zt(t.goNext,void 0),t.failTo=Zt(t.failTo,0),t.endAs=Zt(t.endAs,null),t};const Jt={buildTrie:function(t){const e=It(t,this.world());return Kt(e)}};Jt.compile=Jt.buildTrie;var Xt={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:It(t,this.world));var r;let o=Ht(this,n,e);return o=o.settle(),o}},lib:Jt};const Yt=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},te=function(t,e){let{ptrs:n,byGroup:r}=t;return n=Yt(n,e),Object.keys(r).forEach((t=>{r[t]=Yt(r[t],e)})),{ptrs:n,byGroup:r}},ee=function(t,e,n){const r=n.methods.one;return"number"==typeof t&&(t=String(t)),"string"==typeof t&&(t=r.killUnicode(t,n),t=r.parseMatch(t,e,n)),t},ne=t=>"[object Object]"===Object.prototype.toString.call(t),re=t=>t&&ne(t)&&!0===t.isView,oe=t=>t&&ne(t)&&!0===t.isNet;var ie={matchOne:function(t,e,n){const r=this.methods.one;if(re(t))return this.intersection(t).eq(0);if(oe(t))return this.sweep(t,{tagger:!1,matchOne:!0}).view;let o={regs:t=ee(t,n,this.world),group:e,justOne:!0},i=r.match(this.docs,o,this._cache),{ptrs:s,byGroup:l}=te(i,this.fullPointer),a=this.toView(s);return a._groups=l,a},match:function(t,e,n){const r=this.methods.one;if(re(t))return this.intersection(t);if(oe(t))return this.sweep(t,{tagger:!1}).view.settle();let o={regs:t=ee(t,n,this.world),group:e},i=r.match(this.docs,o,this._cache),{ptrs:s,byGroup:l}=te(i,this.fullPointer),a=this.toView(s);return a._groups=l,a},has:function(t,e,n){const r=this.methods.one;if(re(t)){return this.intersection(t).fullPointer.length>0}if(oe(t))return this.sweep(t,{tagger:!1}).view.found;let o={regs:t=ee(t,n,this.world),group:e,justOne:!0};return r.match(this.docs,o,this._cache).ptrs.length>0},if:function(t,e,n){const r=this.methods.one;if(re(t))return this.filter((e=>e.intersection(t).found));if(oe(t)){let e=this.sweep(t,{tagger:!1}).view.settle();return this.if(e)}let o={regs:t=ee(t,n,this.world),group:e,justOne:!0},i=this.fullPointer,s=this._cache||[];i=i.filter(((t,e)=>{let n=this.update([t]);return r.match(n.docs,o,s[e]).ptrs.length>0}));let l=this.update(i);return this._cache&&(l._cache=i.map((t=>s[t[0]]))),l},ifNo:function(t,e,n){const{methods:r}=this,o=r.one;if(re(t))return this.filter((e=>!e.intersection(t).found));if(oe(t)){let e=this.sweep(t,{tagger:!1}).view.settle();return this.ifNo(e)}t=ee(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 se={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 le=function(t,e){return[t[0],t[1],e[2]]},ae=(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},ce=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},ue={splitOn:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=ae(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=>ce(t,this))),this.update(i)},splitBefore:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=ae(t,this,e).fullPointer,o=n(this.fullPointer,r);for(let t=0;t{i.push(t.passthrough),i.push(t.before),t.match&&t.after?i.push(le(t.match,t.after)):i.push(t.match)})),i=i.filter((t=>t)),i=i.map((t=>ce(t,this))),this.update(i)},splitAfter:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=ae(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach((t=>{i.push(t.passthrough),t.before&&t.match?i.push(le(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=>ce(t,this))),this.update(i)}};ue.split=ue.splitAfter;var he=ue;const fe=function(t,e){return!(!t||!e)&&(t[0]===e[0]&&t[2]===e[1])},pe=function(t,e,n){const r=t.world,o=r.methods.one.parseMatch;n=n||"^.";let i=o(e=e||".$",{},r),s=o(n,{},r);i[i.length-1].end=!0,s[0].start=!0;let l=t.fullPointer,a=[l[0]];for(let e=1;e)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,ve=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,be=/ /g,ye=t=>/^[![^]*(<[^<]*>)?\//.test(t)&&/\/[?\]+*$~]*$/.test(t),xe=function(t){return t=(t=t.map((t=>t.trim()))).filter((t=>t))};var je=function(t){let e=t.split(we),n=[];e.forEach((t=>{ye(t)?n.push(t):n=n.concat(t.split(ve))})),n=xe(n);let r=[];return n.forEach((t=>{(t=>/^[![^]*(<[^<]*>)?\(/.test(t)&&/\)[?\]+*$~]*$/.test(t))(t)||ye(t)?r.push(t):r=r.concat(t.split(be))})),r=xe(r),r};const Ee=/\{([0-9]+)?(, *[0-9]*)?\}/,Oe=/&&/,ke=new RegExp(/^<\s*(\S+)\s*>/),Pe=t=>t.charAt(0).toUpperCase()+t.substring(1),_e=t=>t.charAt(t.length-1),Se=t=>t.charAt(0),ze=t=>t.substring(1),Ae=t=>t.substring(0,t.length-1),$e=function(t){return t=ze(t),t=Ae(t)},Te=function(t,e){let n={};for(let r=0;r<2;r+=1){if("$"===_e(t)&&(n.end=!0,t=Ae(t)),"^"===Se(t)&&(n.start=!0,t=ze(t)),"?"===_e(t)&&(n.optional=!0,t=Ae(t)),("["===Se(t)||"]"===_e(t))&&(n.group=null,"["===Se(t)&&(n.groupStart=!0),"]"===_e(t)&&(n.groupEnd=!0),t=(t=t.replace(/^\[/,"")).replace(/\]$/,""),"<"===Se(t))){const e=ke.exec(t);e.length>=2&&(n.group=e[1],t=t.replace(e[0],""))}if("+"===_e(t)&&(n.greedy=!0,t=Ae(t)),"*"!==t&&"*"===_e(t)&&"\\*"!==t&&(n.greedy=!0,t=Ae(t)),"!"===Se(t)&&(n.negative=!0,t=ze(t)),"~"===Se(t)&&"~"===_e(t)&&t.length>2&&(t=$e(t),n.fuzzy=!0,n.min=e.fuzzy||.85,!1===/\(/.test(t)))return n.word=t,n;if("/"===Se(t)&&"/"===_e(t))return t=$e(t),e.caseSensitive&&(n.use="text"),n.regex=new RegExp(t),n;if(!0===Ee.test(t)&&(t=t.replace(Ee,((t,e,r)=>(void 0===r?(n.min=Number(e),n.max=Number(e)):(r=r.replace(/, */,""),void 0===e?(n.min=0,n.max=Number(r)):(n.min=Number(e),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),"")))),"("===Se(t)&&")"===_e(t)){Oe.test(t)?(n.choices=t.split(Oe),n.operator="and"):(n.choices=t.split("|"),n.operator="or"),n.choices[0]=ze(n.choices[0]);let r=n.choices.length-1;n.choices[r]=Ae(n.choices[r]),n.choices=n.choices.map((t=>t.trim())),n.choices=n.choices.filter((t=>t)),n.choices=n.choices.map((t=>t.split(/ /g).map((t=>Te(t,e))))),t=""}if("{"===Se(t)&&"}"===_e(t)){if(t=$e(t),n.root=t,/\//.test(t)){let t=n.root.split(/\//);n.root=t[0],n.pos=t[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==t[2]&&(n.sense=t[2])}return n}if("<"===Se(t)&&">"===_e(t))return t=$e(t),n.chunk=Pe(t),n.greedy=!0,n;if("%"===Se(t)&&"%"===_e(t))return t=$e(t),n.switch=t,n}return"#"===Se(t)?(n.tag=ze(t),n.tag=Pe(n.tag),n):"@"===Se(t)?(n.method=ze(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 Ce=Te;const Ne=/[a-z0-9][-โ€“โ€”][a-z]/i;var Le=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&&Ne.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};const Ve=function(t,e){let{all:n}=e.methods.two.transform.verb||{},r=t.root;return n?n(r,e.model):[]},Fe=function(t,e){let{all:n}=e.methods.two.transform.noun||{};return n?n(t.root,e.model):[t.root]},qe=function(t,e){let{all:n}=e.methods.two.transform.adjective||{};return n?n(t.root,e.model):[t.root]};var Ge=function(t,e){return t=t.map((t=>{if(t.root)if(e.methods.two&&e.methods.two.transform){let n=[];t.pos?"Verb"===t.pos?n=n.concat(Ve(t,e)):"Noun"===t.pos?n=n.concat(Fe(t,e)):"Adjective"===t.pos&&(n=n.concat(qe(t,e))):(n=n.concat(Ve(t,e)),n=n.concat(Fe(t,e)),n=n.concat(qe(t,e))),n=n.filter((t=>t)),n.length>0&&(t.operator="or",t.fastOr=new Set(n))}else t.machine=t.root,delete t.id,delete t.root;return t}))};var De=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}))),t};var Be=function(t,e,n){if(null==t||""===t)return[];e=e||{},"number"==typeof t&&(t=String(t));let r=je(t);return r=r.map((t=>Ce(t,e))),r=Le(r,n),r=Ge(r,n),r=De(r),r};const Me=function(t,e){for(let n of e)if(t.has(n))return!0;return!1};var Ue=function(t,e){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(o||100))return o||100;let i,s,l,a,c,u,h=[];for(let t=0;t4)return n;l=e[i-1],a=s===l?0:1,c=h[o-1][i]+1,(u=h[o][i-1]+1)1&&i>1&&s===e[i-2]&&t[o-2]===l&&(u=h[o-2][i-2]+a)-1!==t.post.indexOf(e),Ke={hasQuote:t=>Ie.test(t.pre)||Re.test(t.post),hasComma:t=>Ze(t,","),hasPeriod:t=>!0===Ze(t,".")&&!1===Ze(t,"..."),hasExclamation:t=>Ze(t,"!"),hasQuestionMark:t=>Ze(t,"?")||Ze(t,"ยฟ"),hasEllipses:t=>Ze(t,"..")||Ze(t,"โ€ฆ"),hasSemicolon:t=>Ze(t,";"),hasColon:t=>Ze(t,":"),hasSlash:t=>/\//.test(t.text),hasHyphen:t=>Qe.test(t.post)||Qe.test(t.pre),hasDash:t=>He.test(t.post)||He.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)};Ke.hasQuotation=Ke.hasQuote;var Je=Ke;let Xe=function(){};Xe=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.id&&e.id===t.id)return!0;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(We(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)}if(void 0!==e.chunk)return t.chunk===e.chunk;if(void 0!==e.switch)return t.switch===e.switch;if(void 0!==e.machine)return t.normal===e.machine||t.machine===e.machine||t.root===e.machine;if(void 0!==e.sense)return t.sense===e.sense;if(void 0!==e.fastOr){if(e.pos&&!t.tags.has(e.pos))return null;let n=t.root||t.implicit||t.machine||t.normal;return e.fastOr.has(n)||e.fastOr.has(t.text)}return void 0!==e.choices&&("and"===e.operator?e.choices.every((e=>Xe(t,e,n,r))):e.choices.some((e=>Xe(t,e,n,r))))}(t,e,n,r);return!0===e.negative?!o:o};var Ye=Xe;const tn=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){en(t,t.t).length=r-t.t}return t.t=r,!0};const rn=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=Ye(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]&&Ye(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){en(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 ln=function(t,e,n){let r=0;for(let o=t.t;or)&&(t.t+=r,!0))};var an=function(t){const{regs:e}=t;let n=e[t.r],r=Object.assign({},n);if(r.negative=!1,Ye(t.terms[t.t],r,t.start_i+t.t,t.phrase_length))return!1;if(n.optional){let n=e[t.r+1];if(n){if(Ye(t.terms[t.t],n,t.start_i+t.t,t.phrase_length))t.r+=1;else if(n.optional&&e[t.r+2]){Ye(t.terms[t.t],e[t.r+2],t.start_i+t.t,t.phrase_length)&&(t.r+=2)}}}return n.greedy?ln(t,r,e[t.r+1]):(t.t+=1,!0)};var cn=function(t){const{regs:e}=t;let n=e[t.r],r=t.terms[t.t],o=Ye(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&&Ye(n,e[t.r+1],t.start_i+t.t,t.phrase_length)||(t.r+=1)}};var un=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 hn=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 fn=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]&&cn(t),r.implicit&&t.terms[t.t+1]&&hn(t),t.t+=1,!0===n.end&&t.t!==t.terms.length&&!0!==n.greedy)return null;if(!0===n.greedy){if(!un(t))return null}return!0===t.hasGroup&&function(t,e){let n=t.regs[t.r];const r=en(t,e);t.t>1&&n.greedy?r.length+=t.t-e:r.length++}(t,o),!0};var pn=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!==tn(t,o))if(t.negative){if(!an(o))return null}else if(!0!==Ye(o.terms[o.t],t,o.start_i+o.t,o.phrase_length)){if(!0!==t.optional)return null}else{if(!fn(o))return null}else{if(!fn(o))return null}else{if(t.negative&&t.anything)return null;if(!fn(o))return null}else{if(!sn(o))return null}else{if(!on(o))return null}else{if(!nn(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 dn=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}};var mn=function(t,e,n){return t=t.filter((t=>{let[r,o,i]=t.pointer,s=n[r].slice(o,i);for(let t=0;t{t.groups[n][0]=e})),t},wn=function(t,e,n){let r=pn(t,e,0,t.length);return r?(r=gn(r,n),r):null};var vn=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=wn(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]}))),e.notIf&&(s=mn(s,e.notIf,t)),s=dn(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};var bn={api:ge,methods:{one:{termMethods:Je,parseMatch:Be,match:vn}},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 yn=/^\../,xn=/^#./,jn=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,"'"),yn.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 En={html:function(t){let{starts:e,ends:n}=jn(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(kn,""),_n.test(o)&&(o=" "),o=o.replace(Pn,""),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(kn,""),o="-"===o?" ":o.replace(On,""));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&&Sn.test(o)||(o+=" "),r+=n+i+o})),!1===n&&(r=r.trim()),!0===e.lowerCase&&(r=r.toLowerCase()),r},An={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{keepSpace:!1,whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{keepSpace:!1,whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};An.clean=An.normal,An.reduced=An.root;var $n=An;let Tn=[],Cn=0;for(;Cn<64;)Tn[Cn]=0|4294967296*Math.sin(++Cn%Math.PI);var Nn=function(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(Cn=s=0;Cn>4]+Tn[s]+~~i[Cn|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 Ln={text:!0,terms:!0};let Vn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const Fn=function(t,e){return Object.assign({},t,e)},qn={text:t=>zn(t,{keepPunct:!0},!1),normal:t=>zn(t,Fn($n.normal,{keepPunct:!0}),!1),implicit:t=>zn(t,Fn($n.implicit,{keepPunct:!0}),!1),machine:t=>zn(t,Vn,!1),root:t=>zn(t,Fn(Vn,{form:"root"}),!1),hash:t=>Nn(zn(t,{keepPunct:!0},!1)),offset:t=>{let e=qn.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))};qn.sentences=qn.sentence,qn.clean=qn.normal,qn.reduced=qn.root;const Gn={json:function(t){let e=(n=this,"string"==typeof(r=(r=t)||{})&&(r={}),(r=Object.assign({},Ln,r)).offset&&n.compute("offset"),n.docs.map(((t,e)=>{let o={};return Object.keys(r).forEach((i=>{r[i]&&qn[i]&&(o[i]=qn[i](t,n,e))})),o})));var n,r;return"number"==typeof t?e[t]:e}};Gn.data=Gn.json;var Dn=Gn;var Bn=function(t){let e=this.methods.one.debug||{};return t&&e.hasOwnProperty(t)?(e[t](this),this):"undefined"!=typeof window&&window.document?(e.clientSide(this),this):(e.tags(this),this)};const Mn=function(t){let e=t.pre||"",n=t.post||"";return e+t.text+n};var Un=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()));return t.filter((t=>t))}if("freq"===t||"frequency"===t||"topk"===t)return function(t){let e={};t.forEach((t=>{e[t]=e[t]||0,e[t]+=1}));let n=Object.keys(e).map((t=>({normal:t,count:e[t]})));return n.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.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()},wrap:function(t){return Un(this,t)}};var In=Wn;var Rn={text:function(t){let e={};var n;if(t&&"string"==typeof t&&$n.hasOwnProperty(t)?e=Object.assign({},$n[t]):t&&(n=t,"[object Object]"===Object.prototype.toString.call(n))&&(e=Object.assign({},t)),void 0!==e.keepSpace||this.isFull()||(e.keepSpace=!1),void 0===e.keepEndPunct&&this.pointer){let t=this.pointer[0];t&&t[1]?e.keepEndPunct=!1:e.keepEndPunct=!0}return void 0===e.keepPunct&&(e.keepPunct=!0),void 0===e.keepSpace&&(e.keepSpace=!0),function(t,e){let n="";if(!t||!t[0]||!t[0][0])return n;for(let r=0;r{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 Kn="";var Jn={green:t=>""+t+Kn,red:t=>""+t+Kn,blue:t=>""+t+Kn,magenta:t=>""+t+Kn,cyan:t=>""+t+Kn,yellow:t=>""+t+Kn,black:t=>""+t+Kn,dim:t=>""+t+Kn,i:t=>""+t+Kn};var Xn=function(t){let{docs:e,model:n}=t;0===e.length&&console.log(Jn.blue("\n โ”€โ”€โ”€โ”€โ”€โ”€")),e.forEach((e=>{console.log(Jn.blue("\n โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€")),e.forEach((e=>{let r=[...e.tags||[]],o=e.text||"-";e.sense&&(o=`{${e.normal}/${e.sense}}`),e.implicit&&(o="["+e.implicit+"]"),o=Jn.yellow(o);let i="'"+o+"'";if(e.reference){let n=t.update([e.reference]).text("normal");i+=` - ${Jn.dim(Jn.i("["+n+"]"))}`}i=i.padEnd(18);let s=Jn.blue(" โ”‚ ")+Jn.i(i)+" - "+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 Jn[n](t)}))),t.join(", ")}(r,n);console.log(s)}))})),console.log("\n")};var Yn=function(t){let{docs:e}=t;console.log(""),e.forEach((t=>{let e=[];t.forEach((t=>{"Noun"===t.chunk?e.push(Jn.blue(t.implicit||t.normal)):"Verb"===t.chunk?e.push(Jn.green(t.implicit||t.normal)):"Adjective"===t.chunk?e.push(Jn.yellow(t.implicit||t.normal)):"Pivot"===t.chunk?e.push(Jn.red(t.implicit||t.normal)):e.push(t.implicit||t.normal)})),console.log(e.join(" "),"\n")})),console.log("\n")};var tr=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]}${Jn.blue(r[1])}${r[2]}`}(r,t.offset,e)})),console.log(r)})),console.log("\n")};var er={api:Hn,methods:{one:{hash:Nn,debug:{tags:Xn,clientSide:Zn,chunks:Yn,highlight:tr}}}};const nr=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},rr=function(t){let e={};return t.forEach((t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)})),e};var or=function(t,e){let n=rr(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 ir=function(t,e){let n=[];return t.forEach(((r,o)=>{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<20;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};var sr={one:{termList:function(t){let e=[];for(let n=0;n{let[e]=t;if(1===r[e].length)return void o.push(t);let n=r[e].filter((e=>nr(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 cr=function(t,e){let n=rr(e),r=[];return t.forEach((t=>{let e=n[t[0]]||[];e=e.filter((e=>nr(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},hr=function(t,e){return t.map((t=>{let[n,r]=t;return e[n]&&e[n][r]&&(t[3]=e[n][r].id),t}))},fr={union:function(t){t=ur(t,this);let e=lr(this.fullPointer,t.fullPointer);return e=hr(e,this.document),this.toView(e)}};fr.and=fr.union,fr.intersection=function(t){t=ur(t,this);let e=cr(this.fullPointer,t.fullPointer);return e=hr(e,this.document),this.toView(e)},fr.not=function(t){t=ur(t,this);let e=ar(this.fullPointer,t.fullPointer);return e=hr(e,this.document),this.toView(e)},fr.difference=fr.not,fr.complement=function(){let t=this.all(),e=ar(t.fullPointer,this.fullPointer);return e=hr(e,this.document),this.toView(e)},fr.settle=function(){let t=this.fullPointer;return t.forEach((e=>{t=lr(t,[e])})),t=hr(t,this.document),this.update(t)};var pr=function(t){Object.assign(t.prototype,fr)},dr={methods:sr,api:pr};var mr=function(t){t.prototype.sweep=function(t,e={}){const{world:n,docs:r}=this,{methods:o}=n;let i=o.one.bulkMatch(r,t,this.methods,e);!1!==e.tagger&&o.one.bulkTagger(i,r,this.world),i=i.map((t=>{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}}};const gr=function(t){return!0===t.optional||!0===t.negative?null:t.tag?"#"+t.tag:t.word?t.word:t.switch?`%${t.switch}%`:null};var wr=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.notIf&&(t.notIf=n(t.notIf,{},e)),t.needs=function(t){let e=[];return t.forEach((t=>{e.push(gr(t)),"and"===t.operator&&t.choices&&t.choices.forEach((t=>{t.forEach((t=>{e.push(gr(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=gr(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 vr=function(t,e){t=wr(t,e);let n={};t.forEach((t=>{t.needs.forEach((e=>{n[e]=Array.isArray(n[e])?n[e]:[],n[e].push(t)})),t.wants.forEach((e=>{n[e]=Array.isArray(n[e])?n[e]:[],n[e].push(t)}))})),Object.keys(n).forEach((t=>{let e={};n[t]=n[t].filter((t=>"boolean"!=typeof 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}};var br=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=>"boolean"!=typeof i[t.match]&&(i[t.match]=!0,!0))),o}))};var yr=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=>r.has(t)))))).filter((t=>{if(0===t.wants.length)return!0;return t.wants.filter((t=>r.has(t))).length>=t.minWant}))}))};var xr=function(t,e,n,r,o){let i=[];for(let n=0;n0&&(a.ptrs.forEach((t=>{t[0]=n;let e=Object.assign({},l,{pointer:t});void 0!==l.unTag&&(e.unTag=l.unTag),i.push(e)})),!0===o.matchOne))return[i[0]]}return i};var jr=function(t,e,n,r={}){let o=n.one.cacheDoc(t),i=br(o,e.hooks);return i=yr(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=t.filter((t=>r>=t.minWords)),t}))}(i,t),xr(i,t,o,n,r)};var Er=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{if(!t.tag&&!t.chunk&&!t.unTag)return;let o=t.reason||t.match,c=i([t.pointer],e)[0];if(!0===t.safe){if(!1===Er(c,t.tag,r))return;if("-"===c[c.length-1].post)return}if(void 0!==t.tag){if(s(c,t.tag,n,t.safe,`[post] '${o}'`),"Noun"===t.tag&&a){let e=c[c.length-1];a(e.text)?s([e],"Plural",n,t.safe,"quick-plural"):s([e],"Singular",n,t.safe,"quick-singular")}!0===t.freeze&&c.forEach((t=>t.frozen=!0))}void 0!==t.unTag&&l(c,t.unTag,n,t.safe,o),t.chunk&&c.forEach((e=>e.chunk=t.chunk))}))},kr={lib:{buildNet:function(t){let e=this.methods().one.buildNet(t,this.world());return e.isNet=!0,e}},api:mr,methods:{one:{buildNet:vr,bulkMatch:jr,bulkTagger:Or}}};const Pr=/ /,_r=function(t,e){"Noun"===e&&(t.chunk=e),"Verb"===e&&(t.chunk=e)},Sr=function(t,e,n,r){if(!0===t.tags.has(e))return null;if("."===e)return null;!0===t.frozen&&(r=!0);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("string"==typeof e)if(e=e.trim(),Pr.test(e))!function(t,e,n,r){let o=e.split(Pr);t.forEach(((t,e)=>{let i=o[e];i&&(i=i.replace(/^#/,""),Sr(t,i,n,r))}))}(t,e,i,r);else{e=e.replace(/^#/,"");for(let n=0;nzr(t,e,n,r)))};var Ar=zr;var $r=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=>Cr({id:t}))),e}return[Cr({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},Fr=t=>"[object Array]"===Object.prototype.toString.call(t),qr=t=>(t=t||"").trim(),Gr=function(t=[]){return"string"==typeof t?function(t){let e=t.split(/\r?\n/),n=[];e.forEach((t=>{if(!t.trim()||Nr.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:Lr(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=Cr({});return t.forEach((t=>{if((t=Cr(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):(Vr(e=t).forEach(Cr),e);var e},Dr=function(t,e){let n="-> ";e&&(n=(t=>""+t+"")("โ†’ "));let r="";return Vr(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},Br=function(t){let e=Vr(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},Mr={text:Dr,txt:Dr,array:Br,flat:Br},Ur=function(t,e){return"nested"===e||"json"===e?t:"debug"===e?(console.log(Dr(t,!0)),null):Mr.hasOwnProperty(e)?Mr[e](t):t},Wr=t=>{Vr(t,((t,e)=>{t.id&&(t._cache.parents=t._cache.parents||[],e._cache.parents=t._cache.parents.concat([t.id]))}))},Ir=/\//;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=qr(t),!Ir.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)||Cr({});return new g(e)}add(t,e={}){if(Fr(t))return t.forEach((t=>this.add(qr(t),e))),this;t=qr(t);let n=Cr({id:t,props:e});return this.json.children.push(n),new g(n)}remove(t){return t=qr(t),this.json.children=this.json.children.filter((e=>e.id!==t)),this}nodes(){return Vr(this.json).map((t=>(delete(t=Object.assign({},t)).children,t)))}cache(){return(t=>{let e=Vr(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 Vr(this.json)}fillDown(){var t;return t=this.json,Vr(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 Fr(e[n])?t[n]=e[n].concat(t[n]||[]):void 0===t[n]&&(t[n]=e[n])})),t))(e.props,t.props)})),this}depth(){Wr(this.json);let t=Vr(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 Wr(this.json),Ur(this.json,t)}debug(){return Wr(this.json),Ur(this.json,"debug"),this}}const Rr=function(t){let e=Gr(t);return new g(e)};Rr.prototype.plugin=function(t){t(this)};var Qr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Hyphenated:"cyan",Adverb:"cyan"};const Hr=function(t){if(Qr.hasOwnProperty(t.id))return Qr[t.id];if(Qr.hasOwnProperty(t.is))return Qr[t.is];let e=t._cache.parents.find((t=>Qr[t]));return Qr[e]};var Zr=function(t){const e={};return t.forEach((t=>{let{not:n,also:r,is:o,novel:i}=t.props,s=t._cache.parents;r&&(s=s.concat(r)),e[t.id]={is:o,not:n,novel:i,also:r,parents:s,children:t._cache.children,color:Hr(t)}})),Object.keys(e).forEach((t=>{let n=new Set(e[t].not);e[t].not.forEach((t=>{e[t]&&e[t].children.forEach((t=>n.add(t)))})),e[t].not=Array.from(n)})),e};const Kr=function(t){return t?"string"==typeof t?[t]:t:[]};var Jr=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=Kr(t[e].children),t[e].not=Kr(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 Xr=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=Jr(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 Zr(n)},Yr={one:{setTag:Ar,unTag:$r,addTags:Xr,canBe:Tr}};const to=function(t){return"[object Array]"===Object.prototype.toString.call(t)},eo={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||""),to(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 to(t)?t.forEach((t=>r.one.unTag(n,t,s))):r.one.unTag(n,t,s),this.uncache(),this},canBe:function(t){t=t.replace(/^#/,"");let e=this.model.one.tagSet,n=this.methods.one.canBe,r=[];this.document.forEach(((o,i)=>{o.forEach(((o,s)=>{n(o,t,e)||r.push([i,s,s+1])}))}));let o=this.update(r);return this.difference(o)}};var no=eo;var ro=function(t){Object.assign(t.prototype,no)};var oo={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 io=new Set(["Auxiliary","Possessive"]);var so=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=t.sort(((t,n)=>{if(io.has(t)||!e.hasOwnProperty(n))return 1;if(io.has(n)||!e.hasOwnProperty(t))return-1;let r=e[t].children||[],o=r.length;return r=e[n].children||[],o-r.length})),t}(e,r)}))}))},lo={model:{one:{tagSet:{}}},compute:{tagRank:so},methods:Yr,api:ro,lib:oo};const ao=/([.!?\u203D\u2E18\u203C\u2047-\u2049\u3002]+\s)/g,co=/^[.!?\u203D\u2E18\u203C\u2047-\u2049\u3002]+\s$/,uo=/((?:\r?\n|\r)+)/;var ho=function(t){let e=[],n=t.split(uo);for(let t=0;t0&&(o.push(i),t[e]="")}return o};const wo={'"':'"',"๏ผ‚":"๏ผ‚","โ€œ":"โ€","โ€Ÿ":"โ€","โ€ž":"โ€","โน‚":"โ€","โ€š":"โ€™","ยซ":"ยป","โ€น":"โ€บ","โ€ต":"โ€ฒ","โ€ถ":"โ€ณ","โ€ท":"โ€ด","ใ€":"ใ€ž","ใ€Ÿ":"ใ€ž"},vo=RegExp("["+Object.keys(wo).join("")+"]","g"),bo=RegExp("["+Object.values(wo).join("")+"]","g"),yo=function(t){if(!t)return!1;let e=t.match(bo);return null!==e&&1===e.length};var xo=function(t){let e=[];for(let n=0;n(t[e]=!0,t)),{});var Fo=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(Lo);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=To(n),n=Ao(n),n=n.filter((t=>t)),n};const qo=/\p{Letter}/u,Go=/[\p{Number}\p{Currency_Symbol}]/u,Do=/^[a-z]\.([a-z]\.)+/i,Bo=/[sn]['โ€™]$/;var Mo=function(t,e){let{prePunctuation:n,postPunctuation:r,emoticons:o}=e.one,i=t,s="",l="",a=Array.from(t);if(o.hasOwnProperty(t.trim()))return{str:t.trim(),pre:s,post:" "};let c=a.length;for(let t=0;t(l=t||"",""))),t=i,s=""),{str:t,pre:s,post:l}};var Uo=(t,e)=>{let{str:n,pre:r,post:o}=Mo(t,e);return{text:n,pre:r,post:o,tags:new Set}};var Wo=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("")};var Io=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 Ro=/([A-Z]\.)+[A-Z]?,?$/,Qo=/^[A-Z]\.,?$/,Ho=/[A-Z]{2,}('s|,)?$/,Zo=/([a-z]\.)+[a-z]\.?$/;var Ko=function(t){return function(t){return!0===Ro.test(t)||!0===Zo.test(t)||!0===Qo.test(t)||!0===Ho.test(t)}(t)&&(t=t.replace(/\./g,"")),t};var Jo=function(t,e){const n=e.methods.one.killUnicode;let r=t.text||"";r=Io(r),r=n(r,e),r=Ko(r),t.normal=r};var Xo=function(t,e){const{methods:n,model:r}=e,{splitSentences:o,splitTerms:i,splitWhitespace:s}=n.one.tokenize;return t=o(t=t||"",e).map((t=>{let n=i(t,r);return n=n.map((t=>s(t,r))),n.forEach((t=>{Jo(t,e)})),n})),t};const Yo=/[ .][A-Z]\.? *$/i,ti=/(?:\u2026|\.{2,}) *$/,ei=/\p{L}/u,ni=/\. *$/,ri=/^[A-Z]\. $/;var oi={one:{killUnicode:Wo,tokenize:{splitSentences:_o,isSentence:function(t,e){if(!1===ei.test(t))return!1;if(!0===Yo.test(t))return!1;if(3===t.length&&ri.test(t))return!1;if(!0===ti.test(t))return!1;let n=t.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),r=n[n.length-1].toLowerCase();return!0!==e.hasOwnProperty(r)||!0!==ni.test(t)},splitTerms:Fo,splitWhitespace:Uo,fromString:Xo}}};var ii={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let si={},li={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","ยตg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","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=>{si[e]=!0,li[e]="Abbreviation",void 0!==t[1]&&(li[e]=[li[e],t[1]])}))}));var ai=["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","ex"].reduce(((t,e)=>(t[e]=!0,t)),{});let ci={"!":"ยก","?":"ยฟษ",'"':'โ€œโ€"โโž',"'":"โ€˜โ€›โ›โœโ€™","-":"โ€”โ€“",a:"ยชร€รร‚รƒร„ร…ร รกรขรฃรครฅฤ€ฤฤ‚ฤƒฤ„ฤ…ววŽวžวŸว วกวบวปศ€ศศ‚ศƒศฆศงศบฮ†ฮ‘ฮ”ฮ›ฮฌฮฑฮปะะฐัฆังำำ‘ำ’ำ“ฦ›รฆ",b:"รŸรพฦ€ฦฦ‚ฦƒฦ„ฦ…ษƒฮ’ฮฒฯฯฆะ‘ะ’ะชะฌะฒัŠัŒัขัฃาŒา",c:"ยขยฉร‡รงฤ†ฤ‡ฤˆฤ‰ฤŠฤ‹ฤŒฤฦ†ฦ‡ฦˆศปศผอปอผฯฒฯนฯฝฯพะกัั”า€าาชาซ",d:"รฤŽฤฤฤ‘ฦ‰ฦŠศกฦ‹ฦŒ",e:"รˆร‰รŠร‹รจรฉรชรซฤ’ฤ“ฤ”ฤ•ฤ–ฤ—ฤ˜ฤ™ฤšฤ›ฦศ„ศ…ศ†ศ‡ศจศฉษ†ษ‡ฮˆฮ•ฮžฮฃฮญฮตฮพฯตะ€ะะ•ะตัั‘าผาฝาพาฟำ–ำ—แป…",f:"ฦ‘ฦ’ฯœฯำบำปา’า“ลฟ",g:"ฤœฤฤžฤŸฤ ฤกฤขฤฃฦ“วควฅวฆวงวดวต",h:"ฤคฤฅฤฆฤงฦ•วถศžศŸฮ‰ฮ—ะ‚ะŠะ‹ะะฝั’ั›าขาฃาคาฅาบาปำ‰ำŠ",I:"รŒรรŽร",i:"รฌรญรฎรฏฤจฤฉฤชฤซฤฌฤญฤฎฤฏฤฐฤฑฦ–ฦ—ศˆศ‰ศŠศ‹ฮŠฮฮชฮฏฮนฯŠะ†ะ‡ั–ั—iฬ‡",j:"ฤดฤตวฐศทษˆษ‰ฯณะˆั˜",k:"ฤถฤทฤธฦ˜ฦ™วจวฉฮšฮบะŒะ–ะšะถะบัœาšา›าœาาžาŸา าก",l:"ฤนฤบฤปฤผฤฝฤพฤฟล€ลล‚ฦšฦชว€ววศดศฝฮ™ำ€ำ",m:"ฮœฯบฯปะœะผำำŽ",n:"ร‘รฑลƒล„ล…ล†ล‡ลˆล‰ลŠล‹ฦฦžวธวนศ ศตฮฮ ฮฎฮทฯžะะ˜ะ™ะ›ะŸะธะนะปะฟัาŠา‹ำ…ำ†ำขำฃำคำฅฯ€",o:"ร’ร“ร”ร•ร–ร˜รฐรฒรณรดรตรถรธลŒลลŽลลล‘ฦŸฦ ฦกว‘ว’วชวซวฌวญวพวฟศŒศศŽศศชศซศฌศญศฎศฏศฐศฑฮŒฮ˜ฮŸฮธฮฟฯƒฯŒฯ•ฯ˜ฯ™ฯฌฯดะžะคะพัฒัณำฆำงำจำฉำชำซ",p:"ฦคฮกฯฯทฯธฯผะ ั€าŽารž",q:"ษŠษ‹",r:"ล”ล•ล–ล—ล˜ล™ฦฆศศ‘ศ’ศ“ษŒษะƒะ“ะฏะณัั“าา‘",s:"ลšล›ลœลลžลŸล ลกฦงฦจศ˜ศ™ศฟะ…ั•",t:"ลขลฃลคลฅลฆลงฦซฦฌฦญฦฎศšศ›ศถศพฮ“ฮคฯ„ฯฎะขั‚",u:"ร™รšร›รœรนรบรปรผลจลฉลชลซลฌลญลฎลฏลฐลฑลฒลณฦฏฦฐฦฑฦฒว“ว”ว•ว–ว—ว˜ว™วšว›วœศ”ศ•ศ–ศ—ษ„ฮฐฯ…ฯ‹ฯ",v:"ฮฝัดัตัถัท",w:"ลดลตฦœฯ‰ฯŽฯ–ฯขฯฃะจะฉัˆั‰ักัฟ",x:"ร—ฮงฯ‡ฯ—ฯฐะฅั…าฒาณำผำฝำพำฟ",y:"รรฝรฟลถลทลธฦณฦดศฒศณษŽษฮŽฮฅฮซฮณฯˆฯ’ฯ“ฯ”ะŽะฃัƒั‡ัžัฐัฑาฎาฏาฐาฑำฎำฏำฐำฑำฒำณ",z:"ลนลบลปลผลฝลพฦตฦถศคศฅษ€ฮ–"},ui={};Object.keys(ci).forEach((function(t){ci[t].split("").forEach((function(e){ui[e]=t}))}));const hi=/\//,fi=/[a-z]\.[a-z]/i,pi=/[0-9]/;var di=function(t,e){let n=t.normal||t.text||t.machine;const r=e.model.one.aliases;if(r.hasOwnProperty(n)&&(t.alias=t.alias||[],t.alias.push(r[n])),hi.test(n)&&!fi.test(n)&&!pi.test(n)){let e=n.split(hi);e.length<=3&&e.forEach((e=>{""!==(e=e.trim())&&(t.alias=t.alias||[],t.alias.push(e))}))}return t};const mi=/^\p{Letter}+-\p{Letter}+$/u;var gi=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"),mi.test(e)&&(e=e.replace(/-/g,"")),e=e.replace(/^[#@]/,""),e!==t.normal&&(t.machine=e)};var wi=function(t){let e=t.docs,n={};for(let t=0;txi(t,di),machine:t=>xi(t,gi),normal:t=>xi(t,Jo),freq:wi,offset:vi,index:bi,wordCount:yi},methods:oi,model:{one:{aliases:ii,abbreviations:si,prefixes:ai,suffixes:{like:!0,ish:!0,less:!0,able:!0,elect:!0,type:!0,designate:!0},prePunctuation:{"#":!0,"@":!0,_:!0,"ยฐ":!0,"โ€‹":!0,"โ€Œ":!0,"โ€":!0,"\ufeff":!0},postPunctuation:{"%":!0,_:!0,"ยฐ":!0,"โ€‹":!0,"โ€Œ":!0,"โ€":!0,"\ufeff":!0},lexicon:li,unicode:ui,emoticons:{"<3":!0,"{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 _i={safe:!0,min:3};var Si={typeahead:function(t=[],e={}){let n=this.model();var r;e=Object.assign({},_i,e),r=t,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,t),t=Object.keys(t));let o=Pi(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 zi={model:{one:{typeahead:{}}},api:ki,lib:Si,compute:Ei,hooks:["typeahead"]};w.extend(tt),w.extend(er),w.extend(bn),w.extend(dr),w.extend(lo),w.plugin($t),w.extend(ji),w.extend(Vt),w.plugin(x),w.extend(Xt),w.extend(zi),w.extend(Wt),w.extend(kr);export{w as default}; +var t={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};const e={compute:function(t){const{world:e}=this,n=e.compute;return"string"==typeof t&&n.hasOwnProperty(t)?n[t](this):(t=>"[object Array]"===Object.prototype.toString.call(t))(t)?t.forEach((r=>{e.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",t)})):"function"==typeof t?t(this):console.warn("no compute:",t),this}};var n={forEach:function(t){return this.fullPointer.forEach(((e,n)=>{let r=this.update([e]);t(r,n)})),this},map:function(t,e){let n=this.fullPointer.map(((e,n)=>{let r=this.update([e]),o=t(r,n);return void 0===o?this.none():o}));if(0===n.length)return e||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach((t=>{r=r.concat(t.fullPointer)})),this.toView(r)},filter:function(t){let e=this.fullPointer;return e=e.filter(((e,n)=>{let r=this.update([e]);return t(r,n)})),this.update(e)},find:function(t){let e=this.fullPointer.find(((e,n)=>{let r=this.update([e]);return t(r,n)}));return this.update([e])},some:function(t){return this.fullPointer.some(((e,n)=>{let r=this.update([e]);return t(r,n)}))},random:function(t=1){let e=this.fullPointer,n=Math.floor(Math.random()*e.length);return n+t>this.length&&(n=this.length-t,n=n<0?0:n),e=e.slice(n,n+t),this.update(e)}};const r={termList:function(){return this.methods.one.termList(this.docs)},terms:function(t){let e=this.match(".");return"number"==typeof t?e.eq(t):e},groups:function(t){if(t||0===t)return this.update(this._groups[t]||[]);let e={};return Object.keys(this._groups).forEach((t=>{e[t]=this.update(this._groups[t])})),e},eq:function(t){let e=this.pointer;return e||(e=this.docs.map(((t,e)=>[e]))),e[t]?this.update([e[t]]):this.none()},first:function(){return this.eq(0)},last:function(){let t=this.fullPointer.length-1;return this.eq(t)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(t,e){let n=this.pointer||this.docs.map(((t,e)=>[e]));return n=n.slice(t,e),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let t=this.fullPointer.map((t=>[t[0]]));return this.update(t).toView()},none:function(){return this.update([])},isDoc:function(t){if(!t||!t.isView)return!1;let e=this.fullPointer,n=t.fullPointer;return!e.length!==n.length&&e.every(((t,e)=>!!n[e]&&(t[0]===n[e][0]&&t[1]===n[e][1]&&t[2]===n[e][2])))},wordCount:function(){return this.docs.reduce(((t,e)=>(t+=e.filter((t=>""!==t.text)).length,t)),0)},isFull:function(){let t=this.pointer;if(!t)return!0;if(0===t.length||0!==t[0][0])return!1;let e=0,n=0;return this.document.forEach((t=>e+=t.length)),this.docs.forEach((t=>n+=t.length)),e===n},getNth:function(t){return"number"==typeof t?this.eq(t):"string"==typeof t?this.if(t):this}};r.group=r.groups,r.fullSentence=r.fullSentences,r.sentence=r.fullSentences,r.lastTerm=r.lastTerms,r.firstTerm=r.firstTerms;const o=Object.assign({},r,e,n);o.get=o.eq;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,r=e||t.map(((t,e)=>[e]));return r.map((t=>{let[e,r,o,i,s]=t;return r=r||0,o=o||(n[e]||[]).length,n[e]&&n[e][r]&&(i=i||n[e][r].id,n[e][o-1]&&(s=s||n[e][o-1].id)),[e,r,o,i,s]}))}update(t){let e=new View(this.document,t);if(this._cache&&t&&t.length>0){let n=[];t.forEach(((t,e)=>{let[r,o,i]=t;(1===t.length||0===o&&this.document[r].length===i)&&(n[e]=this._cache[r])})),n.length>0&&(e._cache=n)}return e.world=this.world,e}toView(t){return new View(this.document,t||this.pointer)}fromText(t){const{methods:e}=this;let n=e.one.tokenize.fromString(t,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","freeze","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r.compute("unfreeze"),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,o);const i=function(t){return t&&"object"==typeof t&&!Array.isArray(t)};function s(t,e){if(i(e))for(const n in e)i(e[n])?(t[n]||Object.assign(t,{[n]:{}}),s(t[n],e[n])):Object.assign(t,{[n]:e[n]});return t}const l=function(t,e,n,r){const{methods:o,model:i,compute:l,hooks:a}=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&&s(i,t.model),t.irregulars&&function(t,e){let n=t.two.models||{};Object.keys(e).forEach((t=>{e[t].pastTense&&(n.toPast&&(n.toPast.ex[t]=e[t].pastTense),n.fromPast&&(n.fromPast.ex[e[t].pastTense]=t)),e[t].presentTense&&(n.toPresent&&(n.toPresent.ex[t]=e[t].presentTense),n.fromPresent&&(n.fromPresent.ex[e[t].presentTense]=t)),e[t].gerund&&(n.toGerund&&(n.toGerund.ex[t]=e[t].gerund),n.fromGerund&&(n.fromGerund.ex[e[t].gerund]=t)),e[t].comparative&&(n.toComparative&&(n.toComparative.ex[t]=e[t].comparative),n.fromComparative&&(n.fromComparative.ex[e[t].comparative]=t)),e[t].superlative&&(n.toSuperlative&&(n.toSuperlative.ex[t]=e[t].superlative),n.fromSuperlative&&(n.fromSuperlative.ex[e[t].superlative]=t))}))}(i,t.irregulars),t.compute&&Object.assign(l,t.compute),a&&(e.hooks=a.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.frozen&&r.addWords(t.frozen,!0),t.mutate&&t.mutate(e,r)},a=function(t){return"[object Array]"===Object.prototype.toString.call(t)},u=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(a(t)){if(a(t[0])){let n=t.map((t=>t.map((t=>({text:t,normal:t,pre:"",post:" ",tags:new Set})))));return new e(n)}let n=t.map((t=>t.terms.map((t=>(a(t.tags)&&(t.tags=new Set(t.tags)),t)))));return new e(n)}return o};let c=Object.assign({},t);const h=function(t,e){e&&h.addWords(e);let n=u(t,View,c);return t&&n.compute(c.hooks),n};Object.defineProperty(h,"_world",{value:c,writable:!0}),h.tokenize=function(t,e){const{compute:n}=this._world;e&&h.addWords(e);let r=u(t,View,c);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},h.plugin=function(t){return l(t,this._world,View,this),this},h.extend=h.plugin,h.world=function(){return this._world},h.model=function(){return this._world.model},h.methods=function(){return this._world.methods},h.hooks=function(){return this._world.hooks},h.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},h.version="14.14.0";var f={one:{cacheDoc:function(t){let e=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),w=(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+=" ")},y=(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,"")}},v=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||!m(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")||m(o.text)&&o.text.length>1&&(o.text=(i=o.text,i.replace(/^\p{Lu}/u,(t=>t.toLowerCase()))));var i}(t,i,n),w(t,i,n)};let x=0;const j=t=>(t=t.length<3?"0"+t:t).length<3?"0"+t:t,E=function(t){let[e,n]=t.index||[0,0];x+=1,x=x>46655?0:x,e=e>46655?0:e,n=n>1294?0:n;let r=j(x.toString(36));r+=j(e.toString(36));let o=n.toString(36);return o=o.length<2?"0"+o:o,r+=o,r+=parseInt(36*Math.random(),10).toString(36),t.normal+"|"+r.toUpperCase()},O=function(t){if(t.has("@hasContraction")&&"function"==typeof t.contractions){t.grow("@hasContraction").contractions().expand()}},k=t=>"[object Array]"===Object.prototype.toString.call(t),P=function(t,e,n){const{document:r,world:o}=e;e.uncache();let i=e.fullPointer,s=e.fullPointer;e.forEach(((l,a)=>{let u=l.fullPointer[0],[c]=u,h=r[c],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]||[]:k(t)?k(t[0])?t[0]:t:[]}(t,o);0!==f.length&&(f=function(t){return t.map((t=>(t.id=E(t),t)))}(f),n?(O(e.update([u]).firstTerm()),v(h,u,f,r)):(O(e.update([u]).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);let o=r.docs[0],i=e.possessives&&o[o.length-1].tags.has("Possessive");t=function(t,e){if("string"!=typeof t)return t;let n=e.groups();return t=t.replace(S,(t=>{let e=t.replace(/\$/,"");return n.hasOwnProperty(e)?n[e].text():t})),t}(t,r);let s=this.update(n);n=n.map((t=>t.slice(0,3)));let l=(s.docs[0]||[]).map((t=>Array.from(t.tags)));if("string"==typeof t&&(t=this.fromText(t).compute("id")),r.insertAfter(t),s.has("@hasContraction")&&r.contractions){r.grow("@hasContraction+").contractions().expand()}if(r.delete(s),i){let t=r.docs[0],e=t[t.length-1];e.tags.has("Possessive")||(e.text+="'s",e.normal+="'s",e.tags.add("Possessive"))}let a=r.toView(n).compute(["index","freeze","lexicon"]);return a.world.compute.preTagger&&a.compute("preTagger"),a.compute("unfreeze"),e.tags&&a.terms().forEach(((t,e)=>{t.tagSafe(l[e])})),e.case&&a.docs[0]&&a.docs[0][0]&&0===a.docs[0][0].index[1]&&(a.docs[0][0].text=a.docs[0][0].text.replace(/\w\S*/g,(t=>t.charAt(0).toUpperCase()+t.substring(1).toLowerCase()))),a},z.replace=function(t,e,n){if(t&&!e)return this.replaceWith(t,n);let r=this.match(t);return r.found?(this.soften(),r.replaceWith(e,n)):this};const A={remove:function(t){const{indexN:e}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;t&&(n=this,r=this.match(t));let o=!n.ptrs;if(r.has("@hasContraction")&&r.contractions){r.grow("@hasContraction").contractions().expand()}let i=n.fullPointer,s=r.fullPointer.reverse(),l=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}(this.document,s);return i=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})),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)))}(i,e(s)),n.ptrs=i,n.document=l,n.compute("index"),o&&(n.ptrs=void 0),t?n.toView(i):(this.ptrs=[],n.none())}};A.delete=A.remove;const $={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}};$.deHyphenate=$.dehyphenate,$.toQuotation=$.toQuotations;var T={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 C=new Set(["index","sequence","seq","sequential","chron","chronological"]),N=new Set(["freq","frequency","topk","repeats"]),L=new Set(["alpha","alphabetical"]);var V={unique:function(){let t=new Set;return this.filter((e=>{let n=e.text("machine");return!t.has(n)&&(t.add(n),!0)}))},reverse:function(){let t=this.pointer||this.docs.map(((t,e)=>[e]));return t=[].concat(t),t=t.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(t)},sort:function(t){let{docs:e,pointer:n}=this;if(this.uncache(),"function"==typeof t)return function(t,e){let n=t.fullPointer;return n=n.sort(((n,r)=>(n=t.update([n]),r=t.update([r]),e(n,r)))),t.ptrs=n,t}(this,t);t=t||"alpha";let r=n||e.map(((t,e)=>[e])),o=e.map(((t,e)=>({index:e,words:t.length,normal:t.map((t=>t.machine||t.normal||"")).join(" "),pointer:r[e]})));return C.has(t)&&(t="sequential"),L.has(t)&&(t="alpha"),N.has(t)?(o=T.byFreq(o),this.update(o.map((t=>t.pointer)))):"function"==typeof T[t]?(o=o.sort(T[t]),this.update(o.map((t=>t.pointer)))):this}};const F=function(t,e){if(t.length>0){let e=t[t.length-1],n=e[e.length-1];!1===/ /.test(n.post)&&(n.post+=" ")}return t=t.concat(e)};var q={concat:function(t){if("string"==typeof t){let e=this.fromText(t);if(this.found&&this.ptrs){let t=this.fullPointer,n=t[t.length-1][0];this.document.splice(n,0,...e.document)}else this.document=this.document.concat(e.document);return this.all().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=F(t.document,e.docs),t.all()}(this,t);if(e=t,"[object Array]"===Object.prototype.toString.call(e)){let e=F(this.document,t);return this.document=e,this.all()}var e;return this}};var G={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 D=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,A,$,V,q,G),B={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))),n[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))},R=/'/,Q=new Set(["what","how","when","where","why"]),H=new Set(["be","go","start","think","need"]),Z=new Set(["been","gone"]),K=/'/,J=/(e|รฉ|aison|sion|tion)$/,X=/(age|isme|acle|ege|oire)$/;var Y=(t,e)=>["je",t[e].normal.split(K)[1]],tt=(t,e)=>{let n=t[e].normal.split(K)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},et=(t,e)=>{let n=t[e].normal.split(K)[1];return n&&J.test(n)&&!X.test(n)?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const nt=/^([0-9.]{1,4}[a-z]{0,2}) ?[-โ€“โ€”] ?([0-9]{1,4}[a-z]{0,2})$/i,rt=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-โ€“โ€”] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,ot=/^[0-9]{3}-[0-9]{4}$/,it=function(t,e){let n=t[e],r=n.text.match(nt);return null!==r?!0===n.tags.has("PhoneNumber")||ot.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(rt),null!==r?[r[1],"to",r[4]]:null)},st=/^([+-]?[0-9][.,0-9]*)([a-zยฐยฒยณยต/]+)$/,lt=function(t,e,n){const r=n.model.one.numberSuffixes||{};let o=t[e].text.match(st);if(null!==o){let t=o[2].toLowerCase().trim();return r.hasOwnProperty(t)?null:[o[1],t]}return null},at=/'/,ut=/^[0-9][^-โ€“โ€”]*[-โ€“โ€”].*?[0-9]/,ct=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]]},ht={t:(t,e)=>function(t,e){return"ain't"===t[e].normal||"aint"===t[e].normal?null:[t[e].normal.replace(/n't/,""),"not"]}(t,e),d:(t,e)=>function(t,e){let n=t[e].normal.split(R)[0];if(Q.has(n))return[n,"did"];if(t[e+1]){if(Z.has(t[e+1].normal))return[n,"had"];if(H.has(t[e+1].normal))return[n,"would"]}return null}(t,e)},ft={j:(t,e)=>Y(t,e),l:(t,e)=>tt(t,e),d:(t,e)=>et(t,e)},pt=function(t,e,n,r){for(let o=0;o2)return i.out.concat(r)}return null},dt=function(t,e){let n=e.fromText(t.join(" "));return n.compute(["id","alias"]),n.docs[0]},mt=function(t,e){for(let n=e+1;n<5&&t[n];n+=1)if("been"===t[n].normal)return["there","has"];return["there","is"]};var gt={contractions:t=>{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,u=null;if(!0===at.test(r[l].normal)){let t=r[l].normal.split(at);a=t[0],u=t[1]}let c=pt(i,r[l],a,u);!c&&ht.hasOwnProperty(u)&&(c=ht[u](r,l,e)),!c&&ft.hasOwnProperty(a)&&(c=ft[a](r,l)),"there"===a&&"s"===u&&(c=mt(r,l)),c?(c=dt(c,t),I(n,[s,l],c),ct(n[s],t,l,c.length)):ut.test(r[l].normal)?(c=it(r,l),c&&(c=dt(c,t),I(n,[s,l],c),o.one.setTag(c,"NumberRange",e),c[2]&&c[2].tags.has("Time")&&o.one.setTag([c[0]],"Time",e,null,"time-range"),ct(n[s],t,l,c.length))):(c=lt(r,l,e),c&&(c=dt(c,t),I(n,[s,l],c),o.one.setTag([c[1]],"Unit",e,null,"contraction-unit")))}}))}};const wt={model:W,compute:gt,hooks:["contractions"]},bt=function(t){const e=t.world,{model:n,methods:r}=t.world,o=r.one.setTag,{frozenLex:i}=n.one,s=n.one._multiCache||{};t.docs.forEach((t=>{for(let n=0;nn;r-=1){let s=t.slice(n,r+1),l=s.map((t=>t.machine||t.normal)).join(" ");!0!==i.hasOwnProperty(l)||(o(s,i[l],e,!1,"1-frozen-multi-lexicon"),s.forEach((t=>t.frozen=!0)))}}void 0!==i[l]&&i.hasOwnProperty(l)&&(o([r],i[l],e,!1,"1-freeze-lexicon"),r.frozen=!0)}}))};const yt=t=>""+t+"",vt=t=>""+t+"",xt=function(t){t.docs.forEach((t=>{console.log(yt("\n โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€")),t.forEach((t=>{let e=` ${vt("โ”‚")} `,n=t.implicit||t.text||"-";!0===t.frozen?e+=`${yt(n)} โ„๏ธ`:e+=vt(n),console.log(e)}))}))};var jt={compute:{frozen:bt,freeze:bt,unfreeze:function(t){return t.docs.forEach((t=>{t.forEach((t=>{delete t.frozen}))})),t}},mutate:t=>{const e=t.methods.one;e.termMethods.isFrozen=t=>!0===t.frozen,e.debug.freeze=xt,e.debug.frozen=xt},api:function(t){t.prototype.freeze=function(){return this.docs.forEach((t=>{t.forEach((t=>{t.frozen=!0}))})),this},t.prototype.unfreeze=function(){this.compute("unfreeze")},t.prototype.isFrozen=function(){return this.match("@isFrozen+")}},hooks:["freeze"]};const Et=function(t,e,n){const{model:r,methods:o}=n,i=o.one.setTag,s=r.one._multiCache||{},{lexicon:l}=r.one||{};let a=t[e],u=a.machine||a.normal;if(void 0!==s[u]&&t[e+1]){for(let r=e+s[u]-1;r>e;r-=1){let o=t.slice(e,r+1);if(o.length<=1)return!1;let s=o.map((t=>t.machine||t.normal)).join(" ");if(!0===l.hasOwnProperty(s)){let t=l[s];return i(o,t,n,!1,"1-multi-lexicon"),!t||2!==t.length||"PhrasalVerb"!==t[0]&&"PhrasalVerb"!==t[1]||i([o[1]],"Particle",n,!1,"1-phrasal-particle"),!0}}return!1}return null},Ot=/^(under|over|mis|re|un|dis|semi|pre|post)-?/,kt=new Set(["Verb","Infinitive","PastTense","Gerund","PresentTense","Adjective","Participle"]),Pt=function(t,e,n){const{model:r,methods:o}=n,i=o.one.setTag,{lexicon:s}=r.one;let l=t[e],a=l.machine||l.normal;if(void 0!==s[a]&&s.hasOwnProperty(a))return i([l],s[a],n,!1,"1-lexicon"),!0;if(l.alias){let t=l.alias.find((t=>s.hasOwnProperty(t)));if(t)return i([l],s[t],n,!1,"1-lexicon-alias"),!0}if(!0===Ot.test(a)){let t=a.replace(Ot,"");if(s.hasOwnProperty(t)&&t.length>3&&kt.has(s[t]))return i([l],s[t],n,!1,"1-lexicon-prefix"),!0}return null};var _t={lexicon:function(t){const e=t.world;t.docs.forEach((t=>{for(let n=0;n{let o=t[r],i=(r=(r=r.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);i.length>1&&(void 0===n[i[0]]||i.length>n[i[0]])&&(n[i[0]]=i.length),e[r]=e[r]||o})),delete e[""],delete e.null,delete e[" "],{lex:e,_multi:n}}}};var zt={addWords:function(t,e=!1){const n=this.world(),{methods:r,model:o}=n;if(!t)return;if(Object.keys(t).forEach((e=>{"string"==typeof t[e]&&t[e].startsWith("#")&&(t[e]=t[e].replace(/^#/,""))})),!0===e){let{lex:e,_multi:i}=r.one.expandLexicon(t,n);return Object.assign(o.one._multiCache,i),void Object.assign(o.one.frozenLex,e)}if(r.two.expandLexicon){let{lex:e,_multi:i}=r.two.expandLexicon(t,n);Object.assign(o.one.lexicon,e),Object.assign(o.one._multiCache,i)}let{lex:i,_multi:s}=r.one.expandLexicon(t,n);Object.assign(o.one.lexicon,i),Object.assign(o.one._multiCache,s)}};var At={model:{one:{lexicon:{},_multiCache:{},frozenLex:{}}},methods:St,compute:_t,lib:zt,hooks:["lexicon"]};const $t=function(t,e){let n=[{}],r=[null],o=[0],i=[],s=0;t.forEach((function(t){let o=0,i=function(t,e){const{methods:n,model:r}=e;let o=n.one.tokenize.splitTerms(t,r).map((t=>n.one.tokenize.splitWhitespace(t,r)));return o.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[u]=t,r[t]&&(r[u]=r[u]||[],r[u]=r[u].concat(r[t]))}else o[u]=0}}return{goNext:n,endAs:r,failTo:o}},Tt=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;e{for(let n=t.length-1;n>=0;n-=1)if(t[n]!==e)return t=t.slice(0,n+1);return t},Lt={buildTrie:function(t){return function(t){return t.goNext=t.goNext.map((t=>{if(0!==Object.keys(t).length)return t})),t.goNext=Nt(t.goNext,void 0),t.failTo=Nt(t.failTo,0),t.endAs=Nt(t.endAs,null),t}($t(t,this.world()))}};Lt.compile=Lt.buildTrie;var Vt={api:function(t){t.prototype.lookup=function(t,e={}){if(!t)return this.none();var n;"string"==typeof t&&(t=[t]);let r=function(t,e,n){let r=[];n.form=n.form||"normal";let o=t.docs;if(!e.goNext||!e.goNext[0])return console.error("Compromise invalid lookup trie"),t.none();let i=Object.keys(e.goNext[0]);for(let s=0;s0&&(r=r.concat(a))}return t.update(r)}(this,(n=t,"[object Object]"===Object.prototype.toString.call(n)?t:$t(t,this.world)),e);return r=r.settle(),r}},lib:Lt};const Ft=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},qt=function(t,e){let{ptrs:n,byGroup:r}=t;return n=Ft(n,e),Object.keys(r).forEach((t=>{r[t]=Ft(r[t],e)})),{ptrs:n,byGroup:r}},Gt=function(t,e,n){const r=n.methods.one;return"number"==typeof t&&(t=String(t)),"string"==typeof t&&(t=r.killUnicode(t,n),t=r.parseMatch(t,e,n)),t},Dt=t=>"[object Object]"===Object.prototype.toString.call(t),Bt=t=>t&&Dt(t)&&!0===t.isView,Mt=t=>t&&Dt(t)&&!0===t.isNet;var Ut={matchOne:function(t,e,n){const r=this.methods.one;if(Bt(t))return this.intersection(t).eq(0);if(Mt(t))return this.sweep(t,{tagger:!1,matchOne:!0}).view;let o={regs:t=Gt(t,n,this.world),group:e,justOne:!0},i=r.match(this.docs,o,this._cache),{ptrs:s,byGroup:l}=qt(i,this.fullPointer),a=this.toView(s);return a._groups=l,a},match:function(t,e,n){const r=this.methods.one;if(Bt(t))return this.intersection(t);if(Mt(t))return this.sweep(t,{tagger:!1}).view.settle();let o={regs:t=Gt(t,n,this.world),group:e},i=r.match(this.docs,o,this._cache),{ptrs:s,byGroup:l}=qt(i,this.fullPointer),a=this.toView(s);return a._groups=l,a},has:function(t,e,n){const r=this.methods.one;if(Bt(t)){return this.intersection(t).fullPointer.length>0}if(Mt(t))return this.sweep(t,{tagger:!1}).view.found;let o={regs:t=Gt(t,n,this.world),group:e,justOne:!0};return r.match(this.docs,o,this._cache).ptrs.length>0},if:function(t,e,n){const r=this.methods.one;if(Bt(t))return this.filter((e=>e.intersection(t).found));if(Mt(t)){let e=this.sweep(t,{tagger:!1}).view.settle();return this.if(e)}let o={regs:t=Gt(t,n,this.world),group:e,justOne:!0},i=this.fullPointer,s=this._cache||[];i=i.filter(((t,e)=>{let n=this.update([t]);return r.match(n.docs,o,s[e]).ptrs.length>0}));let l=this.update(i);return this._cache&&(l._cache=i.map((t=>s[t[0]]))),l},ifNo:function(t,e,n){const{methods:r}=this,o=r.one;if(Bt(t))return this.filter((e=>!e.intersection(t).found));if(Mt(t)){let e=this.sweep(t,{tagger:!1}).view.settle();return this.ifNo(e)}t=Gt(t,n,this.world);let i=this._cache||[],s=this.filter(((n,r)=>{let s={regs:t,group:e,justOne:!0};return 0===o.match(n.docs,s,i[r]).ptrs.length}));return this._cache&&(s._cache=s.ptrs.map((t=>i[t[0]]))),s}};var Wt={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 It=function(t,e){return[t[0],t[1],e[2]]},Rt=(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},Qt=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},Ht={splitOn:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=Rt(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=>Qt(t,this))),this.update(i)},splitBefore:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=Rt(t,this,e).fullPointer,o=n(this.fullPointer,r);for(let t=0;t{i.push(t.passthrough),i.push(t.before),t.match&&t.after?i.push(It(t.match,t.after)):i.push(t.match)})),i=i.filter((t=>t)),i=i.map((t=>Qt(t,this))),this.update(i)},splitAfter:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=Rt(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach((t=>{i.push(t.passthrough),t.before&&t.match?i.push(It(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=>Qt(t,this))),this.update(i)}};Ht.split=Ht.splitAfter;const Zt=function(t,e){return!(!t||!e)&&(t[0]===e[0]&&t[2]===e[1])},Kt=function(t,e,n){const r=t.world,o=r.methods.one.parseMatch;n=n||"^.";let i=o(e=e||".$",{},r),s=o(n,{},r);i[i.length-1].end=!0,s[0].start=!0;let l=t.fullPointer,a=[l[0]];for(let e=1;e)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,te=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,ee=/ /g,ne=t=>/^[![^]*(<[^<]*>)?\//.test(t)&&/\/[?\]+*$~]*$/.test(t),re=function(t){return t=(t=t.map((t=>t.trim()))).filter((t=>t))},oe=/\{([0-9]+)?(, *[0-9]*)?\}/,ie=/&&/,se=new RegExp(/^<\s*(\S+)\s*>/),le=t=>t.charAt(0).toUpperCase()+t.substring(1),ae=t=>t.charAt(t.length-1),ue=t=>t.charAt(0),ce=t=>t.substring(1),he=t=>t.substring(0,t.length-1),fe=function(t){return t=ce(t),t=he(t)},pe=function(t,e){let n={};for(let r=0;r<2;r+=1){if("$"===ae(t)&&(n.end=!0,t=he(t)),"^"===ue(t)&&(n.start=!0,t=ce(t)),"?"===ae(t)&&(n.optional=!0,t=he(t)),("["===ue(t)||"]"===ae(t))&&(n.group=null,"["===ue(t)&&(n.groupStart=!0),"]"===ae(t)&&(n.groupEnd=!0),t=(t=t.replace(/^\[/,"")).replace(/\]$/,""),"<"===ue(t))){const e=se.exec(t);e.length>=2&&(n.group=e[1],t=t.replace(e[0],""))}if("+"===ae(t)&&(n.greedy=!0,t=he(t)),"*"!==t&&"*"===ae(t)&&"\\*"!==t&&(n.greedy=!0,t=he(t)),"!"===ue(t)&&(n.negative=!0,t=ce(t)),"~"===ue(t)&&"~"===ae(t)&&t.length>2&&(t=fe(t),n.fuzzy=!0,n.min=e.fuzzy||.85,!1===/\(/.test(t)))return n.word=t,n;if("/"===ue(t)&&"/"===ae(t))return t=fe(t),e.caseSensitive&&(n.use="text"),n.regex=new RegExp(t),n;if(!0===oe.test(t)&&(t=t.replace(oe,((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),"")))),"("===ue(t)&&")"===ae(t)){ie.test(t)?(n.choices=t.split(ie),n.operator="and"):(n.choices=t.split("|"),n.operator="or"),n.choices[0]=ce(n.choices[0]);let r=n.choices.length-1;n.choices[r]=he(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=>pe(t,e))))),t=""}if("{"===ue(t)&&"}"===ae(t)){if(t=fe(t),n.root=t,/\//.test(t)){let t=n.root.split(/\//);n.root=t[0],n.pos=t[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==t[2]&&(n.sense=t[2])}return n}if("<"===ue(t)&&">"===ae(t))return t=fe(t),n.chunk=le(t),n.greedy=!0,n;if("%"===ue(t)&&"%"===ae(t))return t=fe(t),n.switch=t,n}return"#"===ue(t)?(n.tag=ce(t),n.tag=le(n.tag),n):"@"===ue(t)?(n.method=ce(t),n):"."===t?(n.anything=!0,n):"*"===t?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(t&&(t=(t=t.replace("\\*","*")).replace("\\.","."),e.caseSensitive?n.use="text":t=t.toLowerCase(),n.word=t),n)},de=/[a-z0-9][-โ€“โ€”][a-z]/i,me=function(t,e){let{all:n}=e.methods.two.transform.verb||{},r=t.root;return n?n(r,e.model):[]},ge=function(t,e){let{all:n}=e.methods.two.transform.noun||{};return n?n(t.root,e.model):[t.root]},we=function(t,e){let{all:n}=e.methods.two.transform.adjective||{};return n?n(t.root,e.model):[t.root]},be=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}))),t},ye=function(t,e){for(let n of e)if(t.has(n))return!0;return!1},ve=function(t,e){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(o||100))return o||100;let i,s,l,a,u,c,h=[];for(let t=0;t4)return n;l=e[i-1],a=s===l?0:1,u=h[o-1][i]+1,(c=h[o][i-1]+1)1&&i>1&&s===e[i-2]&&t[o-2]===l&&(c=h[o-2][i-2]+a)-1!==t.post.indexOf(e),_e={hasQuote:t=>je.test(t.pre)||Ee.test(t.post),hasComma:t=>Pe(t,","),hasPeriod:t=>!0===Pe(t,".")&&!1===Pe(t,"..."),hasExclamation:t=>Pe(t,"!"),hasQuestionMark:t=>Pe(t,"?")||Pe(t,"ยฟ"),hasEllipses:t=>Pe(t,"..")||Pe(t,"โ€ฆ"),hasSemicolon:t=>Pe(t,";"),hasColon:t=>Pe(t,":"),hasSlash:t=>/\//.test(t.text),hasHyphen:t=>Oe.test(t.post)||Oe.test(t.pre),hasDash:t=>ke.test(t.post)||ke.test(t.pre),hasContraction:t=>Boolean(t.implicit),isAcronym:t=>t.tags.has("Acronym"),isKnown:t=>t.tags.size>0,isTitleCase:t=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(t.text),isUpperCase:t=>/^\p{Lu}+$/u.test(t.text)};_e.hasQuotation=_e.hasQuote;let Se=function(){};Se=function(t,e,n,r){let o=function(t,e,n,r){if(!0===e.anything)return!0;if(!0===e.start&&0!==n)return!1;if(!0===e.end&&n!==r-1)return!1;if(void 0!==e.id&&e.id===t.id)return!0;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(xe(e.word,t.normal)>=e.min)return!0}return!(!t.alias||!t.alias.some((t=>t===e.word)))||e.word===t.text||e.word===t.normal}if(void 0!==e.tag)return!0===t.tags.has(e.tag);if(void 0!==e.method)return"function"==typeof _e[e.method]&&!0===_e[e.method](t);if(void 0!==e.pre)return t.pre&&t.pre.includes(e.pre);if(void 0!==e.post)return t.post&&t.post.includes(e.post);if(void 0!==e.regex){let n=t.normal;return e.use&&(n=t[e.use]),e.regex.test(n)}if(void 0!==e.chunk)return t.chunk===e.chunk;if(void 0!==e.switch)return t.switch===e.switch;if(void 0!==e.machine)return t.normal===e.machine||t.machine===e.machine||t.root===e.machine;if(void 0!==e.sense)return t.sense===e.sense;if(void 0!==e.fastOr){if(e.pos&&!t.tags.has(e.pos))return null;let n=t.root||t.implicit||t.machine||t.normal;return e.fastOr.has(n)||e.fastOr.has(t.text)}return void 0!==e.choices&&("and"===e.operator?e.choices.every((e=>Se(t,e,n,r))):e.choices.some((e=>Se(t,e,n,r))))}(t,e,n,r);return!0===e.negative?!o:o};const ze=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){Ae(t,t.t).length=r-t.t}return t.t=r,!0},Te=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=Se(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]&&Se(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){Ae(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},Le=function(t){const{regs:e}=t;let n=e[t.r],r=Object.assign({},n);if(r.negative=!1,Se(t.terms[t.t],r,t.start_i+t.t,t.phrase_length))return!1;if(n.optional){let n=e[t.r+1];if(n){if(Se(t.terms[t.t],n,t.start_i+t.t,t.phrase_length))t.r+=1;else if(n.optional&&e[t.r+2]){Se(t.terms[t.t],e[t.r+2],t.start_i+t.t,t.phrase_length)&&(t.r+=2)}}}return n.greedy?function(t,e,n){let r=0;for(let o=t.t;or||(t.t+=r,0))}(t,r,e[t.r+1]):(t.t+=1,!0)},Ve=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},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]&&function(t){const{regs:e}=t;let n=e[t.r],r=t.terms[t.t],o=Se(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&&Se(n,e[t.r+1],t.start_i+t.t,t.phrase_length)||(t.r+=1)}}(t),r.implicit&&t.terms[t.t+1]&&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)}}(t),t.t+=1,!0===n.end&&t.t!==t.terms.length&&!0!==n.greedy)return null;if(!0===n.greedy){if(!Ve(t))return null}return!0===t.hasGroup&&function(t,e){let n=t.regs[t.r];const r=Ae(t,e);t.t>1&&n.greedy?r.length+=t.t-e:r.length++}(t,o),!0},qe=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!==ze(t,o))if(t.negative){if(!Le(o))return null}else if(!0!==Se(o.terms[o.t],t,o.start_i+o.t,o.phrase_length)){if(!0!==t.optional)return null}else{if(!Fe(o))return null}else{if(!Fe(o))return null}else{if(t.negative&&t.anything)return null;if(!Fe(o))return null}else{if(!Ne(o))return null}else{if(!Ce(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}},Ge=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=qe(t,e,0,t.length);return r?(r=Ge(r,n),r):null},Be={one:{termMethods:_e,parseMatch:function(t,e,n){if(null==t||""===t)return[];e=e||{},"number"==typeof t&&(t=String(t));let r=function(t){let e=t.split(Yt),n=[];e.forEach((t=>{ne(t)?n.push(t):n=n.concat(t.split(te))})),n=re(n);let r=[];return n.forEach((t=>{(t=>/^[![^]*(<[^<]*>)?\(/.test(t)&&/\)[?\]+*$~]*$/.test(t))(t)||ne(t)?r.push(t):r=r.concat(t.split(ee))})),r=re(r),r}(t);return r=r.map((t=>pe(t,e))),r=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&&de.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}(r,n),r=function(t,e){return t.map((t=>{if(t.root)if(e.methods.two&&e.methods.two.transform){let n=[];t.pos?"Verb"===t.pos?n=n.concat(me(t,e)):"Noun"===t.pos?n=n.concat(ge(t,e)):"Adjective"===t.pos&&(n=n.concat(we(t,e))):(n=n.concat(me(t,e)),n=n.concat(ge(t,e)),n=n.concat(we(t,e))),n=n.filter((t=>t)),n.length>0&&(t.operator="or",t.fastOr=new Set(n))}else t.machine=t.root,delete t.id,delete t.root;return t}))}(r,n),r=be(r),r},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]}))),e.notIf&&(s=function(t,e,n){return t=t.filter((t=>{let[r,o,i]=t.pointer,s=n[r].slice(o,i);for(let t=0;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}}(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}}};var Me={api:function(t){Object.assign(t.prototype,Xt)},methods:Be,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 Ue=/^\../,We=/^#./,Ie=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,"'"),Ue.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 Re={html:function(t){let{starts:e,ends:n}=Ie(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(He,""),Ke.test(o)&&(o=" "),o=o.replace(Ze,""),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(He,""),o="-"===o?" ":o.replace(Qe,""));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&&Je.test(o)||(o+=" "),r+=n+i+o})),!1===n&&(r=r.trim()),!0===e.lowerCase&&(r=r.toLowerCase()),r},Ye={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{keepSpace:!1,whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{keepSpace:!1,whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};Ye.clean=Ye.normal,Ye.reduced=Ye.root;let tn=[],en=0;for(;en<64;)tn[en]=0|4294967296*Math.sin(++en%Math.PI);const nn=function(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(en=s=0;en>4]+tn[s]+~~i[en|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},rn={text:!0,terms:!0};let on={case:"none",unicode:"some",form:"machine",punctuation:"some"};const sn=function(t,e){return Object.assign({},t,e)},ln={text:t=>Xe(t,{keepPunct:!0},!1),normal:t=>Xe(t,sn(Ye.normal,{keepPunct:!0}),!1),implicit:t=>Xe(t,sn(Ye.implicit,{keepPunct:!0}),!1),machine:t=>Xe(t,on,!1),root:t=>Xe(t,sn(on,{form:"root"}),!1),hash:t=>nn(Xe(t,{keepPunct:!0},!1)),offset:t=>{let e=ln.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))};ln.sentences=ln.sentence,ln.clean=ln.normal,ln.reduced=ln.root;const an={json:function(t){let e=(n=this,"string"==typeof(r=(r=t)||{})&&(r={}),(r=Object.assign({},rn,r)).offset&&n.compute("offset"),n.docs.map(((t,e)=>{let o={};return Object.keys(r).forEach((i=>{r[i]&&ln[i]&&(o[i]=ln[i](t,n,e))})),o})));var n,r;return"number"==typeof t?e[t]:e}};an.data=an.json;const un=function(t){let e=t.pre||"",n=t.post||"";return e+t.text+n},cn=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()));return t.filter((t=>t))}if("freq"===t||"frequency"===t||"topk"===t)return function(t){let e={};t.forEach((t=>{e[t]=e[t]||0,e[t]+=1}));let n=Object.keys(e).map((t=>({normal:t,count:e[t]})));return n.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.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()},wrap:function(t){return cn(this,t)}};var fn={text:function(t){let e={};var n;if(t&&"string"==typeof t&&Ye.hasOwnProperty(t)?e=Object.assign({},Ye[t]):t&&(n=t,"[object Object]"===Object.prototype.toString.call(n))&&(e=Object.assign({},t)),void 0!==e.keepSpace||this.isFull()||(e.keepSpace=!1),void 0===e.keepEndPunct&&this.pointer){let t=this.pointer[0];t&&t[1]?e.keepEndPunct=!1:e.keepEndPunct=!0}return void 0===e.keepPunct&&(e.keepPunct=!0),void 0===e.keepSpace&&(e.keepSpace=!0),function(t,e){let n="";if(!t||!t[0]||!t[0][0])return n;for(let r=0;r""+t+dn,red:t=>""+t+dn,blue:t=>""+t+dn,magenta:t=>""+t+dn,cyan:t=>""+t+dn,yellow:t=>""+t+dn,black:t=>""+t+dn,dim:t=>""+t+dn,i:t=>""+t+dn},gn={tags:function(t){let{docs:e,model:n}=t;0===e.length&&console.log(mn.blue("\n โ”€โ”€โ”€โ”€โ”€โ”€")),e.forEach((e=>{console.log(mn.blue("\n โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€")),e.forEach((e=>{let r=[...e.tags||[]],o=e.text||"-";e.sense&&(o=`{${e.normal}/${e.sense}}`),e.implicit&&(o="["+e.implicit+"]"),o=mn.yellow(o);let i="'"+o+"'";if(e.reference){let n=t.update([e.reference]).text("normal");i+=` - ${mn.dim(mn.i("["+n+"]"))}`}i=i.padEnd(18);let s=mn.blue(" โ”‚ ")+mn.i(i)+" - "+function(t,e){return e.one.tagSet&&(t=t.map((t=>{if(!e.one.tagSet.hasOwnProperty(t))return t;const n=e.one.tagSet[t].color||"blue";return mn[n](t)}))),t.join(", ")}(r,n);console.log(s)}))})),console.log("\n")},clientSide: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()}))},chunks:function(t){let{docs:e}=t;console.log(""),e.forEach((t=>{let e=[];t.forEach((t=>{"Noun"===t.chunk?e.push(mn.blue(t.implicit||t.normal)):"Verb"===t.chunk?e.push(mn.green(t.implicit||t.normal)):"Adjective"===t.chunk?e.push(mn.yellow(t.implicit||t.normal)):"Pivot"===t.chunk?e.push(mn.red(t.implicit||t.normal)):e.push(t.implicit||t.normal)})),console.log(e.join(" "),"\n")})),console.log("\n")},highlight:function(t){if(!t.found)return;let e={};t.fullPointer.forEach((t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)})),Object.keys(e).forEach((n=>{let r=t.update([[Number(n)]]).text();t.update(e[n]).json({offset:!0}).forEach(((t,e)=>{r=function(t,e,n){let r=((t,e,n)=>{let r=9*n,o=e.start+r,i=o+e.length;return[t.substring(0,o),t.substring(o,i),t.substring(i,t.length)]})(t,e,n);return`${r[0]}${mn.blue(r[1])}${r[2]}`}(r,t.offset,e)})),console.log(r)})),console.log("\n")}};var wn={api:function(t){Object.assign(t.prototype,pn)},methods:{one:{hash:nn,debug:gn}}};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},yn=function(t){let e={};return t.forEach((t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)})),e},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 xn={one:{termList:function(t){let e=[];for(let n=0;n{if(!r)return;let[i,s,l,a,u]=r,c=e[i]||[];if(void 0===s&&(s=0),void 0===l&&(l=c.length),!a||c[s]&&c[s].id===a)c=c.slice(s,l);else{let n=function(t,e,n){for(let r=0;r<20;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;c=e[n[0]].slice(n[1],n[1]+r);let i=c[0]?c[0].id:null;t[o]=[n[0],n[1],n[1]+r,i]}}0!==c.length&&s!==l&&(u&&c[c.length-1].id!==u&&(c=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(c))})),n=n.filter((t=>t.length>0)),n},pointer:{indexN:yn,splitAll:vn}}};const jn=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=>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},On=(t,e)=>{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=jn(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=function(t,e){let n=yn(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{t=jn(t,[e])})),t=kn(t,this.document),this.update(t)};var _n={methods:xn,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},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.notIf&&(t.notIf=n(t.notIf,{},e)),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 An={buildNet:function(t,e){t=zn(t,e);let n={};t.forEach((t=>{t.needs.forEach((e=>{n[e]=Array.isArray(n[e])?n[e]:[],n[e].push(t)})),t.wants.forEach((e=>{n[e]=Array.isArray(n[e])?n[e]:[],n[e].push(t)}))})),Object.keys(n).forEach((t=>{let e={};n[t]=n[t].filter((t=>"boolean"!=typeof 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=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=>"boolean"!=typeof i[t.match]&&(i[t.match]=!0,!0))),o}))}(o,e.hooks);i=function(t,e){return t.map(((t,n)=>{let r=e[n];return(t=(t=t.filter((t=>t.needs.every((t=>r.has(t)))))).filter((t=>void 0===t.ifNo||!0!==t.ifNo.some((t=>r.has(t)))))).filter((t=>0===t.wants.length||t.wants.filter((t=>r.has(t))).length>=t.minWant))}))}(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=t.filter((t=>r>=t.minWords)),t}))}(i,t);let s=function(t,e,n,r,o){let i=[];for(let n=0;n0&&(a.ptrs.forEach((t=>{t[0]=n;let e=Object.assign({},l,{pointer:t});void 0!==l.unTag&&(e.unTag=l.unTag),i.push(e)})),!0===o.matchOne))return[i[0]]}return i}(i,t,0,n,r);return s},bulkTagger:function(t,e,n){const{model:r,methods:o}=n,{getDoc:i,setTag:s,unTag:l}=o.one,a=o.two.looksPlural;if(0===t.length)return t;return("undefined"!=typeof process&&process.env?process.env:self.env||{}).DEBUG_TAGS&&console.log(`\n\n โ†’ ${t.length} post-tagger:`),t.map((t=>{if(!t.tag&&!t.chunk&&!t.unTag)return;let o=t.reason||t.match,u=i([t.pointer],e)[0];if(!0===t.safe){if(!1===function(t,e,n){let r=n.one.tagSet;if(!r.hasOwnProperty(e))return!0;let o=r[e].not||[];for(let e=0;et.frozen=!0))}void 0!==t.unTag&&l(u,t.unTag,n,t.safe,o),t.chunk&&u.forEach((e=>e.chunk=t.chunk))}))}},$n={lib:{buildNet:function(t){let e=this.methods().one.buildNet(t,this.world());return e.isNet=!0,e}},api:function(t){t.prototype.sweep=function(t,e={}){const{world:n,docs:r}=this,{methods:o}=n;let i=o.one.bulkMatch(r,t,this.methods,e);!1!==e.tagger&&o.one.bulkTagger(i,r,this.world),i=i.map((t=>{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:An}};const Tn=/ /,Cn=function(t,e){"Noun"===e&&(t.chunk=e),"Verb"===e&&(t.chunk=e)},Nn=function(t,e,n,r){if(!0===t.tags.has(e))return null;if("."===e)return null;!0===t.frozen&&(r=!0);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("string"==typeof e)if(e=e.trim(),Tn.test(e))!function(t,e,n,r){let o=e.split(Tn);t.forEach(((t,e)=>{let i=o[e];i&&(i=i.replace(/^#/,""),Nn(t,i,n,r))}))}(t,e,i,r);else{e=e.replace(/^#/,"");for(let n=0;nLn(t,e,n,r)))},Vn=function(t){return t.children=t.children||[],t._cache=t._cache||{},t.props=t.props||{},t._cache.parents=t._cache.parents||[],t._cache.children=t._cache.children||[],t},Fn=/^ *(#|\/\/)/,qn=function(t){let e=t.trim().split(/->/),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=>Vn({id:t}))),e}return[Vn({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},Dn=t=>"[object Array]"===Object.prototype.toString.call(t),Bn=t=>(t=t||"").trim(),Mn=function(t=[]){return"string"==typeof t?function(t){let e=t.split(/\r?\n/),n=[];e.forEach((t=>{if(!t.trim()||Fn.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=Vn({});return t.forEach((t=>{if((t=Vn(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):(Gn(e=t).forEach(Vn),e);var e},Un=function(t,e){let n="-> ";e&&(n=(t=>""+t+"")("โ†’ "));let r="";return Gn(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},Wn=function(t){let e=Gn(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},In={text:Un,txt:Un,array:Wn,flat:Wn},Rn=function(t,e){return"nested"===e||"json"===e?t:"debug"===e?(console.log(Un(t,!0)),null):In.hasOwnProperty(e)?In[e](t):t},Qn=t=>{Gn(t,((t,e)=>{t.id&&(t._cache.parents=t._cache.parents||[],e._cache.parents=t._cache.parents.concat([t.id]))}))},Hn=/\//;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=Bn(t),!Hn.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)||Vn({});return new g(e)}add(t,e={}){if(Dn(t))return t.forEach((t=>this.add(Bn(t),e))),this;t=Bn(t);let n=Vn({id:t,props:e});return this.json.children.push(n),new g(n)}remove(t){return t=Bn(t),this.json.children=this.json.children.filter((e=>e.id!==t)),this}nodes(){return Gn(this.json).map((t=>(delete(t=Object.assign({},t)).children,t)))}cache(){return(t=>{let e=Gn(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 Gn(this.json)}fillDown(){var t;return t=this.json,Gn(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 Dn(e[n])?t[n]=e[n].concat(t[n]||[]):void 0===t[n]&&(t[n]=e[n])})),t))(e.props,t.props)})),this}depth(){Qn(this.json);let t=Gn(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 Qn(this.json),Rn(this.json,t)}debug(){return Qn(this.json),Rn(this.json,"debug"),this}}const Zn=function(t){let e=Mn(t);return new g(e)};Zn.prototype.plugin=function(t){t(this)};const Kn={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Hyphenated:"cyan",Adverb:"cyan"},Jn=function(t){if(Kn.hasOwnProperty(t.id))return Kn[t.id];if(Kn.hasOwnProperty(t.is))return Kn[t.is];let e=t._cache.parents.find((t=>Kn[t]));return Kn[e]},Xn=function(t){return t?"string"==typeof t?[t]:t:[]},Yn=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=Xn(t[e].children),t[e].not=Xn(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 tr={one:{setTag:Ln,unTag:function(t,e,n){e=e.trim().replace(/^#/,"");for(let r=0;r0)for(let t=0;t0&&(t=function(t){return Object.keys(t).forEach((e=>{t[e]=Object.assign({},t[e]),t[e].novel=!0})),t}(t)),t=Yn(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 Zn(e).cache().fillDown().out("array")}(Object.assign({},e,t)),r=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:Jn(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}(n);return r},canBe:function(t,e,n){if(!n.hasOwnProperty(e))return!0;let r=n[e].not||[];for(let e=0;eo.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 er(t)?t.forEach((t=>r.one.unTag(n,t,s))):r.one.unTag(n,t,s),this.uncache(),this},canBe:function(t){t=t.replace(/^#/,"");let e=this.model.one.tagSet,n=this.methods.one.canBe,r=[];this.document.forEach(((o,i)=>{o.forEach(((o,s)=>{n(o,t,e)||r.push([i,s,s+1])}))}));let o=this.update(r);return this.difference(o)}};var rr={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 or=new Set(["Auxiliary","Possessive"]);var ir={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=t.sort(((t,n)=>{if(or.has(t)||!e.hasOwnProperty(n))return 1;if(or.has(n)||!e.hasOwnProperty(t))return-1;let r=e[t].children||[],o=r.length;return r=e[n].children||[],o-r.length})),t}(e,r)}))}))}},methods:tr,api:function(t){Object.assign(t.prototype,nr)},lib:rr};const sr=/([.!?\u203D\u2E18\u203C\u2047-\u2049\u3002]+\s)/g,lr=/^[.!?\u203D\u2E18\u203C\u2047-\u2049\u3002]+\s$/,ar=/((?:\r?\n|\r)+)/,ur=/[a-z0-9\u00C0-\u00FF\u00a9\u00ae\u2000-\u3300\ud000-\udfff]/i,cr=/\S/,hr={'"':'"',"๏ผ‚":"๏ผ‚","โ€œ":"โ€","โ€Ÿ":"โ€","โ€ž":"โ€","โน‚":"โ€","โ€š":"โ€™","ยซ":"ยป","โ€น":"โ€บ","โ€ต":"โ€ฒ","โ€ถ":"โ€ณ","โ€ท":"โ€ด","ใ€":"ใ€ž","ใ€Ÿ":"ใ€ž"},fr=RegExp("["+Object.keys(hr).join("")+"]","g"),pr=RegExp("["+Object.values(hr).join("")+"]","g"),dr=function(t){if(!t)return!1;let e=t.match(pr);return null!==e&&1===e.length},mr=/\(/g,gr=/\)/g,wr=/\S/,br=/^\s+/,yr=function(t,e){let n=t.split(/[-โ€“โ€”]/);if(n.length<=1)return!1;const{prefixes:r,suffixes:o}=e.one;if(1===n[0].length&&/[a-z]/i.test(n[0]))return!1;if(r.hasOwnProperty(n[0]))return!1;if(n[1]=n[1].trim().replace(/[.?!]$/,""),o.hasOwnProperty(n[1]))return!1;if(!0===/^([a-z\u00C0-\u00FF`"'/]+)[-โ€“โ€”]([a-z0-9\u00C0-\u00FF].*)/i.test(t))return!0;return!0===/^[('"]?([0-9]{1,4})[-โ€“โ€”]([a-z\u00C0-\u00FF`"'/-]+[)'"]?$)/i.test(t)},vr=function(t){let e=[];const n=t.split(/[-โ€“โ€”]/);let r="-",o=t.match(/[-โ€“โ€”]/);o&&o[0]&&(r=o);for(let t=0;t(t[e]=!0,t)),{});const Pr=/\p{Letter}/u,_r=/[\p{Number}\p{Currency_Symbol}]/u,Sr=/^[a-z]\.([a-z]\.)+/i,zr=/[sn]['โ€™]$/,Ar=/([A-Z]\.)+[A-Z]?,?$/,$r=/^[A-Z]\.,?$/,Tr=/[A-Z]{2,}('s|,)?$/,Cr=/([a-z]\.)+[a-z]\.?$/,Nr=function(t){return function(t){return!0===Ar.test(t)||!0===Cr.test(t)||!0===$r.test(t)||!0===Tr.test(t)}(t)&&(t=t.replace(/\./g,"")),t},Lr=function(t,e){const n=e.methods.one.killUnicode;let r=t.text||"";r=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.replace(/([0-9]),([0-9])/g,"$1$2")}(r),r=n(r,e),r=Nr(r),t.normal=r},Vr=/[ .][A-Z]\.? *$/i,Fr=/(?:\u2026|\.{2,}) *$/,qr=/\p{L}/u,Gr=/\. *$/,Dr=/^[A-Z]\. $/;var Br={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:function(t,e){if(t=t||"",!(t=String(t))||"string"!=typeof t||!1===wr.test(t))return[];let n=function(t){let e=[],n=t.split(ar);for(let t=0;t0&&(o.push(i),t[e]="")}return o}(r,e),r=function(t){let e=[];for(let n=0;n0?(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=function(t){for(let e=1;et)),n},splitWhitespace:(t,e)=>{let{str:n,pre:r,post:o}=function(t,e){let{prePunctuation:n,postPunctuation:r,emoticons:o}=e.one,i=t,s="",l="",a=Array.from(t);if(o.hasOwnProperty(t.trim()))return{str:t.trim(),pre:s,post:" "};let u=a.length;for(let t=0;t(l=t||"",""))),t=i,s=""),{str:t,pre:s,post:l}}(t,e);return{text:n,pre:r,post:o,tags:new Set}},fromString:function(t,e){const{methods:n,model:r}=e,{splitSentences:o,splitTerms:i,splitWhitespace:s}=n.one.tokenize;return t=o(t=t||"",e).map((t=>{let n=i(t,r);return n=n.map((t=>s(t,r))),n.forEach((t=>{Lr(t,e)})),n})),t}}}};let Mr={},Ur={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","ยตg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","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=>{Mr[e]=!0,Ur[e]="Abbreviation",void 0!==t[1]&&(Ur[e]=[Ur[e],t[1]])}))}));var Wr=["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","ex"].reduce(((t,e)=>(t[e]=!0,t)),{});let Ir={"!":"ยก","?":"ยฟษ",'"':'โ€œโ€"โโž',"'":"โ€˜โ€›โ›โœโ€™","-":"โ€”โ€“",a:"ยชร€รร‚รƒร„ร…ร รกรขรฃรครฅฤ€ฤฤ‚ฤƒฤ„ฤ…ววŽวžวŸว วกวบวปศ€ศศ‚ศƒศฆศงศบฮ†ฮ‘ฮ”ฮ›ฮฌฮฑฮปะะฐัฆังำำ‘ำ’ำ“ฦ›รฆ",b:"รŸรพฦ€ฦฦ‚ฦƒฦ„ฦ…ษƒฮ’ฮฒฯฯฆะ‘ะ’ะชะฌะฒัŠัŒัขัฃาŒา",c:"ยขยฉร‡รงฤ†ฤ‡ฤˆฤ‰ฤŠฤ‹ฤŒฤฦ†ฦ‡ฦˆศปศผอปอผฯฒฯนฯฝฯพะกัั”า€าาชาซ",d:"รฤŽฤฤฤ‘ฦ‰ฦŠศกฦ‹ฦŒ",e:"รˆร‰รŠร‹รจรฉรชรซฤ’ฤ“ฤ”ฤ•ฤ–ฤ—ฤ˜ฤ™ฤšฤ›ฦศ„ศ…ศ†ศ‡ศจศฉษ†ษ‡ฮˆฮ•ฮžฮฃฮญฮตฮพฯตะ€ะะ•ะตัั‘าผาฝาพาฟำ–ำ—แป…",f:"ฦ‘ฦ’ฯœฯำบำปา’า“ลฟ",g:"ฤœฤฤžฤŸฤ ฤกฤขฤฃฦ“วควฅวฆวงวดวต",h:"ฤคฤฅฤฆฤงฦ•วถศžศŸฮ‰ฮ—ะ‚ะŠะ‹ะะฝั’ั›าขาฃาคาฅาบาปำ‰ำŠ",I:"รŒรรŽร",i:"รฌรญรฎรฏฤจฤฉฤชฤซฤฌฤญฤฎฤฏฤฐฤฑฦ–ฦ—ศˆศ‰ศŠศ‹ฮŠฮฮชฮฏฮนฯŠะ†ะ‡ั–ั—iฬ‡",j:"ฤดฤตวฐศทษˆษ‰ฯณะˆั˜",k:"ฤถฤทฤธฦ˜ฦ™วจวฉฮšฮบะŒะ–ะšะถะบัœาšา›าœาาžาŸา าก",l:"ฤนฤบฤปฤผฤฝฤพฤฟล€ลล‚ฦšฦชว€ววศดศฝฮ™ำ€ำ",m:"ฮœฯบฯปะœะผำำŽ",n:"ร‘รฑลƒล„ล…ล†ล‡ลˆล‰ลŠล‹ฦฦžวธวนศ ศตฮฮ ฮฎฮทฯžะะ˜ะ™ะ›ะŸะธะนะปะฟัาŠา‹ำ…ำ†ำขำฃำคำฅฯ€",o:"ร’ร“ร”ร•ร–ร˜รฐรฒรณรดรตรถรธลŒลลŽลลล‘ฦŸฦ ฦกว‘ว’วชวซวฌวญวพวฟศŒศศŽศศชศซศฌศญศฎศฏศฐศฑฮŒฮ˜ฮŸฮธฮฟฯƒฯŒฯ•ฯ˜ฯ™ฯฌฯดะžะคะพัฒัณำฆำงำจำฉำชำซ",p:"ฦคฮกฯฯทฯธฯผะ ั€าŽารž",q:"ษŠษ‹",r:"ล”ล•ล–ล—ล˜ล™ฦฆศศ‘ศ’ศ“ษŒษะƒะ“ะฏะณัั“าา‘",s:"ลšล›ลœลลžลŸล ลกฦงฦจศ˜ศ™ศฟะ…ั•",t:"ลขลฃลคลฅลฆลงฦซฦฌฦญฦฎศšศ›ศถศพฮ“ฮคฯ„ฯฎะขั‚",u:"ร™รšร›รœรนรบรปรผลจลฉลชลซลฌลญลฎลฏลฐลฑลฒลณฦฏฦฐฦฑฦฒว“ว”ว•ว–ว—ว˜ว™วšว›วœศ”ศ•ศ–ศ—ษ„ฮฐฯ…ฯ‹ฯ",v:"ฮฝัดัตัถัท",w:"ลดลตฦœฯ‰ฯŽฯ–ฯขฯฃะจะฉัˆั‰ักัฟ",x:"ร—ฮงฯ‡ฯ—ฯฐะฅั…าฒาณำผำฝำพำฟ",y:"รรฝรฟลถลทลธฦณฦดศฒศณษŽษฮŽฮฅฮซฮณฯˆฯ’ฯ“ฯ”ะŽะฃัƒั‡ัžัฐัฑาฎาฏาฐาฑำฎำฏำฐำฑำฒำณ",z:"ลนลบลปลผลฝลพฦตฦถศคศฅษ€ฮ–"},Rr={};Object.keys(Ir).forEach((function(t){Ir[t].split("").forEach((function(e){Rr[e]=t}))}));const Qr=/\//,Hr=/[a-z]\.[a-z]/i,Zr=/[0-9]/,Kr=function(t,e){let n=t.normal||t.text||t.machine;const r=e.model.one.aliases;if(r.hasOwnProperty(n)&&(t.alias=t.alias||[],t.alias.push(r[n])),Qr.test(n)&&!Hr.test(n)&&!Zr.test(n)){let e=n.split(Qr);e.length<=3&&e.forEach((e=>{""!==(e=e.trim())&&(t.alias=t.alias||[],t.alias.push(e))}))}return t},Jr=/^\p{Letter}+-\p{Letter}+$/u,Xr=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"),Jr.test(e)&&(e=e.replace(/-/g,"")),e=e.replace(/^[#@]/,""),e!==t.normal&&(t.machine=e)},Yr=function(t,e){let n=t.docs;for(let r=0;rYr(t,Kr),machine:t=>Yr(t,Xr),normal:t=>Yr(t,Lr),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}(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 so={model:{one:{typeahead:{}}},api:function(t){t.prototype.autoFill=ro},lib:io,compute:no,hooks:["typeahead"]};h.extend(M),h.extend(wn),h.extend(Me),h.extend(_n),h.extend(ir),h.plugin(wt),h.extend(eo),h.extend(jt),h.plugin(d),h.extend(Vt),h.extend(so),h.extend(At),h.extend($n);export{h as default}; diff --git a/builds/three/compromise-three.cjs b/builds/three/compromise-three.cjs index 0947a6006..29f66ce63 100644 --- a/builds/three/compromise-three.cjs +++ b/builds/three/compromise-three.cjs @@ -1 +1 @@ -var e,t;e=this,t=function(){var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};const 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=t,r={forEach:function(e){return this.fullPointer.forEach(((t,n)=>{let r=this.update([t]);e(r,n)})),this},map:function(e,t){let n=this.fullPointer.map(((t,n)=>{let r=this.update([t]),a=e(r,n);return void 0===a?this.none():a}));if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach((e=>{r=r.concat(e.fullPointer)})),this.toView(r)},filter:function(e){let t=this.fullPointer;return t=t.filter(((t,n)=>{let r=this.update([t]);return e(r,n)})),this.update(t)},find:function(e){let t=this.fullPointer.find(((t,n)=>{let r=this.update([t]);return e(r,n)}));return this.update([t])},some:function(e){return this.fullPointer.some(((t,n)=>{let r=this.update([t]);return e(r,n)}))},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const a={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach((e=>{t[e]=this.update(this._groups[e])})),t},eq:function(e){let t=this.pointer;return t||(t=this.docs.map(((e,t)=>[t]))),t[e]?this.update([t[e]]):this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map(((e,t)=>[t]));return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map((e=>[e[0]]));return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every(((e,t)=>!!n[t]&&e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2]))},wordCount:function(){return this.docs.reduce(((e,t)=>(e+=t.filter((e=>""!==e.text)).length,e)),0)},isFull:function(){let e=this.pointer;if(!e)return!0;if(0===e.length||0!==e[0][0])return!1;let t=0,n=0;return this.document.forEach((e=>t+=e.length)),this.docs.forEach((e=>n+=e.length)),t===n},getNth:function(e){return"number"==typeof e?this.eq(e):"string"==typeof e?this.if(e):this}};a.group=a.groups,a.fullSentence=a.fullSentences,a.sentence=a.fullSentences,a.lastTerm=a.lastTerms,a.firstTerm=a.firstTerms;var o=a;const i=Object.assign({},o,n,r);i.get=i.eq;var s=i;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,r=t||e.map(((e,t)=>[t]));return r.map((e=>{let[t,r,a,o,i]=e;return r=r||0,a=a||(n[t]||[]).length,n[t]&&n[t][r]&&(o=o||n[t][r].id,n[t][a-1]&&(i=i||n[t][a-1].id)),[t,r,a,o,i]}))}update(e){let t=new View(this.document,e);if(this._cache&&e&&e.length>0){let n=[];e.forEach(((e,t)=>{let[r,a,o]=e;(1===e.length||0===a&&this.document[r].length===o)&&(n[t]=this._cache[r])})),n.length>0&&(t._cache=n)}return t.world=this.world,t}toView(e){return new View(this.document,e||this.pointer)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","freeze","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r.compute("unfreeze"),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,s);var l=View;const u=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};function c(e,t){if(u(t))for(const n in t)u(t[n])?(e[n]||Object.assign(e,{[n]:{}}),c(e[n],t[n])):Object.assign(e,{[n]:t[n]});return e}var h=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&&c(o,e.model),e.irregulars&&function(e,t){let n=e.two.models||{};Object.keys(t).forEach((e=>{t[e].pastTense&&(n.toPast&&(n.toPast.ex[e]=t[e].pastTense),n.fromPast&&(n.fromPast.ex[t[e].pastTense]=e)),t[e].presentTense&&(n.toPresent&&(n.toPresent.ex[e]=t[e].presentTense),n.fromPresent&&(n.fromPresent.ex[t[e].presentTense]=e)),t[e].gerund&&(n.toGerund&&(n.toGerund.ex[e]=t[e].gerund),n.fromGerund&&(n.fromGerund.ex[t[e].gerund]=e)),t[e].comparative&&(n.toComparative&&(n.toComparative.ex[e]=t[e].comparative),n.fromComparative&&(n.fromComparative.ex[t[e].comparative]=e)),t[e].superlative&&(n.toSuperlative&&(n.toSuperlative.ex[e]=t[e].superlative),n.fromSuperlative&&(n.fromSuperlative.ex[t[e].superlative]=e))}))}(o,e.irregulars),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.frozen&&r.addWords(e.frozen,!0),e.mutate&&e.mutate(t)};const d=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var m=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(d(e)){if(d(e[0])){let n=e.map((e=>e.map((e=>({text:e,normal:e,pre:"",post:" ",tags:new Set})))));return new t(n)}let n=function(e){return e.map((e=>e.terms.map((e=>(d(e.tags)&&(e.tags=new Set(e.tags)),e)))))}(e);return new t(n)}return a};let p=Object.assign({},e);const f=function(e,t){t&&f.addWords(t);let n=m(e,l,p);return e&&n.compute(p.hooks),n};Object.defineProperty(f,"_world",{value:p,writable:!0}),f.tokenize=function(e,t){const{compute:n}=this._world;t&&f.addWords(t);let r=m(e,l,p);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},f.plugin=function(e){return h(e,this._world,l,this),this},f.extend=f.plugin,f.world=function(){return this._world},f.model=function(){return this._world.model},f.methods=function(){return this._world.methods},f.hooks=function(){return this._world.hooks},f.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},f.version="14.13.0";var v=f,b=function(e){let t=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),A=(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},C=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-โ€“โ€”]/.test(t.post)||(t.post+=" ")},j=(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,"")}},N=function(e,t,n,r){let[a,o,i]=t;0===o||i===r[a].length?C(n):(C(n),C([e[t[1]]])),function(e,t,n){let r=e[t];if(0!==t||!P(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")||P(a.text)&&a.text.length>1&&(a.text=a.text.replace(/^\p{Lu}/u,(e=>e.toLowerCase())))}(e,o,n),A(e,o,n)};let x=0;const I=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var T=function(e){let[t,n]=e.index||[0,0];x+=1,x=x>46655?0:x,t=t>46655?0:t,n=n>1294?0:n;let r=I(x.toString(36));r+=I(t.toString(36));let a=n.toString(36);return a=a.length<2?"0"+a:a,r+=a,r+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+r.toUpperCase()};const D=function(e){e.has("@hasContraction")&&"function"==typeof e.contractions&&e.grow("@hasContraction").contractions().expand()},H=e=>"[object Array]"===Object.prototype.toString.call(e),G=function(e,t,n){const{document:r,world:a}=t;t.uncache();let o=t.fullPointer,i=t.fullPointer;t.forEach(((s,l)=>{let u=s.fullPointer[0],[c]=u,h=r[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]||[]:H(e)?H(e[0])?e[0]:e:[]}(e,a);0!==d.length&&(d=function(e){return e.map((e=>(e.id=T(e),e)))}(d),n?(D(t.update([u]).firstTerm()),N(h,u,d,r)):(D(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);let a=r.docs[0],o=t.possessives&&a[a.length-1].tags.has("Possessive");e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e=e.replace(F,(e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})),e}(e,r);let i=this.update(n);n=n.map((e=>e.slice(0,3)));let s=(i.docs[0]||[]).map((e=>Array.from(e.tags)));if("string"==typeof e&&(e=this.fromText(e).compute("id")),r.insertAfter(e),i.has("@hasContraction")&&r.contractions&&r.grow("@hasContraction+").contractions().expand(),r.delete(i),o){let e=r.docs[0],t=e[e.length-1];t.tags.has("Possessive")||(t.text+="'s",t.normal+="'s",t.tags.add("Possessive"))}let l=r.toView(n).compute(["index","freeze","lexicon"]);return l.world.compute.preTagger&&l.compute("preTagger"),l.compute("unfreeze"),t.tags&&l.terms().forEach(((e,t)=>{e.tagSafe(s[t])})),t.case&&l.docs[0]&&l.docs[0][0]&&0===l.docs[0][0].index[1]&&(l.docs[0][0].text=l.docs[0][0].text.replace(/\w\S*/g,(e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase()))),l},replace:function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let r=this.match(e);return r.found?(this.soften(),r.replaceWith(t,n)):this}};var z=V,B=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 $={remove:function(e){const{indexN:t}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;e&&(n=this,r=this.match(e));let a=!n.ptrs;r.has("@hasContraction")&&r.contractions&&r.grow("@hasContraction").contractions().expand();let o=n.fullPointer,i=r.fullPointer.reverse(),s=B(this.document,i);return o=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})),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)))}(o,t(i)),n.ptrs=o,n.document=s,n.compute("index"),a&&(n.ptrs=void 0),e?n.toView(o):(this.ptrs=[],n.none())}};$.delete=$.remove;var S=$;const K={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}};K.deHyphenate=K.dehyphenate,K.toQuotation=K.toQuotations;var M=K,L={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 J=new Set(["index","sequence","seq","sequential","chron","chronological"]),W=new Set(["freq","frequency","topk","repeats"]),q=new Set(["alpha","alphabetical"]);var U={unique:function(){let e=new Set,t=this.filter((t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)}));return t},reverse:function(){let e=this.pointer||this.docs.map(((e,t)=>[t]));return e=[].concat(e),e=e.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if(this.uncache(),"function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort(((n,r)=>(n=e.update([n]),r=e.update([r]),t(n,r)))),e.ptrs=n,e}(this,e);e=e||"alpha";let r=n||t.map(((e,t)=>[t])),a=t.map(((e,t)=>({index:t,words:e.length,normal:e.map((e=>e.machine||e.normal||"")).join(" "),pointer:r[t]})));return J.has(e)&&(e="sequential"),q.has(e)&&(e="alpha"),W.has(e)?(a=L.byFreq(a),this.update(a.map((e=>e.pointer)))):"function"==typeof L[e]?(a=a.sort(L[e]),this.update(a.map((e=>e.pointer)))):this}};const R=function(e,t){if(e.length>0){let t=e[e.length-1],n=t[t.length-1];!1===/ /.test(n.post)&&(n.post+=" ")}return e=e.concat(t)};var Q={concat:function(e){if("string"==typeof e){let t=this.fromText(e);if(this.found&&this.ptrs){let e=this.fullPointer,n=e[e.length-1][0];this.document.splice(n,0,...t.document)}else this.document=this.document.concat(t.document);return this.all().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=R(e.document,t.docs),e.all()}(this,e);if(t=e,"[object Array]"===Object.prototype.toString.call(t)){let t=R(this.document,e);return this.document=t,this.all()}var t;return this}},_={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 Z=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}},O,z,S,M,U,Q,_);var X=function(e){Object.assign(e.prototype,Z)};const Y={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))),n[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const ae=/'/,oe=new Set(["what","how","when","where","why"]),ie=new Set(["be","go","start","think","need"]),se=new Set(["been","gone"]);var le=function(e,t){let n=e[t].normal.split(ae)[0];if(oe.has(n))return[n,"did"];if(e[t+1]){if(se.has(e[t+1].normal))return[n,"had"];if(ie.has(e[t+1].normal))return[n,"would"]}return null},ue=function(e,t){return"ain't"===e[t].normal||"aint"===e[t].normal?null:[e[t].normal.replace(/n't/,""),"not"]};const ce=/'/,he=/(e|รฉ|aison|sion|tion)$/,de=/(age|isme|acle|ege|oire)$/;var ge=(e,t)=>["je",e[t].normal.split(ce)[1]],me=(e,t)=>{let n=e[t].normal.split(ce)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},pe=(e,t)=>{let n=e[t].normal.split(ce)[1];return n&&he.test(n)&&!de.test(n)?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const fe=/^([0-9.]{1,4}[a-z]{0,2}) ?[-โ€“โ€”] ?([0-9]{1,4}[a-z]{0,2})$/i,ve=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-โ€“โ€”] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,be=/^[0-9]{3}-[0-9]{4}$/;var ye=function(e,t){let n=e[t],r=n.text.match(fe);return null!==r?!0===n.tags.has("PhoneNumber")||be.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(ve),null!==r?[r[1],"to",r[4]]:null)};const we=/^([+-]?[0-9][.,0-9]*)([a-zยฐยฒยณยต/]+)$/;var ke=function(e,t,n){const r=n.model.one.numberSuffixes||{};let a=e[t].text.match(we);if(null!==a){let e=a[2].toLowerCase().trim();return r.hasOwnProperty(e)?null:[a[1],e]}return null};const Pe=/'/,Ae=/^[0-9][^-โ€“โ€”]*[-โ€“โ€”].*?[0-9]/,Ce=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]]},je={t:(e,t)=>ue(e,t),d:(e,t)=>le(e,t)},Ne={j:(e,t)=>ge(e,t),l:(e,t)=>me(e,t),d:(e,t)=>pe(e,t)},xe=function(e,t,n,r){for(let a=0;a2)return o.out.concat(r)}return null},Ie=function(e,t){let n=t.fromText(e.join(" "));return n.compute(["id","alias"]),n.docs[0]},Te=function(e,t){for(let n=t+1;n<5&&e[n];n+=1)if("been"===e[n].normal)return["there","has"];return["there","is"]};var De=e=>{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;if(!0===Pe.test(r[s].normal)){let e=r[s].normal.split(Pe);l=e[0],u=e[1]}let c=xe(o,r[s],l,u);!c&&je.hasOwnProperty(u)&&(c=je[u](r,s,t)),!c&&Ne.hasOwnProperty(l)&&(c=Ne[l](r,s)),"there"===l&&"s"===u&&(c=Te(r,s)),c?(c=Ie(c,e),re(n,[i,s],c),Ce(n[i],e,s,c.length)):Ae.test(r[s].normal)?(c=ye(r,s),c&&(c=Ie(c,e),re(n,[i,s],c),a.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&a.one.setTag([c[0]],"Time",t,null,"time-range"),Ce(n[i],e,s,c.length))):(c=ke(r,s,t),c&&(c=Ie(c,e),re(n,[i,s],c),a.one.setTag([c[1]],"Unit",t,null,"contraction-unit")))}}))},He={model:ne,compute:{contractions:De},hooks:["contractions"]};const Ge=function(e){const t=e.world,{model:n,methods:r}=e.world,a=r.one.setTag,{frozenLex:o}=n.one,i=n.one._multiCache||{};e.docs.forEach((e=>{for(let n=0;nn;r-=1){let i=e.slice(n,r+1),s=i.map((e=>e.machine||e.normal)).join(" ");!0!==o.hasOwnProperty(s)||(a(i,o[s],t,!1,"1-frozen-multi-lexicon"),i.forEach((e=>e.frozen=!0)))}void 0!==o[s]&&o.hasOwnProperty(s)&&(a([r],o[s],t,!1,"1-freeze-lexicon"),r.frozen=!0)}}))},Ee=e=>""+e+"",Oe=e=>""+e+"";var Fe=function(e){e.docs.forEach((e=>{console.log(Ee("\n โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€")),e.forEach((e=>{let t=` ${Oe("โ”‚")} `,n=e.implicit||e.text||"-";!0===e.frozen?t+=`${Ee(n)} โ„๏ธ`:t+=Oe(n),console.log(t)}))}))},Ve={compute:{frozen:Ge,freeze:Ge,unfreeze:function(e){return e.docs.forEach((e=>{e.forEach((e=>{delete e.frozen}))})),e}},mutate:e=>{const t=e.methods.one;t.termMethods.isFrozen=e=>!0===e.frozen,t.debug.freeze=Fe,t.debug.frozen=Fe},api:function(e){e.prototype.freeze=function(){return this.docs.forEach((e=>{e.forEach((e=>{e.frozen=!0}))})),this},e.prototype.unfreeze=function(){this.compute("unfreeze")},e.prototype.isFrozen=function(){return this.match("@isFrozen+")}},hooks:["freeze"]},ze=function(e,t,n){const{model:r,methods:a}=n,o=a.one.setTag,i=r.one._multiCache||{},{lexicon:s}=r.one||{};let l=e[t],u=l.machine||l.normal;if(void 0!==i[u]&&e[t+1]){for(let r=t+i[u]-1;r>t;r-=1){let a=e.slice(t,r+1);if(a.length<=1)return!1;let i=a.map((e=>e.machine||e.normal)).join(" ");if(!0===s.hasOwnProperty(i)){let e=s[i];return o(a,e,n,!1,"1-multi-lexicon"),!e||2!==e.length||"PhrasalVerb"!==e[0]&&"PhrasalVerb"!==e[1]||o([a[1]],"Particle",n,!1,"1-phrasal-particle"),!0}}return!1}return null};const Be=/^(under|over|mis|re|un|dis|semi|pre|post)-?/,$e=new Set(["Verb","Infinitive","PastTense","Gerund","PresentTense","Adjective","Participle"]);var Se=function(e,t,n){const{model:r,methods:a}=n,o=a.one.setTag,{lexicon:i}=r.one;let s=e[t],l=s.machine||s.normal;if(void 0!==i[l]&&i.hasOwnProperty(l))return o([s],i[l],n,!1,"1-lexicon"),!0;if(s.alias){let e=s.alias.find((e=>i.hasOwnProperty(e)));if(e)return o([s],i[e],n,!1,"1-lexicon-alias"),!0}if(!0===Be.test(l)){let e=l.replace(Be,"");if(i.hasOwnProperty(e)&&e.length>3&&$e.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null},Ke={lexicon:function(e){const t=e.world;e.docs.forEach((e=>{for(let n=0;n{let a=e[r],o=(r=(r=r.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);o.length>1&&(void 0===n[o[0]]||o.length>n[o[0]])&&(n[o[0]]=o.length),t[r]=t[r]||a})),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}},Le={addWords:function(e,t=!1){const n=this.world(),{methods:r,model:a}=n;if(!e)return;if(Object.keys(e).forEach((t=>{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))})),!0===t){let{lex:t,_multi:o}=r.one.expandLexicon(e,n);return Object.assign(a.one._multiCache,o),void Object.assign(a.one.frozenLex,t)}if(r.two.expandLexicon){let{lex:t,_multi:o}=r.two.expandLexicon(e,n);Object.assign(a.one.lexicon,t),Object.assign(a.one._multiCache,o)}let{lex:o,_multi:i}=r.one.expandLexicon(e,n);Object.assign(a.one.lexicon,o),Object.assign(a.one._multiCache,i)}},Je={model:{one:{lexicon:{},_multiCache:{},frozenLex:{}}},methods:{one:{expandLexicon:Me}},compute:Ke,lib:Le,hooks:["lexicon"]},We=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;let a=n.one.tokenize.splitTerms(e,r).map((e=>n.one.tokenize.splitWhitespace(e,r)));return a.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 qe=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 Qe=(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 _e=function(e){return e.goNext=e.goNext.map((e=>{if(0!==Object.keys(e).length)return e})),e.goNext=Qe(e.goNext,void 0),e.failTo=Qe(e.failTo,0),e.endAs=Qe(e.endAs,null),e};const Ze={buildTrie:function(e){const t=We(e,this.world());return _e(t)}};Ze.compile=Ze.buildTrie;var Xe={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:We(e,this.world));var r;let a=Re(this,n,t);return a=a.settle(),a}},lib:Ze};const Ye=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},et=function(e,t){let{ptrs:n,byGroup:r}=e;return n=Ye(n,t),Object.keys(r).forEach((e=>{r[e]=Ye(r[e],t)})),{ptrs:n,byGroup:r}},tt=function(e,t,n){const r=n.methods.one;return"number"==typeof e&&(e=String(e)),"string"==typeof e&&(e=r.killUnicode(e,n),e=r.parseMatch(e,t,n)),e},nt=e=>"[object Object]"===Object.prototype.toString.call(e),rt=e=>e&&nt(e)&&!0===e.isView,at=e=>e&&nt(e)&&!0===e.isNet;var ot={matchOne:function(e,t,n){const r=this.methods.one;if(rt(e))return this.intersection(e).eq(0);if(at(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;let a={regs:e=tt(e,n,this.world),group:t,justOne:!0},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=et(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const r=this.methods.one;if(rt(e))return this.intersection(e);if(at(e))return this.sweep(e,{tagger:!1}).view.settle();let a={regs:e=tt(e,n,this.world),group:t},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=et(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const r=this.methods.one;if(rt(e))return this.intersection(e).fullPointer.length>0;if(at(e))return this.sweep(e,{tagger:!1}).view.found;let a={regs:e=tt(e,n,this.world),group:t,justOne:!0};return r.match(this.docs,a,this._cache).ptrs.length>0},if:function(e,t,n){const r=this.methods.one;if(rt(e))return this.filter((t=>t.intersection(e).found));if(at(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}let a={regs:e=tt(e,n,this.world),group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter(((e,t)=>{let n=this.update([e]);return r.match(n.docs,a,i[t]).ptrs.length>0}));let s=this.update(o);return this._cache&&(s._cache=o.map((e=>i[e[0]]))),s},ifNo:function(e,t,n){const{methods:r}=this,a=r.one;if(rt(e))return this.filter((t=>!t.intersection(e).found));if(at(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}e=tt(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}},it={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 st=function(e,t){return[e[0],e[1],t[2]]},lt=(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},ut=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},ct={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=lt(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=>ut(e,this))),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=lt(e,this,t).fullPointer,a=n(this.fullPointer,r);for(let e=0;e{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(st(e.match,e.after)):o.push(e.match)})),o=o.filter((e=>e)),o=o.map((e=>ut(e,this))),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=lt(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),e.before&&e.match?o.push(st(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=>ut(e,this))),this.update(o)}};ct.split=ct.splitAfter;var ht=ct;const dt=function(e,t){return!(!e||!t)&&e[0]===t[0]&&e[2]===t[1]},gt=function(e,t,n){const r=e.world,a=r.methods.one.parseMatch;n=n||"^.";let o=a(t=t||".$",{},r),i=a(n,{},r);o[o.length-1].end=!0,i[0].start=!0;let s=e.fullPointer,l=[s[0]];for(let t=1;t)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,bt=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,yt=/ /g,wt=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),kt=function(e){return e=(e=e.map((e=>e.trim()))).filter((e=>e))};var Pt=function(e){let t=e.split(vt),n=[];t.forEach((e=>{wt(e)?n.push(e):n=n.concat(e.split(bt))})),n=kt(n);let r=[];return n.forEach((e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||wt(e)?r.push(e):r=r.concat(e.split(yt))})),r=kt(r),r};const At=/\{([0-9]+)?(, *[0-9]*)?\}/,Ct=/&&/,jt=new RegExp(/^<\s*(\S+)\s*>/),Nt=e=>e.charAt(0).toUpperCase()+e.substring(1),xt=e=>e.charAt(e.length-1),It=e=>e.charAt(0),Tt=e=>e.substring(1),Dt=e=>e.substring(0,e.length-1),Ht=function(e){return e=Tt(e),e=Dt(e)},Gt=function(e,t){let n={};for(let r=0;r<2;r+=1){if("$"===xt(e)&&(n.end=!0,e=Dt(e)),"^"===It(e)&&(n.start=!0,e=Tt(e)),"?"===xt(e)&&(n.optional=!0,e=Dt(e)),("["===It(e)||"]"===xt(e))&&(n.group=null,"["===It(e)&&(n.groupStart=!0),"]"===xt(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===It(e))){const t=jt.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===xt(e)&&(n.greedy=!0,e=Dt(e)),"*"!==e&&"*"===xt(e)&&"\\*"!==e&&(n.greedy=!0,e=Dt(e)),"!"===It(e)&&(n.negative=!0,e=Tt(e)),"~"===It(e)&&"~"===xt(e)&&e.length>2&&(e=Ht(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("/"===It(e)&&"/"===xt(e))return e=Ht(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if(!0===At.test(e)&&(e=e.replace(At,((e,t,r)=>(void 0===r?(n.min=Number(t),n.max=Number(t)):(r=r.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(r)):(n.min=Number(t),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),"")))),"("===It(e)&&")"===xt(e)){Ct.test(e)?(n.choices=e.split(Ct),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=Tt(n.choices[0]);let r=n.choices.length-1;n.choices[r]=Dt(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=>Gt(e,t))))),e=""}if("{"===It(e)&&"}"===xt(e)){if(e=Ht(e),n.root=e,/\//.test(e)){let e=n.root.split(/\//);n.root=e[0],n.pos=e[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==e[2]&&(n.sense=e[2])}return n}if("<"===It(e)&&">"===xt(e))return e=Ht(e),n.chunk=Nt(e),n.greedy=!0,n;if("%"===It(e)&&"%"===xt(e))return e=Ht(e),n.switch=e,n}return"#"===It(e)?(n.tag=Tt(e),n.tag=Nt(n.tag),n):"@"===It(e)?(n.method=Tt(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var Et=Gt;const Ot=/[a-z0-9][-โ€“โ€”][a-z]/i;var Ft=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&&Ot.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};const Vt=function(e,t){let{all:n}=t.methods.two.transform.verb||{},r=e.root;return n?n(r,t.model):[]},zt=function(e,t){let{all:n}=t.methods.two.transform.noun||{};return n?n(e.root,t.model):[e.root]},Bt=function(e,t){let{all:n}=t.methods.two.transform.adjective||{};return n?n(e.root,t.model):[e.root]};var $t=function(e,t){return e=e.map((e=>{if(e.root)if(t.methods.two&&t.methods.two.transform){let n=[];e.pos?"Verb"===e.pos?n=n.concat(Vt(e,t)):"Noun"===e.pos?n=n.concat(zt(e,t)):"Adjective"===e.pos&&(n=n.concat(Bt(e,t))):(n=n.concat(Vt(e,t)),n=n.concat(zt(e,t)),n=n.concat(Bt(e,t))),n=n.filter((e=>e)),n.length>0&&(e.operator="or",e.fastOr=new Set(n))}else e.machine=e.root,delete e.id,delete e.root;return e}))},St=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}))),e},Kt=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let r=Pt(e);return r=r.map((e=>Et(e,t))),r=Ft(r,n),r=$t(r,n),r=St(r),r};const Mt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var Lt=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),_t={hasQuote:e=>Wt.test(e.pre)||qt.test(e.post),hasComma:e=>Qt(e,","),hasPeriod:e=>!0===Qt(e,".")&&!1===Qt(e,"..."),hasExclamation:e=>Qt(e,"!"),hasQuestionMark:e=>Qt(e,"?")||Qt(e,"ยฟ"),hasEllipses:e=>Qt(e,"..")||Qt(e,"โ€ฆ"),hasSemicolon:e=>Qt(e,";"),hasColon:e=>Qt(e,":"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>Ut.test(e.post)||Ut.test(e.pre),hasDash:e=>Rt.test(e.post)||Rt.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)};_t.hasQuotation=_t.hasQuote;var Zt=_t;let Xt=function(){};Xt=function(e,t,n,r){let a=function(e,t,n,r){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==r-1)return!1;if(void 0!==t.id&&t.id===e.id)return!0;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(Jt(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some((e=>e===t.word)))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof Zt[t.method]&&!0===Zt[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)}if(void 0!==t.chunk)return e.chunk===t.chunk;if(void 0!==t.switch)return e.switch===t.switch;if(void 0!==t.machine)return e.normal===t.machine||e.machine===t.machine||e.root===t.machine;if(void 0!==t.sense)return e.sense===t.sense;if(void 0!==t.fastOr){if(t.pos&&!e.tags.has(t.pos))return null;let n=e.root||e.implicit||e.machine||e.normal;return t.fastOr.has(n)||t.fastOr.has(e.text)}return void 0!==t.choices&&("and"===t.operator?t.choices.every((t=>Xt(e,t,n,r))):t.choices.some((t=>Xt(e,t,n,r))))}(e,t,n,r);return!0===t.negative?!a:a};var Yt=Xt;const en=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&&(tn(e,e.t).length=r-e.t),e.t=r,!0)};const rn=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=Yt(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]&&Yt(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&&(tn(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},sn=function(e,t,n){let r=0;for(let a=e.t;ar||(e.t+=r,0))},ln=function(e){const{regs:t}=e;let n=t[e.r],r=Object.assign({},n);if(r.negative=!1,Yt(e.terms[e.t],r,e.start_i+e.t,e.phrase_length))return!1;if(n.optional){let n=t[e.r+1];n&&(Yt(e.terms[e.t],n,e.start_i+e.t,e.phrase_length)?e.r+=1:n.optional&&t[e.r+2]&&Yt(e.terms[e.t],t[e.r+2],e.start_i+e.t,e.phrase_length)&&(e.r+=2))}return n.greedy?sn(e,r,t[e.r+1]):(e.t+=1,!0)},un=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=Yt(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&&Yt(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}},cn=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},hn=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)}},dn=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]&&un(e),r.implicit&&e.terms[e.t+1]&&hn(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy?null:!0!==n.greedy||cn(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=tn(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0):null)},gn=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!==en(e,a)){if(e.negative){if(!ln(a))return null}else if(!0!==Yt(a.terms[a.t],e,a.start_i+a.t,a.phrase_length)){if(!0!==e.optional)return null}else if(!dn(a))return null}else if(!dn(a))return null}else{if(e.negative&&e.anything)return null;if(!dn(a))return null}else if(!on(a))return null}else if(!an(a))return null}else if(!nn(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}},mn=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}},pn=function(e,t,n){return e=e.filter((e=>{let[r,a,o]=e.pointer,i=n[r].slice(a,o);for(let e=0;e{e.groups[n][0]=t})),e},vn=function(e,t,n){let r=gn(e,t,0,e.length);return r?(r=fn(r,n),r):null};var bn=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=vn(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]}))),t.notIf&&(i=pn(i,t.notIf,e)),i=mn(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},yn={api:ft,methods:{one:{termMethods:Zt,parseMatch:Kt,match:bn}},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 wn=/^\../,kn=/^#./,Pn=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,"'"),wn.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 An={html:function(e){let{starts:t,ends:n}=Pn(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(jn,""),xn.test(a)&&(a=" "),a=a.replace(Nn,""),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(jn,""),a="-"===a?" ":a.replace(Cn,""));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&&In.test(a)||(a+=" "),r+=n+o+a})),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},Dn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{keepSpace:!1,whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{keepSpace:!1,whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};Dn.clean=Dn.normal,Dn.reduced=Dn.root;var Hn=Dn;let Gn=[],En=0;for(;En<64;)Gn[En]=0|4294967296*Math.sin(++En%Math.PI);var On=function(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(En=i=0;En>4]+Gn[i]+~~o[En|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|r>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)a[--i]+=s[i]}for(e="";i<32;)e+=(a[i>>3]>>4*(1^i++)&15).toString(16);return e};const Fn={text:!0,terms:!0};let Vn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const zn=function(e,t){return Object.assign({},e,t)},Bn={text:e=>Tn(e,{keepPunct:!0},!1),normal:e=>Tn(e,zn(Hn.normal,{keepPunct:!0}),!1),implicit:e=>Tn(e,zn(Hn.implicit,{keepPunct:!0}),!1),machine:e=>Tn(e,Vn,!1),root:e=>Tn(e,zn(Vn,{form:"root"}),!1),hash:e=>On(Tn(e,{keepPunct:!0},!1)),offset:e=>{let t=Bn.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))};Bn.sentences=Bn.sentence,Bn.clean=Bn.normal,Bn.reduced=Bn.root;const $n={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},Fn,r)).offset&&n.compute("offset"),n.docs.map(((e,t)=>{let a={};return Object.keys(r).forEach((o=>{r[o]&&Bn[o]&&(a[o]=Bn[o](e,n,t))})),a})));var n,r;return"number"==typeof e?t[e]:t}};$n.data=$n.json;var Sn=$n,Kn=function(e){let t=this.methods.one.debug||{};return e&&t.hasOwnProperty(e)?(t[e](this),this):"undefined"!=typeof window&&window.document?(t.clientSide(this),this):(t.tags(this),this)};const Mn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var Ln=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()));return e.filter((e=>e))}if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};e.forEach((e=>{t[e]=t[e]||0,t[e]+=1}));let n=Object.keys(t).map((e=>({normal:e,count:t[e]})));return n.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.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()},wrap:function(e){return Ln(this,e)}};var Wn=Jn,qn={text:function(e){let t={};var n;if(e&&"string"==typeof e&&Hn.hasOwnProperty(e)?t=Object.assign({},Hn[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e)),void 0!==t.keepSpace||this.isFull()||(t.keepSpace=!1),void 0===t.keepEndPunct&&this.pointer){let e=this.pointer[0];e&&e[1]?t.keepEndPunct=!1:t.keepEndPunct=!0}return void 0===t.keepPunct&&(t.keepPunct=!0),void 0===t.keepSpace&&(t.keepSpace=!0),function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let r=0;r{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 _n="";var Zn={green:e=>""+e+_n,red:e=>""+e+_n,blue:e=>""+e+_n,magenta:e=>""+e+_n,cyan:e=>""+e+_n,yellow:e=>""+e+_n,black:e=>""+e+_n,dim:e=>""+e+_n,i:e=>""+e+_n},Xn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(Zn.blue("\n โ”€โ”€โ”€โ”€โ”€โ”€")),t.forEach((t=>{console.log(Zn.blue("\n โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€")),t.forEach((t=>{let r=[...t.tags||[]],a=t.text||"-";t.sense&&(a=`{${t.normal}/${t.sense}}`),t.implicit&&(a="["+t.implicit+"]"),a=Zn.yellow(a);let o="'"+a+"'";if(t.reference){let n=e.update([t.reference]).text("normal");o+=` - ${Zn.dim(Zn.i("["+n+"]"))}`}o=o.padEnd(18);let i=Zn.blue(" โ”‚ ")+Zn.i(o)+" - "+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 Zn[n](e)}))),e.join(", ")}(r,n);console.log(i)}))})),console.log("\n")},Yn=function(e){let{docs:t}=e;console.log(""),t.forEach((e=>{let t=[];e.forEach((e=>{"Noun"===e.chunk?t.push(Zn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(Zn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(Zn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(Zn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)})),console.log(t.join(" "),"\n")})),console.log("\n")},er=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]}${Zn.blue(r[1])}${r[2]}`}(r,e.offset,t)})),console.log(r)})),console.log("\n")},tr={api:Rn,methods:{one:{hash:On,debug:{tags:Xn,clientSide:Qn,chunks:Yn,highlight:er}}}};const nr=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},rr=function(e){let t={};return e.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),t};var ar=function(e,t){let n=rr(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},or=function(e,t){let n=[];return e.forEach(((r,a)=>{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<20;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},ir={one:{termList:function(e){let t=[];for(let n=0;n{let[t]=e;if(1===r[t].length)return void a.push(e);let n=r[t].filter((t=>nr(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},ur=function(e,t){let n=rr(t),r=[];return e.forEach((e=>{let t=n[e[0]]||[];t=t.filter((t=>nr(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},hr=function(e,t){return e.map((e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e}))},dr={union:function(e){e=cr(e,this);let t=sr(this.fullPointer,e.fullPointer);return t=hr(t,this.document),this.toView(t)}};dr.and=dr.union,dr.intersection=function(e){e=cr(e,this);let t=ur(this.fullPointer,e.fullPointer);return t=hr(t,this.document),this.toView(t)},dr.not=function(e){e=cr(e,this);let t=lr(this.fullPointer,e.fullPointer);return t=hr(t,this.document),this.toView(t)},dr.difference=dr.not,dr.complement=function(){let e=this.all(),t=lr(e.fullPointer,this.fullPointer);return t=hr(t,this.document),this.toView(t)},dr.settle=function(){let e=this.fullPointer;return e.forEach((t=>{e=sr(e,[t])})),e=hr(e,this.document),this.update(e)};var gr=function(e){Object.assign(e.prototype,dr)},mr={methods:ir,api:gr},pr=function(e){e.prototype.sweep=function(e,t={}){const{world:n,docs:r}=this,{methods:a}=n;let o=a.one.bulkMatch(r,e,this.methods,t);!1!==t.tagger&&a.one.bulkTagger(o,r,this.world),o=o.map((e=>{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}}};const fr=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var vr=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.notIf&&(e.notIf=n(e.notIf,{},t)),e.needs=function(e){let t=[];return e.forEach((e=>{t.push(fr(e)),"and"===e.operator&&e.choices&&e.choices.forEach((e=>{e.forEach((e=>{t.push(fr(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=fr(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},br=function(e,t){e=vr(e,t);let n={};e.forEach((e=>{e.needs.forEach((t=>{n[t]=Array.isArray(n[t])?n[t]:[],n[t].push(e)})),e.wants.forEach((t=>{n[t]=Array.isArray(n[t])?n[t]:[],n[t].push(e)}))})),Object.keys(n).forEach((e=>{let t={};n[e]=n[e].filter((e=>"boolean"!=typeof 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}},yr=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=>"boolean"!=typeof o[e.match]&&(o[e.match]=!0,!0))),a}))},wr=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=>r.has(e)))))).filter((e=>0===e.wants.length||e.wants.filter((e=>r.has(e))).length>=e.minWant))}))},kr=function(e,t,n,r,a){let o=[];for(let n=0;n0&&(l.ptrs.forEach((e=>{e[0]=n;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),o.push(t)})),!0===a.matchOne))return[o[0]]}return o},Pr=function(e,t,n,r={}){let a=n.one.cacheDoc(e),o=yr(a,t.hooks);return o=wr(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=e.filter((e=>r>=e.minWords)),e}))}(o,e),kr(o,e,a,n,r)},Ar=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{if(!e.tag&&!e.chunk&&!e.unTag)return;let a=e.reason||e.match,u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===Ar(u,e.tag,r))return;if("-"===u[u.length-1].post)return}if(void 0!==e.tag){if(i(u,e.tag,n,e.safe,`[post] '${a}'`),"Noun"===e.tag&&l){let t=u[u.length-1];l(t.text)?i([t],"Plural",n,e.safe,"quick-plural"):i([t],"Singular",n,e.safe,"quick-singular")}!0===e.freeze&&u.forEach((e=>e.frozen=!0))}void 0!==e.unTag&&s(u,e.unTag,n,e.safe,a),e.chunk&&u.forEach((t=>t.chunk=e.chunk))})))},jr={lib:{buildNet:function(e){let t=this.methods().one.buildNet(e,this.world());return t.isNet=!0,t}},api:pr,methods:{one:{buildNet:br,bulkMatch:Pr,bulkTagger:Cr}}};const Nr=/ /,xr=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},Ir=function(e,t,n,r){if(!0===e.tags.has(t))return null;if("."===t)return null;!0===e.frozen&&(r=!0);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("string"==typeof t)if(t=t.trim(),Nr.test(t))!function(e,t,n,r){let a=t.split(Nr);e.forEach(((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),Ir(e,o,n,r))}))}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nTr(e,t,n,r)))};var Dr=Tr,Hr=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=>Er({id:e}))),t}return[Er({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},zr=e=>"[object Array]"===Object.prototype.toString.call(e),Br=e=>(e=e||"").trim(),$r=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach((e=>{if(!e.trim()||Or.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:Fr(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=Er({});return e.forEach((e=>{if((e=Er(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):(Vr(t=e).forEach(Er),t);var t},Sr=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("โ†’ "));let r="";return Vr(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},Kr=function(e){let t=Vr(e);t.forEach((e=>{delete(e=Object.assign({},e)).children}));let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},Mr={text:Sr,txt:Sr,array:Kr,flat:Kr},Lr=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Sr(e,!0)),null):Mr.hasOwnProperty(t)?Mr[t](e):e},Jr=e=>{Vr(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))}))},Wr=/\//;let qr=class g{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=Br(e),!Wr.test(e)){let t=this.json.children.find((t=>t.id===e));return new g(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)||Er({});return new g(t)}add(e,t={}){if(zr(e))return e.forEach((e=>this.add(Br(e),t))),this;e=Br(e);let n=Er({id:e,props:t});return this.json.children.push(n),new g(n)}remove(e){return e=Br(e),this.json.children=this.json.children.filter((t=>t.id!==e)),this}nodes(){return Vr(this.json).map((e=>(delete(e=Object.assign({},e)).children,e)))}cache(){return(e=>{let t=Vr(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 Vr(this.json)}fillDown(){var e;return e=this.json,Vr(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 zr(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])})),e))(t.props,e.props)})),this}depth(){Jr(this.json);let e=Vr(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 Jr(this.json),Lr(this.json,e)}debug(){return Jr(this.json),Lr(this.json,"debug"),this}};const Ur=function(e){let t=$r(e);return new qr(t)};Ur.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",Hyphenated:"cyan",Adverb:"cyan"};const Qr=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 _r=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:Qr(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 Zr=function(e){return e?"string"==typeof e?[e]:e:[]};var Xr=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=Zr(e[t].children),e[t].not=Zr(e[t].not)})),Object.keys(e).forEach((t=>{(e[t].not||[]).forEach((n=>{e[n]&&e[n].not&&e[n].not.push(t)}))})),e},Yr=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=Xr(e,t);const n=function(e){const t=Object.keys(e).map((t=>{let n=e[t];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:r,children:[]}}));return Ur(t).cache().fillDown().out("array")}(Object.assign({},t,e));return _r(n)},ea={one:{setTag:Dr,unTag:Hr,addTags:Yr,canBe:Gr}};const ta=function(e){return"[object Array]"===Object.prototype.toString.call(e)},na={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||""),ta(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 ta(e)?e.forEach((e=>r.one.unTag(n,e,i))):r.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){e=e.replace(/^#/,"");let t=this.model.one.tagSet,n=this.methods.one.canBe,r=[];this.document.forEach(((a,o)=>{a.forEach(((a,i)=>{n(a,e,t)||r.push([o,i,i+1])}))}));let a=this.update(r);return this.difference(a)}};var ra=na,aa=function(e){Object.assign(e.prototype,ra)},oa={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 ia=new Set(["Auxiliary","Possessive"]);var sa=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=e.sort(((e,n)=>{if(ia.has(e)||!t.hasOwnProperty(n))return 1;if(ia.has(n)||!t.hasOwnProperty(e))return-1;let r=t[e].children||[],a=r.length;return r=t[n].children||[],a-r.length})),e}(t,r)}))}))},la={model:{one:{tagSet:{}}},compute:{tagRank:sa},methods:ea,api:aa,lib:oa};const ua=/([.!?\u203D\u2E18\u203C\u2047-\u2049\u3002]+\s)/g,ca=/^[.!?\u203D\u2E18\u203C\u2047-\u2049\u3002]+\s$/,ha=/((?:\r?\n|\r)+)/;var da=function(e){let t=[],n=e.split(ha);for(let e=0;e0&&(a.push(o),e[t]="")}return a};const va={'"':'"',"๏ผ‚":"๏ผ‚","โ€œ":"โ€","โ€Ÿ":"โ€","โ€ž":"โ€","โน‚":"โ€","โ€š":"โ€™","ยซ":"ยป","โ€น":"โ€บ","โ€ต":"โ€ฒ","โ€ถ":"โ€ณ","โ€ท":"โ€ด","ใ€":"ใ€ž","ใ€Ÿ":"ใ€ž"},ba=RegExp("["+Object.keys(va).join("")+"]","g"),ya=RegExp("["+Object.values(va).join("")+"]","g"),wa=function(e){if(!e)return!1;let t=e.match(ya);return null!==t&&1===t.length};var ka=function(e){let t=[];for(let n=0;n(e[t]=!0,e)),{});var za=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(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=Ga(n),n=Da(n),n=n.filter((e=>e)),n};const Ba=/\p{Letter}/u,$a=/[\p{Number}\p{Currency_Symbol}]/u,Sa=/^[a-z]\.([a-z]\.)+/i,Ka=/[sn]['โ€™]$/;var Ma=function(e,t){let{prePunctuation:n,postPunctuation:r,emoticons:a}=t.one,o=e,i="",s="",l=Array.from(e);if(a.hasOwnProperty(e.trim()))return{str:e.trim(),pre:i,post:" "};let u=l.length;for(let e=0;e(s=e||"",""))),e=o,i=""),{str:e,pre:i,post:s}},La=(e,t)=>{let{str:n,pre:r,post:a}=Ma(e,t);return{text:n,pre:r,post:a,tags:new Set}},Ja=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("")},Wa=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 qa=/([A-Z]\.)+[A-Z]?,?$/,Ua=/^[A-Z]\.,?$/,Ra=/[A-Z]{2,}('s|,)?$/,Qa=/([a-z]\.)+[a-z]\.?$/;var _a=function(e){return function(e){return!0===qa.test(e)||!0===Qa.test(e)||!0===Ua.test(e)||!0===Ra.test(e)}(e)&&(e=e.replace(/\./g,"")),e},Za=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=Wa(r),r=n(r,t),r=_a(r),e.normal=r},Xa=function(e,t){const{methods:n,model:r}=t,{splitSentences:a,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=a(e=e||"",t).map((e=>{let n=o(e,r);return n=n.map((e=>i(e,r))),n.forEach((e=>{Za(e,t)})),n})),e};const Ya=/[ .][A-Z]\.? *$/i,eo=/(?:\u2026|\.{2,}) *$/,to=/\p{L}/u,no=/\. *$/,ro=/^[A-Z]\. $/;var ao=function(e,t){if(!1===to.test(e))return!1;if(!0===Ya.test(e))return!1;if(3===e.length&&ro.test(e))return!1;if(!0===eo.test(e))return!1;let n=e.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),r=n[n.length-1].toLowerCase();return!0!==t.hasOwnProperty(r)||!0!==no.test(e)},oo={one:{killUnicode:Ja,tokenize:{splitSentences:xa,isSentence:ao,splitTerms:za,splitWhitespace:La,fromString:Xa}}},io={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let so={},lo={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","ยตg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","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=>{so[t]=!0,lo[t]="Abbreviation",void 0!==e[1]&&(lo[t]=[lo[t],e[1]])}))}));var uo=["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","ex"].reduce(((e,t)=>(e[t]=!0,e)),{});let co={"!":"ยก","?":"ยฟษ",'"':'โ€œโ€"โโž',"'":"โ€˜โ€›โ›โœโ€™","-":"โ€”โ€“",a:"ยชร€รร‚รƒร„ร…ร รกรขรฃรครฅฤ€ฤฤ‚ฤƒฤ„ฤ…ววŽวžวŸว วกวบวปศ€ศศ‚ศƒศฆศงศบฮ†ฮ‘ฮ”ฮ›ฮฌฮฑฮปะะฐัฆังำำ‘ำ’ำ“ฦ›รฆ",b:"รŸรพฦ€ฦฦ‚ฦƒฦ„ฦ…ษƒฮ’ฮฒฯฯฆะ‘ะ’ะชะฌะฒัŠัŒัขัฃาŒา",c:"ยขยฉร‡รงฤ†ฤ‡ฤˆฤ‰ฤŠฤ‹ฤŒฤฦ†ฦ‡ฦˆศปศผอปอผฯฒฯนฯฝฯพะกัั”า€าาชาซ",d:"รฤŽฤฤฤ‘ฦ‰ฦŠศกฦ‹ฦŒ",e:"รˆร‰รŠร‹รจรฉรชรซฤ’ฤ“ฤ”ฤ•ฤ–ฤ—ฤ˜ฤ™ฤšฤ›ฦศ„ศ…ศ†ศ‡ศจศฉษ†ษ‡ฮˆฮ•ฮžฮฃฮญฮตฮพฯตะ€ะะ•ะตัั‘าผาฝาพาฟำ–ำ—แป…",f:"ฦ‘ฦ’ฯœฯำบำปา’า“ลฟ",g:"ฤœฤฤžฤŸฤ ฤกฤขฤฃฦ“วควฅวฆวงวดวต",h:"ฤคฤฅฤฆฤงฦ•วถศžศŸฮ‰ฮ—ะ‚ะŠะ‹ะะฝั’ั›าขาฃาคาฅาบาปำ‰ำŠ",I:"รŒรรŽร",i:"รฌรญรฎรฏฤจฤฉฤชฤซฤฌฤญฤฎฤฏฤฐฤฑฦ–ฦ—ศˆศ‰ศŠศ‹ฮŠฮฮชฮฏฮนฯŠะ†ะ‡ั–ั—iฬ‡",j:"ฤดฤตวฐศทษˆษ‰ฯณะˆั˜",k:"ฤถฤทฤธฦ˜ฦ™วจวฉฮšฮบะŒะ–ะšะถะบัœาšา›าœาาžาŸา าก",l:"ฤนฤบฤปฤผฤฝฤพฤฟล€ลล‚ฦšฦชว€ววศดศฝฮ™ำ€ำ",m:"ฮœฯบฯปะœะผำำŽ",n:"ร‘รฑลƒล„ล…ล†ล‡ลˆล‰ลŠล‹ฦฦžวธวนศ ศตฮฮ ฮฎฮทฯžะะ˜ะ™ะ›ะŸะธะนะปะฟัาŠา‹ำ…ำ†ำขำฃำคำฅฯ€",o:"ร’ร“ร”ร•ร–ร˜รฐรฒรณรดรตรถรธลŒลลŽลลล‘ฦŸฦ ฦกว‘ว’วชวซวฌวญวพวฟศŒศศŽศศชศซศฌศญศฎศฏศฐศฑฮŒฮ˜ฮŸฮธฮฟฯƒฯŒฯ•ฯ˜ฯ™ฯฌฯดะžะคะพัฒัณำฆำงำจำฉำชำซ",p:"ฦคฮกฯฯทฯธฯผะ ั€าŽารž",q:"ษŠษ‹",r:"ล”ล•ล–ล—ล˜ล™ฦฆศศ‘ศ’ศ“ษŒษะƒะ“ะฏะณัั“าา‘",s:"ลšล›ลœลลžลŸล ลกฦงฦจศ˜ศ™ศฟะ…ั•",t:"ลขลฃลคลฅลฆลงฦซฦฌฦญฦฎศšศ›ศถศพฮ“ฮคฯ„ฯฎะขั‚",u:"ร™รšร›รœรนรบรปรผลจลฉลชลซลฌลญลฎลฏลฐลฑลฒลณฦฏฦฐฦฑฦฒว“ว”ว•ว–ว—ว˜ว™วšว›วœศ”ศ•ศ–ศ—ษ„ฮฐฯ…ฯ‹ฯ",v:"ฮฝัดัตัถัท",w:"ลดลตฦœฯ‰ฯŽฯ–ฯขฯฃะจะฉัˆั‰ักัฟ",x:"ร—ฮงฯ‡ฯ—ฯฐะฅั…าฒาณำผำฝำพำฟ",y:"รรฝรฟลถลทลธฦณฦดศฒศณษŽษฮŽฮฅฮซฮณฯˆฯ’ฯ“ฯ”ะŽะฃัƒั‡ัžัฐัฑาฎาฏาฐาฑำฎำฏำฐำฑำฒำณ",z:"ลนลบลปลผลฝลพฦตฦถศคศฅษ€ฮ–"},ho={};Object.keys(co).forEach((function(e){co[e].split("").forEach((function(t){ho[t]=e}))}));const go=/\//,mo=/[a-z]\.[a-z]/i,po=/[0-9]/;var fo=function(e,t){let n=e.normal||e.text||e.machine;const r=t.model.one.aliases;if(r.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(r[n])),go.test(n)&&!mo.test(n)&&!po.test(n)){let t=n.split(go);t.length<=3&&t.forEach((t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))}))}return e};const vo=/^\p{Letter}+-\p{Letter}+$/u;var bo=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"),vo.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)},yo=function(e){let t=e.docs,n={};for(let e=0;eAo(e,fo),machine:e=>Ao(e,bo),normal:e=>Ao(e,Za),freq:yo,offset:wo,index:ko,wordCount:Po},methods:oo,model:{one:{aliases:io,abbreviations:so,prefixes:uo,suffixes:{like:!0,ish:!0,less:!0,able:!0,elect:!0,type:!0,designate:!0},prePunctuation:{"#":!0,"@":!0,_:!0,"ยฐ":!0,"โ€‹":!0,"โ€Œ":!0,"โ€":!0,"\ufeff":!0},postPunctuation:{"%":!0,_:!0,"ยฐ":!0,"โ€‹":!0,"โ€Œ":!0,"โ€":!0,"\ufeff":!0},lexicon:lo,unicode:ho,emoticons:{"<3":!0,"{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 To={safe:!0,min:3};var Do={typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},To,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=Io(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}},Ho={model:{one:{typeahead:{}}},api:xo,lib:Do,compute:jo,hooks:["typeahead"]};v.extend(ee),v.extend(tr),v.extend(yn),v.extend(mr),v.extend(la),v.plugin(He),v.extend(Co),v.extend(Ve),v.plugin(k),v.extend(Xe),v.extend(Ho),v.extend(Je),v.extend(jr);var Go={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",volcano:"volcanoes"},Eo={Comparative:"trueยฆbett1f0;arth0ew0in0;er",Superlative:"trueยฆearlier",PresentTense:"trueยฆbests,sounds",Condition:"trueยฆlest,unless",PastTense:"trueยฆbegan,came,d4had,kneel3l2m0sa4we1;ea0sg2;nt;eap0i0;ed;id",Participle:"trueยฆ0:09;a06b01cZdXeat0fSgQhPoJprov0rHs7t6u4w1;ak0ithdra02o2r1;i02uY;k0v0;nd1pr04;ergoJoJ;ak0hHo3;e9h7lain,o6p5t4un3w1;o1um;rn;g,k;ol0reS;iQok0;ught,wn;ak0o1runk;ne,wn;en,wn;ewriNi1uJ;dd0s0;ut3ver1;do4se0t1;ak0h2;do2g1;roG;ne;ast0i7;iv0o1;ne,tt0;all0loBor1;bi3g2s1;ak0e0;iv0o9;dd0;ove,r1;a5eamt,iv0;hos0lu1;ng;e4i3lo2ui1;lt;wn;tt0;at0en,gun;r2w1;ak0ok0;is0;en",Gerund:"trueยฆaccord0be0doin,go0result0stain0;ing",Expression:"trueยฆa0Yb0Uc0Sd0Oe0Mfarew0Lg0FhZjeez,lWmVnToOpLsJtIuFvEw7y0;a5e3i1u0;ck,p;k04p0;ee,pee;a0p,s;!h;!a,h,y;a5h2o1t0;af,f;rd up,w;atsoever,e1o0;a,ops;e,w;hoo,t;ery w06oi0L;gh,h0;! 0h,m;huh,oh;here nPsk,ut tut;h0ic;eesh,hh,it,oo;ff,h1l0ow,sst;ease,s,z;ew,ooey;h1i,mg,o0uch,w,y;h,o,ps;! 0h;hTmy go0wT;d,sh;a7evertheless,o0;!pe;eh,mm;ah,eh,m1ol0;!s;ao,fao;aCeBi9o2u0;h,mph,rra0zzC;h,y;l1o0;r6y9;la,y0;! 0;c1moCsmok0;es;ow;!p hip hoor0;ay;ck,e,llo,y;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;ell;e0h,t cetera,ureka,ww,xcuse me;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;mon,o0;ngratulations,wabunga;a2oo1r0tw,ye;avo,r;!ya;h,m; 1h0ka,las,men,rgh,ye;!a,em,h,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ยฆdick0gre0ones,records;ens","Unit|Noun":"trueยฆcEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,t,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s",Value:"trueยฆa few",Imperative:"trueยฆbewa0come he0;re","Plural|Verb":"trueยฆleaves",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:4Q;a3Tb3Bc2Od2He2Df27g1Zh1Ti1Pj1Nk1Ll1Gm12n0Po0Mp0Cqu0Br02sTtHuCv9w3xiaomi,y1;amaha,m1Bou1w1B;gov,tu3C;a4e2iki1orld trade organizati33;leaRped0O;lls fargo,st1;fie2Hinghou2R;l1rner br3U;gree3Jl street journ2Im1E;an halOeriz2Xisa,o1;dafo2Yl1;kswagMvo;b4kip,n2ps,s1;a tod3Aps;es3Mi1;lev3Fted natio3C;er,s; mobi32aco beRd bOe9gi frida3Lh3im horto3Amz,o1witt3D;shi49y1;ota,s r 05;e 1in lizzy;b3carpen3Jdaily ma3Dguess w2holli0s1w2;mashing pumpki35uprem0;ho;ea1lack eyed pe3Xyr0Q;ch bo3Dtl0;l2n3Qs1xas instrumen1U;co,la m1F;efoni0Kus;a8cientology,e5ieme2Ymirnoff,np,o3pice gir6quare0Ata1ubaru;rbuc1to34;ks;ny,undgard1;en;a2x pisto1;ls;g1Wrs;few2Minsbur31lesfor03msu2E;adiohead,b8e4o1yana3C;man empi1Xyal 1;b1dutch she4;ank;a3d 1max,vl20;bu1c2Ahot chili peppe2Ylobst2N;ll;ders dige1Ll madrid;c,s;ant3Aizn2Q;a8bs,e5fiz2Ihilip4i3r1;emier 1udenti1D;leagTo2K;nk floyd,zza hut; morrBs;psi2tro1uge0E;br33chi0Tn33;!co;lant2Un1yp16; 2ason27da2P;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0QvZ;l,s;c,st1Otflix,w1; 1sweek;kids on the block,york0D;a,c;nd22s2t1;ional aca2Po,we0U;a,c02d0S;aDcdonalCe9i6lb,o3tv,y1;spa1;ce;b1Tnsanto,ody blu0t1;ley cr1or0T;ue;c2t1;as,subisO;helin,rosoft;dica2rcedes benz,talli1;ca;id,re;ds;cs milk,tt19z24;a3e1g,ittle caesa1P; ore09novo,x1;is,mark,us; 1bour party;pres0Dz boy;atv,fc,kk,lm,m1od1O;art;iffy lu0Roy divisi0Jpmorgan1sa;! cha09;bm,hop,k3n1tv;g,te1;l,rpol;ea;a5ewlett pack1Vi3o1sbc,yundai;me dep1n1P;ot;tac1zbollah;hi;lliburt08sbro;eneral 6hq,ithub,l5mb,o2reen d0Ou1;cci,ns n ros0;ldman sachs,o1;dye1g0H;ar;axo smith kli04encoW;electr0Nm1;oto0Z;a5bi,c barcelo4da,edex,i2leetwood m03o1rito l0G;rd,xcY;at,fa,nancial1restoZ; tim0;na;cebook,nnie mae;b0Asa,u3xxon1; m1m1;ob0J;!rosceptics;aiml0De5isney,o4u1;nkin donu2po0Zran dur1;an;ts;j,w jon0;a,f lepp12ll,peche mode,r spieg02stiny's chi1;ld;aJbc,hFiDloudflaCnn,o3r1;aigsli5eedence clearwater reviv1ossra09;al;c7inba6l4m1o0Est09;ca2p1;aq;st;dplSg1;ate;se;a c1o chanQ;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil a,na daily;r1y;on;d2pital o1rls jr;ne;bury,ill1;ac;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;cardi,idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser busDol,ppleAr6s4u3v2y1;er;is,on;di,todesk;hland o1sociated E;il;b3g2m1;co;os;ys; compu1be0;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ยฆits,my,our0thy;!s","Noun|Verb":"trueยฆ0:9W;1:AA;2:96;3:A3;4:9R;5:A2;6:9K;7:8N;8:7L;9:A8;A:93;B:8D;C:8X;a9Ob8Qc7Id6Re6Gf5Sg5Hh55i4Xj4Uk4Rl4Em40n3Vo3Sp2Squ2Rr21s0Jt02u00vVwGyFzD;ip,oD;ne,om;awn,e6Fie68;aOeMhJiHoErD;ap,e9Oink2;nd0rDuC;kDry,sh5Hth;!shop;ck,nDpe,re,sh;!d,g;e86iD;p,sD;k,p0t2;aDed,lco8W;r,th0;it,lk,rEsDt4ve,x;h,te;!ehou1ra9;aGen5FiFoD;iDmAte,w;ce,d;be,ew,sA;cuum,l4B;pDr7;da5gra6Elo6A;aReQhrPiOoMrGuEwiDy5Z;n,st;nDrn;e,n7O;aGeFiEoDu6;t,ub2;bu5ck4Jgg0m,p;at,k,nd;ck,de,in,nsDp,v7J;f0i8R;ll,ne,p,r4Yss,t94uD;ch,r;ck,de,e,le,me,p,re;e5Wow,u6;ar,e,ll,mp0st,xt;g,lDng2rg7Ps5x;k,ly;a0Sc0Ne0Kh0Fi0Dk0Cl0Am08n06o05pXquaBtKuFwD;ea88iD;ng,pe,t4;bGit,m,ppErD;fa3ge,pri1v2U;lDo6S;e6Py;!je8;aMeLiKoHrEuDy2;dy,ff,mb2;a85eEiDo5Pugg2;ke,ng;am,ss,t4;ckEop,p,rD;e,m;ing,pi2;ck,nk,t4;er,m,p;ck,ff,ge,in,ke,lEmp,nd,p2rDte,y;!e,t;k,l;aJeIiHlGoFrDur,y;ay,e56inDu3;g,k2;ns8Bt;a5Qit;ll,n,r87te;ed,ll;m,n,rk;b,uC;aDee1Tow;ke,p;a5Je4FiDo53;le,rk;eep,iDou4;ce,p,t;ateboa7Ii;de,gnDl2Vnk,p,ze;!al;aGeFiEoDuff2;ck,p,re,w;ft,p,v0;d,i3Ylt0;ck,de,pe,re,ve;aEed,nDrv1It;se,t2N;l,r4t;aGhedu2oBrD;aEeDibb2o3Z;en,w;pe,t4;le,n,r2M;cDfegua72il,mp2;k,rifi3;aZeHhy6LiGoEuD;b,in,le,n,s5X;a6ck,ll,oDpe,u5;f,t;de,ng,ot,p,s1W;aTcSdo,el,fQgPje8lOmMnLo17pJque6sFturn,vDwa6V;eDi27;al,r1;er74oFpe8tEuD;lt,me;!a55;l71rt;air,eaDly,o53;l,t;dezvo2Zt;aDedy;ke,rk;ea1i4G;a6Iist0r5N;act6Yer1Vo71uD;nd,se;a38o6F;ch,s6G;c1Dge,iEke,lly,nDp1Wt1W;ge,k,t;n,se;es6Biv0;a04e00hYiXlToNrEsy4uD;mp,n4rcha1sh;aKeIiHoDu4O;be,ceFdu3fi2grDje8mi1p,te6;amDe6W;!me;ed,ss;ce,de,nt;sDy;er6Cs;cti3i1;iHlFoEp,re,sDuCw0;e,i5Yt;l,p;iDl;ce,sh;nt,s5V;aEce,e32uD;g,mp,n7;ce,nDy;!t;ck,le,n17pe,tNvot;a1oD;ne,tograph;ak,eFnErDt;fu55mA;!c32;!l,r;ckJiInHrFsEtDu1y;ch,e9;s,te;k,tD;!y;!ic;nt,r,se;!a7;bje8ff0il,oErDutli3Qver4B;bAd0ie9;ze;a4ReFoDur1;d,tD;e,i3;ed,gle8tD;!work;aMeKiIoEuD;rd0;ck,d3Rld,nEp,uDve;nt,th;it5EkD;ey;lk,n4Brr5CsDx;s,ta2B;asuBn4UrDss;ge,it;il,nFp,rk3WsEtD;ch,t0;h,k,t0;da5n0oeuvB;aLeJiHoEuD;mp,st;aEbby,ck,g,oDve;k,t;d,n;cDe,ft,mAnIst;en1k;aDc0Pe4vK;ch,d,k,p,se;bFcEnd,p,t4uD;gh,n4;e,k;el,o2U;eEiDno4E;ck,d,ll,ss;el,y;aEo1OuD;i3mp;m,zz;mpJnEr46ssD;ue;c1Rdex,fluGha2k,se2HteDvoi3;nt,rD;e6fa3viD;ew;en3;a8le2A;aJeHiGoEuD;g,nt;l3Ano2Dok,pDr1u1;!e;ghli1Fke,nt,re,t;aDd7lp;d,t;ck,mGndFrEsh,tDu9;ch,e;bo3Xm,ne4Eve6;!le;!m0;aMear,ift,lKossJrFuD;arDe4Alp,n;antee,d;aFiEoDumb2;uCwth;ll,nd,p;de,sp;ip;aBoDue;ss,w;g,in,me,ng,s,te,ze;aZeWiRlNoJrFuD;ck,el,nDss,zz;c38d;aEoDy;st,wn;cDgme,me,nchi1;tuB;cFg,il,ld,rD;ce,e29mDwa31;!at;us;aFe0Vip,oDy;at,ck,od,wD;!er;g,ke,me,re,sh,vo1E;eGgFlEnDre,sh,t,x;an3i0Q;e,m,t0;ht,uB;ld;aEeDn3;d,l;r,tuB;ce,il,ll,rm,vo2W;cho,d7ffe8nMsKxFyeD;!baD;ll;cGerci1hFpDtra8;eriDo0W;en3me9;au6ibA;el,han7u1;caDtima5;pe;count0d,vy;a01eSiMoJrEuDye;b,el,mp,pli2X;aGeFiEoD;ne,p;ft,ll,nk,p,ve;am,ss;ft,g,in;cEd7ubt,wnloD;ad;k,u0E;ge6p,sFt4vD;e,iDor3;de;char7gui1h,liEpD;at4lay,u5;ke;al,bKcJfeIlGmaCposAsEtaD;il;e07iD;gn,re;ay,ega5iD;ght;at,ct;li04rea1;a5ut;b,ma7n3rDte;e,t;a0Eent0Dh06irc2l03oKrFuD;be,e,rDt;b,e,l,ve;aGeFoEuDy;sh;p,ss,wd;dAep;ck,ft,sh;at,de,in,lTmMnFordina5py,re,st,uDv0;gh,nDp2rt;s01t;ceHdu8fli8glomeIsFtDveN;a8rD;a6ol;e9tru8;ct;ntDrn;ra5;bHfoGmFpD;leDouCromi1;me9;aCe9it,u5;rt;at,iD;ne;lap1oD;r,ur;aEiDoud,ub;ck,p;im,w;aEeDip;at,ck,er;iGllen7nErD;ge,m,t;ge,nD;el;n,r;er,re;ke,ll,mp,noe,pGrXsFtEuDve;se,ti0I;alog,ch;h,t;!tuB;re;a03eZiXlToPrHuEyD;pa11;bb2ck2dgEff0mp,rDst,zz;den,n;et;anJeHiFoadEuD;i1sh;ca6;be,d7;ge;aDed;ch,k;ch,d;aFg,mb,nEoDrd0tt2x,ycott;k,st,t;d,e;rd,st;aFeCiDoYur;nk,tz;nd;me;as,d,ke,nd,opsy,tD;!ch,e;aFef,lt,nDt;d,efA;it;r,t;ck,il,lan3nIrFsEtt2;le;e,h;!gDk;aDe;in;!d,g,k;bu1c05dZge,iYlVnTppQrLsIttGucEwaD;rd;tiD;on;aDempt;ck;k,sD;i6ocia5;st;chFmD;!oD;ur;!iD;ve;eEroa4;ch;al;chDg0sw0;or;aEt0;er;rm;d,m,r;dreHvD;an3oD;ca5;te;ce;ss;cDe,he,t;eFoD;rd,u9;nt;nt,ss;se",Actor:"trueยฆ0:7B;1:7G;2:6A;3:7F;4:7O;5:7K;a6Nb62c4Ud4Be41f3Sg3Bh30i2Uj2Qkin2Pl2Km26n1Zo1Sp0Vqu0Tr0JsQtJuHvEw8yo6;gi,ut6;h,ub0;aAe9i8o7r6;estl0it0;m2rk0;fe,nn0t2Bza2H;atherm2ld0;ge earn0it0nder0rri1;eter7i6oyF;ll5Qp,s3Z;an,ina2U;n6s0;c6Uder03;aoisea23e9herapi5iktok0o8r6ut1yco6S;a6endseLo43;d0mp,nscri0Bvel0;ddl0u1G;a0Qchn7en6na4st0;ag0;i3Oo0D;aiXcUeRhPiMki0mu26oJpGquaFtBu7wee6;p0theart;lt2per7r6;f0ge6Iviv1;h6inten0Ist5Ivis1;ero,um2;a8ep7r6;ang0eam0;bro2Nc2Ofa2Nmo2Nsi20;ff0tesm2;tt0;ec7ir2Do6;kesp59u0M;ia5Jt3;l7me6An,rcere6ul;r,ss;di0oi5;n7s6;sy,t0;g0n0;am2ephe1Iow6;girl,m2r2Q;cretInior cit3Fr6;gea4v6;a4it1;hol4Xi7reen6ulpt1;wr2C;e01on;l1nt;aEe9o8u6;l0nn6;er up,ingE;g40le mod3Zof0;a4Zc8fug2Ppo32searQv6;ere4Uolution6;ary;e6luYru22;ptio3T;bbi,dic5Vpp0;arter6e2Z;back;aYeWhSiRlOoKr8sycho7u6;nk,p31;logi5;aGeDiBo6;d9fess1g7ph47s6;pe2Ktitu51;en6ramm0;it1y;igy,uc0;est4Nme mini0Unce6s3E;!ss;a7si6;de4;ch0;ctiti39nk0P;dca0Oet,li6pula50rnst42;c2Itic6;al scie6i2;nti5;a6umb0;nn0y6;er,ma4Lwright;lgrim,one0;a8iloso7otogra7ra6ysi1V;se;ph0;ntom,rmaci5;r6ssi1T;form0s4O;i3El,nel3Yr8st1tr6wn;i6on;arWot;ent4Wi42tn0;ccupa4ffBp8r7ut6;ca5l0B;ac4Iganiz0ig2Fph2;er3t6;i1Jomet6;ri5;ic0spring;aBe9ie4Xo7u6;n,rser3J;b6mad,vi4V;le2Vo4D;i6mesis,phew;ce,ghb1;nny,rr3t1X;aEeDiAo7u6yst1Y;m8si16;der3gul,m7n6th0;arDk;!my;ni7s6;f02s0Jt0;on,st0;chan1Qnt1rcha4;gi9k0n8rtyr,t6y1;e,riar6;ch;ag0iac;ci2stra3I;a7e2Aieutena4o6;rd,s0v0;bor0d7ndlo6ss,urea3Fwy0ym2;rd;!y;!s28;e8o7u6;ggl0;gg0urna2U;st0;c3Hdol,llu3Ummigra4n6; l9c1Qfa4habi42nov3s7ve6;nt1stig3;pe0Nt6;a1Fig3ru0M;aw;airFeBistoAo8u6ygie1K;man6sba2H;!ita8;bo,st6usekN;age,e3P;ri2;ir,r6;m7o6;!ine;it;dress0sty2C;aLeIhostGirl26ladi3oCrand7u6;e5ru;c9daug0Jfa8m7pa6s2Y;!re4;a,o6;th0;hi1B;al7d6lf0;!de3A;ie,k6te26;eep0;!wr6;it0;isha,n6;i6tl04;us;mbl0rden0;aDella,iAo7r6;eela2Nie1P;e,re6ster pare4;be1Hm2r6st0;unn0;an2ZgZlmm17nanci0r6tt0;e6st la2H; marsh2OfigXm2;rm0th0;conoEdDlectriCm8n7x6;amin0cellency,i2A;emy,trepreneur,vironmenta1J;c8p6;er1loye6;e,r;ee;ci2;it1;mi5;aKeBi8ork,ri7u6we02;de,tche2H;ft0v0;ct3eti7plom2Hre6va;ct1;ci2ti2;aDcor3fencCi0InAput9s7tectLvel6;op0;ce1Ge6ign0;rt0;ee,y;iz6;en;em2;c1Ml0;d8nc0redev7ug6;ht0;il;!dy;a06e04fo,hXitizenWlToBr9u6;r3stomer6;! representat6;ive;e3it6;ic;lJmGnAord9rpor1Nu7w6;boy,ork0;n6ri0;ciTte1Q;in3;fidantAgressSs9t6;e0Kr6;ibut1o6;ll0;tab13ul1O;!e;edi2m6pos0rade;a0EeQissi6;on0;leag8on7um6;ni5;el;ue;e6own;an0r6;ic,k;!s;a9e7i6um;ld;erle6f;ad0;ir7nce6plFract0;ll1;m2wI;lebri6o;ty;dBptAr6shi0;e7pe6;nt0;r,t6;ak0;ain;et;aMeLiJlogg0oErBu6;dd0Fild0rgl9siness6;m2p7w6;om2;ers05;ar;i7o6;!k0th0;cklay0de,gadi0;hemi2oge8y6;!frie6;nd;ym2;an;cyc6sR;li5;atbox0ings;by,nk0r6;b0on7te6;nd0;!e07;c04dWge4nQpLrHsFtAu7yatull6;ah;nt7t6;h1oG;!ie;h8t6;e6orney;nda4;ie5le6;te;sis00tron6;aut,om0;chbis8isto7tis6;an,t;crU;hop;ost9p6;ari6rentiS;ti6;on;le;a9cest1im3nou8y6;bo6;dy;nc0;ly5rc6;hi5;mi8v6;entur0is1;er;ni7r6;al;str3;at1;or;counBquaintanArob9t6;ivi5or,re6;ss;st;at;ce;ta4;nt","Adj|Noun":"trueยฆ0:16;a1Db17c0Ud0Re0Mf0Dg0Ah08i06ju05l02mWnUoSpNrIsBt7u4v1watershed;a1ision0Z;gabo4nilla,ria1;b0Vnt;ndergr1pstairs;adua14ou1;nd;a3e1oken,ri0;en,r1;min0rori13;boo,n;age,e5ilv0Flack,o3quat,ta2u1well;bordina0Xper5;b0Lndard;ciali0Yl1vereign;e,ve16;cret,n1ri0;ior;a4e2ou1ubbiL;nd,tiY;ar,bBl0Wnt0p1side11;resent0Vublican;ci0Qsh;a4eriodic0last0Zotenti0r1;emi2incip0o1;!fession0;er,um;rall4st,tie0U;ff1pposi0Hv0;ens0Oi0C;agg01ov1uts;el;a5e3iniatJo1;bi01der07r1;al,t0;di1tr0N;an,um;le,riG;attOi2u1;sh;ber0ght,qC;stice,veniT;de0mpressioYn1;cumbe0Edividu0no0Dsta0Eterim;alf,o1umdrum;bby,melF;en2old,ra1;ph0Bve;er0ious;a7e5i4l3u1;git03t1;ure;uid;ne;llow,m1;aFiL;ir,t,vo1;riOuriO;l3p00x1;c1ecutUpeV;ess;d1iK;er;ar2e1;mographUrivO;k,l2;hiGlassSo2rude,unn1;ing;m5n1operK;creCstitueOte2vertab1;le;mpor1nt;ary;ic,m2p1;anion,lex;er2u1;ni8;ci0;al;e5lank,o4r1;i2u1;te;ef;ttom,urgeois;st;cadem9d6l2ntarct9r1;ab,ct8;e3tern1;at1;ive;rt;oles1ult;ce1;nt;ic","Adj|Past":"trueยฆ0:4Q;1:4C;2:4H;3:4E;a44b3Tc36d2Je29f20g1Wh1Si1Jj1Gkno1Fl1Am15n12o0Xp0Mqu0Kr08sLtEuAv9w4yellow0;a7ea6o4rinkl0;r4u3Y;n,ri0;k31th3;rp0sh0tZ;ari0e1O;n5p4s0;d1li1Rset;cov3derstood,i4;fi0t0;a8e3Rhr7i6ouTr4urn0wi4C;a4imm0ou2G;ck0in0pp0;ed,r0;eat2Qi37;m0nn0r4;get0ni2T;aOcKeIhGimFm0Hoak0pDt7u4;bsid3Ogge44s4;pe4ta2Y;ct0nd0;a8e7i2Eok0r5u4;ff0mp0nn0;ength2Hip4;ed,p0;am0reotyp0;in0t0;eci4ik0oH;al3Efi0;pRul1;a4ock0ut;d0r0;a4c1Jle2t31;l0s3Ut0;a6or5r4;at4e25;ch0;r0tt3;t4ut0;is2Mur1;aEe5o4;tt0;cAdJf2Bg9je2l8m0Knew0p7qu6s4;eTpe2t4;or0ri2;e3Dir0;e1lac0;at0e2Q;i0Rul1;eiv0o4ycl0;mme2Lrd0v3;in0lli0ti2A;a4ot0;li28;aCer30iBlAo9r5u4;mp0zzl0;e6i2Oo4;ce2Fd4lo1Anou30pos0te2v0;uc0;fe1CocCp0Iss0;i2Kli1L;ann0e2CuS;ck0erc0ss0;ck0i2Hr4st0;allLk0;bse7c6pp13rgan2Dver4;lo4whelm0;ok0;cupi0;rv0;aJe5o4;t0uri1A;ed0gle2;a6e5ix0o4ut0ys1N;di1Nt15u26;as0Clt0;n4rk0;ag0ufact0A;e6i5o4;ad0ck0st,v0;cens0m04st0;ft,v4;el0;tt0wn;a5o15u4;dg0s1B;gg0;llumSmpAn4sol1;br0cre1Ldebt0f8jZspir0t5v4;it0olv0;e4ox0Y;gr1n4re23;d0si15;e2l1o1Wuri1;li0o01r4;ov0;a6e1o4um03;ok0r4;ri0Z;mm3rm0;i6r5u4;a1Bid0;a0Ui0Rown;ft0;aAe9i8l6oc0Ir4;a4i0oz0Y;ctHg19m0;avo0Ju4;st3;ni08tt0x0;ar0;d0il0sc4;in1;dCl1mBn9quipp0s8x4;agger1c6p4te0T;a0Se4os0;ct0rie1D;it0;cap0tabliZ;cha0XgFha1As4;ur0;a0Zbarra0N;i0Buc1;aMeDi5r4;a01i0;gni08miniSre2s4;a9c6grun0Ft4;o4re0Hu17;rt0;iplWou4;nt0r4;ag0;bl0;cBdRf9l8p7ra6t5v4;elop0ot0;ail0ermQ;ng0;re07;ay0ight0;e4in0o0M;rr0;ay0enTor1;m5t0z4;ed,zl0;ag0p4;en0;aPeLhIlHo9r6u4;lt4r0stom03;iv1;a5owd0u4;sh0;ck0mp0;d0loAm7n4ok0v3;centr1f5s4troC;id3olid1;us0;b5pl4;ic1;in0;r0ur0;assi9os0utt3;ar5i4;ll0;g0m0;lebr1n6r4;ti4;fi0;tralJ;g0lcul1;aDewild3iCl9o7r5urn4;ed,t;ok4uis0;en;il0r0t4und;tl0;e5i4;nd0;ss0;as0;ffl0k0laMs0tt3;bPcNdKfIg0lFmaz0nDppBrm0ss9u5wa4;rd0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;a5leg0t3;er0;rm0;fe2;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;and5so4;rb0;on0;ed",Singular:"trueยฆ0:5I;1:5G;2:4V;3:4R;4:51;5:56;6:5K;a4Zb4Ic3Ld33e2Vf2Mg2Hh26in22j21k20l1Sm1Jn1Fo19p0Pqu0Or0DsXtKuFvAw7x r55yo yo;a7ha3No3O;f3i4Ot0Ey7;! arou37;arAe8ideo ga2Oo7;cabu4Gl59;gMr7t;di4Wt1W;iety,ni4M;n9p2Yr8s 7;do41s5B;bani1in0;coordinat38der7;estima1to22we3Z; rex,aIeHhFiDoCr9u8v7;! show;m2Mn2rntJto1B;agedy,ib7o4B;e,u7;n0ta43;ni1p2rq3J;c,er,m7;etD;ing7ree24;!y;am,mp3D;ct2le6x return;aLcKeIhor4NiHkFoEpin off,tBu9y7;ll7ner4Jst4Q;ab2V;b7i1n26per bowl,rro1V;st3Jtot0;at8ipe2Eo1Jrate4Fudent7;! lo0G;i37u1;ft ser4Imeo1G;elet5i7;ll,r3S;b36gn2Rte;ab2Hc7min39;t,urity gua2L;e6ho2W;bbatic0la3Gndwi0Opi5;av5eBhetor2i8o7;de6om,w;t8v7;erb2A;e,u0;bBc9f7publ2r0Yspi1;er7orm3;e6r0;i7ord label;p2Ft0;a1u43;estion mark,ot2D;aNeKhoJiGlEoCr8u7yram1D;ddi3EpCrpo1Hs3G;e9o7;bl3Ws7;pe3Gta1;dic1Pmi1Dp1Oroga3Sss relea1D;p7rt0;py;a7ebisci1;q2Bte;cn2e8g7;!gy;!r;ne call,tocoI;anut,d8r7t0yo1;cen3Gsp3H;al,est0;nop4r8t7;e,hog5;adi0Zi2S;atme0bj3Cc9pia1rde0thers,utspok5ve7wn3;n,r7;ti0Nview;cu8e7;an;pi3;ar9it8ot7umb3;a2Chi2O;e,ra1;cot2ra34;aDeAi8o7ur0;nopo4p16rni2Ksq1Pti33uld;c,li0Zn08s7tt5;chief,si31;d8nu,t7;al,i3;al,ic;gna1mm0nd13rsupi0te7yf4;ri0;aBegAi9u7;ddi1n7;ch;me,p07; 9e0K;bor12y7; 7er;up;eyno1itt5;el4ourn0;c9dices,itia2Kni22s8tel0Jvert7;eb1H;e25titu1;en2Hi2Q;aGeCighBo8u7;man right,s1Z;me7rmoDsp1Dtb0I;! r7;un; scho0WriW;a7i1K;d7v5; start,pho7;ne;ndful,sh brown,v5ze;a9elat0Glaci3r7ul4yp1P;an7enadi3id;a19d slam,ny;df4r7;l2ni1F;aEeti1EiDlu1oAr8un7;er0;ee market,i7onti3;ga1;l4ur7;so7;me;eNref4;br2mi4;conoDffi1Mgg,lecto0Pmbas1BnApidem2s1Wth2ven9x8yel7;id;ampXempl0Lte6;i16t;er1Iterp7;ri7;se;my;eJiCo9r7ump tru0R;agonf4i7;er,ve thru;c8g1Bi4or,ssi3wn7;side;to0CumenC;aCgniBnn3s8vide7;nd;conte6incen1Bp7tri0Y;osi7;tion;ta0E;le0U;ath9c8f7ni0terre6;ault 03err0;al,im0;!b7;ed;aUeRhKiJlHoBr7;edit ca9uc7;ib7;le;rd;efficBke,lAmmuniqJns8pi3rr0t0Uus7yo1;in;erv7uG;atoZ;ic,lO;ie6;er0Li7oth;e6n2;ty,vil wK;aBeqAick5oco9r7;istmas car7ysanthemum;ol;la1;ue;ndeli3racteri7;st2;i8llCr7;e0tifica1;liW;hi3nDpCrAt7ucus;erpi7hedr0;ll7;ar;!bohyd7ri3;ra1;it0;a7e,nib0;l,ry;aKeJiop2leHoFrBu7;nny,r7tterf4;g7i0;la7;ry;eak8i7;ck;fa7thro9;st;dy,ro7wl;ugh;mi7;sh;an,l4;nki8rri3;er;ng;cQdKlGnDppeti1rBs9tt2utop7;sy;ic;ce6pe7;ct;r7sen0;ay;ec8oma4ti8;ly;do1;i5l7;er7y;gy;en; hominBj8van7;tage;ec7;ti7;ve;em;cAe8qui7;tt0;ta1;te;i8ru0;al;de6;nt","Person|Noun":"trueยฆa0Eb07c03dWeUfQgOhLjHkiGlFmCnBolive,p7r4s3trini06v1wa0;ng,rd,tts;an,enus,iol0;a,et;ky,onPumm09;ay,e1o0uby;bin,d,se;ed,x;a2e1o0;l,tt04;aLnJ;dYge,tR;at,orm;a0eloW;t0x,ya;!s;a9eo,iH;ng,tP;a2e1o0;lGy;an,w3;de,smi4y;a0erb,iOolBuntR;ll,z0;el;ail,e0iLuy;ne;a1ern,i0lo;elds,nn;ith,n0;ny;a0dEmir,ula,ve;rl;a4e3i1j,ol0;ly;ck,x0;ie;an,ja;i0wn;sy;am,h0liff,rystal;a0in,ristian;mbers,ri0;ty;a4e3i2o,r0ud;an0ook;dy;ll;nedict,rg;k0nks;er;l0rt;fredo,ma","Actor|Verb":"trueยฆaCb8c5doctor,engineAfool,g3host,judge,m2nerd,p1recruit,scout,ushAvolunteAwi0;mp,tneA;arent,ilot;an,ime;eek,oof,r0uide;adu8oom;ha1o0;ach,nscript,ok;mpion,uffeur;o2u0;lly,tch0;er;ss;ddi1ffili0rchite1;ate;ct",MaleName:"trueยฆ0:H6;1:FZ;2:DS;3:GQ;4:CZ;5:FV;6:GM;7:FP;8:GW;9:ET;A:C2;B:GD;aF8bE1cCQdBMeASfA1g8Yh88i7Uj6Sk6Bl5Mm48n3So3Ip33qu31r26s1Et0Ru0Ov0CwTxSyHzC;aCor0;cChC1karia,nAT;!hDkC;!aF6;!ar7CeF5;aJevgenBSoEuC;en,rFVsCu3FvEF;if,uf;nDs6OusC;ouf,s6N;aCg;s,tC;an,h0;hli,nCrosE1ss09;is,nC;!iBU;avi2ho5;aPeNiDoCyaEL;jcieBJlfgang,odrFutR;lFnC;f8TsC;lCt1;ow;bGey,frEhe4QlC;aE5iCy;am,e,s;ed8iC;d,ed;eAur;i,ndeD2rn2sC;!l9t1;lDyC;l1ne;lDtC;!er;aCHy;aKernDAiFladDoC;jteB0lodymyr;!iC;mFQsDB;cFha0ktBZnceDrgCOvC;a0ek;!nC;t,zo;!e4StBV;lCnC7sily;!entC;in9J;ghE2lCm70nax,ri,sm0;riCyss87;ch,k;aWeRhNiLoGrEuDyC;!l2roEDs1;n6r6E;avD0eCist0oy,um0;ntCRvBKy;bFdAWmCny;!asDmCoharu;aFFie,y;!z;iA6y;mCt4;!my,othy;adEeoDia0SomC;!as;!dor91;!de4;dFrC;enBKrC;anBJeCy;ll,nBI;!dy;dgh,ha,iCnn2req,tsu5V;cDAka;aYcotWeThPiMlobod0oKpenc2tEurDvenAEyCzym1;ed,lvest2;aj,e9V;anFeDuC;!aA;fan17phEQvCwaA;e77ie;!islaCl9;v,w;lom1rBuC;leymaDHta;dDgmu9UlCm1yabonga;as,v8B;!dhart8Yn9;aEeClo75;lCrm0;d1t1;h9Jne,qu1Jun,wn,yne;aDbastiEDk2Yl5Mpp,rgCth,ymoCU;e1Dio;m4n;!tC;!ie,y;eDPlFmEnCq67tosCMul;dCj2UtiA5;e01ro;!iATkeB6mC4u5;!ik,vato9K;aZeUheC8iRoGuDyC;an,ou;b99dDf4peAssC;!elEG;ol00y;an,bLc7MdJel,geIh0lHmGnEry,sDyC;!ce;ar7Ocoe,s;!aCnBU;ld,n;an,eo;a7Ef;l7Jr;e3Eg2n9olfo,riC;go;bBNeDH;cCl9;ar87c86h54kCo;!ey,ie,y;cFeA3gDid,ubByCza;an8Ln06;g85iC;naC6s;ep;ch8Kfa5hHin2je8HlGmFndEoHpha5sDul,wi36yC;an,mo8O;h9Im4;alDSol3O;iD0on;f,ph;ul;e9CinC;cy,t1;aOeLhilJiFrCyoG;aDeC;m,st1;ka85v2O;eDoC;tr;r8GtC;er,ro;!ipCl6H;!p6U;dCLrcy,tC;ar,e9JrC;!o7;b9Udra8So9UscAHtri62ulCv8I;!ie,o7;ctav6Ji2lImHndrBRrGsDtCum6wB;is,to;aDc6k6m0vCwaBE;al79;ma;i,vR;ar,er;aDeksandr,ivC;er,i2;f,v;aNeLguyBiFoCu3O;aDel,j4l0ma0rC;beAm0;h,m;cFels,g5i9EkDlC;es,s;!au,h96l78olaC;!i,y;hCkCol76;ol75;al,d,il,ls1vC;ilAF;hom,tC;e,hC;anCy;!a5i5;aYeViLoGuDyC;l4Nr1;hamDr84staC;fa,p6E;ed,mG;di10e,hamEis4JntDritz,sCussa;es,he;e,y;ad,ed,mC;ad,ed;cGgu5hai,kFlEnDtchC;!e8O;a9Pik;house,o7t1;ae73eC3ha8Iolaj;ah,hDkC;!ey,y;aDeC;al,l;el,l;hDlv3rC;le,ri8Ev4T;di,met;ay0c00gn4hWjd,ks2NlTmadZnSrKsXtDuric7VxC;imilBKwe8B;eHhEi69tCus,y69;!eo,hCia7;ew,i67;eDiC;as,eu,s;us,w;j,o;cHiGkFlEqu8Qsha83tCv3;iCy;!m,n;in,on;el,o7us;a6Yo7us;!elCin,o7us;!l8o;frAEi5Zny,u5;achDcoCik;lm;ai,y;amDdi,e5VmC;oud;adCm6W;ou;aulCi9P;ay;aWeOiMloyd,oJuDyC;le,nd1;cFdEiDkCth2uk;a7e;gi,s,z;ov7Cv6Hw6H;!as,iC;a6Een;g0nn52renDuCvA4we7D;!iS;!zo;am,n4oC;n5r;a9Yevi,la5KnHoFst2thaEvC;eCi;nte;bo;nCpo8V;!a82el,id;!nC;aAy;mEnd1rDsz73urenCwr6K;ce,t;ry,s;ar,beAont;aOeIhalHiFla4onr63rDu5SylC;e,s;istCzysztof;i0oph2;er0ngsl9p,rC;ilA9k,ollos;ed,id;en0iGnDrmCv4Z;it;!dDnCt1;e2Ny;ri4Z;r,th;cp2j4mEna8BrDsp6them,uC;ri;im,l;al,il;a03eXiVoFuC;an,lCst3;en,iC;an,en,o,us;aQeOhKkub4AnIrGsDzC;ef;eDhCi9Wue;!ua;!f,ph;dCge;i,on;!aCny;h,s,th6J;anDnC;!ath6Hie,n72;!nC;!es;!l,sCy;ph;o,qu3;an,mC;!i,m6V;d,ffFns,rCs4;a7JemDmai7QoCry;me,ni1H;i9Dy;!e73rC;ey,y;cKdBkImHrEsDvi2yC;dBs1;on,p2;ed,oDrCv67;e6Qod;d,s61;al,es5Wis1;a,e,oCub;b,v;ob,qu13;aTbNchiMgLke53lija,nuKonut,rIsEtCv0;ai,suC;ki;aDha0i8XmaCsac;el,il;ac,iaC;h,s;a,vinCw3;!g;k,nngu6X;nac1Xor;ka;ai,rahC;im;aReLoIuCyd6;beAgGmFsC;eyDsC;a3e3;in,n;ber5W;h,o;m2raDsse3wC;a5Pie;c49t1K;a0Qct3XiGnDrC;beAman08;dr7VrC;iCy2N;!k,q1R;n0Tt3S;bKlJmza,nIo,rEsDyC;a5KdB;an,s0;lEo67r2IuCv9;hi5Hki,tC;a,o;an,ey;k,s;!im;ib;a08e00iUlenToQrMuCyorgy;iHnFsC;!taC;f,vC;!e,o;n6tC;er,h2;do,lC;herDlC;auCerQ;me;aEegCov2;!g,orC;!io,y;dy,h7C;dfr9nza3XrDttfC;ri6C;an,d47;!n;acoGlEno,oCuseppe;rgiCvan6O;!o,s;be6Ies,lC;es;mo;oFrC;aDha4HrC;it,y;ld,rd8;ffErgC;!e7iCy;!os;!r9;bElBrCv3;eCla1Nr4Hth,y;th;e,rC;e3YielC;!i4;aXeSiQlOorrest,rCyod2E;aHedFiC;edDtC;s,z;ri18;!d42eri11riC;ck,k;nCs2;cEkC;ie,lC;in,yn;esLisC;!co,z3M;etch2oC;ri0yd;d5lConn;ip;deriFliEng,rC;dinaCg4nan0B;nd8;pe,x;co;bCdi,hd;iEriC;ce,zC;io;an,en,o;benez2dZfrYit0lTmMnJo3rFsteb0th0ugenEvCymBzra;an,eCge4D;ns,re3K;!e;gi,iDnCrol,v3w3;est8ie,st;cCk;!h,k;o0DriCzo;co,qC;ue;aHerGiDmC;aGe3A;lCrh0;!iC;a10o,s;s1y;nu5;beAd1iEliDm2t1viCwood;n,s;ot28s;!as,j5Hot,sC;ha;a3en;!dGg6mFoDua2QwC;a2Pin;arC;do;oZuZ;ie;a04eTiOmitrNoFrag0uEwDylC;an,l0;ay3Hig4D;a3Gdl9nc0st3;minFnDri0ugCvydGy2S;!lF;!a36nCov0;e1Eie,y;go,iDykC;as;cCk;!k;i,y;armuFetDll1mitri7neCon,rk;sh;er,m6riC;ch;id;andLepak,j0lbeAmetri4nIon,rGsEvDwCxt2;ay30ey;en,in;hawn,moC;nd;ek,riC;ck;is,nC;is,y;rt;re;an,le,mKnIrEvC;e,iC;!d;en,iEne0PrCyl;eCin,yl;l45n;n,o,us;!iCny;el,lo;iCon;an,en,on;a0Fe0Ch03iar0lRoJrFuDyrC;il,us;rtC;!is;aEistC;iaCob12;no;ig;dy,lInErC;ey,neliCy;s,us;nEor,rDstaC;nt3;ad;or;by,e,in,l3t1;aHeEiCyde;fCnt,ve;fo0Xt1;menDt4;us;s,t;rFuDyC;!t1;dCs;e,io;enC;ce;aHeGrisC;!toC;phCs;!eC;!r;st2t;d,rCs;b5leC;s,y;cDdrCs6;ic;il;lHmFrC;ey,lDroCy;ll;!o7t1;er1iC;lo;!eb,v3;a09eZiVjorn,laUoSrEuCyr1;ddy,rtKst2;er;aKeFiEuDyC;an,ce,on;ce,no;an,ce;nDtC;!t;dDtC;!on;an,on;dFnC;dDisC;lav;en,on;!foOl9y;bby,gd0rCyd;is;i0Lke;bElDshC;al;al,lL;ek;nIrCshoi;at,nEtC;!raC;m,nd;aDhaCie;rd;rd8;!iDjam3nCs1;ie,y;to;kaMlazs,nHrC;n9rDtC;!holomew;eCy;tt;ey;dCeD;ar,iC;le;ar1Nb1Dd16fon15gust3hm12i0Zja0Yl0Bm07nTputsiSrGsaFugustEveDyCziz;a0kh0;ry;o,us;hi;aMchiKiJjun,mHnEon,tCy0;em,hCie,ur8;ur;aDoC;!ld;ud,v;aCin;an,nd8;!el,ki;baCe;ld;ta;aq;aMdHgel8tCw6;hoFoC;iDnC;!i8y;ne;ny;er7rCy;eDzC;ej;!as,i,j,s,w;!s;s,tolC;iCy;!y;ar,iEmaCos;nu5r;el;ne,r,t;aVbSdBeJfHiGl01onFphonsEt1vC;aPin;on;e,o;so,zo;!sR;!onZrC;ed;c,jaHksFssaHxC;!andC;er,rC;e,os,u;andCei;ar,er,r;ndC;ro;en;eDrecC;ht;rt8;dd3in,n,sC;taC;ir;ni;dDm6;ar;an,en;ad,eC;d,t;in;so;aGi,olErDvC;ik;ian8;f8ph;!o;mCn;!a;dGeFraDuC;!bakr,lfazl;hCm;am;!l;allFel,oulaye,ulC;!lDrahm0;an;ah,o;ah;av,on",Uncountable:"trueยฆ0:2E;1:2L;2:33;a2Ub2Lc29d22e1Rf1Ng1Eh16i11j0Yk0Wl0Rm0Hn0Do0Cp03rZsLt9uran2Jv7w3you gu0E;a5his17i4oo3;d,l;ldlife,ne;rm8t1;apor,ernacul29i3;neg28ol1Otae;eDhBiAo8r4un3yranny;a,gst1B;aff2Oea1Ko4ue nor3;th;o08u3;bleshoot2Ose1Tt;night,othpas1Vwn3;foEsfoE;me off,n;er3und1;e,mod2S;a,nnis;aDcCeBhAi9ki8o7p6t4u3weepstak0;g1Unshi2Hshi;ati08e3;am,el;ace2Keci0;ap,cc1meth2C;n,ttl0;lk;eep,ingl0or1C;lf,na1Gri0;ene1Kisso1C;d0Wfe2l4nd,t3;i0Iurn;m1Ut;abi0e4ic3;e,ke15;c3i01laxa11search;ogni10rea10;a9e8hys7luto,o5re3ut2;amble,mis0s3ten20;en1Zs0L;l3rk;i28l0EyH; 16i28;a24tr0F;nt3ti0M;i0s;bstetri24vercrowd1Qxyg09;a5e4owada3utella;ys;ptu1Ows;il poliZtional securi2;aAe8o5u3;m3s1H;ps;n3o1K;ey,o3;gamy;a3cha0Elancholy,rchandi1Htallurgy;sl0t;chine3g1Aj1Hrs,thema1Q; learn1Cry;aught1e6i5ogi4u3;ck,g12;c,s1M;ce,ghtn18nguis1LteratWv1;ath1isVss;ara0EindergartPn3;icke0Aowled0Y;e3upit1;a3llyfiGwel0G;ns;ce,gnor6mp5n3;forma00ter3;net,sta07;atiSort3rov;an18;a7e6isto09o3ung1;ckey,mework,ne4o3rseradi8spitali2use arrest;ky;s2y;adquarteXre;ir,libut,ppiHs3;hi3te;sh;ene8l6o5r3um,ymnas11;a3eZ;niUss;lf,re;ut3yce0F;en; 3ti0W;edit0Hpo3;ol;aNicFlour,o4urnit3;ure;od,rgive3uri1wl;ness;arCcono0LducaBlectr9n7quip8thi0Pvery6x3;ist4per3;ti0B;en0J;body,o08th07;joy3tertain3;ment;ici2o3;ni0H;tiS;nings,th;emi02i6o4raugh3ynas2;ts;pe,wnstai3;rs;abet0ce,s3;honZrepu3;te;aDelciChAivi07l8o3urrency;al,ld w6mmenta5n3ral,ttIuscoB;fusiHt 3;ed;ry;ar;assi01oth0;es;aos,e3;eMwK;us;d,rO;a8i6lood,owlHread5u3;ntGtt1;er;!th;lliarJs3;on;g3ss;ga3;ge;cKdviJeroGirFmBn6ppeal court,r4spi3thleL;rin;ithmet3sen3;ic;i6y3;o4th3;ing;ne;se;en5n3;es2;ty;ds;craft;bi8d3nau7;yna3;mi6;ce;id,ous3;ti3;cs",Infinitive:"trueยฆ0:9G;1:9T;2:AD;3:90;4:9Z;5:84;6:AH;7:A9;8:92;9:A0;A:AG;B:AI;C:9V;D:8R;E:8O;F:97;G:6H;H:7D;a94b8Hc7Jd68e4Zf4Mg4Gh4Ai3Qj3Nk3Kl3Bm34nou48o2Vp2Equ2Dr1Es0CtZuTvRwI;aOeNiLors5rI;eJiI;ng,te;ak,st3;d5e8TthI;draw,er;a2d,ep;i2ke,nIrn;d1t;aIie;liADniAry;nJpI;ho8Llift;cov1dJear8Hfound8DlIplug,rav82tie,ve94;eaAo3X;erIo;cut,go,staAFvalA3w2G;aSeQhNoMrIu73;aIe72;ffi3Smp3nsI;aBfo7CpI;i8oD;pp3ugh5;aJiJrIwaD;eat5i2;nk;aImA0;ch,se;ck3ilor,keImp1r8L;! paD;a0Ic0He0Fh0Bi0Al08mugg3n07o05p02qu01tUuLwI;aJeeIim;p,t5;ll7Wy;bNccMffLggeCmmKppJrI;mouFpa6Zvi2;o0re6Y;ari0on;er,i4;e7Numb;li9KmJsiIveD;de,st;er9it;aMe8MiKrI;ang3eIi2;ng27w;fIng;f5le;b,gg1rI;t3ve;a4AiA;a4UeJit,l7DoI;il,of;ak,nd;lIot7Kw;icEve;atGeak,i0O;aIi6;m,y;ft,ng,t;aKi6CoJriIun;nk,v6Q;ot,rt5;ke,rp5tt1;eIll,nd,que8Gv1w;!k,m;aven9ul8W;dd5tis1Iy;a0FeKiJoI;am,t,ut;d,p5;a0Ab08c06d05f01group,hea00iZjoi4lXmWnVpTq3MsOtMup,vI;amp,eJiIo3B;sEve;l,rI;e,t;i8rI;ie2ofE;eLiKpo8PtIurfa4;o24rI;aHiBuctu8;de,gn,st;mb3nt;el,hra0lIreseF;a4e71;d1ew,o07;aHe3Fo2;a7eFiIo6Jy;e2nq41ve;mbur0nf38;r0t;inKleBocus,rJuI;el,rbiA;aBeA;an4e;aBu4;ei2k8Bla43oIyc3;gni39nci3up,v1;oot,uI;ff;ct,d,liIp;se,ze;tt3viA;aAenGit,o7;aWerUinpoiFlumm1LoTrLuI;b47ke,niArIt;poDsuI;aFe;eMoI;cKd,fe4XhibEmo7noJpo0sp1tru6vI;e,i6o5L;un4;la3Nu8;aGclu6dJf1occupy,sup0JvI;a6BeF;etermi4TiB;aGllu7rtr5Ksse4Q;cei2fo4NiAmea7plex,sIva6;eve8iCua6;mp1rItrol,ve;a6It6E;bOccuNmEpMutLverIwe;l07sJtu6Yu0wI;helm;ee,h1F;gr5Cnu2Cpa4;era7i4Ipo0;py,r;ey,seItaH;r2ss;aMe0ViJoIultiply;leCu6Pw;micJnIspla4;ce,g3us;!k;iIke,na9;m,ntaH;aPeLiIo0u3N;ke,ng1quIv5;eIi6S;fy;aKnIss5;d,gI;th5;rn,ve;ng2Gu1N;eep,idnJnI;e4Cow;ap;oHuI;gg3xtaI;po0;gno8mVnIrk;cTdRfQgeChPitia7ju8q1CsNtKun6EvI;a6eIo11;nt,rt,st;erJimi6BoxiPrI;odu4u6;aBn,pr03ru6C;iCpi8tIu8;all,il,ruB;abEibE;eCo3Eu0;iIul9;ca7;i7lu6;b5Xmer0pI;aLer4Uin9ly,oJrI;e3Ais6Bo2;rt,se,veI;riA;le,rt;aLeKiIoiCuD;de,jaInd1;ck;ar,iT;mp1ng,pp5raIve;ng5Mss;ath1et,iMle27oLrI;aJeIow;et;b,pp3ze;!ve5A;gg3ve;aTer45i5RlSorMrJuI;lf4Cndrai0r48;eJiIolic;ght5;e0Qsh5;b3XeLfeEgJsI;a3Dee;eIi2;!t;clo0go,shIwa4Z;ad3F;att1ee,i36;lt1st5;a0OdEl0Mm0FnXquip,rWsVtGvTxI;aRcPeDhOiNpJtIu6;ing0Yol;eKi8lIo0un9;aHoI;it,re;ct,di7l;st,t;a3oDu3B;e30lI;a10u6;lt,mi28;alua7oI;ke,l2;chew,pou0tab19;a0u4U;aYcVdTfSgQhan4joy,lPqOrNsuMtKvI;e0YisI;a9i50;er,i4rI;aHenGuC;e,re;iGol0F;ui8;ar9iC;a9eIra2ulf;nd1;or4;ang1oIu8;r0w;irc3lo0ou0ErJuI;mb1;oaGy4D;b3ct;bKer9pI;hasiIow1;ze;aKody,rI;a4oiI;d1l;lm,rk;ap0eBuI;ci40de;rIt;ma0Rn;a0Re04iKo,rIwind3;aw,ed9oI;wn;agno0e,ff1g,mi2Kne,sLvI;eIul9;rIst;ge,t;aWbVcQlod9mant3pNru3TsMtI;iIoDu37;lJngI;uiA;!l;ol2ua6;eJlIo0ro2;a4ea0;n0r0;a2Xe36lKoIu0S;uIv1;ra9;aIo0;im;a3Kur0;b3rm;af5b01cVduBep5fUliTmQnOpMrLsiCtaGvI;eIol2;lop;ch;a20i2;aDiBloIoD;re,y;oIy;te,un4;eJoI;liA;an;mEv1;a4i0Ao06raud,y;ei2iMla8oKrI;ee,yI;!pt;de,mIup3;missi34po0;de,ma7ph1;aJrief,uI;g,nk;rk;mp5rk5uF;a0Dea0h0Ai09l08oKrIurta1G;a2ea7ipp3uI;mb3;ales4e04habEinci6ll03m00nIrro6;cXdUfQju8no7qu1sLtKvI;eIin4;ne,r9y;aHin2Bribu7;er2iLoli2Epi8tJuI;lt,me;itu7raH;in;d1st;eKiJoIroFu0;rm;de,gu8rm;ss;eJoI;ne;mn,n0;eIlu6ur;al,i2;buCe,men4pI;eIi3ly;l,te;eBi6u6;r4xiC;ean0iT;rcumveFte;eJirp,oI;o0p;riAw;ncIre5t1ulk;el;a02eSi6lQoPrKuI;iXrIy;st,y;aLeaKiJoad5;en;ng;stfeLtX;ke;il,l11mba0WrrMth1;eIow;ed;!coQfrie1LgPhMliLqueaKstJtrIwild1;ay;ow;th;e2tt3;a2eJoI;ld;ad;!in,ui3;me;bysEckfi8ff3tI;he;b15c0Rd0Iff0Ggree,l0Cm09n03ppZrXsQttOuMvJwaE;it;eDoI;id;rt;gIto0X;meF;aIeCraB;ch,in;pi8sJtoI;niA;aKeIi04u8;mb3rt,ss;le;il;re;g0Hi0ou0rI;an9i2;eaKly,oiFrI;ai0o2;nt;r,se;aMi0GnJtI;icipa7;eJoIul;un4y;al;ly0;aJu0;se;lga08ze;iKlI;e9oIu6;t,w;gn;ix,oI;rd;a03jNmiKoJsoI;rb;pt,rn;niIt;st1;er;ouJuC;st;rn;cLhie2knowled9quiItiva7;es4re;ce;ge;eQliOoKrJusI;e,tom;ue;mIst;moJpI;any,liA;da7;ma7;te;pt;andPduBet,i6oKsI;coKol2;ve;liArt,uI;nd;sh;de;ct;on",Person:"trueยฆ0:1Q;a29b1Zc1Md1Ee18f15g13h0Ri0Qj0Nk0Jl0Gm09n06o05p00rPsItCusain bolt,v9w4xzibit,y1;anni,oko on2uji,v1;an,es;en,o;a3ednesday adams,i2o1;lfram,o0Q;ll ferrell,z khalifa;lt disn1Qr1;hol,r0G;a2i1oltai06;n dies0Zrginia wo17;lentino rossi,n goG;a4h3i2ripp,u1yra banks;lZpac shakur;ger woods,mba07;eresa may,or;kashi,t1ylor;um,ya1B;a5carlett johanss0h4i3lobodan milosevic,no2ocr1Lpider1uperm0Fwami; m0Em0E;op dogg,w whi1H;egfried,nbad;akespeaTerlock holm1Sia labeouf;ddam hussa16nt1;a cla11ig9;aAe6i5o3u1za;mi,n dmc,paul,sh limbau1;gh;bin hood,d stew16nald1thko;in0Mo;han0Yngo starr,valdo;ese witherspo0i1mbrandt;ll2nh1;old;ey,y;chmaninoff,ffi,iJshid,y roma1H;a4e3i2la16o1uff daddy;cahont0Ie;lar,p19;le,rZ;lm17ris hilt0;leg,prah winfr0Sra;a2e1iles cra1Bostradam0J; yo,l5tt06wmQ;pole0s;a5e4i2o1ubar03;by,lie5net,rriss0N;randa ju1tt romn0M;ly;rl0GssiaB;cklemo1rkov,s0ta hari,ya angelou;re;ady gaga,e1ibera0Pu;bron jam0Xch wale1e;sa;anye west,e3i1obe bryant;d cudi,efer suther1;la0P;ats,sha;a2effers0fk,k rowling,rr tolki1;en;ck the ripp0Mwaharlal nehru,y z;liTnez,ron m7;a7e5i3u1;lk hog5mphrey1sa01;! bog05;l1tl0H;de; m1dwig,nry 4;an;ile selassFlle ber4m3rrison1;! 1;ford;id,mo09;ry;ast0iannis,o1;odwPtye;ergus0lorence nightinga08r1;an1ederic chopN;s,z;ff5m2nya,ustaXzeki1;el;eril lagasse,i1;le zatop1nem;ek;ie;a6e4i2octor w1rake;ho;ck w1ego maradoC;olf;g1mi lovaOnzel washingt0;as;l1nHrth vadR;ai lNt0;a8h5lint0o1thulhu;n1olio;an,fuci1;us;on;aucKop2ristian baMy1;na;in;millo,ptain beefhe4r1;dinal wols2son1;! palmF;ey;art;a8e5hatt,i3oHro1;ck,n1;te;ll g1ng crosby;atB;ck,nazir bhut2rtil,yon1;ce;to;nksy,rack ob1;ama;l 6r3shton kutch2vril lavig8yn ra1;nd;er;chimed2istot1;le;es;capo2paci1;no;ne",Adjective:"trueยฆ0:AI;1:BS;2:BI;3:BA;4:A8;5:84;6:AV;7:AN;8:AF;9:7H;A:BQ;B:AY;C:BC;D:BH;E:9Y;aA2b9Ec8Fd7We79f6Ng6Eh61i4Xj4Wk4Tl4Im41n3Po36p2Oquart7Pr2Ds1Dt14uSvOwFye29;aMeKhIiHoF;man5oFrth7G;dADzy;despreB1n w97s86;acked1UoleF;!sa6;ather1PeFll o70ste1D;!k5;nt1Ist6Ate4;aHeGiFola5T;bBUce versa,gi3Lle;ng67rsa5R;ca1gBSluAV;lt0PnLpHrGsFttermoBL;ef9Ku3;b96ge1; Hb32pGsFtiAH;ca6ide d4R;er,i85;f52to da2;a0Fbeco0Hc0Bd04e02f01gu1XheaBGiXkn4OmUnTopp06pRrNsJtHus0wF;aFiel3K;nt0rra0P;app0eXoF;ld,uS;eHi37o5ApGuF;perv06spec39;e1ok9O;en,ttl0;eFu5;cogn06gul2RlGqu84sF;erv0olv0;at0en33;aFrecede0E;id,rallel0;am0otic0;aFet;rri0tF;ch0;nFq26vers3;sur0terFv7U;eFrupt0;st0;air,inish0orese98;mploy0n7Ov97xpF;ect0lain0;eHisFocume01ue;clFput0;os0;cid0rF;!a8Scov9ha8Jlyi8nea8Gprivileg0sMwF;aFei9I;t9y;hGircumcFonvin2U;is0;aFeck0;lleng0rt0;b20ppea85ssuGttend0uthorF;iz0;mi8;i4Ara;aLeIhoHip 25oGrF;anspare1encha1i2;geth9leADp notch,rpB;rny,ugh6H;ena8DmpGrFs6U;r49tia4;eCo8P;leFst4M;nt0;a0Dc09e07h06i04ki03l01mug,nobbi4XoVpRqueami4XtKuFymb94;bHccinAi generis,pFr5;erFre7N;! dup9b,vi70;du0li7Lp6IsFurb7J;eq9Atanda9X;aKeJi16o2QrGubboFy4Q;rn;aightFin5GungS; fFfF;or7V;adfa9Pri6;lwa6Ftu82;arHeGir6NlendBot Fry;on;c3Qe1S;k5se; call0lImb9phistic16rHuFviV;ndFth1B;proof;dBry;dFub6; o2A;e60ipF;pe4shod;ll0n d7R;g2HnF;ceEg6ist9;am3Se9;co1Zem5lfFn6Are7; suf4Xi43;aGholFient3A;ar5;rlFt4A;et;cr0me,tisfac7F;aOeIheumatoBiGoF;bu8Ztt7Gy3;ghtFv3; 1Sf6X;cJdu8PlInown0pro69sGtF;ard0;is47oF;lu2na1;e1Suc45;alcit8Xe1ondi2;bBci3mpa1;aSePicayu7laOoNrGuF;bl7Tnjabi;eKiIoF;b7VfGmi49pFxi2M;er,ort81;a7uD;maFor,sti7va2;!ry;ciDexis0Ima2CpaB;in55puli8G;cBid;ac2Ynt 3IrFti2;ma40tFv7W;!i3Z;i2YrFss7R;anoBtF; 5XiF;al,s5V;bSffQkPld OnMrLth9utKverF;!aIbMdHhGni75seas,t,wF;ei74rou74;a63e7A;ue;ll;do1Ger,si6A;d3Qg2Aotu5Z; bFbFe on o7g3Uli7;oa80;fashion0school;!ay; gua7XbFha5Uli7;eat;eHligGsF;ce7er0So1C;at0;diFse;a1e1;aOeNiMoGuF;anc0de; moEnHrthFt6V;!eFwe7L;a7Krn;chaGdescri7Iprof30sF;top;la1;ght5;arby,cessa4ighbor5wlyw0xt;k0usiaFv3;ti8;aQeNiLoHuF;dIltiF;facet0p6;deHlGnFot,rbBst;ochro4Xth5;dy;rn,st;ddle ag0nF;dbloZi,or;ag9diocEga,naGrFtropolit4Q;e,ry;ci8;cIgenta,inHj0Fkeshift,mmGnFri4Oscu61ver18;da5Dy;ali4Lo4U;!stream;abEho;aOeLiIoFumberi8;ngFuti1R;stan3RtF;erm,i4H;ghtGteraF;l,ry,te;heart0wei5O;ft JgFss9th3;al,eFi0M;nda4;nguBps0te5;apGind5noF;wi8;ut;ad0itte4uniW;ce co0Hgno6Mll0Cm04nHpso 2UrF;a2releF;va1; ZaYcoWdReQfOgrNhibi4Ri05nMoLsHtFvalu5M;aAeF;nDrdepe2K;a7iGolFuboI;ub6ve1;de,gF;nifica1;rdi5N;a2er;own;eriIiLluenVrF;ar0eq5H;pt,rt;eHiGoFul1O;or;e,reA;fiFpe26termi5E;ni2;mpFnsideCrreA;le2;ccuCdeq5Ene,ppr4J;fFsitu,vitro;ro1;mJpF;arHeGl15oFrop9;li2r11;n2LrfeA;ti3;aGeFi18;d4BnD;tuE;egGiF;c0YteC;al,iF;tiF;ma2;ld;aOelNiLoFuma7;a4meInHrrGsFur5;ti6;if4E;e58o3U; ma3GsF;ick;ghfalut2HspF;an49;li00pf33;i4llow0ndGrdFtM; 05coEworki8;sy,y;aLener44iga3Blob3oKrGuF;il1Nng ho;aFea1Fizzl0;cGtF;ef2Vis;ef2U;ld3Aod;iFuc2D;nf2R;aVeSiQlOoJrF;aGeFil5ug3;q43tf2O;gFnt3S;i6ra1;lk13oHrF; keeps,eFge0Vm9tu41;g0Ei2Ds3R;liF;sh;ag4Mowe4uF;e1or45;e4nF;al,i2;d Gmini7rF;ti6ve1;up;bl0lDmIr Fst pac0ux;oGreacF;hi8;ff;ed,ili0R;aXfVlTmQnOqu3rMthere3veryday,xF;aApIquisi2traHuF;be48lF;ta1;!va2L;edRlF;icF;it;eAstF;whi6; Famor0ough,tiE;rou2sui2;erGiF;ne1;ge1;dFe2Aoq34;er5;ficF;ie1;g9sF;t,ygF;oi8;er;aWeMiHoGrFue;ea4owY;ci6mina1ne,r31ti8ubQ;dact2Jfficult,m,sGverF;ge1se;creGePjoi1paCtF;a1inA;et,te; Nadp0WceMfiLgeneCliJmuEpeIreliAsGvoF;id,ut;pFtitu2ul1L;eCoF;nde1;ca2ghF;tf13;a1ni2;as0;facto;i5ngero0I;ar0Ce09h07i06l05oOrIuF;rmudgeon5stoma4teF;sy;ly;aIeHu1EystalF; cleFli7;ar;epy;fFv17z0;ty;erUgTloSmPnGrpoCunterclVveFy;rt;cLdJgr21jIsHtrF;aFi2;dic0Yry;eq1Yta1;oi1ug3;escenFuN;di8;a1QeFiD;it0;atoDmensuCpF;ass1SulF;so4;ni3ss3;e1niza1;ci1J;ockwiD;rcumspeAvil;eFintzy;e4wy;leGrtaF;in;ba2;diac,ef00;a00ePiLliJoGrFuck nak0;and new,isk,on22;gGldface,naF; fi05fi05;us;nd,tF;he;gGpartisFzarE;an;tiF;me;autifOhiNlLnHsFyoN;iWtselF;li8;eGiFt;gn;aFfi03;th;at0oF;v0w;nd;ul;ckwards,rF;e,rT; priori,b13c0Zd0Tf0Ng0Ihe0Hl09mp6nt06pZrTsQttracti0MuLvIwF;aGkF;wa1B;ke,re;ant garGeraF;ge;de;diIsteEtF;heFoimmu7;nt07;re;to4;hGlFtu2;eep;en;bitIchiv3roHtF;ifiFsy;ci3;ga1;ra4;ry;pFt;aHetizi8rF;oprF;ia2;llFre1;ed,i8;ng;iquFsy;at0e;ed;cohKiJkaHl,oGriFterX;ght;ne,of;li7;ne;ke,ve;olF;ic;ad;ain07gressiIi6rF;eeF;ab6;le;ve;fGraB;id;ectGlF;ue1;ioF;na2; JaIeGvF;erD;pt,qF;ua2;ma1;hoc,infinitum;cuCquiGtu3u2;al;esce1;ra2;erSjeAlPoNrKsGuF;nda1;e1olu2trF;aAuD;se;te;eaGuF;pt;st;aFve;rd;aFe;ze;ct;ra1;nt",Pronoun:"trueยฆelle,h3i2me,she,th0us,we,you;e0ou;e,m,y;!l,t;e,im",Preposition:"trueยฆaPbMcLdKexcept,fIinGmid,notwithstandiWoDpXqua,sCt7u4v2w0;/o,hereSith0;! whHin,oW;ersus,i0;a,s a vis;n1p0;!on;like,til;h1ill,oward0;!s;an,ereby,r0;ough0u;!oM;ans,ince,o that,uch G;f1n0ut;!to;!f;! 0to;effect,part;or,r0;om;espite,own,u3;hez,irca;ar1e0oBy;sides,tween;ri7;bo8cross,ft7lo6m4propos,round,s1t0;!op;! 0;a whole,long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"trueยฆ0:18;1:1E;2:1D;3:14;a1Db15c0Sd0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Am01new UoRpKqueens parkJreal salt lake,sBt6utah jazz,vancouver whitecaps,w4yW;ashington 4h10;natio1Mredski2wizar0W;ampa bay 7e6o4;ronto 4ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasD;buccanee0ra0K;a8eattle 6porting kansas0Wt4; louis 4oke0V;c1Drams;marine0s4;eah13ounH;cramento Rn 4;antonio spu0diego 4francisco gJjose earthquak1;char08paB; ran07;a9h6ittsburgh 5ortland t4;imbe0rail blaze0;pirat1steele0;il4oenix su2;adelphia 4li1;eagl1philNunE;dr1;akland 4klahoma city thunder,rlando magic;athle0Lrai4;de0;england 8orleans 7york 4;g5je3knYme3red bul0Xy4;anke1;ian3;pelica2sain3;patrio3revolut4;ion;anchEeAi4ontreal impact;ami 8lwaukee b7nnesota 4;t5vi4;kings;imberwolv1wi2;rewe0uc0J;dolphi2heat,marli2;mphis grizz4ts;li1;a6eic5os angeles 4;clippe0dodFlaB;esterV; galaxy,ke0;ansas city 4nF;chiefs,roya0D; pace0polis col3;astr05dynamo,rocke3texa2;olden state warrio0reen bay pac4;ke0;allas 8e4i04od6;nver 6troit 4;lio2pisto2ti4;ge0;broncYnugge3;cowbo5maver4;icZ;ys;arEelLhAincinnati 8leveland 6ol4;orado r4umbus crew sc;api7ocki1;brow2cavalie0guar4in4;dia2;bengaVre4;ds;arlotte horAicago 4;b5cubs,fire,wh4;iteB;ea0ulQ;diff4olina panthe0; city;altimore Alackburn rove0oston 6rooklyn 4uffalo bilN;ne3;ts;cel5red4; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 4;brav1falco2h4;awA;ns;es;on villa,r4;os;c6di4;amondbac4;ks;ardi4;na4;ls",Unit:"trueยฆa07b04cXdWexVfTgRhePinYjoule0BkMlJmDnan08oCp9quart0Bsq ft,t7volts,w6y2ze3ยฐ1ยต0;g,s;c,f,n;dVear1o0;ttR; 0s 0;old;att,b;erNon0;!ne02;ascals,e1i0;cXnt00;rcent,tJ;hms,unceY;/s,e4i0mยฒ,ยฒ,ยณ;/h,cro2l0;e0liK;!ยฒ;grLsR;gCtJ;it1u0;menQx;erPreP;b5elvins,ilo1m0notO;/h,ph,ยฒ;!byGgrEmCs;ct0rtzL;aJogrC;allonJb0ig3rB;ps;a0emtEl oz,t4;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;ยฒ,ยณ;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s","Noun|Gerund":"trueยฆ0:3O;1:3M;2:3N;3:3D;4:32;5:2V;6:3E;7:3K;8:36;9:3J;A:3B;a3Pb37c2Jd27e23f1Vg1Sh1Mi1Ij1Gk1Dl18m13n11o0Wp0Pques0Sr0EsTtNunderMvKwFyDzB;eroi0oB;ni0o3P;aw2eB;ar2l3;aEed4hispe5i5oCrB;ap8est3i1;n0ErB;ki0r31;i1r2s9tc9;isualizi0oB;lunt1Vti0;stan4ta6;aFeDhin6iCraBy8;c6di0i2vel1M;mi0p8;aBs1;c9si0;l6n2s1;aUcReQhOiMkatKl2Wmo6nowJpeItFuCwB;ea5im37;b35f0FrB;fi0vB;e2Mi2J;aAoryt1KrCuB;d2KfS;etc9ugg3;l3n4;bCi0;ebBi0;oar4;gnBnAt1;a3i0;ip8oB;p8rte2u1;a1r27t1;hCo5reBulp1;a2Qe2;edu3oo3;i3yi0;aKeEi4oCuB;li0n2;oBwi0;fi0;aFcEhear7laxi0nDpor1sB;pon4tructB;r2Iu5;de5;or4yc3;di0so2;p8ti0;aFeacek20laEoCrBublis9;a1Teten4in1oces7;iso2siB;tio2;n2yi0;ckaAin1rB;ki0t1O;fEpeDrganiCvB;erco24ula1;si0zi0;ni0ra1;fe5;avi0QeBur7;gotia1twor6;aDeCi2oB;de3nito5;a2dita1e1ssaA;int0XnBrke1;ifUufactu5;aEeaDiBodAyi0;cen7f1mi1stB;e2i0;r2si0;n4ug9;iCnB;ea4it1;c6l3;ogAuB;dAgg3stif12;ci0llust0VmDnBro2;nova1sp0NterBven1;ac1vie02;agi2plo4;aDea1iCoBun1;l4w3;ki0ri0;nd3rB;roWvB;es1;aCene0Lli4rBui4;ee1ie0N;rde2the5;aHeGiDlCorBros1un4;e0Pmat1;ir1oo4;gh1lCnBs9;anZdi0;i0li0;e3nX;r0Zscina1;a1du01nCxB;erci7plo5;chan1di0ginB;ee5;aLeHiGoub1rCum8wB;el3;aDeCiB;bb3n6vi0;a0Qs7;wi0;rTscoDvi0;ba1coZlBvelo8;eCiB;ve5;ga1;nGti0;aVelebUhSlPoDrBur3yc3;aBos7yi0;f1w3;aLdi0lJmFnBo6pi0ve5;dDsCvinB;ci0;trBul1;uc1;muniDpB;lBo7;ai2;ca1;lBo5;ec1;c9ti0;ap8eaCimToBubT;ni0t9;ni0ri0;aBee5;n1t1;ra1;m8rCs1te5;ri0;vi0;aPeNitMlLoGrDuB;dge1il4llBr8;yi0;an4eat9oadB;cas1;di0;a1mEokB;i0kB;ee8;pi0;bi0;es7oa1;c9i0;gin2lonAt1;gi0;bysit1c6ki0tt3;li0;ki0;bando2cGdverti7gi0pproac9rgDssuCtB;trac1;mi0;ui0;hi0;si0;coun1ti0;ti0;ni0;ng",PhrasalVerb:"trueยฆ0:92;1:96;2:8H;3:8V;4:8A;5:83;6:85;7:98;8:90;9:8G;A:8X;B:8R;C:8U;D:8S;E:70;F:97;G:8Y;H:81;I:7H;J:79;a9Fb7Uc6Rd6Le6Jf5Ig50h4Biron0j47k40l3Em31n2Yo2Wp2Cquiet Hr1Xs0KtZuXvacuu6QwNyammerBzK;ero Dip LonK;e0k0;by,ov9up;aQeMhLiKor0Mrit19;mp0n3Fpe0r5s5;ackAeel Di0S;aLiKn33;gh 3Wrd0;n Dr K;do1in,oJ;it 79k5lk Lrm 69sh Kt83v60;aw3do1o7up;aw3in,oC;rgeBsK;e 2herE;a00eYhViRoQrMuKypP;ckErn K;do1in,oJup;aLiKot0y 30;ckl7Zp F;ck HdK;e 5Y;n7Wp 3Es5K;ck MdLe Kghten 6me0p o0Rre0;aw3ba4do1in,up;e Iy 2;by,oG;ink Lrow K;aw3ba4in,up;ba4ov9up;aKe 77ll62;m 2r 5M;ckBke Llk K;ov9shit,u47;aKba4do1in,leave,o4Dup;ba4ft9pa69w3;a0Vc0Te0Mh0Ii0Fl09m08n07o06p01quar5GtQuOwK;earMiK;ngLtch K;aw3ba4o8K; by;cKi6Bm 2ss0;k 64;aReQiPoNrKud35;aigh2Det75iK;ke 7Sng K;al6Yup;p Krm2F;by,in,oG;c3Ln3Lr 2tc4O;p F;c3Jmp0nd LrKveAy 2O;e Ht 2L;ba4do1up;ar3GeNiMlLrKurB;ead0ingBuc5;a49it 6H;c5ll o3Cn 2;ak Fe1Xll0;a3Bber 2rt0und like;ap 5Vow Duggl5;ash 6Noke0;eep NiKow 6;cLp K;o6Dup;e 68;in,oK;ff,v9;de19gn 4NnKt 6Gz5;gKkE; al6Ale0;aMoKu5W;ot Kut0w 7M;aw3ba4f48oC;c2WdeEk6EveA;e Pll1Nnd Orv5tK; Ktl5J;do1foLin,o7upK;!on;ot,r5Z;aw3ba4do1in,o33up;oCto;al66out0rK;ap65ew 6J;ilAv5;aXeUiSoOuK;b 5Yle0n Kstl5;aLba4do1inKo2Ith4Nu5P;!to;c2Xr8w3;ll Mot LpeAuK;g3Ind17;a2Wf3Po7;ar8in,o7up;ng 68p oKs5;ff,p18;aKelAinEnt0;c6Hd K;o4Dup;c27t0;aZeYiWlToQrOsyc35uK;ll Mn5Kt K;aKba4do1in,oJto47up;pa4Dw3;a3Jdo1in,o21to45up;attleBess KiNop 2;ah2Fon;iLp Kr4Zu1Gwer 6N;do1in,o6Nup;nt0;aLuK;gEmp 6;ce u20y 6D;ck Kg0le 4An 6p5B;oJup;el 5NncilE;c53ir 39n0ss MtLy K;ba4oG; Hc2R;aw3ba4in,oJ;pKw4Y;e4Xt D;aLerd0oK;dAt53;il Hrrow H;aTeQiPoLuK;ddl5ll I;c1FnkeyMp 6uthAve K;aKdo1in,o4Lup;l4Nw3; wi4K;ss0x 2;asur5e3SlLss K;a21up;t 6;ke Ln 6rKs2Ax0;k 6ryA;do,fun,oCsure,up;a02eViQoLuK;ck0st I;aNc4Fg MoKse0;k Kse4D;aft9ba4do1forw37in56o0Zu46;in,oJ;d 6;e NghtMnLsKve 00;ten F;e 2k 2; 2e46;ar8do1in;aMt LvelK; oC;do1go,in,o7up;nEve K;in,oK;pKut;en;c5p 2sh LtchBughAy K;do1o59;in4Po7;eMick Lnock K;do1oCup;oCup;eLy K;in,up;l Ip K;aw3ba4do1f04in,oJto,up;aMoLuK;ic5mpE;ke3St H;c43zz 2;a01eWiToPuK;nLrrKsh 6;y 2;keLt K;ar8do1;r H;lKneErse3K;d Ke 2;ba4dKfast,o0Cup;ear,o1;de Lt K;ba4on,up;aw3o7;aKlp0;d Ml Ir Kt 2;fKof;rom;f11in,o03uW;cPm 2nLsh0ve Kz2P;at,it,to;d Lg KkerP;do1in,o2Tup;do1in,oK;ut,v9;k 2;aZeTive Rloss IoMrLunK; f0S;ab hold,in43ow 2U; Kof 2I;aMb1Mit,oLr8th1IuK;nd9;ff,n,v9;bo7ft9hQw3;aw3bKdo1in,oJrise,up,w3;a4ir2H;ar 6ek0t K;aLb1Fdo1in,oKr8up;ff,n,ut,v9;cLhKl2Fr8t,w3;ead;ross;d aKng 2;bo7;a0Ee07iYlUoQrMuK;ck Ke2N;ar8up;eLighten KownBy 2;aw3oG;eKshe27; 2z5;g 2lMol Krk I;aKwi20;bo7r8;d 6low 2;aLeKip0;sh0;g 6ke0mKrKtten H;e F;gRlPnNrLsKzzle0;h F;e Km 2;aw3ba4up;d0isK;h 2;e Kl 1T;aw3fPin,o7;ht ba4ure0;ePnLsK;s 2;cMd K;fKoG;or;e D;d04l 2;cNll Krm0t1G;aLbKdo1in,o09sho0Eth08victim;a4ehi2O;pa0C;e K;do1oGup;at Kdge0nd 12y5;in,o7up;aOi1HoNrK;aLess 6op KuN;aw3b03in,oC;gBwB; Ile0ubl1B;m 2;a0Ah05l02oOrLut K;aw3ba4do1oCup;ackBeep LoKy0;ss Dwd0;by,do1in,o0Uup;me NoLuntK; o2A;k 6l K;do1oG;aRbQforOin,oNtKu0O;hLoKrue;geth9;rough;ff,ut,v9;th,wK;ard;a4y;paKr8w3;rt;eaLose K;in,oCup;n 6r F;aNeLiK;ll0pE;ck Der Kw F;on,up;t 2;lRncel0rOsMtch LveE; in;o1Nup;h Dt K;doubt,oG;ry LvK;e 08;aw3oJ;l Km H;aLba4do1oJup;ff,n,ut;r8w3;a0Ve0MiteAl0Fo04rQuK;bblNckl05il0Dlk 6ndl05rLsKtMy FzzA;t 00;n 0HsK;t D;e I;ov9;anWeaUiLush K;oGup;ghQng K;aNba4do1forMin,oLuK;nd9p;n,ut;th;bo7lKr8w3;ong;teK;n 2;k K;do1in,o7up;ch0;arTg 6iRn5oPrNssMttlLunce Kx D;aw3ba4;e 6; ar8;e H;do1;k Dt 2;e 2;l 6;do1up;d 2;aPeed0oKurt0;cMw K;aw3ba4do1o7up;ck;k K;in,oC;ck0nk0stA; oQaNef 2lt0nd K;do1ov9up;er;up;r Lt K;do1in,oCup;do1o7;ff,nK;to;ck Pil0nMrgLsK;h D;ainBe D;g DkB; on;in,o7;aw3do1in,oCup;ff,ut;ay;ct FdQir0sk MuctionA; oG;ff;ar8o7;ouK;nd; o7;d K;do1oKup;ff,n;wn;o7up;ut",ProperNoun:"trueยฆabid,barbie,c3e2f1iron maiden,kirby,m0nis,riel;cgill,ercedes,issy;lorence,ranco;lmo,uro;atalina,hristi","Person|Place":"trueยฆa8d6h4jordan,k3orlando,s1vi0;ctor9rgin9;a0ydney;lvador,mara,ntia4;ent,obe;amil0ous0;ton;arw2ie0;go;lexandr1ust0;in;ia",LastName:"trueยฆ0:BR;1:BF;2:B5;3:BH;4:AX;5:9Y;6:B6;7:BK;8:B0;9:AV;A:AL;B:8Q;C:8G;D:7K;E:BM;F:AH;aBDb9Zc8Wd88e81f7Kg6Wh64i60j5Lk4Vl4Dm39n2Wo2Op25quispe,r1Ls0Pt0Ev03wTxSyKzG;aIhGimmerm6A;aGou,u;ng,o;khar5ytsE;aKeun9BiHoGun;koya32shiBU;!lG;diGmaz;rim,z;maGng;da,g52mo83sGzaC;aChiBV;iao,u;aLeJiHoGright,u;jcA5lff,ng;lGmm0nkl0sniewsC;kiB1liams33s3;bGiss,lt0;b,er,st0;a6Vgn0lHtG;anabe,s3;k0sh,tG;e2Non;aLeKiHoGukD;gt,lk5roby5;dHllalGnogr3Kr1Css0val3S;ba,ob1W;al,ov4;lasHsel8W;lJn dIrgBEsHzG;qu7;ilyEqu7siljE;en b6Aijk,yk;enzueAIverde;aPeix1VhKi2j8ka43oJrIsui,uG;om5UrG;c2n0un1;an,emblA7ynisC;dorAMlst3Km4rrAth;atch0i8UoG;mHrG;are84laci79;ps3sG;en,on;hirDkah9Mnaka,te,varA;a06ch01eYhUiRmOoMtIuHvGzabo;en9Jobod3N;ar7bot4lliv2zuC;aIeHoG;i7Bj4AyanAB;ele,in2FpheBvens25;l8rm0;kol5lovy5re7Tsa,to,uG;ng,sa;iGy72;rn5tG;!h;l71mHnGrbu;at9cla9Egh;moBo7M;aIeGimizu;hu,vchG;en8Luk;la,r1G;gu9infe5YmGoh,pulveA7rra5P;jGyG;on5;evi6iltz,miHneid0roed0uGwarz;be3Elz;dHtG;!t,z;!t;ar4Th8ito,ka4OlJnGr4saCto,unde19v4;ch7dHtGz;a5Le,os;b53e16;as,ihDm4Po0Y;aVeSiPoJuHyG;a6oo,u;bio,iz,sG;so,u;bKc8Fdrigue67ge10j9YmJosevelt,sItHux,wG;e,li6;a9Ch;enb4Usi;a54e4L;erts15i93;bei4JcHes,vGzzo;as,e9;ci,hards12;ag2es,iHut0yG;es,nol5N;s,t0;dImHnGsmu97v6C;tan1;ir7os;ic,u;aUeOhMiJoHrGut8;asad,if6Zochazk27;lishc2GpGrti72u10we76;e3Aov51;cHe45nG;as,to;as70hl0;aGillips;k,m,n6I;a3Hde3Wete0Bna,rJtG;ersHrovGters54;!a,ic;!en,on;eGic,kiBss3;i9ra,tz,z;h86k,padopoulIrk0tHvG;ic,l4N;el,te39;os;bMconn2Ag2TlJnei6PrHsbor6XweBzG;dem7Rturk;ella4DtGwe6N;ega,iz;iGof7Hs8I;vGyn1R;ei9;aSri1;aPeNiJoGune50ym2;rHvGwak;ak4Qik5otn66;odahl,r4S;cholsZeHkolGls4Jx3;ic,ov84;ls1miG;!n1;ils3mG;co4Xec;gy,kaGray2sh,var38;jiGmu9shiG;ma;a07c04eZiWoMuHyeG;rs;lJnIrGssoli6S;atGp03r7C;i,ov4;oz,te58;d0l0;h2lOnNo0RrHsGza1A;er,s;aKeJiIoz5risHtG;e56on;!on;!n7K;au,i9no,t5J;!lA;r1Btgome59;i3El0;cracFhhail5kkeHlG;l0os64;ls1;hmeJiIj30lHn3Krci0ssiGyer2N;!er;n0Po;er,j0;dDti;cartHlG;aughl8e2;hy;dQe7Egnu68i0jer3TkPmNnMrItHyG;er,r;ei,ic,su21thews;iHkDquAroqu8tinG;ez,s;a5Xc,nG;!o;ci5Vn;a5UmG;ad5;ar5e6Kin1;rig77s1;aVeOiLoJuHyG;!nch;k4nGo;d,gu;mbarGpe3Fvr4we;di;!nGu,yana2B;coln,dG;b21holm,strom;bedEfeKhIitn0kaHn8rGw35;oy;!j;m11tG;in1on1;bvGvG;re;iGmmy,ng,rs2Qu,voie,ws3;ne,t1F;aZeYh2iWlUnez50oNrJuHvar2woG;k,n;cerGmar68znets5;a,o34;aHem0isGyeziu;h23t3O;m0sni4Fus3KvG;ch4O;bay57ch,rh0Usk16vaIwalGzl5;czGsC;yk;cIlG;!cGen4K;huk;!ev4ic,s;e8uiveG;rt;eff0kGl4mu9nnun1;ucF;ll0nnedy;hn,llKminsCne,pIrHstra3Qto,ur,yGzl5;a,s0;j0Rls22;l2oG;or;oe;aPenOha6im14oHuG;ng,r4;e32hInHrge32u6vG;anD;es,ss3;anHnsG;en,on,t3;nesGs1R;en,s1;kiBnings,s1;cJkob4EnGrv0E;kDsG;en,sG;en0Ion;ks3obs2A;brahimDglesi5Nke5Fl0Qno07oneIshikHto,vanoG;u,v54;awa;scu;aVeOiNjaltal8oIrist50uG;!aGb0ghAynh;m2ng;a6dz4fIjgaa3Hk,lHpUrGwe,x3X;ak1Gvat;mAt;er,fm3WmG;ann;ggiBtchcock;iJmingw4BnHrGss;nand7re9;deGriks1;rs3;kkiHnG;on1;la,n1;dz4g1lvoQmOns0ZqNrMsJuIwHyG;asFes;kiB;g1ng;anHhiG;mo14;i,ov0J;di6p0r10t;ue;alaG;in1;rs1;aVeorgUheorghe,iSjonRoLrJuGw3;errGnnar3Co,staf3Ctierr7zm2;a,eG;ro;ayli6ee2Lg4iffithGub0;!s;lIme0UnHodGrbachE;e,m2;calvAzale0S;dGubE;bGs0E;erg;aj,i;bs3l,mGordaO;en7;iev3U;gnMlJmaIndFo,rGsFuthi0;cGdn0za;ia;ge;eaHlG;agh0i,o;no;e,on;aVerQiLjeldsted,lKoIrHuG;chs,entAji41ll0;eem2iedm2;ntaGrt8urni0wl0;na;emi6orA;lipIsHtzgeraG;ld;ch0h0;ovG;!ic;hatDnanIrG;arGei9;a,i;deY;ov4;b0rre1D;dKinsJriksIsGvaB;cob3GpGtra3D;inoza,osiQ;en,s3;te8;er,is3warG;ds;aXePiNjurhuMoKrisco15uHvorakG;!oT;arte,boHmitru,nn,rGt3C;and,ic;is;g2he0Omingu7nErd1ItG;to;us;aGcki2Hmitr2Ossanayake,x3;s,z; JbnaIlHmirGrvisFvi,w2;!ov4;gado,ic;th;bo0groot,jo6lHsilGvriA;va;a cruz,e3uG;ca;hl,mcevsCnIt2WviG;dGes,s;ov,s3;ielsGku22;!en;ki;a0Be06hRiobQlarkPoIrGunningh1H;awfo0RivGuz;elli;h1lKntJoIrGs2Nx;byn,reG;a,ia;ke,p0;i,rer2K;em2liB;ns;!e;anu;aOeMiu,oIristGu6we;eGiaG;ns1;i,ng,p9uHwGy;!dH;dGng;huJ;!n,onGu6;!g;kJnIpm2ttHudhGv7;ry;erjee,o14;!d,g;ma,raboG;rty;bJl0Cng4rG;eghetHnG;a,y;ti;an,ota1C;cerAlder3mpbeLrIstGvadi0B;iGro;llo;doHl0Er,t0uGvalho;so;so,zo;ll;a0Fe01hYiXlUoNrKuIyG;rLtyG;qi;chan2rG;ke,ns;ank5iem,oGyant;oks,wG;ne;gdan5nIruya,su,uchaHyKziG;c,n5;rd;darGik;enG;ko;ov;aGond15;nco,zG;ev4;ancFshw16;a08oGuiy2;umGwmG;ik;ckRethov1gu,ktPnNrG;gJisInG;ascoGds1;ni;ha;er,mG;anG;!n;gtGit7nP;ss3;asF;hi;er,hG;am;b4ch,ez,hRiley,kk0ldw8nMrIshHtAu0;es;ir;bInHtlGua;ett;es,i0;ieYosa;dGik;a9yoG;padhyG;ay;ra;k,ng;ic;bb0Acos09d07g04kht05lZnPrLsl2tJyG;aHd8;in;la;chis3kiG;ns3;aImstro6sl2;an;ng;ujo,ya;dJgelHsaG;ri;ovG;!a;ersJov,reG;aGjEws;ss1;en;en,on,s3;on;eksejEiyEmeiIvG;ar7es;ez;da;ev;arwHuilG;ar;al;ams,l0;er;ta;as",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:74;1:61;2:6G;3:6J;4:5S;a68b53c4Id48e44f3Wg3Hh39i31j2Wk2Fl23m1Mn1Co19p0Wq0Ur0Os05tRuQvLwDxiBy9z5;a7h5i4Muri4O;a5e5ongsh0;ng3H;greb,nzib5G;ang2e5okoha3Sunfu;katerin3Hrev0;a5n0Q;m5Hn;arsBeAi6roclBu5;h0xi,zh5P;c7n5;d5nipeg,terth4;hoek,s1L;hi5Zkl3A;l63xford;aw;a8e6i5ladivost5Molgogr6L;en3lni6S;ni22r5;o3saill4N;lenc4Wncouv3Sr3ughn;lan bat1Crumqi,trecht;aFbilisi,eEheDiBo9r7u5;l21n63r5;in,ku;i5ondh62;es51poli;kyo,m2Zron1Pulo5;n,uS;an5jua3l2Tmisoa6Bra3;j4Tshui; hag62ssaloni2H;gucigal26hr0l av1U;briz,i6llinn,mpe56ng5rtu,shk2R;i3Esh0;an,chu1n0p2Eyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4X;ba0Ht;aten is55ockholm,rasbou67uttga2V;an8e6i5;jiazhua1llo1m5Xy0;f50n5;ya1zh4H;gh3Kt4Q;att45o1Vv44;cramen16int ClBn5o paulo,ppo3Rrajevo; 7aa,t5;a 5o domin3E;a3fe,m1M;antonio,die3Cfrancisco,j5ped3Nsalvad0J;o5u0;se;em,t lake ci5Fz25;lou58peters24;a9e8i6o5;me,t59;ga,o5yadh;! de janei3F;cife,ims,nn3Jykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0Q;aFeEhDiCo9r7u6yong5;ya1;eb59ya1;a5etor3M;g52to;rt5zn0; 5la4Co;au prin0Melizabe24sa03;ls3Prae5Atts26;iladelph3Gnom pe1Aoenix;ki1r21tah tik3E;dua,lerYnaji,r4Ot5;na,r32;ak44des0Km1Mr6s5ttawa;a3Vlo;an,d06;a7ew5ing2Fovosibir1Jyc; 5cast36;del24orlea44taip14;g8iro4Wn5pl2Wshv33v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0W;aEeCi9o6u5;mb2Ani26sc3Y;gadishu,nt6s5;c13ul;evideo,pelli1Rre2Z;ami,l6n14s5;kolc,sissauga;an,waukee;cca,d5lbour2Mmph41ndo1Cssi3;an,ell2Xi3;cau,drAkass2Sl9n8r5shh4A;aca6ib5rakesh,se2L;or;i1Sy;a4EchFdal0Zi47;mo;id;aDeAi8o6u5vSy2;anMckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Lma5nz,sb2verpo28;!ss27; ma39i5;c5pzig;est16; p6g5ho2Wn0Cusan24;os;az,la33;aHharFiClaipeBo9rak0Du7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Hlka2Xpavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bHdu3llakuric0Qmpa3Fn6ohsiu1ra5un1Iwaguc0Q;c0Pj;d5o,p4;ah1Ty;a7e6i5ohannesV;l1Vn0;dd36rusalem;ip4k5;ar2H;bad0mph1OnArkutUs7taXz5;mir,tapala5;pa;fah0l6tanb5;ul;am2Zi2H;che2d5;ianap2Mo20;aAe7o5yder2W; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Oupe;ld coa1Bthen5;bu2S;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal29es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,nkirk,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Zr es sala1KugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1Q;lo7n6penhag0Ar5;do1Ok;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr14;ch8sha,zh07;gliari,i9lga8mayenJn6pe town,r5tanO;acCdiff;ber1Ac5;un;ry;ro;aWeNhKirmingh0WoJr9u5;chareTdapeTenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iCl9ng8r5;g6l5n;in;en;aluru,hazi;fa6grade,o horizon5;te;st;ji1rut;ghd0BkFn9ot8r7s6yan n4;ur;el,r07;celo3i,ranquil09;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a05b02cc01ddis aba00gartaZhmedXizawl,lSmPnHqa00rEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a8c5kaOtwerp;hora6o3;na;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 7buquerq6eppo,giers,ma5;ty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"trueยฆ0:2K;1:2Q;2:2H;3:2B;a2Ob2Bc1Xd1Ses1Rf1Pg1Kh1Gi1Bj17k12l0Zm0On06o04pYqVrSsJtEuBverAw6y4zacatec2S;akut0o0Cu4;cat2k06;a5est 4isconsin,yomi1K;bengal,virgin0;rwick3shington4;! dc;acruz,mont;dmurt0t4;ah,tar4; 2La0Y;a6e5laxca1Rripu1Xu4;scaEva;langa1nnessee,x2F;bas0Wm4smOtar25;aulip2Dil nadu;a9i7o5taf12u4ylh1F;ffZrr05s1A;me1Cno1Quth 4;cWdV;ber0c4kkim,naloa;hu2ily;n5skatchew2xo4;ny; luis potosi,ta catari1;a4hodeA;j4ngp08;asth2shahi;ingh25u4;e4intana roo;bec,en6retaro;ara8e6rince edward4unjab; i4;sl0C;i,nnsylv4rnambu0C;an0;!na;axa0Ydisha,h4klaho20ntar4reg7ss0Cx0H;io;aKeEo6u4;evo le4nav0W;on;r4tt17va scot0;f9mandy,th4; 4ampton3;c6d5yo4;rk3;ako1N;aroli1;olk;bras1Mva0Cw4; 5foundland4;! and labrador;brunswick,hamp3jers5mexiTyork4;! state;ey;galPyarit;aAeghala0Mi6o4;nta1r4;dov0elos;ch6dlanDn5ss4zor11;issippi,ouri;as geraPneso18;ig2oac2;dhy12harasht0Gine,ni5r4ssachusetts;anhao,i el,ylG;p4toba;ur;anca3e4incoln3ouisI;e4iR;ds;a6e5h4omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr4;achay,el0nata0X;alis6har4iangxi;kh4;and;co;daho,llino7n4owa;d5gush4;et0;ia1;is;a6ert5i4un2;dalFm0D;ford3;mp3rya1waii;ansu,eorg0lou7oa,u4;an4izhou,jarat;ajuato,gdo4;ng;cester3;lori4uji2;da;sex;ageUe7o5uran4;go;rs4;et;lawaMrby3;aFeaEh9o4rim08umbr0;ahui7l6nnectic5rsi4ventry;ca;ut;i03orado;la;e5hattisgarh,i4uvash0;apRhuahua;chn5rke4;ss0;ya;ra;lGm4;bridge3peche;a9ihar,r8u4;ck4ryat0;ingham3;shi4;re;emen,itish columb0;h0ja cal8lk7s4v7;hkorto4que;st2;an;ar0;iforn0;ia;dygHguascalientes,lBndhr9r5ss4;am;izo1kans5un4;achal 7;as;na;a 4;pradesh;a6ber5t4;ai;ta;ba5s4;ka;ma;ea",Country:"trueยฆ0:38;1:2L;2:3B;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om2pZqat1KrXsKtCu7v5wal4yemTz3;a25imbabwe;es,lis and futu2Y;a3enezue32ietnam;nuatu,tican city;gTk6nited 4ruXs3zbeE; 2Ca,sr;arab emirat0Kkingdom,states3;! of am2Y;!raiV;a8haCimor les0Co7rinidad 5u3;nis0rk3valu;ey,me2Zs and caic1V;and t3t3;oba1L;go,kel10nga;iw2ji3nz2T;ki2V;aDcotl1eCi9lov8o6pa2Dri lanka,u5w3yr0;az3edAitzerl1;il1;d2riname;lomon1Xmal0uth 3;afr2KkMsud2;ak0en0;erra leoFn3;gapo1Yt maart3;en;negLrb0ychellZ;int 3moa,n marino,udi arab0;hele26luc0mart21;epublic of ir0Eom2Euss0w3;an27;a4eIhilippinUitcairn1Mo3uerto riN;l1rtugF;ki2Dl4nama,pua new0Vra3;gu7;au,esti3;ne;aBe9i7or3;folk1Ith4w3;ay; k3ern mariana1D;or0O;caragua,ger3ue;!ia;p3ther1Aw zeal1;al;mib0u3;ru;a7exi6icro0Bo3yanm06;ldova,n3roc5zambA;a4gol0t3;enegro,serrat;co;cAdagasc01l7r5urit4yot3;te;an0i16;shall0Xtin3;ique;a4div3i,ta;es;wi,ys0;ao,ed02;a6e5i3uxembourg;b3echtenste12thu1G;er0ya;ban0Isotho;os,tv0;azakh1Fe4iriba04o3uwait,yrgyz1F;rXsovo;eling0Knya;a3erG;ma16p2;c7nd6r4s3taly,vory coast;le of m2rael;a3el1;n,q;ia,oJ;el1;aiTon3ungary;dur0Ng kong;aBermany,ha0QibraltAre8u3;a6ern5inea3ya0P;! biss3;au;sey;deloupe,m,tema0Q;e3na0N;ce,nl1;ar;bUmb0;a7i6r3;ance,ench 3;guia0Epoly3;nes0;ji,nl1;lklandUroeU;ast tim7cu6gypt,l salv6ngl1quatorial4ritr5st3thiop0;on0; guin3;ea;ad3;or;enmark,jibou5ominica4r con3;go;!n C;ti;aBentral african Ah8o5roat0u4yprRzech3; 9ia;ba,racao;c4lo3morQngo brazzaville,okGsta r04te de ivoiL;mb0;osE;i3ristmasG;le,na;republic;m3naUpe verde,ymanA;bod0ero3;on;aGeDhut2o9r5u3;lgar0r3;kina faso,ma,undi;azil,itish 3unei;virgin3; is3;lands;liv0nai5snia and herzegoviHtswaHuvet3; isl1;and;re;l3n8rmuG;ar3gium,ize;us;h4ngladesh,rbad3;os;am4ra3;in;as;fghaGlDmBn6r4ustr3zerbaij2;al0ia;genti3men0uba;na;dorra,g5t3;arct7igua and barbu3;da;o3uil3;la;er3;ica;b3ger0;an0;ia;ni3;st2;an",Place:"trueยฆa0Gb0Bc03d02e01f00gWhUiSkQlNmLnIorHpDrCsAt5u4v3w2y0;a0yz;kutPngtze;ake isHupatki;irgin islands,ostok;laanbaatar,p02;a3eotihuac0Hh1onto,sarskoe selo,u0;lXzigoot;am09e 0;bronx,hamptons;hiti,j mahE;a0cotts bluff,eine,fo,oho,under9;int lawrence river,khalY;ed s3io grande;a1ek,h0itcairn,ompeii;l,x;cif05pahanaumokuak0rthenX;ea;ange county,d,inoco;e0ile;uschwansteQw eng0;land;a0co,ekong,idLuc;chu picchu,gad00libu,nhatt00;a1gw,hr,incoln memori0;al;s,x;azan kremlJosrae,rasnoyar0ul;sk;ax,cn,nd0st;ianSochina;arlem,kg,nd,ov0;d,enweep;a2odavari,re0;at 0enwich;britaBlakI;ngHy village;co,ra;urope,vergladF;anube,en,fw,own4xb;arrizo pla6dg,edar 5gk,h1lt,olosse0;um;a2i0uuk;chen itza,mney rock,na0ricahua;town;morro,tham;breaks,fa5;in;cn,e2kk,ro0;oklyn,wns cany0;on;l air,verly hi0;lls;driadic,frica,lhambra,m7n3rc2sia,tl1zor0;es;!ant2; de triomphe,t1;adyr,tarct0;ic0; oce0;an;ericas,s",FirstName:"trueยฆaTblair,cQdOfrancoZgabMhinaLilya,jHkClBm6ni4quinn,re3s0;h0umit,yd;ay,e0iloh;a,lby;g9ne;co,ko0;!s;a1el0ina,org6;!okuhF;ds,naia,r1tt0xiB;i,y;ion,lo;ashawn,eif,uca;a3e1ir0rM;an;lsFn0rry;dall,yat5;i,sD;a0essIie,ude;i1m0;ie,mG;me;ta;rie0y;le;arcy,ev0;an,on;as1h0;arl8eyenne;ey,sidy;drien,kira,l4nd1ubr0vi;ey;i,r0;a,e0;a,y;ex2f1o0;is;ie;ei,is",WeekDay:"trueยฆfri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"trueยฆdec0february,july,nov0octo1sept0;em0;ber",Date:"trueยฆago,on4som4t1week0yesterd5; end,ends;mr1o0;d2morrow;!w;ed0;ay",Duration:"trueยฆcenturAd8h7m5q4se3w1y0;ear8r8;eek0k7;!end,s;ason,c5;tr,uarter;i0onth3;llisecond2nute2;our1r1;ay0ecade0;!s;ies,y",FemaleName:"trueยฆ0:J7;1:JB;2:IJ;3:IK;4:J1;5:IO;6:JS;7:JO;8:HB;9:JK;A:H4;B:I2;C:IT;D:JH;E:IX;F:BA;G:I4;aGTbFLcDRdD0eBMfB4gADh9Ti9Gj8Dk7Cl5Wm48n3Lo3Hp33qu32r29s15t0Eu0Cv02wVxiTyOzH;aLeIineb,oHsof3;e3Sf3la,ra;h2iKlIna,ynH;ab,ep;da,ma;da,h2iHra;nab;aKeJi0FolB7uIvH;et8onDP;i0na;le0sen3;el,gm3Hn,rGLs8W;aoHme0nyi;m5XyAD;aMendDZhiDGiH;dele9lJnH;if48niHo0;e,f47;a,helmi0lHma;a,ow;ka0nB;aNeKiHusa5;ck84kIl8oleAviH;anFenJ4;ky,toriBK;da,lA8rHs0;a,nHoniH9;a,iFR;leHnesH9;nILrH;i1y;g9rHs6xHA;su5te;aYeUhRiNoLrIuHy2;i,la;acJ3iHu0J;c3na,sH;hFta;nHr0F;iFya;aJffaEOnHs6;a,gtiH;ng;!nFSra;aIeHomasi0;a,l9Oo8Ares1;l3ndolwethu;g9Fo88rIssH;!a,ie;eHi,ri7;sa,za;bOlMmKnIrHs6tia0wa0;a60yn;iHya;a,ka,s6;arFe2iHm77ra;!ka;a,iH;a,t6;at6it6;a0Ecarlett,e0AhWiSkye,neza0oQri,tNuIyH;bIGlvi1;ha,mayIJniAsIzH;an3Net8ie,y;anHi7;!a,e,nH;aCe;aIeH;fan4l5Dphan6E;cI5r5;b3fiAAm0LnHphi1;d2ia,ja,ya;er2lJmon1nIobh8QtH;a,i;dy;lETv3;aMeIirHo0risFDy5;a,lDM;ba,e0i5lJrH;iHr6Jyl;!d8Ifa;ia,lDZ;hd,iMki2nJrIu0w0yH;la,ma,na;i,le9on,ron,yn;aIda,ia,nHon;a,on;!ya;k6mH;!aa;lJrItaye82vH;da,inj;e0ife;en1i0ma;anA9bLd5Oh1SiBkKlJmInd2rHs6vannaC;aCi0;ant6i2;lDOma,ome;ee0in8Tu2;in1ri0;a05eZhXiUoHuthDM;bScRghQl8LnPsJwIxH;anB3ie,y;an,e0;aIeHie,lD;ann7ll1marDGtA;!lHnn1;iHyn;e,nH;a,dF;da,i,na;ayy8G;hel67io;bDRerAyn;a,cIkHmas,nFta,ya;ki,o;h8Xki;ea,iannGMoH;da,n1P;an0bJemFgi0iInHta,y0;a8Bee;han86na;a,eH;cHkaC;a,ca;bi0chIe,i0mo0nHquETy0;di,ia;aERelHiB;!e,le;een4ia0;aPeOhMiLoJrHute6A;iHudenCV;scil3LyamvaB;lHrt3;i0ly;a,paluk;ilome0oebe,ylH;is,lis;ggy,nelope,r5t2;ige,m0VnKo5rvaDMtIulH;a,et8in1;ricHt4T;a,e,ia;do2i07;ctav3dIfD3is6ksa0lHphD3umC5yunbileg;a,ga,iv3;eHvAF;l3t8;aWeUiMoIurHy5;!ay,ul;a,eJor,rIuH;f,r;aCeEma;ll1mi;aNcLhariBQkKlaJna,sHta,vi;anHha;ur;!y;a,iDZki;hoGk9YolH;a,e4P;!mh;hir,lHna,risDEsreE;!a,lBV;asuMdLh3i6Dl5nKomi7rgEVtH;aHhal4;lHs6;i1ya;cy,et8;e9iF0ya;nngu2X;a0Ackenz4e02iMoJrignayani,uriDJyH;a,rH;a,iOlNna,tG;bi0i2llBJnH;a,iH;ca,ka,qD9;a,cUdo4ZkaTlOmi,nMrItzi,yH;ar;aJiIlH;anET;am;!l,nB;dy,eHh,n4;nhGrva;aKdJe0iCUlH;iHy;cent,e;red;!gros;!e5;ae5hH;ae5el3Z;ag5DgNi,lKrH;edi7AiIjem,on,yH;em,l;em,sCG;an4iHliCF;nHsCJ;a,da;!an,han;b09cASd07e,g05ha,i04ja,l02n00rLsoum5YtKuIv84xBKyHz4;bell,ra,soBB;d7rH;a,eE;h8Gild1t4;a,cUgQiKjor4l7Un4s6tJwa,yH;!aHbe6Xja9lAE;m,nBL;a,ha,in1;!aJbCGeIja,lDna,sHt63;!a,ol,sa;!l1D;!h,mInH;!a,e,n1;!awit,i;arJeIie,oHr48ueri8;!t;!ry;et46i3B;el4Xi7Cy;dHon,ue5;akranAy;ak,en,iHlo3S;a,ka,nB;a,re,s4te;daHg4;!l3E;alDd4elHge,isDJon0;ei9in1yn;el,le;a0Ne0CiXoQuLyH;d3la,nH;!a,dIe2OnHsCT;!a,e2N;a,sCR;aD4cJel0Pis1lIna,pHz;e,iA;a,u,wa;iHy;a0Se,ja,l2NnB;is,l1UrItt1LuHvel4;el5is1;aKeIi7na,rH;aADi7;lHn1tA;ei;!in1;aTbb9HdSepa,lNnKsJvIzH;!a,be5Ret8z4;!ia;a,et8;!a,dH;a,sHy;ay,ey,i,y;a,iJja,lH;iHy;aA8e;!aH;!nF;ia,ya;!nH;!a,ne;aPda,e0iNjYla,nMoKsJtHx93y5;iHt4;c3t3;e2PlCO;la,nHra;a,ie,o2;a,or1;a,gh,laH;!ni;!h,nH;a,d2e,n5V;cOdon9DiNkes6mi9Gna,rMtJurIvHxmi,y5;ern1in3;a,e5Aie,yn;as6iIoH;nya,ya;fa,s6;a,isA9;a,la;ey,ie,y;a04eZhXiOlASoNrJyH;lHra;a,ee,ie;istHy6I;a,en,iIyH;!na;!e,n5F;nul,ri,urtnB8;aOerNlB7mJrHzzy;a,stH;en,in;!berlImernH;aq;eHi,y;e,y;a,stE;!na,ra;aHei2ongordzol;dij1w5;el7UiKjsi,lJnIrH;a,i,ri;d2na,za;ey,i,lBLs4y;ra,s6;biAcARdiat7MeBAiSlQmPnyakuma1DrNss6NtKviAyH;!e,lH;a,eH;e,i8T;!a6HeIhHi4TlDri0y;ar8Her8Hie,leErBAy;!lyn8Ori0;a,en,iHl5Xoli0yn;!ma,nFs95;a5il1;ei8Mi,lH;e,ie;a,tl6O;a0AeZiWoOuH;anMdLlHst88;es,iH;a8NeHs8X;!n9tH;!a,te;e5Mi3My;a,iA;!anNcelDdMelGhan7VleLni,sIva0yH;a,ce;eHie;fHlDph7Y;a,in1;en,n1;i7y;!a,e,n45;lHng;!i1DlH;!i1C;anNle0nKrJsH;i8JsH;!e,i8I;i,ri;!a,elGif2CnH;a,et8iHy;!e,f2A;a,eJiInH;a,eIiH;e,n1;!t8;cMda,mi,nIque4YsminFvie2y9zH;min7;a7eIiH;ce,e,n1s;!lHs82t0F;e,le;inIk6HlDquelH;in1yn;da,ta;da,lRmPnOo0rNsIvaHwo0zaro;!a0lu,na;aJiIlaHob89;!n9R;do2;belHdo2;!a,e,l3B;a7Ben1i0ma;di2es,gr72ji;a9elBogH;en1;a,e9iHo0se;a0na;aSeOiJoHus7Kyacin2C;da,ll4rten24snH;a,i9U;lImaH;ri;aIdHlaI;a,egard;ry;ath1BiJlInrietArmi9sH;sa,t1A;en2Uga,mi;di;bi2Fil8MlNnMrJsItHwa,yl8M;i5Tt4;n60ti;iHmo51ri53;etH;!te;aCnaC;a,ey,l4;a02eWiRlPoNrKunJwH;enHyne1R;!dolD;ay,el;acieIetHiselB;a,chE;!la;ld1CogooH;sh;adys,enHor3yn2K;a,da,na;aKgi,lIna,ov8EselHta;a,e,le;da,liH;an;!n0;mLnJorgIrH;ald5Si,m3Etrud7;et8i4X;a,eHna;s29vieve;ma;bIle,mHrnet,yG;al5Si5;iIrielH;a,l1;!ja;aTeQiPlorOoz3rH;anJeIiH;da,eB;da,ja;!cH;esIiHoi0P;n1s66;!ca;a,enc3;en,o0;lIn0rnH;anB;ec3ic3;jr,nArKtHy7;emIiHma,oumaA;ha,ma,n;eh;ah,iBrah,za0;cr4Rd0Re0Qi0Pk0Ol07mXn54rUsOtNuMvHwa;aKelIiH;!e,ta;inFyn;!a;!ngel4V;geni1ni47;h5Yien9ta;mLperanKtH;eIhHrel5;er;l31r7;za;a,eralB;iHma,ne4Lyn;cHka,n;a,ka;aPeNiKmH;aHe21ie,y;!li9nuH;elG;lHn1;e7iHy;a,e,ja;lHrald;da,y;!nue5;aWeUiNlMma,no2oKsJvH;a,iH;na,ra;a,ie;iHuiH;se;a,en,ie,y;a0c3da,e,f,nMsJzaH;!betHveA;e,h;aHe,ka;!beH;th;!a,or;anor,nH;!a,i;!in1na;ate1Rta;leEs6;vi;eIiHna,wi0;e,th;l,n;aYeMh3iLjeneKoH;lor5Vminiq4Ln3FrHtt4;a,eEis,la,othHthy;ea,y;ba;an09naCon9ya;anQbPde,eOiMlJmetr3nHsir5M;a,iH;ce,se;a,iIla,orHphi9;es,is;a,l6F;dHrdH;re;!d5Ena;!b2ForaCraC;a,d2nH;!a,e;hl3i0l0GmNnLphn1rIvi1WyH;le,na;a,by,cIia,lH;a,en1;ey,ie;a,et8iH;!ca,el1Aka,z;arHia;is;a0Re0Nh04i02lUoJristIynH;di,th3;al,i0;lPnMrIurH;tn1D;aJd2OiHn2Ori9;!nH;a,e,n1;!l4;cepci5Cn4sH;tanHuelo;ce,za;eHleE;en,t8;aJeoIotH;il54;!pat2;ir7rJudH;et8iH;a,ne;a,e,iH;ce,sZ;a2er2ndH;i,y;aReNloe,rH;isJyH;stH;al;sy,tH;a1Sen,iHy;an1e,n1;deJlseIrH;!i7yl;a,y;li9;nMrH;isKlImH;ai9;a,eHot8;n1t8;!sa;d2elGtH;al,elG;cIlH;es8i47;el3ilH;e,ia,y;itlYlXmilWndVrMsKtHy5;aIeIhHri0;er1IleErDy;ri0;a38sH;a37ie;a,iOlLmeJolIrH;ie,ol;!e,in1yn;lHn;!a,la;a,eIie,otHy;a,ta;ne,y;na,s1X;a0Ii0I;a,e,l1;isAl4;in,yn;a0Ke02iZlXoUrH;andi7eRiJoIyH;an0nn;nwDoke;an3HdgMgiLtH;n31tH;!aInH;ey,i,y;ny;d,t8;etH;!t7;an0e,nH;da,na;bbi7glarIlo07nH;iAn4;ka;ancHythe;a,he;an1Clja0nHsm3M;iAtH;ou;aWcVlinUniArPssOtJulaCvH;!erlH;ey,y;hJsy,tH;e,iHy7;e,na;!anH;ie,y;!ie;nItHyl;ha,ie;adIiH;ce;et8i9;ay,da;ca,ky;!triH;ce,z;rbJyaH;rmH;aa;a2o2ra;a2Ub2Od25g21i1Sj5l18m0Zn0Boi,r06sWtVuPvOwa,yIzH;ra,u0;aKes6gJlIn,seH;!l;in;un;!nH;a,na;a,i2K;drLguJrIsteH;ja;el3;stH;in1;a,ey,i,y;aahua,he0;hIi2Gja,miAs2DtrH;id;aMlIraqHt21;at;eIi7yH;!n;e,iHy;gh;!nH;ti;iJleIo6piA;ta;en,n1t8;aHelG;!n1J;a01dje5eZgViTjRnKohito,toHya;inet8nH;el5ia;te;!aKeIiHmJ;e,ka;!mHtt7;ar4;!belIliHmU;sa;!l1;a,eliH;ca;ka,sHta;a,sa;elHie;a,iH;a,ca,n1qH;ue;!tH;a,te;!bImHstasiMya;ar3;el;aLberKeliJiHy;e,l3naH;!ta;a,ja;!ly;hGiIl3nB;da;a,ra;le;aWba,ePiMlKthJyH;a,c3sH;a,on,sa;ea;iHys0N;e,s0M;a,cIn1sHza;a,e,ha,on,sa;e,ia,ja;c3is6jaKksaKna,sJxH;aHia;!nd2;ia,saH;nd2;ra;ia;i0nIyH;ah,na;a,is,naCoud;la;c6da,leEmNnLsH;haClH;inHyY;g,n;!h;a,o,slH;ey;ee;en;at6g4nIusH;ti0;es;ie;aWdiTelMrH;eJiH;anMenH;a,e,ne;an0;na;!aLeKiIyH;nn;a,n1;a,e;!ne;!iH;de;e,lDsH;on;yn;!lH;i9yn;ne;aKbIiHrL;!e,gaK;ey,i7y;!e;gaH;il;dKliyJradhIs6;ha;ya;ah;a,ya",Honorific:"trueยฆdirector1field marsh2lieutenant1rear0sergeant major,vice0; admir1; gener0;al","Adj|Gerund":"trueยฆ0:3F;1:3H;2:31;3:2X;4:35;5:33;6:3C;7:2Z;8:36;9:29;a33b2Tc2Bd1Te1If19g12h0Zi0Rl0Nm0Gnu0Fo0Ap04rYsKtEuBvAw1Ayiel3;ar6e08;nBpA;l1Rs0B;fol3n1Zsett2;aEeDhrBi4ouc7rAwis0;e0Bif2oub2us0yi1;ea1SiA;l2vi1;l2mp0rr1J;nt1Vxi1;aMcreec7enten2NhLkyrocke0lo0Vmi2oJpHtDuBweA;e0Ul2;pp2ArA;gi1pri5roun3;aBea8iAri2Hun9;mula0r4;gge4rA;t2vi1;ark2eAraw2;e3llb2F;aAot7;ki1ri1;i9oc29;dYtisf6;aEeBive0oAus7;a4l2;assu4defi9fres7ig9juve07mai9s0vAwar3;ea2italiAol1G;si1zi1;gi1ll6mb2vi1;a6eDier23lun1VrAun2C;eBoA;mi5vo1Z;ce3s5vai2;n3rpleA;xi1;ffCpWutBverAwi1;arc7lap04p0Pri3whel8;goi1l6st1J;en3sA;et0;m2Jrtu4;aEeDiCoBuAyst0L;mb2;t1Jvi1;s5tiga0;an1Rl0n3smeri26;dAtu4;de9;aCeaBiAo0U;fesa0Tvi1;di1ni1;c1Fg19s0;llumiGmFnArri0R;cDfurHsCtBviA;go23ti1;e1Oimi21oxica0rig0V;pi4ul0;orpo20r0K;po5;na0;eaBorr02umilA;ia0;li1rtwar8;lFrA;atiDipCoBuelA;i1li1;undbrea10wi1;pi1;f6ng;a4ea8;a3etc7it0lEoCrBulfA;il2;ee1FighXust1L;rAun3;ebo3thco8;aCoA;a0wA;e4i1;mi1tte4;lectrJmHnExA;aCci0hBis0pA;an3lo3;aOila1B;c0spe1A;ab2coura0CdBergi13ga0Clive9ric7s02tA;hral2i0J;ea4u4;barras5er09pA;owe4;if6;aQeIiBrA;if0;sAzz6;aEgDhearCsen0tA;rAur11;ac0es5;te9;us0;ppoin0r8;biliGcDfi9gra3ligh0mBpres5sAvasG;erE;an3ea9orA;ali0L;a6eiBli9rA;ea5;vi1;ta0;maPri1s7un0zz2;aPhMlo5oAripp2ut0;mGnArrespon3;cer9fDspi4tA;inBrA;as0ibu0ol2;ui1;lic0u5;ni1;fDmCpA;eAromi5;l2ti1;an3;or0;aAil2;llenAnAr8;gi1;l8ptAri1;iva0;aff2eGin3lFoDrBuA;d3st2;eathtaAui5;ki1;gg2i2o8ri1unA;ci1;in3;co8wiA;lAtc7;de4;bsorVcOgonMlJmHnno6ppea2rFsA;pi4su4toA;nBun3;di1;is7;hi1;res0;li1;aFu5;si1;ar8lu4;ri1;mi1;iAzi1;zi1;cAhi1;eleDomA;moBpan6;yi1;da0;ra0;ti1;bi1;ng",Comparable:"trueยฆ0:3C;1:3Q;2:3F;a3Tb3Cc33d2Te2Mf2Ag1Wh1Li1Fj1Ek1Bl13m0Xn0So0Rp0Iqu0Gr07sHtCug0vAw4y3za0Q;el10ouN;ary,e6hi5i3ry;ck0Cde,l3n1ry,se;d,y;ny,te;a3i3R;k,ry;a3erda2ulgar;gue,in,st;a6en2Xhi5i4ouZr3;anqu2Cen1ue;dy,g36me0ny;ck,rs28;ll,me,rt,wd3I;aRcaPeOhMiLkin0BlImGoEpDt6u4w3;eet,ift;b3dd0Wperfi21rre28;sta26t21;a8e7iff,r4u3;pUr1;a4ict,o3;ng;ig2Vn0N;a1ep,rn;le,rk,te0;e1Si2Vright0;ci1Yft,l3on,re;emn,id;a3el0;ll,rt;e4i3y;g2Mm0Z;ek,nd2T;ck24l0mp1L;a3iRrill,y;dy,l01rp;ve0Jxy;n1Jr3;ce,y;d,fe,int0l1Hv0V;a8e6i5o3ude;mantic,o19sy,u3;gh;pe,t1P;a3d,mo0A;dy,l;gg4iFndom,p3re,w;id;ed;ai2i3;ck,et;hoAi1Fl9o8r5u3;ny,r3;e,p11;egna2ic4o3;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e5i4o3u14;b0Sisy,rm0Ysy;bb0ce,mb0R;a3r1w;r,t;ad,e5ild,o4u3;nda12te;ist,o1;a4ek,l3;low;s0ty;a8e7i6o3ucky;f0Jn4o15u3ve0w10y0N;d,sy;e0g;ke0l,mp,tt0Eve0;e1Qwd;me,r3te;ge;e4i3;nd;en;ol0ui19;cy,ll,n3;secu6t3;e3ima4;llege2rmedia3;te;re;aAe7i6o5u3;ge,m3ng1C;bYid;me0t;gh,l0;a3fXsita2;dy,rWv3;en0y;nd13ppy,r3;d3sh;!y;aFenEhCiBlAoofy,r3;a8e6i5o3ue0Z;o3ss;vy;m,s0;at,e3y;dy,n;nd,y;ad,ib,ooD;a2d1;a3o3;st0;tDuiS;u1y;aCeebBi9l8o6r5u3;ll,n3r0N;!ny;aCesh,iend0;a3nd,rmD;my;at,ir7;erce,nan3;ci9;le;r,ul3;ty;a6erie,sse4v3xtre0B;il;nti3;al;r4s3;tern,y;ly,th0;appZe9i5ru4u3;mb;nk;r5vi4z3;zy;ne;e,ty;a3ep,n9;d3f,r;!ly;agey,h8l7o5r4u3;dd0r0te;isp,uel;ar3ld,mmon,st0ward0zy;se;evKou1;e3il0;ap,e3;sy;aHiFlCoAr5u3;ff,r0sy;ly;a6i3oad;g4llia2;nt;ht;sh,ve;ld,un3;cy;a4o3ue;nd,o1;ck,nd;g,tt3;er;d,ld,w1;dy;bsu6ng5we3;so3;me;ry;rd",Adverb:"trueยฆa08b05d00eYfSheQinPjustOkinda,likewiZmMnJoEpCquite,r9s5t2u0very,well;ltima01p0; to,wards5;h1iny bit,o0wiO;o,t6;en,us;eldom,o0uch;!me1rt0; of;how,times,w0C;a1e0;alS;ndomRth05;ar excellenEer0oint blank; Lhaps;f3n0utright;ce0ly;! 0;ag05moX; courGten;ewJo0; longWt 0;onHwithstand9;aybe,eanwhiNore0;!ovT;! aboX;deed,steY;lla,n0;ce;or3u0;ck1l9rther0;!moK;ing; 0evK;exampCgood,suH;n mas0vI;se;e0irect2; 2fini0;te0;ly;juAtrop;ackward,y 0;far,no0; means,w; GbroFd nauseam,gEl7ny5part,s4t 2w0;ay,hi0;le;be7l0mo7wor7;arge,ea6; soon,i4;mo0way;re;l 3mo2ongsi1ready,so,togeth0ways;er;de;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"trueยฆaXbTcReNhowMiEjust00noBo9p8supposing,t5wh0yet;e1il0o3;e,st;n1re0thN; if,by,vM;evL;h0il,o;erefOo0;!uU;lus,rovided th9;r0therwiM;! not; mattEr,w0;! 0;since,th4w7;f4n0; 0asmuch;as mIcaForder t0;h0o;at;! 0;only,t0w0;hen;!ev3;ith2ven0;! 0;if,tB;er;o0uz;s,z;e0ut,y the time;cau1f0;ore;se;lt3nd,s 0;far1if,m0soon1t2;uch0; as;hou0;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",Determiner:"trueยฆaBboth,d9e6few,le5mu8neiDplenty,s4th2various,wh0;at0ich0;evC;a0e4is,ose;!t;everal,ome;!ast,s;a1l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er","Adj|Present":"trueยฆa07b04cVdQeNfJhollIidRlEmCnarrIoBp9qua8r7s3t2uttFw0;aKet,ro0;ng,u08;endChin;e2hort,l1mooth,our,pa9tray,u0;re,speU;i2ow;cu6da02leSpaN;eplica01i02;ck;aHerfePr0;eseUime,omV;bscu1pen,wn;atu0e3odeH;re;a2e1ive,ow0;er;an;st,y;ow;a2i1oul,r0;ee,inge;rm;iIke,ncy,st;l1mpty,x0;emHpress;abo4ic7;amp,e2i1oub0ry,ull;le;ffu9re6;fu8libe0;raE;alm,l5o0;mpleCn3ol,rr1unterfe0;it;e0u7;ct;juga8sum7;ea1o0;se;n,r;ankru1lu0;nt;pt;li2pproxi0rticula1;ma0;te;ght","Person|Adj":"trueยฆb3du2earnest,frank,mi2r0san1woo1;an0ich,u1;dy;sty;ella,rown",Modal:"trueยฆc5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Verb:"trueยฆborn,cannot,gonna,has,keep tabs,msg","Person|Verb":"trueยฆb8ch7dr6foster,gra5ja9lan4ma2ni9ollie,p1rob,s0wade;kip,pike,t5ue;at,eg,ier2;ck,r0;k,shal;ce;ce,nt;ew;ase,u1;iff,l1ob,u0;ck;aze,ossom","Person|Date":"trueยฆa2j0sep;an0une;!uary;p0ugust,v0;ril"};const Oo=36,Fo="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",Vo=Fo.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var zo=function(e){if(void 0!==Vo[e])return Vo[e];let t=0,n=1,r=Oo,a=1;for(;n=0;n--,a*=Oo){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t},Bo=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=So(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=Ko(Eo[e]);qo.test(e)?Object.keys(t).forEach((t=>{if(Ro[t]=e,"Noun|Verb"===e){let e=Wo(t,Qo);Ro[e]="Plural|Verb"}})):Object.keys(t).forEach((t=>{Uo[t]=e}))})),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Uo[e]="Emoticon")),delete Uo[""],delete Uo.null,delete Uo[" "];const _o="Singular";var Zo={beforeTags:{Determiner:_o,Possessive:_o,Acronym:_o,Noun:_o,Adjective:_o,PresentTense:_o,Gerund:_o,PastTense:_o,Infinitive:_o,Date:_o,Ordinal:_o,Demonym:_o},afterTags:{Value:_o,Modal:_o,Copula:_o,PresentTense:_o,PastTense:_o,Demonym:_o,Actor:_o},beforeWords:{the:_o,with:_o,without:_o,of:_o,for:_o,any:_o,all:_o,on:_o,cut:_o,cuts:_o,increase:_o,decrease:_o,raise:_o,drop:_o,save:_o,saved:_o,saves:_o,make:_o,makes:_o,made:_o,minus:_o,plus:_o,than:_o,another:_o,versus:_o,neither:_o,about:_o,favorite:_o,best:_o,daily:_o,weekly:_o,linear:_o,binary:_o,mobile:_o,lexical:_o,technical:_o,computer:_o,scientific:_o,security:_o,government:_o,popular:_o,formal:_o,no:_o,more:_o,one:_o,let:_o,her:_o,his:_o,their:_o,our:_o,us:_o,sheer:_o,monthly:_o,yearly:_o,current:_o,previous:_o,upcoming:_o,last:_o,next:_o,main:_o,initial:_o,final:_o,beginning:_o,end:_o,top:_o,bottom:_o,future:_o,past:_o,major:_o,minor:_o,side:_o,central:_o,peripheral:_o,public:_o,private:_o},afterWords:{of:_o,system:_o,aid:_o,method:_o,utility:_o,tool:_o,reform:_o,therapy:_o,philosophy:_o,room:_o,authority:_o,says:_o,said:_o,wants:_o,wanted:_o,is:_o,did:_o,do:_o,can:_o,wise:_o}};const Xo="Infinitive";var Yo={beforeTags:{Modal:Xo,Adverb:Xo,Negative:Xo,Plural:Xo},afterTags:{Determiner:Xo,Adverb:Xo,Possessive:Xo,Reflexive:Xo,Preposition:Xo,Cardinal:Xo,Comparative:Xo,Superlative:Xo},beforeWords:{i:Xo,we:Xo,you:Xo,they:Xo,to:Xo,please:Xo,will:Xo,have:Xo,had:Xo,would:Xo,could:Xo,should:Xo,do:Xo,did:Xo,does:Xo,can:Xo,must:Xo,us:Xo,me:Xo,let:Xo,even:Xo,when:Xo,help:Xo,he:Xo,she:Xo,it:Xo,being:Xo,bi:Xo,co:Xo,contra:Xo,de:Xo,inter:Xo,intra:Xo,mis:Xo,pre:Xo,out:Xo,counter:Xo,nobody:Xo,somebody:Xo,anybody:Xo,everybody:Xo},afterWords:{the:Xo,me:Xo,you:Xo,him:Xo,us:Xo,her:Xo,his:Xo,them:Xo,they:Xo,it:Xo,himself:Xo,herself:Xo,itself:Xo,myself:Xo,ourselves:Xo,themselves:Xo,something:Xo,anything:Xo,a:Xo,an:Xo,up:Xo,down:Xo,by:Xo,out:Xo,off:Xo,under:Xo,what:Xo,all:Xo,to:Xo,because:Xo,although:Xo,how:Xo,otherwise:Xo,together:Xo,though:Xo,into:Xo,yet:Xo,more:Xo,here:Xo,there:Xo,away:Xo}},ei={beforeTags:Object.assign({},Yo.beforeTags,Zo.beforeTags,{}),afterTags:Object.assign({},Yo.afterTags,Zo.afterTags,{}),beforeWords:Object.assign({},Yo.beforeWords,Zo.beforeWords,{}),afterWords:Object.assign({},Yo.afterWords,Zo.afterWords,{})};const ti="Adjective";var ni={beforeTags:{Determiner:ti,Possessive:ti,Hyphenated:ti},afterTags:{Adjective:ti},beforeWords:{seem:ti,seemed:ti,seems:ti,feel:ti,feels:ti,felt:ti,stay:ti,appear:ti,appears:ti,appeared:ti,also:ti,over:ti,under:ti,too:ti,it:ti,but:ti,still:ti,really:ti,quite:ti,well:ti,very:ti,truly:ti,how:ti,deeply:ti,hella:ti,profoundly:ti,extremely:ti,so:ti,badly:ti,mostly:ti,totally:ti,awfully:ti,rather:ti,nothing:ti,something:ti,anything:ti,not:ti,me:ti,is:ti,face:ti,faces:ti,faced:ti,look:ti,looks:ti,looked:ti,reveal:ti,reveals:ti,revealed:ti,sound:ti,sounded:ti,sounds:ti,remains:ti,remained:ti,prove:ti,proves:ti,proved:ti,becomes:ti,stays:ti,tastes:ti,taste:ti,smells:ti,smell:ti,gets:ti,grows:ti,as:ti,rings:ti,radiates:ti,conveys:ti,convey:ti,conveyed:ti,of:ti},afterWords:{too:ti,also:ti,or:ti,enough:ti,as:ti}};const ri="Gerund";var ai={beforeTags:{Adverb:ri,Preposition:ri,Conjunction:ri},afterTags:{Adverb:ri,Possessive:ri,Person:ri,Pronoun:ri,Determiner:ri,Copula:ri,Preposition:ri,Conjunction:ri,Comparative:ri},beforeWords:{been:ri,keep:ri,continue:ri,stop:ri,am:ri,be:ri,me:ri,began:ri,start:ri,starts:ri,started:ri,stops:ri,stopped:ri,help:ri,helps:ri,avoid:ri,avoids:ri,love:ri,loves:ri,loved:ri,hate:ri,hates:ri,hated:ri},afterWords:{you:ri,me:ri,her:ri,him:ri,his:ri,them:ri,their:ri,it:ri,this:ri,there:ri,on:ri,about:ri,for:ri,up:ri,down:ri}};const oi="Gerund",ii="Adjective";var si={beforeTags:Object.assign({},ni.beforeTags,ai.beforeTags,{Imperative:oi,Infinitive:ii,Plural:oi}),afterTags:Object.assign({},ni.afterTags,ai.afterTags,{Noun:ii}),beforeWords:Object.assign({},ni.beforeWords,ai.beforeWords,{is:ii,are:oi,was:ii,of:ii,suggest:oi,suggests:oi,suggested:oi,recommend:oi,recommends:oi,recommended:oi,imagine:oi,imagines:oi,imagined:oi,consider:oi,considered:oi,considering:oi,resist:oi,resists:oi,resisted:oi,avoid:oi,avoided:oi,avoiding:oi,except:ii,accept:ii,assess:oi,explore:oi,fear:oi,fears:oi,appreciate:oi,question:oi,help:oi,embrace:oi,with:ii}),afterWords:Object.assign({},ni.afterWords,ai.afterWords,{to:oi,not:oi,the:oi})};const li={beforeTags:{Determiner:void 0,Cardinal:"Noun",PhrasalVerb:"Adjective"},afterTags:{}};var ui={beforeTags:Object.assign({},ni.beforeTags,Zo.beforeTags,li.beforeTags),afterTags:Object.assign({},ni.afterTags,Zo.afterTags,li.afterTags),beforeWords:Object.assign({},ni.beforeWords,Zo.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective",off:"Adjective",out:"Adjective"}),afterWords:Object.assign({},ni.afterWords,Zo.afterWords)};let ci="PastTense",hi="Adjective";const di={beforeTags:{Adverb:ci,Pronoun:ci,ProperNoun:ci,Auxiliary:ci,Noun:ci},afterTags:{Possessive:ci,Pronoun:ci,Determiner:ci,Adverb:ci,Comparative:ci,Date:ci,Gerund:ci},beforeWords:{be:ci,who:ci,get:hi,had:ci,has:ci,have:ci,been:ci,it:ci,as:ci,for:hi,more:hi,always:hi},afterWords:{by:ci,back:ci,out:ci,in:ci,up:ci,down:ci,before:ci,after:ci,for:ci,the:ci,with:ci,as:ci,on:ci,at:ci,between:ci,to:ci,into:ci,us:ci,them:ci,his:ci,her:ci,their:ci,our:ci,me:ci,about:hi}};var gi={beforeTags:Object.assign({},ni.beforeTags,di.beforeTags),afterTags:Object.assign({},ni.afterTags,di.afterTags),beforeWords:Object.assign({},ni.beforeWords,di.beforeWords),afterWords:Object.assign({},ni.afterWords,di.afterWords)};const mi={afterTags:{Noun:"Adjective",Conjunction:void 0}};var pi={beforeTags:Object.assign({},ni.beforeTags,Yo.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},ni.afterTags,Yo.afterTags,mi.afterTags),beforeWords:Object.assign({},ni.beforeWords,Yo.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},ni.afterWords,Yo.afterWords,{to:void 0,as:"Adjective"})};const fi={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},vi={Value:"Gerund"},bi={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},yi={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var wi={beforeTags:Object.assign({},ai.beforeTags,Zo.beforeTags,fi),afterTags:Object.assign({},ai.afterTags,Zo.afterTags,vi),beforeWords:Object.assign({},ai.beforeWords,Zo.beforeWords,bi),afterWords:Object.assign({},ai.afterWords,Zo.afterWords,yi)};const ki="Singular",Pi="Infinitive";var Ai={beforeTags:Object.assign({},Yo.beforeTags,Zo.beforeTags,{Adjective:ki,Particle:ki}),afterTags:Object.assign({},Yo.afterTags,Zo.afterTags,{ProperNoun:Pi,Gerund:Pi,Adjective:Pi,Copula:ki}),beforeWords:Object.assign({},Yo.beforeWords,Zo.beforeWords,{is:ki,was:ki,of:ki,have:null}),afterWords:Object.assign({},Yo.afterWords,Zo.afterWords,{instead:Pi,about:Pi,his:Pi,her:Pi,to:null,by:null,in:null})};const Ci="Person";var ji={beforeTags:{Honorific:Ci,Person:Ci},afterTags:{Person:Ci,ProperNoun:Ci,Verb:Ci},ownTags:{ProperNoun:Ci},beforeWords:{hi:Ci,hey:Ci,yo:Ci,dear:Ci,hello:Ci},afterWords:{said:Ci,says:Ci,told:Ci,tells:Ci,feels:Ci,felt:Ci,seems:Ci,thinks:Ci,thought:Ci,spends:Ci,spendt:Ci,plays:Ci,played:Ci,sing:Ci,sang:Ci,learn:Ci,learned:Ci,wants:Ci,wanted:Ci}};const Ni="Month",xi={beforeTags:{Date:Ni,Value:Ni},afterTags:{Date:Ni,Value:Ni},beforeWords:{by:Ni,in:Ni,on:Ni,during:Ni,after:Ni,before:Ni,between:Ni,until:Ni,til:Ni,sometime:Ni,of:Ni,this:Ni,next:Ni,last:Ni,previous:Ni,following:Ni,with:"Person"},afterWords:{sometime:Ni,in:Ni,of:Ni,until:Ni,the:Ni}};var Ii={beforeTags:Object.assign({},ji.beforeTags,xi.beforeTags),afterTags:Object.assign({},ji.afterTags,xi.afterTags),beforeWords:Object.assign({},ji.beforeWords,xi.beforeWords),afterWords:Object.assign({},ji.afterWords,xi.afterWords)};const Ti="Place",Di={beforeTags:{Place:Ti},afterTags:{Place:Ti,Abbreviation:Ti},beforeWords:{in:Ti,by:Ti,near:Ti,from:Ti,to:Ti},afterWords:{in:Ti,by:Ti,near:Ti,from:Ti,to:Ti,government:Ti,council:Ti,region:Ti,city:Ti}};let Hi="Unit";const Gi={"Actor|Verb":ei,"Adj|Gerund":si,"Adj|Noun":ui,"Adj|Past":gi,"Adj|Present":pi,"Noun|Verb":Ai,"Noun|Gerund":wi,"Person|Noun":{beforeTags:Object.assign({},Zo.beforeTags,ji.beforeTags),afterTags:Object.assign({},Zo.afterTags,ji.afterTags),beforeWords:Object.assign({},Zo.beforeWords,ji.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Zo.afterWords,ji.afterWords)},"Person|Date":Ii,"Person|Verb":{beforeTags:Object.assign({},Zo.beforeTags,ji.beforeTags,Yo.beforeTags),afterTags:Object.assign({},Zo.afterTags,ji.afterTags,Yo.afterTags),beforeWords:Object.assign({},Zo.beforeWords,ji.beforeWords,Yo.beforeWords),afterWords:Object.assign({},Zo.afterWords,ji.afterWords,Yo.afterWords)},"Person|Place":{beforeTags:Object.assign({},Di.beforeTags,ji.beforeTags),afterTags:Object.assign({},Di.afterTags,ji.afterTags),beforeWords:Object.assign({},Di.beforeWords,ji.beforeWords),afterWords:Object.assign({},Di.afterWords,ji.afterWords)},"Person|Adj":{beforeTags:Object.assign({},ji.beforeTags,ni.beforeTags),afterTags:Object.assign({},ji.afterTags,ni.afterTags),beforeWords:Object.assign({},ji.beforeWords,ni.beforeWords),afterWords:Object.assign({},ji.afterWords,ni.afterWords)},"Unit|Noun":{beforeTags:{Value:Hi},afterTags:{},beforeWords:{per:Hi,every:Hi,each:Hi,square:Hi,cubic:Hi,sq:Hi,metric:Hi},afterWords:{per:Hi,squared:Hi,cubed:Hi,long:Hi}}},Ei=(e,t)=>{let n=Object.keys(e).reduce(((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t)),{});return Object.assign(n,t)};Gi["Plural|Verb"]={beforeWords:Ei(Gi["Noun|Verb"].beforeWords,{had:"Plural",have:"Plural"}),afterWords:Ei(Gi["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null,is:"PresentTense",by:"PresentTense"}),beforeTags:Ei(Gi["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:Ei(Gi["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var Oi=Gi;const Fi="Adjective",Vi="Infinitive",zi="PresentTense",Bi="Singular",$i="PastTense",Si="Adverb",Ki="Plural",Mi="Actor",Li="Verb",Ji="Noun",Wi="LastName",qi="Modal",Ui="Place",Ri="Participle";var Qi=[null,null,{ea:Bi,ia:Ji,ic:Fi,ly:Si,"'n":Li,"'t":Li},{oed:$i,ued:$i,xed:$i," so":Si,"'ll":qi,"'re":"Copula",azy:Fi,eer:Ji,end:Li,ped:$i,ffy:Fi,ify:Vi,ing:"Gerund",ize:Vi,ibe:Vi,lar:Fi,mum:Fi,nes:zi,nny:Fi,ous:Fi,que:Fi,ger:Ji,ber:Ji,rol:Bi,sis:Bi,ogy:Bi,oid:Bi,ian:Bi,zes:zi,eld:$i,ken:Ri,ven:Ri,ten:Ri,ect:Vi,ict:Vi,ign:Vi,oze:Vi,ful:Fi,bal:Fi,ton:Ji},{amed:$i,aped:$i,ched:$i,lked:$i,rked:$i,reed:$i,nded:$i,mned:Fi,cted:$i,dged:$i,ield:Bi,akis:Wi,cede:Vi,chuk:Wi,czyk:Wi,ects:zi,iend:Bi,ends:Li,enko:Wi,ette:Bi,iary:Bi,wner:Bi,fies:zi,fore:Si,gate:Vi,gone:Fi,ices:Ki,ints:Ki,ruct:Vi,ines:Ki,ions:Ki,ners:Ki,pers:Ki,lers:Ki,less:Fi,llen:Fi,made:Fi,nsen:Wi,oses:zi,ould:qi,some:Fi,sson:Wi,ians:Ki,tion:Bi,tage:Ji,ique:Bi,tive:Fi,tors:Ji,vice:Bi,lier:Bi,fier:Bi,wned:$i,gent:Bi,tist:Mi,pist:Mi,rist:Mi,mist:Mi,yist:Mi,vist:Mi,ists:Mi,lite:Bi,site:Bi,rite:Bi,mite:Bi,bite:Bi,mate:Bi,date:Bi,ndal:Bi,vent:Bi,uist:Mi,gist:Mi,note:Bi,cide:Bi,ence:Bi,wide:Fi,vide:Vi,ract:Vi,duce:Vi,pose:Vi,eive:Vi,lyze:Vi,lyse:Vi,iant:Fi,nary:Fi,ghty:Fi,uent:Fi,erer:Mi,bury:Ui,dorf:Ji,esty:Ji,wych:Ui,dale:Ui,folk:Ui},{elist:Mi,holic:Bi,phite:Bi,tized:$i,urned:$i,eased:$i,ances:Ki,bound:Fi,ettes:Ki,fully:Si,ishes:zi,ities:Ki,marek:Wi,nssen:Wi,ology:Ji,osome:Bi,tment:Bi,ports:Ki,rough:Fi,tches:zi,tieth:"Ordinal",tures:Ki,wards:Si,where:Si,archy:Ji,pathy:Ji,opoly:Ji,embly:Ji,phate:Ji,ndent:Bi,scent:Bi,onist:Mi,anist:Mi,alist:Mi,olist:Mi,icist:Mi,ounce:Vi,iable:Fi,borne:Fi,gnant:Fi,inant:Fi,igent:Fi,atory:Fi,rient:Bi,dient:Bi,maker:Mi,burgh:Ui,mouth:Ui,ceter:Ui,ville:Ui,worth:Ji},{auskas:Wi,parent:Bi,cedent:Bi,ionary:Bi,cklist:Bi,keeper:Mi,logist:Mi,teenth:"Value",worker:Mi,master:Mi,writer:Mi,brough:Ui,cester:Ui},{logists:Mi,opoulos:Wi,borough:Ui,sdottir:Wi}];const _i="Adjective",Zi="Noun",Xi="Verb";var Yi=[null,null,{},{neo:Zi,bio:Zi,"de-":Xi,"re-":Xi,"un-":Xi,"ex-":Zi},{anti:Zi,auto:Zi,faux:_i,hexa:Zi,kilo:Zi,mono:Zi,nano:Zi,octa:Zi,poly:Zi,semi:_i,tele:Zi,"pro-":_i,"mis-":Xi,"dis-":Xi,"pre-":_i},{anglo:Zi,centi:Zi,ethno:Zi,ferro:Zi,grand:Zi,hepta:Zi,hydro:Zi,intro:Zi,macro:Zi,micro:Zi,milli:Zi,nitro:Zi,penta:Zi,quasi:_i,radio:Zi,tetra:Zi,"omni-":_i,"post-":_i},{pseudo:_i,"extra-":_i,"hyper-":_i,"inter-":_i,"intra-":_i,"deca-":_i},{electro:Zi}];const es="Adjective",ts="Infinitive",ns="PresentTense",rs="Singular",as="PastTense",os="Adverb",is="Expression",ss="Actor",ls="Verb",us="Noun",cs="LastName";var hs={a:[[/.[aeiou]na$/,us,"tuna"],[/.[oau][wvl]ska$/,cs],[/.[^aeiou]ica$/,rs,"harmonica"],[/^([hyj]a+)+$/,is,"haha"]],c:[[/.[^aeiou]ic$/,es]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,as,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,as,"rammed"],[/.[aeiou][sg]hed$/,as,"gushed"],[/.[aeiou]red$/,as,"hired"],[/.[aeiou]r?ried$/,as,"hurried"],[/[^aeiou]ard$/,rs,"steward"],[/[aeiou][^aeiou]id$/,es,""],[/.[vrl]id$/,es,"livid"],[/..led$/,as,"hurled"],[/.[iao]sed$/,as,""],[/[aeiou]n?[cs]ed$/,as,""],[/[aeiou][rl]?[mnf]ed$/,as,""],[/[aeiou][ns]?c?ked$/,as,"bunked"],[/[aeiou]gned$/,as],[/[aeiou][nl]?ged$/,as],[/.[tdbwxyz]ed$/,as],[/[^aeiou][aeiou][tvx]ed$/,as],[/.[cdflmnprstv]ied$/,as,"emptied"]],e:[[/.[lnr]ize$/,ts,"antagonize"],[/.[^aeiou]ise$/,ts,"antagonise"],[/.[aeiou]te$/,ts,"bite"],[/.[^aeiou][ai]ble$/,es,"fixable"],[/.[^aeiou]eable$/,es,"maleable"],[/.[ts]ive$/,es,"festive"],[/[a-z]-like$/,es,"woman-like"]],h:[[/.[^aeiouf]ish$/,es,"cornish"],[/.v[iy]ch$/,cs,"..ovich"],[/^ug?h+$/,is,"ughh"],[/^uh[ -]?oh$/,is,"uhoh"],[/[a-z]-ish$/,es,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,cs,"polish-male"]],k:[[/^(k){2}$/,is,"kkkk"]],l:[[/.[gl]ial$/,es,"familial"],[/.[^aeiou]ful$/,es,"fitful"],[/.[nrtumcd]al$/,es,"natal"],[/.[^aeiou][ei]al$/,es,"familial"]],m:[[/.[^aeiou]ium$/,rs,"magnesium"],[/[^aeiou]ism$/,rs,"schism"],[/^[hu]m+$/,is,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,es,"republican"],[/[^aeiou]ician$/,ss,"musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,is,"noooo"],[/^(yo)+$/,is,"yoo"],[/^wo{2,}[pt]?$/,is,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,rs],[/[^i]fer$/,ts],[/.[^aeiou][ao]pher$/,ss],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,es],[/[aeiou].*ist$/,es],[/^[a-z]et$/,ls]],s:[[/.[^aeiou]ises$/,ns],[/.[rln]ates$/,ns],[/.[^z]ens$/,ls],[/.[lstrn]us$/,rs],[/.[aeiou]sks$/,ns],[/.[aeiou]kes$/,ns],[/[aeiou][^aeiou]is$/,rs],[/[a-z]'s$/,us],[/^yes+$/,is]],v:[[/.[^aeiou][ai][kln]ov$/,cs]],y:[[/.[cts]hy$/,es],[/.[st]ty$/,es],[/.[tnl]ary$/,es],[/.[oe]ry$/,rs],[/[rdntkbhs]ly$/,os],[/.(gg|bb|zz)ly$/,es],[/...lly$/,os],[/.[gk]y$/,es],[/[bszmp]{2}y$/,es],[/.[ai]my$/,es],[/[ea]{2}zy$/,es],[/.[^aeiou]ity$/,rs]]};const ds="Verb",gs="Noun";var ms={leftTags:[["Adjective",gs],["Possessive",gs],["Determiner",gs],["Adverb",ds],["Pronoun",ds],["Value",gs],["Ordinal",gs],["Modal",ds],["Superlative",gs],["Demonym",gs],["Honorific","Person"]],leftWords:[["i",ds],["first",gs],["it",ds],["there",ds],["not",ds],["because",gs],["if",gs],["but",gs],["who",ds],["this",gs],["his",gs],["when",gs],["you",ds],["very","Adjective"],["old",gs],["never",ds],["before",gs],["a",gs],["the",gs],["been",ds]],rightTags:[["Copula",gs],["PastTense",gs],["Conjunction",gs],["Modal",gs]],rightWords:[["there",ds],["me",ds],["man","Adjective"],["him",ds],["it",ds],["were",gs],["took",gs],["himself",ds],["went",gs],["who",gs],["jr","Person"]]},ps={fwd:"3:ser,ierยฆ1er:h,t,f,l,nยฆ1r:eยฆ2er:ss,or,om",both:"3er:ver,ear,almยฆ3ner:hinยฆ3ter:latยฆ2mer:imยฆ2er:ng,rm,mbยฆ2ber:ibยฆ2ger:igยฆ1er:w,p,k,dยฆier:y",rev:"1:tter,yerยฆ2:uer,ver,ffer,oner,eler,ller,iler,ster,cer,uler,sher,ener,gher,aner,adder,nter,eter,rter,hter,rner,fterยฆ3:oser,ooler,eafer,user,airer,bler,maler,tler,eater,uger,rger,ainer,urer,ealer,icher,pler,emner,icter,nser,iserยฆ4:arser,viner,ucher,rosser,somer,ndomer,moter,oother,uarer,hiterยฆ5:nuiner,esser,emierยฆar:urther",ex:"worse:badยฆbetter:goodยฆ4er:fair,gray,poorยฆ1urther:farยฆ3ter:fat,hot,wetยฆ3der:mad,sadยฆ3er:shy,funยฆ4der:gladยฆ:ยฆ4r:cute,dire,fake,fine,free,lame,late,pale,rare,ripe,rude,safe,sore,tame,wideยฆ5r:eerie,stale"},fs={fwd:"1:nning,tting,rring,pping,eing,mming,gging,dding,bbing,kkingยฆ2:eking,oling,eling,emingยฆ3:velling,siting,uiting,fiting,loting,geting,ialing,cellingยฆ4:graming",both:"1:aing,iing,fing,xing,ying,oing,hing,wingยฆ2:tzing,rping,izzing,bting,mning,sping,wling,rling,wding,rbing,uping,lming,wning,mping,oning,lting,mbing,lking,fting,hting,sking,gning,pting,cking,ening,nking,iling,eping,ering,rting,rming,cting,lping,ssing,nting,nding,lding,sting,rning,rding,rkingยฆ3:belling,siping,toming,yaking,uaking,oaning,auling,ooping,aiding,naping,euring,tolling,uzzing,ganing,haning,ualing,halling,iasing,auding,ieting,ceting,ouling,voring,ralling,garing,joring,oaming,oaking,roring,nelling,ooring,uelling,eaming,ooding,eaping,eeting,ooting,ooming,xiting,keting,ooking,ulling,airing,oaring,biting,outing,oiting,earing,naling,oading,eeding,ouring,eaking,aiming,illing,oining,eaning,onging,ealing,aining,eadingยฆ4:thoming,melling,aboring,ivoting,weating,dfilling,onoring,eriting,imiting,tialling,rgining,otoring,linging,winging,lleting,louding,spelling,mpelling,heating,feating,opelling,choring,welling,ymaking,ctoring,calling,peating,iloring,laiting,utoring,uditing,mmaking,loating,iciting,waiting,mbating,voiding,otalling,nsoring,nselling,ocusing,itoring,elopingยฆ5:rselling,umpeting,atrolling,treating,tselling,rpreting,pringing,ummeting,ossoming,elmaking,eselling,rediting,totyping,onmaking,rfeiting,ntrollingยฆ5e:chmaking,dkeeping,severing,erouting,ecreting,ephoning,uthoring,ravening,reathing,pediting,erfering,eotyping,fringing,entoring,ombining,ompetingยฆ4e:emaking,eething,twining,rruling,chuting,xciting,rseding,scoping,edoring,pinging,lunging,agining,craping,pleting,eleting,nciting,nfining,ncoding,tponing,ecoding,writing,esaling,nvening,gnoring,evoting,mpeding,rvening,dhering,mpiling,storing,nviting,ploringยฆ3e:tining,nuring,saking,miring,haling,ceding,xuding,rining,nuting,laring,caring,miling,riding,hoking,piring,lading,curing,uading,noting,taping,futing,paring,hading,loding,siring,guring,vading,voking,during,niting,laning,caping,luting,muting,ruding,ciding,juring,laming,caling,hining,uoting,liding,ciling,duling,tuting,puting,cuting,coring,uiding,tiring,turing,siding,rading,enging,haping,buting,lining,taking,anging,haring,uiring,coming,mining,moting,suring,viding,ludingยฆ2e:tring,zling,uging,oging,gling,iging,vring,fling,lging,obing,psing,pling,ubing,cling,dling,wsing,iking,rsing,dging,kling,ysing,tling,rging,eging,nsing,uning,osing,uming,using,ibing,bling,aging,ising,asing,atingยฆ2ie:rlyingยฆ1e:zing,uing,cing,ving",rev:"ying:ieยฆ1ing:se,ke,te,we,ne,re,de,pe,me,le,c,heยฆ2ing:ll,ng,dd,ee,ye,oe,rg,usยฆ2ning:unยฆ2ging:og,ag,ug,ig,egยฆ2ming:umยฆ2bing:ub,ab,eb,obยฆ3ning:lan,can,hin,pin,winยฆ3ring:cur,lur,tir,tar,pur,carยฆ3ing:ait,del,eel,fin,eat,oat,eem,lel,ool,ein,uinยฆ3ping:rop,rap,top,uip,wap,hip,hop,lap,rip,capยฆ3ming:tem,wim,rim,kim,limยฆ3ting:mat,cut,pot,lit,lot,hat,set,pit,putยฆ3ding:hed,bed,bidยฆ3king:rekยฆ3ling:cil,pelยฆ3bing:ribยฆ4ning:eginยฆ4ing:isit,ruit,ilot,nsit,dget,rkel,ival,rcelยฆ4ring:efer,nferยฆ4ting:rmit,mmit,ysit,dmit,emit,bmit,tfit,gretยฆ4ling:evel,xcel,ivelยฆ4ding:hredยฆ5ing:arget,posit,rofitยฆ5ring:nsferยฆ5ting:nsmit,orget,cquitยฆ5ling:ancel,istil",ex:"3:adding,eating,aiming,aiding,airing,outing,gassing,setting,getting,putting,cutting,winning,sitting,betting,mapping,tapping,letting,bidding,hitting,tanning,netting,popping,fitting,capping,lapping,barring,banning,vetting,topping,rotting,tipping,potting,wetting,pitting,dipping,budding,hemming,pinning,jetting,kidding,padding,podding,sipping,wedding,bedding,donning,warring,penning,gutting,cueing,wadding,petting,ripping,napping,matting,tinning,binning,dimming,hopping,mopping,nodding,panning,rapping,ridding,sinningยฆ4:selling,falling,calling,waiting,editing,telling,rolling,heating,boating,hanging,beating,coating,singing,tolling,felling,polling,discing,seating,voiding,gelling,yelling,baiting,reining,ruining,seeking,spanning,stepping,knitting,emitting,slipping,quitting,dialing,omitting,clipping,shutting,skinning,abutting,flipping,trotting,cramming,fretting,suitingยฆ5:bringing,treating,spelling,stalling,trolling,expelling,rivaling,wringing,deterring,singeing,befitting,refittingยฆ6:enrolling,distilling,scrolling,strolling,caucusing,travellingยฆ7:installing,redefining,stencilling,recharging,overeating,benefiting,unraveling,programingยฆ9:reprogrammingยฆis:beingยฆ2e:using,aging,owingยฆ3e:making,taking,coming,noting,hiring,filing,coding,citing,doping,baking,coping,hoping,lading,caring,naming,voting,riding,mining,curing,lining,ruling,typing,boring,dining,firing,hiding,piling,taping,waning,baling,boning,faring,honing,wiping,luring,timing,wading,piping,fading,biting,zoning,daring,waking,gaming,raking,ceding,tiring,coking,wining,joking,paring,gaping,poking,pining,coring,liming,toting,roping,wiring,achingยฆ4e:writing,storing,eroding,framing,smoking,tasting,wasting,phoning,shaking,abiding,braking,flaking,pasting,priming,shoring,sloping,withing,hingingยฆ5e:defining,refining,renaming,swathing,fringing,recitingยฆ1ie:dying,tying,lying,vyingยฆ7e:sunbathing"},vs={fwd:"1:mtยฆ2:llenยฆ3:iven,akenยฆ:neยฆy:in",both:"1:wnยฆ2:me,atenยฆ3:seen,bidden,isenยฆ4:roven,astenยฆ3l:piltยฆ3d:uiltยฆ2e:ittenยฆ1im:wumยฆ1eak:pokenยฆ1ine:honeยฆ1ose:osenยฆ1in:gunยฆ1ake:wokenยฆear:ornยฆeal:olenยฆeeze:ozenยฆet:ottenยฆink:unkยฆing:ung",rev:"2:unยฆoken:eakยฆought:eekยฆoven:eaveยฆ1ne:oยฆ1own:lyยฆ1den:deยฆ1in:ayยฆ2t:amยฆ2n:eeยฆ3en:allยฆ4n:rive,sake,takeยฆ5n:rgive",ex:"2:beenยฆ3:seen,runยฆ4:given,takenยฆ5:shakenยฆ2eak:brokenยฆ1ive:doveยฆ2y:flownยฆ3e:hidden,riddenยฆ1eek:soughtยฆ1ake:wokenยฆ1eave:woven"},bs={fwd:"1:oesยฆ1ve:as",both:"1:xesยฆ2:zzes,ches,shes,ssesยฆ3:iasesยฆ2y:llies,pliesยฆ1y:cies,bies,ties,vies,nies,pies,dies,ries,fiesยฆ:s",rev:"1ies:lyยฆ2es:us,go,doยฆ3es:cho,eto",ex:"2:does,goesยฆ3:gassesยฆ5:focusesยฆis:areยฆ3y:reliesยฆ2y:fliesยฆ2ve:has"},ys={fwd:"1st:eยฆ1est:l,m,f,sยฆ1iest:ceyยฆ2est:or,irยฆ3est:ver",both:"4:eastยฆ5:hwestยฆ5lest:erfulยฆ4est:weet,lgar,tter,oungยฆ4most:uterยฆ3est:ger,der,rey,iet,ong,earยฆ3test:latยฆ3most:nerยฆ2est:pt,ft,nt,ct,rt,htยฆ2test:itยฆ2gest:igยฆ1est:b,k,n,p,h,d,wยฆiest:y",rev:"1:ttest,nnest,yestยฆ2:sest,stest,rmest,cest,vest,lmest,olest,ilest,ulest,ssest,imest,uestยฆ3:rgest,eatest,oorest,plest,allest,urest,iefest,uelest,blest,ugest,amest,yalest,ealest,illest,tlest,itestยฆ4:cerest,eriest,somest,rmalest,ndomest,motest,uarest,tiffestยฆ5:leverest,rangestยฆar:urthestยฆ3ey:riciest",ex:"best:goodยฆworst:badยฆ5est:greatยฆ4est:fast,full,fair,dullยฆ3test:hot,wet,fatยฆ4nest:thinยฆ1urthest:farยฆ3est:gay,shy,illยฆ4test:neatยฆ4st:late,wide,fine,safe,cute,fake,pale,rare,rude,sore,ripe,direยฆ6st:severe"},ws={fwd:"1:tistic,eable,lful,sful,ting,ttyยฆ2:onate,rtable,geous,ced,seful,ctfulยฆ3:ortive,entedยฆarity:earยฆy:eticยฆfulness:begoneยฆ1ity:reยฆ1y:tiful,gicยฆ2ity:ile,imous,ilous,imeยฆ2ion:atedยฆ2eness:ivingยฆ2y:triousยฆ2ation:iringยฆ2tion:vantยฆ3ion:ectยฆ3ce:mant,manticยฆ3tion:irableยฆ3y:est,esticยฆ3m:mistic,listicยฆ3ess:ningยฆ4n:utiousยฆ4on:rative,native,vative,ectiveยฆ4ce:erant",both:"1:king,wingยฆ2:alous,ltuous,oyful,rdousยฆ3:gorous,ectable,werful,amaticยฆ4:oised,usical,agical,raceful,ocused,lined,ightfulยฆ5ness:stful,lding,itous,nuous,ulous,otous,nable,gious,ayful,rvous,ntous,lsive,peful,entle,ciful,osive,leful,isive,ncise,reful,miousยฆ5ty:ivaciousยฆ5ties:ubtleยฆ5ce:ilient,adiant,atientยฆ5cy:icientยฆ5sm:gmaticยฆ5on:sessive,dictiveยฆ5ity:pular,sonal,eative,enticยฆ5sity:uminousยฆ5ism:conicยฆ5nce:mperateยฆ5ility:mitableยฆ5ment:xcitedยฆ5n:bitiousยฆ4cy:brant,etent,curateยฆ4ility:erable,acable,icable,ptableยฆ4ty:nacious,aive,oyal,daciousยฆ4n:iciousยฆ4ce:vient,erent,stent,ndent,dient,quent,identยฆ4ness:adic,ound,hing,pant,sant,oing,oist,tuteยฆ4icity:impleยฆ4ment:fined,musedยฆ4ism:oticยฆ4ry:danticยฆ4ity:tund,eralยฆ4edness:handยฆ4on:uitiveยฆ4lity:pitableยฆ4sm:eroic,namicยฆ4sity:nerousยฆ3th:armยฆ3ility:pable,bable,dable,iableยฆ3cy:hant,nant,icateยฆ3ness:red,hin,nse,ict,iet,ite,oud,ind,ied,rceยฆ3ion:luteยฆ3ity:ual,gal,volous,ialยฆ3ce:sent,fensive,lant,gant,gent,lent,dantยฆ3on:asiveยฆ3m:fist,sistic,iasticยฆ3y:terious,xurious,ronic,tasticยฆ3ur:amorousยฆ3e:tunateยฆ3ation:minedยฆ3sy:rteousยฆ3ty:ainยฆ3ry:aveยฆ3ment:azedยฆ2ness:de,on,ue,rn,ur,ft,rp,pe,om,ge,rd,od,ay,ss,er,ll,oy,ap,ht,ld,ad,rtยฆ2inousness:umousยฆ2ity:neous,ene,id,aneยฆ2cy:bate,lateยฆ2ation:izedยฆ2ility:oble,ibleยฆ2y:odicยฆ2e:oving,aringยฆ2s:ostยฆ2itude:ptยฆ2dom:eeยฆ2ance:uringยฆ2tion:reetยฆ2ion:otedยฆ2sion:endingยฆ2liness:anยฆ2or:rdentยฆ1th:ungยฆ1e:uableยฆ1ness:w,h,k,fยฆ1ility:mbleยฆ1or:ventยฆ1ement:gingยฆ1tiquity:ncientยฆ1ment:hedยฆverty:orยฆength:ongยฆeat:otยฆpth:epยฆiness:y",rev:"",ex:"5:forceful,humorousยฆ8:charismaticยฆ13:understandingยฆ5ity:activeยฆ11ness:adventurous,inquisitive,resourcefulยฆ8on:aggressive,automatic,perceptiveยฆ7ness:amorous,fatuous,furtive,ominous,seriousยฆ5ness:ample,sweetยฆ12ness:apprehensive,cantankerous,contemptuous,ostentatiousยฆ13ness:argumentative,conscientiousยฆ9ness:assertive,facetious,imperious,inventive,oblivious,rapacious,receptive,seditious,whimsicalยฆ10ness:attractive,expressive,impressive,loquacious,salubrious,thoughtfulยฆ3edom:boringยฆ4ness:calm,fast,keen,tameยฆ8ness:cheerful,gracious,specious,spurious,timorous,unctuousยฆ5sity:curiousยฆ9ion:deliberateยฆ8ion:desperateยฆ6e:expensiveยฆ7ce:fragrantยฆ3y:furiousยฆ9ility:ineluctableยฆ6ism:mysticalยฆ8ity:physical,proactive,sensitive,verticalยฆ5cy:pliantยฆ7ity:positiveยฆ9ity:practicalยฆ12ism:professionalยฆ6ce:prudentยฆ3ness:redยฆ6cy:vagrantยฆ3dom:wise"},ks=function(e="",t={}){let n=function(e,t={}){return t.hasOwnProperty(e)?t[e]:null}(e,t.ex);return n=n||function(e,t=[]){for(let n=0;n=1;r-=1){let a=e.length-r,o=e.substring(a,e.length);if(!0===t.hasOwnProperty(o))return e.slice(0,a)+t[o];if(!0===n.hasOwnProperty(o))return e.slice(0,a)+n[o]}return t.hasOwnProperty("")?e+t[""]:n.hasOwnProperty("")?e+n[""]:null}(e,t.fwd,t.both),n=n||e,n};const Ps=function(e){return Object.entries(e).reduce(((e,t)=>(e[t[1]]=t[0],e)),{})};var As=function(e={}){return{reversed:!0,both:Ps(e.both),ex:Ps(e.ex),fwd:e.rev||{}}};const Cs=/^([0-9]+)/,js=function(e){let t=function(e){let t={};return e.split("ยฆ").forEach((e=>{let[n,r]=e.split(":");r=(r||"").split(","),r.forEach((e=>{t[e]=n}))})),t}(e);return Object.keys(t).reduce(((e,n)=>(e[n]=function(e="",t=""){let n=(t=String(t)).match(Cs);if(null===n)return t;let r=Number(n[1])||0;return e.substring(0,r)+t.replace(Cs,"")}(n,t[n]),e)),{})};var Ns=function(e={}){return"string"==typeof e&&(e=JSON.parse(e)),e.fwd=js(e.fwd||""),e.both=js(e.both||""),e.rev=js(e.rev||""),e.ex=js(e.ex||""),e};const xs=Ns({fwd:"1:tted,wed,gged,nned,een,rred,pped,yed,bbed,oed,dded,rd,wn,mmedยฆ2:eed,nded,et,hted,st,oled,ut,emed,eled,lded,ken,rt,nked,apt,ant,eped,ekedยฆ3:eared,eat,eaded,nelled,ealt,eeded,ooted,eaked,eaned,eeted,mited,bid,uit,ead,uited,ealed,geted,velled,ialed,belledยฆ4:ebuted,hined,comedยฆy:iedยฆome:ameยฆear:oreยฆind:oundยฆing:ung,angยฆep:ptยฆink:ank,unkยฆig:ugยฆall:ellยฆee:awยฆive:aveยฆeeze:ozeยฆold:eldยฆave:ftยฆake:ookยฆell:oldยฆite:oteยฆide:odeยฆine:oneยฆin:un,onยฆeal:oleยฆim:amยฆie:ayยฆand:oodยฆ1ise:roseยฆ1eak:rokeยฆ1ing:roughtยฆ1ive:roveยฆ1el:eltยฆ1id:badeยฆ1et:gotยฆ1y:aidยฆ1it:satยฆ3e:lidยฆ3d:pent",both:"1:aed,fed,xed,hedยฆ2:sged,xted,wled,rped,lked,kied,lmed,lped,uped,bted,rbed,rked,wned,rled,mped,fted,mned,mbed,zzed,omed,ened,cked,gned,lted,sked,ued,zed,nted,ered,rted,rmed,ced,sted,rned,ssed,rded,pted,ved,ctedยฆ3:cled,eined,siped,ooned,uked,ymed,jored,ouded,ioted,oaned,lged,asped,iged,mured,oided,eiled,yped,taled,moned,yled,lit,kled,oaked,gled,naled,fled,uined,oared,valled,koned,soned,aided,obed,ibed,meted,nicked,rored,micked,keted,vred,ooped,oaded,rited,aired,auled,filled,ouled,ooded,ceted,tolled,oited,bited,aped,tled,vored,dled,eamed,nsed,rsed,sited,owded,pled,sored,rged,osed,pelled,oured,psed,oated,loned,aimed,illed,eured,tred,ioned,celled,bled,wsed,ooked,oiled,itzed,iked,iased,onged,ased,ailed,uned,umed,ained,auded,nulled,ysed,eged,ised,aged,oined,ated,used,dged,donedยฆ4:ntied,efited,uaked,caded,fired,roped,halled,roked,himed,culed,tared,lared,tuted,uared,routed,pited,naked,miled,houted,helled,hared,cored,caled,tired,peated,futed,ciled,called,tined,moted,filed,sided,poned,iloted,honed,lleted,huted,ruled,cured,named,preted,vaded,sured,talled,haled,peded,gined,nited,uided,ramed,feited,laked,gured,ctored,unged,pired,cuted,voked,eloped,ralled,rined,coded,icited,vided,uaded,voted,mined,sired,noted,lined,nselled,luted,jured,fided,puted,piled,pared,olored,cided,hoked,enged,tured,geoned,cotted,lamed,uiled,waited,udited,anged,luded,mired,uired,radedยฆ5:modelled,izzled,eleted,umpeted,ailored,rseded,treated,eduled,ecited,rammed,eceded,atrolled,nitored,basted,twined,itialled,ncited,gnored,ploded,xcited,nrolled,namelled,plored,efeated,redited,ntrolled,nfined,pleted,llided,lcined,eathed,ibuted,lloted,dhered,ccededยฆ3ad:sledยฆ2aw:drewยฆ2ot:hotยฆ2ke:madeยฆ2ow:hrew,grewยฆ2ose:hoseยฆ2d:iltยฆ2in:eganยฆ1un:ranยฆ1ink:houghtยฆ1ick:tuckยฆ1ike:ruckยฆ1eak:poke,nuckยฆ1it:patยฆ1o:didยฆ1ow:newยฆ1ake:wokeยฆgo:went",rev:"3:rst,hed,hut,cut,setยฆ4:tbidยฆ5:dcast,eread,pread,erbidยฆought:uy,eekยฆ1ied:ny,ly,dy,ry,fy,py,vy,by,ty,cyยฆ1ung:ling,ting,wingยฆ1pt:eepยฆ1ank:rinkยฆ1ore:bear,wearยฆ1ave:giveยฆ1oze:reezeยฆ1ound:rind,windยฆ1ook:take,hakeยฆ1aw:seeยฆ1old:sellยฆ1ote:riteยฆ1ole:tealยฆ1unk:tinkยฆ1am:wimยฆ1ay:lieยฆ1ood:tandยฆ1eld:holdยฆ2d:he,ge,re,le,leed,ne,reed,be,ye,lee,pe,weยฆ2ed:dd,oy,or,ey,gg,rr,us,ew,toยฆ2ame:ecome,rcomeยฆ2ped:apยฆ2ged:ag,og,ug,egยฆ2bed:ub,ab,ib,obยฆ2lt:neelยฆ2id:payยฆ2ang:pringยฆ2ove:triveยฆ2med:umยฆ2ode:rrideยฆ2at:ysitยฆ3ted:mit,hat,mat,lat,pot,rot,batยฆ3ed:low,end,tow,und,ond,eem,lay,cho,dow,xit,eld,ald,uld,law,lel,eat,oll,ray,ank,fin,oam,out,how,iek,tay,haw,ait,vet,say,cay,bowยฆ3d:ste,ede,ode,ete,ree,ude,ame,oke,ote,ime,ute,adeยฆ3red:lur,cur,pur,carยฆ3ped:hop,rop,uip,rip,lip,tep,topยฆ3ded:bed,rod,kidยฆ3ade:orbidยฆ3led:uelยฆ3ned:lan,can,kin,pan,tunยฆ3med:rim,limยฆ4ted:quit,llotยฆ4ed:pear,rrow,rand,lean,mand,anel,pand,reet,link,abel,evel,imit,ceed,ruit,mind,peal,veal,hool,head,pell,well,mell,uell,band,hear,weakยฆ4led:nnel,qual,ebel,ivelยฆ4red:nfer,efer,sferยฆ4n:sake,trewยฆ4d:nteeยฆ4ded:hredยฆ4ned:rpinยฆ5ed:light,nceal,right,ndear,arget,hread,eight,rtial,ebootยฆ5d:edite,nviteยฆ5ted:egretยฆ5led:ravel",ex:"2:been,uppedยฆ3:added,aged,aided,aimed,aired,bid,died,dyed,egged,erred,eyed,fit,gassed,hit,lied,owed,pent,pied,tied,used,vied,oiled,outed,banned,barred,bet,canned,cut,dipped,donned,ended,feed,inked,jarred,let,manned,mowed,netted,padded,panned,pitted,popped,potted,put,set,sewn,sowed,tanned,tipped,topped,vowed,weed,bowed,jammed,binned,dimmed,hopped,mopped,nodded,pinned,rigged,sinned,towed,vettedยฆ4:ached,baked,baled,boned,bored,called,caned,cared,ceded,cited,coded,cored,cubed,cured,dared,dined,edited,exited,faked,fared,filed,fined,fired,fuelled,gamed,gelled,hired,hoped,joked,lined,mined,named,noted,piled,poked,polled,pored,pulled,reaped,roamed,rolled,ruled,seated,shed,sided,timed,tolled,toned,voted,waited,walled,waned,winged,wiped,wired,zoned,yelled,tamed,lubed,roped,faded,mired,caked,honed,banged,culled,heated,raked,welled,banded,beat,cast,cooled,cost,dealt,feared,folded,footed,handed,headed,heard,hurt,knitted,landed,leaked,leapt,linked,meant,minded,molded,neared,needed,peaked,plodded,plotted,pooled,quit,read,rooted,sealed,seeded,seeped,shipped,shunned,skimmed,slammed,sparred,stemmed,stirred,suited,thinned,twinned,swayed,winked,dialed,abutted,blotted,fretted,healed,heeded,peeled,reeledยฆ5:basted,cheated,equalled,eroded,exiled,focused,opined,pleated,primed,quoted,scouted,shored,sloped,smoked,sniped,spelled,spouted,routed,staked,stored,swelled,tasted,treated,wasted,smelled,dwelled,honored,prided,quelled,eloped,scared,coveted,sweated,breaded,cleared,debuted,deterred,freaked,modeled,pleaded,rebutted,speededยฆ6:anchored,defined,endured,impaled,invited,refined,revered,strolled,cringed,recast,thrust,unfoldedยฆ7:authored,combined,competed,conceded,convened,excreted,extruded,redefined,restored,secreted,rescinded,welcomedยฆ8:expedited,infringedยฆ9:interfered,intervened,perseveredยฆ10:contravenedยฆeat:ateยฆis:wasยฆgo:wentยฆare:wereยฆ3d:bent,lent,rent,sentยฆ3e:bit,fled,hid,lostยฆ3ed:bled,bredยฆ2ow:blew,grewยฆ1uy:boughtยฆ2tch:caughtยฆ1o:didยฆ1ive:dove,gaveยฆ2aw:drewยฆ2ed:fedยฆ2y:flew,laid,paid,saidยฆ1ight:foughtยฆ1et:gotยฆ2ve:hadยฆ1ang:hungยฆ2ad:ledยฆ2ght:litยฆ2ke:madeยฆ2et:metยฆ1un:ranยฆ1ise:roseยฆ1it:satยฆ1eek:soughtยฆ1each:taughtยฆ1ake:woke,tookยฆ1eave:woveยฆ2ise:aroseยฆ1ear:bore,tore,woreยฆ1ind:bound,found,woundยฆ2eak:brokeยฆ2ing:brought,wrungยฆ1ome:cameยฆ2ive:droveยฆ1ig:dugยฆ1all:fellยฆ2el:feltยฆ4et:forgotยฆ1old:heldยฆ2ave:leftยฆ1ing:rang,sangยฆ1ide:rodeยฆ1ink:sankยฆ1ee:sawยฆ2ine:shoneยฆ4e:slidยฆ1ell:sold,toldยฆ4d:spentยฆ2in:spunยฆ1in:won"}),Is=Ns(bs),Ts=Ns(fs),Ds=Ns(vs),Hs=As(xs),Gs=As(Is),Es=As(Ts),Os=As(Ds),Fs=Ns(ps),Vs=Ns(ys);var zs={fromPast:xs,fromPresent:Is,fromGerund:Ts,fromParticiple:Ds,toPast:Hs,toPresent:Gs,toGerund:Es,toParticiple:Os,toComparative:Fs,toSuperlative:Vs,fromComparative:As(Fs),fromSuperlative:As(Vs),adjToNoun:Ns(ws)},Bs=["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","faction","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","politburo","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","subsidiary","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce(((e,t)=>(e[t]=!0,e)),{}),$s=["atoll","basin","bay","beach","bluff","bog","camp","canyon","canyons","cape","cave","caves","cliffs","coast","cove","coves","crater","creek","desert","dune","dunes","escarpment","estuary","falls","fjord","fjords","forest","forests","glacier","gorge","gorges","gulf","gully","highland","hill","hills","inlet","island","islands","isthmus","knoll","lagoon","lake","marsh","marshes","mount","mountain","mountains","narrows","peninsula","plains","plateau","pond","rapids","ravine","reef","reefs","ridge","river","rivers","sandhill","shoal","shore","shoreline","shores","strait","straits","stream","swamp","tombolo","trail","trails","trench","valley","vallies","volcano","waterfall","watershed","wetland","woods","burough","county","district","municipality","prefecture","province","region","reservation","state","territory","borough","metropolis","downtown","uptown","midtown","city","town","township","hamlet","country","kingdom","enclave","neighbourhood","neighborhood","kingdom","ward","zone","airport","amphitheater","arch","arena","auditorium","bar","barn","basilica","battlefield","bridge","building","castle","centre","coliseum","cineplex","complex","dam","farm","field","fort","garden","gardens","gymnasium","hall","house","levee","library","memorial","monument","museum","gallery","palace","pillar","pits","plantation","playhouse","quarry","sportsfield","sportsplex","stadium","terrace","terraces","theater","tower","park","parks","site","raceway","sportsplex","st","street","rd","road","crescent","cr","way","tr","terrace","avenue","ave"].reduce(((e,t)=>(e[t]=!0,e)),{}),Ss=[[/([^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"],[/(..ase)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,""]],Ks=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(Ls[t].forEach((n=>e[n]=t)),e)),{});var Js=Ls,Ws=function(e){let t=e.substring(e.length-3);if(!0===Js.hasOwnProperty(t))return Js[t];let n=e.substring(e.length-2);return!0===Js.hasOwnProperty(n)?Js[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const qs={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var Us=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=Ws(e)),qs.hasOwnProperty(e))c=qs[e];else if("Participle"===n)c=ks(l,i);else if("PastTense"===n)c=ks(l,r);else if("PresentTense"===n)c=ks(l,a);else{if("Gerund"!==n)return e;c=ks(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c},Rs=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:i,PastTense:ks(i,n),PresentTense:ks(i,r),Gerund:ks(i,a),FutureTense:"will "+i},u=ks(i,o);if(u!==e&&u!==l.PastTense){let n=t.one.lexicon||{};"Participle"!==n[u]&&"Adjective"!==n[u]||("play"===e&&(u="played"),l.Participle=u)}return s&&Object.keys(l).forEach((e=>{l[e]+=" "+s})),l},Qs={toInfinitive:Us,conjugate:Rs,all:function(e,t){let n=Rs(e,t);return delete n.FutureTense,Object.values(n).filter((e=>e))}};const _s=function(e,t){const n=t.two.models.toSuperlative;return ks(e,n)},Zs=function(e,t){const n=t.two.models.toComparative;return ks(e,n)};var Xs=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 Ys="ically",el=new Set(["analyt"+Ys,"chem"+Ys,"class"+Ys,"clin"+Ys,"crit"+Ys,"ecolog"+Ys,"electr"+Ys,"empir"+Ys,"frant"+Ys,"grammat"+Ys,"ident"+Ys,"ideolog"+Ys,"log"+Ys,"mag"+Ys,"mathemat"+Ys,"mechan"+Ys,"med"+Ys,"method"+Ys,"method"+Ys,"mus"+Ys,"phys"+Ys,"phys"+Ys,"polit"+Ys,"pract"+Ys,"rad"+Ys,"satir"+Ys,"statist"+Ys,"techn"+Ys,"technolog"+Ys,"theoret"+Ys,"typ"+Ys,"vert"+Ys,"whims"+Ys]),tl=[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"}],nl=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"]),rl={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"quick",superbly:"superb",cynically:"cynical",well:"good"},al=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],ol={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var il=function(e){if(ol.hasOwnProperty(e))return ol[e];let t=Xs(e,al);return t||(t=e+"ly"),t},sl={toSuperlative:_s,toComparative:Zs,toAdverb:il,toNoun:function(e,t){const n=t.two.models.adjToNoun;return ks(e,n)},fromAdverb:function(e){return e.endsWith("ly")?el.has(e)?e.replace(/ically/,"ical"):nl.has(e)?null:rl.hasOwnProperty(e)?rl[e]:Xs(e,tl)||e:null},fromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return ks(e,n)},fromComparative:function(e,t){const n=t.two.models.fromComparative;return ks(e,n)},all:function(e,t){let n=[e];return n.push(_s(e,t)),n.push(Zs(e,t)),n.push(il(e)),n=n.filter((e=>e)),n=new Set(n),Array.from(n)}},ll={noun:Ms,verb:Qs,adjective:sl},ul={Singular:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.noun.toPlural(e,r);a[o]||(t[o]=t[o]||"Plural")},Actor:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.noun.toPlural(e,r);a[o]||(t[o]=t[o]||["Plural","Actor"])},Comparable:(e,t,n,r)=>{let a=r.one.lexicon,{toSuperlative:o,toComparative:i}=n.two.transform.adjective,s=o(e,r);a[s]||(t[s]=t[s]||"Superlative");let l=i(e,r);a[l]||(t[l]=t[l]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,r)=>{let a=n.two.transform.noun.toPlural(e,r);t[a]=t[a]||["Demonym","Plural"]},Infinitive:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.verb.conjugate(e,r);Object.entries(o).forEach((e=>{a[e[1]]||t[e[1]]||"FutureTense"===e[0]||(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.verb.conjugate(i,r);delete l.FutureTense,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]]=2;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"]},Place:(e,t)=>{t[e]=["Place","ProperNoun"]},Region:(e,t)=>{t[e]=["Region","ProperNoun"]}},cl=function(e,t){const{methods:n,model:r}=t;let a={},o={};return Object.keys(e).forEach((t=>{let i=e[t],s=(t=(t=t.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);s.length>1&&(void 0===o[s[0]]||s.length>o[s[0]])&&(o[s[0]]=s.length),!0===ul.hasOwnProperty(i)&&ul[i](t,a,n,r),a[t]=a[t]||i})),delete a[""],delete a.null,delete a[" "],{lex:a,_multi:o}},hl=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]){let n=e[t-1];if(n.tags.has("Date")||a.has(n.normal))return!1;if(n.tags.has("Adjective")||r.tags.has("Adjective"))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)})),re.endsWith(t))):"s"===t&&!ml.find((t=>e.endsWith(t)))},fl={two:{quickSplit:hl,expandLexicon:cl,transform:ll,looksPlural:pl}},vl=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};let bl={one:{lexicon:{}},two:{models:zs}};const yl={"Actor|Verb":"Actor","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":"FirstName","Person|Place":"Person","Person|Adj":"Comparative","Plural|Verb":"Plural","Unit|Noun":"Noun"},wl=function(e,t){const n={model:t,methods:fl};let{lex:r,_multi:a}=fl.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,r),Object.assign(t.one._multiCache,a),t},kl=function(e,t,n){let r=Rs(e,bl);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},Pl=function(e,t,n){let r=_s(e,n);t[r]=t[r]||"Superlative";let a=Zs(e,n);t[a]=t[a]||"Comparative"},Al=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach((a=>{const o=e[a];if(n[a]=yl[o],"Noun|Verb"!==o&&"Person|Verb"!==o&&"Actor|Verb"!==o||kl(a,r,!1),"Adj|Present"===o&&(kl(a,r,!0),Pl(a,r,t)),"Person|Adj"===o&&Pl(a,r,t),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=Us(a,bl,"Gerund");r[e]||(n[e]="Infinitive")}if("Noun|Gerund"!==o&&"Adj|Noun"!==o&&"Person|Noun"!==o||function(e,t,n){let r=Wo(e,n);t[r]=t[r]||"Plural"}(a,r,t),"Adj|Past"===o){let e=Us(a,bl,"PastTense");r[e]||(n[e]="Infinitive")}})),t=wl(n,t)};var Cl=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=wl(e.one.lexicon,e)).one.lexicon,e),e=Al(e.two.switches,e),e=vl(e)};let jl={one:{_multiCache:{},lexicon:Uo,frozenLex:{"20th century fox":"Organization","7 eleven":"Organization","motel 6":"Organization","excuse me":"Expression","financial times":"Organization","guns n roses":"Organization","la z boy":"Organization","labour party":"Organization","new kids on the block":"Organization","new york times":"Organization","the guess who":"Organization","thin lizzy":"Organization","prime minister":"Actor","free market":"Singular","lay up":"Singular","living room":"Singular","living rooms":"Plural","spin off":"Singular","appeal court":"Uncountable","cold war":"Uncountable","gene pool":"Uncountable","machine learning":"Uncountable","nail polish":"Uncountable","time off":"Uncountable","take part":"Infinitive","bill gates":"Person","doctor who":"Person","dr who":"Person","he man":"Person","iron man":"Person","kid cudi":"Person","run dmc":"Person","rush limbaugh":"Person","snow white":"Person","tiger woods":"Person","brand new":"Adjective","en route":"Adjective","left wing":"Adjective","off guard":"Adjective","on board":"Adjective","part time":"Adjective","right wing":"Adjective","so called":"Adjective","spot on":"Adjective","straight forward":"Adjective","super duper":"Adjective","tip top":"Adjective","top notch":"Adjective","up to date":"Adjective","win win":"Adjective","brooklyn nets":"SportsTeam","chicago bears":"SportsTeam","houston astros":"SportsTeam","houston dynamo":"SportsTeam","houston rockets":"SportsTeam","houston texans":"SportsTeam","minnesota twins":"SportsTeam","orlando magic":"SportsTeam","san antonio spurs":"SportsTeam","san diego chargers":"SportsTeam","san diego padres":"SportsTeam","iron maiden":"ProperNoun","isle of man":"Country","united states":"Country","united states of america":"Country","prince edward island":"Region","cedar breaks":"Place","cedar falls":"Place","point blank":"Adverb","tiny bit":"Adverb","by the time":"Conjunction","no matter":"Conjunction","civil wars":"Plural","credit cards":"Plural","default rates":"Plural","free markets":"Plural","head starts":"Plural","home runs":"Plural","lay ups":"Plural","phone calls":"Plural","press releases":"Plural","record labels":"Plural","soft serves":"Plural","student loans":"Plural","tax returns":"Plural","tv shows":"Plural","video games":"Plural","took part":"PastTense","takes part":"PresentTense","taking part":"Gerund","taken part":"Participle","light bulb":"Noun","rush hour":"Noun","fluid ounce":"Unit","the rolling stones":"Organization"}},two:{irregularPlurals:Go,models:zs,suffixPatterns:Qi,prefixPatterns:Yi,endsWith:hs,neighbours:ms,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'[a-z]{3}/,"LastName","mc'neil"],[/^o'[a-z]{3}/,"LastName","o'connor"],[/^ma?cd[aeiou][a-z]{3}/,"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]{4}|[0-9]{2})$/,"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})$/,"NumericValue","9km"]],switches:Ro,clues:Oi,uncountable:{},orgWords:Bs,placeWords:$s}};jl=Cl(jl);var Nl=jl,xl=function(e,t,n,r){const a=r.methods.one.setTag;if(0===t&&e.length>=3){const t=/:/;if(e[0].post.match(t)){let t=e[1];if(t.tags.has("Value")||t.tags.has("Email")||t.tags.has("PhoneNumber"))return;a([e[0]],"Expression",r,null,"2-punct-colon''")}}},Il=function(e,t,n,r){const a=r.methods.one.setTag;"-"===e[t].post&&e[t+1]&&a([e[t],e[t+1]],"Hyphenated",r,null,"1-punct-hyphen''")};const Tl=/^(under|over|mis|re|un|dis|semi)-?/;var Dl=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(Tl.test(a.normal)){let e=a.normal.replace(Tl,"");e.length>3&&r.hasOwnProperty(e)&&(a.switch=r[e])}},Hl=function(e,t,n){if(!t||0===t.length)return;if(!0===e.frozen)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 Gl=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific","Month"];var El=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t)))||(pl(e.normal)?Hl(e,"Plural","3-plural-guess"):Hl(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=Ws(e.normal);t&&Hl(e,t,"3-verb-tense-guess")}}(r)};const Ol=/^\p{Lu}[\p{Ll}'โ€™]/u,Fl=/[0-9]/,Vl=["Date","Month","WeekDay","Unit","Expression"],zl=/[IVX]/,Bl=/^[IVXLCDM]{2,}$/,$l=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,Sl={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var Kl=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===Ol.test(o)&&!1===Fl.test(o)?Vl.find((e=>r.tags.has(e)))||r.pre.match(/["']$/)||"the"===r.normal?null:(El(e,t,n),r.tags.has("Noun")||r.frozen||r.tags.clear(),Hl(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&Bl.test(o)&&zl.test(o)&&$l.test(o)&&!Sl[r.normal]?(Hl(r,"RomanNumeral","2-xvii"),!0):null};const Ml=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 Ll=function(e,t,n){let r=e[t];if(0===r.tags.size){let e=Ml(r.normal,n.two.suffixPatterns);if(null!==e)return Hl(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=Ml(r.implicit,n.two.suffixPatterns),null!==e))return Hl(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const Jl=/['โ€˜โ€™โ€›โ€ตโ€ฒ`ยด]/,Wl=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 Hl(r,e,"2-prefix"),r.confidence=.5,!0}return null};const Rl=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"]),Ql=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!Rl.has(t)||!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun")},_l=function(e){return!(!e||!e.tags.has("Ordinal")&&!(e.tags.has("Cardinal")&&e.normal.length<3)&&"is"!==e.normal&&"was"!==e.normal)},Zl=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var Xl=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(Ql(a)||Ql(o))return Hl(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(_l(a)||_l(o))return Hl(n,"Year","2-tagYear-close");if(Zl(e[t-2])||Zl(e[t+2]))return Hl(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 Hl(n,"Year","2-tagYear-noun")}}}return null},Yl=function(e,t,n,r){const a=r.methods.one.setTag,o=e[t],i=["PastTense","PresentTense","Auxiliary","Modal","Particle"];o.tags.has("Verb")&&(i.find((e=>o.tags.has(e)))||a([o],"Infinitive",r,null,"2-verb-type''"))};const eu=/^[A-Z]('s|,)?$/,tu=/^[A-Z-]+$/,nu=/^[A-Z]+s$/,ru=/([A-Z]\.)+[A-Z]?,?$/,au=/[A-Z]{2,}('s|,)?$/,ou=/([a-z]\.)+[a-z]\.?$/,iu={I:!0,A:!0},su={la:!0,ny:!0,us:!0,dc:!0,gb:!0};var lu=function(e,t,n){let r=e[t];return r.tags.has("RomanNumeral")||r.tags.has("Acronym")||r.frozen?null:function(e,t){let n=e.text;if(!1===tu.test(n)){if(!(n.length>3&&!0===nu.test(n)))return!1;n=n.replace(/s$/,"")}return!(n.length>5||iu.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==ru.test(n)&&!0!==ou.test(n)&&!0!==eu.test(n)&&!0!==au.test(n))}(r,n)?(r.tags.clear(),Hl(r,["Acronym","Noun"],"3-no-period-acronym"),!0===su[r.normal]&&Hl(r,"Place","3-place-acronym"),!0===nu.test(r.text)&&Hl(r,"Plural","3-plural-acronym"),!0):!iu.hasOwnProperty(r.text)&&eu.test(r.text)?(r.tags.clear(),Hl(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(Hl(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&tu.test(r.text)&&r.text.length<=6?(Hl(r,"Acronym","3-titlecase-acronym"),!0):null};const uu=function(e,t){if(!e)return null;let n=t.find((t=>e.normal===t[0]));return n?n[1]:null},cu=function(e,t){if(!e)return null;let n=t.find((t=>e.tags.has(t[0])));return n?n[1]:null};var hu=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||uu(e[t-1],a),l=l||uu(e[t+1],o),l=l||cu(e[t-1],r),l=l||cu(e[t+1],i),l)return Hl(s,l,"3-[neighbour]"),El(e,t,n),e[t].confidence=.2,!0}return null};const du=function(e,t,n){return!!e&&!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||!(n||(r=e.text,!/^\p{Lu}[\p{Ll}'โ€™]/u.test(r)))&&(0!==t||e.tags.has("Singular")));var r};var gu=function(e,t,n,r){const a=n.model.two.orgWords,o=n.methods.one.setTag;let i=e[t];if(!0===a[i.machine||i.normal]&&du(e[t-1],t-1,r)){o([e[t]],"Organization",n,null,"3-[org-word]");for(let a=t;a>=0&&du(e[a],a,r);a-=1)o([e[a]],"Organization",n,null,"3-[org-word]")}return null};const mu=/'s$/,pu=new Set(["athletic","city","community","eastern","federal","financial","great","historic","historical","local","memorial","municipal","national","northern","provincial","southern","state","western"]),fu=new Set(["center","centre","way","range","bar","bridge","field","pit"]),vu=function(e,t,n){if(!e)return!1;let r=e.tags;return!(r.has("Organization")||r.has("Possessive")||mu.test(e.normal))&&(!(!r.has("ProperNoun")&&!r.has("Place"))||!(n||(a=e.text,!/^\p{Lu}[\p{Ll}'โ€™]/u.test(a)))&&(0!==t||r.has("Singular")));var a};var bu=function(e,t,n,r){const a=n.model.two.placeWords,o=n.methods.one.setTag;let i=e[t],s=i.machine||i.normal;if(!0===a[s]){for(let a=t-1;a>=0;a-=1)if(!pu.has(e[a].normal)){if(!vu(e[a],a,r))break;o(e.slice(a,t+1),"Place",n,null,"3-[place-of-foo]")}if(fu.has(s))return!1;for(let a=t+1;ae[t].tags.has("ProperNoun")&&wu.test(e[t].text)?"Noun":null,Pu=(e,t,n)=>0!==t||e[1]?null:n,Au={"Adj|Gerund":(e,t)=>ku(e,t),"Adj|Noun":(e,t)=>ku(e,t)||function(e,t){return!e[t+1]&&e[t-1]&&e[t-1].tags.has("Determiner")?"Noun":null}(e,t),"Actor|Verb":(e,t)=>ku(e,t),"Adj|Past":(e,t)=>ku(e,t),"Adj|Present":(e,t)=>ku(e,t),"Noun|Gerund":(e,t)=>ku(e,t),"Noun|Verb":(e,t)=>t>0&&ku(e,t)||Pu(e,t,"Infinitive"),"Plural|Verb":(e,t)=>ku(e,t)||Pu(e,t,"PresentTense")||function(e,t,n){return 0===t&&e.length>3?n:null}(e,t,"Plural"),"Person|Noun":(e,t)=>ku(e,t),"Person|Verb":(e,t)=>0!==t?ku(e,t):null,"Person|Adj":(e,t)=>0===t&&e.length>1||ku(e,t)?"Person":null};var Cu=Au;const ju="undefined"!=typeof process&&process.env?process.env:self.env||{},Nu=/^(under|over|mis|re|un|dis|semi)-?/,xu=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit,r=null;return t.hasOwnProperty(n)&&(r=t[n]),r&&ju.DEBUG_TAGS&&console.log(`\n  โ†“ - '${n}' `),r},Iu=(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)),a=r.find((e=>t[e]));return a&&ju.DEBUG_TAGS&&console.log(`  โ†“ - '${e.normal||e.implicit}' (#${a}) `),a=t[a],a};var Tu=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(Nu.test(l)&&!o[l]&&(l=l.replace(Nu,"")),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="also"!==e[t-1]?.text?t-1:Math.max(0,t-2),o=r.one.tagSet;let i=xu(e[t+1],n.afterWords);return i=i||xu(e[a],n.beforeWords),i=i||Iu(e[a],n.beforeTags,o),i=i||Iu(e[t+1],n.afterTags,o),i}(e,t,i[o],r);Cu[o]&&(u=Cu[o](e,t)||u),u?(a([s],u,n,null,`3-[switch] (${o})`),El(e,t,r)):ju.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}};const Du={there:!0,this:!0,it:!0,him:!0,her:!0,us:!0};var Hu=function(e,t){const n=t.methods.one.setTag,r=t.model.one._multiCache||{};let a=e[0];if(("Noun|Verb"===a.switch||a.tags.has("Infinitive"))&&e.length>=2){if(e.length<4&&!Du[e[1].normal])return;if(!a.tags.has("PhrasalVerb")&&r.hasOwnProperty(a.normal))return;(e[1].tags.has("Noun")||e[1].tags.has("Determiner"))&&(e.slice(1,3).some((e=>e.tags.has("Verb")))&&!a.tags.has("#PhrasalVerb")||n([a],"Imperative",t,null,"3-[imperative]"))}};const Gu=function(e){if(e.filter((e=>!e.tags.has("ProperNoun"))).length<=3)return!1;const t=/^[a-z]/;return e.every((e=>!t.test(e.text)))},Eu=function(e,t,n,r){for(let a=0;a{xl(e,0,t,n)}))}(a,n,r);let o=t.two.quickSplit(a);for(let e=0;e{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.noun.toSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(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.verb.toInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromSuperlative(n,t.model)},Adverb:(e,t)=>{const{fromAdverb:n}=t.methods.two.transform.adjective;return n(e.machine||e.normal||e.text)}};var zu=function(e){const t=e.world,n=Object.keys(Vu);e.docs.forEach((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{let t=Qu.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=Ru},Zu=function(e,t,n){let[r,a]=t;n&&0!==n.length&&(n=n.map(((e,t)=>(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e))),n[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 Xu=/'/,Yu=new Set(["been","become"]),ec=new Set(["what","how","when","if","too"]);let tc=new Set(["too","also","enough"]);var nc=function(e,t){let n=e[t].normal.split(Xu)[0];if("let"===n)return[n,"us"];if("there"===n){let r=e[t+1];if(r&&r.tags.has("Plural"))return[n,"are"]}return"has"===((e,t)=>{for(let n=t+1;n{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("i"===n.normal)return["am","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const lc={that:!0,there:!0,let:!0,here:!0,everywhere:!0},uc={in:!0,by:!0,for:!0};let cc=new Set(["too","also","enough","about"]),hc=new Set(["is","are","did","were","could","should","must","had","have"]);var dc=(e,t)=>{let n=e[t];if(lc.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("QuestionWord"))return!1;if("he's"===n.normal||"she's"===n.normal)return!1;let r=e[t+1];if(!r)return!0;if("it's"===n.normal)return!!r.tags.has("#Noun");if("Noun|Gerund"==r.switch){let r=e[t+2];return r?!!r.tags.has("Copula")||("on"===r.normal||r.normal,!1):!(!n.tags.has("Actor")&&!n.tags.has("ProperNoun"))}if(r.tags.has("Verb"))return!!r.tags.has("Infinitive")||!r.tags.has("Gerund")&&!!r.tags.has("PresentTense");if("Adj|Noun"===r.switch){let n=e[t+2];if(!n)return!1;if(hc.has(n.normal))return!0;if(cc.has(n.normal))return!1}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===uc[e[t-1].normal])return!0;if(r.tags.has("Adjective")){let n=e[t+2];if(!n)return!1;if(n.tags.has("Noun")&&!n.tags.has("Pronoun")){let e=r.normal;return"above"!==e&&"below"!==e&&"behind"!==e}return"Noun|Verb"===n.switch}return!!r.tags.has("Value")};const gc=/'/,mc=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(["freeze","lexicon","preTagger","unfreeze"]),function(e){e.forEach(((e,t)=>{e.index&&(e.index[1]=t)}))}(e)},pc={d:(e,t)=>ic(e,t),t:(e,t)=>sc(e,t),s:(e,t,n)=>dc(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,null,"2-contraction"):nc(e,t)},fc=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var vc={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===gc.test(r[o].normal)&&(i=r[o].normal.split(gc)[1]);let s=null;pc.hasOwnProperty(i)&&(s=pc[i](r,o,t)),s&&(s=fc(s,e),Zu(n,[a,o],s),mc(n[a],e,o,s.length))}}))}},bc={compute:vc,api:_u,hooks:["contractionTwo"]};const yc="(hard|fast|late|early|high|right|deep|close|direct)",wc="(i|we|they)";let kc=[].concat([{match:"(got|were|was|is|are|am) (#PastTense|#Participle)",tag:"Passive",reason:"got-walked"},{match:"(was|were|is|are|am) being (#PastTense|#Participle)",tag:"Passive",reason:"was-being"},{match:"(had|have|has) been (#PastTense|#Participle)",tag:"Passive",reason:"had-been"},{match:"will be being? (#PastTense|#Participle)",tag:"Passive",reason:"will-be-cleaned"},{match:"#Noun [(#PastTense|#Participle)] by (the|a) #Noun",group:0,tag:"Passive",reason:"suffered-by"}],[{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,notIf:"(all|even)",tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"[#Hyphenated (#Hyphenated && #PastTense)] (#Noun|#Conjunction)",group:0,tag:"Adjective",notIf:"#Adverb",reason:"faith-based"},{match:"[#Hyphenated (#Hyphenated && #Gerund)] (#Noun|#Conjunction)",group:0,tag:"Adjective",notIf:"#Adverb",reason:"self-driving"},{match:"[#PastTense (#Hyphenated && #PhrasalVerb)] (#Noun|#Conjunction)",group:0,tag:"Adjective",reason:"dammed-up"},{match:"(#Hyphenated && #Value) fold",tag:"Adjective",reason:"two-fold"},{match:"must (#Hyphenated && #Infinitive)",tag:"Adjective",reason:"must-win"},{match:"(#Hyphenated && #Infinitive) #Hyphenated",tag:"Adjective",notIf:"#PhrasalVerb",reason:"vacuum-sealed"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"},{match:"[(un|contra|extra|inter|intra|macro|micro|mid|mis|mono|multi|pre|sub|tri|ex)] #Adjective",group:0,tag:["Adjective","Prefix"],reason:"un-skilled"}],[{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:"#Copula [far too] #Adjective",group:0,tag:"Adverb",reason:"far-too"},{match:"#Copula [still] (in|#Gerund|#Adjective)",group:0,tag:"Adverb",reason:"was-still-walking"},{match:`#Plural ${yc}`,tag:"#PresentTense #Adverb",reason:"studies-hard"},{match:`#Verb [${yc}] !#Noun?`,group:0,notIf:"(#Copula|get|got|getting|become|became|becoming|feel|feels|feeling|#Determiner|#Preposition)",tag:"Adverb",reason:"shops-direct"},{match:"[#Plural] a lot",tag:"PresentTense",reason:"studies-a-lot"}],[{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:"#Gerund [#Gerund]",group:0,tag:"Adjective",notIf:"(impersonating|practicing|considering|assuming)",reason:"looking-annoying"},{match:"(looked|look|looks) #Adverb? [%Adj|Gerund%]",group:0,tag:"Adjective",notIf:"(impersonating|practicing|considering|assuming)",reason:"looked-amazing"},{match:"[%Adj|Gerund%] #Determiner",group:0,tag:"Gerund",reason:"developing-a"},{match:"#Possessive [%Adj|Gerund%] #Noun",group:0,tag:"Adjective",reason:"leading-manufacturer"},{match:"%Noun|Gerund% %Adj|Gerund%",tag:"Gerund #Adjective",reason:"meaning-alluring"},{match:"(face|embrace|reveal|stop|start|resume) %Adj|Gerund%",tag:"#PresentTense #Adjective",reason:"face-shocking"},{match:"(are|were) [%Adj|Gerund%] #Plural",group:0,tag:"Adjective",reason:"are-enduring-symbols"}],[{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",notIf:"#Hyphenated",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:"no [#Adjective] #Modal",group:0,tag:"Noun",reason:"no-golden"},{match:"[brand #Gerund?] new",group:0,tag:"Adverb",reason:"brand-new"},{match:"(#Determiner|#Comparative|new|different) [kind]",group:0,tag:"Noun",reason:"some-kind"},{match:"#Possessive [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"her-favourite"},{match:"must && #Hyphenated .",tag:"Adjective",reason:"must-win"},{match:"#Determiner [#Adjective]$",tag:"Noun",notIf:"(this|that|#Comparative|#Superlative)",reason:"the-south"},{match:"(#Noun && #Hyphenated) (#Adjective && #Hyphenated)",tag:"Adjective",notIf:"(this|that|#Comparative|#Superlative)",reason:"company-wide"},{match:"#Determiner [#Adjective] (#Copula|#Determiner)",notIf:"(#Comparative|#Superlative)",group:0,tag:"Noun",reason:"the-poor"},{match:"[%Adj|Noun%] #Noun",notIf:"(#Pronoun|#ProperNoun)",group:0,tag:"Adjective",reason:"stable-foundations"}],[{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,notIf:"(#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] #Comparative",group:0,tag:"Adverb",reason:"even-worse"},{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|bright|slow|fast|backwards|forwards)]",notIf:"#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",notIf:"(getting|becoming|feeling)",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",notIf:"(#PhrasalVerb|#Copula)",reason:"charge-back"},{match:"#Verb [around]",group:0,tag:"Adverb",notIf:"#PhrasalVerb",reason:"send-around"},{match:"[later] #PresentTense",group:0,tag:"Adverb",reason:"later-say"},{match:"#Determiner [well] !#PastTense?",group:0,tag:"Noun",reason:"the-well"},{match:"#Adjective [enough]",group:0,tag:"Adverb",reason:"high-enough"}],[{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) !#Infinitive?",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:"#Value (am|pm)",tag:"Time",reason:"2-am"}],[{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:"(the|any) [more]",group:0,tag:"Singular",reason:"more-noun"},{match:"[more] #Noun",group:0,tag:"Adjective",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Singular",reason:"bit-2"},{match:"a [must]",group:0,tag:"Singular",reason:"must-2"},{match:"(we|us) [all]",group:0,tag:"Noun",reason:"we all"},{match:"due to [#Verb]",group:0,tag:"Noun",reason:"due-to"},{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",notIf:"#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:"(a|an|the) [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",notIf:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,notIf:"#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? [#PresentTense #Particle?]",group:0,tag:"Noun",notIf:"(seem|appear|include|#Gerund|#Copula)",reason:"det-inf"},{match:"#Noun #Actor",tag:"Actor",notIf:"(#Person|#Pronoun)",reason:"thing-doer"},{match:"#Gerund #Actor",tag:"Actor",reason:"gerund-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"[#Noun+] #Actor",group:0,tag:"Actor",notIf:"(#Honorific|#Pronoun|#Possessive)",reason:"air-traffic-controller"},{match:"(urban|cardiac|cardiovascular|respiratory|medical|clinical|visual|graphic|creative|dental|exotic|fine|certified|registered|technical|virtual|professional|amateur|junior|senior|special|pharmaceutical|theoretical)+ #Noun? #Actor",tag:"Actor",reason:"fine-artist"},{match:"#Noun+ (coach|chef|king|engineer|fellow|personality|boy|girl|man|woman|master)",tag:"Actor",reason:"dance-coach"},{match:"chief . officer",tag:"Actor",reason:"chief-x-officer"},{match:"chief of #Noun+",tag:"Actor",reason:"chief-of-police"},{match:"senior? vice? president of #Noun+",tag:"Actor",reason:"president-of"},{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:"#Possessive #PresentTense #Particle?",notIf:"(#Gerund|her)",tag:"Noun",reason:"possessive-verb"},{match:"(my|our|their|her|his|its) [(#Plural && #Actor)] #Noun",tag:"Possessive",reason:"my-dads"},{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 [#Verb] and #Noun",group:0,tag:"Noun",reason:"peace-and-flowers"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"},{match:"#Copula the [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"the-premier-university"},{match:"i #Verb [me] #Noun",group:0,tag:"Possessive",reason:"scottish-me"},{match:"[#PresentTense] (music|class|lesson|night|party|festival|league|ceremony)",group:0,tag:"Noun",reason:"dance-music"},{match:"[wit] (me|it)",group:0,tag:"Presposition",reason:"wit-me"},{match:"#PastTense #Possessive [#Verb]",group:0,tag:"Noun",notIf:"(saw|made)",reason:"left-her-boots"},{match:"#Value [%Plural|Verb%]",group:0,tag:"Plural",notIf:"(one|1|a|an)",reason:"35-signs"},{match:"had [#PresentTense]",group:0,tag:"Noun",notIf:"(#Gerund|come|become)",reason:"had-time"},{match:"%Adj|Noun% %Noun|Verb%",tag:"#Adjective #Noun",notIf:"#ProperNoun #Noun",reason:"instant-access"},{match:"#Determiner [%Adj|Noun%] #Conjunction",group:0,tag:"Noun",reason:"a-rep-to"},{match:"#Adjective #Noun [%Plural|Verb%]$",group:0,tag:"Plural",notIf:"#Pronoun",reason:"near-death-experiences"},{match:"#Possessive #Noun [%Plural|Verb%]$",group:0,tag:"Plural",reason:"your-guild-colors"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,ifNo:"#Copula",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",notIf:"(still|even|just)",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"#Copula [(#Gerund|#Activity)] #Copula",group:0,tag:"Gerund",reason:"are-doing-is"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"},{match:"#Singular for [%Noun|Gerund%]",group:0,tag:"Gerund",reason:"noun-for-gerund"},{match:"#Comparative (for|at) [%Noun|Gerund%]",group:0,tag:"Gerund",reason:"better-for-gerund"},{match:"#PresentTense the [#Gerund]",group:0,tag:"Noun",reason:"keep-the-touching"}],[{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 (only|further|just|more|backward) [#Infinitive]",group:0,tag:"Noun",reason:"the-only-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{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,notIf:"from",tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"#Plural 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 #Particle?]",notIf:"(#Copula|#Noun|sure|fun|up)",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",notIf:"#Pronoun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"this [#Plural]",group:0,tag:"PresentTense",notIf:"(#Preposition|#Date)",reason:"this-verbs"},{match:"#Noun that [#Plural]",group:0,tag:"PresentTense",notIf:"(#Preposition|#Pronoun|way)",reason:"voice-that-rocks"},{match:"that [#Plural] to",group:0,tag:"PresentTense",notIf:"#Preposition",reason:"that-leads-to"},{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]",notIf:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",notIf:"better",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",notIf:"(#Copula|better)",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"many-poses"},{match:"#Determiner #Adverb #Adjective [%Noun|Verb%]",group:0,tag:"Noun",notIf:"#Copula",reason:"very-big-dream"},{match:"from #Noun to [%Noun|Verb%]",group:0,tag:"Noun",reason:"start-to-finish"},{match:"(for|with|of) #Noun (and|or|not) [%Noun|Verb%]",group:0,tag:"Noun",notIf:"#Pronoun",reason:"for-food-and-gas"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",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) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #Particle #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] of",group:0,notIf:"(one|1|#Copula|#Infinitive)",tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",notIf:"#Copula",reason:"our-full-support"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",notIf:"going",reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"},{match:"how to [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"how-to-noun"},{match:"which [%Noun|Verb%] #Noun",group:0,tag:"Infinitive",reason:"which-boost-it"},{match:"#Gerund [%Plural|Verb%]",group:0,tag:"Plural",reason:"asking-questions"},{match:"(ready|available|difficult|hard|easy|made|attempt|try) to [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"ready-to-noun"},{match:"(bring|went|go|drive|run|bike) to [%Noun|Verb%]",group:0,tag:"Noun",reason:"bring-to-noun"},{match:"#Modal #Noun [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"would-you-look"},{match:"#Copula just [#Infinitive]",group:0,tag:"Noun",reason:"is-just-spam"},{match:"^%Noun|Verb% %Plural|Verb%",tag:"Imperative #Plural",reason:"request-copies"},{match:"#Adjective #Plural and [%Plural|Verb%]",group:0,tag:"#Plural",reason:"pickles-and-drinks"},{match:"#Determiner #Year [#Verb]",group:0,tag:"Noun",reason:"the-1968-film"},{match:"#Determiner [#PhrasalVerb #Particle]",group:0,tag:"Noun",reason:"the-break-up"},{match:"#Determiner [%Adj|Noun%] #Noun",group:0,tag:"Adjective",notIf:"(#Pronoun|#Possessive|#ProperNoun)",reason:"the-individual-goals"},{match:"[%Noun|Verb%] or #Infinitive",group:0,tag:"Infinitive",reason:"work-or-prepare"},{match:"to #Infinitive [#PresentTense]",group:0,tag:"Noun",notIf:"(#Gerund|#Copula|help)",reason:"to-give-thanks"},{match:"[#Noun] me",group:0,tag:"Verb",reason:"kills-me"},{match:"%Plural|Verb% %Plural|Verb%",tag:"#PresentTense #Plural",reason:"removes-wrinkles"}],[{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:"a pound",tag:"#Money #Unit",reason:"a-pound"},{match:"#Value (pound|pounds)",tag:"#Money #Unit",reason:"4-pounds"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"},{match:"#Value #Unit [(per|an) (hr|hour|sec|second|min|minute)]",group:0,tag:"Unit",reason:"12-miles-per-second"},{match:"#Value [(square|cubic)] #Unit",group:0,tag:"Unit",reason:"square-miles"},{match:"^[#Value] (#Determiner|#Gerund)",group:0,tag:"Expression",unTag:"Value",reason:"numbered-list"}],[{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(sister|pope|brother|father|aunt|uncle|grandpa|grandfather|grandma) #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",notIf:"#Place",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",notIf:"#Place",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",notIf:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",notIf:"#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:"[(lieutenant|corporal|sergeant|captain|qeen|king|admiral|major|colonel|marshal|president|queen|king)+] #ProperNoun",group:0,tag:"Honorific",reason:"seargeant-john"},{match:"[(private|general|major|rear|prime|field|count|miss)] #Honorific? #Person",group:0,tag:["Honorific","Person"],reason:"ambg-honorifics"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",notIf:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:"Honorific",reason:"his-excellency"},{match:"#Honorific #Actor",tag:"Honorific",reason:"Lieutenant colonel"},{match:"(first|second|third|1st|2nd|3rd) #Actor",tag:"Honorific",reason:"first lady"},{match:"#Person #RomanNumeral",tag:"Person",reason:"louis-IV"}],[{match:"#FirstName #Noun$",tag:". #LastName",notIf:"(#Possessive|#Organization|#Place|#Pronoun|@hasTitleCase)",reason:"firstname-noun"},{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",ifNo:"#Actor"},{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:"#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:"(#FirstName && !#Possessive) [#Singular] #Verb",group:0,safe:!0,tag:"LastName",reason:"jack-layton"},{match:"^[#Singular] #Person #Verb",group:0,safe:!0,tag:"Person",reason:"sherwood-anderson"},{match:"(a|an) [#Person]$",group:0,unTag:"Person",reason:"a-warhol"}],[{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",notIf:"(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:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(have|had) read",tag:"Modal #PastTense",reason:"read-read"},{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:"as #Pronoun [please]",group:0,tag:"Infinitive",reason:"as-we-please"},{match:"[(co|mis|de|inter|intra|pre|re|un|out|under|over|counter)] #Verb",group:0,tag:["Verb","Prefix"],notIf:"(#Copula|#PhrasalVerb)",reason:"co-write"},{match:"#PastTense and [%Adj|Past%]",group:0,tag:"PastTense",reason:"dressed-and-left"},{match:"[%Adj|Past%] and #PastTense",group:0,tag:"PastTense",reason:"dressed-and-left"},{match:"#Copula #Pronoun [%Adj|Past%]",group:0,tag:"Adjective",reason:"is-he-stoked"},{match:"to [%Noun|Verb%] #Preposition",group:0,tag:"Infinitive",reason:"to-dream-of"}],[{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:"#Copula [#Adjective] (well|badly|quickly|slowly)",group:0,tag:"Verb",reason:"done-well"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"},{match:"(seem|feel|seemed|felt) [#PastTense #Particle?]",group:0,tag:"Adjective",reason:"seem-confused"},{match:"a (bit|little|tad) [#PastTense #Particle?]",group:0,tag:"Adjective",reason:"a-bit-confused"},{match:"not be [%Adj|Past% #Particle?]",group:0,tag:"Adjective",reason:"do-not-be-confused"},{match:"#Copula just [%Adj|Past% #Particle?]",group:0,tag:"Adjective",reason:"is-just-right"},{match:"as [#Infinitive] as",group:0,tag:"Adjective",reason:"as-pale-as"},{match:"[%Adj|Past%] and #Adjective",group:0,tag:"Adjective",reason:"faled-and-oppressive"},{match:"or [#PastTense] #Noun",group:0,tag:"Adjective",notIf:"(#Copula|#Pronoun)",reason:"or-heightened-emotion"},{match:"(become|became|becoming|becomes) [#Verb]",group:0,tag:"Adjective",reason:"become-verb"},{match:"#Possessive [#PastTense] #Noun",group:0,tag:"Adjective",reason:"declared-intentions"},{match:"#Copula #Pronoun [%Adj|Present%]",group:0,tag:"Adjective",reason:"is-he-cool"},{match:"#Copula [%Adj|Past%] with",group:0,tag:"Adjective",notIf:"(associated|worn|baked|aged|armed|bound|fried|loaded|mixed|packed|pumped|filled|sealed)",reason:"is-crowded-with"},{match:"#Copula #Adverb? [%Adj|Present%]$",group:0,tag:"Adjective",reason:"was-empty$"}],[{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:"[(#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:"[(been|had|became|came)] #PastTense",group:0,notIf:"#PhrasalVerb",tag:"Auxiliary",reason:"been-told"},{match:"[(being|having|getting)] #Verb",group:0,tag:"Auxiliary",reason:"being-born"},{match:"[be] #Gerund",group:0,tag:"Auxiliary",reason:"be-walking"},{match:"[better] #PresentTense",group:0,tag:"Modal",notIf:"(#Copula|#Gerund)",reason:"better-go"},{match:"even better",tag:"Adverb #Comparative",reason:"even-better"}],[{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)",notIf:"#Copula",tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"#Verb (up|down|in|on|for)$",tag:"PhrasalVerb #Particle",notIf:"#PhrasalVerb",reason:"come-down$"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"#PhrasalVerb (in && #Particle) #Determiner",tag:"#Verb #Preposition #Determiner",unTag:"PhrasalVerb",reason:"work-in-the"},{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:wc,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:wc,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:wc,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",notIf:"(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|a|an|any|each|every|some|more|with|on)",group:0,notIf:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me|there)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^[#Infinitive] (#Adjective|#Adverb)? and #Infinitive",group:0,tag:"Imperative",reason:"call-and-reserve"},{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:"^[#PhrasalVerb #Particle] #Determiner #Noun",group:0,tag:"Imperative",reason:"turn-off-the-light"},{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:"^come #Infinitive",tag:"Imperative",notIf:"on",reason:"come-have"},{match:"^come and? #Infinitive",tag:"Imperative . Imperative",notIf:"#PhrasalVerb",reason:"come-and-have"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[(stay|be|keep)] #Adjective",group:0,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:"[#Infinitive] what .",group:0,tag:"Imperative",reason:"look-what"},{match:"^[#Infinitive] #Gerund",group:0,tag:"Imperative",reason:"keep-playing"},{match:"^[#Infinitive] (to|for|into|toward|here|there)",group:0,tag:"Imperative",reason:"go-to"},{match:"^[#Infinitive] (and|or) #Infinitive",group:0,tag:"Imperative",reason:"inf-and-inf"},{match:"^[%Noun|Verb%] to",group:0,tag:"Imperative",reason:"commit-to"},{match:"^[#Infinitive] #Adjective? #Singular #Singular",group:0,tag:"Imperative",reason:"maintain-eye-contact"},{match:"do not (forget|omit|neglect) to [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-forget"},{match:"^[(ask|wear|pay|look|help|show|watch|act|fix|kill|stop|start|turn|try|win)] #Noun",group:0,tag:"Imperative",reason:"pay-attention"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"},{match:"#Gerund [#Gerund] #Plural",group:0,tag:"Adjective",reason:"hard-working-fam"}],[{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:"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:"[right] (before|after|in|into|to|toward)",group:0,tag:"#Adverb",reason:"right-into"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"(are|#Modal|see|do|for) [ya]",group:0,tag:"Pronoun",reason:"are-ya"},{match:"[long live] .",group:0,tag:"#Adjective #Infinitive",reason:"long-live"},{match:"[plenty] of",group:0,tag:"#Uncountable",reason:"plenty-of"},{match:"(always|nearly|barely|practically) [there]",group:0,tag:"Adjective",reason:"always-there"},{match:"[there] (#Adverb|#Pronoun)? #Copula",group:0,tag:"There",reason:"there-is"},{match:"#Copula [there] .",group:0,tag:"There",reason:"is-there"},{match:"#Modal #Adverb? [there]",group:0,tag:"There",reason:"should-there"},{match:"^[do] (you|we|they)",group:0,tag:"QuestionWord",reason:"do-you"},{match:"^[does] (he|she|it|#ProperNoun)",group:0,tag:"QuestionWord",reason:"does-he"},{match:"#Determiner #Noun+ [who] #Verb",group:0,tag:"Preposition",reason:"the-x-who"},{match:"#Determiner #Noun+ [which] #Verb",group:0,tag:"Preposition",reason:"the-x-which"},{match:"a [while]",group:0,tag:"Noun",reason:"a-while"},{match:"guess who",tag:"#Infinitive #QuestionWord",reason:"guess-who"},{match:"[fucking] !#Verb",group:0,tag:"#Gerund",reason:"f-as-gerund"}],[{match:"university of #Place",tag:"Organization",reason:"university-of-Foo"},{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",notIf:"#FirstName",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:"government of the? [#Place+]",tag:"Organization",reason:"government-of-x"},{match:"(health|school|commerce) board",tag:"Organization",reason:"school-board"},{match:"(nominating|special|conference|executive|steering|central|congressional) committee",tag:"Organization",reason:"special-comittee"},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"},{match:"#Place+ #SportsTeam",tag:"SportsTeam",reason:"place-sportsteam"},{match:"(dc|atlanta|minnesota|manchester|newcastle|sheffield) united",tag:"SportsTeam",reason:"united-sportsteam"},{match:"#Place+ fc",tag:"SportsTeam",reason:"fc-sportsteam"}],[{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+ (cliff|place|range|pit|place|point|room|grounds|ruins)",tag:"Place",reason:"foo-point"},{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:"a #Noun [like] (#Noun|#Determiner)",group:0,tag:"Preposition",reason:"a-noun-like"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Infinitive #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"}],[{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^[(well|so|okay|now)] !#Adjective?",group:0,tag:"Expression",reason:"well-"},{match:"^come on",tag:"Expression",reason:"come-on"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"^(ok|alright|shoot|hell|anyways)",tag:"Expression",reason:"ok-"},{match:"^(say && @hasComma)",tag:"Expression",reason:"say-"},{match:"^(like && @hasComma)",tag:"Expression",reason:"like-"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}]),Pc=null;var Ac={postTagger:function(e){const{world:t}=e,{model:n,methods:r}=t;Pc=Pc||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(Pc),e.uncache(),e.unfreeze(),e},tagger:e=>e.compute(["freeze","lexicon","preTagger","postTagger","unfreeze"])};const Cc={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach((n=>{n.forEach((n=>{t+=1,e+=n.confidence||1}))})),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["tagger"])}},compute:Ac,model:{two:{matches:kc}},hooks:["postTagger"]};var jc=Cc,Nc=function(e,t){let n=function(e){return Object.keys(e.hooks).filter((e=>!e.startsWith("#")&&!e.startsWith("%")))}(t);if(0===n.length)return e;e._cache||e.cache();let r=e._cache;return e.filter(((e,t)=>n.some((e=>r[t].has(e)))))},xc=function(e,t){let n=t;"string"==typeof t&&(n=this.buildNet([{match:t}]));let r=this.tokenize(e),a=Nc(r,n);return a.found?(a.compute(["index","tagger"]),a.match(t)):r.none()},Ic={lib:{lazy:xc}},Tc=function(e,t){let n=t;return e.forEach((e=>{e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verb.conjugate)(t,e.model);return e.has("#Gerund")?n.Gerund:e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)})),e},Dc=function(e,t,n){let r=e.split(/ /g).map((e=>e.toLowerCase().trim()));r=r.filter((e=>e)),r=r.map((e=>`{${e}}`)).join(" ");let a=this.match(r);return n&&(a=a.if(n)),a.has("#Verb")?Tc(a,t):a.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.noun.toPlural)(t,e.model)),e.replaceWith(n,{possessives:!0})}(a,t):a.has("#Adverb")?function(e,t){const{toAdverb:n}=e.methods.two.transform.adjective;let r=n(t);r&&e.replaceWith(r)}(a,t):a.has("#Adjective")?function(e,t){const{toComparative:n,toSuperlative:r}=e.methods.two.transform.adjective;let a=t;e.has("#Comparative")?a=n(a,e.model):e.has("#Superlative")&&(a=r(a,e.model)),a&&e.replaceWith(a)}(a,t):this},Hc={api:function(e){e.prototype.swap=Dc}};v.plugin(Wu),v.plugin(bc),v.plugin(jc),v.plugin(Ic),v.plugin(Hc);const Gc=function(e){const{fromComparative:t,fromSuperlative:n}=e.methods.two.transform.adjective;let r=e.text("normal");return e.has("#Comparative")?t(r,e.model):e.has("#Superlative")?n(r,e.model):r};var Ec={api:function(e){class Adjectives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adjectives"}json(e={}){const{toAdverb:t,toNoun:n,toSuperlative:r,toComparative:a}=this.methods.two.transform.adjective;return e.normal=!0,this.map((o=>{let i=o.toView().json(e)[0]||{},s=Gc(o);return i.adjective={adverb:t(s,this.model),noun:n(s,this.model),superlative:r(s,this.model),comparative:a(s,this.model)},i}),[])}adverbs(){return this.before("#Adverb+$").concat(this.after("^#Adverb+"))}conjugate(e){const{toComparative:t,toSuperlative:n,toNoun:r,toAdverb:a}=this.methods.two.transform.adjective;return this.getNth(e).map((e=>{let o=Gc(e);return{Adjective:o,Comparative:t(o,this.model),Superlative:n(o,this.model),Noun:r(o,this.model),Adverb:a(o,this.model)}}),[])}toComparative(e){const{toComparative:t}=this.methods.two.transform.adjective;return this.getNth(e).map((e=>{let n=Gc(e),r=t(n,this.model);return e.replaceWith(r)}))}toSuperlative(e){const{toSuperlative:t}=this.methods.two.transform.adjective;return this.getNth(e).map((e=>{let n=Gc(e),r=t(n,this.model);return e.replaceWith(r)}))}toAdverb(e){const{toAdverb:t}=this.methods.two.transform.adjective;return this.getNth(e).map((e=>{let n=Gc(e),r=t(n,this.model);return e.replaceWith(r)}))}toNoun(e){const{toNoun:t}=this.methods.two.transform.adjective;return this.getNth(e).map((e=>{let n=Gc(e),r=t(n,this.model);return e.replaceWith(r)}))}}e.prototype.adjectives=function(e){let t=this.match("#Adjective");return t=t.getNth(e),new Adjectives(t.document,t.pointer)},e.prototype.superlatives=function(e){let t=this.match("#Superlative");return t=t.getNth(e),new Adjectives(t.document,t.pointer)},e.prototype.comparatives=function(e){let t=this.match("#Comparative");return t=t.getNth(e),new Adjectives(t.document,t.pointer)}}},Oc={api:function(e){class Adverbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adverbs"}conjugate(e){return this.getNth(e).map((e=>{let t=function(e){return e.compute("root").text("root")}(e);return{Adverb:e.text("normal"),Adjective:t}}),[])}json(e={}){const t=this.methods.two.transform.adjective.fromAdverb;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=t.getNth(e),new Adverbs(t.document,t.pointer)}}},Fc=function(e){let t=this;t=function(e){let t=e.parentheses();return t=t.filter((e=>e.wordCount()>=3&&e.has("#Verb")&&e.has("#Noun"))),e.splitOn(t)}(t),t=function(e){let t=e.quotations();return t=t.filter((e=>e.wordCount()>=3&&e.has("#Verb")&&e.has("#Noun"))),e.splitOn(t)}(t),t=function(e){let t=e.match("@hasComma");return t=t.filter((e=>{if(1===e.growLeft(".").wordCount())return!1;if(1===e.growRight(". .").wordCount())return!1;let t=e.grow(".");return t=t.ifNo("@hasComma @hasComma"),t=t.ifNo("@hasComma (and|or) ."),t=t.ifNo("(#City && @hasComma) #Country"),t=t.ifNo("(#WeekDay && @hasComma) #Date"),t=t.ifNo("(#Date+ && @hasComma) #Value"),t=t.ifNo("(#Adjective && @hasComma) #Adjective"),t.found})),e.splitAfter(t)}(t),t=t.splitAfter("(@hasEllipses|@hasSemicolon|@hasDash|@hasColon)"),t=t.splitAfter("^#Pronoun (said|says)"),t=t.splitBefore("(said|says) #ProperNoun$"),t=t.splitBefore(". . if .{4}"),t=t.splitBefore("and while"),t=t.splitBefore("now that"),t=t.splitBefore("ever since"),t=t.splitBefore("(supposing|although)"),t=t.splitBefore("even (while|if|though)"),t=t.splitBefore("(whereas|whose)"),t=t.splitBefore("as (though|if)"),t=t.splitBefore("(til|until)");let n=t.match("#Verb .* [but] .* #Verb",0);n.found&&(t=t.splitBefore(n));let r=t.if("if .{2,9} then .").match("then");return t=t.splitBefore(r),"number"==typeof e&&(t=t.get(e)),t},Vc=function(e){let t=[],n=null;return e.clauses().docs.forEach((e=>{e.forEach((e=>{e.chunk&&e.chunk===n?t[t.length-1][2]=e.index[1]+1:(n=e.chunk,t.push([e.index[0],e.index[1],e.index[1]+1]))})),n=null})),e.update(t)},zc=function(e){class Chunks extends e{constructor(e,t,n){super(e,t,n),this.viewType="Chunks"}isVerb(){return this.filter((e=>e.has("")))}isNoun(){return this.filter((e=>e.has("")))}isAdjective(){return this.filter((e=>e.has("")))}isPivot(){return this.filter((e=>e.has("")))}debug(){return this.toView().debug("chunks"),this}update(e){let t=new Chunks(this.document,e);return t._cache=this._cache,t}}e.prototype.chunks=function(e){let t=Vc(this);return t=t.getNth(e),new Chunks(this.document,t.pointer)},e.prototype.clauses=Fc};const Bc={this:"Noun",then:"Pivot"};var $c=function(e){for(let t=0;t",group:0,chunk:"Verb"},{match:"#Noun of #Determiner? #Noun",chunk:"Noun"},{match:"#Value+ #Adverb? #Adjective",chunk:"Noun"},{match:"the [#Adjective] #Noun",chunk:"Noun"},{match:"#Singular in #Determiner? #Singular",chunk:"Noun"},{match:"#Plural [in] #Determiner? #Noun",group:0,chunk:"Pivot"},{match:"#Noun and #Determiner? #Noun",notIf:"(#Possessive|#Pronoun)",chunk:"Noun"}];let Mc=null;var Lc=function(e,t,n){const{methods:r}=n;Mc=Mc||r.one.buildNet(Kc,n),e.sweep(Mc)};const Jc=function(e,t){if(("undefined"!=typeof process&&process.env?process.env:self.env||{}).DEBUG_CHUNKS){let n=(e.normal+"'").padEnd(8);console.log(` | '${n} โ†’ ${t.padEnd(12)}  -fallback- `)}e.chunk=t};var Wc=function(e){for(let t=0;t{for(let r=0;r{if("Verb"===e.chunk){const t=e.terms.find((e=>e.tags.has("Verb")));t||e.terms.forEach((e=>e.chunk=null))}}))},Uc={chunks:function(e){const{document:t,world:n}=e;$c(t),Sc(t),Lc(e,t,n),Wc(t),qc(t)}},Rc={compute:Uc,api:zc,hooks:["chunks"]};const Qc=/\./g;var _c=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(Qc,""),e.normal=e.normal.replace(Qc,"")}))})),this}addPeriods(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(Qc,""),e.normal=e.normal.replace(Qc,""),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=t.getNth(e),new Acronyms(t.document,t.pointer)}};const Zc=/\(/,Xc=/\)/,Yc=function(e,t){for(;t{e[0].pre=e[0].pre.replace(Zc,"");let t=e[e.length-1];t.post=t.post.replace(Xc,"")})),e}(this)}}e.prototype.parentheses=function(e){let t=function(e){let t=[];return e.docs.forEach((e=>{for(let n=0;n{e.forEach((e=>{e.text=e.text.replace(th,""),e.normal=e.normal.replace(th,"")}))})),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=t.getNth(e),new Possessives(t.document,t.pointer)}};const rh={'"':'"',"๏ผ‚":"๏ผ‚","'":"'","โ€œ":"โ€","โ€˜":"โ€™","โ€Ÿ":"โ€","โ€›":"โ€™","โ€ž":"โ€","โน‚":"โ€","โ€š":"โ€™","ยซ":"ยป","โ€น":"โ€บ","โ€ต":"โ€ฒ","โ€ถ":"โ€ณ","โ€ท":"โ€ด","ใ€":"ใ€ž","`":"ยด","ใ€Ÿ":"ใ€ž"},ah=RegExp("["+Object.keys(rh).join("")+"]"),oh=RegExp("["+Object.values(rh).join("")+"]"),ih=function(e,t){const n=e[t].pre.match(ah)[0]||"";if(!n||!rh[n])return null;const r=rh[n];for(;t{e[0].pre=e[0].pre.replace(ah,"");let t=e[e.length-1];t.post=t.post.replace(oh,"")}))}(this)}}e.prototype.quotations=function(e){let t=function(e){let t=[];return e.docs.forEach((e=>{for(let n=0;n{e.prototype[t[0]]=function(e){let n=this.match(t[1]);return"number"==typeof e?n.get(e):n}})),e.prototype.phoneNumbers=lh,ch.forEach((t=>{e.prototype[t[0]]=e.prototype[t[1]]}))},dh={api:function(e){_c(e),eh(e),nh(e),sh(e),hh(e)}};const gh=function(e,t){e.docs.forEach((e=>{e.forEach(t)}))};var mh={case:e=>{gh(e,(e=>{e.text=e.text.toLowerCase()}))},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;gh(e,(e=>e.text=n(e.text,t)))},whitespace:e=>{gh(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=>{gh(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()},debullet:e=>{const t=/^\s*([-โ€“โ€”*โ€ข])\s*$/;return e.docs.forEach((e=>{t.test(e[0].pre)&&(e[0].pre=e[0].pre.replace(t,""))})),e}};const ph=e=>e.split("|").reduce(((e,t)=>(e[t]=!0,e)),{}),fh="unicode|punctuation|whitespace|acronyms",vh="|case|contractions|parentheses|quotations|emoji|honorifics|debullet",bh={light:ph(fh),medium:ph(fh+vh),heavy:ph(fh+vh+"|possessives|adverbs|nouns|verbs")};var yh={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=bh[e]),Object.keys(e).forEach((t=>{mh.hasOwnProperty(t)&&mh[t](this,e[t])})),this}}},wh=function(e){let t=e.clauses().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|i)"),t=t.splitOn("(#Noun|#Adjective) [(he|him|she|it)]",0),t=t.splitOn("[(he|him|she|it)] (#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.splitBefore("(our|my|their|your)"),t=t.splitOn("#Noun [#Determiner]",0),t=t.if("#Noun"),t};const kh=["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 Ph=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")},Ch=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=t.first(),t.found?t:e}(e);return{determiner:e.match("#Determiner").eq(0),adjectives:e.match("#Adjective"),number:e.values(),isPlural:Ah(e,t),isSubordinate:Ph(e),root:t}};const jh=e=>e.text(),Nh=e=>e.json({terms:!1,normal:!0}).map((e=>e.normal)),xh=function(e){if(!e.found)return null;let t=e.values(0);return t.found?(t.parse()[0]||{}).num:null};var Ih=function(e){let t=Ch(e);return{root:jh(t.root),number:xh(t.number),determiner:jh(t.determiner),adjectives:Nh(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}},Th=function(e){return!e.has("^(#Uncountable|#ProperNoun|#Place|#Pronoun|#Acronym)+$")};const Dh={tags:!0};var Hh=function(e,t){if(!0===t.isPlural)return e;if(t.root.has("#Possessive")&&(t.root=t.root.possessives().strip()),!Th(t.root))return e;const{methods:n,model:r}=e.world,{toPlural:a}=n.two.transform.noun;let o=a(t.root.text({keepPunct:!1}),r);e.match(t.root).replaceWith(o,Dh).tag("Plural","toPlural"),t.determiner.has("(a|an)")&&e.remove(t.determiner);let i=t.root.after("not? #Adverb+? [#Copula]",0);return i.found&&(i.has("is")?e.replace(i,"are"):i.has("was")&&e.replace(i,"were")),e};const Gh={tags:!0};var Eh=function(e,t){if(!1===t.isPlural)return e;const{methods:n,model:r}=e.world,{toSingular:a}=n.two.transform.noun;let o=a(t.root.text("normal"),r);return e.replace(t.root,o,Gh).tag("Singular","toPlural"),e},Oh=function(e){class Nouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Nouns"}parse(e){return this.getNth(e).map(Ch)}json(e){let t="object"==typeof e?e:{};return this.getNth(e).map((e=>{let n=e.toView().json(t)[0]||{};return t&&!1!==t.noun&&(n.noun=Ih(e)),n}),[])}conjugate(e){const t=this.world.methods.two.transform.noun;return this.getNth(e).map((e=>{let n=Ch(e),r=n.root.compute("root").text("root"),a={Singular:r};return Th(n.root)&&(a.Plural=t.toPlural(r,this.model)),a.Singular===a.Plural&&delete a.Plural,a}),[])}isPlural(e){let t=this.filter((e=>Ch(e).isPlural));return t.getNth(e)}isSingular(e){let t=this.filter((e=>!Ch(e).isPlural));return t.getNth(e)}adjectives(e){let t=this.update([]);return this.forEach((e=>{let n=Ch(e).adjectives;n.found&&(t=t.concat(n))})),t.getNth(e)}toPlural(e){return this.getNth(e).map((e=>Hh(e,Ch(e))))}toSingular(e){return this.getNth(e).map((e=>{let t=Ch(e);return Eh(e,t)}))}update(e){let t=new Nouns(this.document,e);return t._cache=this._cache,t}}e.prototype.nouns=function(e){let t=wh(this);return t=t.getNth(e),new Nouns(this.document,t.pointer)}},Fh={api:Oh},Vh=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},zh=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(Bh.ones.hasOwnProperty(e)){if(t.ones||t.teens)return!1}else if(Bh.teens.hasOwnProperty(e)){if(t.ones||t.teens||t.tens)return!1}else if(Bh.tens.hasOwnProperty(e)&&(t.ones||t.teens||t.tens))return!1;return!0},Sh=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 Mh=/^([0-9,. ]+)\/([0-9,. ]+)$/,Lh={"a few":3,"a couple":2,"a dozen":12,"two dozen":24,zero:0},Jh=e=>Object.keys(e).reduce(((t,n)=>t+=e[n]),0);var Wh=function(e){if(!0===Lh.hasOwnProperty(e))return Lh[e];if("a"===e||"an"===e)return 1;const t=zh(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=Uh(n),r=Uh(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:Uh(n);let a=r.text("reduced");return qh.test(a)&&(a=a.replace(qh,""),r=r.replaceWith(a)),r=Rh.hasOwnProperty(a)?Rh[a]:Uh(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:Uh(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},_h=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 Zh=[["ninety",90],["eighty",80],["seventy",70],["sixty",60],["fifty",50],["forty",40],["thirty",30],["twenty",20]],Xh=["","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],Yh=[[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"]],ed=function(e){let t=[];if(e>100)return t;for(let n=0;n=Zh[n][1]&&(e-=Zh[n][1],t.push(Zh[n][0]));return Xh[e]&&t.push(Xh[e]),t};var td=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=_h(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));let r=function(e){let t=e,n=[];return Yh.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(ed(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=_h(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(" ")},nd=function(e){return e.numerator&&e.denominator?`${td({num:e.numerator})} out of ${td({num:e.denominator})}`:""};const rd={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 ad=e=>{let t=td(e).split(" "),n=t[t.length-1];return rd.hasOwnProperty(n)?t[t.length-1]=rd[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")},od=function(e){if(!e.numerator||!e.denominator)return"";let t=td({num:e.numerator}),n=ad({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""},id=function(e){class Fractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return this.getNth(e).map(Qh)}get(e){return this.getNth(e).map(Qh)}json(e){return this.getNth(e).map((t=>{let n=t.toView().json(e)[0],r=Qh(t);return n.fraction=r,n}),[])}toDecimal(e){return this.getNth(e).forEach((e=>{let{decimal:t}=Qh(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")})),this}toFraction(e){return this.getNth(e).forEach((e=>{let t=Qh(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 this.getNth(e).forEach((e=>{let t=Qh(e),n=od(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)})),this}toCardinal(e){return this.getNth(e).forEach((e=>{let t=Qh(e),n=nd(t);e.replaceWith(n)})),this}toPercentage(e){return this.getNth(e).forEach((e=>{let{decimal:t}=Qh(e),n=100*t;n=Math.round(100*n)/100,e.replaceWith(`${n}%`)})),this}}e.prototype.fractions=function(e){let t=Vh(this);return t=t.getNth(e),new Fractions(this.document,t.pointer)}};const sd="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty";var ld=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("("+sd+") #Cardinal #Cardinal")&&(t=t.splitAfter("("+sd+") #Cardinal")),t.has("#Value #Value")){t.has("#NumericValue #NumericValue")&&(t=t.splitOn("#Year")),t.has("("+sd+") (eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen)")&&(t=t.splitAfter("("+sd+")"));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) (${sd})`),r=e.has("("+sd+") #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("("+sd+") #Ordinal")||(t=t.splitAfter("#Ordinal"))),t=t.splitBefore("#Ordinal [#Cardinal]",0),t.has("#TextValue #NumericValue")&&!t.has("("+sd+"|#Multiple)")&&(t=t.splitBefore("#TextValue #NumericValue"))}return t=t.splitAfter("#NumberRange"),t=t.splitBefore("#Year"),t},ud=function(e){if("string"==typeof e)return{num:Wh(e)};let t=e.text("reduced"),n=e.growRight("#Unit").match("#Unit$").text("machine"),r=/[0-9],[0-9]/.test(e.text("text"));if(1===e.terms().length&&!e.has("#Multiple")){let a=function(e,t){let n=(e=e.replace(/,/g,"")).split(/([0-9.,]*)/),[r,a]=n,o=n.slice(2).join("");return""!==a&&t.length<2?(a=Number(a||e),"number"!=typeof a&&(a=null),o=o||"","st"!==o&&"nd"!==o&&"rd"!==o&&"th"!==o||(o=""),{prefix:r||"",num:a,suffix:o}):null}(t,e);if(null!==a)return a.hasComma=r,a.unit=n,a}let a=e.match("#Fraction{2,}$");a=!1===a.found?e.match("^#Fraction$"):a;let o=null;a.found&&(a.has("#Value and #Value #Fraction")&&(a=a.match("and #Value #Fraction")),o=Qh(a),t=(e=(e=e.not(a)).not("and$")).text("reduced"));let i=0;return t&&(i=Wh(t)||0),o&&o.decimal&&(i+=o.decimal),{hasComma:r,prefix:"",num:i,suffix:"",isOrdinal:e.has("#Ordinal"),isText:e.has("#TextValue"),isFraction:e.has("#Fraction"),isMoney:e.has("#Money"),unit:n}},cd=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=_h(t),o=a.slice(a.length-1,a.length);return a+=r[o]?r[o]:"th",a};const hd={"ยข":"cents",$:"dollars","ยฃ":"pounds","ยฅ":"yen","โ‚ฌ":"euros","โ‚ก":"colรณn","เธฟ":"baht","โ‚ญ":"kip","โ‚ฉ":"won","โ‚น":"rupees","โ‚ฝ":"ruble","โ‚บ":"liras"},dd={"%":"percent","ยฐ":"degrees"};var gd=function(e){let t={suffix:"",prefix:e.prefix};return hd.hasOwnProperty(e.prefix)&&(t.suffix+=" "+hd[e.prefix],t.prefix=""),dd.hasOwnProperty(e.suffix)&&(t.suffix+=" "+dd[e.suffix]),t.suffix&&1===e.num&&(t.suffix=t.suffix.replace(/s$/,"")),!t.suffix&&e.suffix&&(t.suffix+=" "+e.suffix),t},md=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=gd(e);return t+ad(e)+n}if("Ordinal"===t)return e.prefix+cd(e)+e.suffix;if("TextCardinal"===t){let{prefix:t,suffix:n}=gd(e);return t+td(e)+n}let n=e.num;return e.hasComma&&(n=n.toLocaleString()),e.prefix+String(n)+e.suffix};const pd=function(e){if("string"==typeof e||"number"==typeof e){let t={};return t[e]=!0,t}return t=e,"[object Array]"===Object.prototype.toString.call(t)?e.reduce(((e,t)=>(e[t]=!0,e)),{}):e||{};var t};var fd=function(e,t={}){return t=pd(t),e.filter((e=>{let{unit:n}=ud(e);return!(!n||!0!==t[n])}))},vd=function(e){class Numbers extends e{constructor(e,t,n){super(e,t,n),this.viewType="Numbers"}parse(e){return this.getNth(e).map(ud)}get(e){return this.getNth(e).map(ud).map((e=>e.num))}json(e){let t="object"==typeof e?e:{};return this.getNth(e).map((e=>{let n=e.toView().json(t)[0],r=ud(e);return n.number={prefix:r.prefix,num:r.num,suffix:r.suffix,hasComma:r.hasComma,unit:r.unit},n}),[])}units(){return this.growRight("#Unit").match("#Unit$")}isUnit(e){return fd(this,e)}isOrdinal(){return this.if("#Ordinal")}isCardinal(){return this.if("#Cardinal")}toNumber(){return this.if("#TextValue").forEach((e=>{let t=ud(e);if(null===t.num)return;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=md(t,n);e.replaceWith(r,{tags:!0}),e.tag("NumericValue")})),this}toLocaleString(){return this.forEach((e=>{let t=ud(e);if(null===t.num)return;let n=t.num.toLocaleString();if(e.has("#Ordinal")){let e=md(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=ud(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"TextOrdinal":"TextCardinal",r=md(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=ud(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextCardinal":"Cardinal",r=md(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=ud(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextOrdinal":"Ordinal",r=md(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=>ud(t).num===e))}greaterThan(e){return this.filter((t=>ud(t).num>e))}lessThan(e){return this.filter((t=>ud(t).num{let r=ud(n).num;return r>e&&r{let n=ud(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=md(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=ud(e).num);let t=this.map((t=>{let n=ud(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=md(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=ld(this);return t=t.getNth(e),new Numbers(this.document,t.pointer)},e.prototype.percentages=function(e){let t=ld(this);return t=t.filter((e=>e.has("#Percent")||e.after("^percent"))),t=t.getNth(e),new Numbers(this.document,t.pointer)},e.prototype.money=function(e){let t=ld(this);return t=t.filter((e=>e.has("#Money")||e.after("^#Currency"))),t=t.getNth(e),new Numbers(this.document,t.pointer)},e.prototype.values=e.prototype.numbers},bd={api:function(e){id(e),vd(e)}};const yd={people:!0,emails:!0,phoneNumbers:!0,places:!0},wd=function(e={}){return!1!==(e=Object.assign({},yd,e)).people&&this.people().replaceWith("โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ"),!1!==e.emails&&this.emails().replaceWith("โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ"),!1!==e.places&&this.places().replaceWith("โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ"),!1!==e.phoneNumbers&&this.phoneNumbers().replaceWith("โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ"),this},kd={api:function(e){e.prototype.redact=wd}};var Pd=kd,Ad=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))}))},Cd=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:(t=t.ifNo("^#Gerund"),1===t.length?t:(0===t.length&&(t=e),t.eq(0)))))))};const jd=function(e){let t=null;return e.has("#PastTense")?t="PastTense":e.has("#FutureTense")?t="FutureTense":e.has("#PresentTense")&&(t="PresentTense"),{tense:t}};var Nd=function(e){let t=e.clauses(),n=Cd(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,grammar:jd(a)}},xd=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},Id=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},Td=function(e){let t=e.verbs();if(t.eq(0).toFutureTense(),t=(e=e.fullSentence()).verbs(),t.length>1){t=t.slice(1);let e=t.filter((e=>!(e.lookBehind("to$").found||!e.has("#Copula #Gerund")&&(e.has("#Gerund")||!e.has("#Copula")&&e.has("#PresentTense")&&!e.has("#Infinitive")&&e.lookBefore("(he|she|it|that|which)$").found))));e.found&&e.forEach((e=>{if(e.has("#Copula"))return e.match("was").replaceWith("is"),void e.match("is").replaceWith("will be");e.toInfinitive()}))}return e},Dd=function(e){return e.verbs().toInfinitive(),e},Hd=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,grammar:i}=Nd(t);return n.sentence={subject:r.text("normal"),verb:a.text("normal"),predicate:o.text("normal"),grammar:i},n}),[])}toPastTense(e){return this.getNth(e).map((e=>(Nd(e),xd(e))))}toPresentTense(e){return this.getNth(e).map((e=>(Nd(e),Id(e))))}toFutureTense(e){return this.getNth(e).map((e=>(Nd(e),e=Td(e))))}toInfinitive(e){return this.getNth(e).map((e=>(Nd(e),Dd(e))))}toNegative(e){return this.getNth(e).map((e=>(Nd(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e))))}toPositive(e){return this.getNth(e).map((e=>(Nd(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 t.getNth(e)}isStatement(e){let t=this.filter((e=>!e.isExclamation().found&&!e.isQuestion().found));return t.getNth(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=t.getNth(e),new Sentences(this.document,t.pointer)},questions:function(e){return Ad(this).getNth(e)}};Object.assign(e.prototype,t)},Gd={api:Hd},Ed=function(e){let t=e.match("#Honorific+? #Person+"),n=t.match("#Possessive").notIf("(his|her)");return t=t.splitAfter(n),t},Od=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 Fd="male",Vd="female",zd={mr:Fd,mrs:Vd,miss:Vd,madam:Vd,king:Fd,queen:Vd,duke:Fd,duchess:Vd,baron:Fd,baroness:Vd,count:Fd,countess:Vd,prince:Fd,princess:Vd,sire:Fd,dame:Vd,lady:Vd,ayatullah:Fd,congressman:Fd,congresswoman:Vd,"first lady":Vd,mx:null};var Bd=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return Vd;if(n.has("#MaleName"))return Fd;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),zd.hasOwnProperty(e))return zd[e];if(/^her /.test(e))return Vd;if(/^his /.test(e))return Fd}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 Fd;if(n&&!t)return Vd}return null},$d=function(e){class People extends e{constructor(e,t,n){super(e,t,n),this.viewType="People"}parse(e){return this.getNth(e).map(Od)}json(e){let t="object"==typeof e?e:{};return this.getNth(e).map((e=>{let n=e.toView().json(t)[0],r=Od(e);return n.person={firstName:r.firstName.text("normal"),lastName:r.lastName.text("normal"),honorific:r.honorific.text("normal"),presumed_gender:Bd(r,e)},n}),[])}presumedMale(){return this.filter((e=>e.has("(#MaleName|mr|mister|sr|jr|king|pope|prince|sir)")))}presumedFemale(){return this.filter((e=>e.has("(#FemaleName|mrs|miss|queen|princess|madam)")))}update(e){let t=new People(this.document,e);return t._cache=this._cache,t}}e.prototype.people=function(e){let t=Ed(this);return t=t.getNth(e),new People(this.document,t.pointer)}},Sd=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},Kd=function(e){e.prototype.places=function(t){let n=Sd(this);return n=n.getNth(t),new e(this.document,n.pointer)}},Md=function(e){e.prototype.organizations=function(e){return this.match("#Organization+").getNth(e)}};const Ld=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=n.getNth(e),n};var Jd=function(e){e.prototype.topics=Ld},Wd={api:function(e){$d(e),Kd(e),Md(e),Jd(e)}},qd=function(e){let t=e.match("");return t=t.not("#Conjunction"),t=t.not("#Preposition"),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),t=t.splitBefore("(#PresentTense|#PastTense) [(had|has)]",0),t=t.not("#Reflexive$"),t=t.not("#Adjective"),t=t.splitAfter("[#PastTense] #PastTense",0),t=t.splitAfter("[#PastTense] #Auxiliary+ #PastTense",0),t=t.splitAfter("#Copula [#Gerund] #PastTense",0),t=t.if("#Verb"),t.has("(#Verb && !#Auxiliary) #Adverb+? #Copula")&&(t=t.splitBefore("#Copula")),t},Ud=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},Rd=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 Qd=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},_d=function(e){return e.match("#Negative")},Zd=function(e){if(!e.has("(#Particle|#PhrasalVerb)"))return{verb:e.none(),particle:e.none()};let t=e.match("#Particle$");return{verb:e.not(t),particle:t}};var Xd=function(e){let t=e.clone();t.contractions().expand();const n=Ud(t);return{root:n,prefix:t.match("#Prefix"),adverbs:Rd(t,n),auxiliary:Qd(t,n),negative:_d(t),phrasal:Zd(n)}};const Yd={tense:"PresentTense"},eg={conditional:!0},tg={tense:"FutureTense"},ng={progressive:!0},rg={tense:"PastTense"},ag={complete:!0,progressive:!1},og={passive:!0},ig=function(e){let t={};return e.forEach((e=>{Object.assign(t,e)})),t},sg={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[Yd]],["^wanted to #Infinitive$",[rg]],["^will want to #Infinitive$",[tg]]],"gerund-phrase":[["^#PastTense #Gerund$",[rg]],["^#PresentTense #Gerund$",[Yd]],["^#Infinitive #Gerund$",[Yd]],["^will #Infinitive #Gerund$",[tg]],["^have #PastTense #Gerund$",[rg]],["^will have #PastTense #Gerund$",[rg]]],"simple-present":[["^#PresentTense$",[Yd]],["^#Infinitive$",[Yd]]],"simple-past":[["^#PastTense$",[rg]]],"simple-future":[["^will #Adverb? #Infinitive",[tg]]],"present-progressive":[["^(is|are|am) #Gerund$",[Yd,ng]]],"past-progressive":[["^(was|were) #Gerund$",[rg,ng]]],"future-progressive":[["^will be #Gerund$",[tg,ng]]],"present-perfect":[["^(has|have) #PastTense$",[rg,ag]]],"past-perfect":[["^had #PastTense$",[rg,ag]],["^had #PastTense to #Infinitive",[rg,ag]]],"future-perfect":[["^will have #PastTense$",[tg,ag]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[rg,ng]]],"past-perfect-progressive":[["^had been #Gerund$",[rg,ng]]],"future-perfect-progressive":[["^will have been #Gerund$",[tg,ng]]],"passive-past":[["(got|were|was) #Passive",[rg,og]],["^(was|were) being #Passive",[rg,og]],["^(had|have) been #Passive",[rg,og]]],"passive-present":[["^(is|are|am) #Passive",[Yd,og]],["^(is|are|am) being #Passive",[Yd,og]],["^has been #Passive",[Yd,og]]],"passive-future":[["will have been #Passive",[tg,og,eg]],["will be being? #Passive",[tg,og,eg]]],"present-conditional":[["would be #PastTense",[Yd,eg]]],"past-conditional":[["would have been #PastTense",[rg,eg]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[tg]]],"auxiliary-past":[["^did #Infinitive$",[rg,{plural:!1}]],["^used to #Infinitive$",[rg,ag]]],"auxiliary-present":[["^(does|do) #Infinitive$",[Yd,ag,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[rg]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let lg=[];Object.keys(sg).map((e=>{sg[e].forEach((t=>{lg.push({name:e,match:t[0],data:ig(t[1])})}))}));var ug=lg,cg=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(),hg(r)&&(n.remove(r),r=n.last()),hg(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:dg(t,e)}};const mg=e=>e,pg=(e,t)=>{let n=gg(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},fg=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=gg(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},vg=function(e,t){let n=gg(e),r=n.subject;return r.has("i")||r.has("we")||n.plural?"do":"does"},bg=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},yg=function(e,t){const{toInfinitive:n}=e.methods.two.transform.verb;let r=t.root.text({keepPunct:!1});return r=n(r,e.model,bg(e)),r&&e.replace(t.root,r),e},wg=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),kg=function(e){return e&&e.isView?e.json({normal:!0,terms:!1,text:!1}).map((e=>e.normal)):[]},Pg=function(e){return e&&e.isView?e.text("normal"):""},Ag=function(e){const{toInfinitive:t}=e.methods.two.transform.verb;return t(e.text("normal"),e.model,bg(e))};var Cg=function(e){let t=Xd(e);e=e.clone().toView();const n=cg(e,t);return{root:t.root.text(),preAdverbs:kg(t.adverbs.pre),postAdverbs:kg(t.adverbs.post),auxiliary:Pg(t.auxiliary),negative:t.negative.found,prefix:Pg(t.prefix),infinitive:Ag(t.root),grammar:n}};const jg={tags:!0};var Ng=function(e,t){const{toInfinitive:n}=e.methods.two.transform.verb,{root:r,auxiliary:a}=t;let o=a.terms().harden(),i=r.text("normal");if(i=n(i,e.model,bg(r)),i&&e.replace(r,i,jg).tag("Verb").firstTerm().tag("Infinitive"),o.found&&e.remove(o),t.negative.found){e.has("not")||e.prepend("not");let t=vg(e);e.prepend(t)}return e.fullSentence().compute(["freeze","lexicon","preTagger","postTagger","unfreeze","chunks"]),e};const xg={tags:!0},Ig={noAux:(e,t)=>(t.auxiliary.found&&(e=e.remove(t.auxiliary)),e),simple:(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;if(a.has("#Modal"))return e;let o=a.text({keepPunct:!1});return o=r(o,e.model,bg(a)),o=n(o,e.model).PastTense,o="been"===o?"was":o,"was"===o&&(o=((e,t)=>{let{subject:n,plural:r}=gg(e);return r||n.has("we")?"were":"was"})(e)),o&&e.replace(a,o,xg),e},both:function(e,t){return t.negative.found?(e.replace("will","did"),e):(e=Ig.simple(e,t),e=Ig.noAux(e,t))},hasHad:e=>(e.replace("has","had",xg),e),hasParticiple:(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,bg(a)),n(o,e.model).Participle}},Tg={infinitive:Ig.simple,"simple-present":Ig.simple,"simple-past":mg,"simple-future":Ig.both,"present-progressive":e=>(e.replace("are","were",xg),e.replace("(is|are|am)","was",xg),e),"past-progressive":mg,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":Ig.hasHad,"past-perfect":mg,"future-perfect":(e,t)=>(e.match(t.root).insertBefore("had"),e.has("will")&&(e=wg(e)),e.remove("have"),e),"present-perfect-progressive":Ig.hasHad,"past-perfect-progressive":mg,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",xg),e),"passive-past":e=>(e.replace("have","had",xg),e),"passive-present":e=>(e.replace("(is|are)","was",xg),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",xg),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":mg,"auxiliary-future":e=>(e.replace("(is|are|am)","was",xg),e),"auxiliary-past":mg,"auxiliary-present":e=>(e.replace("(do|does)","did",xg),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",xg):(Ig.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":mg,"want-infinitive":e=>(e.replace("(want|wants)","wanted",xg),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Ig.simple(e,t),wg(e),e)};var Dg=function(e,t,n){return Tg.hasOwnProperty(n)?((e=Tg[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const Hg=function(e,t){let n=gg(e),r=n.subject;return r.has("(i|we|you)")?"have":!1===n.plural||r.has("he")||r.has("she")||r.has("#Person")?"has":"have"},Gg=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,{root:a,auxiliary:o}=t;if(a.has("#Modal"))return e;let i=a.text({keepPunct:!1});i=r(i,e.model,bg(a));let s=n(i,e.model);if(i=s.Participle||s.PastTense,i){e=e.replace(a,i);let t=Hg(e);e.prepend(t).match(t).tag("Auxiliary"),e.remove(o)}return e},Eg={infinitive:Gg,"simple-present":Gg,"simple-future":(e,t)=>e.replace("will",Hg(e)),"present-perfect":mg,"past-perfect":mg,"future-perfect":(e,t)=>e.replace("will have",Hg(e)),"present-perfect-progressive":mg,"past-perfect-progressive":mg,"future-perfect-progressive":mg};var Og=function(e,t,n){return Eg.hasOwnProperty(n)?((e=Eg[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):((e=Gg(e,t)).fullSentence().compute(["tagger","chunks"]),e)};const Fg={tags:!0},Vg=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,bg(a)),!1===pg(e)&&(o=n(o,e.model).PresentTense),a.has("#Copula")&&(o=fg(e)),o&&(e=e.replace(a,o,Fg)).not("#Particle").tag("PresentTense"),e},zg=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,bg(a)),!1===pg(e)&&(o=n(o,e.model).Gerund),o&&(e=e.replace(a,o,Fg)).not("#Particle").tag("Gerund"),e},Bg={infinitive:Vg,"simple-present":(e,t)=>{const{conjugate:n}=e.methods.two.transform.verb;let{root:r}=t;if(!r.has("#Infinitive"))return Vg(e,t);{let t=gg(e).subject;if(pg(e)||t.has("i"))return e;let a=r.text("normal"),o=n(a,e.model).PresentTense;a!==o&&e.replace(r,o,Fg)}return e},"simple-past":Vg,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=fg(e);e.replace(n,t),(e=e.remove("will")).replace("not "+t,t+" not")}else Vg(e,t),e=e.remove("will");return e},"present-progressive":mg,"past-progressive":(e,t)=>{let n=fg(e);return e.replace("(were|was)",n,Fg)},"future-progressive":e=>(e.match("will").insertBefore("is"),e.remove("be"),e.remove("will")),"present-perfect":(e,t)=>(Vg(e,t),e=e.remove("(have|had|has)")),"past-perfect":(e,t)=>{let n=gg(e).subject;return pg(e)||n.has("i")?((e=yg(e,t)).remove("had"),e):(e.replace("had","has",Fg),e)},"future-perfect":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"present-perfect-progressive":mg,"past-perfect-progressive":e=>e.replace("had","has",Fg),"future-perfect-progressive":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"passive-past":(e,t)=>{let n=fg(e);return e.has("(had|have|has)")&&e.has("been")?(e.replace("(had|have|has)",n,Fg),e.replace("been","being"),e):e.replace("(got|was|were)",n)},"passive-present":mg,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":mg,"past-conditional":e=>(e.replace("been","be"),e.remove("have")),"auxiliary-future":(e,t)=>(zg(e,t),e.remove("(going|to)"),e),"auxiliary-past":(e,t)=>{if(t.auxiliary.has("did")){let n=vg(e);return e.replace(t.auxiliary,n),e}return zg(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":mg,"modal-infinitive":mg,"modal-past":(e,t)=>(((e,t)=>{const{toInfinitive:n}=e.methods.two.transform.verb,r=t.root;let a=t.root.text("normal");a=n(a,e.model,bg(r)),a&&(e=e.replace(t.root,a,Fg))})(e,t),e.remove("have")),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Vg(e,t),e.remove("(will|have)")),"want-infinitive":(e,t)=>{let n="wants";return pg(e)&&(n="want"),e.replace("(want|wanted|wants)",n,Fg),e.remove("will"),e}};var $g=function(e,t,n){return Bg.hasOwnProperty(n)?((e=Bg[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const Sg={tags:!0},Kg=(e,t)=>{const{toInfinitive:n}=e.methods.two.transform.verb,{root:r,auxiliary:a}=t;if(r.has("#Modal"))return e;let o=r.text("normal");return o=n(o,e.model,bg(r)),o&&(e=e.replace(r,o,Sg)).not("#Particle").tag("Verb"),e.prepend("will").match("will").tag("Auxiliary"),e.remove(a),e},Mg=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,{root:a,auxiliary:o}=t;let i=a.text("normal");return i=r(i,e.model,bg(a)),i&&(i=n(i,e.model).Gerund,e.replace(a,i,Sg),e.not("#Particle").tag("PresentTense")),e.remove(o),e.prepend("will be").match("will be").tag("Auxiliary"),e},Lg={infinitive:Kg,"simple-present":Kg,"simple-past":Kg,"simple-future":mg,"present-progressive":Mg,"past-progressive":Mg,"future-progressive":mg,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":mg,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":mg,"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":mg,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":mg,"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":mg,"modal-past":mg,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Kg(e,t),e.remove("(had|have)")),"want-infinitive":e=>(e.replace("(want|wants|wanted)","will want"),e)};var Jg=function(e,t,n){return e.has("will")||e.has("going to")?e:Lg.hasOwnProperty(n)?((e=Lg[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const Wg={tags:!0};var qg=function(e,t){const{toInfinitive:n,conjugate:r}=e.methods.two.transform.verb,{root:a,auxiliary:o}=t;if(e.has("#Gerund"))return e;let i=a.text("normal");i=n(i,e.model,bg(a));let s=r(i,e.model).Gerund;if(s){let t=fg(e);e.replace(a,s,Wg),e.remove(o),e.prepend(t)}return e.replace("not is","is not"),e.replace("not are","are not"),e.fullSentence().compute(["tagger","chunks"]),e};const Ug={tags:!0},Rg=function(e,t){let n=vg(e);return e.prepend(n+" not"),e},Qg=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)},_g=e=>e.has("(is|was|am|are|will|were|be)"),Zg={"simple-present":(e,t)=>!0===_g(e)?Qg(e):(e=yg(e,t),e=Rg(e)),"simple-past":(e,t)=>!0===_g(e)?Qg(e):((e=yg(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===_g(e)?Qg(e):Rg(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",Ug),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=Rg(e)).replace("wants","want",Ug)};var Xg=function(e,t,n){if(e.has("#Negative"))return e;if(Zg.hasOwnProperty(n))return e=Zg[n](e,t);let r=e.matchOne("be");return r.found?(r.prepend("not"),e):!0===_g(e)?Qg(e):(r=e.matchOne("(will|had|have|has|did|does|do|#Modal)"),r.found?(r.append("not"),e):e)},Yg=function(e){class Verbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Verbs"}parse(e){return this.getNth(e).map(Xd)}json(e,t){let n=this.getNth(t).map((t=>{let n=t.toView().json(e)[0]||{};return n.verb=Cg(t),n}),[]);return n}subjects(e){return this.getNth(e).map((e=>(Xd(e),gg(e).subject)))}adverbs(e){return this.getNth(e).map((e=>e.match("#Adverb")))}isSingular(e){return this.getNth(e).filter((e=>!0!==gg(e).plural))}isPlural(e){return this.getNth(e).filter((e=>!0===gg(e).plural))}isImperative(e){return this.getNth(e).filter((e=>e.has("#Imperative")))}toInfinitive(e){return this.getNth(e).map((e=>{let t=Xd(e),n=cg(e,t);return Ng(e,t,n.form)}))}toPresentTense(e){return this.getNth(e).map((e=>{let t=Xd(e),n=cg(e,t);return n.isInfinitive?e:$g(e,t,n.form)}))}toPastTense(e){return this.getNth(e).map((e=>{let t=Xd(e),n=cg(e,t);return n.isInfinitive?e:Dg(e,t,n.form)}))}toFutureTense(e){return this.getNth(e).map((e=>{let t=Xd(e),n=cg(e,t);return n.isInfinitive?e:Jg(e,t,n.form)}))}toGerund(e){return this.getNth(e).map((e=>{let t=Xd(e),n=cg(e,t);return n.isInfinitive?e:qg(e,t,n.form)}))}toPastParticiple(e){return this.getNth(e).map((e=>{let t=Xd(e),n=cg(e,t);return n.isInfinitive?e:Og(e,t,n.form)}))}conjugate(e){const{conjugate:t,toInfinitive:n}=this.world.methods.two.transform.verb;return this.getNth(e).map((e=>{let r=Xd(e),a=cg(e,r);"imperative"===a.form&&(a.form="simple-present");let o=r.root.text("normal");if(!r.root.has("#Infinitive")){let t=bg(r.root);o=n(o,e.model,t)||o}return t(o,e.model)}),[])}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 this.getNth(e).map((e=>{let t=Xd(e),n=cg(e,t);return Xg(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=qd(this);return t=t.getNth(e),new Verbs(this.document,t.pointer)}},em={api:Yg};const tm=function(e,t){let n=t.match(e);if(n.found){let e=n.pronouns().refersTo();if(e.found)return e}return t.none()},nm=function(e){if(!e.found)return e;let[t]=e.fullPointer[0];return t&&t>0?e.update([[t-1]]):e.none()};var rm=function(e,t){let n=e.people();return n=function(e,t){return"m"===t?e.filter((e=>!e.presumedFemale().found)):"f"===t?e.filter((e=>!e.presumedMale().found)):e}(n,t),n.found?n.last():(n=e.nouns("#Actor"),n.found?n.last():"f"===t?tm("(she|her|hers)",e):"m"===t?tm("(he|him|his)",e):e.none())},am=function(e){let t=e.nouns(),n=t.isPlural().notIf("#Pronoun");if(n.found)return n.last();let r=tm("(they|their|theirs)",e);return r.found?r:(n=t.match("(somebody|nobody|everybody|anybody|someone|noone|everyone|anyone)"),n.found?n.last():e.none())};const om=function(e,t){let n=e.before(),r=t(n);return r.found?r:(n=nm(e),r=t(n),r.found?r:(n=nm(n),r=t(n),r.found?r:e.none()))};var im=function(e){e.pronouns().if("(he|him|his|she|her|hers|they|their|theirs|it|its)").forEach((e=>{let t=null;e.has("(he|him|his)")?t=om(e,(e=>rm(e,"m"))):e.has("(she|her|hers)")?t=om(e,(e=>rm(e,"f"))):e.has("(they|their|theirs)")&&(t=om(e,am)),t&&t.found&&function(e,t){t&&t.found&&(e.docs[0][0].reference=t.ptrs[0])}(e,t)}))},sm=function(e){class Pronouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Pronouns"}hasReference(){return this.compute("coreference"),this.filter((e=>e.docs[0][0].reference))}refersTo(){return this.compute("coreference"),this.map((e=>{if(!e.found)return e.none();let t=e.docs[0][0];return t.reference?e.update([t.reference]):e.none()}))}update(e){let t=new Pronouns(this.document,e);return t._cache=this._cache,t}}e.prototype.pronouns=function(e){let t=this.match("#Pronoun");return t=t.getNth(e),new Pronouns(t.document,t.pointer)}},lm={compute:{coreference:im},api:sm};return v.plugin(Ec),v.plugin(Oc),v.plugin(Rc),v.plugin(lm),v.plugin(dh),v.plugin(yh),v.plugin(Fh),v.plugin(bd),v.plugin(Pd),v.plugin(Gd),v.plugin(Wd),v.plugin(em),v},"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:[]};const t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach((r=>{t.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",e)})):"function"==typeof e?e(this):console.warn("no compute:",e),this}};var n={forEach:function(e){return this.fullPointer.forEach(((t,n)=>{let r=this.update([t]);e(r,n)})),this},map:function(e,t){let n=this.fullPointer.map(((t,n)=>{let r=this.update([t]),a=e(r,n);return void 0===a?this.none():a}));if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach((e=>{r=r.concat(e.fullPointer)})),this.toView(r)},filter:function(e){let t=this.fullPointer;return t=t.filter(((t,n)=>{let r=this.update([t]);return e(r,n)})),this.update(t)},find:function(e){let t=this.fullPointer.find(((t,n)=>{let r=this.update([t]);return e(r,n)}));return this.update([t])},some:function(e){return this.fullPointer.some(((t,n)=>{let r=this.update([t]);return e(r,n)}))},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const r={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach((e=>{t[e]=this.update(this._groups[e])})),t},eq:function(e){let t=this.pointer;return t||(t=this.docs.map(((e,t)=>[t]))),t[e]?this.update([t[e]]):this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map(((e,t)=>[t]));return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map((e=>[e[0]]));return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every(((e,t)=>!!n[t]&&e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2]))},wordCount:function(){return this.docs.reduce(((e,t)=>(e+=t.filter((e=>""!==e.text)).length,e)),0)},isFull:function(){let e=this.pointer;if(!e)return!0;if(0===e.length||0!==e[0][0])return!1;let t=0,n=0;return this.document.forEach((e=>t+=e.length)),this.docs.forEach((e=>n+=e.length)),t===n},getNth:function(e){return"number"==typeof e?this.eq(e):"string"==typeof e?this.if(e):this}};r.group=r.groups,r.fullSentence=r.fullSentences,r.sentence=r.fullSentences,r.lastTerm=r.lastTerms,r.firstTerm=r.firstTerms;const a=Object.assign({},r,t,n);a.get=a.eq;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,r=t||e.map(((e,t)=>[t]));return r.map((e=>{let[t,r,a,o,i]=e;return r=r||0,a=a||(n[t]||[]).length,n[t]&&n[t][r]&&(o=o||n[t][r].id,n[t][a-1]&&(i=i||n[t][a-1].id)),[t,r,a,o,i]}))}update(e){let t=new View(this.document,e);if(this._cache&&e&&e.length>0){let n=[];e.forEach(((e,t)=>{let[r,a,o]=e;(1===e.length||0===a&&this.document[r].length===o)&&(n[t]=this._cache[r])})),n.length>0&&(t._cache=n)}return t.world=this.world,t}toView(e){return new View(this.document,e||this.pointer)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","freeze","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r.compute("unfreeze"),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,a);const o=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};function i(e,t){if(o(t))for(const n in t)o(t[n])?(e[n]||Object.assign(e,{[n]:{}}),i(e[n],t[n])):Object.assign(e,{[n]:t[n]});return e}const s=function(e,t,n,r){const{methods:a,model:o,compute:s,hooks:l}=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&&i(o,e.model),e.irregulars&&function(e,t){let n=e.two.models||{};Object.keys(t).forEach((e=>{t[e].pastTense&&(n.toPast&&(n.toPast.ex[e]=t[e].pastTense),n.fromPast&&(n.fromPast.ex[t[e].pastTense]=e)),t[e].presentTense&&(n.toPresent&&(n.toPresent.ex[e]=t[e].presentTense),n.fromPresent&&(n.fromPresent.ex[t[e].presentTense]=e)),t[e].gerund&&(n.toGerund&&(n.toGerund.ex[e]=t[e].gerund),n.fromGerund&&(n.fromGerund.ex[t[e].gerund]=e)),t[e].comparative&&(n.toComparative&&(n.toComparative.ex[e]=t[e].comparative),n.fromComparative&&(n.fromComparative.ex[t[e].comparative]=e)),t[e].superlative&&(n.toSuperlative&&(n.toSuperlative.ex[e]=t[e].superlative),n.fromSuperlative&&(n.fromSuperlative.ex[t[e].superlative]=e))}))}(o,e.irregulars),e.compute&&Object.assign(s,e.compute),l&&(t.hooks=l.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.frozen&&r.addWords(e.frozen,!0),e.mutate&&e.mutate(t,r)},l=function(e){return"[object Array]"===Object.prototype.toString.call(e)},u=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(l(e)){if(l(e[0])){let n=e.map((e=>e.map((e=>({text:e,normal:e,pre:"",post:" ",tags:new Set})))));return new t(n)}let n=e.map((e=>e.terms.map((e=>(l(e.tags)&&(e.tags=new Set(e.tags)),e)))));return new t(n)}return a};let c=Object.assign({},e);const h=function(e,t){t&&h.addWords(t);let n=u(e,View,c);return e&&n.compute(c.hooks),n};Object.defineProperty(h,"_world",{value:c,writable:!0}),h.tokenize=function(e,t){const{compute:n}=this._world;t&&h.addWords(t);let r=u(e,View,c);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},h.plugin=function(e){return s(e,this._world,View,this),this},h.extend=h.plugin,h.world=function(){return this._world},h.model=function(){return this._world.model},h.methods=function(){return this._world.methods},h.hooks=function(){return this._world.hooks},h.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},h.version="14.14.0";var d={one:{cacheDoc:function(e){let t=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},v=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-โ€“โ€”]/.test(t.post)||(t.post+=" ")},y=(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,"")}},w=function(e,t,n,r){let[a,o,i]=t;0===o||i===r[a].length?v(n):(v(n),v([e[t[1]]])),function(e,t,n){let r=e[t];if(0!==t||!f(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")||f(a.text)&&a.text.length>1&&(a.text=a.text.replace(/^\p{Lu}/u,(e=>e.toLowerCase())))}(e,o,n),b(e,o,n)};let k=0;const P=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e,A=function(e){let[t,n]=e.index||[0,0];k+=1,k=k>46655?0:k,t=t>46655?0:t,n=n>1294?0:n;let r=P(k.toString(36));r+=P(t.toString(36));let a=n.toString(36);return a=a.length<2?"0"+a:a,r+=a,r+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+r.toUpperCase()},C=function(e){e.has("@hasContraction")&&"function"==typeof e.contractions&&e.grow("@hasContraction").contractions().expand()},N=e=>"[object Array]"===Object.prototype.toString.call(e),j=function(e,t,n){const{document:r,world:a}=t;t.uncache();let o=t.fullPointer,i=t.fullPointer;t.forEach(((s,l)=>{let u=s.fullPointer[0],[c]=u,h=r[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]||[]:N(e)?N(e[0])?e[0]:e:[]}(e,a);0!==d.length&&(d=function(e){return e.map((e=>(e.id=A(e),e)))}(d),n?(C(t.update([u]).firstTerm()),w(h,u,d,r)):(C(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);let a=r.docs[0],o=t.possessives&&a[a.length-1].tags.has("Possessive");e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e=e.replace(I,(e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})),e}(e,r);let i=this.update(n);n=n.map((e=>e.slice(0,3)));let s=(i.docs[0]||[]).map((e=>Array.from(e.tags)));if("string"==typeof e&&(e=this.fromText(e).compute("id")),r.insertAfter(e),i.has("@hasContraction")&&r.contractions&&r.grow("@hasContraction+").contractions().expand(),r.delete(i),o){let e=r.docs[0],t=e[e.length-1];t.tags.has("Possessive")||(t.text+="'s",t.normal+="'s",t.tags.add("Possessive"))}let l=r.toView(n).compute(["index","freeze","lexicon"]);return l.world.compute.preTagger&&l.compute("preTagger"),l.compute("unfreeze"),t.tags&&l.terms().forEach(((e,t)=>{e.tagSafe(s[t])})),t.case&&l.docs[0]&&l.docs[0][0]&&0===l.docs[0][0].index[1]&&(l.docs[0][0].text=l.docs[0][0].text.replace(/\w\S*/g,(e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase()))),l},replace:function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let r=this.match(e);return r.found?(this.soften(),r.replaceWith(t,n)):this}},D={remove:function(e){const{indexN:t}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;e&&(n=this,r=this.match(e));let a=!n.ptrs;r.has("@hasContraction")&&r.contractions&&r.grow("@hasContraction").contractions().expand();let o=n.fullPointer,i=r.fullPointer.reverse(),s=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}(this.document,i);return o=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})),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)))}(o,t(i)),n.ptrs=o,n.document=s,n.compute("index"),a&&(n.ptrs=void 0),e?n.toView(o):(this.ptrs=[],n.none())}};D.delete=D.remove;const H={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}};H.deHyphenate=H.dehyphenate,H.toQuotation=H.toQuotations;var E={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 G=new Set(["index","sequence","seq","sequential","chron","chronological"]),O=new Set(["freq","frequency","topk","repeats"]),F=new Set(["alpha","alphabetical"]);var V={unique:function(){let e=new Set,t=this.filter((t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)}));return t},reverse:function(){let e=this.pointer||this.docs.map(((e,t)=>[t]));return e=[].concat(e),e=e.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if(this.uncache(),"function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort(((n,r)=>(n=e.update([n]),r=e.update([r]),t(n,r)))),e.ptrs=n,e}(this,e);e=e||"alpha";let r=n||t.map(((e,t)=>[t])),a=t.map(((e,t)=>({index:t,words:e.length,normal:e.map((e=>e.machine||e.normal||"")).join(" "),pointer:r[t]})));return G.has(e)&&(e="sequential"),F.has(e)&&(e="alpha"),O.has(e)?(a=E.byFreq(a),this.update(a.map((e=>e.pointer)))):"function"==typeof E[e]?(a=a.sort(E[e]),this.update(a.map((e=>e.pointer)))):this}};const z=function(e,t){if(e.length>0){let t=e[e.length-1],n=t[t.length-1];!1===/ /.test(n.post)&&(n.post+=" ")}return e=e.concat(t)};var B={concat:function(e){if("string"==typeof e){let t=this.fromText(e);if(this.found&&this.ptrs){let e=this.fullPointer,n=e[e.length-1][0];this.document.splice(n,0,...t.document)}else this.document=this.document.concat(t.document);return this.all().compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach((t=>{t[0]+=e.document.length})),e.document=z(e.document,t.docs),e.all()}(this,e);if(t=e,"[object Array]"===Object.prototype.toString.call(t)){let t=z(this.document,e);return this.document=t,this.all()}var t;return this}},S={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 $=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}},x,T,D,H,V,B,S),M={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))),n[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))},q=/'/,U=new Set(["what","how","when","where","why"]),R=new Set(["be","go","start","think","need"]),Q=new Set(["been","gone"]),Z=/'/,_=/(e|รฉ|aison|sion|tion)$/,X=/(age|isme|acle|ege|oire)$/;var Y=(e,t)=>["je",e[t].normal.split(Z)[1]],ee=(e,t)=>{let n=e[t].normal.split(Z)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},te=(e,t)=>{let n=e[t].normal.split(Z)[1];return n&&_.test(n)&&!X.test(n)?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const ne=/^([0-9.]{1,4}[a-z]{0,2}) ?[-โ€“โ€”] ?([0-9]{1,4}[a-z]{0,2})$/i,re=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-โ€“โ€”] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,ae=/^[0-9]{3}-[0-9]{4}$/,oe=function(e,t){let n=e[t],r=n.text.match(ne);return null!==r?!0===n.tags.has("PhoneNumber")||ae.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(re),null!==r?[r[1],"to",r[4]]:null)},ie=/^([+-]?[0-9][.,0-9]*)([a-zยฐยฒยณยต/]+)$/,se=function(e,t,n){const r=n.model.one.numberSuffixes||{};let a=e[t].text.match(ie);if(null!==a){let e=a[2].toLowerCase().trim();return r.hasOwnProperty(e)?null:[a[1],e]}return null},le=/'/,ue=/^[0-9][^-โ€“โ€”]*[-โ€“โ€”].*?[0-9]/,ce=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]]},he={t:(e,t)=>function(e,t){return"ain't"===e[t].normal||"aint"===e[t].normal?null:[e[t].normal.replace(/n't/,""),"not"]}(e,t),d:(e,t)=>function(e,t){let n=e[t].normal.split(q)[0];if(U.has(n))return[n,"did"];if(e[t+1]){if(Q.has(e[t+1].normal))return[n,"had"];if(R.has(e[t+1].normal))return[n,"would"]}return null}(e,t)},de={j:(e,t)=>Y(e,t),l:(e,t)=>ee(e,t),d:(e,t)=>te(e,t)},ge=function(e,t,n,r){for(let a=0;a2)return o.out.concat(r)}return null},me=function(e,t){let n=t.fromText(e.join(" "));return n.compute(["id","alias"]),n.docs[0]},pe=function(e,t){for(let n=t+1;n<5&&e[n];n+=1)if("been"===e[n].normal)return["there","has"];return["there","is"]};var fe={contractions:e=>{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;if(!0===le.test(r[s].normal)){let e=r[s].normal.split(le);l=e[0],u=e[1]}let c=ge(o,r[s],l,u);!c&&he.hasOwnProperty(u)&&(c=he[u](r,s,t)),!c&&de.hasOwnProperty(l)&&(c=de[l](r,s)),"there"===l&&"s"===u&&(c=pe(r,s)),c?(c=me(c,e),W(n,[i,s],c),ce(n[i],e,s,c.length)):ue.test(r[s].normal)?(c=oe(r,s),c&&(c=me(c,e),W(n,[i,s],c),a.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&a.one.setTag([c[0]],"Time",t,null,"time-range"),ce(n[i],e,s,c.length))):(c=se(r,s,t),c&&(c=me(c,e),W(n,[i,s],c),a.one.setTag([c[1]],"Unit",t,null,"contraction-unit")))}}))}};const be={model:J,compute:fe,hooks:["contractions"]},ve=function(e){const t=e.world,{model:n,methods:r}=e.world,a=r.one.setTag,{frozenLex:o}=n.one,i=n.one._multiCache||{};e.docs.forEach((e=>{for(let n=0;nn;r-=1){let i=e.slice(n,r+1),s=i.map((e=>e.machine||e.normal)).join(" ");!0!==o.hasOwnProperty(s)||(a(i,o[s],t,!1,"1-frozen-multi-lexicon"),i.forEach((e=>e.frozen=!0)))}void 0!==o[s]&&o.hasOwnProperty(s)&&(a([r],o[s],t,!1,"1-freeze-lexicon"),r.frozen=!0)}}))},ye=e=>""+e+"",we=e=>""+e+"",ke=function(e){e.docs.forEach((e=>{console.log(ye("\n โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€")),e.forEach((e=>{let t=` ${we("โ”‚")} `,n=e.implicit||e.text||"-";!0===e.frozen?t+=`${ye(n)} โ„๏ธ`:t+=we(n),console.log(t)}))}))};var Pe={compute:{frozen:ve,freeze:ve,unfreeze:function(e){return e.docs.forEach((e=>{e.forEach((e=>{delete e.frozen}))})),e}},mutate:e=>{const t=e.methods.one;t.termMethods.isFrozen=e=>!0===e.frozen,t.debug.freeze=ke,t.debug.frozen=ke},api:function(e){e.prototype.freeze=function(){return this.docs.forEach((e=>{e.forEach((e=>{e.frozen=!0}))})),this},e.prototype.unfreeze=function(){this.compute("unfreeze")},e.prototype.isFrozen=function(){return this.match("@isFrozen+")}},hooks:["freeze"]};const Ae=function(e,t,n){const{model:r,methods:a}=n,o=a.one.setTag,i=r.one._multiCache||{},{lexicon:s}=r.one||{};let l=e[t],u=l.machine||l.normal;if(void 0!==i[u]&&e[t+1]){for(let r=t+i[u]-1;r>t;r-=1){let a=e.slice(t,r+1);if(a.length<=1)return!1;let i=a.map((e=>e.machine||e.normal)).join(" ");if(!0===s.hasOwnProperty(i)){let e=s[i];return o(a,e,n,!1,"1-multi-lexicon"),!e||2!==e.length||"PhrasalVerb"!==e[0]&&"PhrasalVerb"!==e[1]||o([a[1]],"Particle",n,!1,"1-phrasal-particle"),!0}}return!1}return null},Ce=/^(under|over|mis|re|un|dis|semi|pre|post)-?/,Ne=new Set(["Verb","Infinitive","PastTense","Gerund","PresentTense","Adjective","Participle"]),je=function(e,t,n){const{model:r,methods:a}=n,o=a.one.setTag,{lexicon:i}=r.one;let s=e[t],l=s.machine||s.normal;if(void 0!==i[l]&&i.hasOwnProperty(l))return o([s],i[l],n,!1,"1-lexicon"),!0;if(s.alias){let e=s.alias.find((e=>i.hasOwnProperty(e)));if(e)return o([s],i[e],n,!1,"1-lexicon-alias"),!0}if(!0===Ce.test(l)){let e=l.replace(Ce,"");if(i.hasOwnProperty(e)&&e.length>3&&Ne.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null};var xe={lexicon:function(e){const t=e.world;e.docs.forEach((e=>{for(let n=0;n{let a=e[r],o=(r=(r=r.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);o.length>1&&(void 0===n[o[0]]||o.length>n[o[0]])&&(n[o[0]]=o.length),t[r]=t[r]||a})),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}}}},Te={addWords:function(e,t=!1){const n=this.world(),{methods:r,model:a}=n;if(!e)return;if(Object.keys(e).forEach((t=>{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))})),!0===t){let{lex:t,_multi:o}=r.one.expandLexicon(e,n);return Object.assign(a.one._multiCache,o),void Object.assign(a.one.frozenLex,t)}if(r.two.expandLexicon){let{lex:t,_multi:o}=r.two.expandLexicon(e,n);Object.assign(a.one.lexicon,t),Object.assign(a.one._multiCache,o)}let{lex:o,_multi:i}=r.one.expandLexicon(e,n);Object.assign(a.one.lexicon,o),Object.assign(a.one._multiCache,i)}},De={model:{one:{lexicon:{},_multiCache:{},frozenLex:{}}},methods:Ie,compute:xe,lib:Te,hooks:["lexicon"]};const He=function(e,t){let n=[{}],r=[null],a=[0],o=[],i=0;e.forEach((function(e){let a=0,o=function(e,t){const{methods:n,model:r}=t;let a=n.one.tokenize.splitTerms(e,r).map((e=>n.one.tokenize.splitWhitespace(e,r)));return a.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}},Ee=function(e,t,n){let r=0,a=[];for(let o=0;o0&&(void 0===t.goNext[r]||!t.goNext[r].hasOwnProperty(i));)r=t.failTo[r]||0;if(t.goNext[r].hasOwnProperty(i)&&(r=t.goNext[r][i],t.endAs[r])){let n=t.endAs[r];for(let t=0;t{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1);return e},Fe={buildTrie:function(e){return function(e){return e.goNext=e.goNext.map((e=>{if(0!==Object.keys(e).length)return e})),e.goNext=Oe(e.goNext,void 0),e.failTo=Oe(e.failTo,0),e.endAs=Oe(e.endAs,null),e}(He(e,this.world()))}};Fe.compile=Fe.buildTrie;var Ve={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();var n;"string"==typeof e&&(e=[e]);let r=function(e,t,n){let r=[];n.form=n.form||"normal";let a=e.docs;if(!t.goNext||!t.goNext[0])return console.error("Compromise invalid lookup trie"),e.none();let o=Object.keys(t.goNext[0]);for(let i=0;i0&&(r=r.concat(l))}return e.update(r)}(this,(n=e,"[object Object]"===Object.prototype.toString.call(n)?e:He(e,this.world)),t);return r=r.settle(),r}},lib:Fe};const ze=function(e,t){return t?(e.forEach((e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])})),e):e},Be=function(e,t){let{ptrs:n,byGroup:r}=e;return n=ze(n,t),Object.keys(r).forEach((e=>{r[e]=ze(r[e],t)})),{ptrs:n,byGroup:r}},Se=function(e,t,n){const r=n.methods.one;return"number"==typeof e&&(e=String(e)),"string"==typeof e&&(e=r.killUnicode(e,n),e=r.parseMatch(e,t,n)),e},$e=e=>"[object Object]"===Object.prototype.toString.call(e),Me=e=>e&&$e(e)&&!0===e.isView,Ke=e=>e&&$e(e)&&!0===e.isNet;var Le={matchOne:function(e,t,n){const r=this.methods.one;if(Me(e))return this.intersection(e).eq(0);if(Ke(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;let a={regs:e=Se(e,n,this.world),group:t,justOne:!0},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Be(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const r=this.methods.one;if(Me(e))return this.intersection(e);if(Ke(e))return this.sweep(e,{tagger:!1}).view.settle();let a={regs:e=Se(e,n,this.world),group:t},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Be(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const r=this.methods.one;if(Me(e))return this.intersection(e).fullPointer.length>0;if(Ke(e))return this.sweep(e,{tagger:!1}).view.found;let a={regs:e=Se(e,n,this.world),group:t,justOne:!0};return r.match(this.docs,a,this._cache).ptrs.length>0},if:function(e,t,n){const r=this.methods.one;if(Me(e))return this.filter((t=>t.intersection(e).found));if(Ke(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}let a={regs:e=Se(e,n,this.world),group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter(((e,t)=>{let n=this.update([e]);return r.match(n.docs,a,i[t]).ptrs.length>0}));let s=this.update(o);return this._cache&&(s._cache=o.map((e=>i[e[0]]))),s},ifNo:function(e,t,n){const{methods:r}=this,a=r.one;if(Me(e))return this.filter((t=>!t.intersection(e).found));if(Ke(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}e=Se(e,n,this.world);let o=this._cache||[],i=this.filter(((n,r)=>{let i={regs:e,group:t,justOne:!0};return 0===a.match(n.docs,i,o[r]).ptrs.length}));return this._cache&&(i._cache=i.ptrs.map((e=>o[e[0]]))),i}},Je={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 We=function(e,t){return[e[0],e[1],t[2]]},qe=(e,t,n)=>{return"string"==typeof e||(r=e,"[object Array]"===Object.prototype.toString.call(r))?t.match(e,n):e||t.none();var r},Ue=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},Re={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=qe(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>Ue(e,this))),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=qe(e,this,t).fullPointer,a=n(this.fullPointer,r);for(let e=0;e{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(We(e.match,e.after)):o.push(e.match)})),o=o.filter((e=>e)),o=o.map((e=>Ue(e,this))),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=qe(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),e.before&&e.match?o.push(We(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=>Ue(e,this))),this.update(o)}};Re.split=Re.splitAfter;const Qe=function(e,t){return!(!e||!t)&&e[0]===t[0]&&e[2]===t[1]},Ze=function(e,t,n){const r=e.world,a=r.methods.one.parseMatch;n=n||"^.";let o=a(t=t||".$",{},r),i=a(n,{},r);o[o.length-1].end=!0,i[0].start=!0;let s=e.fullPointer,l=[s[0]];for(let t=1;t)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,et=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,tt=/ /g,nt=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),rt=function(e){return e=(e=e.map((e=>e.trim()))).filter((e=>e))},at=/\{([0-9]+)?(, *[0-9]*)?\}/,ot=/&&/,it=new RegExp(/^<\s*(\S+)\s*>/),st=e=>e.charAt(0).toUpperCase()+e.substring(1),lt=e=>e.charAt(e.length-1),ut=e=>e.charAt(0),ct=e=>e.substring(1),ht=e=>e.substring(0,e.length-1),dt=function(e){return e=ct(e),e=ht(e)},gt=function(e,t){let n={};for(let r=0;r<2;r+=1){if("$"===lt(e)&&(n.end=!0,e=ht(e)),"^"===ut(e)&&(n.start=!0,e=ct(e)),"?"===lt(e)&&(n.optional=!0,e=ht(e)),("["===ut(e)||"]"===lt(e))&&(n.group=null,"["===ut(e)&&(n.groupStart=!0),"]"===lt(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===ut(e))){const t=it.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===lt(e)&&(n.greedy=!0,e=ht(e)),"*"!==e&&"*"===lt(e)&&"\\*"!==e&&(n.greedy=!0,e=ht(e)),"!"===ut(e)&&(n.negative=!0,e=ct(e)),"~"===ut(e)&&"~"===lt(e)&&e.length>2&&(e=dt(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("/"===ut(e)&&"/"===lt(e))return e=dt(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if(!0===at.test(e)&&(e=e.replace(at,((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),"")))),"("===ut(e)&&")"===lt(e)){ot.test(e)?(n.choices=e.split(ot),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=ct(n.choices[0]);let r=n.choices.length-1;n.choices[r]=ht(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=>gt(e,t))))),e=""}if("{"===ut(e)&&"}"===lt(e)){if(e=dt(e),n.root=e,/\//.test(e)){let e=n.root.split(/\//);n.root=e[0],n.pos=e[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==e[2]&&(n.sense=e[2])}return n}if("<"===ut(e)&&">"===lt(e))return e=dt(e),n.chunk=st(e),n.greedy=!0,n;if("%"===ut(e)&&"%"===lt(e))return e=dt(e),n.switch=e,n}return"#"===ut(e)?(n.tag=ct(e),n.tag=st(n.tag),n):"@"===ut(e)?(n.method=ct(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)},mt=/[a-z0-9][-โ€“โ€”][a-z]/i,pt=function(e,t){let{all:n}=t.methods.two.transform.verb||{},r=e.root;return n?n(r,t.model):[]},ft=function(e,t){let{all:n}=t.methods.two.transform.noun||{};return n?n(e.root,t.model):[e.root]},bt=function(e,t){let{all:n}=t.methods.two.transform.adjective||{};return n?n(e.root,t.model):[e.root]},vt=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}))),e},yt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1},wt=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),xt={hasQuote:e=>Pt.test(e.pre)||At.test(e.post),hasComma:e=>jt(e,","),hasPeriod:e=>!0===jt(e,".")&&!1===jt(e,"..."),hasExclamation:e=>jt(e,"!"),hasQuestionMark:e=>jt(e,"?")||jt(e,"ยฟ"),hasEllipses:e=>jt(e,"..")||jt(e,"โ€ฆ"),hasSemicolon:e=>jt(e,";"),hasColon:e=>jt(e,":"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>Ct.test(e.post)||Ct.test(e.pre),hasDash:e=>Nt.test(e.post)||Nt.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};xt.hasQuotation=xt.hasQuote;let It=function(){};It=function(e,t,n,r){let a=function(e,t,n,r){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==r-1)return!1;if(void 0!==t.id&&t.id===e.id)return!0;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(kt(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some((e=>e===t.word)))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof xt[t.method]&&!0===xt[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}if(void 0!==t.chunk)return e.chunk===t.chunk;if(void 0!==t.switch)return e.switch===t.switch;if(void 0!==t.machine)return e.normal===t.machine||e.machine===t.machine||e.root===t.machine;if(void 0!==t.sense)return e.sense===t.sense;if(void 0!==t.fastOr){if(t.pos&&!e.tags.has(t.pos))return null;let n=e.root||e.implicit||e.machine||e.normal;return t.fastOr.has(n)||t.fastOr.has(e.text)}return void 0!==t.choices&&("and"===t.operator?t.choices.every((t=>It(e,t,n,r))):t.choices.some((t=>It(e,t,n,r))))}(e,t,n,r);return!0===t.negative?!a:a};const Tt=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max?(e.t=e.t+n.max,!0):(!0===e.hasGroup&&(Dt(e,e.t).length=r-e.t),e.t=r,!0)},Et=function(e,t=0){let n=e.regs[e.r],r=!1;for(let o=0;o{let a=0,o=e.t+r+t+a;if(void 0===e.terms[o])return!1;let i=It(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let r=n.every(((t,n)=>{let r=e.t+n;return void 0!==e.terms[r]&&It(e.terms[r],t,r,e.phrase_length)}));return!0===r&&n.length>t&&(t=n.length),r}))&&t}(e);if(r){if(!0===n.negative)return null;if(!0===e.hasGroup&&(Dt(e,e.t).length+=r),!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=r,!0}return!!n.optional||null},Ft=function(e){const{regs:t}=e;let n=t[e.r],r=Object.assign({},n);if(r.negative=!1,It(e.terms[e.t],r,e.start_i+e.t,e.phrase_length))return!1;if(n.optional){let n=t[e.r+1];n&&(It(e.terms[e.t],n,e.start_i+e.t,e.phrase_length)?e.r+=1:n.optional&&t[e.r+2]&&It(e.terms[e.t],t[e.r+2],e.start_i+e.t,e.phrase_length)&&(e.r+=2))}return n.greedy?function(e,t,n){let r=0;for(let a=e.t;ar||(e.t+=r,0))}(e,r,t[e.r+1]):(e.t+=1,!0)},Vt=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},zt=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]&&function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=It(r,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||a){let n=e.terms[e.t+1];n&&It(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}}(e),r.implicit&&e.terms[e.t+1]&&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)}}(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy?null:!0!==n.greedy||Vt(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=Dt(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0):null)},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!==Tt(e,a)){if(e.negative){if(!Ft(a))return null}else if(!0!==It(a.terms[a.t],e,a.start_i+a.t,a.phrase_length)){if(!0!==e.optional)return null}else if(!zt(a))return null}else if(!zt(a))return null}else{if(e.negative&&e.anything)return null;if(!zt(a))return null}else if(!Ot(a))return null}else if(!Gt(a))return null}else if(!Ht(a))return null}let o=[null,n,a.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(a.groups).forEach((e=>{let t=a.groups[e],r=n+t.start;i[e]=[null,r,r+t.length]})),{pointer:o,groups:i}},St=function(e,t){return e.pointer[0]=t,Object.keys(e.groups).forEach((n=>{e.groups[n][0]=t})),e},$t=function(e,t,n){let r=Bt(e,t,0,e.length);return r?(r=St(r,n),r):null},Mt={one:{termMethods:xt,parseMatch:function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let r=function(e){let t=e.split(Ye),n=[];t.forEach((e=>{nt(e)?n.push(e):n=n.concat(e.split(et))})),n=rt(n);let r=[];return n.forEach((e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||nt(e)?r.push(e):r=r.concat(e.split(tt))})),r=rt(r),r}(e);return r=r.map((e=>gt(e,t))),r=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&&mt.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}(r,n),r=function(e,t){return e.map((e=>{if(e.root)if(t.methods.two&&t.methods.two.transform){let n=[];e.pos?"Verb"===e.pos?n=n.concat(pt(e,t)):"Noun"===e.pos?n=n.concat(ft(e,t)):"Adjective"===e.pos&&(n=n.concat(bt(e,t))):(n=n.concat(pt(e,t)),n=n.concat(ft(e,t)),n=n.concat(bt(e,t))),n=n.filter((e=>e)),n.length>0&&(e.operator="or",e.fastOr=new Set(n))}else e.machine=e.root,delete e.id,delete e.root;return e}))}(r,n),r=vt(r),r},match:function(e,t,n){n=n||[];let{regs:r,group:a,justOne:o}=t,i=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const s=r.filter((e=>!0!==e.optional&&!0!==e.negative)).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=$t(a,r,t);e&&i.push(e)}}return!0===r[r.length-1].end&&(i=i.filter((t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]}))),t.notIf&&(i=function(e,t,n){return e=e.filter((e=>{let[r,a,o]=e.pointer,i=n[r].slice(a,o);for(let e=0;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}}(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}}};var Kt={api:function(e){Object.assign(e.prototype,Xe)},methods:Mt,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 Lt=/^\../,Jt=/^#./,Wt=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,"'"),Lt.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 qt={html:function(e){let{starts:t,ends:n}=Wt(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(Rt,""),Zt.test(a)&&(a=" "),a=a.replace(Qt,""),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(Rt,""),a="-"===a?" ":a.replace(Ut,""));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&&_t.test(a)||(a+=" "),r+=n+o+a})),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},Yt={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{keepSpace:!1,whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{keepSpace:!1,whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};Yt.clean=Yt.normal,Yt.reduced=Yt.root;let en=[],tn=0;for(;tn<64;)en[tn]=0|4294967296*Math.sin(++tn%Math.PI);const nn=function(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(tn=i=0;tn>4]+en[i]+~~o[tn|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},rn={text:!0,terms:!0};let an={case:"none",unicode:"some",form:"machine",punctuation:"some"};const on=function(e,t){return Object.assign({},e,t)},sn={text:e=>Xt(e,{keepPunct:!0},!1),normal:e=>Xt(e,on(Yt.normal,{keepPunct:!0}),!1),implicit:e=>Xt(e,on(Yt.implicit,{keepPunct:!0}),!1),machine:e=>Xt(e,an,!1),root:e=>Xt(e,on(an,{form:"root"}),!1),hash:e=>nn(Xt(e,{keepPunct:!0},!1)),offset:e=>{let t=sn.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map((e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t})),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some((e=>!0===e.dirty))};sn.sentences=sn.sentence,sn.clean=sn.normal,sn.reduced=sn.root;const ln={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},rn,r)).offset&&n.compute("offset"),n.docs.map(((e,t)=>{let a={};return Object.keys(r).forEach((o=>{r[o]&&sn[o]&&(a[o]=sn[o](e,n,t))})),a})));var n,r;return"number"==typeof e?t[e]:t}};ln.data=ln.json;const un=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n},cn=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()));return e.filter((e=>e))}if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};e.forEach((e=>{t[e]=t[e]||0,t[e]+=1}));let n=Object.keys(t).map((e=>({normal:e,count:t[e]})));return n.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.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()},wrap:function(e){return cn(this,e)}};var dn={text:function(e){let t={};var n;if(e&&"string"==typeof e&&Yt.hasOwnProperty(e)?t=Object.assign({},Yt[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e)),void 0!==t.keepSpace||this.isFull()||(t.keepSpace=!1),void 0===t.keepEndPunct&&this.pointer){let e=this.pointer[0];e&&e[1]?t.keepEndPunct=!1:t.keepEndPunct=!0}return void 0===t.keepPunct&&(t.keepPunct=!0),void 0===t.keepSpace&&(t.keepSpace=!0),function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let r=0;r""+e+mn,red:e=>""+e+mn,blue:e=>""+e+mn,magenta:e=>""+e+mn,cyan:e=>""+e+mn,yellow:e=>""+e+mn,black:e=>""+e+mn,dim:e=>""+e+mn,i:e=>""+e+mn},fn={tags:function(e){let{docs:t,model:n}=e;0===t.length&&console.log(pn.blue("\n โ”€โ”€โ”€โ”€โ”€โ”€")),t.forEach((t=>{console.log(pn.blue("\n โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€")),t.forEach((t=>{let r=[...t.tags||[]],a=t.text||"-";t.sense&&(a=`{${t.normal}/${t.sense}}`),t.implicit&&(a="["+t.implicit+"]"),a=pn.yellow(a);let o="'"+a+"'";if(t.reference){let n=e.update([t.reference]).text("normal");o+=` - ${pn.dim(pn.i("["+n+"]"))}`}o=o.padEnd(18);let i=pn.blue(" โ”‚ ")+pn.i(o)+" - "+function(e,t){return t.one.tagSet&&(e=e.map((e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return pn[n](e)}))),e.join(", ")}(r,n);console.log(i)}))})),console.log("\n")},clientSide: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()}))},chunks:function(e){let{docs:t}=e;console.log(""),t.forEach((e=>{let t=[];e.forEach((e=>{"Noun"===e.chunk?t.push(pn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(pn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(pn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(pn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)})),console.log(t.join(" "),"\n")})),console.log("\n")},highlight:function(e){if(!e.found)return;let t={};e.fullPointer.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),Object.keys(t).forEach((n=>{let r=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach(((e,t)=>{r=function(e,t,n){let r=((e,t,n)=>{let r=9*n,a=t.start+r,o=a+t.length;return[e.substring(0,a),e.substring(a,o),e.substring(o,e.length)]})(e,t,n);return`${r[0]}${pn.blue(r[1])}${r[2]}`}(r,e.offset,t)})),console.log(r)})),console.log("\n")}};var bn={api:function(e){Object.assign(e.prototype,gn)},methods:{one:{hash:nn,debug:fn}}};const vn=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},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<20;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}}};const 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=>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);a.push(o)})),a=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)})),n},Cn=(e,t)=>{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}))},jn={union:function(e){e=Cn(e,this);let t=Pn(this.fullPointer,e.fullPointer);return t=Nn(t,this.document),this.toView(t)}};jn.and=jn.union,jn.intersection=function(e){e=Cn(e,this);let t=function(e,t){let n=yn(t),r=[];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{e=Pn(e,[t])})),e=Nn(e,this.document),this.update(e)};var xn={methods:kn,api:function(e){Object.assign(e.prototype,jn)}};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},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.notIf&&(e.notIf=n(e.notIf,{},t)),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};var Dn={buildNet:function(e,t){e=Tn(e,t);let n={};e.forEach((e=>{e.needs.forEach((t=>{n[t]=Array.isArray(n[t])?n[t]:[],n[t].push(e)})),e.wants.forEach((t=>{n[t]=Array.isArray(n[t])?n[t]:[],n[t].push(e)}))})),Object.keys(n).forEach((e=>{let t={};n[e]=n[e].filter((e=>"boolean"!=typeof 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=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=>"boolean"!=typeof o[e.match]&&(o[e.match]=!0,!0))),a}))}(a,t.hooks);o=function(e,t){return e.map(((e,n)=>{let r=t[n];return(e=(e=e.filter((e=>e.needs.every((e=>r.has(e)))))).filter((e=>void 0===e.ifNo||!0!==e.ifNo.some((e=>r.has(e)))))).filter((e=>0===e.wants.length||e.wants.filter((e=>r.has(e))).length>=e.minWant))}))}(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=e.filter((e=>r>=e.minWords)),e}))}(o,e);let i=function(e,t,n,r,a){let o=[];for(let n=0;n0&&(l.ptrs.forEach((e=>{e[0]=n;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),o.push(t)})),!0===a.matchOne))return[o[0]]}return o}(o,e,0,n,r);return i},bulkTagger:function(e,t,n){const{model:r,methods:a}=n,{getDoc:o,setTag:i,unTag:s}=a.one,l=a.two.looksPlural;return 0===e.length?e:(("undefined"!=typeof process&&process.env?process.env:self.env||{}).DEBUG_TAGS&&console.log(`\n\n โ†’ ${e.length} post-tagger:`),e.map((e=>{if(!e.tag&&!e.chunk&&!e.unTag)return;let a=e.reason||e.match,u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===function(e,t,n){let r=n.one.tagSet;if(!r.hasOwnProperty(t))return!0;let a=r[t].not||[];for(let t=0;te.frozen=!0))}void 0!==e.unTag&&s(u,e.unTag,n,e.safe,a),e.chunk&&u.forEach((t=>t.chunk=e.chunk))})))}},Hn={lib:{buildNet:function(e){let t=this.methods().one.buildNet(e,this.world());return t.isNet=!0,t}},api:function(e){e.prototype.sweep=function(e,t={}){const{world:n,docs:r}=this,{methods:a}=n;let o=a.one.bulkMatch(r,e,this.methods,t);!1!==t.tagger&&a.one.bulkTagger(o,r,this.world),o=o.map((e=>{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:Dn}};const En=/ /,Gn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},On=function(e,t,n,r){if(!0===e.tags.has(t))return null;if("."===t)return null;!0===e.frozen&&(r=!0);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("string"==typeof t)if(t=t.trim(),En.test(t))!function(e,t,n,r){let a=t.split(En);e.forEach(((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),On(e,o,n,r))}))}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nFn(e,t,n,r)))},Vn=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},zn=/^ *(#|\/\/)/,Bn=function(e){let t=e.trim().split(/->/),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=>Vn({id:e}))),t}return[Vn({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),Mn=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()||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:Bn(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=Vn({});return e.forEach((e=>{if((e=Vn(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):(Sn(t=e).forEach(Vn),t);var t},Ln=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("โ†’ "));let r="";return Sn(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},Jn=function(e){let t=Sn(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},Wn={text:Ln,txt:Ln,array:Jn,flat:Jn},qn=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Ln(e,!0)),null):Wn.hasOwnProperty(t)?Wn[t](e):e},Un=e=>{Sn(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))}))},Rn=/\//;let Qn=class g{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=Mn(e),!Rn.test(e)){let t=this.json.children.find((t=>t.id===e));return new g(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)||Vn({});return new g(t)}add(e,t={}){if($n(e))return e.forEach((e=>this.add(Mn(e),t))),this;e=Mn(e);let n=Vn({id:e,props:t});return this.json.children.push(n),new g(n)}remove(e){return e=Mn(e),this.json.children=this.json.children.filter((t=>t.id!==e)),this}nodes(){return Sn(this.json).map((e=>(delete(e=Object.assign({},e)).children,e)))}cache(){return(e=>{let t=Sn(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 Sn(this.json)}fillDown(){var e;return e=this.json,Sn(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(){Un(this.json);let e=Sn(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 Un(this.json),qn(this.json,e)}debug(){return Un(this.json),qn(this.json,"debug"),this}};const Zn=function(e){let t=Kn(e);return new Qn(t)};Zn.prototype.plugin=function(e){e(this)};const _n={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Hyphenated:"cyan",Adverb:"cyan"},Xn=function(e){if(_n.hasOwnProperty(e.id))return _n[e.id];if(_n.hasOwnProperty(e.is))return _n[e.is];let t=e._cache.parents.find((e=>_n[e]));return _n[t]},Yn=function(e){return e?"string"==typeof e?[e]:e:[]},er=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=Yn(e[t].children),e[t].not=Yn(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 tr={one:{setTag:Fn,unTag:function(e,t,n){t=t.trim().replace(/^#/,"");for(let r=0;r0)for(let e=0;e0&&(e=function(e){return Object.keys(e).forEach((t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0})),e}(e)),e=er(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 Zn(t).cache().fillDown().out("array")}(Object.assign({},t,e)),r=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:Xn(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}(n);return r},canBe:function(e,t,n){if(!n.hasOwnProperty(t))return!0;let r=n[t].not||[];for(let t=0;ta.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 nr(e)?e.forEach((e=>r.one.unTag(n,e,i))):r.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){e=e.replace(/^#/,"");let t=this.model.one.tagSet,n=this.methods.one.canBe,r=[];this.document.forEach(((a,o)=>{a.forEach(((a,i)=>{n(a,e,t)||r.push([o,i,i+1])}))}));let a=this.update(r);return this.difference(a)}};var ar={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 or=new Set(["Auxiliary","Possessive"]);var ir={model:{one:{tagSet:{}}},compute:{tagRank:function(e){const{document:t,world:n}=e,r=n.model.one.tagSet;t.forEach((e=>{e.forEach((e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e=e.sort(((e,n)=>{if(or.has(e)||!t.hasOwnProperty(n))return 1;if(or.has(n)||!t.hasOwnProperty(e))return-1;let r=t[e].children||[],a=r.length;return r=t[n].children||[],a-r.length})),e}(t,r)}))}))}},methods:tr,api:function(e){Object.assign(e.prototype,rr)},lib:ar};const sr=/([.!?\u203D\u2E18\u203C\u2047-\u2049\u3002]+\s)/g,lr=/^[.!?\u203D\u2E18\u203C\u2047-\u2049\u3002]+\s$/,ur=/((?:\r?\n|\r)+)/,cr=/[a-z0-9\u00C0-\u00FF\u00a9\u00ae\u2000-\u3300\ud000-\udfff]/i,hr=/\S/,dr={'"':'"',"๏ผ‚":"๏ผ‚","โ€œ":"โ€","โ€Ÿ":"โ€","โ€ž":"โ€","โน‚":"โ€","โ€š":"โ€™","ยซ":"ยป","โ€น":"โ€บ","โ€ต":"โ€ฒ","โ€ถ":"โ€ณ","โ€ท":"โ€ด","ใ€":"ใ€ž","ใ€Ÿ":"ใ€ž"},gr=RegExp("["+Object.keys(dr).join("")+"]","g"),mr=RegExp("["+Object.values(dr).join("")+"]","g"),pr=function(e){if(!e)return!1;let t=e.match(mr);return null!==t&&1===t.length},fr=/\(/g,br=/\)/g,vr=/\S/,yr=/^\s+/,wr=function(e,t){let n=e.split(/[-โ€“โ€”]/);if(n.length<=1)return!1;const{prefixes:r,suffixes:a}=t.one;return(1!==n[0].length||!/[a-z]/i.test(n[0]))&&(!r.hasOwnProperty(n[0])&&(n[1]=n[1].trim().replace(/[.?!]$/,""),!a.hasOwnProperty(n[1])&&(!0===/^([a-z\u00C0-\u00FF`"'/]+)[-โ€“โ€”]([a-z0-9\u00C0-\u00FF].*)/i.test(e)||!0===/^[('"]?([0-9]{1,4})[-โ€“โ€”]([a-z\u00C0-\u00FF`"'/-]+[)'"]?$)/i.test(e))))},kr=function(e){let t=[];const n=e.split(/[-โ€“โ€”]/);let r="-",a=e.match(/[-โ€“โ€”]/);a&&a[0]&&(r=a);for(let e=0;e(e[t]=!0,e)),{});const xr=/\p{Letter}/u,Ir=/[\p{Number}\p{Currency_Symbol}]/u,Tr=/^[a-z]\.([a-z]\.)+/i,Dr=/[sn]['โ€™]$/,Hr=/([A-Z]\.)+[A-Z]?,?$/,Er=/^[A-Z]\.,?$/,Gr=/[A-Z]{2,}('s|,)?$/,Or=/([a-z]\.)+[a-z]\.?$/,Fr=function(e){return function(e){return!0===Hr.test(e)||!0===Or.test(e)||!0===Er.test(e)||!0===Gr.test(e)}(e)&&(e=e.replace(/\./g,"")),e},Vr=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=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.replace(/([0-9]),([0-9])/g,"$1$2")}(r),r=n(r,t),r=Fr(r),e.normal=r},zr=/[ .][A-Z]\.? *$/i,Br=/(?:\u2026|\.{2,}) *$/,Sr=/\p{L}/u,$r=/\. *$/,Mr=/^[A-Z]\. $/;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:function(e,t){if(e=e||"",!(e=String(e))||"string"!=typeof e||!1===vr.test(e))return[];let n=function(e){let t=[],n=e.split(ur);for(let e=0;e0&&(a.push(o),e[t]="")}return a}(r,t),r=function(e){let t=[];for(let n=0;n0?(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=function(e){for(let t=1;te)),n},splitWhitespace:(e,t)=>{let{str:n,pre:r,post:a}=function(e,t){let{prePunctuation:n,postPunctuation:r,emoticons:a}=t.one,o=e,i="",s="",l=Array.from(e);if(a.hasOwnProperty(e.trim()))return{str:e.trim(),pre:i,post:" "};let u=l.length;for(let e=0;e(s=e||"",""))),e=o,i=""),{str:e,pre:i,post:s}}(e,t);return{text:n,pre:r,post:a,tags:new Set}},fromString:function(e,t){const{methods:n,model:r}=t,{splitSentences:a,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=a(e=e||"",t).map((e=>{let n=o(e,r);return n=n.map((e=>i(e,r))),n.forEach((e=>{Vr(e,t)})),n})),e}}}};let Lr={},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","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","ยตg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","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=>{Lr[t]=!0,Jr[t]="Abbreviation",void 0!==e[1]&&(Jr[t]=[Jr[t],e[1]])}))}));var Wr=["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","ex"].reduce(((e,t)=>(e[t]=!0,e)),{});let qr={"!":"ยก","?":"ยฟษ",'"':'โ€œโ€"โโž',"'":"โ€˜โ€›โ›โœโ€™","-":"โ€”โ€“",a:"ยชร€รร‚รƒร„ร…ร รกรขรฃรครฅฤ€ฤฤ‚ฤƒฤ„ฤ…ววŽวžวŸว วกวบวปศ€ศศ‚ศƒศฆศงศบฮ†ฮ‘ฮ”ฮ›ฮฌฮฑฮปะะฐัฆังำำ‘ำ’ำ“ฦ›รฆ",b:"รŸรพฦ€ฦฦ‚ฦƒฦ„ฦ…ษƒฮ’ฮฒฯฯฆะ‘ะ’ะชะฌะฒัŠัŒัขัฃาŒา",c:"ยขยฉร‡รงฤ†ฤ‡ฤˆฤ‰ฤŠฤ‹ฤŒฤฦ†ฦ‡ฦˆศปศผอปอผฯฒฯนฯฝฯพะกัั”า€าาชาซ",d:"รฤŽฤฤฤ‘ฦ‰ฦŠศกฦ‹ฦŒ",e:"รˆร‰รŠร‹รจรฉรชรซฤ’ฤ“ฤ”ฤ•ฤ–ฤ—ฤ˜ฤ™ฤšฤ›ฦศ„ศ…ศ†ศ‡ศจศฉษ†ษ‡ฮˆฮ•ฮžฮฃฮญฮตฮพฯตะ€ะะ•ะตัั‘าผาฝาพาฟำ–ำ—แป…",f:"ฦ‘ฦ’ฯœฯำบำปา’า“ลฟ",g:"ฤœฤฤžฤŸฤ ฤกฤขฤฃฦ“วควฅวฆวงวดวต",h:"ฤคฤฅฤฆฤงฦ•วถศžศŸฮ‰ฮ—ะ‚ะŠะ‹ะะฝั’ั›าขาฃาคาฅาบาปำ‰ำŠ",I:"รŒรรŽร",i:"รฌรญรฎรฏฤจฤฉฤชฤซฤฌฤญฤฎฤฏฤฐฤฑฦ–ฦ—ศˆศ‰ศŠศ‹ฮŠฮฮชฮฏฮนฯŠะ†ะ‡ั–ั—iฬ‡",j:"ฤดฤตวฐศทษˆษ‰ฯณะˆั˜",k:"ฤถฤทฤธฦ˜ฦ™วจวฉฮšฮบะŒะ–ะšะถะบัœาšา›าœาาžาŸา าก",l:"ฤนฤบฤปฤผฤฝฤพฤฟล€ลล‚ฦšฦชว€ววศดศฝฮ™ำ€ำ",m:"ฮœฯบฯปะœะผำำŽ",n:"ร‘รฑลƒล„ล…ล†ล‡ลˆล‰ลŠล‹ฦฦžวธวนศ ศตฮฮ ฮฎฮทฯžะะ˜ะ™ะ›ะŸะธะนะปะฟัาŠา‹ำ…ำ†ำขำฃำคำฅฯ€",o:"ร’ร“ร”ร•ร–ร˜รฐรฒรณรดรตรถรธลŒลลŽลลล‘ฦŸฦ ฦกว‘ว’วชวซวฌวญวพวฟศŒศศŽศศชศซศฌศญศฎศฏศฐศฑฮŒฮ˜ฮŸฮธฮฟฯƒฯŒฯ•ฯ˜ฯ™ฯฌฯดะžะคะพัฒัณำฆำงำจำฉำชำซ",p:"ฦคฮกฯฯทฯธฯผะ ั€าŽารž",q:"ษŠษ‹",r:"ล”ล•ล–ล—ล˜ล™ฦฆศศ‘ศ’ศ“ษŒษะƒะ“ะฏะณัั“าา‘",s:"ลšล›ลœลลžลŸล ลกฦงฦจศ˜ศ™ศฟะ…ั•",t:"ลขลฃลคลฅลฆลงฦซฦฌฦญฦฎศšศ›ศถศพฮ“ฮคฯ„ฯฎะขั‚",u:"ร™รšร›รœรนรบรปรผลจลฉลชลซลฌลญลฎลฏลฐลฑลฒลณฦฏฦฐฦฑฦฒว“ว”ว•ว–ว—ว˜ว™วšว›วœศ”ศ•ศ–ศ—ษ„ฮฐฯ…ฯ‹ฯ",v:"ฮฝัดัตัถัท",w:"ลดลตฦœฯ‰ฯŽฯ–ฯขฯฃะจะฉัˆั‰ักัฟ",x:"ร—ฮงฯ‡ฯ—ฯฐะฅั…าฒาณำผำฝำพำฟ",y:"รรฝรฟลถลทลธฦณฦดศฒศณษŽษฮŽฮฅฮซฮณฯˆฯ’ฯ“ฯ”ะŽะฃัƒั‡ัžัฐัฑาฎาฏาฐาฑำฎำฏำฐำฑำฒำณ",z:"ลนลบลปลผลฝลพฦตฦถศคศฅษ€ฮ–"},Ur={};Object.keys(qr).forEach((function(e){qr[e].split("").forEach((function(t){Ur[t]=e}))}));const Rr=/\//,Qr=/[a-z]\.[a-z]/i,Zr=/[0-9]/,_r=function(e,t){let n=e.normal||e.text||e.machine;const r=t.model.one.aliases;if(r.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(r[n])),Rr.test(n)&&!Qr.test(n)&&!Zr.test(n)){let t=n.split(Rr);t.length<=3&&t.forEach((t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))}))}return e},Xr=/^\p{Letter}+-\p{Letter}+$/u,Yr=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"),Xr.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)},ea=function(e,t){let n=e.docs;for(let r=0;rea(e,_r),machine:e=>ea(e,Yr),normal:e=>ea(e,Vr),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}(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}},sa={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=aa},lib:ia,compute:ra,hooks:["typeahead"]};h.extend(K),h.extend(bn),h.extend(Kt),h.extend(xn),h.extend(ir),h.plugin(be),h.extend(na),h.extend(Pe),h.plugin(p),h.extend(Ve),h.extend(sa),h.extend(De),h.extend(Hn);var la={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",volcano:"volcanoes"},ua={Comparative:"trueยฆbett1f0;arth0ew0in0;er",Superlative:"trueยฆearlier",PresentTense:"trueยฆbests,sounds",Condition:"trueยฆlest,unless",PastTense:"trueยฆbegan,came,d4had,kneel3l2m0sa4we1;ea0sg2;nt;eap0i0;ed;id",Participle:"trueยฆ0:09;a06b01cZdXeat0fSgQhPoJprov0rHs7t6u4w1;ak0ithdra02o2r1;i02uY;k0v0;nd1pr04;ergoJoJ;ak0hHo3;e9h7lain,o6p5t4un3w1;o1um;rn;g,k;ol0reS;iQok0;ught,wn;ak0o1runk;ne,wn;en,wn;ewriNi1uJ;dd0s0;ut3ver1;do4se0t1;ak0h2;do2g1;roG;ne;ast0i7;iv0o1;ne,tt0;all0loBor1;bi3g2s1;ak0e0;iv0o9;dd0;ove,r1;a5eamt,iv0;hos0lu1;ng;e4i3lo2ui1;lt;wn;tt0;at0en,gun;r2w1;ak0ok0;is0;en",Gerund:"trueยฆaccord0be0doin,go0result0stain0;ing",Expression:"trueยฆa0Yb0Uc0Sd0Oe0Mfarew0Lg0FhZjeez,lWmVnToOpLsJtIuFvEw7y0;a5e3i1u0;ck,p;k04p0;ee,pee;a0p,s;!h;!a,h,y;a5h2o1t0;af,f;rd up,w;atsoever,e1o0;a,ops;e,w;hoo,t;ery w06oi0L;gh,h0;! 0h,m;huh,oh;here nPsk,ut tut;h0ic;eesh,hh,it,oo;ff,h1l0ow,sst;ease,s,z;ew,ooey;h1i,mg,o0uch,w,y;h,o,ps;! 0h;hTmy go0wT;d,sh;a7evertheless,o0;!pe;eh,mm;ah,eh,m1ol0;!s;ao,fao;aCeBi9o2u0;h,mph,rra0zzC;h,y;l1o0;r6y9;la,y0;! 0;c1moCsmok0;es;ow;!p hip hoor0;ay;ck,e,llo,y;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;ell;e0h,t cetera,ureka,ww,xcuse me;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;mon,o0;ngratulations,wabunga;a2oo1r0tw,ye;avo,r;!ya;h,m; 1h0ka,las,men,rgh,ye;!a,em,h,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ยฆdick0gre0ones,records;ens","Unit|Noun":"trueยฆcEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,t,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s",Value:"trueยฆa few",Imperative:"trueยฆbewa0come he0;re","Plural|Verb":"trueยฆleaves",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:4Q;a3Tb3Bc2Od2He2Df27g1Zh1Ti1Pj1Nk1Ll1Gm12n0Po0Mp0Cqu0Br02sTtHuCv9w3xiaomi,y1;amaha,m1Bou1w1B;gov,tu3C;a4e2iki1orld trade organizati33;leaRped0O;lls fargo,st1;fie2Hinghou2R;l1rner br3U;gree3Jl street journ2Im1E;an halOeriz2Xisa,o1;dafo2Yl1;kswagMvo;b4kip,n2ps,s1;a tod3Aps;es3Mi1;lev3Fted natio3C;er,s; mobi32aco beRd bOe9gi frida3Lh3im horto3Amz,o1witt3D;shi49y1;ota,s r 05;e 1in lizzy;b3carpen3Jdaily ma3Dguess w2holli0s1w2;mashing pumpki35uprem0;ho;ea1lack eyed pe3Xyr0Q;ch bo3Dtl0;l2n3Qs1xas instrumen1U;co,la m1F;efoni0Kus;a8cientology,e5ieme2Ymirnoff,np,o3pice gir6quare0Ata1ubaru;rbuc1to34;ks;ny,undgard1;en;a2x pisto1;ls;g1Wrs;few2Minsbur31lesfor03msu2E;adiohead,b8e4o1yana3C;man empi1Xyal 1;b1dutch she4;ank;a3d 1max,vl20;bu1c2Ahot chili peppe2Ylobst2N;ll;ders dige1Ll madrid;c,s;ant3Aizn2Q;a8bs,e5fiz2Ihilip4i3r1;emier 1udenti1D;leagTo2K;nk floyd,zza hut; morrBs;psi2tro1uge0E;br33chi0Tn33;!co;lant2Un1yp16; 2ason27da2P;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0QvZ;l,s;c,st1Otflix,w1; 1sweek;kids on the block,york0D;a,c;nd22s2t1;ional aca2Po,we0U;a,c02d0S;aDcdonalCe9i6lb,o3tv,y1;spa1;ce;b1Tnsanto,ody blu0t1;ley cr1or0T;ue;c2t1;as,subisO;helin,rosoft;dica2rcedes benz,talli1;ca;id,re;ds;cs milk,tt19z24;a3e1g,ittle caesa1P; ore09novo,x1;is,mark,us; 1bour party;pres0Dz boy;atv,fc,kk,lm,m1od1O;art;iffy lu0Roy divisi0Jpmorgan1sa;! cha09;bm,hop,k3n1tv;g,te1;l,rpol;ea;a5ewlett pack1Vi3o1sbc,yundai;me dep1n1P;ot;tac1zbollah;hi;lliburt08sbro;eneral 6hq,ithub,l5mb,o2reen d0Ou1;cci,ns n ros0;ldman sachs,o1;dye1g0H;ar;axo smith kli04encoW;electr0Nm1;oto0Z;a5bi,c barcelo4da,edex,i2leetwood m03o1rito l0G;rd,xcY;at,fa,nancial1restoZ; tim0;na;cebook,nnie mae;b0Asa,u3xxon1; m1m1;ob0J;!rosceptics;aiml0De5isney,o4u1;nkin donu2po0Zran dur1;an;ts;j,w jon0;a,f lepp12ll,peche mode,r spieg02stiny's chi1;ld;aJbc,hFiDloudflaCnn,o3r1;aigsli5eedence clearwater reviv1ossra09;al;c7inba6l4m1o0Est09;ca2p1;aq;st;dplSg1;ate;se;a c1o chanQ;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil a,na daily;r1y;on;d2pital o1rls jr;ne;bury,ill1;ac;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;cardi,idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser busDol,ppleAr6s4u3v2y1;er;is,on;di,todesk;hland o1sociated E;il;b3g2m1;co;os;ys; compu1be0;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ยฆits,my,our0thy;!s","Noun|Verb":"trueยฆ0:9W;1:AA;2:96;3:A3;4:9R;5:A2;6:9K;7:8N;8:7L;9:A8;A:93;B:8D;C:8X;a9Ob8Qc7Id6Re6Gf5Sg5Hh55i4Xj4Uk4Rl4Em40n3Vo3Sp2Squ2Rr21s0Jt02u00vVwGyFzD;ip,oD;ne,om;awn,e6Fie68;aOeMhJiHoErD;ap,e9Oink2;nd0rDuC;kDry,sh5Hth;!shop;ck,nDpe,re,sh;!d,g;e86iD;p,sD;k,p0t2;aDed,lco8W;r,th0;it,lk,rEsDt4ve,x;h,te;!ehou1ra9;aGen5FiFoD;iDmAte,w;ce,d;be,ew,sA;cuum,l4B;pDr7;da5gra6Elo6A;aReQhrPiOoMrGuEwiDy5Z;n,st;nDrn;e,n7O;aGeFiEoDu6;t,ub2;bu5ck4Jgg0m,p;at,k,nd;ck,de,in,nsDp,v7J;f0i8R;ll,ne,p,r4Yss,t94uD;ch,r;ck,de,e,le,me,p,re;e5Wow,u6;ar,e,ll,mp0st,xt;g,lDng2rg7Ps5x;k,ly;a0Sc0Ne0Kh0Fi0Dk0Cl0Am08n06o05pXquaBtKuFwD;ea88iD;ng,pe,t4;bGit,m,ppErD;fa3ge,pri1v2U;lDo6S;e6Py;!je8;aMeLiKoHrEuDy2;dy,ff,mb2;a85eEiDo5Pugg2;ke,ng;am,ss,t4;ckEop,p,rD;e,m;ing,pi2;ck,nk,t4;er,m,p;ck,ff,ge,in,ke,lEmp,nd,p2rDte,y;!e,t;k,l;aJeIiHlGoFrDur,y;ay,e56inDu3;g,k2;ns8Bt;a5Qit;ll,n,r87te;ed,ll;m,n,rk;b,uC;aDee1Tow;ke,p;a5Je4FiDo53;le,rk;eep,iDou4;ce,p,t;ateboa7Ii;de,gnDl2Vnk,p,ze;!al;aGeFiEoDuff2;ck,p,re,w;ft,p,v0;d,i3Ylt0;ck,de,pe,re,ve;aEed,nDrv1It;se,t2N;l,r4t;aGhedu2oBrD;aEeDibb2o3Z;en,w;pe,t4;le,n,r2M;cDfegua72il,mp2;k,rifi3;aZeHhy6LiGoEuD;b,in,le,n,s5X;a6ck,ll,oDpe,u5;f,t;de,ng,ot,p,s1W;aTcSdo,el,fQgPje8lOmMnLo17pJque6sFturn,vDwa6V;eDi27;al,r1;er74oFpe8tEuD;lt,me;!a55;l71rt;air,eaDly,o53;l,t;dezvo2Zt;aDedy;ke,rk;ea1i4G;a6Iist0r5N;act6Yer1Vo71uD;nd,se;a38o6F;ch,s6G;c1Dge,iEke,lly,nDp1Wt1W;ge,k,t;n,se;es6Biv0;a04e00hYiXlToNrEsy4uD;mp,n4rcha1sh;aKeIiHoDu4O;be,ceFdu3fi2grDje8mi1p,te6;amDe6W;!me;ed,ss;ce,de,nt;sDy;er6Cs;cti3i1;iHlFoEp,re,sDuCw0;e,i5Yt;l,p;iDl;ce,sh;nt,s5V;aEce,e32uD;g,mp,n7;ce,nDy;!t;ck,le,n17pe,tNvot;a1oD;ne,tograph;ak,eFnErDt;fu55mA;!c32;!l,r;ckJiInHrFsEtDu1y;ch,e9;s,te;k,tD;!y;!ic;nt,r,se;!a7;bje8ff0il,oErDutli3Qver4B;bAd0ie9;ze;a4ReFoDur1;d,tD;e,i3;ed,gle8tD;!work;aMeKiIoEuD;rd0;ck,d3Rld,nEp,uDve;nt,th;it5EkD;ey;lk,n4Brr5CsDx;s,ta2B;asuBn4UrDss;ge,it;il,nFp,rk3WsEtD;ch,t0;h,k,t0;da5n0oeuvB;aLeJiHoEuD;mp,st;aEbby,ck,g,oDve;k,t;d,n;cDe,ft,mAnIst;en1k;aDc0Pe4vK;ch,d,k,p,se;bFcEnd,p,t4uD;gh,n4;e,k;el,o2U;eEiDno4E;ck,d,ll,ss;el,y;aEo1OuD;i3mp;m,zz;mpJnEr46ssD;ue;c1Rdex,fluGha2k,se2HteDvoi3;nt,rD;e6fa3viD;ew;en3;a8le2A;aJeHiGoEuD;g,nt;l3Ano2Dok,pDr1u1;!e;ghli1Fke,nt,re,t;aDd7lp;d,t;ck,mGndFrEsh,tDu9;ch,e;bo3Xm,ne4Eve6;!le;!m0;aMear,ift,lKossJrFuD;arDe4Alp,n;antee,d;aFiEoDumb2;uCwth;ll,nd,p;de,sp;ip;aBoDue;ss,w;g,in,me,ng,s,te,ze;aZeWiRlNoJrFuD;ck,el,nDss,zz;c38d;aEoDy;st,wn;cDgme,me,nchi1;tuB;cFg,il,ld,rD;ce,e29mDwa31;!at;us;aFe0Vip,oDy;at,ck,od,wD;!er;g,ke,me,re,sh,vo1E;eGgFlEnDre,sh,t,x;an3i0Q;e,m,t0;ht,uB;ld;aEeDn3;d,l;r,tuB;ce,il,ll,rm,vo2W;cho,d7ffe8nMsKxFyeD;!baD;ll;cGerci1hFpDtra8;eriDo0W;en3me9;au6ibA;el,han7u1;caDtima5;pe;count0d,vy;a01eSiMoJrEuDye;b,el,mp,pli2X;aGeFiEoD;ne,p;ft,ll,nk,p,ve;am,ss;ft,g,in;cEd7ubt,wnloD;ad;k,u0E;ge6p,sFt4vD;e,iDor3;de;char7gui1h,liEpD;at4lay,u5;ke;al,bKcJfeIlGmaCposAsEtaD;il;e07iD;gn,re;ay,ega5iD;ght;at,ct;li04rea1;a5ut;b,ma7n3rDte;e,t;a0Eent0Dh06irc2l03oKrFuD;be,e,rDt;b,e,l,ve;aGeFoEuDy;sh;p,ss,wd;dAep;ck,ft,sh;at,de,in,lTmMnFordina5py,re,st,uDv0;gh,nDp2rt;s01t;ceHdu8fli8glomeIsFtDveN;a8rD;a6ol;e9tru8;ct;ntDrn;ra5;bHfoGmFpD;leDouCromi1;me9;aCe9it,u5;rt;at,iD;ne;lap1oD;r,ur;aEiDoud,ub;ck,p;im,w;aEeDip;at,ck,er;iGllen7nErD;ge,m,t;ge,nD;el;n,r;er,re;ke,ll,mp,noe,pGrXsFtEuDve;se,ti0I;alog,ch;h,t;!tuB;re;a03eZiXlToPrHuEyD;pa11;bb2ck2dgEff0mp,rDst,zz;den,n;et;anJeHiFoadEuD;i1sh;ca6;be,d7;ge;aDed;ch,k;ch,d;aFg,mb,nEoDrd0tt2x,ycott;k,st,t;d,e;rd,st;aFeCiDoYur;nk,tz;nd;me;as,d,ke,nd,opsy,tD;!ch,e;aFef,lt,nDt;d,efA;it;r,t;ck,il,lan3nIrFsEtt2;le;e,h;!gDk;aDe;in;!d,g,k;bu1c05dZge,iYlVnTppQrLsIttGucEwaD;rd;tiD;on;aDempt;ck;k,sD;i6ocia5;st;chFmD;!oD;ur;!iD;ve;eEroa4;ch;al;chDg0sw0;or;aEt0;er;rm;d,m,r;dreHvD;an3oD;ca5;te;ce;ss;cDe,he,t;eFoD;rd,u9;nt;nt,ss;se",Actor:"trueยฆ0:7B;1:7G;2:6A;3:7F;4:7O;5:7K;a6Nb62c4Ud4Be41f3Sg3Bh30i2Uj2Qkin2Pl2Km26n1Zo1Sp0Vqu0Tr0JsQtJuHvEw8yo6;gi,ut6;h,ub0;aAe9i8o7r6;estl0it0;m2rk0;fe,nn0t2Bza2H;atherm2ld0;ge earn0it0nder0rri1;eter7i6oyF;ll5Qp,s3Z;an,ina2U;n6s0;c6Uder03;aoisea23e9herapi5iktok0o8r6ut1yco6S;a6endseLo43;d0mp,nscri0Bvel0;ddl0u1G;a0Qchn7en6na4st0;ag0;i3Oo0D;aiXcUeRhPiMki0mu26oJpGquaFtBu7wee6;p0theart;lt2per7r6;f0ge6Iviv1;h6inten0Ist5Ivis1;ero,um2;a8ep7r6;ang0eam0;bro2Nc2Ofa2Nmo2Nsi20;ff0tesm2;tt0;ec7ir2Do6;kesp59u0M;ia5Jt3;l7me6An,rcere6ul;r,ss;di0oi5;n7s6;sy,t0;g0n0;am2ephe1Iow6;girl,m2r2Q;cretInior cit3Fr6;gea4v6;a4it1;hol4Xi7reen6ulpt1;wr2C;e01on;l1nt;aEe9o8u6;l0nn6;er up,ingE;g40le mod3Zof0;a4Zc8fug2Ppo32searQv6;ere4Uolution6;ary;e6luYru22;ptio3T;bbi,dic5Vpp0;arter6e2Z;back;aYeWhSiRlOoKr8sycho7u6;nk,p31;logi5;aGeDiBo6;d9fess1g7ph47s6;pe2Ktitu51;en6ramm0;it1y;igy,uc0;est4Nme mini0Unce6s3E;!ss;a7si6;de4;ch0;ctiti39nk0P;dca0Oet,li6pula50rnst42;c2Itic6;al scie6i2;nti5;a6umb0;nn0y6;er,ma4Lwright;lgrim,one0;a8iloso7otogra7ra6ysi1V;se;ph0;ntom,rmaci5;r6ssi1T;form0s4O;i3El,nel3Yr8st1tr6wn;i6on;arWot;ent4Wi42tn0;ccupa4ffBp8r7ut6;ca5l0B;ac4Iganiz0ig2Fph2;er3t6;i1Jomet6;ri5;ic0spring;aBe9ie4Xo7u6;n,rser3J;b6mad,vi4V;le2Vo4D;i6mesis,phew;ce,ghb1;nny,rr3t1X;aEeDiAo7u6yst1Y;m8si16;der3gul,m7n6th0;arDk;!my;ni7s6;f02s0Jt0;on,st0;chan1Qnt1rcha4;gi9k0n8rtyr,t6y1;e,riar6;ch;ag0iac;ci2stra3I;a7e2Aieutena4o6;rd,s0v0;bor0d7ndlo6ss,urea3Fwy0ym2;rd;!y;!s28;e8o7u6;ggl0;gg0urna2U;st0;c3Hdol,llu3Ummigra4n6; l9c1Qfa4habi42nov3s7ve6;nt1stig3;pe0Nt6;a1Fig3ru0M;aw;airFeBistoAo8u6ygie1K;man6sba2H;!ita8;bo,st6usekN;age,e3P;ri2;ir,r6;m7o6;!ine;it;dress0sty2C;aLeIhostGirl26ladi3oCrand7u6;e5ru;c9daug0Jfa8m7pa6s2Y;!re4;a,o6;th0;hi1B;al7d6lf0;!de3A;ie,k6te26;eep0;!wr6;it0;isha,n6;i6tl04;us;mbl0rden0;aDella,iAo7r6;eela2Nie1P;e,re6ster pare4;be1Hm2r6st0;unn0;an2ZgZlmm17nanci0r6tt0;e6st la2H; marsh2OfigXm2;rm0th0;conoEdDlectriCm8n7x6;amin0cellency,i2A;emy,trepreneur,vironmenta1J;c8p6;er1loye6;e,r;ee;ci2;it1;mi5;aKeBi8ork,ri7u6we02;de,tche2H;ft0v0;ct3eti7plom2Hre6va;ct1;ci2ti2;aDcor3fencCi0InAput9s7tectLvel6;op0;ce1Ge6ign0;rt0;ee,y;iz6;en;em2;c1Ml0;d8nc0redev7ug6;ht0;il;!dy;a06e04fo,hXitizenWlToBr9u6;r3stomer6;! representat6;ive;e3it6;ic;lJmGnAord9rpor1Nu7w6;boy,ork0;n6ri0;ciTte1Q;in3;fidantAgressSs9t6;e0Kr6;ibut1o6;ll0;tab13ul1O;!e;edi2m6pos0rade;a0EeQissi6;on0;leag8on7um6;ni5;el;ue;e6own;an0r6;ic,k;!s;a9e7i6um;ld;erle6f;ad0;ir7nce6plFract0;ll1;m2wI;lebri6o;ty;dBptAr6shi0;e7pe6;nt0;r,t6;ak0;ain;et;aMeLiJlogg0oErBu6;dd0Fild0rgl9siness6;m2p7w6;om2;ers05;ar;i7o6;!k0th0;cklay0de,gadi0;hemi2oge8y6;!frie6;nd;ym2;an;cyc6sR;li5;atbox0ings;by,nk0r6;b0on7te6;nd0;!e07;c04dWge4nQpLrHsFtAu7yatull6;ah;nt7t6;h1oG;!ie;h8t6;e6orney;nda4;ie5le6;te;sis00tron6;aut,om0;chbis8isto7tis6;an,t;crU;hop;ost9p6;ari6rentiS;ti6;on;le;a9cest1im3nou8y6;bo6;dy;nc0;ly5rc6;hi5;mi8v6;entur0is1;er;ni7r6;al;str3;at1;or;counBquaintanArob9t6;ivi5or,re6;ss;st;at;ce;ta4;nt","Adj|Noun":"trueยฆ0:16;a1Db17c0Ud0Re0Mf0Dg0Ah08i06ju05l02mWnUoSpNrIsBt7u4v1watershed;a1ision0Z;gabo4nilla,ria1;b0Vnt;ndergr1pstairs;adua14ou1;nd;a3e1oken,ri0;en,r1;min0rori13;boo,n;age,e5ilv0Flack,o3quat,ta2u1well;bordina0Xper5;b0Lndard;ciali0Yl1vereign;e,ve16;cret,n1ri0;ior;a4e2ou1ubbiL;nd,tiY;ar,bBl0Wnt0p1side11;resent0Vublican;ci0Qsh;a4eriodic0last0Zotenti0r1;emi2incip0o1;!fession0;er,um;rall4st,tie0U;ff1pposi0Hv0;ens0Oi0C;agg01ov1uts;el;a5e3iniatJo1;bi01der07r1;al,t0;di1tr0N;an,um;le,riG;attOi2u1;sh;ber0ght,qC;stice,veniT;de0mpressioYn1;cumbe0Edividu0no0Dsta0Eterim;alf,o1umdrum;bby,melF;en2old,ra1;ph0Bve;er0ious;a7e5i4l3u1;git03t1;ure;uid;ne;llow,m1;aFiL;ir,t,vo1;riOuriO;l3p00x1;c1ecutUpeV;ess;d1iK;er;ar2e1;mographUrivO;k,l2;hiGlassSo2rude,unn1;ing;m5n1operK;creCstitueOte2vertab1;le;mpor1nt;ary;ic,m2p1;anion,lex;er2u1;ni8;ci0;al;e5lank,o4r1;i2u1;te;ef;ttom,urgeois;st;cadem9d6l2ntarct9r1;ab,ct8;e3tern1;at1;ive;rt;oles1ult;ce1;nt;ic","Adj|Past":"trueยฆ0:4Q;1:4C;2:4H;3:4E;a44b3Tc36d2Je29f20g1Wh1Si1Jj1Gkno1Fl1Am15n12o0Xp0Mqu0Kr08sLtEuAv9w4yellow0;a7ea6o4rinkl0;r4u3Y;n,ri0;k31th3;rp0sh0tZ;ari0e1O;n5p4s0;d1li1Rset;cov3derstood,i4;fi0t0;a8e3Rhr7i6ouTr4urn0wi4C;a4imm0ou2G;ck0in0pp0;ed,r0;eat2Qi37;m0nn0r4;get0ni2T;aOcKeIhGimFm0Hoak0pDt7u4;bsid3Ogge44s4;pe4ta2Y;ct0nd0;a8e7i2Eok0r5u4;ff0mp0nn0;ength2Hip4;ed,p0;am0reotyp0;in0t0;eci4ik0oH;al3Efi0;pRul1;a4ock0ut;d0r0;a4c1Jle2t31;l0s3Ut0;a6or5r4;at4e25;ch0;r0tt3;t4ut0;is2Mur1;aEe5o4;tt0;cAdJf2Bg9je2l8m0Knew0p7qu6s4;eTpe2t4;or0ri2;e3Dir0;e1lac0;at0e2Q;i0Rul1;eiv0o4ycl0;mme2Lrd0v3;in0lli0ti2A;a4ot0;li28;aCer30iBlAo9r5u4;mp0zzl0;e6i2Oo4;ce2Fd4lo1Anou30pos0te2v0;uc0;fe1CocCp0Iss0;i2Kli1L;ann0e2CuS;ck0erc0ss0;ck0i2Hr4st0;allLk0;bse7c6pp13rgan2Dver4;lo4whelm0;ok0;cupi0;rv0;aJe5o4;t0uri1A;ed0gle2;a6e5ix0o4ut0ys1N;di1Nt15u26;as0Clt0;n4rk0;ag0ufact0A;e6i5o4;ad0ck0st,v0;cens0m04st0;ft,v4;el0;tt0wn;a5o15u4;dg0s1B;gg0;llumSmpAn4sol1;br0cre1Ldebt0f8jZspir0t5v4;it0olv0;e4ox0Y;gr1n4re23;d0si15;e2l1o1Wuri1;li0o01r4;ov0;a6e1o4um03;ok0r4;ri0Z;mm3rm0;i6r5u4;a1Bid0;a0Ui0Rown;ft0;aAe9i8l6oc0Ir4;a4i0oz0Y;ctHg19m0;avo0Ju4;st3;ni08tt0x0;ar0;d0il0sc4;in1;dCl1mBn9quipp0s8x4;agger1c6p4te0T;a0Se4os0;ct0rie1D;it0;cap0tabliZ;cha0XgFha1As4;ur0;a0Zbarra0N;i0Buc1;aMeDi5r4;a01i0;gni08miniSre2s4;a9c6grun0Ft4;o4re0Hu17;rt0;iplWou4;nt0r4;ag0;bl0;cBdRf9l8p7ra6t5v4;elop0ot0;ail0ermQ;ng0;re07;ay0ight0;e4in0o0M;rr0;ay0enTor1;m5t0z4;ed,zl0;ag0p4;en0;aPeLhIlHo9r6u4;lt4r0stom03;iv1;a5owd0u4;sh0;ck0mp0;d0loAm7n4ok0v3;centr1f5s4troC;id3olid1;us0;b5pl4;ic1;in0;r0ur0;assi9os0utt3;ar5i4;ll0;g0m0;lebr1n6r4;ti4;fi0;tralJ;g0lcul1;aDewild3iCl9o7r5urn4;ed,t;ok4uis0;en;il0r0t4und;tl0;e5i4;nd0;ss0;as0;ffl0k0laMs0tt3;bPcNdKfIg0lFmaz0nDppBrm0ss9u5wa4;rd0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;a5leg0t3;er0;rm0;fe2;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;and5so4;rb0;on0;ed",Singular:"trueยฆ0:5J;1:5H;2:4W;3:4S;4:52;5:57;6:5L;7:56;8:5B;a52b4Lc3Nd35e2Xf2Og2Jh28in24j23k22l1Um1Ln1Ho1Bp0Rqu0Qr0FsZtMuHvCw9x r58yo yo;a9ha3Po3Q;f3i4Rt0Gy9;! arou39;arCeAideo ga2Qo9;cabu4Jl5C;gOr9t;di4Zt1Y;iety,ni4P;nBp30rAs 9;do43s5E;bani1in0;coordinat3Ader9;estima1to24we41; rex,aKeJhHiFoErBuAv9;! show;m2On2rntLto1D;agedy,ib9o4E;e,u9;n0ta46;ni1p2rq3L;c,er,m9;etF;ing9ree26;!y;am,mp3F;ct2le6x return;aNcMeKhor4QiJkHoGpin off,tDuBy9;ll9ner7st4T;ab2X;b9i1n28per bowl,rro1X;st3Ltot0;atAipe2Go1Lrate7udent9;! lo0I;i39u1;ft ser4Lmeo1I;elet5i9;ll,r3V;b38gn2Tte;ab2Jc9min3B;t,urity gua2N;e6ho2Y;bbatic0la3Jndwi0Qpi5;av5eDhetor2iAo9;de6om,w;tAv9;erb2C;e,u0;bDcBf9publ2r10spi1;er9orm3;e6r0;i9ord label;p2Ht0;a1u46;estion mark,ot2F;aPeMhoLiIlGoErAu9yram1F;ddi3HpErpo1Js3J;eBo9;bl3Zs9;pe3Jta1;dic1Rmi1Fp1Qroga8ss relea1F;p9rt0;py;a9ebisci1;q2Dte;cn2eAg9;!gy;!r;ne call,tocoK;anut,dAr9t0yo1;cen3Jsp3K;al,est0;nop4rAt9;e,hog5;adi11i2V;atme0bj3FcBpia1rde0thers,utspok5ve9wn3;n,r9;ti0Pview;cuAe9;an;pi3;arBitAot9umb3;a2Fhi2R;e,ra1;cot2ra8;aFeCiAo9ur0;nopo4p18rni2Nsq1Rti36uld;c,li11n0As9tt5;chief,si34;dAnu,t9;al,i3;al,ic;gna1mm0nd15rsupi0te9yf4;ri0;aDegCiBu9;ddi1n9;ch;me,p09; Be0M;bor14y9; 9er;up;eyno1itt5;el4ourn0;cBdices,itia8ni25sAtel0Lvert9;eb1J;e28titu1;en8i2T;aIeEighDoAu9;man right,s22;me9rmoFsp1Ftb0K;! r9;un; scho0YriY;a9i1N;d9v5; start,pho9;ne;ndful,sh brown,v5ze;aBelat0Ilaci3r9ul4yp1S;an9enadi3id;a1Cd slam,ny;df4r9;l2ni1I;aGeti1HiFlu1oCrAun9;er0;ee market,i9onti3;ga1;l4ur9;so9;me;ePref4;br2mi4;conoFffi7gg,lecto0Rmbas1EnCpidem2s1Zth2venBxAyel9;id;ampZempl0Nte6;i19t;er7terp9;ri9;se;my;eLiEoBr9ump tru0U;agonf4i9;er,ve thru;cAg7i4or,ssi3wn9;side;to0EumenE;aEgniDnn3sAvide9;nd;conte6incen8p9tri11;osi9;ti0C;ta0H;le0X;athBcAf9ni0terre6;ault 05err0;al,im0;!b9;ed;aWeThMiLlJoDr9;edit caBuc9;ib9;le;rd;efficDke,lCmmuniqLnsApi3rr0t0Xus9yo1;in;erv9uI;ato02;ic,lQ;ie6;er7i9oth;e6n2;ty,vil wM;aDeqCick5ocoBr9;istmas car9ysanthemum;ol;la1;ue;ndeli3racteri9;st2;iAllEr9;e0tifica1;liZ;hi3nFpErCt9ucus;erpi9hedr0;ll9;ar;!bohyd9ri3;ra1;it0;aAe,nib0t9;on;l,ry;aMeLiop2leJoHrDu9;nny,r9tterf4;g9i0;la9;ry;eakAi9;ck;fa9throB;st;dy,ro9wl;ugh;mi9;sh;an,l4;nkiArri3;er;ng;cSdMlInFppeti1rDsBtt2utop9;sy;ic;ce6pe9;ct;r9sen0;ay;ecAoma4tiA;ly;do1;i5l9;er7y;gy;en; hominDjAvan9;tage;ec8;ti9;ve;em;cCeAqui9;tt0;ta1;te;iAru0;al;de6;nt","Person|Noun":"trueยฆa0Eb07c03dWeUfQgOhLjHkiGlFmCnBolive,p7r4s3trini06v1wa0;ng,rd,tts;an,enus,iol0;a,et;ky,onPumm09;ay,e1o0uby;bin,d,se;ed,x;a2e1o0;l,tt04;aLnJ;dYge,tR;at,orm;a0eloW;t0x,ya;!s;a9eo,iH;ng,tP;a2e1o0;lGy;an,w3;de,smi4y;a0erb,iOolBuntR;ll,z0;el;ail,e0iLuy;ne;a1ern,i0lo;elds,nn;ith,n0;ny;a0dEmir,ula,ve;rl;a4e3i1j,ol0;ly;ck,x0;ie;an,ja;i0wn;sy;am,h0liff,rystal;a0in,ristian;mbers,ri0;ty;a4e3i2o,r0ud;an0ook;dy;ll;nedict,rg;k0nks;er;l0rt;fredo,ma","Actor|Verb":"trueยฆaCb8c5doctor,engineAfool,g3host,judge,m2nerd,p1recruit,scout,ushAvolunteAwi0;mp,tneA;arent,ilot;an,ime;eek,oof,r0uide;adu8oom;ha1o0;ach,nscript,ok;mpion,uffeur;o2u0;lly,tch0;er;ss;ddi1ffili0rchite1;ate;ct",MaleName:"trueยฆ0:H6;1:FZ;2:DS;3:GQ;4:CZ;5:FV;6:GM;7:FP;8:GW;9:ET;A:C2;B:GD;aF8bE1cCQdBMeASfA1g8Yh88i7Uj6Sk6Bl5Mm48n3So3Ip33qu31r26s1Et0Ru0Ov0CwTxSyHzC;aCor0;cChC1karia,nAT;!hDkC;!aF6;!ar7CeF5;aJevgenBSoEuC;en,rFVsCu3FvEF;if,uf;nDs6OusC;ouf,s6N;aCg;s,tC;an,h0;hli,nCrosE1ss09;is,nC;!iBU;avi2ho5;aPeNiDoCyaEL;jcieBJlfgang,odrFutR;lFnC;f8TsC;lCt1;ow;bGey,frEhe4QlC;aE5iCy;am,e,s;ed8iC;d,ed;eAur;i,ndeD2rn2sC;!l9t1;lDyC;l1ne;lDtC;!er;aCHy;aKernDAiFladDoC;jteB0lodymyr;!iC;mFQsDB;cFha0ktBZnceDrgCOvC;a0ek;!nC;t,zo;!e4StBV;lCnC7sily;!entC;in9J;ghE2lCm70nax,ri,sm0;riCyss87;ch,k;aWeRhNiLoGrEuDyC;!l2roEDs1;n6r6E;avD0eCist0oy,um0;ntCRvBKy;bFdAWmCny;!asDmCoharu;aFFie,y;!z;iA6y;mCt4;!my,othy;adEeoDia0SomC;!as;!dor91;!de4;dFrC;enBKrC;anBJeCy;ll,nBI;!dy;dgh,ha,iCnn2req,tsu5V;cDAka;aYcotWeThPiMlobod0oKpenc2tEurDvenAEyCzym1;ed,lvest2;aj,e9V;anFeDuC;!aA;fan17phEQvCwaA;e77ie;!islaCl9;v,w;lom1rBuC;leymaDHta;dDgmu9UlCm1yabonga;as,v8B;!dhart8Yn9;aEeClo75;lCrm0;d1t1;h9Jne,qu1Jun,wn,yne;aDbastiEDk2Yl5Mpp,rgCth,ymoCU;e1Dio;m4n;!tC;!ie,y;eDPlFmEnCq67tosCMul;dCj2UtiA5;e01ro;!iATkeB6mC4u5;!ik,vato9K;aZeUheC8iRoGuDyC;an,ou;b99dDf4peAssC;!elEG;ol00y;an,bLc7MdJel,geIh0lHmGnEry,sDyC;!ce;ar7Ocoe,s;!aCnBU;ld,n;an,eo;a7Ef;l7Jr;e3Eg2n9olfo,riC;go;bBNeDH;cCl9;ar87c86h54kCo;!ey,ie,y;cFeA3gDid,ubByCza;an8Ln06;g85iC;naC6s;ep;ch8Kfa5hHin2je8HlGmFndEoHpha5sDul,wi36yC;an,mo8O;h9Im4;alDSol3O;iD0on;f,ph;ul;e9CinC;cy,t1;aOeLhilJiFrCyoG;aDeC;m,st1;ka85v2O;eDoC;tr;r8GtC;er,ro;!ipCl6H;!p6U;dCLrcy,tC;ar,e9JrC;!o7;b9Udra8So9UscAHtri62ulCv8I;!ie,o7;ctav6Ji2lImHndrBRrGsDtCum6wB;is,to;aDc6k6m0vCwaBE;al79;ma;i,vR;ar,er;aDeksandr,ivC;er,i2;f,v;aNeLguyBiFoCu3O;aDel,j4l0ma0rC;beAm0;h,m;cFels,g5i9EkDlC;es,s;!au,h96l78olaC;!i,y;hCkCol76;ol75;al,d,il,ls1vC;ilAF;hom,tC;e,hC;anCy;!a5i5;aYeViLoGuDyC;l4Nr1;hamDr84staC;fa,p6E;ed,mG;di10e,hamEis4JntDritz,sCussa;es,he;e,y;ad,ed,mC;ad,ed;cGgu5hai,kFlEnDtchC;!e8O;a9Pik;house,o7t1;ae73eC3ha8Iolaj;ah,hDkC;!ey,y;aDeC;al,l;el,l;hDlv3rC;le,ri8Ev4T;di,met;ay0c00gn4hWjd,ks2NlTmadZnSrKsXtDuric7VxC;imilBKwe8B;eHhEi69tCus,y69;!eo,hCia7;ew,i67;eDiC;as,eu,s;us,w;j,o;cHiGkFlEqu8Qsha83tCv3;iCy;!m,n;in,on;el,o7us;a6Yo7us;!elCin,o7us;!l8o;frAEi5Zny,u5;achDcoCik;lm;ai,y;amDdi,e5VmC;oud;adCm6W;ou;aulCi9P;ay;aWeOiMloyd,oJuDyC;le,nd1;cFdEiDkCth2uk;a7e;gi,s,z;ov7Cv6Hw6H;!as,iC;a6Een;g0nn52renDuCvA4we7D;!iS;!zo;am,n4oC;n5r;a9Yevi,la5KnHoFst2thaEvC;eCi;nte;bo;nCpo8V;!a82el,id;!nC;aAy;mEnd1rDsz73urenCwr6K;ce,t;ry,s;ar,beAont;aOeIhalHiFla4onr63rDu5SylC;e,s;istCzysztof;i0oph2;er0ngsl9p,rC;ilA9k,ollos;ed,id;en0iGnDrmCv4Z;it;!dDnCt1;e2Ny;ri4Z;r,th;cp2j4mEna8BrDsp6them,uC;ri;im,l;al,il;a03eXiVoFuC;an,lCst3;en,iC;an,en,o,us;aQeOhKkub4AnIrGsDzC;ef;eDhCi9Wue;!ua;!f,ph;dCge;i,on;!aCny;h,s,th6J;anDnC;!ath6Hie,n72;!nC;!es;!l,sCy;ph;o,qu3;an,mC;!i,m6V;d,ffFns,rCs4;a7JemDmai7QoCry;me,ni1H;i9Dy;!e73rC;ey,y;cKdBkImHrEsDvi2yC;dBs1;on,p2;ed,oDrCv67;e6Qod;d,s61;al,es5Wis1;a,e,oCub;b,v;ob,qu13;aTbNchiMgLke53lija,nuKonut,rIsEtCv0;ai,suC;ki;aDha0i8XmaCsac;el,il;ac,iaC;h,s;a,vinCw3;!g;k,nngu6X;nac1Xor;ka;ai,rahC;im;aReLoIuCyd6;beAgGmFsC;eyDsC;a3e3;in,n;ber5W;h,o;m2raDsse3wC;a5Pie;c49t1K;a0Qct3XiGnDrC;beAman08;dr7VrC;iCy2N;!k,q1R;n0Tt3S;bKlJmza,nIo,rEsDyC;a5KdB;an,s0;lEo67r2IuCv9;hi5Hki,tC;a,o;an,ey;k,s;!im;ib;a08e00iUlenToQrMuCyorgy;iHnFsC;!taC;f,vC;!e,o;n6tC;er,h2;do,lC;herDlC;auCerQ;me;aEegCov2;!g,orC;!io,y;dy,h7C;dfr9nza3XrDttfC;ri6C;an,d47;!n;acoGlEno,oCuseppe;rgiCvan6O;!o,s;be6Ies,lC;es;mo;oFrC;aDha4HrC;it,y;ld,rd8;ffErgC;!e7iCy;!os;!r9;bElBrCv3;eCla1Nr4Hth,y;th;e,rC;e3YielC;!i4;aXeSiQlOorrest,rCyod2E;aHedFiC;edDtC;s,z;ri18;!d42eri11riC;ck,k;nCs2;cEkC;ie,lC;in,yn;esLisC;!co,z3M;etch2oC;ri0yd;d5lConn;ip;deriFliEng,rC;dinaCg4nan0B;nd8;pe,x;co;bCdi,hd;iEriC;ce,zC;io;an,en,o;benez2dZfrYit0lTmMnJo3rFsteb0th0ugenEvCymBzra;an,eCge4D;ns,re3K;!e;gi,iDnCrol,v3w3;est8ie,st;cCk;!h,k;o0DriCzo;co,qC;ue;aHerGiDmC;aGe3A;lCrh0;!iC;a10o,s;s1y;nu5;beAd1iEliDm2t1viCwood;n,s;ot28s;!as,j5Hot,sC;ha;a3en;!dGg6mFoDua2QwC;a2Pin;arC;do;oZuZ;ie;a04eTiOmitrNoFrag0uEwDylC;an,l0;ay3Hig4D;a3Gdl9nc0st3;minFnDri0ugCvydGy2S;!lF;!a36nCov0;e1Eie,y;go,iDykC;as;cCk;!k;i,y;armuFetDll1mitri7neCon,rk;sh;er,m6riC;ch;id;andLepak,j0lbeAmetri4nIon,rGsEvDwCxt2;ay30ey;en,in;hawn,moC;nd;ek,riC;ck;is,nC;is,y;rt;re;an,le,mKnIrEvC;e,iC;!d;en,iEne0PrCyl;eCin,yl;l45n;n,o,us;!iCny;el,lo;iCon;an,en,on;a0Fe0Ch03iar0lRoJrFuDyrC;il,us;rtC;!is;aEistC;iaCob12;no;ig;dy,lInErC;ey,neliCy;s,us;nEor,rDstaC;nt3;ad;or;by,e,in,l3t1;aHeEiCyde;fCnt,ve;fo0Xt1;menDt4;us;s,t;rFuDyC;!t1;dCs;e,io;enC;ce;aHeGrisC;!toC;phCs;!eC;!r;st2t;d,rCs;b5leC;s,y;cDdrCs6;ic;il;lHmFrC;ey,lDroCy;ll;!o7t1;er1iC;lo;!eb,v3;a09eZiVjorn,laUoSrEuCyr1;ddy,rtKst2;er;aKeFiEuDyC;an,ce,on;ce,no;an,ce;nDtC;!t;dDtC;!on;an,on;dFnC;dDisC;lav;en,on;!foOl9y;bby,gd0rCyd;is;i0Lke;bElDshC;al;al,lL;ek;nIrCshoi;at,nEtC;!raC;m,nd;aDhaCie;rd;rd8;!iDjam3nCs1;ie,y;to;kaMlazs,nHrC;n9rDtC;!holomew;eCy;tt;ey;dCeD;ar,iC;le;ar1Nb1Dd16fon15gust3hm12i0Zja0Yl0Bm07nTputsiSrGsaFugustEveDyCziz;a0kh0;ry;o,us;hi;aMchiKiJjun,mHnEon,tCy0;em,hCie,ur8;ur;aDoC;!ld;ud,v;aCin;an,nd8;!el,ki;baCe;ld;ta;aq;aMdHgel8tCw6;hoFoC;iDnC;!i8y;ne;ny;er7rCy;eDzC;ej;!as,i,j,s,w;!s;s,tolC;iCy;!y;ar,iEmaCos;nu5r;el;ne,r,t;aVbSdBeJfHiGl01onFphonsEt1vC;aPin;on;e,o;so,zo;!sR;!onZrC;ed;c,jaHksFssaHxC;!andC;er,rC;e,os,u;andCei;ar,er,r;ndC;ro;en;eDrecC;ht;rt8;dd3in,n,sC;taC;ir;ni;dDm6;ar;an,en;ad,eC;d,t;in;so;aGi,olErDvC;ik;ian8;f8ph;!o;mCn;!a;dGeFraDuC;!bakr,lfazl;hCm;am;!l;allFel,oulaye,ulC;!lDrahm0;an;ah,o;ah;av,on",Uncountable:"trueยฆ0:2E;1:2L;2:33;a2Ub2Lc29d22e1Rf1Ng1Eh16i11j0Yk0Wl0Rm0Hn0Do0Cp03rZsLt9uran2Jv7w3you gu0E;a5his17i4oo3;d,l;ldlife,ne;rm8t1;apor,ernacul29i3;neg28ol1Otae;eDhBiAo8r4un3yranny;a,gst1B;aff2Oea1Ko4ue nor3;th;o08u3;bleshoot2Ose1Tt;night,othpas1Vwn3;foEsfoE;me off,n;er3und1;e,mod2S;a,nnis;aDcCeBhAi9ki8o7p6t4u3weepstak0;g1Unshi2Hshi;ati08e3;am,el;ace2Keci0;ap,cc1meth2C;n,ttl0;lk;eep,ingl0or1C;lf,na1Gri0;ene1Kisso1C;d0Wfe2l4nd,t3;i0Iurn;m1Ut;abi0e4ic3;e,ke15;c3i01laxa11search;ogni10rea10;a9e8hys7luto,o5re3ut2;amble,mis0s3ten20;en1Zs0L;l3rk;i28l0EyH; 16i28;a24tr0F;nt3ti0M;i0s;bstetri24vercrowd1Qxyg09;a5e4owada3utella;ys;ptu1Ows;il poliZtional securi2;aAe8o5u3;m3s1H;ps;n3o1K;ey,o3;gamy;a3cha0Elancholy,rchandi1Htallurgy;sl0t;chine3g1Aj1Hrs,thema1Q; learn1Cry;aught1e6i5ogi4u3;ck,g12;c,s1M;ce,ghtn18nguis1LteratWv1;ath1isVss;ara0EindergartPn3;icke0Aowled0Y;e3upit1;a3llyfiGwel0G;ns;ce,gnor6mp5n3;forma00ter3;net,sta07;atiSort3rov;an18;a7e6isto09o3ung1;ckey,mework,ne4o3rseradi8spitali2use arrest;ky;s2y;adquarteXre;ir,libut,ppiHs3;hi3te;sh;ene8l6o5r3um,ymnas11;a3eZ;niUss;lf,re;ut3yce0F;en; 3ti0W;edit0Hpo3;ol;aNicFlour,o4urnit3;ure;od,rgive3uri1wl;ness;arCcono0LducaBlectr9n7quip8thi0Pvery6x3;ist4per3;ti0B;en0J;body,o08th07;joy3tertain3;ment;ici2o3;ni0H;tiS;nings,th;emi02i6o4raugh3ynas2;ts;pe,wnstai3;rs;abet0ce,s3;honZrepu3;te;aDelciChAivi07l8o3urrency;al,ld w6mmenta5n3ral,ttIuscoB;fusiHt 3;ed;ry;ar;assi01oth0;es;aos,e3;eMwK;us;d,rO;a8i6lood,owlHread5u3;ntGtt1;er;!th;lliarJs3;on;g3ss;ga3;ge;cKdviJeroGirFmBn6ppeal court,r4spi3thleL;rin;ithmet3sen3;ic;i6y3;o4th3;ing;ne;se;en5n3;es2;ty;ds;craft;bi8d3nau7;yna3;mi6;ce;id,ous3;ti3;cs",Infinitive:"trueยฆ0:9G;1:9T;2:AD;3:90;4:9Z;5:84;6:AH;7:A9;8:92;9:A0;A:AG;B:AI;C:9V;D:8R;E:8O;F:97;G:6H;H:7D;a94b8Hc7Jd68e4Zf4Mg4Gh4Ai3Qj3Nk3Kl3Bm34nou48o2Vp2Equ2Dr1Es0CtZuTvRwI;aOeNiLors5rI;eJiI;ng,te;ak,st3;d5e8TthI;draw,er;a2d,ep;i2ke,nIrn;d1t;aIie;liADniAry;nJpI;ho8Llift;cov1dJear8Hfound8DlIplug,rav82tie,ve94;eaAo3X;erIo;cut,go,staAFvalA3w2G;aSeQhNoMrIu73;aIe72;ffi3Smp3nsI;aBfo7CpI;i8oD;pp3ugh5;aJiJrIwaD;eat5i2;nk;aImA0;ch,se;ck3ilor,keImp1r8L;! paD;a0Ic0He0Fh0Bi0Al08mugg3n07o05p02qu01tUuLwI;aJeeIim;p,t5;ll7Wy;bNccMffLggeCmmKppJrI;mouFpa6Zvi2;o0re6Y;ari0on;er,i4;e7Numb;li9KmJsiIveD;de,st;er9it;aMe8MiKrI;ang3eIi2;ng27w;fIng;f5le;b,gg1rI;t3ve;a4AiA;a4UeJit,l7DoI;il,of;ak,nd;lIot7Kw;icEve;atGeak,i0O;aIi6;m,y;ft,ng,t;aKi6CoJriIun;nk,v6Q;ot,rt5;ke,rp5tt1;eIll,nd,que8Gv1w;!k,m;aven9ul8W;dd5tis1Iy;a0FeKiJoI;am,t,ut;d,p5;a0Ab08c06d05f01group,hea00iZjoi4lXmWnVpTq3MsOtMup,vI;amp,eJiIo3B;sEve;l,rI;e,t;i8rI;ie2ofE;eLiKpo8PtIurfa4;o24rI;aHiBuctu8;de,gn,st;mb3nt;el,hra0lIreseF;a4e71;d1ew,o07;aHe3Fo2;a7eFiIo6Jy;e2nq41ve;mbur0nf38;r0t;inKleBocus,rJuI;el,rbiA;aBeA;an4e;aBu4;ei2k8Bla43oIyc3;gni39nci3up,v1;oot,uI;ff;ct,d,liIp;se,ze;tt3viA;aAenGit,o7;aWerUinpoiFlumm1LoTrLuI;b47ke,niArIt;poDsuI;aFe;eMoI;cKd,fe4XhibEmo7noJpo0sp1tru6vI;e,i6o5L;un4;la3Nu8;aGclu6dJf1occupy,sup0JvI;a6BeF;etermi4TiB;aGllu7rtr5Ksse4Q;cei2fo4NiAmea7plex,sIva6;eve8iCua6;mp1rItrol,ve;a6It6E;bOccuNmEpMutLverIwe;l07sJtu6Yu0wI;helm;ee,h1F;gr5Cnu2Cpa4;era7i4Ipo0;py,r;ey,seItaH;r2ss;aMe0ViJoIultiply;leCu6Pw;micJnIspla4;ce,g3us;!k;iIke,na9;m,ntaH;aPeLiIo0u3N;ke,ng1quIv5;eIi6S;fy;aKnIss5;d,gI;th5;rn,ve;ng2Gu1N;eep,idnJnI;e4Cow;ap;oHuI;gg3xtaI;po0;gno8mVnIrk;cTdRfQgeChPitia7ju8q1CsNtKun6EvI;a6eIo11;nt,rt,st;erJimi6BoxiPrI;odu4u6;aBn,pr03ru6C;iCpi8tIu8;all,il,ruB;abEibE;eCo3Eu0;iIul9;ca7;i7lu6;b5Xmer0pI;aLer4Uin9ly,oJrI;e3Ais6Bo2;rt,se,veI;riA;le,rt;aLeKiIoiCuD;de,jaInd1;ck;ar,iT;mp1ng,pp5raIve;ng5Mss;ath1et,iMle27oLrI;aJeIow;et;b,pp3ze;!ve5A;gg3ve;aTer45i5RlSorMrJuI;lf4Cndrai0r48;eJiIolic;ght5;e0Qsh5;b3XeLfeEgJsI;a3Dee;eIi2;!t;clo0go,shIwa4Z;ad3F;att1ee,i36;lt1st5;a0OdEl0Mm0FnXquip,rWsVtGvTxI;aRcPeDhOiNpJtIu6;ing0Yol;eKi8lIo0un9;aHoI;it,re;ct,di7l;st,t;a3oDu3B;e30lI;a10u6;lt,mi28;alua7oI;ke,l2;chew,pou0tab19;a0u4U;aYcVdTfSgQhan4joy,lPqOrNsuMtKvI;e0YisI;a9i50;er,i4rI;aHenGuC;e,re;iGol0F;ui8;ar9iC;a9eIra2ulf;nd1;or4;ang1oIu8;r0w;irc3lo0ou0ErJuI;mb1;oaGy4D;b3ct;bKer9pI;hasiIow1;ze;aKody,rI;a4oiI;d1l;lm,rk;ap0eBuI;ci40de;rIt;ma0Rn;a0Re04iKo,rIwind3;aw,ed9oI;wn;agno0e,ff1g,mi2Kne,sLvI;eIul9;rIst;ge,t;aWbVcQlod9mant3pNru3TsMtI;iIoDu37;lJngI;uiA;!l;ol2ua6;eJlIo0ro2;a4ea0;n0r0;a2Xe36lKoIu0S;uIv1;ra9;aIo0;im;a3Kur0;b3rm;af5b01cVduBep5fUliTmQnOpMrLsiCtaGvI;eIol2;lop;ch;a20i2;aDiBloIoD;re,y;oIy;te,un4;eJoI;liA;an;mEv1;a4i0Ao06raud,y;ei2iMla8oKrI;ee,yI;!pt;de,mIup3;missi34po0;de,ma7ph1;aJrief,uI;g,nk;rk;mp5rk5uF;a0Dea0h0Ai09l08oKrIurta1G;a2ea7ipp3uI;mb3;ales4e04habEinci6ll03m00nIrro6;cXdUfQju8no7qu1sLtKvI;eIin4;ne,r9y;aHin2Bribu7;er2iLoli2Epi8tJuI;lt,me;itu7raH;in;d1st;eKiJoIroFu0;rm;de,gu8rm;ss;eJoI;ne;mn,n0;eIlu6ur;al,i2;buCe,men4pI;eIi3ly;l,te;eBi6u6;r4xiC;ean0iT;rcumveFte;eJirp,oI;o0p;riAw;ncIre5t1ulk;el;a02eSi6lQoPrKuI;iXrIy;st,y;aLeaKiJoad5;en;ng;stfeLtX;ke;il,l11mba0WrrMth1;eIow;ed;!coQfrie1LgPhMliLqueaKstJtrIwild1;ay;ow;th;e2tt3;a2eJoI;ld;ad;!in,ui3;me;bysEckfi8ff3tI;he;b15c0Rd0Iff0Ggree,l0Cm09n03ppZrXsQttOuMvJwaE;it;eDoI;id;rt;gIto0X;meF;aIeCraB;ch,in;pi8sJtoI;niA;aKeIi04u8;mb3rt,ss;le;il;re;g0Hi0ou0rI;an9i2;eaKly,oiFrI;ai0o2;nt;r,se;aMi0GnJtI;icipa7;eJoIul;un4y;al;ly0;aJu0;se;lga08ze;iKlI;e9oIu6;t,w;gn;ix,oI;rd;a03jNmiKoJsoI;rb;pt,rn;niIt;st1;er;ouJuC;st;rn;cLhie2knowled9quiItiva7;es4re;ce;ge;eQliOoKrJusI;e,tom;ue;mIst;moJpI;any,liA;da7;ma7;te;pt;andPduBet,i6oKsI;coKol2;ve;liArt,uI;nd;sh;de;ct;on",Person:"trueยฆ0:1Q;a29b1Zc1Md1Ee18f15g13h0Ri0Qj0Nk0Jl0Gm09n06o05p00rPsItCusain bolt,v9w4xzibit,y1;anni,oko on2uji,v1;an,es;en,o;a3ednesday adams,i2o1;lfram,o0Q;ll ferrell,z khalifa;lt disn1Qr1;hol,r0G;a2i1oltai06;n dies0Zrginia wo17;lentino rossi,n goG;a4h3i2ripp,u1yra banks;lZpac shakur;ger woods,mba07;eresa may,or;kashi,t1ylor;um,ya1B;a5carlett johanss0h4i3lobodan milosevic,no2ocr1Lpider1uperm0Fwami; m0Em0E;op dogg,w whi1H;egfried,nbad;akespeaTerlock holm1Sia labeouf;ddam hussa16nt1;a cla11ig9;aAe6i5o3u1za;mi,n dmc,paul,sh limbau1;gh;bin hood,d stew16nald1thko;in0Mo;han0Yngo starr,valdo;ese witherspo0i1mbrandt;ll2nh1;old;ey,y;chmaninoff,ffi,iJshid,y roma1H;a4e3i2la16o1uff daddy;cahont0Ie;lar,p19;le,rZ;lm17ris hilt0;leg,prah winfr0Sra;a2e1iles cra1Bostradam0J; yo,l5tt06wmQ;pole0s;a5e4i2o1ubar03;by,lie5net,rriss0N;randa ju1tt romn0M;ly;rl0GssiaB;cklemo1rkov,s0ta hari,ya angelou;re;ady gaga,e1ibera0Pu;bron jam0Xch wale1e;sa;anye west,e3i1obe bryant;d cudi,efer suther1;la0P;ats,sha;a2effers0fk,k rowling,rr tolki1;en;ck the ripp0Mwaharlal nehru,y z;liTnez,ron m7;a7e5i3u1;lk hog5mphrey1sa01;! bog05;l1tl0H;de; m1dwig,nry 4;an;ile selassFlle ber4m3rrison1;! 1;ford;id,mo09;ry;ast0iannis,o1;odwPtye;ergus0lorence nightinga08r1;an1ederic chopN;s,z;ff5m2nya,ustaXzeki1;el;eril lagasse,i1;le zatop1nem;ek;ie;a6e4i2octor w1rake;ho;ck w1ego maradoC;olf;g1mi lovaOnzel washingt0;as;l1nHrth vadR;ai lNt0;a8h5lint0o1thulhu;n1olio;an,fuci1;us;on;aucKop2ristian baMy1;na;in;millo,ptain beefhe4r1;dinal wols2son1;! palmF;ey;art;a8e5hatt,i3oHro1;ck,n1;te;ll g1ng crosby;atB;ck,nazir bhut2rtil,yon1;ce;to;nksy,rack ob1;ama;l 6r3shton kutch2vril lavig8yn ra1;nd;er;chimed2istot1;le;es;capo2paci1;no;ne",Adjective:"trueยฆ0:AI;1:BS;2:BI;3:BA;4:A8;5:84;6:AV;7:AN;8:AF;9:7H;A:BQ;B:AY;C:BC;D:BH;E:9Y;aA2b9Ec8Fd7We79f6Ng6Eh61i4Xj4Wk4Tl4Im41n3Po36p2Oquart7Pr2Ds1Dt14uSvOwFye29;aMeKhIiHoF;man5oFrth7G;dADzy;despreB1n w97s86;acked1UoleF;!sa6;ather1PeFll o70ste1D;!k5;nt1Ist6Ate4;aHeGiFola5T;bBUce versa,gi3Lle;ng67rsa5R;ca1gBSluAV;lt0PnLpHrGsFttermoBL;ef9Ku3;b96ge1; Hb32pGsFtiAH;ca6ide d4R;er,i85;f52to da2;a0Fbeco0Hc0Bd04e02f01gu1XheaBGiXkn4OmUnTopp06pRrNsJtHus0wF;aFiel3K;nt0rra0P;app0eXoF;ld,uS;eHi37o5ApGuF;perv06spec39;e1ok9O;en,ttl0;eFu5;cogn06gul2RlGqu84sF;erv0olv0;at0en33;aFrecede0E;id,rallel0;am0otic0;aFet;rri0tF;ch0;nFq26vers3;sur0terFv7U;eFrupt0;st0;air,inish0orese98;mploy0n7Ov97xpF;ect0lain0;eHisFocume01ue;clFput0;os0;cid0rF;!a8Scov9ha8Jlyi8nea8Gprivileg0sMwF;aFei9I;t9y;hGircumcFonvin2U;is0;aFeck0;lleng0rt0;b20ppea85ssuGttend0uthorF;iz0;mi8;i4Ara;aLeIhoHip 25oGrF;anspare1encha1i2;geth9leADp notch,rpB;rny,ugh6H;ena8DmpGrFs6U;r49tia4;eCo8P;leFst4M;nt0;a0Dc09e07h06i04ki03l01mug,nobbi4XoVpRqueami4XtKuFymb94;bHccinAi generis,pFr5;erFre7N;! dup9b,vi70;du0li7Lp6IsFurb7J;eq9Atanda9X;aKeJi16o2QrGubboFy4Q;rn;aightFin5GungS; fFfF;or7V;adfa9Pri6;lwa6Ftu82;arHeGir6NlendBot Fry;on;c3Qe1S;k5se; call0lImb9phistic16rHuFviV;ndFth1B;proof;dBry;dFub6; o2A;e60ipF;pe4shod;ll0n d7R;g2HnF;ceEg6ist9;am3Se9;co1Zem5lfFn6Are7; suf4Xi43;aGholFient3A;ar5;rlFt4A;et;cr0me,tisfac7F;aOeIheumatoBiGoF;bu8Ztt7Gy3;ghtFv3; 1Sf6X;cJdu8PlInown0pro69sGtF;ard0;is47oF;lu2na1;e1Suc45;alcit8Xe1ondi2;bBci3mpa1;aSePicayu7laOoNrGuF;bl7Tnjabi;eKiIoF;b7VfGmi49pFxi2M;er,ort81;a7uD;maFor,sti7va2;!ry;ciDexis0Ima2CpaB;in55puli8G;cBid;ac2Ynt 3IrFti2;ma40tFv7W;!i3Z;i2YrFss7R;anoBtF; 5XiF;al,s5V;bSffQkPld OnMrLth9utKverF;!aIbMdHhGni75seas,t,wF;ei74rou74;a63e7A;ue;ll;do1Ger,si6A;d3Qg2Aotu5Z; bFbFe on o7g3Uli7;oa80;fashion0school;!ay; gua7XbFha5Uli7;eat;eHligGsF;ce7er0So1C;at0;diFse;a1e1;aOeNiMoGuF;anc0de; moEnHrthFt6V;!eFwe7L;a7Krn;chaGdescri7Iprof30sF;top;la1;ght5;arby,cessa4ighbor5wlyw0xt;k0usiaFv3;ti8;aQeNiLoHuF;dIltiF;facet0p6;deHlGnFot,rbBst;ochro4Xth5;dy;rn,st;ddle ag0nF;dbloZi,or;ag9diocEga,naGrFtropolit4Q;e,ry;ci8;cIgenta,inHj0Fkeshift,mmGnFri4Oscu61ver18;da5Dy;ali4Lo4U;!stream;abEho;aOeLiIoFumberi8;ngFuti1R;stan3RtF;erm,i4H;ghtGteraF;l,ry,te;heart0wei5O;ft JgFss9th3;al,eFi0M;nda4;nguBps0te5;apGind5noF;wi8;ut;ad0itte4uniW;ce co0Hgno6Mll0Cm04nHpso 2UrF;a2releF;va1; ZaYcoWdReQfOgrNhibi4Ri05nMoLsHtFvalu5M;aAeF;nDrdepe2K;a7iGolFuboI;ub6ve1;de,gF;nifica1;rdi5N;a2er;own;eriIiLluenVrF;ar0eq5H;pt,rt;eHiGoFul1O;or;e,reA;fiFpe26termi5E;ni2;mpFnsideCrreA;le2;ccuCdeq5Ene,ppr4J;fFsitu,vitro;ro1;mJpF;arHeGl15oFrop9;li2r11;n2LrfeA;ti3;aGeFi18;d4BnD;tuE;egGiF;c0YteC;al,iF;tiF;ma2;ld;aOelNiLoFuma7;a4meInHrrGsFur5;ti6;if4E;e58o3U; ma3GsF;ick;ghfalut2HspF;an49;li00pf33;i4llow0ndGrdFtM; 05coEworki8;sy,y;aLener44iga3Blob3oKrGuF;il1Nng ho;aFea1Fizzl0;cGtF;ef2Vis;ef2U;ld3Aod;iFuc2D;nf2R;aVeSiQlOoJrF;aGeFil5ug3;q43tf2O;gFnt3S;i6ra1;lk13oHrF; keeps,eFge0Vm9tu41;g0Ei2Ds3R;liF;sh;ag4Mowe4uF;e1or45;e4nF;al,i2;d Gmini7rF;ti6ve1;up;bl0lDmIr Fst pac0ux;oGreacF;hi8;ff;ed,ili0R;aXfVlTmQnOqu3rMthere3veryday,xF;aApIquisi2traHuF;be48lF;ta1;!va2L;edRlF;icF;it;eAstF;whi6; Famor0ough,tiE;rou2sui2;erGiF;ne1;ge1;dFe2Aoq34;er5;ficF;ie1;g9sF;t,ygF;oi8;er;aWeMiHoGrFue;ea4owY;ci6mina1ne,r31ti8ubQ;dact2Jfficult,m,sGverF;ge1se;creGePjoi1paCtF;a1inA;et,te; Nadp0WceMfiLgeneCliJmuEpeIreliAsGvoF;id,ut;pFtitu2ul1L;eCoF;nde1;ca2ghF;tf13;a1ni2;as0;facto;i5ngero0I;ar0Ce09h07i06l05oOrIuF;rmudgeon5stoma4teF;sy;ly;aIeHu1EystalF; cleFli7;ar;epy;fFv17z0;ty;erUgTloSmPnGrpoCunterclVveFy;rt;cLdJgr21jIsHtrF;aFi2;dic0Yry;eq1Yta1;oi1ug3;escenFuN;di8;a1QeFiD;it0;atoDmensuCpF;ass1SulF;so4;ni3ss3;e1niza1;ci1J;ockwiD;rcumspeAvil;eFintzy;e4wy;leGrtaF;in;ba2;diac,ef00;a00ePiLliJoGrFuck nak0;and new,isk,on22;gGldface,naF; fi05fi05;us;nd,tF;he;gGpartisFzarE;an;tiF;me;autifOhiNlLnHsFyoN;iWtselF;li8;eGiFt;gn;aFfi03;th;at0oF;v0w;nd;ul;ckwards,rF;e,rT; priori,b13c0Zd0Tf0Ng0Ihe0Hl09mp6nt06pZrTsQttracti0MuLvIwF;aGkF;wa1B;ke,re;ant garGeraF;ge;de;diIsteEtF;heFoimmu7;nt07;re;to4;hGlFtu2;eep;en;bitIchiv3roHtF;ifiFsy;ci3;ga1;ra4;ry;pFt;aHetizi8rF;oprF;ia2;llFre1;ed,i8;ng;iquFsy;at0e;ed;cohKiJkaHl,oGriFterX;ght;ne,of;li7;ne;ke,ve;olF;ic;ad;ain07gressiIi6rF;eeF;ab6;le;ve;fGraB;id;ectGlF;ue1;ioF;na2; JaIeGvF;erD;pt,qF;ua2;ma1;hoc,infinitum;cuCquiGtu3u2;al;esce1;ra2;erSjeAlPoNrKsGuF;nda1;e1olu2trF;aAuD;se;te;eaGuF;pt;st;aFve;rd;aFe;ze;ct;ra1;nt",Pronoun:"trueยฆelle,h3i2me,she,th0us,we,you;e0ou;e,m,y;!l,t;e,im",Preposition:"trueยฆaPbMcLdKexcept,fIinGmid,notwithstandiWoDpXqua,sCt7u4v2w0;/o,hereSith0;! whHin,oW;ersus,i0;a,s a vis;n1p0;!on;like,til;h1ill,oward0;!s;an,ereby,r0;ough0u;!oM;ans,ince,o that,uch G;f1n0ut;!to;!f;! 0to;effect,part;or,r0;om;espite,own,u3;hez,irca;ar1e0oBy;sides,tween;ri7;bo8cross,ft7lo6m4propos,round,s1t0;!op;! 0;a whole,long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"trueยฆ0:18;1:1E;2:1D;3:14;a1Db15c0Sd0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Am01new UoRpKqueens parkJreal salt lake,sBt6utah jazz,vancouver whitecaps,w4yW;ashington 4h10;natio1Mredski2wizar0W;ampa bay 7e6o4;ronto 4ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasD;buccanee0ra0K;a8eattle 6porting kansas0Wt4; louis 4oke0V;c1Drams;marine0s4;eah13ounH;cramento Rn 4;antonio spu0diego 4francisco gJjose earthquak1;char08paB; ran07;a9h6ittsburgh 5ortland t4;imbe0rail blaze0;pirat1steele0;il4oenix su2;adelphia 4li1;eagl1philNunE;dr1;akland 4klahoma city thunder,rlando magic;athle0Lrai4;de0;england 8orleans 7york 4;g5je3knYme3red bul0Xy4;anke1;ian3;pelica2sain3;patrio3revolut4;ion;anchEeAi4ontreal impact;ami 8lwaukee b7nnesota 4;t5vi4;kings;imberwolv1wi2;rewe0uc0J;dolphi2heat,marli2;mphis grizz4ts;li1;a6eic5os angeles 4;clippe0dodFlaB;esterV; galaxy,ke0;ansas city 4nF;chiefs,roya0D; pace0polis col3;astr05dynamo,rocke3texa2;olden state warrio0reen bay pac4;ke0;allas 8e4i04od6;nver 6troit 4;lio2pisto2ti4;ge0;broncYnugge3;cowbo5maver4;icZ;ys;arEelLhAincinnati 8leveland 6ol4;orado r4umbus crew sc;api7ocki1;brow2cavalie0guar4in4;dia2;bengaVre4;ds;arlotte horAicago 4;b5cubs,fire,wh4;iteB;ea0ulQ;diff4olina panthe0; city;altimore Alackburn rove0oston 6rooklyn 4uffalo bilN;ne3;ts;cel5red4; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 4;brav1falco2h4;awA;ns;es;on villa,r4;os;c6di4;amondbac4;ks;ardi4;na4;ls",Unit:"trueยฆa07b04cXdWexVfTgRhePinYjoule0BkMlJmDnan08oCp9quart0Bsq ft,t7volts,w6y2ze3ยฐ1ยต0;g,s;c,f,n;dVear1o0;ttR; 0s 0;old;att,b;erNon0;!ne02;ascals,e1i0;cXnt00;rcent,tJ;hms,unceY;/s,e4i0mยฒ,ยฒ,ยณ;/h,cro2l0;e0liK;!ยฒ;grLsR;gCtJ;it1u0;menQx;erPreP;b5elvins,ilo1m0notO;/h,ph,ยฒ;!byGgrEmCs;ct0rtzL;aJogrC;allonJb0ig3rB;ps;a0emtEl oz,t4;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;ยฒ,ยณ;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s","Noun|Gerund":"trueยฆ0:3O;1:3M;2:3N;3:3D;4:32;5:2V;6:3E;7:3K;8:36;9:3J;A:3B;a3Pb37c2Jd27e23f1Vg1Sh1Mi1Ij1Gk1Dl18m13n11o0Wp0Pques0Sr0EsTtNunderMvKwFyDzB;eroi0oB;ni0o3P;aw2eB;ar2l3;aEed4hispe5i5oCrB;ap8est3i1;n0ErB;ki0r31;i1r2s9tc9;isualizi0oB;lunt1Vti0;stan4ta6;aFeDhin6iCraBy8;c6di0i2vel1M;mi0p8;aBs1;c9si0;l6n2s1;aUcReQhOiMkatKl2Wmo6nowJpeItFuCwB;ea5im37;b35f0FrB;fi0vB;e2Mi2J;aAoryt1KrCuB;d2KfS;etc9ugg3;l3n4;bCi0;ebBi0;oar4;gnBnAt1;a3i0;ip8oB;p8rte2u1;a1r27t1;hCo5reBulp1;a2Qe2;edu3oo3;i3yi0;aKeEi4oCuB;li0n2;oBwi0;fi0;aFcEhear7laxi0nDpor1sB;pon4tructB;r2Iu5;de5;or4yc3;di0so2;p8ti0;aFeacek20laEoCrBublis9;a1Teten4in1oces7;iso2siB;tio2;n2yi0;ckaAin1rB;ki0t1O;fEpeDrganiCvB;erco24ula1;si0zi0;ni0ra1;fe5;avi0QeBur7;gotia1twor6;aDeCi2oB;de3nito5;a2dita1e1ssaA;int0XnBrke1;ifUufactu5;aEeaDiBodAyi0;cen7f1mi1stB;e2i0;r2si0;n4ug9;iCnB;ea4it1;c6l3;ogAuB;dAgg3stif12;ci0llust0VmDnBro2;nova1sp0NterBven1;ac1vie02;agi2plo4;aDea1iCoBun1;l4w3;ki0ri0;nd3rB;roWvB;es1;aCene0Lli4rBui4;ee1ie0N;rde2the5;aHeGiDlCorBros1un4;e0Pmat1;ir1oo4;gh1lCnBs9;anZdi0;i0li0;e3nX;r0Zscina1;a1du01nCxB;erci7plo5;chan1di0ginB;ee5;aLeHiGoub1rCum8wB;el3;aDeCiB;bb3n6vi0;a0Qs7;wi0;rTscoDvi0;ba1coZlBvelo8;eCiB;ve5;ga1;nGti0;aVelebUhSlPoDrBur3yc3;aBos7yi0;f1w3;aLdi0lJmFnBo6pi0ve5;dDsCvinB;ci0;trBul1;uc1;muniDpB;lBo7;ai2;ca1;lBo5;ec1;c9ti0;ap8eaCimToBubT;ni0t9;ni0ri0;aBee5;n1t1;ra1;m8rCs1te5;ri0;vi0;aPeNitMlLoGrDuB;dge1il4llBr8;yi0;an4eat9oadB;cas1;di0;a1mEokB;i0kB;ee8;pi0;bi0;es7oa1;c9i0;gin2lonAt1;gi0;bysit1c6ki0tt3;li0;ki0;bando2cGdverti7gi0pproac9rgDssuCtB;trac1;mi0;ui0;hi0;si0;coun1ti0;ti0;ni0;ng",PhrasalVerb:"trueยฆ0:92;1:96;2:8H;3:8V;4:8A;5:83;6:85;7:98;8:90;9:8G;A:8X;B:8R;C:8U;D:8S;E:70;F:97;G:8Y;H:81;I:7H;J:79;a9Fb7Uc6Rd6Le6Jf5Ig50h4Biron0j47k40l3Em31n2Yo2Wp2Cquiet Hr1Xs0KtZuXvacuu6QwNyammerBzK;ero Dip LonK;e0k0;by,ov9up;aQeMhLiKor0Mrit19;mp0n3Fpe0r5s5;ackAeel Di0S;aLiKn33;gh 3Wrd0;n Dr K;do1in,oJ;it 79k5lk Lrm 69sh Kt83v60;aw3do1o7up;aw3in,oC;rgeBsK;e 2herE;a00eYhViRoQrMuKypP;ckErn K;do1in,oJup;aLiKot0y 30;ckl7Zp F;ck HdK;e 5Y;n7Wp 3Es5K;ck MdLe Kghten 6me0p o0Rre0;aw3ba4do1in,up;e Iy 2;by,oG;ink Lrow K;aw3ba4in,up;ba4ov9up;aKe 77ll62;m 2r 5M;ckBke Llk K;ov9shit,u47;aKba4do1in,leave,o4Dup;ba4ft9pa69w3;a0Vc0Te0Mh0Ii0Fl09m08n07o06p01quar5GtQuOwK;earMiK;ngLtch K;aw3ba4o8K; by;cKi6Bm 2ss0;k 64;aReQiPoNrKud35;aigh2Det75iK;ke 7Sng K;al6Yup;p Krm2F;by,in,oG;c3Ln3Lr 2tc4O;p F;c3Jmp0nd LrKveAy 2O;e Ht 2L;ba4do1up;ar3GeNiMlLrKurB;ead0ingBuc5;a49it 6H;c5ll o3Cn 2;ak Fe1Xll0;a3Bber 2rt0und like;ap 5Vow Duggl5;ash 6Noke0;eep NiKow 6;cLp K;o6Dup;e 68;in,oK;ff,v9;de19gn 4NnKt 6Gz5;gKkE; al6Ale0;aMoKu5W;ot Kut0w 7M;aw3ba4f48oC;c2WdeEk6EveA;e Pll1Nnd Orv5tK; Ktl5J;do1foLin,o7upK;!on;ot,r5Z;aw3ba4do1in,o33up;oCto;al66out0rK;ap65ew 6J;ilAv5;aXeUiSoOuK;b 5Yle0n Kstl5;aLba4do1inKo2Ith4Nu5P;!to;c2Xr8w3;ll Mot LpeAuK;g3Ind17;a2Wf3Po7;ar8in,o7up;ng 68p oKs5;ff,p18;aKelAinEnt0;c6Hd K;o4Dup;c27t0;aZeYiWlToQrOsyc35uK;ll Mn5Kt K;aKba4do1in,oJto47up;pa4Dw3;a3Jdo1in,o21to45up;attleBess KiNop 2;ah2Fon;iLp Kr4Zu1Gwer 6N;do1in,o6Nup;nt0;aLuK;gEmp 6;ce u20y 6D;ck Kg0le 4An 6p5B;oJup;el 5NncilE;c53ir 39n0ss MtLy K;ba4oG; Hc2R;aw3ba4in,oJ;pKw4Y;e4Xt D;aLerd0oK;dAt53;il Hrrow H;aTeQiPoLuK;ddl5ll I;c1FnkeyMp 6uthAve K;aKdo1in,o4Lup;l4Nw3; wi4K;ss0x 2;asur5e3SlLss K;a21up;t 6;ke Ln 6rKs2Ax0;k 6ryA;do,fun,oCsure,up;a02eViQoLuK;ck0st I;aNc4Fg MoKse0;k Kse4D;aft9ba4do1forw37in56o0Zu46;in,oJ;d 6;e NghtMnLsKve 00;ten F;e 2k 2; 2e46;ar8do1in;aMt LvelK; oC;do1go,in,o7up;nEve K;in,oK;pKut;en;c5p 2sh LtchBughAy K;do1o59;in4Po7;eMick Lnock K;do1oCup;oCup;eLy K;in,up;l Ip K;aw3ba4do1f04in,oJto,up;aMoLuK;ic5mpE;ke3St H;c43zz 2;a01eWiToPuK;nLrrKsh 6;y 2;keLt K;ar8do1;r H;lKneErse3K;d Ke 2;ba4dKfast,o0Cup;ear,o1;de Lt K;ba4on,up;aw3o7;aKlp0;d Ml Ir Kt 2;fKof;rom;f11in,o03uW;cPm 2nLsh0ve Kz2P;at,it,to;d Lg KkerP;do1in,o2Tup;do1in,oK;ut,v9;k 2;aZeTive Rloss IoMrLunK; f0S;ab hold,in43ow 2U; Kof 2I;aMb1Mit,oLr8th1IuK;nd9;ff,n,v9;bo7ft9hQw3;aw3bKdo1in,oJrise,up,w3;a4ir2H;ar 6ek0t K;aLb1Fdo1in,oKr8up;ff,n,ut,v9;cLhKl2Fr8t,w3;ead;ross;d aKng 2;bo7;a0Ee07iYlUoQrMuK;ck Ke2N;ar8up;eLighten KownBy 2;aw3oG;eKshe27; 2z5;g 2lMol Krk I;aKwi20;bo7r8;d 6low 2;aLeKip0;sh0;g 6ke0mKrKtten H;e F;gRlPnNrLsKzzle0;h F;e Km 2;aw3ba4up;d0isK;h 2;e Kl 1T;aw3fPin,o7;ht ba4ure0;ePnLsK;s 2;cMd K;fKoG;or;e D;d04l 2;cNll Krm0t1G;aLbKdo1in,o09sho0Eth08victim;a4ehi2O;pa0C;e K;do1oGup;at Kdge0nd 12y5;in,o7up;aOi1HoNrK;aLess 6op KuN;aw3b03in,oC;gBwB; Ile0ubl1B;m 2;a0Ah05l02oOrLut K;aw3ba4do1oCup;ackBeep LoKy0;ss Dwd0;by,do1in,o0Uup;me NoLuntK; o2A;k 6l K;do1oG;aRbQforOin,oNtKu0O;hLoKrue;geth9;rough;ff,ut,v9;th,wK;ard;a4y;paKr8w3;rt;eaLose K;in,oCup;n 6r F;aNeLiK;ll0pE;ck Der Kw F;on,up;t 2;lRncel0rOsMtch LveE; in;o1Nup;h Dt K;doubt,oG;ry LvK;e 08;aw3oJ;l Km H;aLba4do1oJup;ff,n,ut;r8w3;a0Ve0MiteAl0Fo04rQuK;bblNckl05il0Dlk 6ndl05rLsKtMy FzzA;t 00;n 0HsK;t D;e I;ov9;anWeaUiLush K;oGup;ghQng K;aNba4do1forMin,oLuK;nd9p;n,ut;th;bo7lKr8w3;ong;teK;n 2;k K;do1in,o7up;ch0;arTg 6iRn5oPrNssMttlLunce Kx D;aw3ba4;e 6; ar8;e H;do1;k Dt 2;e 2;l 6;do1up;d 2;aPeed0oKurt0;cMw K;aw3ba4do1o7up;ck;k K;in,oC;ck0nk0stA; oQaNef 2lt0nd K;do1ov9up;er;up;r Lt K;do1in,oCup;do1o7;ff,nK;to;ck Pil0nMrgLsK;h D;ainBe D;g DkB; on;in,o7;aw3do1in,oCup;ff,ut;ay;ct FdQir0sk MuctionA; oG;ff;ar8o7;ouK;nd; o7;d K;do1oKup;ff,n;wn;o7up;ut",ProperNoun:"trueยฆaIbDc8dalhousHe7f5gosford,h4iron maiden,kirby,landsdowne,m2nis,r1s0wembF;herwood,paldiB;iel,othwe1;cgi0ercedes,issy;ll;intBudsB;airview,lorence,ra0;mpt9nco;lmo,uro;a1h0;arlt6es5risti;rl0talina;et4i0;ng;arb3e0;et1nt0rke0;ley;on;ie;bid,jax","Person|Place":"trueยฆa8d6h4jordan,k3orlando,s1vi0;ctor9rgin9;a0ydney;lvador,mara,ntia4;ent,obe;amil0ous0;ton;arw2ie0;go;lexandr1ust0;in;ia",LastName:"trueยฆ0:BR;1:BF;2:B5;3:BH;4:AX;5:9Y;6:B6;7:BK;8:B0;9:AV;A:AL;B:8Q;C:8G;D:7K;E:BM;F:AH;aBDb9Zc8Wd88e81f7Kg6Wh64i60j5Lk4Vl4Dm39n2Wo2Op25quispe,r1Ls0Pt0Ev03wTxSyKzG;aIhGimmerm6A;aGou,u;ng,o;khar5ytsE;aKeun9BiHoGun;koya32shiBU;!lG;diGmaz;rim,z;maGng;da,g52mo83sGzaC;aChiBV;iao,u;aLeJiHoGright,u;jcA5lff,ng;lGmm0nkl0sniewsC;kiB1liams33s3;bGiss,lt0;b,er,st0;a6Vgn0lHtG;anabe,s3;k0sh,tG;e2Non;aLeKiHoGukD;gt,lk5roby5;dHllalGnogr3Kr1Css0val3S;ba,ob1W;al,ov4;lasHsel8W;lJn dIrgBEsHzG;qu7;ilyEqu7siljE;en b6Aijk,yk;enzueAIverde;aPeix1VhKi2j8ka43oJrIsui,uG;om5UrG;c2n0un1;an,emblA7ynisC;dorAMlst3Km4rrAth;atch0i8UoG;mHrG;are84laci79;ps3sG;en,on;hirDkah9Mnaka,te,varA;a06ch01eYhUiRmOoMtIuHvGzabo;en9Jobod3N;ar7bot4lliv2zuC;aIeHoG;i7Bj4AyanAB;ele,in2FpheBvens25;l8rm0;kol5lovy5re7Tsa,to,uG;ng,sa;iGy72;rn5tG;!h;l71mHnGrbu;at9cla9Egh;moBo7M;aIeGimizu;hu,vchG;en8Luk;la,r1G;gu9infe5YmGoh,pulveA7rra5P;jGyG;on5;evi6iltz,miHneid0roed0uGwarz;be3Elz;dHtG;!t,z;!t;ar4Th8ito,ka4OlJnGr4saCto,unde19v4;ch7dHtGz;a5Le,os;b53e16;as,ihDm4Po0Y;aVeSiPoJuHyG;a6oo,u;bio,iz,sG;so,u;bKc8Fdrigue67ge10j9YmJosevelt,sItHux,wG;e,li6;a9Ch;enb4Usi;a54e4L;erts15i93;bei4JcHes,vGzzo;as,e9;ci,hards12;ag2es,iHut0yG;es,nol5N;s,t0;dImHnGsmu97v6C;tan1;ir7os;ic,u;aUeOhMiJoHrGut8;asad,if6Zochazk27;lishc2GpGrti72u10we76;e3Aov51;cHe45nG;as,to;as70hl0;aGillips;k,m,n6I;a3Hde3Wete0Bna,rJtG;ersHrovGters54;!a,ic;!en,on;eGic,kiBss3;i9ra,tz,z;h86k,padopoulIrk0tHvG;ic,l4N;el,te39;os;bMconn2Ag2TlJnei6PrHsbor6XweBzG;dem7Rturk;ella4DtGwe6N;ega,iz;iGof7Hs8I;vGyn1R;ei9;aSri1;aPeNiJoGune50ym2;rHvGwak;ak4Qik5otn66;odahl,r4S;cholsZeHkolGls4Jx3;ic,ov84;ls1miG;!n1;ils3mG;co4Xec;gy,kaGray2sh,var38;jiGmu9shiG;ma;a07c04eZiWoMuHyeG;rs;lJnIrGssoli6S;atGp03r7C;i,ov4;oz,te58;d0l0;h2lOnNo0RrHsGza1A;er,s;aKeJiIoz5risHtG;e56on;!on;!n7K;au,i9no,t5J;!lA;r1Btgome59;i3El0;cracFhhail5kkeHlG;l0os64;ls1;hmeJiIj30lHn3Krci0ssiGyer2N;!er;n0Po;er,j0;dDti;cartHlG;aughl8e2;hy;dQe7Egnu68i0jer3TkPmNnMrItHyG;er,r;ei,ic,su21thews;iHkDquAroqu8tinG;ez,s;a5Xc,nG;!o;ci5Vn;a5UmG;ad5;ar5e6Kin1;rig77s1;aVeOiLoJuHyG;!nch;k4nGo;d,gu;mbarGpe3Fvr4we;di;!nGu,yana2B;coln,dG;b21holm,strom;bedEfeKhIitn0kaHn8rGw35;oy;!j;m11tG;in1on1;bvGvG;re;iGmmy,ng,rs2Qu,voie,ws3;ne,t1F;aZeYh2iWlUnez50oNrJuHvar2woG;k,n;cerGmar68znets5;a,o34;aHem0isGyeziu;h23t3O;m0sni4Fus3KvG;ch4O;bay57ch,rh0Usk16vaIwalGzl5;czGsC;yk;cIlG;!cGen4K;huk;!ev4ic,s;e8uiveG;rt;eff0kGl4mu9nnun1;ucF;ll0nnedy;hn,llKminsCne,pIrHstra3Qto,ur,yGzl5;a,s0;j0Rls22;l2oG;or;oe;aPenOha6im14oHuG;ng,r4;e32hInHrge32u6vG;anD;es,ss3;anHnsG;en,on,t3;nesGs1R;en,s1;kiBnings,s1;cJkob4EnGrv0E;kDsG;en,sG;en0Ion;ks3obs2A;brahimDglesi5Nke5Fl0Qno07oneIshikHto,vanoG;u,v54;awa;scu;aVeOiNjaltal8oIrist50uG;!aGb0ghAynh;m2ng;a6dz4fIjgaa3Hk,lHpUrGwe,x3X;ak1Gvat;mAt;er,fm3WmG;ann;ggiBtchcock;iJmingw4BnHrGss;nand7re9;deGriks1;rs3;kkiHnG;on1;la,n1;dz4g1lvoQmOns0ZqNrMsJuIwHyG;asFes;kiB;g1ng;anHhiG;mo14;i,ov0J;di6p0r10t;ue;alaG;in1;rs1;aVeorgUheorghe,iSjonRoLrJuGw3;errGnnar3Co,staf3Ctierr7zm2;a,eG;ro;ayli6ee2Lg4iffithGub0;!s;lIme0UnHodGrbachE;e,m2;calvAzale0S;dGubE;bGs0E;erg;aj,i;bs3l,mGordaO;en7;iev3U;gnMlJmaIndFo,rGsFuthi0;cGdn0za;ia;ge;eaHlG;agh0i,o;no;e,on;aVerQiLjeldsted,lKoIrHuG;chs,entAji41ll0;eem2iedm2;ntaGrt8urni0wl0;na;emi6orA;lipIsHtzgeraG;ld;ch0h0;ovG;!ic;hatDnanIrG;arGei9;a,i;deY;ov4;b0rre1D;dKinsJriksIsGvaB;cob3GpGtra3D;inoza,osiQ;en,s3;te8;er,is3warG;ds;aXePiNjurhuMoKrisco15uHvorakG;!oT;arte,boHmitru,nn,rGt3C;and,ic;is;g2he0Omingu7nErd1ItG;to;us;aGcki2Hmitr2Ossanayake,x3;s,z; JbnaIlHmirGrvisFvi,w2;!ov4;gado,ic;th;bo0groot,jo6lHsilGvriA;va;a cruz,e3uG;ca;hl,mcevsCnIt2WviG;dGes,s;ov,s3;ielsGku22;!en;ki;a0Be06hRiobQlarkPoIrGunningh1H;awfo0RivGuz;elli;h1lKntJoIrGs2Nx;byn,reG;a,ia;ke,p0;i,rer2K;em2liB;ns;!e;anu;aOeMiu,oIristGu6we;eGiaG;ns1;i,ng,p9uHwGy;!dH;dGng;huJ;!n,onGu6;!g;kJnIpm2ttHudhGv7;ry;erjee,o14;!d,g;ma,raboG;rty;bJl0Cng4rG;eghetHnG;a,y;ti;an,ota1C;cerAlder3mpbeLrIstGvadi0B;iGro;llo;doHl0Er,t0uGvalho;so;so,zo;ll;a0Fe01hYiXlUoNrKuIyG;rLtyG;qi;chan2rG;ke,ns;ank5iem,oGyant;oks,wG;ne;gdan5nIruya,su,uchaHyKziG;c,n5;rd;darGik;enG;ko;ov;aGond15;nco,zG;ev4;ancFshw16;a08oGuiy2;umGwmG;ik;ckRethov1gu,ktPnNrG;gJisInG;ascoGds1;ni;ha;er,mG;anG;!n;gtGit7nP;ss3;asF;hi;er,hG;am;b4ch,ez,hRiley,kk0ldw8nMrIshHtAu0;es;ir;bInHtlGua;ett;es,i0;ieYosa;dGik;a9yoG;padhyG;ay;ra;k,ng;ic;bb0Acos09d07g04kht05lZnPrLsl2tJyG;aHd8;in;la;chis3kiG;ns3;aImstro6sl2;an;ng;ujo,ya;dJgelHsaG;ri;ovG;!a;ersJov,reG;aGjEws;ss1;en;en,on,s3;on;eksejEiyEmeiIvG;ar7es;ez;da;ev;arwHuilG;ar;al;ams,l0;er;ta;as",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:74;1:61;2:6G;3:6J;4:5S;a68b53c4Id48e44f3Wg3Hh39i31j2Wk2Fl23m1Mn1Co19p0Wq0Ur0Os05tRuQvLwDxiBy9z5;a7h5i4Muri4O;a5e5ongsh0;ng3H;greb,nzib5G;ang2e5okoha3Sunfu;katerin3Hrev0;a5n0Q;m5Hn;arsBeAi6roclBu5;h0xi,zh5P;c7n5;d5nipeg,terth4;hoek,s1L;hi5Zkl3A;l63xford;aw;a8e6i5ladivost5Molgogr6L;en3lni6S;ni22r5;o3saill4N;lenc4Wncouv3Sr3ughn;lan bat1Crumqi,trecht;aFbilisi,eEheDiBo9r7u5;l21n63r5;in,ku;i5ondh62;es51poli;kyo,m2Zron1Pulo5;n,uS;an5jua3l2Tmisoa6Bra3;j4Tshui; hag62ssaloni2H;gucigal26hr0l av1U;briz,i6llinn,mpe56ng5rtu,shk2R;i3Esh0;an,chu1n0p2Eyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4X;ba0Ht;aten is55ockholm,rasbou67uttga2V;an8e6i5;jiazhua1llo1m5Xy0;f50n5;ya1zh4H;gh3Kt4Q;att45o1Vv44;cramen16int ClBn5o paulo,ppo3Rrajevo; 7aa,t5;a 5o domin3E;a3fe,m1M;antonio,die3Cfrancisco,j5ped3Nsalvad0J;o5u0;se;em,t lake ci5Fz25;lou58peters24;a9e8i6o5;me,t59;ga,o5yadh;! de janei3F;cife,ims,nn3Jykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0Q;aFeEhDiCo9r7u6yong5;ya1;eb59ya1;a5etor3M;g52to;rt5zn0; 5la4Co;au prin0Melizabe24sa03;ls3Prae5Atts26;iladelph3Gnom pe1Aoenix;ki1tah tik3E;dua,lerYnaji,r4Ot5;na,r32;ak44des0Km1Mr6s5ttawa;a3Vlo;an,d06;a7ew5ing2Fovosibir1Jyc; 5cast36;del24orlea44taip14;g8iro4Wn5pl2Wshv33v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0W;aEeCi9o6u5;mb2Ani26sc3Y;gadishu,nt6s5;c13ul;evideo,pelli1Rre2Z;ami,l6n14s5;kolc,sissauga;an,waukee;cca,d5lbour2Mmph41ndo1Cssi3;an,ell2Xi3;cau,drAkass2Sl9n8r5shh4A;aca6ib5rakesh,se2L;or;i1Sy;a4EchFdal0Zi47;mo;id;aDeAi8o6u5vSy2;anMckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Lma5nz,sb2verpo28;!ss27; ma39i5;c5pzig;est16; p6g5ho2Wn0Cusan24;os;az,la33;aHharFiClaipeBo9rak0Du7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Hlka2Xpavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bHdu3llakuric0Qmpa3Fn6ohsiu1ra5un1Iwaguc0Q;c0Pj;d5o,p4;ah1Ty;a7e6i5ohannesV;l1Vn0;dd36rusalem;ip4k5;ar2H;bad0mph1OnArkutUs7taXz5;mir,tapala5;pa;fah0l6tanb5;ul;am2Zi2H;che2d5;ianap2Mo20;aAe7o5yder2W; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Oupe;ld coa1Bthen5;bu2S;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal29es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,nkirk,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Zr es sala1KugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1Q;lo7n6penhag0Ar5;do1Ok;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr14;ch8sha,zh07;gliari,i9lga8mayenJn6pe town,r5tanO;acCdiff;ber1Ac5;un;ry;ro;aWeNhKirmingh0WoJr9u5;chareTdapeTenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iCl9ng8r5;g6l5n;in;en;aluru,hazi;fa6grade,o horizon5;te;st;ji1rut;ghd0BkFn9ot8r7s6yan n4;ur;el,r07;celo3i,ranquil09;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a05b02cc01ddis aba00gartaZhmedXizawl,lSmPnHqa00rEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a8c5kaOtwerp;hora6o3;na;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 7buquerq6eppo,giers,ma5;ty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"trueยฆ0:2O;1:2L;2:2U;3:2F;a2Sb2Fc21d1Wes1Vf1Tg1Oh1Ki1Fj1Bk16l13m0Sn09o07pYqVrSsJtEuBverAw6y4zacatec2W;akut0o0Fu4;cat1k09;a5est 4isconsin,yomi1O;bengal,virgin0;rwick3shington4;! dc;acruz,mont;dmurt0t4;ah,tar4; 2Pa12;a6e5laxca1Vripu21u4;scaEva;langa2nnessee,x2J;bas10m4smQtar29;aulip2Hil nadu;a9elang07i7o5taf16u4ylh1J;ff02rr09s1E;me1Gno1Uuth 4;cZdY;ber0c4kkim,naloa;hu1ily;n5rawak,skatchew1xo4;ny; luis potosi,ta catari2;a4hodeA;j4ngp0C;asth1shahi;ingh29u4;e4intana roo;bec,en6retaro;aAe6rince edward4unjab; i4;sl0G;i,n5r4;ak,nambu0F;a0Rnsylv4;an0;ha0Pra4;!na;axa0Zdisha,h4klaho21ntar4reg7ss0Dx0I;io;aLeEo6u4;evo le4nav0X;on;r4tt18va scot0;f9mandy,th4; 4ampton3;c6d5yo4;rk3;ako1O;aroli2;olk;bras1Nva0Dw4; 6foundland4;! and labrad4;or;brunswick,hamp3jers5mexiTyork4;! state;ey;galPyarit;aAeghala0Mi6o4;nta2r4;dov0elos;ch6dlanDn5ss4zor11;issippi,ouri;as geraPneso18;ig1oac1;dhy12harasht0Gine,lac07ni5r4ssachusetts;anhao,i el,ylG;p4toba;ur;anca3e4incoln3ouisI;e4iR;ds;a6e5h4omi;aka06ul2;dah,lant1ntucky,ra01;bardino,lmyk0ns0Qr4;achay,el0nata0X;alis6har4iangxi;kh4;and;co;daho,llino7n4owa;d5gush4;et0;ia2;is;a6ert5i4un1;dalFm0D;ford3;mp3rya2waii;ansu,eorg0lou7oa,u4;an4izhou,jarat;ajuato,gdo4;ng;cester3;lori4uji1;da;sex;ageUe7o5uran4;go;rs4;et;lawaMrby3;aFeaEh9o4rim08umbr0;ahui7l6nnectic5rsi4ventry;ca;ut;i03orado;la;e5hattisgarh,i4uvash0;apRhuahua;chn5rke4;ss0;ya;ra;lGm4;bridge3peche;a9ihar,r8u4;ck4ryat0;ingham3;shi4;re;emen,itish columb0;h0ja cal8lk7s4v7;hkorto4que;st1;an;ar0;iforn0;ia;dygHguascalientes,lBndhr9r5ss4;am;izo2kans5un4;achal 7;as;na;a 4;pradesh;a6ber5t4;ai;ta;ba5s4;ka;ma;ea",Place:"trueยฆ0:4T;1:4V;2:44;3:4B;4:3I;a4Eb3Gc2Td2Ge26f25g1Vh1Ji1Fk1Cl14m0Vn0No0Jp08r04sTtNuLvJw7y5;a5o0Syz;kut1Bngtze;aDeChitBi9o5upatki,ycom2P;ki26o5;d5l1B;b3Ps5;i4to3Y;c0SllowbroCn5;c2Qgh2;by,chur1P;ed0ntw3Gs22;ke6r3St5;erf1f1; is0Gf3V;auxha3Mirgin is0Jost5;ok;laanbaatar,pto5xb3E;n,wn;a9eotihuac43h7ive49o6ru2Nsarskoe selo,u5;l2Dzigo47;nto,rquay,tt2J;am3e 5orn3E;bronx,hamptons;hiti,j mah0Iu1N;aEcotts bluff,eCfo,herbroQoApring9t7u5yd2F;dbu1Wn5;der03set3B;aff1ock2Nr5;atf1oud;hi37w24;ho,uth5; 1Iam1Zwo3E;a5i2O;f2Tt0;int lawrence riv3Pkhal2D;ayleigh,ed7i5oc1Z;chmo1Eo gran4ver5;be1Dfr09si4; s39cliffe,hi2Y;aCe9h8i5ompeii,utn2;c6ne5tcai2T; 2Pc0G;keri13t0;l,x;k,lh2mbr6n5r2J;n1Hzance;oke;cif38pahanaumokuak30r5;k5then0;si4w1K;ak7r6x5;f1l2X;ange county,d,f1inoco;mTw1G;e8i1Uo5;r5tt2N;th5wi0E; 0Sam19;uschwanste1Pw5; eng6a5h2market,po36;rk;la0P;a8co,e6i5uc;dt1Yll0Z;adow5ko0H;lands;chu picchu,gad2Ridsto1Ql8n7ple6r5;kh2; g1Cw11;hatt2Osf2B;ibu,t0ve1Z;a8e7gw,hr,in5owlOynd02;coln memori5dl2C;al;asi4w3;kefr7mbe1On5s,x;ca2Ig5si05;f1l27t0;ont;azan kreml14e6itchen2Gosrae,rasnoyar5ul;sk;ns0Hs1U;ax,cn,lf1n6ps5st;wiN;d5glew0Lverness;ian27ochina;aDeBi6kg,nd,ov5unti2H;d,enweep;gh6llc5;reL;bu03l5;and5;!s;r5yw0C;ef1tf1;libu24mp6r5stings;f1lem,row;stead,t0;aDodavari,r5uelph;avenAe5imsS;at 8en5; 6f1Fwi5;ch;acr3vall1H;brita0Flak3;hur5;st;ng3y villa0W;airhavHco,ra;aAgli9nf17ppi8u7ver6x5;et1Lf1;glad3t0;rope,st0;ng;nt0;rls1Ls5;t 5;e5si4;nd;aCe9fw,ig8o7ryd6u5xb;mfri3nstab00rh2tt0;en;nca18rcKv19wnt0B;by;n6r5vonpo1D;ry;!h2;nu8r5;l6t5;f1moor;ingt0;be;aLdg,eIgk,hClBo5royd0;l6m5rnwa0B;pt0;c7lingw6osse5;um;ood;he0S;earwat0St;a8el6i5uuk;chen itza,mney ro07natSricahua;m0Zt5;enh2;mor5rlottetPth2;ro;dar 5ntervilA;breaks,faZg5;rove;ld9m8r5versh2;lis6rizo pla5;in;le;bLpbellf1;weQ;aZcn,eNingl01kk,lackLolt0r5uckV;aGiAo5;ckt0ok5wns cany0;lyn,s5;i4to5;ne;de;dge6gh5;am,t0;n6t5;own;or5;th;ceb6m5;lNpt0;rid5;ge;bu5pool,wa8;rn;aconsfEdf1lBr9verly7x5;hi5;ll; hi5;lls;wi5;ck; air,l5;ingh2;am;ie5;ld;ltimore,rnsl6tters5;ea;ey;bLct0driadic,frica,ginJlGmFn9rc8s7tl6yleOzor3;es;!ant8;hcroft,ia; de triomphe,t6;adyr,ca8dov9tarct5;ic5; oce5;an;st5;er;ericas,s;be6dersh5hambra,list0;ot;rt0;cou5;rt;bot7i5;ngd0;on;sf1;ord",Country:"trueยฆ0:38;1:2L;2:3B;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om2pZqat1KrXsKtCu7v5wal4yemTz3;a25imbabwe;es,lis and futu2Y;a3enezue32ietnam;nuatu,tican city;gTk6nited 4ruXs3zbeE; 2Ca,sr;arab emirat0Kkingdom,states3;! of am2Y;!raiV;a8haCimor les0Co7rinidad 5u3;nis0rk3valu;ey,me2Zs and caic1V;and t3t3;oba1L;go,kel10nga;iw2ji3nz2T;ki2V;aDcotl1eCi9lov8o6pa2Dri lanka,u5w3yr0;az3edAitzerl1;il1;d2riname;lomon1Xmal0uth 3;afr2KkMsud2;ak0en0;erra leoFn3;gapo1Yt maart3;en;negLrb0ychellZ;int 3moa,n marino,udi arab0;hele26luc0mart21;epublic of ir0Eom2Euss0w3;an27;a4eIhilippinUitcairn1Mo3uerto riN;l1rtugF;ki2Dl4nama,pua new0Vra3;gu7;au,esti3;ne;aBe9i7or3;folk1Ith4w3;ay; k3ern mariana1D;or0O;caragua,ger3ue;!ia;p3ther1Aw zeal1;al;mib0u3;ru;a7exi6icro0Bo3yanm06;ldova,n3roc5zambA;a4gol0t3;enegro,serrat;co;cAdagasc01l7r5urit4yot3;te;an0i16;shall0Xtin3;ique;a4div3i,ta;es;wi,ys0;ao,ed02;a6e5i3uxembourg;b3echtenste12thu1G;er0ya;ban0Isotho;os,tv0;azakh1Fe4iriba04o3uwait,yrgyz1F;rXsovo;eling0Knya;a3erG;ma16p2;c7nd6r4s3taly,vory coast;le of m2rael;a3el1;n,q;ia,oJ;el1;aiTon3ungary;dur0Ng kong;aBermany,ha0QibraltAre8u3;a6ern5inea3ya0P;! biss3;au;sey;deloupe,m,tema0Q;e3na0N;ce,nl1;ar;bUmb0;a7i6r3;ance,ench 3;guia0Epoly3;nes0;ji,nl1;lklandUroeU;ast tim7cu6gypt,l salv6ngl1quatorial4ritr5st3thiop0;on0; guin3;ea;ad3;or;enmark,jibou5ominica4r con3;go;!n C;ti;aBentral african Ah8o5roat0u4yprRzech3; 9ia;ba,racao;c4lo3morQngo brazzaville,okGsta r04te de ivoiL;mb0;osE;i3ristmasG;le,na;republic;m3naUpe verde,ymanA;bod0ero3;on;aGeDhut2o9r5u3;lgar0r3;kina faso,ma,undi;azil,itish 3unei;virgin3; is3;lands;liv0nai5snia and herzegoviHtswaHuvet3; isl1;and;re;l3n8rmuG;ar3gium,ize;us;h4ngladesh,rbad3;os;am4ra3;in;as;fghaGlDmBn6r4ustr3zerbaij2;al0ia;genti3men0uba;na;dorra,g5t3;arct7igua and barbu3;da;o3uil3;la;er3;ica;b3ger0;an0;ia;ni3;st2;an",FirstName:"trueยฆaTblair,cQdOfrancoZgabMhinaLilya,jHkClBm6ni4quinn,re3s0;h0umit,yd;ay,e0iloh;a,lby;g9ne;co,ko0;!s;a1el0ina,org6;!okuhF;ds,naia,r1tt0xiB;i,y;ion,lo;ashawn,eif,uca;a3e1ir0rM;an;lsFn0rry;dall,yat5;i,sD;a0essIie,ude;i1m0;ie,mG;me;ta;rie0y;le;arcy,ev0;an,on;as1h0;arl8eyenne;ey,sidy;drien,kira,l4nd1ubr0vi;ey;i,r0;a,e0;a,y;ex2f1o0;is;ie;ei,is",WeekDay:"trueยฆfri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"trueยฆdec0february,july,nov0octo1sept0;em0;ber",Date:"trueยฆago,on4som4t1week0yesterd5; end,ends;mr1o0;d2morrow;!w;ed0;ay",Duration:"trueยฆcenturAd8h7m5q4se3w1y0;ear8r8;eek0k7;!end,s;ason,c5;tr,uarter;i0onth3;llisecond2nute2;our1r1;ay0ecade0;!s;ies,y",FemaleName:"trueยฆ0:J7;1:JB;2:IJ;3:IK;4:J1;5:IO;6:JS;7:JO;8:HB;9:JK;A:H4;B:I2;C:IT;D:JH;E:IX;F:BA;G:I4;aGTbFLcDRdD0eBMfB4gADh9Ti9Gj8Dk7Cl5Wm48n3Lo3Hp33qu32r29s15t0Eu0Cv02wVxiTyOzH;aLeIineb,oHsof3;e3Sf3la,ra;h2iKlIna,ynH;ab,ep;da,ma;da,h2iHra;nab;aKeJi0FolB7uIvH;et8onDP;i0na;le0sen3;el,gm3Hn,rGLs8W;aoHme0nyi;m5XyAD;aMendDZhiDGiH;dele9lJnH;if48niHo0;e,f47;a,helmi0lHma;a,ow;ka0nB;aNeKiHusa5;ck84kIl8oleAviH;anFenJ4;ky,toriBK;da,lA8rHs0;a,nHoniH9;a,iFR;leHnesH9;nILrH;i1y;g9rHs6xHA;su5te;aYeUhRiNoLrIuHy2;i,la;acJ3iHu0J;c3na,sH;hFta;nHr0F;iFya;aJffaEOnHs6;a,gtiH;ng;!nFSra;aIeHomasi0;a,l9Oo8Ares1;l3ndolwethu;g9Fo88rIssH;!a,ie;eHi,ri7;sa,za;bOlMmKnIrHs6tia0wa0;a60yn;iHya;a,ka,s6;arFe2iHm77ra;!ka;a,iH;a,t6;at6it6;a0Ecarlett,e0AhWiSkye,neza0oQri,tNuIyH;bIGlvi1;ha,mayIJniAsIzH;an3Net8ie,y;anHi7;!a,e,nH;aCe;aIeH;fan4l5Dphan6E;cI5r5;b3fiAAm0LnHphi1;d2ia,ja,ya;er2lJmon1nIobh8QtH;a,i;dy;lETv3;aMeIirHo0risFDy5;a,lDM;ba,e0i5lJrH;iHr6Jyl;!d8Ifa;ia,lDZ;hd,iMki2nJrIu0w0yH;la,ma,na;i,le9on,ron,yn;aIda,ia,nHon;a,on;!ya;k6mH;!aa;lJrItaye82vH;da,inj;e0ife;en1i0ma;anA9bLd5Oh1SiBkKlJmInd2rHs6vannaC;aCi0;ant6i2;lDOma,ome;ee0in8Tu2;in1ri0;a05eZhXiUoHuthDM;bScRghQl8LnPsJwIxH;anB3ie,y;an,e0;aIeHie,lD;ann7ll1marDGtA;!lHnn1;iHyn;e,nH;a,dF;da,i,na;ayy8G;hel67io;bDRerAyn;a,cIkHmas,nFta,ya;ki,o;h8Xki;ea,iannGMoH;da,n1P;an0bJemFgi0iInHta,y0;a8Bee;han86na;a,eH;cHkaC;a,ca;bi0chIe,i0mo0nHquETy0;di,ia;aERelHiB;!e,le;een4ia0;aPeOhMiLoJrHute6A;iHudenCV;scil3LyamvaB;lHrt3;i0ly;a,paluk;ilome0oebe,ylH;is,lis;ggy,nelope,r5t2;ige,m0VnKo5rvaDMtIulH;a,et8in1;ricHt4T;a,e,ia;do2i07;ctav3dIfD3is6ksa0lHphD3umC5yunbileg;a,ga,iv3;eHvAF;l3t8;aWeUiMoIurHy5;!ay,ul;a,eJor,rIuH;f,r;aCeEma;ll1mi;aNcLhariBQkKlaJna,sHta,vi;anHha;ur;!y;a,iDZki;hoGk9YolH;a,e4P;!mh;hir,lHna,risDEsreE;!a,lBV;asuMdLh3i6Dl5nKomi7rgEVtH;aHhal4;lHs6;i1ya;cy,et8;e9iF0ya;nngu2X;a0Ackenz4e02iMoJrignayani,uriDJyH;a,rH;a,iOlNna,tG;bi0i2llBJnH;a,iH;ca,ka,qD9;a,cUdo4ZkaTlOmi,nMrItzi,yH;ar;aJiIlH;anET;am;!l,nB;dy,eHh,n4;nhGrva;aKdJe0iCUlH;iHy;cent,e;red;!gros;!e5;ae5hH;ae5el3Z;ag5DgNi,lKrH;edi7AiIjem,on,yH;em,l;em,sCG;an4iHliCF;nHsCJ;a,da;!an,han;b09cASd07e,g05ha,i04ja,l02n00rLsoum5YtKuIv84xBKyHz4;bell,ra,soBB;d7rH;a,eE;h8Gild1t4;a,cUgQiKjor4l7Un4s6tJwa,yH;!aHbe6Xja9lAE;m,nBL;a,ha,in1;!aJbCGeIja,lDna,sHt63;!a,ol,sa;!l1D;!h,mInH;!a,e,n1;!awit,i;arJeIie,oHr48ueri8;!t;!ry;et46i3B;el4Xi7Cy;dHon,ue5;akranAy;ak,en,iHlo3S;a,ka,nB;a,re,s4te;daHg4;!l3E;alDd4elHge,isDJon0;ei9in1yn;el,le;a0Ne0CiXoQuLyH;d3la,nH;!a,dIe2OnHsCT;!a,e2N;a,sCR;aD4cJel0Pis1lIna,pHz;e,iA;a,u,wa;iHy;a0Se,ja,l2NnB;is,l1UrItt1LuHvel4;el5is1;aKeIi7na,rH;aADi7;lHn1tA;ei;!in1;aTbb9HdSepa,lNnKsJvIzH;!a,be5Ret8z4;!ia;a,et8;!a,dH;a,sHy;ay,ey,i,y;a,iJja,lH;iHy;aA8e;!aH;!nF;ia,ya;!nH;!a,ne;aPda,e0iNjYla,nMoKsJtHx93y5;iHt4;c3t3;e2PlCO;la,nHra;a,ie,o2;a,or1;a,gh,laH;!ni;!h,nH;a,d2e,n5V;cOdon9DiNkes6mi9Gna,rMtJurIvHxmi,y5;ern1in3;a,e5Aie,yn;as6iIoH;nya,ya;fa,s6;a,isA9;a,la;ey,ie,y;a04eZhXiOlASoNrJyH;lHra;a,ee,ie;istHy6I;a,en,iIyH;!na;!e,n5F;nul,ri,urtnB8;aOerNlB7mJrHzzy;a,stH;en,in;!berlImernH;aq;eHi,y;e,y;a,stE;!na,ra;aHei2ongordzol;dij1w5;el7UiKjsi,lJnIrH;a,i,ri;d2na,za;ey,i,lBLs4y;ra,s6;biAcARdiat7MeBAiSlQmPnyakuma1DrNss6NtKviAyH;!e,lH;a,eH;e,i8T;!a6HeIhHi4TlDri0y;ar8Her8Hie,leErBAy;!lyn8Ori0;a,en,iHl5Xoli0yn;!ma,nFs95;a5il1;ei8Mi,lH;e,ie;a,tl6O;a0AeZiWoOuH;anMdLlHst88;es,iH;a8NeHs8X;!n9tH;!a,te;e5Mi3My;a,iA;!anNcelDdMelGhan7VleLni,sIva0yH;a,ce;eHie;fHlDph7Y;a,in1;en,n1;i7y;!a,e,n45;lHng;!i1DlH;!i1C;anNle0nKrJsH;i8JsH;!e,i8I;i,ri;!a,elGif2CnH;a,et8iHy;!e,f2A;a,eJiInH;a,eIiH;e,n1;!t8;cMda,mi,nIque4YsminFvie2y9zH;min7;a7eIiH;ce,e,n1s;!lHs82t0F;e,le;inIk6HlDquelH;in1yn;da,ta;da,lRmPnOo0rNsIvaHwo0zaro;!a0lu,na;aJiIlaHob89;!n9R;do2;belHdo2;!a,e,l3B;a7Ben1i0ma;di2es,gr72ji;a9elBogH;en1;a,e9iHo0se;a0na;aSeOiJoHus7Kyacin2C;da,ll4rten24snH;a,i9U;lImaH;ri;aIdHlaI;a,egard;ry;ath1BiJlInrietArmi9sH;sa,t1A;en2Uga,mi;di;bi2Fil8MlNnMrJsItHwa,yl8M;i5Tt4;n60ti;iHmo51ri53;etH;!te;aCnaC;a,ey,l4;a02eWiRlPoNrKunJwH;enHyne1R;!dolD;ay,el;acieIetHiselB;a,chE;!la;ld1CogooH;sh;adys,enHor3yn2K;a,da,na;aKgi,lIna,ov8EselHta;a,e,le;da,liH;an;!n0;mLnJorgIrH;ald5Si,m3Etrud7;et8i4X;a,eHna;s29vieve;ma;bIle,mHrnet,yG;al5Si5;iIrielH;a,l1;!ja;aTeQiPlorOoz3rH;anJeIiH;da,eB;da,ja;!cH;esIiHoi0P;n1s66;!ca;a,enc3;en,o0;lIn0rnH;anB;ec3ic3;jr,nArKtHy7;emIiHma,oumaA;ha,ma,n;eh;ah,iBrah,za0;cr4Rd0Re0Qi0Pk0Ol07mXn54rUsOtNuMvHwa;aKelIiH;!e,ta;inFyn;!a;!ngel4V;geni1ni47;h5Yien9ta;mLperanKtH;eIhHrel5;er;l31r7;za;a,eralB;iHma,ne4Lyn;cHka,n;a,ka;aPeNiKmH;aHe21ie,y;!li9nuH;elG;lHn1;e7iHy;a,e,ja;lHrald;da,y;!nue5;aWeUiNlMma,no2oKsJvH;a,iH;na,ra;a,ie;iHuiH;se;a,en,ie,y;a0c3da,e,f,nMsJzaH;!betHveA;e,h;aHe,ka;!beH;th;!a,or;anor,nH;!a,i;!in1na;ate1Rta;leEs6;vi;eIiHna,wi0;e,th;l,n;aYeMh3iLjeneKoH;lor5Vminiq4Ln3FrHtt4;a,eEis,la,othHthy;ea,y;ba;an09naCon9ya;anQbPde,eOiMlJmetr3nHsir5M;a,iH;ce,se;a,iIla,orHphi9;es,is;a,l6F;dHrdH;re;!d5Ena;!b2ForaCraC;a,d2nH;!a,e;hl3i0l0GmNnLphn1rIvi1WyH;le,na;a,by,cIia,lH;a,en1;ey,ie;a,et8iH;!ca,el1Aka,z;arHia;is;a0Re0Nh04i02lUoJristIynH;di,th3;al,i0;lPnMrIurH;tn1D;aJd2OiHn2Ori9;!nH;a,e,n1;!l4;cepci5Cn4sH;tanHuelo;ce,za;eHleE;en,t8;aJeoIotH;il54;!pat2;ir7rJudH;et8iH;a,ne;a,e,iH;ce,sZ;a2er2ndH;i,y;aReNloe,rH;isJyH;stH;al;sy,tH;a1Sen,iHy;an1e,n1;deJlseIrH;!i7yl;a,y;li9;nMrH;isKlImH;ai9;a,eHot8;n1t8;!sa;d2elGtH;al,elG;cIlH;es8i47;el3ilH;e,ia,y;itlYlXmilWndVrMsKtHy5;aIeIhHri0;er1IleErDy;ri0;a38sH;a37ie;a,iOlLmeJolIrH;ie,ol;!e,in1yn;lHn;!a,la;a,eIie,otHy;a,ta;ne,y;na,s1X;a0Ii0I;a,e,l1;isAl4;in,yn;a0Ke02iZlXoUrH;andi7eRiJoIyH;an0nn;nwDoke;an3HdgMgiLtH;n31tH;!aInH;ey,i,y;ny;d,t8;etH;!t7;an0e,nH;da,na;bbi7glarIlo07nH;iAn4;ka;ancHythe;a,he;an1Clja0nHsm3M;iAtH;ou;aWcVlinUniArPssOtJulaCvH;!erlH;ey,y;hJsy,tH;e,iHy7;e,na;!anH;ie,y;!ie;nItHyl;ha,ie;adIiH;ce;et8i9;ay,da;ca,ky;!triH;ce,z;rbJyaH;rmH;aa;a2o2ra;a2Ub2Od25g21i1Sj5l18m0Zn0Boi,r06sWtVuPvOwa,yIzH;ra,u0;aKes6gJlIn,seH;!l;in;un;!nH;a,na;a,i2K;drLguJrIsteH;ja;el3;stH;in1;a,ey,i,y;aahua,he0;hIi2Gja,miAs2DtrH;id;aMlIraqHt21;at;eIi7yH;!n;e,iHy;gh;!nH;ti;iJleIo6piA;ta;en,n1t8;aHelG;!n1J;a01dje5eZgViTjRnKohito,toHya;inet8nH;el5ia;te;!aKeIiHmJ;e,ka;!mHtt7;ar4;!belIliHmU;sa;!l1;a,eliH;ca;ka,sHta;a,sa;elHie;a,iH;a,ca,n1qH;ue;!tH;a,te;!bImHstasiMya;ar3;el;aLberKeliJiHy;e,l3naH;!ta;a,ja;!ly;hGiIl3nB;da;a,ra;le;aWba,ePiMlKthJyH;a,c3sH;a,on,sa;ea;iHys0N;e,s0M;a,cIn1sHza;a,e,ha,on,sa;e,ia,ja;c3is6jaKksaKna,sJxH;aHia;!nd2;ia,saH;nd2;ra;ia;i0nIyH;ah,na;a,is,naCoud;la;c6da,leEmNnLsH;haClH;inHyY;g,n;!h;a,o,slH;ey;ee;en;at6g4nIusH;ti0;es;ie;aWdiTelMrH;eJiH;anMenH;a,e,ne;an0;na;!aLeKiIyH;nn;a,n1;a,e;!ne;!iH;de;e,lDsH;on;yn;!lH;i9yn;ne;aKbIiHrL;!e,gaK;ey,i7y;!e;gaH;il;dKliyJradhIs6;ha;ya;ah;a,ya",Honorific:"trueยฆdirector1field marsh2lieutenant1rear0sergeant major,vice0; admir1; gener0;al","Adj|Gerund":"trueยฆ0:3F;1:3H;2:31;3:2X;4:35;5:33;6:3C;7:2Z;8:36;9:29;a33b2Tc2Bd1Te1If19g12h0Zi0Rl0Nm0Gnu0Fo0Ap04rYsKtEuBvAw1Ayiel3;ar6e08;nBpA;l1Rs0B;fol3n1Zsett2;aEeDhrBi4ouc7rAwis0;e0Bif2oub2us0yi1;ea1SiA;l2vi1;l2mp0rr1J;nt1Vxi1;aMcreec7enten2NhLkyrocke0lo0Vmi2oJpHtDuBweA;e0Ul2;pp2ArA;gi1pri5roun3;aBea8iAri2Hun9;mula0r4;gge4rA;t2vi1;ark2eAraw2;e3llb2F;aAot7;ki1ri1;i9oc29;dYtisf6;aEeBive0oAus7;a4l2;assu4defi9fres7ig9juve07mai9s0vAwar3;ea2italiAol1G;si1zi1;gi1ll6mb2vi1;a6eDier23lun1VrAun2C;eBoA;mi5vo1Z;ce3s5vai2;n3rpleA;xi1;ffCpWutBverAwi1;arc7lap04p0Pri3whel8;goi1l6st1J;en3sA;et0;m2Jrtu4;aEeDiCoBuAyst0L;mb2;t1Jvi1;s5tiga0;an1Rl0n3smeri26;dAtu4;de9;aCeaBiAo0U;fesa0Tvi1;di1ni1;c1Fg19s0;llumiGmFnArri0R;cDfurHsCtBviA;go23ti1;e1Oimi21oxica0rig0V;pi4ul0;orpo20r0K;po5;na0;eaBorr02umilA;ia0;li1rtwar8;lFrA;atiDipCoBuelA;i1li1;undbrea10wi1;pi1;f6ng;a4ea8;a3etc7it0lEoCrBulfA;il2;ee1FighXust1L;rAun3;ebo3thco8;aCoA;a0wA;e4i1;mi1tte4;lectrJmHnExA;aCci0hBis0pA;an3lo3;aOila1B;c0spe1A;ab2coura0CdBergi13ga0Clive9ric7s02tA;hral2i0J;ea4u4;barras5er09pA;owe4;if6;aQeIiBrA;if0;sAzz6;aEgDhearCsen0tA;rAur11;ac0es5;te9;us0;ppoin0r8;biliGcDfi9gra3ligh0mBpres5sAvasG;erE;an3ea9orA;ali0L;a6eiBli9rA;ea5;vi1;ta0;maPri1s7un0zz2;aPhMlo5oAripp2ut0;mGnArrespon3;cer9fDspi4tA;inBrA;as0ibu0ol2;ui1;lic0u5;ni1;fDmCpA;eAromi5;l2ti1;an3;or0;aAil2;llenAnAr8;gi1;l8ptAri1;iva0;aff2eGin3lFoDrBuA;d3st2;eathtaAui5;ki1;gg2i2o8ri1unA;ci1;in3;co8wiA;lAtc7;de4;bsorVcOgonMlJmHnno6ppea2rFsA;pi4su4toA;nBun3;di1;is7;hi1;res0;li1;aFu5;si1;ar8lu4;ri1;mi1;iAzi1;zi1;cAhi1;eleDomA;moBpan6;yi1;da0;ra0;ti1;bi1;ng",Comparable:"trueยฆ0:3C;1:3Q;2:3F;a3Tb3Cc33d2Te2Mf2Ag1Wh1Li1Fj1Ek1Bl13m0Xn0So0Rp0Iqu0Gr07sHtCug0vAw4y3za0Q;el10ouN;ary,e6hi5i3ry;ck0Cde,l3n1ry,se;d,y;ny,te;a3i3R;k,ry;a3erda2ulgar;gue,in,st;a6en2Xhi5i4ouZr3;anqu2Cen1ue;dy,g36me0ny;ck,rs28;ll,me,rt,wd3I;aRcaPeOhMiLkin0BlImGoEpDt6u4w3;eet,ift;b3dd0Wperfi21rre28;sta26t21;a8e7iff,r4u3;pUr1;a4ict,o3;ng;ig2Vn0N;a1ep,rn;le,rk,te0;e1Si2Vright0;ci1Yft,l3on,re;emn,id;a3el0;ll,rt;e4i3y;g2Mm0Z;ek,nd2T;ck24l0mp1L;a3iRrill,y;dy,l01rp;ve0Jxy;n1Jr3;ce,y;d,fe,int0l1Hv0V;a8e6i5o3ude;mantic,o19sy,u3;gh;pe,t1P;a3d,mo0A;dy,l;gg4iFndom,p3re,w;id;ed;ai2i3;ck,et;hoAi1Fl9o8r5u3;ny,r3;e,p11;egna2ic4o3;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e5i4o3u14;b0Sisy,rm0Ysy;bb0ce,mb0R;a3r1w;r,t;ad,e5ild,o4u3;nda12te;ist,o1;a4ek,l3;low;s0ty;a8e7i6o3ucky;f0Jn4o15u3ve0w10y0N;d,sy;e0g;ke0l,mp,tt0Eve0;e1Qwd;me,r3te;ge;e4i3;nd;en;ol0ui19;cy,ll,n3;secu6t3;e3ima4;llege2rmedia3;te;re;aAe7i6o5u3;ge,m3ng1C;bYid;me0t;gh,l0;a3fXsita2;dy,rWv3;en0y;nd13ppy,r3;d3sh;!y;aFenEhCiBlAoofy,r3;a8e6i5o3ue0Z;o3ss;vy;m,s0;at,e3y;dy,n;nd,y;ad,ib,ooD;a2d1;a3o3;st0;tDuiS;u1y;aCeebBi9l8o6r5u3;ll,n3r0N;!ny;aCesh,iend0;a3nd,rmD;my;at,ir7;erce,nan3;ci9;le;r,ul3;ty;a6erie,sse4v3xtre0B;il;nti3;al;r4s3;tern,y;ly,th0;appZe9i5ru4u3;mb;nk;r5vi4z3;zy;ne;e,ty;a3ep,n9;d3f,r;!ly;agey,h8l7o5r4u3;dd0r0te;isp,uel;ar3ld,mmon,st0ward0zy;se;evKou1;e3il0;ap,e3;sy;aHiFlCoAr5u3;ff,r0sy;ly;a6i3oad;g4llia2;nt;ht;sh,ve;ld,un3;cy;a4o3ue;nd,o1;ck,nd;g,tt3;er;d,ld,w1;dy;bsu6ng5we3;so3;me;ry;rd",Adverb:"trueยฆa08b05d00eYfSheQinPjustOkinda,likewiZmMnJoEpCquite,r9s5t2u0very,well;ltima01p0; to,wards5;h1iny bit,o0wiO;o,t6;en,us;eldom,o0uch;!me1rt0; of;how,times,w0C;a1e0;alS;ndomRth05;ar excellenEer0oint blank; Lhaps;f3n0utright;ce0ly;! 0;ag05moX; courGten;ewJo0; longWt 0;onHwithstand9;aybe,eanwhiNore0;!ovT;! aboX;deed,steY;lla,n0;ce;or3u0;ck1l9rther0;!moK;ing; 0evK;exampCgood,suH;n mas0vI;se;e0irect2; 2fini0;te0;ly;juAtrop;ackward,y 0;far,no0; means,w; GbroFd nauseam,gEl7ny5part,s4t 2w0;ay,hi0;le;be7l0mo7wor7;arge,ea6; soon,i4;mo0way;re;l 3mo2ongsi1ready,so,togeth0ways;er;de;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"trueยฆaXbTcReNhowMiEjust00noBo9p8supposing,t5wh0yet;e1il0o3;e,st;n1re0thN; if,by,vM;evL;h0il,o;erefOo0;!uU;lus,rovided th9;r0therwiM;! not; mattEr,w0;! 0;since,th4w7;f4n0; 0asmuch;as mIcaForder t0;h0o;at;! 0;only,t0w0;hen;!ev3;ith2ven0;! 0;if,tB;er;o0uz;s,z;e0ut,y the time;cau1f0;ore;se;lt3nd,s 0;far1if,m0soon1t2;uch0; as;hou0;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",Determiner:"trueยฆaBboth,d9e6few,le5mu8neiDplenty,s4th2various,wh0;at0ich0;evC;a0e4is,ose;!t;everal,ome;!ast,s;a1l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er","Adj|Present":"trueยฆa07b04cVdQeNfJhollIidRlEmCnarrIoBp9qua8r7s3t2uttFw0;aKet,ro0;ng,u08;endChin;e2hort,l1mooth,our,pa9tray,u0;re,speU;i2ow;cu6da02leSpaN;eplica01i02;ck;aHerfePr0;eseUime,omV;bscu1pen,wn;atu0e3odeH;re;a2e1ive,ow0;er;an;st,y;ow;a2i1oul,r0;ee,inge;rm;iIke,ncy,st;l1mpty,x0;emHpress;abo4ic7;amp,e2i1oub0ry,ull;le;ffu9re6;fu8libe0;raE;alm,l5o0;mpleCn3ol,rr1unterfe0;it;e0u7;ct;juga8sum7;ea1o0;se;n,r;ankru1lu0;nt;pt;li2pproxi0rticula1;ma0;te;ght","Person|Adj":"trueยฆb3du2earnest,frank,mi2r0san1woo1;an0ich,u1;dy;sty;ella,rown",Modal:"trueยฆc5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Verb:"trueยฆborn,cannot,gonna,has,keep tabs,msg","Person|Verb":"trueยฆb8ch7dr6foster,gra5ja9lan4ma2ni9ollie,p1rob,s0wade;kip,pike,t5ue;at,eg,ier2;ck,r0;k,shal;ce;ce,nt;ew;ase,u1;iff,l1ob,u0;ck;aze,ossom","Person|Date":"trueยฆa2j0sep;an0une;!uary;p0ugust,v0;ril"};const ca=36,ha="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",da=ha.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var ga=function(e){if(void 0!==da[e])return da[e];let t=0,n=1,r=ca,a=1;for(;n=0;n--,a*=ca){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t};const ma=function(e,t,n){const r=ga(t);return r{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{let t=function(e){if(!e)return{};const t=e.split("|").reduce(((e,t)=>{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{if(Pa[t]=e,"Noun|Verb"===e){let e=ya(t,Aa);Pa[e]="Plural|Verb"}})):Object.keys(t).forEach((t=>{ka[t]=e}))})),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","ka[e]="Emoticon")),delete ka[""],delete ka.null,delete ka[" "];const Ca="Singular";var Na={beforeTags:{Determiner:Ca,Possessive:Ca,Acronym:Ca,Noun:Ca,Adjective:Ca,PresentTense:Ca,Gerund:Ca,PastTense:Ca,Infinitive:Ca,Date:Ca,Ordinal:Ca,Demonym:Ca},afterTags:{Value:Ca,Modal:Ca,Copula:Ca,PresentTense:Ca,PastTense:Ca,Demonym:Ca,Actor:Ca},beforeWords:{the:Ca,with:Ca,without:Ca,of:Ca,for:Ca,any:Ca,all:Ca,on:Ca,cut:Ca,cuts:Ca,increase:Ca,decrease:Ca,raise:Ca,drop:Ca,save:Ca,saved:Ca,saves:Ca,make:Ca,makes:Ca,made:Ca,minus:Ca,plus:Ca,than:Ca,another:Ca,versus:Ca,neither:Ca,about:Ca,favorite:Ca,best:Ca,daily:Ca,weekly:Ca,linear:Ca,binary:Ca,mobile:Ca,lexical:Ca,technical:Ca,computer:Ca,scientific:Ca,security:Ca,government:Ca,popular:Ca,formal:Ca,no:Ca,more:Ca,one:Ca,let:Ca,her:Ca,his:Ca,their:Ca,our:Ca,us:Ca,sheer:Ca,monthly:Ca,yearly:Ca,current:Ca,previous:Ca,upcoming:Ca,last:Ca,next:Ca,main:Ca,initial:Ca,final:Ca,beginning:Ca,end:Ca,top:Ca,bottom:Ca,future:Ca,past:Ca,major:Ca,minor:Ca,side:Ca,central:Ca,peripheral:Ca,public:Ca,private:Ca},afterWords:{of:Ca,system:Ca,aid:Ca,method:Ca,utility:Ca,tool:Ca,reform:Ca,therapy:Ca,philosophy:Ca,room:Ca,authority:Ca,says:Ca,said:Ca,wants:Ca,wanted:Ca,is:Ca,did:Ca,do:Ca,can:Ca,wise:Ca}};const ja="Infinitive";var xa={beforeTags:{Modal:ja,Adverb:ja,Negative:ja,Plural:ja},afterTags:{Determiner:ja,Adverb:ja,Possessive:ja,Reflexive:ja,Preposition:ja,Cardinal:ja,Comparative:ja,Superlative: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,let:ja,even:ja,when:ja,help:ja,he:ja,she:ja,it:ja,being:ja,bi:ja,co:ja,contra:ja,de:ja,inter:ja,intra:ja,mis:ja,pre:ja,out:ja,counter:ja,nobody:ja,somebody:ja,anybody:ja,everybody:ja},afterWords:{the:ja,me:ja,you:ja,him:ja,us:ja,her:ja,his:ja,them:ja,they:ja,it:ja,himself:ja,herself:ja,itself:ja,myself:ja,ourselves:ja,themselves:ja,something:ja,anything:ja,a:ja,an:ja,up:ja,down:ja,by:ja,out:ja,off:ja,under:ja,what:ja,all:ja,to:ja,because:ja,although:ja,how:ja,otherwise:ja,together:ja,though:ja,into:ja,yet:ja,more:ja,here:ja,there:ja,away:ja}};const Ia={beforeTags:Object.assign({},xa.beforeTags,Na.beforeTags,{}),afterTags:Object.assign({},xa.afterTags,Na.afterTags,{}),beforeWords:Object.assign({},xa.beforeWords,Na.beforeWords,{}),afterWords:Object.assign({},xa.afterWords,Na.afterWords,{})},Ta="Adjective";var Da={beforeTags:{Determiner:Ta,Possessive:Ta,Hyphenated:Ta},afterTags:{Adjective:Ta},beforeWords:{seem:Ta,seemed:Ta,seems:Ta,feel:Ta,feels:Ta,felt:Ta,stay: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,truly:Ta,how:Ta,deeply:Ta,hella:Ta,profoundly:Ta,extremely:Ta,so:Ta,badly:Ta,mostly:Ta,totally:Ta,awfully:Ta,rather:Ta,nothing:Ta,something:Ta,anything:Ta,not:Ta,me:Ta,is:Ta,face:Ta,faces:Ta,faced:Ta,look:Ta,looks:Ta,looked:Ta,reveal:Ta,reveals:Ta,revealed:Ta,sound:Ta,sounded:Ta,sounds:Ta,remains:Ta,remained:Ta,prove:Ta,proves:Ta,proved:Ta,becomes:Ta,stays:Ta,tastes:Ta,taste:Ta,smells:Ta,smell:Ta,gets:Ta,grows:Ta,as:Ta,rings:Ta,radiates:Ta,conveys:Ta,convey:Ta,conveyed:Ta,of:Ta},afterWords:{too:Ta,also:Ta,or:Ta,enough:Ta,as:Ta}};const Ha="Gerund";var Ea={beforeTags:{Adverb:Ha,Preposition:Ha,Conjunction:Ha},afterTags:{Adverb:Ha,Possessive:Ha,Person:Ha,Pronoun:Ha,Determiner:Ha,Copula:Ha,Preposition:Ha,Conjunction:Ha,Comparative:Ha},beforeWords:{been:Ha,keep:Ha,continue:Ha,stop:Ha,am:Ha,be:Ha,me:Ha,began:Ha,start:Ha,starts:Ha,started:Ha,stops:Ha,stopped:Ha,help:Ha,helps:Ha,avoid:Ha,avoids:Ha,love:Ha,loves:Ha,loved:Ha,hate:Ha,hates:Ha,hated:Ha},afterWords:{you:Ha,me:Ha,her:Ha,him:Ha,his:Ha,them:Ha,their:Ha,it:Ha,this:Ha,there:Ha,on:Ha,about:Ha,for:Ha,up:Ha,down:Ha}};const Ga="Gerund",Oa="Adjective",Fa={beforeTags:Object.assign({},Da.beforeTags,Ea.beforeTags,{Imperative:Ga,Infinitive:Oa,Plural:Ga}),afterTags:Object.assign({},Da.afterTags,Ea.afterTags,{Noun:Oa}),beforeWords:Object.assign({},Da.beforeWords,Ea.beforeWords,{is:Oa,are:Ga,was:Oa,of:Oa,suggest:Ga,suggests:Ga,suggested:Ga,recommend:Ga,recommends:Ga,recommended:Ga,imagine:Ga,imagines:Ga,imagined:Ga,consider:Ga,considered:Ga,considering:Ga,resist:Ga,resists:Ga,resisted:Ga,avoid:Ga,avoided:Ga,avoiding:Ga,except:Oa,accept:Oa,assess:Ga,explore:Ga,fear:Ga,fears:Ga,appreciate:Ga,question:Ga,help:Ga,embrace:Ga,with:Oa}),afterWords:Object.assign({},Da.afterWords,Ea.afterWords,{to:Ga,not:Ga,the:Ga})},Va={beforeTags:{Determiner:void 0,Cardinal:"Noun",PhrasalVerb:"Adjective"},afterTags:{}},za={beforeTags:Object.assign({},Da.beforeTags,Na.beforeTags,Va.beforeTags),afterTags:Object.assign({},Da.afterTags,Na.afterTags,Va.afterTags),beforeWords:Object.assign({},Da.beforeWords,Na.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective",off:"Adjective",out:"Adjective"}),afterWords:Object.assign({},Da.afterWords,Na.afterWords)};let Ba="PastTense",Sa="Adjective";const $a={beforeTags:{Adverb:Ba,Pronoun:Ba,ProperNoun:Ba,Auxiliary:Ba,Noun:Ba},afterTags:{Possessive:Ba,Pronoun:Ba,Determiner:Ba,Adverb:Ba,Comparative:Ba,Date:Ba,Gerund:Ba},beforeWords:{be:Ba,who:Ba,get:Sa,had:Ba,has:Ba,have:Ba,been:Ba,it:Ba,as:Ba,for:Sa,more:Sa,always:Sa},afterWords:{by:Ba,back:Ba,out:Ba,in:Ba,up:Ba,down:Ba,before:Ba,after:Ba,for:Ba,the:Ba,with:Ba,as:Ba,on:Ba,at:Ba,between:Ba,to:Ba,into:Ba,us:Ba,them:Ba,his:Ba,her:Ba,their:Ba,our:Ba,me:Ba,about:Sa}};var Ma={beforeTags:Object.assign({},Da.beforeTags,$a.beforeTags),afterTags:Object.assign({},Da.afterTags,$a.afterTags),beforeWords:Object.assign({},Da.beforeWords,$a.beforeWords),afterWords:Object.assign({},Da.afterWords,$a.afterWords)};const Ka={afterTags:{Noun:"Adjective",Conjunction:void 0}},La={beforeTags:Object.assign({},Da.beforeTags,xa.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Da.afterTags,xa.afterTags,Ka.afterTags),beforeWords:Object.assign({},Da.beforeWords,xa.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Da.afterWords,xa.afterWords,{to:void 0,as:"Adjective"})},Ja={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},Wa={Value:"Gerund"},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"},Ua={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"},Ra={beforeTags:Object.assign({},Ea.beforeTags,Na.beforeTags,Ja),afterTags:Object.assign({},Ea.afterTags,Na.afterTags,Wa),beforeWords:Object.assign({},Ea.beforeWords,Na.beforeWords,qa),afterWords:Object.assign({},Ea.afterWords,Na.afterWords,Ua)},Qa="Singular",Za="Infinitive",_a={beforeTags:Object.assign({},xa.beforeTags,Na.beforeTags,{Adjective:Qa,Particle:Qa}),afterTags:Object.assign({},xa.afterTags,Na.afterTags,{ProperNoun:Za,Gerund:Za,Adjective:Za,Copula:Qa}),beforeWords:Object.assign({},xa.beforeWords,Na.beforeWords,{is:Qa,was:Qa,of:Qa,have:null}),afterWords:Object.assign({},xa.afterWords,Na.afterWords,{instead:Za,about:Za,his:Za,her:Za,to:null,by:null,in:null})},Xa="Person";var Ya={beforeTags:{Honorific:Xa,Person: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 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,with:"Person"},afterWords:{sometime:eo,in:eo,of:eo,until:eo,the:eo}};var no={beforeTags:Object.assign({},Ya.beforeTags,to.beforeTags),afterTags:Object.assign({},Ya.afterTags,to.afterTags),beforeWords:Object.assign({},Ya.beforeWords,to.beforeWords),afterWords:Object.assign({},Ya.afterWords,to.afterWords)};const ro="Place",ao={beforeTags:{Place:ro},afterTags:{Place:ro,Abbreviation:ro},beforeWords:{in:ro,by:ro,near:ro,from:ro,to:ro},afterWords:{in:ro,by:ro,near:ro,from:ro,to:ro,government:ro,council:ro,region:ro,city:ro}};let oo="Unit";const io={"Actor|Verb":Ia,"Adj|Gerund":Fa,"Adj|Noun":za,"Adj|Past":Ma,"Adj|Present":La,"Noun|Verb":_a,"Noun|Gerund":Ra,"Person|Noun":{beforeTags:Object.assign({},Na.beforeTags,Ya.beforeTags),afterTags:Object.assign({},Na.afterTags,Ya.afterTags),beforeWords:Object.assign({},Na.beforeWords,Ya.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Na.afterWords,Ya.afterWords)},"Person|Date":no,"Person|Verb":{beforeTags:Object.assign({},Na.beforeTags,Ya.beforeTags,xa.beforeTags),afterTags:Object.assign({},Na.afterTags,Ya.afterTags,xa.afterTags),beforeWords:Object.assign({},Na.beforeWords,Ya.beforeWords,xa.beforeWords),afterWords:Object.assign({},Na.afterWords,Ya.afterWords,xa.afterWords)},"Person|Place":{beforeTags:Object.assign({},ao.beforeTags,Ya.beforeTags),afterTags:Object.assign({},ao.afterTags,Ya.afterTags),beforeWords:Object.assign({},ao.beforeWords,Ya.beforeWords),afterWords:Object.assign({},ao.afterWords,Ya.afterWords)},"Person|Adj":{beforeTags:Object.assign({},Ya.beforeTags,Da.beforeTags),afterTags:Object.assign({},Ya.afterTags,Da.afterTags),beforeWords:Object.assign({},Ya.beforeWords,Da.beforeWords),afterWords:Object.assign({},Ya.afterWords,Da.afterWords)},"Unit|Noun":{beforeTags:{Value:oo},afterTags:{},beforeWords:{per:oo,every:oo,each:oo,square:oo,cubic:oo,sq:oo,metric:oo},afterWords:{per:oo,squared:oo,cubed:oo,long:oo}}},so=(e,t)=>{let n=Object.keys(e).reduce(((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t)),{});return Object.assign(n,t)};io["Plural|Verb"]={beforeWords:so(io["Noun|Verb"].beforeWords,{had:"Plural",have:"Plural"}),afterWords:so(io["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null,is:"PresentTense",by:"PresentTense"}),beforeTags:so(io["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:so(io["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};const lo="Adjective",uo="Infinitive",co="PresentTense",ho="Singular",go="PastTense",mo="Adverb",po="Plural",fo="Actor",bo="Verb",vo="Noun",yo="LastName",wo="Modal",ko="Place",Po="Participle";var Ao=[null,null,{ea:ho,ia:vo,ic:lo,ly:mo,"'n":bo,"'t":bo},{oed:go,ued:go,xed:go," so":mo,"'ll":wo,"'re":"Copula",azy:lo,eer:vo,end:bo,ped:go,ffy:lo,ify:uo,ing:"Gerund",ize:uo,ibe:uo,lar:lo,mum:lo,nes:co,nny:lo,ous:lo,que:lo,ger:vo,ber:vo,rol:ho,sis:ho,ogy:ho,oid:ho,ian:ho,zes:co,eld:go,ken:Po,ven:Po,ten:Po,ect:uo,ict:uo,ign:uo,oze:uo,ful:lo,bal:lo,ton:vo,pur:ko},{amed:go,aped:go,ched:go,lked:go,rked:go,reed:go,nded:go,mned:lo,cted:go,dged:go,ield:ho,akis:yo,cede:uo,chuk:yo,czyk:yo,ects:co,iend:ho,ends:bo,enko:yo,ette:ho,iary:ho,wner:ho,fies:co,fore:mo,gate:uo,gone:lo,ices:po,ints:po,ruct:uo,ines:po,ions:po,ners:po,pers:po,lers:po,less:lo,llen:lo,made:lo,nsen:yo,oses:co,ould:wo,some:lo,sson:yo,ians:po,tion:ho,tage:vo,ique:ho,tive:lo,tors:vo,vice:ho,lier:ho,fier:ho,wned:go,gent:ho,tist:fo,pist:fo,rist:fo,mist:fo,yist:fo,vist:fo,ists:fo,lite:ho,site:ho,rite:ho,mite:ho,bite:ho,mate:ho,date:ho,ndal:ho,vent:ho,uist:fo,gist:fo,note:ho,cide:ho,ence:ho,wide:lo,vide:uo,ract:uo,duce:uo,pose:uo,eive:uo,lyze:uo,lyse:uo,iant:lo,nary:lo,ghty:lo,uent:lo,erer:fo,bury:ko,dorf:vo,esty:vo,wych:ko,dale:ko,folk:ko,vale:ko,abad:ko,sham:ko,wick:ko,view:ko},{elist:fo,holic:ho,phite:ho,tized:go,urned:go,eased:go,ances:po,bound:lo,ettes:po,fully:mo,ishes:co,ities:po,marek:yo,nssen:yo,ology:vo,osome:ho,tment:ho,ports:po,rough:lo,tches:co,tieth:"Ordinal",tures:po,wards:mo,where:mo,archy:vo,pathy:vo,opoly:vo,embly:vo,phate:vo,ndent:ho,scent:ho,onist:fo,anist:fo,alist:fo,olist:fo,icist:fo,ounce:uo,iable:lo,borne:lo,gnant:lo,inant:lo,igent:lo,atory:lo,rient:ho,dient:ho,maker:fo,burgh:ko,mouth:ko,ceter:ko,ville:ko,hurst:ko,stead:ko,endon:ko,brook:ko,shire:ko,worth:vo,field:"ProperNoun",ridge:ko},{auskas:yo,parent:ho,cedent:ho,ionary:ho,cklist:ho,brooke:ko,keeper:fo,logist:fo,teenth:"Value",worker:fo,master:fo,writer:fo,brough:ko,cester:ko,ington:ko,cliffe:ko,ingham:ko},{chester:ko,logists:fo,opoulos:yo,borough:ko,sdottir:yo}];const Co="Adjective",No="Noun",jo="Verb";var xo=[null,null,{},{neo:No,bio:No,"de-":jo,"re-":jo,"un-":jo,"ex-":No},{anti:No,auto:No,faux:Co,hexa:No,kilo:No,mono:No,nano:No,octa:No,poly:No,semi:Co,tele:No,"pro-":Co,"mis-":jo,"dis-":jo,"pre-":Co},{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:Co,radio:No,tetra:No,"omni-":Co,"post-":Co},{pseudo:Co,"extra-":Co,"hyper-":Co,"inter-":Co,"intra-":Co,"deca-":Co},{electro:No}];const Io="Adjective",To="Infinitive",Do="PresentTense",Ho="Singular",Eo="PastTense",Go="Adverb",Oo="Expression",Fo="Actor",Vo="Verb",zo="Noun",Bo="LastName";var So={a:[[/.[aeiou]na$/,zo,"tuna"],[/.[oau][wvl]ska$/,Bo],[/.[^aeiou]ica$/,Ho,"harmonica"],[/^([hyj]a+)+$/,Oo,"haha"]],c:[[/.[^aeiou]ic$/,Io]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Eo,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Eo,"rammed"],[/.[aeiou][sg]hed$/,Eo,"gushed"],[/.[aeiou]red$/,Eo,"hired"],[/.[aeiou]r?ried$/,Eo,"hurried"],[/[^aeiou]ard$/,Ho,"steward"],[/[aeiou][^aeiou]id$/,Io,""],[/.[vrl]id$/,Io,"livid"],[/..led$/,Eo,"hurled"],[/.[iao]sed$/,Eo,""],[/[aeiou]n?[cs]ed$/,Eo,""],[/[aeiou][rl]?[mnf]ed$/,Eo,""],[/[aeiou][ns]?c?ked$/,Eo,"bunked"],[/[aeiou]gned$/,Eo],[/[aeiou][nl]?ged$/,Eo],[/.[tdbwxyz]ed$/,Eo],[/[^aeiou][aeiou][tvx]ed$/,Eo],[/.[cdflmnprstv]ied$/,Eo,"emptied"]],e:[[/.[lnr]ize$/,To,"antagonize"],[/.[^aeiou]ise$/,To,"antagonise"],[/.[aeiou]te$/,To,"bite"],[/.[^aeiou][ai]ble$/,Io,"fixable"],[/.[^aeiou]eable$/,Io,"maleable"],[/.[ts]ive$/,Io,"festive"],[/[a-z]-like$/,Io,"woman-like"]],h:[[/.[^aeiouf]ish$/,Io,"cornish"],[/.v[iy]ch$/,Bo,"..ovich"],[/^ug?h+$/,Oo,"ughh"],[/^uh[ -]?oh$/,Oo,"uhoh"],[/[a-z]-ish$/,Io,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Bo,"polish-male"]],k:[[/^(k){2}$/,Oo,"kkkk"]],l:[[/.[gl]ial$/,Io,"familial"],[/.[^aeiou]ful$/,Io,"fitful"],[/.[nrtumcd]al$/,Io,"natal"],[/.[^aeiou][ei]al$/,Io,"familial"]],m:[[/.[^aeiou]ium$/,Ho,"magnesium"],[/[^aeiou]ism$/,Ho,"schism"],[/^[hu]m+$/,Oo,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Io,"republican"],[/[^aeiou]ician$/,Fo,"musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,Oo,"noooo"],[/^(yo)+$/,Oo,"yoo"],[/^wo{2,}[pt]?$/,Oo,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,Ho],[/[^i]fer$/,To],[/.[^aeiou][ao]pher$/,Fo],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Io],[/[aeiou].*ist$/,Io],[/^[a-z]et$/,Vo]],s:[[/.[^aeiou]ises$/,Do],[/.[rln]ates$/,Do],[/.[^z]ens$/,Vo],[/.[lstrn]us$/,Ho],[/.[aeiou]sks$/,Do],[/.[aeiou]kes$/,Do],[/[aeiou][^aeiou]is$/,Ho],[/[a-z]'s$/,zo],[/^yes+$/,Oo]],v:[[/.[^aeiou][ai][kln]ov$/,Bo]],y:[[/.[cts]hy$/,Io],[/.[st]ty$/,Io],[/.[tnl]ary$/,Io],[/.[oe]ry$/,Ho],[/[rdntkbhs]ly$/,Go],[/.(gg|bb|zz)ly$/,Io],[/...lly$/,Go],[/.[gk]y$/,Io],[/[bszmp]{2}y$/,Io],[/.[ai]my$/,Io],[/[ea]{2}zy$/,Io],[/.[^aeiou]ity$/,Ho]]};const $o="Verb",Mo="Noun";var Ko={leftTags:[["Adjective",Mo],["Possessive",Mo],["Determiner",Mo],["Adverb",$o],["Pronoun",$o],["Value",Mo],["Ordinal",Mo],["Modal",$o],["Superlative",Mo],["Demonym",Mo],["Honorific","Person"]],leftWords:[["i",$o],["first",Mo],["it",$o],["there",$o],["not",$o],["because",Mo],["if",Mo],["but",Mo],["who",$o],["this",Mo],["his",Mo],["when",Mo],["you",$o],["very","Adjective"],["old",Mo],["never",$o],["before",Mo],["a",Mo],["the",Mo],["been",$o]],rightTags:[["Copula",Mo],["PastTense",Mo],["Conjunction",Mo],["Modal",Mo]],rightWords:[["there",$o],["me",$o],["man","Adjective"],["him",$o],["it",$o],["were",Mo],["took",Mo],["himself",$o],["went",Mo],["who",Mo],["jr","Person"]]},Lo={fwd:"3:ser,ierยฆ1er:h,t,f,l,nยฆ1r:eยฆ2er:ss,or,om",both:"3er:ver,ear,almยฆ3ner:hinยฆ3ter:latยฆ2mer:imยฆ2er:ng,rm,mbยฆ2ber:ibยฆ2ger:igยฆ1er:w,p,k,dยฆier:y",rev:"1:tter,yerยฆ2:uer,ver,ffer,oner,eler,ller,iler,ster,cer,uler,sher,ener,gher,aner,adder,nter,eter,rter,hter,rner,fterยฆ3:oser,ooler,eafer,user,airer,bler,maler,tler,eater,uger,rger,ainer,urer,ealer,icher,pler,emner,icter,nser,iserยฆ4:arser,viner,ucher,rosser,somer,ndomer,moter,oother,uarer,hiterยฆ5:nuiner,esser,emierยฆar:urther",ex:"worse:badยฆbetter:goodยฆ4er:fair,gray,poorยฆ1urther:farยฆ3ter:fat,hot,wetยฆ3der:mad,sadยฆ3er:shy,funยฆ4der:gladยฆ:ยฆ4r:cute,dire,fake,fine,free,lame,late,pale,rare,ripe,rude,safe,sore,tame,wideยฆ5r:eerie,stale"},Jo={fwd:"1:nning,tting,rring,pping,eing,mming,gging,dding,bbing,kkingยฆ2:eking,oling,eling,emingยฆ3:velling,siting,uiting,fiting,loting,geting,ialing,cellingยฆ4:graming",both:"1:aing,iing,fing,xing,ying,oing,hing,wingยฆ2:tzing,rping,izzing,bting,mning,sping,wling,rling,wding,rbing,uping,lming,wning,mping,oning,lting,mbing,lking,fting,hting,sking,gning,pting,cking,ening,nking,iling,eping,ering,rting,rming,cting,lping,ssing,nting,nding,lding,sting,rning,rding,rkingยฆ3:belling,siping,toming,yaking,uaking,oaning,auling,ooping,aiding,naping,euring,tolling,uzzing,ganing,haning,ualing,halling,iasing,auding,ieting,ceting,ouling,voring,ralling,garing,joring,oaming,oaking,roring,nelling,ooring,uelling,eaming,ooding,eaping,eeting,ooting,ooming,xiting,keting,ooking,ulling,airing,oaring,biting,outing,oiting,earing,naling,oading,eeding,ouring,eaking,aiming,illing,oining,eaning,onging,ealing,aining,eadingยฆ4:thoming,melling,aboring,ivoting,weating,dfilling,onoring,eriting,imiting,tialling,rgining,otoring,linging,winging,lleting,louding,spelling,mpelling,heating,feating,opelling,choring,welling,ymaking,ctoring,calling,peating,iloring,laiting,utoring,uditing,mmaking,loating,iciting,waiting,mbating,voiding,otalling,nsoring,nselling,ocusing,itoring,elopingยฆ5:rselling,umpeting,atrolling,treating,tselling,rpreting,pringing,ummeting,ossoming,elmaking,eselling,rediting,totyping,onmaking,rfeiting,ntrollingยฆ5e:chmaking,dkeeping,severing,erouting,ecreting,ephoning,uthoring,ravening,reathing,pediting,erfering,eotyping,fringing,entoring,ombining,ompetingยฆ4e:emaking,eething,twining,rruling,chuting,xciting,rseding,scoping,edoring,pinging,lunging,agining,craping,pleting,eleting,nciting,nfining,ncoding,tponing,ecoding,writing,esaling,nvening,gnoring,evoting,mpeding,rvening,dhering,mpiling,storing,nviting,ploringยฆ3e:tining,nuring,saking,miring,haling,ceding,xuding,rining,nuting,laring,caring,miling,riding,hoking,piring,lading,curing,uading,noting,taping,futing,paring,hading,loding,siring,guring,vading,voking,during,niting,laning,caping,luting,muting,ruding,ciding,juring,laming,caling,hining,uoting,liding,ciling,duling,tuting,puting,cuting,coring,uiding,tiring,turing,siding,rading,enging,haping,buting,lining,taking,anging,haring,uiring,coming,mining,moting,suring,viding,ludingยฆ2e:tring,zling,uging,oging,gling,iging,vring,fling,lging,obing,psing,pling,ubing,cling,dling,wsing,iking,rsing,dging,kling,ysing,tling,rging,eging,nsing,uning,osing,uming,using,ibing,bling,aging,ising,asing,atingยฆ2ie:rlyingยฆ1e:zing,uing,cing,ving",rev:"ying:ieยฆ1ing:se,ke,te,we,ne,re,de,pe,me,le,c,heยฆ2ing:ll,ng,dd,ee,ye,oe,rg,usยฆ2ning:unยฆ2ging:og,ag,ug,ig,egยฆ2ming:umยฆ2bing:ub,ab,eb,obยฆ3ning:lan,can,hin,pin,winยฆ3ring:cur,lur,tir,tar,pur,carยฆ3ing:ait,del,eel,fin,eat,oat,eem,lel,ool,ein,uinยฆ3ping:rop,rap,top,uip,wap,hip,hop,lap,rip,capยฆ3ming:tem,wim,rim,kim,limยฆ3ting:mat,cut,pot,lit,lot,hat,set,pit,putยฆ3ding:hed,bed,bidยฆ3king:rekยฆ3ling:cil,pelยฆ3bing:ribยฆ4ning:eginยฆ4ing:isit,ruit,ilot,nsit,dget,rkel,ival,rcelยฆ4ring:efer,nferยฆ4ting:rmit,mmit,ysit,dmit,emit,bmit,tfit,gretยฆ4ling:evel,xcel,ivelยฆ4ding:hredยฆ5ing:arget,posit,rofitยฆ5ring:nsferยฆ5ting:nsmit,orget,cquitยฆ5ling:ancel,istil",ex:"3:adding,eating,aiming,aiding,airing,outing,gassing,setting,getting,putting,cutting,winning,sitting,betting,mapping,tapping,letting,bidding,hitting,tanning,netting,popping,fitting,capping,lapping,barring,banning,vetting,topping,rotting,tipping,potting,wetting,pitting,dipping,budding,hemming,pinning,jetting,kidding,padding,podding,sipping,wedding,bedding,donning,warring,penning,gutting,cueing,wadding,petting,ripping,napping,matting,tinning,binning,dimming,hopping,mopping,nodding,panning,rapping,ridding,sinningยฆ4:selling,falling,calling,waiting,editing,telling,rolling,heating,boating,hanging,beating,coating,singing,tolling,felling,polling,discing,seating,voiding,gelling,yelling,baiting,reining,ruining,seeking,spanning,stepping,knitting,emitting,slipping,quitting,dialing,omitting,clipping,shutting,skinning,abutting,flipping,trotting,cramming,fretting,suitingยฆ5:bringing,treating,spelling,stalling,trolling,expelling,rivaling,wringing,deterring,singeing,befitting,refittingยฆ6:enrolling,distilling,scrolling,strolling,caucusing,travellingยฆ7:installing,redefining,stencilling,recharging,overeating,benefiting,unraveling,programingยฆ9:reprogrammingยฆis:beingยฆ2e:using,aging,owingยฆ3e:making,taking,coming,noting,hiring,filing,coding,citing,doping,baking,coping,hoping,lading,caring,naming,voting,riding,mining,curing,lining,ruling,typing,boring,dining,firing,hiding,piling,taping,waning,baling,boning,faring,honing,wiping,luring,timing,wading,piping,fading,biting,zoning,daring,waking,gaming,raking,ceding,tiring,coking,wining,joking,paring,gaping,poking,pining,coring,liming,toting,roping,wiring,achingยฆ4e:writing,storing,eroding,framing,smoking,tasting,wasting,phoning,shaking,abiding,braking,flaking,pasting,priming,shoring,sloping,withing,hingingยฆ5e:defining,refining,renaming,swathing,fringing,recitingยฆ1ie:dying,tying,lying,vyingยฆ7e:sunbathing"},Wo={fwd:"1:mtยฆ2:llenยฆ3:iven,akenยฆ:neยฆy:in",both:"1:wnยฆ2:me,atenยฆ3:seen,bidden,isenยฆ4:roven,astenยฆ3l:piltยฆ3d:uiltยฆ2e:ittenยฆ1im:wumยฆ1eak:pokenยฆ1ine:honeยฆ1ose:osenยฆ1in:gunยฆ1ake:wokenยฆear:ornยฆeal:olenยฆeeze:ozenยฆet:ottenยฆink:unkยฆing:ung",rev:"2:unยฆoken:eakยฆought:eekยฆoven:eaveยฆ1ne:oยฆ1own:lyยฆ1den:deยฆ1in:ayยฆ2t:amยฆ2n:eeยฆ3en:allยฆ4n:rive,sake,takeยฆ5n:rgive",ex:"2:beenยฆ3:seen,runยฆ4:given,takenยฆ5:shakenยฆ2eak:brokenยฆ1ive:doveยฆ2y:flownยฆ3e:hidden,riddenยฆ1eek:soughtยฆ1ake:wokenยฆ1eave:woven"},qo={fwd:"1:oesยฆ1ve:as",both:"1:xesยฆ2:zzes,ches,shes,ssesยฆ3:iasesยฆ2y:llies,pliesยฆ1y:cies,bies,ties,vies,nies,pies,dies,ries,fiesยฆ:s",rev:"1ies:lyยฆ2es:us,go,doยฆ3es:cho,eto",ex:"2:does,goesยฆ3:gassesยฆ5:focusesยฆis:areยฆ3y:reliesยฆ2y:fliesยฆ2ve:has"},Uo={fwd:"1st:eยฆ1est:l,m,f,sยฆ1iest:ceyยฆ2est:or,irยฆ3est:ver",both:"4:eastยฆ5:hwestยฆ5lest:erfulยฆ4est:weet,lgar,tter,oungยฆ4most:uterยฆ3est:ger,der,rey,iet,ong,earยฆ3test:latยฆ3most:nerยฆ2est:pt,ft,nt,ct,rt,htยฆ2test:itยฆ2gest:igยฆ1est:b,k,n,p,h,d,wยฆiest:y",rev:"1:ttest,nnest,yestยฆ2:sest,stest,rmest,cest,vest,lmest,olest,ilest,ulest,ssest,imest,uestยฆ3:rgest,eatest,oorest,plest,allest,urest,iefest,uelest,blest,ugest,amest,yalest,ealest,illest,tlest,itestยฆ4:cerest,eriest,somest,rmalest,ndomest,motest,uarest,tiffestยฆ5:leverest,rangestยฆar:urthestยฆ3ey:riciest",ex:"best:goodยฆworst:badยฆ5est:greatยฆ4est:fast,full,fair,dullยฆ3test:hot,wet,fatยฆ4nest:thinยฆ1urthest:farยฆ3est:gay,shy,illยฆ4test:neatยฆ4st:late,wide,fine,safe,cute,fake,pale,rare,rude,sore,ripe,direยฆ6st:severe"},Ro={fwd:"1:tistic,eable,lful,sful,ting,ttyยฆ2:onate,rtable,geous,ced,seful,ctfulยฆ3:ortive,entedยฆarity:earยฆy:eticยฆfulness:begoneยฆ1ity:reยฆ1y:tiful,gicยฆ2ity:ile,imous,ilous,imeยฆ2ion:atedยฆ2eness:ivingยฆ2y:triousยฆ2ation:iringยฆ2tion:vantยฆ3ion:ectยฆ3ce:mant,manticยฆ3tion:irableยฆ3y:est,esticยฆ3m:mistic,listicยฆ3ess:ningยฆ4n:utiousยฆ4on:rative,native,vative,ectiveยฆ4ce:erant",both:"1:king,wingยฆ2:alous,ltuous,oyful,rdousยฆ3:gorous,ectable,werful,amaticยฆ4:oised,usical,agical,raceful,ocused,lined,ightfulยฆ5ness:stful,lding,itous,nuous,ulous,otous,nable,gious,ayful,rvous,ntous,lsive,peful,entle,ciful,osive,leful,isive,ncise,reful,miousยฆ5ty:ivaciousยฆ5ties:ubtleยฆ5ce:ilient,adiant,atientยฆ5cy:icientยฆ5sm:gmaticยฆ5on:sessive,dictiveยฆ5ity:pular,sonal,eative,enticยฆ5sity:uminousยฆ5ism:conicยฆ5nce:mperateยฆ5ility:mitableยฆ5ment:xcitedยฆ5n:bitiousยฆ4cy:brant,etent,curateยฆ4ility:erable,acable,icable,ptableยฆ4ty:nacious,aive,oyal,daciousยฆ4n:iciousยฆ4ce:vient,erent,stent,ndent,dient,quent,identยฆ4ness:adic,ound,hing,pant,sant,oing,oist,tuteยฆ4icity:impleยฆ4ment:fined,musedยฆ4ism:oticยฆ4ry:danticยฆ4ity:tund,eralยฆ4edness:handยฆ4on:uitiveยฆ4lity:pitableยฆ4sm:eroic,namicยฆ4sity:nerousยฆ3th:armยฆ3ility:pable,bable,dable,iableยฆ3cy:hant,nant,icateยฆ3ness:red,hin,nse,ict,iet,ite,oud,ind,ied,rceยฆ3ion:luteยฆ3ity:ual,gal,volous,ialยฆ3ce:sent,fensive,lant,gant,gent,lent,dantยฆ3on:asiveยฆ3m:fist,sistic,iasticยฆ3y:terious,xurious,ronic,tasticยฆ3ur:amorousยฆ3e:tunateยฆ3ation:minedยฆ3sy:rteousยฆ3ty:ainยฆ3ry:aveยฆ3ment:azedยฆ2ness:de,on,ue,rn,ur,ft,rp,pe,om,ge,rd,od,ay,ss,er,ll,oy,ap,ht,ld,ad,rtยฆ2inousness:umousยฆ2ity:neous,ene,id,aneยฆ2cy:bate,lateยฆ2ation:izedยฆ2ility:oble,ibleยฆ2y:odicยฆ2e:oving,aringยฆ2s:ostยฆ2itude:ptยฆ2dom:eeยฆ2ance:uringยฆ2tion:reetยฆ2ion:otedยฆ2sion:endingยฆ2liness:anยฆ2or:rdentยฆ1th:ungยฆ1e:uableยฆ1ness:w,h,k,fยฆ1ility:mbleยฆ1or:ventยฆ1ement:gingยฆ1tiquity:ncientยฆ1ment:hedยฆverty:orยฆength:ongยฆeat:otยฆpth:epยฆiness:y",rev:"",ex:"5:forceful,humorousยฆ8:charismaticยฆ13:understandingยฆ5ity:activeยฆ11ness:adventurous,inquisitive,resourcefulยฆ8on:aggressive,automatic,perceptiveยฆ7ness:amorous,fatuous,furtive,ominous,seriousยฆ5ness:ample,sweetยฆ12ness:apprehensive,cantankerous,contemptuous,ostentatiousยฆ13ness:argumentative,conscientiousยฆ9ness:assertive,facetious,imperious,inventive,oblivious,rapacious,receptive,seditious,whimsicalยฆ10ness:attractive,expressive,impressive,loquacious,salubrious,thoughtfulยฆ3edom:boringยฆ4ness:calm,fast,keen,tameยฆ8ness:cheerful,gracious,specious,spurious,timorous,unctuousยฆ5sity:curiousยฆ9ion:deliberateยฆ8ion:desperateยฆ6e:expensiveยฆ7ce:fragrantยฆ3y:furiousยฆ9ility:ineluctableยฆ6ism:mysticalยฆ8ity:physical,proactive,sensitive,verticalยฆ5cy:pliantยฆ7ity:positiveยฆ9ity:practicalยฆ12ism:professionalยฆ6ce:prudentยฆ3ness:redยฆ6cy:vagrantยฆ3dom:wise"};const Qo=function(e="",t={}){let n=function(e,t={}){return t.hasOwnProperty(e)?t[e]:null}(e,t.ex);return n=n||function(e,t=[]){for(let n=0;n=1;r-=1){let a=e.length-r,o=e.substring(a,e.length);if(!0===t.hasOwnProperty(o))return e.slice(0,a)+t[o];if(!0===n.hasOwnProperty(o))return e.slice(0,a)+n[o]}return t.hasOwnProperty("")?e+t[""]:n.hasOwnProperty("")?e+n[""]:null}(e,t.fwd,t.both),n=n||e,n},Zo=function(e){return Object.entries(e).reduce(((e,t)=>(e[t[1]]=t[0],e)),{})},_o=function(e={}){return{reversed:!0,both:Zo(e.both),ex:Zo(e.ex),fwd:e.rev||{}}},Xo=/^([0-9]+)/,Yo=function(e){let t=function(e){let t={};return e.split("ยฆ").forEach((e=>{let[n,r]=e.split(":");r=(r||"").split(","),r.forEach((e=>{t[e]=n}))})),t}(e);return Object.keys(t).reduce(((e,n)=>(e[n]=function(e="",t=""){let n=(t=String(t)).match(Xo);if(null===n)return t;let r=Number(n[1])||0;return e.substring(0,r)+t.replace(Xo,"")}(n,t[n]),e)),{})},ei=function(e={}){return"string"==typeof e&&(e=JSON.parse(e)),e.fwd=Yo(e.fwd||""),e.both=Yo(e.both||""),e.rev=Yo(e.rev||""),e.ex=Yo(e.ex||""),e},ti=ei({fwd:"1:tted,wed,gged,nned,een,rred,pped,yed,bbed,oed,dded,rd,wn,mmedยฆ2:eed,nded,et,hted,st,oled,ut,emed,eled,lded,ken,rt,nked,apt,ant,eped,ekedยฆ3:eared,eat,eaded,nelled,ealt,eeded,ooted,eaked,eaned,eeted,mited,bid,uit,ead,uited,ealed,geted,velled,ialed,belledยฆ4:ebuted,hined,comedยฆy:iedยฆome:ameยฆear:oreยฆind:oundยฆing:ung,angยฆep:ptยฆink:ank,unkยฆig:ugยฆall:ellยฆee:awยฆive:aveยฆeeze:ozeยฆold:eldยฆave:ftยฆake:ookยฆell:oldยฆite:oteยฆide:odeยฆine:oneยฆin:un,onยฆeal:oleยฆim:amยฆie:ayยฆand:oodยฆ1ise:roseยฆ1eak:rokeยฆ1ing:roughtยฆ1ive:roveยฆ1el:eltยฆ1id:badeยฆ1et:gotยฆ1y:aidยฆ1it:satยฆ3e:lidยฆ3d:pent",both:"1:aed,fed,xed,hedยฆ2:sged,xted,wled,rped,lked,kied,lmed,lped,uped,bted,rbed,rked,wned,rled,mped,fted,mned,mbed,zzed,omed,ened,cked,gned,lted,sked,ued,zed,nted,ered,rted,rmed,ced,sted,rned,ssed,rded,pted,ved,ctedยฆ3:cled,eined,siped,ooned,uked,ymed,jored,ouded,ioted,oaned,lged,asped,iged,mured,oided,eiled,yped,taled,moned,yled,lit,kled,oaked,gled,naled,fled,uined,oared,valled,koned,soned,aided,obed,ibed,meted,nicked,rored,micked,keted,vred,ooped,oaded,rited,aired,auled,filled,ouled,ooded,ceted,tolled,oited,bited,aped,tled,vored,dled,eamed,nsed,rsed,sited,owded,pled,sored,rged,osed,pelled,oured,psed,oated,loned,aimed,illed,eured,tred,ioned,celled,bled,wsed,ooked,oiled,itzed,iked,iased,onged,ased,ailed,uned,umed,ained,auded,nulled,ysed,eged,ised,aged,oined,ated,used,dged,donedยฆ4:ntied,efited,uaked,caded,fired,roped,halled,roked,himed,culed,tared,lared,tuted,uared,routed,pited,naked,miled,houted,helled,hared,cored,caled,tired,peated,futed,ciled,called,tined,moted,filed,sided,poned,iloted,honed,lleted,huted,ruled,cured,named,preted,vaded,sured,talled,haled,peded,gined,nited,uided,ramed,feited,laked,gured,ctored,unged,pired,cuted,voked,eloped,ralled,rined,coded,icited,vided,uaded,voted,mined,sired,noted,lined,nselled,luted,jured,fided,puted,piled,pared,olored,cided,hoked,enged,tured,geoned,cotted,lamed,uiled,waited,udited,anged,luded,mired,uired,radedยฆ5:modelled,izzled,eleted,umpeted,ailored,rseded,treated,eduled,ecited,rammed,eceded,atrolled,nitored,basted,twined,itialled,ncited,gnored,ploded,xcited,nrolled,namelled,plored,efeated,redited,ntrolled,nfined,pleted,llided,lcined,eathed,ibuted,lloted,dhered,ccededยฆ3ad:sledยฆ2aw:drewยฆ2ot:hotยฆ2ke:madeยฆ2ow:hrew,grewยฆ2ose:hoseยฆ2d:iltยฆ2in:eganยฆ1un:ranยฆ1ink:houghtยฆ1ick:tuckยฆ1ike:ruckยฆ1eak:poke,nuckยฆ1it:patยฆ1o:didยฆ1ow:newยฆ1ake:wokeยฆgo:went",rev:"3:rst,hed,hut,cut,setยฆ4:tbidยฆ5:dcast,eread,pread,erbidยฆought:uy,eekยฆ1ied:ny,ly,dy,ry,fy,py,vy,by,ty,cyยฆ1ung:ling,ting,wingยฆ1pt:eepยฆ1ank:rinkยฆ1ore:bear,wearยฆ1ave:giveยฆ1oze:reezeยฆ1ound:rind,windยฆ1ook:take,hakeยฆ1aw:seeยฆ1old:sellยฆ1ote:riteยฆ1ole:tealยฆ1unk:tinkยฆ1am:wimยฆ1ay:lieยฆ1ood:tandยฆ1eld:holdยฆ2d:he,ge,re,le,leed,ne,reed,be,ye,lee,pe,weยฆ2ed:dd,oy,or,ey,gg,rr,us,ew,toยฆ2ame:ecome,rcomeยฆ2ped:apยฆ2ged:ag,og,ug,egยฆ2bed:ub,ab,ib,obยฆ2lt:neelยฆ2id:payยฆ2ang:pringยฆ2ove:triveยฆ2med:umยฆ2ode:rrideยฆ2at:ysitยฆ3ted:mit,hat,mat,lat,pot,rot,batยฆ3ed:low,end,tow,und,ond,eem,lay,cho,dow,xit,eld,ald,uld,law,lel,eat,oll,ray,ank,fin,oam,out,how,iek,tay,haw,ait,vet,say,cay,bowยฆ3d:ste,ede,ode,ete,ree,ude,ame,oke,ote,ime,ute,adeยฆ3red:lur,cur,pur,carยฆ3ped:hop,rop,uip,rip,lip,tep,topยฆ3ded:bed,rod,kidยฆ3ade:orbidยฆ3led:uelยฆ3ned:lan,can,kin,pan,tunยฆ3med:rim,limยฆ4ted:quit,llotยฆ4ed:pear,rrow,rand,lean,mand,anel,pand,reet,link,abel,evel,imit,ceed,ruit,mind,peal,veal,hool,head,pell,well,mell,uell,band,hear,weakยฆ4led:nnel,qual,ebel,ivelยฆ4red:nfer,efer,sferยฆ4n:sake,trewยฆ4d:nteeยฆ4ded:hredยฆ4ned:rpinยฆ5ed:light,nceal,right,ndear,arget,hread,eight,rtial,ebootยฆ5d:edite,nviteยฆ5ted:egretยฆ5led:ravel",ex:"2:been,uppedยฆ3:added,aged,aided,aimed,aired,bid,died,dyed,egged,erred,eyed,fit,gassed,hit,lied,owed,pent,pied,tied,used,vied,oiled,outed,banned,barred,bet,canned,cut,dipped,donned,ended,feed,inked,jarred,let,manned,mowed,netted,padded,panned,pitted,popped,potted,put,set,sewn,sowed,tanned,tipped,topped,vowed,weed,bowed,jammed,binned,dimmed,hopped,mopped,nodded,pinned,rigged,sinned,towed,vettedยฆ4:ached,baked,baled,boned,bored,called,caned,cared,ceded,cited,coded,cored,cubed,cured,dared,dined,edited,exited,faked,fared,filed,fined,fired,fuelled,gamed,gelled,hired,hoped,joked,lined,mined,named,noted,piled,poked,polled,pored,pulled,reaped,roamed,rolled,ruled,seated,shed,sided,timed,tolled,toned,voted,waited,walled,waned,winged,wiped,wired,zoned,yelled,tamed,lubed,roped,faded,mired,caked,honed,banged,culled,heated,raked,welled,banded,beat,cast,cooled,cost,dealt,feared,folded,footed,handed,headed,heard,hurt,knitted,landed,leaked,leapt,linked,meant,minded,molded,neared,needed,peaked,plodded,plotted,pooled,quit,read,rooted,sealed,seeded,seeped,shipped,shunned,skimmed,slammed,sparred,stemmed,stirred,suited,thinned,twinned,swayed,winked,dialed,abutted,blotted,fretted,healed,heeded,peeled,reeledยฆ5:basted,cheated,equalled,eroded,exiled,focused,opined,pleated,primed,quoted,scouted,shored,sloped,smoked,sniped,spelled,spouted,routed,staked,stored,swelled,tasted,treated,wasted,smelled,dwelled,honored,prided,quelled,eloped,scared,coveted,sweated,breaded,cleared,debuted,deterred,freaked,modeled,pleaded,rebutted,speededยฆ6:anchored,defined,endured,impaled,invited,refined,revered,strolled,cringed,recast,thrust,unfoldedยฆ7:authored,combined,competed,conceded,convened,excreted,extruded,redefined,restored,secreted,rescinded,welcomedยฆ8:expedited,infringedยฆ9:interfered,intervened,perseveredยฆ10:contravenedยฆeat:ateยฆis:wasยฆgo:wentยฆare:wereยฆ3d:bent,lent,rent,sentยฆ3e:bit,fled,hid,lostยฆ3ed:bled,bredยฆ2ow:blew,grewยฆ1uy:boughtยฆ2tch:caughtยฆ1o:didยฆ1ive:dove,gaveยฆ2aw:drewยฆ2ed:fedยฆ2y:flew,laid,paid,saidยฆ1ight:foughtยฆ1et:gotยฆ2ve:hadยฆ1ang:hungยฆ2ad:ledยฆ2ght:litยฆ2ke:madeยฆ2et:metยฆ1un:ranยฆ1ise:roseยฆ1it:satยฆ1eek:soughtยฆ1each:taughtยฆ1ake:woke,tookยฆ1eave:woveยฆ2ise:aroseยฆ1ear:bore,tore,woreยฆ1ind:bound,found,woundยฆ2eak:brokeยฆ2ing:brought,wrungยฆ1ome:cameยฆ2ive:droveยฆ1ig:dugยฆ1all:fellยฆ2el:feltยฆ4et:forgotยฆ1old:heldยฆ2ave:leftยฆ1ing:rang,sangยฆ1ide:rodeยฆ1ink:sankยฆ1ee:sawยฆ2ine:shoneยฆ4e:slidยฆ1ell:sold,toldยฆ4d:spentยฆ2in:spunยฆ1in:won"}),ni=ei(qo),ri=ei(Jo),ai=ei(Wo),oi=_o(ti),ii=_o(ni),si=_o(ri),li=_o(ai),ui=ei(Lo),ci=ei(Uo);var hi={fromPast:ti,fromPresent:ni,fromGerund:ri,fromParticiple:ai,toPast:oi,toPresent:ii,toGerund:si,toParticiple:li,toComparative:ui,toSuperlative:ci,fromComparative:_o(ui),fromSuperlative:_o(ci),adjToNoun:ei(Ro)},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","faction","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","politburo","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","subsidiary","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce(((e,t)=>(e[t]=!0,e)),{}),gi=["atoll","basin","bay","beach","bluff","bog","camp","canyon","canyons","cape","cave","caves","cliffs","coast","cove","coves","crater","crossing","creek","desert","dune","dunes","downs","estates","escarpment","estuary","falls","fjord","fjords","forest","forests","glacier","gorge","gorges","grove","gulf","gully","highland","heights","hollow","hill","hills","inlet","island","islands","isthmus","junction","knoll","lagoon","lake","lakeshore","marsh","marshes","mount","mountain","mountains","narrows","peninsula","plains","plateau","pond","rapids","ravine","reef","reefs","ridge","river","rivers","sandhill","shoal","shore","shoreline","shores","strait","straits","springs","stream","swamp","tombolo","trail","trails","trench","valley","vallies","village","volcano","waterfall","watershed","wetland","woods","acres","burough","county","district","municipality","prefecture","province","region","reservation","state","territory","borough","metropolis","downtown","uptown","midtown","city","town","township","hamlet","country","kingdom","enclave","neighbourhood","neighborhood","kingdom","ward","zone","airport","amphitheater","arch","arena","auditorium","bar","barn","basilica","battlefield","bridge","building","castle","centre","coliseum","cineplex","complex","dam","farm","field","fort","garden","gardens","gymnasium","hall","house","levee","library","manor","memorial","monument","museum","gallery","palace","pillar","pits","plantation","playhouse","quarry","sportsfield","sportsplex","stadium","terrace","terraces","theater","tower","park","parks","site","ranch","raceway","sportsplex","ave","st","street","rd","road","lane","landing","crescent","cr","way","tr","terrace","avenue"].reduce(((e,t)=>(e[t]=!0,e)),{}),mi=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..ase)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,""]];const 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(bi[t].forEach((n=>e[n]=t)),e)),{});const vi=function(e){let t=e.substring(e.length-3);if(!0===bi.hasOwnProperty(t))return bi[t];let n=e.substring(e.length-2);return!0===bi.hasOwnProperty(n)?bi[n]:"s"===e.substring(e.length-1)?"PresentTense":null},yi={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"},wi=function(e,t,n){const{fromPast:r,fromPresent:a,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",r={};t.one&&t.one.prefixes&&(r=t.one.prefixes);let[a,o]=e.split(/ /);return o&&!0===r[a]&&(n=a,a=o,o=""),{prefix:n,verb:a,particle:o}}(e,t),c="";if(n||(n=vi(e)),yi.hasOwnProperty(e))c=yi[e];else if("Participle"===n)c=Qo(l,i);else if("PastTense"===n)c=Qo(l,r);else if("PresentTense"===n)c=Qo(l,a);else{if("Gerund"!==n)return e;c=Qo(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c},ki=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:i,PastTense:Qo(i,n),PresentTense:Qo(i,r),Gerund:Qo(i,a),FutureTense:"will "+i},u=Qo(i,o);if(u!==e&&u!==l.PastTense){let n=t.one.lexicon||{};"Participle"!==n[u]&&"Adjective"!==n[u]||("play"===e&&(u="played"),l.Participle=u)}return s&&Object.keys(l).forEach((e=>{l[e]+=" "+s})),l};var Pi={toInfinitive:wi,conjugate:ki,all:function(e,t){let n=ki(e,t);return delete n.FutureTense,Object.values(n).filter((e=>e))}};const Ai=function(e,t){const n=t.two.models.toSuperlative;return Qo(e,n)},Ci=function(e,t){const n=t.two.models.toComparative;return Qo(e,n)},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},ji="ically",xi=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]),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"}],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"]),Di={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"quick",superbly:"superb",cynically:"cynical",well:"good"},Hi=[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"},Gi=function(e){if(Ei.hasOwnProperty(e))return Ei[e];let t=Ni(e,Hi);return t||(t=e+"ly"),t};var Oi={toSuperlative:Ai,toComparative:Ci,toAdverb:Gi,toNoun:function(e,t){const n=t.two.models.adjToNoun;return Qo(e,n)},fromAdverb:function(e){return e.endsWith("ly")?xi.has(e)?e.replace(/ically/,"ical"):Ti.has(e)?null:Di.hasOwnProperty(e)?Di[e]:Ni(e,Ii)||e:null},fromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return Qo(e,n)},fromComparative:function(e,t){const n=t.two.models.fromComparative;return Qo(e,n)},all:function(e,t){let n=[e];return n.push(Ai(e,t)),n.push(Ci(e,t)),n.push(Gi(e)),n=n.filter((e=>e)),n=new Set(n),Array.from(n)}},Fi={noun:fi,verb:Pi,adjective:Oi},Vi={Singular:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.noun.toPlural(e,r);a[o]||(t[o]=t[o]||"Plural")},Actor:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.noun.toPlural(e,r);a[o]||(t[o]=t[o]||["Plural","Actor"])},Comparable:(e,t,n,r)=>{let a=r.one.lexicon,{toSuperlative:o,toComparative:i}=n.two.transform.adjective,s=o(e,r);a[s]||(t[s]=t[s]||"Superlative");let l=i(e,r);a[l]||(t[l]=t[l]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,r)=>{let a=n.two.transform.noun.toPlural(e,r);t[a]=t[a]||["Demonym","Plural"]},Infinitive:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.verb.conjugate(e,r);Object.entries(o).forEach((e=>{a[e[1]]||t[e[1]]||"FutureTense"===e[0]||(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.verb.conjugate(i,r);delete l.FutureTense,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]]=2;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"]},Place:(e,t)=>{t[e]=["Place","ProperNoun"]},Region:(e,t)=>{t[e]=["Region","ProperNoun"]}};const zi={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"],t:["feet"]},Bi=new Set(["israelis","menus","logos"]),Si=["bus","mas","was","ias","xas","vas","cis","lis","nis","ois","ris","sis","tis","xis","aus","cus","eus","fus","gus","ius","lus","nus","das","ous","pus","rus","sus","tus","xus","aos","igos","ados","ogos","'s","ss"],$i=function(e){if(!e||e.length<=3)return!1;if(Bi.has(e))return!0;let t=e[e.length-1];return zi.hasOwnProperty(t)?zi[t].find((t=>e.endsWith(t))):"s"===t&&!Si.find((t=>e.endsWith(t)))};var Mi={two:{quickSplit:function(e){const t=/[,:;]/;let n=[];return e.forEach((e=>{let r=0;e.forEach(((a,o)=>{t.test(a.post)&&function(e,t){const n=/^[0-9]+$/;let r=e[t];if(!r)return!1;const a=new Set(["may","april","august","jan"]);if("like"===r.normal||a.has(r.normal))return!1;if(r.tags.has("Place")||r.tags.has("Date"))return!1;if(e[t-1]){let n=e[t-1];if(n.tags.has("Date")||a.has(n.normal))return!1;if(n.tags.has("Adjective")||r.tags.has("Adjective"))return!1}let o=r.normal;return 1!==o.length&&2!==o.length&&4!==o.length||!n.test(o)}(e,o+1)&&(n.push(e.slice(r,o+1)),r=o+1)})),r{let i=e[t],s=(t=(t=t.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);s.length>1&&(void 0===o[s[0]]||s.length>o[s[0]])&&(o[s[0]]=s.length),!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:Fi,looksPlural:$i}};let Ki={one:{lexicon:{}},two:{models:hi}};const Li={"Actor|Verb":"Actor","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":"FirstName","Person|Place":"Person","Person|Adj":"Comparative","Plural|Verb":"Plural","Unit|Noun":"Noun"},Ji=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},Wi=function(e,t,n){let r=ki(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")},qi=function(e,t,n){let r=Ai(e,n);t[r]=t[r]||"Superlative";let a=Ci(e,n);t[a]=t[a]||"Comparative"},Ui=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach((a=>{const o=e[a];if(n[a]=Li[o],"Noun|Verb"!==o&&"Person|Verb"!==o&&"Actor|Verb"!==o||Wi(a,r,!1),"Adj|Present"===o&&(Wi(a,r,!0),qi(a,r,t)),"Person|Adj"===o&&qi(a,r,t),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=wi(a,Ki,"Gerund");r[e]||(n[e]="Infinitive")}if("Noun|Gerund"!==o&&"Adj|Noun"!==o&&"Person|Noun"!==o||function(e,t,n){let r=ya(e,n);t[r]=t[r]||"Plural"}(a,r,t),"Adj|Past"===o){let e=wi(a,Ki,"PastTense");r[e]||(n[e]="Infinitive")}})),t=Ji(n,t)};let Ri={one:{_multiCache:{},lexicon:ka,frozenLex:{"20th century fox":"Organization","7 eleven":"Organization","motel 6":"Organization","excuse me":"Expression","financial times":"Organization","guns n roses":"Organization","la z boy":"Organization","labour party":"Organization","new kids on the block":"Organization","new york times":"Organization","the guess who":"Organization","thin lizzy":"Organization","prime minister":"Actor","free market":"Singular","lay up":"Singular","living room":"Singular","living rooms":"Plural","spin off":"Singular","appeal court":"Uncountable","cold war":"Uncountable","gene pool":"Uncountable","machine learning":"Uncountable","nail polish":"Uncountable","time off":"Uncountable","take part":"Infinitive","bill gates":"Person","doctor who":"Person","dr who":"Person","he man":"Person","iron man":"Person","kid cudi":"Person","run dmc":"Person","rush limbaugh":"Person","snow white":"Person","tiger woods":"Person","brand new":"Adjective","en route":"Adjective","left wing":"Adjective","off guard":"Adjective","on board":"Adjective","part time":"Adjective","right wing":"Adjective","so called":"Adjective","spot on":"Adjective","straight forward":"Adjective","super duper":"Adjective","tip top":"Adjective","top notch":"Adjective","up to date":"Adjective","win win":"Adjective","brooklyn nets":"SportsTeam","chicago bears":"SportsTeam","houston astros":"SportsTeam","houston dynamo":"SportsTeam","houston rockets":"SportsTeam","houston texans":"SportsTeam","minnesota twins":"SportsTeam","orlando magic":"SportsTeam","san antonio spurs":"SportsTeam","san diego chargers":"SportsTeam","san diego padres":"SportsTeam","iron maiden":"ProperNoun","isle of man":"Country","united states":"Country","united states of america":"Country","prince edward island":"Region","cedar breaks":"Place","cedar falls":"Place","point blank":"Adverb","tiny bit":"Adverb","by the time":"Conjunction","no matter":"Conjunction","civil wars":"Plural","credit cards":"Plural","default rates":"Plural","free markets":"Plural","head starts":"Plural","home runs":"Plural","lay ups":"Plural","phone calls":"Plural","press releases":"Plural","record labels":"Plural","soft serves":"Plural","student loans":"Plural","tax returns":"Plural","tv shows":"Plural","video games":"Plural","took part":"PastTense","takes part":"PresentTense","taking part":"Gerund","taken part":"Participle","light bulb":"Noun","rush hour":"Noun","fluid ounce":"Unit","the rolling stones":"Organization"}},two:{irregularPlurals:la,models:hi,suffixPatterns:Ao,prefixPatterns:xo,endsWith:So,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'[a-z]{3}/,"LastName","mc'neil"],[/^o'[a-z]{3}/,"LastName","o'connor"],[/^ma?cd[aeiou][a-z]{3}/,"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"],[/[^:/]\/\p{Letter}/u,"SlashedTerm","love/hate"]],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]{4}|[0-9]{2})$/,"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})$/,"NumericValue","9km"]],switches:Pa,clues:io,uncountable:{},orgWords:di,placeWords:gi}};Ri=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=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}(e=Ui(e.two.switches,e)),e}(Ri);const Qi=function(e,t,n,r){const a=r.methods.one.setTag;"-"===e[t].post&&e[t+1]&&a([e[t],e[t+1]],"Hyphenated",r,null,"1-punct-hyphen''")},Zi=/^(under|over|mis|re|un|dis|semi)-?/,_i=function(e,t,n){const r=n.two.switches;let a=e[t];if(r.hasOwnProperty(a.normal))a.switch=r[a.normal];else if(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;if(!0===e.frozen)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)))},Yi=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific","Month"],es=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t)))||($i(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=vi(e.normal);t&&Xi(e,t,"3-verb-tense-guess")}}(r)},ts=/^\p{Lu}[\p{Ll}'โ€™]/u,ns=/[0-9]/,rs=["Date","Month","WeekDay","Unit","Expression"],as=/[IVX]/,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},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===ts.test(o)&&!1===ns.test(o)?rs.find((e=>r.tags.has(e)))||r.pre.match(/["']$/)||"the"===r.normal?null:(es(e,t,n),r.tags.has("Noun")||r.frozen||r.tags.clear(),Xi(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&os.test(o)&&as.test(o)&&is.test(o)&&!ss[r.normal]?(Xi(r,"RomanNumeral","2-xvii"),!0):null},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},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 Xi(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=us(r.implicit,n.two.suffixPatterns),null!==e))return Xi(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null},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 Xi(r,e,"2-prefix"),r.confidence=.5,!0}return null},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)},vs=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))},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 Xi(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(bs(a)||bs(o))return Xi(n,"Year","2-tagYear-close");if(vs(e[t-2])||vs(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},ws=function(e,t,n,r){const a=r.methods.one.setTag,o=e[t],i=["PastTense","PresentTense","Auxiliary","Modal","Particle"];o.tags.has("Verb")&&(i.find((e=>o.tags.has(e)))||a([o],"Infinitive",r,null,"2-verb-type''"))},ks=/^[A-Z]('s|,)?$/,Ps=/^[A-Z-]+$/,As=/^[A-Z]+s$/,Cs=/([A-Z]\.)+[A-Z]?,?$/,Ns=/[A-Z]{2,}('s|,)?$/,js=/([a-z]\.)+[a-z]\.?$/,xs={I:!0,A:!0},Is={la:!0,ny:!0,us:!0,dc:!0,gb:!0},Ts=function(e,t,n){let r=e[t];return r.tags.has("RomanNumeral")||r.tags.has("Acronym")||r.frozen?null:function(e,t){let n=e.text;if(!1===Ps.test(n)){if(!(n.length>3&&!0===As.test(n)))return!1;n=n.replace(/s$/,"")}return!(n.length>5||xs.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Cs.test(n)&&!0!==js.test(n)&&!0!==ks.test(n)&&!0!==Ns.test(n))}(r,n)?(r.tags.clear(),Xi(r,["Acronym","Noun"],"3-no-period-acronym"),!0===Is[r.normal]&&Xi(r,"Place","3-place-acronym"),!0===As.test(r.text)&&Xi(r,"Plural","3-plural-acronym"),!0):!xs.hasOwnProperty(r.text)&&ks.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")&&Ps.test(r.text)&&r.text.length<=6?(Xi(r,"Acronym","3-titlecase-acronym"),!0):null},Ds=function(e,t){if(!e)return null;let n=t.find((t=>e.normal===t[0]));return n?n[1]:null},Hs=function(e,t){if(!e)return null;let n=t.find((t=>e.tags.has(t[0])));return n?n[1]:null},Es=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||Hs(e[t-1],r),l=l||Hs(e[t+1],i),l)return Xi(s,l,"3-[neighbour]"),es(e,t,n),e[t].confidence=.2,!0}return null},Gs=function(e,t,n){return!!e&&!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||!(n||(r=e.text,!/^\p{Lu}[\p{Ll}'โ€™]/u.test(r)))&&(0!==t||e.tags.has("Singular")));var r},Os=function(e,t,n,r){const a=n.model.two.orgWords,o=n.methods.one.setTag;let i=e[t];if(!0===a[i.machine||i.normal]&&Gs(e[t-1],t-1,r)){o([e[t]],"Organization",n,null,"3-[org-word]");for(let a=t;a>=0&&Gs(e[a],a,r);a-=1)o([e[a]],"Organization",n,null,"3-[org-word]")}return null},Fs=/'s$/,Vs=new Set(["athletic","city","community","eastern","federal","financial","great","historic","historical","local","memorial","municipal","national","northern","provincial","southern","state","western","spring","pine","sunset","view","oak","maple","spruce","cedar","willow"]),zs=new Set(["center","centre","way","range","bar","bridge","field","pit"]),Bs=function(e,t,n){if(!e)return!1;let r=e.tags;return!(r.has("Organization")||r.has("Possessive")||Fs.test(e.normal))&&(!(!r.has("ProperNoun")&&!r.has("Place"))||!(n||(a=e.text,!/^\p{Lu}[\p{Ll}'โ€™]/u.test(a)))&&(0!==t||r.has("Singular")));var a},Ss=function(e,t,n,r){const a=n.model.two.placeWords,o=n.methods.one.setTag;let i=e[t],s=i.machine||i.normal;if(!0===a[s]){for(let a=t-1;a>=0;a-=1)if(!Vs.has(e[a].normal)){if(!Bs(e[a],a,r))break;o(e.slice(a,t+1),"Place",n,null,"3-[place-of-foo]")}if(zs.has(s))return!1;for(let a=t+1;ae[t].tags.has("ProperNoun")&&Ms.test(e[t].text)?"Noun":null,Ls=(e,t,n)=>0!==t||e[1]?null:n,Js={"Adj|Gerund":(e,t)=>Ks(e,t),"Adj|Noun":(e,t)=>Ks(e,t)||function(e,t){return!e[t+1]&&e[t-1]&&e[t-1].tags.has("Determiner")?"Noun":null}(e,t),"Actor|Verb":(e,t)=>Ks(e,t),"Adj|Past":(e,t)=>Ks(e,t),"Adj|Present":(e,t)=>Ks(e,t),"Noun|Gerund":(e,t)=>Ks(e,t),"Noun|Verb":(e,t)=>t>0&&Ks(e,t)||Ls(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Ks(e,t)||Ls(e,t,"PresentTense")||function(e,t,n){return 0===t&&e.length>3?n:null}(e,t,"Plural"),"Person|Noun":(e,t)=>Ks(e,t),"Person|Verb":(e,t)=>0!==t?Ks(e,t):null,"Person|Adj":(e,t)=>0===t&&e.length>1||Ks(e,t)?"Person":null},Ws="undefined"!=typeof process&&process.env?process.env:self.env||{},qs=/^(under|over|mis|re|un|dis|semi)-?/,Us=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit,r=null;return t.hasOwnProperty(n)&&(r=t[n]),r&&Ws.DEBUG_TAGS&&console.log(`\n  โ†“ - '${n}' `),r},Rs=(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)),a=r.find((e=>t[e]));return a&&Ws.DEBUG_TAGS&&console.log(`  โ†“ - '${e.normal||e.implicit}' (#${a}) `),a=t[a],a},Qs=function(e,t,n){const r=n.model,a=n.methods.one.setTag,{switches:o,clues:i}=r.two,s=e[t];let l=s.normal||s.implicit||"";if(qs.test(l)&&!o[l]&&(l=l.replace(qs,"")),s.switch){let o=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let u=function(e,t,n,r){if(!n)return null;const a="also"!==e[t-1]?.text?t-1:Math.max(0,t-2),o=r.one.tagSet;let i=Us(e[t+1],n.afterWords);return i=i||Us(e[a],n.beforeWords),i=i||Rs(e[a],n.beforeTags,o),i=i||Rs(e[t+1],n.afterTags,o),i}(e,t,i[o],r);Js[o]&&(u=Js[o](e,t)||u),u?(a([s],u,n,null,`3-[switch] (${o})`),es(e,t,r)):Ws.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}},Zs={there:!0,this:!0,it:!0,him:!0,her:!0,us:!0},_s=function(e){if(e.filter((e=>!e.tags.has("ProperNoun"))).length<=3)return!1;const t=/^[a-z]/;return e.every((e=>!t.test(e.text)))},Xs=function(e,t,n,r){for(let a=0;a=2){if(e.length<4&&!Zs[e[1].normal])return;if(!a.tags.has("PhrasalVerb")&&r.hasOwnProperty(a.normal))return;(e[1].tags.has("Noun")||e[1].tags.has("Determiner"))&&(e.slice(1,3).some((e=>e.tags.has("Verb")))&&!a.tags.has("#PhrasalVerb")||n([a],"Imperative",t,null,"3-[imperative]"))}}(e,n)},el={Possessive:e=>{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.noun.toSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(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.verb.toInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromSuperlative(n,t.model)},Adverb:(e,t)=>{const{fromAdverb:n}=t.methods.two.transform.adjective;return n(e.machine||e.normal||e.text)}},tl={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:"NN",Plural:"NNS",Noun:"NN",There:"EX"};var nl={preTagger:function(e){const{methods:t,model:n,world:r}=e;let a=e.docs;!function(e,t,n){e.forEach((e=>{!function(e,t,n,r){const a=r.methods.one.setTag;if(e.length>=3){const t=/:/;if(e[0].post.match(t)){let t=e[1];if(t.tags.has("Value")||t.tags.has("Email")||t.tags.has("PhoneNumber"))return;a([e[0]],"Expression",r,null,"2-punct-colon''")}}}(e,0,0,n)}))}(a,0,r);let o=t.two.quickSplit(a);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))),n[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))},gl=/'/,ml=new Set(["been","become"]),pl=new Set(["what","how","when","if","too"]);let fl=new Set(["too","also","enough"]);const bl=function(e,t){let n=e[t].normal.split(gl)[0];if("let"===n)return[n,"us"];if("there"===n){let r=e[t+1];if(r&&r.tags.has("Plural"))return[n,"are"]}return"has"===((e,t)=>{for(let n=t+1;n{for(let n=t+1;n0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]],a.compute(["freeze","lexicon","preTagger","unfreeze"]),function(e){e.forEach(((e,t)=>{e.index&&(e.index[1]=t)}))}(e)},Il={d:(e,t)=>kl(e,t),t:(e,t)=>function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){if(e[t+1]&&"never"===e[t+1].normal)return["have"];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("i"===n.normal)return["am","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]}(e,t),s:(e,t,n)=>((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("QuestionWord"))return!1;if("he's"===n.normal||"she's"===n.normal)return!1;let r=e[t+1];if(!r)return!0;if("it's"===n.normal)return!!r.tags.has("#Noun");if("Noun|Gerund"==r.switch){let r=e[t+2];return r?!!r.tags.has("Copula")||("on"===r.normal||r.normal,!1):!(!n.tags.has("Actor")&&!n.tags.has("ProperNoun"))}if(r.tags.has("Verb"))return!!r.tags.has("Infinitive")||!r.tags.has("Gerund")&&!!r.tags.has("PresentTense");if("Adj|Noun"===r.switch){let n=e[t+2];if(!n)return!1;if(Nl.has(n.normal))return!0;if(Cl.has(n.normal))return!1}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;if(r.tags.has("Adjective")){let n=e[t+2];if(!n)return!1;if(n.tags.has("Noun")&&!n.tags.has("Pronoun")){let e=r.normal;return"above"!==e&&"below"!==e&&"behind"!==e}return"Noun|Verb"===n.switch}return!!r.tags.has("Value")})(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,null,"2-contraction"):bl(e,t)},Tl=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var Dl={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)continue;let i=null;!0===jl.test(r[o].normal)&&(i=r[o].normal.split(jl)[1]);let s=null;Il.hasOwnProperty(i)&&(s=Il[i](r,o,t)),s&&(s=Tl(s,e),dl(n,[a,o],s),xl(n[a],e,o,s.length))}}))}},Hl={compute:Dl,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=cl},hooks:["contractionTwo"]};const El="(hard|fast|late|early|high|right|deep|close|direct)",Gl="(i|we|they)";let Ol=[].concat([{match:"(got|were|was|is|are|am) (#PastTense|#Participle)",tag:"Passive",reason:"got-walked"},{match:"(was|were|is|are|am) being (#PastTense|#Participle)",tag:"Passive",reason:"was-being"},{match:"(had|have|has) been (#PastTense|#Participle)",tag:"Passive",reason:"had-been"},{match:"will be being? (#PastTense|#Participle)",tag:"Passive",reason:"will-be-cleaned"},{match:"#Noun [(#PastTense|#Participle)] by (the|a) #Noun",group:0,tag:"Passive",reason:"suffered-by"}],[{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,notIf:"(all|even)",tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"[#Hyphenated (#Hyphenated && #PastTense)] (#Noun|#Conjunction)",group:0,tag:"Adjective",notIf:"#Adverb",reason:"faith-based"},{match:"[#Hyphenated (#Hyphenated && #Gerund)] (#Noun|#Conjunction)",group:0,tag:"Adjective",notIf:"#Adverb",reason:"self-driving"},{match:"[#PastTense (#Hyphenated && #PhrasalVerb)] (#Noun|#Conjunction)",group:0,tag:"Adjective",reason:"dammed-up"},{match:"(#Hyphenated && #Value) fold",tag:"Adjective",reason:"two-fold"},{match:"must (#Hyphenated && #Infinitive)",tag:"Adjective",reason:"must-win"},{match:"(#Hyphenated && #Infinitive) #Hyphenated",tag:"Adjective",notIf:"#PhrasalVerb",reason:"vacuum-sealed"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"},{match:"[(un|contra|extra|inter|intra|macro|micro|mid|mis|mono|multi|pre|sub|tri|ex)] #Adjective",group:0,tag:["Adjective","Prefix"],reason:"un-skilled"}],[{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:"#Copula [far too] #Adjective",group:0,tag:"Adverb",reason:"far-too"},{match:"#Copula [still] (in|#Gerund|#Adjective)",group:0,tag:"Adverb",reason:"was-still-walking"},{match:`#Plural ${El}`,tag:"#PresentTense #Adverb",reason:"studies-hard"},{match:`#Verb [${El}] !#Noun?`,group:0,notIf:"(#Copula|get|got|getting|become|became|becoming|feel|feels|feeling|#Determiner|#Preposition)",tag:"Adverb",reason:"shops-direct"},{match:"[#Plural] a lot",tag:"PresentTense",reason:"studies-a-lot"}],[{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:"#Gerund [#Gerund]",group:0,tag:"Adjective",notIf:"(impersonating|practicing|considering|assuming)",reason:"looking-annoying"},{match:"(looked|look|looks) #Adverb? [%Adj|Gerund%]",group:0,tag:"Adjective",notIf:"(impersonating|practicing|considering|assuming)",reason:"looked-amazing"},{match:"[%Adj|Gerund%] #Determiner",group:0,tag:"Gerund",reason:"developing-a"},{match:"#Possessive [%Adj|Gerund%] #Noun",group:0,tag:"Adjective",reason:"leading-manufacturer"},{match:"%Noun|Gerund% %Adj|Gerund%",tag:"Gerund #Adjective",reason:"meaning-alluring"},{match:"(face|embrace|reveal|stop|start|resume) %Adj|Gerund%",tag:"#PresentTense #Adjective",reason:"face-shocking"},{match:"(are|were) [%Adj|Gerund%] #Plural",group:0,tag:"Adjective",reason:"are-enduring-symbols"}],[{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",notIf:"#Hyphenated",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:"no [#Adjective] #Modal",group:0,tag:"Noun",reason:"no-golden"},{match:"[brand #Gerund?] new",group:0,tag:"Adverb",reason:"brand-new"},{match:"(#Determiner|#Comparative|new|different) [kind]",group:0,tag:"Noun",reason:"some-kind"},{match:"#Possessive [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"her-favourite"},{match:"must && #Hyphenated .",tag:"Adjective",reason:"must-win"},{match:"#Determiner [#Adjective]$",tag:"Noun",notIf:"(this|that|#Comparative|#Superlative)",reason:"the-south"},{match:"(#Noun && #Hyphenated) (#Adjective && #Hyphenated)",tag:"Adjective",notIf:"(this|that|#Comparative|#Superlative)",reason:"company-wide"},{match:"#Determiner [#Adjective] (#Copula|#Determiner)",notIf:"(#Comparative|#Superlative)",group:0,tag:"Noun",reason:"the-poor"},{match:"[%Adj|Noun%] #Noun",notIf:"(#Pronoun|#ProperNoun)",group:0,tag:"Adjective",reason:"stable-foundations"}],[{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,notIf:"(#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] #Comparative",group:0,tag:"Adverb",reason:"even-worse"},{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|bright|slow|fast|backwards|forwards)]",notIf:"#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",notIf:"(getting|becoming|feeling)",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",notIf:"(#PhrasalVerb|#Copula)",reason:"charge-back"},{match:"#Verb [around]",group:0,tag:"Adverb",notIf:"#PhrasalVerb",reason:"send-around"},{match:"[later] #PresentTense",group:0,tag:"Adverb",reason:"later-say"},{match:"#Determiner [well] !#PastTense?",group:0,tag:"Noun",reason:"the-well"},{match:"#Adjective [enough]",group:0,tag:"Adverb",reason:"high-enough"}],[{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) !#Infinitive?",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:"#Value (am|pm)",tag:"Time",reason:"2-am"}],[{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:"(the|any) [more]",group:0,tag:"Singular",reason:"more-noun"},{match:"[more] #Noun",group:0,tag:"Adjective",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Singular",reason:"bit-2"},{match:"a [must]",group:0,tag:"Singular",reason:"must-2"},{match:"(we|us) [all]",group:0,tag:"Noun",reason:"we all"},{match:"due to [#Verb]",group:0,tag:"Noun",reason:"due-to"},{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",notIf:"#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:"(a|an|the) [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",notIf:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,notIf:"#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? [#PresentTense #Particle?]",group:0,tag:"Noun",notIf:"(seem|appear|include|#Gerund|#Copula)",reason:"det-inf"},{match:"#Noun #Actor",tag:"Actor",notIf:"(#Person|#Pronoun)",reason:"thing-doer"},{match:"#Gerund #Actor",tag:"Actor",reason:"gerund-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"[#Noun+] #Actor",group:0,tag:"Actor",notIf:"(#Honorific|#Pronoun|#Possessive)",reason:"air-traffic-controller"},{match:"(urban|cardiac|cardiovascular|respiratory|medical|clinical|visual|graphic|creative|dental|exotic|fine|certified|registered|technical|virtual|professional|amateur|junior|senior|special|pharmaceutical|theoretical)+ #Noun? #Actor",tag:"Actor",reason:"fine-artist"},{match:"#Noun+ (coach|chef|king|engineer|fellow|personality|boy|girl|man|woman|master)",tag:"Actor",reason:"dance-coach"},{match:"chief . officer",tag:"Actor",reason:"chief-x-officer"},{match:"chief of #Noun+",tag:"Actor",reason:"chief-of-police"},{match:"senior? vice? president of #Noun+",tag:"Actor",reason:"president-of"},{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:"#Possessive #PresentTense #Particle?",notIf:"(#Gerund|her)",tag:"Noun",reason:"possessive-verb"},{match:"(my|our|their|her|his|its) [(#Plural && #Actor)] #Noun",tag:"Possessive",reason:"my-dads"},{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 [#Verb] and #Noun",group:0,tag:"Noun",reason:"peace-and-flowers"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"},{match:"#Copula the [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"the-premier-university"},{match:"i #Verb [me] #Noun",group:0,tag:"Possessive",reason:"scottish-me"},{match:"[#PresentTense] (music|class|lesson|night|party|festival|league|ceremony)",group:0,tag:"Noun",reason:"dance-music"},{match:"[wit] (me|it)",group:0,tag:"Presposition",reason:"wit-me"},{match:"#PastTense #Possessive [#Verb]",group:0,tag:"Noun",notIf:"(saw|made)",reason:"left-her-boots"},{match:"#Value [%Plural|Verb%]",group:0,tag:"Plural",notIf:"(one|1|a|an)",reason:"35-signs"},{match:"had [#PresentTense]",group:0,tag:"Noun",notIf:"(#Gerund|come|become)",reason:"had-time"},{match:"%Adj|Noun% %Noun|Verb%",tag:"#Adjective #Noun",notIf:"#ProperNoun #Noun",reason:"instant-access"},{match:"#Determiner [%Adj|Noun%] #Conjunction",group:0,tag:"Noun",reason:"a-rep-to"},{match:"#Adjective #Noun [%Plural|Verb%]$",group:0,tag:"Plural",notIf:"#Pronoun",reason:"near-death-experiences"},{match:"#Possessive #Noun [%Plural|Verb%]$",group:0,tag:"Plural",reason:"your-guild-colors"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,ifNo:"#Copula",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",notIf:"(still|even|just)",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"#Copula [(#Gerund|#Activity)] #Copula",group:0,tag:"Gerund",reason:"are-doing-is"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"},{match:"#Singular for [%Noun|Gerund%]",group:0,tag:"Gerund",reason:"noun-for-gerund"},{match:"#Comparative (for|at) [%Noun|Gerund%]",group:0,tag:"Gerund",reason:"better-for-gerund"},{match:"#PresentTense the [#Gerund]",group:0,tag:"Noun",reason:"keep-the-touching"}],[{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 (only|further|just|more|backward) [#Infinitive]",group:0,tag:"Noun",reason:"the-only-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{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,notIf:"from",tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"#Plural 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 #Particle?]",notIf:"(#Copula|#Noun|sure|fun|up)",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",notIf:"#Pronoun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"this [#Plural]",group:0,tag:"PresentTense",notIf:"(#Preposition|#Date)",reason:"this-verbs"},{match:"#Noun that [#Plural]",group:0,tag:"PresentTense",notIf:"(#Preposition|#Pronoun|way)",reason:"voice-that-rocks"},{match:"that [#Plural] to",group:0,tag:"PresentTense",notIf:"#Preposition",reason:"that-leads-to"},{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]",notIf:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",notIf:"better",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",notIf:"(#Copula|better)",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"many-poses"},{match:"#Determiner #Adverb #Adjective [%Noun|Verb%]",group:0,tag:"Noun",notIf:"#Copula",reason:"very-big-dream"},{match:"from #Noun to [%Noun|Verb%]",group:0,tag:"Noun",reason:"start-to-finish"},{match:"(for|with|of) #Noun (and|or|not) [%Noun|Verb%]",group:0,tag:"Noun",notIf:"#Pronoun",reason:"for-food-and-gas"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",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) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #Particle #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] of",group:0,notIf:"(one|1|#Copula|#Infinitive)",tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",notIf:"#Copula",reason:"our-full-support"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",notIf:"going",reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"},{match:"how to [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"how-to-noun"},{match:"which [%Noun|Verb%] #Noun",group:0,tag:"Infinitive",reason:"which-boost-it"},{match:"#Gerund [%Plural|Verb%]",group:0,tag:"Plural",reason:"asking-questions"},{match:"(ready|available|difficult|hard|easy|made|attempt|try) to [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"ready-to-noun"},{match:"(bring|went|go|drive|run|bike) to [%Noun|Verb%]",group:0,tag:"Noun",reason:"bring-to-noun"},{match:"#Modal #Noun [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"would-you-look"},{match:"#Copula just [#Infinitive]",group:0,tag:"Noun",reason:"is-just-spam"},{match:"^%Noun|Verb% %Plural|Verb%",tag:"Imperative #Plural",reason:"request-copies"},{match:"#Adjective #Plural and [%Plural|Verb%]",group:0,tag:"#Plural",reason:"pickles-and-drinks"},{match:"#Determiner #Year [#Verb]",group:0,tag:"Noun",reason:"the-1968-film"},{match:"#Determiner [#PhrasalVerb #Particle]",group:0,tag:"Noun",reason:"the-break-up"},{match:"#Determiner [%Adj|Noun%] #Noun",group:0,tag:"Adjective",notIf:"(#Pronoun|#Possessive|#ProperNoun)",reason:"the-individual-goals"},{match:"[%Noun|Verb%] or #Infinitive",group:0,tag:"Infinitive",reason:"work-or-prepare"},{match:"to #Infinitive [#PresentTense]",group:0,tag:"Noun",notIf:"(#Gerund|#Copula|help)",reason:"to-give-thanks"},{match:"[#Noun] me",group:0,tag:"Verb",reason:"kills-me"},{match:"%Plural|Verb% %Plural|Verb%",tag:"#PresentTense #Plural",reason:"removes-wrinkles"}],[{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:"a pound",tag:"#Money #Unit",reason:"a-pound"},{match:"#Value (pound|pounds)",tag:"#Money #Unit",reason:"4-pounds"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"},{match:"#Value #Unit [(per|an) (hr|hour|sec|second|min|minute)]",group:0,tag:"Unit",reason:"12-miles-per-second"},{match:"#Value [(square|cubic)] #Unit",group:0,tag:"Unit",reason:"square-miles"}],[{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(sister|pope|brother|father|aunt|uncle|grandpa|grandfather|grandma) #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",notIf:"#Place",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",notIf:"#Place",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",notIf:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",notIf:"#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:"[(lieutenant|corporal|sergeant|captain|qeen|king|admiral|major|colonel|marshal|president|queen|king)+] #ProperNoun",group:0,tag:"Honorific",reason:"seargeant-john"},{match:"[(private|general|major|rear|prime|field|count|miss)] #Honorific? #Person",group:0,tag:["Honorific","Person"],reason:"ambg-honorifics"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",notIf:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:"Honorific",reason:"his-excellency"},{match:"#Honorific #Actor",tag:"Honorific",reason:"Lieutenant colonel"},{match:"(first|second|third|1st|2nd|3rd) #Actor",tag:"Honorific",reason:"first lady"},{match:"#Person #RomanNumeral",tag:"Person",reason:"louis-IV"}],[{match:"#FirstName #Noun$",tag:". #LastName",notIf:"(#Possessive|#Organization|#Place|#Pronoun|@hasTitleCase)",reason:"firstname-noun"},{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",ifNo:"#Actor"},{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:"#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:"(#FirstName && !#Possessive) [#Singular] #Verb",group:0,safe:!0,tag:"LastName",reason:"jack-layton"},{match:"^[#Singular] #Person #Verb",group:0,safe:!0,tag:"Person",reason:"sherwood-anderson"},{match:"(a|an) [#Person]$",group:0,unTag:"Person",reason:"a-warhol"}],[{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",notIf:"(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:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(have|had) read",tag:"Modal #PastTense",reason:"read-read"},{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:"as #Pronoun [please]",group:0,tag:"Infinitive",reason:"as-we-please"},{match:"[(co|mis|de|inter|intra|pre|re|un|out|under|over|counter)] #Verb",group:0,tag:["Verb","Prefix"],notIf:"(#Copula|#PhrasalVerb)",reason:"co-write"},{match:"#PastTense and [%Adj|Past%]",group:0,tag:"PastTense",reason:"dressed-and-left"},{match:"[%Adj|Past%] and #PastTense",group:0,tag:"PastTense",reason:"dressed-and-left"},{match:"#Copula #Pronoun [%Adj|Past%]",group:0,tag:"Adjective",reason:"is-he-stoked"},{match:"to [%Noun|Verb%] #Preposition",group:0,tag:"Infinitive",reason:"to-dream-of"}],[{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:"#Copula [#Adjective] (well|badly|quickly|slowly)",group:0,tag:"Verb",reason:"done-well"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"},{match:"(seem|feel|seemed|felt) [#PastTense #Particle?]",group:0,tag:"Adjective",reason:"seem-confused"},{match:"a (bit|little|tad) [#PastTense #Particle?]",group:0,tag:"Adjective",reason:"a-bit-confused"},{match:"not be [%Adj|Past% #Particle?]",group:0,tag:"Adjective",reason:"do-not-be-confused"},{match:"#Copula just [%Adj|Past% #Particle?]",group:0,tag:"Adjective",reason:"is-just-right"},{match:"as [#Infinitive] as",group:0,tag:"Adjective",reason:"as-pale-as"},{match:"[%Adj|Past%] and #Adjective",group:0,tag:"Adjective",reason:"faled-and-oppressive"},{match:"or [#PastTense] #Noun",group:0,tag:"Adjective",notIf:"(#Copula|#Pronoun)",reason:"or-heightened-emotion"},{match:"(become|became|becoming|becomes) [#Verb]",group:0,tag:"Adjective",reason:"become-verb"},{match:"#Possessive [#PastTense] #Noun",group:0,tag:"Adjective",reason:"declared-intentions"},{match:"#Copula #Pronoun [%Adj|Present%]",group:0,tag:"Adjective",reason:"is-he-cool"},{match:"#Copula [%Adj|Past%] with",group:0,tag:"Adjective",notIf:"(associated|worn|baked|aged|armed|bound|fried|loaded|mixed|packed|pumped|filled|sealed)",reason:"is-crowded-with"},{match:"#Copula #Adverb? [%Adj|Present%]$",group:0,tag:"Adjective",reason:"was-empty$"}],[{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:"[(#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:"[(been|had|became|came)] #PastTense",group:0,notIf:"#PhrasalVerb",tag:"Auxiliary",reason:"been-told"},{match:"[(being|having|getting)] #Verb",group:0,tag:"Auxiliary",reason:"being-born"},{match:"[be] #Gerund",group:0,tag:"Auxiliary",reason:"be-walking"},{match:"[better] #PresentTense",group:0,tag:"Modal",notIf:"(#Copula|#Gerund)",reason:"better-go"},{match:"even better",tag:"Adverb #Comparative",reason:"even-better"}],[{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)",notIf:"#Copula",tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"#Verb (up|down|in|on|for)$",tag:"PhrasalVerb #Particle",notIf:"#PhrasalVerb",reason:"come-down$"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"#PhrasalVerb (in && #Particle) #Determiner",tag:"#Verb #Preposition #Determiner",unTag:"PhrasalVerb",reason:"work-in-the"},{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",notIf:"(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|a|an|any|each|every|some|more|with|on)",group:0,notIf:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me|there)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^[#Infinitive] (#Adjective|#Adverb)? and #Infinitive",group:0,tag:"Imperative",reason:"call-and-reserve"},{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:"^[#PhrasalVerb #Particle] #Determiner #Noun",group:0,tag:"Imperative",reason:"turn-off-the-light"},{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:"^come #Infinitive",tag:"Imperative",notIf:"on",reason:"come-have"},{match:"^come and? #Infinitive",tag:"Imperative . Imperative",notIf:"#PhrasalVerb",reason:"come-and-have"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[(stay|be|keep)] #Adjective",group:0,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:"[#Infinitive] what .",group:0,tag:"Imperative",reason:"look-what"},{match:"^[#Infinitive] #Gerund",group:0,tag:"Imperative",reason:"keep-playing"},{match:"^[#Infinitive] (to|for|into|toward|here|there)",group:0,tag:"Imperative",reason:"go-to"},{match:"^[#Infinitive] (and|or) #Infinitive",group:0,tag:"Imperative",reason:"inf-and-inf"},{match:"^[%Noun|Verb%] to",group:0,tag:"Imperative",reason:"commit-to"},{match:"^[#Infinitive] #Adjective? #Singular #Singular",group:0,tag:"Imperative",reason:"maintain-eye-contact"},{match:"do not (forget|omit|neglect) to [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-forget"},{match:"^[(ask|wear|pay|look|help|show|watch|act|fix|kill|stop|start|turn|try|win)] #Noun",group:0,tag:"Imperative",reason:"pay-attention"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"},{match:"#Gerund [#Gerund] #Plural",group:0,tag:"Adjective",reason:"hard-working-fam"}],[{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:"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:"[right] (before|after|in|into|to|toward)",group:0,tag:"#Adverb",reason:"right-into"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"(are|#Modal|see|do|for) [ya]",group:0,tag:"Pronoun",reason:"are-ya"},{match:"[long live] .",group:0,tag:"#Adjective #Infinitive",reason:"long-live"},{match:"[plenty] of",group:0,tag:"#Uncountable",reason:"plenty-of"},{match:"(always|nearly|barely|practically) [there]",group:0,tag:"Adjective",reason:"always-there"},{match:"[there] (#Adverb|#Pronoun)? #Copula",group:0,tag:"There",reason:"there-is"},{match:"#Copula [there] .",group:0,tag:"There",reason:"is-there"},{match:"#Modal #Adverb? [there]",group:0,tag:"There",reason:"should-there"},{match:"^[do] (you|we|they)",group:0,tag:"QuestionWord",reason:"do-you"},{match:"^[does] (he|she|it|#ProperNoun)",group:0,tag:"QuestionWord",reason:"does-he"},{match:"#Determiner #Noun+ [who] #Verb",group:0,tag:"Preposition",reason:"the-x-who"},{match:"#Determiner #Noun+ [which] #Verb",group:0,tag:"Preposition",reason:"the-x-which"},{match:"a [while]",group:0,tag:"Noun",reason:"a-while"},{match:"guess who",tag:"#Infinitive #QuestionWord",reason:"guess-who"},{match:"[fucking] !#Verb",group:0,tag:"#Gerund",reason:"f-as-gerund"}],[{match:"university of #Place",tag:"Organization",reason:"university-of-Foo"},{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",notIf:"#FirstName",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:"government of the? [#Place+]",tag:"Organization",reason:"government-of-x"},{match:"(health|school|commerce) board",tag:"Organization",reason:"school-board"},{match:"(nominating|special|conference|executive|steering|central|congressional) committee",tag:"Organization",reason:"special-comittee"},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"},{match:"#Place+ #SportsTeam",tag:"SportsTeam",reason:"place-sportsteam"},{match:"(dc|atlanta|minnesota|manchester|newcastle|sheffield) united",tag:"SportsTeam",reason:"united-sportsteam"},{match:"#Place+ fc",tag:"SportsTeam",reason:"fc-sportsteam"},{match:"#Place+ #Noun{0,2} (club|society|group|team|committee|commission|association|guild|crew)",tag:"Organization",reason:"place-noun-society"}],[{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+ (cliff|place|range|pit|place|point|room|grounds|ruins)",tag:"Place",reason:"foo-point"},{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:"(port|mount|mt) #ProperName",tag:"Place",reason:"port-name"}],[{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:"a #Noun [like] (#Noun|#Determiner)",group:0,tag:"Preposition",reason:"a-noun-like"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Infinitive #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"}],[{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^[(well|so|okay|now)] !#Adjective?",group:0,tag:"Expression",reason:"well-"},{match:"^come on",tag:"Expression",reason:"come-on"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"^(ok|alright|shoot|hell|anyways)",tag:"Expression",reason:"ok-"},{match:"^(say && @hasComma)",tag:"Expression",reason:"say-"},{match:"^(like && @hasComma)",tag:"Expression",reason:"like-"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}]),Fl=null;var Vl={postTagger:function(e){const{world:t}=e,{model:n,methods:r}=t;Fl=Fl||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(Fl),e.uncache(),e.unfreeze(),e},tagger:e=>e.compute(["freeze","lexicon","preTagger","postTagger","unfreeze"])};const zl={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach((n=>{n.forEach((n=>{t+=1,e+=n.confidence||1}))})),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["tagger"])}},compute:Vl,model:{two:{matches:Ol}},hooks:["postTagger"]},Bl=function(e,t){let n=function(e){return Object.keys(e.hooks).filter((e=>!e.startsWith("#")&&!e.startsWith("%")))}(t);if(0===n.length)return e;e._cache||e.cache();let r=e._cache;return e.filter(((e,t)=>n.some((e=>r[t].has(e)))))};var Sl={lib:{lazy:function(e,t){let n=t;"string"==typeof t&&(n=this.buildNet([{match:t}]));let r=this.tokenize(e),a=Bl(r,n);return a.found?(a.compute(["index","tagger"]),a.match(t)):r.none()}}};const $l=function(e,t,n){let r=e.split(/ /g).map((e=>e.toLowerCase().trim()));r=r.filter((e=>e)),r=r.map((e=>`{${e}}`)).join(" ");let a=this.match(r);return n&&(a=a.if(n)),a.has("#Verb")?function(e,t){let n=t;return e.forEach((e=>{e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verb.conjugate)(t,e.model);return e.has("#Gerund")?n.Gerund:e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)})),e}(a,t):a.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.noun.toPlural)(t,e.model)),e.replaceWith(n,{possessives:!0})}(a,t):a.has("#Adverb")?function(e,t){const{toAdverb:n}=e.methods.two.transform.adjective;let r=n(t);r&&e.replaceWith(r)}(a,t):a.has("#Adjective")?function(e,t){const{toComparative:n,toSuperlative:r}=e.methods.two.transform.adjective;let a=t;e.has("#Comparative")?a=n(a,e.model):e.has("#Superlative")&&(a=r(a,e.model)),a&&e.replaceWith(a)}(a,t):this};var Ml={api:function(e){e.prototype.swap=$l}};h.plugin(sl),h.plugin(Hl),h.plugin(zl),h.plugin(Sl),h.plugin(Ml);const Kl=function(e){const{fromComparative:t,fromSuperlative:n}=e.methods.two.transform.adjective;let r=e.text("normal");return e.has("#Comparative")?t(r,e.model):e.has("#Superlative")?n(r,e.model):r};var Ll={api:function(e){class Adjectives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adjectives"}json(e={}){const{toAdverb:t,toNoun:n,toSuperlative:r,toComparative:a}=this.methods.two.transform.adjective;return e.normal=!0,this.map((o=>{let i=o.toView().json(e)[0]||{},s=Kl(o);return i.adjective={adverb:t(s,this.model),noun:n(s,this.model),superlative:r(s,this.model),comparative:a(s,this.model)},i}),[])}adverbs(){return this.before("#Adverb+$").concat(this.after("^#Adverb+"))}conjugate(e){const{toComparative:t,toSuperlative:n,toNoun:r,toAdverb:a}=this.methods.two.transform.adjective;return this.getNth(e).map((e=>{let o=Kl(e);return{Adjective:o,Comparative:t(o,this.model),Superlative:n(o,this.model),Noun:r(o,this.model),Adverb:a(o,this.model)}}),[])}toComparative(e){const{toComparative:t}=this.methods.two.transform.adjective;return this.getNth(e).map((e=>{let n=Kl(e),r=t(n,this.model);return e.replaceWith(r)}))}toSuperlative(e){const{toSuperlative:t}=this.methods.two.transform.adjective;return this.getNth(e).map((e=>{let n=Kl(e),r=t(n,this.model);return e.replaceWith(r)}))}toAdverb(e){const{toAdverb:t}=this.methods.two.transform.adjective;return this.getNth(e).map((e=>{let n=Kl(e),r=t(n,this.model);return e.replaceWith(r)}))}toNoun(e){const{toNoun:t}=this.methods.two.transform.adjective;return this.getNth(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=t.getNth(e),new Adjectives(t.document,t.pointer)},e.prototype.superlatives=function(e){let t=this.match("#Superlative");return t=t.getNth(e),new Adjectives(t.document,t.pointer)},e.prototype.comparatives=function(e){let t=this.match("#Comparative");return t=t.getNth(e),new Adjectives(t.document,t.pointer)}}},Jl={api:function(e){class Adverbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adverbs"}conjugate(e){return this.getNth(e).map((e=>{let t=function(e){return e.compute("root").text("root")}(e);return{Adverb:e.text("normal"),Adjective:t}}),[])}json(e={}){const t=this.methods.two.transform.adjective.fromAdverb;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=t.getNth(e),new Adverbs(t.document,t.pointer)}}};const Wl=function(e){let t=this;t=function(e){let t=e.parentheses();return t=t.filter((e=>e.wordCount()>=3&&e.has("#Verb")&&e.has("#Noun"))),e.splitOn(t)}(t),t=function(e){let t=e.quotations();return t=t.filter((e=>e.wordCount()>=3&&e.has("#Verb")&&e.has("#Noun"))),e.splitOn(t)}(t),t=function(e){let t=e.match("@hasComma");return t=t.filter((e=>{if(1===e.growLeft(".").wordCount())return!1;if(1===e.growRight(". .").wordCount())return!1;let t=e.grow(".");return t=t.ifNo("@hasComma @hasComma"),t=t.ifNo("@hasComma (and|or) ."),t=t.ifNo("(#City && @hasComma) #Country"),t=t.ifNo("(#WeekDay && @hasComma) #Date"),t=t.ifNo("(#Date+ && @hasComma) #Value"),t=t.ifNo("(#Adjective && @hasComma) #Adjective"),t.found})),e.splitAfter(t)}(t),t=t.splitAfter("(@hasEllipses|@hasSemicolon|@hasDash|@hasColon)"),t=t.splitAfter("^#Pronoun (said|says)"),t=t.splitBefore("(said|says) #ProperNoun$"),t=t.splitBefore(". . if .{4}"),t=t.splitBefore("and while"),t=t.splitBefore("now that"),t=t.splitBefore("ever since"),t=t.splitBefore("(supposing|although)"),t=t.splitBefore("even (while|if|though)"),t=t.splitBefore("(whereas|whose)"),t=t.splitBefore("as (though|if)"),t=t.splitBefore("(til|until)");let n=t.match("#Verb .* [but] .* #Verb",0);n.found&&(t=t.splitBefore(n));let r=t.if("if .{2,9} then .").match("then");return t=t.splitBefore(r),"number"==typeof e&&(t=t.get(e)),t},ql={this:"Noun",then:"Pivot"},Ul=[{match:"[that] #Determiner #Noun",group:0,chunk:"Pivot"},{match:"#PastTense [that]",group:0,chunk:"Pivot"},{match:"[so] #Determiner",group:0,chunk:"Pivot"},{match:"#Copula #Adverb+? [#Adjective]",group:0,chunk:"Adjective"},{match:"#Adjective and #Adjective",chunk:"Adjective"},{match:"#Adverb+ and #Adverb #Verb",chunk:"Verb"},{match:"#Gerund #Adjective$",chunk:"Verb"},{match:"#Gerund to #Verb",chunk:"Verb"},{match:"#PresentTense and #PresentTense",chunk:"Verb"},{match:"#Adverb #Negative",chunk:"Verb"},{match:"(want|wants|wanted) to #Infinitive",chunk:"Verb"},{match:"#Verb #Reflexive",chunk:"Verb"},{match:"#Verb [to] #Adverb? #Infinitive",group:0,chunk:"Verb"},{match:"[#Preposition] #Gerund",group:0,chunk:"Verb"},{match:"#Infinitive [that] ",group:0,chunk:"Verb"},{match:"#Noun of #Determiner? #Noun",chunk:"Noun"},{match:"#Value+ #Adverb? #Adjective",chunk:"Noun"},{match:"the [#Adjective] #Noun",chunk:"Noun"},{match:"#Singular in #Determiner? #Singular",chunk:"Noun"},{match:"#Plural [in] #Determiner? #Noun",group:0,chunk:"Pivot"},{match:"#Noun and #Determiner? #Noun",notIf:"(#Possessive|#Pronoun)",chunk:"Noun"}];let Rl=null;const Ql=function(e,t){if(("undefined"!=typeof process&&process.env?process.env:self.env||{}).DEBUG_CHUNKS){let n=(e.normal+"'").padEnd(8);console.log(` | '${n} โ†’ ${t.padEnd(12)}  -fallback- `)}e.chunk=t};var Zl={chunks:function(e){const{document:t,world:n}=e;!function(e){for(let t=0;t{for(let r=0;r{if("Verb"===e.chunk){const t=e.terms.find((e=>e.tags.has("Verb")));t||e.terms.forEach((e=>e.chunk=null))}}))}(t)}},_l={compute:Zl,api:function(e){class Chunks extends e{constructor(e,t,n){super(e,t,n),this.viewType="Chunks"}isVerb(){return this.filter((e=>e.has("")))}isNoun(){return this.filter((e=>e.has("")))}isAdjective(){return this.filter((e=>e.has("")))}isPivot(){return this.filter((e=>e.has("")))}debug(){return this.toView().debug("chunks"),this}update(e){let t=new Chunks(this.document,e);return t._cache=this._cache,t}}e.prototype.chunks=function(e){let t=function(e){let t=[],n=null;return e.clauses().docs.forEach((e=>{e.forEach((e=>{e.chunk&&e.chunk===n?t[t.length-1][2]=e.index[1]+1:(n=e.chunk,t.push([e.index[0],e.index[1],e.index[1]+1]))})),n=null})),e.update(t)}(this);return t=t.getNth(e),new Chunks(this.document,t.pointer)},e.prototype.clauses=Wl},hooks:["chunks"]};const Xl=/\./g,Yl=/\(/,eu=/\)/,tu=function(e,t){for(;t{e[0].pre=e[0].pre.replace(Yl,"");let t=e[e.length-1];t.post=t.post.replace(eu,"")})),e}(this)}}e.prototype.parentheses=function(e){let t=function(e){let t=[];return e.docs.forEach((e=>{for(let n=0;n{e[0].pre=e[0].pre.replace(ou,"");let t=e[e.length-1];t.post=t.post.replace(iu,"")}))}(this)}}e.prototype.quotations=function(e){let t=function(e){let t=[];return e.docs.forEach((e=>{for(let n=0;n{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=t.getNth(e),new Acronyms(t.document,t.pointer)}}(e),nu(e),function(e){class Possessives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Possessives"}strip(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(ru,""),e.normal=e.normal.replace(ru,"")}))})),this}}e.prototype.possessives=function(e){let t=function(e){let t=e.match("#Possessive+");return t.has("#Person")&&(t=t.growLeft("#Person+")),t.has("#Place")&&(t=t.growLeft("#Place+")),t.has("#Organization")&&(t=t.growLeft("#Organization+")),t}(this);return t=t.getNth(e),new Possessives(t.document,t.pointer)}}(e),lu(e),function(e){cu.forEach((t=>{e.prototype[t[0]]=function(e){let n=this.match(t[1]);return"number"==typeof e?n.get(e):n}})),e.prototype.phoneNumbers=uu,hu.forEach((t=>{e.prototype[t[0]]=e.prototype[t[1]]}))}(e),function(e){class Slashes extends e{constructor(e,t,n){super(e,t,n),this.viewType="Slashes"}split(){return this.map((e=>{let t=e.text().split(du);return(e=e.replaceWith(t.join(" "))).growRight("("+t.join("|")+")+")}))}}e.prototype.slashes=function(e){let t=this.match("#SlashedTerm");return t=t.getNth(e),new Slashes(t.document,t.pointer)}}(e)}};const mu=function(e,t){e.docs.forEach((e=>{e.forEach(t)}))};var pu={case:e=>{mu(e,(e=>{e.text=e.text.toLowerCase()}))},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;mu(e,(e=>e.text=n(e.text,t)))},whitespace:e=>{mu(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=>{mu(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()},debullet:e=>{const t=/^\s*([-โ€“โ€”*โ€ข])\s*$/;return e.docs.forEach((e=>{t.test(e[0].pre)&&(e[0].pre=e[0].pre.replace(t,""))})),e}};const fu=e=>e.split("|").reduce(((e,t)=>(e[t]=!0,e)),{}),bu="unicode|punctuation|whitespace|acronyms",vu="|case|contractions|parentheses|quotations|emoji|honorifics|debullet",yu={light:fu(bu),medium:fu(bu+vu),heavy:fu(bu+vu+"|possessives|adverbs|nouns|verbs")};var wu={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=yu[e]),Object.keys(e).forEach((t=>{pu.hasOwnProperty(t)&&pu[t](this,e[t])})),this}}};const ku=["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"],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")},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=t.first(),t.found?t:e}(e);return{determiner:e.match("#Determiner").eq(0),adjectives:e.match("#Adjective"),number:e.values(),isPlural:Au(e,t),isSubordinate:Pu(e),root:t}},Nu=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},Iu=function(e){return!e.has("^(#Uncountable|#ProperNoun|#Place|#Pronoun|#Acronym)+$")},Tu={tags:!0},Du={tags:!0};var Hu={api:function(e){class Nouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Nouns"}parse(e){return this.getNth(e).map(Cu)}json(e){let t="object"==typeof e?e:{};return this.getNth(e).map((e=>{let n=e.toView().json(t)[0]||{};return t&&!1!==t.noun&&(n.noun=function(e){let t=Cu(e);return{root:Nu(t.root),number:xu(t.number),determiner:Nu(t.determiner),adjectives:ju(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}}(e)),n}),[])}conjugate(e){const t=this.world.methods.two.transform.noun;return this.getNth(e).map((e=>{let n=Cu(e),r=n.root.compute("root").text("root"),a={Singular:r};return Iu(n.root)&&(a.Plural=t.toPlural(r,this.model)),a.Singular===a.Plural&&delete a.Plural,a}),[])}isPlural(e){let t=this.filter((e=>Cu(e).isPlural));return t.getNth(e)}isSingular(e){let t=this.filter((e=>!Cu(e).isPlural));return t.getNth(e)}adjectives(e){let t=this.update([]);return this.forEach((e=>{let n=Cu(e).adjectives;n.found&&(t=t.concat(n))})),t.getNth(e)}toPlural(e){return this.getNth(e).map((e=>function(e,t){if(!0===t.isPlural)return e;if(t.root.has("#Possessive")&&(t.root=t.root.possessives().strip()),!Iu(t.root))return e;const{methods:n,model:r}=e.world,{toPlural:a}=n.two.transform.noun;let o=a(t.root.text({keepPunct:!1}),r);e.match(t.root).replaceWith(o,Tu).tag("Plural","toPlural"),t.determiner.has("(a|an)")&&e.remove(t.determiner);let i=t.root.after("not? #Adverb+? [#Copula]",0);return i.found&&(i.has("is")?e.replace(i,"are"):i.has("was")&&e.replace(i,"were")),e}(e,Cu(e))))}toSingular(e){return this.getNth(e).map((e=>function(e,t){if(!1===t.isPlural)return e;const{methods:n,model:r}=e.world,{toSingular:a}=n.two.transform.noun;let o=a(t.root.text("normal"),r);return e.replace(t.root,o,Du).tag("Singular","toPlural"),e}(e,Cu(e))))}update(e){let t=new Nouns(this.document,e);return t._cache=this._cache,t}}e.prototype.nouns=function(e){let t=function(e){let t=e.clauses().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|i)"),t=t.splitOn("(#Noun|#Adjective) [(he|him|she|it)]",0),t=t.splitOn("[(he|him|she|it)] (#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.splitBefore("(our|my|their|your)"),t=t.splitOn("#Noun [#Determiner]",0),t=t.if("#Noun"),t}(this);return t=t.getNth(e),new Nouns(this.document,t.pointer)}}},Eu={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:1e3,millionth:1e6,billionth:1e9,trillionth:1e12,quadrillionth:1e15,quintillionth:1e18,sextillionth:1e21,septillionth:1e24,hundred:100,thousand:1e3,million:1e6,billion:1e9,trillion:1e12,quadrillion:1e15,quintillion:1e18,sextillion:1e21,septillion:1e24,grand:1e3}};const Gu=(e,t)=>{if(Eu.ones.hasOwnProperty(e)){if(t.ones||t.teens)return!1}else if(Eu.teens.hasOwnProperty(e)){if(t.ones||t.teens||t.tens)return!1}else if(Eu.tens.hasOwnProperty(e)&&(t.ones||t.teens||t.tens))return!1;return!0},Ou=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"),Vu=/^([0-9,. ]+)\/([0-9,. ]+)$/,zu={"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),Su=function(e){if(!0===zu.hasOwnProperty(e))return zu[e];if("a"===e||"an"===e)return 1;const t=(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#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 $u.test(a)&&(a=a.replace($u,""),r=r.replaceWith(a)),r=Ku.hasOwnProperty(a)?Ku[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)}))},Wu=[["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"],Uu=[[1e24,"septillion"],[1e20,"hundred sextillion"],[1e21,"sextillion"],[1e20,"hundred quintillion"],[1e18,"quintillion"],[1e17,"hundred quadrillion"],[1e15,"quadrillion"],[1e14,"hundred trillion"],[1e12,"trillion"],[1e11,"hundred billion"],[1e9,"billion"],[1e8,"hundred million"],[1e6,"million"],[1e5,"hundred thousand"],[1e3,"thousand"],[100,"hundred"],[1,"one"]],Ru=function(e){let t=[];if(e>100)return t;for(let n=0;n=Wu[n][1]&&(e-=Wu[n][1],t.push(Wu[n][0]));return qu[e]&&t.push(qu[e]),t},Qu=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=Ju(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));let r=function(e){let t=e,n=[];return Uu.forEach((r=>{if(e>=r[0]){let e=Math.floor(t/r[0]);t-=e*r[0],e&&n.push({unit:r[1],count:e})}})),n}(t);for(let e=0;e1&&n.push("and")),n=n.concat(Ru(r[e].count)),n.push(t)}return n=n.concat((e=>{const t=["zero","one","two","three","four","five","six","seven","eight","nine"];let n=[],r=Ju(e).match(/\.([0-9]+)/);if(!r||!r[0])return n;n.push("point");let a=r[0].split("");for(let e=0;ee)),0===n.length&&(n[0]=""),n.join(" ")},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"},_u=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){class Fractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return this.getNth(e).map(Lu)}get(e){return this.getNth(e).map(Lu)}json(e){return this.getNth(e).map((t=>{let n=t.toView().json(e)[0],r=Lu(t);return n.fraction=r,n}),[])}toDecimal(e){return this.getNth(e).forEach((e=>{let{decimal:t}=Lu(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")})),this}toFraction(e){return this.getNth(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 this.getNth(e).forEach((e=>{let t=function(e){if(!e.numerator||!e.denominator)return"";let t=Qu({num:e.numerator}),n=_u({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""}(Lu(e));e.after("^#Noun").found&&(t+=" of"),e.replaceWith(t)})),this}toCardinal(e){return this.getNth(e).forEach((e=>{let t=function(e){return e.numerator&&e.denominator?`${Qu({num:e.numerator})} out of ${Qu({num:e.denominator})}`:""}(Lu(e));e.replaceWith(t)})),this}toPercentage(e){return this.getNth(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=function(e,t){let n=e.match("#Fraction+");return n=n.filter((e=>!e.lookBehind("#Value and$").found)),n=n.notIf("#Value seconds"),n}(this);return t=t.getNth(e),new Fractions(this.document,t.pointer)}},Yu="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty",ec=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},tc=function(e){if("string"==typeof e)return{num:Su(e)};let t=e.text("reduced"),n=e.growRight("#Unit").match("#Unit$").text("machine"),r=/[0-9],[0-9]/.test(e.text("text"));if(1===e.terms().length&&!e.has("#Multiple")){let a=function(e,t){let n=(e=e.replace(/,/g,"")).split(/([0-9.,]*)/),[r,a]=n,o=n.slice(2).join("");return""!==a&&t.length<2?(a=Number(a||e),"number"!=typeof a&&(a=null),o=o||"","st"!==o&&"nd"!==o&&"rd"!==o&&"th"!==o||(o=""),{prefix:r||"",num:a,suffix:o}):null}(t,e);if(null!==a)return a.hasComma=r,a.unit=n,a}let a=e.match("#Fraction{2,}$");a=!1===a.found?e.match("^#Fraction$"):a;let o=null;a.found&&(a.has("#Value and #Value #Fraction")&&(a=a.match("and #Value #Fraction")),o=Lu(a),t=(e=(e=e.not(a)).not("and$")).text("reduced"));let i=0;return t&&(i=Su(t)||0),o&&o.decimal&&(i+=o.decimal),{hasComma:r,prefix:"",num:i,suffix:"",isOrdinal:e.has("#Ordinal"),isText:e.has("#TextValue"),isFraction:e.has("#Fraction"),isMoney:e.has("#Money"),unit:n}},nc={"ยข":"cents",$:"dollars","ยฃ":"pounds","ยฅ":"yen","โ‚ฌ":"euros","โ‚ก":"colรณn","เธฟ":"baht","โ‚ญ":"kip","โ‚ฉ":"won","โ‚น":"rupees","โ‚ฝ":"ruble","โ‚บ":"liras"},rc={"%":"percent","ยฐ":"degrees"},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},oc=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=ac(e);return t+_u(e)+n}if("Ordinal"===t)return e.prefix+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}(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},ic=function(e){if("string"==typeof e||"number"==typeof e){let t={};return t[e]=!0,t}return t=e,"[object Array]"===Object.prototype.toString.call(t)?e.reduce(((e,t)=>(e[t]=!0,e)),{}):e||{};var t},sc=function(e){class Numbers extends e{constructor(e,t,n){super(e,t,n),this.viewType="Numbers"}parse(e){return this.getNth(e).map(tc)}get(e){return this.getNth(e).map(tc).map((e=>e.num))}json(e){let t="object"==typeof e?e:{};return this.getNth(e).map((e=>{let n=e.toView().json(t)[0],r=tc(e);return n.number={prefix:r.prefix,num:r.num,suffix:r.suffix,hasComma:r.hasComma,unit:r.unit},n}),[])}units(){return this.growRight("#Unit").match("#Unit$")}isUnit(e){return function(e,t={}){return t=ic(t),e.filter((e=>{let{unit:n}=tc(e);return!(!n||!0!==t[n])}))}(this,e)}isOrdinal(){return this.if("#Ordinal")}isCardinal(){return this.if("#Cardinal")}toNumber(){let e=this.map((e=>{if(!this.has("#TextValue"))return e;let t=tc(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=oc(t,n);return e.replaceWith(r,{tags:!0}),e.tag("NumericValue")}));return new Numbers(e.document,e.pointer)}toLocaleString(){return this.forEach((e=>{let t=tc(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=tc(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=tc(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=tc(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=>tc(t).num===e))}greaterThan(e){return this.filter((t=>tc(t).num>e))}lessThan(e){return this.filter((t=>tc(t).num{let r=tc(n).num;return r>e&&r{let n=tc(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=tc(e).num);let t=this.map((t=>{let n=tc(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=ec(this);return t=t.getNth(e),new Numbers(this.document,t.pointer)},e.prototype.percentages=function(e){let t=ec(this);return t=t.filter((e=>e.has("#Percent")||e.after("^percent"))),t=t.getNth(e),new Numbers(this.document,t.pointer)},e.prototype.money=function(e){let t=ec(this);return t=t.filter((e=>e.has("#Money")||e.after("^#Currency"))),t=t.getNth(e),new Numbers(this.document,t.pointer)},e.prototype.values=e.prototype.numbers};var lc={api:function(e){Xu(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},hc={api:function(e){e.prototype.redact=cc}},dc=function(e){let t=null;return e.has("#PastTense")?t="PastTense":e.has("#FutureTense")?t="FutureTense":e.has("#PresentTense")&&(t="PresentTense"),{tense:t}},gc=function(e){let t=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:(t=t.ifNo("^#Gerund"),1===t.length?t:(0===t.length&&(t=e),t.eq(0)))))))}(e.clauses()),n=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,grammar:dc(a)}};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,grammar:i}=gc(t);return n.sentence={subject:r.text("normal"),verb:a.text("normal"),predicate:o.text("normal"),grammar:i},n}),[])}toPastTense(e){return this.getNth(e).map((e=>(gc(e),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}(e))))}toPresentTense(e){return this.getNth(e).map((e=>(gc(e),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}(e))))}toFutureTense(e){return this.getNth(e).map((e=>(gc(e),e=function(e){let t=e.verbs();if(t.eq(0).toFutureTense(),t=(e=e.fullSentence()).verbs(),t.length>1){t=t.slice(1);let e=t.filter((e=>!(e.lookBehind("to$").found||!e.has("#Copula #Gerund")&&(e.has("#Gerund")||!e.has("#Copula")&&e.has("#PresentTense")&&!e.has("#Infinitive")&&e.lookBefore("(he|she|it|that|which)$").found))));e.found&&e.forEach((e=>{if(e.has("#Copula"))return e.match("was").replaceWith("is"),void e.match("is").replaceWith("will be");e.toInfinitive()}))}return e}(e),e)))}toInfinitive(e){return this.getNth(e).map((e=>(gc(e),function(e){return e.verbs().toInfinitive(),e}(e))))}toNegative(e){return this.getNth(e).map((e=>(gc(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e))))}toPositive(e){return this.getNth(e).map((e=>(gc(e),function(e){return e.verbs().first().toPositive().compute("chunks"),e}(e))))}isQuestion(e){return this.questions(e)}isExclamation(e){let t=this.filter((e=>e.lastTerm().has("@hasExclamation")));return t.getNth(e)}isStatement(e){let t=this.filter((e=>!e.isExclamation().found&&!e.isQuestion().found));return t.getNth(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=t.getNth(e),new Sentences(this.document,t.pointer)},questions:function(e){let t=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))}))}(this);return t.getNth(e)}};Object.assign(e.prototype,t)}};const 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},fc="male",bc="female",vc={mr:fc,mrs:bc,miss:bc,madam:bc,king:fc,queen:bc,duke:fc,duchess:bc,baron:fc,baroness:bc,count:fc,countess:bc,prince:fc,princess:bc,sire:fc,dame:bc,lady:bc,ayatullah:fc,congressman:fc,congresswoman:bc,"first lady":bc,mx:null},yc=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return bc;if(n.has("#MaleName"))return fc;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),vc.hasOwnProperty(e))return vc[e];if(/^her /.test(e))return bc;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 bc}return null},wc=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=n.getNth(e),n};var kc={api:function(e){!function(e){class People extends e{constructor(e,t,n){super(e,t,n),this.viewType="People"}parse(e){return this.getNth(e).map(pc)}json(e){let t="object"==typeof e?e:{};return this.getNth(e).map((e=>{let n=e.toView().json(t)[0],r=pc(e);return n.person={firstName:r.firstName.text("normal"),lastName:r.lastName.text("normal"),honorific:r.honorific.text("normal"),presumed_gender:yc(r,e)},n}),[])}presumedMale(){return this.filter((e=>e.has("(#MaleName|mr|mister|sr|jr|king|pope|prince|sir)")))}presumedFemale(){return this.filter((e=>e.has("(#FemaleName|mrs|miss|queen|princess|madam)")))}update(e){let t=new People(this.document,e);return t._cache=this._cache,t}}e.prototype.people=function(e){let t=function(e){let t=e.splitAfter("@hasComma");t=t.match("#Honorific+? #Person+");let n=t.match("#Possessive").notIf("(his|her)");return t=t.splitAfter(n),t}(this);return t=t.getNth(e),new People(this.document,t.pointer)}}(e),function(e){e.prototype.places=function(t){let n=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}(this);return n=n.getNth(t),new e(this.document,n.pointer)}}(e),function(e){e.prototype.organizations=function(e){return this.match("#Organization+").getNth(e)}}(e),function(e){e.prototype.topics=wc}(e)}};const Pc=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)},Ac=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")},Nc=function(e){if(!e.has("(#Particle|#PhrasalVerb)"))return{verb:e.none(),particle:e.none()};let t=e.match("#Particle$");return{verb:e.not(t),particle:t}},jc=function(e){let t=e.clone();t.contractions().expand();const n=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}(t);return{root:n,prefix:t.match("#Prefix"),adverbs:Pc(t,n),auxiliary:Ac(t,n),negative:Cc(t),phrasal:Nc(n)}},xc={tense:"PresentTense"},Ic={conditional:!0},Tc={tense:"FutureTense"},Dc={progressive:!0},Hc={tense:"PastTense"},Ec={complete:!0,progressive:!1},Gc={passive:!0},Oc=function(e){let t={};return e.forEach((e=>{Object.assign(t,e)})),t},Fc={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[xc]],["^wanted to #Infinitive$",[Hc]],["^will want to #Infinitive$",[Tc]]],"gerund-phrase":[["^#PastTense #Gerund$",[Hc]],["^#PresentTense #Gerund$",[xc]],["^#Infinitive #Gerund$",[xc]],["^will #Infinitive #Gerund$",[Tc]],["^have #PastTense #Gerund$",[Hc]],["^will have #PastTense #Gerund$",[Hc]]],"simple-present":[["^#PresentTense$",[xc]],["^#Infinitive$",[xc]]],"simple-past":[["^#PastTense$",[Hc]]],"simple-future":[["^will #Adverb? #Infinitive",[Tc]]],"present-progressive":[["^(is|are|am) #Gerund$",[xc,Dc]]],"past-progressive":[["^(was|were) #Gerund$",[Hc,Dc]]],"future-progressive":[["^will be #Gerund$",[Tc,Dc]]],"present-perfect":[["^(has|have) #PastTense$",[Hc,Ec]]],"past-perfect":[["^had #PastTense$",[Hc,Ec]],["^had #PastTense to #Infinitive",[Hc,Ec]]],"future-perfect":[["^will have #PastTense$",[Tc,Ec]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[Hc,Dc]]],"past-perfect-progressive":[["^had been #Gerund$",[Hc,Dc]]],"future-perfect-progressive":[["^will have been #Gerund$",[Tc,Dc]]],"passive-past":[["(got|were|was) #Passive",[Hc,Gc]],["^(was|were) being #Passive",[Hc,Gc]],["^(had|have) been #Passive",[Hc,Gc]]],"passive-present":[["^(is|are|am) #Passive",[xc,Gc]],["^(is|are|am) being #Passive",[xc,Gc]],["^has been #Passive",[xc,Gc]]],"passive-future":[["will have been #Passive",[Tc,Gc,Ic]],["will be being? #Passive",[Tc,Gc,Ic]]],"present-conditional":[["would be #PastTense",[xc,Ic]]],"past-conditional":[["would have been #PastTense",[Hc,Ic]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[Tc]]],"auxiliary-past":[["^did #Infinitive$",[Hc,{plural:!1}]],["^used to #Infinitive$",[Hc,Ec]]],"auxiliary-present":[["^(does|do) #Infinitive$",[xc,Ec,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[Hc]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let Vc=[];Object.keys(Fc).map((e=>{Fc[e].forEach((t=>{Vc.push({name:e,match:t[0],data:Oc(t[1])})}))}));const zc=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(),Bc(r)&&(n.remove(r),r=n.last()),Bc(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:Sc(t,e)}},Mc=e=>e,Kc=(e,t)=>{let n=$c(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},Lc=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=$c(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},Jc=function(e,t){let n=$c(e),r=n.subject;return r.has("i")||r.has("we")||n.plural?"do":"does"},Wc=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},qc=function(e,t){const{toInfinitive:n}=e.methods.two.transform.verb;let r=t.root.text({keepPunct:!1});return r=n(r,e.model,Wc(e)),r&&e.replace(t.root,r),e},Uc=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),Rc=function(e){return e&&e.isView?e.json({normal:!0,terms:!1,text:!1}).map((e=>e.normal)):[]},Qc=function(e){return e&&e.isView?e.text("normal"):""},Zc=function(e){const{toInfinitive:t}=e.methods.two.transform.verb;return t(e.text("normal"),e.model,Wc(e))},_c={tags:!0},Xc={tags:!0},Yc={noAux:(e,t)=>(t.auxiliary.found&&(e=e.remove(t.auxiliary)),e),simple:(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;if(a.has("#Modal"))return e;let o=a.text({keepPunct:!1});return o=r(o,e.model,Wc(a)),o=n(o,e.model).PastTense,o="been"===o?"was":o,"was"===o&&(o=((e,t)=>{let{subject:n,plural:r}=$c(e);return r||n.has("we")?"were":"was"})(e)),o&&e.replace(a,o,Xc),e},both:function(e,t){return t.negative.found?(e.replace("will","did"),e):(e=Yc.simple(e,t),e=Yc.noAux(e,t))},hasHad:e=>(e.replace("has","had",Xc),e),hasParticiple:(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,Wc(a)),n(o,e.model).Participle}},eh={infinitive:Yc.simple,"simple-present":Yc.simple,"simple-past":Mc,"simple-future":Yc.both,"present-progressive":e=>(e.replace("are","were",Xc),e.replace("(is|are|am)","was",Xc),e),"past-progressive":Mc,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":Yc.hasHad,"past-perfect":Mc,"future-perfect":(e,t)=>(e.match(t.root).insertBefore("had"),e.has("will")&&(e=Uc(e)),e.remove("have"),e),"present-perfect-progressive":Yc.hasHad,"past-perfect-progressive":Mc,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",Xc),e),"passive-past":e=>(e.replace("have","had",Xc),e),"passive-present":e=>(e.replace("(is|are)","was",Xc),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",Xc),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":Mc,"auxiliary-future":e=>(e.replace("(is|are|am)","was",Xc),e),"auxiliary-past":Mc,"auxiliary-present":e=>(e.replace("(do|does)","did",Xc),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",Xc):(Yc.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":Mc,"want-infinitive":e=>(e.replace("(want|wants)","wanted",Xc),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Yc.simple(e,t),Uc(e),e)},th=function(e,t){let n=$c(e),r=n.subject;return r.has("(i|we|you)")?"have":!1===n.plural||r.has("he")||r.has("she")||r.has("#Person")?"has":"have"},nh=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,{root:a,auxiliary:o}=t;if(a.has("#Modal"))return e;let i=a.text({keepPunct:!1});i=r(i,e.model,Wc(a));let s=n(i,e.model);if(i=s.Participle||s.PastTense,i){e=e.replace(a,i);let t=th(e);e.prepend(t).match(t).tag("Auxiliary"),e.remove(o)}return e},rh={infinitive:nh,"simple-present":nh,"simple-future":(e,t)=>e.replace("will",th(e)),"present-perfect":Mc,"past-perfect":Mc,"future-perfect":(e,t)=>e.replace("will have",th(e)),"present-perfect-progressive":Mc,"past-perfect-progressive":Mc,"future-perfect-progressive":Mc},ah={tags:!0},oh=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,Wc(a)),!1===Kc(e)&&(o=n(o,e.model).PresentTense),a.has("#Copula")&&(o=Lc(e)),o&&(e=e.replace(a,o,ah)).not("#Particle").tag("PresentTense"),e},ih=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,Wc(a)),!1===Kc(e)&&(o=n(o,e.model).Gerund),o&&(e=e.replace(a,o,ah)).not("#Particle").tag("Gerund"),e},sh={infinitive:oh,"simple-present":(e,t)=>{const{conjugate:n}=e.methods.two.transform.verb;let{root:r}=t;if(!r.has("#Infinitive"))return oh(e,t);{let t=$c(e).subject;if(Kc(e)||t.has("i"))return e;let a=r.text("normal"),o=n(a,e.model).PresentTense;a!==o&&e.replace(r,o,ah)}return e},"simple-past":oh,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=Lc(e);e.replace(n,t),(e=e.remove("will")).replace("not "+t,t+" not")}else oh(e,t),e=e.remove("will");return e},"present-progressive":Mc,"past-progressive":(e,t)=>{let n=Lc(e);return e.replace("(were|was)",n,ah)},"future-progressive":e=>(e.match("will").insertBefore("is"),e.remove("be"),e.remove("will")),"present-perfect":(e,t)=>(oh(e,t),e=e.remove("(have|had|has)")),"past-perfect":(e,t)=>{let n=$c(e).subject;return Kc(e)||n.has("i")?((e=qc(e,t)).remove("had"),e):(e.replace("had","has",ah),e)},"future-perfect":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"present-perfect-progressive":Mc,"past-perfect-progressive":e=>e.replace("had","has",ah),"future-perfect-progressive":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"passive-past":(e,t)=>{let n=Lc(e);return e.has("(had|have|has)")&&e.has("been")?(e.replace("(had|have|has)",n,ah),e.replace("been","being"),e):e.replace("(got|was|were)",n)},"passive-present":Mc,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":Mc,"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=Jc(e);return e.replace(t.auxiliary,n),e}return ih(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":Mc,"modal-infinitive":Mc,"modal-past":(e,t)=>(((e,t)=>{const{toInfinitive:n}=e.methods.two.transform.verb,r=t.root;let a=t.root.text("normal");a=n(a,e.model,Wc(r)),a&&(e=e.replace(t.root,a,ah))})(e,t),e.remove("have")),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),oh(e,t),e.remove("(will|have)")),"want-infinitive":(e,t)=>{let n="wants";return Kc(e)&&(n="want"),e.replace("(want|wanted|wants)",n,ah),e.remove("will"),e}},lh={tags:!0},uh=(e,t)=>{const{toInfinitive:n}=e.methods.two.transform.verb,{root:r,auxiliary:a}=t;if(r.has("#Modal"))return e;let o=r.text("normal");return o=n(o,e.model,Wc(r)),o&&(e=e.replace(r,o,lh)).not("#Particle").tag("Verb"),e.prepend("will").match("will").tag("Auxiliary"),e.remove(a),e},ch=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,{root:a,auxiliary:o}=t;let i=a.text("normal");return i=r(i,e.model,Wc(a)),i&&(i=n(i,e.model).Gerund,e.replace(a,i,lh),e.not("#Particle").tag("PresentTense")),e.remove(o),e.prepend("will be").match("will be").tag("Auxiliary"),e},hh={infinitive:uh,"simple-present":uh,"simple-past":uh,"simple-future":Mc,"present-progressive":ch,"past-progressive":ch,"future-progressive":Mc,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":Mc,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":Mc,"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":Mc,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":Mc,"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":Mc,"modal-past":Mc,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),uh(e,t),e.remove("(had|have)")),"want-infinitive":e=>(e.replace("(want|wants|wanted)","will want"),e)},dh={tags:!0},gh={tags:!0},mh=function(e,t){let n=Jc(e);return e.prepend(n+" not"),e},ph=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)},fh=e=>e.has("(is|was|am|are|will|were|be)"),bh={"simple-present":(e,t)=>!0===fh(e)?ph(e):(e=qc(e,t),e=mh(e)),"simple-past":(e,t)=>!0===fh(e)?ph(e):((e=qc(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===fh(e)?ph(e):mh(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",gh),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=mh(e)).replace("wants","want",gh)};var vh={api:function(e){class Verbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Verbs"}parse(e){return this.getNth(e).map(jc)}json(e,t){let n=this.getNth(t).map((t=>{let n=t.toView().json(e)[0]||{};return n.verb=function(e){let t=jc(e);e=e.clone().toView();const n=zc(e,t);return{root:t.root.text(),preAdverbs:Rc(t.adverbs.pre),postAdverbs:Rc(t.adverbs.post),auxiliary:Qc(t.auxiliary),negative:t.negative.found,prefix:Qc(t.prefix),infinitive:Zc(t.root),grammar:n}}(t),n}),[]);return n}subjects(e){return this.getNth(e).map((e=>(jc(e),$c(e).subject)))}adverbs(e){return this.getNth(e).map((e=>e.match("#Adverb")))}isSingular(e){return this.getNth(e).filter((e=>!0!==$c(e).plural))}isPlural(e){return this.getNth(e).filter((e=>!0===$c(e).plural))}isImperative(e){return this.getNth(e).filter((e=>e.has("#Imperative")))}toInfinitive(e){return this.getNth(e).map((e=>{let t=jc(e);return function(e,t){const{toInfinitive:n}=e.methods.two.transform.verb,{root:r,auxiliary:a}=t;let o=a.terms().harden(),i=r.text("normal");if(i=n(i,e.model,Wc(r)),i&&e.replace(r,i,_c).tag("Verb").firstTerm().tag("Infinitive"),o.found&&e.remove(o),t.negative.found){e.has("not")||e.prepend("not");let t=Jc(e);e.prepend(t)}return e.fullSentence().compute(["freeze","lexicon","preTagger","postTagger","unfreeze","chunks"]),e}(e,t,zc(e,t).form)}))}toPresentTense(e){return this.getNth(e).map((e=>{let t=jc(e),n=zc(e,t);return n.isInfinitive?e:function(e,t,n){return sh.hasOwnProperty(n)?((e=sh[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e}(e,t,n.form)}))}toPastTense(e){return this.getNth(e).map((e=>{let t=jc(e),n=zc(e,t);return n.isInfinitive?e:function(e,t,n){return eh.hasOwnProperty(n)?((e=eh[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e}(e,t,n.form)}))}toFutureTense(e){return this.getNth(e).map((e=>{let t=jc(e),n=zc(e,t);return n.isInfinitive?e:function(e,t,n){return e.has("will")||e.has("going to")?e:hh.hasOwnProperty(n)?((e=hh[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e}(e,t,n.form)}))}toGerund(e){return this.getNth(e).map((e=>{let t=jc(e),n=zc(e,t);return n.isInfinitive?e:function(e,t){const{toInfinitive:n,conjugate:r}=e.methods.two.transform.verb,{root:a,auxiliary:o}=t;if(e.has("#Gerund"))return e;let i=a.text("normal");i=n(i,e.model,Wc(a));let s=r(i,e.model).Gerund;if(s){let t=Lc(e);e.replace(a,s,dh),e.remove(o),e.prepend(t)}return e.replace("not is","is not"),e.replace("not are","are not"),e.fullSentence().compute(["tagger","chunks"]),e}(e,t,n.form)}))}toPastParticiple(e){return this.getNth(e).map((e=>{let t=jc(e),n=zc(e,t);return n.isInfinitive?e:function(e,t,n){return rh.hasOwnProperty(n)?((e=rh[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):((e=nh(e,t)).fullSentence().compute(["tagger","chunks"]),e)}(e,t,n.form)}))}conjugate(e){const{conjugate:t,toInfinitive:n}=this.world.methods.two.transform.verb;return this.getNth(e).map((e=>{let r=jc(e),a=zc(e,r);"imperative"===a.form&&(a.form="simple-present");let o=r.root.text("normal");if(!r.root.has("#Infinitive")){let t=Wc(r.root);o=n(o,e.model,t)||o}return t(o,e.model)}),[])}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 this.getNth(e).map((e=>{let t=jc(e);return function(e,t,n){if(e.has("#Negative"))return e;if(bh.hasOwnProperty(n))return bh[n](e,t);let r=e.matchOne("be");return r.found?(r.prepend("not"),e):!0===fh(e)?ph(e):(r=e.matchOne("(will|had|have|has|did|does|do|#Modal)"),r.found?(r.append("not"),e):e)}(e,t,zc(e,t).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=function(e){let t=e.match("");return t=t.not("#Conjunction"),t=t.not("#Preposition"),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),t=t.splitBefore("(#PresentTense|#PastTense) [(had|has)]",0),t=t.not("#Reflexive$"),t=t.not("#Adjective"),t=t.splitAfter("[#PastTense] #PastTense",0),t=t.splitAfter("[#PastTense] #Auxiliary+ #PastTense",0),t=t.splitAfter("#Copula [#Gerund] #PastTense",0),t=t.if("#Verb"),t.has("(#Verb && !#Auxiliary) #Adverb+? #Copula")&&(t=t.splitBefore("#Copula")),t}(this);return t=t.getNth(e),new Verbs(this.document,t.pointer)}}};const yh=function(e,t){let n=t.match(e);if(n.found){let e=n.pronouns().refersTo();if(e.found)return e}return t.none()},wh=function(e){if(!e.found)return e;let[t]=e.fullPointer[0];return t&&t>0?e.update([[t-1]]):e.none()},kh=function(e,t){let n=e.people();return n=function(e,t){return"m"===t?e.filter((e=>!e.presumedFemale().found)):"f"===t?e.filter((e=>!e.presumedMale().found)):e}(n,t),n.found?n.last():(n=e.nouns("#Actor"),n.found?n.last():"f"===t?yh("(she|her|hers)",e):"m"===t?yh("(he|him|his)",e):e.none())},Ph=function(e){let t=e.nouns(),n=t.isPlural().notIf("#Pronoun");if(n.found)return n.last();let r=yh("(they|their|theirs)",e);return r.found?r:(n=t.match("(somebody|nobody|everybody|anybody|someone|noone|everyone|anyone)"),n.found?n.last():e.none())},Ah=function(e,t){let n=e.before(),r=t(n);return r.found?r:(n=wh(e),r=t(n),r.found?r:(n=wh(n),r=t(n),r.found?r:e.none()))};var Ch={compute:{coreference:function(e){e.pronouns().if("(he|him|his|she|her|hers|they|their|theirs|it|its)").forEach((e=>{let t=null;e.has("(he|him|his)")?t=Ah(e,(e=>kh(e,"m"))):e.has("(she|her|hers)")?t=Ah(e,(e=>kh(e,"f"))):e.has("(they|their|theirs)")&&(t=Ah(e,Ph)),t&&t.found&&function(e,t){t&&t.found&&(e.docs[0][0].reference=t.ptrs[0])}(e,t)}))}},api:function(e){class Pronouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Pronouns"}hasReference(){return this.compute("coreference"),this.filter((e=>e.docs[0][0].reference))}refersTo(){return this.compute("coreference"),this.map((e=>{if(!e.found)return e.none();let t=e.docs[0][0];return t.reference?e.update([t.reference]):e.none()}))}update(e){let t=new Pronouns(this.document,e);return t._cache=this._cache,t}}e.prototype.pronouns=function(e){let t=this.match("#Pronoun");return t=t.getNth(e),new Pronouns(t.document,t.pointer)}}};return h.plugin(Ll),h.plugin(Jl),h.plugin(_l),h.plugin(Ch),h.plugin(gu),h.plugin(wu),h.plugin(Hu),h.plugin(lc),h.plugin(hc),h.plugin(mc),h.plugin(kc),h.plugin(vh),h},"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 09f34f7ad..b976f5e6c 100644 --- a/builds/three/compromise-three.mjs +++ b/builds/three/compromise-three.mjs @@ -1 +1 @@ -var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};const 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=t;var r={forEach:function(e){return this.fullPointer.forEach(((t,n)=>{let r=this.update([t]);e(r,n)})),this},map:function(e,t){let n=this.fullPointer.map(((t,n)=>{let r=this.update([t]),a=e(r,n);return void 0===a?this.none():a}));if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach((e=>{r=r.concat(e.fullPointer)})),this.toView(r)},filter:function(e){let t=this.fullPointer;return t=t.filter(((t,n)=>{let r=this.update([t]);return e(r,n)})),this.update(t)},find:function(e){let t=this.fullPointer.find(((t,n)=>{let r=this.update([t]);return e(r,n)}));return this.update([t])},some:function(e){return this.fullPointer.some(((t,n)=>{let r=this.update([t]);return e(r,n)}))},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const a={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach((e=>{t[e]=this.update(this._groups[e])})),t},eq:function(e){let t=this.pointer;return t||(t=this.docs.map(((e,t)=>[t]))),t[e]?this.update([t[e]]):this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map(((e,t)=>[t]));return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map((e=>[e[0]]));return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every(((e,t)=>!!n[t]&&(e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2])))},wordCount:function(){return this.docs.reduce(((e,t)=>(e+=t.filter((e=>""!==e.text)).length,e)),0)},isFull:function(){let e=this.pointer;if(!e)return!0;if(0===e.length||0!==e[0][0])return!1;let t=0,n=0;return this.document.forEach((e=>t+=e.length)),this.docs.forEach((e=>n+=e.length)),t===n},getNth:function(e){return"number"==typeof e?this.eq(e):"string"==typeof e?this.if(e):this}};a.group=a.groups,a.fullSentence=a.fullSentences,a.sentence=a.fullSentences,a.lastTerm=a.lastTerms,a.firstTerm=a.firstTerms;var o=a;const i=Object.assign({},o,n,r);i.get=i.eq;var s=i;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,r=t||e.map(((e,t)=>[t]));return r.map((e=>{let[t,r,a,o,i]=e;return r=r||0,a=a||(n[t]||[]).length,n[t]&&n[t][r]&&(o=o||n[t][r].id,n[t][a-1]&&(i=i||n[t][a-1].id)),[t,r,a,o,i]}))}update(e){let t=new View(this.document,e);if(this._cache&&e&&e.length>0){let n=[];e.forEach(((e,t)=>{let[r,a,o]=e;(1===e.length||0===a&&this.document[r].length===o)&&(n[t]=this._cache[r])})),n.length>0&&(t._cache=n)}return t.world=this.world,t}toView(e){return new View(this.document,e||this.pointer)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","freeze","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r.compute("unfreeze"),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,s);var l=View;const u=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};function c(e,t){if(u(t))for(const n in t)u(t[n])?(e[n]||Object.assign(e,{[n]:{}}),c(e[n],t[n])):Object.assign(e,{[n]:t[n]});return e}var h=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&&c(o,e.model),e.irregulars&&function(e,t){let n=e.two.models||{};Object.keys(t).forEach((e=>{t[e].pastTense&&(n.toPast&&(n.toPast.ex[e]=t[e].pastTense),n.fromPast&&(n.fromPast.ex[t[e].pastTense]=e)),t[e].presentTense&&(n.toPresent&&(n.toPresent.ex[e]=t[e].presentTense),n.fromPresent&&(n.fromPresent.ex[t[e].presentTense]=e)),t[e].gerund&&(n.toGerund&&(n.toGerund.ex[e]=t[e].gerund),n.fromGerund&&(n.fromGerund.ex[t[e].gerund]=e)),t[e].comparative&&(n.toComparative&&(n.toComparative.ex[e]=t[e].comparative),n.fromComparative&&(n.fromComparative.ex[t[e].comparative]=e)),t[e].superlative&&(n.toSuperlative&&(n.toSuperlative.ex[e]=t[e].superlative),n.fromSuperlative&&(n.fromSuperlative.ex[t[e].superlative]=e))}))}(o,e.irregulars),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.frozen&&r.addWords(e.frozen,!0),e.mutate&&e.mutate(t)};const d=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var m=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(d(e)){if(d(e[0])){let n=e.map((e=>e.map((e=>({text:e,normal:e,pre:"",post:" ",tags:new Set})))));return new t(n)}let n=function(e){return e.map((e=>e.terms.map((e=>(d(e.tags)&&(e.tags=new Set(e.tags)),e)))))}(e);return new t(n)}return a};let p=Object.assign({},e);const f=function(e,t){t&&f.addWords(t);let n=m(e,l,p);return e&&n.compute(p.hooks),n};Object.defineProperty(f,"_world",{value:p,writable:!0}),f.tokenize=function(e,t){const{compute:n}=this._world;t&&f.addWords(t);let r=m(e,l,p);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},f.plugin=function(e){return h(e,this._world,l,this),this},f.extend=f.plugin,f.world=function(){return this._world},f.model=function(){return this._world.model},f.methods=function(){return this._world.methods},f.hooks=function(){return this._world.hooks},f.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},f.version="14.13.0";var v=f;var b=function(e){let t=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),A=(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},C=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-โ€“โ€”]/.test(t.post)||(t.post+=" ")},j=(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,"")}},N=function(e,t,n,r){let[a,o,i]=t;0===o||i===r[a].length?C(n):(C(n),C([e[t[1]]])),function(e,t,n){let r=e[t];if(0!==t||!P(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")||P(a.text)&&a.text.length>1&&(a.text=(o=a.text,o.replace(/^\p{Lu}/u,(e=>e.toLowerCase()))));var o}(e,o,n),A(e,o,n)};let x=0;const I=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var T=function(e){let[t,n]=e.index||[0,0];x+=1,x=x>46655?0:x,t=t>46655?0:t,n=n>1294?0:n;let r=I(x.toString(36));r+=I(t.toString(36));let a=n.toString(36);return a=a.length<2?"0"+a:a,r+=a,r+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+r.toUpperCase()};const D=function(e){if(e.has("@hasContraction")&&"function"==typeof e.contractions){e.grow("@hasContraction").contractions().expand()}},H=e=>"[object Array]"===Object.prototype.toString.call(e),G=function(e,t,n){const{document:r,world:a}=t;t.uncache();let o=t.fullPointer,i=t.fullPointer;t.forEach(((s,l)=>{let u=s.fullPointer[0],[c]=u,h=r[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]||[]:H(e)?H(e[0])?e[0]:e:[]}(e,a);0!==d.length&&(d=function(e){return e.map((e=>(e.id=T(e),e)))}(d),n?(D(t.update([u]).firstTerm()),N(h,u,d,r)):(D(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);let a=r.docs[0],o=t.possessives&&a[a.length-1].tags.has("Possessive");e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e=e.replace(F,(e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})),e}(e,r);let i=this.update(n);n=n.map((e=>e.slice(0,3)));let s=(i.docs[0]||[]).map((e=>Array.from(e.tags)));if("string"==typeof e&&(e=this.fromText(e).compute("id")),r.insertAfter(e),i.has("@hasContraction")&&r.contractions){r.grow("@hasContraction+").contractions().expand()}if(r.delete(i),o){let e=r.docs[0],t=e[e.length-1];t.tags.has("Possessive")||(t.text+="'s",t.normal+="'s",t.tags.add("Possessive"))}let l=r.toView(n).compute(["index","freeze","lexicon"]);return l.world.compute.preTagger&&l.compute("preTagger"),l.compute("unfreeze"),t.tags&&l.terms().forEach(((e,t)=>{e.tagSafe(s[t])})),t.case&&l.docs[0]&&l.docs[0][0]&&0===l.docs[0][0].index[1]&&(l.docs[0][0].text=l.docs[0][0].text.replace(/\w\S*/g,(e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase()))),l},V.replace=function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let r=this.match(e);return r.found?(this.soften(),r.replaceWith(t,n)):this};var z=V;var B=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 $={remove:function(e){const{indexN:t}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;e&&(n=this,r=this.match(e));let a=!n.ptrs;if(r.has("@hasContraction")&&r.contractions){r.grow("@hasContraction").contractions().expand()}let o=n.fullPointer,i=r.fullPointer.reverse(),s=B(this.document,i);return o=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})),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)))}(o,t(i)),n.ptrs=o,n.document=s,n.compute("index"),a&&(n.ptrs=void 0),e?n.toView(o):(this.ptrs=[],n.none())}};$.delete=$.remove;var S=$;const K={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}};K.deHyphenate=K.dehyphenate,K.toQuotation=K.toQuotations;var M=K;var L={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 J=new Set(["index","sequence","seq","sequential","chron","chronological"]),W=new Set(["freq","frequency","topk","repeats"]),q=new Set(["alpha","alphabetical"]);var U={unique:function(){let e=new Set,t=this.filter((t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)}));return t},reverse:function(){let e=this.pointer||this.docs.map(((e,t)=>[t]));return e=[].concat(e),e=e.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if(this.uncache(),"function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort(((n,r)=>(n=e.update([n]),r=e.update([r]),t(n,r)))),e.ptrs=n,e}(this,e);e=e||"alpha";let r=n||t.map(((e,t)=>[t])),a=t.map(((e,t)=>({index:t,words:e.length,normal:e.map((e=>e.machine||e.normal||"")).join(" "),pointer:r[t]})));return J.has(e)&&(e="sequential"),q.has(e)&&(e="alpha"),W.has(e)?(a=L.byFreq(a),this.update(a.map((e=>e.pointer)))):"function"==typeof L[e]?(a=a.sort(L[e]),this.update(a.map((e=>e.pointer)))):this}};const R=function(e,t){if(e.length>0){let t=e[e.length-1],n=t[t.length-1];!1===/ /.test(n.post)&&(n.post+=" ")}return e=e.concat(t)};var Q={concat:function(e){if("string"==typeof e){let t=this.fromText(e);if(this.found&&this.ptrs){let e=this.fullPointer,n=e[e.length-1][0];this.document.splice(n,0,...t.document)}else this.document=this.document.concat(t.document);return this.all().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=R(e.document,t.docs),e.all()}(this,e);if(t=e,"[object Array]"===Object.prototype.toString.call(t)){let t=R(this.document,e);return this.document=t,this.all()}var t;return this}};var _={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 Z=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}},O,z,S,M,U,Q,_);var X=function(e){Object.assign(e.prototype,Z)};const Y={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))),n[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const ae=/'/,oe=new Set(["what","how","when","where","why"]),ie=new Set(["be","go","start","think","need"]),se=new Set(["been","gone"]);var le=function(e,t){let n=e[t].normal.split(ae)[0];if(oe.has(n))return[n,"did"];if(e[t+1]){if(se.has(e[t+1].normal))return[n,"had"];if(ie.has(e[t+1].normal))return[n,"would"]}return null};var ue=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal)return null;return[e[t].normal.replace(/n't/,""),"not"]};const ce=/'/,he=/(e|รฉ|aison|sion|tion)$/,de=/(age|isme|acle|ege|oire)$/;var ge=(e,t)=>["je",e[t].normal.split(ce)[1]],me=(e,t)=>{let n=e[t].normal.split(ce)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},pe=(e,t)=>{let n=e[t].normal.split(ce)[1];return n&&he.test(n)&&!de.test(n)?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const fe=/^([0-9.]{1,4}[a-z]{0,2}) ?[-โ€“โ€”] ?([0-9]{1,4}[a-z]{0,2})$/i,ve=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-โ€“โ€”] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,be=/^[0-9]{3}-[0-9]{4}$/;var ye=function(e,t){let n=e[t],r=n.text.match(fe);return null!==r?!0===n.tags.has("PhoneNumber")||be.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(ve),null!==r?[r[1],"to",r[4]]:null)};const we=/^([+-]?[0-9][.,0-9]*)([a-zยฐยฒยณยต/]+)$/;var ke=function(e,t,n){const r=n.model.one.numberSuffixes||{};let a=e[t].text.match(we);if(null!==a){let e=a[2].toLowerCase().trim();return r.hasOwnProperty(e)?null:[a[1],e]}return null};const Pe=/'/,Ae=/^[0-9][^-โ€“โ€”]*[-โ€“โ€”].*?[0-9]/,Ce=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]]},je={t:(e,t)=>ue(e,t),d:(e,t)=>le(e,t)},Ne={j:(e,t)=>ge(e,t),l:(e,t)=>me(e,t),d:(e,t)=>pe(e,t)},xe=function(e,t,n,r){for(let a=0;a2)return o.out.concat(r)}return null},Ie=function(e,t){let n=t.fromText(e.join(" "));return n.compute(["id","alias"]),n.docs[0]},Te=function(e,t){for(let n=t+1;n<5&&e[n];n+=1)if("been"===e[n].normal)return["there","has"];return["there","is"]};var De=e=>{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;if(!0===Pe.test(r[s].normal)){let e=r[s].normal.split(Pe);l=e[0],u=e[1]}let c=xe(o,r[s],l,u);!c&&je.hasOwnProperty(u)&&(c=je[u](r,s,t)),!c&&Ne.hasOwnProperty(l)&&(c=Ne[l](r,s)),"there"===l&&"s"===u&&(c=Te(r,s)),c?(c=Ie(c,e),re(n,[i,s],c),Ce(n[i],e,s,c.length)):Ae.test(r[s].normal)?(c=ye(r,s),c&&(c=Ie(c,e),re(n,[i,s],c),a.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&a.one.setTag([c[0]],"Time",t,null,"time-range"),Ce(n[i],e,s,c.length))):(c=ke(r,s,t),c&&(c=Ie(c,e),re(n,[i,s],c),a.one.setTag([c[1]],"Unit",t,null,"contraction-unit")))}}))};var He={model:ne,compute:{contractions:De},hooks:["contractions"]};const Ge=function(e){const t=e.world,{model:n,methods:r}=e.world,a=r.one.setTag,{frozenLex:o}=n.one,i=n.one._multiCache||{};e.docs.forEach((e=>{for(let n=0;nn;r-=1){let i=e.slice(n,r+1),s=i.map((e=>e.machine||e.normal)).join(" ");!0!==o.hasOwnProperty(s)||(a(i,o[s],t,!1,"1-frozen-multi-lexicon"),i.forEach((e=>e.frozen=!0)))}}void 0!==o[s]&&o.hasOwnProperty(s)&&(a([r],o[s],t,!1,"1-freeze-lexicon"),r.frozen=!0)}}))};const Ee=e=>""+e+"",Oe=e=>""+e+"";var Fe=function(e){e.docs.forEach((e=>{console.log(Ee("\n โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€")),e.forEach((e=>{let t=` ${Oe("โ”‚")} `,n=e.implicit||e.text||"-";!0===e.frozen?t+=`${Ee(n)} โ„๏ธ`:t+=Oe(n),console.log(t)}))}))},Ve={compute:{frozen:Ge,freeze:Ge,unfreeze:function(e){return e.docs.forEach((e=>{e.forEach((e=>{delete e.frozen}))})),e}},mutate:e=>{const t=e.methods.one;t.termMethods.isFrozen=e=>!0===e.frozen,t.debug.freeze=Fe,t.debug.frozen=Fe},api:function(e){e.prototype.freeze=function(){return this.docs.forEach((e=>{e.forEach((e=>{e.frozen=!0}))})),this},e.prototype.unfreeze=function(){this.compute("unfreeze")},e.prototype.isFrozen=function(){return this.match("@isFrozen+")}},hooks:["freeze"]};var ze=function(e,t,n){const{model:r,methods:a}=n,o=a.one.setTag,i=r.one._multiCache||{},{lexicon:s}=r.one||{};let l=e[t],u=l.machine||l.normal;if(void 0!==i[u]&&e[t+1]){for(let r=t+i[u]-1;r>t;r-=1){let a=e.slice(t,r+1);if(a.length<=1)return!1;let i=a.map((e=>e.machine||e.normal)).join(" ");if(!0===s.hasOwnProperty(i)){let e=s[i];return o(a,e,n,!1,"1-multi-lexicon"),!e||2!==e.length||"PhrasalVerb"!==e[0]&&"PhrasalVerb"!==e[1]||o([a[1]],"Particle",n,!1,"1-phrasal-particle"),!0}}return!1}return null};const Be=/^(under|over|mis|re|un|dis|semi|pre|post)-?/,$e=new Set(["Verb","Infinitive","PastTense","Gerund","PresentTense","Adjective","Participle"]);var Se=function(e,t,n){const{model:r,methods:a}=n,o=a.one.setTag,{lexicon:i}=r.one;let s=e[t],l=s.machine||s.normal;if(void 0!==i[l]&&i.hasOwnProperty(l))return o([s],i[l],n,!1,"1-lexicon"),!0;if(s.alias){let e=s.alias.find((e=>i.hasOwnProperty(e)));if(e)return o([s],i[e],n,!1,"1-lexicon-alias"),!0}if(!0===Be.test(l)){let e=l.replace(Be,"");if(i.hasOwnProperty(e)&&e.length>3&&$e.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null};var Ke={lexicon:function(e){const t=e.world;e.docs.forEach((e=>{for(let n=0;n{let a=e[r],o=(r=(r=r.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);o.length>1&&(void 0===n[o[0]]||o.length>n[o[0]])&&(n[o[0]]=o.length),t[r]=t[r]||a})),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}};var Le={addWords:function(e,t=!1){const n=this.world(),{methods:r,model:a}=n;if(!e)return;if(Object.keys(e).forEach((t=>{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))})),!0===t){let{lex:t,_multi:o}=r.one.expandLexicon(e,n);return Object.assign(a.one._multiCache,o),void Object.assign(a.one.frozenLex,t)}if(r.two.expandLexicon){let{lex:t,_multi:o}=r.two.expandLexicon(e,n);Object.assign(a.one.lexicon,t),Object.assign(a.one._multiCache,o)}let{lex:o,_multi:i}=r.one.expandLexicon(e,n);Object.assign(a.one.lexicon,o),Object.assign(a.one._multiCache,i)}};var Je={model:{one:{lexicon:{},_multiCache:{},frozenLex:{}}},methods:{one:{expandLexicon:Me}},compute:Ke,lib:Le,hooks:["lexicon"]};var We=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;let a=n.one.tokenize.splitTerms(e,r).map((e=>n.one.tokenize.splitWhitespace(e,r)));return a.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 qe=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 Qe=(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 _e=function(e){return e.goNext=e.goNext.map((e=>{if(0!==Object.keys(e).length)return e})),e.goNext=Qe(e.goNext,void 0),e.failTo=Qe(e.failTo,0),e.endAs=Qe(e.endAs,null),e};const Ze={buildTrie:function(e){const t=We(e,this.world());return _e(t)}};Ze.compile=Ze.buildTrie;var Xe={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:We(e,this.world));var r;let a=Re(this,n,t);return a=a.settle(),a}},lib:Ze};const Ye=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},et=function(e,t){let{ptrs:n,byGroup:r}=e;return n=Ye(n,t),Object.keys(r).forEach((e=>{r[e]=Ye(r[e],t)})),{ptrs:n,byGroup:r}},tt=function(e,t,n){const r=n.methods.one;return"number"==typeof e&&(e=String(e)),"string"==typeof e&&(e=r.killUnicode(e,n),e=r.parseMatch(e,t,n)),e},nt=e=>"[object Object]"===Object.prototype.toString.call(e),rt=e=>e&&nt(e)&&!0===e.isView,at=e=>e&&nt(e)&&!0===e.isNet;var ot={matchOne:function(e,t,n){const r=this.methods.one;if(rt(e))return this.intersection(e).eq(0);if(at(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;let a={regs:e=tt(e,n,this.world),group:t,justOne:!0},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=et(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const r=this.methods.one;if(rt(e))return this.intersection(e);if(at(e))return this.sweep(e,{tagger:!1}).view.settle();let a={regs:e=tt(e,n,this.world),group:t},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=et(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const r=this.methods.one;if(rt(e)){return this.intersection(e).fullPointer.length>0}if(at(e))return this.sweep(e,{tagger:!1}).view.found;let a={regs:e=tt(e,n,this.world),group:t,justOne:!0};return r.match(this.docs,a,this._cache).ptrs.length>0},if:function(e,t,n){const r=this.methods.one;if(rt(e))return this.filter((t=>t.intersection(e).found));if(at(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}let a={regs:e=tt(e,n,this.world),group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter(((e,t)=>{let n=this.update([e]);return r.match(n.docs,a,i[t]).ptrs.length>0}));let s=this.update(o);return this._cache&&(s._cache=o.map((e=>i[e[0]]))),s},ifNo:function(e,t,n){const{methods:r}=this,a=r.one;if(rt(e))return this.filter((t=>!t.intersection(e).found));if(at(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}e=tt(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 it={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 st=function(e,t){return[e[0],e[1],t[2]]},lt=(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},ut=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},ct={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=lt(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=>ut(e,this))),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=lt(e,this,t).fullPointer,a=n(this.fullPointer,r);for(let e=0;e{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(st(e.match,e.after)):o.push(e.match)})),o=o.filter((e=>e)),o=o.map((e=>ut(e,this))),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=lt(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),e.before&&e.match?o.push(st(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=>ut(e,this))),this.update(o)}};ct.split=ct.splitAfter;var ht=ct;const dt=function(e,t){return!(!e||!t)&&(e[0]===t[0]&&e[2]===t[1])},gt=function(e,t,n){const r=e.world,a=r.methods.one.parseMatch;n=n||"^.";let o=a(t=t||".$",{},r),i=a(n,{},r);o[o.length-1].end=!0,i[0].start=!0;let s=e.fullPointer,l=[s[0]];for(let t=1;t)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,bt=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,yt=/ /g,wt=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),kt=function(e){return e=(e=e.map((e=>e.trim()))).filter((e=>e))};var Pt=function(e){let t=e.split(vt),n=[];t.forEach((e=>{wt(e)?n.push(e):n=n.concat(e.split(bt))})),n=kt(n);let r=[];return n.forEach((e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||wt(e)?r.push(e):r=r.concat(e.split(yt))})),r=kt(r),r};const At=/\{([0-9]+)?(, *[0-9]*)?\}/,Ct=/&&/,jt=new RegExp(/^<\s*(\S+)\s*>/),Nt=e=>e.charAt(0).toUpperCase()+e.substring(1),xt=e=>e.charAt(e.length-1),It=e=>e.charAt(0),Tt=e=>e.substring(1),Dt=e=>e.substring(0,e.length-1),Ht=function(e){return e=Tt(e),e=Dt(e)},Gt=function(e,t){let n={};for(let r=0;r<2;r+=1){if("$"===xt(e)&&(n.end=!0,e=Dt(e)),"^"===It(e)&&(n.start=!0,e=Tt(e)),"?"===xt(e)&&(n.optional=!0,e=Dt(e)),("["===It(e)||"]"===xt(e))&&(n.group=null,"["===It(e)&&(n.groupStart=!0),"]"===xt(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===It(e))){const t=jt.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===xt(e)&&(n.greedy=!0,e=Dt(e)),"*"!==e&&"*"===xt(e)&&"\\*"!==e&&(n.greedy=!0,e=Dt(e)),"!"===It(e)&&(n.negative=!0,e=Tt(e)),"~"===It(e)&&"~"===xt(e)&&e.length>2&&(e=Ht(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("/"===It(e)&&"/"===xt(e))return e=Ht(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if(!0===At.test(e)&&(e=e.replace(At,((e,t,r)=>(void 0===r?(n.min=Number(t),n.max=Number(t)):(r=r.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(r)):(n.min=Number(t),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),"")))),"("===It(e)&&")"===xt(e)){Ct.test(e)?(n.choices=e.split(Ct),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=Tt(n.choices[0]);let r=n.choices.length-1;n.choices[r]=Dt(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=>Gt(e,t))))),e=""}if("{"===It(e)&&"}"===xt(e)){if(e=Ht(e),n.root=e,/\//.test(e)){let e=n.root.split(/\//);n.root=e[0],n.pos=e[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==e[2]&&(n.sense=e[2])}return n}if("<"===It(e)&&">"===xt(e))return e=Ht(e),n.chunk=Nt(e),n.greedy=!0,n;if("%"===It(e)&&"%"===xt(e))return e=Ht(e),n.switch=e,n}return"#"===It(e)?(n.tag=Tt(e),n.tag=Nt(n.tag),n):"@"===It(e)?(n.method=Tt(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var Et=Gt;const Ot=/[a-z0-9][-โ€“โ€”][a-z]/i;var Ft=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&&Ot.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};const Vt=function(e,t){let{all:n}=t.methods.two.transform.verb||{},r=e.root;return n?n(r,t.model):[]},zt=function(e,t){let{all:n}=t.methods.two.transform.noun||{};return n?n(e.root,t.model):[e.root]},Bt=function(e,t){let{all:n}=t.methods.two.transform.adjective||{};return n?n(e.root,t.model):[e.root]};var $t=function(e,t){return e=e.map((e=>{if(e.root)if(t.methods.two&&t.methods.two.transform){let n=[];e.pos?"Verb"===e.pos?n=n.concat(Vt(e,t)):"Noun"===e.pos?n=n.concat(zt(e,t)):"Adjective"===e.pos&&(n=n.concat(Bt(e,t))):(n=n.concat(Vt(e,t)),n=n.concat(zt(e,t)),n=n.concat(Bt(e,t))),n=n.filter((e=>e)),n.length>0&&(e.operator="or",e.fastOr=new Set(n))}else e.machine=e.root,delete e.id,delete e.root;return e}))};var St=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}))),e};var Kt=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let r=Pt(e);return r=r.map((e=>Et(e,t))),r=Ft(r,n),r=$t(r,n),r=St(r),r};const Mt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var Lt=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),_t={hasQuote:e=>Wt.test(e.pre)||qt.test(e.post),hasComma:e=>Qt(e,","),hasPeriod:e=>!0===Qt(e,".")&&!1===Qt(e,"..."),hasExclamation:e=>Qt(e,"!"),hasQuestionMark:e=>Qt(e,"?")||Qt(e,"ยฟ"),hasEllipses:e=>Qt(e,"..")||Qt(e,"โ€ฆ"),hasSemicolon:e=>Qt(e,";"),hasColon:e=>Qt(e,":"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>Ut.test(e.post)||Ut.test(e.pre),hasDash:e=>Rt.test(e.post)||Rt.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)};_t.hasQuotation=_t.hasQuote;var Zt=_t;let Xt=function(){};Xt=function(e,t,n,r){let a=function(e,t,n,r){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==r-1)return!1;if(void 0!==t.id&&t.id===e.id)return!0;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(Jt(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some((e=>e===t.word)))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof Zt[t.method]&&!0===Zt[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)}if(void 0!==t.chunk)return e.chunk===t.chunk;if(void 0!==t.switch)return e.switch===t.switch;if(void 0!==t.machine)return e.normal===t.machine||e.machine===t.machine||e.root===t.machine;if(void 0!==t.sense)return e.sense===t.sense;if(void 0!==t.fastOr){if(t.pos&&!e.tags.has(t.pos))return null;let n=e.root||e.implicit||e.machine||e.normal;return t.fastOr.has(n)||t.fastOr.has(e.text)}return void 0!==t.choices&&("and"===t.operator?t.choices.every((t=>Xt(e,t,n,r))):t.choices.some((t=>Xt(e,t,n,r))))}(e,t,n,r);return!0===t.negative?!a:a};var Yt=Xt;const en=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){tn(e,e.t).length=r-e.t}return e.t=r,!0};const rn=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=Yt(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]&&Yt(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){tn(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 sn=function(e,t,n){let r=0;for(let a=e.t;ar)&&(e.t+=r,!0))};var ln=function(e){const{regs:t}=e;let n=t[e.r],r=Object.assign({},n);if(r.negative=!1,Yt(e.terms[e.t],r,e.start_i+e.t,e.phrase_length))return!1;if(n.optional){let n=t[e.r+1];if(n){if(Yt(e.terms[e.t],n,e.start_i+e.t,e.phrase_length))e.r+=1;else if(n.optional&&t[e.r+2]){Yt(e.terms[e.t],t[e.r+2],e.start_i+e.t,e.phrase_length)&&(e.r+=2)}}}return n.greedy?sn(e,r,t[e.r+1]):(e.t+=1,!0)};var un=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=Yt(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&&Yt(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}};var cn=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 hn=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 dn=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]&&un(e),r.implicit&&e.terms[e.t+1]&&hn(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy)return null;if(!0===n.greedy){if(!cn(e))return null}return!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=tn(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0};var gn=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!==en(e,a))if(e.negative){if(!ln(a))return null}else if(!0!==Yt(a.terms[a.t],e,a.start_i+a.t,a.phrase_length)){if(!0!==e.optional)return null}else{if(!dn(a))return null}else{if(!dn(a))return null}else{if(e.negative&&e.anything)return null;if(!dn(a))return null}else{if(!on(a))return null}else{if(!an(a))return null}else{if(!nn(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 mn=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}};var pn=function(e,t,n){return e=e.filter((e=>{let[r,a,o]=e.pointer,i=n[r].slice(a,o);for(let e=0;e{e.groups[n][0]=t})),e},vn=function(e,t,n){let r=gn(e,t,0,e.length);return r?(r=fn(r,n),r):null};var bn=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=vn(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]}))),t.notIf&&(i=pn(i,t.notIf,e)),i=mn(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};var yn={api:ft,methods:{one:{termMethods:Zt,parseMatch:Kt,match:bn}},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 wn=/^\../,kn=/^#./,Pn=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,"'"),wn.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 An={html:function(e){let{starts:t,ends:n}=Pn(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(jn,""),xn.test(a)&&(a=" "),a=a.replace(Nn,""),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(jn,""),a="-"===a?" ":a.replace(Cn,""));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&&In.test(a)||(a+=" "),r+=n+o+a})),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},Dn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{keepSpace:!1,whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{keepSpace:!1,whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};Dn.clean=Dn.normal,Dn.reduced=Dn.root;var Hn=Dn;let Gn=[],En=0;for(;En<64;)Gn[En]=0|4294967296*Math.sin(++En%Math.PI);var On=function(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(En=i=0;En>4]+Gn[i]+~~o[En|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|r>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)a[--i]+=s[i]}for(e="";i<32;)e+=(a[i>>3]>>4*(1^i++)&15).toString(16);return e};const Fn={text:!0,terms:!0};let Vn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const zn=function(e,t){return Object.assign({},e,t)},Bn={text:e=>Tn(e,{keepPunct:!0},!1),normal:e=>Tn(e,zn(Hn.normal,{keepPunct:!0}),!1),implicit:e=>Tn(e,zn(Hn.implicit,{keepPunct:!0}),!1),machine:e=>Tn(e,Vn,!1),root:e=>Tn(e,zn(Vn,{form:"root"}),!1),hash:e=>On(Tn(e,{keepPunct:!0},!1)),offset:e=>{let t=Bn.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))};Bn.sentences=Bn.sentence,Bn.clean=Bn.normal,Bn.reduced=Bn.root;const $n={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},Fn,r)).offset&&n.compute("offset"),n.docs.map(((e,t)=>{let a={};return Object.keys(r).forEach((o=>{r[o]&&Bn[o]&&(a[o]=Bn[o](e,n,t))})),a})));var n,r;return"number"==typeof e?t[e]:t}};$n.data=$n.json;var Sn=$n;var Kn=function(e){let t=this.methods.one.debug||{};return e&&t.hasOwnProperty(e)?(t[e](this),this):"undefined"!=typeof window&&window.document?(t.clientSide(this),this):(t.tags(this),this)};const Mn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var Ln=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()));return e.filter((e=>e))}if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};e.forEach((e=>{t[e]=t[e]||0,t[e]+=1}));let n=Object.keys(t).map((e=>({normal:e,count:t[e]})));return n.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.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()},wrap:function(e){return Ln(this,e)}};var Wn=Jn;var qn={text:function(e){let t={};var n;if(e&&"string"==typeof e&&Hn.hasOwnProperty(e)?t=Object.assign({},Hn[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e)),void 0!==t.keepSpace||this.isFull()||(t.keepSpace=!1),void 0===t.keepEndPunct&&this.pointer){let e=this.pointer[0];e&&e[1]?t.keepEndPunct=!1:t.keepEndPunct=!0}return void 0===t.keepPunct&&(t.keepPunct=!0),void 0===t.keepSpace&&(t.keepSpace=!0),function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let r=0;r{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 _n="";var Zn={green:e=>""+e+_n,red:e=>""+e+_n,blue:e=>""+e+_n,magenta:e=>""+e+_n,cyan:e=>""+e+_n,yellow:e=>""+e+_n,black:e=>""+e+_n,dim:e=>""+e+_n,i:e=>""+e+_n};var Xn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(Zn.blue("\n โ”€โ”€โ”€โ”€โ”€โ”€")),t.forEach((t=>{console.log(Zn.blue("\n โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€")),t.forEach((t=>{let r=[...t.tags||[]],a=t.text||"-";t.sense&&(a=`{${t.normal}/${t.sense}}`),t.implicit&&(a="["+t.implicit+"]"),a=Zn.yellow(a);let o="'"+a+"'";if(t.reference){let n=e.update([t.reference]).text("normal");o+=` - ${Zn.dim(Zn.i("["+n+"]"))}`}o=o.padEnd(18);let i=Zn.blue(" โ”‚ ")+Zn.i(o)+" - "+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 Zn[n](e)}))),e.join(", ")}(r,n);console.log(i)}))})),console.log("\n")};var Yn=function(e){let{docs:t}=e;console.log(""),t.forEach((e=>{let t=[];e.forEach((e=>{"Noun"===e.chunk?t.push(Zn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(Zn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(Zn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(Zn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)})),console.log(t.join(" "),"\n")})),console.log("\n")};var er=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]}${Zn.blue(r[1])}${r[2]}`}(r,e.offset,t)})),console.log(r)})),console.log("\n")};var tr={api:Rn,methods:{one:{hash:On,debug:{tags:Xn,clientSide:Qn,chunks:Yn,highlight:er}}}};const nr=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},rr=function(e){let t={};return e.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),t};var ar=function(e,t){let n=rr(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 or=function(e,t){let n=[];return e.forEach(((r,a)=>{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<20;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};var ir={one:{termList:function(e){let t=[];for(let n=0;n{let[t]=e;if(1===r[t].length)return void a.push(e);let n=r[t].filter((t=>nr(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 ur=function(e,t){let n=rr(t),r=[];return e.forEach((e=>{let t=n[e[0]]||[];t=t.filter((t=>nr(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},hr=function(e,t){return e.map((e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e}))},dr={union:function(e){e=cr(e,this);let t=sr(this.fullPointer,e.fullPointer);return t=hr(t,this.document),this.toView(t)}};dr.and=dr.union,dr.intersection=function(e){e=cr(e,this);let t=ur(this.fullPointer,e.fullPointer);return t=hr(t,this.document),this.toView(t)},dr.not=function(e){e=cr(e,this);let t=lr(this.fullPointer,e.fullPointer);return t=hr(t,this.document),this.toView(t)},dr.difference=dr.not,dr.complement=function(){let e=this.all(),t=lr(e.fullPointer,this.fullPointer);return t=hr(t,this.document),this.toView(t)},dr.settle=function(){let e=this.fullPointer;return e.forEach((t=>{e=sr(e,[t])})),e=hr(e,this.document),this.update(e)};var gr=function(e){Object.assign(e.prototype,dr)},mr={methods:ir,api:gr};var pr=function(e){e.prototype.sweep=function(e,t={}){const{world:n,docs:r}=this,{methods:a}=n;let o=a.one.bulkMatch(r,e,this.methods,t);!1!==t.tagger&&a.one.bulkTagger(o,r,this.world),o=o.map((e=>{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}}};const fr=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var vr=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.notIf&&(e.notIf=n(e.notIf,{},t)),e.needs=function(e){let t=[];return e.forEach((e=>{t.push(fr(e)),"and"===e.operator&&e.choices&&e.choices.forEach((e=>{e.forEach((e=>{t.push(fr(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=fr(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 br=function(e,t){e=vr(e,t);let n={};e.forEach((e=>{e.needs.forEach((t=>{n[t]=Array.isArray(n[t])?n[t]:[],n[t].push(e)})),e.wants.forEach((t=>{n[t]=Array.isArray(n[t])?n[t]:[],n[t].push(e)}))})),Object.keys(n).forEach((e=>{let t={};n[e]=n[e].filter((e=>"boolean"!=typeof 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}};var yr=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=>"boolean"!=typeof o[e.match]&&(o[e.match]=!0,!0))),a}))};var wr=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=>r.has(e)))))).filter((e=>{if(0===e.wants.length)return!0;return e.wants.filter((e=>r.has(e))).length>=e.minWant}))}))};var kr=function(e,t,n,r,a){let o=[];for(let n=0;n0&&(l.ptrs.forEach((e=>{e[0]=n;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),o.push(t)})),!0===a.matchOne))return[o[0]]}return o};var Pr=function(e,t,n,r={}){let a=n.one.cacheDoc(e),o=yr(a,t.hooks);return o=wr(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=e.filter((e=>r>=e.minWords)),e}))}(o,e),kr(o,e,a,n,r)};var Ar=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{if(!e.tag&&!e.chunk&&!e.unTag)return;let a=e.reason||e.match,u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===Ar(u,e.tag,r))return;if("-"===u[u.length-1].post)return}if(void 0!==e.tag){if(i(u,e.tag,n,e.safe,`[post] '${a}'`),"Noun"===e.tag&&l){let t=u[u.length-1];l(t.text)?i([t],"Plural",n,e.safe,"quick-plural"):i([t],"Singular",n,e.safe,"quick-singular")}!0===e.freeze&&u.forEach((e=>e.frozen=!0))}void 0!==e.unTag&&s(u,e.unTag,n,e.safe,a),e.chunk&&u.forEach((t=>t.chunk=e.chunk))}))},jr={lib:{buildNet:function(e){let t=this.methods().one.buildNet(e,this.world());return t.isNet=!0,t}},api:pr,methods:{one:{buildNet:br,bulkMatch:Pr,bulkTagger:Cr}}};const Nr=/ /,xr=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},Ir=function(e,t,n,r){if(!0===e.tags.has(t))return null;if("."===t)return null;!0===e.frozen&&(r=!0);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("string"==typeof t)if(t=t.trim(),Nr.test(t))!function(e,t,n,r){let a=t.split(Nr);e.forEach(((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),Ir(e,o,n,r))}))}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nTr(e,t,n,r)))};var Dr=Tr;var Hr=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=>Er({id:e}))),t}return[Er({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},zr=e=>"[object Array]"===Object.prototype.toString.call(e),Br=e=>(e=e||"").trim(),$r=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach((e=>{if(!e.trim()||Or.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:Fr(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=Er({});return e.forEach((e=>{if((e=Er(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):(Vr(t=e).forEach(Er),t);var t},Sr=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("โ†’ "));let r="";return Vr(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},Kr=function(e){let t=Vr(e);t.forEach((e=>{delete(e=Object.assign({},e)).children}));let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},Mr={text:Sr,txt:Sr,array:Kr,flat:Kr},Lr=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Sr(e,!0)),null):Mr.hasOwnProperty(t)?Mr[t](e):e},Jr=e=>{Vr(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))}))},Wr=/\//;let qr=class g{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=Br(e),!Wr.test(e)){let t=this.json.children.find((t=>t.id===e));return new g(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)||Er({});return new g(t)}add(e,t={}){if(zr(e))return e.forEach((e=>this.add(Br(e),t))),this;e=Br(e);let n=Er({id:e,props:t});return this.json.children.push(n),new g(n)}remove(e){return e=Br(e),this.json.children=this.json.children.filter((t=>t.id!==e)),this}nodes(){return Vr(this.json).map((e=>(delete(e=Object.assign({},e)).children,e)))}cache(){return(e=>{let t=Vr(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 Vr(this.json)}fillDown(){var e;return e=this.json,Vr(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 zr(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])})),e))(t.props,e.props)})),this}depth(){Jr(this.json);let e=Vr(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 Jr(this.json),Lr(this.json,e)}debug(){return Jr(this.json),Lr(this.json,"debug"),this}};const Ur=function(e){let t=$r(e);return new qr(t)};Ur.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",Hyphenated:"cyan",Adverb:"cyan"};const Qr=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 _r=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:Qr(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 Zr=function(e){return e?"string"==typeof e?[e]:e:[]};var Xr=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=Zr(e[t].children),e[t].not=Zr(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 Yr=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=Xr(e,t);const n=function(e){const t=Object.keys(e).map((t=>{let n=e[t];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:r,children:[]}}));return Ur(t).cache().fillDown().out("array")}(Object.assign({},t,e));return _r(n)},ea={one:{setTag:Dr,unTag:Hr,addTags:Yr,canBe:Gr}};const ta=function(e){return"[object Array]"===Object.prototype.toString.call(e)},na={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||""),ta(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 ta(e)?e.forEach((e=>r.one.unTag(n,e,i))):r.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){e=e.replace(/^#/,"");let t=this.model.one.tagSet,n=this.methods.one.canBe,r=[];this.document.forEach(((a,o)=>{a.forEach(((a,i)=>{n(a,e,t)||r.push([o,i,i+1])}))}));let a=this.update(r);return this.difference(a)}};var ra=na;var aa=function(e){Object.assign(e.prototype,ra)};var oa={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 ia=new Set(["Auxiliary","Possessive"]);var sa=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=e.sort(((e,n)=>{if(ia.has(e)||!t.hasOwnProperty(n))return 1;if(ia.has(n)||!t.hasOwnProperty(e))return-1;let r=t[e].children||[],a=r.length;return r=t[n].children||[],a-r.length})),e}(t,r)}))}))},la={model:{one:{tagSet:{}}},compute:{tagRank:sa},methods:ea,api:aa,lib:oa};const ua=/([.!?\u203D\u2E18\u203C\u2047-\u2049\u3002]+\s)/g,ca=/^[.!?\u203D\u2E18\u203C\u2047-\u2049\u3002]+\s$/,ha=/((?:\r?\n|\r)+)/;var da=function(e){let t=[],n=e.split(ha);for(let e=0;e0&&(a.push(o),e[t]="")}return a};const va={'"':'"',"๏ผ‚":"๏ผ‚","โ€œ":"โ€","โ€Ÿ":"โ€","โ€ž":"โ€","โน‚":"โ€","โ€š":"โ€™","ยซ":"ยป","โ€น":"โ€บ","โ€ต":"โ€ฒ","โ€ถ":"โ€ณ","โ€ท":"โ€ด","ใ€":"ใ€ž","ใ€Ÿ":"ใ€ž"},ba=RegExp("["+Object.keys(va).join("")+"]","g"),ya=RegExp("["+Object.values(va).join("")+"]","g"),wa=function(e){if(!e)return!1;let t=e.match(ya);return null!==t&&1===t.length};var ka=function(e){let t=[];for(let n=0;n(e[t]=!0,e)),{});var za=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(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=Ga(n),n=Da(n),n=n.filter((e=>e)),n};const Ba=/\p{Letter}/u,$a=/[\p{Number}\p{Currency_Symbol}]/u,Sa=/^[a-z]\.([a-z]\.)+/i,Ka=/[sn]['โ€™]$/;var Ma=function(e,t){let{prePunctuation:n,postPunctuation:r,emoticons:a}=t.one,o=e,i="",s="",l=Array.from(e);if(a.hasOwnProperty(e.trim()))return{str:e.trim(),pre:i,post:" "};let u=l.length;for(let e=0;e(s=e||"",""))),e=o,i=""),{str:e,pre:i,post:s}};var La=(e,t)=>{let{str:n,pre:r,post:a}=Ma(e,t);return{text:n,pre:r,post:a,tags:new Set}};var Ja=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("")};var Wa=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 qa=/([A-Z]\.)+[A-Z]?,?$/,Ua=/^[A-Z]\.,?$/,Ra=/[A-Z]{2,}('s|,)?$/,Qa=/([a-z]\.)+[a-z]\.?$/;var _a=function(e){return function(e){return!0===qa.test(e)||!0===Qa.test(e)||!0===Ua.test(e)||!0===Ra.test(e)}(e)&&(e=e.replace(/\./g,"")),e};var Za=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=Wa(r),r=n(r,t),r=_a(r),e.normal=r};var Xa=function(e,t){const{methods:n,model:r}=t,{splitSentences:a,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=a(e=e||"",t).map((e=>{let n=o(e,r);return n=n.map((e=>i(e,r))),n.forEach((e=>{Za(e,t)})),n})),e};const Ya=/[ .][A-Z]\.? *$/i,eo=/(?:\u2026|\.{2,}) *$/,to=/\p{L}/u,no=/\. *$/,ro=/^[A-Z]\. $/;var ao=function(e,t){if(!1===to.test(e))return!1;if(!0===Ya.test(e))return!1;if(3===e.length&&ro.test(e))return!1;if(!0===eo.test(e))return!1;let n=e.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),r=n[n.length-1].toLowerCase();return!0!==t.hasOwnProperty(r)||!0!==no.test(e)},oo={one:{killUnicode:Ja,tokenize:{splitSentences:xa,isSentence:ao,splitTerms:za,splitWhitespace:La,fromString:Xa}}};var io={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let so={},lo={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","ยตg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","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=>{so[t]=!0,lo[t]="Abbreviation",void 0!==e[1]&&(lo[t]=[lo[t],e[1]])}))}));var uo=["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","ex"].reduce(((e,t)=>(e[t]=!0,e)),{});let co={"!":"ยก","?":"ยฟษ",'"':'โ€œโ€"โโž',"'":"โ€˜โ€›โ›โœโ€™","-":"โ€”โ€“",a:"ยชร€รร‚รƒร„ร…ร รกรขรฃรครฅฤ€ฤฤ‚ฤƒฤ„ฤ…ววŽวžวŸว วกวบวปศ€ศศ‚ศƒศฆศงศบฮ†ฮ‘ฮ”ฮ›ฮฌฮฑฮปะะฐัฆังำำ‘ำ’ำ“ฦ›รฆ",b:"รŸรพฦ€ฦฦ‚ฦƒฦ„ฦ…ษƒฮ’ฮฒฯฯฆะ‘ะ’ะชะฌะฒัŠัŒัขัฃาŒา",c:"ยขยฉร‡รงฤ†ฤ‡ฤˆฤ‰ฤŠฤ‹ฤŒฤฦ†ฦ‡ฦˆศปศผอปอผฯฒฯนฯฝฯพะกัั”า€าาชาซ",d:"รฤŽฤฤฤ‘ฦ‰ฦŠศกฦ‹ฦŒ",e:"รˆร‰รŠร‹รจรฉรชรซฤ’ฤ“ฤ”ฤ•ฤ–ฤ—ฤ˜ฤ™ฤšฤ›ฦศ„ศ…ศ†ศ‡ศจศฉษ†ษ‡ฮˆฮ•ฮžฮฃฮญฮตฮพฯตะ€ะะ•ะตัั‘าผาฝาพาฟำ–ำ—แป…",f:"ฦ‘ฦ’ฯœฯำบำปา’า“ลฟ",g:"ฤœฤฤžฤŸฤ ฤกฤขฤฃฦ“วควฅวฆวงวดวต",h:"ฤคฤฅฤฆฤงฦ•วถศžศŸฮ‰ฮ—ะ‚ะŠะ‹ะะฝั’ั›าขาฃาคาฅาบาปำ‰ำŠ",I:"รŒรรŽร",i:"รฌรญรฎรฏฤจฤฉฤชฤซฤฌฤญฤฎฤฏฤฐฤฑฦ–ฦ—ศˆศ‰ศŠศ‹ฮŠฮฮชฮฏฮนฯŠะ†ะ‡ั–ั—iฬ‡",j:"ฤดฤตวฐศทษˆษ‰ฯณะˆั˜",k:"ฤถฤทฤธฦ˜ฦ™วจวฉฮšฮบะŒะ–ะšะถะบัœาšา›าœาาžาŸา าก",l:"ฤนฤบฤปฤผฤฝฤพฤฟล€ลล‚ฦšฦชว€ววศดศฝฮ™ำ€ำ",m:"ฮœฯบฯปะœะผำำŽ",n:"ร‘รฑลƒล„ล…ล†ล‡ลˆล‰ลŠล‹ฦฦžวธวนศ ศตฮฮ ฮฎฮทฯžะะ˜ะ™ะ›ะŸะธะนะปะฟัาŠา‹ำ…ำ†ำขำฃำคำฅฯ€",o:"ร’ร“ร”ร•ร–ร˜รฐรฒรณรดรตรถรธลŒลลŽลลล‘ฦŸฦ ฦกว‘ว’วชวซวฌวญวพวฟศŒศศŽศศชศซศฌศญศฎศฏศฐศฑฮŒฮ˜ฮŸฮธฮฟฯƒฯŒฯ•ฯ˜ฯ™ฯฌฯดะžะคะพัฒัณำฆำงำจำฉำชำซ",p:"ฦคฮกฯฯทฯธฯผะ ั€าŽารž",q:"ษŠษ‹",r:"ล”ล•ล–ล—ล˜ล™ฦฆศศ‘ศ’ศ“ษŒษะƒะ“ะฏะณัั“าา‘",s:"ลšล›ลœลลžลŸล ลกฦงฦจศ˜ศ™ศฟะ…ั•",t:"ลขลฃลคลฅลฆลงฦซฦฌฦญฦฎศšศ›ศถศพฮ“ฮคฯ„ฯฎะขั‚",u:"ร™รšร›รœรนรบรปรผลจลฉลชลซลฌลญลฎลฏลฐลฑลฒลณฦฏฦฐฦฑฦฒว“ว”ว•ว–ว—ว˜ว™วšว›วœศ”ศ•ศ–ศ—ษ„ฮฐฯ…ฯ‹ฯ",v:"ฮฝัดัตัถัท",w:"ลดลตฦœฯ‰ฯŽฯ–ฯขฯฃะจะฉัˆั‰ักัฟ",x:"ร—ฮงฯ‡ฯ—ฯฐะฅั…าฒาณำผำฝำพำฟ",y:"รรฝรฟลถลทลธฦณฦดศฒศณษŽษฮŽฮฅฮซฮณฯˆฯ’ฯ“ฯ”ะŽะฃัƒั‡ัžัฐัฑาฎาฏาฐาฑำฎำฏำฐำฑำฒำณ",z:"ลนลบลปลผลฝลพฦตฦถศคศฅษ€ฮ–"},ho={};Object.keys(co).forEach((function(e){co[e].split("").forEach((function(t){ho[t]=e}))}));const go=/\//,mo=/[a-z]\.[a-z]/i,po=/[0-9]/;var fo=function(e,t){let n=e.normal||e.text||e.machine;const r=t.model.one.aliases;if(r.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(r[n])),go.test(n)&&!mo.test(n)&&!po.test(n)){let t=n.split(go);t.length<=3&&t.forEach((t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))}))}return e};const vo=/^\p{Letter}+-\p{Letter}+$/u;var bo=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"),vo.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)};var yo=function(e){let t=e.docs,n={};for(let e=0;eAo(e,fo),machine:e=>Ao(e,bo),normal:e=>Ao(e,Za),freq:yo,offset:wo,index:ko,wordCount:Po},methods:oo,model:{one:{aliases:io,abbreviations:so,prefixes:uo,suffixes:{like:!0,ish:!0,less:!0,able:!0,elect:!0,type:!0,designate:!0},prePunctuation:{"#":!0,"@":!0,_:!0,"ยฐ":!0,"โ€‹":!0,"โ€Œ":!0,"โ€":!0,"\ufeff":!0},postPunctuation:{"%":!0,_:!0,"ยฐ":!0,"โ€‹":!0,"โ€Œ":!0,"โ€":!0,"\ufeff":!0},lexicon:lo,unicode:ho,emoticons:{"<3":!0,"{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 To={safe:!0,min:3};var Do={typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},To,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=Io(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}};var Ho={model:{one:{typeahead:{}}},api:xo,lib:Do,compute:jo,hooks:["typeahead"]};v.extend(ee),v.extend(tr),v.extend(yn),v.extend(mr),v.extend(la),v.plugin(He),v.extend(Co),v.extend(Ve),v.plugin(k),v.extend(Xe),v.extend(Ho),v.extend(Je),v.extend(jr);var Go={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",volcano:"volcanoes"},Eo={Comparative:"trueยฆbett1f0;arth0ew0in0;er",Superlative:"trueยฆearlier",PresentTense:"trueยฆbests,sounds",Condition:"trueยฆlest,unless",PastTense:"trueยฆbegan,came,d4had,kneel3l2m0sa4we1;ea0sg2;nt;eap0i0;ed;id",Participle:"trueยฆ0:09;a06b01cZdXeat0fSgQhPoJprov0rHs7t6u4w1;ak0ithdra02o2r1;i02uY;k0v0;nd1pr04;ergoJoJ;ak0hHo3;e9h7lain,o6p5t4un3w1;o1um;rn;g,k;ol0reS;iQok0;ught,wn;ak0o1runk;ne,wn;en,wn;ewriNi1uJ;dd0s0;ut3ver1;do4se0t1;ak0h2;do2g1;roG;ne;ast0i7;iv0o1;ne,tt0;all0loBor1;bi3g2s1;ak0e0;iv0o9;dd0;ove,r1;a5eamt,iv0;hos0lu1;ng;e4i3lo2ui1;lt;wn;tt0;at0en,gun;r2w1;ak0ok0;is0;en",Gerund:"trueยฆaccord0be0doin,go0result0stain0;ing",Expression:"trueยฆa0Yb0Uc0Sd0Oe0Mfarew0Lg0FhZjeez,lWmVnToOpLsJtIuFvEw7y0;a5e3i1u0;ck,p;k04p0;ee,pee;a0p,s;!h;!a,h,y;a5h2o1t0;af,f;rd up,w;atsoever,e1o0;a,ops;e,w;hoo,t;ery w06oi0L;gh,h0;! 0h,m;huh,oh;here nPsk,ut tut;h0ic;eesh,hh,it,oo;ff,h1l0ow,sst;ease,s,z;ew,ooey;h1i,mg,o0uch,w,y;h,o,ps;! 0h;hTmy go0wT;d,sh;a7evertheless,o0;!pe;eh,mm;ah,eh,m1ol0;!s;ao,fao;aCeBi9o2u0;h,mph,rra0zzC;h,y;l1o0;r6y9;la,y0;! 0;c1moCsmok0;es;ow;!p hip hoor0;ay;ck,e,llo,y;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;ell;e0h,t cetera,ureka,ww,xcuse me;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;mon,o0;ngratulations,wabunga;a2oo1r0tw,ye;avo,r;!ya;h,m; 1h0ka,las,men,rgh,ye;!a,em,h,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ยฆdick0gre0ones,records;ens","Unit|Noun":"trueยฆcEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,t,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s",Value:"trueยฆa few",Imperative:"trueยฆbewa0come he0;re","Plural|Verb":"trueยฆleaves",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:4Q;a3Tb3Bc2Od2He2Df27g1Zh1Ti1Pj1Nk1Ll1Gm12n0Po0Mp0Cqu0Br02sTtHuCv9w3xiaomi,y1;amaha,m1Bou1w1B;gov,tu3C;a4e2iki1orld trade organizati33;leaRped0O;lls fargo,st1;fie2Hinghou2R;l1rner br3U;gree3Jl street journ2Im1E;an halOeriz2Xisa,o1;dafo2Yl1;kswagMvo;b4kip,n2ps,s1;a tod3Aps;es3Mi1;lev3Fted natio3C;er,s; mobi32aco beRd bOe9gi frida3Lh3im horto3Amz,o1witt3D;shi49y1;ota,s r 05;e 1in lizzy;b3carpen3Jdaily ma3Dguess w2holli0s1w2;mashing pumpki35uprem0;ho;ea1lack eyed pe3Xyr0Q;ch bo3Dtl0;l2n3Qs1xas instrumen1U;co,la m1F;efoni0Kus;a8cientology,e5ieme2Ymirnoff,np,o3pice gir6quare0Ata1ubaru;rbuc1to34;ks;ny,undgard1;en;a2x pisto1;ls;g1Wrs;few2Minsbur31lesfor03msu2E;adiohead,b8e4o1yana3C;man empi1Xyal 1;b1dutch she4;ank;a3d 1max,vl20;bu1c2Ahot chili peppe2Ylobst2N;ll;ders dige1Ll madrid;c,s;ant3Aizn2Q;a8bs,e5fiz2Ihilip4i3r1;emier 1udenti1D;leagTo2K;nk floyd,zza hut; morrBs;psi2tro1uge0E;br33chi0Tn33;!co;lant2Un1yp16; 2ason27da2P;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0QvZ;l,s;c,st1Otflix,w1; 1sweek;kids on the block,york0D;a,c;nd22s2t1;ional aca2Po,we0U;a,c02d0S;aDcdonalCe9i6lb,o3tv,y1;spa1;ce;b1Tnsanto,ody blu0t1;ley cr1or0T;ue;c2t1;as,subisO;helin,rosoft;dica2rcedes benz,talli1;ca;id,re;ds;cs milk,tt19z24;a3e1g,ittle caesa1P; ore09novo,x1;is,mark,us; 1bour party;pres0Dz boy;atv,fc,kk,lm,m1od1O;art;iffy lu0Roy divisi0Jpmorgan1sa;! cha09;bm,hop,k3n1tv;g,te1;l,rpol;ea;a5ewlett pack1Vi3o1sbc,yundai;me dep1n1P;ot;tac1zbollah;hi;lliburt08sbro;eneral 6hq,ithub,l5mb,o2reen d0Ou1;cci,ns n ros0;ldman sachs,o1;dye1g0H;ar;axo smith kli04encoW;electr0Nm1;oto0Z;a5bi,c barcelo4da,edex,i2leetwood m03o1rito l0G;rd,xcY;at,fa,nancial1restoZ; tim0;na;cebook,nnie mae;b0Asa,u3xxon1; m1m1;ob0J;!rosceptics;aiml0De5isney,o4u1;nkin donu2po0Zran dur1;an;ts;j,w jon0;a,f lepp12ll,peche mode,r spieg02stiny's chi1;ld;aJbc,hFiDloudflaCnn,o3r1;aigsli5eedence clearwater reviv1ossra09;al;c7inba6l4m1o0Est09;ca2p1;aq;st;dplSg1;ate;se;a c1o chanQ;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil a,na daily;r1y;on;d2pital o1rls jr;ne;bury,ill1;ac;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;cardi,idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser busDol,ppleAr6s4u3v2y1;er;is,on;di,todesk;hland o1sociated E;il;b3g2m1;co;os;ys; compu1be0;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ยฆits,my,our0thy;!s","Noun|Verb":"trueยฆ0:9W;1:AA;2:96;3:A3;4:9R;5:A2;6:9K;7:8N;8:7L;9:A8;A:93;B:8D;C:8X;a9Ob8Qc7Id6Re6Gf5Sg5Hh55i4Xj4Uk4Rl4Em40n3Vo3Sp2Squ2Rr21s0Jt02u00vVwGyFzD;ip,oD;ne,om;awn,e6Fie68;aOeMhJiHoErD;ap,e9Oink2;nd0rDuC;kDry,sh5Hth;!shop;ck,nDpe,re,sh;!d,g;e86iD;p,sD;k,p0t2;aDed,lco8W;r,th0;it,lk,rEsDt4ve,x;h,te;!ehou1ra9;aGen5FiFoD;iDmAte,w;ce,d;be,ew,sA;cuum,l4B;pDr7;da5gra6Elo6A;aReQhrPiOoMrGuEwiDy5Z;n,st;nDrn;e,n7O;aGeFiEoDu6;t,ub2;bu5ck4Jgg0m,p;at,k,nd;ck,de,in,nsDp,v7J;f0i8R;ll,ne,p,r4Yss,t94uD;ch,r;ck,de,e,le,me,p,re;e5Wow,u6;ar,e,ll,mp0st,xt;g,lDng2rg7Ps5x;k,ly;a0Sc0Ne0Kh0Fi0Dk0Cl0Am08n06o05pXquaBtKuFwD;ea88iD;ng,pe,t4;bGit,m,ppErD;fa3ge,pri1v2U;lDo6S;e6Py;!je8;aMeLiKoHrEuDy2;dy,ff,mb2;a85eEiDo5Pugg2;ke,ng;am,ss,t4;ckEop,p,rD;e,m;ing,pi2;ck,nk,t4;er,m,p;ck,ff,ge,in,ke,lEmp,nd,p2rDte,y;!e,t;k,l;aJeIiHlGoFrDur,y;ay,e56inDu3;g,k2;ns8Bt;a5Qit;ll,n,r87te;ed,ll;m,n,rk;b,uC;aDee1Tow;ke,p;a5Je4FiDo53;le,rk;eep,iDou4;ce,p,t;ateboa7Ii;de,gnDl2Vnk,p,ze;!al;aGeFiEoDuff2;ck,p,re,w;ft,p,v0;d,i3Ylt0;ck,de,pe,re,ve;aEed,nDrv1It;se,t2N;l,r4t;aGhedu2oBrD;aEeDibb2o3Z;en,w;pe,t4;le,n,r2M;cDfegua72il,mp2;k,rifi3;aZeHhy6LiGoEuD;b,in,le,n,s5X;a6ck,ll,oDpe,u5;f,t;de,ng,ot,p,s1W;aTcSdo,el,fQgPje8lOmMnLo17pJque6sFturn,vDwa6V;eDi27;al,r1;er74oFpe8tEuD;lt,me;!a55;l71rt;air,eaDly,o53;l,t;dezvo2Zt;aDedy;ke,rk;ea1i4G;a6Iist0r5N;act6Yer1Vo71uD;nd,se;a38o6F;ch,s6G;c1Dge,iEke,lly,nDp1Wt1W;ge,k,t;n,se;es6Biv0;a04e00hYiXlToNrEsy4uD;mp,n4rcha1sh;aKeIiHoDu4O;be,ceFdu3fi2grDje8mi1p,te6;amDe6W;!me;ed,ss;ce,de,nt;sDy;er6Cs;cti3i1;iHlFoEp,re,sDuCw0;e,i5Yt;l,p;iDl;ce,sh;nt,s5V;aEce,e32uD;g,mp,n7;ce,nDy;!t;ck,le,n17pe,tNvot;a1oD;ne,tograph;ak,eFnErDt;fu55mA;!c32;!l,r;ckJiInHrFsEtDu1y;ch,e9;s,te;k,tD;!y;!ic;nt,r,se;!a7;bje8ff0il,oErDutli3Qver4B;bAd0ie9;ze;a4ReFoDur1;d,tD;e,i3;ed,gle8tD;!work;aMeKiIoEuD;rd0;ck,d3Rld,nEp,uDve;nt,th;it5EkD;ey;lk,n4Brr5CsDx;s,ta2B;asuBn4UrDss;ge,it;il,nFp,rk3WsEtD;ch,t0;h,k,t0;da5n0oeuvB;aLeJiHoEuD;mp,st;aEbby,ck,g,oDve;k,t;d,n;cDe,ft,mAnIst;en1k;aDc0Pe4vK;ch,d,k,p,se;bFcEnd,p,t4uD;gh,n4;e,k;el,o2U;eEiDno4E;ck,d,ll,ss;el,y;aEo1OuD;i3mp;m,zz;mpJnEr46ssD;ue;c1Rdex,fluGha2k,se2HteDvoi3;nt,rD;e6fa3viD;ew;en3;a8le2A;aJeHiGoEuD;g,nt;l3Ano2Dok,pDr1u1;!e;ghli1Fke,nt,re,t;aDd7lp;d,t;ck,mGndFrEsh,tDu9;ch,e;bo3Xm,ne4Eve6;!le;!m0;aMear,ift,lKossJrFuD;arDe4Alp,n;antee,d;aFiEoDumb2;uCwth;ll,nd,p;de,sp;ip;aBoDue;ss,w;g,in,me,ng,s,te,ze;aZeWiRlNoJrFuD;ck,el,nDss,zz;c38d;aEoDy;st,wn;cDgme,me,nchi1;tuB;cFg,il,ld,rD;ce,e29mDwa31;!at;us;aFe0Vip,oDy;at,ck,od,wD;!er;g,ke,me,re,sh,vo1E;eGgFlEnDre,sh,t,x;an3i0Q;e,m,t0;ht,uB;ld;aEeDn3;d,l;r,tuB;ce,il,ll,rm,vo2W;cho,d7ffe8nMsKxFyeD;!baD;ll;cGerci1hFpDtra8;eriDo0W;en3me9;au6ibA;el,han7u1;caDtima5;pe;count0d,vy;a01eSiMoJrEuDye;b,el,mp,pli2X;aGeFiEoD;ne,p;ft,ll,nk,p,ve;am,ss;ft,g,in;cEd7ubt,wnloD;ad;k,u0E;ge6p,sFt4vD;e,iDor3;de;char7gui1h,liEpD;at4lay,u5;ke;al,bKcJfeIlGmaCposAsEtaD;il;e07iD;gn,re;ay,ega5iD;ght;at,ct;li04rea1;a5ut;b,ma7n3rDte;e,t;a0Eent0Dh06irc2l03oKrFuD;be,e,rDt;b,e,l,ve;aGeFoEuDy;sh;p,ss,wd;dAep;ck,ft,sh;at,de,in,lTmMnFordina5py,re,st,uDv0;gh,nDp2rt;s01t;ceHdu8fli8glomeIsFtDveN;a8rD;a6ol;e9tru8;ct;ntDrn;ra5;bHfoGmFpD;leDouCromi1;me9;aCe9it,u5;rt;at,iD;ne;lap1oD;r,ur;aEiDoud,ub;ck,p;im,w;aEeDip;at,ck,er;iGllen7nErD;ge,m,t;ge,nD;el;n,r;er,re;ke,ll,mp,noe,pGrXsFtEuDve;se,ti0I;alog,ch;h,t;!tuB;re;a03eZiXlToPrHuEyD;pa11;bb2ck2dgEff0mp,rDst,zz;den,n;et;anJeHiFoadEuD;i1sh;ca6;be,d7;ge;aDed;ch,k;ch,d;aFg,mb,nEoDrd0tt2x,ycott;k,st,t;d,e;rd,st;aFeCiDoYur;nk,tz;nd;me;as,d,ke,nd,opsy,tD;!ch,e;aFef,lt,nDt;d,efA;it;r,t;ck,il,lan3nIrFsEtt2;le;e,h;!gDk;aDe;in;!d,g,k;bu1c05dZge,iYlVnTppQrLsIttGucEwaD;rd;tiD;on;aDempt;ck;k,sD;i6ocia5;st;chFmD;!oD;ur;!iD;ve;eEroa4;ch;al;chDg0sw0;or;aEt0;er;rm;d,m,r;dreHvD;an3oD;ca5;te;ce;ss;cDe,he,t;eFoD;rd,u9;nt;nt,ss;se",Actor:"trueยฆ0:7B;1:7G;2:6A;3:7F;4:7O;5:7K;a6Nb62c4Ud4Be41f3Sg3Bh30i2Uj2Qkin2Pl2Km26n1Zo1Sp0Vqu0Tr0JsQtJuHvEw8yo6;gi,ut6;h,ub0;aAe9i8o7r6;estl0it0;m2rk0;fe,nn0t2Bza2H;atherm2ld0;ge earn0it0nder0rri1;eter7i6oyF;ll5Qp,s3Z;an,ina2U;n6s0;c6Uder03;aoisea23e9herapi5iktok0o8r6ut1yco6S;a6endseLo43;d0mp,nscri0Bvel0;ddl0u1G;a0Qchn7en6na4st0;ag0;i3Oo0D;aiXcUeRhPiMki0mu26oJpGquaFtBu7wee6;p0theart;lt2per7r6;f0ge6Iviv1;h6inten0Ist5Ivis1;ero,um2;a8ep7r6;ang0eam0;bro2Nc2Ofa2Nmo2Nsi20;ff0tesm2;tt0;ec7ir2Do6;kesp59u0M;ia5Jt3;l7me6An,rcere6ul;r,ss;di0oi5;n7s6;sy,t0;g0n0;am2ephe1Iow6;girl,m2r2Q;cretInior cit3Fr6;gea4v6;a4it1;hol4Xi7reen6ulpt1;wr2C;e01on;l1nt;aEe9o8u6;l0nn6;er up,ingE;g40le mod3Zof0;a4Zc8fug2Ppo32searQv6;ere4Uolution6;ary;e6luYru22;ptio3T;bbi,dic5Vpp0;arter6e2Z;back;aYeWhSiRlOoKr8sycho7u6;nk,p31;logi5;aGeDiBo6;d9fess1g7ph47s6;pe2Ktitu51;en6ramm0;it1y;igy,uc0;est4Nme mini0Unce6s3E;!ss;a7si6;de4;ch0;ctiti39nk0P;dca0Oet,li6pula50rnst42;c2Itic6;al scie6i2;nti5;a6umb0;nn0y6;er,ma4Lwright;lgrim,one0;a8iloso7otogra7ra6ysi1V;se;ph0;ntom,rmaci5;r6ssi1T;form0s4O;i3El,nel3Yr8st1tr6wn;i6on;arWot;ent4Wi42tn0;ccupa4ffBp8r7ut6;ca5l0B;ac4Iganiz0ig2Fph2;er3t6;i1Jomet6;ri5;ic0spring;aBe9ie4Xo7u6;n,rser3J;b6mad,vi4V;le2Vo4D;i6mesis,phew;ce,ghb1;nny,rr3t1X;aEeDiAo7u6yst1Y;m8si16;der3gul,m7n6th0;arDk;!my;ni7s6;f02s0Jt0;on,st0;chan1Qnt1rcha4;gi9k0n8rtyr,t6y1;e,riar6;ch;ag0iac;ci2stra3I;a7e2Aieutena4o6;rd,s0v0;bor0d7ndlo6ss,urea3Fwy0ym2;rd;!y;!s28;e8o7u6;ggl0;gg0urna2U;st0;c3Hdol,llu3Ummigra4n6; l9c1Qfa4habi42nov3s7ve6;nt1stig3;pe0Nt6;a1Fig3ru0M;aw;airFeBistoAo8u6ygie1K;man6sba2H;!ita8;bo,st6usekN;age,e3P;ri2;ir,r6;m7o6;!ine;it;dress0sty2C;aLeIhostGirl26ladi3oCrand7u6;e5ru;c9daug0Jfa8m7pa6s2Y;!re4;a,o6;th0;hi1B;al7d6lf0;!de3A;ie,k6te26;eep0;!wr6;it0;isha,n6;i6tl04;us;mbl0rden0;aDella,iAo7r6;eela2Nie1P;e,re6ster pare4;be1Hm2r6st0;unn0;an2ZgZlmm17nanci0r6tt0;e6st la2H; marsh2OfigXm2;rm0th0;conoEdDlectriCm8n7x6;amin0cellency,i2A;emy,trepreneur,vironmenta1J;c8p6;er1loye6;e,r;ee;ci2;it1;mi5;aKeBi8ork,ri7u6we02;de,tche2H;ft0v0;ct3eti7plom2Hre6va;ct1;ci2ti2;aDcor3fencCi0InAput9s7tectLvel6;op0;ce1Ge6ign0;rt0;ee,y;iz6;en;em2;c1Ml0;d8nc0redev7ug6;ht0;il;!dy;a06e04fo,hXitizenWlToBr9u6;r3stomer6;! representat6;ive;e3it6;ic;lJmGnAord9rpor1Nu7w6;boy,ork0;n6ri0;ciTte1Q;in3;fidantAgressSs9t6;e0Kr6;ibut1o6;ll0;tab13ul1O;!e;edi2m6pos0rade;a0EeQissi6;on0;leag8on7um6;ni5;el;ue;e6own;an0r6;ic,k;!s;a9e7i6um;ld;erle6f;ad0;ir7nce6plFract0;ll1;m2wI;lebri6o;ty;dBptAr6shi0;e7pe6;nt0;r,t6;ak0;ain;et;aMeLiJlogg0oErBu6;dd0Fild0rgl9siness6;m2p7w6;om2;ers05;ar;i7o6;!k0th0;cklay0de,gadi0;hemi2oge8y6;!frie6;nd;ym2;an;cyc6sR;li5;atbox0ings;by,nk0r6;b0on7te6;nd0;!e07;c04dWge4nQpLrHsFtAu7yatull6;ah;nt7t6;h1oG;!ie;h8t6;e6orney;nda4;ie5le6;te;sis00tron6;aut,om0;chbis8isto7tis6;an,t;crU;hop;ost9p6;ari6rentiS;ti6;on;le;a9cest1im3nou8y6;bo6;dy;nc0;ly5rc6;hi5;mi8v6;entur0is1;er;ni7r6;al;str3;at1;or;counBquaintanArob9t6;ivi5or,re6;ss;st;at;ce;ta4;nt","Adj|Noun":"trueยฆ0:16;a1Db17c0Ud0Re0Mf0Dg0Ah08i06ju05l02mWnUoSpNrIsBt7u4v1watershed;a1ision0Z;gabo4nilla,ria1;b0Vnt;ndergr1pstairs;adua14ou1;nd;a3e1oken,ri0;en,r1;min0rori13;boo,n;age,e5ilv0Flack,o3quat,ta2u1well;bordina0Xper5;b0Lndard;ciali0Yl1vereign;e,ve16;cret,n1ri0;ior;a4e2ou1ubbiL;nd,tiY;ar,bBl0Wnt0p1side11;resent0Vublican;ci0Qsh;a4eriodic0last0Zotenti0r1;emi2incip0o1;!fession0;er,um;rall4st,tie0U;ff1pposi0Hv0;ens0Oi0C;agg01ov1uts;el;a5e3iniatJo1;bi01der07r1;al,t0;di1tr0N;an,um;le,riG;attOi2u1;sh;ber0ght,qC;stice,veniT;de0mpressioYn1;cumbe0Edividu0no0Dsta0Eterim;alf,o1umdrum;bby,melF;en2old,ra1;ph0Bve;er0ious;a7e5i4l3u1;git03t1;ure;uid;ne;llow,m1;aFiL;ir,t,vo1;riOuriO;l3p00x1;c1ecutUpeV;ess;d1iK;er;ar2e1;mographUrivO;k,l2;hiGlassSo2rude,unn1;ing;m5n1operK;creCstitueOte2vertab1;le;mpor1nt;ary;ic,m2p1;anion,lex;er2u1;ni8;ci0;al;e5lank,o4r1;i2u1;te;ef;ttom,urgeois;st;cadem9d6l2ntarct9r1;ab,ct8;e3tern1;at1;ive;rt;oles1ult;ce1;nt;ic","Adj|Past":"trueยฆ0:4Q;1:4C;2:4H;3:4E;a44b3Tc36d2Je29f20g1Wh1Si1Jj1Gkno1Fl1Am15n12o0Xp0Mqu0Kr08sLtEuAv9w4yellow0;a7ea6o4rinkl0;r4u3Y;n,ri0;k31th3;rp0sh0tZ;ari0e1O;n5p4s0;d1li1Rset;cov3derstood,i4;fi0t0;a8e3Rhr7i6ouTr4urn0wi4C;a4imm0ou2G;ck0in0pp0;ed,r0;eat2Qi37;m0nn0r4;get0ni2T;aOcKeIhGimFm0Hoak0pDt7u4;bsid3Ogge44s4;pe4ta2Y;ct0nd0;a8e7i2Eok0r5u4;ff0mp0nn0;ength2Hip4;ed,p0;am0reotyp0;in0t0;eci4ik0oH;al3Efi0;pRul1;a4ock0ut;d0r0;a4c1Jle2t31;l0s3Ut0;a6or5r4;at4e25;ch0;r0tt3;t4ut0;is2Mur1;aEe5o4;tt0;cAdJf2Bg9je2l8m0Knew0p7qu6s4;eTpe2t4;or0ri2;e3Dir0;e1lac0;at0e2Q;i0Rul1;eiv0o4ycl0;mme2Lrd0v3;in0lli0ti2A;a4ot0;li28;aCer30iBlAo9r5u4;mp0zzl0;e6i2Oo4;ce2Fd4lo1Anou30pos0te2v0;uc0;fe1CocCp0Iss0;i2Kli1L;ann0e2CuS;ck0erc0ss0;ck0i2Hr4st0;allLk0;bse7c6pp13rgan2Dver4;lo4whelm0;ok0;cupi0;rv0;aJe5o4;t0uri1A;ed0gle2;a6e5ix0o4ut0ys1N;di1Nt15u26;as0Clt0;n4rk0;ag0ufact0A;e6i5o4;ad0ck0st,v0;cens0m04st0;ft,v4;el0;tt0wn;a5o15u4;dg0s1B;gg0;llumSmpAn4sol1;br0cre1Ldebt0f8jZspir0t5v4;it0olv0;e4ox0Y;gr1n4re23;d0si15;e2l1o1Wuri1;li0o01r4;ov0;a6e1o4um03;ok0r4;ri0Z;mm3rm0;i6r5u4;a1Bid0;a0Ui0Rown;ft0;aAe9i8l6oc0Ir4;a4i0oz0Y;ctHg19m0;avo0Ju4;st3;ni08tt0x0;ar0;d0il0sc4;in1;dCl1mBn9quipp0s8x4;agger1c6p4te0T;a0Se4os0;ct0rie1D;it0;cap0tabliZ;cha0XgFha1As4;ur0;a0Zbarra0N;i0Buc1;aMeDi5r4;a01i0;gni08miniSre2s4;a9c6grun0Ft4;o4re0Hu17;rt0;iplWou4;nt0r4;ag0;bl0;cBdRf9l8p7ra6t5v4;elop0ot0;ail0ermQ;ng0;re07;ay0ight0;e4in0o0M;rr0;ay0enTor1;m5t0z4;ed,zl0;ag0p4;en0;aPeLhIlHo9r6u4;lt4r0stom03;iv1;a5owd0u4;sh0;ck0mp0;d0loAm7n4ok0v3;centr1f5s4troC;id3olid1;us0;b5pl4;ic1;in0;r0ur0;assi9os0utt3;ar5i4;ll0;g0m0;lebr1n6r4;ti4;fi0;tralJ;g0lcul1;aDewild3iCl9o7r5urn4;ed,t;ok4uis0;en;il0r0t4und;tl0;e5i4;nd0;ss0;as0;ffl0k0laMs0tt3;bPcNdKfIg0lFmaz0nDppBrm0ss9u5wa4;rd0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;a5leg0t3;er0;rm0;fe2;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;and5so4;rb0;on0;ed",Singular:"trueยฆ0:5I;1:5G;2:4V;3:4R;4:51;5:56;6:5K;a4Zb4Ic3Ld33e2Vf2Mg2Hh26in22j21k20l1Sm1Jn1Fo19p0Pqu0Or0DsXtKuFvAw7x r55yo yo;a7ha3No3O;f3i4Ot0Ey7;! arou37;arAe8ideo ga2Oo7;cabu4Gl59;gMr7t;di4Wt1W;iety,ni4M;n9p2Yr8s 7;do41s5B;bani1in0;coordinat38der7;estima1to22we3Z; rex,aIeHhFiDoCr9u8v7;! show;m2Mn2rntJto1B;agedy,ib7o4B;e,u7;n0ta43;ni1p2rq3J;c,er,m7;etD;ing7ree24;!y;am,mp3D;ct2le6x return;aLcKeIhor4NiHkFoEpin off,tBu9y7;ll7ner4Jst4Q;ab2V;b7i1n26per bowl,rro1V;st3Jtot0;at8ipe2Eo1Jrate4Fudent7;! lo0G;i37u1;ft ser4Imeo1G;elet5i7;ll,r3S;b36gn2Rte;ab2Hc7min39;t,urity gua2L;e6ho2W;bbatic0la3Gndwi0Opi5;av5eBhetor2i8o7;de6om,w;t8v7;erb2A;e,u0;bBc9f7publ2r0Yspi1;er7orm3;e6r0;i7ord label;p2Ft0;a1u43;estion mark,ot2D;aNeKhoJiGlEoCr8u7yram1D;ddi3EpCrpo1Hs3G;e9o7;bl3Ws7;pe3Gta1;dic1Pmi1Dp1Oroga3Sss relea1D;p7rt0;py;a7ebisci1;q2Bte;cn2e8g7;!gy;!r;ne call,tocoI;anut,d8r7t0yo1;cen3Gsp3H;al,est0;nop4r8t7;e,hog5;adi0Zi2S;atme0bj3Cc9pia1rde0thers,utspok5ve7wn3;n,r7;ti0Nview;cu8e7;an;pi3;ar9it8ot7umb3;a2Chi2O;e,ra1;cot2ra34;aDeAi8o7ur0;nopo4p16rni2Ksq1Pti33uld;c,li0Zn08s7tt5;chief,si31;d8nu,t7;al,i3;al,ic;gna1mm0nd13rsupi0te7yf4;ri0;aBegAi9u7;ddi1n7;ch;me,p07; 9e0K;bor12y7; 7er;up;eyno1itt5;el4ourn0;c9dices,itia2Kni22s8tel0Jvert7;eb1H;e25titu1;en2Hi2Q;aGeCighBo8u7;man right,s1Z;me7rmoDsp1Dtb0I;! r7;un; scho0WriW;a7i1K;d7v5; start,pho7;ne;ndful,sh brown,v5ze;a9elat0Glaci3r7ul4yp1P;an7enadi3id;a19d slam,ny;df4r7;l2ni1F;aEeti1EiDlu1oAr8un7;er0;ee market,i7onti3;ga1;l4ur7;so7;me;eNref4;br2mi4;conoDffi1Mgg,lecto0Pmbas1BnApidem2s1Wth2ven9x8yel7;id;ampXempl0Lte6;i16t;er1Iterp7;ri7;se;my;eJiCo9r7ump tru0R;agonf4i7;er,ve thru;c8g1Bi4or,ssi3wn7;side;to0CumenC;aCgniBnn3s8vide7;nd;conte6incen1Bp7tri0Y;osi7;tion;ta0E;le0U;ath9c8f7ni0terre6;ault 03err0;al,im0;!b7;ed;aUeRhKiJlHoBr7;edit ca9uc7;ib7;le;rd;efficBke,lAmmuniqJns8pi3rr0t0Uus7yo1;in;erv7uG;atoZ;ic,lO;ie6;er0Li7oth;e6n2;ty,vil wK;aBeqAick5oco9r7;istmas car7ysanthemum;ol;la1;ue;ndeli3racteri7;st2;i8llCr7;e0tifica1;liW;hi3nDpCrAt7ucus;erpi7hedr0;ll7;ar;!bohyd7ri3;ra1;it0;a7e,nib0;l,ry;aKeJiop2leHoFrBu7;nny,r7tterf4;g7i0;la7;ry;eak8i7;ck;fa7thro9;st;dy,ro7wl;ugh;mi7;sh;an,l4;nki8rri3;er;ng;cQdKlGnDppeti1rBs9tt2utop7;sy;ic;ce6pe7;ct;r7sen0;ay;ec8oma4ti8;ly;do1;i5l7;er7y;gy;en; hominBj8van7;tage;ec7;ti7;ve;em;cAe8qui7;tt0;ta1;te;i8ru0;al;de6;nt","Person|Noun":"trueยฆa0Eb07c03dWeUfQgOhLjHkiGlFmCnBolive,p7r4s3trini06v1wa0;ng,rd,tts;an,enus,iol0;a,et;ky,onPumm09;ay,e1o0uby;bin,d,se;ed,x;a2e1o0;l,tt04;aLnJ;dYge,tR;at,orm;a0eloW;t0x,ya;!s;a9eo,iH;ng,tP;a2e1o0;lGy;an,w3;de,smi4y;a0erb,iOolBuntR;ll,z0;el;ail,e0iLuy;ne;a1ern,i0lo;elds,nn;ith,n0;ny;a0dEmir,ula,ve;rl;a4e3i1j,ol0;ly;ck,x0;ie;an,ja;i0wn;sy;am,h0liff,rystal;a0in,ristian;mbers,ri0;ty;a4e3i2o,r0ud;an0ook;dy;ll;nedict,rg;k0nks;er;l0rt;fredo,ma","Actor|Verb":"trueยฆaCb8c5doctor,engineAfool,g3host,judge,m2nerd,p1recruit,scout,ushAvolunteAwi0;mp,tneA;arent,ilot;an,ime;eek,oof,r0uide;adu8oom;ha1o0;ach,nscript,ok;mpion,uffeur;o2u0;lly,tch0;er;ss;ddi1ffili0rchite1;ate;ct",MaleName:"trueยฆ0:H6;1:FZ;2:DS;3:GQ;4:CZ;5:FV;6:GM;7:FP;8:GW;9:ET;A:C2;B:GD;aF8bE1cCQdBMeASfA1g8Yh88i7Uj6Sk6Bl5Mm48n3So3Ip33qu31r26s1Et0Ru0Ov0CwTxSyHzC;aCor0;cChC1karia,nAT;!hDkC;!aF6;!ar7CeF5;aJevgenBSoEuC;en,rFVsCu3FvEF;if,uf;nDs6OusC;ouf,s6N;aCg;s,tC;an,h0;hli,nCrosE1ss09;is,nC;!iBU;avi2ho5;aPeNiDoCyaEL;jcieBJlfgang,odrFutR;lFnC;f8TsC;lCt1;ow;bGey,frEhe4QlC;aE5iCy;am,e,s;ed8iC;d,ed;eAur;i,ndeD2rn2sC;!l9t1;lDyC;l1ne;lDtC;!er;aCHy;aKernDAiFladDoC;jteB0lodymyr;!iC;mFQsDB;cFha0ktBZnceDrgCOvC;a0ek;!nC;t,zo;!e4StBV;lCnC7sily;!entC;in9J;ghE2lCm70nax,ri,sm0;riCyss87;ch,k;aWeRhNiLoGrEuDyC;!l2roEDs1;n6r6E;avD0eCist0oy,um0;ntCRvBKy;bFdAWmCny;!asDmCoharu;aFFie,y;!z;iA6y;mCt4;!my,othy;adEeoDia0SomC;!as;!dor91;!de4;dFrC;enBKrC;anBJeCy;ll,nBI;!dy;dgh,ha,iCnn2req,tsu5V;cDAka;aYcotWeThPiMlobod0oKpenc2tEurDvenAEyCzym1;ed,lvest2;aj,e9V;anFeDuC;!aA;fan17phEQvCwaA;e77ie;!islaCl9;v,w;lom1rBuC;leymaDHta;dDgmu9UlCm1yabonga;as,v8B;!dhart8Yn9;aEeClo75;lCrm0;d1t1;h9Jne,qu1Jun,wn,yne;aDbastiEDk2Yl5Mpp,rgCth,ymoCU;e1Dio;m4n;!tC;!ie,y;eDPlFmEnCq67tosCMul;dCj2UtiA5;e01ro;!iATkeB6mC4u5;!ik,vato9K;aZeUheC8iRoGuDyC;an,ou;b99dDf4peAssC;!elEG;ol00y;an,bLc7MdJel,geIh0lHmGnEry,sDyC;!ce;ar7Ocoe,s;!aCnBU;ld,n;an,eo;a7Ef;l7Jr;e3Eg2n9olfo,riC;go;bBNeDH;cCl9;ar87c86h54kCo;!ey,ie,y;cFeA3gDid,ubByCza;an8Ln06;g85iC;naC6s;ep;ch8Kfa5hHin2je8HlGmFndEoHpha5sDul,wi36yC;an,mo8O;h9Im4;alDSol3O;iD0on;f,ph;ul;e9CinC;cy,t1;aOeLhilJiFrCyoG;aDeC;m,st1;ka85v2O;eDoC;tr;r8GtC;er,ro;!ipCl6H;!p6U;dCLrcy,tC;ar,e9JrC;!o7;b9Udra8So9UscAHtri62ulCv8I;!ie,o7;ctav6Ji2lImHndrBRrGsDtCum6wB;is,to;aDc6k6m0vCwaBE;al79;ma;i,vR;ar,er;aDeksandr,ivC;er,i2;f,v;aNeLguyBiFoCu3O;aDel,j4l0ma0rC;beAm0;h,m;cFels,g5i9EkDlC;es,s;!au,h96l78olaC;!i,y;hCkCol76;ol75;al,d,il,ls1vC;ilAF;hom,tC;e,hC;anCy;!a5i5;aYeViLoGuDyC;l4Nr1;hamDr84staC;fa,p6E;ed,mG;di10e,hamEis4JntDritz,sCussa;es,he;e,y;ad,ed,mC;ad,ed;cGgu5hai,kFlEnDtchC;!e8O;a9Pik;house,o7t1;ae73eC3ha8Iolaj;ah,hDkC;!ey,y;aDeC;al,l;el,l;hDlv3rC;le,ri8Ev4T;di,met;ay0c00gn4hWjd,ks2NlTmadZnSrKsXtDuric7VxC;imilBKwe8B;eHhEi69tCus,y69;!eo,hCia7;ew,i67;eDiC;as,eu,s;us,w;j,o;cHiGkFlEqu8Qsha83tCv3;iCy;!m,n;in,on;el,o7us;a6Yo7us;!elCin,o7us;!l8o;frAEi5Zny,u5;achDcoCik;lm;ai,y;amDdi,e5VmC;oud;adCm6W;ou;aulCi9P;ay;aWeOiMloyd,oJuDyC;le,nd1;cFdEiDkCth2uk;a7e;gi,s,z;ov7Cv6Hw6H;!as,iC;a6Een;g0nn52renDuCvA4we7D;!iS;!zo;am,n4oC;n5r;a9Yevi,la5KnHoFst2thaEvC;eCi;nte;bo;nCpo8V;!a82el,id;!nC;aAy;mEnd1rDsz73urenCwr6K;ce,t;ry,s;ar,beAont;aOeIhalHiFla4onr63rDu5SylC;e,s;istCzysztof;i0oph2;er0ngsl9p,rC;ilA9k,ollos;ed,id;en0iGnDrmCv4Z;it;!dDnCt1;e2Ny;ri4Z;r,th;cp2j4mEna8BrDsp6them,uC;ri;im,l;al,il;a03eXiVoFuC;an,lCst3;en,iC;an,en,o,us;aQeOhKkub4AnIrGsDzC;ef;eDhCi9Wue;!ua;!f,ph;dCge;i,on;!aCny;h,s,th6J;anDnC;!ath6Hie,n72;!nC;!es;!l,sCy;ph;o,qu3;an,mC;!i,m6V;d,ffFns,rCs4;a7JemDmai7QoCry;me,ni1H;i9Dy;!e73rC;ey,y;cKdBkImHrEsDvi2yC;dBs1;on,p2;ed,oDrCv67;e6Qod;d,s61;al,es5Wis1;a,e,oCub;b,v;ob,qu13;aTbNchiMgLke53lija,nuKonut,rIsEtCv0;ai,suC;ki;aDha0i8XmaCsac;el,il;ac,iaC;h,s;a,vinCw3;!g;k,nngu6X;nac1Xor;ka;ai,rahC;im;aReLoIuCyd6;beAgGmFsC;eyDsC;a3e3;in,n;ber5W;h,o;m2raDsse3wC;a5Pie;c49t1K;a0Qct3XiGnDrC;beAman08;dr7VrC;iCy2N;!k,q1R;n0Tt3S;bKlJmza,nIo,rEsDyC;a5KdB;an,s0;lEo67r2IuCv9;hi5Hki,tC;a,o;an,ey;k,s;!im;ib;a08e00iUlenToQrMuCyorgy;iHnFsC;!taC;f,vC;!e,o;n6tC;er,h2;do,lC;herDlC;auCerQ;me;aEegCov2;!g,orC;!io,y;dy,h7C;dfr9nza3XrDttfC;ri6C;an,d47;!n;acoGlEno,oCuseppe;rgiCvan6O;!o,s;be6Ies,lC;es;mo;oFrC;aDha4HrC;it,y;ld,rd8;ffErgC;!e7iCy;!os;!r9;bElBrCv3;eCla1Nr4Hth,y;th;e,rC;e3YielC;!i4;aXeSiQlOorrest,rCyod2E;aHedFiC;edDtC;s,z;ri18;!d42eri11riC;ck,k;nCs2;cEkC;ie,lC;in,yn;esLisC;!co,z3M;etch2oC;ri0yd;d5lConn;ip;deriFliEng,rC;dinaCg4nan0B;nd8;pe,x;co;bCdi,hd;iEriC;ce,zC;io;an,en,o;benez2dZfrYit0lTmMnJo3rFsteb0th0ugenEvCymBzra;an,eCge4D;ns,re3K;!e;gi,iDnCrol,v3w3;est8ie,st;cCk;!h,k;o0DriCzo;co,qC;ue;aHerGiDmC;aGe3A;lCrh0;!iC;a10o,s;s1y;nu5;beAd1iEliDm2t1viCwood;n,s;ot28s;!as,j5Hot,sC;ha;a3en;!dGg6mFoDua2QwC;a2Pin;arC;do;oZuZ;ie;a04eTiOmitrNoFrag0uEwDylC;an,l0;ay3Hig4D;a3Gdl9nc0st3;minFnDri0ugCvydGy2S;!lF;!a36nCov0;e1Eie,y;go,iDykC;as;cCk;!k;i,y;armuFetDll1mitri7neCon,rk;sh;er,m6riC;ch;id;andLepak,j0lbeAmetri4nIon,rGsEvDwCxt2;ay30ey;en,in;hawn,moC;nd;ek,riC;ck;is,nC;is,y;rt;re;an,le,mKnIrEvC;e,iC;!d;en,iEne0PrCyl;eCin,yl;l45n;n,o,us;!iCny;el,lo;iCon;an,en,on;a0Fe0Ch03iar0lRoJrFuDyrC;il,us;rtC;!is;aEistC;iaCob12;no;ig;dy,lInErC;ey,neliCy;s,us;nEor,rDstaC;nt3;ad;or;by,e,in,l3t1;aHeEiCyde;fCnt,ve;fo0Xt1;menDt4;us;s,t;rFuDyC;!t1;dCs;e,io;enC;ce;aHeGrisC;!toC;phCs;!eC;!r;st2t;d,rCs;b5leC;s,y;cDdrCs6;ic;il;lHmFrC;ey,lDroCy;ll;!o7t1;er1iC;lo;!eb,v3;a09eZiVjorn,laUoSrEuCyr1;ddy,rtKst2;er;aKeFiEuDyC;an,ce,on;ce,no;an,ce;nDtC;!t;dDtC;!on;an,on;dFnC;dDisC;lav;en,on;!foOl9y;bby,gd0rCyd;is;i0Lke;bElDshC;al;al,lL;ek;nIrCshoi;at,nEtC;!raC;m,nd;aDhaCie;rd;rd8;!iDjam3nCs1;ie,y;to;kaMlazs,nHrC;n9rDtC;!holomew;eCy;tt;ey;dCeD;ar,iC;le;ar1Nb1Dd16fon15gust3hm12i0Zja0Yl0Bm07nTputsiSrGsaFugustEveDyCziz;a0kh0;ry;o,us;hi;aMchiKiJjun,mHnEon,tCy0;em,hCie,ur8;ur;aDoC;!ld;ud,v;aCin;an,nd8;!el,ki;baCe;ld;ta;aq;aMdHgel8tCw6;hoFoC;iDnC;!i8y;ne;ny;er7rCy;eDzC;ej;!as,i,j,s,w;!s;s,tolC;iCy;!y;ar,iEmaCos;nu5r;el;ne,r,t;aVbSdBeJfHiGl01onFphonsEt1vC;aPin;on;e,o;so,zo;!sR;!onZrC;ed;c,jaHksFssaHxC;!andC;er,rC;e,os,u;andCei;ar,er,r;ndC;ro;en;eDrecC;ht;rt8;dd3in,n,sC;taC;ir;ni;dDm6;ar;an,en;ad,eC;d,t;in;so;aGi,olErDvC;ik;ian8;f8ph;!o;mCn;!a;dGeFraDuC;!bakr,lfazl;hCm;am;!l;allFel,oulaye,ulC;!lDrahm0;an;ah,o;ah;av,on",Uncountable:"trueยฆ0:2E;1:2L;2:33;a2Ub2Lc29d22e1Rf1Ng1Eh16i11j0Yk0Wl0Rm0Hn0Do0Cp03rZsLt9uran2Jv7w3you gu0E;a5his17i4oo3;d,l;ldlife,ne;rm8t1;apor,ernacul29i3;neg28ol1Otae;eDhBiAo8r4un3yranny;a,gst1B;aff2Oea1Ko4ue nor3;th;o08u3;bleshoot2Ose1Tt;night,othpas1Vwn3;foEsfoE;me off,n;er3und1;e,mod2S;a,nnis;aDcCeBhAi9ki8o7p6t4u3weepstak0;g1Unshi2Hshi;ati08e3;am,el;ace2Keci0;ap,cc1meth2C;n,ttl0;lk;eep,ingl0or1C;lf,na1Gri0;ene1Kisso1C;d0Wfe2l4nd,t3;i0Iurn;m1Ut;abi0e4ic3;e,ke15;c3i01laxa11search;ogni10rea10;a9e8hys7luto,o5re3ut2;amble,mis0s3ten20;en1Zs0L;l3rk;i28l0EyH; 16i28;a24tr0F;nt3ti0M;i0s;bstetri24vercrowd1Qxyg09;a5e4owada3utella;ys;ptu1Ows;il poliZtional securi2;aAe8o5u3;m3s1H;ps;n3o1K;ey,o3;gamy;a3cha0Elancholy,rchandi1Htallurgy;sl0t;chine3g1Aj1Hrs,thema1Q; learn1Cry;aught1e6i5ogi4u3;ck,g12;c,s1M;ce,ghtn18nguis1LteratWv1;ath1isVss;ara0EindergartPn3;icke0Aowled0Y;e3upit1;a3llyfiGwel0G;ns;ce,gnor6mp5n3;forma00ter3;net,sta07;atiSort3rov;an18;a7e6isto09o3ung1;ckey,mework,ne4o3rseradi8spitali2use arrest;ky;s2y;adquarteXre;ir,libut,ppiHs3;hi3te;sh;ene8l6o5r3um,ymnas11;a3eZ;niUss;lf,re;ut3yce0F;en; 3ti0W;edit0Hpo3;ol;aNicFlour,o4urnit3;ure;od,rgive3uri1wl;ness;arCcono0LducaBlectr9n7quip8thi0Pvery6x3;ist4per3;ti0B;en0J;body,o08th07;joy3tertain3;ment;ici2o3;ni0H;tiS;nings,th;emi02i6o4raugh3ynas2;ts;pe,wnstai3;rs;abet0ce,s3;honZrepu3;te;aDelciChAivi07l8o3urrency;al,ld w6mmenta5n3ral,ttIuscoB;fusiHt 3;ed;ry;ar;assi01oth0;es;aos,e3;eMwK;us;d,rO;a8i6lood,owlHread5u3;ntGtt1;er;!th;lliarJs3;on;g3ss;ga3;ge;cKdviJeroGirFmBn6ppeal court,r4spi3thleL;rin;ithmet3sen3;ic;i6y3;o4th3;ing;ne;se;en5n3;es2;ty;ds;craft;bi8d3nau7;yna3;mi6;ce;id,ous3;ti3;cs",Infinitive:"trueยฆ0:9G;1:9T;2:AD;3:90;4:9Z;5:84;6:AH;7:A9;8:92;9:A0;A:AG;B:AI;C:9V;D:8R;E:8O;F:97;G:6H;H:7D;a94b8Hc7Jd68e4Zf4Mg4Gh4Ai3Qj3Nk3Kl3Bm34nou48o2Vp2Equ2Dr1Es0CtZuTvRwI;aOeNiLors5rI;eJiI;ng,te;ak,st3;d5e8TthI;draw,er;a2d,ep;i2ke,nIrn;d1t;aIie;liADniAry;nJpI;ho8Llift;cov1dJear8Hfound8DlIplug,rav82tie,ve94;eaAo3X;erIo;cut,go,staAFvalA3w2G;aSeQhNoMrIu73;aIe72;ffi3Smp3nsI;aBfo7CpI;i8oD;pp3ugh5;aJiJrIwaD;eat5i2;nk;aImA0;ch,se;ck3ilor,keImp1r8L;! paD;a0Ic0He0Fh0Bi0Al08mugg3n07o05p02qu01tUuLwI;aJeeIim;p,t5;ll7Wy;bNccMffLggeCmmKppJrI;mouFpa6Zvi2;o0re6Y;ari0on;er,i4;e7Numb;li9KmJsiIveD;de,st;er9it;aMe8MiKrI;ang3eIi2;ng27w;fIng;f5le;b,gg1rI;t3ve;a4AiA;a4UeJit,l7DoI;il,of;ak,nd;lIot7Kw;icEve;atGeak,i0O;aIi6;m,y;ft,ng,t;aKi6CoJriIun;nk,v6Q;ot,rt5;ke,rp5tt1;eIll,nd,que8Gv1w;!k,m;aven9ul8W;dd5tis1Iy;a0FeKiJoI;am,t,ut;d,p5;a0Ab08c06d05f01group,hea00iZjoi4lXmWnVpTq3MsOtMup,vI;amp,eJiIo3B;sEve;l,rI;e,t;i8rI;ie2ofE;eLiKpo8PtIurfa4;o24rI;aHiBuctu8;de,gn,st;mb3nt;el,hra0lIreseF;a4e71;d1ew,o07;aHe3Fo2;a7eFiIo6Jy;e2nq41ve;mbur0nf38;r0t;inKleBocus,rJuI;el,rbiA;aBeA;an4e;aBu4;ei2k8Bla43oIyc3;gni39nci3up,v1;oot,uI;ff;ct,d,liIp;se,ze;tt3viA;aAenGit,o7;aWerUinpoiFlumm1LoTrLuI;b47ke,niArIt;poDsuI;aFe;eMoI;cKd,fe4XhibEmo7noJpo0sp1tru6vI;e,i6o5L;un4;la3Nu8;aGclu6dJf1occupy,sup0JvI;a6BeF;etermi4TiB;aGllu7rtr5Ksse4Q;cei2fo4NiAmea7plex,sIva6;eve8iCua6;mp1rItrol,ve;a6It6E;bOccuNmEpMutLverIwe;l07sJtu6Yu0wI;helm;ee,h1F;gr5Cnu2Cpa4;era7i4Ipo0;py,r;ey,seItaH;r2ss;aMe0ViJoIultiply;leCu6Pw;micJnIspla4;ce,g3us;!k;iIke,na9;m,ntaH;aPeLiIo0u3N;ke,ng1quIv5;eIi6S;fy;aKnIss5;d,gI;th5;rn,ve;ng2Gu1N;eep,idnJnI;e4Cow;ap;oHuI;gg3xtaI;po0;gno8mVnIrk;cTdRfQgeChPitia7ju8q1CsNtKun6EvI;a6eIo11;nt,rt,st;erJimi6BoxiPrI;odu4u6;aBn,pr03ru6C;iCpi8tIu8;all,il,ruB;abEibE;eCo3Eu0;iIul9;ca7;i7lu6;b5Xmer0pI;aLer4Uin9ly,oJrI;e3Ais6Bo2;rt,se,veI;riA;le,rt;aLeKiIoiCuD;de,jaInd1;ck;ar,iT;mp1ng,pp5raIve;ng5Mss;ath1et,iMle27oLrI;aJeIow;et;b,pp3ze;!ve5A;gg3ve;aTer45i5RlSorMrJuI;lf4Cndrai0r48;eJiIolic;ght5;e0Qsh5;b3XeLfeEgJsI;a3Dee;eIi2;!t;clo0go,shIwa4Z;ad3F;att1ee,i36;lt1st5;a0OdEl0Mm0FnXquip,rWsVtGvTxI;aRcPeDhOiNpJtIu6;ing0Yol;eKi8lIo0un9;aHoI;it,re;ct,di7l;st,t;a3oDu3B;e30lI;a10u6;lt,mi28;alua7oI;ke,l2;chew,pou0tab19;a0u4U;aYcVdTfSgQhan4joy,lPqOrNsuMtKvI;e0YisI;a9i50;er,i4rI;aHenGuC;e,re;iGol0F;ui8;ar9iC;a9eIra2ulf;nd1;or4;ang1oIu8;r0w;irc3lo0ou0ErJuI;mb1;oaGy4D;b3ct;bKer9pI;hasiIow1;ze;aKody,rI;a4oiI;d1l;lm,rk;ap0eBuI;ci40de;rIt;ma0Rn;a0Re04iKo,rIwind3;aw,ed9oI;wn;agno0e,ff1g,mi2Kne,sLvI;eIul9;rIst;ge,t;aWbVcQlod9mant3pNru3TsMtI;iIoDu37;lJngI;uiA;!l;ol2ua6;eJlIo0ro2;a4ea0;n0r0;a2Xe36lKoIu0S;uIv1;ra9;aIo0;im;a3Kur0;b3rm;af5b01cVduBep5fUliTmQnOpMrLsiCtaGvI;eIol2;lop;ch;a20i2;aDiBloIoD;re,y;oIy;te,un4;eJoI;liA;an;mEv1;a4i0Ao06raud,y;ei2iMla8oKrI;ee,yI;!pt;de,mIup3;missi34po0;de,ma7ph1;aJrief,uI;g,nk;rk;mp5rk5uF;a0Dea0h0Ai09l08oKrIurta1G;a2ea7ipp3uI;mb3;ales4e04habEinci6ll03m00nIrro6;cXdUfQju8no7qu1sLtKvI;eIin4;ne,r9y;aHin2Bribu7;er2iLoli2Epi8tJuI;lt,me;itu7raH;in;d1st;eKiJoIroFu0;rm;de,gu8rm;ss;eJoI;ne;mn,n0;eIlu6ur;al,i2;buCe,men4pI;eIi3ly;l,te;eBi6u6;r4xiC;ean0iT;rcumveFte;eJirp,oI;o0p;riAw;ncIre5t1ulk;el;a02eSi6lQoPrKuI;iXrIy;st,y;aLeaKiJoad5;en;ng;stfeLtX;ke;il,l11mba0WrrMth1;eIow;ed;!coQfrie1LgPhMliLqueaKstJtrIwild1;ay;ow;th;e2tt3;a2eJoI;ld;ad;!in,ui3;me;bysEckfi8ff3tI;he;b15c0Rd0Iff0Ggree,l0Cm09n03ppZrXsQttOuMvJwaE;it;eDoI;id;rt;gIto0X;meF;aIeCraB;ch,in;pi8sJtoI;niA;aKeIi04u8;mb3rt,ss;le;il;re;g0Hi0ou0rI;an9i2;eaKly,oiFrI;ai0o2;nt;r,se;aMi0GnJtI;icipa7;eJoIul;un4y;al;ly0;aJu0;se;lga08ze;iKlI;e9oIu6;t,w;gn;ix,oI;rd;a03jNmiKoJsoI;rb;pt,rn;niIt;st1;er;ouJuC;st;rn;cLhie2knowled9quiItiva7;es4re;ce;ge;eQliOoKrJusI;e,tom;ue;mIst;moJpI;any,liA;da7;ma7;te;pt;andPduBet,i6oKsI;coKol2;ve;liArt,uI;nd;sh;de;ct;on",Person:"trueยฆ0:1Q;a29b1Zc1Md1Ee18f15g13h0Ri0Qj0Nk0Jl0Gm09n06o05p00rPsItCusain bolt,v9w4xzibit,y1;anni,oko on2uji,v1;an,es;en,o;a3ednesday adams,i2o1;lfram,o0Q;ll ferrell,z khalifa;lt disn1Qr1;hol,r0G;a2i1oltai06;n dies0Zrginia wo17;lentino rossi,n goG;a4h3i2ripp,u1yra banks;lZpac shakur;ger woods,mba07;eresa may,or;kashi,t1ylor;um,ya1B;a5carlett johanss0h4i3lobodan milosevic,no2ocr1Lpider1uperm0Fwami; m0Em0E;op dogg,w whi1H;egfried,nbad;akespeaTerlock holm1Sia labeouf;ddam hussa16nt1;a cla11ig9;aAe6i5o3u1za;mi,n dmc,paul,sh limbau1;gh;bin hood,d stew16nald1thko;in0Mo;han0Yngo starr,valdo;ese witherspo0i1mbrandt;ll2nh1;old;ey,y;chmaninoff,ffi,iJshid,y roma1H;a4e3i2la16o1uff daddy;cahont0Ie;lar,p19;le,rZ;lm17ris hilt0;leg,prah winfr0Sra;a2e1iles cra1Bostradam0J; yo,l5tt06wmQ;pole0s;a5e4i2o1ubar03;by,lie5net,rriss0N;randa ju1tt romn0M;ly;rl0GssiaB;cklemo1rkov,s0ta hari,ya angelou;re;ady gaga,e1ibera0Pu;bron jam0Xch wale1e;sa;anye west,e3i1obe bryant;d cudi,efer suther1;la0P;ats,sha;a2effers0fk,k rowling,rr tolki1;en;ck the ripp0Mwaharlal nehru,y z;liTnez,ron m7;a7e5i3u1;lk hog5mphrey1sa01;! bog05;l1tl0H;de; m1dwig,nry 4;an;ile selassFlle ber4m3rrison1;! 1;ford;id,mo09;ry;ast0iannis,o1;odwPtye;ergus0lorence nightinga08r1;an1ederic chopN;s,z;ff5m2nya,ustaXzeki1;el;eril lagasse,i1;le zatop1nem;ek;ie;a6e4i2octor w1rake;ho;ck w1ego maradoC;olf;g1mi lovaOnzel washingt0;as;l1nHrth vadR;ai lNt0;a8h5lint0o1thulhu;n1olio;an,fuci1;us;on;aucKop2ristian baMy1;na;in;millo,ptain beefhe4r1;dinal wols2son1;! palmF;ey;art;a8e5hatt,i3oHro1;ck,n1;te;ll g1ng crosby;atB;ck,nazir bhut2rtil,yon1;ce;to;nksy,rack ob1;ama;l 6r3shton kutch2vril lavig8yn ra1;nd;er;chimed2istot1;le;es;capo2paci1;no;ne",Adjective:"trueยฆ0:AI;1:BS;2:BI;3:BA;4:A8;5:84;6:AV;7:AN;8:AF;9:7H;A:BQ;B:AY;C:BC;D:BH;E:9Y;aA2b9Ec8Fd7We79f6Ng6Eh61i4Xj4Wk4Tl4Im41n3Po36p2Oquart7Pr2Ds1Dt14uSvOwFye29;aMeKhIiHoF;man5oFrth7G;dADzy;despreB1n w97s86;acked1UoleF;!sa6;ather1PeFll o70ste1D;!k5;nt1Ist6Ate4;aHeGiFola5T;bBUce versa,gi3Lle;ng67rsa5R;ca1gBSluAV;lt0PnLpHrGsFttermoBL;ef9Ku3;b96ge1; Hb32pGsFtiAH;ca6ide d4R;er,i85;f52to da2;a0Fbeco0Hc0Bd04e02f01gu1XheaBGiXkn4OmUnTopp06pRrNsJtHus0wF;aFiel3K;nt0rra0P;app0eXoF;ld,uS;eHi37o5ApGuF;perv06spec39;e1ok9O;en,ttl0;eFu5;cogn06gul2RlGqu84sF;erv0olv0;at0en33;aFrecede0E;id,rallel0;am0otic0;aFet;rri0tF;ch0;nFq26vers3;sur0terFv7U;eFrupt0;st0;air,inish0orese98;mploy0n7Ov97xpF;ect0lain0;eHisFocume01ue;clFput0;os0;cid0rF;!a8Scov9ha8Jlyi8nea8Gprivileg0sMwF;aFei9I;t9y;hGircumcFonvin2U;is0;aFeck0;lleng0rt0;b20ppea85ssuGttend0uthorF;iz0;mi8;i4Ara;aLeIhoHip 25oGrF;anspare1encha1i2;geth9leADp notch,rpB;rny,ugh6H;ena8DmpGrFs6U;r49tia4;eCo8P;leFst4M;nt0;a0Dc09e07h06i04ki03l01mug,nobbi4XoVpRqueami4XtKuFymb94;bHccinAi generis,pFr5;erFre7N;! dup9b,vi70;du0li7Lp6IsFurb7J;eq9Atanda9X;aKeJi16o2QrGubboFy4Q;rn;aightFin5GungS; fFfF;or7V;adfa9Pri6;lwa6Ftu82;arHeGir6NlendBot Fry;on;c3Qe1S;k5se; call0lImb9phistic16rHuFviV;ndFth1B;proof;dBry;dFub6; o2A;e60ipF;pe4shod;ll0n d7R;g2HnF;ceEg6ist9;am3Se9;co1Zem5lfFn6Are7; suf4Xi43;aGholFient3A;ar5;rlFt4A;et;cr0me,tisfac7F;aOeIheumatoBiGoF;bu8Ztt7Gy3;ghtFv3; 1Sf6X;cJdu8PlInown0pro69sGtF;ard0;is47oF;lu2na1;e1Suc45;alcit8Xe1ondi2;bBci3mpa1;aSePicayu7laOoNrGuF;bl7Tnjabi;eKiIoF;b7VfGmi49pFxi2M;er,ort81;a7uD;maFor,sti7va2;!ry;ciDexis0Ima2CpaB;in55puli8G;cBid;ac2Ynt 3IrFti2;ma40tFv7W;!i3Z;i2YrFss7R;anoBtF; 5XiF;al,s5V;bSffQkPld OnMrLth9utKverF;!aIbMdHhGni75seas,t,wF;ei74rou74;a63e7A;ue;ll;do1Ger,si6A;d3Qg2Aotu5Z; bFbFe on o7g3Uli7;oa80;fashion0school;!ay; gua7XbFha5Uli7;eat;eHligGsF;ce7er0So1C;at0;diFse;a1e1;aOeNiMoGuF;anc0de; moEnHrthFt6V;!eFwe7L;a7Krn;chaGdescri7Iprof30sF;top;la1;ght5;arby,cessa4ighbor5wlyw0xt;k0usiaFv3;ti8;aQeNiLoHuF;dIltiF;facet0p6;deHlGnFot,rbBst;ochro4Xth5;dy;rn,st;ddle ag0nF;dbloZi,or;ag9diocEga,naGrFtropolit4Q;e,ry;ci8;cIgenta,inHj0Fkeshift,mmGnFri4Oscu61ver18;da5Dy;ali4Lo4U;!stream;abEho;aOeLiIoFumberi8;ngFuti1R;stan3RtF;erm,i4H;ghtGteraF;l,ry,te;heart0wei5O;ft JgFss9th3;al,eFi0M;nda4;nguBps0te5;apGind5noF;wi8;ut;ad0itte4uniW;ce co0Hgno6Mll0Cm04nHpso 2UrF;a2releF;va1; ZaYcoWdReQfOgrNhibi4Ri05nMoLsHtFvalu5M;aAeF;nDrdepe2K;a7iGolFuboI;ub6ve1;de,gF;nifica1;rdi5N;a2er;own;eriIiLluenVrF;ar0eq5H;pt,rt;eHiGoFul1O;or;e,reA;fiFpe26termi5E;ni2;mpFnsideCrreA;le2;ccuCdeq5Ene,ppr4J;fFsitu,vitro;ro1;mJpF;arHeGl15oFrop9;li2r11;n2LrfeA;ti3;aGeFi18;d4BnD;tuE;egGiF;c0YteC;al,iF;tiF;ma2;ld;aOelNiLoFuma7;a4meInHrrGsFur5;ti6;if4E;e58o3U; ma3GsF;ick;ghfalut2HspF;an49;li00pf33;i4llow0ndGrdFtM; 05coEworki8;sy,y;aLener44iga3Blob3oKrGuF;il1Nng ho;aFea1Fizzl0;cGtF;ef2Vis;ef2U;ld3Aod;iFuc2D;nf2R;aVeSiQlOoJrF;aGeFil5ug3;q43tf2O;gFnt3S;i6ra1;lk13oHrF; keeps,eFge0Vm9tu41;g0Ei2Ds3R;liF;sh;ag4Mowe4uF;e1or45;e4nF;al,i2;d Gmini7rF;ti6ve1;up;bl0lDmIr Fst pac0ux;oGreacF;hi8;ff;ed,ili0R;aXfVlTmQnOqu3rMthere3veryday,xF;aApIquisi2traHuF;be48lF;ta1;!va2L;edRlF;icF;it;eAstF;whi6; Famor0ough,tiE;rou2sui2;erGiF;ne1;ge1;dFe2Aoq34;er5;ficF;ie1;g9sF;t,ygF;oi8;er;aWeMiHoGrFue;ea4owY;ci6mina1ne,r31ti8ubQ;dact2Jfficult,m,sGverF;ge1se;creGePjoi1paCtF;a1inA;et,te; Nadp0WceMfiLgeneCliJmuEpeIreliAsGvoF;id,ut;pFtitu2ul1L;eCoF;nde1;ca2ghF;tf13;a1ni2;as0;facto;i5ngero0I;ar0Ce09h07i06l05oOrIuF;rmudgeon5stoma4teF;sy;ly;aIeHu1EystalF; cleFli7;ar;epy;fFv17z0;ty;erUgTloSmPnGrpoCunterclVveFy;rt;cLdJgr21jIsHtrF;aFi2;dic0Yry;eq1Yta1;oi1ug3;escenFuN;di8;a1QeFiD;it0;atoDmensuCpF;ass1SulF;so4;ni3ss3;e1niza1;ci1J;ockwiD;rcumspeAvil;eFintzy;e4wy;leGrtaF;in;ba2;diac,ef00;a00ePiLliJoGrFuck nak0;and new,isk,on22;gGldface,naF; fi05fi05;us;nd,tF;he;gGpartisFzarE;an;tiF;me;autifOhiNlLnHsFyoN;iWtselF;li8;eGiFt;gn;aFfi03;th;at0oF;v0w;nd;ul;ckwards,rF;e,rT; priori,b13c0Zd0Tf0Ng0Ihe0Hl09mp6nt06pZrTsQttracti0MuLvIwF;aGkF;wa1B;ke,re;ant garGeraF;ge;de;diIsteEtF;heFoimmu7;nt07;re;to4;hGlFtu2;eep;en;bitIchiv3roHtF;ifiFsy;ci3;ga1;ra4;ry;pFt;aHetizi8rF;oprF;ia2;llFre1;ed,i8;ng;iquFsy;at0e;ed;cohKiJkaHl,oGriFterX;ght;ne,of;li7;ne;ke,ve;olF;ic;ad;ain07gressiIi6rF;eeF;ab6;le;ve;fGraB;id;ectGlF;ue1;ioF;na2; JaIeGvF;erD;pt,qF;ua2;ma1;hoc,infinitum;cuCquiGtu3u2;al;esce1;ra2;erSjeAlPoNrKsGuF;nda1;e1olu2trF;aAuD;se;te;eaGuF;pt;st;aFve;rd;aFe;ze;ct;ra1;nt",Pronoun:"trueยฆelle,h3i2me,she,th0us,we,you;e0ou;e,m,y;!l,t;e,im",Preposition:"trueยฆaPbMcLdKexcept,fIinGmid,notwithstandiWoDpXqua,sCt7u4v2w0;/o,hereSith0;! whHin,oW;ersus,i0;a,s a vis;n1p0;!on;like,til;h1ill,oward0;!s;an,ereby,r0;ough0u;!oM;ans,ince,o that,uch G;f1n0ut;!to;!f;! 0to;effect,part;or,r0;om;espite,own,u3;hez,irca;ar1e0oBy;sides,tween;ri7;bo8cross,ft7lo6m4propos,round,s1t0;!op;! 0;a whole,long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"trueยฆ0:18;1:1E;2:1D;3:14;a1Db15c0Sd0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Am01new UoRpKqueens parkJreal salt lake,sBt6utah jazz,vancouver whitecaps,w4yW;ashington 4h10;natio1Mredski2wizar0W;ampa bay 7e6o4;ronto 4ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasD;buccanee0ra0K;a8eattle 6porting kansas0Wt4; louis 4oke0V;c1Drams;marine0s4;eah13ounH;cramento Rn 4;antonio spu0diego 4francisco gJjose earthquak1;char08paB; ran07;a9h6ittsburgh 5ortland t4;imbe0rail blaze0;pirat1steele0;il4oenix su2;adelphia 4li1;eagl1philNunE;dr1;akland 4klahoma city thunder,rlando magic;athle0Lrai4;de0;england 8orleans 7york 4;g5je3knYme3red bul0Xy4;anke1;ian3;pelica2sain3;patrio3revolut4;ion;anchEeAi4ontreal impact;ami 8lwaukee b7nnesota 4;t5vi4;kings;imberwolv1wi2;rewe0uc0J;dolphi2heat,marli2;mphis grizz4ts;li1;a6eic5os angeles 4;clippe0dodFlaB;esterV; galaxy,ke0;ansas city 4nF;chiefs,roya0D; pace0polis col3;astr05dynamo,rocke3texa2;olden state warrio0reen bay pac4;ke0;allas 8e4i04od6;nver 6troit 4;lio2pisto2ti4;ge0;broncYnugge3;cowbo5maver4;icZ;ys;arEelLhAincinnati 8leveland 6ol4;orado r4umbus crew sc;api7ocki1;brow2cavalie0guar4in4;dia2;bengaVre4;ds;arlotte horAicago 4;b5cubs,fire,wh4;iteB;ea0ulQ;diff4olina panthe0; city;altimore Alackburn rove0oston 6rooklyn 4uffalo bilN;ne3;ts;cel5red4; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 4;brav1falco2h4;awA;ns;es;on villa,r4;os;c6di4;amondbac4;ks;ardi4;na4;ls",Unit:"trueยฆa07b04cXdWexVfTgRhePinYjoule0BkMlJmDnan08oCp9quart0Bsq ft,t7volts,w6y2ze3ยฐ1ยต0;g,s;c,f,n;dVear1o0;ttR; 0s 0;old;att,b;erNon0;!ne02;ascals,e1i0;cXnt00;rcent,tJ;hms,unceY;/s,e4i0mยฒ,ยฒ,ยณ;/h,cro2l0;e0liK;!ยฒ;grLsR;gCtJ;it1u0;menQx;erPreP;b5elvins,ilo1m0notO;/h,ph,ยฒ;!byGgrEmCs;ct0rtzL;aJogrC;allonJb0ig3rB;ps;a0emtEl oz,t4;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;ยฒ,ยณ;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s","Noun|Gerund":"trueยฆ0:3O;1:3M;2:3N;3:3D;4:32;5:2V;6:3E;7:3K;8:36;9:3J;A:3B;a3Pb37c2Jd27e23f1Vg1Sh1Mi1Ij1Gk1Dl18m13n11o0Wp0Pques0Sr0EsTtNunderMvKwFyDzB;eroi0oB;ni0o3P;aw2eB;ar2l3;aEed4hispe5i5oCrB;ap8est3i1;n0ErB;ki0r31;i1r2s9tc9;isualizi0oB;lunt1Vti0;stan4ta6;aFeDhin6iCraBy8;c6di0i2vel1M;mi0p8;aBs1;c9si0;l6n2s1;aUcReQhOiMkatKl2Wmo6nowJpeItFuCwB;ea5im37;b35f0FrB;fi0vB;e2Mi2J;aAoryt1KrCuB;d2KfS;etc9ugg3;l3n4;bCi0;ebBi0;oar4;gnBnAt1;a3i0;ip8oB;p8rte2u1;a1r27t1;hCo5reBulp1;a2Qe2;edu3oo3;i3yi0;aKeEi4oCuB;li0n2;oBwi0;fi0;aFcEhear7laxi0nDpor1sB;pon4tructB;r2Iu5;de5;or4yc3;di0so2;p8ti0;aFeacek20laEoCrBublis9;a1Teten4in1oces7;iso2siB;tio2;n2yi0;ckaAin1rB;ki0t1O;fEpeDrganiCvB;erco24ula1;si0zi0;ni0ra1;fe5;avi0QeBur7;gotia1twor6;aDeCi2oB;de3nito5;a2dita1e1ssaA;int0XnBrke1;ifUufactu5;aEeaDiBodAyi0;cen7f1mi1stB;e2i0;r2si0;n4ug9;iCnB;ea4it1;c6l3;ogAuB;dAgg3stif12;ci0llust0VmDnBro2;nova1sp0NterBven1;ac1vie02;agi2plo4;aDea1iCoBun1;l4w3;ki0ri0;nd3rB;roWvB;es1;aCene0Lli4rBui4;ee1ie0N;rde2the5;aHeGiDlCorBros1un4;e0Pmat1;ir1oo4;gh1lCnBs9;anZdi0;i0li0;e3nX;r0Zscina1;a1du01nCxB;erci7plo5;chan1di0ginB;ee5;aLeHiGoub1rCum8wB;el3;aDeCiB;bb3n6vi0;a0Qs7;wi0;rTscoDvi0;ba1coZlBvelo8;eCiB;ve5;ga1;nGti0;aVelebUhSlPoDrBur3yc3;aBos7yi0;f1w3;aLdi0lJmFnBo6pi0ve5;dDsCvinB;ci0;trBul1;uc1;muniDpB;lBo7;ai2;ca1;lBo5;ec1;c9ti0;ap8eaCimToBubT;ni0t9;ni0ri0;aBee5;n1t1;ra1;m8rCs1te5;ri0;vi0;aPeNitMlLoGrDuB;dge1il4llBr8;yi0;an4eat9oadB;cas1;di0;a1mEokB;i0kB;ee8;pi0;bi0;es7oa1;c9i0;gin2lonAt1;gi0;bysit1c6ki0tt3;li0;ki0;bando2cGdverti7gi0pproac9rgDssuCtB;trac1;mi0;ui0;hi0;si0;coun1ti0;ti0;ni0;ng",PhrasalVerb:"trueยฆ0:92;1:96;2:8H;3:8V;4:8A;5:83;6:85;7:98;8:90;9:8G;A:8X;B:8R;C:8U;D:8S;E:70;F:97;G:8Y;H:81;I:7H;J:79;a9Fb7Uc6Rd6Le6Jf5Ig50h4Biron0j47k40l3Em31n2Yo2Wp2Cquiet Hr1Xs0KtZuXvacuu6QwNyammerBzK;ero Dip LonK;e0k0;by,ov9up;aQeMhLiKor0Mrit19;mp0n3Fpe0r5s5;ackAeel Di0S;aLiKn33;gh 3Wrd0;n Dr K;do1in,oJ;it 79k5lk Lrm 69sh Kt83v60;aw3do1o7up;aw3in,oC;rgeBsK;e 2herE;a00eYhViRoQrMuKypP;ckErn K;do1in,oJup;aLiKot0y 30;ckl7Zp F;ck HdK;e 5Y;n7Wp 3Es5K;ck MdLe Kghten 6me0p o0Rre0;aw3ba4do1in,up;e Iy 2;by,oG;ink Lrow K;aw3ba4in,up;ba4ov9up;aKe 77ll62;m 2r 5M;ckBke Llk K;ov9shit,u47;aKba4do1in,leave,o4Dup;ba4ft9pa69w3;a0Vc0Te0Mh0Ii0Fl09m08n07o06p01quar5GtQuOwK;earMiK;ngLtch K;aw3ba4o8K; by;cKi6Bm 2ss0;k 64;aReQiPoNrKud35;aigh2Det75iK;ke 7Sng K;al6Yup;p Krm2F;by,in,oG;c3Ln3Lr 2tc4O;p F;c3Jmp0nd LrKveAy 2O;e Ht 2L;ba4do1up;ar3GeNiMlLrKurB;ead0ingBuc5;a49it 6H;c5ll o3Cn 2;ak Fe1Xll0;a3Bber 2rt0und like;ap 5Vow Duggl5;ash 6Noke0;eep NiKow 6;cLp K;o6Dup;e 68;in,oK;ff,v9;de19gn 4NnKt 6Gz5;gKkE; al6Ale0;aMoKu5W;ot Kut0w 7M;aw3ba4f48oC;c2WdeEk6EveA;e Pll1Nnd Orv5tK; Ktl5J;do1foLin,o7upK;!on;ot,r5Z;aw3ba4do1in,o33up;oCto;al66out0rK;ap65ew 6J;ilAv5;aXeUiSoOuK;b 5Yle0n Kstl5;aLba4do1inKo2Ith4Nu5P;!to;c2Xr8w3;ll Mot LpeAuK;g3Ind17;a2Wf3Po7;ar8in,o7up;ng 68p oKs5;ff,p18;aKelAinEnt0;c6Hd K;o4Dup;c27t0;aZeYiWlToQrOsyc35uK;ll Mn5Kt K;aKba4do1in,oJto47up;pa4Dw3;a3Jdo1in,o21to45up;attleBess KiNop 2;ah2Fon;iLp Kr4Zu1Gwer 6N;do1in,o6Nup;nt0;aLuK;gEmp 6;ce u20y 6D;ck Kg0le 4An 6p5B;oJup;el 5NncilE;c53ir 39n0ss MtLy K;ba4oG; Hc2R;aw3ba4in,oJ;pKw4Y;e4Xt D;aLerd0oK;dAt53;il Hrrow H;aTeQiPoLuK;ddl5ll I;c1FnkeyMp 6uthAve K;aKdo1in,o4Lup;l4Nw3; wi4K;ss0x 2;asur5e3SlLss K;a21up;t 6;ke Ln 6rKs2Ax0;k 6ryA;do,fun,oCsure,up;a02eViQoLuK;ck0st I;aNc4Fg MoKse0;k Kse4D;aft9ba4do1forw37in56o0Zu46;in,oJ;d 6;e NghtMnLsKve 00;ten F;e 2k 2; 2e46;ar8do1in;aMt LvelK; oC;do1go,in,o7up;nEve K;in,oK;pKut;en;c5p 2sh LtchBughAy K;do1o59;in4Po7;eMick Lnock K;do1oCup;oCup;eLy K;in,up;l Ip K;aw3ba4do1f04in,oJto,up;aMoLuK;ic5mpE;ke3St H;c43zz 2;a01eWiToPuK;nLrrKsh 6;y 2;keLt K;ar8do1;r H;lKneErse3K;d Ke 2;ba4dKfast,o0Cup;ear,o1;de Lt K;ba4on,up;aw3o7;aKlp0;d Ml Ir Kt 2;fKof;rom;f11in,o03uW;cPm 2nLsh0ve Kz2P;at,it,to;d Lg KkerP;do1in,o2Tup;do1in,oK;ut,v9;k 2;aZeTive Rloss IoMrLunK; f0S;ab hold,in43ow 2U; Kof 2I;aMb1Mit,oLr8th1IuK;nd9;ff,n,v9;bo7ft9hQw3;aw3bKdo1in,oJrise,up,w3;a4ir2H;ar 6ek0t K;aLb1Fdo1in,oKr8up;ff,n,ut,v9;cLhKl2Fr8t,w3;ead;ross;d aKng 2;bo7;a0Ee07iYlUoQrMuK;ck Ke2N;ar8up;eLighten KownBy 2;aw3oG;eKshe27; 2z5;g 2lMol Krk I;aKwi20;bo7r8;d 6low 2;aLeKip0;sh0;g 6ke0mKrKtten H;e F;gRlPnNrLsKzzle0;h F;e Km 2;aw3ba4up;d0isK;h 2;e Kl 1T;aw3fPin,o7;ht ba4ure0;ePnLsK;s 2;cMd K;fKoG;or;e D;d04l 2;cNll Krm0t1G;aLbKdo1in,o09sho0Eth08victim;a4ehi2O;pa0C;e K;do1oGup;at Kdge0nd 12y5;in,o7up;aOi1HoNrK;aLess 6op KuN;aw3b03in,oC;gBwB; Ile0ubl1B;m 2;a0Ah05l02oOrLut K;aw3ba4do1oCup;ackBeep LoKy0;ss Dwd0;by,do1in,o0Uup;me NoLuntK; o2A;k 6l K;do1oG;aRbQforOin,oNtKu0O;hLoKrue;geth9;rough;ff,ut,v9;th,wK;ard;a4y;paKr8w3;rt;eaLose K;in,oCup;n 6r F;aNeLiK;ll0pE;ck Der Kw F;on,up;t 2;lRncel0rOsMtch LveE; in;o1Nup;h Dt K;doubt,oG;ry LvK;e 08;aw3oJ;l Km H;aLba4do1oJup;ff,n,ut;r8w3;a0Ve0MiteAl0Fo04rQuK;bblNckl05il0Dlk 6ndl05rLsKtMy FzzA;t 00;n 0HsK;t D;e I;ov9;anWeaUiLush K;oGup;ghQng K;aNba4do1forMin,oLuK;nd9p;n,ut;th;bo7lKr8w3;ong;teK;n 2;k K;do1in,o7up;ch0;arTg 6iRn5oPrNssMttlLunce Kx D;aw3ba4;e 6; ar8;e H;do1;k Dt 2;e 2;l 6;do1up;d 2;aPeed0oKurt0;cMw K;aw3ba4do1o7up;ck;k K;in,oC;ck0nk0stA; oQaNef 2lt0nd K;do1ov9up;er;up;r Lt K;do1in,oCup;do1o7;ff,nK;to;ck Pil0nMrgLsK;h D;ainBe D;g DkB; on;in,o7;aw3do1in,oCup;ff,ut;ay;ct FdQir0sk MuctionA; oG;ff;ar8o7;ouK;nd; o7;d K;do1oKup;ff,n;wn;o7up;ut",ProperNoun:"trueยฆabid,barbie,c3e2f1iron maiden,kirby,m0nis,riel;cgill,ercedes,issy;lorence,ranco;lmo,uro;atalina,hristi","Person|Place":"trueยฆa8d6h4jordan,k3orlando,s1vi0;ctor9rgin9;a0ydney;lvador,mara,ntia4;ent,obe;amil0ous0;ton;arw2ie0;go;lexandr1ust0;in;ia",LastName:"trueยฆ0:BR;1:BF;2:B5;3:BH;4:AX;5:9Y;6:B6;7:BK;8:B0;9:AV;A:AL;B:8Q;C:8G;D:7K;E:BM;F:AH;aBDb9Zc8Wd88e81f7Kg6Wh64i60j5Lk4Vl4Dm39n2Wo2Op25quispe,r1Ls0Pt0Ev03wTxSyKzG;aIhGimmerm6A;aGou,u;ng,o;khar5ytsE;aKeun9BiHoGun;koya32shiBU;!lG;diGmaz;rim,z;maGng;da,g52mo83sGzaC;aChiBV;iao,u;aLeJiHoGright,u;jcA5lff,ng;lGmm0nkl0sniewsC;kiB1liams33s3;bGiss,lt0;b,er,st0;a6Vgn0lHtG;anabe,s3;k0sh,tG;e2Non;aLeKiHoGukD;gt,lk5roby5;dHllalGnogr3Kr1Css0val3S;ba,ob1W;al,ov4;lasHsel8W;lJn dIrgBEsHzG;qu7;ilyEqu7siljE;en b6Aijk,yk;enzueAIverde;aPeix1VhKi2j8ka43oJrIsui,uG;om5UrG;c2n0un1;an,emblA7ynisC;dorAMlst3Km4rrAth;atch0i8UoG;mHrG;are84laci79;ps3sG;en,on;hirDkah9Mnaka,te,varA;a06ch01eYhUiRmOoMtIuHvGzabo;en9Jobod3N;ar7bot4lliv2zuC;aIeHoG;i7Bj4AyanAB;ele,in2FpheBvens25;l8rm0;kol5lovy5re7Tsa,to,uG;ng,sa;iGy72;rn5tG;!h;l71mHnGrbu;at9cla9Egh;moBo7M;aIeGimizu;hu,vchG;en8Luk;la,r1G;gu9infe5YmGoh,pulveA7rra5P;jGyG;on5;evi6iltz,miHneid0roed0uGwarz;be3Elz;dHtG;!t,z;!t;ar4Th8ito,ka4OlJnGr4saCto,unde19v4;ch7dHtGz;a5Le,os;b53e16;as,ihDm4Po0Y;aVeSiPoJuHyG;a6oo,u;bio,iz,sG;so,u;bKc8Fdrigue67ge10j9YmJosevelt,sItHux,wG;e,li6;a9Ch;enb4Usi;a54e4L;erts15i93;bei4JcHes,vGzzo;as,e9;ci,hards12;ag2es,iHut0yG;es,nol5N;s,t0;dImHnGsmu97v6C;tan1;ir7os;ic,u;aUeOhMiJoHrGut8;asad,if6Zochazk27;lishc2GpGrti72u10we76;e3Aov51;cHe45nG;as,to;as70hl0;aGillips;k,m,n6I;a3Hde3Wete0Bna,rJtG;ersHrovGters54;!a,ic;!en,on;eGic,kiBss3;i9ra,tz,z;h86k,padopoulIrk0tHvG;ic,l4N;el,te39;os;bMconn2Ag2TlJnei6PrHsbor6XweBzG;dem7Rturk;ella4DtGwe6N;ega,iz;iGof7Hs8I;vGyn1R;ei9;aSri1;aPeNiJoGune50ym2;rHvGwak;ak4Qik5otn66;odahl,r4S;cholsZeHkolGls4Jx3;ic,ov84;ls1miG;!n1;ils3mG;co4Xec;gy,kaGray2sh,var38;jiGmu9shiG;ma;a07c04eZiWoMuHyeG;rs;lJnIrGssoli6S;atGp03r7C;i,ov4;oz,te58;d0l0;h2lOnNo0RrHsGza1A;er,s;aKeJiIoz5risHtG;e56on;!on;!n7K;au,i9no,t5J;!lA;r1Btgome59;i3El0;cracFhhail5kkeHlG;l0os64;ls1;hmeJiIj30lHn3Krci0ssiGyer2N;!er;n0Po;er,j0;dDti;cartHlG;aughl8e2;hy;dQe7Egnu68i0jer3TkPmNnMrItHyG;er,r;ei,ic,su21thews;iHkDquAroqu8tinG;ez,s;a5Xc,nG;!o;ci5Vn;a5UmG;ad5;ar5e6Kin1;rig77s1;aVeOiLoJuHyG;!nch;k4nGo;d,gu;mbarGpe3Fvr4we;di;!nGu,yana2B;coln,dG;b21holm,strom;bedEfeKhIitn0kaHn8rGw35;oy;!j;m11tG;in1on1;bvGvG;re;iGmmy,ng,rs2Qu,voie,ws3;ne,t1F;aZeYh2iWlUnez50oNrJuHvar2woG;k,n;cerGmar68znets5;a,o34;aHem0isGyeziu;h23t3O;m0sni4Fus3KvG;ch4O;bay57ch,rh0Usk16vaIwalGzl5;czGsC;yk;cIlG;!cGen4K;huk;!ev4ic,s;e8uiveG;rt;eff0kGl4mu9nnun1;ucF;ll0nnedy;hn,llKminsCne,pIrHstra3Qto,ur,yGzl5;a,s0;j0Rls22;l2oG;or;oe;aPenOha6im14oHuG;ng,r4;e32hInHrge32u6vG;anD;es,ss3;anHnsG;en,on,t3;nesGs1R;en,s1;kiBnings,s1;cJkob4EnGrv0E;kDsG;en,sG;en0Ion;ks3obs2A;brahimDglesi5Nke5Fl0Qno07oneIshikHto,vanoG;u,v54;awa;scu;aVeOiNjaltal8oIrist50uG;!aGb0ghAynh;m2ng;a6dz4fIjgaa3Hk,lHpUrGwe,x3X;ak1Gvat;mAt;er,fm3WmG;ann;ggiBtchcock;iJmingw4BnHrGss;nand7re9;deGriks1;rs3;kkiHnG;on1;la,n1;dz4g1lvoQmOns0ZqNrMsJuIwHyG;asFes;kiB;g1ng;anHhiG;mo14;i,ov0J;di6p0r10t;ue;alaG;in1;rs1;aVeorgUheorghe,iSjonRoLrJuGw3;errGnnar3Co,staf3Ctierr7zm2;a,eG;ro;ayli6ee2Lg4iffithGub0;!s;lIme0UnHodGrbachE;e,m2;calvAzale0S;dGubE;bGs0E;erg;aj,i;bs3l,mGordaO;en7;iev3U;gnMlJmaIndFo,rGsFuthi0;cGdn0za;ia;ge;eaHlG;agh0i,o;no;e,on;aVerQiLjeldsted,lKoIrHuG;chs,entAji41ll0;eem2iedm2;ntaGrt8urni0wl0;na;emi6orA;lipIsHtzgeraG;ld;ch0h0;ovG;!ic;hatDnanIrG;arGei9;a,i;deY;ov4;b0rre1D;dKinsJriksIsGvaB;cob3GpGtra3D;inoza,osiQ;en,s3;te8;er,is3warG;ds;aXePiNjurhuMoKrisco15uHvorakG;!oT;arte,boHmitru,nn,rGt3C;and,ic;is;g2he0Omingu7nErd1ItG;to;us;aGcki2Hmitr2Ossanayake,x3;s,z; JbnaIlHmirGrvisFvi,w2;!ov4;gado,ic;th;bo0groot,jo6lHsilGvriA;va;a cruz,e3uG;ca;hl,mcevsCnIt2WviG;dGes,s;ov,s3;ielsGku22;!en;ki;a0Be06hRiobQlarkPoIrGunningh1H;awfo0RivGuz;elli;h1lKntJoIrGs2Nx;byn,reG;a,ia;ke,p0;i,rer2K;em2liB;ns;!e;anu;aOeMiu,oIristGu6we;eGiaG;ns1;i,ng,p9uHwGy;!dH;dGng;huJ;!n,onGu6;!g;kJnIpm2ttHudhGv7;ry;erjee,o14;!d,g;ma,raboG;rty;bJl0Cng4rG;eghetHnG;a,y;ti;an,ota1C;cerAlder3mpbeLrIstGvadi0B;iGro;llo;doHl0Er,t0uGvalho;so;so,zo;ll;a0Fe01hYiXlUoNrKuIyG;rLtyG;qi;chan2rG;ke,ns;ank5iem,oGyant;oks,wG;ne;gdan5nIruya,su,uchaHyKziG;c,n5;rd;darGik;enG;ko;ov;aGond15;nco,zG;ev4;ancFshw16;a08oGuiy2;umGwmG;ik;ckRethov1gu,ktPnNrG;gJisInG;ascoGds1;ni;ha;er,mG;anG;!n;gtGit7nP;ss3;asF;hi;er,hG;am;b4ch,ez,hRiley,kk0ldw8nMrIshHtAu0;es;ir;bInHtlGua;ett;es,i0;ieYosa;dGik;a9yoG;padhyG;ay;ra;k,ng;ic;bb0Acos09d07g04kht05lZnPrLsl2tJyG;aHd8;in;la;chis3kiG;ns3;aImstro6sl2;an;ng;ujo,ya;dJgelHsaG;ri;ovG;!a;ersJov,reG;aGjEws;ss1;en;en,on,s3;on;eksejEiyEmeiIvG;ar7es;ez;da;ev;arwHuilG;ar;al;ams,l0;er;ta;as",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:74;1:61;2:6G;3:6J;4:5S;a68b53c4Id48e44f3Wg3Hh39i31j2Wk2Fl23m1Mn1Co19p0Wq0Ur0Os05tRuQvLwDxiBy9z5;a7h5i4Muri4O;a5e5ongsh0;ng3H;greb,nzib5G;ang2e5okoha3Sunfu;katerin3Hrev0;a5n0Q;m5Hn;arsBeAi6roclBu5;h0xi,zh5P;c7n5;d5nipeg,terth4;hoek,s1L;hi5Zkl3A;l63xford;aw;a8e6i5ladivost5Molgogr6L;en3lni6S;ni22r5;o3saill4N;lenc4Wncouv3Sr3ughn;lan bat1Crumqi,trecht;aFbilisi,eEheDiBo9r7u5;l21n63r5;in,ku;i5ondh62;es51poli;kyo,m2Zron1Pulo5;n,uS;an5jua3l2Tmisoa6Bra3;j4Tshui; hag62ssaloni2H;gucigal26hr0l av1U;briz,i6llinn,mpe56ng5rtu,shk2R;i3Esh0;an,chu1n0p2Eyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4X;ba0Ht;aten is55ockholm,rasbou67uttga2V;an8e6i5;jiazhua1llo1m5Xy0;f50n5;ya1zh4H;gh3Kt4Q;att45o1Vv44;cramen16int ClBn5o paulo,ppo3Rrajevo; 7aa,t5;a 5o domin3E;a3fe,m1M;antonio,die3Cfrancisco,j5ped3Nsalvad0J;o5u0;se;em,t lake ci5Fz25;lou58peters24;a9e8i6o5;me,t59;ga,o5yadh;! de janei3F;cife,ims,nn3Jykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0Q;aFeEhDiCo9r7u6yong5;ya1;eb59ya1;a5etor3M;g52to;rt5zn0; 5la4Co;au prin0Melizabe24sa03;ls3Prae5Atts26;iladelph3Gnom pe1Aoenix;ki1r21tah tik3E;dua,lerYnaji,r4Ot5;na,r32;ak44des0Km1Mr6s5ttawa;a3Vlo;an,d06;a7ew5ing2Fovosibir1Jyc; 5cast36;del24orlea44taip14;g8iro4Wn5pl2Wshv33v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0W;aEeCi9o6u5;mb2Ani26sc3Y;gadishu,nt6s5;c13ul;evideo,pelli1Rre2Z;ami,l6n14s5;kolc,sissauga;an,waukee;cca,d5lbour2Mmph41ndo1Cssi3;an,ell2Xi3;cau,drAkass2Sl9n8r5shh4A;aca6ib5rakesh,se2L;or;i1Sy;a4EchFdal0Zi47;mo;id;aDeAi8o6u5vSy2;anMckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Lma5nz,sb2verpo28;!ss27; ma39i5;c5pzig;est16; p6g5ho2Wn0Cusan24;os;az,la33;aHharFiClaipeBo9rak0Du7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Hlka2Xpavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bHdu3llakuric0Qmpa3Fn6ohsiu1ra5un1Iwaguc0Q;c0Pj;d5o,p4;ah1Ty;a7e6i5ohannesV;l1Vn0;dd36rusalem;ip4k5;ar2H;bad0mph1OnArkutUs7taXz5;mir,tapala5;pa;fah0l6tanb5;ul;am2Zi2H;che2d5;ianap2Mo20;aAe7o5yder2W; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Oupe;ld coa1Bthen5;bu2S;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal29es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,nkirk,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Zr es sala1KugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1Q;lo7n6penhag0Ar5;do1Ok;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr14;ch8sha,zh07;gliari,i9lga8mayenJn6pe town,r5tanO;acCdiff;ber1Ac5;un;ry;ro;aWeNhKirmingh0WoJr9u5;chareTdapeTenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iCl9ng8r5;g6l5n;in;en;aluru,hazi;fa6grade,o horizon5;te;st;ji1rut;ghd0BkFn9ot8r7s6yan n4;ur;el,r07;celo3i,ranquil09;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a05b02cc01ddis aba00gartaZhmedXizawl,lSmPnHqa00rEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a8c5kaOtwerp;hora6o3;na;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 7buquerq6eppo,giers,ma5;ty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"trueยฆ0:2K;1:2Q;2:2H;3:2B;a2Ob2Bc1Xd1Ses1Rf1Pg1Kh1Gi1Bj17k12l0Zm0On06o04pYqVrSsJtEuBverAw6y4zacatec2S;akut0o0Cu4;cat2k06;a5est 4isconsin,yomi1K;bengal,virgin0;rwick3shington4;! dc;acruz,mont;dmurt0t4;ah,tar4; 2La0Y;a6e5laxca1Rripu1Xu4;scaEva;langa1nnessee,x2F;bas0Wm4smOtar25;aulip2Dil nadu;a9i7o5taf12u4ylh1F;ffZrr05s1A;me1Cno1Quth 4;cWdV;ber0c4kkim,naloa;hu2ily;n5skatchew2xo4;ny; luis potosi,ta catari1;a4hodeA;j4ngp08;asth2shahi;ingh25u4;e4intana roo;bec,en6retaro;ara8e6rince edward4unjab; i4;sl0C;i,nnsylv4rnambu0C;an0;!na;axa0Ydisha,h4klaho20ntar4reg7ss0Cx0H;io;aKeEo6u4;evo le4nav0W;on;r4tt17va scot0;f9mandy,th4; 4ampton3;c6d5yo4;rk3;ako1N;aroli1;olk;bras1Mva0Cw4; 5foundland4;! and labrador;brunswick,hamp3jers5mexiTyork4;! state;ey;galPyarit;aAeghala0Mi6o4;nta1r4;dov0elos;ch6dlanDn5ss4zor11;issippi,ouri;as geraPneso18;ig2oac2;dhy12harasht0Gine,ni5r4ssachusetts;anhao,i el,ylG;p4toba;ur;anca3e4incoln3ouisI;e4iR;ds;a6e5h4omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr4;achay,el0nata0X;alis6har4iangxi;kh4;and;co;daho,llino7n4owa;d5gush4;et0;ia1;is;a6ert5i4un2;dalFm0D;ford3;mp3rya1waii;ansu,eorg0lou7oa,u4;an4izhou,jarat;ajuato,gdo4;ng;cester3;lori4uji2;da;sex;ageUe7o5uran4;go;rs4;et;lawaMrby3;aFeaEh9o4rim08umbr0;ahui7l6nnectic5rsi4ventry;ca;ut;i03orado;la;e5hattisgarh,i4uvash0;apRhuahua;chn5rke4;ss0;ya;ra;lGm4;bridge3peche;a9ihar,r8u4;ck4ryat0;ingham3;shi4;re;emen,itish columb0;h0ja cal8lk7s4v7;hkorto4que;st2;an;ar0;iforn0;ia;dygHguascalientes,lBndhr9r5ss4;am;izo1kans5un4;achal 7;as;na;a 4;pradesh;a6ber5t4;ai;ta;ba5s4;ka;ma;ea",Country:"trueยฆ0:38;1:2L;2:3B;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om2pZqat1KrXsKtCu7v5wal4yemTz3;a25imbabwe;es,lis and futu2Y;a3enezue32ietnam;nuatu,tican city;gTk6nited 4ruXs3zbeE; 2Ca,sr;arab emirat0Kkingdom,states3;! of am2Y;!raiV;a8haCimor les0Co7rinidad 5u3;nis0rk3valu;ey,me2Zs and caic1V;and t3t3;oba1L;go,kel10nga;iw2ji3nz2T;ki2V;aDcotl1eCi9lov8o6pa2Dri lanka,u5w3yr0;az3edAitzerl1;il1;d2riname;lomon1Xmal0uth 3;afr2KkMsud2;ak0en0;erra leoFn3;gapo1Yt maart3;en;negLrb0ychellZ;int 3moa,n marino,udi arab0;hele26luc0mart21;epublic of ir0Eom2Euss0w3;an27;a4eIhilippinUitcairn1Mo3uerto riN;l1rtugF;ki2Dl4nama,pua new0Vra3;gu7;au,esti3;ne;aBe9i7or3;folk1Ith4w3;ay; k3ern mariana1D;or0O;caragua,ger3ue;!ia;p3ther1Aw zeal1;al;mib0u3;ru;a7exi6icro0Bo3yanm06;ldova,n3roc5zambA;a4gol0t3;enegro,serrat;co;cAdagasc01l7r5urit4yot3;te;an0i16;shall0Xtin3;ique;a4div3i,ta;es;wi,ys0;ao,ed02;a6e5i3uxembourg;b3echtenste12thu1G;er0ya;ban0Isotho;os,tv0;azakh1Fe4iriba04o3uwait,yrgyz1F;rXsovo;eling0Knya;a3erG;ma16p2;c7nd6r4s3taly,vory coast;le of m2rael;a3el1;n,q;ia,oJ;el1;aiTon3ungary;dur0Ng kong;aBermany,ha0QibraltAre8u3;a6ern5inea3ya0P;! biss3;au;sey;deloupe,m,tema0Q;e3na0N;ce,nl1;ar;bUmb0;a7i6r3;ance,ench 3;guia0Epoly3;nes0;ji,nl1;lklandUroeU;ast tim7cu6gypt,l salv6ngl1quatorial4ritr5st3thiop0;on0; guin3;ea;ad3;or;enmark,jibou5ominica4r con3;go;!n C;ti;aBentral african Ah8o5roat0u4yprRzech3; 9ia;ba,racao;c4lo3morQngo brazzaville,okGsta r04te de ivoiL;mb0;osE;i3ristmasG;le,na;republic;m3naUpe verde,ymanA;bod0ero3;on;aGeDhut2o9r5u3;lgar0r3;kina faso,ma,undi;azil,itish 3unei;virgin3; is3;lands;liv0nai5snia and herzegoviHtswaHuvet3; isl1;and;re;l3n8rmuG;ar3gium,ize;us;h4ngladesh,rbad3;os;am4ra3;in;as;fghaGlDmBn6r4ustr3zerbaij2;al0ia;genti3men0uba;na;dorra,g5t3;arct7igua and barbu3;da;o3uil3;la;er3;ica;b3ger0;an0;ia;ni3;st2;an",Place:"trueยฆa0Gb0Bc03d02e01f00gWhUiSkQlNmLnIorHpDrCsAt5u4v3w2y0;a0yz;kutPngtze;ake isHupatki;irgin islands,ostok;laanbaatar,p02;a3eotihuac0Hh1onto,sarskoe selo,u0;lXzigoot;am09e 0;bronx,hamptons;hiti,j mahE;a0cotts bluff,eine,fo,oho,under9;int lawrence river,khalY;ed s3io grande;a1ek,h0itcairn,ompeii;l,x;cif05pahanaumokuak0rthenX;ea;ange county,d,inoco;e0ile;uschwansteQw eng0;land;a0co,ekong,idLuc;chu picchu,gad00libu,nhatt00;a1gw,hr,incoln memori0;al;s,x;azan kremlJosrae,rasnoyar0ul;sk;ax,cn,nd0st;ianSochina;arlem,kg,nd,ov0;d,enweep;a2odavari,re0;at 0enwich;britaBlakI;ngHy village;co,ra;urope,vergladF;anube,en,fw,own4xb;arrizo pla6dg,edar 5gk,h1lt,olosse0;um;a2i0uuk;chen itza,mney rock,na0ricahua;town;morro,tham;breaks,fa5;in;cn,e2kk,ro0;oklyn,wns cany0;on;l air,verly hi0;lls;driadic,frica,lhambra,m7n3rc2sia,tl1zor0;es;!ant2; de triomphe,t1;adyr,tarct0;ic0; oce0;an;ericas,s",FirstName:"trueยฆaTblair,cQdOfrancoZgabMhinaLilya,jHkClBm6ni4quinn,re3s0;h0umit,yd;ay,e0iloh;a,lby;g9ne;co,ko0;!s;a1el0ina,org6;!okuhF;ds,naia,r1tt0xiB;i,y;ion,lo;ashawn,eif,uca;a3e1ir0rM;an;lsFn0rry;dall,yat5;i,sD;a0essIie,ude;i1m0;ie,mG;me;ta;rie0y;le;arcy,ev0;an,on;as1h0;arl8eyenne;ey,sidy;drien,kira,l4nd1ubr0vi;ey;i,r0;a,e0;a,y;ex2f1o0;is;ie;ei,is",WeekDay:"trueยฆfri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"trueยฆdec0february,july,nov0octo1sept0;em0;ber",Date:"trueยฆago,on4som4t1week0yesterd5; end,ends;mr1o0;d2morrow;!w;ed0;ay",Duration:"trueยฆcenturAd8h7m5q4se3w1y0;ear8r8;eek0k7;!end,s;ason,c5;tr,uarter;i0onth3;llisecond2nute2;our1r1;ay0ecade0;!s;ies,y",FemaleName:"trueยฆ0:J7;1:JB;2:IJ;3:IK;4:J1;5:IO;6:JS;7:JO;8:HB;9:JK;A:H4;B:I2;C:IT;D:JH;E:IX;F:BA;G:I4;aGTbFLcDRdD0eBMfB4gADh9Ti9Gj8Dk7Cl5Wm48n3Lo3Hp33qu32r29s15t0Eu0Cv02wVxiTyOzH;aLeIineb,oHsof3;e3Sf3la,ra;h2iKlIna,ynH;ab,ep;da,ma;da,h2iHra;nab;aKeJi0FolB7uIvH;et8onDP;i0na;le0sen3;el,gm3Hn,rGLs8W;aoHme0nyi;m5XyAD;aMendDZhiDGiH;dele9lJnH;if48niHo0;e,f47;a,helmi0lHma;a,ow;ka0nB;aNeKiHusa5;ck84kIl8oleAviH;anFenJ4;ky,toriBK;da,lA8rHs0;a,nHoniH9;a,iFR;leHnesH9;nILrH;i1y;g9rHs6xHA;su5te;aYeUhRiNoLrIuHy2;i,la;acJ3iHu0J;c3na,sH;hFta;nHr0F;iFya;aJffaEOnHs6;a,gtiH;ng;!nFSra;aIeHomasi0;a,l9Oo8Ares1;l3ndolwethu;g9Fo88rIssH;!a,ie;eHi,ri7;sa,za;bOlMmKnIrHs6tia0wa0;a60yn;iHya;a,ka,s6;arFe2iHm77ra;!ka;a,iH;a,t6;at6it6;a0Ecarlett,e0AhWiSkye,neza0oQri,tNuIyH;bIGlvi1;ha,mayIJniAsIzH;an3Net8ie,y;anHi7;!a,e,nH;aCe;aIeH;fan4l5Dphan6E;cI5r5;b3fiAAm0LnHphi1;d2ia,ja,ya;er2lJmon1nIobh8QtH;a,i;dy;lETv3;aMeIirHo0risFDy5;a,lDM;ba,e0i5lJrH;iHr6Jyl;!d8Ifa;ia,lDZ;hd,iMki2nJrIu0w0yH;la,ma,na;i,le9on,ron,yn;aIda,ia,nHon;a,on;!ya;k6mH;!aa;lJrItaye82vH;da,inj;e0ife;en1i0ma;anA9bLd5Oh1SiBkKlJmInd2rHs6vannaC;aCi0;ant6i2;lDOma,ome;ee0in8Tu2;in1ri0;a05eZhXiUoHuthDM;bScRghQl8LnPsJwIxH;anB3ie,y;an,e0;aIeHie,lD;ann7ll1marDGtA;!lHnn1;iHyn;e,nH;a,dF;da,i,na;ayy8G;hel67io;bDRerAyn;a,cIkHmas,nFta,ya;ki,o;h8Xki;ea,iannGMoH;da,n1P;an0bJemFgi0iInHta,y0;a8Bee;han86na;a,eH;cHkaC;a,ca;bi0chIe,i0mo0nHquETy0;di,ia;aERelHiB;!e,le;een4ia0;aPeOhMiLoJrHute6A;iHudenCV;scil3LyamvaB;lHrt3;i0ly;a,paluk;ilome0oebe,ylH;is,lis;ggy,nelope,r5t2;ige,m0VnKo5rvaDMtIulH;a,et8in1;ricHt4T;a,e,ia;do2i07;ctav3dIfD3is6ksa0lHphD3umC5yunbileg;a,ga,iv3;eHvAF;l3t8;aWeUiMoIurHy5;!ay,ul;a,eJor,rIuH;f,r;aCeEma;ll1mi;aNcLhariBQkKlaJna,sHta,vi;anHha;ur;!y;a,iDZki;hoGk9YolH;a,e4P;!mh;hir,lHna,risDEsreE;!a,lBV;asuMdLh3i6Dl5nKomi7rgEVtH;aHhal4;lHs6;i1ya;cy,et8;e9iF0ya;nngu2X;a0Ackenz4e02iMoJrignayani,uriDJyH;a,rH;a,iOlNna,tG;bi0i2llBJnH;a,iH;ca,ka,qD9;a,cUdo4ZkaTlOmi,nMrItzi,yH;ar;aJiIlH;anET;am;!l,nB;dy,eHh,n4;nhGrva;aKdJe0iCUlH;iHy;cent,e;red;!gros;!e5;ae5hH;ae5el3Z;ag5DgNi,lKrH;edi7AiIjem,on,yH;em,l;em,sCG;an4iHliCF;nHsCJ;a,da;!an,han;b09cASd07e,g05ha,i04ja,l02n00rLsoum5YtKuIv84xBKyHz4;bell,ra,soBB;d7rH;a,eE;h8Gild1t4;a,cUgQiKjor4l7Un4s6tJwa,yH;!aHbe6Xja9lAE;m,nBL;a,ha,in1;!aJbCGeIja,lDna,sHt63;!a,ol,sa;!l1D;!h,mInH;!a,e,n1;!awit,i;arJeIie,oHr48ueri8;!t;!ry;et46i3B;el4Xi7Cy;dHon,ue5;akranAy;ak,en,iHlo3S;a,ka,nB;a,re,s4te;daHg4;!l3E;alDd4elHge,isDJon0;ei9in1yn;el,le;a0Ne0CiXoQuLyH;d3la,nH;!a,dIe2OnHsCT;!a,e2N;a,sCR;aD4cJel0Pis1lIna,pHz;e,iA;a,u,wa;iHy;a0Se,ja,l2NnB;is,l1UrItt1LuHvel4;el5is1;aKeIi7na,rH;aADi7;lHn1tA;ei;!in1;aTbb9HdSepa,lNnKsJvIzH;!a,be5Ret8z4;!ia;a,et8;!a,dH;a,sHy;ay,ey,i,y;a,iJja,lH;iHy;aA8e;!aH;!nF;ia,ya;!nH;!a,ne;aPda,e0iNjYla,nMoKsJtHx93y5;iHt4;c3t3;e2PlCO;la,nHra;a,ie,o2;a,or1;a,gh,laH;!ni;!h,nH;a,d2e,n5V;cOdon9DiNkes6mi9Gna,rMtJurIvHxmi,y5;ern1in3;a,e5Aie,yn;as6iIoH;nya,ya;fa,s6;a,isA9;a,la;ey,ie,y;a04eZhXiOlASoNrJyH;lHra;a,ee,ie;istHy6I;a,en,iIyH;!na;!e,n5F;nul,ri,urtnB8;aOerNlB7mJrHzzy;a,stH;en,in;!berlImernH;aq;eHi,y;e,y;a,stE;!na,ra;aHei2ongordzol;dij1w5;el7UiKjsi,lJnIrH;a,i,ri;d2na,za;ey,i,lBLs4y;ra,s6;biAcARdiat7MeBAiSlQmPnyakuma1DrNss6NtKviAyH;!e,lH;a,eH;e,i8T;!a6HeIhHi4TlDri0y;ar8Her8Hie,leErBAy;!lyn8Ori0;a,en,iHl5Xoli0yn;!ma,nFs95;a5il1;ei8Mi,lH;e,ie;a,tl6O;a0AeZiWoOuH;anMdLlHst88;es,iH;a8NeHs8X;!n9tH;!a,te;e5Mi3My;a,iA;!anNcelDdMelGhan7VleLni,sIva0yH;a,ce;eHie;fHlDph7Y;a,in1;en,n1;i7y;!a,e,n45;lHng;!i1DlH;!i1C;anNle0nKrJsH;i8JsH;!e,i8I;i,ri;!a,elGif2CnH;a,et8iHy;!e,f2A;a,eJiInH;a,eIiH;e,n1;!t8;cMda,mi,nIque4YsminFvie2y9zH;min7;a7eIiH;ce,e,n1s;!lHs82t0F;e,le;inIk6HlDquelH;in1yn;da,ta;da,lRmPnOo0rNsIvaHwo0zaro;!a0lu,na;aJiIlaHob89;!n9R;do2;belHdo2;!a,e,l3B;a7Ben1i0ma;di2es,gr72ji;a9elBogH;en1;a,e9iHo0se;a0na;aSeOiJoHus7Kyacin2C;da,ll4rten24snH;a,i9U;lImaH;ri;aIdHlaI;a,egard;ry;ath1BiJlInrietArmi9sH;sa,t1A;en2Uga,mi;di;bi2Fil8MlNnMrJsItHwa,yl8M;i5Tt4;n60ti;iHmo51ri53;etH;!te;aCnaC;a,ey,l4;a02eWiRlPoNrKunJwH;enHyne1R;!dolD;ay,el;acieIetHiselB;a,chE;!la;ld1CogooH;sh;adys,enHor3yn2K;a,da,na;aKgi,lIna,ov8EselHta;a,e,le;da,liH;an;!n0;mLnJorgIrH;ald5Si,m3Etrud7;et8i4X;a,eHna;s29vieve;ma;bIle,mHrnet,yG;al5Si5;iIrielH;a,l1;!ja;aTeQiPlorOoz3rH;anJeIiH;da,eB;da,ja;!cH;esIiHoi0P;n1s66;!ca;a,enc3;en,o0;lIn0rnH;anB;ec3ic3;jr,nArKtHy7;emIiHma,oumaA;ha,ma,n;eh;ah,iBrah,za0;cr4Rd0Re0Qi0Pk0Ol07mXn54rUsOtNuMvHwa;aKelIiH;!e,ta;inFyn;!a;!ngel4V;geni1ni47;h5Yien9ta;mLperanKtH;eIhHrel5;er;l31r7;za;a,eralB;iHma,ne4Lyn;cHka,n;a,ka;aPeNiKmH;aHe21ie,y;!li9nuH;elG;lHn1;e7iHy;a,e,ja;lHrald;da,y;!nue5;aWeUiNlMma,no2oKsJvH;a,iH;na,ra;a,ie;iHuiH;se;a,en,ie,y;a0c3da,e,f,nMsJzaH;!betHveA;e,h;aHe,ka;!beH;th;!a,or;anor,nH;!a,i;!in1na;ate1Rta;leEs6;vi;eIiHna,wi0;e,th;l,n;aYeMh3iLjeneKoH;lor5Vminiq4Ln3FrHtt4;a,eEis,la,othHthy;ea,y;ba;an09naCon9ya;anQbPde,eOiMlJmetr3nHsir5M;a,iH;ce,se;a,iIla,orHphi9;es,is;a,l6F;dHrdH;re;!d5Ena;!b2ForaCraC;a,d2nH;!a,e;hl3i0l0GmNnLphn1rIvi1WyH;le,na;a,by,cIia,lH;a,en1;ey,ie;a,et8iH;!ca,el1Aka,z;arHia;is;a0Re0Nh04i02lUoJristIynH;di,th3;al,i0;lPnMrIurH;tn1D;aJd2OiHn2Ori9;!nH;a,e,n1;!l4;cepci5Cn4sH;tanHuelo;ce,za;eHleE;en,t8;aJeoIotH;il54;!pat2;ir7rJudH;et8iH;a,ne;a,e,iH;ce,sZ;a2er2ndH;i,y;aReNloe,rH;isJyH;stH;al;sy,tH;a1Sen,iHy;an1e,n1;deJlseIrH;!i7yl;a,y;li9;nMrH;isKlImH;ai9;a,eHot8;n1t8;!sa;d2elGtH;al,elG;cIlH;es8i47;el3ilH;e,ia,y;itlYlXmilWndVrMsKtHy5;aIeIhHri0;er1IleErDy;ri0;a38sH;a37ie;a,iOlLmeJolIrH;ie,ol;!e,in1yn;lHn;!a,la;a,eIie,otHy;a,ta;ne,y;na,s1X;a0Ii0I;a,e,l1;isAl4;in,yn;a0Ke02iZlXoUrH;andi7eRiJoIyH;an0nn;nwDoke;an3HdgMgiLtH;n31tH;!aInH;ey,i,y;ny;d,t8;etH;!t7;an0e,nH;da,na;bbi7glarIlo07nH;iAn4;ka;ancHythe;a,he;an1Clja0nHsm3M;iAtH;ou;aWcVlinUniArPssOtJulaCvH;!erlH;ey,y;hJsy,tH;e,iHy7;e,na;!anH;ie,y;!ie;nItHyl;ha,ie;adIiH;ce;et8i9;ay,da;ca,ky;!triH;ce,z;rbJyaH;rmH;aa;a2o2ra;a2Ub2Od25g21i1Sj5l18m0Zn0Boi,r06sWtVuPvOwa,yIzH;ra,u0;aKes6gJlIn,seH;!l;in;un;!nH;a,na;a,i2K;drLguJrIsteH;ja;el3;stH;in1;a,ey,i,y;aahua,he0;hIi2Gja,miAs2DtrH;id;aMlIraqHt21;at;eIi7yH;!n;e,iHy;gh;!nH;ti;iJleIo6piA;ta;en,n1t8;aHelG;!n1J;a01dje5eZgViTjRnKohito,toHya;inet8nH;el5ia;te;!aKeIiHmJ;e,ka;!mHtt7;ar4;!belIliHmU;sa;!l1;a,eliH;ca;ka,sHta;a,sa;elHie;a,iH;a,ca,n1qH;ue;!tH;a,te;!bImHstasiMya;ar3;el;aLberKeliJiHy;e,l3naH;!ta;a,ja;!ly;hGiIl3nB;da;a,ra;le;aWba,ePiMlKthJyH;a,c3sH;a,on,sa;ea;iHys0N;e,s0M;a,cIn1sHza;a,e,ha,on,sa;e,ia,ja;c3is6jaKksaKna,sJxH;aHia;!nd2;ia,saH;nd2;ra;ia;i0nIyH;ah,na;a,is,naCoud;la;c6da,leEmNnLsH;haClH;inHyY;g,n;!h;a,o,slH;ey;ee;en;at6g4nIusH;ti0;es;ie;aWdiTelMrH;eJiH;anMenH;a,e,ne;an0;na;!aLeKiIyH;nn;a,n1;a,e;!ne;!iH;de;e,lDsH;on;yn;!lH;i9yn;ne;aKbIiHrL;!e,gaK;ey,i7y;!e;gaH;il;dKliyJradhIs6;ha;ya;ah;a,ya",Honorific:"trueยฆdirector1field marsh2lieutenant1rear0sergeant major,vice0; admir1; gener0;al","Adj|Gerund":"trueยฆ0:3F;1:3H;2:31;3:2X;4:35;5:33;6:3C;7:2Z;8:36;9:29;a33b2Tc2Bd1Te1If19g12h0Zi0Rl0Nm0Gnu0Fo0Ap04rYsKtEuBvAw1Ayiel3;ar6e08;nBpA;l1Rs0B;fol3n1Zsett2;aEeDhrBi4ouc7rAwis0;e0Bif2oub2us0yi1;ea1SiA;l2vi1;l2mp0rr1J;nt1Vxi1;aMcreec7enten2NhLkyrocke0lo0Vmi2oJpHtDuBweA;e0Ul2;pp2ArA;gi1pri5roun3;aBea8iAri2Hun9;mula0r4;gge4rA;t2vi1;ark2eAraw2;e3llb2F;aAot7;ki1ri1;i9oc29;dYtisf6;aEeBive0oAus7;a4l2;assu4defi9fres7ig9juve07mai9s0vAwar3;ea2italiAol1G;si1zi1;gi1ll6mb2vi1;a6eDier23lun1VrAun2C;eBoA;mi5vo1Z;ce3s5vai2;n3rpleA;xi1;ffCpWutBverAwi1;arc7lap04p0Pri3whel8;goi1l6st1J;en3sA;et0;m2Jrtu4;aEeDiCoBuAyst0L;mb2;t1Jvi1;s5tiga0;an1Rl0n3smeri26;dAtu4;de9;aCeaBiAo0U;fesa0Tvi1;di1ni1;c1Fg19s0;llumiGmFnArri0R;cDfurHsCtBviA;go23ti1;e1Oimi21oxica0rig0V;pi4ul0;orpo20r0K;po5;na0;eaBorr02umilA;ia0;li1rtwar8;lFrA;atiDipCoBuelA;i1li1;undbrea10wi1;pi1;f6ng;a4ea8;a3etc7it0lEoCrBulfA;il2;ee1FighXust1L;rAun3;ebo3thco8;aCoA;a0wA;e4i1;mi1tte4;lectrJmHnExA;aCci0hBis0pA;an3lo3;aOila1B;c0spe1A;ab2coura0CdBergi13ga0Clive9ric7s02tA;hral2i0J;ea4u4;barras5er09pA;owe4;if6;aQeIiBrA;if0;sAzz6;aEgDhearCsen0tA;rAur11;ac0es5;te9;us0;ppoin0r8;biliGcDfi9gra3ligh0mBpres5sAvasG;erE;an3ea9orA;ali0L;a6eiBli9rA;ea5;vi1;ta0;maPri1s7un0zz2;aPhMlo5oAripp2ut0;mGnArrespon3;cer9fDspi4tA;inBrA;as0ibu0ol2;ui1;lic0u5;ni1;fDmCpA;eAromi5;l2ti1;an3;or0;aAil2;llenAnAr8;gi1;l8ptAri1;iva0;aff2eGin3lFoDrBuA;d3st2;eathtaAui5;ki1;gg2i2o8ri1unA;ci1;in3;co8wiA;lAtc7;de4;bsorVcOgonMlJmHnno6ppea2rFsA;pi4su4toA;nBun3;di1;is7;hi1;res0;li1;aFu5;si1;ar8lu4;ri1;mi1;iAzi1;zi1;cAhi1;eleDomA;moBpan6;yi1;da0;ra0;ti1;bi1;ng",Comparable:"trueยฆ0:3C;1:3Q;2:3F;a3Tb3Cc33d2Te2Mf2Ag1Wh1Li1Fj1Ek1Bl13m0Xn0So0Rp0Iqu0Gr07sHtCug0vAw4y3za0Q;el10ouN;ary,e6hi5i3ry;ck0Cde,l3n1ry,se;d,y;ny,te;a3i3R;k,ry;a3erda2ulgar;gue,in,st;a6en2Xhi5i4ouZr3;anqu2Cen1ue;dy,g36me0ny;ck,rs28;ll,me,rt,wd3I;aRcaPeOhMiLkin0BlImGoEpDt6u4w3;eet,ift;b3dd0Wperfi21rre28;sta26t21;a8e7iff,r4u3;pUr1;a4ict,o3;ng;ig2Vn0N;a1ep,rn;le,rk,te0;e1Si2Vright0;ci1Yft,l3on,re;emn,id;a3el0;ll,rt;e4i3y;g2Mm0Z;ek,nd2T;ck24l0mp1L;a3iRrill,y;dy,l01rp;ve0Jxy;n1Jr3;ce,y;d,fe,int0l1Hv0V;a8e6i5o3ude;mantic,o19sy,u3;gh;pe,t1P;a3d,mo0A;dy,l;gg4iFndom,p3re,w;id;ed;ai2i3;ck,et;hoAi1Fl9o8r5u3;ny,r3;e,p11;egna2ic4o3;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e5i4o3u14;b0Sisy,rm0Ysy;bb0ce,mb0R;a3r1w;r,t;ad,e5ild,o4u3;nda12te;ist,o1;a4ek,l3;low;s0ty;a8e7i6o3ucky;f0Jn4o15u3ve0w10y0N;d,sy;e0g;ke0l,mp,tt0Eve0;e1Qwd;me,r3te;ge;e4i3;nd;en;ol0ui19;cy,ll,n3;secu6t3;e3ima4;llege2rmedia3;te;re;aAe7i6o5u3;ge,m3ng1C;bYid;me0t;gh,l0;a3fXsita2;dy,rWv3;en0y;nd13ppy,r3;d3sh;!y;aFenEhCiBlAoofy,r3;a8e6i5o3ue0Z;o3ss;vy;m,s0;at,e3y;dy,n;nd,y;ad,ib,ooD;a2d1;a3o3;st0;tDuiS;u1y;aCeebBi9l8o6r5u3;ll,n3r0N;!ny;aCesh,iend0;a3nd,rmD;my;at,ir7;erce,nan3;ci9;le;r,ul3;ty;a6erie,sse4v3xtre0B;il;nti3;al;r4s3;tern,y;ly,th0;appZe9i5ru4u3;mb;nk;r5vi4z3;zy;ne;e,ty;a3ep,n9;d3f,r;!ly;agey,h8l7o5r4u3;dd0r0te;isp,uel;ar3ld,mmon,st0ward0zy;se;evKou1;e3il0;ap,e3;sy;aHiFlCoAr5u3;ff,r0sy;ly;a6i3oad;g4llia2;nt;ht;sh,ve;ld,un3;cy;a4o3ue;nd,o1;ck,nd;g,tt3;er;d,ld,w1;dy;bsu6ng5we3;so3;me;ry;rd",Adverb:"trueยฆa08b05d00eYfSheQinPjustOkinda,likewiZmMnJoEpCquite,r9s5t2u0very,well;ltima01p0; to,wards5;h1iny bit,o0wiO;o,t6;en,us;eldom,o0uch;!me1rt0; of;how,times,w0C;a1e0;alS;ndomRth05;ar excellenEer0oint blank; Lhaps;f3n0utright;ce0ly;! 0;ag05moX; courGten;ewJo0; longWt 0;onHwithstand9;aybe,eanwhiNore0;!ovT;! aboX;deed,steY;lla,n0;ce;or3u0;ck1l9rther0;!moK;ing; 0evK;exampCgood,suH;n mas0vI;se;e0irect2; 2fini0;te0;ly;juAtrop;ackward,y 0;far,no0; means,w; GbroFd nauseam,gEl7ny5part,s4t 2w0;ay,hi0;le;be7l0mo7wor7;arge,ea6; soon,i4;mo0way;re;l 3mo2ongsi1ready,so,togeth0ways;er;de;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"trueยฆaXbTcReNhowMiEjust00noBo9p8supposing,t5wh0yet;e1il0o3;e,st;n1re0thN; if,by,vM;evL;h0il,o;erefOo0;!uU;lus,rovided th9;r0therwiM;! not; mattEr,w0;! 0;since,th4w7;f4n0; 0asmuch;as mIcaForder t0;h0o;at;! 0;only,t0w0;hen;!ev3;ith2ven0;! 0;if,tB;er;o0uz;s,z;e0ut,y the time;cau1f0;ore;se;lt3nd,s 0;far1if,m0soon1t2;uch0; as;hou0;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",Determiner:"trueยฆaBboth,d9e6few,le5mu8neiDplenty,s4th2various,wh0;at0ich0;evC;a0e4is,ose;!t;everal,ome;!ast,s;a1l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er","Adj|Present":"trueยฆa07b04cVdQeNfJhollIidRlEmCnarrIoBp9qua8r7s3t2uttFw0;aKet,ro0;ng,u08;endChin;e2hort,l1mooth,our,pa9tray,u0;re,speU;i2ow;cu6da02leSpaN;eplica01i02;ck;aHerfePr0;eseUime,omV;bscu1pen,wn;atu0e3odeH;re;a2e1ive,ow0;er;an;st,y;ow;a2i1oul,r0;ee,inge;rm;iIke,ncy,st;l1mpty,x0;emHpress;abo4ic7;amp,e2i1oub0ry,ull;le;ffu9re6;fu8libe0;raE;alm,l5o0;mpleCn3ol,rr1unterfe0;it;e0u7;ct;juga8sum7;ea1o0;se;n,r;ankru1lu0;nt;pt;li2pproxi0rticula1;ma0;te;ght","Person|Adj":"trueยฆb3du2earnest,frank,mi2r0san1woo1;an0ich,u1;dy;sty;ella,rown",Modal:"trueยฆc5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Verb:"trueยฆborn,cannot,gonna,has,keep tabs,msg","Person|Verb":"trueยฆb8ch7dr6foster,gra5ja9lan4ma2ni9ollie,p1rob,s0wade;kip,pike,t5ue;at,eg,ier2;ck,r0;k,shal;ce;ce,nt;ew;ase,u1;iff,l1ob,u0;ck;aze,ossom","Person|Date":"trueยฆa2j0sep;an0une;!uary;p0ugust,v0;ril"};const Oo=36,Fo="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",Vo=Fo.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var zo=function(e){if(void 0!==Vo[e])return Vo[e];let t=0,n=1,r=Oo,a=1;for(;n=0;n--,a*=Oo){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t};var Bo=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=So(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=Ko(Eo[e]);qo.test(e)?Object.keys(t).forEach((t=>{if(Ro[t]=e,"Noun|Verb"===e){let e=Wo(t,Qo);Ro[e]="Plural|Verb"}})):Object.keys(t).forEach((t=>{Uo[t]=e}))})),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Uo[e]="Emoticon")),delete Uo[""],delete Uo.null,delete Uo[" "];const _o="Singular";var Zo={beforeTags:{Determiner:_o,Possessive:_o,Acronym:_o,Noun:_o,Adjective:_o,PresentTense:_o,Gerund:_o,PastTense:_o,Infinitive:_o,Date:_o,Ordinal:_o,Demonym:_o},afterTags:{Value:_o,Modal:_o,Copula:_o,PresentTense:_o,PastTense:_o,Demonym:_o,Actor:_o},beforeWords:{the:_o,with:_o,without:_o,of:_o,for:_o,any:_o,all:_o,on:_o,cut:_o,cuts:_o,increase:_o,decrease:_o,raise:_o,drop:_o,save:_o,saved:_o,saves:_o,make:_o,makes:_o,made:_o,minus:_o,plus:_o,than:_o,another:_o,versus:_o,neither:_o,about:_o,favorite:_o,best:_o,daily:_o,weekly:_o,linear:_o,binary:_o,mobile:_o,lexical:_o,technical:_o,computer:_o,scientific:_o,security:_o,government:_o,popular:_o,formal:_o,no:_o,more:_o,one:_o,let:_o,her:_o,his:_o,their:_o,our:_o,us:_o,sheer:_o,monthly:_o,yearly:_o,current:_o,previous:_o,upcoming:_o,last:_o,next:_o,main:_o,initial:_o,final:_o,beginning:_o,end:_o,top:_o,bottom:_o,future:_o,past:_o,major:_o,minor:_o,side:_o,central:_o,peripheral:_o,public:_o,private:_o},afterWords:{of:_o,system:_o,aid:_o,method:_o,utility:_o,tool:_o,reform:_o,therapy:_o,philosophy:_o,room:_o,authority:_o,says:_o,said:_o,wants:_o,wanted:_o,is:_o,did:_o,do:_o,can:_o,wise:_o}};const Xo="Infinitive";var Yo={beforeTags:{Modal:Xo,Adverb:Xo,Negative:Xo,Plural:Xo},afterTags:{Determiner:Xo,Adverb:Xo,Possessive:Xo,Reflexive:Xo,Preposition:Xo,Cardinal:Xo,Comparative:Xo,Superlative:Xo},beforeWords:{i:Xo,we:Xo,you:Xo,they:Xo,to:Xo,please:Xo,will:Xo,have:Xo,had:Xo,would:Xo,could:Xo,should:Xo,do:Xo,did:Xo,does:Xo,can:Xo,must:Xo,us:Xo,me:Xo,let:Xo,even:Xo,when:Xo,help:Xo,he:Xo,she:Xo,it:Xo,being:Xo,bi:Xo,co:Xo,contra:Xo,de:Xo,inter:Xo,intra:Xo,mis:Xo,pre:Xo,out:Xo,counter:Xo,nobody:Xo,somebody:Xo,anybody:Xo,everybody:Xo},afterWords:{the:Xo,me:Xo,you:Xo,him:Xo,us:Xo,her:Xo,his:Xo,them:Xo,they:Xo,it:Xo,himself:Xo,herself:Xo,itself:Xo,myself:Xo,ourselves:Xo,themselves:Xo,something:Xo,anything:Xo,a:Xo,an:Xo,up:Xo,down:Xo,by:Xo,out:Xo,off:Xo,under:Xo,what:Xo,all:Xo,to:Xo,because:Xo,although:Xo,how:Xo,otherwise:Xo,together:Xo,though:Xo,into:Xo,yet:Xo,more:Xo,here:Xo,there:Xo,away:Xo}};var ei={beforeTags:Object.assign({},Yo.beforeTags,Zo.beforeTags,{}),afterTags:Object.assign({},Yo.afterTags,Zo.afterTags,{}),beforeWords:Object.assign({},Yo.beforeWords,Zo.beforeWords,{}),afterWords:Object.assign({},Yo.afterWords,Zo.afterWords,{})};const ti="Adjective";var ni={beforeTags:{Determiner:ti,Possessive:ti,Hyphenated:ti},afterTags:{Adjective:ti},beforeWords:{seem:ti,seemed:ti,seems:ti,feel:ti,feels:ti,felt:ti,stay:ti,appear:ti,appears:ti,appeared:ti,also:ti,over:ti,under:ti,too:ti,it:ti,but:ti,still:ti,really:ti,quite:ti,well:ti,very:ti,truly:ti,how:ti,deeply:ti,hella:ti,profoundly:ti,extremely:ti,so:ti,badly:ti,mostly:ti,totally:ti,awfully:ti,rather:ti,nothing:ti,something:ti,anything:ti,not:ti,me:ti,is:ti,face:ti,faces:ti,faced:ti,look:ti,looks:ti,looked:ti,reveal:ti,reveals:ti,revealed:ti,sound:ti,sounded:ti,sounds:ti,remains:ti,remained:ti,prove:ti,proves:ti,proved:ti,becomes:ti,stays:ti,tastes:ti,taste:ti,smells:ti,smell:ti,gets:ti,grows:ti,as:ti,rings:ti,radiates:ti,conveys:ti,convey:ti,conveyed:ti,of:ti},afterWords:{too:ti,also:ti,or:ti,enough:ti,as:ti}};const ri="Gerund";var ai={beforeTags:{Adverb:ri,Preposition:ri,Conjunction:ri},afterTags:{Adverb:ri,Possessive:ri,Person:ri,Pronoun:ri,Determiner:ri,Copula:ri,Preposition:ri,Conjunction:ri,Comparative:ri},beforeWords:{been:ri,keep:ri,continue:ri,stop:ri,am:ri,be:ri,me:ri,began:ri,start:ri,starts:ri,started:ri,stops:ri,stopped:ri,help:ri,helps:ri,avoid:ri,avoids:ri,love:ri,loves:ri,loved:ri,hate:ri,hates:ri,hated:ri},afterWords:{you:ri,me:ri,her:ri,him:ri,his:ri,them:ri,their:ri,it:ri,this:ri,there:ri,on:ri,about:ri,for:ri,up:ri,down:ri}};const oi="Gerund",ii="Adjective";var si={beforeTags:Object.assign({},ni.beforeTags,ai.beforeTags,{Imperative:oi,Infinitive:ii,Plural:oi}),afterTags:Object.assign({},ni.afterTags,ai.afterTags,{Noun:ii}),beforeWords:Object.assign({},ni.beforeWords,ai.beforeWords,{is:ii,are:oi,was:ii,of:ii,suggest:oi,suggests:oi,suggested:oi,recommend:oi,recommends:oi,recommended:oi,imagine:oi,imagines:oi,imagined:oi,consider:oi,considered:oi,considering:oi,resist:oi,resists:oi,resisted:oi,avoid:oi,avoided:oi,avoiding:oi,except:ii,accept:ii,assess:oi,explore:oi,fear:oi,fears:oi,appreciate:oi,question:oi,help:oi,embrace:oi,with:ii}),afterWords:Object.assign({},ni.afterWords,ai.afterWords,{to:oi,not:oi,the:oi})};const li={beforeTags:{Determiner:void 0,Cardinal:"Noun",PhrasalVerb:"Adjective"},afterTags:{}};var ui={beforeTags:Object.assign({},ni.beforeTags,Zo.beforeTags,li.beforeTags),afterTags:Object.assign({},ni.afterTags,Zo.afterTags,li.afterTags),beforeWords:Object.assign({},ni.beforeWords,Zo.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective",off:"Adjective",out:"Adjective"}),afterWords:Object.assign({},ni.afterWords,Zo.afterWords)};let ci="PastTense",hi="Adjective";const di={beforeTags:{Adverb:ci,Pronoun:ci,ProperNoun:ci,Auxiliary:ci,Noun:ci},afterTags:{Possessive:ci,Pronoun:ci,Determiner:ci,Adverb:ci,Comparative:ci,Date:ci,Gerund:ci},beforeWords:{be:ci,who:ci,get:hi,had:ci,has:ci,have:ci,been:ci,it:ci,as:ci,for:hi,more:hi,always:hi},afterWords:{by:ci,back:ci,out:ci,in:ci,up:ci,down:ci,before:ci,after:ci,for:ci,the:ci,with:ci,as:ci,on:ci,at:ci,between:ci,to:ci,into:ci,us:ci,them:ci,his:ci,her:ci,their:ci,our:ci,me:ci,about:hi}};var gi={beforeTags:Object.assign({},ni.beforeTags,di.beforeTags),afterTags:Object.assign({},ni.afterTags,di.afterTags),beforeWords:Object.assign({},ni.beforeWords,di.beforeWords),afterWords:Object.assign({},ni.afterWords,di.afterWords)};const mi={afterTags:{Noun:"Adjective",Conjunction:void 0}};var pi={beforeTags:Object.assign({},ni.beforeTags,Yo.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},ni.afterTags,Yo.afterTags,mi.afterTags),beforeWords:Object.assign({},ni.beforeWords,Yo.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},ni.afterWords,Yo.afterWords,{to:void 0,as:"Adjective"})};const fi={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},vi={Value:"Gerund"},bi={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},yi={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var wi={beforeTags:Object.assign({},ai.beforeTags,Zo.beforeTags,fi),afterTags:Object.assign({},ai.afterTags,Zo.afterTags,vi),beforeWords:Object.assign({},ai.beforeWords,Zo.beforeWords,bi),afterWords:Object.assign({},ai.afterWords,Zo.afterWords,yi)};const ki="Singular",Pi="Infinitive";var Ai={beforeTags:Object.assign({},Yo.beforeTags,Zo.beforeTags,{Adjective:ki,Particle:ki}),afterTags:Object.assign({},Yo.afterTags,Zo.afterTags,{ProperNoun:Pi,Gerund:Pi,Adjective:Pi,Copula:ki}),beforeWords:Object.assign({},Yo.beforeWords,Zo.beforeWords,{is:ki,was:ki,of:ki,have:null}),afterWords:Object.assign({},Yo.afterWords,Zo.afterWords,{instead:Pi,about:Pi,his:Pi,her:Pi,to:null,by:null,in:null})};const Ci="Person";var ji={beforeTags:{Honorific:Ci,Person:Ci},afterTags:{Person:Ci,ProperNoun:Ci,Verb:Ci},ownTags:{ProperNoun:Ci},beforeWords:{hi:Ci,hey:Ci,yo:Ci,dear:Ci,hello:Ci},afterWords:{said:Ci,says:Ci,told:Ci,tells:Ci,feels:Ci,felt:Ci,seems:Ci,thinks:Ci,thought:Ci,spends:Ci,spendt:Ci,plays:Ci,played:Ci,sing:Ci,sang:Ci,learn:Ci,learned:Ci,wants:Ci,wanted:Ci}};const Ni="Month",xi={beforeTags:{Date:Ni,Value:Ni},afterTags:{Date:Ni,Value:Ni},beforeWords:{by:Ni,in:Ni,on:Ni,during:Ni,after:Ni,before:Ni,between:Ni,until:Ni,til:Ni,sometime:Ni,of:Ni,this:Ni,next:Ni,last:Ni,previous:Ni,following:Ni,with:"Person"},afterWords:{sometime:Ni,in:Ni,of:Ni,until:Ni,the:Ni}};var Ii={beforeTags:Object.assign({},ji.beforeTags,xi.beforeTags),afterTags:Object.assign({},ji.afterTags,xi.afterTags),beforeWords:Object.assign({},ji.beforeWords,xi.beforeWords),afterWords:Object.assign({},ji.afterWords,xi.afterWords)};const Ti="Place",Di={beforeTags:{Place:Ti},afterTags:{Place:Ti,Abbreviation:Ti},beforeWords:{in:Ti,by:Ti,near:Ti,from:Ti,to:Ti},afterWords:{in:Ti,by:Ti,near:Ti,from:Ti,to:Ti,government:Ti,council:Ti,region:Ti,city:Ti}};let Hi="Unit";const Gi={"Actor|Verb":ei,"Adj|Gerund":si,"Adj|Noun":ui,"Adj|Past":gi,"Adj|Present":pi,"Noun|Verb":Ai,"Noun|Gerund":wi,"Person|Noun":{beforeTags:Object.assign({},Zo.beforeTags,ji.beforeTags),afterTags:Object.assign({},Zo.afterTags,ji.afterTags),beforeWords:Object.assign({},Zo.beforeWords,ji.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Zo.afterWords,ji.afterWords)},"Person|Date":Ii,"Person|Verb":{beforeTags:Object.assign({},Zo.beforeTags,ji.beforeTags,Yo.beforeTags),afterTags:Object.assign({},Zo.afterTags,ji.afterTags,Yo.afterTags),beforeWords:Object.assign({},Zo.beforeWords,ji.beforeWords,Yo.beforeWords),afterWords:Object.assign({},Zo.afterWords,ji.afterWords,Yo.afterWords)},"Person|Place":{beforeTags:Object.assign({},Di.beforeTags,ji.beforeTags),afterTags:Object.assign({},Di.afterTags,ji.afterTags),beforeWords:Object.assign({},Di.beforeWords,ji.beforeWords),afterWords:Object.assign({},Di.afterWords,ji.afterWords)},"Person|Adj":{beforeTags:Object.assign({},ji.beforeTags,ni.beforeTags),afterTags:Object.assign({},ji.afterTags,ni.afterTags),beforeWords:Object.assign({},ji.beforeWords,ni.beforeWords),afterWords:Object.assign({},ji.afterWords,ni.afterWords)},"Unit|Noun":{beforeTags:{Value:Hi},afterTags:{},beforeWords:{per:Hi,every:Hi,each:Hi,square:Hi,cubic:Hi,sq:Hi,metric:Hi},afterWords:{per:Hi,squared:Hi,cubed:Hi,long:Hi}}},Ei=(e,t)=>{let n=Object.keys(e).reduce(((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t)),{});return Object.assign(n,t)};Gi["Plural|Verb"]={beforeWords:Ei(Gi["Noun|Verb"].beforeWords,{had:"Plural",have:"Plural"}),afterWords:Ei(Gi["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null,is:"PresentTense",by:"PresentTense"}),beforeTags:Ei(Gi["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:Ei(Gi["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var Oi=Gi;const Fi="Adjective",Vi="Infinitive",zi="PresentTense",Bi="Singular",$i="PastTense",Si="Adverb",Ki="Plural",Mi="Actor",Li="Verb",Ji="Noun",Wi="LastName",qi="Modal",Ui="Place",Ri="Participle";var Qi=[null,null,{ea:Bi,ia:Ji,ic:Fi,ly:Si,"'n":Li,"'t":Li},{oed:$i,ued:$i,xed:$i," so":Si,"'ll":qi,"'re":"Copula",azy:Fi,eer:Ji,end:Li,ped:$i,ffy:Fi,ify:Vi,ing:"Gerund",ize:Vi,ibe:Vi,lar:Fi,mum:Fi,nes:zi,nny:Fi,ous:Fi,que:Fi,ger:Ji,ber:Ji,rol:Bi,sis:Bi,ogy:Bi,oid:Bi,ian:Bi,zes:zi,eld:$i,ken:Ri,ven:Ri,ten:Ri,ect:Vi,ict:Vi,ign:Vi,oze:Vi,ful:Fi,bal:Fi,ton:Ji},{amed:$i,aped:$i,ched:$i,lked:$i,rked:$i,reed:$i,nded:$i,mned:Fi,cted:$i,dged:$i,ield:Bi,akis:Wi,cede:Vi,chuk:Wi,czyk:Wi,ects:zi,iend:Bi,ends:Li,enko:Wi,ette:Bi,iary:Bi,wner:Bi,fies:zi,fore:Si,gate:Vi,gone:Fi,ices:Ki,ints:Ki,ruct:Vi,ines:Ki,ions:Ki,ners:Ki,pers:Ki,lers:Ki,less:Fi,llen:Fi,made:Fi,nsen:Wi,oses:zi,ould:qi,some:Fi,sson:Wi,ians:Ki,tion:Bi,tage:Ji,ique:Bi,tive:Fi,tors:Ji,vice:Bi,lier:Bi,fier:Bi,wned:$i,gent:Bi,tist:Mi,pist:Mi,rist:Mi,mist:Mi,yist:Mi,vist:Mi,ists:Mi,lite:Bi,site:Bi,rite:Bi,mite:Bi,bite:Bi,mate:Bi,date:Bi,ndal:Bi,vent:Bi,uist:Mi,gist:Mi,note:Bi,cide:Bi,ence:Bi,wide:Fi,vide:Vi,ract:Vi,duce:Vi,pose:Vi,eive:Vi,lyze:Vi,lyse:Vi,iant:Fi,nary:Fi,ghty:Fi,uent:Fi,erer:Mi,bury:Ui,dorf:Ji,esty:Ji,wych:Ui,dale:Ui,folk:Ui},{elist:Mi,holic:Bi,phite:Bi,tized:$i,urned:$i,eased:$i,ances:Ki,bound:Fi,ettes:Ki,fully:Si,ishes:zi,ities:Ki,marek:Wi,nssen:Wi,ology:Ji,osome:Bi,tment:Bi,ports:Ki,rough:Fi,tches:zi,tieth:"Ordinal",tures:Ki,wards:Si,where:Si,archy:Ji,pathy:Ji,opoly:Ji,embly:Ji,phate:Ji,ndent:Bi,scent:Bi,onist:Mi,anist:Mi,alist:Mi,olist:Mi,icist:Mi,ounce:Vi,iable:Fi,borne:Fi,gnant:Fi,inant:Fi,igent:Fi,atory:Fi,rient:Bi,dient:Bi,maker:Mi,burgh:Ui,mouth:Ui,ceter:Ui,ville:Ui,worth:Ji},{auskas:Wi,parent:Bi,cedent:Bi,ionary:Bi,cklist:Bi,keeper:Mi,logist:Mi,teenth:"Value",worker:Mi,master:Mi,writer:Mi,brough:Ui,cester:Ui},{logists:Mi,opoulos:Wi,borough:Ui,sdottir:Wi}];const _i="Adjective",Zi="Noun",Xi="Verb";var Yi=[null,null,{},{neo:Zi,bio:Zi,"de-":Xi,"re-":Xi,"un-":Xi,"ex-":Zi},{anti:Zi,auto:Zi,faux:_i,hexa:Zi,kilo:Zi,mono:Zi,nano:Zi,octa:Zi,poly:Zi,semi:_i,tele:Zi,"pro-":_i,"mis-":Xi,"dis-":Xi,"pre-":_i},{anglo:Zi,centi:Zi,ethno:Zi,ferro:Zi,grand:Zi,hepta:Zi,hydro:Zi,intro:Zi,macro:Zi,micro:Zi,milli:Zi,nitro:Zi,penta:Zi,quasi:_i,radio:Zi,tetra:Zi,"omni-":_i,"post-":_i},{pseudo:_i,"extra-":_i,"hyper-":_i,"inter-":_i,"intra-":_i,"deca-":_i},{electro:Zi}];const es="Adjective",ts="Infinitive",ns="PresentTense",rs="Singular",as="PastTense",os="Adverb",is="Expression",ss="Actor",ls="Verb",us="Noun",cs="LastName";var hs={a:[[/.[aeiou]na$/,us,"tuna"],[/.[oau][wvl]ska$/,cs],[/.[^aeiou]ica$/,rs,"harmonica"],[/^([hyj]a+)+$/,is,"haha"]],c:[[/.[^aeiou]ic$/,es]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,as,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,as,"rammed"],[/.[aeiou][sg]hed$/,as,"gushed"],[/.[aeiou]red$/,as,"hired"],[/.[aeiou]r?ried$/,as,"hurried"],[/[^aeiou]ard$/,rs,"steward"],[/[aeiou][^aeiou]id$/,es,""],[/.[vrl]id$/,es,"livid"],[/..led$/,as,"hurled"],[/.[iao]sed$/,as,""],[/[aeiou]n?[cs]ed$/,as,""],[/[aeiou][rl]?[mnf]ed$/,as,""],[/[aeiou][ns]?c?ked$/,as,"bunked"],[/[aeiou]gned$/,as],[/[aeiou][nl]?ged$/,as],[/.[tdbwxyz]ed$/,as],[/[^aeiou][aeiou][tvx]ed$/,as],[/.[cdflmnprstv]ied$/,as,"emptied"]],e:[[/.[lnr]ize$/,ts,"antagonize"],[/.[^aeiou]ise$/,ts,"antagonise"],[/.[aeiou]te$/,ts,"bite"],[/.[^aeiou][ai]ble$/,es,"fixable"],[/.[^aeiou]eable$/,es,"maleable"],[/.[ts]ive$/,es,"festive"],[/[a-z]-like$/,es,"woman-like"]],h:[[/.[^aeiouf]ish$/,es,"cornish"],[/.v[iy]ch$/,cs,"..ovich"],[/^ug?h+$/,is,"ughh"],[/^uh[ -]?oh$/,is,"uhoh"],[/[a-z]-ish$/,es,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,cs,"polish-male"]],k:[[/^(k){2}$/,is,"kkkk"]],l:[[/.[gl]ial$/,es,"familial"],[/.[^aeiou]ful$/,es,"fitful"],[/.[nrtumcd]al$/,es,"natal"],[/.[^aeiou][ei]al$/,es,"familial"]],m:[[/.[^aeiou]ium$/,rs,"magnesium"],[/[^aeiou]ism$/,rs,"schism"],[/^[hu]m+$/,is,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,es,"republican"],[/[^aeiou]ician$/,ss,"musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,is,"noooo"],[/^(yo)+$/,is,"yoo"],[/^wo{2,}[pt]?$/,is,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,rs],[/[^i]fer$/,ts],[/.[^aeiou][ao]pher$/,ss],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,es],[/[aeiou].*ist$/,es],[/^[a-z]et$/,ls]],s:[[/.[^aeiou]ises$/,ns],[/.[rln]ates$/,ns],[/.[^z]ens$/,ls],[/.[lstrn]us$/,rs],[/.[aeiou]sks$/,ns],[/.[aeiou]kes$/,ns],[/[aeiou][^aeiou]is$/,rs],[/[a-z]'s$/,us],[/^yes+$/,is]],v:[[/.[^aeiou][ai][kln]ov$/,cs]],y:[[/.[cts]hy$/,es],[/.[st]ty$/,es],[/.[tnl]ary$/,es],[/.[oe]ry$/,rs],[/[rdntkbhs]ly$/,os],[/.(gg|bb|zz)ly$/,es],[/...lly$/,os],[/.[gk]y$/,es],[/[bszmp]{2}y$/,es],[/.[ai]my$/,es],[/[ea]{2}zy$/,es],[/.[^aeiou]ity$/,rs]]};const ds="Verb",gs="Noun";var ms={leftTags:[["Adjective",gs],["Possessive",gs],["Determiner",gs],["Adverb",ds],["Pronoun",ds],["Value",gs],["Ordinal",gs],["Modal",ds],["Superlative",gs],["Demonym",gs],["Honorific","Person"]],leftWords:[["i",ds],["first",gs],["it",ds],["there",ds],["not",ds],["because",gs],["if",gs],["but",gs],["who",ds],["this",gs],["his",gs],["when",gs],["you",ds],["very","Adjective"],["old",gs],["never",ds],["before",gs],["a",gs],["the",gs],["been",ds]],rightTags:[["Copula",gs],["PastTense",gs],["Conjunction",gs],["Modal",gs]],rightWords:[["there",ds],["me",ds],["man","Adjective"],["him",ds],["it",ds],["were",gs],["took",gs],["himself",ds],["went",gs],["who",gs],["jr","Person"]]},ps={fwd:"3:ser,ierยฆ1er:h,t,f,l,nยฆ1r:eยฆ2er:ss,or,om",both:"3er:ver,ear,almยฆ3ner:hinยฆ3ter:latยฆ2mer:imยฆ2er:ng,rm,mbยฆ2ber:ibยฆ2ger:igยฆ1er:w,p,k,dยฆier:y",rev:"1:tter,yerยฆ2:uer,ver,ffer,oner,eler,ller,iler,ster,cer,uler,sher,ener,gher,aner,adder,nter,eter,rter,hter,rner,fterยฆ3:oser,ooler,eafer,user,airer,bler,maler,tler,eater,uger,rger,ainer,urer,ealer,icher,pler,emner,icter,nser,iserยฆ4:arser,viner,ucher,rosser,somer,ndomer,moter,oother,uarer,hiterยฆ5:nuiner,esser,emierยฆar:urther",ex:"worse:badยฆbetter:goodยฆ4er:fair,gray,poorยฆ1urther:farยฆ3ter:fat,hot,wetยฆ3der:mad,sadยฆ3er:shy,funยฆ4der:gladยฆ:ยฆ4r:cute,dire,fake,fine,free,lame,late,pale,rare,ripe,rude,safe,sore,tame,wideยฆ5r:eerie,stale"},fs={fwd:"1:nning,tting,rring,pping,eing,mming,gging,dding,bbing,kkingยฆ2:eking,oling,eling,emingยฆ3:velling,siting,uiting,fiting,loting,geting,ialing,cellingยฆ4:graming",both:"1:aing,iing,fing,xing,ying,oing,hing,wingยฆ2:tzing,rping,izzing,bting,mning,sping,wling,rling,wding,rbing,uping,lming,wning,mping,oning,lting,mbing,lking,fting,hting,sking,gning,pting,cking,ening,nking,iling,eping,ering,rting,rming,cting,lping,ssing,nting,nding,lding,sting,rning,rding,rkingยฆ3:belling,siping,toming,yaking,uaking,oaning,auling,ooping,aiding,naping,euring,tolling,uzzing,ganing,haning,ualing,halling,iasing,auding,ieting,ceting,ouling,voring,ralling,garing,joring,oaming,oaking,roring,nelling,ooring,uelling,eaming,ooding,eaping,eeting,ooting,ooming,xiting,keting,ooking,ulling,airing,oaring,biting,outing,oiting,earing,naling,oading,eeding,ouring,eaking,aiming,illing,oining,eaning,onging,ealing,aining,eadingยฆ4:thoming,melling,aboring,ivoting,weating,dfilling,onoring,eriting,imiting,tialling,rgining,otoring,linging,winging,lleting,louding,spelling,mpelling,heating,feating,opelling,choring,welling,ymaking,ctoring,calling,peating,iloring,laiting,utoring,uditing,mmaking,loating,iciting,waiting,mbating,voiding,otalling,nsoring,nselling,ocusing,itoring,elopingยฆ5:rselling,umpeting,atrolling,treating,tselling,rpreting,pringing,ummeting,ossoming,elmaking,eselling,rediting,totyping,onmaking,rfeiting,ntrollingยฆ5e:chmaking,dkeeping,severing,erouting,ecreting,ephoning,uthoring,ravening,reathing,pediting,erfering,eotyping,fringing,entoring,ombining,ompetingยฆ4e:emaking,eething,twining,rruling,chuting,xciting,rseding,scoping,edoring,pinging,lunging,agining,craping,pleting,eleting,nciting,nfining,ncoding,tponing,ecoding,writing,esaling,nvening,gnoring,evoting,mpeding,rvening,dhering,mpiling,storing,nviting,ploringยฆ3e:tining,nuring,saking,miring,haling,ceding,xuding,rining,nuting,laring,caring,miling,riding,hoking,piring,lading,curing,uading,noting,taping,futing,paring,hading,loding,siring,guring,vading,voking,during,niting,laning,caping,luting,muting,ruding,ciding,juring,laming,caling,hining,uoting,liding,ciling,duling,tuting,puting,cuting,coring,uiding,tiring,turing,siding,rading,enging,haping,buting,lining,taking,anging,haring,uiring,coming,mining,moting,suring,viding,ludingยฆ2e:tring,zling,uging,oging,gling,iging,vring,fling,lging,obing,psing,pling,ubing,cling,dling,wsing,iking,rsing,dging,kling,ysing,tling,rging,eging,nsing,uning,osing,uming,using,ibing,bling,aging,ising,asing,atingยฆ2ie:rlyingยฆ1e:zing,uing,cing,ving",rev:"ying:ieยฆ1ing:se,ke,te,we,ne,re,de,pe,me,le,c,heยฆ2ing:ll,ng,dd,ee,ye,oe,rg,usยฆ2ning:unยฆ2ging:og,ag,ug,ig,egยฆ2ming:umยฆ2bing:ub,ab,eb,obยฆ3ning:lan,can,hin,pin,winยฆ3ring:cur,lur,tir,tar,pur,carยฆ3ing:ait,del,eel,fin,eat,oat,eem,lel,ool,ein,uinยฆ3ping:rop,rap,top,uip,wap,hip,hop,lap,rip,capยฆ3ming:tem,wim,rim,kim,limยฆ3ting:mat,cut,pot,lit,lot,hat,set,pit,putยฆ3ding:hed,bed,bidยฆ3king:rekยฆ3ling:cil,pelยฆ3bing:ribยฆ4ning:eginยฆ4ing:isit,ruit,ilot,nsit,dget,rkel,ival,rcelยฆ4ring:efer,nferยฆ4ting:rmit,mmit,ysit,dmit,emit,bmit,tfit,gretยฆ4ling:evel,xcel,ivelยฆ4ding:hredยฆ5ing:arget,posit,rofitยฆ5ring:nsferยฆ5ting:nsmit,orget,cquitยฆ5ling:ancel,istil",ex:"3:adding,eating,aiming,aiding,airing,outing,gassing,setting,getting,putting,cutting,winning,sitting,betting,mapping,tapping,letting,bidding,hitting,tanning,netting,popping,fitting,capping,lapping,barring,banning,vetting,topping,rotting,tipping,potting,wetting,pitting,dipping,budding,hemming,pinning,jetting,kidding,padding,podding,sipping,wedding,bedding,donning,warring,penning,gutting,cueing,wadding,petting,ripping,napping,matting,tinning,binning,dimming,hopping,mopping,nodding,panning,rapping,ridding,sinningยฆ4:selling,falling,calling,waiting,editing,telling,rolling,heating,boating,hanging,beating,coating,singing,tolling,felling,polling,discing,seating,voiding,gelling,yelling,baiting,reining,ruining,seeking,spanning,stepping,knitting,emitting,slipping,quitting,dialing,omitting,clipping,shutting,skinning,abutting,flipping,trotting,cramming,fretting,suitingยฆ5:bringing,treating,spelling,stalling,trolling,expelling,rivaling,wringing,deterring,singeing,befitting,refittingยฆ6:enrolling,distilling,scrolling,strolling,caucusing,travellingยฆ7:installing,redefining,stencilling,recharging,overeating,benefiting,unraveling,programingยฆ9:reprogrammingยฆis:beingยฆ2e:using,aging,owingยฆ3e:making,taking,coming,noting,hiring,filing,coding,citing,doping,baking,coping,hoping,lading,caring,naming,voting,riding,mining,curing,lining,ruling,typing,boring,dining,firing,hiding,piling,taping,waning,baling,boning,faring,honing,wiping,luring,timing,wading,piping,fading,biting,zoning,daring,waking,gaming,raking,ceding,tiring,coking,wining,joking,paring,gaping,poking,pining,coring,liming,toting,roping,wiring,achingยฆ4e:writing,storing,eroding,framing,smoking,tasting,wasting,phoning,shaking,abiding,braking,flaking,pasting,priming,shoring,sloping,withing,hingingยฆ5e:defining,refining,renaming,swathing,fringing,recitingยฆ1ie:dying,tying,lying,vyingยฆ7e:sunbathing"},vs={fwd:"1:mtยฆ2:llenยฆ3:iven,akenยฆ:neยฆy:in",both:"1:wnยฆ2:me,atenยฆ3:seen,bidden,isenยฆ4:roven,astenยฆ3l:piltยฆ3d:uiltยฆ2e:ittenยฆ1im:wumยฆ1eak:pokenยฆ1ine:honeยฆ1ose:osenยฆ1in:gunยฆ1ake:wokenยฆear:ornยฆeal:olenยฆeeze:ozenยฆet:ottenยฆink:unkยฆing:ung",rev:"2:unยฆoken:eakยฆought:eekยฆoven:eaveยฆ1ne:oยฆ1own:lyยฆ1den:deยฆ1in:ayยฆ2t:amยฆ2n:eeยฆ3en:allยฆ4n:rive,sake,takeยฆ5n:rgive",ex:"2:beenยฆ3:seen,runยฆ4:given,takenยฆ5:shakenยฆ2eak:brokenยฆ1ive:doveยฆ2y:flownยฆ3e:hidden,riddenยฆ1eek:soughtยฆ1ake:wokenยฆ1eave:woven"},bs={fwd:"1:oesยฆ1ve:as",both:"1:xesยฆ2:zzes,ches,shes,ssesยฆ3:iasesยฆ2y:llies,pliesยฆ1y:cies,bies,ties,vies,nies,pies,dies,ries,fiesยฆ:s",rev:"1ies:lyยฆ2es:us,go,doยฆ3es:cho,eto",ex:"2:does,goesยฆ3:gassesยฆ5:focusesยฆis:areยฆ3y:reliesยฆ2y:fliesยฆ2ve:has"},ys={fwd:"1st:eยฆ1est:l,m,f,sยฆ1iest:ceyยฆ2est:or,irยฆ3est:ver",both:"4:eastยฆ5:hwestยฆ5lest:erfulยฆ4est:weet,lgar,tter,oungยฆ4most:uterยฆ3est:ger,der,rey,iet,ong,earยฆ3test:latยฆ3most:nerยฆ2est:pt,ft,nt,ct,rt,htยฆ2test:itยฆ2gest:igยฆ1est:b,k,n,p,h,d,wยฆiest:y",rev:"1:ttest,nnest,yestยฆ2:sest,stest,rmest,cest,vest,lmest,olest,ilest,ulest,ssest,imest,uestยฆ3:rgest,eatest,oorest,plest,allest,urest,iefest,uelest,blest,ugest,amest,yalest,ealest,illest,tlest,itestยฆ4:cerest,eriest,somest,rmalest,ndomest,motest,uarest,tiffestยฆ5:leverest,rangestยฆar:urthestยฆ3ey:riciest",ex:"best:goodยฆworst:badยฆ5est:greatยฆ4est:fast,full,fair,dullยฆ3test:hot,wet,fatยฆ4nest:thinยฆ1urthest:farยฆ3est:gay,shy,illยฆ4test:neatยฆ4st:late,wide,fine,safe,cute,fake,pale,rare,rude,sore,ripe,direยฆ6st:severe"},ws={fwd:"1:tistic,eable,lful,sful,ting,ttyยฆ2:onate,rtable,geous,ced,seful,ctfulยฆ3:ortive,entedยฆarity:earยฆy:eticยฆfulness:begoneยฆ1ity:reยฆ1y:tiful,gicยฆ2ity:ile,imous,ilous,imeยฆ2ion:atedยฆ2eness:ivingยฆ2y:triousยฆ2ation:iringยฆ2tion:vantยฆ3ion:ectยฆ3ce:mant,manticยฆ3tion:irableยฆ3y:est,esticยฆ3m:mistic,listicยฆ3ess:ningยฆ4n:utiousยฆ4on:rative,native,vative,ectiveยฆ4ce:erant",both:"1:king,wingยฆ2:alous,ltuous,oyful,rdousยฆ3:gorous,ectable,werful,amaticยฆ4:oised,usical,agical,raceful,ocused,lined,ightfulยฆ5ness:stful,lding,itous,nuous,ulous,otous,nable,gious,ayful,rvous,ntous,lsive,peful,entle,ciful,osive,leful,isive,ncise,reful,miousยฆ5ty:ivaciousยฆ5ties:ubtleยฆ5ce:ilient,adiant,atientยฆ5cy:icientยฆ5sm:gmaticยฆ5on:sessive,dictiveยฆ5ity:pular,sonal,eative,enticยฆ5sity:uminousยฆ5ism:conicยฆ5nce:mperateยฆ5ility:mitableยฆ5ment:xcitedยฆ5n:bitiousยฆ4cy:brant,etent,curateยฆ4ility:erable,acable,icable,ptableยฆ4ty:nacious,aive,oyal,daciousยฆ4n:iciousยฆ4ce:vient,erent,stent,ndent,dient,quent,identยฆ4ness:adic,ound,hing,pant,sant,oing,oist,tuteยฆ4icity:impleยฆ4ment:fined,musedยฆ4ism:oticยฆ4ry:danticยฆ4ity:tund,eralยฆ4edness:handยฆ4on:uitiveยฆ4lity:pitableยฆ4sm:eroic,namicยฆ4sity:nerousยฆ3th:armยฆ3ility:pable,bable,dable,iableยฆ3cy:hant,nant,icateยฆ3ness:red,hin,nse,ict,iet,ite,oud,ind,ied,rceยฆ3ion:luteยฆ3ity:ual,gal,volous,ialยฆ3ce:sent,fensive,lant,gant,gent,lent,dantยฆ3on:asiveยฆ3m:fist,sistic,iasticยฆ3y:terious,xurious,ronic,tasticยฆ3ur:amorousยฆ3e:tunateยฆ3ation:minedยฆ3sy:rteousยฆ3ty:ainยฆ3ry:aveยฆ3ment:azedยฆ2ness:de,on,ue,rn,ur,ft,rp,pe,om,ge,rd,od,ay,ss,er,ll,oy,ap,ht,ld,ad,rtยฆ2inousness:umousยฆ2ity:neous,ene,id,aneยฆ2cy:bate,lateยฆ2ation:izedยฆ2ility:oble,ibleยฆ2y:odicยฆ2e:oving,aringยฆ2s:ostยฆ2itude:ptยฆ2dom:eeยฆ2ance:uringยฆ2tion:reetยฆ2ion:otedยฆ2sion:endingยฆ2liness:anยฆ2or:rdentยฆ1th:ungยฆ1e:uableยฆ1ness:w,h,k,fยฆ1ility:mbleยฆ1or:ventยฆ1ement:gingยฆ1tiquity:ncientยฆ1ment:hedยฆverty:orยฆength:ongยฆeat:otยฆpth:epยฆiness:y",rev:"",ex:"5:forceful,humorousยฆ8:charismaticยฆ13:understandingยฆ5ity:activeยฆ11ness:adventurous,inquisitive,resourcefulยฆ8on:aggressive,automatic,perceptiveยฆ7ness:amorous,fatuous,furtive,ominous,seriousยฆ5ness:ample,sweetยฆ12ness:apprehensive,cantankerous,contemptuous,ostentatiousยฆ13ness:argumentative,conscientiousยฆ9ness:assertive,facetious,imperious,inventive,oblivious,rapacious,receptive,seditious,whimsicalยฆ10ness:attractive,expressive,impressive,loquacious,salubrious,thoughtfulยฆ3edom:boringยฆ4ness:calm,fast,keen,tameยฆ8ness:cheerful,gracious,specious,spurious,timorous,unctuousยฆ5sity:curiousยฆ9ion:deliberateยฆ8ion:desperateยฆ6e:expensiveยฆ7ce:fragrantยฆ3y:furiousยฆ9ility:ineluctableยฆ6ism:mysticalยฆ8ity:physical,proactive,sensitive,verticalยฆ5cy:pliantยฆ7ity:positiveยฆ9ity:practicalยฆ12ism:professionalยฆ6ce:prudentยฆ3ness:redยฆ6cy:vagrantยฆ3dom:wise"};var ks=function(e="",t={}){let n=function(e,t={}){return t.hasOwnProperty(e)?t[e]:null}(e,t.ex);return n=n||function(e,t=[]){for(let n=0;n=1;r-=1){let a=e.length-r,o=e.substring(a,e.length);if(!0===t.hasOwnProperty(o))return e.slice(0,a)+t[o];if(!0===n.hasOwnProperty(o))return e.slice(0,a)+n[o]}return t.hasOwnProperty("")?e+t[""]:n.hasOwnProperty("")?e+n[""]:null}(e,t.fwd,t.both),n=n||e,n};const Ps=function(e){return Object.entries(e).reduce(((e,t)=>(e[t[1]]=t[0],e)),{})};var As=function(e={}){return{reversed:!0,both:Ps(e.both),ex:Ps(e.ex),fwd:e.rev||{}}};const Cs=/^([0-9]+)/,js=function(e){let t=function(e){let t={};return e.split("ยฆ").forEach((e=>{let[n,r]=e.split(":");r=(r||"").split(","),r.forEach((e=>{t[e]=n}))})),t}(e);return Object.keys(t).reduce(((e,n)=>(e[n]=function(e="",t=""){let n=(t=String(t)).match(Cs);if(null===n)return t;let r=Number(n[1])||0;return e.substring(0,r)+t.replace(Cs,"")}(n,t[n]),e)),{})};var Ns=function(e={}){return"string"==typeof e&&(e=JSON.parse(e)),e.fwd=js(e.fwd||""),e.both=js(e.both||""),e.rev=js(e.rev||""),e.ex=js(e.ex||""),e};const xs=Ns({fwd:"1:tted,wed,gged,nned,een,rred,pped,yed,bbed,oed,dded,rd,wn,mmedยฆ2:eed,nded,et,hted,st,oled,ut,emed,eled,lded,ken,rt,nked,apt,ant,eped,ekedยฆ3:eared,eat,eaded,nelled,ealt,eeded,ooted,eaked,eaned,eeted,mited,bid,uit,ead,uited,ealed,geted,velled,ialed,belledยฆ4:ebuted,hined,comedยฆy:iedยฆome:ameยฆear:oreยฆind:oundยฆing:ung,angยฆep:ptยฆink:ank,unkยฆig:ugยฆall:ellยฆee:awยฆive:aveยฆeeze:ozeยฆold:eldยฆave:ftยฆake:ookยฆell:oldยฆite:oteยฆide:odeยฆine:oneยฆin:un,onยฆeal:oleยฆim:amยฆie:ayยฆand:oodยฆ1ise:roseยฆ1eak:rokeยฆ1ing:roughtยฆ1ive:roveยฆ1el:eltยฆ1id:badeยฆ1et:gotยฆ1y:aidยฆ1it:satยฆ3e:lidยฆ3d:pent",both:"1:aed,fed,xed,hedยฆ2:sged,xted,wled,rped,lked,kied,lmed,lped,uped,bted,rbed,rked,wned,rled,mped,fted,mned,mbed,zzed,omed,ened,cked,gned,lted,sked,ued,zed,nted,ered,rted,rmed,ced,sted,rned,ssed,rded,pted,ved,ctedยฆ3:cled,eined,siped,ooned,uked,ymed,jored,ouded,ioted,oaned,lged,asped,iged,mured,oided,eiled,yped,taled,moned,yled,lit,kled,oaked,gled,naled,fled,uined,oared,valled,koned,soned,aided,obed,ibed,meted,nicked,rored,micked,keted,vred,ooped,oaded,rited,aired,auled,filled,ouled,ooded,ceted,tolled,oited,bited,aped,tled,vored,dled,eamed,nsed,rsed,sited,owded,pled,sored,rged,osed,pelled,oured,psed,oated,loned,aimed,illed,eured,tred,ioned,celled,bled,wsed,ooked,oiled,itzed,iked,iased,onged,ased,ailed,uned,umed,ained,auded,nulled,ysed,eged,ised,aged,oined,ated,used,dged,donedยฆ4:ntied,efited,uaked,caded,fired,roped,halled,roked,himed,culed,tared,lared,tuted,uared,routed,pited,naked,miled,houted,helled,hared,cored,caled,tired,peated,futed,ciled,called,tined,moted,filed,sided,poned,iloted,honed,lleted,huted,ruled,cured,named,preted,vaded,sured,talled,haled,peded,gined,nited,uided,ramed,feited,laked,gured,ctored,unged,pired,cuted,voked,eloped,ralled,rined,coded,icited,vided,uaded,voted,mined,sired,noted,lined,nselled,luted,jured,fided,puted,piled,pared,olored,cided,hoked,enged,tured,geoned,cotted,lamed,uiled,waited,udited,anged,luded,mired,uired,radedยฆ5:modelled,izzled,eleted,umpeted,ailored,rseded,treated,eduled,ecited,rammed,eceded,atrolled,nitored,basted,twined,itialled,ncited,gnored,ploded,xcited,nrolled,namelled,plored,efeated,redited,ntrolled,nfined,pleted,llided,lcined,eathed,ibuted,lloted,dhered,ccededยฆ3ad:sledยฆ2aw:drewยฆ2ot:hotยฆ2ke:madeยฆ2ow:hrew,grewยฆ2ose:hoseยฆ2d:iltยฆ2in:eganยฆ1un:ranยฆ1ink:houghtยฆ1ick:tuckยฆ1ike:ruckยฆ1eak:poke,nuckยฆ1it:patยฆ1o:didยฆ1ow:newยฆ1ake:wokeยฆgo:went",rev:"3:rst,hed,hut,cut,setยฆ4:tbidยฆ5:dcast,eread,pread,erbidยฆought:uy,eekยฆ1ied:ny,ly,dy,ry,fy,py,vy,by,ty,cyยฆ1ung:ling,ting,wingยฆ1pt:eepยฆ1ank:rinkยฆ1ore:bear,wearยฆ1ave:giveยฆ1oze:reezeยฆ1ound:rind,windยฆ1ook:take,hakeยฆ1aw:seeยฆ1old:sellยฆ1ote:riteยฆ1ole:tealยฆ1unk:tinkยฆ1am:wimยฆ1ay:lieยฆ1ood:tandยฆ1eld:holdยฆ2d:he,ge,re,le,leed,ne,reed,be,ye,lee,pe,weยฆ2ed:dd,oy,or,ey,gg,rr,us,ew,toยฆ2ame:ecome,rcomeยฆ2ped:apยฆ2ged:ag,og,ug,egยฆ2bed:ub,ab,ib,obยฆ2lt:neelยฆ2id:payยฆ2ang:pringยฆ2ove:triveยฆ2med:umยฆ2ode:rrideยฆ2at:ysitยฆ3ted:mit,hat,mat,lat,pot,rot,batยฆ3ed:low,end,tow,und,ond,eem,lay,cho,dow,xit,eld,ald,uld,law,lel,eat,oll,ray,ank,fin,oam,out,how,iek,tay,haw,ait,vet,say,cay,bowยฆ3d:ste,ede,ode,ete,ree,ude,ame,oke,ote,ime,ute,adeยฆ3red:lur,cur,pur,carยฆ3ped:hop,rop,uip,rip,lip,tep,topยฆ3ded:bed,rod,kidยฆ3ade:orbidยฆ3led:uelยฆ3ned:lan,can,kin,pan,tunยฆ3med:rim,limยฆ4ted:quit,llotยฆ4ed:pear,rrow,rand,lean,mand,anel,pand,reet,link,abel,evel,imit,ceed,ruit,mind,peal,veal,hool,head,pell,well,mell,uell,band,hear,weakยฆ4led:nnel,qual,ebel,ivelยฆ4red:nfer,efer,sferยฆ4n:sake,trewยฆ4d:nteeยฆ4ded:hredยฆ4ned:rpinยฆ5ed:light,nceal,right,ndear,arget,hread,eight,rtial,ebootยฆ5d:edite,nviteยฆ5ted:egretยฆ5led:ravel",ex:"2:been,uppedยฆ3:added,aged,aided,aimed,aired,bid,died,dyed,egged,erred,eyed,fit,gassed,hit,lied,owed,pent,pied,tied,used,vied,oiled,outed,banned,barred,bet,canned,cut,dipped,donned,ended,feed,inked,jarred,let,manned,mowed,netted,padded,panned,pitted,popped,potted,put,set,sewn,sowed,tanned,tipped,topped,vowed,weed,bowed,jammed,binned,dimmed,hopped,mopped,nodded,pinned,rigged,sinned,towed,vettedยฆ4:ached,baked,baled,boned,bored,called,caned,cared,ceded,cited,coded,cored,cubed,cured,dared,dined,edited,exited,faked,fared,filed,fined,fired,fuelled,gamed,gelled,hired,hoped,joked,lined,mined,named,noted,piled,poked,polled,pored,pulled,reaped,roamed,rolled,ruled,seated,shed,sided,timed,tolled,toned,voted,waited,walled,waned,winged,wiped,wired,zoned,yelled,tamed,lubed,roped,faded,mired,caked,honed,banged,culled,heated,raked,welled,banded,beat,cast,cooled,cost,dealt,feared,folded,footed,handed,headed,heard,hurt,knitted,landed,leaked,leapt,linked,meant,minded,molded,neared,needed,peaked,plodded,plotted,pooled,quit,read,rooted,sealed,seeded,seeped,shipped,shunned,skimmed,slammed,sparred,stemmed,stirred,suited,thinned,twinned,swayed,winked,dialed,abutted,blotted,fretted,healed,heeded,peeled,reeledยฆ5:basted,cheated,equalled,eroded,exiled,focused,opined,pleated,primed,quoted,scouted,shored,sloped,smoked,sniped,spelled,spouted,routed,staked,stored,swelled,tasted,treated,wasted,smelled,dwelled,honored,prided,quelled,eloped,scared,coveted,sweated,breaded,cleared,debuted,deterred,freaked,modeled,pleaded,rebutted,speededยฆ6:anchored,defined,endured,impaled,invited,refined,revered,strolled,cringed,recast,thrust,unfoldedยฆ7:authored,combined,competed,conceded,convened,excreted,extruded,redefined,restored,secreted,rescinded,welcomedยฆ8:expedited,infringedยฆ9:interfered,intervened,perseveredยฆ10:contravenedยฆeat:ateยฆis:wasยฆgo:wentยฆare:wereยฆ3d:bent,lent,rent,sentยฆ3e:bit,fled,hid,lostยฆ3ed:bled,bredยฆ2ow:blew,grewยฆ1uy:boughtยฆ2tch:caughtยฆ1o:didยฆ1ive:dove,gaveยฆ2aw:drewยฆ2ed:fedยฆ2y:flew,laid,paid,saidยฆ1ight:foughtยฆ1et:gotยฆ2ve:hadยฆ1ang:hungยฆ2ad:ledยฆ2ght:litยฆ2ke:madeยฆ2et:metยฆ1un:ranยฆ1ise:roseยฆ1it:satยฆ1eek:soughtยฆ1each:taughtยฆ1ake:woke,tookยฆ1eave:woveยฆ2ise:aroseยฆ1ear:bore,tore,woreยฆ1ind:bound,found,woundยฆ2eak:brokeยฆ2ing:brought,wrungยฆ1ome:cameยฆ2ive:droveยฆ1ig:dugยฆ1all:fellยฆ2el:feltยฆ4et:forgotยฆ1old:heldยฆ2ave:leftยฆ1ing:rang,sangยฆ1ide:rodeยฆ1ink:sankยฆ1ee:sawยฆ2ine:shoneยฆ4e:slidยฆ1ell:sold,toldยฆ4d:spentยฆ2in:spunยฆ1in:won"}),Is=Ns(bs),Ts=Ns(fs),Ds=Ns(vs),Hs=As(xs),Gs=As(Is),Es=As(Ts),Os=As(Ds),Fs=Ns(ps),Vs=Ns(ys);var zs={fromPast:xs,fromPresent:Is,fromGerund:Ts,fromParticiple:Ds,toPast:Hs,toPresent:Gs,toGerund:Es,toParticiple:Os,toComparative:Fs,toSuperlative:Vs,fromComparative:As(Fs),fromSuperlative:As(Vs),adjToNoun:Ns(ws)},Bs=["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","faction","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","politburo","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","subsidiary","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce(((e,t)=>(e[t]=!0,e)),{}),$s=["atoll","basin","bay","beach","bluff","bog","camp","canyon","canyons","cape","cave","caves","cliffs","coast","cove","coves","crater","creek","desert","dune","dunes","escarpment","estuary","falls","fjord","fjords","forest","forests","glacier","gorge","gorges","gulf","gully","highland","hill","hills","inlet","island","islands","isthmus","knoll","lagoon","lake","marsh","marshes","mount","mountain","mountains","narrows","peninsula","plains","plateau","pond","rapids","ravine","reef","reefs","ridge","river","rivers","sandhill","shoal","shore","shoreline","shores","strait","straits","stream","swamp","tombolo","trail","trails","trench","valley","vallies","volcano","waterfall","watershed","wetland","woods","burough","county","district","municipality","prefecture","province","region","reservation","state","territory","borough","metropolis","downtown","uptown","midtown","city","town","township","hamlet","country","kingdom","enclave","neighbourhood","neighborhood","kingdom","ward","zone","airport","amphitheater","arch","arena","auditorium","bar","barn","basilica","battlefield","bridge","building","castle","centre","coliseum","cineplex","complex","dam","farm","field","fort","garden","gardens","gymnasium","hall","house","levee","library","memorial","monument","museum","gallery","palace","pillar","pits","plantation","playhouse","quarry","sportsfield","sportsplex","stadium","terrace","terraces","theater","tower","park","parks","site","raceway","sportsplex","st","street","rd","road","crescent","cr","way","tr","terrace","avenue","ave"].reduce(((e,t)=>(e[t]=!0,e)),{}),Ss=[[/([^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"],[/(..ase)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 Ks=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(Ls[t].forEach((n=>e[n]=t)),e)),{});var Js=Ls;var Ws=function(e){let t=e.substring(e.length-3);if(!0===Js.hasOwnProperty(t))return Js[t];let n=e.substring(e.length-2);return!0===Js.hasOwnProperty(n)?Js[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const qs={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var Us=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=Ws(e)),qs.hasOwnProperty(e))c=qs[e];else if("Participle"===n)c=ks(l,i);else if("PastTense"===n)c=ks(l,r);else if("PresentTense"===n)c=ks(l,a);else{if("Gerund"!==n)return e;c=ks(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c};var Rs=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:i,PastTense:ks(i,n),PresentTense:ks(i,r),Gerund:ks(i,a),FutureTense:"will "+i},u=ks(i,o);if(u!==e&&u!==l.PastTense){let n=t.one.lexicon||{};"Participle"!==n[u]&&"Adjective"!==n[u]||("play"===e&&(u="played"),l.Participle=u)}return s&&Object.keys(l).forEach((e=>{l[e]+=" "+s})),l};var Qs={toInfinitive:Us,conjugate:Rs,all:function(e,t){let n=Rs(e,t);return delete n.FutureTense,Object.values(n).filter((e=>e))}};const _s=function(e,t){const n=t.two.models.toSuperlative;return ks(e,n)},Zs=function(e,t){const n=t.two.models.toComparative;return ks(e,n)};var Xs=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 Ys="ically",el=new Set(["analyt"+Ys,"chem"+Ys,"class"+Ys,"clin"+Ys,"crit"+Ys,"ecolog"+Ys,"electr"+Ys,"empir"+Ys,"frant"+Ys,"grammat"+Ys,"ident"+Ys,"ideolog"+Ys,"log"+Ys,"mag"+Ys,"mathemat"+Ys,"mechan"+Ys,"med"+Ys,"method"+Ys,"method"+Ys,"mus"+Ys,"phys"+Ys,"phys"+Ys,"polit"+Ys,"pract"+Ys,"rad"+Ys,"satir"+Ys,"statist"+Ys,"techn"+Ys,"technolog"+Ys,"theoret"+Ys,"typ"+Ys,"vert"+Ys,"whims"+Ys]),tl=[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"}],nl=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"]),rl={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"quick",superbly:"superb",cynically:"cynical",well:"good"};const al=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],ol={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var il=function(e){if(ol.hasOwnProperty(e))return ol[e];let t=Xs(e,al);return t||(t=e+"ly"),t};var sl={toSuperlative:_s,toComparative:Zs,toAdverb:il,toNoun:function(e,t){const n=t.two.models.adjToNoun;return ks(e,n)},fromAdverb:function(e){return e.endsWith("ly")?el.has(e)?e.replace(/ically/,"ical"):nl.has(e)?null:rl.hasOwnProperty(e)?rl[e]:Xs(e,tl)||e:null},fromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return ks(e,n)},fromComparative:function(e,t){const n=t.two.models.fromComparative;return ks(e,n)},all:function(e,t){let n=[e];return n.push(_s(e,t)),n.push(Zs(e,t)),n.push(il(e)),n=n.filter((e=>e)),n=new Set(n),Array.from(n)}},ll={noun:Ms,verb:Qs,adjective:sl},ul={Singular:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.noun.toPlural(e,r);a[o]||(t[o]=t[o]||"Plural")},Actor:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.noun.toPlural(e,r);a[o]||(t[o]=t[o]||["Plural","Actor"])},Comparable:(e,t,n,r)=>{let a=r.one.lexicon,{toSuperlative:o,toComparative:i}=n.two.transform.adjective,s=o(e,r);a[s]||(t[s]=t[s]||"Superlative");let l=i(e,r);a[l]||(t[l]=t[l]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,r)=>{let a=n.two.transform.noun.toPlural(e,r);t[a]=t[a]||["Demonym","Plural"]},Infinitive:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.verb.conjugate(e,r);Object.entries(o).forEach((e=>{a[e[1]]||t[e[1]]||"FutureTense"===e[0]||(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.verb.conjugate(i,r);delete l.FutureTense,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]]=2;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"]},Place:(e,t)=>{t[e]=["Place","ProperNoun"]},Region:(e,t)=>{t[e]=["Region","ProperNoun"]}};var cl=function(e,t){const{methods:n,model:r}=t;let a={},o={};return Object.keys(e).forEach((t=>{let i=e[t],s=(t=(t=t.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);s.length>1&&(void 0===o[s[0]]||s.length>o[s[0]])&&(o[s[0]]=s.length),!0===ul.hasOwnProperty(i)&&ul[i](t,a,n,r),a[t]=a[t]||i})),delete a[""],delete a.null,delete a[" "],{lex:a,_multi:o}};var hl=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]){let n=e[t-1];if(n.tags.has("Date")||a.has(n.normal))return!1;if(n.tags.has("Adjective")||r.tags.has("Adjective"))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)})),re.endsWith(t))):"s"===t&&!ml.find((t=>e.endsWith(t)))},fl={two:{quickSplit:hl,expandLexicon:cl,transform:ll,looksPlural:pl}};var vl=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};let bl={one:{lexicon:{}},two:{models:zs}};const yl={"Actor|Verb":"Actor","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":"FirstName","Person|Place":"Person","Person|Adj":"Comparative","Plural|Verb":"Plural","Unit|Noun":"Noun"},wl=function(e,t){const n={model:t,methods:fl};let{lex:r,_multi:a}=fl.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,r),Object.assign(t.one._multiCache,a),t},kl=function(e,t,n){let r=Rs(e,bl);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},Pl=function(e,t,n){let r=_s(e,n);t[r]=t[r]||"Superlative";let a=Zs(e,n);t[a]=t[a]||"Comparative"},Al=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach((a=>{const o=e[a];if(n[a]=yl[o],"Noun|Verb"!==o&&"Person|Verb"!==o&&"Actor|Verb"!==o||kl(a,r,!1),"Adj|Present"===o&&(kl(a,r,!0),Pl(a,r,t)),"Person|Adj"===o&&Pl(a,r,t),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=Us(a,bl,"Gerund");r[e]||(n[e]="Infinitive")}if("Noun|Gerund"!==o&&"Adj|Noun"!==o&&"Person|Noun"!==o||function(e,t,n){let r=Wo(e,n);t[r]=t[r]||"Plural"}(a,r,t),"Adj|Past"===o){let e=Us(a,bl,"PastTense");r[e]||(n[e]="Infinitive")}})),t=wl(n,t)};var Cl=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=wl(e.one.lexicon,e)).one.lexicon,e),e=Al(e.two.switches,e),e=vl(e)};let jl={one:{_multiCache:{},lexicon:Uo,frozenLex:{"20th century fox":"Organization","7 eleven":"Organization","motel 6":"Organization","excuse me":"Expression","financial times":"Organization","guns n roses":"Organization","la z boy":"Organization","labour party":"Organization","new kids on the block":"Organization","new york times":"Organization","the guess who":"Organization","thin lizzy":"Organization","prime minister":"Actor","free market":"Singular","lay up":"Singular","living room":"Singular","living rooms":"Plural","spin off":"Singular","appeal court":"Uncountable","cold war":"Uncountable","gene pool":"Uncountable","machine learning":"Uncountable","nail polish":"Uncountable","time off":"Uncountable","take part":"Infinitive","bill gates":"Person","doctor who":"Person","dr who":"Person","he man":"Person","iron man":"Person","kid cudi":"Person","run dmc":"Person","rush limbaugh":"Person","snow white":"Person","tiger woods":"Person","brand new":"Adjective","en route":"Adjective","left wing":"Adjective","off guard":"Adjective","on board":"Adjective","part time":"Adjective","right wing":"Adjective","so called":"Adjective","spot on":"Adjective","straight forward":"Adjective","super duper":"Adjective","tip top":"Adjective","top notch":"Adjective","up to date":"Adjective","win win":"Adjective","brooklyn nets":"SportsTeam","chicago bears":"SportsTeam","houston astros":"SportsTeam","houston dynamo":"SportsTeam","houston rockets":"SportsTeam","houston texans":"SportsTeam","minnesota twins":"SportsTeam","orlando magic":"SportsTeam","san antonio spurs":"SportsTeam","san diego chargers":"SportsTeam","san diego padres":"SportsTeam","iron maiden":"ProperNoun","isle of man":"Country","united states":"Country","united states of america":"Country","prince edward island":"Region","cedar breaks":"Place","cedar falls":"Place","point blank":"Adverb","tiny bit":"Adverb","by the time":"Conjunction","no matter":"Conjunction","civil wars":"Plural","credit cards":"Plural","default rates":"Plural","free markets":"Plural","head starts":"Plural","home runs":"Plural","lay ups":"Plural","phone calls":"Plural","press releases":"Plural","record labels":"Plural","soft serves":"Plural","student loans":"Plural","tax returns":"Plural","tv shows":"Plural","video games":"Plural","took part":"PastTense","takes part":"PresentTense","taking part":"Gerund","taken part":"Participle","light bulb":"Noun","rush hour":"Noun","fluid ounce":"Unit","the rolling stones":"Organization"}},two:{irregularPlurals:Go,models:zs,suffixPatterns:Qi,prefixPatterns:Yi,endsWith:hs,neighbours:ms,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'[a-z]{3}/,"LastName","mc'neil"],[/^o'[a-z]{3}/,"LastName","o'connor"],[/^ma?cd[aeiou][a-z]{3}/,"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]{4}|[0-9]{2})$/,"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})$/,"NumericValue","9km"]],switches:Ro,clues:Oi,uncountable:{},orgWords:Bs,placeWords:$s}};jl=Cl(jl);var Nl=jl;var xl=function(e,t,n,r){const a=r.methods.one.setTag;if(0===t&&e.length>=3){const t=/:/;if(e[0].post.match(t)){let t=e[1];if(t.tags.has("Value")||t.tags.has("Email")||t.tags.has("PhoneNumber"))return;a([e[0]],"Expression",r,null,"2-punct-colon''")}}};var Il=function(e,t,n,r){const a=r.methods.one.setTag;"-"===e[t].post&&e[t+1]&&a([e[t],e[t+1]],"Hyphenated",r,null,"1-punct-hyphen''")};const Tl=/^(under|over|mis|re|un|dis|semi)-?/;var Dl=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(Tl.test(a.normal)){let e=a.normal.replace(Tl,"");e.length>3&&r.hasOwnProperty(e)&&(a.switch=r[e])}};var Hl=function(e,t,n){if(!t||0===t.length)return;if(!0===e.frozen)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 Gl=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific","Month"];var El=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t)))||(pl(e.normal)?Hl(e,"Plural","3-plural-guess"):Hl(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=Ws(e.normal);t&&Hl(e,t,"3-verb-tense-guess")}}(r)};const Ol=/^\p{Lu}[\p{Ll}'โ€™]/u,Fl=/[0-9]/,Vl=["Date","Month","WeekDay","Unit","Expression"],zl=/[IVX]/,Bl=/^[IVXLCDM]{2,}$/,$l=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,Sl={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var Kl=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===Ol.test(o)&&!1===Fl.test(o)?Vl.find((e=>r.tags.has(e)))||r.pre.match(/["']$/)||"the"===r.normal?null:(El(e,t,n),r.tags.has("Noun")||r.frozen||r.tags.clear(),Hl(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&Bl.test(o)&&zl.test(o)&&$l.test(o)&&!Sl[r.normal]?(Hl(r,"RomanNumeral","2-xvii"),!0):null};const Ml=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 Ll=function(e,t,n){let r=e[t];if(0===r.tags.size){let e=Ml(r.normal,n.two.suffixPatterns);if(null!==e)return Hl(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=Ml(r.implicit,n.two.suffixPatterns),null!==e))return Hl(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const Jl=/['โ€˜โ€™โ€›โ€ตโ€ฒ`ยด]/,Wl=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 Hl(r,e,"2-prefix"),r.confidence=.5,!0}return null};const Rl=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"]),Ql=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!Rl.has(t)||(!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun"))},_l=function(e){return!!e&&(!!e.tags.has("Ordinal")||(!!(e.tags.has("Cardinal")&&e.normal.length<3)||("is"===e.normal||"was"===e.normal)))},Zl=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var Xl=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(Ql(a)||Ql(o))return Hl(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(_l(a)||_l(o))return Hl(n,"Year","2-tagYear-close");if(Zl(e[t-2])||Zl(e[t+2]))return Hl(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 Hl(n,"Year","2-tagYear-noun")}}}return null};var Yl=function(e,t,n,r){const a=r.methods.one.setTag,o=e[t],i=["PastTense","PresentTense","Auxiliary","Modal","Particle"];if(o.tags.has("Verb")){i.find((e=>o.tags.has(e)))||a([o],"Infinitive",r,null,"2-verb-type''")}};const eu=/^[A-Z]('s|,)?$/,tu=/^[A-Z-]+$/,nu=/^[A-Z]+s$/,ru=/([A-Z]\.)+[A-Z]?,?$/,au=/[A-Z]{2,}('s|,)?$/,ou=/([a-z]\.)+[a-z]\.?$/,iu={I:!0,A:!0},su={la:!0,ny:!0,us:!0,dc:!0,gb:!0};var lu=function(e,t,n){let r=e[t];return r.tags.has("RomanNumeral")||r.tags.has("Acronym")||r.frozen?null:function(e,t){let n=e.text;if(!1===tu.test(n)){if(!(n.length>3&&!0===nu.test(n)))return!1;n=n.replace(/s$/,"")}return!(n.length>5||iu.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==ru.test(n)&&!0!==ou.test(n)&&!0!==eu.test(n)&&!0!==au.test(n))}(r,n)?(r.tags.clear(),Hl(r,["Acronym","Noun"],"3-no-period-acronym"),!0===su[r.normal]&&Hl(r,"Place","3-place-acronym"),!0===nu.test(r.text)&&Hl(r,"Plural","3-plural-acronym"),!0):!iu.hasOwnProperty(r.text)&&eu.test(r.text)?(r.tags.clear(),Hl(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(Hl(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&tu.test(r.text)&&r.text.length<=6?(Hl(r,"Acronym","3-titlecase-acronym"),!0):null};const uu=function(e,t){if(!e)return null;let n=t.find((t=>e.normal===t[0]));return n?n[1]:null},cu=function(e,t){if(!e)return null;let n=t.find((t=>e.tags.has(t[0])));return n?n[1]:null};var hu=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||uu(e[t-1],a),l=l||uu(e[t+1],o),l=l||cu(e[t-1],r),l=l||cu(e[t+1],i),l)return Hl(s,l,"3-[neighbour]"),El(e,t,n),e[t].confidence=.2,!0}return null};const du=function(e,t,n){return!!e&&(!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||!(n||(r=e.text,!/^\p{Lu}[\p{Ll}'โ€™]/u.test(r)))&&(0!==t||e.tags.has("Singular"))));var r};var gu=function(e,t,n,r){const a=n.model.two.orgWords,o=n.methods.one.setTag;let i=e[t];if(!0===a[i.machine||i.normal]&&du(e[t-1],t-1,r)){o([e[t]],"Organization",n,null,"3-[org-word]");for(let a=t;a>=0&&du(e[a],a,r);a-=1)o([e[a]],"Organization",n,null,"3-[org-word]")}return null};const mu=/'s$/,pu=new Set(["athletic","city","community","eastern","federal","financial","great","historic","historical","local","memorial","municipal","national","northern","provincial","southern","state","western"]),fu=new Set(["center","centre","way","range","bar","bridge","field","pit"]),vu=function(e,t,n){if(!e)return!1;let r=e.tags;return!(r.has("Organization")||r.has("Possessive")||mu.test(e.normal))&&(!(!r.has("ProperNoun")&&!r.has("Place"))||!(n||(a=e.text,!/^\p{Lu}[\p{Ll}'โ€™]/u.test(a)))&&(0!==t||r.has("Singular")));var a};var bu=function(e,t,n,r){const a=n.model.two.placeWords,o=n.methods.one.setTag;let i=e[t],s=i.machine||i.normal;if(!0===a[s]){for(let a=t-1;a>=0;a-=1)if(!pu.has(e[a].normal)){if(!vu(e[a],a,r))break;o(e.slice(a,t+1),"Place",n,null,"3-[place-of-foo]")}if(fu.has(s))return!1;for(let a=t+1;ae[t].tags.has("ProperNoun")&&wu.test(e[t].text)?"Noun":null,Pu=(e,t,n)=>0!==t||e[1]?null:n,Au={"Adj|Gerund":(e,t)=>ku(e,t),"Adj|Noun":(e,t)=>ku(e,t)||function(e,t){return!e[t+1]&&e[t-1]&&e[t-1].tags.has("Determiner")?"Noun":null}(e,t),"Actor|Verb":(e,t)=>ku(e,t),"Adj|Past":(e,t)=>ku(e,t),"Adj|Present":(e,t)=>ku(e,t),"Noun|Gerund":(e,t)=>ku(e,t),"Noun|Verb":(e,t)=>t>0&&ku(e,t)||Pu(e,t,"Infinitive"),"Plural|Verb":(e,t)=>ku(e,t)||Pu(e,t,"PresentTense")||function(e,t,n){return 0===t&&e.length>3?n:null}(e,t,"Plural"),"Person|Noun":(e,t)=>ku(e,t),"Person|Verb":(e,t)=>0!==t?ku(e,t):null,"Person|Adj":(e,t)=>0===t&&e.length>1||ku(e,t)?"Person":null};var Cu=Au;const ju="undefined"!=typeof process&&process.env?process.env:self.env||{},Nu=/^(under|over|mis|re|un|dis|semi)-?/,xu=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit,r=null;return t.hasOwnProperty(n)&&(r=t[n]),r&&ju.DEBUG_TAGS&&console.log(`\n  โ†“ - '${n}' `),r},Iu=(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)),a=r.find((e=>t[e]));return a&&ju.DEBUG_TAGS&&console.log(`  โ†“ - '${e.normal||e.implicit}' (#${a}) `),a=t[a],a};var Tu=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(Nu.test(l)&&!o[l]&&(l=l.replace(Nu,"")),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="also"!==e[t-1]?.text?t-1:Math.max(0,t-2),o=r.one.tagSet;let i=xu(e[t+1],n.afterWords);return i=i||xu(e[a],n.beforeWords),i=i||Iu(e[a],n.beforeTags,o),i=i||Iu(e[t+1],n.afterTags,o),i}(e,t,i[o],r);Cu[o]&&(u=Cu[o](e,t)||u),u?(a([s],u,n,null,`3-[switch] (${o})`),El(e,t,r)):ju.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}};const Du={there:!0,this:!0,it:!0,him:!0,her:!0,us:!0};var Hu=function(e,t){const n=t.methods.one.setTag,r=t.model.one._multiCache||{};let a=e[0];if(("Noun|Verb"===a.switch||a.tags.has("Infinitive"))&&e.length>=2){if(e.length<4&&!Du[e[1].normal])return;if(!a.tags.has("PhrasalVerb")&&r.hasOwnProperty(a.normal))return;if(e[1].tags.has("Noun")||e[1].tags.has("Determiner")){e.slice(1,3).some((e=>e.tags.has("Verb")))&&!a.tags.has("#PhrasalVerb")||n([a],"Imperative",t,null,"3-[imperative]")}}};const Gu=function(e){if(e.filter((e=>!e.tags.has("ProperNoun"))).length<=3)return!1;const t=/^[a-z]/;return e.every((e=>!t.test(e.text)))},Eu=function(e,t,n,r){for(let a=0;a{xl(e,0,t,n)}))}(a,n,r);let o=t.two.quickSplit(a);for(let e=0;e{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.noun.toSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(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.verb.toInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromSuperlative(n,t.model)},Adverb:(e,t)=>{const{fromAdverb:n}=t.methods.two.transform.adjective;return n(e.machine||e.normal||e.text)}};var zu=function(e){const t=e.world,n=Object.keys(Vu);e.docs.forEach((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{let t=Qu.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=Ru};var Zu=function(e,t,n){let[r,a]=t;n&&0!==n.length&&(n=n.map(((e,t)=>(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e))),n[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 Xu=/'/,Yu=new Set(["been","become"]),ec=new Set(["what","how","when","if","too"]);let tc=new Set(["too","also","enough"]);var nc=function(e,t){let n=e[t].normal.split(Xu)[0];if("let"===n)return[n,"us"];if("there"===n){let r=e[t+1];if(r&&r.tags.has("Plural"))return[n,"are"]}return"has"===((e,t)=>{for(let n=t+1;n{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("i"===n.normal)return["am","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const lc={that:!0,there:!0,let:!0,here:!0,everywhere:!0},uc={in:!0,by:!0,for:!0};let cc=new Set(["too","also","enough","about"]),hc=new Set(["is","are","did","were","could","should","must","had","have"]);var dc=(e,t)=>{let n=e[t];if(lc.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("QuestionWord"))return!1;if("he's"===n.normal||"she's"===n.normal)return!1;let r=e[t+1];if(!r)return!0;if("it's"===n.normal)return!!r.tags.has("#Noun");if("Noun|Gerund"==r.switch){let r=e[t+2];return r?!!r.tags.has("Copula")||("on"===r.normal||r.normal,!1):!(!n.tags.has("Actor")&&!n.tags.has("ProperNoun"))}if(r.tags.has("Verb"))return!!r.tags.has("Infinitive")||!r.tags.has("Gerund")&&!!r.tags.has("PresentTense");if("Adj|Noun"===r.switch){let n=e[t+2];if(!n)return!1;if(hc.has(n.normal))return!0;if(cc.has(n.normal))return!1}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===uc[e[t-1].normal])return!0;if(r.tags.has("Adjective")){let n=e[t+2];if(!n)return!1;if(n.tags.has("Noun")&&!n.tags.has("Pronoun")){let e=r.normal;return"above"!==e&&"below"!==e&&"behind"!==e}return"Noun|Verb"===n.switch}return!!r.tags.has("Value")};const gc=/'/,mc=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(["freeze","lexicon","preTagger","unfreeze"]),function(e){e.forEach(((e,t)=>{e.index&&(e.index[1]=t)}))}(e)},pc={d:(e,t)=>ic(e,t),t:(e,t)=>sc(e,t),s:(e,t,n)=>dc(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,null,"2-contraction"):nc(e,t)},fc=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var vc={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===gc.test(r[o].normal)&&(i=r[o].normal.split(gc)[1]);let s=null;pc.hasOwnProperty(i)&&(s=pc[i](r,o,t)),s&&(s=fc(s,e),Zu(n,[a,o],s),mc(n[a],e,o,s.length))}}))}},bc={compute:vc,api:_u,hooks:["contractionTwo"]};const yc="(hard|fast|late|early|high|right|deep|close|direct)";const wc="(i|we|they)";let kc=[].concat([{match:"(got|were|was|is|are|am) (#PastTense|#Participle)",tag:"Passive",reason:"got-walked"},{match:"(was|were|is|are|am) being (#PastTense|#Participle)",tag:"Passive",reason:"was-being"},{match:"(had|have|has) been (#PastTense|#Participle)",tag:"Passive",reason:"had-been"},{match:"will be being? (#PastTense|#Participle)",tag:"Passive",reason:"will-be-cleaned"},{match:"#Noun [(#PastTense|#Participle)] by (the|a) #Noun",group:0,tag:"Passive",reason:"suffered-by"}],[{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,notIf:"(all|even)",tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"[#Hyphenated (#Hyphenated && #PastTense)] (#Noun|#Conjunction)",group:0,tag:"Adjective",notIf:"#Adverb",reason:"faith-based"},{match:"[#Hyphenated (#Hyphenated && #Gerund)] (#Noun|#Conjunction)",group:0,tag:"Adjective",notIf:"#Adverb",reason:"self-driving"},{match:"[#PastTense (#Hyphenated && #PhrasalVerb)] (#Noun|#Conjunction)",group:0,tag:"Adjective",reason:"dammed-up"},{match:"(#Hyphenated && #Value) fold",tag:"Adjective",reason:"two-fold"},{match:"must (#Hyphenated && #Infinitive)",tag:"Adjective",reason:"must-win"},{match:"(#Hyphenated && #Infinitive) #Hyphenated",tag:"Adjective",notIf:"#PhrasalVerb",reason:"vacuum-sealed"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"},{match:"[(un|contra|extra|inter|intra|macro|micro|mid|mis|mono|multi|pre|sub|tri|ex)] #Adjective",group:0,tag:["Adjective","Prefix"],reason:"un-skilled"}],[{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:"#Copula [far too] #Adjective",group:0,tag:"Adverb",reason:"far-too"},{match:"#Copula [still] (in|#Gerund|#Adjective)",group:0,tag:"Adverb",reason:"was-still-walking"},{match:`#Plural ${yc}`,tag:"#PresentTense #Adverb",reason:"studies-hard"},{match:`#Verb [${yc}] !#Noun?`,group:0,notIf:"(#Copula|get|got|getting|become|became|becoming|feel|feels|feeling|#Determiner|#Preposition)",tag:"Adverb",reason:"shops-direct"},{match:"[#Plural] a lot",tag:"PresentTense",reason:"studies-a-lot"}],[{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:"#Gerund [#Gerund]",group:0,tag:"Adjective",notIf:"(impersonating|practicing|considering|assuming)",reason:"looking-annoying"},{match:"(looked|look|looks) #Adverb? [%Adj|Gerund%]",group:0,tag:"Adjective",notIf:"(impersonating|practicing|considering|assuming)",reason:"looked-amazing"},{match:"[%Adj|Gerund%] #Determiner",group:0,tag:"Gerund",reason:"developing-a"},{match:"#Possessive [%Adj|Gerund%] #Noun",group:0,tag:"Adjective",reason:"leading-manufacturer"},{match:"%Noun|Gerund% %Adj|Gerund%",tag:"Gerund #Adjective",reason:"meaning-alluring"},{match:"(face|embrace|reveal|stop|start|resume) %Adj|Gerund%",tag:"#PresentTense #Adjective",reason:"face-shocking"},{match:"(are|were) [%Adj|Gerund%] #Plural",group:0,tag:"Adjective",reason:"are-enduring-symbols"}],[{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",notIf:"#Hyphenated",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:"no [#Adjective] #Modal",group:0,tag:"Noun",reason:"no-golden"},{match:"[brand #Gerund?] new",group:0,tag:"Adverb",reason:"brand-new"},{match:"(#Determiner|#Comparative|new|different) [kind]",group:0,tag:"Noun",reason:"some-kind"},{match:"#Possessive [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"her-favourite"},{match:"must && #Hyphenated .",tag:"Adjective",reason:"must-win"},{match:"#Determiner [#Adjective]$",tag:"Noun",notIf:"(this|that|#Comparative|#Superlative)",reason:"the-south"},{match:"(#Noun && #Hyphenated) (#Adjective && #Hyphenated)",tag:"Adjective",notIf:"(this|that|#Comparative|#Superlative)",reason:"company-wide"},{match:"#Determiner [#Adjective] (#Copula|#Determiner)",notIf:"(#Comparative|#Superlative)",group:0,tag:"Noun",reason:"the-poor"},{match:"[%Adj|Noun%] #Noun",notIf:"(#Pronoun|#ProperNoun)",group:0,tag:"Adjective",reason:"stable-foundations"}],[{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,notIf:"(#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] #Comparative",group:0,tag:"Adverb",reason:"even-worse"},{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|bright|slow|fast|backwards|forwards)]",notIf:"#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",notIf:"(getting|becoming|feeling)",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",notIf:"(#PhrasalVerb|#Copula)",reason:"charge-back"},{match:"#Verb [around]",group:0,tag:"Adverb",notIf:"#PhrasalVerb",reason:"send-around"},{match:"[later] #PresentTense",group:0,tag:"Adverb",reason:"later-say"},{match:"#Determiner [well] !#PastTense?",group:0,tag:"Noun",reason:"the-well"},{match:"#Adjective [enough]",group:0,tag:"Adverb",reason:"high-enough"}],[{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) !#Infinitive?",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:"#Value (am|pm)",tag:"Time",reason:"2-am"}],[{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:"(the|any) [more]",group:0,tag:"Singular",reason:"more-noun"},{match:"[more] #Noun",group:0,tag:"Adjective",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Singular",reason:"bit-2"},{match:"a [must]",group:0,tag:"Singular",reason:"must-2"},{match:"(we|us) [all]",group:0,tag:"Noun",reason:"we all"},{match:"due to [#Verb]",group:0,tag:"Noun",reason:"due-to"},{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",notIf:"#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:"(a|an|the) [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",notIf:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,notIf:"#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? [#PresentTense #Particle?]",group:0,tag:"Noun",notIf:"(seem|appear|include|#Gerund|#Copula)",reason:"det-inf"},{match:"#Noun #Actor",tag:"Actor",notIf:"(#Person|#Pronoun)",reason:"thing-doer"},{match:"#Gerund #Actor",tag:"Actor",reason:"gerund-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"[#Noun+] #Actor",group:0,tag:"Actor",notIf:"(#Honorific|#Pronoun|#Possessive)",reason:"air-traffic-controller"},{match:"(urban|cardiac|cardiovascular|respiratory|medical|clinical|visual|graphic|creative|dental|exotic|fine|certified|registered|technical|virtual|professional|amateur|junior|senior|special|pharmaceutical|theoretical)+ #Noun? #Actor",tag:"Actor",reason:"fine-artist"},{match:"#Noun+ (coach|chef|king|engineer|fellow|personality|boy|girl|man|woman|master)",tag:"Actor",reason:"dance-coach"},{match:"chief . officer",tag:"Actor",reason:"chief-x-officer"},{match:"chief of #Noun+",tag:"Actor",reason:"chief-of-police"},{match:"senior? vice? president of #Noun+",tag:"Actor",reason:"president-of"},{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:"#Possessive #PresentTense #Particle?",notIf:"(#Gerund|her)",tag:"Noun",reason:"possessive-verb"},{match:"(my|our|their|her|his|its) [(#Plural && #Actor)] #Noun",tag:"Possessive",reason:"my-dads"},{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 [#Verb] and #Noun",group:0,tag:"Noun",reason:"peace-and-flowers"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"},{match:"#Copula the [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"the-premier-university"},{match:"i #Verb [me] #Noun",group:0,tag:"Possessive",reason:"scottish-me"},{match:"[#PresentTense] (music|class|lesson|night|party|festival|league|ceremony)",group:0,tag:"Noun",reason:"dance-music"},{match:"[wit] (me|it)",group:0,tag:"Presposition",reason:"wit-me"},{match:"#PastTense #Possessive [#Verb]",group:0,tag:"Noun",notIf:"(saw|made)",reason:"left-her-boots"},{match:"#Value [%Plural|Verb%]",group:0,tag:"Plural",notIf:"(one|1|a|an)",reason:"35-signs"},{match:"had [#PresentTense]",group:0,tag:"Noun",notIf:"(#Gerund|come|become)",reason:"had-time"},{match:"%Adj|Noun% %Noun|Verb%",tag:"#Adjective #Noun",notIf:"#ProperNoun #Noun",reason:"instant-access"},{match:"#Determiner [%Adj|Noun%] #Conjunction",group:0,tag:"Noun",reason:"a-rep-to"},{match:"#Adjective #Noun [%Plural|Verb%]$",group:0,tag:"Plural",notIf:"#Pronoun",reason:"near-death-experiences"},{match:"#Possessive #Noun [%Plural|Verb%]$",group:0,tag:"Plural",reason:"your-guild-colors"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,ifNo:"#Copula",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",notIf:"(still|even|just)",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"#Copula [(#Gerund|#Activity)] #Copula",group:0,tag:"Gerund",reason:"are-doing-is"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"},{match:"#Singular for [%Noun|Gerund%]",group:0,tag:"Gerund",reason:"noun-for-gerund"},{match:"#Comparative (for|at) [%Noun|Gerund%]",group:0,tag:"Gerund",reason:"better-for-gerund"},{match:"#PresentTense the [#Gerund]",group:0,tag:"Noun",reason:"keep-the-touching"}],[{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 (only|further|just|more|backward) [#Infinitive]",group:0,tag:"Noun",reason:"the-only-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{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,notIf:"from",tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"#Plural 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 #Particle?]",notIf:"(#Copula|#Noun|sure|fun|up)",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",notIf:"#Pronoun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"this [#Plural]",group:0,tag:"PresentTense",notIf:"(#Preposition|#Date)",reason:"this-verbs"},{match:"#Noun that [#Plural]",group:0,tag:"PresentTense",notIf:"(#Preposition|#Pronoun|way)",reason:"voice-that-rocks"},{match:"that [#Plural] to",group:0,tag:"PresentTense",notIf:"#Preposition",reason:"that-leads-to"},{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]",notIf:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",notIf:"better",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",notIf:"(#Copula|better)",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"many-poses"},{match:"#Determiner #Adverb #Adjective [%Noun|Verb%]",group:0,tag:"Noun",notIf:"#Copula",reason:"very-big-dream"},{match:"from #Noun to [%Noun|Verb%]",group:0,tag:"Noun",reason:"start-to-finish"},{match:"(for|with|of) #Noun (and|or|not) [%Noun|Verb%]",group:0,tag:"Noun",notIf:"#Pronoun",reason:"for-food-and-gas"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",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) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #Particle #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] of",group:0,notIf:"(one|1|#Copula|#Infinitive)",tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",notIf:"#Copula",reason:"our-full-support"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",notIf:"going",reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"},{match:"how to [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"how-to-noun"},{match:"which [%Noun|Verb%] #Noun",group:0,tag:"Infinitive",reason:"which-boost-it"},{match:"#Gerund [%Plural|Verb%]",group:0,tag:"Plural",reason:"asking-questions"},{match:"(ready|available|difficult|hard|easy|made|attempt|try) to [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"ready-to-noun"},{match:"(bring|went|go|drive|run|bike) to [%Noun|Verb%]",group:0,tag:"Noun",reason:"bring-to-noun"},{match:"#Modal #Noun [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"would-you-look"},{match:"#Copula just [#Infinitive]",group:0,tag:"Noun",reason:"is-just-spam"},{match:"^%Noun|Verb% %Plural|Verb%",tag:"Imperative #Plural",reason:"request-copies"},{match:"#Adjective #Plural and [%Plural|Verb%]",group:0,tag:"#Plural",reason:"pickles-and-drinks"},{match:"#Determiner #Year [#Verb]",group:0,tag:"Noun",reason:"the-1968-film"},{match:"#Determiner [#PhrasalVerb #Particle]",group:0,tag:"Noun",reason:"the-break-up"},{match:"#Determiner [%Adj|Noun%] #Noun",group:0,tag:"Adjective",notIf:"(#Pronoun|#Possessive|#ProperNoun)",reason:"the-individual-goals"},{match:"[%Noun|Verb%] or #Infinitive",group:0,tag:"Infinitive",reason:"work-or-prepare"},{match:"to #Infinitive [#PresentTense]",group:0,tag:"Noun",notIf:"(#Gerund|#Copula|help)",reason:"to-give-thanks"},{match:"[#Noun] me",group:0,tag:"Verb",reason:"kills-me"},{match:"%Plural|Verb% %Plural|Verb%",tag:"#PresentTense #Plural",reason:"removes-wrinkles"}],[{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:"a pound",tag:"#Money #Unit",reason:"a-pound"},{match:"#Value (pound|pounds)",tag:"#Money #Unit",reason:"4-pounds"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"},{match:"#Value #Unit [(per|an) (hr|hour|sec|second|min|minute)]",group:0,tag:"Unit",reason:"12-miles-per-second"},{match:"#Value [(square|cubic)] #Unit",group:0,tag:"Unit",reason:"square-miles"},{match:"^[#Value] (#Determiner|#Gerund)",group:0,tag:"Expression",unTag:"Value",reason:"numbered-list"}],[{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(sister|pope|brother|father|aunt|uncle|grandpa|grandfather|grandma) #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",notIf:"#Place",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",notIf:"#Place",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",notIf:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",notIf:"#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:"[(lieutenant|corporal|sergeant|captain|qeen|king|admiral|major|colonel|marshal|president|queen|king)+] #ProperNoun",group:0,tag:"Honorific",reason:"seargeant-john"},{match:"[(private|general|major|rear|prime|field|count|miss)] #Honorific? #Person",group:0,tag:["Honorific","Person"],reason:"ambg-honorifics"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",notIf:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:"Honorific",reason:"his-excellency"},{match:"#Honorific #Actor",tag:"Honorific",reason:"Lieutenant colonel"},{match:"(first|second|third|1st|2nd|3rd) #Actor",tag:"Honorific",reason:"first lady"},{match:"#Person #RomanNumeral",tag:"Person",reason:"louis-IV"}],[{match:"#FirstName #Noun$",tag:". #LastName",notIf:"(#Possessive|#Organization|#Place|#Pronoun|@hasTitleCase)",reason:"firstname-noun"},{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",ifNo:"#Actor"},{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:"#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:"(#FirstName && !#Possessive) [#Singular] #Verb",group:0,safe:!0,tag:"LastName",reason:"jack-layton"},{match:"^[#Singular] #Person #Verb",group:0,safe:!0,tag:"Person",reason:"sherwood-anderson"},{match:"(a|an) [#Person]$",group:0,unTag:"Person",reason:"a-warhol"}],[{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",notIf:"(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:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(have|had) read",tag:"Modal #PastTense",reason:"read-read"},{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:"as #Pronoun [please]",group:0,tag:"Infinitive",reason:"as-we-please"},{match:"[(co|mis|de|inter|intra|pre|re|un|out|under|over|counter)] #Verb",group:0,tag:["Verb","Prefix"],notIf:"(#Copula|#PhrasalVerb)",reason:"co-write"},{match:"#PastTense and [%Adj|Past%]",group:0,tag:"PastTense",reason:"dressed-and-left"},{match:"[%Adj|Past%] and #PastTense",group:0,tag:"PastTense",reason:"dressed-and-left"},{match:"#Copula #Pronoun [%Adj|Past%]",group:0,tag:"Adjective",reason:"is-he-stoked"},{match:"to [%Noun|Verb%] #Preposition",group:0,tag:"Infinitive",reason:"to-dream-of"}],[{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:"#Copula [#Adjective] (well|badly|quickly|slowly)",group:0,tag:"Verb",reason:"done-well"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"},{match:"(seem|feel|seemed|felt) [#PastTense #Particle?]",group:0,tag:"Adjective",reason:"seem-confused"},{match:"a (bit|little|tad) [#PastTense #Particle?]",group:0,tag:"Adjective",reason:"a-bit-confused"},{match:"not be [%Adj|Past% #Particle?]",group:0,tag:"Adjective",reason:"do-not-be-confused"},{match:"#Copula just [%Adj|Past% #Particle?]",group:0,tag:"Adjective",reason:"is-just-right"},{match:"as [#Infinitive] as",group:0,tag:"Adjective",reason:"as-pale-as"},{match:"[%Adj|Past%] and #Adjective",group:0,tag:"Adjective",reason:"faled-and-oppressive"},{match:"or [#PastTense] #Noun",group:0,tag:"Adjective",notIf:"(#Copula|#Pronoun)",reason:"or-heightened-emotion"},{match:"(become|became|becoming|becomes) [#Verb]",group:0,tag:"Adjective",reason:"become-verb"},{match:"#Possessive [#PastTense] #Noun",group:0,tag:"Adjective",reason:"declared-intentions"},{match:"#Copula #Pronoun [%Adj|Present%]",group:0,tag:"Adjective",reason:"is-he-cool"},{match:"#Copula [%Adj|Past%] with",group:0,tag:"Adjective",notIf:"(associated|worn|baked|aged|armed|bound|fried|loaded|mixed|packed|pumped|filled|sealed)",reason:"is-crowded-with"},{match:"#Copula #Adverb? [%Adj|Present%]$",group:0,tag:"Adjective",reason:"was-empty$"}],[{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:"[(#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:"[(been|had|became|came)] #PastTense",group:0,notIf:"#PhrasalVerb",tag:"Auxiliary",reason:"been-told"},{match:"[(being|having|getting)] #Verb",group:0,tag:"Auxiliary",reason:"being-born"},{match:"[be] #Gerund",group:0,tag:"Auxiliary",reason:"be-walking"},{match:"[better] #PresentTense",group:0,tag:"Modal",notIf:"(#Copula|#Gerund)",reason:"better-go"},{match:"even better",tag:"Adverb #Comparative",reason:"even-better"}],[{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)",notIf:"#Copula",tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"#Verb (up|down|in|on|for)$",tag:"PhrasalVerb #Particle",notIf:"#PhrasalVerb",reason:"come-down$"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"#PhrasalVerb (in && #Particle) #Determiner",tag:"#Verb #Preposition #Determiner",unTag:"PhrasalVerb",reason:"work-in-the"},{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:wc,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:wc,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:wc,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",notIf:"(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|a|an|any|each|every|some|more|with|on)",group:0,notIf:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me|there)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^[#Infinitive] (#Adjective|#Adverb)? and #Infinitive",group:0,tag:"Imperative",reason:"call-and-reserve"},{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:"^[#PhrasalVerb #Particle] #Determiner #Noun",group:0,tag:"Imperative",reason:"turn-off-the-light"},{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:"^come #Infinitive",tag:"Imperative",notIf:"on",reason:"come-have"},{match:"^come and? #Infinitive",tag:"Imperative . Imperative",notIf:"#PhrasalVerb",reason:"come-and-have"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[(stay|be|keep)] #Adjective",group:0,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:"[#Infinitive] what .",group:0,tag:"Imperative",reason:"look-what"},{match:"^[#Infinitive] #Gerund",group:0,tag:"Imperative",reason:"keep-playing"},{match:"^[#Infinitive] (to|for|into|toward|here|there)",group:0,tag:"Imperative",reason:"go-to"},{match:"^[#Infinitive] (and|or) #Infinitive",group:0,tag:"Imperative",reason:"inf-and-inf"},{match:"^[%Noun|Verb%] to",group:0,tag:"Imperative",reason:"commit-to"},{match:"^[#Infinitive] #Adjective? #Singular #Singular",group:0,tag:"Imperative",reason:"maintain-eye-contact"},{match:"do not (forget|omit|neglect) to [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-forget"},{match:"^[(ask|wear|pay|look|help|show|watch|act|fix|kill|stop|start|turn|try|win)] #Noun",group:0,tag:"Imperative",reason:"pay-attention"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"},{match:"#Gerund [#Gerund] #Plural",group:0,tag:"Adjective",reason:"hard-working-fam"}],[{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:"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:"[right] (before|after|in|into|to|toward)",group:0,tag:"#Adverb",reason:"right-into"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"(are|#Modal|see|do|for) [ya]",group:0,tag:"Pronoun",reason:"are-ya"},{match:"[long live] .",group:0,tag:"#Adjective #Infinitive",reason:"long-live"},{match:"[plenty] of",group:0,tag:"#Uncountable",reason:"plenty-of"},{match:"(always|nearly|barely|practically) [there]",group:0,tag:"Adjective",reason:"always-there"},{match:"[there] (#Adverb|#Pronoun)? #Copula",group:0,tag:"There",reason:"there-is"},{match:"#Copula [there] .",group:0,tag:"There",reason:"is-there"},{match:"#Modal #Adverb? [there]",group:0,tag:"There",reason:"should-there"},{match:"^[do] (you|we|they)",group:0,tag:"QuestionWord",reason:"do-you"},{match:"^[does] (he|she|it|#ProperNoun)",group:0,tag:"QuestionWord",reason:"does-he"},{match:"#Determiner #Noun+ [who] #Verb",group:0,tag:"Preposition",reason:"the-x-who"},{match:"#Determiner #Noun+ [which] #Verb",group:0,tag:"Preposition",reason:"the-x-which"},{match:"a [while]",group:0,tag:"Noun",reason:"a-while"},{match:"guess who",tag:"#Infinitive #QuestionWord",reason:"guess-who"},{match:"[fucking] !#Verb",group:0,tag:"#Gerund",reason:"f-as-gerund"}],[{match:"university of #Place",tag:"Organization",reason:"university-of-Foo"},{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",notIf:"#FirstName",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:"government of the? [#Place+]",tag:"Organization",reason:"government-of-x"},{match:"(health|school|commerce) board",tag:"Organization",reason:"school-board"},{match:"(nominating|special|conference|executive|steering|central|congressional) committee",tag:"Organization",reason:"special-comittee"},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"},{match:"#Place+ #SportsTeam",tag:"SportsTeam",reason:"place-sportsteam"},{match:"(dc|atlanta|minnesota|manchester|newcastle|sheffield) united",tag:"SportsTeam",reason:"united-sportsteam"},{match:"#Place+ fc",tag:"SportsTeam",reason:"fc-sportsteam"}],[{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+ (cliff|place|range|pit|place|point|room|grounds|ruins)",tag:"Place",reason:"foo-point"},{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:"a #Noun [like] (#Noun|#Determiner)",group:0,tag:"Preposition",reason:"a-noun-like"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Infinitive #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"}],[{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^[(well|so|okay|now)] !#Adjective?",group:0,tag:"Expression",reason:"well-"},{match:"^come on",tag:"Expression",reason:"come-on"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"^(ok|alright|shoot|hell|anyways)",tag:"Expression",reason:"ok-"},{match:"^(say && @hasComma)",tag:"Expression",reason:"say-"},{match:"^(like && @hasComma)",tag:"Expression",reason:"like-"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}]);let Pc=null;var Ac={postTagger:function(e){const{world:t}=e,{model:n,methods:r}=t;Pc=Pc||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(Pc),e.uncache(),e.unfreeze(),e},tagger:e=>e.compute(["freeze","lexicon","preTagger","postTagger","unfreeze"])};const Cc={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach((n=>{n.forEach((n=>{t+=1,e+=n.confidence||1}))})),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["tagger"])}},compute:Ac,model:{two:{matches:kc}},hooks:["postTagger"]};var jc=Cc;var Nc=function(e,t){let n=function(e){return Object.keys(e.hooks).filter((e=>!e.startsWith("#")&&!e.startsWith("%")))}(t);if(0===n.length)return e;e._cache||e.cache();let r=e._cache;return e.filter(((e,t)=>n.some((e=>r[t].has(e)))))};var xc=function(e,t){let n=t;"string"==typeof t&&(n=this.buildNet([{match:t}]));let r=this.tokenize(e),a=Nc(r,n);return a.found?(a.compute(["index","tagger"]),a.match(t)):r.none()},Ic={lib:{lazy:xc}};var Tc=function(e,t){let n=t;return e.forEach((e=>{e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verb.conjugate)(t,e.model);return e.has("#Gerund")?n.Gerund:e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)})),e};var Dc=function(e,t,n){let r=e.split(/ /g).map((e=>e.toLowerCase().trim()));r=r.filter((e=>e)),r=r.map((e=>`{${e}}`)).join(" ");let a=this.match(r);return n&&(a=a.if(n)),a.has("#Verb")?Tc(a,t):a.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.noun.toPlural)(t,e.model));e.replaceWith(n,{possessives:!0})}(a,t):a.has("#Adverb")?function(e,t){const{toAdverb:n}=e.methods.two.transform.adjective;let r=n(t);r&&e.replaceWith(r)}(a,t):a.has("#Adjective")?function(e,t){const{toComparative:n,toSuperlative:r}=e.methods.two.transform.adjective;let a=t;e.has("#Comparative")?a=n(a,e.model):e.has("#Superlative")&&(a=r(a,e.model)),a&&e.replaceWith(a)}(a,t):this};var Hc={api:function(e){e.prototype.swap=Dc}};v.plugin(Wu),v.plugin(bc),v.plugin(jc),v.plugin(Ic),v.plugin(Hc);const Gc=function(e){const{fromComparative:t,fromSuperlative:n}=e.methods.two.transform.adjective;let r=e.text("normal");return e.has("#Comparative")?t(r,e.model):e.has("#Superlative")?n(r,e.model):r};var Ec={api:function(e){class Adjectives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adjectives"}json(e={}){const{toAdverb:t,toNoun:n,toSuperlative:r,toComparative:a}=this.methods.two.transform.adjective;return e.normal=!0,this.map((o=>{let i=o.toView().json(e)[0]||{},s=Gc(o);return i.adjective={adverb:t(s,this.model),noun:n(s,this.model),superlative:r(s,this.model),comparative:a(s,this.model)},i}),[])}adverbs(){return this.before("#Adverb+$").concat(this.after("^#Adverb+"))}conjugate(e){const{toComparative:t,toSuperlative:n,toNoun:r,toAdverb:a}=this.methods.two.transform.adjective;return this.getNth(e).map((e=>{let o=Gc(e);return{Adjective:o,Comparative:t(o,this.model),Superlative:n(o,this.model),Noun:r(o,this.model),Adverb:a(o,this.model)}}),[])}toComparative(e){const{toComparative:t}=this.methods.two.transform.adjective;return this.getNth(e).map((e=>{let n=Gc(e),r=t(n,this.model);return e.replaceWith(r)}))}toSuperlative(e){const{toSuperlative:t}=this.methods.two.transform.adjective;return this.getNth(e).map((e=>{let n=Gc(e),r=t(n,this.model);return e.replaceWith(r)}))}toAdverb(e){const{toAdverb:t}=this.methods.two.transform.adjective;return this.getNth(e).map((e=>{let n=Gc(e),r=t(n,this.model);return e.replaceWith(r)}))}toNoun(e){const{toNoun:t}=this.methods.two.transform.adjective;return this.getNth(e).map((e=>{let n=Gc(e),r=t(n,this.model);return e.replaceWith(r)}))}}e.prototype.adjectives=function(e){let t=this.match("#Adjective");return t=t.getNth(e),new Adjectives(t.document,t.pointer)},e.prototype.superlatives=function(e){let t=this.match("#Superlative");return t=t.getNth(e),new Adjectives(t.document,t.pointer)},e.prototype.comparatives=function(e){let t=this.match("#Comparative");return t=t.getNth(e),new Adjectives(t.document,t.pointer)}}};var Oc={api:function(e){class Adverbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adverbs"}conjugate(e){return this.getNth(e).map((e=>{let t=function(e){return e.compute("root").text("root")}(e);return{Adverb:e.text("normal"),Adjective:t}}),[])}json(e={}){const t=this.methods.two.transform.adjective.fromAdverb;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=t.getNth(e),new Adverbs(t.document,t.pointer)}}};var Fc=function(e){let t=this;t=function(e){let t=e.parentheses();return t=t.filter((e=>e.wordCount()>=3&&e.has("#Verb")&&e.has("#Noun"))),e.splitOn(t)}(t),t=function(e){let t=e.quotations();return t=t.filter((e=>e.wordCount()>=3&&e.has("#Verb")&&e.has("#Noun"))),e.splitOn(t)}(t),t=function(e){let t=e.match("@hasComma");return t=t.filter((e=>{if(1===e.growLeft(".").wordCount())return!1;if(1===e.growRight(". .").wordCount())return!1;let t=e.grow(".");return t=t.ifNo("@hasComma @hasComma"),t=t.ifNo("@hasComma (and|or) ."),t=t.ifNo("(#City && @hasComma) #Country"),t=t.ifNo("(#WeekDay && @hasComma) #Date"),t=t.ifNo("(#Date+ && @hasComma) #Value"),t=t.ifNo("(#Adjective && @hasComma) #Adjective"),t.found})),e.splitAfter(t)}(t),t=t.splitAfter("(@hasEllipses|@hasSemicolon|@hasDash|@hasColon)"),t=t.splitAfter("^#Pronoun (said|says)"),t=t.splitBefore("(said|says) #ProperNoun$"),t=t.splitBefore(". . if .{4}"),t=t.splitBefore("and while"),t=t.splitBefore("now that"),t=t.splitBefore("ever since"),t=t.splitBefore("(supposing|although)"),t=t.splitBefore("even (while|if|though)"),t=t.splitBefore("(whereas|whose)"),t=t.splitBefore("as (though|if)"),t=t.splitBefore("(til|until)");let n=t.match("#Verb .* [but] .* #Verb",0);n.found&&(t=t.splitBefore(n));let r=t.if("if .{2,9} then .").match("then");return t=t.splitBefore(r),"number"==typeof e&&(t=t.get(e)),t};var Vc=function(e){let t=[],n=null;return e.clauses().docs.forEach((e=>{e.forEach((e=>{e.chunk&&e.chunk===n?t[t.length-1][2]=e.index[1]+1:(n=e.chunk,t.push([e.index[0],e.index[1],e.index[1]+1]))})),n=null})),e.update(t)};var zc=function(e){class Chunks extends e{constructor(e,t,n){super(e,t,n),this.viewType="Chunks"}isVerb(){return this.filter((e=>e.has("")))}isNoun(){return this.filter((e=>e.has("")))}isAdjective(){return this.filter((e=>e.has("")))}isPivot(){return this.filter((e=>e.has("")))}debug(){return this.toView().debug("chunks"),this}update(e){let t=new Chunks(this.document,e);return t._cache=this._cache,t}}e.prototype.chunks=function(e){let t=Vc(this);return t=t.getNth(e),new Chunks(this.document,t.pointer)},e.prototype.clauses=Fc};const Bc={this:"Noun",then:"Pivot"};var $c=function(e){for(let t=0;t",group:0,chunk:"Verb"},{match:"#Noun of #Determiner? #Noun",chunk:"Noun"},{match:"#Value+ #Adverb? #Adjective",chunk:"Noun"},{match:"the [#Adjective] #Noun",chunk:"Noun"},{match:"#Singular in #Determiner? #Singular",chunk:"Noun"},{match:"#Plural [in] #Determiner? #Noun",group:0,chunk:"Pivot"},{match:"#Noun and #Determiner? #Noun",notIf:"(#Possessive|#Pronoun)",chunk:"Noun"}];let Mc=null;var Lc=function(e,t,n){const{methods:r}=n;Mc=Mc||r.one.buildNet(Kc,n),e.sweep(Mc)};const Jc=function(e,t){if(("undefined"!=typeof process&&process.env?process.env:self.env||{}).DEBUG_CHUNKS){let n=(e.normal+"'").padEnd(8);console.log(` | '${n} โ†’ ${t.padEnd(12)}  -fallback- `)}e.chunk=t};var Wc=function(e){for(let t=0;t{for(let r=0;r{if("Verb"===e.chunk){const t=e.terms.find((e=>e.tags.has("Verb")));t||e.terms.forEach((e=>e.chunk=null))}}))};var Uc={chunks:function(e){const{document:t,world:n}=e;$c(t),Sc(t),Lc(e,t,n),Wc(t),qc(t)}},Rc={compute:Uc,api:zc,hooks:["chunks"]};const Qc=/\./g;var _c=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(Qc,""),e.normal=e.normal.replace(Qc,"")}))})),this}addPeriods(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(Qc,""),e.normal=e.normal.replace(Qc,""),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=t.getNth(e),new Acronyms(t.document,t.pointer)}};const Zc=/\(/,Xc=/\)/,Yc=function(e,t){for(;t{e[0].pre=e[0].pre.replace(Zc,"");let t=e[e.length-1];t.post=t.post.replace(Xc,"")})),e}(this)}}e.prototype.parentheses=function(e){let t=function(e){let t=[];return e.docs.forEach((e=>{for(let n=0;n{e.forEach((e=>{e.text=e.text.replace(th,""),e.normal=e.normal.replace(th,"")}))})),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=t.getNth(e),new Possessives(t.document,t.pointer)}};const rh={'"':'"',"๏ผ‚":"๏ผ‚","'":"'","โ€œ":"โ€","โ€˜":"โ€™","โ€Ÿ":"โ€","โ€›":"โ€™","โ€ž":"โ€","โน‚":"โ€","โ€š":"โ€™","ยซ":"ยป","โ€น":"โ€บ","โ€ต":"โ€ฒ","โ€ถ":"โ€ณ","โ€ท":"โ€ด","ใ€":"ใ€ž","`":"ยด","ใ€Ÿ":"ใ€ž"},ah=RegExp("["+Object.keys(rh).join("")+"]"),oh=RegExp("["+Object.values(rh).join("")+"]"),ih=function(e,t){const n=e[t].pre.match(ah)[0]||"";if(!n||!rh[n])return null;const r=rh[n];for(;t{e[0].pre=e[0].pre.replace(ah,"");let t=e[e.length-1];t.post=t.post.replace(oh,"")}))}(this)}}e.prototype.quotations=function(e){let t=function(e){let t=[];return e.docs.forEach((e=>{for(let n=0;n{e.prototype[t[0]]=function(e){let n=this.match(t[1]);return"number"==typeof e?n.get(e):n}})),e.prototype.phoneNumbers=lh,ch.forEach((t=>{e.prototype[t[0]]=e.prototype[t[1]]}))},dh={api:function(e){_c(e),eh(e),nh(e),sh(e),hh(e)}};const gh=function(e,t){e.docs.forEach((e=>{e.forEach(t)}))};var mh={case:e=>{gh(e,(e=>{e.text=e.text.toLowerCase()}))},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;gh(e,(e=>e.text=n(e.text,t)))},whitespace:e=>{gh(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=>{gh(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()},debullet:e=>{const t=/^\s*([-โ€“โ€”*โ€ข])\s*$/;return e.docs.forEach((e=>{t.test(e[0].pre)&&(e[0].pre=e[0].pre.replace(t,""))})),e}};const ph=e=>e.split("|").reduce(((e,t)=>(e[t]=!0,e)),{}),fh="unicode|punctuation|whitespace|acronyms",vh="|case|contractions|parentheses|quotations|emoji|honorifics|debullet",bh={light:ph(fh),medium:ph(fh+vh),heavy:ph(fh+vh+"|possessives|adverbs|nouns|verbs")};var yh={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=bh[e]),Object.keys(e).forEach((t=>{mh.hasOwnProperty(t)&&mh[t](this,e[t])})),this}}};var wh=function(e){let t=e.clauses().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|i)"),t=t.splitOn("(#Noun|#Adjective) [(he|him|she|it)]",0),t=t.splitOn("[(he|him|she|it)] (#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.splitBefore("(our|my|their|your)"),t=t.splitOn("#Noun [#Determiner]",0),t=t.if("#Noun"),t};const kh=["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 Ph=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 Ch=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=t.first(),t.found?t:e}(e);return{determiner:e.match("#Determiner").eq(0),adjectives:e.match("#Adjective"),number:e.values(),isPlural:Ah(e,t),isSubordinate:Ph(e),root:t}};const jh=e=>e.text(),Nh=e=>e.json({terms:!1,normal:!0}).map((e=>e.normal)),xh=function(e){if(!e.found)return null;let t=e.values(0);if(t.found){return(t.parse()[0]||{}).num}return null};var Ih=function(e){let t=Ch(e);return{root:jh(t.root),number:xh(t.number),determiner:jh(t.determiner),adjectives:Nh(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}};var Th=function(e){return!e.has("^(#Uncountable|#ProperNoun|#Place|#Pronoun|#Acronym)+$")};const Dh={tags:!0};var Hh=function(e,t){if(!0===t.isPlural)return e;if(t.root.has("#Possessive")&&(t.root=t.root.possessives().strip()),!Th(t.root))return e;const{methods:n,model:r}=e.world,{toPlural:a}=n.two.transform.noun;let o=a(t.root.text({keepPunct:!1}),r);e.match(t.root).replaceWith(o,Dh).tag("Plural","toPlural"),t.determiner.has("(a|an)")&&e.remove(t.determiner);let i=t.root.after("not? #Adverb+? [#Copula]",0);return i.found&&(i.has("is")?e.replace(i,"are"):i.has("was")&&e.replace(i,"were")),e};const Gh={tags:!0};var Eh=function(e,t){if(!1===t.isPlural)return e;const{methods:n,model:r}=e.world,{toSingular:a}=n.two.transform.noun;let o=a(t.root.text("normal"),r);return e.replace(t.root,o,Gh).tag("Singular","toPlural"),e};var Oh=function(e){class Nouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Nouns"}parse(e){return this.getNth(e).map(Ch)}json(e){let t="object"==typeof e?e:{};return this.getNth(e).map((e=>{let n=e.toView().json(t)[0]||{};return t&&!1!==t.noun&&(n.noun=Ih(e)),n}),[])}conjugate(e){const t=this.world.methods.two.transform.noun;return this.getNth(e).map((e=>{let n=Ch(e),r=n.root.compute("root").text("root"),a={Singular:r};return Th(n.root)&&(a.Plural=t.toPlural(r,this.model)),a.Singular===a.Plural&&delete a.Plural,a}),[])}isPlural(e){let t=this.filter((e=>Ch(e).isPlural));return t.getNth(e)}isSingular(e){let t=this.filter((e=>!Ch(e).isPlural));return t.getNth(e)}adjectives(e){let t=this.update([]);return this.forEach((e=>{let n=Ch(e).adjectives;n.found&&(t=t.concat(n))})),t.getNth(e)}toPlural(e){return this.getNth(e).map((e=>Hh(e,Ch(e))))}toSingular(e){return this.getNth(e).map((e=>{let t=Ch(e);return Eh(e,t)}))}update(e){let t=new Nouns(this.document,e);return t._cache=this._cache,t}}e.prototype.nouns=function(e){let t=wh(this);return t=t.getNth(e),new Nouns(this.document,t.pointer)}},Fh={api:Oh};var Vh=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 zh=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(Bh.ones.hasOwnProperty(e)){if(t.ones||t.teens)return!1}else if(Bh.teens.hasOwnProperty(e)){if(t.ones||t.teens||t.tens)return!1}else if(Bh.tens.hasOwnProperty(e)&&(t.ones||t.teens||t.tens))return!1;return!0};var Sh=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 Mh=/^([0-9,. ]+)\/([0-9,. ]+)$/,Lh={"a few":3,"a couple":2,"a dozen":12,"two dozen":24,zero:0},Jh=e=>Object.keys(e).reduce(((t,n)=>t+=e[n]),0);var Wh=function(e){if(!0===Lh.hasOwnProperty(e))return Lh[e];if("a"===e||"an"===e)return 1;const t=zh(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=Uh(n),r=Uh(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:Uh(n);let a=r.text("reduced");return qh.test(a)&&(a=a.replace(qh,""),r=r.replaceWith(a)),r=Rh.hasOwnProperty(a)?Rh[a]:Uh(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:Uh(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 _h=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 Zh=[["ninety",90],["eighty",80],["seventy",70],["sixty",60],["fifty",50],["forty",40],["thirty",30],["twenty",20]],Xh=["","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],Yh=[[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"]],ed=function(e){let t=[];if(e>100)return t;for(let n=0;n=Zh[n][1]&&(e-=Zh[n][1],t.push(Zh[n][0]));return Xh[e]&&t.push(Xh[e]),t};var td=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=_h(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));let r=function(e){let t=e,n=[];return Yh.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(ed(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=_h(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 nd=function(e){if(!e.numerator||!e.denominator)return"";return`${td({num:e.numerator})} out of ${td({num:e.denominator})}`};const rd={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 ad=e=>{let t=td(e).split(" "),n=t[t.length-1];return rd.hasOwnProperty(n)?t[t.length-1]=rd[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")};var od=function(e){if(!e.numerator||!e.denominator)return"";let t=td({num:e.numerator}),n=ad({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""};var id=function(e){class Fractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return this.getNth(e).map(Qh)}get(e){return this.getNth(e).map(Qh)}json(e){return this.getNth(e).map((t=>{let n=t.toView().json(e)[0],r=Qh(t);return n.fraction=r,n}),[])}toDecimal(e){return this.getNth(e).forEach((e=>{let{decimal:t}=Qh(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")})),this}toFraction(e){return this.getNth(e).forEach((e=>{let t=Qh(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 this.getNth(e).forEach((e=>{let t=Qh(e),n=od(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)})),this}toCardinal(e){return this.getNth(e).forEach((e=>{let t=Qh(e),n=nd(t);e.replaceWith(n)})),this}toPercentage(e){return this.getNth(e).forEach((e=>{let{decimal:t}=Qh(e),n=100*t;n=Math.round(100*n)/100,e.replaceWith(`${n}%`)})),this}}e.prototype.fractions=function(e){let t=Vh(this);return t=t.getNth(e),new Fractions(this.document,t.pointer)}};const sd="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty";var ld=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("("+sd+") #Cardinal #Cardinal")&&(t=t.splitAfter("("+sd+") #Cardinal")),t.has("#Value #Value")){t.has("#NumericValue #NumericValue")&&(t=t.splitOn("#Year")),t.has("("+sd+") (eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen)")&&(t=t.splitAfter("("+sd+")"));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) (${sd})`),r=e.has("("+sd+") #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("("+sd+") #Ordinal")||(t=t.splitAfter("#Ordinal"))),t=t.splitBefore("#Ordinal [#Cardinal]",0),t.has("#TextValue #NumericValue")&&!t.has("("+sd+"|#Multiple)")&&(t=t.splitBefore("#TextValue #NumericValue"))}return t=t.splitAfter("#NumberRange"),t=t.splitBefore("#Year"),t};var ud=function(e){if("string"==typeof e)return{num:Wh(e)};let t=e.text("reduced"),n=e.growRight("#Unit").match("#Unit$").text("machine"),r=/[0-9],[0-9]/.test(e.text("text"));if(1===e.terms().length&&!e.has("#Multiple")){let a=function(e,t){let n=(e=e.replace(/,/g,"")).split(/([0-9.,]*)/),[r,a]=n,o=n.slice(2).join("");return""!==a&&t.length<2?(a=Number(a||e),"number"!=typeof a&&(a=null),o=o||"","st"!==o&&"nd"!==o&&"rd"!==o&&"th"!==o||(o=""),{prefix:r||"",num:a,suffix:o}):null}(t,e);if(null!==a)return a.hasComma=r,a.unit=n,a}let a=e.match("#Fraction{2,}$");a=!1===a.found?e.match("^#Fraction$"):a;let o=null;a.found&&(a.has("#Value and #Value #Fraction")&&(a=a.match("and #Value #Fraction")),o=Qh(a),t=(e=(e=e.not(a)).not("and$")).text("reduced"));let i=0;return t&&(i=Wh(t)||0),o&&o.decimal&&(i+=o.decimal),{hasComma:r,prefix:"",num:i,suffix:"",isOrdinal:e.has("#Ordinal"),isText:e.has("#TextValue"),isFraction:e.has("#Fraction"),isMoney:e.has("#Money"),unit:n}};var cd=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=_h(t),o=a.slice(a.length-1,a.length);return a+=r[o]?r[o]:"th",a};const hd={"ยข":"cents",$:"dollars","ยฃ":"pounds","ยฅ":"yen","โ‚ฌ":"euros","โ‚ก":"colรณn","เธฟ":"baht","โ‚ญ":"kip","โ‚ฉ":"won","โ‚น":"rupees","โ‚ฝ":"ruble","โ‚บ":"liras"},dd={"%":"percent","ยฐ":"degrees"};var gd=function(e){let t={suffix:"",prefix:e.prefix};return hd.hasOwnProperty(e.prefix)&&(t.suffix+=" "+hd[e.prefix],t.prefix=""),dd.hasOwnProperty(e.suffix)&&(t.suffix+=" "+dd[e.suffix]),t.suffix&&1===e.num&&(t.suffix=t.suffix.replace(/s$/,"")),!t.suffix&&e.suffix&&(t.suffix+=" "+e.suffix),t};var md=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=gd(e);return t+ad(e)+n}if("Ordinal"===t)return e.prefix+cd(e)+e.suffix;if("TextCardinal"===t){let{prefix:t,suffix:n}=gd(e);return t+td(e)+n}let n=e.num;return e.hasComma&&(n=n.toLocaleString()),e.prefix+String(n)+e.suffix};const pd=function(e){if("string"==typeof e||"number"==typeof e){let t={};return t[e]=!0,t}return t=e,"[object Array]"===Object.prototype.toString.call(t)?e.reduce(((e,t)=>(e[t]=!0,e)),{}):e||{};var t};var fd=function(e,t={}){return t=pd(t),e.filter((e=>{let{unit:n}=ud(e);return!(!n||!0!==t[n])}))};var vd=function(e){class Numbers extends e{constructor(e,t,n){super(e,t,n),this.viewType="Numbers"}parse(e){return this.getNth(e).map(ud)}get(e){return this.getNth(e).map(ud).map((e=>e.num))}json(e){let t="object"==typeof e?e:{};return this.getNth(e).map((e=>{let n=e.toView().json(t)[0],r=ud(e);return n.number={prefix:r.prefix,num:r.num,suffix:r.suffix,hasComma:r.hasComma,unit:r.unit},n}),[])}units(){return this.growRight("#Unit").match("#Unit$")}isUnit(e){return fd(this,e)}isOrdinal(){return this.if("#Ordinal")}isCardinal(){return this.if("#Cardinal")}toNumber(){return this.if("#TextValue").forEach((e=>{let t=ud(e);if(null===t.num)return;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=md(t,n);e.replaceWith(r,{tags:!0}),e.tag("NumericValue")})),this}toLocaleString(){return this.forEach((e=>{let t=ud(e);if(null===t.num)return;let n=t.num.toLocaleString();if(e.has("#Ordinal")){let e=md(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=ud(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"TextOrdinal":"TextCardinal",r=md(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=ud(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextCardinal":"Cardinal",r=md(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=ud(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextOrdinal":"Ordinal",r=md(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=>ud(t).num===e))}greaterThan(e){return this.filter((t=>ud(t).num>e))}lessThan(e){return this.filter((t=>ud(t).num{let r=ud(n).num;return r>e&&r{let n=ud(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=md(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=ud(e).num);let t=this.map((t=>{let n=ud(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=md(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=ld(this);return t=t.getNth(e),new Numbers(this.document,t.pointer)},e.prototype.percentages=function(e){let t=ld(this);return t=t.filter((e=>e.has("#Percent")||e.after("^percent"))),t=t.getNth(e),new Numbers(this.document,t.pointer)},e.prototype.money=function(e){let t=ld(this);return t=t.filter((e=>e.has("#Money")||e.after("^#Currency"))),t=t.getNth(e),new Numbers(this.document,t.pointer)},e.prototype.values=e.prototype.numbers};var bd={api:function(e){id(e),vd(e)}};const yd={people:!0,emails:!0,phoneNumbers:!0,places:!0},wd=function(e={}){return!1!==(e=Object.assign({},yd,e)).people&&this.people().replaceWith("โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ"),!1!==e.emails&&this.emails().replaceWith("โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ"),!1!==e.places&&this.places().replaceWith("โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ"),!1!==e.phoneNumbers&&this.phoneNumbers().replaceWith("โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ"),this},kd={api:function(e){e.prototype.redact=wd}};var Pd=kd;var Ad=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 Cd=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:(t=t.ifNo("^#Gerund"),1===t.length?t:(0===t.length&&(t=e),t.eq(0)))))))};const jd=function(e){let t=null;return e.has("#PastTense")?t="PastTense":e.has("#FutureTense")?t="FutureTense":e.has("#PresentTense")&&(t="PresentTense"),{tense:t}};var Nd=function(e){let t=e.clauses(),n=Cd(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,grammar:jd(a)}};var xd=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 Id=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 Td=function(e){let t=e.verbs();if(t.eq(0).toFutureTense(),t=(e=e.fullSentence()).verbs(),t.length>1){t=t.slice(1);let e=t.filter((e=>!e.lookBehind("to$").found&&(!!e.has("#Copula #Gerund")||!e.has("#Gerund")&&(!!e.has("#Copula")||!(e.has("#PresentTense")&&!e.has("#Infinitive")&&e.lookBefore("(he|she|it|that|which)$").found)))));e.found&&e.forEach((e=>{if(e.has("#Copula"))return e.match("was").replaceWith("is"),void e.match("is").replaceWith("will be");e.toInfinitive()}))}return e};var Dd=function(e){return e.verbs().toInfinitive(),e};var Hd=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,grammar:i}=Nd(t);return n.sentence={subject:r.text("normal"),verb:a.text("normal"),predicate:o.text("normal"),grammar:i},n}),[])}toPastTense(e){return this.getNth(e).map((e=>(Nd(e),xd(e))))}toPresentTense(e){return this.getNth(e).map((e=>(Nd(e),Id(e))))}toFutureTense(e){return this.getNth(e).map((e=>(Nd(e),e=Td(e))))}toInfinitive(e){return this.getNth(e).map((e=>(Nd(e),Dd(e))))}toNegative(e){return this.getNth(e).map((e=>(Nd(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e))))}toPositive(e){return this.getNth(e).map((e=>(Nd(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 t.getNth(e)}isStatement(e){let t=this.filter((e=>!e.isExclamation().found&&!e.isQuestion().found));return t.getNth(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=t.getNth(e),new Sentences(this.document,t.pointer)},questions:function(e){return Ad(this).getNth(e)}};Object.assign(e.prototype,t)},Gd={api:Hd};var Ed=function(e){let t=e.match("#Honorific+? #Person+"),n=t.match("#Possessive").notIf("(his|her)");return t=t.splitAfter(n),t};var Od=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 Fd="male",Vd="female",zd={mr:Fd,mrs:Vd,miss:Vd,madam:Vd,king:Fd,queen:Vd,duke:Fd,duchess:Vd,baron:Fd,baroness:Vd,count:Fd,countess:Vd,prince:Fd,princess:Vd,sire:Fd,dame:Vd,lady:Vd,ayatullah:Fd,congressman:Fd,congresswoman:Vd,"first lady":Vd,mx:null};var Bd=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return Vd;if(n.has("#MaleName"))return Fd;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),zd.hasOwnProperty(e))return zd[e];if(/^her /.test(e))return Vd;if(/^his /.test(e))return Fd}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 Fd;if(n&&!t)return Vd}return null};var $d=function(e){class People extends e{constructor(e,t,n){super(e,t,n),this.viewType="People"}parse(e){return this.getNth(e).map(Od)}json(e){let t="object"==typeof e?e:{};return this.getNth(e).map((e=>{let n=e.toView().json(t)[0],r=Od(e);return n.person={firstName:r.firstName.text("normal"),lastName:r.lastName.text("normal"),honorific:r.honorific.text("normal"),presumed_gender:Bd(r,e)},n}),[])}presumedMale(){return this.filter((e=>e.has("(#MaleName|mr|mister|sr|jr|king|pope|prince|sir)")))}presumedFemale(){return this.filter((e=>e.has("(#FemaleName|mrs|miss|queen|princess|madam)")))}update(e){let t=new People(this.document,e);return t._cache=this._cache,t}}e.prototype.people=function(e){let t=Ed(this);return t=t.getNth(e),new People(this.document,t.pointer)}};var Sd=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 Kd=function(e){e.prototype.places=function(t){let n=Sd(this);return n=n.getNth(t),new e(this.document,n.pointer)}};var Md=function(e){e.prototype.organizations=function(e){return this.match("#Organization+").getNth(e)}};const Ld=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=n.getNth(e),n};var Jd=function(e){e.prototype.topics=Ld};var Wd={api:function(e){$d(e),Kd(e),Md(e),Jd(e)}};var qd=function(e){let t=e.match("");return t=t.not("#Conjunction"),t=t.not("#Preposition"),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),t=t.splitBefore("(#PresentTense|#PastTense) [(had|has)]",0),t=t.not("#Reflexive$"),t=t.not("#Adjective"),t=t.splitAfter("[#PastTense] #PastTense",0),t=t.splitAfter("[#PastTense] #Auxiliary+ #PastTense",0),t=t.splitAfter("#Copula [#Gerund] #PastTense",0),t=t.if("#Verb"),t.has("(#Verb && !#Auxiliary) #Adverb+? #Copula")&&(t=t.splitBefore("#Copula")),t};var Ud=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 Rd=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 Qd=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},_d=function(e){return e.match("#Negative")},Zd=function(e){if(!e.has("(#Particle|#PhrasalVerb)"))return{verb:e.none(),particle:e.none()};let t=e.match("#Particle$");return{verb:e.not(t),particle:t}};var Xd=function(e){let t=e.clone();t.contractions().expand();const n=Ud(t);return{root:n,prefix:t.match("#Prefix"),adverbs:Rd(t,n),auxiliary:Qd(t,n),negative:_d(t),phrasal:Zd(n)}};const Yd={tense:"PresentTense"},eg={conditional:!0},tg={tense:"FutureTense"},ng={progressive:!0},rg={tense:"PastTense"},ag={complete:!0,progressive:!1},og={passive:!0},ig=function(e){let t={};return e.forEach((e=>{Object.assign(t,e)})),t},sg={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[Yd]],["^wanted to #Infinitive$",[rg]],["^will want to #Infinitive$",[tg]]],"gerund-phrase":[["^#PastTense #Gerund$",[rg]],["^#PresentTense #Gerund$",[Yd]],["^#Infinitive #Gerund$",[Yd]],["^will #Infinitive #Gerund$",[tg]],["^have #PastTense #Gerund$",[rg]],["^will have #PastTense #Gerund$",[rg]]],"simple-present":[["^#PresentTense$",[Yd]],["^#Infinitive$",[Yd]]],"simple-past":[["^#PastTense$",[rg]]],"simple-future":[["^will #Adverb? #Infinitive",[tg]]],"present-progressive":[["^(is|are|am) #Gerund$",[Yd,ng]]],"past-progressive":[["^(was|were) #Gerund$",[rg,ng]]],"future-progressive":[["^will be #Gerund$",[tg,ng]]],"present-perfect":[["^(has|have) #PastTense$",[rg,ag]]],"past-perfect":[["^had #PastTense$",[rg,ag]],["^had #PastTense to #Infinitive",[rg,ag]]],"future-perfect":[["^will have #PastTense$",[tg,ag]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[rg,ng]]],"past-perfect-progressive":[["^had been #Gerund$",[rg,ng]]],"future-perfect-progressive":[["^will have been #Gerund$",[tg,ng]]],"passive-past":[["(got|were|was) #Passive",[rg,og]],["^(was|were) being #Passive",[rg,og]],["^(had|have) been #Passive",[rg,og]]],"passive-present":[["^(is|are|am) #Passive",[Yd,og]],["^(is|are|am) being #Passive",[Yd,og]],["^has been #Passive",[Yd,og]]],"passive-future":[["will have been #Passive",[tg,og,eg]],["will be being? #Passive",[tg,og,eg]]],"present-conditional":[["would be #PastTense",[Yd,eg]]],"past-conditional":[["would have been #PastTense",[rg,eg]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[tg]]],"auxiliary-past":[["^did #Infinitive$",[rg,{plural:!1}]],["^used to #Infinitive$",[rg,ag]]],"auxiliary-present":[["^(does|do) #Infinitive$",[Yd,ag,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[rg]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let lg=[];Object.keys(sg).map((e=>{sg[e].forEach((t=>{lg.push({name:e,match:t[0],data:ig(t[1])})}))}));var ug=lg;var cg=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(),hg(r)&&(n.remove(r),r=n.last()),hg(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:dg(t,e)}};const mg=e=>e,pg=(e,t)=>{let n=gg(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},fg=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=gg(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},vg=function(e,t){let n=gg(e),r=n.subject;return r.has("i")||r.has("we")||n.plural?"do":"does"},bg=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},yg=function(e,t){const{toInfinitive:n}=e.methods.two.transform.verb;let r=t.root.text({keepPunct:!1});return r=n(r,e.model,bg(e)),r&&e.replace(t.root,r),e},wg=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),kg=function(e){if(!e||!e.isView)return[];return e.json({normal:!0,terms:!1,text:!1}).map((e=>e.normal))},Pg=function(e){return e&&e.isView?e.text("normal"):""},Ag=function(e){const{toInfinitive:t}=e.methods.two.transform.verb;return t(e.text("normal"),e.model,bg(e))};var Cg=function(e){let t=Xd(e);e=e.clone().toView();const n=cg(e,t);return{root:t.root.text(),preAdverbs:kg(t.adverbs.pre),postAdverbs:kg(t.adverbs.post),auxiliary:Pg(t.auxiliary),negative:t.negative.found,prefix:Pg(t.prefix),infinitive:Ag(t.root),grammar:n}};const jg={tags:!0};var Ng=function(e,t){const{toInfinitive:n}=e.methods.two.transform.verb,{root:r,auxiliary:a}=t;let o=a.terms().harden(),i=r.text("normal");if(i=n(i,e.model,bg(r)),i&&e.replace(r,i,jg).tag("Verb").firstTerm().tag("Infinitive"),o.found&&e.remove(o),t.negative.found){e.has("not")||e.prepend("not");let t=vg(e);e.prepend(t)}return e.fullSentence().compute(["freeze","lexicon","preTagger","postTagger","unfreeze","chunks"]),e};const xg={tags:!0},Ig={noAux:(e,t)=>(t.auxiliary.found&&(e=e.remove(t.auxiliary)),e),simple:(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;if(a.has("#Modal"))return e;let o=a.text({keepPunct:!1});return o=r(o,e.model,bg(a)),o=n(o,e.model).PastTense,o="been"===o?"was":o,"was"===o&&(o=((e,t)=>{let{subject:n,plural:r}=gg(e);return r||n.has("we")?"were":"was"})(e)),o&&e.replace(a,o,xg),e},both:function(e,t){return t.negative.found?(e.replace("will","did"),e):(e=Ig.simple(e,t),e=Ig.noAux(e,t))},hasHad:e=>(e.replace("has","had",xg),e),hasParticiple:(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,bg(a)),n(o,e.model).Participle}},Tg={infinitive:Ig.simple,"simple-present":Ig.simple,"simple-past":mg,"simple-future":Ig.both,"present-progressive":e=>(e.replace("are","were",xg),e.replace("(is|are|am)","was",xg),e),"past-progressive":mg,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":Ig.hasHad,"past-perfect":mg,"future-perfect":(e,t)=>(e.match(t.root).insertBefore("had"),e.has("will")&&(e=wg(e)),e.remove("have"),e),"present-perfect-progressive":Ig.hasHad,"past-perfect-progressive":mg,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",xg),e),"passive-past":e=>(e.replace("have","had",xg),e),"passive-present":e=>(e.replace("(is|are)","was",xg),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",xg),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":mg,"auxiliary-future":e=>(e.replace("(is|are|am)","was",xg),e),"auxiliary-past":mg,"auxiliary-present":e=>(e.replace("(do|does)","did",xg),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",xg):(Ig.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":mg,"want-infinitive":e=>(e.replace("(want|wants)","wanted",xg),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Ig.simple(e,t),wg(e),e)};var Dg=function(e,t,n){return Tg.hasOwnProperty(n)?((e=Tg[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const Hg=function(e,t){let n=gg(e),r=n.subject;return r.has("(i|we|you)")?"have":!1===n.plural||r.has("he")||r.has("she")||r.has("#Person")?"has":"have"},Gg=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,{root:a,auxiliary:o}=t;if(a.has("#Modal"))return e;let i=a.text({keepPunct:!1});i=r(i,e.model,bg(a));let s=n(i,e.model);if(i=s.Participle||s.PastTense,i){e=e.replace(a,i);let t=Hg(e);e.prepend(t).match(t).tag("Auxiliary"),e.remove(o)}return e},Eg={infinitive:Gg,"simple-present":Gg,"simple-future":(e,t)=>e.replace("will",Hg(e)),"present-perfect":mg,"past-perfect":mg,"future-perfect":(e,t)=>e.replace("will have",Hg(e)),"present-perfect-progressive":mg,"past-perfect-progressive":mg,"future-perfect-progressive":mg};var Og=function(e,t,n){return Eg.hasOwnProperty(n)?((e=Eg[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):((e=Gg(e,t)).fullSentence().compute(["tagger","chunks"]),e)};const Fg={tags:!0},Vg=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,bg(a)),!1===pg(e)&&(o=n(o,e.model).PresentTense),a.has("#Copula")&&(o=fg(e)),o&&(e=e.replace(a,o,Fg)).not("#Particle").tag("PresentTense"),e},zg=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,bg(a)),!1===pg(e)&&(o=n(o,e.model).Gerund),o&&(e=e.replace(a,o,Fg)).not("#Particle").tag("Gerund"),e},Bg={infinitive:Vg,"simple-present":(e,t)=>{const{conjugate:n}=e.methods.two.transform.verb;let{root:r}=t;if(!r.has("#Infinitive"))return Vg(e,t);{let t=gg(e).subject;if(pg(e)||t.has("i"))return e;let a=r.text("normal"),o=n(a,e.model).PresentTense;a!==o&&e.replace(r,o,Fg)}return e},"simple-past":Vg,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=fg(e);e.replace(n,t),(e=e.remove("will")).replace("not "+t,t+" not")}else Vg(e,t),e=e.remove("will");return e},"present-progressive":mg,"past-progressive":(e,t)=>{let n=fg(e);return e.replace("(were|was)",n,Fg)},"future-progressive":e=>(e.match("will").insertBefore("is"),e.remove("be"),e.remove("will")),"present-perfect":(e,t)=>(Vg(e,t),e=e.remove("(have|had|has)")),"past-perfect":(e,t)=>{let n=gg(e).subject;return pg(e)||n.has("i")?((e=yg(e,t)).remove("had"),e):(e.replace("had","has",Fg),e)},"future-perfect":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"present-perfect-progressive":mg,"past-perfect-progressive":e=>e.replace("had","has",Fg),"future-perfect-progressive":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"passive-past":(e,t)=>{let n=fg(e);return e.has("(had|have|has)")&&e.has("been")?(e.replace("(had|have|has)",n,Fg),e.replace("been","being"),e):e.replace("(got|was|were)",n)},"passive-present":mg,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":mg,"past-conditional":e=>(e.replace("been","be"),e.remove("have")),"auxiliary-future":(e,t)=>(zg(e,t),e.remove("(going|to)"),e),"auxiliary-past":(e,t)=>{if(t.auxiliary.has("did")){let n=vg(e);return e.replace(t.auxiliary,n),e}return zg(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":mg,"modal-infinitive":mg,"modal-past":(e,t)=>(((e,t)=>{const{toInfinitive:n}=e.methods.two.transform.verb,r=t.root;let a=t.root.text("normal");a=n(a,e.model,bg(r)),a&&(e=e.replace(t.root,a,Fg))})(e,t),e.remove("have")),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Vg(e,t),e.remove("(will|have)")),"want-infinitive":(e,t)=>{let n="wants";return pg(e)&&(n="want"),e.replace("(want|wanted|wants)",n,Fg),e.remove("will"),e}};var $g=function(e,t,n){return Bg.hasOwnProperty(n)?((e=Bg[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const Sg={tags:!0},Kg=(e,t)=>{const{toInfinitive:n}=e.methods.two.transform.verb,{root:r,auxiliary:a}=t;if(r.has("#Modal"))return e;let o=r.text("normal");return o=n(o,e.model,bg(r)),o&&(e=e.replace(r,o,Sg)).not("#Particle").tag("Verb"),e.prepend("will").match("will").tag("Auxiliary"),e.remove(a),e},Mg=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,{root:a,auxiliary:o}=t;let i=a.text("normal");return i=r(i,e.model,bg(a)),i&&(i=n(i,e.model).Gerund,e.replace(a,i,Sg),e.not("#Particle").tag("PresentTense")),e.remove(o),e.prepend("will be").match("will be").tag("Auxiliary"),e},Lg={infinitive:Kg,"simple-present":Kg,"simple-past":Kg,"simple-future":mg,"present-progressive":Mg,"past-progressive":Mg,"future-progressive":mg,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":mg,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":mg,"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":mg,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":mg,"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":mg,"modal-past":mg,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Kg(e,t),e.remove("(had|have)")),"want-infinitive":e=>(e.replace("(want|wants|wanted)","will want"),e)};var Jg=function(e,t,n){return e.has("will")||e.has("going to")?e:Lg.hasOwnProperty(n)?((e=Lg[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const Wg={tags:!0};var qg=function(e,t){const{toInfinitive:n,conjugate:r}=e.methods.two.transform.verb,{root:a,auxiliary:o}=t;if(e.has("#Gerund"))return e;let i=a.text("normal");i=n(i,e.model,bg(a));let s=r(i,e.model).Gerund;if(s){let t=fg(e);e.replace(a,s,Wg),e.remove(o),e.prepend(t)}return e.replace("not is","is not"),e.replace("not are","are not"),e.fullSentence().compute(["tagger","chunks"]),e};const Ug={tags:!0},Rg=function(e,t){let n=vg(e);return e.prepend(n+" not"),e},Qg=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)},_g=e=>e.has("(is|was|am|are|will|were|be)"),Zg={"simple-present":(e,t)=>!0===_g(e)?Qg(e):(e=yg(e,t),e=Rg(e)),"simple-past":(e,t)=>!0===_g(e)?Qg(e):((e=yg(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===_g(e)?Qg(e):Rg(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",Ug),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=Rg(e)).replace("wants","want",Ug)};var Xg=function(e,t,n){if(e.has("#Negative"))return e;if(Zg.hasOwnProperty(n))return e=Zg[n](e,t);let r=e.matchOne("be");return r.found?(r.prepend("not"),e):!0===_g(e)?Qg(e):(r=e.matchOne("(will|had|have|has|did|does|do|#Modal)"),r.found?(r.append("not"),e):e)};var Yg=function(e){class Verbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Verbs"}parse(e){return this.getNth(e).map(Xd)}json(e,t){let n=this.getNth(t).map((t=>{let n=t.toView().json(e)[0]||{};return n.verb=Cg(t),n}),[]);return n}subjects(e){return this.getNth(e).map((e=>(Xd(e),gg(e).subject)))}adverbs(e){return this.getNth(e).map((e=>e.match("#Adverb")))}isSingular(e){return this.getNth(e).filter((e=>!0!==gg(e).plural))}isPlural(e){return this.getNth(e).filter((e=>!0===gg(e).plural))}isImperative(e){return this.getNth(e).filter((e=>e.has("#Imperative")))}toInfinitive(e){return this.getNth(e).map((e=>{let t=Xd(e),n=cg(e,t);return Ng(e,t,n.form)}))}toPresentTense(e){return this.getNth(e).map((e=>{let t=Xd(e),n=cg(e,t);return n.isInfinitive?e:$g(e,t,n.form)}))}toPastTense(e){return this.getNth(e).map((e=>{let t=Xd(e),n=cg(e,t);return n.isInfinitive?e:Dg(e,t,n.form)}))}toFutureTense(e){return this.getNth(e).map((e=>{let t=Xd(e),n=cg(e,t);return n.isInfinitive?e:Jg(e,t,n.form)}))}toGerund(e){return this.getNth(e).map((e=>{let t=Xd(e),n=cg(e,t);return n.isInfinitive?e:qg(e,t,n.form)}))}toPastParticiple(e){return this.getNth(e).map((e=>{let t=Xd(e),n=cg(e,t);return n.isInfinitive?e:Og(e,t,n.form)}))}conjugate(e){const{conjugate:t,toInfinitive:n}=this.world.methods.two.transform.verb;return this.getNth(e).map((e=>{let r=Xd(e),a=cg(e,r);"imperative"===a.form&&(a.form="simple-present");let o=r.root.text("normal");if(!r.root.has("#Infinitive")){let t=bg(r.root);o=n(o,e.model,t)||o}return t(o,e.model)}),[])}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 this.getNth(e).map((e=>{let t=Xd(e),n=cg(e,t);return Xg(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=qd(this);return t=t.getNth(e),new Verbs(this.document,t.pointer)}},em={api:Yg};const tm=function(e,t){let n=t.match(e);if(n.found){let e=n.pronouns().refersTo();if(e.found)return e}return t.none()},nm=function(e){if(!e.found)return e;let[t]=e.fullPointer[0];return t&&t>0?e.update([[t-1]]):e.none()};var rm=function(e,t){let n=e.people();return n=function(e,t){return"m"===t?e.filter((e=>!e.presumedFemale().found)):"f"===t?e.filter((e=>!e.presumedMale().found)):e}(n,t),n.found?n.last():(n=e.nouns("#Actor"),n.found?n.last():"f"===t?tm("(she|her|hers)",e):"m"===t?tm("(he|him|his)",e):e.none())};var am=function(e){let t=e.nouns(),n=t.isPlural().notIf("#Pronoun");if(n.found)return n.last();let r=tm("(they|their|theirs)",e);return r.found?r:(n=t.match("(somebody|nobody|everybody|anybody|someone|noone|everyone|anyone)"),n.found?n.last():e.none())};const om=function(e,t){let n=e.before(),r=t(n);return r.found?r:(n=nm(e),r=t(n),r.found?r:(n=nm(n),r=t(n),r.found?r:e.none()))};var im=function(e){e.pronouns().if("(he|him|his|she|her|hers|they|their|theirs|it|its)").forEach((e=>{let t=null;e.has("(he|him|his)")?t=om(e,(e=>rm(e,"m"))):e.has("(she|her|hers)")?t=om(e,(e=>rm(e,"f"))):e.has("(they|their|theirs)")&&(t=om(e,am)),t&&t.found&&function(e,t){t&&t.found&&(e.docs[0][0].reference=t.ptrs[0])}(e,t)}))};var sm=function(e){class Pronouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Pronouns"}hasReference(){return this.compute("coreference"),this.filter((e=>e.docs[0][0].reference))}refersTo(){return this.compute("coreference"),this.map((e=>{if(!e.found)return e.none();let t=e.docs[0][0];return t.reference?e.update([t.reference]):e.none()}))}update(e){let t=new Pronouns(this.document,e);return t._cache=this._cache,t}}e.prototype.pronouns=function(e){let t=this.match("#Pronoun");return t=t.getNth(e),new Pronouns(t.document,t.pointer)}},lm={compute:{coreference:im},api:sm};v.plugin(Ec),v.plugin(Oc),v.plugin(Rc),v.plugin(lm),v.plugin(dh),v.plugin(yh),v.plugin(Fh),v.plugin(bd),v.plugin(Pd),v.plugin(Gd),v.plugin(Wd),v.plugin(em);export{v as default}; +var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};const t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach((r=>{t.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",e)})):"function"==typeof e?e(this):console.warn("no compute:",e),this}};var n={forEach:function(e){return this.fullPointer.forEach(((t,n)=>{let r=this.update([t]);e(r,n)})),this},map:function(e,t){let n=this.fullPointer.map(((t,n)=>{let r=this.update([t]),a=e(r,n);return void 0===a?this.none():a}));if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach((e=>{r=r.concat(e.fullPointer)})),this.toView(r)},filter:function(e){let t=this.fullPointer;return t=t.filter(((t,n)=>{let r=this.update([t]);return e(r,n)})),this.update(t)},find:function(e){let t=this.fullPointer.find(((t,n)=>{let r=this.update([t]);return e(r,n)}));return this.update([t])},some:function(e){return this.fullPointer.some(((t,n)=>{let r=this.update([t]);return e(r,n)}))},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const r={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach((e=>{t[e]=this.update(this._groups[e])})),t},eq:function(e){let t=this.pointer;return t||(t=this.docs.map(((e,t)=>[t]))),t[e]?this.update([t[e]]):this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map(((e,t)=>[t]));return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map((e=>[e[0]]));return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every(((e,t)=>!!n[t]&&(e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2])))},wordCount:function(){return this.docs.reduce(((e,t)=>(e+=t.filter((e=>""!==e.text)).length,e)),0)},isFull:function(){let e=this.pointer;if(!e)return!0;if(0===e.length||0!==e[0][0])return!1;let t=0,n=0;return this.document.forEach((e=>t+=e.length)),this.docs.forEach((e=>n+=e.length)),t===n},getNth:function(e){return"number"==typeof e?this.eq(e):"string"==typeof e?this.if(e):this}};r.group=r.groups,r.fullSentence=r.fullSentences,r.sentence=r.fullSentences,r.lastTerm=r.lastTerms,r.firstTerm=r.firstTerms;const a=Object.assign({},r,t,n);a.get=a.eq;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,r=t||e.map(((e,t)=>[t]));return r.map((e=>{let[t,r,a,o,i]=e;return r=r||0,a=a||(n[t]||[]).length,n[t]&&n[t][r]&&(o=o||n[t][r].id,n[t][a-1]&&(i=i||n[t][a-1].id)),[t,r,a,o,i]}))}update(e){let t=new View(this.document,e);if(this._cache&&e&&e.length>0){let n=[];e.forEach(((e,t)=>{let[r,a,o]=e;(1===e.length||0===a&&this.document[r].length===o)&&(n[t]=this._cache[r])})),n.length>0&&(t._cache=n)}return t.world=this.world,t}toView(e){return new View(this.document,e||this.pointer)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","freeze","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r.compute("unfreeze"),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,a);const o=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};function i(e,t){if(o(t))for(const n in t)o(t[n])?(e[n]||Object.assign(e,{[n]:{}}),i(e[n],t[n])):Object.assign(e,{[n]:t[n]});return e}const s=function(e,t,n,r){const{methods:a,model:o,compute:s,hooks:l}=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&&i(o,e.model),e.irregulars&&function(e,t){let n=e.two.models||{};Object.keys(t).forEach((e=>{t[e].pastTense&&(n.toPast&&(n.toPast.ex[e]=t[e].pastTense),n.fromPast&&(n.fromPast.ex[t[e].pastTense]=e)),t[e].presentTense&&(n.toPresent&&(n.toPresent.ex[e]=t[e].presentTense),n.fromPresent&&(n.fromPresent.ex[t[e].presentTense]=e)),t[e].gerund&&(n.toGerund&&(n.toGerund.ex[e]=t[e].gerund),n.fromGerund&&(n.fromGerund.ex[t[e].gerund]=e)),t[e].comparative&&(n.toComparative&&(n.toComparative.ex[e]=t[e].comparative),n.fromComparative&&(n.fromComparative.ex[t[e].comparative]=e)),t[e].superlative&&(n.toSuperlative&&(n.toSuperlative.ex[e]=t[e].superlative),n.fromSuperlative&&(n.fromSuperlative.ex[t[e].superlative]=e))}))}(o,e.irregulars),e.compute&&Object.assign(s,e.compute),l&&(t.hooks=l.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.frozen&&r.addWords(e.frozen,!0),e.mutate&&e.mutate(t,r)},l=function(e){return"[object Array]"===Object.prototype.toString.call(e)},u=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(l(e)){if(l(e[0])){let n=e.map((e=>e.map((e=>({text:e,normal:e,pre:"",post:" ",tags:new Set})))));return new t(n)}let n=e.map((e=>e.terms.map((e=>(l(e.tags)&&(e.tags=new Set(e.tags)),e)))));return new t(n)}return a};let c=Object.assign({},e);const h=function(e,t){t&&h.addWords(t);let n=u(e,View,c);return e&&n.compute(c.hooks),n};Object.defineProperty(h,"_world",{value:c,writable:!0}),h.tokenize=function(e,t){const{compute:n}=this._world;t&&h.addWords(t);let r=u(e,View,c);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},h.plugin=function(e){return s(e,this._world,View,this),this},h.extend=h.plugin,h.world=function(){return this._world},h.model=function(){return this._world.model},h.methods=function(){return this._world.methods},h.hooks=function(){return this._world.hooks},h.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},h.version="14.14.0";var d={one:{cacheDoc:function(e){let t=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},v=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-โ€“โ€”]/.test(t.post)||(t.post+=" ")},y=(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,"")}},w=function(e,t,n,r){let[a,o,i]=t;0===o||i===r[a].length?v(n):(v(n),v([e[t[1]]])),function(e,t,n){let r=e[t];if(0!==t||!f(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")||f(a.text)&&a.text.length>1&&(a.text=(o=a.text,o.replace(/^\p{Lu}/u,(e=>e.toLowerCase()))));var o}(e,o,n),b(e,o,n)};let k=0;const P=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e,A=function(e){let[t,n]=e.index||[0,0];k+=1,k=k>46655?0:k,t=t>46655?0:t,n=n>1294?0:n;let r=P(k.toString(36));r+=P(t.toString(36));let a=n.toString(36);return a=a.length<2?"0"+a:a,r+=a,r+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+r.toUpperCase()},C=function(e){if(e.has("@hasContraction")&&"function"==typeof e.contractions){e.grow("@hasContraction").contractions().expand()}},N=e=>"[object Array]"===Object.prototype.toString.call(e),j=function(e,t,n){const{document:r,world:a}=t;t.uncache();let o=t.fullPointer,i=t.fullPointer;t.forEach(((s,l)=>{let u=s.fullPointer[0],[c]=u,h=r[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]||[]:N(e)?N(e[0])?e[0]:e:[]}(e,a);0!==d.length&&(d=function(e){return e.map((e=>(e.id=A(e),e)))}(d),n?(C(t.update([u]).firstTerm()),w(h,u,d,r)):(C(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);let a=r.docs[0],o=t.possessives&&a[a.length-1].tags.has("Possessive");e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e=e.replace(I,(e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})),e}(e,r);let i=this.update(n);n=n.map((e=>e.slice(0,3)));let s=(i.docs[0]||[]).map((e=>Array.from(e.tags)));if("string"==typeof e&&(e=this.fromText(e).compute("id")),r.insertAfter(e),i.has("@hasContraction")&&r.contractions){r.grow("@hasContraction+").contractions().expand()}if(r.delete(i),o){let e=r.docs[0],t=e[e.length-1];t.tags.has("Possessive")||(t.text+="'s",t.normal+="'s",t.tags.add("Possessive"))}let l=r.toView(n).compute(["index","freeze","lexicon"]);return l.world.compute.preTagger&&l.compute("preTagger"),l.compute("unfreeze"),t.tags&&l.terms().forEach(((e,t)=>{e.tagSafe(s[t])})),t.case&&l.docs[0]&&l.docs[0][0]&&0===l.docs[0][0].index[1]&&(l.docs[0][0].text=l.docs[0][0].text.replace(/\w\S*/g,(e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase()))),l},T.replace=function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let r=this.match(e);return r.found?(this.soften(),r.replaceWith(t,n)):this};const D={remove:function(e){const{indexN:t}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;e&&(n=this,r=this.match(e));let a=!n.ptrs;if(r.has("@hasContraction")&&r.contractions){r.grow("@hasContraction").contractions().expand()}let o=n.fullPointer,i=r.fullPointer.reverse(),s=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}(this.document,i);return o=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})),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)))}(o,t(i)),n.ptrs=o,n.document=s,n.compute("index"),a&&(n.ptrs=void 0),e?n.toView(o):(this.ptrs=[],n.none())}};D.delete=D.remove;const H={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}};H.deHyphenate=H.dehyphenate,H.toQuotation=H.toQuotations;var E={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 G=new Set(["index","sequence","seq","sequential","chron","chronological"]),O=new Set(["freq","frequency","topk","repeats"]),F=new Set(["alpha","alphabetical"]);var V={unique:function(){let e=new Set,t=this.filter((t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)}));return t},reverse:function(){let e=this.pointer||this.docs.map(((e,t)=>[t]));return e=[].concat(e),e=e.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if(this.uncache(),"function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort(((n,r)=>(n=e.update([n]),r=e.update([r]),t(n,r)))),e.ptrs=n,e}(this,e);e=e||"alpha";let r=n||t.map(((e,t)=>[t])),a=t.map(((e,t)=>({index:t,words:e.length,normal:e.map((e=>e.machine||e.normal||"")).join(" "),pointer:r[t]})));return G.has(e)&&(e="sequential"),F.has(e)&&(e="alpha"),O.has(e)?(a=E.byFreq(a),this.update(a.map((e=>e.pointer)))):"function"==typeof E[e]?(a=a.sort(E[e]),this.update(a.map((e=>e.pointer)))):this}};const z=function(e,t){if(e.length>0){let t=e[e.length-1],n=t[t.length-1];!1===/ /.test(n.post)&&(n.post+=" ")}return e=e.concat(t)};var B={concat:function(e){if("string"==typeof e){let t=this.fromText(e);if(this.found&&this.ptrs){let e=this.fullPointer,n=e[e.length-1][0];this.document.splice(n,0,...t.document)}else this.document=this.document.concat(t.document);return this.all().compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach((t=>{t[0]+=e.document.length})),e.document=z(e.document,t.docs),e.all()}(this,e);if(t=e,"[object Array]"===Object.prototype.toString.call(t)){let t=z(this.document,e);return this.document=t,this.all()}var t;return this}};var S={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 $=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}},x,T,D,H,V,B,S),M={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))),n[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))},q=/'/,U=new Set(["what","how","when","where","why"]),R=new Set(["be","go","start","think","need"]),Q=new Set(["been","gone"]),Z=/'/,_=/(e|รฉ|aison|sion|tion)$/,X=/(age|isme|acle|ege|oire)$/;var Y=(e,t)=>["je",e[t].normal.split(Z)[1]],ee=(e,t)=>{let n=e[t].normal.split(Z)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},te=(e,t)=>{let n=e[t].normal.split(Z)[1];return n&&_.test(n)&&!X.test(n)?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const ne=/^([0-9.]{1,4}[a-z]{0,2}) ?[-โ€“โ€”] ?([0-9]{1,4}[a-z]{0,2})$/i,re=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-โ€“โ€”] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,ae=/^[0-9]{3}-[0-9]{4}$/,oe=function(e,t){let n=e[t],r=n.text.match(ne);return null!==r?!0===n.tags.has("PhoneNumber")||ae.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(re),null!==r?[r[1],"to",r[4]]:null)},ie=/^([+-]?[0-9][.,0-9]*)([a-zยฐยฒยณยต/]+)$/,se=function(e,t,n){const r=n.model.one.numberSuffixes||{};let a=e[t].text.match(ie);if(null!==a){let e=a[2].toLowerCase().trim();return r.hasOwnProperty(e)?null:[a[1],e]}return null},le=/'/,ue=/^[0-9][^-โ€“โ€”]*[-โ€“โ€”].*?[0-9]/,ce=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]]},he={t:(e,t)=>function(e,t){return"ain't"===e[t].normal||"aint"===e[t].normal?null:[e[t].normal.replace(/n't/,""),"not"]}(e,t),d:(e,t)=>function(e,t){let n=e[t].normal.split(q)[0];if(U.has(n))return[n,"did"];if(e[t+1]){if(Q.has(e[t+1].normal))return[n,"had"];if(R.has(e[t+1].normal))return[n,"would"]}return null}(e,t)},de={j:(e,t)=>Y(e,t),l:(e,t)=>ee(e,t),d:(e,t)=>te(e,t)},ge=function(e,t,n,r){for(let a=0;a2)return o.out.concat(r)}return null},me=function(e,t){let n=t.fromText(e.join(" "));return n.compute(["id","alias"]),n.docs[0]},pe=function(e,t){for(let n=t+1;n<5&&e[n];n+=1)if("been"===e[n].normal)return["there","has"];return["there","is"]};var fe={contractions:e=>{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;if(!0===le.test(r[s].normal)){let e=r[s].normal.split(le);l=e[0],u=e[1]}let c=ge(o,r[s],l,u);!c&&he.hasOwnProperty(u)&&(c=he[u](r,s,t)),!c&&de.hasOwnProperty(l)&&(c=de[l](r,s)),"there"===l&&"s"===u&&(c=pe(r,s)),c?(c=me(c,e),W(n,[i,s],c),ce(n[i],e,s,c.length)):ue.test(r[s].normal)?(c=oe(r,s),c&&(c=me(c,e),W(n,[i,s],c),a.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&a.one.setTag([c[0]],"Time",t,null,"time-range"),ce(n[i],e,s,c.length))):(c=se(r,s,t),c&&(c=me(c,e),W(n,[i,s],c),a.one.setTag([c[1]],"Unit",t,null,"contraction-unit")))}}))}};const be={model:J,compute:fe,hooks:["contractions"]},ve=function(e){const t=e.world,{model:n,methods:r}=e.world,a=r.one.setTag,{frozenLex:o}=n.one,i=n.one._multiCache||{};e.docs.forEach((e=>{for(let n=0;nn;r-=1){let i=e.slice(n,r+1),s=i.map((e=>e.machine||e.normal)).join(" ");!0!==o.hasOwnProperty(s)||(a(i,o[s],t,!1,"1-frozen-multi-lexicon"),i.forEach((e=>e.frozen=!0)))}}void 0!==o[s]&&o.hasOwnProperty(s)&&(a([r],o[s],t,!1,"1-freeze-lexicon"),r.frozen=!0)}}))};const ye=e=>""+e+"",we=e=>""+e+"",ke=function(e){e.docs.forEach((e=>{console.log(ye("\n โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€")),e.forEach((e=>{let t=` ${we("โ”‚")} `,n=e.implicit||e.text||"-";!0===e.frozen?t+=`${ye(n)} โ„๏ธ`:t+=we(n),console.log(t)}))}))};var Pe={compute:{frozen:ve,freeze:ve,unfreeze:function(e){return e.docs.forEach((e=>{e.forEach((e=>{delete e.frozen}))})),e}},mutate:e=>{const t=e.methods.one;t.termMethods.isFrozen=e=>!0===e.frozen,t.debug.freeze=ke,t.debug.frozen=ke},api:function(e){e.prototype.freeze=function(){return this.docs.forEach((e=>{e.forEach((e=>{e.frozen=!0}))})),this},e.prototype.unfreeze=function(){this.compute("unfreeze")},e.prototype.isFrozen=function(){return this.match("@isFrozen+")}},hooks:["freeze"]};const Ae=function(e,t,n){const{model:r,methods:a}=n,o=a.one.setTag,i=r.one._multiCache||{},{lexicon:s}=r.one||{};let l=e[t],u=l.machine||l.normal;if(void 0!==i[u]&&e[t+1]){for(let r=t+i[u]-1;r>t;r-=1){let a=e.slice(t,r+1);if(a.length<=1)return!1;let i=a.map((e=>e.machine||e.normal)).join(" ");if(!0===s.hasOwnProperty(i)){let e=s[i];return o(a,e,n,!1,"1-multi-lexicon"),!e||2!==e.length||"PhrasalVerb"!==e[0]&&"PhrasalVerb"!==e[1]||o([a[1]],"Particle",n,!1,"1-phrasal-particle"),!0}}return!1}return null},Ce=/^(under|over|mis|re|un|dis|semi|pre|post)-?/,Ne=new Set(["Verb","Infinitive","PastTense","Gerund","PresentTense","Adjective","Participle"]),je=function(e,t,n){const{model:r,methods:a}=n,o=a.one.setTag,{lexicon:i}=r.one;let s=e[t],l=s.machine||s.normal;if(void 0!==i[l]&&i.hasOwnProperty(l))return o([s],i[l],n,!1,"1-lexicon"),!0;if(s.alias){let e=s.alias.find((e=>i.hasOwnProperty(e)));if(e)return o([s],i[e],n,!1,"1-lexicon-alias"),!0}if(!0===Ce.test(l)){let e=l.replace(Ce,"");if(i.hasOwnProperty(e)&&e.length>3&&Ne.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null};var xe={lexicon:function(e){const t=e.world;e.docs.forEach((e=>{for(let n=0;n{let a=e[r],o=(r=(r=r.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);o.length>1&&(void 0===n[o[0]]||o.length>n[o[0]])&&(n[o[0]]=o.length),t[r]=t[r]||a})),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}}}};var Te={addWords:function(e,t=!1){const n=this.world(),{methods:r,model:a}=n;if(!e)return;if(Object.keys(e).forEach((t=>{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))})),!0===t){let{lex:t,_multi:o}=r.one.expandLexicon(e,n);return Object.assign(a.one._multiCache,o),void Object.assign(a.one.frozenLex,t)}if(r.two.expandLexicon){let{lex:t,_multi:o}=r.two.expandLexicon(e,n);Object.assign(a.one.lexicon,t),Object.assign(a.one._multiCache,o)}let{lex:o,_multi:i}=r.one.expandLexicon(e,n);Object.assign(a.one.lexicon,o),Object.assign(a.one._multiCache,i)}};var De={model:{one:{lexicon:{},_multiCache:{},frozenLex:{}}},methods:Ie,compute:xe,lib:Te,hooks:["lexicon"]};const He=function(e,t){let n=[{}],r=[null],a=[0],o=[],i=0;e.forEach((function(e){let a=0,o=function(e,t){const{methods:n,model:r}=t;let a=n.one.tokenize.splitTerms(e,r).map((e=>n.one.tokenize.splitWhitespace(e,r)));return a.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}},Ee=function(e,t,n){let r=0,a=[];for(let o=0;o0&&(void 0===t.goNext[r]||!t.goNext[r].hasOwnProperty(i));)r=t.failTo[r]||0;if(t.goNext[r].hasOwnProperty(i)&&(r=t.goNext[r][i],t.endAs[r])){let n=t.endAs[r];for(let t=0;t{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1);return e},Fe={buildTrie:function(e){return function(e){return e.goNext=e.goNext.map((e=>{if(0!==Object.keys(e).length)return e})),e.goNext=Oe(e.goNext,void 0),e.failTo=Oe(e.failTo,0),e.endAs=Oe(e.endAs,null),e}(He(e,this.world()))}};Fe.compile=Fe.buildTrie;var Ve={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();var n;"string"==typeof e&&(e=[e]);let r=function(e,t,n){let r=[];n.form=n.form||"normal";let a=e.docs;if(!t.goNext||!t.goNext[0])return console.error("Compromise invalid lookup trie"),e.none();let o=Object.keys(t.goNext[0]);for(let i=0;i0&&(r=r.concat(l))}return e.update(r)}(this,(n=e,"[object Object]"===Object.prototype.toString.call(n)?e:He(e,this.world)),t);return r=r.settle(),r}},lib:Fe};const ze=function(e,t){return t?(e.forEach((e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])})),e):e},Be=function(e,t){let{ptrs:n,byGroup:r}=e;return n=ze(n,t),Object.keys(r).forEach((e=>{r[e]=ze(r[e],t)})),{ptrs:n,byGroup:r}},Se=function(e,t,n){const r=n.methods.one;return"number"==typeof e&&(e=String(e)),"string"==typeof e&&(e=r.killUnicode(e,n),e=r.parseMatch(e,t,n)),e},$e=e=>"[object Object]"===Object.prototype.toString.call(e),Me=e=>e&&$e(e)&&!0===e.isView,Ke=e=>e&&$e(e)&&!0===e.isNet;var Le={matchOne:function(e,t,n){const r=this.methods.one;if(Me(e))return this.intersection(e).eq(0);if(Ke(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;let a={regs:e=Se(e,n,this.world),group:t,justOne:!0},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Be(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const r=this.methods.one;if(Me(e))return this.intersection(e);if(Ke(e))return this.sweep(e,{tagger:!1}).view.settle();let a={regs:e=Se(e,n,this.world),group:t},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Be(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const r=this.methods.one;if(Me(e)){return this.intersection(e).fullPointer.length>0}if(Ke(e))return this.sweep(e,{tagger:!1}).view.found;let a={regs:e=Se(e,n,this.world),group:t,justOne:!0};return r.match(this.docs,a,this._cache).ptrs.length>0},if:function(e,t,n){const r=this.methods.one;if(Me(e))return this.filter((t=>t.intersection(e).found));if(Ke(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}let a={regs:e=Se(e,n,this.world),group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter(((e,t)=>{let n=this.update([e]);return r.match(n.docs,a,i[t]).ptrs.length>0}));let s=this.update(o);return this._cache&&(s._cache=o.map((e=>i[e[0]]))),s},ifNo:function(e,t,n){const{methods:r}=this,a=r.one;if(Me(e))return this.filter((t=>!t.intersection(e).found));if(Ke(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}e=Se(e,n,this.world);let o=this._cache||[],i=this.filter(((n,r)=>{let i={regs:e,group:t,justOne:!0};return 0===a.match(n.docs,i,o[r]).ptrs.length}));return this._cache&&(i._cache=i.ptrs.map((e=>o[e[0]]))),i}};var Je={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 We=function(e,t){return[e[0],e[1],t[2]]},qe=(e,t,n)=>{return"string"==typeof e||(r=e,"[object Array]"===Object.prototype.toString.call(r))?t.match(e,n):e||t.none();var r},Ue=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},Re={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=qe(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>Ue(e,this))),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=qe(e,this,t).fullPointer,a=n(this.fullPointer,r);for(let e=0;e{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(We(e.match,e.after)):o.push(e.match)})),o=o.filter((e=>e)),o=o.map((e=>Ue(e,this))),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=qe(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),e.before&&e.match?o.push(We(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=>Ue(e,this))),this.update(o)}};Re.split=Re.splitAfter;const Qe=function(e,t){return!(!e||!t)&&(e[0]===t[0]&&e[2]===t[1])},Ze=function(e,t,n){const r=e.world,a=r.methods.one.parseMatch;n=n||"^.";let o=a(t=t||".$",{},r),i=a(n,{},r);o[o.length-1].end=!0,i[0].start=!0;let s=e.fullPointer,l=[s[0]];for(let t=1;t)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,et=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,tt=/ /g,nt=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),rt=function(e){return e=(e=e.map((e=>e.trim()))).filter((e=>e))},at=/\{([0-9]+)?(, *[0-9]*)?\}/,ot=/&&/,it=new RegExp(/^<\s*(\S+)\s*>/),st=e=>e.charAt(0).toUpperCase()+e.substring(1),lt=e=>e.charAt(e.length-1),ut=e=>e.charAt(0),ct=e=>e.substring(1),ht=e=>e.substring(0,e.length-1),dt=function(e){return e=ct(e),e=ht(e)},gt=function(e,t){let n={};for(let r=0;r<2;r+=1){if("$"===lt(e)&&(n.end=!0,e=ht(e)),"^"===ut(e)&&(n.start=!0,e=ct(e)),"?"===lt(e)&&(n.optional=!0,e=ht(e)),("["===ut(e)||"]"===lt(e))&&(n.group=null,"["===ut(e)&&(n.groupStart=!0),"]"===lt(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===ut(e))){const t=it.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===lt(e)&&(n.greedy=!0,e=ht(e)),"*"!==e&&"*"===lt(e)&&"\\*"!==e&&(n.greedy=!0,e=ht(e)),"!"===ut(e)&&(n.negative=!0,e=ct(e)),"~"===ut(e)&&"~"===lt(e)&&e.length>2&&(e=dt(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("/"===ut(e)&&"/"===lt(e))return e=dt(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if(!0===at.test(e)&&(e=e.replace(at,((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),"")))),"("===ut(e)&&")"===lt(e)){ot.test(e)?(n.choices=e.split(ot),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=ct(n.choices[0]);let r=n.choices.length-1;n.choices[r]=ht(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=>gt(e,t))))),e=""}if("{"===ut(e)&&"}"===lt(e)){if(e=dt(e),n.root=e,/\//.test(e)){let e=n.root.split(/\//);n.root=e[0],n.pos=e[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==e[2]&&(n.sense=e[2])}return n}if("<"===ut(e)&&">"===lt(e))return e=dt(e),n.chunk=st(e),n.greedy=!0,n;if("%"===ut(e)&&"%"===lt(e))return e=dt(e),n.switch=e,n}return"#"===ut(e)?(n.tag=ct(e),n.tag=st(n.tag),n):"@"===ut(e)?(n.method=ct(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)},mt=/[a-z0-9][-โ€“โ€”][a-z]/i,pt=function(e,t){let{all:n}=t.methods.two.transform.verb||{},r=e.root;return n?n(r,t.model):[]},ft=function(e,t){let{all:n}=t.methods.two.transform.noun||{};return n?n(e.root,t.model):[e.root]},bt=function(e,t){let{all:n}=t.methods.two.transform.adjective||{};return n?n(e.root,t.model):[e.root]},vt=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}))),e},yt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1},wt=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),xt={hasQuote:e=>Pt.test(e.pre)||At.test(e.post),hasComma:e=>jt(e,","),hasPeriod:e=>!0===jt(e,".")&&!1===jt(e,"..."),hasExclamation:e=>jt(e,"!"),hasQuestionMark:e=>jt(e,"?")||jt(e,"ยฟ"),hasEllipses:e=>jt(e,"..")||jt(e,"โ€ฆ"),hasSemicolon:e=>jt(e,";"),hasColon:e=>jt(e,":"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>Ct.test(e.post)||Ct.test(e.pre),hasDash:e=>Nt.test(e.post)||Nt.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};xt.hasQuotation=xt.hasQuote;let It=function(){};It=function(e,t,n,r){let a=function(e,t,n,r){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==r-1)return!1;if(void 0!==t.id&&t.id===e.id)return!0;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(kt(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some((e=>e===t.word)))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof xt[t.method]&&!0===xt[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}if(void 0!==t.chunk)return e.chunk===t.chunk;if(void 0!==t.switch)return e.switch===t.switch;if(void 0!==t.machine)return e.normal===t.machine||e.machine===t.machine||e.root===t.machine;if(void 0!==t.sense)return e.sense===t.sense;if(void 0!==t.fastOr){if(t.pos&&!e.tags.has(t.pos))return null;let n=e.root||e.implicit||e.machine||e.normal;return t.fastOr.has(n)||t.fastOr.has(e.text)}return void 0!==t.choices&&("and"===t.operator?t.choices.every((t=>It(e,t,n,r))):t.choices.some((t=>It(e,t,n,r))))}(e,t,n,r);return!0===t.negative?!a:a};const Tt=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max)return e.t=e.t+n.max,!0;if(!0===e.hasGroup){Dt(e,e.t).length=r-e.t}return e.t=r,!0},Et=function(e,t=0){let n=e.regs[e.r],r=!1;for(let o=0;o{let a=0,o=e.t+r+t+a;if(void 0===e.terms[o])return!1;let i=It(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let r=n.every(((t,n)=>{let r=e.t+n;return void 0!==e.terms[r]&&It(e.terms[r],t,r,e.phrase_length)}));return!0===r&&n.length>t&&(t=n.length),r}))&&t}(e);if(r){if(!0===n.negative)return null;if(!0===e.hasGroup){Dt(e,e.t).length+=r}if(!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=r,!0}return!!n.optional||null},Ft=function(e){const{regs:t}=e;let n=t[e.r],r=Object.assign({},n);if(r.negative=!1,It(e.terms[e.t],r,e.start_i+e.t,e.phrase_length))return!1;if(n.optional){let n=t[e.r+1];if(n){if(It(e.terms[e.t],n,e.start_i+e.t,e.phrase_length))e.r+=1;else if(n.optional&&t[e.r+2]){It(e.terms[e.t],t[e.r+2],e.start_i+e.t,e.phrase_length)&&(e.r+=2)}}}return n.greedy?function(e,t,n){let r=0;for(let a=e.t;ar||(e.t+=r,0))}(e,r,t[e.r+1]):(e.t+=1,!0)},Vt=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},zt=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]&&function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=It(r,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||a){let n=e.terms[e.t+1];n&&It(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}}(e),r.implicit&&e.terms[e.t+1]&&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)}}(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy)return null;if(!0===n.greedy){if(!Vt(e))return null}return!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=Dt(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0},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!==Tt(e,a))if(e.negative){if(!Ft(a))return null}else if(!0!==It(a.terms[a.t],e,a.start_i+a.t,a.phrase_length)){if(!0!==e.optional)return null}else{if(!zt(a))return null}else{if(!zt(a))return null}else{if(e.negative&&e.anything)return null;if(!zt(a))return null}else{if(!Ot(a))return null}else{if(!Gt(a))return null}else{if(!Ht(a))return null}}let o=[null,n,a.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(a.groups).forEach((e=>{let t=a.groups[e],r=n+t.start;i[e]=[null,r,r+t.length]})),{pointer:o,groups:i}},St=function(e,t){return e.pointer[0]=t,Object.keys(e.groups).forEach((n=>{e.groups[n][0]=t})),e},$t=function(e,t,n){let r=Bt(e,t,0,e.length);return r?(r=St(r,n),r):null},Mt={one:{termMethods:xt,parseMatch:function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let r=function(e){let t=e.split(Ye),n=[];t.forEach((e=>{nt(e)?n.push(e):n=n.concat(e.split(et))})),n=rt(n);let r=[];return n.forEach((e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||nt(e)?r.push(e):r=r.concat(e.split(tt))})),r=rt(r),r}(e);return r=r.map((e=>gt(e,t))),r=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&&mt.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}(r,n),r=function(e,t){return e.map((e=>{if(e.root)if(t.methods.two&&t.methods.two.transform){let n=[];e.pos?"Verb"===e.pos?n=n.concat(pt(e,t)):"Noun"===e.pos?n=n.concat(ft(e,t)):"Adjective"===e.pos&&(n=n.concat(bt(e,t))):(n=n.concat(pt(e,t)),n=n.concat(ft(e,t)),n=n.concat(bt(e,t))),n=n.filter((e=>e)),n.length>0&&(e.operator="or",e.fastOr=new Set(n))}else e.machine=e.root,delete e.id,delete e.root;return e}))}(r,n),r=vt(r),r},match:function(e,t,n){n=n||[];let{regs:r,group:a,justOne:o}=t,i=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const s=r.filter((e=>!0!==e.optional&&!0!==e.negative)).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=$t(a,r,t);e&&i.push(e)}}return!0===r[r.length-1].end&&(i=i.filter((t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]}))),t.notIf&&(i=function(e,t,n){return e=e.filter((e=>{let[r,a,o]=e.pointer,i=n[r].slice(a,o);for(let e=0;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}}(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}}};var Kt={api:function(e){Object.assign(e.prototype,Xe)},methods:Mt,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 Lt=/^\../,Jt=/^#./,Wt=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,"'"),Lt.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 qt={html:function(e){let{starts:t,ends:n}=Wt(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(Rt,""),Zt.test(a)&&(a=" "),a=a.replace(Qt,""),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(Rt,""),a="-"===a?" ":a.replace(Ut,""));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&&_t.test(a)||(a+=" "),r+=n+o+a})),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},Yt={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{keepSpace:!1,whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{keepSpace:!1,whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};Yt.clean=Yt.normal,Yt.reduced=Yt.root;let en=[],tn=0;for(;tn<64;)en[tn]=0|4294967296*Math.sin(++tn%Math.PI);const nn=function(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(tn=i=0;tn>4]+en[i]+~~o[tn|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},rn={text:!0,terms:!0};let an={case:"none",unicode:"some",form:"machine",punctuation:"some"};const on=function(e,t){return Object.assign({},e,t)},sn={text:e=>Xt(e,{keepPunct:!0},!1),normal:e=>Xt(e,on(Yt.normal,{keepPunct:!0}),!1),implicit:e=>Xt(e,on(Yt.implicit,{keepPunct:!0}),!1),machine:e=>Xt(e,an,!1),root:e=>Xt(e,on(an,{form:"root"}),!1),hash:e=>nn(Xt(e,{keepPunct:!0},!1)),offset:e=>{let t=sn.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map((e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t})),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some((e=>!0===e.dirty))};sn.sentences=sn.sentence,sn.clean=sn.normal,sn.reduced=sn.root;const ln={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},rn,r)).offset&&n.compute("offset"),n.docs.map(((e,t)=>{let a={};return Object.keys(r).forEach((o=>{r[o]&&sn[o]&&(a[o]=sn[o](e,n,t))})),a})));var n,r;return"number"==typeof e?t[e]:t}};ln.data=ln.json;const un=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n},cn=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()));return e.filter((e=>e))}if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};e.forEach((e=>{t[e]=t[e]||0,t[e]+=1}));let n=Object.keys(t).map((e=>({normal:e,count:t[e]})));return n.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.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()},wrap:function(e){return cn(this,e)}};var dn={text:function(e){let t={};var n;if(e&&"string"==typeof e&&Yt.hasOwnProperty(e)?t=Object.assign({},Yt[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e)),void 0!==t.keepSpace||this.isFull()||(t.keepSpace=!1),void 0===t.keepEndPunct&&this.pointer){let e=this.pointer[0];e&&e[1]?t.keepEndPunct=!1:t.keepEndPunct=!0}return void 0===t.keepPunct&&(t.keepPunct=!0),void 0===t.keepSpace&&(t.keepSpace=!0),function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let r=0;r""+e+mn,red:e=>""+e+mn,blue:e=>""+e+mn,magenta:e=>""+e+mn,cyan:e=>""+e+mn,yellow:e=>""+e+mn,black:e=>""+e+mn,dim:e=>""+e+mn,i:e=>""+e+mn},fn={tags:function(e){let{docs:t,model:n}=e;0===t.length&&console.log(pn.blue("\n โ”€โ”€โ”€โ”€โ”€โ”€")),t.forEach((t=>{console.log(pn.blue("\n โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€")),t.forEach((t=>{let r=[...t.tags||[]],a=t.text||"-";t.sense&&(a=`{${t.normal}/${t.sense}}`),t.implicit&&(a="["+t.implicit+"]"),a=pn.yellow(a);let o="'"+a+"'";if(t.reference){let n=e.update([t.reference]).text("normal");o+=` - ${pn.dim(pn.i("["+n+"]"))}`}o=o.padEnd(18);let i=pn.blue(" โ”‚ ")+pn.i(o)+" - "+function(e,t){return t.one.tagSet&&(e=e.map((e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return pn[n](e)}))),e.join(", ")}(r,n);console.log(i)}))})),console.log("\n")},clientSide: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()}))},chunks:function(e){let{docs:t}=e;console.log(""),t.forEach((e=>{let t=[];e.forEach((e=>{"Noun"===e.chunk?t.push(pn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(pn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(pn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(pn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)})),console.log(t.join(" "),"\n")})),console.log("\n")},highlight:function(e){if(!e.found)return;let t={};e.fullPointer.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),Object.keys(t).forEach((n=>{let r=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach(((e,t)=>{r=function(e,t,n){let r=((e,t,n)=>{let r=9*n,a=t.start+r,o=a+t.length;return[e.substring(0,a),e.substring(a,o),e.substring(o,e.length)]})(e,t,n);return`${r[0]}${pn.blue(r[1])}${r[2]}`}(r,e.offset,t)})),console.log(r)})),console.log("\n")}};var bn={api:function(e){Object.assign(e.prototype,gn)},methods:{one:{hash:nn,debug:fn}}};const vn=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},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<20;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}}};const 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=>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);a.push(o)})),a=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)})),n},Cn=(e,t)=>{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}))},jn={union:function(e){e=Cn(e,this);let t=Pn(this.fullPointer,e.fullPointer);return t=Nn(t,this.document),this.toView(t)}};jn.and=jn.union,jn.intersection=function(e){e=Cn(e,this);let t=function(e,t){let n=yn(t),r=[];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{e=Pn(e,[t])})),e=Nn(e,this.document),this.update(e)};var xn={methods:kn,api:function(e){Object.assign(e.prototype,jn)}};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},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.notIf&&(e.notIf=n(e.notIf,{},t)),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};var Dn={buildNet:function(e,t){e=Tn(e,t);let n={};e.forEach((e=>{e.needs.forEach((t=>{n[t]=Array.isArray(n[t])?n[t]:[],n[t].push(e)})),e.wants.forEach((t=>{n[t]=Array.isArray(n[t])?n[t]:[],n[t].push(e)}))})),Object.keys(n).forEach((e=>{let t={};n[e]=n[e].filter((e=>"boolean"!=typeof 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=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=>"boolean"!=typeof o[e.match]&&(o[e.match]=!0,!0))),a}))}(a,t.hooks);o=function(e,t){return e.map(((e,n)=>{let r=t[n];return(e=(e=e.filter((e=>e.needs.every((e=>r.has(e)))))).filter((e=>void 0===e.ifNo||!0!==e.ifNo.some((e=>r.has(e)))))).filter((e=>0===e.wants.length||e.wants.filter((e=>r.has(e))).length>=e.minWant))}))}(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=e.filter((e=>r>=e.minWords)),e}))}(o,e);let i=function(e,t,n,r,a){let o=[];for(let n=0;n0&&(l.ptrs.forEach((e=>{e[0]=n;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),o.push(t)})),!0===a.matchOne))return[o[0]]}return o}(o,e,0,n,r);return i},bulkTagger:function(e,t,n){const{model:r,methods:a}=n,{getDoc:o,setTag:i,unTag:s}=a.one,l=a.two.looksPlural;if(0===e.length)return e;return("undefined"!=typeof process&&process.env?process.env:self.env||{}).DEBUG_TAGS&&console.log(`\n\n โ†’ ${e.length} post-tagger:`),e.map((e=>{if(!e.tag&&!e.chunk&&!e.unTag)return;let a=e.reason||e.match,u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===function(e,t,n){let r=n.one.tagSet;if(!r.hasOwnProperty(t))return!0;let a=r[t].not||[];for(let t=0;te.frozen=!0))}void 0!==e.unTag&&s(u,e.unTag,n,e.safe,a),e.chunk&&u.forEach((t=>t.chunk=e.chunk))}))}},Hn={lib:{buildNet:function(e){let t=this.methods().one.buildNet(e,this.world());return t.isNet=!0,t}},api:function(e){e.prototype.sweep=function(e,t={}){const{world:n,docs:r}=this,{methods:a}=n;let o=a.one.bulkMatch(r,e,this.methods,t);!1!==t.tagger&&a.one.bulkTagger(o,r,this.world),o=o.map((e=>{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:Dn}};const En=/ /,Gn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},On=function(e,t,n,r){if(!0===e.tags.has(t))return null;if("."===t)return null;!0===e.frozen&&(r=!0);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("string"==typeof t)if(t=t.trim(),En.test(t))!function(e,t,n,r){let a=t.split(En);e.forEach(((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),On(e,o,n,r))}))}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nFn(e,t,n,r)))},Vn=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},zn=/^ *(#|\/\/)/,Bn=function(e){let t=e.trim().split(/->/),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=>Vn({id:e}))),t}return[Vn({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),Mn=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()||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:Bn(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=Vn({});return e.forEach((e=>{if((e=Vn(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):(Sn(t=e).forEach(Vn),t);var t},Ln=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("โ†’ "));let r="";return Sn(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},Jn=function(e){let t=Sn(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},Wn={text:Ln,txt:Ln,array:Jn,flat:Jn},qn=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Ln(e,!0)),null):Wn.hasOwnProperty(t)?Wn[t](e):e},Un=e=>{Sn(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))}))},Rn=/\//;let Qn=class g{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=Mn(e),!Rn.test(e)){let t=this.json.children.find((t=>t.id===e));return new g(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)||Vn({});return new g(t)}add(e,t={}){if($n(e))return e.forEach((e=>this.add(Mn(e),t))),this;e=Mn(e);let n=Vn({id:e,props:t});return this.json.children.push(n),new g(n)}remove(e){return e=Mn(e),this.json.children=this.json.children.filter((t=>t.id!==e)),this}nodes(){return Sn(this.json).map((e=>(delete(e=Object.assign({},e)).children,e)))}cache(){return(e=>{let t=Sn(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 Sn(this.json)}fillDown(){var e;return e=this.json,Sn(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(){Un(this.json);let e=Sn(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 Un(this.json),qn(this.json,e)}debug(){return Un(this.json),qn(this.json,"debug"),this}};const Zn=function(e){let t=Kn(e);return new Qn(t)};Zn.prototype.plugin=function(e){e(this)};const _n={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Hyphenated:"cyan",Adverb:"cyan"},Xn=function(e){if(_n.hasOwnProperty(e.id))return _n[e.id];if(_n.hasOwnProperty(e.is))return _n[e.is];let t=e._cache.parents.find((e=>_n[e]));return _n[t]},Yn=function(e){return e?"string"==typeof e?[e]:e:[]},er=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=Yn(e[t].children),e[t].not=Yn(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 tr={one:{setTag:Fn,unTag:function(e,t,n){t=t.trim().replace(/^#/,"");for(let r=0;r0)for(let e=0;e0&&(e=function(e){return Object.keys(e).forEach((t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0})),e}(e)),e=er(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 Zn(t).cache().fillDown().out("array")}(Object.assign({},t,e)),r=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:Xn(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}(n);return r},canBe:function(e,t,n){if(!n.hasOwnProperty(t))return!0;let r=n[t].not||[];for(let t=0;ta.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 nr(e)?e.forEach((e=>r.one.unTag(n,e,i))):r.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){e=e.replace(/^#/,"");let t=this.model.one.tagSet,n=this.methods.one.canBe,r=[];this.document.forEach(((a,o)=>{a.forEach(((a,i)=>{n(a,e,t)||r.push([o,i,i+1])}))}));let a=this.update(r);return this.difference(a)}};var ar={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 or=new Set(["Auxiliary","Possessive"]);var ir={model:{one:{tagSet:{}}},compute:{tagRank:function(e){const{document:t,world:n}=e,r=n.model.one.tagSet;t.forEach((e=>{e.forEach((e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e=e.sort(((e,n)=>{if(or.has(e)||!t.hasOwnProperty(n))return 1;if(or.has(n)||!t.hasOwnProperty(e))return-1;let r=t[e].children||[],a=r.length;return r=t[n].children||[],a-r.length})),e}(t,r)}))}))}},methods:tr,api:function(e){Object.assign(e.prototype,rr)},lib:ar};const sr=/([.!?\u203D\u2E18\u203C\u2047-\u2049\u3002]+\s)/g,lr=/^[.!?\u203D\u2E18\u203C\u2047-\u2049\u3002]+\s$/,ur=/((?:\r?\n|\r)+)/,cr=/[a-z0-9\u00C0-\u00FF\u00a9\u00ae\u2000-\u3300\ud000-\udfff]/i,hr=/\S/,dr={'"':'"',"๏ผ‚":"๏ผ‚","โ€œ":"โ€","โ€Ÿ":"โ€","โ€ž":"โ€","โน‚":"โ€","โ€š":"โ€™","ยซ":"ยป","โ€น":"โ€บ","โ€ต":"โ€ฒ","โ€ถ":"โ€ณ","โ€ท":"โ€ด","ใ€":"ใ€ž","ใ€Ÿ":"ใ€ž"},gr=RegExp("["+Object.keys(dr).join("")+"]","g"),mr=RegExp("["+Object.values(dr).join("")+"]","g"),pr=function(e){if(!e)return!1;let t=e.match(mr);return null!==t&&1===t.length},fr=/\(/g,br=/\)/g,vr=/\S/,yr=/^\s+/,wr=function(e,t){let n=e.split(/[-โ€“โ€”]/);if(n.length<=1)return!1;const{prefixes:r,suffixes:a}=t.one;if(1===n[0].length&&/[a-z]/i.test(n[0]))return!1;if(r.hasOwnProperty(n[0]))return!1;if(n[1]=n[1].trim().replace(/[.?!]$/,""),a.hasOwnProperty(n[1]))return!1;if(!0===/^([a-z\u00C0-\u00FF`"'/]+)[-โ€“โ€”]([a-z0-9\u00C0-\u00FF].*)/i.test(e))return!0;return!0===/^[('"]?([0-9]{1,4})[-โ€“โ€”]([a-z\u00C0-\u00FF`"'/-]+[)'"]?$)/i.test(e)},kr=function(e){let t=[];const n=e.split(/[-โ€“โ€”]/);let r="-",a=e.match(/[-โ€“โ€”]/);a&&a[0]&&(r=a);for(let e=0;e(e[t]=!0,e)),{});const xr=/\p{Letter}/u,Ir=/[\p{Number}\p{Currency_Symbol}]/u,Tr=/^[a-z]\.([a-z]\.)+/i,Dr=/[sn]['โ€™]$/,Hr=/([A-Z]\.)+[A-Z]?,?$/,Er=/^[A-Z]\.,?$/,Gr=/[A-Z]{2,}('s|,)?$/,Or=/([a-z]\.)+[a-z]\.?$/,Fr=function(e){return function(e){return!0===Hr.test(e)||!0===Or.test(e)||!0===Er.test(e)||!0===Gr.test(e)}(e)&&(e=e.replace(/\./g,"")),e},Vr=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=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.replace(/([0-9]),([0-9])/g,"$1$2")}(r),r=n(r,t),r=Fr(r),e.normal=r},zr=/[ .][A-Z]\.? *$/i,Br=/(?:\u2026|\.{2,}) *$/,Sr=/\p{L}/u,$r=/\. *$/,Mr=/^[A-Z]\. $/;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:function(e,t){if(e=e||"",!(e=String(e))||"string"!=typeof e||!1===vr.test(e))return[];let n=function(e){let t=[],n=e.split(ur);for(let e=0;e0&&(a.push(o),e[t]="")}return a}(r,t),r=function(e){let t=[];for(let n=0;n0?(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=function(e){for(let t=1;te)),n},splitWhitespace:(e,t)=>{let{str:n,pre:r,post:a}=function(e,t){let{prePunctuation:n,postPunctuation:r,emoticons:a}=t.one,o=e,i="",s="",l=Array.from(e);if(a.hasOwnProperty(e.trim()))return{str:e.trim(),pre:i,post:" "};let u=l.length;for(let e=0;e(s=e||"",""))),e=o,i=""),{str:e,pre:i,post:s}}(e,t);return{text:n,pre:r,post:a,tags:new Set}},fromString:function(e,t){const{methods:n,model:r}=t,{splitSentences:a,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=a(e=e||"",t).map((e=>{let n=o(e,r);return n=n.map((e=>i(e,r))),n.forEach((e=>{Vr(e,t)})),n})),e}}}};let Lr={},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","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","ยตg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","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=>{Lr[t]=!0,Jr[t]="Abbreviation",void 0!==e[1]&&(Jr[t]=[Jr[t],e[1]])}))}));var Wr=["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","ex"].reduce(((e,t)=>(e[t]=!0,e)),{});let qr={"!":"ยก","?":"ยฟษ",'"':'โ€œโ€"โโž',"'":"โ€˜โ€›โ›โœโ€™","-":"โ€”โ€“",a:"ยชร€รร‚รƒร„ร…ร รกรขรฃรครฅฤ€ฤฤ‚ฤƒฤ„ฤ…ววŽวžวŸว วกวบวปศ€ศศ‚ศƒศฆศงศบฮ†ฮ‘ฮ”ฮ›ฮฌฮฑฮปะะฐัฆังำำ‘ำ’ำ“ฦ›รฆ",b:"รŸรพฦ€ฦฦ‚ฦƒฦ„ฦ…ษƒฮ’ฮฒฯฯฆะ‘ะ’ะชะฌะฒัŠัŒัขัฃาŒา",c:"ยขยฉร‡รงฤ†ฤ‡ฤˆฤ‰ฤŠฤ‹ฤŒฤฦ†ฦ‡ฦˆศปศผอปอผฯฒฯนฯฝฯพะกัั”า€าาชาซ",d:"รฤŽฤฤฤ‘ฦ‰ฦŠศกฦ‹ฦŒ",e:"รˆร‰รŠร‹รจรฉรชรซฤ’ฤ“ฤ”ฤ•ฤ–ฤ—ฤ˜ฤ™ฤšฤ›ฦศ„ศ…ศ†ศ‡ศจศฉษ†ษ‡ฮˆฮ•ฮžฮฃฮญฮตฮพฯตะ€ะะ•ะตัั‘าผาฝาพาฟำ–ำ—แป…",f:"ฦ‘ฦ’ฯœฯำบำปา’า“ลฟ",g:"ฤœฤฤžฤŸฤ ฤกฤขฤฃฦ“วควฅวฆวงวดวต",h:"ฤคฤฅฤฆฤงฦ•วถศžศŸฮ‰ฮ—ะ‚ะŠะ‹ะะฝั’ั›าขาฃาคาฅาบาปำ‰ำŠ",I:"รŒรรŽร",i:"รฌรญรฎรฏฤจฤฉฤชฤซฤฌฤญฤฎฤฏฤฐฤฑฦ–ฦ—ศˆศ‰ศŠศ‹ฮŠฮฮชฮฏฮนฯŠะ†ะ‡ั–ั—iฬ‡",j:"ฤดฤตวฐศทษˆษ‰ฯณะˆั˜",k:"ฤถฤทฤธฦ˜ฦ™วจวฉฮšฮบะŒะ–ะšะถะบัœาšา›าœาาžาŸา าก",l:"ฤนฤบฤปฤผฤฝฤพฤฟล€ลล‚ฦšฦชว€ววศดศฝฮ™ำ€ำ",m:"ฮœฯบฯปะœะผำำŽ",n:"ร‘รฑลƒล„ล…ล†ล‡ลˆล‰ลŠล‹ฦฦžวธวนศ ศตฮฮ ฮฎฮทฯžะะ˜ะ™ะ›ะŸะธะนะปะฟัาŠา‹ำ…ำ†ำขำฃำคำฅฯ€",o:"ร’ร“ร”ร•ร–ร˜รฐรฒรณรดรตรถรธลŒลลŽลลล‘ฦŸฦ ฦกว‘ว’วชวซวฌวญวพวฟศŒศศŽศศชศซศฌศญศฎศฏศฐศฑฮŒฮ˜ฮŸฮธฮฟฯƒฯŒฯ•ฯ˜ฯ™ฯฌฯดะžะคะพัฒัณำฆำงำจำฉำชำซ",p:"ฦคฮกฯฯทฯธฯผะ ั€าŽารž",q:"ษŠษ‹",r:"ล”ล•ล–ล—ล˜ล™ฦฆศศ‘ศ’ศ“ษŒษะƒะ“ะฏะณัั“าา‘",s:"ลšล›ลœลลžลŸล ลกฦงฦจศ˜ศ™ศฟะ…ั•",t:"ลขลฃลคลฅลฆลงฦซฦฌฦญฦฎศšศ›ศถศพฮ“ฮคฯ„ฯฎะขั‚",u:"ร™รšร›รœรนรบรปรผลจลฉลชลซลฌลญลฎลฏลฐลฑลฒลณฦฏฦฐฦฑฦฒว“ว”ว•ว–ว—ว˜ว™วšว›วœศ”ศ•ศ–ศ—ษ„ฮฐฯ…ฯ‹ฯ",v:"ฮฝัดัตัถัท",w:"ลดลตฦœฯ‰ฯŽฯ–ฯขฯฃะจะฉัˆั‰ักัฟ",x:"ร—ฮงฯ‡ฯ—ฯฐะฅั…าฒาณำผำฝำพำฟ",y:"รรฝรฟลถลทลธฦณฦดศฒศณษŽษฮŽฮฅฮซฮณฯˆฯ’ฯ“ฯ”ะŽะฃัƒั‡ัžัฐัฑาฎาฏาฐาฑำฎำฏำฐำฑำฒำณ",z:"ลนลบลปลผลฝลพฦตฦถศคศฅษ€ฮ–"},Ur={};Object.keys(qr).forEach((function(e){qr[e].split("").forEach((function(t){Ur[t]=e}))}));const Rr=/\//,Qr=/[a-z]\.[a-z]/i,Zr=/[0-9]/,_r=function(e,t){let n=e.normal||e.text||e.machine;const r=t.model.one.aliases;if(r.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(r[n])),Rr.test(n)&&!Qr.test(n)&&!Zr.test(n)){let t=n.split(Rr);t.length<=3&&t.forEach((t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))}))}return e},Xr=/^\p{Letter}+-\p{Letter}+$/u,Yr=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"),Xr.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)},ea=function(e,t){let n=e.docs;for(let r=0;rea(e,_r),machine:e=>ea(e,Yr),normal:e=>ea(e,Vr),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}(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}};var sa={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=aa},lib:ia,compute:ra,hooks:["typeahead"]};h.extend(K),h.extend(bn),h.extend(Kt),h.extend(xn),h.extend(ir),h.plugin(be),h.extend(na),h.extend(Pe),h.plugin(p),h.extend(Ve),h.extend(sa),h.extend(De),h.extend(Hn);var la={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",volcano:"volcanoes"},ua={Comparative:"trueยฆbett1f0;arth0ew0in0;er",Superlative:"trueยฆearlier",PresentTense:"trueยฆbests,sounds",Condition:"trueยฆlest,unless",PastTense:"trueยฆbegan,came,d4had,kneel3l2m0sa4we1;ea0sg2;nt;eap0i0;ed;id",Participle:"trueยฆ0:09;a06b01cZdXeat0fSgQhPoJprov0rHs7t6u4w1;ak0ithdra02o2r1;i02uY;k0v0;nd1pr04;ergoJoJ;ak0hHo3;e9h7lain,o6p5t4un3w1;o1um;rn;g,k;ol0reS;iQok0;ught,wn;ak0o1runk;ne,wn;en,wn;ewriNi1uJ;dd0s0;ut3ver1;do4se0t1;ak0h2;do2g1;roG;ne;ast0i7;iv0o1;ne,tt0;all0loBor1;bi3g2s1;ak0e0;iv0o9;dd0;ove,r1;a5eamt,iv0;hos0lu1;ng;e4i3lo2ui1;lt;wn;tt0;at0en,gun;r2w1;ak0ok0;is0;en",Gerund:"trueยฆaccord0be0doin,go0result0stain0;ing",Expression:"trueยฆa0Yb0Uc0Sd0Oe0Mfarew0Lg0FhZjeez,lWmVnToOpLsJtIuFvEw7y0;a5e3i1u0;ck,p;k04p0;ee,pee;a0p,s;!h;!a,h,y;a5h2o1t0;af,f;rd up,w;atsoever,e1o0;a,ops;e,w;hoo,t;ery w06oi0L;gh,h0;! 0h,m;huh,oh;here nPsk,ut tut;h0ic;eesh,hh,it,oo;ff,h1l0ow,sst;ease,s,z;ew,ooey;h1i,mg,o0uch,w,y;h,o,ps;! 0h;hTmy go0wT;d,sh;a7evertheless,o0;!pe;eh,mm;ah,eh,m1ol0;!s;ao,fao;aCeBi9o2u0;h,mph,rra0zzC;h,y;l1o0;r6y9;la,y0;! 0;c1moCsmok0;es;ow;!p hip hoor0;ay;ck,e,llo,y;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;ell;e0h,t cetera,ureka,ww,xcuse me;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;mon,o0;ngratulations,wabunga;a2oo1r0tw,ye;avo,r;!ya;h,m; 1h0ka,las,men,rgh,ye;!a,em,h,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ยฆdick0gre0ones,records;ens","Unit|Noun":"trueยฆcEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,t,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s",Value:"trueยฆa few",Imperative:"trueยฆbewa0come he0;re","Plural|Verb":"trueยฆleaves",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:4Q;a3Tb3Bc2Od2He2Df27g1Zh1Ti1Pj1Nk1Ll1Gm12n0Po0Mp0Cqu0Br02sTtHuCv9w3xiaomi,y1;amaha,m1Bou1w1B;gov,tu3C;a4e2iki1orld trade organizati33;leaRped0O;lls fargo,st1;fie2Hinghou2R;l1rner br3U;gree3Jl street journ2Im1E;an halOeriz2Xisa,o1;dafo2Yl1;kswagMvo;b4kip,n2ps,s1;a tod3Aps;es3Mi1;lev3Fted natio3C;er,s; mobi32aco beRd bOe9gi frida3Lh3im horto3Amz,o1witt3D;shi49y1;ota,s r 05;e 1in lizzy;b3carpen3Jdaily ma3Dguess w2holli0s1w2;mashing pumpki35uprem0;ho;ea1lack eyed pe3Xyr0Q;ch bo3Dtl0;l2n3Qs1xas instrumen1U;co,la m1F;efoni0Kus;a8cientology,e5ieme2Ymirnoff,np,o3pice gir6quare0Ata1ubaru;rbuc1to34;ks;ny,undgard1;en;a2x pisto1;ls;g1Wrs;few2Minsbur31lesfor03msu2E;adiohead,b8e4o1yana3C;man empi1Xyal 1;b1dutch she4;ank;a3d 1max,vl20;bu1c2Ahot chili peppe2Ylobst2N;ll;ders dige1Ll madrid;c,s;ant3Aizn2Q;a8bs,e5fiz2Ihilip4i3r1;emier 1udenti1D;leagTo2K;nk floyd,zza hut; morrBs;psi2tro1uge0E;br33chi0Tn33;!co;lant2Un1yp16; 2ason27da2P;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0QvZ;l,s;c,st1Otflix,w1; 1sweek;kids on the block,york0D;a,c;nd22s2t1;ional aca2Po,we0U;a,c02d0S;aDcdonalCe9i6lb,o3tv,y1;spa1;ce;b1Tnsanto,ody blu0t1;ley cr1or0T;ue;c2t1;as,subisO;helin,rosoft;dica2rcedes benz,talli1;ca;id,re;ds;cs milk,tt19z24;a3e1g,ittle caesa1P; ore09novo,x1;is,mark,us; 1bour party;pres0Dz boy;atv,fc,kk,lm,m1od1O;art;iffy lu0Roy divisi0Jpmorgan1sa;! cha09;bm,hop,k3n1tv;g,te1;l,rpol;ea;a5ewlett pack1Vi3o1sbc,yundai;me dep1n1P;ot;tac1zbollah;hi;lliburt08sbro;eneral 6hq,ithub,l5mb,o2reen d0Ou1;cci,ns n ros0;ldman sachs,o1;dye1g0H;ar;axo smith kli04encoW;electr0Nm1;oto0Z;a5bi,c barcelo4da,edex,i2leetwood m03o1rito l0G;rd,xcY;at,fa,nancial1restoZ; tim0;na;cebook,nnie mae;b0Asa,u3xxon1; m1m1;ob0J;!rosceptics;aiml0De5isney,o4u1;nkin donu2po0Zran dur1;an;ts;j,w jon0;a,f lepp12ll,peche mode,r spieg02stiny's chi1;ld;aJbc,hFiDloudflaCnn,o3r1;aigsli5eedence clearwater reviv1ossra09;al;c7inba6l4m1o0Est09;ca2p1;aq;st;dplSg1;ate;se;a c1o chanQ;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil a,na daily;r1y;on;d2pital o1rls jr;ne;bury,ill1;ac;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;cardi,idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser busDol,ppleAr6s4u3v2y1;er;is,on;di,todesk;hland o1sociated E;il;b3g2m1;co;os;ys; compu1be0;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ยฆits,my,our0thy;!s","Noun|Verb":"trueยฆ0:9W;1:AA;2:96;3:A3;4:9R;5:A2;6:9K;7:8N;8:7L;9:A8;A:93;B:8D;C:8X;a9Ob8Qc7Id6Re6Gf5Sg5Hh55i4Xj4Uk4Rl4Em40n3Vo3Sp2Squ2Rr21s0Jt02u00vVwGyFzD;ip,oD;ne,om;awn,e6Fie68;aOeMhJiHoErD;ap,e9Oink2;nd0rDuC;kDry,sh5Hth;!shop;ck,nDpe,re,sh;!d,g;e86iD;p,sD;k,p0t2;aDed,lco8W;r,th0;it,lk,rEsDt4ve,x;h,te;!ehou1ra9;aGen5FiFoD;iDmAte,w;ce,d;be,ew,sA;cuum,l4B;pDr7;da5gra6Elo6A;aReQhrPiOoMrGuEwiDy5Z;n,st;nDrn;e,n7O;aGeFiEoDu6;t,ub2;bu5ck4Jgg0m,p;at,k,nd;ck,de,in,nsDp,v7J;f0i8R;ll,ne,p,r4Yss,t94uD;ch,r;ck,de,e,le,me,p,re;e5Wow,u6;ar,e,ll,mp0st,xt;g,lDng2rg7Ps5x;k,ly;a0Sc0Ne0Kh0Fi0Dk0Cl0Am08n06o05pXquaBtKuFwD;ea88iD;ng,pe,t4;bGit,m,ppErD;fa3ge,pri1v2U;lDo6S;e6Py;!je8;aMeLiKoHrEuDy2;dy,ff,mb2;a85eEiDo5Pugg2;ke,ng;am,ss,t4;ckEop,p,rD;e,m;ing,pi2;ck,nk,t4;er,m,p;ck,ff,ge,in,ke,lEmp,nd,p2rDte,y;!e,t;k,l;aJeIiHlGoFrDur,y;ay,e56inDu3;g,k2;ns8Bt;a5Qit;ll,n,r87te;ed,ll;m,n,rk;b,uC;aDee1Tow;ke,p;a5Je4FiDo53;le,rk;eep,iDou4;ce,p,t;ateboa7Ii;de,gnDl2Vnk,p,ze;!al;aGeFiEoDuff2;ck,p,re,w;ft,p,v0;d,i3Ylt0;ck,de,pe,re,ve;aEed,nDrv1It;se,t2N;l,r4t;aGhedu2oBrD;aEeDibb2o3Z;en,w;pe,t4;le,n,r2M;cDfegua72il,mp2;k,rifi3;aZeHhy6LiGoEuD;b,in,le,n,s5X;a6ck,ll,oDpe,u5;f,t;de,ng,ot,p,s1W;aTcSdo,el,fQgPje8lOmMnLo17pJque6sFturn,vDwa6V;eDi27;al,r1;er74oFpe8tEuD;lt,me;!a55;l71rt;air,eaDly,o53;l,t;dezvo2Zt;aDedy;ke,rk;ea1i4G;a6Iist0r5N;act6Yer1Vo71uD;nd,se;a38o6F;ch,s6G;c1Dge,iEke,lly,nDp1Wt1W;ge,k,t;n,se;es6Biv0;a04e00hYiXlToNrEsy4uD;mp,n4rcha1sh;aKeIiHoDu4O;be,ceFdu3fi2grDje8mi1p,te6;amDe6W;!me;ed,ss;ce,de,nt;sDy;er6Cs;cti3i1;iHlFoEp,re,sDuCw0;e,i5Yt;l,p;iDl;ce,sh;nt,s5V;aEce,e32uD;g,mp,n7;ce,nDy;!t;ck,le,n17pe,tNvot;a1oD;ne,tograph;ak,eFnErDt;fu55mA;!c32;!l,r;ckJiInHrFsEtDu1y;ch,e9;s,te;k,tD;!y;!ic;nt,r,se;!a7;bje8ff0il,oErDutli3Qver4B;bAd0ie9;ze;a4ReFoDur1;d,tD;e,i3;ed,gle8tD;!work;aMeKiIoEuD;rd0;ck,d3Rld,nEp,uDve;nt,th;it5EkD;ey;lk,n4Brr5CsDx;s,ta2B;asuBn4UrDss;ge,it;il,nFp,rk3WsEtD;ch,t0;h,k,t0;da5n0oeuvB;aLeJiHoEuD;mp,st;aEbby,ck,g,oDve;k,t;d,n;cDe,ft,mAnIst;en1k;aDc0Pe4vK;ch,d,k,p,se;bFcEnd,p,t4uD;gh,n4;e,k;el,o2U;eEiDno4E;ck,d,ll,ss;el,y;aEo1OuD;i3mp;m,zz;mpJnEr46ssD;ue;c1Rdex,fluGha2k,se2HteDvoi3;nt,rD;e6fa3viD;ew;en3;a8le2A;aJeHiGoEuD;g,nt;l3Ano2Dok,pDr1u1;!e;ghli1Fke,nt,re,t;aDd7lp;d,t;ck,mGndFrEsh,tDu9;ch,e;bo3Xm,ne4Eve6;!le;!m0;aMear,ift,lKossJrFuD;arDe4Alp,n;antee,d;aFiEoDumb2;uCwth;ll,nd,p;de,sp;ip;aBoDue;ss,w;g,in,me,ng,s,te,ze;aZeWiRlNoJrFuD;ck,el,nDss,zz;c38d;aEoDy;st,wn;cDgme,me,nchi1;tuB;cFg,il,ld,rD;ce,e29mDwa31;!at;us;aFe0Vip,oDy;at,ck,od,wD;!er;g,ke,me,re,sh,vo1E;eGgFlEnDre,sh,t,x;an3i0Q;e,m,t0;ht,uB;ld;aEeDn3;d,l;r,tuB;ce,il,ll,rm,vo2W;cho,d7ffe8nMsKxFyeD;!baD;ll;cGerci1hFpDtra8;eriDo0W;en3me9;au6ibA;el,han7u1;caDtima5;pe;count0d,vy;a01eSiMoJrEuDye;b,el,mp,pli2X;aGeFiEoD;ne,p;ft,ll,nk,p,ve;am,ss;ft,g,in;cEd7ubt,wnloD;ad;k,u0E;ge6p,sFt4vD;e,iDor3;de;char7gui1h,liEpD;at4lay,u5;ke;al,bKcJfeIlGmaCposAsEtaD;il;e07iD;gn,re;ay,ega5iD;ght;at,ct;li04rea1;a5ut;b,ma7n3rDte;e,t;a0Eent0Dh06irc2l03oKrFuD;be,e,rDt;b,e,l,ve;aGeFoEuDy;sh;p,ss,wd;dAep;ck,ft,sh;at,de,in,lTmMnFordina5py,re,st,uDv0;gh,nDp2rt;s01t;ceHdu8fli8glomeIsFtDveN;a8rD;a6ol;e9tru8;ct;ntDrn;ra5;bHfoGmFpD;leDouCromi1;me9;aCe9it,u5;rt;at,iD;ne;lap1oD;r,ur;aEiDoud,ub;ck,p;im,w;aEeDip;at,ck,er;iGllen7nErD;ge,m,t;ge,nD;el;n,r;er,re;ke,ll,mp,noe,pGrXsFtEuDve;se,ti0I;alog,ch;h,t;!tuB;re;a03eZiXlToPrHuEyD;pa11;bb2ck2dgEff0mp,rDst,zz;den,n;et;anJeHiFoadEuD;i1sh;ca6;be,d7;ge;aDed;ch,k;ch,d;aFg,mb,nEoDrd0tt2x,ycott;k,st,t;d,e;rd,st;aFeCiDoYur;nk,tz;nd;me;as,d,ke,nd,opsy,tD;!ch,e;aFef,lt,nDt;d,efA;it;r,t;ck,il,lan3nIrFsEtt2;le;e,h;!gDk;aDe;in;!d,g,k;bu1c05dZge,iYlVnTppQrLsIttGucEwaD;rd;tiD;on;aDempt;ck;k,sD;i6ocia5;st;chFmD;!oD;ur;!iD;ve;eEroa4;ch;al;chDg0sw0;or;aEt0;er;rm;d,m,r;dreHvD;an3oD;ca5;te;ce;ss;cDe,he,t;eFoD;rd,u9;nt;nt,ss;se",Actor:"trueยฆ0:7B;1:7G;2:6A;3:7F;4:7O;5:7K;a6Nb62c4Ud4Be41f3Sg3Bh30i2Uj2Qkin2Pl2Km26n1Zo1Sp0Vqu0Tr0JsQtJuHvEw8yo6;gi,ut6;h,ub0;aAe9i8o7r6;estl0it0;m2rk0;fe,nn0t2Bza2H;atherm2ld0;ge earn0it0nder0rri1;eter7i6oyF;ll5Qp,s3Z;an,ina2U;n6s0;c6Uder03;aoisea23e9herapi5iktok0o8r6ut1yco6S;a6endseLo43;d0mp,nscri0Bvel0;ddl0u1G;a0Qchn7en6na4st0;ag0;i3Oo0D;aiXcUeRhPiMki0mu26oJpGquaFtBu7wee6;p0theart;lt2per7r6;f0ge6Iviv1;h6inten0Ist5Ivis1;ero,um2;a8ep7r6;ang0eam0;bro2Nc2Ofa2Nmo2Nsi20;ff0tesm2;tt0;ec7ir2Do6;kesp59u0M;ia5Jt3;l7me6An,rcere6ul;r,ss;di0oi5;n7s6;sy,t0;g0n0;am2ephe1Iow6;girl,m2r2Q;cretInior cit3Fr6;gea4v6;a4it1;hol4Xi7reen6ulpt1;wr2C;e01on;l1nt;aEe9o8u6;l0nn6;er up,ingE;g40le mod3Zof0;a4Zc8fug2Ppo32searQv6;ere4Uolution6;ary;e6luYru22;ptio3T;bbi,dic5Vpp0;arter6e2Z;back;aYeWhSiRlOoKr8sycho7u6;nk,p31;logi5;aGeDiBo6;d9fess1g7ph47s6;pe2Ktitu51;en6ramm0;it1y;igy,uc0;est4Nme mini0Unce6s3E;!ss;a7si6;de4;ch0;ctiti39nk0P;dca0Oet,li6pula50rnst42;c2Itic6;al scie6i2;nti5;a6umb0;nn0y6;er,ma4Lwright;lgrim,one0;a8iloso7otogra7ra6ysi1V;se;ph0;ntom,rmaci5;r6ssi1T;form0s4O;i3El,nel3Yr8st1tr6wn;i6on;arWot;ent4Wi42tn0;ccupa4ffBp8r7ut6;ca5l0B;ac4Iganiz0ig2Fph2;er3t6;i1Jomet6;ri5;ic0spring;aBe9ie4Xo7u6;n,rser3J;b6mad,vi4V;le2Vo4D;i6mesis,phew;ce,ghb1;nny,rr3t1X;aEeDiAo7u6yst1Y;m8si16;der3gul,m7n6th0;arDk;!my;ni7s6;f02s0Jt0;on,st0;chan1Qnt1rcha4;gi9k0n8rtyr,t6y1;e,riar6;ch;ag0iac;ci2stra3I;a7e2Aieutena4o6;rd,s0v0;bor0d7ndlo6ss,urea3Fwy0ym2;rd;!y;!s28;e8o7u6;ggl0;gg0urna2U;st0;c3Hdol,llu3Ummigra4n6; l9c1Qfa4habi42nov3s7ve6;nt1stig3;pe0Nt6;a1Fig3ru0M;aw;airFeBistoAo8u6ygie1K;man6sba2H;!ita8;bo,st6usekN;age,e3P;ri2;ir,r6;m7o6;!ine;it;dress0sty2C;aLeIhostGirl26ladi3oCrand7u6;e5ru;c9daug0Jfa8m7pa6s2Y;!re4;a,o6;th0;hi1B;al7d6lf0;!de3A;ie,k6te26;eep0;!wr6;it0;isha,n6;i6tl04;us;mbl0rden0;aDella,iAo7r6;eela2Nie1P;e,re6ster pare4;be1Hm2r6st0;unn0;an2ZgZlmm17nanci0r6tt0;e6st la2H; marsh2OfigXm2;rm0th0;conoEdDlectriCm8n7x6;amin0cellency,i2A;emy,trepreneur,vironmenta1J;c8p6;er1loye6;e,r;ee;ci2;it1;mi5;aKeBi8ork,ri7u6we02;de,tche2H;ft0v0;ct3eti7plom2Hre6va;ct1;ci2ti2;aDcor3fencCi0InAput9s7tectLvel6;op0;ce1Ge6ign0;rt0;ee,y;iz6;en;em2;c1Ml0;d8nc0redev7ug6;ht0;il;!dy;a06e04fo,hXitizenWlToBr9u6;r3stomer6;! representat6;ive;e3it6;ic;lJmGnAord9rpor1Nu7w6;boy,ork0;n6ri0;ciTte1Q;in3;fidantAgressSs9t6;e0Kr6;ibut1o6;ll0;tab13ul1O;!e;edi2m6pos0rade;a0EeQissi6;on0;leag8on7um6;ni5;el;ue;e6own;an0r6;ic,k;!s;a9e7i6um;ld;erle6f;ad0;ir7nce6plFract0;ll1;m2wI;lebri6o;ty;dBptAr6shi0;e7pe6;nt0;r,t6;ak0;ain;et;aMeLiJlogg0oErBu6;dd0Fild0rgl9siness6;m2p7w6;om2;ers05;ar;i7o6;!k0th0;cklay0de,gadi0;hemi2oge8y6;!frie6;nd;ym2;an;cyc6sR;li5;atbox0ings;by,nk0r6;b0on7te6;nd0;!e07;c04dWge4nQpLrHsFtAu7yatull6;ah;nt7t6;h1oG;!ie;h8t6;e6orney;nda4;ie5le6;te;sis00tron6;aut,om0;chbis8isto7tis6;an,t;crU;hop;ost9p6;ari6rentiS;ti6;on;le;a9cest1im3nou8y6;bo6;dy;nc0;ly5rc6;hi5;mi8v6;entur0is1;er;ni7r6;al;str3;at1;or;counBquaintanArob9t6;ivi5or,re6;ss;st;at;ce;ta4;nt","Adj|Noun":"trueยฆ0:16;a1Db17c0Ud0Re0Mf0Dg0Ah08i06ju05l02mWnUoSpNrIsBt7u4v1watershed;a1ision0Z;gabo4nilla,ria1;b0Vnt;ndergr1pstairs;adua14ou1;nd;a3e1oken,ri0;en,r1;min0rori13;boo,n;age,e5ilv0Flack,o3quat,ta2u1well;bordina0Xper5;b0Lndard;ciali0Yl1vereign;e,ve16;cret,n1ri0;ior;a4e2ou1ubbiL;nd,tiY;ar,bBl0Wnt0p1side11;resent0Vublican;ci0Qsh;a4eriodic0last0Zotenti0r1;emi2incip0o1;!fession0;er,um;rall4st,tie0U;ff1pposi0Hv0;ens0Oi0C;agg01ov1uts;el;a5e3iniatJo1;bi01der07r1;al,t0;di1tr0N;an,um;le,riG;attOi2u1;sh;ber0ght,qC;stice,veniT;de0mpressioYn1;cumbe0Edividu0no0Dsta0Eterim;alf,o1umdrum;bby,melF;en2old,ra1;ph0Bve;er0ious;a7e5i4l3u1;git03t1;ure;uid;ne;llow,m1;aFiL;ir,t,vo1;riOuriO;l3p00x1;c1ecutUpeV;ess;d1iK;er;ar2e1;mographUrivO;k,l2;hiGlassSo2rude,unn1;ing;m5n1operK;creCstitueOte2vertab1;le;mpor1nt;ary;ic,m2p1;anion,lex;er2u1;ni8;ci0;al;e5lank,o4r1;i2u1;te;ef;ttom,urgeois;st;cadem9d6l2ntarct9r1;ab,ct8;e3tern1;at1;ive;rt;oles1ult;ce1;nt;ic","Adj|Past":"trueยฆ0:4Q;1:4C;2:4H;3:4E;a44b3Tc36d2Je29f20g1Wh1Si1Jj1Gkno1Fl1Am15n12o0Xp0Mqu0Kr08sLtEuAv9w4yellow0;a7ea6o4rinkl0;r4u3Y;n,ri0;k31th3;rp0sh0tZ;ari0e1O;n5p4s0;d1li1Rset;cov3derstood,i4;fi0t0;a8e3Rhr7i6ouTr4urn0wi4C;a4imm0ou2G;ck0in0pp0;ed,r0;eat2Qi37;m0nn0r4;get0ni2T;aOcKeIhGimFm0Hoak0pDt7u4;bsid3Ogge44s4;pe4ta2Y;ct0nd0;a8e7i2Eok0r5u4;ff0mp0nn0;ength2Hip4;ed,p0;am0reotyp0;in0t0;eci4ik0oH;al3Efi0;pRul1;a4ock0ut;d0r0;a4c1Jle2t31;l0s3Ut0;a6or5r4;at4e25;ch0;r0tt3;t4ut0;is2Mur1;aEe5o4;tt0;cAdJf2Bg9je2l8m0Knew0p7qu6s4;eTpe2t4;or0ri2;e3Dir0;e1lac0;at0e2Q;i0Rul1;eiv0o4ycl0;mme2Lrd0v3;in0lli0ti2A;a4ot0;li28;aCer30iBlAo9r5u4;mp0zzl0;e6i2Oo4;ce2Fd4lo1Anou30pos0te2v0;uc0;fe1CocCp0Iss0;i2Kli1L;ann0e2CuS;ck0erc0ss0;ck0i2Hr4st0;allLk0;bse7c6pp13rgan2Dver4;lo4whelm0;ok0;cupi0;rv0;aJe5o4;t0uri1A;ed0gle2;a6e5ix0o4ut0ys1N;di1Nt15u26;as0Clt0;n4rk0;ag0ufact0A;e6i5o4;ad0ck0st,v0;cens0m04st0;ft,v4;el0;tt0wn;a5o15u4;dg0s1B;gg0;llumSmpAn4sol1;br0cre1Ldebt0f8jZspir0t5v4;it0olv0;e4ox0Y;gr1n4re23;d0si15;e2l1o1Wuri1;li0o01r4;ov0;a6e1o4um03;ok0r4;ri0Z;mm3rm0;i6r5u4;a1Bid0;a0Ui0Rown;ft0;aAe9i8l6oc0Ir4;a4i0oz0Y;ctHg19m0;avo0Ju4;st3;ni08tt0x0;ar0;d0il0sc4;in1;dCl1mBn9quipp0s8x4;agger1c6p4te0T;a0Se4os0;ct0rie1D;it0;cap0tabliZ;cha0XgFha1As4;ur0;a0Zbarra0N;i0Buc1;aMeDi5r4;a01i0;gni08miniSre2s4;a9c6grun0Ft4;o4re0Hu17;rt0;iplWou4;nt0r4;ag0;bl0;cBdRf9l8p7ra6t5v4;elop0ot0;ail0ermQ;ng0;re07;ay0ight0;e4in0o0M;rr0;ay0enTor1;m5t0z4;ed,zl0;ag0p4;en0;aPeLhIlHo9r6u4;lt4r0stom03;iv1;a5owd0u4;sh0;ck0mp0;d0loAm7n4ok0v3;centr1f5s4troC;id3olid1;us0;b5pl4;ic1;in0;r0ur0;assi9os0utt3;ar5i4;ll0;g0m0;lebr1n6r4;ti4;fi0;tralJ;g0lcul1;aDewild3iCl9o7r5urn4;ed,t;ok4uis0;en;il0r0t4und;tl0;e5i4;nd0;ss0;as0;ffl0k0laMs0tt3;bPcNdKfIg0lFmaz0nDppBrm0ss9u5wa4;rd0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;a5leg0t3;er0;rm0;fe2;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;and5so4;rb0;on0;ed",Singular:"trueยฆ0:5J;1:5H;2:4W;3:4S;4:52;5:57;6:5L;7:56;8:5B;a52b4Lc3Nd35e2Xf2Og2Jh28in24j23k22l1Um1Ln1Ho1Bp0Rqu0Qr0FsZtMuHvCw9x r58yo yo;a9ha3Po3Q;f3i4Rt0Gy9;! arou39;arCeAideo ga2Qo9;cabu4Jl5C;gOr9t;di4Zt1Y;iety,ni4P;nBp30rAs 9;do43s5E;bani1in0;coordinat3Ader9;estima1to24we41; rex,aKeJhHiFoErBuAv9;! show;m2On2rntLto1D;agedy,ib9o4E;e,u9;n0ta46;ni1p2rq3L;c,er,m9;etF;ing9ree26;!y;am,mp3F;ct2le6x return;aNcMeKhor4QiJkHoGpin off,tDuBy9;ll9ner7st4T;ab2X;b9i1n28per bowl,rro1X;st3Ltot0;atAipe2Go1Lrate7udent9;! lo0I;i39u1;ft ser4Lmeo1I;elet5i9;ll,r3V;b38gn2Tte;ab2Jc9min3B;t,urity gua2N;e6ho2Y;bbatic0la3Jndwi0Qpi5;av5eDhetor2iAo9;de6om,w;tAv9;erb2C;e,u0;bDcBf9publ2r10spi1;er9orm3;e6r0;i9ord label;p2Ht0;a1u46;estion mark,ot2F;aPeMhoLiIlGoErAu9yram1F;ddi3HpErpo1Js3J;eBo9;bl3Zs9;pe3Jta1;dic1Rmi1Fp1Qroga8ss relea1F;p9rt0;py;a9ebisci1;q2Dte;cn2eAg9;!gy;!r;ne call,tocoK;anut,dAr9t0yo1;cen3Jsp3K;al,est0;nop4rAt9;e,hog5;adi11i2V;atme0bj3FcBpia1rde0thers,utspok5ve9wn3;n,r9;ti0Pview;cuAe9;an;pi3;arBitAot9umb3;a2Fhi2R;e,ra1;cot2ra8;aFeCiAo9ur0;nopo4p18rni2Nsq1Rti36uld;c,li11n0As9tt5;chief,si34;dAnu,t9;al,i3;al,ic;gna1mm0nd15rsupi0te9yf4;ri0;aDegCiBu9;ddi1n9;ch;me,p09; Be0M;bor14y9; 9er;up;eyno1itt5;el4ourn0;cBdices,itia8ni25sAtel0Lvert9;eb1J;e28titu1;en8i2T;aIeEighDoAu9;man right,s22;me9rmoFsp1Ftb0K;! r9;un; scho0YriY;a9i1N;d9v5; start,pho9;ne;ndful,sh brown,v5ze;aBelat0Ilaci3r9ul4yp1S;an9enadi3id;a1Cd slam,ny;df4r9;l2ni1I;aGeti1HiFlu1oCrAun9;er0;ee market,i9onti3;ga1;l4ur9;so9;me;ePref4;br2mi4;conoFffi7gg,lecto0Rmbas1EnCpidem2s1Zth2venBxAyel9;id;ampZempl0Nte6;i19t;er7terp9;ri9;se;my;eLiEoBr9ump tru0U;agonf4i9;er,ve thru;cAg7i4or,ssi3wn9;side;to0EumenE;aEgniDnn3sAvide9;nd;conte6incen8p9tri11;osi9;ti0C;ta0H;le0X;athBcAf9ni0terre6;ault 05err0;al,im0;!b9;ed;aWeThMiLlJoDr9;edit caBuc9;ib9;le;rd;efficDke,lCmmuniqLnsApi3rr0t0Xus9yo1;in;erv9uI;ato02;ic,lQ;ie6;er7i9oth;e6n2;ty,vil wM;aDeqCick5ocoBr9;istmas car9ysanthemum;ol;la1;ue;ndeli3racteri9;st2;iAllEr9;e0tifica1;liZ;hi3nFpErCt9ucus;erpi9hedr0;ll9;ar;!bohyd9ri3;ra1;it0;aAe,nib0t9;on;l,ry;aMeLiop2leJoHrDu9;nny,r9tterf4;g9i0;la9;ry;eakAi9;ck;fa9throB;st;dy,ro9wl;ugh;mi9;sh;an,l4;nkiArri3;er;ng;cSdMlInFppeti1rDsBtt2utop9;sy;ic;ce6pe9;ct;r9sen0;ay;ecAoma4tiA;ly;do1;i5l9;er7y;gy;en; hominDjAvan9;tage;ec8;ti9;ve;em;cCeAqui9;tt0;ta1;te;iAru0;al;de6;nt","Person|Noun":"trueยฆa0Eb07c03dWeUfQgOhLjHkiGlFmCnBolive,p7r4s3trini06v1wa0;ng,rd,tts;an,enus,iol0;a,et;ky,onPumm09;ay,e1o0uby;bin,d,se;ed,x;a2e1o0;l,tt04;aLnJ;dYge,tR;at,orm;a0eloW;t0x,ya;!s;a9eo,iH;ng,tP;a2e1o0;lGy;an,w3;de,smi4y;a0erb,iOolBuntR;ll,z0;el;ail,e0iLuy;ne;a1ern,i0lo;elds,nn;ith,n0;ny;a0dEmir,ula,ve;rl;a4e3i1j,ol0;ly;ck,x0;ie;an,ja;i0wn;sy;am,h0liff,rystal;a0in,ristian;mbers,ri0;ty;a4e3i2o,r0ud;an0ook;dy;ll;nedict,rg;k0nks;er;l0rt;fredo,ma","Actor|Verb":"trueยฆaCb8c5doctor,engineAfool,g3host,judge,m2nerd,p1recruit,scout,ushAvolunteAwi0;mp,tneA;arent,ilot;an,ime;eek,oof,r0uide;adu8oom;ha1o0;ach,nscript,ok;mpion,uffeur;o2u0;lly,tch0;er;ss;ddi1ffili0rchite1;ate;ct",MaleName:"trueยฆ0:H6;1:FZ;2:DS;3:GQ;4:CZ;5:FV;6:GM;7:FP;8:GW;9:ET;A:C2;B:GD;aF8bE1cCQdBMeASfA1g8Yh88i7Uj6Sk6Bl5Mm48n3So3Ip33qu31r26s1Et0Ru0Ov0CwTxSyHzC;aCor0;cChC1karia,nAT;!hDkC;!aF6;!ar7CeF5;aJevgenBSoEuC;en,rFVsCu3FvEF;if,uf;nDs6OusC;ouf,s6N;aCg;s,tC;an,h0;hli,nCrosE1ss09;is,nC;!iBU;avi2ho5;aPeNiDoCyaEL;jcieBJlfgang,odrFutR;lFnC;f8TsC;lCt1;ow;bGey,frEhe4QlC;aE5iCy;am,e,s;ed8iC;d,ed;eAur;i,ndeD2rn2sC;!l9t1;lDyC;l1ne;lDtC;!er;aCHy;aKernDAiFladDoC;jteB0lodymyr;!iC;mFQsDB;cFha0ktBZnceDrgCOvC;a0ek;!nC;t,zo;!e4StBV;lCnC7sily;!entC;in9J;ghE2lCm70nax,ri,sm0;riCyss87;ch,k;aWeRhNiLoGrEuDyC;!l2roEDs1;n6r6E;avD0eCist0oy,um0;ntCRvBKy;bFdAWmCny;!asDmCoharu;aFFie,y;!z;iA6y;mCt4;!my,othy;adEeoDia0SomC;!as;!dor91;!de4;dFrC;enBKrC;anBJeCy;ll,nBI;!dy;dgh,ha,iCnn2req,tsu5V;cDAka;aYcotWeThPiMlobod0oKpenc2tEurDvenAEyCzym1;ed,lvest2;aj,e9V;anFeDuC;!aA;fan17phEQvCwaA;e77ie;!islaCl9;v,w;lom1rBuC;leymaDHta;dDgmu9UlCm1yabonga;as,v8B;!dhart8Yn9;aEeClo75;lCrm0;d1t1;h9Jne,qu1Jun,wn,yne;aDbastiEDk2Yl5Mpp,rgCth,ymoCU;e1Dio;m4n;!tC;!ie,y;eDPlFmEnCq67tosCMul;dCj2UtiA5;e01ro;!iATkeB6mC4u5;!ik,vato9K;aZeUheC8iRoGuDyC;an,ou;b99dDf4peAssC;!elEG;ol00y;an,bLc7MdJel,geIh0lHmGnEry,sDyC;!ce;ar7Ocoe,s;!aCnBU;ld,n;an,eo;a7Ef;l7Jr;e3Eg2n9olfo,riC;go;bBNeDH;cCl9;ar87c86h54kCo;!ey,ie,y;cFeA3gDid,ubByCza;an8Ln06;g85iC;naC6s;ep;ch8Kfa5hHin2je8HlGmFndEoHpha5sDul,wi36yC;an,mo8O;h9Im4;alDSol3O;iD0on;f,ph;ul;e9CinC;cy,t1;aOeLhilJiFrCyoG;aDeC;m,st1;ka85v2O;eDoC;tr;r8GtC;er,ro;!ipCl6H;!p6U;dCLrcy,tC;ar,e9JrC;!o7;b9Udra8So9UscAHtri62ulCv8I;!ie,o7;ctav6Ji2lImHndrBRrGsDtCum6wB;is,to;aDc6k6m0vCwaBE;al79;ma;i,vR;ar,er;aDeksandr,ivC;er,i2;f,v;aNeLguyBiFoCu3O;aDel,j4l0ma0rC;beAm0;h,m;cFels,g5i9EkDlC;es,s;!au,h96l78olaC;!i,y;hCkCol76;ol75;al,d,il,ls1vC;ilAF;hom,tC;e,hC;anCy;!a5i5;aYeViLoGuDyC;l4Nr1;hamDr84staC;fa,p6E;ed,mG;di10e,hamEis4JntDritz,sCussa;es,he;e,y;ad,ed,mC;ad,ed;cGgu5hai,kFlEnDtchC;!e8O;a9Pik;house,o7t1;ae73eC3ha8Iolaj;ah,hDkC;!ey,y;aDeC;al,l;el,l;hDlv3rC;le,ri8Ev4T;di,met;ay0c00gn4hWjd,ks2NlTmadZnSrKsXtDuric7VxC;imilBKwe8B;eHhEi69tCus,y69;!eo,hCia7;ew,i67;eDiC;as,eu,s;us,w;j,o;cHiGkFlEqu8Qsha83tCv3;iCy;!m,n;in,on;el,o7us;a6Yo7us;!elCin,o7us;!l8o;frAEi5Zny,u5;achDcoCik;lm;ai,y;amDdi,e5VmC;oud;adCm6W;ou;aulCi9P;ay;aWeOiMloyd,oJuDyC;le,nd1;cFdEiDkCth2uk;a7e;gi,s,z;ov7Cv6Hw6H;!as,iC;a6Een;g0nn52renDuCvA4we7D;!iS;!zo;am,n4oC;n5r;a9Yevi,la5KnHoFst2thaEvC;eCi;nte;bo;nCpo8V;!a82el,id;!nC;aAy;mEnd1rDsz73urenCwr6K;ce,t;ry,s;ar,beAont;aOeIhalHiFla4onr63rDu5SylC;e,s;istCzysztof;i0oph2;er0ngsl9p,rC;ilA9k,ollos;ed,id;en0iGnDrmCv4Z;it;!dDnCt1;e2Ny;ri4Z;r,th;cp2j4mEna8BrDsp6them,uC;ri;im,l;al,il;a03eXiVoFuC;an,lCst3;en,iC;an,en,o,us;aQeOhKkub4AnIrGsDzC;ef;eDhCi9Wue;!ua;!f,ph;dCge;i,on;!aCny;h,s,th6J;anDnC;!ath6Hie,n72;!nC;!es;!l,sCy;ph;o,qu3;an,mC;!i,m6V;d,ffFns,rCs4;a7JemDmai7QoCry;me,ni1H;i9Dy;!e73rC;ey,y;cKdBkImHrEsDvi2yC;dBs1;on,p2;ed,oDrCv67;e6Qod;d,s61;al,es5Wis1;a,e,oCub;b,v;ob,qu13;aTbNchiMgLke53lija,nuKonut,rIsEtCv0;ai,suC;ki;aDha0i8XmaCsac;el,il;ac,iaC;h,s;a,vinCw3;!g;k,nngu6X;nac1Xor;ka;ai,rahC;im;aReLoIuCyd6;beAgGmFsC;eyDsC;a3e3;in,n;ber5W;h,o;m2raDsse3wC;a5Pie;c49t1K;a0Qct3XiGnDrC;beAman08;dr7VrC;iCy2N;!k,q1R;n0Tt3S;bKlJmza,nIo,rEsDyC;a5KdB;an,s0;lEo67r2IuCv9;hi5Hki,tC;a,o;an,ey;k,s;!im;ib;a08e00iUlenToQrMuCyorgy;iHnFsC;!taC;f,vC;!e,o;n6tC;er,h2;do,lC;herDlC;auCerQ;me;aEegCov2;!g,orC;!io,y;dy,h7C;dfr9nza3XrDttfC;ri6C;an,d47;!n;acoGlEno,oCuseppe;rgiCvan6O;!o,s;be6Ies,lC;es;mo;oFrC;aDha4HrC;it,y;ld,rd8;ffErgC;!e7iCy;!os;!r9;bElBrCv3;eCla1Nr4Hth,y;th;e,rC;e3YielC;!i4;aXeSiQlOorrest,rCyod2E;aHedFiC;edDtC;s,z;ri18;!d42eri11riC;ck,k;nCs2;cEkC;ie,lC;in,yn;esLisC;!co,z3M;etch2oC;ri0yd;d5lConn;ip;deriFliEng,rC;dinaCg4nan0B;nd8;pe,x;co;bCdi,hd;iEriC;ce,zC;io;an,en,o;benez2dZfrYit0lTmMnJo3rFsteb0th0ugenEvCymBzra;an,eCge4D;ns,re3K;!e;gi,iDnCrol,v3w3;est8ie,st;cCk;!h,k;o0DriCzo;co,qC;ue;aHerGiDmC;aGe3A;lCrh0;!iC;a10o,s;s1y;nu5;beAd1iEliDm2t1viCwood;n,s;ot28s;!as,j5Hot,sC;ha;a3en;!dGg6mFoDua2QwC;a2Pin;arC;do;oZuZ;ie;a04eTiOmitrNoFrag0uEwDylC;an,l0;ay3Hig4D;a3Gdl9nc0st3;minFnDri0ugCvydGy2S;!lF;!a36nCov0;e1Eie,y;go,iDykC;as;cCk;!k;i,y;armuFetDll1mitri7neCon,rk;sh;er,m6riC;ch;id;andLepak,j0lbeAmetri4nIon,rGsEvDwCxt2;ay30ey;en,in;hawn,moC;nd;ek,riC;ck;is,nC;is,y;rt;re;an,le,mKnIrEvC;e,iC;!d;en,iEne0PrCyl;eCin,yl;l45n;n,o,us;!iCny;el,lo;iCon;an,en,on;a0Fe0Ch03iar0lRoJrFuDyrC;il,us;rtC;!is;aEistC;iaCob12;no;ig;dy,lInErC;ey,neliCy;s,us;nEor,rDstaC;nt3;ad;or;by,e,in,l3t1;aHeEiCyde;fCnt,ve;fo0Xt1;menDt4;us;s,t;rFuDyC;!t1;dCs;e,io;enC;ce;aHeGrisC;!toC;phCs;!eC;!r;st2t;d,rCs;b5leC;s,y;cDdrCs6;ic;il;lHmFrC;ey,lDroCy;ll;!o7t1;er1iC;lo;!eb,v3;a09eZiVjorn,laUoSrEuCyr1;ddy,rtKst2;er;aKeFiEuDyC;an,ce,on;ce,no;an,ce;nDtC;!t;dDtC;!on;an,on;dFnC;dDisC;lav;en,on;!foOl9y;bby,gd0rCyd;is;i0Lke;bElDshC;al;al,lL;ek;nIrCshoi;at,nEtC;!raC;m,nd;aDhaCie;rd;rd8;!iDjam3nCs1;ie,y;to;kaMlazs,nHrC;n9rDtC;!holomew;eCy;tt;ey;dCeD;ar,iC;le;ar1Nb1Dd16fon15gust3hm12i0Zja0Yl0Bm07nTputsiSrGsaFugustEveDyCziz;a0kh0;ry;o,us;hi;aMchiKiJjun,mHnEon,tCy0;em,hCie,ur8;ur;aDoC;!ld;ud,v;aCin;an,nd8;!el,ki;baCe;ld;ta;aq;aMdHgel8tCw6;hoFoC;iDnC;!i8y;ne;ny;er7rCy;eDzC;ej;!as,i,j,s,w;!s;s,tolC;iCy;!y;ar,iEmaCos;nu5r;el;ne,r,t;aVbSdBeJfHiGl01onFphonsEt1vC;aPin;on;e,o;so,zo;!sR;!onZrC;ed;c,jaHksFssaHxC;!andC;er,rC;e,os,u;andCei;ar,er,r;ndC;ro;en;eDrecC;ht;rt8;dd3in,n,sC;taC;ir;ni;dDm6;ar;an,en;ad,eC;d,t;in;so;aGi,olErDvC;ik;ian8;f8ph;!o;mCn;!a;dGeFraDuC;!bakr,lfazl;hCm;am;!l;allFel,oulaye,ulC;!lDrahm0;an;ah,o;ah;av,on",Uncountable:"trueยฆ0:2E;1:2L;2:33;a2Ub2Lc29d22e1Rf1Ng1Eh16i11j0Yk0Wl0Rm0Hn0Do0Cp03rZsLt9uran2Jv7w3you gu0E;a5his17i4oo3;d,l;ldlife,ne;rm8t1;apor,ernacul29i3;neg28ol1Otae;eDhBiAo8r4un3yranny;a,gst1B;aff2Oea1Ko4ue nor3;th;o08u3;bleshoot2Ose1Tt;night,othpas1Vwn3;foEsfoE;me off,n;er3und1;e,mod2S;a,nnis;aDcCeBhAi9ki8o7p6t4u3weepstak0;g1Unshi2Hshi;ati08e3;am,el;ace2Keci0;ap,cc1meth2C;n,ttl0;lk;eep,ingl0or1C;lf,na1Gri0;ene1Kisso1C;d0Wfe2l4nd,t3;i0Iurn;m1Ut;abi0e4ic3;e,ke15;c3i01laxa11search;ogni10rea10;a9e8hys7luto,o5re3ut2;amble,mis0s3ten20;en1Zs0L;l3rk;i28l0EyH; 16i28;a24tr0F;nt3ti0M;i0s;bstetri24vercrowd1Qxyg09;a5e4owada3utella;ys;ptu1Ows;il poliZtional securi2;aAe8o5u3;m3s1H;ps;n3o1K;ey,o3;gamy;a3cha0Elancholy,rchandi1Htallurgy;sl0t;chine3g1Aj1Hrs,thema1Q; learn1Cry;aught1e6i5ogi4u3;ck,g12;c,s1M;ce,ghtn18nguis1LteratWv1;ath1isVss;ara0EindergartPn3;icke0Aowled0Y;e3upit1;a3llyfiGwel0G;ns;ce,gnor6mp5n3;forma00ter3;net,sta07;atiSort3rov;an18;a7e6isto09o3ung1;ckey,mework,ne4o3rseradi8spitali2use arrest;ky;s2y;adquarteXre;ir,libut,ppiHs3;hi3te;sh;ene8l6o5r3um,ymnas11;a3eZ;niUss;lf,re;ut3yce0F;en; 3ti0W;edit0Hpo3;ol;aNicFlour,o4urnit3;ure;od,rgive3uri1wl;ness;arCcono0LducaBlectr9n7quip8thi0Pvery6x3;ist4per3;ti0B;en0J;body,o08th07;joy3tertain3;ment;ici2o3;ni0H;tiS;nings,th;emi02i6o4raugh3ynas2;ts;pe,wnstai3;rs;abet0ce,s3;honZrepu3;te;aDelciChAivi07l8o3urrency;al,ld w6mmenta5n3ral,ttIuscoB;fusiHt 3;ed;ry;ar;assi01oth0;es;aos,e3;eMwK;us;d,rO;a8i6lood,owlHread5u3;ntGtt1;er;!th;lliarJs3;on;g3ss;ga3;ge;cKdviJeroGirFmBn6ppeal court,r4spi3thleL;rin;ithmet3sen3;ic;i6y3;o4th3;ing;ne;se;en5n3;es2;ty;ds;craft;bi8d3nau7;yna3;mi6;ce;id,ous3;ti3;cs",Infinitive:"trueยฆ0:9G;1:9T;2:AD;3:90;4:9Z;5:84;6:AH;7:A9;8:92;9:A0;A:AG;B:AI;C:9V;D:8R;E:8O;F:97;G:6H;H:7D;a94b8Hc7Jd68e4Zf4Mg4Gh4Ai3Qj3Nk3Kl3Bm34nou48o2Vp2Equ2Dr1Es0CtZuTvRwI;aOeNiLors5rI;eJiI;ng,te;ak,st3;d5e8TthI;draw,er;a2d,ep;i2ke,nIrn;d1t;aIie;liADniAry;nJpI;ho8Llift;cov1dJear8Hfound8DlIplug,rav82tie,ve94;eaAo3X;erIo;cut,go,staAFvalA3w2G;aSeQhNoMrIu73;aIe72;ffi3Smp3nsI;aBfo7CpI;i8oD;pp3ugh5;aJiJrIwaD;eat5i2;nk;aImA0;ch,se;ck3ilor,keImp1r8L;! paD;a0Ic0He0Fh0Bi0Al08mugg3n07o05p02qu01tUuLwI;aJeeIim;p,t5;ll7Wy;bNccMffLggeCmmKppJrI;mouFpa6Zvi2;o0re6Y;ari0on;er,i4;e7Numb;li9KmJsiIveD;de,st;er9it;aMe8MiKrI;ang3eIi2;ng27w;fIng;f5le;b,gg1rI;t3ve;a4AiA;a4UeJit,l7DoI;il,of;ak,nd;lIot7Kw;icEve;atGeak,i0O;aIi6;m,y;ft,ng,t;aKi6CoJriIun;nk,v6Q;ot,rt5;ke,rp5tt1;eIll,nd,que8Gv1w;!k,m;aven9ul8W;dd5tis1Iy;a0FeKiJoI;am,t,ut;d,p5;a0Ab08c06d05f01group,hea00iZjoi4lXmWnVpTq3MsOtMup,vI;amp,eJiIo3B;sEve;l,rI;e,t;i8rI;ie2ofE;eLiKpo8PtIurfa4;o24rI;aHiBuctu8;de,gn,st;mb3nt;el,hra0lIreseF;a4e71;d1ew,o07;aHe3Fo2;a7eFiIo6Jy;e2nq41ve;mbur0nf38;r0t;inKleBocus,rJuI;el,rbiA;aBeA;an4e;aBu4;ei2k8Bla43oIyc3;gni39nci3up,v1;oot,uI;ff;ct,d,liIp;se,ze;tt3viA;aAenGit,o7;aWerUinpoiFlumm1LoTrLuI;b47ke,niArIt;poDsuI;aFe;eMoI;cKd,fe4XhibEmo7noJpo0sp1tru6vI;e,i6o5L;un4;la3Nu8;aGclu6dJf1occupy,sup0JvI;a6BeF;etermi4TiB;aGllu7rtr5Ksse4Q;cei2fo4NiAmea7plex,sIva6;eve8iCua6;mp1rItrol,ve;a6It6E;bOccuNmEpMutLverIwe;l07sJtu6Yu0wI;helm;ee,h1F;gr5Cnu2Cpa4;era7i4Ipo0;py,r;ey,seItaH;r2ss;aMe0ViJoIultiply;leCu6Pw;micJnIspla4;ce,g3us;!k;iIke,na9;m,ntaH;aPeLiIo0u3N;ke,ng1quIv5;eIi6S;fy;aKnIss5;d,gI;th5;rn,ve;ng2Gu1N;eep,idnJnI;e4Cow;ap;oHuI;gg3xtaI;po0;gno8mVnIrk;cTdRfQgeChPitia7ju8q1CsNtKun6EvI;a6eIo11;nt,rt,st;erJimi6BoxiPrI;odu4u6;aBn,pr03ru6C;iCpi8tIu8;all,il,ruB;abEibE;eCo3Eu0;iIul9;ca7;i7lu6;b5Xmer0pI;aLer4Uin9ly,oJrI;e3Ais6Bo2;rt,se,veI;riA;le,rt;aLeKiIoiCuD;de,jaInd1;ck;ar,iT;mp1ng,pp5raIve;ng5Mss;ath1et,iMle27oLrI;aJeIow;et;b,pp3ze;!ve5A;gg3ve;aTer45i5RlSorMrJuI;lf4Cndrai0r48;eJiIolic;ght5;e0Qsh5;b3XeLfeEgJsI;a3Dee;eIi2;!t;clo0go,shIwa4Z;ad3F;att1ee,i36;lt1st5;a0OdEl0Mm0FnXquip,rWsVtGvTxI;aRcPeDhOiNpJtIu6;ing0Yol;eKi8lIo0un9;aHoI;it,re;ct,di7l;st,t;a3oDu3B;e30lI;a10u6;lt,mi28;alua7oI;ke,l2;chew,pou0tab19;a0u4U;aYcVdTfSgQhan4joy,lPqOrNsuMtKvI;e0YisI;a9i50;er,i4rI;aHenGuC;e,re;iGol0F;ui8;ar9iC;a9eIra2ulf;nd1;or4;ang1oIu8;r0w;irc3lo0ou0ErJuI;mb1;oaGy4D;b3ct;bKer9pI;hasiIow1;ze;aKody,rI;a4oiI;d1l;lm,rk;ap0eBuI;ci40de;rIt;ma0Rn;a0Re04iKo,rIwind3;aw,ed9oI;wn;agno0e,ff1g,mi2Kne,sLvI;eIul9;rIst;ge,t;aWbVcQlod9mant3pNru3TsMtI;iIoDu37;lJngI;uiA;!l;ol2ua6;eJlIo0ro2;a4ea0;n0r0;a2Xe36lKoIu0S;uIv1;ra9;aIo0;im;a3Kur0;b3rm;af5b01cVduBep5fUliTmQnOpMrLsiCtaGvI;eIol2;lop;ch;a20i2;aDiBloIoD;re,y;oIy;te,un4;eJoI;liA;an;mEv1;a4i0Ao06raud,y;ei2iMla8oKrI;ee,yI;!pt;de,mIup3;missi34po0;de,ma7ph1;aJrief,uI;g,nk;rk;mp5rk5uF;a0Dea0h0Ai09l08oKrIurta1G;a2ea7ipp3uI;mb3;ales4e04habEinci6ll03m00nIrro6;cXdUfQju8no7qu1sLtKvI;eIin4;ne,r9y;aHin2Bribu7;er2iLoli2Epi8tJuI;lt,me;itu7raH;in;d1st;eKiJoIroFu0;rm;de,gu8rm;ss;eJoI;ne;mn,n0;eIlu6ur;al,i2;buCe,men4pI;eIi3ly;l,te;eBi6u6;r4xiC;ean0iT;rcumveFte;eJirp,oI;o0p;riAw;ncIre5t1ulk;el;a02eSi6lQoPrKuI;iXrIy;st,y;aLeaKiJoad5;en;ng;stfeLtX;ke;il,l11mba0WrrMth1;eIow;ed;!coQfrie1LgPhMliLqueaKstJtrIwild1;ay;ow;th;e2tt3;a2eJoI;ld;ad;!in,ui3;me;bysEckfi8ff3tI;he;b15c0Rd0Iff0Ggree,l0Cm09n03ppZrXsQttOuMvJwaE;it;eDoI;id;rt;gIto0X;meF;aIeCraB;ch,in;pi8sJtoI;niA;aKeIi04u8;mb3rt,ss;le;il;re;g0Hi0ou0rI;an9i2;eaKly,oiFrI;ai0o2;nt;r,se;aMi0GnJtI;icipa7;eJoIul;un4y;al;ly0;aJu0;se;lga08ze;iKlI;e9oIu6;t,w;gn;ix,oI;rd;a03jNmiKoJsoI;rb;pt,rn;niIt;st1;er;ouJuC;st;rn;cLhie2knowled9quiItiva7;es4re;ce;ge;eQliOoKrJusI;e,tom;ue;mIst;moJpI;any,liA;da7;ma7;te;pt;andPduBet,i6oKsI;coKol2;ve;liArt,uI;nd;sh;de;ct;on",Person:"trueยฆ0:1Q;a29b1Zc1Md1Ee18f15g13h0Ri0Qj0Nk0Jl0Gm09n06o05p00rPsItCusain bolt,v9w4xzibit,y1;anni,oko on2uji,v1;an,es;en,o;a3ednesday adams,i2o1;lfram,o0Q;ll ferrell,z khalifa;lt disn1Qr1;hol,r0G;a2i1oltai06;n dies0Zrginia wo17;lentino rossi,n goG;a4h3i2ripp,u1yra banks;lZpac shakur;ger woods,mba07;eresa may,or;kashi,t1ylor;um,ya1B;a5carlett johanss0h4i3lobodan milosevic,no2ocr1Lpider1uperm0Fwami; m0Em0E;op dogg,w whi1H;egfried,nbad;akespeaTerlock holm1Sia labeouf;ddam hussa16nt1;a cla11ig9;aAe6i5o3u1za;mi,n dmc,paul,sh limbau1;gh;bin hood,d stew16nald1thko;in0Mo;han0Yngo starr,valdo;ese witherspo0i1mbrandt;ll2nh1;old;ey,y;chmaninoff,ffi,iJshid,y roma1H;a4e3i2la16o1uff daddy;cahont0Ie;lar,p19;le,rZ;lm17ris hilt0;leg,prah winfr0Sra;a2e1iles cra1Bostradam0J; yo,l5tt06wmQ;pole0s;a5e4i2o1ubar03;by,lie5net,rriss0N;randa ju1tt romn0M;ly;rl0GssiaB;cklemo1rkov,s0ta hari,ya angelou;re;ady gaga,e1ibera0Pu;bron jam0Xch wale1e;sa;anye west,e3i1obe bryant;d cudi,efer suther1;la0P;ats,sha;a2effers0fk,k rowling,rr tolki1;en;ck the ripp0Mwaharlal nehru,y z;liTnez,ron m7;a7e5i3u1;lk hog5mphrey1sa01;! bog05;l1tl0H;de; m1dwig,nry 4;an;ile selassFlle ber4m3rrison1;! 1;ford;id,mo09;ry;ast0iannis,o1;odwPtye;ergus0lorence nightinga08r1;an1ederic chopN;s,z;ff5m2nya,ustaXzeki1;el;eril lagasse,i1;le zatop1nem;ek;ie;a6e4i2octor w1rake;ho;ck w1ego maradoC;olf;g1mi lovaOnzel washingt0;as;l1nHrth vadR;ai lNt0;a8h5lint0o1thulhu;n1olio;an,fuci1;us;on;aucKop2ristian baMy1;na;in;millo,ptain beefhe4r1;dinal wols2son1;! palmF;ey;art;a8e5hatt,i3oHro1;ck,n1;te;ll g1ng crosby;atB;ck,nazir bhut2rtil,yon1;ce;to;nksy,rack ob1;ama;l 6r3shton kutch2vril lavig8yn ra1;nd;er;chimed2istot1;le;es;capo2paci1;no;ne",Adjective:"trueยฆ0:AI;1:BS;2:BI;3:BA;4:A8;5:84;6:AV;7:AN;8:AF;9:7H;A:BQ;B:AY;C:BC;D:BH;E:9Y;aA2b9Ec8Fd7We79f6Ng6Eh61i4Xj4Wk4Tl4Im41n3Po36p2Oquart7Pr2Ds1Dt14uSvOwFye29;aMeKhIiHoF;man5oFrth7G;dADzy;despreB1n w97s86;acked1UoleF;!sa6;ather1PeFll o70ste1D;!k5;nt1Ist6Ate4;aHeGiFola5T;bBUce versa,gi3Lle;ng67rsa5R;ca1gBSluAV;lt0PnLpHrGsFttermoBL;ef9Ku3;b96ge1; Hb32pGsFtiAH;ca6ide d4R;er,i85;f52to da2;a0Fbeco0Hc0Bd04e02f01gu1XheaBGiXkn4OmUnTopp06pRrNsJtHus0wF;aFiel3K;nt0rra0P;app0eXoF;ld,uS;eHi37o5ApGuF;perv06spec39;e1ok9O;en,ttl0;eFu5;cogn06gul2RlGqu84sF;erv0olv0;at0en33;aFrecede0E;id,rallel0;am0otic0;aFet;rri0tF;ch0;nFq26vers3;sur0terFv7U;eFrupt0;st0;air,inish0orese98;mploy0n7Ov97xpF;ect0lain0;eHisFocume01ue;clFput0;os0;cid0rF;!a8Scov9ha8Jlyi8nea8Gprivileg0sMwF;aFei9I;t9y;hGircumcFonvin2U;is0;aFeck0;lleng0rt0;b20ppea85ssuGttend0uthorF;iz0;mi8;i4Ara;aLeIhoHip 25oGrF;anspare1encha1i2;geth9leADp notch,rpB;rny,ugh6H;ena8DmpGrFs6U;r49tia4;eCo8P;leFst4M;nt0;a0Dc09e07h06i04ki03l01mug,nobbi4XoVpRqueami4XtKuFymb94;bHccinAi generis,pFr5;erFre7N;! dup9b,vi70;du0li7Lp6IsFurb7J;eq9Atanda9X;aKeJi16o2QrGubboFy4Q;rn;aightFin5GungS; fFfF;or7V;adfa9Pri6;lwa6Ftu82;arHeGir6NlendBot Fry;on;c3Qe1S;k5se; call0lImb9phistic16rHuFviV;ndFth1B;proof;dBry;dFub6; o2A;e60ipF;pe4shod;ll0n d7R;g2HnF;ceEg6ist9;am3Se9;co1Zem5lfFn6Are7; suf4Xi43;aGholFient3A;ar5;rlFt4A;et;cr0me,tisfac7F;aOeIheumatoBiGoF;bu8Ztt7Gy3;ghtFv3; 1Sf6X;cJdu8PlInown0pro69sGtF;ard0;is47oF;lu2na1;e1Suc45;alcit8Xe1ondi2;bBci3mpa1;aSePicayu7laOoNrGuF;bl7Tnjabi;eKiIoF;b7VfGmi49pFxi2M;er,ort81;a7uD;maFor,sti7va2;!ry;ciDexis0Ima2CpaB;in55puli8G;cBid;ac2Ynt 3IrFti2;ma40tFv7W;!i3Z;i2YrFss7R;anoBtF; 5XiF;al,s5V;bSffQkPld OnMrLth9utKverF;!aIbMdHhGni75seas,t,wF;ei74rou74;a63e7A;ue;ll;do1Ger,si6A;d3Qg2Aotu5Z; bFbFe on o7g3Uli7;oa80;fashion0school;!ay; gua7XbFha5Uli7;eat;eHligGsF;ce7er0So1C;at0;diFse;a1e1;aOeNiMoGuF;anc0de; moEnHrthFt6V;!eFwe7L;a7Krn;chaGdescri7Iprof30sF;top;la1;ght5;arby,cessa4ighbor5wlyw0xt;k0usiaFv3;ti8;aQeNiLoHuF;dIltiF;facet0p6;deHlGnFot,rbBst;ochro4Xth5;dy;rn,st;ddle ag0nF;dbloZi,or;ag9diocEga,naGrFtropolit4Q;e,ry;ci8;cIgenta,inHj0Fkeshift,mmGnFri4Oscu61ver18;da5Dy;ali4Lo4U;!stream;abEho;aOeLiIoFumberi8;ngFuti1R;stan3RtF;erm,i4H;ghtGteraF;l,ry,te;heart0wei5O;ft JgFss9th3;al,eFi0M;nda4;nguBps0te5;apGind5noF;wi8;ut;ad0itte4uniW;ce co0Hgno6Mll0Cm04nHpso 2UrF;a2releF;va1; ZaYcoWdReQfOgrNhibi4Ri05nMoLsHtFvalu5M;aAeF;nDrdepe2K;a7iGolFuboI;ub6ve1;de,gF;nifica1;rdi5N;a2er;own;eriIiLluenVrF;ar0eq5H;pt,rt;eHiGoFul1O;or;e,reA;fiFpe26termi5E;ni2;mpFnsideCrreA;le2;ccuCdeq5Ene,ppr4J;fFsitu,vitro;ro1;mJpF;arHeGl15oFrop9;li2r11;n2LrfeA;ti3;aGeFi18;d4BnD;tuE;egGiF;c0YteC;al,iF;tiF;ma2;ld;aOelNiLoFuma7;a4meInHrrGsFur5;ti6;if4E;e58o3U; ma3GsF;ick;ghfalut2HspF;an49;li00pf33;i4llow0ndGrdFtM; 05coEworki8;sy,y;aLener44iga3Blob3oKrGuF;il1Nng ho;aFea1Fizzl0;cGtF;ef2Vis;ef2U;ld3Aod;iFuc2D;nf2R;aVeSiQlOoJrF;aGeFil5ug3;q43tf2O;gFnt3S;i6ra1;lk13oHrF; keeps,eFge0Vm9tu41;g0Ei2Ds3R;liF;sh;ag4Mowe4uF;e1or45;e4nF;al,i2;d Gmini7rF;ti6ve1;up;bl0lDmIr Fst pac0ux;oGreacF;hi8;ff;ed,ili0R;aXfVlTmQnOqu3rMthere3veryday,xF;aApIquisi2traHuF;be48lF;ta1;!va2L;edRlF;icF;it;eAstF;whi6; Famor0ough,tiE;rou2sui2;erGiF;ne1;ge1;dFe2Aoq34;er5;ficF;ie1;g9sF;t,ygF;oi8;er;aWeMiHoGrFue;ea4owY;ci6mina1ne,r31ti8ubQ;dact2Jfficult,m,sGverF;ge1se;creGePjoi1paCtF;a1inA;et,te; Nadp0WceMfiLgeneCliJmuEpeIreliAsGvoF;id,ut;pFtitu2ul1L;eCoF;nde1;ca2ghF;tf13;a1ni2;as0;facto;i5ngero0I;ar0Ce09h07i06l05oOrIuF;rmudgeon5stoma4teF;sy;ly;aIeHu1EystalF; cleFli7;ar;epy;fFv17z0;ty;erUgTloSmPnGrpoCunterclVveFy;rt;cLdJgr21jIsHtrF;aFi2;dic0Yry;eq1Yta1;oi1ug3;escenFuN;di8;a1QeFiD;it0;atoDmensuCpF;ass1SulF;so4;ni3ss3;e1niza1;ci1J;ockwiD;rcumspeAvil;eFintzy;e4wy;leGrtaF;in;ba2;diac,ef00;a00ePiLliJoGrFuck nak0;and new,isk,on22;gGldface,naF; fi05fi05;us;nd,tF;he;gGpartisFzarE;an;tiF;me;autifOhiNlLnHsFyoN;iWtselF;li8;eGiFt;gn;aFfi03;th;at0oF;v0w;nd;ul;ckwards,rF;e,rT; priori,b13c0Zd0Tf0Ng0Ihe0Hl09mp6nt06pZrTsQttracti0MuLvIwF;aGkF;wa1B;ke,re;ant garGeraF;ge;de;diIsteEtF;heFoimmu7;nt07;re;to4;hGlFtu2;eep;en;bitIchiv3roHtF;ifiFsy;ci3;ga1;ra4;ry;pFt;aHetizi8rF;oprF;ia2;llFre1;ed,i8;ng;iquFsy;at0e;ed;cohKiJkaHl,oGriFterX;ght;ne,of;li7;ne;ke,ve;olF;ic;ad;ain07gressiIi6rF;eeF;ab6;le;ve;fGraB;id;ectGlF;ue1;ioF;na2; JaIeGvF;erD;pt,qF;ua2;ma1;hoc,infinitum;cuCquiGtu3u2;al;esce1;ra2;erSjeAlPoNrKsGuF;nda1;e1olu2trF;aAuD;se;te;eaGuF;pt;st;aFve;rd;aFe;ze;ct;ra1;nt",Pronoun:"trueยฆelle,h3i2me,she,th0us,we,you;e0ou;e,m,y;!l,t;e,im",Preposition:"trueยฆaPbMcLdKexcept,fIinGmid,notwithstandiWoDpXqua,sCt7u4v2w0;/o,hereSith0;! whHin,oW;ersus,i0;a,s a vis;n1p0;!on;like,til;h1ill,oward0;!s;an,ereby,r0;ough0u;!oM;ans,ince,o that,uch G;f1n0ut;!to;!f;! 0to;effect,part;or,r0;om;espite,own,u3;hez,irca;ar1e0oBy;sides,tween;ri7;bo8cross,ft7lo6m4propos,round,s1t0;!op;! 0;a whole,long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"trueยฆ0:18;1:1E;2:1D;3:14;a1Db15c0Sd0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Am01new UoRpKqueens parkJreal salt lake,sBt6utah jazz,vancouver whitecaps,w4yW;ashington 4h10;natio1Mredski2wizar0W;ampa bay 7e6o4;ronto 4ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasD;buccanee0ra0K;a8eattle 6porting kansas0Wt4; louis 4oke0V;c1Drams;marine0s4;eah13ounH;cramento Rn 4;antonio spu0diego 4francisco gJjose earthquak1;char08paB; ran07;a9h6ittsburgh 5ortland t4;imbe0rail blaze0;pirat1steele0;il4oenix su2;adelphia 4li1;eagl1philNunE;dr1;akland 4klahoma city thunder,rlando magic;athle0Lrai4;de0;england 8orleans 7york 4;g5je3knYme3red bul0Xy4;anke1;ian3;pelica2sain3;patrio3revolut4;ion;anchEeAi4ontreal impact;ami 8lwaukee b7nnesota 4;t5vi4;kings;imberwolv1wi2;rewe0uc0J;dolphi2heat,marli2;mphis grizz4ts;li1;a6eic5os angeles 4;clippe0dodFlaB;esterV; galaxy,ke0;ansas city 4nF;chiefs,roya0D; pace0polis col3;astr05dynamo,rocke3texa2;olden state warrio0reen bay pac4;ke0;allas 8e4i04od6;nver 6troit 4;lio2pisto2ti4;ge0;broncYnugge3;cowbo5maver4;icZ;ys;arEelLhAincinnati 8leveland 6ol4;orado r4umbus crew sc;api7ocki1;brow2cavalie0guar4in4;dia2;bengaVre4;ds;arlotte horAicago 4;b5cubs,fire,wh4;iteB;ea0ulQ;diff4olina panthe0; city;altimore Alackburn rove0oston 6rooklyn 4uffalo bilN;ne3;ts;cel5red4; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 4;brav1falco2h4;awA;ns;es;on villa,r4;os;c6di4;amondbac4;ks;ardi4;na4;ls",Unit:"trueยฆa07b04cXdWexVfTgRhePinYjoule0BkMlJmDnan08oCp9quart0Bsq ft,t7volts,w6y2ze3ยฐ1ยต0;g,s;c,f,n;dVear1o0;ttR; 0s 0;old;att,b;erNon0;!ne02;ascals,e1i0;cXnt00;rcent,tJ;hms,unceY;/s,e4i0mยฒ,ยฒ,ยณ;/h,cro2l0;e0liK;!ยฒ;grLsR;gCtJ;it1u0;menQx;erPreP;b5elvins,ilo1m0notO;/h,ph,ยฒ;!byGgrEmCs;ct0rtzL;aJogrC;allonJb0ig3rB;ps;a0emtEl oz,t4;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;ยฒ,ยณ;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s","Noun|Gerund":"trueยฆ0:3O;1:3M;2:3N;3:3D;4:32;5:2V;6:3E;7:3K;8:36;9:3J;A:3B;a3Pb37c2Jd27e23f1Vg1Sh1Mi1Ij1Gk1Dl18m13n11o0Wp0Pques0Sr0EsTtNunderMvKwFyDzB;eroi0oB;ni0o3P;aw2eB;ar2l3;aEed4hispe5i5oCrB;ap8est3i1;n0ErB;ki0r31;i1r2s9tc9;isualizi0oB;lunt1Vti0;stan4ta6;aFeDhin6iCraBy8;c6di0i2vel1M;mi0p8;aBs1;c9si0;l6n2s1;aUcReQhOiMkatKl2Wmo6nowJpeItFuCwB;ea5im37;b35f0FrB;fi0vB;e2Mi2J;aAoryt1KrCuB;d2KfS;etc9ugg3;l3n4;bCi0;ebBi0;oar4;gnBnAt1;a3i0;ip8oB;p8rte2u1;a1r27t1;hCo5reBulp1;a2Qe2;edu3oo3;i3yi0;aKeEi4oCuB;li0n2;oBwi0;fi0;aFcEhear7laxi0nDpor1sB;pon4tructB;r2Iu5;de5;or4yc3;di0so2;p8ti0;aFeacek20laEoCrBublis9;a1Teten4in1oces7;iso2siB;tio2;n2yi0;ckaAin1rB;ki0t1O;fEpeDrganiCvB;erco24ula1;si0zi0;ni0ra1;fe5;avi0QeBur7;gotia1twor6;aDeCi2oB;de3nito5;a2dita1e1ssaA;int0XnBrke1;ifUufactu5;aEeaDiBodAyi0;cen7f1mi1stB;e2i0;r2si0;n4ug9;iCnB;ea4it1;c6l3;ogAuB;dAgg3stif12;ci0llust0VmDnBro2;nova1sp0NterBven1;ac1vie02;agi2plo4;aDea1iCoBun1;l4w3;ki0ri0;nd3rB;roWvB;es1;aCene0Lli4rBui4;ee1ie0N;rde2the5;aHeGiDlCorBros1un4;e0Pmat1;ir1oo4;gh1lCnBs9;anZdi0;i0li0;e3nX;r0Zscina1;a1du01nCxB;erci7plo5;chan1di0ginB;ee5;aLeHiGoub1rCum8wB;el3;aDeCiB;bb3n6vi0;a0Qs7;wi0;rTscoDvi0;ba1coZlBvelo8;eCiB;ve5;ga1;nGti0;aVelebUhSlPoDrBur3yc3;aBos7yi0;f1w3;aLdi0lJmFnBo6pi0ve5;dDsCvinB;ci0;trBul1;uc1;muniDpB;lBo7;ai2;ca1;lBo5;ec1;c9ti0;ap8eaCimToBubT;ni0t9;ni0ri0;aBee5;n1t1;ra1;m8rCs1te5;ri0;vi0;aPeNitMlLoGrDuB;dge1il4llBr8;yi0;an4eat9oadB;cas1;di0;a1mEokB;i0kB;ee8;pi0;bi0;es7oa1;c9i0;gin2lonAt1;gi0;bysit1c6ki0tt3;li0;ki0;bando2cGdverti7gi0pproac9rgDssuCtB;trac1;mi0;ui0;hi0;si0;coun1ti0;ti0;ni0;ng",PhrasalVerb:"trueยฆ0:92;1:96;2:8H;3:8V;4:8A;5:83;6:85;7:98;8:90;9:8G;A:8X;B:8R;C:8U;D:8S;E:70;F:97;G:8Y;H:81;I:7H;J:79;a9Fb7Uc6Rd6Le6Jf5Ig50h4Biron0j47k40l3Em31n2Yo2Wp2Cquiet Hr1Xs0KtZuXvacuu6QwNyammerBzK;ero Dip LonK;e0k0;by,ov9up;aQeMhLiKor0Mrit19;mp0n3Fpe0r5s5;ackAeel Di0S;aLiKn33;gh 3Wrd0;n Dr K;do1in,oJ;it 79k5lk Lrm 69sh Kt83v60;aw3do1o7up;aw3in,oC;rgeBsK;e 2herE;a00eYhViRoQrMuKypP;ckErn K;do1in,oJup;aLiKot0y 30;ckl7Zp F;ck HdK;e 5Y;n7Wp 3Es5K;ck MdLe Kghten 6me0p o0Rre0;aw3ba4do1in,up;e Iy 2;by,oG;ink Lrow K;aw3ba4in,up;ba4ov9up;aKe 77ll62;m 2r 5M;ckBke Llk K;ov9shit,u47;aKba4do1in,leave,o4Dup;ba4ft9pa69w3;a0Vc0Te0Mh0Ii0Fl09m08n07o06p01quar5GtQuOwK;earMiK;ngLtch K;aw3ba4o8K; by;cKi6Bm 2ss0;k 64;aReQiPoNrKud35;aigh2Det75iK;ke 7Sng K;al6Yup;p Krm2F;by,in,oG;c3Ln3Lr 2tc4O;p F;c3Jmp0nd LrKveAy 2O;e Ht 2L;ba4do1up;ar3GeNiMlLrKurB;ead0ingBuc5;a49it 6H;c5ll o3Cn 2;ak Fe1Xll0;a3Bber 2rt0und like;ap 5Vow Duggl5;ash 6Noke0;eep NiKow 6;cLp K;o6Dup;e 68;in,oK;ff,v9;de19gn 4NnKt 6Gz5;gKkE; al6Ale0;aMoKu5W;ot Kut0w 7M;aw3ba4f48oC;c2WdeEk6EveA;e Pll1Nnd Orv5tK; Ktl5J;do1foLin,o7upK;!on;ot,r5Z;aw3ba4do1in,o33up;oCto;al66out0rK;ap65ew 6J;ilAv5;aXeUiSoOuK;b 5Yle0n Kstl5;aLba4do1inKo2Ith4Nu5P;!to;c2Xr8w3;ll Mot LpeAuK;g3Ind17;a2Wf3Po7;ar8in,o7up;ng 68p oKs5;ff,p18;aKelAinEnt0;c6Hd K;o4Dup;c27t0;aZeYiWlToQrOsyc35uK;ll Mn5Kt K;aKba4do1in,oJto47up;pa4Dw3;a3Jdo1in,o21to45up;attleBess KiNop 2;ah2Fon;iLp Kr4Zu1Gwer 6N;do1in,o6Nup;nt0;aLuK;gEmp 6;ce u20y 6D;ck Kg0le 4An 6p5B;oJup;el 5NncilE;c53ir 39n0ss MtLy K;ba4oG; Hc2R;aw3ba4in,oJ;pKw4Y;e4Xt D;aLerd0oK;dAt53;il Hrrow H;aTeQiPoLuK;ddl5ll I;c1FnkeyMp 6uthAve K;aKdo1in,o4Lup;l4Nw3; wi4K;ss0x 2;asur5e3SlLss K;a21up;t 6;ke Ln 6rKs2Ax0;k 6ryA;do,fun,oCsure,up;a02eViQoLuK;ck0st I;aNc4Fg MoKse0;k Kse4D;aft9ba4do1forw37in56o0Zu46;in,oJ;d 6;e NghtMnLsKve 00;ten F;e 2k 2; 2e46;ar8do1in;aMt LvelK; oC;do1go,in,o7up;nEve K;in,oK;pKut;en;c5p 2sh LtchBughAy K;do1o59;in4Po7;eMick Lnock K;do1oCup;oCup;eLy K;in,up;l Ip K;aw3ba4do1f04in,oJto,up;aMoLuK;ic5mpE;ke3St H;c43zz 2;a01eWiToPuK;nLrrKsh 6;y 2;keLt K;ar8do1;r H;lKneErse3K;d Ke 2;ba4dKfast,o0Cup;ear,o1;de Lt K;ba4on,up;aw3o7;aKlp0;d Ml Ir Kt 2;fKof;rom;f11in,o03uW;cPm 2nLsh0ve Kz2P;at,it,to;d Lg KkerP;do1in,o2Tup;do1in,oK;ut,v9;k 2;aZeTive Rloss IoMrLunK; f0S;ab hold,in43ow 2U; Kof 2I;aMb1Mit,oLr8th1IuK;nd9;ff,n,v9;bo7ft9hQw3;aw3bKdo1in,oJrise,up,w3;a4ir2H;ar 6ek0t K;aLb1Fdo1in,oKr8up;ff,n,ut,v9;cLhKl2Fr8t,w3;ead;ross;d aKng 2;bo7;a0Ee07iYlUoQrMuK;ck Ke2N;ar8up;eLighten KownBy 2;aw3oG;eKshe27; 2z5;g 2lMol Krk I;aKwi20;bo7r8;d 6low 2;aLeKip0;sh0;g 6ke0mKrKtten H;e F;gRlPnNrLsKzzle0;h F;e Km 2;aw3ba4up;d0isK;h 2;e Kl 1T;aw3fPin,o7;ht ba4ure0;ePnLsK;s 2;cMd K;fKoG;or;e D;d04l 2;cNll Krm0t1G;aLbKdo1in,o09sho0Eth08victim;a4ehi2O;pa0C;e K;do1oGup;at Kdge0nd 12y5;in,o7up;aOi1HoNrK;aLess 6op KuN;aw3b03in,oC;gBwB; Ile0ubl1B;m 2;a0Ah05l02oOrLut K;aw3ba4do1oCup;ackBeep LoKy0;ss Dwd0;by,do1in,o0Uup;me NoLuntK; o2A;k 6l K;do1oG;aRbQforOin,oNtKu0O;hLoKrue;geth9;rough;ff,ut,v9;th,wK;ard;a4y;paKr8w3;rt;eaLose K;in,oCup;n 6r F;aNeLiK;ll0pE;ck Der Kw F;on,up;t 2;lRncel0rOsMtch LveE; in;o1Nup;h Dt K;doubt,oG;ry LvK;e 08;aw3oJ;l Km H;aLba4do1oJup;ff,n,ut;r8w3;a0Ve0MiteAl0Fo04rQuK;bblNckl05il0Dlk 6ndl05rLsKtMy FzzA;t 00;n 0HsK;t D;e I;ov9;anWeaUiLush K;oGup;ghQng K;aNba4do1forMin,oLuK;nd9p;n,ut;th;bo7lKr8w3;ong;teK;n 2;k K;do1in,o7up;ch0;arTg 6iRn5oPrNssMttlLunce Kx D;aw3ba4;e 6; ar8;e H;do1;k Dt 2;e 2;l 6;do1up;d 2;aPeed0oKurt0;cMw K;aw3ba4do1o7up;ck;k K;in,oC;ck0nk0stA; oQaNef 2lt0nd K;do1ov9up;er;up;r Lt K;do1in,oCup;do1o7;ff,nK;to;ck Pil0nMrgLsK;h D;ainBe D;g DkB; on;in,o7;aw3do1in,oCup;ff,ut;ay;ct FdQir0sk MuctionA; oG;ff;ar8o7;ouK;nd; o7;d K;do1oKup;ff,n;wn;o7up;ut",ProperNoun:"trueยฆaIbDc8dalhousHe7f5gosford,h4iron maiden,kirby,landsdowne,m2nis,r1s0wembF;herwood,paldiB;iel,othwe1;cgi0ercedes,issy;ll;intBudsB;airview,lorence,ra0;mpt9nco;lmo,uro;a1h0;arlt6es5risti;rl0talina;et4i0;ng;arb3e0;et1nt0rke0;ley;on;ie;bid,jax","Person|Place":"trueยฆa8d6h4jordan,k3orlando,s1vi0;ctor9rgin9;a0ydney;lvador,mara,ntia4;ent,obe;amil0ous0;ton;arw2ie0;go;lexandr1ust0;in;ia",LastName:"trueยฆ0:BR;1:BF;2:B5;3:BH;4:AX;5:9Y;6:B6;7:BK;8:B0;9:AV;A:AL;B:8Q;C:8G;D:7K;E:BM;F:AH;aBDb9Zc8Wd88e81f7Kg6Wh64i60j5Lk4Vl4Dm39n2Wo2Op25quispe,r1Ls0Pt0Ev03wTxSyKzG;aIhGimmerm6A;aGou,u;ng,o;khar5ytsE;aKeun9BiHoGun;koya32shiBU;!lG;diGmaz;rim,z;maGng;da,g52mo83sGzaC;aChiBV;iao,u;aLeJiHoGright,u;jcA5lff,ng;lGmm0nkl0sniewsC;kiB1liams33s3;bGiss,lt0;b,er,st0;a6Vgn0lHtG;anabe,s3;k0sh,tG;e2Non;aLeKiHoGukD;gt,lk5roby5;dHllalGnogr3Kr1Css0val3S;ba,ob1W;al,ov4;lasHsel8W;lJn dIrgBEsHzG;qu7;ilyEqu7siljE;en b6Aijk,yk;enzueAIverde;aPeix1VhKi2j8ka43oJrIsui,uG;om5UrG;c2n0un1;an,emblA7ynisC;dorAMlst3Km4rrAth;atch0i8UoG;mHrG;are84laci79;ps3sG;en,on;hirDkah9Mnaka,te,varA;a06ch01eYhUiRmOoMtIuHvGzabo;en9Jobod3N;ar7bot4lliv2zuC;aIeHoG;i7Bj4AyanAB;ele,in2FpheBvens25;l8rm0;kol5lovy5re7Tsa,to,uG;ng,sa;iGy72;rn5tG;!h;l71mHnGrbu;at9cla9Egh;moBo7M;aIeGimizu;hu,vchG;en8Luk;la,r1G;gu9infe5YmGoh,pulveA7rra5P;jGyG;on5;evi6iltz,miHneid0roed0uGwarz;be3Elz;dHtG;!t,z;!t;ar4Th8ito,ka4OlJnGr4saCto,unde19v4;ch7dHtGz;a5Le,os;b53e16;as,ihDm4Po0Y;aVeSiPoJuHyG;a6oo,u;bio,iz,sG;so,u;bKc8Fdrigue67ge10j9YmJosevelt,sItHux,wG;e,li6;a9Ch;enb4Usi;a54e4L;erts15i93;bei4JcHes,vGzzo;as,e9;ci,hards12;ag2es,iHut0yG;es,nol5N;s,t0;dImHnGsmu97v6C;tan1;ir7os;ic,u;aUeOhMiJoHrGut8;asad,if6Zochazk27;lishc2GpGrti72u10we76;e3Aov51;cHe45nG;as,to;as70hl0;aGillips;k,m,n6I;a3Hde3Wete0Bna,rJtG;ersHrovGters54;!a,ic;!en,on;eGic,kiBss3;i9ra,tz,z;h86k,padopoulIrk0tHvG;ic,l4N;el,te39;os;bMconn2Ag2TlJnei6PrHsbor6XweBzG;dem7Rturk;ella4DtGwe6N;ega,iz;iGof7Hs8I;vGyn1R;ei9;aSri1;aPeNiJoGune50ym2;rHvGwak;ak4Qik5otn66;odahl,r4S;cholsZeHkolGls4Jx3;ic,ov84;ls1miG;!n1;ils3mG;co4Xec;gy,kaGray2sh,var38;jiGmu9shiG;ma;a07c04eZiWoMuHyeG;rs;lJnIrGssoli6S;atGp03r7C;i,ov4;oz,te58;d0l0;h2lOnNo0RrHsGza1A;er,s;aKeJiIoz5risHtG;e56on;!on;!n7K;au,i9no,t5J;!lA;r1Btgome59;i3El0;cracFhhail5kkeHlG;l0os64;ls1;hmeJiIj30lHn3Krci0ssiGyer2N;!er;n0Po;er,j0;dDti;cartHlG;aughl8e2;hy;dQe7Egnu68i0jer3TkPmNnMrItHyG;er,r;ei,ic,su21thews;iHkDquAroqu8tinG;ez,s;a5Xc,nG;!o;ci5Vn;a5UmG;ad5;ar5e6Kin1;rig77s1;aVeOiLoJuHyG;!nch;k4nGo;d,gu;mbarGpe3Fvr4we;di;!nGu,yana2B;coln,dG;b21holm,strom;bedEfeKhIitn0kaHn8rGw35;oy;!j;m11tG;in1on1;bvGvG;re;iGmmy,ng,rs2Qu,voie,ws3;ne,t1F;aZeYh2iWlUnez50oNrJuHvar2woG;k,n;cerGmar68znets5;a,o34;aHem0isGyeziu;h23t3O;m0sni4Fus3KvG;ch4O;bay57ch,rh0Usk16vaIwalGzl5;czGsC;yk;cIlG;!cGen4K;huk;!ev4ic,s;e8uiveG;rt;eff0kGl4mu9nnun1;ucF;ll0nnedy;hn,llKminsCne,pIrHstra3Qto,ur,yGzl5;a,s0;j0Rls22;l2oG;or;oe;aPenOha6im14oHuG;ng,r4;e32hInHrge32u6vG;anD;es,ss3;anHnsG;en,on,t3;nesGs1R;en,s1;kiBnings,s1;cJkob4EnGrv0E;kDsG;en,sG;en0Ion;ks3obs2A;brahimDglesi5Nke5Fl0Qno07oneIshikHto,vanoG;u,v54;awa;scu;aVeOiNjaltal8oIrist50uG;!aGb0ghAynh;m2ng;a6dz4fIjgaa3Hk,lHpUrGwe,x3X;ak1Gvat;mAt;er,fm3WmG;ann;ggiBtchcock;iJmingw4BnHrGss;nand7re9;deGriks1;rs3;kkiHnG;on1;la,n1;dz4g1lvoQmOns0ZqNrMsJuIwHyG;asFes;kiB;g1ng;anHhiG;mo14;i,ov0J;di6p0r10t;ue;alaG;in1;rs1;aVeorgUheorghe,iSjonRoLrJuGw3;errGnnar3Co,staf3Ctierr7zm2;a,eG;ro;ayli6ee2Lg4iffithGub0;!s;lIme0UnHodGrbachE;e,m2;calvAzale0S;dGubE;bGs0E;erg;aj,i;bs3l,mGordaO;en7;iev3U;gnMlJmaIndFo,rGsFuthi0;cGdn0za;ia;ge;eaHlG;agh0i,o;no;e,on;aVerQiLjeldsted,lKoIrHuG;chs,entAji41ll0;eem2iedm2;ntaGrt8urni0wl0;na;emi6orA;lipIsHtzgeraG;ld;ch0h0;ovG;!ic;hatDnanIrG;arGei9;a,i;deY;ov4;b0rre1D;dKinsJriksIsGvaB;cob3GpGtra3D;inoza,osiQ;en,s3;te8;er,is3warG;ds;aXePiNjurhuMoKrisco15uHvorakG;!oT;arte,boHmitru,nn,rGt3C;and,ic;is;g2he0Omingu7nErd1ItG;to;us;aGcki2Hmitr2Ossanayake,x3;s,z; JbnaIlHmirGrvisFvi,w2;!ov4;gado,ic;th;bo0groot,jo6lHsilGvriA;va;a cruz,e3uG;ca;hl,mcevsCnIt2WviG;dGes,s;ov,s3;ielsGku22;!en;ki;a0Be06hRiobQlarkPoIrGunningh1H;awfo0RivGuz;elli;h1lKntJoIrGs2Nx;byn,reG;a,ia;ke,p0;i,rer2K;em2liB;ns;!e;anu;aOeMiu,oIristGu6we;eGiaG;ns1;i,ng,p9uHwGy;!dH;dGng;huJ;!n,onGu6;!g;kJnIpm2ttHudhGv7;ry;erjee,o14;!d,g;ma,raboG;rty;bJl0Cng4rG;eghetHnG;a,y;ti;an,ota1C;cerAlder3mpbeLrIstGvadi0B;iGro;llo;doHl0Er,t0uGvalho;so;so,zo;ll;a0Fe01hYiXlUoNrKuIyG;rLtyG;qi;chan2rG;ke,ns;ank5iem,oGyant;oks,wG;ne;gdan5nIruya,su,uchaHyKziG;c,n5;rd;darGik;enG;ko;ov;aGond15;nco,zG;ev4;ancFshw16;a08oGuiy2;umGwmG;ik;ckRethov1gu,ktPnNrG;gJisInG;ascoGds1;ni;ha;er,mG;anG;!n;gtGit7nP;ss3;asF;hi;er,hG;am;b4ch,ez,hRiley,kk0ldw8nMrIshHtAu0;es;ir;bInHtlGua;ett;es,i0;ieYosa;dGik;a9yoG;padhyG;ay;ra;k,ng;ic;bb0Acos09d07g04kht05lZnPrLsl2tJyG;aHd8;in;la;chis3kiG;ns3;aImstro6sl2;an;ng;ujo,ya;dJgelHsaG;ri;ovG;!a;ersJov,reG;aGjEws;ss1;en;en,on,s3;on;eksejEiyEmeiIvG;ar7es;ez;da;ev;arwHuilG;ar;al;ams,l0;er;ta;as",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:74;1:61;2:6G;3:6J;4:5S;a68b53c4Id48e44f3Wg3Hh39i31j2Wk2Fl23m1Mn1Co19p0Wq0Ur0Os05tRuQvLwDxiBy9z5;a7h5i4Muri4O;a5e5ongsh0;ng3H;greb,nzib5G;ang2e5okoha3Sunfu;katerin3Hrev0;a5n0Q;m5Hn;arsBeAi6roclBu5;h0xi,zh5P;c7n5;d5nipeg,terth4;hoek,s1L;hi5Zkl3A;l63xford;aw;a8e6i5ladivost5Molgogr6L;en3lni6S;ni22r5;o3saill4N;lenc4Wncouv3Sr3ughn;lan bat1Crumqi,trecht;aFbilisi,eEheDiBo9r7u5;l21n63r5;in,ku;i5ondh62;es51poli;kyo,m2Zron1Pulo5;n,uS;an5jua3l2Tmisoa6Bra3;j4Tshui; hag62ssaloni2H;gucigal26hr0l av1U;briz,i6llinn,mpe56ng5rtu,shk2R;i3Esh0;an,chu1n0p2Eyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4X;ba0Ht;aten is55ockholm,rasbou67uttga2V;an8e6i5;jiazhua1llo1m5Xy0;f50n5;ya1zh4H;gh3Kt4Q;att45o1Vv44;cramen16int ClBn5o paulo,ppo3Rrajevo; 7aa,t5;a 5o domin3E;a3fe,m1M;antonio,die3Cfrancisco,j5ped3Nsalvad0J;o5u0;se;em,t lake ci5Fz25;lou58peters24;a9e8i6o5;me,t59;ga,o5yadh;! de janei3F;cife,ims,nn3Jykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0Q;aFeEhDiCo9r7u6yong5;ya1;eb59ya1;a5etor3M;g52to;rt5zn0; 5la4Co;au prin0Melizabe24sa03;ls3Prae5Atts26;iladelph3Gnom pe1Aoenix;ki1tah tik3E;dua,lerYnaji,r4Ot5;na,r32;ak44des0Km1Mr6s5ttawa;a3Vlo;an,d06;a7ew5ing2Fovosibir1Jyc; 5cast36;del24orlea44taip14;g8iro4Wn5pl2Wshv33v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0W;aEeCi9o6u5;mb2Ani26sc3Y;gadishu,nt6s5;c13ul;evideo,pelli1Rre2Z;ami,l6n14s5;kolc,sissauga;an,waukee;cca,d5lbour2Mmph41ndo1Cssi3;an,ell2Xi3;cau,drAkass2Sl9n8r5shh4A;aca6ib5rakesh,se2L;or;i1Sy;a4EchFdal0Zi47;mo;id;aDeAi8o6u5vSy2;anMckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Lma5nz,sb2verpo28;!ss27; ma39i5;c5pzig;est16; p6g5ho2Wn0Cusan24;os;az,la33;aHharFiClaipeBo9rak0Du7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Hlka2Xpavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bHdu3llakuric0Qmpa3Fn6ohsiu1ra5un1Iwaguc0Q;c0Pj;d5o,p4;ah1Ty;a7e6i5ohannesV;l1Vn0;dd36rusalem;ip4k5;ar2H;bad0mph1OnArkutUs7taXz5;mir,tapala5;pa;fah0l6tanb5;ul;am2Zi2H;che2d5;ianap2Mo20;aAe7o5yder2W; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Oupe;ld coa1Bthen5;bu2S;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal29es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,nkirk,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Zr es sala1KugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1Q;lo7n6penhag0Ar5;do1Ok;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr14;ch8sha,zh07;gliari,i9lga8mayenJn6pe town,r5tanO;acCdiff;ber1Ac5;un;ry;ro;aWeNhKirmingh0WoJr9u5;chareTdapeTenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iCl9ng8r5;g6l5n;in;en;aluru,hazi;fa6grade,o horizon5;te;st;ji1rut;ghd0BkFn9ot8r7s6yan n4;ur;el,r07;celo3i,ranquil09;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a05b02cc01ddis aba00gartaZhmedXizawl,lSmPnHqa00rEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a8c5kaOtwerp;hora6o3;na;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 7buquerq6eppo,giers,ma5;ty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"trueยฆ0:2O;1:2L;2:2U;3:2F;a2Sb2Fc21d1Wes1Vf1Tg1Oh1Ki1Fj1Bk16l13m0Sn09o07pYqVrSsJtEuBverAw6y4zacatec2W;akut0o0Fu4;cat1k09;a5est 4isconsin,yomi1O;bengal,virgin0;rwick3shington4;! dc;acruz,mont;dmurt0t4;ah,tar4; 2Pa12;a6e5laxca1Vripu21u4;scaEva;langa2nnessee,x2J;bas10m4smQtar29;aulip2Hil nadu;a9elang07i7o5taf16u4ylh1J;ff02rr09s1E;me1Gno1Uuth 4;cZdY;ber0c4kkim,naloa;hu1ily;n5rawak,skatchew1xo4;ny; luis potosi,ta catari2;a4hodeA;j4ngp0C;asth1shahi;ingh29u4;e4intana roo;bec,en6retaro;aAe6rince edward4unjab; i4;sl0G;i,n5r4;ak,nambu0F;a0Rnsylv4;an0;ha0Pra4;!na;axa0Zdisha,h4klaho21ntar4reg7ss0Dx0I;io;aLeEo6u4;evo le4nav0X;on;r4tt18va scot0;f9mandy,th4; 4ampton3;c6d5yo4;rk3;ako1O;aroli2;olk;bras1Nva0Dw4; 6foundland4;! and labrad4;or;brunswick,hamp3jers5mexiTyork4;! state;ey;galPyarit;aAeghala0Mi6o4;nta2r4;dov0elos;ch6dlanDn5ss4zor11;issippi,ouri;as geraPneso18;ig1oac1;dhy12harasht0Gine,lac07ni5r4ssachusetts;anhao,i el,ylG;p4toba;ur;anca3e4incoln3ouisI;e4iR;ds;a6e5h4omi;aka06ul2;dah,lant1ntucky,ra01;bardino,lmyk0ns0Qr4;achay,el0nata0X;alis6har4iangxi;kh4;and;co;daho,llino7n4owa;d5gush4;et0;ia2;is;a6ert5i4un1;dalFm0D;ford3;mp3rya2waii;ansu,eorg0lou7oa,u4;an4izhou,jarat;ajuato,gdo4;ng;cester3;lori4uji1;da;sex;ageUe7o5uran4;go;rs4;et;lawaMrby3;aFeaEh9o4rim08umbr0;ahui7l6nnectic5rsi4ventry;ca;ut;i03orado;la;e5hattisgarh,i4uvash0;apRhuahua;chn5rke4;ss0;ya;ra;lGm4;bridge3peche;a9ihar,r8u4;ck4ryat0;ingham3;shi4;re;emen,itish columb0;h0ja cal8lk7s4v7;hkorto4que;st1;an;ar0;iforn0;ia;dygHguascalientes,lBndhr9r5ss4;am;izo2kans5un4;achal 7;as;na;a 4;pradesh;a6ber5t4;ai;ta;ba5s4;ka;ma;ea",Place:"trueยฆ0:4T;1:4V;2:44;3:4B;4:3I;a4Eb3Gc2Td2Ge26f25g1Vh1Ji1Fk1Cl14m0Vn0No0Jp08r04sTtNuLvJw7y5;a5o0Syz;kut1Bngtze;aDeChitBi9o5upatki,ycom2P;ki26o5;d5l1B;b3Ps5;i4to3Y;c0SllowbroCn5;c2Qgh2;by,chur1P;ed0ntw3Gs22;ke6r3St5;erf1f1; is0Gf3V;auxha3Mirgin is0Jost5;ok;laanbaatar,pto5xb3E;n,wn;a9eotihuac43h7ive49o6ru2Nsarskoe selo,u5;l2Dzigo47;nto,rquay,tt2J;am3e 5orn3E;bronx,hamptons;hiti,j mah0Iu1N;aEcotts bluff,eCfo,herbroQoApring9t7u5yd2F;dbu1Wn5;der03set3B;aff1ock2Nr5;atf1oud;hi37w24;ho,uth5; 1Iam1Zwo3E;a5i2O;f2Tt0;int lawrence riv3Pkhal2D;ayleigh,ed7i5oc1Z;chmo1Eo gran4ver5;be1Dfr09si4; s39cliffe,hi2Y;aCe9h8i5ompeii,utn2;c6ne5tcai2T; 2Pc0G;keri13t0;l,x;k,lh2mbr6n5r2J;n1Hzance;oke;cif38pahanaumokuak30r5;k5then0;si4w1K;ak7r6x5;f1l2X;ange county,d,f1inoco;mTw1G;e8i1Uo5;r5tt2N;th5wi0E; 0Sam19;uschwanste1Pw5; eng6a5h2market,po36;rk;la0P;a8co,e6i5uc;dt1Yll0Z;adow5ko0H;lands;chu picchu,gad2Ridsto1Ql8n7ple6r5;kh2; g1Cw11;hatt2Osf2B;ibu,t0ve1Z;a8e7gw,hr,in5owlOynd02;coln memori5dl2C;al;asi4w3;kefr7mbe1On5s,x;ca2Ig5si05;f1l27t0;ont;azan kreml14e6itchen2Gosrae,rasnoyar5ul;sk;ns0Hs1U;ax,cn,lf1n6ps5st;wiN;d5glew0Lverness;ian27ochina;aDeBi6kg,nd,ov5unti2H;d,enweep;gh6llc5;reL;bu03l5;and5;!s;r5yw0C;ef1tf1;libu24mp6r5stings;f1lem,row;stead,t0;aDodavari,r5uelph;avenAe5imsS;at 8en5; 6f1Fwi5;ch;acr3vall1H;brita0Flak3;hur5;st;ng3y villa0W;airhavHco,ra;aAgli9nf17ppi8u7ver6x5;et1Lf1;glad3t0;rope,st0;ng;nt0;rls1Ls5;t 5;e5si4;nd;aCe9fw,ig8o7ryd6u5xb;mfri3nstab00rh2tt0;en;nca18rcKv19wnt0B;by;n6r5vonpo1D;ry;!h2;nu8r5;l6t5;f1moor;ingt0;be;aLdg,eIgk,hClBo5royd0;l6m5rnwa0B;pt0;c7lingw6osse5;um;ood;he0S;earwat0St;a8el6i5uuk;chen itza,mney ro07natSricahua;m0Zt5;enh2;mor5rlottetPth2;ro;dar 5ntervilA;breaks,faZg5;rove;ld9m8r5versh2;lis6rizo pla5;in;le;bLpbellf1;weQ;aZcn,eNingl01kk,lackLolt0r5uckV;aGiAo5;ckt0ok5wns cany0;lyn,s5;i4to5;ne;de;dge6gh5;am,t0;n6t5;own;or5;th;ceb6m5;lNpt0;rid5;ge;bu5pool,wa8;rn;aconsfEdf1lBr9verly7x5;hi5;ll; hi5;lls;wi5;ck; air,l5;ingh2;am;ie5;ld;ltimore,rnsl6tters5;ea;ey;bLct0driadic,frica,ginJlGmFn9rc8s7tl6yleOzor3;es;!ant8;hcroft,ia; de triomphe,t6;adyr,ca8dov9tarct5;ic5; oce5;an;st5;er;ericas,s;be6dersh5hambra,list0;ot;rt0;cou5;rt;bot7i5;ngd0;on;sf1;ord",Country:"trueยฆ0:38;1:2L;2:3B;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om2pZqat1KrXsKtCu7v5wal4yemTz3;a25imbabwe;es,lis and futu2Y;a3enezue32ietnam;nuatu,tican city;gTk6nited 4ruXs3zbeE; 2Ca,sr;arab emirat0Kkingdom,states3;! of am2Y;!raiV;a8haCimor les0Co7rinidad 5u3;nis0rk3valu;ey,me2Zs and caic1V;and t3t3;oba1L;go,kel10nga;iw2ji3nz2T;ki2V;aDcotl1eCi9lov8o6pa2Dri lanka,u5w3yr0;az3edAitzerl1;il1;d2riname;lomon1Xmal0uth 3;afr2KkMsud2;ak0en0;erra leoFn3;gapo1Yt maart3;en;negLrb0ychellZ;int 3moa,n marino,udi arab0;hele26luc0mart21;epublic of ir0Eom2Euss0w3;an27;a4eIhilippinUitcairn1Mo3uerto riN;l1rtugF;ki2Dl4nama,pua new0Vra3;gu7;au,esti3;ne;aBe9i7or3;folk1Ith4w3;ay; k3ern mariana1D;or0O;caragua,ger3ue;!ia;p3ther1Aw zeal1;al;mib0u3;ru;a7exi6icro0Bo3yanm06;ldova,n3roc5zambA;a4gol0t3;enegro,serrat;co;cAdagasc01l7r5urit4yot3;te;an0i16;shall0Xtin3;ique;a4div3i,ta;es;wi,ys0;ao,ed02;a6e5i3uxembourg;b3echtenste12thu1G;er0ya;ban0Isotho;os,tv0;azakh1Fe4iriba04o3uwait,yrgyz1F;rXsovo;eling0Knya;a3erG;ma16p2;c7nd6r4s3taly,vory coast;le of m2rael;a3el1;n,q;ia,oJ;el1;aiTon3ungary;dur0Ng kong;aBermany,ha0QibraltAre8u3;a6ern5inea3ya0P;! biss3;au;sey;deloupe,m,tema0Q;e3na0N;ce,nl1;ar;bUmb0;a7i6r3;ance,ench 3;guia0Epoly3;nes0;ji,nl1;lklandUroeU;ast tim7cu6gypt,l salv6ngl1quatorial4ritr5st3thiop0;on0; guin3;ea;ad3;or;enmark,jibou5ominica4r con3;go;!n C;ti;aBentral african Ah8o5roat0u4yprRzech3; 9ia;ba,racao;c4lo3morQngo brazzaville,okGsta r04te de ivoiL;mb0;osE;i3ristmasG;le,na;republic;m3naUpe verde,ymanA;bod0ero3;on;aGeDhut2o9r5u3;lgar0r3;kina faso,ma,undi;azil,itish 3unei;virgin3; is3;lands;liv0nai5snia and herzegoviHtswaHuvet3; isl1;and;re;l3n8rmuG;ar3gium,ize;us;h4ngladesh,rbad3;os;am4ra3;in;as;fghaGlDmBn6r4ustr3zerbaij2;al0ia;genti3men0uba;na;dorra,g5t3;arct7igua and barbu3;da;o3uil3;la;er3;ica;b3ger0;an0;ia;ni3;st2;an",FirstName:"trueยฆaTblair,cQdOfrancoZgabMhinaLilya,jHkClBm6ni4quinn,re3s0;h0umit,yd;ay,e0iloh;a,lby;g9ne;co,ko0;!s;a1el0ina,org6;!okuhF;ds,naia,r1tt0xiB;i,y;ion,lo;ashawn,eif,uca;a3e1ir0rM;an;lsFn0rry;dall,yat5;i,sD;a0essIie,ude;i1m0;ie,mG;me;ta;rie0y;le;arcy,ev0;an,on;as1h0;arl8eyenne;ey,sidy;drien,kira,l4nd1ubr0vi;ey;i,r0;a,e0;a,y;ex2f1o0;is;ie;ei,is",WeekDay:"trueยฆfri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"trueยฆdec0february,july,nov0octo1sept0;em0;ber",Date:"trueยฆago,on4som4t1week0yesterd5; end,ends;mr1o0;d2morrow;!w;ed0;ay",Duration:"trueยฆcenturAd8h7m5q4se3w1y0;ear8r8;eek0k7;!end,s;ason,c5;tr,uarter;i0onth3;llisecond2nute2;our1r1;ay0ecade0;!s;ies,y",FemaleName:"trueยฆ0:J7;1:JB;2:IJ;3:IK;4:J1;5:IO;6:JS;7:JO;8:HB;9:JK;A:H4;B:I2;C:IT;D:JH;E:IX;F:BA;G:I4;aGTbFLcDRdD0eBMfB4gADh9Ti9Gj8Dk7Cl5Wm48n3Lo3Hp33qu32r29s15t0Eu0Cv02wVxiTyOzH;aLeIineb,oHsof3;e3Sf3la,ra;h2iKlIna,ynH;ab,ep;da,ma;da,h2iHra;nab;aKeJi0FolB7uIvH;et8onDP;i0na;le0sen3;el,gm3Hn,rGLs8W;aoHme0nyi;m5XyAD;aMendDZhiDGiH;dele9lJnH;if48niHo0;e,f47;a,helmi0lHma;a,ow;ka0nB;aNeKiHusa5;ck84kIl8oleAviH;anFenJ4;ky,toriBK;da,lA8rHs0;a,nHoniH9;a,iFR;leHnesH9;nILrH;i1y;g9rHs6xHA;su5te;aYeUhRiNoLrIuHy2;i,la;acJ3iHu0J;c3na,sH;hFta;nHr0F;iFya;aJffaEOnHs6;a,gtiH;ng;!nFSra;aIeHomasi0;a,l9Oo8Ares1;l3ndolwethu;g9Fo88rIssH;!a,ie;eHi,ri7;sa,za;bOlMmKnIrHs6tia0wa0;a60yn;iHya;a,ka,s6;arFe2iHm77ra;!ka;a,iH;a,t6;at6it6;a0Ecarlett,e0AhWiSkye,neza0oQri,tNuIyH;bIGlvi1;ha,mayIJniAsIzH;an3Net8ie,y;anHi7;!a,e,nH;aCe;aIeH;fan4l5Dphan6E;cI5r5;b3fiAAm0LnHphi1;d2ia,ja,ya;er2lJmon1nIobh8QtH;a,i;dy;lETv3;aMeIirHo0risFDy5;a,lDM;ba,e0i5lJrH;iHr6Jyl;!d8Ifa;ia,lDZ;hd,iMki2nJrIu0w0yH;la,ma,na;i,le9on,ron,yn;aIda,ia,nHon;a,on;!ya;k6mH;!aa;lJrItaye82vH;da,inj;e0ife;en1i0ma;anA9bLd5Oh1SiBkKlJmInd2rHs6vannaC;aCi0;ant6i2;lDOma,ome;ee0in8Tu2;in1ri0;a05eZhXiUoHuthDM;bScRghQl8LnPsJwIxH;anB3ie,y;an,e0;aIeHie,lD;ann7ll1marDGtA;!lHnn1;iHyn;e,nH;a,dF;da,i,na;ayy8G;hel67io;bDRerAyn;a,cIkHmas,nFta,ya;ki,o;h8Xki;ea,iannGMoH;da,n1P;an0bJemFgi0iInHta,y0;a8Bee;han86na;a,eH;cHkaC;a,ca;bi0chIe,i0mo0nHquETy0;di,ia;aERelHiB;!e,le;een4ia0;aPeOhMiLoJrHute6A;iHudenCV;scil3LyamvaB;lHrt3;i0ly;a,paluk;ilome0oebe,ylH;is,lis;ggy,nelope,r5t2;ige,m0VnKo5rvaDMtIulH;a,et8in1;ricHt4T;a,e,ia;do2i07;ctav3dIfD3is6ksa0lHphD3umC5yunbileg;a,ga,iv3;eHvAF;l3t8;aWeUiMoIurHy5;!ay,ul;a,eJor,rIuH;f,r;aCeEma;ll1mi;aNcLhariBQkKlaJna,sHta,vi;anHha;ur;!y;a,iDZki;hoGk9YolH;a,e4P;!mh;hir,lHna,risDEsreE;!a,lBV;asuMdLh3i6Dl5nKomi7rgEVtH;aHhal4;lHs6;i1ya;cy,et8;e9iF0ya;nngu2X;a0Ackenz4e02iMoJrignayani,uriDJyH;a,rH;a,iOlNna,tG;bi0i2llBJnH;a,iH;ca,ka,qD9;a,cUdo4ZkaTlOmi,nMrItzi,yH;ar;aJiIlH;anET;am;!l,nB;dy,eHh,n4;nhGrva;aKdJe0iCUlH;iHy;cent,e;red;!gros;!e5;ae5hH;ae5el3Z;ag5DgNi,lKrH;edi7AiIjem,on,yH;em,l;em,sCG;an4iHliCF;nHsCJ;a,da;!an,han;b09cASd07e,g05ha,i04ja,l02n00rLsoum5YtKuIv84xBKyHz4;bell,ra,soBB;d7rH;a,eE;h8Gild1t4;a,cUgQiKjor4l7Un4s6tJwa,yH;!aHbe6Xja9lAE;m,nBL;a,ha,in1;!aJbCGeIja,lDna,sHt63;!a,ol,sa;!l1D;!h,mInH;!a,e,n1;!awit,i;arJeIie,oHr48ueri8;!t;!ry;et46i3B;el4Xi7Cy;dHon,ue5;akranAy;ak,en,iHlo3S;a,ka,nB;a,re,s4te;daHg4;!l3E;alDd4elHge,isDJon0;ei9in1yn;el,le;a0Ne0CiXoQuLyH;d3la,nH;!a,dIe2OnHsCT;!a,e2N;a,sCR;aD4cJel0Pis1lIna,pHz;e,iA;a,u,wa;iHy;a0Se,ja,l2NnB;is,l1UrItt1LuHvel4;el5is1;aKeIi7na,rH;aADi7;lHn1tA;ei;!in1;aTbb9HdSepa,lNnKsJvIzH;!a,be5Ret8z4;!ia;a,et8;!a,dH;a,sHy;ay,ey,i,y;a,iJja,lH;iHy;aA8e;!aH;!nF;ia,ya;!nH;!a,ne;aPda,e0iNjYla,nMoKsJtHx93y5;iHt4;c3t3;e2PlCO;la,nHra;a,ie,o2;a,or1;a,gh,laH;!ni;!h,nH;a,d2e,n5V;cOdon9DiNkes6mi9Gna,rMtJurIvHxmi,y5;ern1in3;a,e5Aie,yn;as6iIoH;nya,ya;fa,s6;a,isA9;a,la;ey,ie,y;a04eZhXiOlASoNrJyH;lHra;a,ee,ie;istHy6I;a,en,iIyH;!na;!e,n5F;nul,ri,urtnB8;aOerNlB7mJrHzzy;a,stH;en,in;!berlImernH;aq;eHi,y;e,y;a,stE;!na,ra;aHei2ongordzol;dij1w5;el7UiKjsi,lJnIrH;a,i,ri;d2na,za;ey,i,lBLs4y;ra,s6;biAcARdiat7MeBAiSlQmPnyakuma1DrNss6NtKviAyH;!e,lH;a,eH;e,i8T;!a6HeIhHi4TlDri0y;ar8Her8Hie,leErBAy;!lyn8Ori0;a,en,iHl5Xoli0yn;!ma,nFs95;a5il1;ei8Mi,lH;e,ie;a,tl6O;a0AeZiWoOuH;anMdLlHst88;es,iH;a8NeHs8X;!n9tH;!a,te;e5Mi3My;a,iA;!anNcelDdMelGhan7VleLni,sIva0yH;a,ce;eHie;fHlDph7Y;a,in1;en,n1;i7y;!a,e,n45;lHng;!i1DlH;!i1C;anNle0nKrJsH;i8JsH;!e,i8I;i,ri;!a,elGif2CnH;a,et8iHy;!e,f2A;a,eJiInH;a,eIiH;e,n1;!t8;cMda,mi,nIque4YsminFvie2y9zH;min7;a7eIiH;ce,e,n1s;!lHs82t0F;e,le;inIk6HlDquelH;in1yn;da,ta;da,lRmPnOo0rNsIvaHwo0zaro;!a0lu,na;aJiIlaHob89;!n9R;do2;belHdo2;!a,e,l3B;a7Ben1i0ma;di2es,gr72ji;a9elBogH;en1;a,e9iHo0se;a0na;aSeOiJoHus7Kyacin2C;da,ll4rten24snH;a,i9U;lImaH;ri;aIdHlaI;a,egard;ry;ath1BiJlInrietArmi9sH;sa,t1A;en2Uga,mi;di;bi2Fil8MlNnMrJsItHwa,yl8M;i5Tt4;n60ti;iHmo51ri53;etH;!te;aCnaC;a,ey,l4;a02eWiRlPoNrKunJwH;enHyne1R;!dolD;ay,el;acieIetHiselB;a,chE;!la;ld1CogooH;sh;adys,enHor3yn2K;a,da,na;aKgi,lIna,ov8EselHta;a,e,le;da,liH;an;!n0;mLnJorgIrH;ald5Si,m3Etrud7;et8i4X;a,eHna;s29vieve;ma;bIle,mHrnet,yG;al5Si5;iIrielH;a,l1;!ja;aTeQiPlorOoz3rH;anJeIiH;da,eB;da,ja;!cH;esIiHoi0P;n1s66;!ca;a,enc3;en,o0;lIn0rnH;anB;ec3ic3;jr,nArKtHy7;emIiHma,oumaA;ha,ma,n;eh;ah,iBrah,za0;cr4Rd0Re0Qi0Pk0Ol07mXn54rUsOtNuMvHwa;aKelIiH;!e,ta;inFyn;!a;!ngel4V;geni1ni47;h5Yien9ta;mLperanKtH;eIhHrel5;er;l31r7;za;a,eralB;iHma,ne4Lyn;cHka,n;a,ka;aPeNiKmH;aHe21ie,y;!li9nuH;elG;lHn1;e7iHy;a,e,ja;lHrald;da,y;!nue5;aWeUiNlMma,no2oKsJvH;a,iH;na,ra;a,ie;iHuiH;se;a,en,ie,y;a0c3da,e,f,nMsJzaH;!betHveA;e,h;aHe,ka;!beH;th;!a,or;anor,nH;!a,i;!in1na;ate1Rta;leEs6;vi;eIiHna,wi0;e,th;l,n;aYeMh3iLjeneKoH;lor5Vminiq4Ln3FrHtt4;a,eEis,la,othHthy;ea,y;ba;an09naCon9ya;anQbPde,eOiMlJmetr3nHsir5M;a,iH;ce,se;a,iIla,orHphi9;es,is;a,l6F;dHrdH;re;!d5Ena;!b2ForaCraC;a,d2nH;!a,e;hl3i0l0GmNnLphn1rIvi1WyH;le,na;a,by,cIia,lH;a,en1;ey,ie;a,et8iH;!ca,el1Aka,z;arHia;is;a0Re0Nh04i02lUoJristIynH;di,th3;al,i0;lPnMrIurH;tn1D;aJd2OiHn2Ori9;!nH;a,e,n1;!l4;cepci5Cn4sH;tanHuelo;ce,za;eHleE;en,t8;aJeoIotH;il54;!pat2;ir7rJudH;et8iH;a,ne;a,e,iH;ce,sZ;a2er2ndH;i,y;aReNloe,rH;isJyH;stH;al;sy,tH;a1Sen,iHy;an1e,n1;deJlseIrH;!i7yl;a,y;li9;nMrH;isKlImH;ai9;a,eHot8;n1t8;!sa;d2elGtH;al,elG;cIlH;es8i47;el3ilH;e,ia,y;itlYlXmilWndVrMsKtHy5;aIeIhHri0;er1IleErDy;ri0;a38sH;a37ie;a,iOlLmeJolIrH;ie,ol;!e,in1yn;lHn;!a,la;a,eIie,otHy;a,ta;ne,y;na,s1X;a0Ii0I;a,e,l1;isAl4;in,yn;a0Ke02iZlXoUrH;andi7eRiJoIyH;an0nn;nwDoke;an3HdgMgiLtH;n31tH;!aInH;ey,i,y;ny;d,t8;etH;!t7;an0e,nH;da,na;bbi7glarIlo07nH;iAn4;ka;ancHythe;a,he;an1Clja0nHsm3M;iAtH;ou;aWcVlinUniArPssOtJulaCvH;!erlH;ey,y;hJsy,tH;e,iHy7;e,na;!anH;ie,y;!ie;nItHyl;ha,ie;adIiH;ce;et8i9;ay,da;ca,ky;!triH;ce,z;rbJyaH;rmH;aa;a2o2ra;a2Ub2Od25g21i1Sj5l18m0Zn0Boi,r06sWtVuPvOwa,yIzH;ra,u0;aKes6gJlIn,seH;!l;in;un;!nH;a,na;a,i2K;drLguJrIsteH;ja;el3;stH;in1;a,ey,i,y;aahua,he0;hIi2Gja,miAs2DtrH;id;aMlIraqHt21;at;eIi7yH;!n;e,iHy;gh;!nH;ti;iJleIo6piA;ta;en,n1t8;aHelG;!n1J;a01dje5eZgViTjRnKohito,toHya;inet8nH;el5ia;te;!aKeIiHmJ;e,ka;!mHtt7;ar4;!belIliHmU;sa;!l1;a,eliH;ca;ka,sHta;a,sa;elHie;a,iH;a,ca,n1qH;ue;!tH;a,te;!bImHstasiMya;ar3;el;aLberKeliJiHy;e,l3naH;!ta;a,ja;!ly;hGiIl3nB;da;a,ra;le;aWba,ePiMlKthJyH;a,c3sH;a,on,sa;ea;iHys0N;e,s0M;a,cIn1sHza;a,e,ha,on,sa;e,ia,ja;c3is6jaKksaKna,sJxH;aHia;!nd2;ia,saH;nd2;ra;ia;i0nIyH;ah,na;a,is,naCoud;la;c6da,leEmNnLsH;haClH;inHyY;g,n;!h;a,o,slH;ey;ee;en;at6g4nIusH;ti0;es;ie;aWdiTelMrH;eJiH;anMenH;a,e,ne;an0;na;!aLeKiIyH;nn;a,n1;a,e;!ne;!iH;de;e,lDsH;on;yn;!lH;i9yn;ne;aKbIiHrL;!e,gaK;ey,i7y;!e;gaH;il;dKliyJradhIs6;ha;ya;ah;a,ya",Honorific:"trueยฆdirector1field marsh2lieutenant1rear0sergeant major,vice0; admir1; gener0;al","Adj|Gerund":"trueยฆ0:3F;1:3H;2:31;3:2X;4:35;5:33;6:3C;7:2Z;8:36;9:29;a33b2Tc2Bd1Te1If19g12h0Zi0Rl0Nm0Gnu0Fo0Ap04rYsKtEuBvAw1Ayiel3;ar6e08;nBpA;l1Rs0B;fol3n1Zsett2;aEeDhrBi4ouc7rAwis0;e0Bif2oub2us0yi1;ea1SiA;l2vi1;l2mp0rr1J;nt1Vxi1;aMcreec7enten2NhLkyrocke0lo0Vmi2oJpHtDuBweA;e0Ul2;pp2ArA;gi1pri5roun3;aBea8iAri2Hun9;mula0r4;gge4rA;t2vi1;ark2eAraw2;e3llb2F;aAot7;ki1ri1;i9oc29;dYtisf6;aEeBive0oAus7;a4l2;assu4defi9fres7ig9juve07mai9s0vAwar3;ea2italiAol1G;si1zi1;gi1ll6mb2vi1;a6eDier23lun1VrAun2C;eBoA;mi5vo1Z;ce3s5vai2;n3rpleA;xi1;ffCpWutBverAwi1;arc7lap04p0Pri3whel8;goi1l6st1J;en3sA;et0;m2Jrtu4;aEeDiCoBuAyst0L;mb2;t1Jvi1;s5tiga0;an1Rl0n3smeri26;dAtu4;de9;aCeaBiAo0U;fesa0Tvi1;di1ni1;c1Fg19s0;llumiGmFnArri0R;cDfurHsCtBviA;go23ti1;e1Oimi21oxica0rig0V;pi4ul0;orpo20r0K;po5;na0;eaBorr02umilA;ia0;li1rtwar8;lFrA;atiDipCoBuelA;i1li1;undbrea10wi1;pi1;f6ng;a4ea8;a3etc7it0lEoCrBulfA;il2;ee1FighXust1L;rAun3;ebo3thco8;aCoA;a0wA;e4i1;mi1tte4;lectrJmHnExA;aCci0hBis0pA;an3lo3;aOila1B;c0spe1A;ab2coura0CdBergi13ga0Clive9ric7s02tA;hral2i0J;ea4u4;barras5er09pA;owe4;if6;aQeIiBrA;if0;sAzz6;aEgDhearCsen0tA;rAur11;ac0es5;te9;us0;ppoin0r8;biliGcDfi9gra3ligh0mBpres5sAvasG;erE;an3ea9orA;ali0L;a6eiBli9rA;ea5;vi1;ta0;maPri1s7un0zz2;aPhMlo5oAripp2ut0;mGnArrespon3;cer9fDspi4tA;inBrA;as0ibu0ol2;ui1;lic0u5;ni1;fDmCpA;eAromi5;l2ti1;an3;or0;aAil2;llenAnAr8;gi1;l8ptAri1;iva0;aff2eGin3lFoDrBuA;d3st2;eathtaAui5;ki1;gg2i2o8ri1unA;ci1;in3;co8wiA;lAtc7;de4;bsorVcOgonMlJmHnno6ppea2rFsA;pi4su4toA;nBun3;di1;is7;hi1;res0;li1;aFu5;si1;ar8lu4;ri1;mi1;iAzi1;zi1;cAhi1;eleDomA;moBpan6;yi1;da0;ra0;ti1;bi1;ng",Comparable:"trueยฆ0:3C;1:3Q;2:3F;a3Tb3Cc33d2Te2Mf2Ag1Wh1Li1Fj1Ek1Bl13m0Xn0So0Rp0Iqu0Gr07sHtCug0vAw4y3za0Q;el10ouN;ary,e6hi5i3ry;ck0Cde,l3n1ry,se;d,y;ny,te;a3i3R;k,ry;a3erda2ulgar;gue,in,st;a6en2Xhi5i4ouZr3;anqu2Cen1ue;dy,g36me0ny;ck,rs28;ll,me,rt,wd3I;aRcaPeOhMiLkin0BlImGoEpDt6u4w3;eet,ift;b3dd0Wperfi21rre28;sta26t21;a8e7iff,r4u3;pUr1;a4ict,o3;ng;ig2Vn0N;a1ep,rn;le,rk,te0;e1Si2Vright0;ci1Yft,l3on,re;emn,id;a3el0;ll,rt;e4i3y;g2Mm0Z;ek,nd2T;ck24l0mp1L;a3iRrill,y;dy,l01rp;ve0Jxy;n1Jr3;ce,y;d,fe,int0l1Hv0V;a8e6i5o3ude;mantic,o19sy,u3;gh;pe,t1P;a3d,mo0A;dy,l;gg4iFndom,p3re,w;id;ed;ai2i3;ck,et;hoAi1Fl9o8r5u3;ny,r3;e,p11;egna2ic4o3;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e5i4o3u14;b0Sisy,rm0Ysy;bb0ce,mb0R;a3r1w;r,t;ad,e5ild,o4u3;nda12te;ist,o1;a4ek,l3;low;s0ty;a8e7i6o3ucky;f0Jn4o15u3ve0w10y0N;d,sy;e0g;ke0l,mp,tt0Eve0;e1Qwd;me,r3te;ge;e4i3;nd;en;ol0ui19;cy,ll,n3;secu6t3;e3ima4;llege2rmedia3;te;re;aAe7i6o5u3;ge,m3ng1C;bYid;me0t;gh,l0;a3fXsita2;dy,rWv3;en0y;nd13ppy,r3;d3sh;!y;aFenEhCiBlAoofy,r3;a8e6i5o3ue0Z;o3ss;vy;m,s0;at,e3y;dy,n;nd,y;ad,ib,ooD;a2d1;a3o3;st0;tDuiS;u1y;aCeebBi9l8o6r5u3;ll,n3r0N;!ny;aCesh,iend0;a3nd,rmD;my;at,ir7;erce,nan3;ci9;le;r,ul3;ty;a6erie,sse4v3xtre0B;il;nti3;al;r4s3;tern,y;ly,th0;appZe9i5ru4u3;mb;nk;r5vi4z3;zy;ne;e,ty;a3ep,n9;d3f,r;!ly;agey,h8l7o5r4u3;dd0r0te;isp,uel;ar3ld,mmon,st0ward0zy;se;evKou1;e3il0;ap,e3;sy;aHiFlCoAr5u3;ff,r0sy;ly;a6i3oad;g4llia2;nt;ht;sh,ve;ld,un3;cy;a4o3ue;nd,o1;ck,nd;g,tt3;er;d,ld,w1;dy;bsu6ng5we3;so3;me;ry;rd",Adverb:"trueยฆa08b05d00eYfSheQinPjustOkinda,likewiZmMnJoEpCquite,r9s5t2u0very,well;ltima01p0; to,wards5;h1iny bit,o0wiO;o,t6;en,us;eldom,o0uch;!me1rt0; of;how,times,w0C;a1e0;alS;ndomRth05;ar excellenEer0oint blank; Lhaps;f3n0utright;ce0ly;! 0;ag05moX; courGten;ewJo0; longWt 0;onHwithstand9;aybe,eanwhiNore0;!ovT;! aboX;deed,steY;lla,n0;ce;or3u0;ck1l9rther0;!moK;ing; 0evK;exampCgood,suH;n mas0vI;se;e0irect2; 2fini0;te0;ly;juAtrop;ackward,y 0;far,no0; means,w; GbroFd nauseam,gEl7ny5part,s4t 2w0;ay,hi0;le;be7l0mo7wor7;arge,ea6; soon,i4;mo0way;re;l 3mo2ongsi1ready,so,togeth0ways;er;de;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"trueยฆaXbTcReNhowMiEjust00noBo9p8supposing,t5wh0yet;e1il0o3;e,st;n1re0thN; if,by,vM;evL;h0il,o;erefOo0;!uU;lus,rovided th9;r0therwiM;! not; mattEr,w0;! 0;since,th4w7;f4n0; 0asmuch;as mIcaForder t0;h0o;at;! 0;only,t0w0;hen;!ev3;ith2ven0;! 0;if,tB;er;o0uz;s,z;e0ut,y the time;cau1f0;ore;se;lt3nd,s 0;far1if,m0soon1t2;uch0; as;hou0;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",Determiner:"trueยฆaBboth,d9e6few,le5mu8neiDplenty,s4th2various,wh0;at0ich0;evC;a0e4is,ose;!t;everal,ome;!ast,s;a1l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er","Adj|Present":"trueยฆa07b04cVdQeNfJhollIidRlEmCnarrIoBp9qua8r7s3t2uttFw0;aKet,ro0;ng,u08;endChin;e2hort,l1mooth,our,pa9tray,u0;re,speU;i2ow;cu6da02leSpaN;eplica01i02;ck;aHerfePr0;eseUime,omV;bscu1pen,wn;atu0e3odeH;re;a2e1ive,ow0;er;an;st,y;ow;a2i1oul,r0;ee,inge;rm;iIke,ncy,st;l1mpty,x0;emHpress;abo4ic7;amp,e2i1oub0ry,ull;le;ffu9re6;fu8libe0;raE;alm,l5o0;mpleCn3ol,rr1unterfe0;it;e0u7;ct;juga8sum7;ea1o0;se;n,r;ankru1lu0;nt;pt;li2pproxi0rticula1;ma0;te;ght","Person|Adj":"trueยฆb3du2earnest,frank,mi2r0san1woo1;an0ich,u1;dy;sty;ella,rown",Modal:"trueยฆc5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Verb:"trueยฆborn,cannot,gonna,has,keep tabs,msg","Person|Verb":"trueยฆb8ch7dr6foster,gra5ja9lan4ma2ni9ollie,p1rob,s0wade;kip,pike,t5ue;at,eg,ier2;ck,r0;k,shal;ce;ce,nt;ew;ase,u1;iff,l1ob,u0;ck;aze,ossom","Person|Date":"trueยฆa2j0sep;an0une;!uary;p0ugust,v0;ril"};const ca=36,ha="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",da=ha.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var ga=function(e){if(void 0!==da[e])return da[e];let t=0,n=1,r=ca,a=1;for(;n=0;n--,a*=ca){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t};const ma=function(e,t,n){const r=ga(t);return r{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{let t=function(e){if(!e)return{};const t=e.split("|").reduce(((e,t)=>{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{if(Pa[t]=e,"Noun|Verb"===e){let e=ya(t,Aa);Pa[e]="Plural|Verb"}})):Object.keys(t).forEach((t=>{ka[t]=e}))})),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","ka[e]="Emoticon")),delete ka[""],delete ka.null,delete ka[" "];const Ca="Singular";var Na={beforeTags:{Determiner:Ca,Possessive:Ca,Acronym:Ca,Noun:Ca,Adjective:Ca,PresentTense:Ca,Gerund:Ca,PastTense:Ca,Infinitive:Ca,Date:Ca,Ordinal:Ca,Demonym:Ca},afterTags:{Value:Ca,Modal:Ca,Copula:Ca,PresentTense:Ca,PastTense:Ca,Demonym:Ca,Actor:Ca},beforeWords:{the:Ca,with:Ca,without:Ca,of:Ca,for:Ca,any:Ca,all:Ca,on:Ca,cut:Ca,cuts:Ca,increase:Ca,decrease:Ca,raise:Ca,drop:Ca,save:Ca,saved:Ca,saves:Ca,make:Ca,makes:Ca,made:Ca,minus:Ca,plus:Ca,than:Ca,another:Ca,versus:Ca,neither:Ca,about:Ca,favorite:Ca,best:Ca,daily:Ca,weekly:Ca,linear:Ca,binary:Ca,mobile:Ca,lexical:Ca,technical:Ca,computer:Ca,scientific:Ca,security:Ca,government:Ca,popular:Ca,formal:Ca,no:Ca,more:Ca,one:Ca,let:Ca,her:Ca,his:Ca,their:Ca,our:Ca,us:Ca,sheer:Ca,monthly:Ca,yearly:Ca,current:Ca,previous:Ca,upcoming:Ca,last:Ca,next:Ca,main:Ca,initial:Ca,final:Ca,beginning:Ca,end:Ca,top:Ca,bottom:Ca,future:Ca,past:Ca,major:Ca,minor:Ca,side:Ca,central:Ca,peripheral:Ca,public:Ca,private:Ca},afterWords:{of:Ca,system:Ca,aid:Ca,method:Ca,utility:Ca,tool:Ca,reform:Ca,therapy:Ca,philosophy:Ca,room:Ca,authority:Ca,says:Ca,said:Ca,wants:Ca,wanted:Ca,is:Ca,did:Ca,do:Ca,can:Ca,wise:Ca}};const ja="Infinitive";var xa={beforeTags:{Modal:ja,Adverb:ja,Negative:ja,Plural:ja},afterTags:{Determiner:ja,Adverb:ja,Possessive:ja,Reflexive:ja,Preposition:ja,Cardinal:ja,Comparative:ja,Superlative: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,let:ja,even:ja,when:ja,help:ja,he:ja,she:ja,it:ja,being:ja,bi:ja,co:ja,contra:ja,de:ja,inter:ja,intra:ja,mis:ja,pre:ja,out:ja,counter:ja,nobody:ja,somebody:ja,anybody:ja,everybody:ja},afterWords:{the:ja,me:ja,you:ja,him:ja,us:ja,her:ja,his:ja,them:ja,they:ja,it:ja,himself:ja,herself:ja,itself:ja,myself:ja,ourselves:ja,themselves:ja,something:ja,anything:ja,a:ja,an:ja,up:ja,down:ja,by:ja,out:ja,off:ja,under:ja,what:ja,all:ja,to:ja,because:ja,although:ja,how:ja,otherwise:ja,together:ja,though:ja,into:ja,yet:ja,more:ja,here:ja,there:ja,away:ja}};const Ia={beforeTags:Object.assign({},xa.beforeTags,Na.beforeTags,{}),afterTags:Object.assign({},xa.afterTags,Na.afterTags,{}),beforeWords:Object.assign({},xa.beforeWords,Na.beforeWords,{}),afterWords:Object.assign({},xa.afterWords,Na.afterWords,{})},Ta="Adjective";var Da={beforeTags:{Determiner:Ta,Possessive:Ta,Hyphenated:Ta},afterTags:{Adjective:Ta},beforeWords:{seem:Ta,seemed:Ta,seems:Ta,feel:Ta,feels:Ta,felt:Ta,stay: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,truly:Ta,how:Ta,deeply:Ta,hella:Ta,profoundly:Ta,extremely:Ta,so:Ta,badly:Ta,mostly:Ta,totally:Ta,awfully:Ta,rather:Ta,nothing:Ta,something:Ta,anything:Ta,not:Ta,me:Ta,is:Ta,face:Ta,faces:Ta,faced:Ta,look:Ta,looks:Ta,looked:Ta,reveal:Ta,reveals:Ta,revealed:Ta,sound:Ta,sounded:Ta,sounds:Ta,remains:Ta,remained:Ta,prove:Ta,proves:Ta,proved:Ta,becomes:Ta,stays:Ta,tastes:Ta,taste:Ta,smells:Ta,smell:Ta,gets:Ta,grows:Ta,as:Ta,rings:Ta,radiates:Ta,conveys:Ta,convey:Ta,conveyed:Ta,of:Ta},afterWords:{too:Ta,also:Ta,or:Ta,enough:Ta,as:Ta}};const Ha="Gerund";var Ea={beforeTags:{Adverb:Ha,Preposition:Ha,Conjunction:Ha},afterTags:{Adverb:Ha,Possessive:Ha,Person:Ha,Pronoun:Ha,Determiner:Ha,Copula:Ha,Preposition:Ha,Conjunction:Ha,Comparative:Ha},beforeWords:{been:Ha,keep:Ha,continue:Ha,stop:Ha,am:Ha,be:Ha,me:Ha,began:Ha,start:Ha,starts:Ha,started:Ha,stops:Ha,stopped:Ha,help:Ha,helps:Ha,avoid:Ha,avoids:Ha,love:Ha,loves:Ha,loved:Ha,hate:Ha,hates:Ha,hated:Ha},afterWords:{you:Ha,me:Ha,her:Ha,him:Ha,his:Ha,them:Ha,their:Ha,it:Ha,this:Ha,there:Ha,on:Ha,about:Ha,for:Ha,up:Ha,down:Ha}};const Ga="Gerund",Oa="Adjective",Fa={beforeTags:Object.assign({},Da.beforeTags,Ea.beforeTags,{Imperative:Ga,Infinitive:Oa,Plural:Ga}),afterTags:Object.assign({},Da.afterTags,Ea.afterTags,{Noun:Oa}),beforeWords:Object.assign({},Da.beforeWords,Ea.beforeWords,{is:Oa,are:Ga,was:Oa,of:Oa,suggest:Ga,suggests:Ga,suggested:Ga,recommend:Ga,recommends:Ga,recommended:Ga,imagine:Ga,imagines:Ga,imagined:Ga,consider:Ga,considered:Ga,considering:Ga,resist:Ga,resists:Ga,resisted:Ga,avoid:Ga,avoided:Ga,avoiding:Ga,except:Oa,accept:Oa,assess:Ga,explore:Ga,fear:Ga,fears:Ga,appreciate:Ga,question:Ga,help:Ga,embrace:Ga,with:Oa}),afterWords:Object.assign({},Da.afterWords,Ea.afterWords,{to:Ga,not:Ga,the:Ga})},Va={beforeTags:{Determiner:void 0,Cardinal:"Noun",PhrasalVerb:"Adjective"},afterTags:{}},za={beforeTags:Object.assign({},Da.beforeTags,Na.beforeTags,Va.beforeTags),afterTags:Object.assign({},Da.afterTags,Na.afterTags,Va.afterTags),beforeWords:Object.assign({},Da.beforeWords,Na.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective",off:"Adjective",out:"Adjective"}),afterWords:Object.assign({},Da.afterWords,Na.afterWords)};let Ba="PastTense",Sa="Adjective";const $a={beforeTags:{Adverb:Ba,Pronoun:Ba,ProperNoun:Ba,Auxiliary:Ba,Noun:Ba},afterTags:{Possessive:Ba,Pronoun:Ba,Determiner:Ba,Adverb:Ba,Comparative:Ba,Date:Ba,Gerund:Ba},beforeWords:{be:Ba,who:Ba,get:Sa,had:Ba,has:Ba,have:Ba,been:Ba,it:Ba,as:Ba,for:Sa,more:Sa,always:Sa},afterWords:{by:Ba,back:Ba,out:Ba,in:Ba,up:Ba,down:Ba,before:Ba,after:Ba,for:Ba,the:Ba,with:Ba,as:Ba,on:Ba,at:Ba,between:Ba,to:Ba,into:Ba,us:Ba,them:Ba,his:Ba,her:Ba,their:Ba,our:Ba,me:Ba,about:Sa}};var Ma={beforeTags:Object.assign({},Da.beforeTags,$a.beforeTags),afterTags:Object.assign({},Da.afterTags,$a.afterTags),beforeWords:Object.assign({},Da.beforeWords,$a.beforeWords),afterWords:Object.assign({},Da.afterWords,$a.afterWords)};const Ka={afterTags:{Noun:"Adjective",Conjunction:void 0}},La={beforeTags:Object.assign({},Da.beforeTags,xa.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Da.afterTags,xa.afterTags,Ka.afterTags),beforeWords:Object.assign({},Da.beforeWords,xa.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Da.afterWords,xa.afterWords,{to:void 0,as:"Adjective"})},Ja={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},Wa={Value:"Gerund"},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"},Ua={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"},Ra={beforeTags:Object.assign({},Ea.beforeTags,Na.beforeTags,Ja),afterTags:Object.assign({},Ea.afterTags,Na.afterTags,Wa),beforeWords:Object.assign({},Ea.beforeWords,Na.beforeWords,qa),afterWords:Object.assign({},Ea.afterWords,Na.afterWords,Ua)},Qa="Singular",Za="Infinitive",_a={beforeTags:Object.assign({},xa.beforeTags,Na.beforeTags,{Adjective:Qa,Particle:Qa}),afterTags:Object.assign({},xa.afterTags,Na.afterTags,{ProperNoun:Za,Gerund:Za,Adjective:Za,Copula:Qa}),beforeWords:Object.assign({},xa.beforeWords,Na.beforeWords,{is:Qa,was:Qa,of:Qa,have:null}),afterWords:Object.assign({},xa.afterWords,Na.afterWords,{instead:Za,about:Za,his:Za,her:Za,to:null,by:null,in:null})},Xa="Person";var Ya={beforeTags:{Honorific:Xa,Person: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 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,with:"Person"},afterWords:{sometime:eo,in:eo,of:eo,until:eo,the:eo}};var no={beforeTags:Object.assign({},Ya.beforeTags,to.beforeTags),afterTags:Object.assign({},Ya.afterTags,to.afterTags),beforeWords:Object.assign({},Ya.beforeWords,to.beforeWords),afterWords:Object.assign({},Ya.afterWords,to.afterWords)};const ro="Place",ao={beforeTags:{Place:ro},afterTags:{Place:ro,Abbreviation:ro},beforeWords:{in:ro,by:ro,near:ro,from:ro,to:ro},afterWords:{in:ro,by:ro,near:ro,from:ro,to:ro,government:ro,council:ro,region:ro,city:ro}};let oo="Unit";const io={"Actor|Verb":Ia,"Adj|Gerund":Fa,"Adj|Noun":za,"Adj|Past":Ma,"Adj|Present":La,"Noun|Verb":_a,"Noun|Gerund":Ra,"Person|Noun":{beforeTags:Object.assign({},Na.beforeTags,Ya.beforeTags),afterTags:Object.assign({},Na.afterTags,Ya.afterTags),beforeWords:Object.assign({},Na.beforeWords,Ya.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Na.afterWords,Ya.afterWords)},"Person|Date":no,"Person|Verb":{beforeTags:Object.assign({},Na.beforeTags,Ya.beforeTags,xa.beforeTags),afterTags:Object.assign({},Na.afterTags,Ya.afterTags,xa.afterTags),beforeWords:Object.assign({},Na.beforeWords,Ya.beforeWords,xa.beforeWords),afterWords:Object.assign({},Na.afterWords,Ya.afterWords,xa.afterWords)},"Person|Place":{beforeTags:Object.assign({},ao.beforeTags,Ya.beforeTags),afterTags:Object.assign({},ao.afterTags,Ya.afterTags),beforeWords:Object.assign({},ao.beforeWords,Ya.beforeWords),afterWords:Object.assign({},ao.afterWords,Ya.afterWords)},"Person|Adj":{beforeTags:Object.assign({},Ya.beforeTags,Da.beforeTags),afterTags:Object.assign({},Ya.afterTags,Da.afterTags),beforeWords:Object.assign({},Ya.beforeWords,Da.beforeWords),afterWords:Object.assign({},Ya.afterWords,Da.afterWords)},"Unit|Noun":{beforeTags:{Value:oo},afterTags:{},beforeWords:{per:oo,every:oo,each:oo,square:oo,cubic:oo,sq:oo,metric:oo},afterWords:{per:oo,squared:oo,cubed:oo,long:oo}}},so=(e,t)=>{let n=Object.keys(e).reduce(((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t)),{});return Object.assign(n,t)};io["Plural|Verb"]={beforeWords:so(io["Noun|Verb"].beforeWords,{had:"Plural",have:"Plural"}),afterWords:so(io["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null,is:"PresentTense",by:"PresentTense"}),beforeTags:so(io["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:so(io["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};const lo="Adjective",uo="Infinitive",co="PresentTense",ho="Singular",go="PastTense",mo="Adverb",po="Plural",fo="Actor",bo="Verb",vo="Noun",yo="LastName",wo="Modal",ko="Place",Po="Participle";var Ao=[null,null,{ea:ho,ia:vo,ic:lo,ly:mo,"'n":bo,"'t":bo},{oed:go,ued:go,xed:go," so":mo,"'ll":wo,"'re":"Copula",azy:lo,eer:vo,end:bo,ped:go,ffy:lo,ify:uo,ing:"Gerund",ize:uo,ibe:uo,lar:lo,mum:lo,nes:co,nny:lo,ous:lo,que:lo,ger:vo,ber:vo,rol:ho,sis:ho,ogy:ho,oid:ho,ian:ho,zes:co,eld:go,ken:Po,ven:Po,ten:Po,ect:uo,ict:uo,ign:uo,oze:uo,ful:lo,bal:lo,ton:vo,pur:ko},{amed:go,aped:go,ched:go,lked:go,rked:go,reed:go,nded:go,mned:lo,cted:go,dged:go,ield:ho,akis:yo,cede:uo,chuk:yo,czyk:yo,ects:co,iend:ho,ends:bo,enko:yo,ette:ho,iary:ho,wner:ho,fies:co,fore:mo,gate:uo,gone:lo,ices:po,ints:po,ruct:uo,ines:po,ions:po,ners:po,pers:po,lers:po,less:lo,llen:lo,made:lo,nsen:yo,oses:co,ould:wo,some:lo,sson:yo,ians:po,tion:ho,tage:vo,ique:ho,tive:lo,tors:vo,vice:ho,lier:ho,fier:ho,wned:go,gent:ho,tist:fo,pist:fo,rist:fo,mist:fo,yist:fo,vist:fo,ists:fo,lite:ho,site:ho,rite:ho,mite:ho,bite:ho,mate:ho,date:ho,ndal:ho,vent:ho,uist:fo,gist:fo,note:ho,cide:ho,ence:ho,wide:lo,vide:uo,ract:uo,duce:uo,pose:uo,eive:uo,lyze:uo,lyse:uo,iant:lo,nary:lo,ghty:lo,uent:lo,erer:fo,bury:ko,dorf:vo,esty:vo,wych:ko,dale:ko,folk:ko,vale:ko,abad:ko,sham:ko,wick:ko,view:ko},{elist:fo,holic:ho,phite:ho,tized:go,urned:go,eased:go,ances:po,bound:lo,ettes:po,fully:mo,ishes:co,ities:po,marek:yo,nssen:yo,ology:vo,osome:ho,tment:ho,ports:po,rough:lo,tches:co,tieth:"Ordinal",tures:po,wards:mo,where:mo,archy:vo,pathy:vo,opoly:vo,embly:vo,phate:vo,ndent:ho,scent:ho,onist:fo,anist:fo,alist:fo,olist:fo,icist:fo,ounce:uo,iable:lo,borne:lo,gnant:lo,inant:lo,igent:lo,atory:lo,rient:ho,dient:ho,maker:fo,burgh:ko,mouth:ko,ceter:ko,ville:ko,hurst:ko,stead:ko,endon:ko,brook:ko,shire:ko,worth:vo,field:"ProperNoun",ridge:ko},{auskas:yo,parent:ho,cedent:ho,ionary:ho,cklist:ho,brooke:ko,keeper:fo,logist:fo,teenth:"Value",worker:fo,master:fo,writer:fo,brough:ko,cester:ko,ington:ko,cliffe:ko,ingham:ko},{chester:ko,logists:fo,opoulos:yo,borough:ko,sdottir:yo}];const Co="Adjective",No="Noun",jo="Verb";var xo=[null,null,{},{neo:No,bio:No,"de-":jo,"re-":jo,"un-":jo,"ex-":No},{anti:No,auto:No,faux:Co,hexa:No,kilo:No,mono:No,nano:No,octa:No,poly:No,semi:Co,tele:No,"pro-":Co,"mis-":jo,"dis-":jo,"pre-":Co},{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:Co,radio:No,tetra:No,"omni-":Co,"post-":Co},{pseudo:Co,"extra-":Co,"hyper-":Co,"inter-":Co,"intra-":Co,"deca-":Co},{electro:No}];const Io="Adjective",To="Infinitive",Do="PresentTense",Ho="Singular",Eo="PastTense",Go="Adverb",Oo="Expression",Fo="Actor",Vo="Verb",zo="Noun",Bo="LastName";var So={a:[[/.[aeiou]na$/,zo,"tuna"],[/.[oau][wvl]ska$/,Bo],[/.[^aeiou]ica$/,Ho,"harmonica"],[/^([hyj]a+)+$/,Oo,"haha"]],c:[[/.[^aeiou]ic$/,Io]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Eo,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Eo,"rammed"],[/.[aeiou][sg]hed$/,Eo,"gushed"],[/.[aeiou]red$/,Eo,"hired"],[/.[aeiou]r?ried$/,Eo,"hurried"],[/[^aeiou]ard$/,Ho,"steward"],[/[aeiou][^aeiou]id$/,Io,""],[/.[vrl]id$/,Io,"livid"],[/..led$/,Eo,"hurled"],[/.[iao]sed$/,Eo,""],[/[aeiou]n?[cs]ed$/,Eo,""],[/[aeiou][rl]?[mnf]ed$/,Eo,""],[/[aeiou][ns]?c?ked$/,Eo,"bunked"],[/[aeiou]gned$/,Eo],[/[aeiou][nl]?ged$/,Eo],[/.[tdbwxyz]ed$/,Eo],[/[^aeiou][aeiou][tvx]ed$/,Eo],[/.[cdflmnprstv]ied$/,Eo,"emptied"]],e:[[/.[lnr]ize$/,To,"antagonize"],[/.[^aeiou]ise$/,To,"antagonise"],[/.[aeiou]te$/,To,"bite"],[/.[^aeiou][ai]ble$/,Io,"fixable"],[/.[^aeiou]eable$/,Io,"maleable"],[/.[ts]ive$/,Io,"festive"],[/[a-z]-like$/,Io,"woman-like"]],h:[[/.[^aeiouf]ish$/,Io,"cornish"],[/.v[iy]ch$/,Bo,"..ovich"],[/^ug?h+$/,Oo,"ughh"],[/^uh[ -]?oh$/,Oo,"uhoh"],[/[a-z]-ish$/,Io,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Bo,"polish-male"]],k:[[/^(k){2}$/,Oo,"kkkk"]],l:[[/.[gl]ial$/,Io,"familial"],[/.[^aeiou]ful$/,Io,"fitful"],[/.[nrtumcd]al$/,Io,"natal"],[/.[^aeiou][ei]al$/,Io,"familial"]],m:[[/.[^aeiou]ium$/,Ho,"magnesium"],[/[^aeiou]ism$/,Ho,"schism"],[/^[hu]m+$/,Oo,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Io,"republican"],[/[^aeiou]ician$/,Fo,"musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,Oo,"noooo"],[/^(yo)+$/,Oo,"yoo"],[/^wo{2,}[pt]?$/,Oo,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,Ho],[/[^i]fer$/,To],[/.[^aeiou][ao]pher$/,Fo],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Io],[/[aeiou].*ist$/,Io],[/^[a-z]et$/,Vo]],s:[[/.[^aeiou]ises$/,Do],[/.[rln]ates$/,Do],[/.[^z]ens$/,Vo],[/.[lstrn]us$/,Ho],[/.[aeiou]sks$/,Do],[/.[aeiou]kes$/,Do],[/[aeiou][^aeiou]is$/,Ho],[/[a-z]'s$/,zo],[/^yes+$/,Oo]],v:[[/.[^aeiou][ai][kln]ov$/,Bo]],y:[[/.[cts]hy$/,Io],[/.[st]ty$/,Io],[/.[tnl]ary$/,Io],[/.[oe]ry$/,Ho],[/[rdntkbhs]ly$/,Go],[/.(gg|bb|zz)ly$/,Io],[/...lly$/,Go],[/.[gk]y$/,Io],[/[bszmp]{2}y$/,Io],[/.[ai]my$/,Io],[/[ea]{2}zy$/,Io],[/.[^aeiou]ity$/,Ho]]};const $o="Verb",Mo="Noun";var Ko={leftTags:[["Adjective",Mo],["Possessive",Mo],["Determiner",Mo],["Adverb",$o],["Pronoun",$o],["Value",Mo],["Ordinal",Mo],["Modal",$o],["Superlative",Mo],["Demonym",Mo],["Honorific","Person"]],leftWords:[["i",$o],["first",Mo],["it",$o],["there",$o],["not",$o],["because",Mo],["if",Mo],["but",Mo],["who",$o],["this",Mo],["his",Mo],["when",Mo],["you",$o],["very","Adjective"],["old",Mo],["never",$o],["before",Mo],["a",Mo],["the",Mo],["been",$o]],rightTags:[["Copula",Mo],["PastTense",Mo],["Conjunction",Mo],["Modal",Mo]],rightWords:[["there",$o],["me",$o],["man","Adjective"],["him",$o],["it",$o],["were",Mo],["took",Mo],["himself",$o],["went",Mo],["who",Mo],["jr","Person"]]},Lo={fwd:"3:ser,ierยฆ1er:h,t,f,l,nยฆ1r:eยฆ2er:ss,or,om",both:"3er:ver,ear,almยฆ3ner:hinยฆ3ter:latยฆ2mer:imยฆ2er:ng,rm,mbยฆ2ber:ibยฆ2ger:igยฆ1er:w,p,k,dยฆier:y",rev:"1:tter,yerยฆ2:uer,ver,ffer,oner,eler,ller,iler,ster,cer,uler,sher,ener,gher,aner,adder,nter,eter,rter,hter,rner,fterยฆ3:oser,ooler,eafer,user,airer,bler,maler,tler,eater,uger,rger,ainer,urer,ealer,icher,pler,emner,icter,nser,iserยฆ4:arser,viner,ucher,rosser,somer,ndomer,moter,oother,uarer,hiterยฆ5:nuiner,esser,emierยฆar:urther",ex:"worse:badยฆbetter:goodยฆ4er:fair,gray,poorยฆ1urther:farยฆ3ter:fat,hot,wetยฆ3der:mad,sadยฆ3er:shy,funยฆ4der:gladยฆ:ยฆ4r:cute,dire,fake,fine,free,lame,late,pale,rare,ripe,rude,safe,sore,tame,wideยฆ5r:eerie,stale"},Jo={fwd:"1:nning,tting,rring,pping,eing,mming,gging,dding,bbing,kkingยฆ2:eking,oling,eling,emingยฆ3:velling,siting,uiting,fiting,loting,geting,ialing,cellingยฆ4:graming",both:"1:aing,iing,fing,xing,ying,oing,hing,wingยฆ2:tzing,rping,izzing,bting,mning,sping,wling,rling,wding,rbing,uping,lming,wning,mping,oning,lting,mbing,lking,fting,hting,sking,gning,pting,cking,ening,nking,iling,eping,ering,rting,rming,cting,lping,ssing,nting,nding,lding,sting,rning,rding,rkingยฆ3:belling,siping,toming,yaking,uaking,oaning,auling,ooping,aiding,naping,euring,tolling,uzzing,ganing,haning,ualing,halling,iasing,auding,ieting,ceting,ouling,voring,ralling,garing,joring,oaming,oaking,roring,nelling,ooring,uelling,eaming,ooding,eaping,eeting,ooting,ooming,xiting,keting,ooking,ulling,airing,oaring,biting,outing,oiting,earing,naling,oading,eeding,ouring,eaking,aiming,illing,oining,eaning,onging,ealing,aining,eadingยฆ4:thoming,melling,aboring,ivoting,weating,dfilling,onoring,eriting,imiting,tialling,rgining,otoring,linging,winging,lleting,louding,spelling,mpelling,heating,feating,opelling,choring,welling,ymaking,ctoring,calling,peating,iloring,laiting,utoring,uditing,mmaking,loating,iciting,waiting,mbating,voiding,otalling,nsoring,nselling,ocusing,itoring,elopingยฆ5:rselling,umpeting,atrolling,treating,tselling,rpreting,pringing,ummeting,ossoming,elmaking,eselling,rediting,totyping,onmaking,rfeiting,ntrollingยฆ5e:chmaking,dkeeping,severing,erouting,ecreting,ephoning,uthoring,ravening,reathing,pediting,erfering,eotyping,fringing,entoring,ombining,ompetingยฆ4e:emaking,eething,twining,rruling,chuting,xciting,rseding,scoping,edoring,pinging,lunging,agining,craping,pleting,eleting,nciting,nfining,ncoding,tponing,ecoding,writing,esaling,nvening,gnoring,evoting,mpeding,rvening,dhering,mpiling,storing,nviting,ploringยฆ3e:tining,nuring,saking,miring,haling,ceding,xuding,rining,nuting,laring,caring,miling,riding,hoking,piring,lading,curing,uading,noting,taping,futing,paring,hading,loding,siring,guring,vading,voking,during,niting,laning,caping,luting,muting,ruding,ciding,juring,laming,caling,hining,uoting,liding,ciling,duling,tuting,puting,cuting,coring,uiding,tiring,turing,siding,rading,enging,haping,buting,lining,taking,anging,haring,uiring,coming,mining,moting,suring,viding,ludingยฆ2e:tring,zling,uging,oging,gling,iging,vring,fling,lging,obing,psing,pling,ubing,cling,dling,wsing,iking,rsing,dging,kling,ysing,tling,rging,eging,nsing,uning,osing,uming,using,ibing,bling,aging,ising,asing,atingยฆ2ie:rlyingยฆ1e:zing,uing,cing,ving",rev:"ying:ieยฆ1ing:se,ke,te,we,ne,re,de,pe,me,le,c,heยฆ2ing:ll,ng,dd,ee,ye,oe,rg,usยฆ2ning:unยฆ2ging:og,ag,ug,ig,egยฆ2ming:umยฆ2bing:ub,ab,eb,obยฆ3ning:lan,can,hin,pin,winยฆ3ring:cur,lur,tir,tar,pur,carยฆ3ing:ait,del,eel,fin,eat,oat,eem,lel,ool,ein,uinยฆ3ping:rop,rap,top,uip,wap,hip,hop,lap,rip,capยฆ3ming:tem,wim,rim,kim,limยฆ3ting:mat,cut,pot,lit,lot,hat,set,pit,putยฆ3ding:hed,bed,bidยฆ3king:rekยฆ3ling:cil,pelยฆ3bing:ribยฆ4ning:eginยฆ4ing:isit,ruit,ilot,nsit,dget,rkel,ival,rcelยฆ4ring:efer,nferยฆ4ting:rmit,mmit,ysit,dmit,emit,bmit,tfit,gretยฆ4ling:evel,xcel,ivelยฆ4ding:hredยฆ5ing:arget,posit,rofitยฆ5ring:nsferยฆ5ting:nsmit,orget,cquitยฆ5ling:ancel,istil",ex:"3:adding,eating,aiming,aiding,airing,outing,gassing,setting,getting,putting,cutting,winning,sitting,betting,mapping,tapping,letting,bidding,hitting,tanning,netting,popping,fitting,capping,lapping,barring,banning,vetting,topping,rotting,tipping,potting,wetting,pitting,dipping,budding,hemming,pinning,jetting,kidding,padding,podding,sipping,wedding,bedding,donning,warring,penning,gutting,cueing,wadding,petting,ripping,napping,matting,tinning,binning,dimming,hopping,mopping,nodding,panning,rapping,ridding,sinningยฆ4:selling,falling,calling,waiting,editing,telling,rolling,heating,boating,hanging,beating,coating,singing,tolling,felling,polling,discing,seating,voiding,gelling,yelling,baiting,reining,ruining,seeking,spanning,stepping,knitting,emitting,slipping,quitting,dialing,omitting,clipping,shutting,skinning,abutting,flipping,trotting,cramming,fretting,suitingยฆ5:bringing,treating,spelling,stalling,trolling,expelling,rivaling,wringing,deterring,singeing,befitting,refittingยฆ6:enrolling,distilling,scrolling,strolling,caucusing,travellingยฆ7:installing,redefining,stencilling,recharging,overeating,benefiting,unraveling,programingยฆ9:reprogrammingยฆis:beingยฆ2e:using,aging,owingยฆ3e:making,taking,coming,noting,hiring,filing,coding,citing,doping,baking,coping,hoping,lading,caring,naming,voting,riding,mining,curing,lining,ruling,typing,boring,dining,firing,hiding,piling,taping,waning,baling,boning,faring,honing,wiping,luring,timing,wading,piping,fading,biting,zoning,daring,waking,gaming,raking,ceding,tiring,coking,wining,joking,paring,gaping,poking,pining,coring,liming,toting,roping,wiring,achingยฆ4e:writing,storing,eroding,framing,smoking,tasting,wasting,phoning,shaking,abiding,braking,flaking,pasting,priming,shoring,sloping,withing,hingingยฆ5e:defining,refining,renaming,swathing,fringing,recitingยฆ1ie:dying,tying,lying,vyingยฆ7e:sunbathing"},Wo={fwd:"1:mtยฆ2:llenยฆ3:iven,akenยฆ:neยฆy:in",both:"1:wnยฆ2:me,atenยฆ3:seen,bidden,isenยฆ4:roven,astenยฆ3l:piltยฆ3d:uiltยฆ2e:ittenยฆ1im:wumยฆ1eak:pokenยฆ1ine:honeยฆ1ose:osenยฆ1in:gunยฆ1ake:wokenยฆear:ornยฆeal:olenยฆeeze:ozenยฆet:ottenยฆink:unkยฆing:ung",rev:"2:unยฆoken:eakยฆought:eekยฆoven:eaveยฆ1ne:oยฆ1own:lyยฆ1den:deยฆ1in:ayยฆ2t:amยฆ2n:eeยฆ3en:allยฆ4n:rive,sake,takeยฆ5n:rgive",ex:"2:beenยฆ3:seen,runยฆ4:given,takenยฆ5:shakenยฆ2eak:brokenยฆ1ive:doveยฆ2y:flownยฆ3e:hidden,riddenยฆ1eek:soughtยฆ1ake:wokenยฆ1eave:woven"},qo={fwd:"1:oesยฆ1ve:as",both:"1:xesยฆ2:zzes,ches,shes,ssesยฆ3:iasesยฆ2y:llies,pliesยฆ1y:cies,bies,ties,vies,nies,pies,dies,ries,fiesยฆ:s",rev:"1ies:lyยฆ2es:us,go,doยฆ3es:cho,eto",ex:"2:does,goesยฆ3:gassesยฆ5:focusesยฆis:areยฆ3y:reliesยฆ2y:fliesยฆ2ve:has"},Uo={fwd:"1st:eยฆ1est:l,m,f,sยฆ1iest:ceyยฆ2est:or,irยฆ3est:ver",both:"4:eastยฆ5:hwestยฆ5lest:erfulยฆ4est:weet,lgar,tter,oungยฆ4most:uterยฆ3est:ger,der,rey,iet,ong,earยฆ3test:latยฆ3most:nerยฆ2est:pt,ft,nt,ct,rt,htยฆ2test:itยฆ2gest:igยฆ1est:b,k,n,p,h,d,wยฆiest:y",rev:"1:ttest,nnest,yestยฆ2:sest,stest,rmest,cest,vest,lmest,olest,ilest,ulest,ssest,imest,uestยฆ3:rgest,eatest,oorest,plest,allest,urest,iefest,uelest,blest,ugest,amest,yalest,ealest,illest,tlest,itestยฆ4:cerest,eriest,somest,rmalest,ndomest,motest,uarest,tiffestยฆ5:leverest,rangestยฆar:urthestยฆ3ey:riciest",ex:"best:goodยฆworst:badยฆ5est:greatยฆ4est:fast,full,fair,dullยฆ3test:hot,wet,fatยฆ4nest:thinยฆ1urthest:farยฆ3est:gay,shy,illยฆ4test:neatยฆ4st:late,wide,fine,safe,cute,fake,pale,rare,rude,sore,ripe,direยฆ6st:severe"},Ro={fwd:"1:tistic,eable,lful,sful,ting,ttyยฆ2:onate,rtable,geous,ced,seful,ctfulยฆ3:ortive,entedยฆarity:earยฆy:eticยฆfulness:begoneยฆ1ity:reยฆ1y:tiful,gicยฆ2ity:ile,imous,ilous,imeยฆ2ion:atedยฆ2eness:ivingยฆ2y:triousยฆ2ation:iringยฆ2tion:vantยฆ3ion:ectยฆ3ce:mant,manticยฆ3tion:irableยฆ3y:est,esticยฆ3m:mistic,listicยฆ3ess:ningยฆ4n:utiousยฆ4on:rative,native,vative,ectiveยฆ4ce:erant",both:"1:king,wingยฆ2:alous,ltuous,oyful,rdousยฆ3:gorous,ectable,werful,amaticยฆ4:oised,usical,agical,raceful,ocused,lined,ightfulยฆ5ness:stful,lding,itous,nuous,ulous,otous,nable,gious,ayful,rvous,ntous,lsive,peful,entle,ciful,osive,leful,isive,ncise,reful,miousยฆ5ty:ivaciousยฆ5ties:ubtleยฆ5ce:ilient,adiant,atientยฆ5cy:icientยฆ5sm:gmaticยฆ5on:sessive,dictiveยฆ5ity:pular,sonal,eative,enticยฆ5sity:uminousยฆ5ism:conicยฆ5nce:mperateยฆ5ility:mitableยฆ5ment:xcitedยฆ5n:bitiousยฆ4cy:brant,etent,curateยฆ4ility:erable,acable,icable,ptableยฆ4ty:nacious,aive,oyal,daciousยฆ4n:iciousยฆ4ce:vient,erent,stent,ndent,dient,quent,identยฆ4ness:adic,ound,hing,pant,sant,oing,oist,tuteยฆ4icity:impleยฆ4ment:fined,musedยฆ4ism:oticยฆ4ry:danticยฆ4ity:tund,eralยฆ4edness:handยฆ4on:uitiveยฆ4lity:pitableยฆ4sm:eroic,namicยฆ4sity:nerousยฆ3th:armยฆ3ility:pable,bable,dable,iableยฆ3cy:hant,nant,icateยฆ3ness:red,hin,nse,ict,iet,ite,oud,ind,ied,rceยฆ3ion:luteยฆ3ity:ual,gal,volous,ialยฆ3ce:sent,fensive,lant,gant,gent,lent,dantยฆ3on:asiveยฆ3m:fist,sistic,iasticยฆ3y:terious,xurious,ronic,tasticยฆ3ur:amorousยฆ3e:tunateยฆ3ation:minedยฆ3sy:rteousยฆ3ty:ainยฆ3ry:aveยฆ3ment:azedยฆ2ness:de,on,ue,rn,ur,ft,rp,pe,om,ge,rd,od,ay,ss,er,ll,oy,ap,ht,ld,ad,rtยฆ2inousness:umousยฆ2ity:neous,ene,id,aneยฆ2cy:bate,lateยฆ2ation:izedยฆ2ility:oble,ibleยฆ2y:odicยฆ2e:oving,aringยฆ2s:ostยฆ2itude:ptยฆ2dom:eeยฆ2ance:uringยฆ2tion:reetยฆ2ion:otedยฆ2sion:endingยฆ2liness:anยฆ2or:rdentยฆ1th:ungยฆ1e:uableยฆ1ness:w,h,k,fยฆ1ility:mbleยฆ1or:ventยฆ1ement:gingยฆ1tiquity:ncientยฆ1ment:hedยฆverty:orยฆength:ongยฆeat:otยฆpth:epยฆiness:y",rev:"",ex:"5:forceful,humorousยฆ8:charismaticยฆ13:understandingยฆ5ity:activeยฆ11ness:adventurous,inquisitive,resourcefulยฆ8on:aggressive,automatic,perceptiveยฆ7ness:amorous,fatuous,furtive,ominous,seriousยฆ5ness:ample,sweetยฆ12ness:apprehensive,cantankerous,contemptuous,ostentatiousยฆ13ness:argumentative,conscientiousยฆ9ness:assertive,facetious,imperious,inventive,oblivious,rapacious,receptive,seditious,whimsicalยฆ10ness:attractive,expressive,impressive,loquacious,salubrious,thoughtfulยฆ3edom:boringยฆ4ness:calm,fast,keen,tameยฆ8ness:cheerful,gracious,specious,spurious,timorous,unctuousยฆ5sity:curiousยฆ9ion:deliberateยฆ8ion:desperateยฆ6e:expensiveยฆ7ce:fragrantยฆ3y:furiousยฆ9ility:ineluctableยฆ6ism:mysticalยฆ8ity:physical,proactive,sensitive,verticalยฆ5cy:pliantยฆ7ity:positiveยฆ9ity:practicalยฆ12ism:professionalยฆ6ce:prudentยฆ3ness:redยฆ6cy:vagrantยฆ3dom:wise"};const Qo=function(e="",t={}){let n=function(e,t={}){return t.hasOwnProperty(e)?t[e]:null}(e,t.ex);return n=n||function(e,t=[]){for(let n=0;n=1;r-=1){let a=e.length-r,o=e.substring(a,e.length);if(!0===t.hasOwnProperty(o))return e.slice(0,a)+t[o];if(!0===n.hasOwnProperty(o))return e.slice(0,a)+n[o]}return t.hasOwnProperty("")?e+t[""]:n.hasOwnProperty("")?e+n[""]:null}(e,t.fwd,t.both),n=n||e,n},Zo=function(e){return Object.entries(e).reduce(((e,t)=>(e[t[1]]=t[0],e)),{})},_o=function(e={}){return{reversed:!0,both:Zo(e.both),ex:Zo(e.ex),fwd:e.rev||{}}},Xo=/^([0-9]+)/,Yo=function(e){let t=function(e){let t={};return e.split("ยฆ").forEach((e=>{let[n,r]=e.split(":");r=(r||"").split(","),r.forEach((e=>{t[e]=n}))})),t}(e);return Object.keys(t).reduce(((e,n)=>(e[n]=function(e="",t=""){let n=(t=String(t)).match(Xo);if(null===n)return t;let r=Number(n[1])||0;return e.substring(0,r)+t.replace(Xo,"")}(n,t[n]),e)),{})},ei=function(e={}){return"string"==typeof e&&(e=JSON.parse(e)),e.fwd=Yo(e.fwd||""),e.both=Yo(e.both||""),e.rev=Yo(e.rev||""),e.ex=Yo(e.ex||""),e},ti=ei({fwd:"1:tted,wed,gged,nned,een,rred,pped,yed,bbed,oed,dded,rd,wn,mmedยฆ2:eed,nded,et,hted,st,oled,ut,emed,eled,lded,ken,rt,nked,apt,ant,eped,ekedยฆ3:eared,eat,eaded,nelled,ealt,eeded,ooted,eaked,eaned,eeted,mited,bid,uit,ead,uited,ealed,geted,velled,ialed,belledยฆ4:ebuted,hined,comedยฆy:iedยฆome:ameยฆear:oreยฆind:oundยฆing:ung,angยฆep:ptยฆink:ank,unkยฆig:ugยฆall:ellยฆee:awยฆive:aveยฆeeze:ozeยฆold:eldยฆave:ftยฆake:ookยฆell:oldยฆite:oteยฆide:odeยฆine:oneยฆin:un,onยฆeal:oleยฆim:amยฆie:ayยฆand:oodยฆ1ise:roseยฆ1eak:rokeยฆ1ing:roughtยฆ1ive:roveยฆ1el:eltยฆ1id:badeยฆ1et:gotยฆ1y:aidยฆ1it:satยฆ3e:lidยฆ3d:pent",both:"1:aed,fed,xed,hedยฆ2:sged,xted,wled,rped,lked,kied,lmed,lped,uped,bted,rbed,rked,wned,rled,mped,fted,mned,mbed,zzed,omed,ened,cked,gned,lted,sked,ued,zed,nted,ered,rted,rmed,ced,sted,rned,ssed,rded,pted,ved,ctedยฆ3:cled,eined,siped,ooned,uked,ymed,jored,ouded,ioted,oaned,lged,asped,iged,mured,oided,eiled,yped,taled,moned,yled,lit,kled,oaked,gled,naled,fled,uined,oared,valled,koned,soned,aided,obed,ibed,meted,nicked,rored,micked,keted,vred,ooped,oaded,rited,aired,auled,filled,ouled,ooded,ceted,tolled,oited,bited,aped,tled,vored,dled,eamed,nsed,rsed,sited,owded,pled,sored,rged,osed,pelled,oured,psed,oated,loned,aimed,illed,eured,tred,ioned,celled,bled,wsed,ooked,oiled,itzed,iked,iased,onged,ased,ailed,uned,umed,ained,auded,nulled,ysed,eged,ised,aged,oined,ated,used,dged,donedยฆ4:ntied,efited,uaked,caded,fired,roped,halled,roked,himed,culed,tared,lared,tuted,uared,routed,pited,naked,miled,houted,helled,hared,cored,caled,tired,peated,futed,ciled,called,tined,moted,filed,sided,poned,iloted,honed,lleted,huted,ruled,cured,named,preted,vaded,sured,talled,haled,peded,gined,nited,uided,ramed,feited,laked,gured,ctored,unged,pired,cuted,voked,eloped,ralled,rined,coded,icited,vided,uaded,voted,mined,sired,noted,lined,nselled,luted,jured,fided,puted,piled,pared,olored,cided,hoked,enged,tured,geoned,cotted,lamed,uiled,waited,udited,anged,luded,mired,uired,radedยฆ5:modelled,izzled,eleted,umpeted,ailored,rseded,treated,eduled,ecited,rammed,eceded,atrolled,nitored,basted,twined,itialled,ncited,gnored,ploded,xcited,nrolled,namelled,plored,efeated,redited,ntrolled,nfined,pleted,llided,lcined,eathed,ibuted,lloted,dhered,ccededยฆ3ad:sledยฆ2aw:drewยฆ2ot:hotยฆ2ke:madeยฆ2ow:hrew,grewยฆ2ose:hoseยฆ2d:iltยฆ2in:eganยฆ1un:ranยฆ1ink:houghtยฆ1ick:tuckยฆ1ike:ruckยฆ1eak:poke,nuckยฆ1it:patยฆ1o:didยฆ1ow:newยฆ1ake:wokeยฆgo:went",rev:"3:rst,hed,hut,cut,setยฆ4:tbidยฆ5:dcast,eread,pread,erbidยฆought:uy,eekยฆ1ied:ny,ly,dy,ry,fy,py,vy,by,ty,cyยฆ1ung:ling,ting,wingยฆ1pt:eepยฆ1ank:rinkยฆ1ore:bear,wearยฆ1ave:giveยฆ1oze:reezeยฆ1ound:rind,windยฆ1ook:take,hakeยฆ1aw:seeยฆ1old:sellยฆ1ote:riteยฆ1ole:tealยฆ1unk:tinkยฆ1am:wimยฆ1ay:lieยฆ1ood:tandยฆ1eld:holdยฆ2d:he,ge,re,le,leed,ne,reed,be,ye,lee,pe,weยฆ2ed:dd,oy,or,ey,gg,rr,us,ew,toยฆ2ame:ecome,rcomeยฆ2ped:apยฆ2ged:ag,og,ug,egยฆ2bed:ub,ab,ib,obยฆ2lt:neelยฆ2id:payยฆ2ang:pringยฆ2ove:triveยฆ2med:umยฆ2ode:rrideยฆ2at:ysitยฆ3ted:mit,hat,mat,lat,pot,rot,batยฆ3ed:low,end,tow,und,ond,eem,lay,cho,dow,xit,eld,ald,uld,law,lel,eat,oll,ray,ank,fin,oam,out,how,iek,tay,haw,ait,vet,say,cay,bowยฆ3d:ste,ede,ode,ete,ree,ude,ame,oke,ote,ime,ute,adeยฆ3red:lur,cur,pur,carยฆ3ped:hop,rop,uip,rip,lip,tep,topยฆ3ded:bed,rod,kidยฆ3ade:orbidยฆ3led:uelยฆ3ned:lan,can,kin,pan,tunยฆ3med:rim,limยฆ4ted:quit,llotยฆ4ed:pear,rrow,rand,lean,mand,anel,pand,reet,link,abel,evel,imit,ceed,ruit,mind,peal,veal,hool,head,pell,well,mell,uell,band,hear,weakยฆ4led:nnel,qual,ebel,ivelยฆ4red:nfer,efer,sferยฆ4n:sake,trewยฆ4d:nteeยฆ4ded:hredยฆ4ned:rpinยฆ5ed:light,nceal,right,ndear,arget,hread,eight,rtial,ebootยฆ5d:edite,nviteยฆ5ted:egretยฆ5led:ravel",ex:"2:been,uppedยฆ3:added,aged,aided,aimed,aired,bid,died,dyed,egged,erred,eyed,fit,gassed,hit,lied,owed,pent,pied,tied,used,vied,oiled,outed,banned,barred,bet,canned,cut,dipped,donned,ended,feed,inked,jarred,let,manned,mowed,netted,padded,panned,pitted,popped,potted,put,set,sewn,sowed,tanned,tipped,topped,vowed,weed,bowed,jammed,binned,dimmed,hopped,mopped,nodded,pinned,rigged,sinned,towed,vettedยฆ4:ached,baked,baled,boned,bored,called,caned,cared,ceded,cited,coded,cored,cubed,cured,dared,dined,edited,exited,faked,fared,filed,fined,fired,fuelled,gamed,gelled,hired,hoped,joked,lined,mined,named,noted,piled,poked,polled,pored,pulled,reaped,roamed,rolled,ruled,seated,shed,sided,timed,tolled,toned,voted,waited,walled,waned,winged,wiped,wired,zoned,yelled,tamed,lubed,roped,faded,mired,caked,honed,banged,culled,heated,raked,welled,banded,beat,cast,cooled,cost,dealt,feared,folded,footed,handed,headed,heard,hurt,knitted,landed,leaked,leapt,linked,meant,minded,molded,neared,needed,peaked,plodded,plotted,pooled,quit,read,rooted,sealed,seeded,seeped,shipped,shunned,skimmed,slammed,sparred,stemmed,stirred,suited,thinned,twinned,swayed,winked,dialed,abutted,blotted,fretted,healed,heeded,peeled,reeledยฆ5:basted,cheated,equalled,eroded,exiled,focused,opined,pleated,primed,quoted,scouted,shored,sloped,smoked,sniped,spelled,spouted,routed,staked,stored,swelled,tasted,treated,wasted,smelled,dwelled,honored,prided,quelled,eloped,scared,coveted,sweated,breaded,cleared,debuted,deterred,freaked,modeled,pleaded,rebutted,speededยฆ6:anchored,defined,endured,impaled,invited,refined,revered,strolled,cringed,recast,thrust,unfoldedยฆ7:authored,combined,competed,conceded,convened,excreted,extruded,redefined,restored,secreted,rescinded,welcomedยฆ8:expedited,infringedยฆ9:interfered,intervened,perseveredยฆ10:contravenedยฆeat:ateยฆis:wasยฆgo:wentยฆare:wereยฆ3d:bent,lent,rent,sentยฆ3e:bit,fled,hid,lostยฆ3ed:bled,bredยฆ2ow:blew,grewยฆ1uy:boughtยฆ2tch:caughtยฆ1o:didยฆ1ive:dove,gaveยฆ2aw:drewยฆ2ed:fedยฆ2y:flew,laid,paid,saidยฆ1ight:foughtยฆ1et:gotยฆ2ve:hadยฆ1ang:hungยฆ2ad:ledยฆ2ght:litยฆ2ke:madeยฆ2et:metยฆ1un:ranยฆ1ise:roseยฆ1it:satยฆ1eek:soughtยฆ1each:taughtยฆ1ake:woke,tookยฆ1eave:woveยฆ2ise:aroseยฆ1ear:bore,tore,woreยฆ1ind:bound,found,woundยฆ2eak:brokeยฆ2ing:brought,wrungยฆ1ome:cameยฆ2ive:droveยฆ1ig:dugยฆ1all:fellยฆ2el:feltยฆ4et:forgotยฆ1old:heldยฆ2ave:leftยฆ1ing:rang,sangยฆ1ide:rodeยฆ1ink:sankยฆ1ee:sawยฆ2ine:shoneยฆ4e:slidยฆ1ell:sold,toldยฆ4d:spentยฆ2in:spunยฆ1in:won"}),ni=ei(qo),ri=ei(Jo),ai=ei(Wo),oi=_o(ti),ii=_o(ni),si=_o(ri),li=_o(ai),ui=ei(Lo),ci=ei(Uo);var hi={fromPast:ti,fromPresent:ni,fromGerund:ri,fromParticiple:ai,toPast:oi,toPresent:ii,toGerund:si,toParticiple:li,toComparative:ui,toSuperlative:ci,fromComparative:_o(ui),fromSuperlative:_o(ci),adjToNoun:ei(Ro)},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","faction","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","politburo","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","subsidiary","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce(((e,t)=>(e[t]=!0,e)),{}),gi=["atoll","basin","bay","beach","bluff","bog","camp","canyon","canyons","cape","cave","caves","cliffs","coast","cove","coves","crater","crossing","creek","desert","dune","dunes","downs","estates","escarpment","estuary","falls","fjord","fjords","forest","forests","glacier","gorge","gorges","grove","gulf","gully","highland","heights","hollow","hill","hills","inlet","island","islands","isthmus","junction","knoll","lagoon","lake","lakeshore","marsh","marshes","mount","mountain","mountains","narrows","peninsula","plains","plateau","pond","rapids","ravine","reef","reefs","ridge","river","rivers","sandhill","shoal","shore","shoreline","shores","strait","straits","springs","stream","swamp","tombolo","trail","trails","trench","valley","vallies","village","volcano","waterfall","watershed","wetland","woods","acres","burough","county","district","municipality","prefecture","province","region","reservation","state","territory","borough","metropolis","downtown","uptown","midtown","city","town","township","hamlet","country","kingdom","enclave","neighbourhood","neighborhood","kingdom","ward","zone","airport","amphitheater","arch","arena","auditorium","bar","barn","basilica","battlefield","bridge","building","castle","centre","coliseum","cineplex","complex","dam","farm","field","fort","garden","gardens","gymnasium","hall","house","levee","library","manor","memorial","monument","museum","gallery","palace","pillar","pits","plantation","playhouse","quarry","sportsfield","sportsplex","stadium","terrace","terraces","theater","tower","park","parks","site","ranch","raceway","sportsplex","ave","st","street","rd","road","lane","landing","crescent","cr","way","tr","terrace","avenue"].reduce(((e,t)=>(e[t]=!0,e)),{}),mi=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..ase)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,""]];const 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(bi[t].forEach((n=>e[n]=t)),e)),{});const vi=function(e){let t=e.substring(e.length-3);if(!0===bi.hasOwnProperty(t))return bi[t];let n=e.substring(e.length-2);return!0===bi.hasOwnProperty(n)?bi[n]:"s"===e.substring(e.length-1)?"PresentTense":null},yi={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"},wi=function(e,t,n){const{fromPast:r,fromPresent:a,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",r={};t.one&&t.one.prefixes&&(r=t.one.prefixes);let[a,o]=e.split(/ /);return o&&!0===r[a]&&(n=a,a=o,o=""),{prefix:n,verb:a,particle:o}}(e,t),c="";if(n||(n=vi(e)),yi.hasOwnProperty(e))c=yi[e];else if("Participle"===n)c=Qo(l,i);else if("PastTense"===n)c=Qo(l,r);else if("PresentTense"===n)c=Qo(l,a);else{if("Gerund"!==n)return e;c=Qo(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c},ki=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:i,PastTense:Qo(i,n),PresentTense:Qo(i,r),Gerund:Qo(i,a),FutureTense:"will "+i},u=Qo(i,o);if(u!==e&&u!==l.PastTense){let n=t.one.lexicon||{};"Participle"!==n[u]&&"Adjective"!==n[u]||("play"===e&&(u="played"),l.Participle=u)}return s&&Object.keys(l).forEach((e=>{l[e]+=" "+s})),l};var Pi={toInfinitive:wi,conjugate:ki,all:function(e,t){let n=ki(e,t);return delete n.FutureTense,Object.values(n).filter((e=>e))}};const Ai=function(e,t){const n=t.two.models.toSuperlative;return Qo(e,n)},Ci=function(e,t){const n=t.two.models.toComparative;return Qo(e,n)},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},ji="ically",xi=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]),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"}],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"]),Di={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"quick",superbly:"superb",cynically:"cynical",well:"good"},Hi=[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"},Gi=function(e){if(Ei.hasOwnProperty(e))return Ei[e];let t=Ni(e,Hi);return t||(t=e+"ly"),t};var Oi={toSuperlative:Ai,toComparative:Ci,toAdverb:Gi,toNoun:function(e,t){const n=t.two.models.adjToNoun;return Qo(e,n)},fromAdverb:function(e){return e.endsWith("ly")?xi.has(e)?e.replace(/ically/,"ical"):Ti.has(e)?null:Di.hasOwnProperty(e)?Di[e]:Ni(e,Ii)||e:null},fromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return Qo(e,n)},fromComparative:function(e,t){const n=t.two.models.fromComparative;return Qo(e,n)},all:function(e,t){let n=[e];return n.push(Ai(e,t)),n.push(Ci(e,t)),n.push(Gi(e)),n=n.filter((e=>e)),n=new Set(n),Array.from(n)}},Fi={noun:fi,verb:Pi,adjective:Oi},Vi={Singular:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.noun.toPlural(e,r);a[o]||(t[o]=t[o]||"Plural")},Actor:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.noun.toPlural(e,r);a[o]||(t[o]=t[o]||["Plural","Actor"])},Comparable:(e,t,n,r)=>{let a=r.one.lexicon,{toSuperlative:o,toComparative:i}=n.two.transform.adjective,s=o(e,r);a[s]||(t[s]=t[s]||"Superlative");let l=i(e,r);a[l]||(t[l]=t[l]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,r)=>{let a=n.two.transform.noun.toPlural(e,r);t[a]=t[a]||["Demonym","Plural"]},Infinitive:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.verb.conjugate(e,r);Object.entries(o).forEach((e=>{a[e[1]]||t[e[1]]||"FutureTense"===e[0]||(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.verb.conjugate(i,r);delete l.FutureTense,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]]=2;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"]},Place:(e,t)=>{t[e]=["Place","ProperNoun"]},Region:(e,t)=>{t[e]=["Region","ProperNoun"]}};const zi={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"],t:["feet"]},Bi=new Set(["israelis","menus","logos"]),Si=["bus","mas","was","ias","xas","vas","cis","lis","nis","ois","ris","sis","tis","xis","aus","cus","eus","fus","gus","ius","lus","nus","das","ous","pus","rus","sus","tus","xus","aos","igos","ados","ogos","'s","ss"],$i=function(e){if(!e||e.length<=3)return!1;if(Bi.has(e))return!0;let t=e[e.length-1];return zi.hasOwnProperty(t)?zi[t].find((t=>e.endsWith(t))):"s"===t&&!Si.find((t=>e.endsWith(t)))};var Mi={two:{quickSplit:function(e){const t=/[,:;]/;let n=[];return e.forEach((e=>{let r=0;e.forEach(((a,o)=>{t.test(a.post)&&function(e,t){const n=/^[0-9]+$/;let r=e[t];if(!r)return!1;const a=new Set(["may","april","august","jan"]);if("like"===r.normal||a.has(r.normal))return!1;if(r.tags.has("Place")||r.tags.has("Date"))return!1;if(e[t-1]){let n=e[t-1];if(n.tags.has("Date")||a.has(n.normal))return!1;if(n.tags.has("Adjective")||r.tags.has("Adjective"))return!1}let o=r.normal;return 1!==o.length&&2!==o.length&&4!==o.length||!n.test(o)}(e,o+1)&&(n.push(e.slice(r,o+1)),r=o+1)})),r{let i=e[t],s=(t=(t=t.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);s.length>1&&(void 0===o[s[0]]||s.length>o[s[0]])&&(o[s[0]]=s.length),!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:Fi,looksPlural:$i}};let Ki={one:{lexicon:{}},two:{models:hi}};const Li={"Actor|Verb":"Actor","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":"FirstName","Person|Place":"Person","Person|Adj":"Comparative","Plural|Verb":"Plural","Unit|Noun":"Noun"},Ji=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},Wi=function(e,t,n){let r=ki(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")},qi=function(e,t,n){let r=Ai(e,n);t[r]=t[r]||"Superlative";let a=Ci(e,n);t[a]=t[a]||"Comparative"},Ui=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach((a=>{const o=e[a];if(n[a]=Li[o],"Noun|Verb"!==o&&"Person|Verb"!==o&&"Actor|Verb"!==o||Wi(a,r,!1),"Adj|Present"===o&&(Wi(a,r,!0),qi(a,r,t)),"Person|Adj"===o&&qi(a,r,t),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=wi(a,Ki,"Gerund");r[e]||(n[e]="Infinitive")}if("Noun|Gerund"!==o&&"Adj|Noun"!==o&&"Person|Noun"!==o||function(e,t,n){let r=ya(e,n);t[r]=t[r]||"Plural"}(a,r,t),"Adj|Past"===o){let e=wi(a,Ki,"PastTense");r[e]||(n[e]="Infinitive")}})),t=Ji(n,t)};let Ri={one:{_multiCache:{},lexicon:ka,frozenLex:{"20th century fox":"Organization","7 eleven":"Organization","motel 6":"Organization","excuse me":"Expression","financial times":"Organization","guns n roses":"Organization","la z boy":"Organization","labour party":"Organization","new kids on the block":"Organization","new york times":"Organization","the guess who":"Organization","thin lizzy":"Organization","prime minister":"Actor","free market":"Singular","lay up":"Singular","living room":"Singular","living rooms":"Plural","spin off":"Singular","appeal court":"Uncountable","cold war":"Uncountable","gene pool":"Uncountable","machine learning":"Uncountable","nail polish":"Uncountable","time off":"Uncountable","take part":"Infinitive","bill gates":"Person","doctor who":"Person","dr who":"Person","he man":"Person","iron man":"Person","kid cudi":"Person","run dmc":"Person","rush limbaugh":"Person","snow white":"Person","tiger woods":"Person","brand new":"Adjective","en route":"Adjective","left wing":"Adjective","off guard":"Adjective","on board":"Adjective","part time":"Adjective","right wing":"Adjective","so called":"Adjective","spot on":"Adjective","straight forward":"Adjective","super duper":"Adjective","tip top":"Adjective","top notch":"Adjective","up to date":"Adjective","win win":"Adjective","brooklyn nets":"SportsTeam","chicago bears":"SportsTeam","houston astros":"SportsTeam","houston dynamo":"SportsTeam","houston rockets":"SportsTeam","houston texans":"SportsTeam","minnesota twins":"SportsTeam","orlando magic":"SportsTeam","san antonio spurs":"SportsTeam","san diego chargers":"SportsTeam","san diego padres":"SportsTeam","iron maiden":"ProperNoun","isle of man":"Country","united states":"Country","united states of america":"Country","prince edward island":"Region","cedar breaks":"Place","cedar falls":"Place","point blank":"Adverb","tiny bit":"Adverb","by the time":"Conjunction","no matter":"Conjunction","civil wars":"Plural","credit cards":"Plural","default rates":"Plural","free markets":"Plural","head starts":"Plural","home runs":"Plural","lay ups":"Plural","phone calls":"Plural","press releases":"Plural","record labels":"Plural","soft serves":"Plural","student loans":"Plural","tax returns":"Plural","tv shows":"Plural","video games":"Plural","took part":"PastTense","takes part":"PresentTense","taking part":"Gerund","taken part":"Participle","light bulb":"Noun","rush hour":"Noun","fluid ounce":"Unit","the rolling stones":"Organization"}},two:{irregularPlurals:la,models:hi,suffixPatterns:Ao,prefixPatterns:xo,endsWith:So,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'[a-z]{3}/,"LastName","mc'neil"],[/^o'[a-z]{3}/,"LastName","o'connor"],[/^ma?cd[aeiou][a-z]{3}/,"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"],[/[^:/]\/\p{Letter}/u,"SlashedTerm","love/hate"]],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]{4}|[0-9]{2})$/,"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})$/,"NumericValue","9km"]],switches:Pa,clues:io,uncountable:{},orgWords:di,placeWords:gi}};Ri=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=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}(e=Ui(e.two.switches,e)),e}(Ri);const Qi=function(e,t,n,r){const a=r.methods.one.setTag;"-"===e[t].post&&e[t+1]&&a([e[t],e[t+1]],"Hyphenated",r,null,"1-punct-hyphen''")},Zi=/^(under|over|mis|re|un|dis|semi)-?/,_i=function(e,t,n){const r=n.two.switches;let a=e[t];if(r.hasOwnProperty(a.normal))a.switch=r[a.normal];else if(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;if(!0===e.frozen)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)))},Yi=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific","Month"],es=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t)))||($i(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=vi(e.normal);t&&Xi(e,t,"3-verb-tense-guess")}}(r)},ts=/^\p{Lu}[\p{Ll}'โ€™]/u,ns=/[0-9]/,rs=["Date","Month","WeekDay","Unit","Expression"],as=/[IVX]/,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},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===ts.test(o)&&!1===ns.test(o)?rs.find((e=>r.tags.has(e)))||r.pre.match(/["']$/)||"the"===r.normal?null:(es(e,t,n),r.tags.has("Noun")||r.frozen||r.tags.clear(),Xi(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&os.test(o)&&as.test(o)&&is.test(o)&&!ss[r.normal]?(Xi(r,"RomanNumeral","2-xvii"),!0):null},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},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 Xi(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=us(r.implicit,n.two.suffixPatterns),null!==e))return Xi(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null},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 Xi(r,e,"2-prefix"),r.confidence=.5,!0}return null},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)))},vs=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))},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 Xi(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(bs(a)||bs(o))return Xi(n,"Year","2-tagYear-close");if(vs(e[t-2])||vs(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},ws=function(e,t,n,r){const a=r.methods.one.setTag,o=e[t],i=["PastTense","PresentTense","Auxiliary","Modal","Particle"];if(o.tags.has("Verb")){i.find((e=>o.tags.has(e)))||a([o],"Infinitive",r,null,"2-verb-type''")}},ks=/^[A-Z]('s|,)?$/,Ps=/^[A-Z-]+$/,As=/^[A-Z]+s$/,Cs=/([A-Z]\.)+[A-Z]?,?$/,Ns=/[A-Z]{2,}('s|,)?$/,js=/([a-z]\.)+[a-z]\.?$/,xs={I:!0,A:!0},Is={la:!0,ny:!0,us:!0,dc:!0,gb:!0},Ts=function(e,t,n){let r=e[t];return r.tags.has("RomanNumeral")||r.tags.has("Acronym")||r.frozen?null:function(e,t){let n=e.text;if(!1===Ps.test(n)){if(!(n.length>3&&!0===As.test(n)))return!1;n=n.replace(/s$/,"")}return!(n.length>5||xs.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Cs.test(n)&&!0!==js.test(n)&&!0!==ks.test(n)&&!0!==Ns.test(n))}(r,n)?(r.tags.clear(),Xi(r,["Acronym","Noun"],"3-no-period-acronym"),!0===Is[r.normal]&&Xi(r,"Place","3-place-acronym"),!0===As.test(r.text)&&Xi(r,"Plural","3-plural-acronym"),!0):!xs.hasOwnProperty(r.text)&&ks.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")&&Ps.test(r.text)&&r.text.length<=6?(Xi(r,"Acronym","3-titlecase-acronym"),!0):null},Ds=function(e,t){if(!e)return null;let n=t.find((t=>e.normal===t[0]));return n?n[1]:null},Hs=function(e,t){if(!e)return null;let n=t.find((t=>e.tags.has(t[0])));return n?n[1]:null},Es=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||Hs(e[t-1],r),l=l||Hs(e[t+1],i),l)return Xi(s,l,"3-[neighbour]"),es(e,t,n),e[t].confidence=.2,!0}return null},Gs=function(e,t,n){return!!e&&(!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||!(n||(r=e.text,!/^\p{Lu}[\p{Ll}'โ€™]/u.test(r)))&&(0!==t||e.tags.has("Singular"))));var r},Os=function(e,t,n,r){const a=n.model.two.orgWords,o=n.methods.one.setTag;let i=e[t];if(!0===a[i.machine||i.normal]&&Gs(e[t-1],t-1,r)){o([e[t]],"Organization",n,null,"3-[org-word]");for(let a=t;a>=0&&Gs(e[a],a,r);a-=1)o([e[a]],"Organization",n,null,"3-[org-word]")}return null},Fs=/'s$/,Vs=new Set(["athletic","city","community","eastern","federal","financial","great","historic","historical","local","memorial","municipal","national","northern","provincial","southern","state","western","spring","pine","sunset","view","oak","maple","spruce","cedar","willow"]),zs=new Set(["center","centre","way","range","bar","bridge","field","pit"]),Bs=function(e,t,n){if(!e)return!1;let r=e.tags;return!(r.has("Organization")||r.has("Possessive")||Fs.test(e.normal))&&(!(!r.has("ProperNoun")&&!r.has("Place"))||!(n||(a=e.text,!/^\p{Lu}[\p{Ll}'โ€™]/u.test(a)))&&(0!==t||r.has("Singular")));var a},Ss=function(e,t,n,r){const a=n.model.two.placeWords,o=n.methods.one.setTag;let i=e[t],s=i.machine||i.normal;if(!0===a[s]){for(let a=t-1;a>=0;a-=1)if(!Vs.has(e[a].normal)){if(!Bs(e[a],a,r))break;o(e.slice(a,t+1),"Place",n,null,"3-[place-of-foo]")}if(zs.has(s))return!1;for(let a=t+1;ae[t].tags.has("ProperNoun")&&Ms.test(e[t].text)?"Noun":null,Ls=(e,t,n)=>0!==t||e[1]?null:n,Js={"Adj|Gerund":(e,t)=>Ks(e,t),"Adj|Noun":(e,t)=>Ks(e,t)||function(e,t){return!e[t+1]&&e[t-1]&&e[t-1].tags.has("Determiner")?"Noun":null}(e,t),"Actor|Verb":(e,t)=>Ks(e,t),"Adj|Past":(e,t)=>Ks(e,t),"Adj|Present":(e,t)=>Ks(e,t),"Noun|Gerund":(e,t)=>Ks(e,t),"Noun|Verb":(e,t)=>t>0&&Ks(e,t)||Ls(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Ks(e,t)||Ls(e,t,"PresentTense")||function(e,t,n){return 0===t&&e.length>3?n:null}(e,t,"Plural"),"Person|Noun":(e,t)=>Ks(e,t),"Person|Verb":(e,t)=>0!==t?Ks(e,t):null,"Person|Adj":(e,t)=>0===t&&e.length>1||Ks(e,t)?"Person":null},Ws="undefined"!=typeof process&&process.env?process.env:self.env||{},qs=/^(under|over|mis|re|un|dis|semi)-?/,Us=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit,r=null;return t.hasOwnProperty(n)&&(r=t[n]),r&&Ws.DEBUG_TAGS&&console.log(`\n  โ†“ - '${n}' `),r},Rs=(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)),a=r.find((e=>t[e]));return a&&Ws.DEBUG_TAGS&&console.log(`  โ†“ - '${e.normal||e.implicit}' (#${a}) `),a=t[a],a},Qs=function(e,t,n){const r=n.model,a=n.methods.one.setTag,{switches:o,clues:i}=r.two,s=e[t];let l=s.normal||s.implicit||"";if(qs.test(l)&&!o[l]&&(l=l.replace(qs,"")),s.switch){let o=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let u=function(e,t,n,r){if(!n)return null;const a="also"!==e[t-1]?.text?t-1:Math.max(0,t-2),o=r.one.tagSet;let i=Us(e[t+1],n.afterWords);return i=i||Us(e[a],n.beforeWords),i=i||Rs(e[a],n.beforeTags,o),i=i||Rs(e[t+1],n.afterTags,o),i}(e,t,i[o],r);Js[o]&&(u=Js[o](e,t)||u),u?(a([s],u,n,null,`3-[switch] (${o})`),es(e,t,r)):Ws.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}},Zs={there:!0,this:!0,it:!0,him:!0,her:!0,us:!0},_s=function(e){if(e.filter((e=>!e.tags.has("ProperNoun"))).length<=3)return!1;const t=/^[a-z]/;return e.every((e=>!t.test(e.text)))},Xs=function(e,t,n,r){for(let a=0;a=2){if(e.length<4&&!Zs[e[1].normal])return;if(!a.tags.has("PhrasalVerb")&&r.hasOwnProperty(a.normal))return;(e[1].tags.has("Noun")||e[1].tags.has("Determiner"))&&(e.slice(1,3).some((e=>e.tags.has("Verb")))&&!a.tags.has("#PhrasalVerb")||n([a],"Imperative",t,null,"3-[imperative]"))}}(e,n)},el={Possessive:e=>{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.noun.toSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(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.verb.toInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromSuperlative(n,t.model)},Adverb:(e,t)=>{const{fromAdverb:n}=t.methods.two.transform.adjective;return n(e.machine||e.normal||e.text)}},tl={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:"NN",Plural:"NNS",Noun:"NN",There:"EX"};var nl={preTagger:function(e){const{methods:t,model:n,world:r}=e;let a=e.docs;!function(e,t,n){e.forEach((e=>{!function(e,t,n,r){const a=r.methods.one.setTag;if(e.length>=3){const t=/:/;if(e[0].post.match(t)){let t=e[1];if(t.tags.has("Value")||t.tags.has("Email")||t.tags.has("PhoneNumber"))return;a([e[0]],"Expression",r,null,"2-punct-colon''")}}}(e,0,0,n)}))}(a,0,r);let o=t.two.quickSplit(a);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))),n[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))},gl=/'/,ml=new Set(["been","become"]),pl=new Set(["what","how","when","if","too"]);let fl=new Set(["too","also","enough"]);const bl=function(e,t){let n=e[t].normal.split(gl)[0];if("let"===n)return[n,"us"];if("there"===n){let r=e[t+1];if(r&&r.tags.has("Plural"))return[n,"are"]}return"has"===((e,t)=>{for(let n=t+1;n{for(let n=t+1;n0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]],a.compute(["freeze","lexicon","preTagger","unfreeze"]),function(e){e.forEach(((e,t)=>{e.index&&(e.index[1]=t)}))}(e)},Il={d:(e,t)=>kl(e,t),t:(e,t)=>function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){if(e[t+1]&&"never"===e[t+1].normal)return["have"];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("i"===n.normal)return["am","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]}(e,t),s:(e,t,n)=>((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("QuestionWord"))return!1;if("he's"===n.normal||"she's"===n.normal)return!1;let r=e[t+1];if(!r)return!0;if("it's"===n.normal)return!!r.tags.has("#Noun");if("Noun|Gerund"==r.switch){let r=e[t+2];return r?!!r.tags.has("Copula")||("on"===r.normal||r.normal,!1):!(!n.tags.has("Actor")&&!n.tags.has("ProperNoun"))}if(r.tags.has("Verb"))return!!r.tags.has("Infinitive")||!r.tags.has("Gerund")&&!!r.tags.has("PresentTense");if("Adj|Noun"===r.switch){let n=e[t+2];if(!n)return!1;if(Nl.has(n.normal))return!0;if(Cl.has(n.normal))return!1}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;if(r.tags.has("Adjective")){let n=e[t+2];if(!n)return!1;if(n.tags.has("Noun")&&!n.tags.has("Pronoun")){let e=r.normal;return"above"!==e&&"below"!==e&&"behind"!==e}return"Noun|Verb"===n.switch}return!!r.tags.has("Value")})(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,null,"2-contraction"):bl(e,t)},Tl=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var Dl={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)continue;let i=null;!0===jl.test(r[o].normal)&&(i=r[o].normal.split(jl)[1]);let s=null;Il.hasOwnProperty(i)&&(s=Il[i](r,o,t)),s&&(s=Tl(s,e),dl(n,[a,o],s),xl(n[a],e,o,s.length))}}))}},Hl={compute:Dl,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=cl},hooks:["contractionTwo"]};const El="(hard|fast|late|early|high|right|deep|close|direct)";const Gl="(i|we|they)";let Ol=[].concat([{match:"(got|were|was|is|are|am) (#PastTense|#Participle)",tag:"Passive",reason:"got-walked"},{match:"(was|were|is|are|am) being (#PastTense|#Participle)",tag:"Passive",reason:"was-being"},{match:"(had|have|has) been (#PastTense|#Participle)",tag:"Passive",reason:"had-been"},{match:"will be being? (#PastTense|#Participle)",tag:"Passive",reason:"will-be-cleaned"},{match:"#Noun [(#PastTense|#Participle)] by (the|a) #Noun",group:0,tag:"Passive",reason:"suffered-by"}],[{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,notIf:"(all|even)",tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"[#Hyphenated (#Hyphenated && #PastTense)] (#Noun|#Conjunction)",group:0,tag:"Adjective",notIf:"#Adverb",reason:"faith-based"},{match:"[#Hyphenated (#Hyphenated && #Gerund)] (#Noun|#Conjunction)",group:0,tag:"Adjective",notIf:"#Adverb",reason:"self-driving"},{match:"[#PastTense (#Hyphenated && #PhrasalVerb)] (#Noun|#Conjunction)",group:0,tag:"Adjective",reason:"dammed-up"},{match:"(#Hyphenated && #Value) fold",tag:"Adjective",reason:"two-fold"},{match:"must (#Hyphenated && #Infinitive)",tag:"Adjective",reason:"must-win"},{match:"(#Hyphenated && #Infinitive) #Hyphenated",tag:"Adjective",notIf:"#PhrasalVerb",reason:"vacuum-sealed"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"},{match:"[(un|contra|extra|inter|intra|macro|micro|mid|mis|mono|multi|pre|sub|tri|ex)] #Adjective",group:0,tag:["Adjective","Prefix"],reason:"un-skilled"}],[{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:"#Copula [far too] #Adjective",group:0,tag:"Adverb",reason:"far-too"},{match:"#Copula [still] (in|#Gerund|#Adjective)",group:0,tag:"Adverb",reason:"was-still-walking"},{match:`#Plural ${El}`,tag:"#PresentTense #Adverb",reason:"studies-hard"},{match:`#Verb [${El}] !#Noun?`,group:0,notIf:"(#Copula|get|got|getting|become|became|becoming|feel|feels|feeling|#Determiner|#Preposition)",tag:"Adverb",reason:"shops-direct"},{match:"[#Plural] a lot",tag:"PresentTense",reason:"studies-a-lot"}],[{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:"#Gerund [#Gerund]",group:0,tag:"Adjective",notIf:"(impersonating|practicing|considering|assuming)",reason:"looking-annoying"},{match:"(looked|look|looks) #Adverb? [%Adj|Gerund%]",group:0,tag:"Adjective",notIf:"(impersonating|practicing|considering|assuming)",reason:"looked-amazing"},{match:"[%Adj|Gerund%] #Determiner",group:0,tag:"Gerund",reason:"developing-a"},{match:"#Possessive [%Adj|Gerund%] #Noun",group:0,tag:"Adjective",reason:"leading-manufacturer"},{match:"%Noun|Gerund% %Adj|Gerund%",tag:"Gerund #Adjective",reason:"meaning-alluring"},{match:"(face|embrace|reveal|stop|start|resume) %Adj|Gerund%",tag:"#PresentTense #Adjective",reason:"face-shocking"},{match:"(are|were) [%Adj|Gerund%] #Plural",group:0,tag:"Adjective",reason:"are-enduring-symbols"}],[{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",notIf:"#Hyphenated",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:"no [#Adjective] #Modal",group:0,tag:"Noun",reason:"no-golden"},{match:"[brand #Gerund?] new",group:0,tag:"Adverb",reason:"brand-new"},{match:"(#Determiner|#Comparative|new|different) [kind]",group:0,tag:"Noun",reason:"some-kind"},{match:"#Possessive [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"her-favourite"},{match:"must && #Hyphenated .",tag:"Adjective",reason:"must-win"},{match:"#Determiner [#Adjective]$",tag:"Noun",notIf:"(this|that|#Comparative|#Superlative)",reason:"the-south"},{match:"(#Noun && #Hyphenated) (#Adjective && #Hyphenated)",tag:"Adjective",notIf:"(this|that|#Comparative|#Superlative)",reason:"company-wide"},{match:"#Determiner [#Adjective] (#Copula|#Determiner)",notIf:"(#Comparative|#Superlative)",group:0,tag:"Noun",reason:"the-poor"},{match:"[%Adj|Noun%] #Noun",notIf:"(#Pronoun|#ProperNoun)",group:0,tag:"Adjective",reason:"stable-foundations"}],[{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,notIf:"(#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] #Comparative",group:0,tag:"Adverb",reason:"even-worse"},{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|bright|slow|fast|backwards|forwards)]",notIf:"#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",notIf:"(getting|becoming|feeling)",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",notIf:"(#PhrasalVerb|#Copula)",reason:"charge-back"},{match:"#Verb [around]",group:0,tag:"Adverb",notIf:"#PhrasalVerb",reason:"send-around"},{match:"[later] #PresentTense",group:0,tag:"Adverb",reason:"later-say"},{match:"#Determiner [well] !#PastTense?",group:0,tag:"Noun",reason:"the-well"},{match:"#Adjective [enough]",group:0,tag:"Adverb",reason:"high-enough"}],[{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) !#Infinitive?",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:"#Value (am|pm)",tag:"Time",reason:"2-am"}],[{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:"(the|any) [more]",group:0,tag:"Singular",reason:"more-noun"},{match:"[more] #Noun",group:0,tag:"Adjective",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Singular",reason:"bit-2"},{match:"a [must]",group:0,tag:"Singular",reason:"must-2"},{match:"(we|us) [all]",group:0,tag:"Noun",reason:"we all"},{match:"due to [#Verb]",group:0,tag:"Noun",reason:"due-to"},{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",notIf:"#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:"(a|an|the) [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",notIf:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,notIf:"#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? [#PresentTense #Particle?]",group:0,tag:"Noun",notIf:"(seem|appear|include|#Gerund|#Copula)",reason:"det-inf"},{match:"#Noun #Actor",tag:"Actor",notIf:"(#Person|#Pronoun)",reason:"thing-doer"},{match:"#Gerund #Actor",tag:"Actor",reason:"gerund-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"[#Noun+] #Actor",group:0,tag:"Actor",notIf:"(#Honorific|#Pronoun|#Possessive)",reason:"air-traffic-controller"},{match:"(urban|cardiac|cardiovascular|respiratory|medical|clinical|visual|graphic|creative|dental|exotic|fine|certified|registered|technical|virtual|professional|amateur|junior|senior|special|pharmaceutical|theoretical)+ #Noun? #Actor",tag:"Actor",reason:"fine-artist"},{match:"#Noun+ (coach|chef|king|engineer|fellow|personality|boy|girl|man|woman|master)",tag:"Actor",reason:"dance-coach"},{match:"chief . officer",tag:"Actor",reason:"chief-x-officer"},{match:"chief of #Noun+",tag:"Actor",reason:"chief-of-police"},{match:"senior? vice? president of #Noun+",tag:"Actor",reason:"president-of"},{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:"#Possessive #PresentTense #Particle?",notIf:"(#Gerund|her)",tag:"Noun",reason:"possessive-verb"},{match:"(my|our|their|her|his|its) [(#Plural && #Actor)] #Noun",tag:"Possessive",reason:"my-dads"},{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 [#Verb] and #Noun",group:0,tag:"Noun",reason:"peace-and-flowers"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"},{match:"#Copula the [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"the-premier-university"},{match:"i #Verb [me] #Noun",group:0,tag:"Possessive",reason:"scottish-me"},{match:"[#PresentTense] (music|class|lesson|night|party|festival|league|ceremony)",group:0,tag:"Noun",reason:"dance-music"},{match:"[wit] (me|it)",group:0,tag:"Presposition",reason:"wit-me"},{match:"#PastTense #Possessive [#Verb]",group:0,tag:"Noun",notIf:"(saw|made)",reason:"left-her-boots"},{match:"#Value [%Plural|Verb%]",group:0,tag:"Plural",notIf:"(one|1|a|an)",reason:"35-signs"},{match:"had [#PresentTense]",group:0,tag:"Noun",notIf:"(#Gerund|come|become)",reason:"had-time"},{match:"%Adj|Noun% %Noun|Verb%",tag:"#Adjective #Noun",notIf:"#ProperNoun #Noun",reason:"instant-access"},{match:"#Determiner [%Adj|Noun%] #Conjunction",group:0,tag:"Noun",reason:"a-rep-to"},{match:"#Adjective #Noun [%Plural|Verb%]$",group:0,tag:"Plural",notIf:"#Pronoun",reason:"near-death-experiences"},{match:"#Possessive #Noun [%Plural|Verb%]$",group:0,tag:"Plural",reason:"your-guild-colors"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,ifNo:"#Copula",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",notIf:"(still|even|just)",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"#Copula [(#Gerund|#Activity)] #Copula",group:0,tag:"Gerund",reason:"are-doing-is"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"},{match:"#Singular for [%Noun|Gerund%]",group:0,tag:"Gerund",reason:"noun-for-gerund"},{match:"#Comparative (for|at) [%Noun|Gerund%]",group:0,tag:"Gerund",reason:"better-for-gerund"},{match:"#PresentTense the [#Gerund]",group:0,tag:"Noun",reason:"keep-the-touching"}],[{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 (only|further|just|more|backward) [#Infinitive]",group:0,tag:"Noun",reason:"the-only-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{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,notIf:"from",tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"#Plural 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 #Particle?]",notIf:"(#Copula|#Noun|sure|fun|up)",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",notIf:"#Pronoun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"this [#Plural]",group:0,tag:"PresentTense",notIf:"(#Preposition|#Date)",reason:"this-verbs"},{match:"#Noun that [#Plural]",group:0,tag:"PresentTense",notIf:"(#Preposition|#Pronoun|way)",reason:"voice-that-rocks"},{match:"that [#Plural] to",group:0,tag:"PresentTense",notIf:"#Preposition",reason:"that-leads-to"},{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]",notIf:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",notIf:"better",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",notIf:"(#Copula|better)",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"many-poses"},{match:"#Determiner #Adverb #Adjective [%Noun|Verb%]",group:0,tag:"Noun",notIf:"#Copula",reason:"very-big-dream"},{match:"from #Noun to [%Noun|Verb%]",group:0,tag:"Noun",reason:"start-to-finish"},{match:"(for|with|of) #Noun (and|or|not) [%Noun|Verb%]",group:0,tag:"Noun",notIf:"#Pronoun",reason:"for-food-and-gas"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",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) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #Particle #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] of",group:0,notIf:"(one|1|#Copula|#Infinitive)",tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",notIf:"#Copula",reason:"our-full-support"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",notIf:"going",reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"},{match:"how to [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"how-to-noun"},{match:"which [%Noun|Verb%] #Noun",group:0,tag:"Infinitive",reason:"which-boost-it"},{match:"#Gerund [%Plural|Verb%]",group:0,tag:"Plural",reason:"asking-questions"},{match:"(ready|available|difficult|hard|easy|made|attempt|try) to [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"ready-to-noun"},{match:"(bring|went|go|drive|run|bike) to [%Noun|Verb%]",group:0,tag:"Noun",reason:"bring-to-noun"},{match:"#Modal #Noun [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"would-you-look"},{match:"#Copula just [#Infinitive]",group:0,tag:"Noun",reason:"is-just-spam"},{match:"^%Noun|Verb% %Plural|Verb%",tag:"Imperative #Plural",reason:"request-copies"},{match:"#Adjective #Plural and [%Plural|Verb%]",group:0,tag:"#Plural",reason:"pickles-and-drinks"},{match:"#Determiner #Year [#Verb]",group:0,tag:"Noun",reason:"the-1968-film"},{match:"#Determiner [#PhrasalVerb #Particle]",group:0,tag:"Noun",reason:"the-break-up"},{match:"#Determiner [%Adj|Noun%] #Noun",group:0,tag:"Adjective",notIf:"(#Pronoun|#Possessive|#ProperNoun)",reason:"the-individual-goals"},{match:"[%Noun|Verb%] or #Infinitive",group:0,tag:"Infinitive",reason:"work-or-prepare"},{match:"to #Infinitive [#PresentTense]",group:0,tag:"Noun",notIf:"(#Gerund|#Copula|help)",reason:"to-give-thanks"},{match:"[#Noun] me",group:0,tag:"Verb",reason:"kills-me"},{match:"%Plural|Verb% %Plural|Verb%",tag:"#PresentTense #Plural",reason:"removes-wrinkles"}],[{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:"a pound",tag:"#Money #Unit",reason:"a-pound"},{match:"#Value (pound|pounds)",tag:"#Money #Unit",reason:"4-pounds"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"},{match:"#Value #Unit [(per|an) (hr|hour|sec|second|min|minute)]",group:0,tag:"Unit",reason:"12-miles-per-second"},{match:"#Value [(square|cubic)] #Unit",group:0,tag:"Unit",reason:"square-miles"}],[{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(sister|pope|brother|father|aunt|uncle|grandpa|grandfather|grandma) #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",notIf:"#Place",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",notIf:"#Place",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",notIf:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",notIf:"#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:"[(lieutenant|corporal|sergeant|captain|qeen|king|admiral|major|colonel|marshal|president|queen|king)+] #ProperNoun",group:0,tag:"Honorific",reason:"seargeant-john"},{match:"[(private|general|major|rear|prime|field|count|miss)] #Honorific? #Person",group:0,tag:["Honorific","Person"],reason:"ambg-honorifics"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",notIf:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:"Honorific",reason:"his-excellency"},{match:"#Honorific #Actor",tag:"Honorific",reason:"Lieutenant colonel"},{match:"(first|second|third|1st|2nd|3rd) #Actor",tag:"Honorific",reason:"first lady"},{match:"#Person #RomanNumeral",tag:"Person",reason:"louis-IV"}],[{match:"#FirstName #Noun$",tag:". #LastName",notIf:"(#Possessive|#Organization|#Place|#Pronoun|@hasTitleCase)",reason:"firstname-noun"},{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",ifNo:"#Actor"},{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:"#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:"(#FirstName && !#Possessive) [#Singular] #Verb",group:0,safe:!0,tag:"LastName",reason:"jack-layton"},{match:"^[#Singular] #Person #Verb",group:0,safe:!0,tag:"Person",reason:"sherwood-anderson"},{match:"(a|an) [#Person]$",group:0,unTag:"Person",reason:"a-warhol"}],[{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",notIf:"(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:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(have|had) read",tag:"Modal #PastTense",reason:"read-read"},{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:"as #Pronoun [please]",group:0,tag:"Infinitive",reason:"as-we-please"},{match:"[(co|mis|de|inter|intra|pre|re|un|out|under|over|counter)] #Verb",group:0,tag:["Verb","Prefix"],notIf:"(#Copula|#PhrasalVerb)",reason:"co-write"},{match:"#PastTense and [%Adj|Past%]",group:0,tag:"PastTense",reason:"dressed-and-left"},{match:"[%Adj|Past%] and #PastTense",group:0,tag:"PastTense",reason:"dressed-and-left"},{match:"#Copula #Pronoun [%Adj|Past%]",group:0,tag:"Adjective",reason:"is-he-stoked"},{match:"to [%Noun|Verb%] #Preposition",group:0,tag:"Infinitive",reason:"to-dream-of"}],[{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:"#Copula [#Adjective] (well|badly|quickly|slowly)",group:0,tag:"Verb",reason:"done-well"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"},{match:"(seem|feel|seemed|felt) [#PastTense #Particle?]",group:0,tag:"Adjective",reason:"seem-confused"},{match:"a (bit|little|tad) [#PastTense #Particle?]",group:0,tag:"Adjective",reason:"a-bit-confused"},{match:"not be [%Adj|Past% #Particle?]",group:0,tag:"Adjective",reason:"do-not-be-confused"},{match:"#Copula just [%Adj|Past% #Particle?]",group:0,tag:"Adjective",reason:"is-just-right"},{match:"as [#Infinitive] as",group:0,tag:"Adjective",reason:"as-pale-as"},{match:"[%Adj|Past%] and #Adjective",group:0,tag:"Adjective",reason:"faled-and-oppressive"},{match:"or [#PastTense] #Noun",group:0,tag:"Adjective",notIf:"(#Copula|#Pronoun)",reason:"or-heightened-emotion"},{match:"(become|became|becoming|becomes) [#Verb]",group:0,tag:"Adjective",reason:"become-verb"},{match:"#Possessive [#PastTense] #Noun",group:0,tag:"Adjective",reason:"declared-intentions"},{match:"#Copula #Pronoun [%Adj|Present%]",group:0,tag:"Adjective",reason:"is-he-cool"},{match:"#Copula [%Adj|Past%] with",group:0,tag:"Adjective",notIf:"(associated|worn|baked|aged|armed|bound|fried|loaded|mixed|packed|pumped|filled|sealed)",reason:"is-crowded-with"},{match:"#Copula #Adverb? [%Adj|Present%]$",group:0,tag:"Adjective",reason:"was-empty$"}],[{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:"[(#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:"[(been|had|became|came)] #PastTense",group:0,notIf:"#PhrasalVerb",tag:"Auxiliary",reason:"been-told"},{match:"[(being|having|getting)] #Verb",group:0,tag:"Auxiliary",reason:"being-born"},{match:"[be] #Gerund",group:0,tag:"Auxiliary",reason:"be-walking"},{match:"[better] #PresentTense",group:0,tag:"Modal",notIf:"(#Copula|#Gerund)",reason:"better-go"},{match:"even better",tag:"Adverb #Comparative",reason:"even-better"}],[{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)",notIf:"#Copula",tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"#Verb (up|down|in|on|for)$",tag:"PhrasalVerb #Particle",notIf:"#PhrasalVerb",reason:"come-down$"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"#PhrasalVerb (in && #Particle) #Determiner",tag:"#Verb #Preposition #Determiner",unTag:"PhrasalVerb",reason:"work-in-the"},{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",notIf:"(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|a|an|any|each|every|some|more|with|on)",group:0,notIf:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me|there)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^[#Infinitive] (#Adjective|#Adverb)? and #Infinitive",group:0,tag:"Imperative",reason:"call-and-reserve"},{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:"^[#PhrasalVerb #Particle] #Determiner #Noun",group:0,tag:"Imperative",reason:"turn-off-the-light"},{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:"^come #Infinitive",tag:"Imperative",notIf:"on",reason:"come-have"},{match:"^come and? #Infinitive",tag:"Imperative . Imperative",notIf:"#PhrasalVerb",reason:"come-and-have"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[(stay|be|keep)] #Adjective",group:0,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:"[#Infinitive] what .",group:0,tag:"Imperative",reason:"look-what"},{match:"^[#Infinitive] #Gerund",group:0,tag:"Imperative",reason:"keep-playing"},{match:"^[#Infinitive] (to|for|into|toward|here|there)",group:0,tag:"Imperative",reason:"go-to"},{match:"^[#Infinitive] (and|or) #Infinitive",group:0,tag:"Imperative",reason:"inf-and-inf"},{match:"^[%Noun|Verb%] to",group:0,tag:"Imperative",reason:"commit-to"},{match:"^[#Infinitive] #Adjective? #Singular #Singular",group:0,tag:"Imperative",reason:"maintain-eye-contact"},{match:"do not (forget|omit|neglect) to [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-forget"},{match:"^[(ask|wear|pay|look|help|show|watch|act|fix|kill|stop|start|turn|try|win)] #Noun",group:0,tag:"Imperative",reason:"pay-attention"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"},{match:"#Gerund [#Gerund] #Plural",group:0,tag:"Adjective",reason:"hard-working-fam"}],[{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:"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:"[right] (before|after|in|into|to|toward)",group:0,tag:"#Adverb",reason:"right-into"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"(are|#Modal|see|do|for) [ya]",group:0,tag:"Pronoun",reason:"are-ya"},{match:"[long live] .",group:0,tag:"#Adjective #Infinitive",reason:"long-live"},{match:"[plenty] of",group:0,tag:"#Uncountable",reason:"plenty-of"},{match:"(always|nearly|barely|practically) [there]",group:0,tag:"Adjective",reason:"always-there"},{match:"[there] (#Adverb|#Pronoun)? #Copula",group:0,tag:"There",reason:"there-is"},{match:"#Copula [there] .",group:0,tag:"There",reason:"is-there"},{match:"#Modal #Adverb? [there]",group:0,tag:"There",reason:"should-there"},{match:"^[do] (you|we|they)",group:0,tag:"QuestionWord",reason:"do-you"},{match:"^[does] (he|she|it|#ProperNoun)",group:0,tag:"QuestionWord",reason:"does-he"},{match:"#Determiner #Noun+ [who] #Verb",group:0,tag:"Preposition",reason:"the-x-who"},{match:"#Determiner #Noun+ [which] #Verb",group:0,tag:"Preposition",reason:"the-x-which"},{match:"a [while]",group:0,tag:"Noun",reason:"a-while"},{match:"guess who",tag:"#Infinitive #QuestionWord",reason:"guess-who"},{match:"[fucking] !#Verb",group:0,tag:"#Gerund",reason:"f-as-gerund"}],[{match:"university of #Place",tag:"Organization",reason:"university-of-Foo"},{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",notIf:"#FirstName",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:"government of the? [#Place+]",tag:"Organization",reason:"government-of-x"},{match:"(health|school|commerce) board",tag:"Organization",reason:"school-board"},{match:"(nominating|special|conference|executive|steering|central|congressional) committee",tag:"Organization",reason:"special-comittee"},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"},{match:"#Place+ #SportsTeam",tag:"SportsTeam",reason:"place-sportsteam"},{match:"(dc|atlanta|minnesota|manchester|newcastle|sheffield) united",tag:"SportsTeam",reason:"united-sportsteam"},{match:"#Place+ fc",tag:"SportsTeam",reason:"fc-sportsteam"},{match:"#Place+ #Noun{0,2} (club|society|group|team|committee|commission|association|guild|crew)",tag:"Organization",reason:"place-noun-society"}],[{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+ (cliff|place|range|pit|place|point|room|grounds|ruins)",tag:"Place",reason:"foo-point"},{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:"(port|mount|mt) #ProperName",tag:"Place",reason:"port-name"}],[{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:"a #Noun [like] (#Noun|#Determiner)",group:0,tag:"Preposition",reason:"a-noun-like"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Infinitive #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"}],[{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^[(well|so|okay|now)] !#Adjective?",group:0,tag:"Expression",reason:"well-"},{match:"^come on",tag:"Expression",reason:"come-on"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"^(ok|alright|shoot|hell|anyways)",tag:"Expression",reason:"ok-"},{match:"^(say && @hasComma)",tag:"Expression",reason:"say-"},{match:"^(like && @hasComma)",tag:"Expression",reason:"like-"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}]);let Fl=null;var Vl={postTagger:function(e){const{world:t}=e,{model:n,methods:r}=t;Fl=Fl||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(Fl),e.uncache(),e.unfreeze(),e},tagger:e=>e.compute(["freeze","lexicon","preTagger","postTagger","unfreeze"])};const zl={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach((n=>{n.forEach((n=>{t+=1,e+=n.confidence||1}))})),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["tagger"])}},compute:Vl,model:{two:{matches:Ol}},hooks:["postTagger"]},Bl=function(e,t){let n=function(e){return Object.keys(e.hooks).filter((e=>!e.startsWith("#")&&!e.startsWith("%")))}(t);if(0===n.length)return e;e._cache||e.cache();let r=e._cache;return e.filter(((e,t)=>n.some((e=>r[t].has(e)))))};var Sl={lib:{lazy:function(e,t){let n=t;"string"==typeof t&&(n=this.buildNet([{match:t}]));let r=this.tokenize(e),a=Bl(r,n);return a.found?(a.compute(["index","tagger"]),a.match(t)):r.none()}}};const $l=function(e,t,n){let r=e.split(/ /g).map((e=>e.toLowerCase().trim()));r=r.filter((e=>e)),r=r.map((e=>`{${e}}`)).join(" ");let a=this.match(r);return n&&(a=a.if(n)),a.has("#Verb")?function(e,t){let n=t;return e.forEach((e=>{e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verb.conjugate)(t,e.model);return e.has("#Gerund")?n.Gerund:e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)})),e}(a,t):a.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.noun.toPlural)(t,e.model));e.replaceWith(n,{possessives:!0})}(a,t):a.has("#Adverb")?function(e,t){const{toAdverb:n}=e.methods.two.transform.adjective;let r=n(t);r&&e.replaceWith(r)}(a,t):a.has("#Adjective")?function(e,t){const{toComparative:n,toSuperlative:r}=e.methods.two.transform.adjective;let a=t;e.has("#Comparative")?a=n(a,e.model):e.has("#Superlative")&&(a=r(a,e.model)),a&&e.replaceWith(a)}(a,t):this};var Ml={api:function(e){e.prototype.swap=$l}};h.plugin(sl),h.plugin(Hl),h.plugin(zl),h.plugin(Sl),h.plugin(Ml);const Kl=function(e){const{fromComparative:t,fromSuperlative:n}=e.methods.two.transform.adjective;let r=e.text("normal");return e.has("#Comparative")?t(r,e.model):e.has("#Superlative")?n(r,e.model):r};var Ll={api:function(e){class Adjectives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adjectives"}json(e={}){const{toAdverb:t,toNoun:n,toSuperlative:r,toComparative:a}=this.methods.two.transform.adjective;return e.normal=!0,this.map((o=>{let i=o.toView().json(e)[0]||{},s=Kl(o);return i.adjective={adverb:t(s,this.model),noun:n(s,this.model),superlative:r(s,this.model),comparative:a(s,this.model)},i}),[])}adverbs(){return this.before("#Adverb+$").concat(this.after("^#Adverb+"))}conjugate(e){const{toComparative:t,toSuperlative:n,toNoun:r,toAdverb:a}=this.methods.two.transform.adjective;return this.getNth(e).map((e=>{let o=Kl(e);return{Adjective:o,Comparative:t(o,this.model),Superlative:n(o,this.model),Noun:r(o,this.model),Adverb:a(o,this.model)}}),[])}toComparative(e){const{toComparative:t}=this.methods.two.transform.adjective;return this.getNth(e).map((e=>{let n=Kl(e),r=t(n,this.model);return e.replaceWith(r)}))}toSuperlative(e){const{toSuperlative:t}=this.methods.two.transform.adjective;return this.getNth(e).map((e=>{let n=Kl(e),r=t(n,this.model);return e.replaceWith(r)}))}toAdverb(e){const{toAdverb:t}=this.methods.two.transform.adjective;return this.getNth(e).map((e=>{let n=Kl(e),r=t(n,this.model);return e.replaceWith(r)}))}toNoun(e){const{toNoun:t}=this.methods.two.transform.adjective;return this.getNth(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=t.getNth(e),new Adjectives(t.document,t.pointer)},e.prototype.superlatives=function(e){let t=this.match("#Superlative");return t=t.getNth(e),new Adjectives(t.document,t.pointer)},e.prototype.comparatives=function(e){let t=this.match("#Comparative");return t=t.getNth(e),new Adjectives(t.document,t.pointer)}}};var Jl={api:function(e){class Adverbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adverbs"}conjugate(e){return this.getNth(e).map((e=>{let t=function(e){return e.compute("root").text("root")}(e);return{Adverb:e.text("normal"),Adjective:t}}),[])}json(e={}){const t=this.methods.two.transform.adjective.fromAdverb;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=t.getNth(e),new Adverbs(t.document,t.pointer)}}};const Wl=function(e){let t=this;t=function(e){let t=e.parentheses();return t=t.filter((e=>e.wordCount()>=3&&e.has("#Verb")&&e.has("#Noun"))),e.splitOn(t)}(t),t=function(e){let t=e.quotations();return t=t.filter((e=>e.wordCount()>=3&&e.has("#Verb")&&e.has("#Noun"))),e.splitOn(t)}(t),t=function(e){let t=e.match("@hasComma");return t=t.filter((e=>{if(1===e.growLeft(".").wordCount())return!1;if(1===e.growRight(". .").wordCount())return!1;let t=e.grow(".");return t=t.ifNo("@hasComma @hasComma"),t=t.ifNo("@hasComma (and|or) ."),t=t.ifNo("(#City && @hasComma) #Country"),t=t.ifNo("(#WeekDay && @hasComma) #Date"),t=t.ifNo("(#Date+ && @hasComma) #Value"),t=t.ifNo("(#Adjective && @hasComma) #Adjective"),t.found})),e.splitAfter(t)}(t),t=t.splitAfter("(@hasEllipses|@hasSemicolon|@hasDash|@hasColon)"),t=t.splitAfter("^#Pronoun (said|says)"),t=t.splitBefore("(said|says) #ProperNoun$"),t=t.splitBefore(". . if .{4}"),t=t.splitBefore("and while"),t=t.splitBefore("now that"),t=t.splitBefore("ever since"),t=t.splitBefore("(supposing|although)"),t=t.splitBefore("even (while|if|though)"),t=t.splitBefore("(whereas|whose)"),t=t.splitBefore("as (though|if)"),t=t.splitBefore("(til|until)");let n=t.match("#Verb .* [but] .* #Verb",0);n.found&&(t=t.splitBefore(n));let r=t.if("if .{2,9} then .").match("then");return t=t.splitBefore(r),"number"==typeof e&&(t=t.get(e)),t},ql={this:"Noun",then:"Pivot"},Ul=[{match:"[that] #Determiner #Noun",group:0,chunk:"Pivot"},{match:"#PastTense [that]",group:0,chunk:"Pivot"},{match:"[so] #Determiner",group:0,chunk:"Pivot"},{match:"#Copula #Adverb+? [#Adjective]",group:0,chunk:"Adjective"},{match:"#Adjective and #Adjective",chunk:"Adjective"},{match:"#Adverb+ and #Adverb #Verb",chunk:"Verb"},{match:"#Gerund #Adjective$",chunk:"Verb"},{match:"#Gerund to #Verb",chunk:"Verb"},{match:"#PresentTense and #PresentTense",chunk:"Verb"},{match:"#Adverb #Negative",chunk:"Verb"},{match:"(want|wants|wanted) to #Infinitive",chunk:"Verb"},{match:"#Verb #Reflexive",chunk:"Verb"},{match:"#Verb [to] #Adverb? #Infinitive",group:0,chunk:"Verb"},{match:"[#Preposition] #Gerund",group:0,chunk:"Verb"},{match:"#Infinitive [that] ",group:0,chunk:"Verb"},{match:"#Noun of #Determiner? #Noun",chunk:"Noun"},{match:"#Value+ #Adverb? #Adjective",chunk:"Noun"},{match:"the [#Adjective] #Noun",chunk:"Noun"},{match:"#Singular in #Determiner? #Singular",chunk:"Noun"},{match:"#Plural [in] #Determiner? #Noun",group:0,chunk:"Pivot"},{match:"#Noun and #Determiner? #Noun",notIf:"(#Possessive|#Pronoun)",chunk:"Noun"}];let Rl=null;const Ql=function(e,t){if(("undefined"!=typeof process&&process.env?process.env:self.env||{}).DEBUG_CHUNKS){let n=(e.normal+"'").padEnd(8);console.log(` | '${n} โ†’ ${t.padEnd(12)}  -fallback- `)}e.chunk=t};var Zl={chunks:function(e){const{document:t,world:n}=e;!function(e){for(let t=0;t{for(let r=0;r{if("Verb"===e.chunk){const t=e.terms.find((e=>e.tags.has("Verb")));t||e.terms.forEach((e=>e.chunk=null))}}))}(t)}},_l={compute:Zl,api:function(e){class Chunks extends e{constructor(e,t,n){super(e,t,n),this.viewType="Chunks"}isVerb(){return this.filter((e=>e.has("")))}isNoun(){return this.filter((e=>e.has("")))}isAdjective(){return this.filter((e=>e.has("")))}isPivot(){return this.filter((e=>e.has("")))}debug(){return this.toView().debug("chunks"),this}update(e){let t=new Chunks(this.document,e);return t._cache=this._cache,t}}e.prototype.chunks=function(e){let t=function(e){let t=[],n=null;return e.clauses().docs.forEach((e=>{e.forEach((e=>{e.chunk&&e.chunk===n?t[t.length-1][2]=e.index[1]+1:(n=e.chunk,t.push([e.index[0],e.index[1],e.index[1]+1]))})),n=null})),e.update(t)}(this);return t=t.getNth(e),new Chunks(this.document,t.pointer)},e.prototype.clauses=Wl},hooks:["chunks"]};const Xl=/\./g,Yl=/\(/,eu=/\)/,tu=function(e,t){for(;t{e[0].pre=e[0].pre.replace(Yl,"");let t=e[e.length-1];t.post=t.post.replace(eu,"")})),e}(this)}}e.prototype.parentheses=function(e){let t=function(e){let t=[];return e.docs.forEach((e=>{for(let n=0;n{e[0].pre=e[0].pre.replace(ou,"");let t=e[e.length-1];t.post=t.post.replace(iu,"")}))}(this)}}e.prototype.quotations=function(e){let t=function(e){let t=[];return e.docs.forEach((e=>{for(let n=0;n{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=t.getNth(e),new Acronyms(t.document,t.pointer)}}(e),nu(e),function(e){class Possessives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Possessives"}strip(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(ru,""),e.normal=e.normal.replace(ru,"")}))})),this}}e.prototype.possessives=function(e){let t=function(e){let t=e.match("#Possessive+");return t.has("#Person")&&(t=t.growLeft("#Person+")),t.has("#Place")&&(t=t.growLeft("#Place+")),t.has("#Organization")&&(t=t.growLeft("#Organization+")),t}(this);return t=t.getNth(e),new Possessives(t.document,t.pointer)}}(e),lu(e),function(e){cu.forEach((t=>{e.prototype[t[0]]=function(e){let n=this.match(t[1]);return"number"==typeof e?n.get(e):n}})),e.prototype.phoneNumbers=uu,hu.forEach((t=>{e.prototype[t[0]]=e.prototype[t[1]]}))}(e),function(e){class Slashes extends e{constructor(e,t,n){super(e,t,n),this.viewType="Slashes"}split(){return this.map((e=>{let t=e.text().split(du);return(e=e.replaceWith(t.join(" "))).growRight("("+t.join("|")+")+")}))}}e.prototype.slashes=function(e){let t=this.match("#SlashedTerm");return t=t.getNth(e),new Slashes(t.document,t.pointer)}}(e)}};const mu=function(e,t){e.docs.forEach((e=>{e.forEach(t)}))};var pu={case:e=>{mu(e,(e=>{e.text=e.text.toLowerCase()}))},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;mu(e,(e=>e.text=n(e.text,t)))},whitespace:e=>{mu(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=>{mu(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()},debullet:e=>{const t=/^\s*([-โ€“โ€”*โ€ข])\s*$/;return e.docs.forEach((e=>{t.test(e[0].pre)&&(e[0].pre=e[0].pre.replace(t,""))})),e}};const fu=e=>e.split("|").reduce(((e,t)=>(e[t]=!0,e)),{}),bu="unicode|punctuation|whitespace|acronyms",vu="|case|contractions|parentheses|quotations|emoji|honorifics|debullet",yu={light:fu(bu),medium:fu(bu+vu),heavy:fu(bu+vu+"|possessives|adverbs|nouns|verbs")};var wu={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=yu[e]),Object.keys(e).forEach((t=>{pu.hasOwnProperty(t)&&pu[t](this,e[t])})),this}}};const ku=["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"],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")},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=t.first(),t.found?t:e}(e);return{determiner:e.match("#Determiner").eq(0),adjectives:e.match("#Adjective"),number:e.values(),isPlural:Au(e,t),isSubordinate:Pu(e),root:t}},Nu=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);if(t.found){return(t.parse()[0]||{}).num}return null},Iu=function(e){return!e.has("^(#Uncountable|#ProperNoun|#Place|#Pronoun|#Acronym)+$")},Tu={tags:!0},Du={tags:!0};var Hu={api:function(e){class Nouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Nouns"}parse(e){return this.getNth(e).map(Cu)}json(e){let t="object"==typeof e?e:{};return this.getNth(e).map((e=>{let n=e.toView().json(t)[0]||{};return t&&!1!==t.noun&&(n.noun=function(e){let t=Cu(e);return{root:Nu(t.root),number:xu(t.number),determiner:Nu(t.determiner),adjectives:ju(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}}(e)),n}),[])}conjugate(e){const t=this.world.methods.two.transform.noun;return this.getNth(e).map((e=>{let n=Cu(e),r=n.root.compute("root").text("root"),a={Singular:r};return Iu(n.root)&&(a.Plural=t.toPlural(r,this.model)),a.Singular===a.Plural&&delete a.Plural,a}),[])}isPlural(e){let t=this.filter((e=>Cu(e).isPlural));return t.getNth(e)}isSingular(e){let t=this.filter((e=>!Cu(e).isPlural));return t.getNth(e)}adjectives(e){let t=this.update([]);return this.forEach((e=>{let n=Cu(e).adjectives;n.found&&(t=t.concat(n))})),t.getNth(e)}toPlural(e){return this.getNth(e).map((e=>function(e,t){if(!0===t.isPlural)return e;if(t.root.has("#Possessive")&&(t.root=t.root.possessives().strip()),!Iu(t.root))return e;const{methods:n,model:r}=e.world,{toPlural:a}=n.two.transform.noun;let o=a(t.root.text({keepPunct:!1}),r);e.match(t.root).replaceWith(o,Tu).tag("Plural","toPlural"),t.determiner.has("(a|an)")&&e.remove(t.determiner);let i=t.root.after("not? #Adverb+? [#Copula]",0);return i.found&&(i.has("is")?e.replace(i,"are"):i.has("was")&&e.replace(i,"were")),e}(e,Cu(e))))}toSingular(e){return this.getNth(e).map((e=>function(e,t){if(!1===t.isPlural)return e;const{methods:n,model:r}=e.world,{toSingular:a}=n.two.transform.noun;let o=a(t.root.text("normal"),r);return e.replace(t.root,o,Du).tag("Singular","toPlural"),e}(e,Cu(e))))}update(e){let t=new Nouns(this.document,e);return t._cache=this._cache,t}}e.prototype.nouns=function(e){let t=function(e){let t=e.clauses().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|i)"),t=t.splitOn("(#Noun|#Adjective) [(he|him|she|it)]",0),t=t.splitOn("[(he|him|she|it)] (#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.splitBefore("(our|my|their|your)"),t=t.splitOn("#Noun [#Determiner]",0),t=t.if("#Noun"),t}(this);return t=t.getNth(e),new Nouns(this.document,t.pointer)}}};var Eu={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:1e3,millionth:1e6,billionth:1e9,trillionth:1e12,quadrillionth:1e15,quintillionth:1e18,sextillionth:1e21,septillionth:1e24,hundred:100,thousand:1e3,million:1e6,billion:1e9,trillion:1e12,quadrillion:1e15,quintillion:1e18,sextillion:1e21,septillion:1e24,grand:1e3}};const Gu=(e,t)=>{if(Eu.ones.hasOwnProperty(e)){if(t.ones||t.teens)return!1}else if(Eu.teens.hasOwnProperty(e)){if(t.ones||t.teens||t.tens)return!1}else if(Eu.tens.hasOwnProperty(e)&&(t.ones||t.teens||t.tens))return!1;return!0},Ou=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"),Vu=/^([0-9,. ]+)\/([0-9,. ]+)$/,zu={"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),Su=function(e){if(!0===zu.hasOwnProperty(e))return zu[e];if("a"===e||"an"===e)return 1;const t=(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#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 $u.test(a)&&(a=a.replace($u,""),r=r.replaceWith(a)),r=Ku.hasOwnProperty(a)?Ku[a]:Mu(r),"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null}(e)||function(e){let t=e.match("^#Ordinal$");if(!0!==t.found)return null;if(e.lookAhead("^of ."))return{numerator:1,denominator:Mu(t)};return null}(e)||null;return null!==t&&t.numerator&&t.denominator&&(t.decimal=t.numerator/t.denominator,t.decimal=(e=>{let t=Math.round(1e3*e)/1e3;return 0===t&&0!==e?e:t})(t.decimal)),t},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)}))},Wu=[["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"],Uu=[[1e24,"septillion"],[1e20,"hundred sextillion"],[1e21,"sextillion"],[1e20,"hundred quintillion"],[1e18,"quintillion"],[1e17,"hundred quadrillion"],[1e15,"quadrillion"],[1e14,"hundred trillion"],[1e12,"trillion"],[1e11,"hundred billion"],[1e9,"billion"],[1e8,"hundred million"],[1e6,"million"],[1e5,"hundred thousand"],[1e3,"thousand"],[100,"hundred"],[1,"one"]],Ru=function(e){let t=[];if(e>100)return t;for(let n=0;n=Wu[n][1]&&(e-=Wu[n][1],t.push(Wu[n][0]));return qu[e]&&t.push(qu[e]),t},Qu=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=Ju(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));let r=function(e){let t=e,n=[];return Uu.forEach((r=>{if(e>=r[0]){let e=Math.floor(t/r[0]);t-=e*r[0],e&&n.push({unit:r[1],count:e})}})),n}(t);for(let e=0;e1&&n.push("and")),n=n.concat(Ru(r[e].count)),n.push(t)}return n=n.concat((e=>{const t=["zero","one","two","three","four","five","six","seven","eight","nine"];let n=[],r=Ju(e).match(/\.([0-9]+)/);if(!r||!r[0])return n;n.push("point");let a=r[0].split("");for(let e=0;ee)),0===n.length&&(n[0]=""),n.join(" ")},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"},_u=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){class Fractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return this.getNth(e).map(Lu)}get(e){return this.getNth(e).map(Lu)}json(e){return this.getNth(e).map((t=>{let n=t.toView().json(e)[0],r=Lu(t);return n.fraction=r,n}),[])}toDecimal(e){return this.getNth(e).forEach((e=>{let{decimal:t}=Lu(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")})),this}toFraction(e){return this.getNth(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 this.getNth(e).forEach((e=>{let t=function(e){if(!e.numerator||!e.denominator)return"";let t=Qu({num:e.numerator}),n=_u({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""}(Lu(e));e.after("^#Noun").found&&(t+=" of"),e.replaceWith(t)})),this}toCardinal(e){return this.getNth(e).forEach((e=>{let t=function(e){return e.numerator&&e.denominator?`${Qu({num:e.numerator})} out of ${Qu({num:e.denominator})}`:""}(Lu(e));e.replaceWith(t)})),this}toPercentage(e){return this.getNth(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=function(e,t){let n=e.match("#Fraction+");return n=n.filter((e=>!e.lookBehind("#Value and$").found)),n=n.notIf("#Value seconds"),n}(this);return t=t.getNth(e),new Fractions(this.document,t.pointer)}},Yu="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty",ec=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},tc=function(e){if("string"==typeof e)return{num:Su(e)};let t=e.text("reduced"),n=e.growRight("#Unit").match("#Unit$").text("machine"),r=/[0-9],[0-9]/.test(e.text("text"));if(1===e.terms().length&&!e.has("#Multiple")){let a=function(e,t){let n=(e=e.replace(/,/g,"")).split(/([0-9.,]*)/),[r,a]=n,o=n.slice(2).join("");return""!==a&&t.length<2?(a=Number(a||e),"number"!=typeof a&&(a=null),o=o||"","st"!==o&&"nd"!==o&&"rd"!==o&&"th"!==o||(o=""),{prefix:r||"",num:a,suffix:o}):null}(t,e);if(null!==a)return a.hasComma=r,a.unit=n,a}let a=e.match("#Fraction{2,}$");a=!1===a.found?e.match("^#Fraction$"):a;let o=null;a.found&&(a.has("#Value and #Value #Fraction")&&(a=a.match("and #Value #Fraction")),o=Lu(a),t=(e=(e=e.not(a)).not("and$")).text("reduced"));let i=0;return t&&(i=Su(t)||0),o&&o.decimal&&(i+=o.decimal),{hasComma:r,prefix:"",num:i,suffix:"",isOrdinal:e.has("#Ordinal"),isText:e.has("#TextValue"),isFraction:e.has("#Fraction"),isMoney:e.has("#Money"),unit:n}},nc={"ยข":"cents",$:"dollars","ยฃ":"pounds","ยฅ":"yen","โ‚ฌ":"euros","โ‚ก":"colรณn","เธฟ":"baht","โ‚ญ":"kip","โ‚ฉ":"won","โ‚น":"rupees","โ‚ฝ":"ruble","โ‚บ":"liras"},rc={"%":"percent","ยฐ":"degrees"},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},oc=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=ac(e);return t+_u(e)+n}if("Ordinal"===t)return e.prefix+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}(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},ic=function(e){if("string"==typeof e||"number"==typeof e){let t={};return t[e]=!0,t}return t=e,"[object Array]"===Object.prototype.toString.call(t)?e.reduce(((e,t)=>(e[t]=!0,e)),{}):e||{};var t},sc=function(e){class Numbers extends e{constructor(e,t,n){super(e,t,n),this.viewType="Numbers"}parse(e){return this.getNth(e).map(tc)}get(e){return this.getNth(e).map(tc).map((e=>e.num))}json(e){let t="object"==typeof e?e:{};return this.getNth(e).map((e=>{let n=e.toView().json(t)[0],r=tc(e);return n.number={prefix:r.prefix,num:r.num,suffix:r.suffix,hasComma:r.hasComma,unit:r.unit},n}),[])}units(){return this.growRight("#Unit").match("#Unit$")}isUnit(e){return function(e,t={}){return t=ic(t),e.filter((e=>{let{unit:n}=tc(e);return!(!n||!0!==t[n])}))}(this,e)}isOrdinal(){return this.if("#Ordinal")}isCardinal(){return this.if("#Cardinal")}toNumber(){let e=this.map((e=>{if(!this.has("#TextValue"))return e;let t=tc(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=oc(t,n);return e.replaceWith(r,{tags:!0}),e.tag("NumericValue")}));return new Numbers(e.document,e.pointer)}toLocaleString(){return this.forEach((e=>{let t=tc(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=tc(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=tc(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=tc(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=>tc(t).num===e))}greaterThan(e){return this.filter((t=>tc(t).num>e))}lessThan(e){return this.filter((t=>tc(t).num{let r=tc(n).num;return r>e&&r{let n=tc(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=tc(e).num);let t=this.map((t=>{let n=tc(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=ec(this);return t=t.getNth(e),new Numbers(this.document,t.pointer)},e.prototype.percentages=function(e){let t=ec(this);return t=t.filter((e=>e.has("#Percent")||e.after("^percent"))),t=t.getNth(e),new Numbers(this.document,t.pointer)},e.prototype.money=function(e){let t=ec(this);return t=t.filter((e=>e.has("#Money")||e.after("^#Currency"))),t=t.getNth(e),new Numbers(this.document,t.pointer)},e.prototype.values=e.prototype.numbers};var lc={api:function(e){Xu(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},hc={api:function(e){e.prototype.redact=cc}},dc=function(e){let t=null;return e.has("#PastTense")?t="PastTense":e.has("#FutureTense")?t="FutureTense":e.has("#PresentTense")&&(t="PresentTense"),{tense:t}},gc=function(e){let t=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:(t=t.ifNo("^#Gerund"),1===t.length?t:(0===t.length&&(t=e),t.eq(0)))))))}(e.clauses()),n=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,grammar:dc(a)}};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,grammar:i}=gc(t);return n.sentence={subject:r.text("normal"),verb:a.text("normal"),predicate:o.text("normal"),grammar:i},n}),[])}toPastTense(e){return this.getNth(e).map((e=>(gc(e),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}(e))))}toPresentTense(e){return this.getNth(e).map((e=>(gc(e),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}(e))))}toFutureTense(e){return this.getNth(e).map((e=>(gc(e),e=function(e){let t=e.verbs();if(t.eq(0).toFutureTense(),t=(e=e.fullSentence()).verbs(),t.length>1){t=t.slice(1);let e=t.filter((e=>!(e.lookBehind("to$").found||!e.has("#Copula #Gerund")&&(e.has("#Gerund")||!e.has("#Copula")&&e.has("#PresentTense")&&!e.has("#Infinitive")&&e.lookBefore("(he|she|it|that|which)$").found))));e.found&&e.forEach((e=>{if(e.has("#Copula"))return e.match("was").replaceWith("is"),void e.match("is").replaceWith("will be");e.toInfinitive()}))}return e}(e),e)))}toInfinitive(e){return this.getNth(e).map((e=>(gc(e),function(e){return e.verbs().toInfinitive(),e}(e))))}toNegative(e){return this.getNth(e).map((e=>(gc(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e))))}toPositive(e){return this.getNth(e).map((e=>(gc(e),function(e){return e.verbs().first().toPositive().compute("chunks"),e}(e))))}isQuestion(e){return this.questions(e)}isExclamation(e){let t=this.filter((e=>e.lastTerm().has("@hasExclamation")));return t.getNth(e)}isStatement(e){let t=this.filter((e=>!e.isExclamation().found&&!e.isQuestion().found));return t.getNth(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=t.getNth(e),new Sentences(this.document,t.pointer)},questions:function(e){let t=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))}))}(this);return t.getNth(e)}};Object.assign(e.prototype,t)}};const 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},fc="male",bc="female",vc={mr:fc,mrs:bc,miss:bc,madam:bc,king:fc,queen:bc,duke:fc,duchess:bc,baron:fc,baroness:bc,count:fc,countess:bc,prince:fc,princess:bc,sire:fc,dame:bc,lady:bc,ayatullah:fc,congressman:fc,congresswoman:bc,"first lady":bc,mx:null},yc=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return bc;if(n.has("#MaleName"))return fc;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),vc.hasOwnProperty(e))return vc[e];if(/^her /.test(e))return bc;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 bc}return null},wc=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=n.getNth(e),n};var kc={api:function(e){!function(e){class People extends e{constructor(e,t,n){super(e,t,n),this.viewType="People"}parse(e){return this.getNth(e).map(pc)}json(e){let t="object"==typeof e?e:{};return this.getNth(e).map((e=>{let n=e.toView().json(t)[0],r=pc(e);return n.person={firstName:r.firstName.text("normal"),lastName:r.lastName.text("normal"),honorific:r.honorific.text("normal"),presumed_gender:yc(r,e)},n}),[])}presumedMale(){return this.filter((e=>e.has("(#MaleName|mr|mister|sr|jr|king|pope|prince|sir)")))}presumedFemale(){return this.filter((e=>e.has("(#FemaleName|mrs|miss|queen|princess|madam)")))}update(e){let t=new People(this.document,e);return t._cache=this._cache,t}}e.prototype.people=function(e){let t=function(e){let t=e.splitAfter("@hasComma");t=t.match("#Honorific+? #Person+");let n=t.match("#Possessive").notIf("(his|her)");return t=t.splitAfter(n),t}(this);return t=t.getNth(e),new People(this.document,t.pointer)}}(e),function(e){e.prototype.places=function(t){let n=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}(this);return n=n.getNth(t),new e(this.document,n.pointer)}}(e),function(e){e.prototype.organizations=function(e){return this.match("#Organization+").getNth(e)}}(e),function(e){e.prototype.topics=wc}(e)}};const Pc=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)},Ac=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")},Nc=function(e){if(!e.has("(#Particle|#PhrasalVerb)"))return{verb:e.none(),particle:e.none()};let t=e.match("#Particle$");return{verb:e.not(t),particle:t}},jc=function(e){let t=e.clone();t.contractions().expand();const n=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}(t);return{root:n,prefix:t.match("#Prefix"),adverbs:Pc(t,n),auxiliary:Ac(t,n),negative:Cc(t),phrasal:Nc(n)}},xc={tense:"PresentTense"},Ic={conditional:!0},Tc={tense:"FutureTense"},Dc={progressive:!0},Hc={tense:"PastTense"},Ec={complete:!0,progressive:!1},Gc={passive:!0},Oc=function(e){let t={};return e.forEach((e=>{Object.assign(t,e)})),t},Fc={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[xc]],["^wanted to #Infinitive$",[Hc]],["^will want to #Infinitive$",[Tc]]],"gerund-phrase":[["^#PastTense #Gerund$",[Hc]],["^#PresentTense #Gerund$",[xc]],["^#Infinitive #Gerund$",[xc]],["^will #Infinitive #Gerund$",[Tc]],["^have #PastTense #Gerund$",[Hc]],["^will have #PastTense #Gerund$",[Hc]]],"simple-present":[["^#PresentTense$",[xc]],["^#Infinitive$",[xc]]],"simple-past":[["^#PastTense$",[Hc]]],"simple-future":[["^will #Adverb? #Infinitive",[Tc]]],"present-progressive":[["^(is|are|am) #Gerund$",[xc,Dc]]],"past-progressive":[["^(was|were) #Gerund$",[Hc,Dc]]],"future-progressive":[["^will be #Gerund$",[Tc,Dc]]],"present-perfect":[["^(has|have) #PastTense$",[Hc,Ec]]],"past-perfect":[["^had #PastTense$",[Hc,Ec]],["^had #PastTense to #Infinitive",[Hc,Ec]]],"future-perfect":[["^will have #PastTense$",[Tc,Ec]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[Hc,Dc]]],"past-perfect-progressive":[["^had been #Gerund$",[Hc,Dc]]],"future-perfect-progressive":[["^will have been #Gerund$",[Tc,Dc]]],"passive-past":[["(got|were|was) #Passive",[Hc,Gc]],["^(was|were) being #Passive",[Hc,Gc]],["^(had|have) been #Passive",[Hc,Gc]]],"passive-present":[["^(is|are|am) #Passive",[xc,Gc]],["^(is|are|am) being #Passive",[xc,Gc]],["^has been #Passive",[xc,Gc]]],"passive-future":[["will have been #Passive",[Tc,Gc,Ic]],["will be being? #Passive",[Tc,Gc,Ic]]],"present-conditional":[["would be #PastTense",[xc,Ic]]],"past-conditional":[["would have been #PastTense",[Hc,Ic]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[Tc]]],"auxiliary-past":[["^did #Infinitive$",[Hc,{plural:!1}]],["^used to #Infinitive$",[Hc,Ec]]],"auxiliary-present":[["^(does|do) #Infinitive$",[xc,Ec,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[Hc]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let Vc=[];Object.keys(Fc).map((e=>{Fc[e].forEach((t=>{Vc.push({name:e,match:t[0],data:Oc(t[1])})}))}));const zc=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(),Bc(r)&&(n.remove(r),r=n.last()),Bc(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:Sc(t,e)}},Mc=e=>e,Kc=(e,t)=>{let n=$c(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},Lc=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=$c(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},Jc=function(e,t){let n=$c(e),r=n.subject;return r.has("i")||r.has("we")||n.plural?"do":"does"},Wc=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},qc=function(e,t){const{toInfinitive:n}=e.methods.two.transform.verb;let r=t.root.text({keepPunct:!1});return r=n(r,e.model,Wc(e)),r&&e.replace(t.root,r),e},Uc=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),Rc=function(e){if(!e||!e.isView)return[];return e.json({normal:!0,terms:!1,text:!1}).map((e=>e.normal))},Qc=function(e){return e&&e.isView?e.text("normal"):""},Zc=function(e){const{toInfinitive:t}=e.methods.two.transform.verb;return t(e.text("normal"),e.model,Wc(e))},_c={tags:!0},Xc={tags:!0},Yc={noAux:(e,t)=>(t.auxiliary.found&&(e=e.remove(t.auxiliary)),e),simple:(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;if(a.has("#Modal"))return e;let o=a.text({keepPunct:!1});return o=r(o,e.model,Wc(a)),o=n(o,e.model).PastTense,o="been"===o?"was":o,"was"===o&&(o=((e,t)=>{let{subject:n,plural:r}=$c(e);return r||n.has("we")?"were":"was"})(e)),o&&e.replace(a,o,Xc),e},both:function(e,t){return t.negative.found?(e.replace("will","did"),e):(e=Yc.simple(e,t),e=Yc.noAux(e,t))},hasHad:e=>(e.replace("has","had",Xc),e),hasParticiple:(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,Wc(a)),n(o,e.model).Participle}},eh={infinitive:Yc.simple,"simple-present":Yc.simple,"simple-past":Mc,"simple-future":Yc.both,"present-progressive":e=>(e.replace("are","were",Xc),e.replace("(is|are|am)","was",Xc),e),"past-progressive":Mc,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":Yc.hasHad,"past-perfect":Mc,"future-perfect":(e,t)=>(e.match(t.root).insertBefore("had"),e.has("will")&&(e=Uc(e)),e.remove("have"),e),"present-perfect-progressive":Yc.hasHad,"past-perfect-progressive":Mc,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",Xc),e),"passive-past":e=>(e.replace("have","had",Xc),e),"passive-present":e=>(e.replace("(is|are)","was",Xc),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",Xc),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":Mc,"auxiliary-future":e=>(e.replace("(is|are|am)","was",Xc),e),"auxiliary-past":Mc,"auxiliary-present":e=>(e.replace("(do|does)","did",Xc),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",Xc):(Yc.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":Mc,"want-infinitive":e=>(e.replace("(want|wants)","wanted",Xc),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Yc.simple(e,t),Uc(e),e)},th=function(e,t){let n=$c(e),r=n.subject;return r.has("(i|we|you)")?"have":!1===n.plural||r.has("he")||r.has("she")||r.has("#Person")?"has":"have"},nh=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,{root:a,auxiliary:o}=t;if(a.has("#Modal"))return e;let i=a.text({keepPunct:!1});i=r(i,e.model,Wc(a));let s=n(i,e.model);if(i=s.Participle||s.PastTense,i){e=e.replace(a,i);let t=th(e);e.prepend(t).match(t).tag("Auxiliary"),e.remove(o)}return e},rh={infinitive:nh,"simple-present":nh,"simple-future":(e,t)=>e.replace("will",th(e)),"present-perfect":Mc,"past-perfect":Mc,"future-perfect":(e,t)=>e.replace("will have",th(e)),"present-perfect-progressive":Mc,"past-perfect-progressive":Mc,"future-perfect-progressive":Mc},ah={tags:!0},oh=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,Wc(a)),!1===Kc(e)&&(o=n(o,e.model).PresentTense),a.has("#Copula")&&(o=Lc(e)),o&&(e=e.replace(a,o,ah)).not("#Particle").tag("PresentTense"),e},ih=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,Wc(a)),!1===Kc(e)&&(o=n(o,e.model).Gerund),o&&(e=e.replace(a,o,ah)).not("#Particle").tag("Gerund"),e},sh={infinitive:oh,"simple-present":(e,t)=>{const{conjugate:n}=e.methods.two.transform.verb;let{root:r}=t;if(!r.has("#Infinitive"))return oh(e,t);{let t=$c(e).subject;if(Kc(e)||t.has("i"))return e;let a=r.text("normal"),o=n(a,e.model).PresentTense;a!==o&&e.replace(r,o,ah)}return e},"simple-past":oh,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=Lc(e);e.replace(n,t),(e=e.remove("will")).replace("not "+t,t+" not")}else oh(e,t),e=e.remove("will");return e},"present-progressive":Mc,"past-progressive":(e,t)=>{let n=Lc(e);return e.replace("(were|was)",n,ah)},"future-progressive":e=>(e.match("will").insertBefore("is"),e.remove("be"),e.remove("will")),"present-perfect":(e,t)=>(oh(e,t),e=e.remove("(have|had|has)")),"past-perfect":(e,t)=>{let n=$c(e).subject;return Kc(e)||n.has("i")?((e=qc(e,t)).remove("had"),e):(e.replace("had","has",ah),e)},"future-perfect":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"present-perfect-progressive":Mc,"past-perfect-progressive":e=>e.replace("had","has",ah),"future-perfect-progressive":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"passive-past":(e,t)=>{let n=Lc(e);return e.has("(had|have|has)")&&e.has("been")?(e.replace("(had|have|has)",n,ah),e.replace("been","being"),e):e.replace("(got|was|were)",n)},"passive-present":Mc,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":Mc,"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=Jc(e);return e.replace(t.auxiliary,n),e}return ih(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":Mc,"modal-infinitive":Mc,"modal-past":(e,t)=>(((e,t)=>{const{toInfinitive:n}=e.methods.two.transform.verb,r=t.root;let a=t.root.text("normal");a=n(a,e.model,Wc(r)),a&&(e=e.replace(t.root,a,ah))})(e,t),e.remove("have")),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),oh(e,t),e.remove("(will|have)")),"want-infinitive":(e,t)=>{let n="wants";return Kc(e)&&(n="want"),e.replace("(want|wanted|wants)",n,ah),e.remove("will"),e}},lh={tags:!0},uh=(e,t)=>{const{toInfinitive:n}=e.methods.two.transform.verb,{root:r,auxiliary:a}=t;if(r.has("#Modal"))return e;let o=r.text("normal");return o=n(o,e.model,Wc(r)),o&&(e=e.replace(r,o,lh)).not("#Particle").tag("Verb"),e.prepend("will").match("will").tag("Auxiliary"),e.remove(a),e},ch=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,{root:a,auxiliary:o}=t;let i=a.text("normal");return i=r(i,e.model,Wc(a)),i&&(i=n(i,e.model).Gerund,e.replace(a,i,lh),e.not("#Particle").tag("PresentTense")),e.remove(o),e.prepend("will be").match("will be").tag("Auxiliary"),e},hh={infinitive:uh,"simple-present":uh,"simple-past":uh,"simple-future":Mc,"present-progressive":ch,"past-progressive":ch,"future-progressive":Mc,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":Mc,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":Mc,"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":Mc,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":Mc,"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":Mc,"modal-past":Mc,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),uh(e,t),e.remove("(had|have)")),"want-infinitive":e=>(e.replace("(want|wants|wanted)","will want"),e)},dh={tags:!0},gh={tags:!0},mh=function(e,t){let n=Jc(e);return e.prepend(n+" not"),e},ph=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)},fh=e=>e.has("(is|was|am|are|will|were|be)"),bh={"simple-present":(e,t)=>!0===fh(e)?ph(e):(e=qc(e,t),e=mh(e)),"simple-past":(e,t)=>!0===fh(e)?ph(e):((e=qc(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===fh(e)?ph(e):mh(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",gh),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=mh(e)).replace("wants","want",gh)};var vh={api:function(e){class Verbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Verbs"}parse(e){return this.getNth(e).map(jc)}json(e,t){let n=this.getNth(t).map((t=>{let n=t.toView().json(e)[0]||{};return n.verb=function(e){let t=jc(e);e=e.clone().toView();const n=zc(e,t);return{root:t.root.text(),preAdverbs:Rc(t.adverbs.pre),postAdverbs:Rc(t.adverbs.post),auxiliary:Qc(t.auxiliary),negative:t.negative.found,prefix:Qc(t.prefix),infinitive:Zc(t.root),grammar:n}}(t),n}),[]);return n}subjects(e){return this.getNth(e).map((e=>(jc(e),$c(e).subject)))}adverbs(e){return this.getNth(e).map((e=>e.match("#Adverb")))}isSingular(e){return this.getNth(e).filter((e=>!0!==$c(e).plural))}isPlural(e){return this.getNth(e).filter((e=>!0===$c(e).plural))}isImperative(e){return this.getNth(e).filter((e=>e.has("#Imperative")))}toInfinitive(e){return this.getNth(e).map((e=>{let t=jc(e);return function(e,t){const{toInfinitive:n}=e.methods.two.transform.verb,{root:r,auxiliary:a}=t;let o=a.terms().harden(),i=r.text("normal");if(i=n(i,e.model,Wc(r)),i&&e.replace(r,i,_c).tag("Verb").firstTerm().tag("Infinitive"),o.found&&e.remove(o),t.negative.found){e.has("not")||e.prepend("not");let t=Jc(e);e.prepend(t)}return e.fullSentence().compute(["freeze","lexicon","preTagger","postTagger","unfreeze","chunks"]),e}(e,t,zc(e,t).form)}))}toPresentTense(e){return this.getNth(e).map((e=>{let t=jc(e),n=zc(e,t);return n.isInfinitive?e:function(e,t,n){return sh.hasOwnProperty(n)?((e=sh[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e}(e,t,n.form)}))}toPastTense(e){return this.getNth(e).map((e=>{let t=jc(e),n=zc(e,t);return n.isInfinitive?e:function(e,t,n){return eh.hasOwnProperty(n)?((e=eh[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e}(e,t,n.form)}))}toFutureTense(e){return this.getNth(e).map((e=>{let t=jc(e),n=zc(e,t);return n.isInfinitive?e:function(e,t,n){return e.has("will")||e.has("going to")?e:hh.hasOwnProperty(n)?((e=hh[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e}(e,t,n.form)}))}toGerund(e){return this.getNth(e).map((e=>{let t=jc(e),n=zc(e,t);return n.isInfinitive?e:function(e,t){const{toInfinitive:n,conjugate:r}=e.methods.two.transform.verb,{root:a,auxiliary:o}=t;if(e.has("#Gerund"))return e;let i=a.text("normal");i=n(i,e.model,Wc(a));let s=r(i,e.model).Gerund;if(s){let t=Lc(e);e.replace(a,s,dh),e.remove(o),e.prepend(t)}return e.replace("not is","is not"),e.replace("not are","are not"),e.fullSentence().compute(["tagger","chunks"]),e}(e,t,n.form)}))}toPastParticiple(e){return this.getNth(e).map((e=>{let t=jc(e),n=zc(e,t);return n.isInfinitive?e:function(e,t,n){return rh.hasOwnProperty(n)?((e=rh[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):((e=nh(e,t)).fullSentence().compute(["tagger","chunks"]),e)}(e,t,n.form)}))}conjugate(e){const{conjugate:t,toInfinitive:n}=this.world.methods.two.transform.verb;return this.getNth(e).map((e=>{let r=jc(e),a=zc(e,r);"imperative"===a.form&&(a.form="simple-present");let o=r.root.text("normal");if(!r.root.has("#Infinitive")){let t=Wc(r.root);o=n(o,e.model,t)||o}return t(o,e.model)}),[])}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 this.getNth(e).map((e=>{let t=jc(e);return function(e,t,n){if(e.has("#Negative"))return e;if(bh.hasOwnProperty(n))return bh[n](e,t);let r=e.matchOne("be");return r.found?(r.prepend("not"),e):!0===fh(e)?ph(e):(r=e.matchOne("(will|had|have|has|did|does|do|#Modal)"),r.found?(r.append("not"),e):e)}(e,t,zc(e,t).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=function(e){let t=e.match("");return t=t.not("#Conjunction"),t=t.not("#Preposition"),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),t=t.splitBefore("(#PresentTense|#PastTense) [(had|has)]",0),t=t.not("#Reflexive$"),t=t.not("#Adjective"),t=t.splitAfter("[#PastTense] #PastTense",0),t=t.splitAfter("[#PastTense] #Auxiliary+ #PastTense",0),t=t.splitAfter("#Copula [#Gerund] #PastTense",0),t=t.if("#Verb"),t.has("(#Verb && !#Auxiliary) #Adverb+? #Copula")&&(t=t.splitBefore("#Copula")),t}(this);return t=t.getNth(e),new Verbs(this.document,t.pointer)}}};const yh=function(e,t){let n=t.match(e);if(n.found){let e=n.pronouns().refersTo();if(e.found)return e}return t.none()},wh=function(e){if(!e.found)return e;let[t]=e.fullPointer[0];return t&&t>0?e.update([[t-1]]):e.none()},kh=function(e,t){let n=e.people();return n=function(e,t){return"m"===t?e.filter((e=>!e.presumedFemale().found)):"f"===t?e.filter((e=>!e.presumedMale().found)):e}(n,t),n.found?n.last():(n=e.nouns("#Actor"),n.found?n.last():"f"===t?yh("(she|her|hers)",e):"m"===t?yh("(he|him|his)",e):e.none())},Ph=function(e){let t=e.nouns(),n=t.isPlural().notIf("#Pronoun");if(n.found)return n.last();let r=yh("(they|their|theirs)",e);return r.found?r:(n=t.match("(somebody|nobody|everybody|anybody|someone|noone|everyone|anyone)"),n.found?n.last():e.none())},Ah=function(e,t){let n=e.before(),r=t(n);return r.found?r:(n=wh(e),r=t(n),r.found?r:(n=wh(n),r=t(n),r.found?r:e.none()))};var Ch={compute:{coreference:function(e){e.pronouns().if("(he|him|his|she|her|hers|they|their|theirs|it|its)").forEach((e=>{let t=null;e.has("(he|him|his)")?t=Ah(e,(e=>kh(e,"m"))):e.has("(she|her|hers)")?t=Ah(e,(e=>kh(e,"f"))):e.has("(they|their|theirs)")&&(t=Ah(e,Ph)),t&&t.found&&function(e,t){t&&t.found&&(e.docs[0][0].reference=t.ptrs[0])}(e,t)}))}},api:function(e){class Pronouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Pronouns"}hasReference(){return this.compute("coreference"),this.filter((e=>e.docs[0][0].reference))}refersTo(){return this.compute("coreference"),this.map((e=>{if(!e.found)return e.none();let t=e.docs[0][0];return t.reference?e.update([t.reference]):e.none()}))}update(e){let t=new Pronouns(this.document,e);return t._cache=this._cache,t}}e.prototype.pronouns=function(e){let t=this.match("#Pronoun");return t=t.getNth(e),new Pronouns(t.document,t.pointer)}}};h.plugin(Ll),h.plugin(Jl),h.plugin(_l),h.plugin(Ch),h.plugin(gu),h.plugin(wu),h.plugin(Hu),h.plugin(lc),h.plugin(hc),h.plugin(mc),h.plugin(kc),h.plugin(vh);export{h as default}; diff --git a/builds/two/compromise-two.cjs b/builds/two/compromise-two.cjs index 39ff45dc2..4124163bd 100644 --- a/builds/two/compromise-two.cjs +++ b/builds/two/compromise-two.cjs @@ -1 +1 @@ -var e,t;e=this,t=function(){var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};const 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=t,a={forEach:function(e){return this.fullPointer.forEach(((t,n)=>{let a=this.update([t]);e(a,n)})),this},map:function(e,t){let n=this.fullPointer.map(((t,n)=>{let a=this.update([t]),r=e(a,n);return void 0===r?this.none():r}));if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let a=[];return n.forEach((e=>{a=a.concat(e.fullPointer)})),this.toView(a)},filter:function(e){let t=this.fullPointer;return t=t.filter(((t,n)=>{let a=this.update([t]);return e(a,n)})),this.update(t)},find:function(e){let t=this.fullPointer.find(((t,n)=>{let a=this.update([t]);return e(a,n)}));return this.update([t])},some:function(e){return this.fullPointer.some(((t,n)=>{let a=this.update([t]);return e(a,n)}))},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const r={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach((e=>{t[e]=this.update(this._groups[e])})),t},eq:function(e){let t=this.pointer;return t||(t=this.docs.map(((e,t)=>[t]))),t[e]?this.update([t[e]]):this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map(((e,t)=>[t]));return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map((e=>[e[0]]));return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every(((e,t)=>!!n[t]&&e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2]))},wordCount:function(){return this.docs.reduce(((e,t)=>(e+=t.filter((e=>""!==e.text)).length,e)),0)},isFull:function(){let e=this.pointer;if(!e)return!0;if(0===e.length||0!==e[0][0])return!1;let t=0,n=0;return this.document.forEach((e=>t+=e.length)),this.docs.forEach((e=>n+=e.length)),t===n},getNth:function(e){return"number"==typeof e?this.eq(e):"string"==typeof e?this.if(e):this}};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,n,a);i.get=i.eq;var s=i;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,a=t||e.map(((e,t)=>[t]));return a.map((e=>{let[t,a,r,o,i]=e;return a=a||0,r=r||(n[t]||[]).length,n[t]&&n[t][a]&&(o=o||n[t][a].id,n[t][r-1]&&(i=i||n[t][r-1].id)),[t,a,r,o,i]}))}update(e){let t=new View(this.document,e);if(this._cache&&e&&e.length>0){let n=[];e.forEach(((e,t)=>{let[a,r,o]=e;(1===e.length||0===r&&this.document[a].length===o)&&(n[t]=this._cache[a])})),n.length>0&&(t._cache=n)}return t.world=this.world,t}toView(e){return new View(this.document,e||this.pointer)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),a=new View(n);return a.world=this.world,a.compute(["normal","freeze","lexicon"]),this.world.compute.preTagger&&a.compute("preTagger"),a.compute("unfreeze"),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,s);var l=View;const u=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};function c(e,t){if(u(t))for(const n in t)u(t[n])?(e[n]||Object.assign(e,{[n]:{}}),c(e[n],t[n])):Object.assign(e,{[n]:t[n]});return e}var d=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&&c(o,e.model),e.irregulars&&function(e,t){let n=e.two.models||{};Object.keys(t).forEach((e=>{t[e].pastTense&&(n.toPast&&(n.toPast.ex[e]=t[e].pastTense),n.fromPast&&(n.fromPast.ex[t[e].pastTense]=e)),t[e].presentTense&&(n.toPresent&&(n.toPresent.ex[e]=t[e].presentTense),n.fromPresent&&(n.fromPresent.ex[t[e].presentTense]=e)),t[e].gerund&&(n.toGerund&&(n.toGerund.ex[e]=t[e].gerund),n.fromGerund&&(n.fromGerund.ex[t[e].gerund]=e)),t[e].comparative&&(n.toComparative&&(n.toComparative.ex[e]=t[e].comparative),n.fromComparative&&(n.fromComparative.ex[t[e].comparative]=e)),t[e].superlative&&(n.toSuperlative&&(n.toSuperlative.ex[e]=t[e].superlative),n.fromSuperlative&&(n.fromSuperlative.ex[t[e].superlative]=e))}))}(o,e.irregulars),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.frozen&&a.addWords(e.frozen,!0),e.mutate&&e.mutate(t)};const h=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var m=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(h(e)){if(h(e[0])){let n=e.map((e=>e.map((e=>({text:e,normal:e,pre:"",post:" ",tags:new Set})))));return new t(n)}let n=function(e){return e.map((e=>e.terms.map((e=>(h(e.tags)&&(e.tags=new Set(e.tags)),e)))))}(e);return new t(n)}return r};let p=Object.assign({},e);const f=function(e,t){t&&f.addWords(t);let n=m(e,l,p);return e&&n.compute(p.hooks),n};Object.defineProperty(f,"_world",{value:p,writable:!0}),f.tokenize=function(e,t){const{compute:n}=this._world;t&&f.addWords(t);let a=m(e,l,p);return n.contractions&&a.compute(["alias","normal","machine","contractions"]),a},f.plugin=function(e){return d(e,this._world,l,this),this},f.extend=f.plugin,f.world=function(){return this._world},f.model=function(){return this._world.model},f.methods=function(){return this._world.methods},f.hooks=function(){return this._world.hooks},f.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},f.version="14.13.0";var b=f,v=function(e){let t=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),A=(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},C=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-โ€“โ€”]/.test(t.post)||(t.post+=" ")},j=(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,"")}},N=function(e,t,n,a){let[r,o,i]=t;0===o||i===a[r].length?C(n):(C(n),C([e[t[1]]])),function(e,t,n){let a=e[t];if(0!==t||!P(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")||P(r.text)&&r.text.length>1&&(r.text=r.text.replace(/^\p{Lu}/u,(e=>e.toLowerCase())))}(e,o,n),A(e,o,n)};let I=0;const D=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var H=function(e){let[t,n]=e.index||[0,0];I+=1,I=I>46655?0:I,t=t>46655?0:t,n=n>1294?0:n;let a=D(I.toString(36));a+=D(t.toString(36));let r=n.toString(36);return r=r.length<2?"0"+r:r,a+=r,a+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+a.toUpperCase()};const G=function(e){e.has("@hasContraction")&&"function"==typeof e.contractions&&e.grow("@hasContraction").contractions().expand()},x=e=>"[object Array]"===Object.prototype.toString.call(e),T=function(e,t,n){const{document:a,world:r}=t;t.uncache();let o=t.fullPointer,i=t.fullPointer;t.forEach(((s,l)=>{let u=s.fullPointer[0],[c]=u,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]||[]:x(e)?x(e[0])?e[0]:e:[]}(e,r);0!==h.length&&(h=function(e){return e.map((e=>(e.id=H(e),e)))}(h),n?(G(t.update([u]).firstTerm()),N(d,u,h,a)):(G(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);let r=a.docs[0],o=t.possessives&&r[r.length-1].tags.has("Possessive");e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e=e.replace(O,(e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})),e}(e,a);let i=this.update(n);n=n.map((e=>e.slice(0,3)));let s=(i.docs[0]||[]).map((e=>Array.from(e.tags)));if("string"==typeof e&&(e=this.fromText(e).compute("id")),a.insertAfter(e),i.has("@hasContraction")&&a.contractions&&a.grow("@hasContraction+").contractions().expand(),a.delete(i),o){let e=a.docs[0],t=e[e.length-1];t.tags.has("Possessive")||(t.text+="'s",t.normal+="'s",t.tags.add("Possessive"))}let l=a.toView(n).compute(["index","freeze","lexicon"]);return l.world.compute.preTagger&&l.compute("preTagger"),l.compute("unfreeze"),t.tags&&l.terms().forEach(((e,t)=>{e.tagSafe(s[t])})),t.case&&l.docs[0]&&l.docs[0][0]&&0===l.docs[0][0].index[1]&&(l.docs[0][0].text=l.docs[0][0].text.replace(/\w\S*/g,(e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase()))),l},replace:function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let a=this.match(e);return a.found?(this.soften(),a.replaceWith(t,n)):this}};var V=z,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 S={remove:function(e){const{indexN:t}=this.methods.one.pointer;this.uncache();let n=this.all(),a=this;e&&(n=this,a=this.match(e));let r=!n.ptrs;a.has("@hasContraction")&&a.contractions&&a.grow("@hasContraction").contractions().expand();let o=n.fullPointer,i=a.fullPointer.reverse(),s=B(this.document,i);return o=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})),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)))}(o,t(i)),n.ptrs=o,n.document=s,n.compute("index"),r&&(n.ptrs=void 0),e?n.toView(o):(this.ptrs=[],n.none())}};S.delete=S.remove;var K=S;const $={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}};$.deHyphenate=$.dehyphenate,$.toQuotation=$.toQuotations;var M=$,L={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 J=new Set(["index","sequence","seq","sequential","chron","chronological"]),W=new Set(["freq","frequency","topk","repeats"]),U=new Set(["alpha","alphabetical"]);var q={unique:function(){let e=new Set,t=this.filter((t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)}));return t},reverse:function(){let e=this.pointer||this.docs.map(((e,t)=>[t]));return e=[].concat(e),e=e.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if(this.uncache(),"function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort(((n,a)=>(n=e.update([n]),a=e.update([a]),t(n,a)))),e.ptrs=n,e}(this,e);e=e||"alpha";let a=n||t.map(((e,t)=>[t])),r=t.map(((e,t)=>({index:t,words:e.length,normal:e.map((e=>e.machine||e.normal||"")).join(" "),pointer:a[t]})));return J.has(e)&&(e="sequential"),U.has(e)&&(e="alpha"),W.has(e)?(r=L.byFreq(r),this.update(r.map((e=>e.pointer)))):"function"==typeof L[e]?(r=r.sort(L[e]),this.update(r.map((e=>e.pointer)))):this}};const R=function(e,t){if(e.length>0){let t=e[e.length-1],n=t[t.length-1];!1===/ /.test(n.post)&&(n.post+=" ")}return e=e.concat(t)};var Q={concat:function(e){if("string"==typeof e){let t=this.fromText(e);if(this.found&&this.ptrs){let e=this.fullPointer,n=e[e.length-1][0];this.document.splice(n,0,...t.document)}else this.document=this.document.concat(t.document);return this.all().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=R(e.document,t.docs),e.all()}(this,e);if(t=e,"[object Array]"===Object.prototype.toString.call(t)){let t=R(this.document,e);return this.document=t,this.all()}var t;return this}},Z={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 _=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}},F,V,K,M,q,Q,Z);var X=function(e){Object.assign(e.prototype,_)};const Y={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))),n[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 re=/'/,oe=new Set(["what","how","when","where","why"]),ie=new Set(["be","go","start","think","need"]),se=new Set(["been","gone"]);var le=function(e,t){let n=e[t].normal.split(re)[0];if(oe.has(n))return[n,"did"];if(e[t+1]){if(se.has(e[t+1].normal))return[n,"had"];if(ie.has(e[t+1].normal))return[n,"would"]}return null},ue=function(e,t){return"ain't"===e[t].normal||"aint"===e[t].normal?null:[e[t].normal.replace(/n't/,""),"not"]};const ce=/'/,de=/(e|รฉ|aison|sion|tion)$/,he=/(age|isme|acle|ege|oire)$/;var ge=(e,t)=>["je",e[t].normal.split(ce)[1]],me=(e,t)=>{let n=e[t].normal.split(ce)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},pe=(e,t)=>{let n=e[t].normal.split(ce)[1];return n&&de.test(n)&&!he.test(n)?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const fe=/^([0-9.]{1,4}[a-z]{0,2}) ?[-โ€“โ€”] ?([0-9]{1,4}[a-z]{0,2})$/i,be=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-โ€“โ€”] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,ve=/^[0-9]{3}-[0-9]{4}$/;var ye=function(e,t){let n=e[t],a=n.text.match(fe);return null!==a?!0===n.tags.has("PhoneNumber")||ve.test(n.text)?null:[a[1],"to",a[2]]:(a=n.text.match(be),null!==a?[a[1],"to",a[4]]:null)};const we=/^([+-]?[0-9][.,0-9]*)([a-zยฐยฒยณยต/]+)$/;var ke=function(e,t,n){const a=n.model.one.numberSuffixes||{};let r=e[t].text.match(we);if(null!==r){let e=r[2].toLowerCase().trim();return a.hasOwnProperty(e)?null:[r[1],e]}return null};const Pe=/'/,Ae=/^[0-9][^-โ€“โ€”]*[-โ€“โ€”].*?[0-9]/,Ce=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]]},je={t:(e,t)=>ue(e,t),d:(e,t)=>le(e,t)},Ne={j:(e,t)=>ge(e,t),l:(e,t)=>me(e,t),d:(e,t)=>pe(e,t)},Ie=function(e,t,n,a){for(let r=0;r2)return o.out.concat(a)}return null},De=function(e,t){let n=t.fromText(e.join(" "));return n.compute(["id","alias"]),n.docs[0]},He=function(e,t){for(let n=t+1;n<5&&e[n];n+=1)if("been"===e[n].normal)return["there","has"];return["there","is"]};var Ge=e=>{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;if(!0===Pe.test(a[s].normal)){let e=a[s].normal.split(Pe);l=e[0],u=e[1]}let c=Ie(o,a[s],l,u);!c&&je.hasOwnProperty(u)&&(c=je[u](a,s,t)),!c&&Ne.hasOwnProperty(l)&&(c=Ne[l](a,s)),"there"===l&&"s"===u&&(c=He(a,s)),c?(c=De(c,e),ae(n,[i,s],c),Ce(n[i],e,s,c.length)):Ae.test(a[s].normal)?(c=ye(a,s),c&&(c=De(c,e),ae(n,[i,s],c),r.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&r.one.setTag([c[0]],"Time",t,null,"time-range"),Ce(n[i],e,s,c.length))):(c=ke(a,s,t),c&&(c=De(c,e),ae(n,[i,s],c),r.one.setTag([c[1]],"Unit",t,null,"contraction-unit")))}}))},xe={model:ne,compute:{contractions:Ge},hooks:["contractions"]};const Te=function(e){const t=e.world,{model:n,methods:a}=e.world,r=a.one.setTag,{frozenLex:o}=n.one,i=n.one._multiCache||{};e.docs.forEach((e=>{for(let n=0;nn;a-=1){let i=e.slice(n,a+1),s=i.map((e=>e.machine||e.normal)).join(" ");!0!==o.hasOwnProperty(s)||(r(i,o[s],t,!1,"1-frozen-multi-lexicon"),i.forEach((e=>e.frozen=!0)))}void 0!==o[s]&&o.hasOwnProperty(s)&&(r([a],o[s],t,!1,"1-freeze-lexicon"),a.frozen=!0)}}))},Ee=e=>""+e+"",Fe=e=>""+e+"";var Oe=function(e){e.docs.forEach((e=>{console.log(Ee("\n โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€")),e.forEach((e=>{let t=` ${Fe("โ”‚")} `,n=e.implicit||e.text||"-";!0===e.frozen?t+=`${Ee(n)} โ„๏ธ`:t+=Fe(n),console.log(t)}))}))},ze={compute:{frozen:Te,freeze:Te,unfreeze:function(e){return e.docs.forEach((e=>{e.forEach((e=>{delete e.frozen}))})),e}},mutate:e=>{const t=e.methods.one;t.termMethods.isFrozen=e=>!0===e.frozen,t.debug.freeze=Oe,t.debug.frozen=Oe},api:function(e){e.prototype.freeze=function(){return this.docs.forEach((e=>{e.forEach((e=>{e.frozen=!0}))})),this},e.prototype.unfreeze=function(){this.compute("unfreeze")},e.prototype.isFrozen=function(){return this.match("@isFrozen+")}},hooks:["freeze"]},Ve=function(e,t,n){const{model:a,methods:r}=n,o=r.one.setTag,i=a.one._multiCache||{},{lexicon:s}=a.one||{};let l=e[t],u=l.machine||l.normal;if(void 0!==i[u]&&e[t+1]){for(let a=t+i[u]-1;a>t;a-=1){let r=e.slice(t,a+1);if(r.length<=1)return!1;let i=r.map((e=>e.machine||e.normal)).join(" ");if(!0===s.hasOwnProperty(i)){let e=s[i];return o(r,e,n,!1,"1-multi-lexicon"),!e||2!==e.length||"PhrasalVerb"!==e[0]&&"PhrasalVerb"!==e[1]||o([r[1]],"Particle",n,!1,"1-phrasal-particle"),!0}}return!1}return null};const Be=/^(under|over|mis|re|un|dis|semi|pre|post)-?/,Se=new Set(["Verb","Infinitive","PastTense","Gerund","PresentTense","Adjective","Participle"]);var Ke=function(e,t,n){const{model:a,methods:r}=n,o=r.one.setTag,{lexicon:i}=a.one;let s=e[t],l=s.machine||s.normal;if(void 0!==i[l]&&i.hasOwnProperty(l))return o([s],i[l],n,!1,"1-lexicon"),!0;if(s.alias){let e=s.alias.find((e=>i.hasOwnProperty(e)));if(e)return o([s],i[e],n,!1,"1-lexicon-alias"),!0}if(!0===Be.test(l)){let e=l.replace(Be,"");if(i.hasOwnProperty(e)&&e.length>3&&Se.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null},$e={lexicon:function(e){const t=e.world;e.docs.forEach((e=>{for(let n=0;n{let r=e[a],o=(a=(a=a.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);o.length>1&&(void 0===n[o[0]]||o.length>n[o[0]])&&(n[o[0]]=o.length),t[a]=t[a]||r})),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}},Le={addWords:function(e,t=!1){const n=this.world(),{methods:a,model:r}=n;if(!e)return;if(Object.keys(e).forEach((t=>{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))})),!0===t){let{lex:t,_multi:o}=a.one.expandLexicon(e,n);return Object.assign(r.one._multiCache,o),void Object.assign(r.one.frozenLex,t)}if(a.two.expandLexicon){let{lex:t,_multi:o}=a.two.expandLexicon(e,n);Object.assign(r.one.lexicon,t),Object.assign(r.one._multiCache,o)}let{lex:o,_multi:i}=a.one.expandLexicon(e,n);Object.assign(r.one.lexicon,o),Object.assign(r.one._multiCache,i)}},Je={model:{one:{lexicon:{},_multiCache:{},frozenLex:{}}},methods:{one:{expandLexicon:Me}},compute:$e,lib:Le,hooks:["lexicon"]},We=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;let r=n.one.tokenize.splitTerms(e,a).map((e=>n.one.tokenize.splitWhitespace(e,a)));return r.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 Ue=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 Qe=(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 Ze=function(e){return e.goNext=e.goNext.map((e=>{if(0!==Object.keys(e).length)return e})),e.goNext=Qe(e.goNext,void 0),e.failTo=Qe(e.failTo,0),e.endAs=Qe(e.endAs,null),e};const _e={buildTrie:function(e){const t=We(e,this.world());return Ze(t)}};_e.compile=_e.buildTrie;var Xe={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:We(e,this.world));var a;let r=Re(this,n,t);return r=r.settle(),r}},lib:_e};const Ye=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},et=function(e,t){let{ptrs:n,byGroup:a}=e;return n=Ye(n,t),Object.keys(a).forEach((e=>{a[e]=Ye(a[e],t)})),{ptrs:n,byGroup:a}},tt=function(e,t,n){const a=n.methods.one;return"number"==typeof e&&(e=String(e)),"string"==typeof e&&(e=a.killUnicode(e,n),e=a.parseMatch(e,t,n)),e},nt=e=>"[object Object]"===Object.prototype.toString.call(e),at=e=>e&&nt(e)&&!0===e.isView,rt=e=>e&&nt(e)&&!0===e.isNet;var ot={matchOne:function(e,t,n){const a=this.methods.one;if(at(e))return this.intersection(e).eq(0);if(rt(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;let r={regs:e=tt(e,n,this.world),group:t,justOne:!0},o=a.match(this.docs,r,this._cache),{ptrs:i,byGroup:s}=et(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const a=this.methods.one;if(at(e))return this.intersection(e);if(rt(e))return this.sweep(e,{tagger:!1}).view.settle();let r={regs:e=tt(e,n,this.world),group:t},o=a.match(this.docs,r,this._cache),{ptrs:i,byGroup:s}=et(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const a=this.methods.one;if(at(e))return this.intersection(e).fullPointer.length>0;if(rt(e))return this.sweep(e,{tagger:!1}).view.found;let r={regs:e=tt(e,n,this.world),group:t,justOne:!0};return a.match(this.docs,r,this._cache).ptrs.length>0},if:function(e,t,n){const a=this.methods.one;if(at(e))return this.filter((t=>t.intersection(e).found));if(rt(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}let r={regs:e=tt(e,n,this.world),group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter(((e,t)=>{let n=this.update([e]);return a.match(n.docs,r,i[t]).ptrs.length>0}));let s=this.update(o);return this._cache&&(s._cache=o.map((e=>i[e[0]]))),s},ifNo:function(e,t,n){const{methods:a}=this,r=a.one;if(at(e))return this.filter((t=>!t.intersection(e).found));if(rt(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}e=tt(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}},it={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 st=function(e,t){return[e[0],e[1],t[2]]},lt=(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},ut=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},ct={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let a=lt(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=>ut(e,this))),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let a=lt(e,this,t).fullPointer,r=n(this.fullPointer,a);for(let e=0;e{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(st(e.match,e.after)):o.push(e.match)})),o=o.filter((e=>e)),o=o.map((e=>ut(e,this))),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let a=lt(e,this,t).fullPointer,r=n(this.fullPointer,a),o=[];return r.forEach((e=>{o.push(e.passthrough),e.before&&e.match?o.push(st(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=>ut(e,this))),this.update(o)}};ct.split=ct.splitAfter;var dt=ct;const ht=function(e,t){return!(!e||!t)&&e[0]===t[0]&&e[2]===t[1]},gt=function(e,t,n){const a=e.world,r=a.methods.one.parseMatch;n=n||"^.";let o=r(t=t||".$",{},a),i=r(n,{},a);o[o.length-1].end=!0,i[0].start=!0;let s=e.fullPointer,l=[s[0]];for(let t=1;t)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,vt=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,yt=/ /g,wt=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),kt=function(e){return e=(e=e.map((e=>e.trim()))).filter((e=>e))};var Pt=function(e){let t=e.split(bt),n=[];t.forEach((e=>{wt(e)?n.push(e):n=n.concat(e.split(vt))})),n=kt(n);let a=[];return n.forEach((e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||wt(e)?a.push(e):a=a.concat(e.split(yt))})),a=kt(a),a};const At=/\{([0-9]+)?(, *[0-9]*)?\}/,Ct=/&&/,jt=new RegExp(/^<\s*(\S+)\s*>/),Nt=e=>e.charAt(0).toUpperCase()+e.substring(1),It=e=>e.charAt(e.length-1),Dt=e=>e.charAt(0),Ht=e=>e.substring(1),Gt=e=>e.substring(0,e.length-1),xt=function(e){return e=Ht(e),e=Gt(e)},Tt=function(e,t){let n={};for(let a=0;a<2;a+=1){if("$"===It(e)&&(n.end=!0,e=Gt(e)),"^"===Dt(e)&&(n.start=!0,e=Ht(e)),"?"===It(e)&&(n.optional=!0,e=Gt(e)),("["===Dt(e)||"]"===It(e))&&(n.group=null,"["===Dt(e)&&(n.groupStart=!0),"]"===It(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===Dt(e))){const t=jt.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===It(e)&&(n.greedy=!0,e=Gt(e)),"*"!==e&&"*"===It(e)&&"\\*"!==e&&(n.greedy=!0,e=Gt(e)),"!"===Dt(e)&&(n.negative=!0,e=Ht(e)),"~"===Dt(e)&&"~"===It(e)&&e.length>2&&(e=xt(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("/"===Dt(e)&&"/"===It(e))return e=xt(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if(!0===At.test(e)&&(e=e.replace(At,((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),"")))),"("===Dt(e)&&")"===It(e)){Ct.test(e)?(n.choices=e.split(Ct),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=Ht(n.choices[0]);let a=n.choices.length-1;n.choices[a]=Gt(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=>Tt(e,t))))),e=""}if("{"===Dt(e)&&"}"===It(e)){if(e=xt(e),n.root=e,/\//.test(e)){let e=n.root.split(/\//);n.root=e[0],n.pos=e[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==e[2]&&(n.sense=e[2])}return n}if("<"===Dt(e)&&">"===It(e))return e=xt(e),n.chunk=Nt(e),n.greedy=!0,n;if("%"===Dt(e)&&"%"===It(e))return e=xt(e),n.switch=e,n}return"#"===Dt(e)?(n.tag=Ht(e),n.tag=Nt(n.tag),n):"@"===Dt(e)?(n.method=Ht(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var Et=Tt;const Ft=/[a-z0-9][-โ€“โ€”][a-z]/i;var Ot=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&&Ft.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};const zt=function(e,t){let{all:n}=t.methods.two.transform.verb||{},a=e.root;return n?n(a,t.model):[]},Vt=function(e,t){let{all:n}=t.methods.two.transform.noun||{};return n?n(e.root,t.model):[e.root]},Bt=function(e,t){let{all:n}=t.methods.two.transform.adjective||{};return n?n(e.root,t.model):[e.root]};var St=function(e,t){return e=e.map((e=>{if(e.root)if(t.methods.two&&t.methods.two.transform){let n=[];e.pos?"Verb"===e.pos?n=n.concat(zt(e,t)):"Noun"===e.pos?n=n.concat(Vt(e,t)):"Adjective"===e.pos&&(n=n.concat(Bt(e,t))):(n=n.concat(zt(e,t)),n=n.concat(Vt(e,t)),n=n.concat(Bt(e,t))),n=n.filter((e=>e)),n.length>0&&(e.operator="or",e.fastOr=new Set(n))}else e.machine=e.root,delete e.id,delete e.root;return e}))},Kt=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}))),e},$t=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let a=Pt(e);return a=a.map((e=>Et(e,t))),a=Ot(a,n),a=St(a,n),a=Kt(a),a};const Mt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var Lt=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),Zt={hasQuote:e=>Wt.test(e.pre)||Ut.test(e.post),hasComma:e=>Qt(e,","),hasPeriod:e=>!0===Qt(e,".")&&!1===Qt(e,"..."),hasExclamation:e=>Qt(e,"!"),hasQuestionMark:e=>Qt(e,"?")||Qt(e,"ยฟ"),hasEllipses:e=>Qt(e,"..")||Qt(e,"โ€ฆ"),hasSemicolon:e=>Qt(e,";"),hasColon:e=>Qt(e,":"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>qt.test(e.post)||qt.test(e.pre),hasDash:e=>Rt.test(e.post)||Rt.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)};Zt.hasQuotation=Zt.hasQuote;var _t=Zt;let Xt=function(){};Xt=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.id&&t.id===e.id)return!0;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(Jt(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some((e=>e===t.word)))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof _t[t.method]&&!0===_t[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)}if(void 0!==t.chunk)return e.chunk===t.chunk;if(void 0!==t.switch)return e.switch===t.switch;if(void 0!==t.machine)return e.normal===t.machine||e.machine===t.machine||e.root===t.machine;if(void 0!==t.sense)return e.sense===t.sense;if(void 0!==t.fastOr){if(t.pos&&!e.tags.has(t.pos))return null;let n=e.root||e.implicit||e.machine||e.normal;return t.fastOr.has(n)||t.fastOr.has(e.text)}return void 0!==t.choices&&("and"===t.operator?t.choices.every((t=>Xt(e,t,n,a))):t.choices.some((t=>Xt(e,t,n,a))))}(e,t,n,a);return!0===t.negative?!r:r};var Yt=Xt;const en=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&&(tn(e,e.t).length=a-e.t),e.t=a,!0)};const an=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=Yt(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]&&Yt(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&&(tn(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},sn=function(e,t,n){let a=0;for(let r=e.t;ra||(e.t+=a,0))},ln=function(e){const{regs:t}=e;let n=t[e.r],a=Object.assign({},n);if(a.negative=!1,Yt(e.terms[e.t],a,e.start_i+e.t,e.phrase_length))return!1;if(n.optional){let n=t[e.r+1];n&&(Yt(e.terms[e.t],n,e.start_i+e.t,e.phrase_length)?e.r+=1:n.optional&&t[e.r+2]&&Yt(e.terms[e.t],t[e.r+2],e.start_i+e.t,e.phrase_length)&&(e.r+=2))}return n.greedy?sn(e,a,t[e.r+1]):(e.t+=1,!0)},un=function(e){const{regs:t}=e;let n=t[e.r],a=e.terms[e.t],r=Yt(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&&Yt(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}},cn=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},dn=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)}},hn=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]&&un(e),a.implicit&&e.terms[e.t+1]&&dn(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy?null:!0!==n.greedy||cn(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const a=tn(e,t);e.t>1&&n.greedy?a.length+=e.t-t:a.length++}(e,r),!0):null)},gn=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!==en(e,r)){if(e.negative){if(!ln(r))return null}else if(!0!==Yt(r.terms[r.t],e,r.start_i+r.t,r.phrase_length)){if(!0!==e.optional)return null}else if(!hn(r))return null}else if(!hn(r))return null}else{if(e.negative&&e.anything)return null;if(!hn(r))return null}else if(!on(r))return null}else if(!rn(r))return null}else if(!nn(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}},mn=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}},pn=function(e,t,n){return e=e.filter((e=>{let[a,r,o]=e.pointer,i=n[a].slice(r,o);for(let e=0;e{e.groups[n][0]=t})),e},bn=function(e,t,n){let a=gn(e,t,0,e.length);return a?(a=fn(a,n),a):null};var vn=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=bn(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]}))),t.notIf&&(i=pn(i,t.notIf,e)),i=mn(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},yn={api:ft,methods:{one:{termMethods:_t,parseMatch:$t,match:vn}},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 wn=/^\../,kn=/^#./,Pn=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,"'"),wn.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 An={html:function(e){let{starts:t,ends:n}=Pn(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(jn,""),In.test(r)&&(r=" "),r=r.replace(Nn,""),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(jn,""),r="-"===r?" ":r.replace(Cn,""));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&&Dn.test(r)||(r+=" "),a+=n+o+r})),!1===n&&(a=a.trim()),!0===t.lowerCase&&(a=a.toLowerCase()),a},Gn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{keepSpace:!1,whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{keepSpace:!1,whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};Gn.clean=Gn.normal,Gn.reduced=Gn.root;var xn=Gn;let Tn=[],En=0;for(;En<64;)Tn[En]=0|4294967296*Math.sin(++En%Math.PI);var Fn=function(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(En=i=0;En>4]+Tn[i]+~~o[En|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 On={text:!0,terms:!0};let zn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const Vn=function(e,t){return Object.assign({},e,t)},Bn={text:e=>Hn(e,{keepPunct:!0},!1),normal:e=>Hn(e,Vn(xn.normal,{keepPunct:!0}),!1),implicit:e=>Hn(e,Vn(xn.implicit,{keepPunct:!0}),!1),machine:e=>Hn(e,zn,!1),root:e=>Hn(e,Vn(zn,{form:"root"}),!1),hash:e=>Fn(Hn(e,{keepPunct:!0},!1)),offset:e=>{let t=Bn.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))};Bn.sentences=Bn.sentence,Bn.clean=Bn.normal,Bn.reduced=Bn.root;const Sn={json:function(e){let t=(n=this,"string"==typeof(a=(a=e)||{})&&(a={}),(a=Object.assign({},On,a)).offset&&n.compute("offset"),n.docs.map(((e,t)=>{let r={};return Object.keys(a).forEach((o=>{a[o]&&Bn[o]&&(r[o]=Bn[o](e,n,t))})),r})));var n,a;return"number"==typeof e?t[e]:t}};Sn.data=Sn.json;var Kn=Sn,$n=function(e){let t=this.methods.one.debug||{};return e&&t.hasOwnProperty(e)?(t[e](this),this):"undefined"!=typeof window&&window.document?(t.clientSide(this),this):(t.tags(this),this)};const Mn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var Ln=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()));return e.filter((e=>e))}if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};e.forEach((e=>{t[e]=t[e]||0,t[e]+=1}));let n=Object.keys(t).map((e=>({normal:e,count:t[e]})));return n.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.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()},wrap:function(e){return Ln(this,e)}};var Wn=Jn,Un={text:function(e){let t={};var n;if(e&&"string"==typeof e&&xn.hasOwnProperty(e)?t=Object.assign({},xn[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e)),void 0!==t.keepSpace||this.isFull()||(t.keepSpace=!1),void 0===t.keepEndPunct&&this.pointer){let e=this.pointer[0];e&&e[1]?t.keepEndPunct=!1:t.keepEndPunct=!0}return void 0===t.keepPunct&&(t.keepPunct=!0),void 0===t.keepSpace&&(t.keepSpace=!0),function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let a=0;a{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 Zn="";var _n={green:e=>""+e+Zn,red:e=>""+e+Zn,blue:e=>""+e+Zn,magenta:e=>""+e+Zn,cyan:e=>""+e+Zn,yellow:e=>""+e+Zn,black:e=>""+e+Zn,dim:e=>""+e+Zn,i:e=>""+e+Zn},Xn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(_n.blue("\n โ”€โ”€โ”€โ”€โ”€โ”€")),t.forEach((t=>{console.log(_n.blue("\n โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€")),t.forEach((t=>{let a=[...t.tags||[]],r=t.text||"-";t.sense&&(r=`{${t.normal}/${t.sense}}`),t.implicit&&(r="["+t.implicit+"]"),r=_n.yellow(r);let o="'"+r+"'";if(t.reference){let n=e.update([t.reference]).text("normal");o+=` - ${_n.dim(_n.i("["+n+"]"))}`}o=o.padEnd(18);let i=_n.blue(" โ”‚ ")+_n.i(o)+" - "+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 _n[n](e)}))),e.join(", ")}(a,n);console.log(i)}))})),console.log("\n")},Yn=function(e){let{docs:t}=e;console.log(""),t.forEach((e=>{let t=[];e.forEach((e=>{"Noun"===e.chunk?t.push(_n.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(_n.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(_n.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(_n.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)})),console.log(t.join(" "),"\n")})),console.log("\n")},ea=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]}${_n.blue(a[1])}${a[2]}`}(a,e.offset,t)})),console.log(a)})),console.log("\n")},ta={api:Rn,methods:{one:{hash:Fn,debug:{tags:Xn,clientSide:Qn,chunks:Yn,highlight:ea}}}};const na=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},aa=function(e){let t={};return e.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),t};var ra=function(e,t){let n=aa(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},oa=function(e,t){let n=[];return e.forEach(((a,r)=>{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<20;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},ia={one:{termList:function(e){let t=[];for(let n=0;n{let[t]=e;if(1===a[t].length)return void r.push(e);let n=a[t].filter((t=>na(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},ua=function(e,t){let n=aa(t),a=[];return e.forEach((e=>{let t=n[e[0]]||[];t=t.filter((t=>na(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},da=function(e,t){return e.map((e=>{let[n,a]=e;return t[n]&&t[n][a]&&(e[3]=t[n][a].id),e}))},ha={union:function(e){e=ca(e,this);let t=sa(this.fullPointer,e.fullPointer);return t=da(t,this.document),this.toView(t)}};ha.and=ha.union,ha.intersection=function(e){e=ca(e,this);let t=ua(this.fullPointer,e.fullPointer);return t=da(t,this.document),this.toView(t)},ha.not=function(e){e=ca(e,this);let t=la(this.fullPointer,e.fullPointer);return t=da(t,this.document),this.toView(t)},ha.difference=ha.not,ha.complement=function(){let e=this.all(),t=la(e.fullPointer,this.fullPointer);return t=da(t,this.document),this.toView(t)},ha.settle=function(){let e=this.fullPointer;return e.forEach((t=>{e=sa(e,[t])})),e=da(e,this.document),this.update(e)};var ga=function(e){Object.assign(e.prototype,ha)},ma={methods:ia,api:ga},pa=function(e){e.prototype.sweep=function(e,t={}){const{world:n,docs:a}=this,{methods:r}=n;let o=r.one.bulkMatch(a,e,this.methods,t);!1!==t.tagger&&r.one.bulkTagger(o,a,this.world),o=o.map((e=>{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}}};const fa=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var ba=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.notIf&&(e.notIf=n(e.notIf,{},t)),e.needs=function(e){let t=[];return e.forEach((e=>{t.push(fa(e)),"and"===e.operator&&e.choices&&e.choices.forEach((e=>{e.forEach((e=>{t.push(fa(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=fa(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},va=function(e,t){e=ba(e,t);let n={};e.forEach((e=>{e.needs.forEach((t=>{n[t]=Array.isArray(n[t])?n[t]:[],n[t].push(e)})),e.wants.forEach((t=>{n[t]=Array.isArray(n[t])?n[t]:[],n[t].push(e)}))})),Object.keys(n).forEach((e=>{let t={};n[e]=n[e].filter((e=>"boolean"!=typeof 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}},ya=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=>"boolean"!=typeof o[e.match]&&(o[e.match]=!0,!0))),r}))},wa=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=>a.has(e)))))).filter((e=>0===e.wants.length||e.wants.filter((e=>a.has(e))).length>=e.minWant))}))},ka=function(e,t,n,a,r){let o=[];for(let n=0;n0&&(l.ptrs.forEach((e=>{e[0]=n;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),o.push(t)})),!0===r.matchOne))return[o[0]]}return o},Pa=function(e,t,n,a={}){let r=n.one.cacheDoc(e),o=ya(r,t.hooks);return o=wa(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=e.filter((e=>a>=e.minWords)),e}))}(o,e),ka(o,e,r,n,a)},Aa=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{if(!e.tag&&!e.chunk&&!e.unTag)return;let r=e.reason||e.match,u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===Aa(u,e.tag,a))return;if("-"===u[u.length-1].post)return}if(void 0!==e.tag){if(i(u,e.tag,n,e.safe,`[post] '${r}'`),"Noun"===e.tag&&l){let t=u[u.length-1];l(t.text)?i([t],"Plural",n,e.safe,"quick-plural"):i([t],"Singular",n,e.safe,"quick-singular")}!0===e.freeze&&u.forEach((e=>e.frozen=!0))}void 0!==e.unTag&&s(u,e.unTag,n,e.safe,r),e.chunk&&u.forEach((t=>t.chunk=e.chunk))})))},ja={lib:{buildNet:function(e){let t=this.methods().one.buildNet(e,this.world());return t.isNet=!0,t}},api:pa,methods:{one:{buildNet:va,bulkMatch:Pa,bulkTagger:Ca}}};const Na=/ /,Ia=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},Da=function(e,t,n,a){if(!0===e.tags.has(t))return null;if("."===t)return null;!0===e.frozen&&(a=!0);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("string"==typeof t)if(t=t.trim(),Na.test(t))!function(e,t,n,a){let r=t.split(Na);e.forEach(((e,t)=>{let o=r[t];o&&(o=o.replace(/^#/,""),Da(e,o,n,a))}))}(e,t,o,a);else{t=t.replace(/^#/,"");for(let n=0;nHa(e,t,n,a)))};var Ga=Ha,xa=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=>Ea({id:e}))),t}return[Ea({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},Va=e=>"[object Array]"===Object.prototype.toString.call(e),Ba=e=>(e=e||"").trim(),Sa=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach((e=>{if(!e.trim()||Fa.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:Oa(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=Ea({});return e.forEach((e=>{if((e=Ea(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):(za(t=e).forEach(Ea),t);var t},Ka=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("โ†’ "));let a="";return za(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},$a=function(e){let t=za(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},Ma={text:Ka,txt:Ka,array:$a,flat:$a},La=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Ka(e,!0)),null):Ma.hasOwnProperty(t)?Ma[t](e):e},Ja=e=>{za(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))}))},Wa=/\//;let Ua=class g{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=Ba(e),!Wa.test(e)){let t=this.json.children.find((t=>t.id===e));return new g(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)||Ea({});return new g(t)}add(e,t={}){if(Va(e))return e.forEach((e=>this.add(Ba(e),t))),this;e=Ba(e);let n=Ea({id:e,props:t});return this.json.children.push(n),new g(n)}remove(e){return e=Ba(e),this.json.children=this.json.children.filter((t=>t.id!==e)),this}nodes(){return za(this.json).map((e=>(delete(e=Object.assign({},e)).children,e)))}cache(){return(e=>{let t=za(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 za(this.json)}fillDown(){var e;return e=this.json,za(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 Va(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])})),e))(t.props,e.props)})),this}depth(){Ja(this.json);let e=za(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 Ja(this.json),La(this.json,e)}debug(){return Ja(this.json),La(this.json,"debug"),this}};const qa=function(e){let t=Sa(e);return new Ua(t)};qa.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",Hyphenated:"cyan",Adverb:"cyan"};const Qa=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 Za=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:Qa(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 _a=function(e){return e?"string"==typeof e?[e]:e:[]};var Xa=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=_a(e[t].children),e[t].not=_a(e[t].not)})),Object.keys(e).forEach((t=>{(e[t].not||[]).forEach((n=>{e[n]&&e[n].not&&e[n].not.push(t)}))})),e},Ya=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=Xa(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 qa(t).cache().fillDown().out("array")}(Object.assign({},t,e));return Za(n)},er={one:{setTag:Ga,unTag:xa,addTags:Ya,canBe:Ta}};const tr=function(e){return"[object Array]"===Object.prototype.toString.call(e)},nr={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||""),tr(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 tr(e)?e.forEach((e=>a.one.unTag(n,e,i))):a.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){e=e.replace(/^#/,"");let t=this.model.one.tagSet,n=this.methods.one.canBe,a=[];this.document.forEach(((r,o)=>{r.forEach(((r,i)=>{n(r,e,t)||a.push([o,i,i+1])}))}));let r=this.update(a);return this.difference(r)}};var ar=nr,rr=function(e){Object.assign(e.prototype,ar)},or={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 ir=new Set(["Auxiliary","Possessive"]);var sr=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=e.sort(((e,n)=>{if(ir.has(e)||!t.hasOwnProperty(n))return 1;if(ir.has(n)||!t.hasOwnProperty(e))return-1;let a=t[e].children||[],r=a.length;return a=t[n].children||[],r-a.length})),e}(t,a)}))}))},lr={model:{one:{tagSet:{}}},compute:{tagRank:sr},methods:er,api:rr,lib:or};const ur=/([.!?\u203D\u2E18\u203C\u2047-\u2049\u3002]+\s)/g,cr=/^[.!?\u203D\u2E18\u203C\u2047-\u2049\u3002]+\s$/,dr=/((?:\r?\n|\r)+)/;var hr=function(e){let t=[],n=e.split(dr);for(let e=0;e0&&(r.push(o),e[t]="")}return r};const br={'"':'"',"๏ผ‚":"๏ผ‚","โ€œ":"โ€","โ€Ÿ":"โ€","โ€ž":"โ€","โน‚":"โ€","โ€š":"โ€™","ยซ":"ยป","โ€น":"โ€บ","โ€ต":"โ€ฒ","โ€ถ":"โ€ณ","โ€ท":"โ€ด","ใ€":"ใ€ž","ใ€Ÿ":"ใ€ž"},vr=RegExp("["+Object.keys(br).join("")+"]","g"),yr=RegExp("["+Object.values(br).join("")+"]","g"),wr=function(e){if(!e)return!1;let t=e.match(yr);return null!==t&&1===t.length};var kr=function(e){let t=[];for(let n=0;n(e[t]=!0,e)),{});var Vr=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(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=Tr(n),n=Gr(n),n=n.filter((e=>e)),n};const Br=/\p{Letter}/u,Sr=/[\p{Number}\p{Currency_Symbol}]/u,Kr=/^[a-z]\.([a-z]\.)+/i,$r=/[sn]['โ€™]$/;var Mr=function(e,t){let{prePunctuation:n,postPunctuation:a,emoticons:r}=t.one,o=e,i="",s="",l=Array.from(e);if(r.hasOwnProperty(e.trim()))return{str:e.trim(),pre:i,post:" "};let u=l.length;for(let e=0;e(s=e||"",""))),e=o,i=""),{str:e,pre:i,post:s}},Lr=(e,t)=>{let{str:n,pre:a,post:r}=Mr(e,t);return{text:n,pre:a,post:r,tags:new Set}},Jr=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("")},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 Ur=/([A-Z]\.)+[A-Z]?,?$/,qr=/^[A-Z]\.,?$/,Rr=/[A-Z]{2,}('s|,)?$/,Qr=/([a-z]\.)+[a-z]\.?$/;var Zr=function(e){return function(e){return!0===Ur.test(e)||!0===Qr.test(e)||!0===qr.test(e)||!0===Rr.test(e)}(e)&&(e=e.replace(/\./g,"")),e},_r=function(e,t){const n=t.methods.one.killUnicode;let a=e.text||"";a=Wr(a),a=n(a,t),a=Zr(a),e.normal=a},Xr=function(e,t){const{methods:n,model:a}=t,{splitSentences:r,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=r(e=e||"",t).map((e=>{let n=o(e,a);return n=n.map((e=>i(e,a))),n.forEach((e=>{_r(e,t)})),n})),e};const Yr=/[ .][A-Z]\.? *$/i,eo=/(?:\u2026|\.{2,}) *$/,to=/\p{L}/u,no=/\. *$/,ao=/^[A-Z]\. $/;var ro={one:{killUnicode:Jr,tokenize:{splitSentences:Ir,isSentence:function(e,t){if(!1===to.test(e))return!1;if(!0===Yr.test(e))return!1;if(3===e.length&&ao.test(e))return!1;if(!0===eo.test(e))return!1;let n=e.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),a=n[n.length-1].toLowerCase();return!0!==t.hasOwnProperty(a)||!0!==no.test(e)},splitTerms:Vr,splitWhitespace:Lr,fromString:Xr}}},oo={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let io={},so={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","ยตg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","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=>{io[t]=!0,so[t]="Abbreviation",void 0!==e[1]&&(so[t]=[so[t],e[1]])}))}));var lo=["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","ex"].reduce(((e,t)=>(e[t]=!0,e)),{});let uo={"!":"ยก","?":"ยฟษ",'"':'โ€œโ€"โโž',"'":"โ€˜โ€›โ›โœโ€™","-":"โ€”โ€“",a:"ยชร€รร‚รƒร„ร…ร รกรขรฃรครฅฤ€ฤฤ‚ฤƒฤ„ฤ…ววŽวžวŸว วกวบวปศ€ศศ‚ศƒศฆศงศบฮ†ฮ‘ฮ”ฮ›ฮฌฮฑฮปะะฐัฆังำำ‘ำ’ำ“ฦ›รฆ",b:"รŸรพฦ€ฦฦ‚ฦƒฦ„ฦ…ษƒฮ’ฮฒฯฯฆะ‘ะ’ะชะฌะฒัŠัŒัขัฃาŒา",c:"ยขยฉร‡รงฤ†ฤ‡ฤˆฤ‰ฤŠฤ‹ฤŒฤฦ†ฦ‡ฦˆศปศผอปอผฯฒฯนฯฝฯพะกัั”า€าาชาซ",d:"รฤŽฤฤฤ‘ฦ‰ฦŠศกฦ‹ฦŒ",e:"รˆร‰รŠร‹รจรฉรชรซฤ’ฤ“ฤ”ฤ•ฤ–ฤ—ฤ˜ฤ™ฤšฤ›ฦศ„ศ…ศ†ศ‡ศจศฉษ†ษ‡ฮˆฮ•ฮžฮฃฮญฮตฮพฯตะ€ะะ•ะตัั‘าผาฝาพาฟำ–ำ—แป…",f:"ฦ‘ฦ’ฯœฯำบำปา’า“ลฟ",g:"ฤœฤฤžฤŸฤ ฤกฤขฤฃฦ“วควฅวฆวงวดวต",h:"ฤคฤฅฤฆฤงฦ•วถศžศŸฮ‰ฮ—ะ‚ะŠะ‹ะะฝั’ั›าขาฃาคาฅาบาปำ‰ำŠ",I:"รŒรรŽร",i:"รฌรญรฎรฏฤจฤฉฤชฤซฤฌฤญฤฎฤฏฤฐฤฑฦ–ฦ—ศˆศ‰ศŠศ‹ฮŠฮฮชฮฏฮนฯŠะ†ะ‡ั–ั—iฬ‡",j:"ฤดฤตวฐศทษˆษ‰ฯณะˆั˜",k:"ฤถฤทฤธฦ˜ฦ™วจวฉฮšฮบะŒะ–ะšะถะบัœาšา›าœาาžาŸา าก",l:"ฤนฤบฤปฤผฤฝฤพฤฟล€ลล‚ฦšฦชว€ววศดศฝฮ™ำ€ำ",m:"ฮœฯบฯปะœะผำำŽ",n:"ร‘รฑลƒล„ล…ล†ล‡ลˆล‰ลŠล‹ฦฦžวธวนศ ศตฮฮ ฮฎฮทฯžะะ˜ะ™ะ›ะŸะธะนะปะฟัาŠา‹ำ…ำ†ำขำฃำคำฅฯ€",o:"ร’ร“ร”ร•ร–ร˜รฐรฒรณรดรตรถรธลŒลลŽลลล‘ฦŸฦ ฦกว‘ว’วชวซวฌวญวพวฟศŒศศŽศศชศซศฌศญศฎศฏศฐศฑฮŒฮ˜ฮŸฮธฮฟฯƒฯŒฯ•ฯ˜ฯ™ฯฌฯดะžะคะพัฒัณำฆำงำจำฉำชำซ",p:"ฦคฮกฯฯทฯธฯผะ ั€าŽารž",q:"ษŠษ‹",r:"ล”ล•ล–ล—ล˜ล™ฦฆศศ‘ศ’ศ“ษŒษะƒะ“ะฏะณัั“าา‘",s:"ลšล›ลœลลžลŸล ลกฦงฦจศ˜ศ™ศฟะ…ั•",t:"ลขลฃลคลฅลฆลงฦซฦฌฦญฦฎศšศ›ศถศพฮ“ฮคฯ„ฯฎะขั‚",u:"ร™รšร›รœรนรบรปรผลจลฉลชลซลฌลญลฎลฏลฐลฑลฒลณฦฏฦฐฦฑฦฒว“ว”ว•ว–ว—ว˜ว™วšว›วœศ”ศ•ศ–ศ—ษ„ฮฐฯ…ฯ‹ฯ",v:"ฮฝัดัตัถัท",w:"ลดลตฦœฯ‰ฯŽฯ–ฯขฯฃะจะฉัˆั‰ักัฟ",x:"ร—ฮงฯ‡ฯ—ฯฐะฅั…าฒาณำผำฝำพำฟ",y:"รรฝรฟลถลทลธฦณฦดศฒศณษŽษฮŽฮฅฮซฮณฯˆฯ’ฯ“ฯ”ะŽะฃัƒั‡ัžัฐัฑาฎาฏาฐาฑำฎำฏำฐำฑำฒำณ",z:"ลนลบลปลผลฝลพฦตฦถศคศฅษ€ฮ–"},co={};Object.keys(uo).forEach((function(e){uo[e].split("").forEach((function(t){co[t]=e}))}));const ho=/\//,go=/[a-z]\.[a-z]/i,mo=/[0-9]/;var po=function(e,t){let n=e.normal||e.text||e.machine;const a=t.model.one.aliases;if(a.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(a[n])),ho.test(n)&&!go.test(n)&&!mo.test(n)){let t=n.split(ho);t.length<=3&&t.forEach((t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))}))}return e};const fo=/^\p{Letter}+-\p{Letter}+$/u;var bo=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"),fo.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)},vo=function(e){let t=e.docs,n={};for(let e=0;ePo(e,po),machine:e=>Po(e,bo),normal:e=>Po(e,_r),freq:vo,offset:yo,index:wo,wordCount:ko},methods:ro,model:{one:{aliases:oo,abbreviations:io,prefixes:lo,suffixes:{like:!0,ish:!0,less:!0,able:!0,elect:!0,type:!0,designate:!0},prePunctuation:{"#":!0,"@":!0,_:!0,"ยฐ":!0,"โ€‹":!0,"โ€Œ":!0,"โ€":!0,"\ufeff":!0},postPunctuation:{"%":!0,_:!0,"ยฐ":!0,"โ€‹":!0,"โ€Œ":!0,"โ€":!0,"\ufeff":!0},lexicon:so,unicode:co,emoticons:{"<3":!0,"{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 Do={safe:!0,min:3};var Ho={typeahead:function(e=[],t={}){let n=this.model();var a;t=Object.assign({},Do,t),a=e,"[object Object]"===Object.prototype.toString.call(a)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let r=Io(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}},Go={model:{one:{typeahead:{}}},api:No,lib:Ho,compute:Co,hooks:["typeahead"]};b.extend(ee),b.extend(ta),b.extend(yn),b.extend(ma),b.extend(lr),b.plugin(xe),b.extend(Ao),b.extend(ze),b.plugin(k),b.extend(Xe),b.extend(Go),b.extend(Je),b.extend(ja);var xo={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",volcano:"volcanoes"},To={Comparative:"trueยฆbett1f0;arth0ew0in0;er",Superlative:"trueยฆearlier",PresentTense:"trueยฆbests,sounds",Condition:"trueยฆlest,unless",PastTense:"trueยฆbegan,came,d4had,kneel3l2m0sa4we1;ea0sg2;nt;eap0i0;ed;id",Participle:"trueยฆ0:09;a06b01cZdXeat0fSgQhPoJprov0rHs7t6u4w1;ak0ithdra02o2r1;i02uY;k0v0;nd1pr04;ergoJoJ;ak0hHo3;e9h7lain,o6p5t4un3w1;o1um;rn;g,k;ol0reS;iQok0;ught,wn;ak0o1runk;ne,wn;en,wn;ewriNi1uJ;dd0s0;ut3ver1;do4se0t1;ak0h2;do2g1;roG;ne;ast0i7;iv0o1;ne,tt0;all0loBor1;bi3g2s1;ak0e0;iv0o9;dd0;ove,r1;a5eamt,iv0;hos0lu1;ng;e4i3lo2ui1;lt;wn;tt0;at0en,gun;r2w1;ak0ok0;is0;en",Gerund:"trueยฆaccord0be0doin,go0result0stain0;ing",Expression:"trueยฆa0Yb0Uc0Sd0Oe0Mfarew0Lg0FhZjeez,lWmVnToOpLsJtIuFvEw7y0;a5e3i1u0;ck,p;k04p0;ee,pee;a0p,s;!h;!a,h,y;a5h2o1t0;af,f;rd up,w;atsoever,e1o0;a,ops;e,w;hoo,t;ery w06oi0L;gh,h0;! 0h,m;huh,oh;here nPsk,ut tut;h0ic;eesh,hh,it,oo;ff,h1l0ow,sst;ease,s,z;ew,ooey;h1i,mg,o0uch,w,y;h,o,ps;! 0h;hTmy go0wT;d,sh;a7evertheless,o0;!pe;eh,mm;ah,eh,m1ol0;!s;ao,fao;aCeBi9o2u0;h,mph,rra0zzC;h,y;l1o0;r6y9;la,y0;! 0;c1moCsmok0;es;ow;!p hip hoor0;ay;ck,e,llo,y;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;ell;e0h,t cetera,ureka,ww,xcuse me;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;mon,o0;ngratulations,wabunga;a2oo1r0tw,ye;avo,r;!ya;h,m; 1h0ka,las,men,rgh,ye;!a,em,h,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ยฆdick0gre0ones,records;ens","Unit|Noun":"trueยฆcEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,t,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s",Value:"trueยฆa few",Imperative:"trueยฆbewa0come he0;re","Plural|Verb":"trueยฆleaves",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:4Q;a3Tb3Bc2Od2He2Df27g1Zh1Ti1Pj1Nk1Ll1Gm12n0Po0Mp0Cqu0Br02sTtHuCv9w3xiaomi,y1;amaha,m1Bou1w1B;gov,tu3C;a4e2iki1orld trade organizati33;leaRped0O;lls fargo,st1;fie2Hinghou2R;l1rner br3U;gree3Jl street journ2Im1E;an halOeriz2Xisa,o1;dafo2Yl1;kswagMvo;b4kip,n2ps,s1;a tod3Aps;es3Mi1;lev3Fted natio3C;er,s; mobi32aco beRd bOe9gi frida3Lh3im horto3Amz,o1witt3D;shi49y1;ota,s r 05;e 1in lizzy;b3carpen3Jdaily ma3Dguess w2holli0s1w2;mashing pumpki35uprem0;ho;ea1lack eyed pe3Xyr0Q;ch bo3Dtl0;l2n3Qs1xas instrumen1U;co,la m1F;efoni0Kus;a8cientology,e5ieme2Ymirnoff,np,o3pice gir6quare0Ata1ubaru;rbuc1to34;ks;ny,undgard1;en;a2x pisto1;ls;g1Wrs;few2Minsbur31lesfor03msu2E;adiohead,b8e4o1yana3C;man empi1Xyal 1;b1dutch she4;ank;a3d 1max,vl20;bu1c2Ahot chili peppe2Ylobst2N;ll;ders dige1Ll madrid;c,s;ant3Aizn2Q;a8bs,e5fiz2Ihilip4i3r1;emier 1udenti1D;leagTo2K;nk floyd,zza hut; morrBs;psi2tro1uge0E;br33chi0Tn33;!co;lant2Un1yp16; 2ason27da2P;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0QvZ;l,s;c,st1Otflix,w1; 1sweek;kids on the block,york0D;a,c;nd22s2t1;ional aca2Po,we0U;a,c02d0S;aDcdonalCe9i6lb,o3tv,y1;spa1;ce;b1Tnsanto,ody blu0t1;ley cr1or0T;ue;c2t1;as,subisO;helin,rosoft;dica2rcedes benz,talli1;ca;id,re;ds;cs milk,tt19z24;a3e1g,ittle caesa1P; ore09novo,x1;is,mark,us; 1bour party;pres0Dz boy;atv,fc,kk,lm,m1od1O;art;iffy lu0Roy divisi0Jpmorgan1sa;! cha09;bm,hop,k3n1tv;g,te1;l,rpol;ea;a5ewlett pack1Vi3o1sbc,yundai;me dep1n1P;ot;tac1zbollah;hi;lliburt08sbro;eneral 6hq,ithub,l5mb,o2reen d0Ou1;cci,ns n ros0;ldman sachs,o1;dye1g0H;ar;axo smith kli04encoW;electr0Nm1;oto0Z;a5bi,c barcelo4da,edex,i2leetwood m03o1rito l0G;rd,xcY;at,fa,nancial1restoZ; tim0;na;cebook,nnie mae;b0Asa,u3xxon1; m1m1;ob0J;!rosceptics;aiml0De5isney,o4u1;nkin donu2po0Zran dur1;an;ts;j,w jon0;a,f lepp12ll,peche mode,r spieg02stiny's chi1;ld;aJbc,hFiDloudflaCnn,o3r1;aigsli5eedence clearwater reviv1ossra09;al;c7inba6l4m1o0Est09;ca2p1;aq;st;dplSg1;ate;se;a c1o chanQ;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil a,na daily;r1y;on;d2pital o1rls jr;ne;bury,ill1;ac;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;cardi,idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser busDol,ppleAr6s4u3v2y1;er;is,on;di,todesk;hland o1sociated E;il;b3g2m1;co;os;ys; compu1be0;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ยฆits,my,our0thy;!s","Noun|Verb":"trueยฆ0:9W;1:AA;2:96;3:A3;4:9R;5:A2;6:9K;7:8N;8:7L;9:A8;A:93;B:8D;C:8X;a9Ob8Qc7Id6Re6Gf5Sg5Hh55i4Xj4Uk4Rl4Em40n3Vo3Sp2Squ2Rr21s0Jt02u00vVwGyFzD;ip,oD;ne,om;awn,e6Fie68;aOeMhJiHoErD;ap,e9Oink2;nd0rDuC;kDry,sh5Hth;!shop;ck,nDpe,re,sh;!d,g;e86iD;p,sD;k,p0t2;aDed,lco8W;r,th0;it,lk,rEsDt4ve,x;h,te;!ehou1ra9;aGen5FiFoD;iDmAte,w;ce,d;be,ew,sA;cuum,l4B;pDr7;da5gra6Elo6A;aReQhrPiOoMrGuEwiDy5Z;n,st;nDrn;e,n7O;aGeFiEoDu6;t,ub2;bu5ck4Jgg0m,p;at,k,nd;ck,de,in,nsDp,v7J;f0i8R;ll,ne,p,r4Yss,t94uD;ch,r;ck,de,e,le,me,p,re;e5Wow,u6;ar,e,ll,mp0st,xt;g,lDng2rg7Ps5x;k,ly;a0Sc0Ne0Kh0Fi0Dk0Cl0Am08n06o05pXquaBtKuFwD;ea88iD;ng,pe,t4;bGit,m,ppErD;fa3ge,pri1v2U;lDo6S;e6Py;!je8;aMeLiKoHrEuDy2;dy,ff,mb2;a85eEiDo5Pugg2;ke,ng;am,ss,t4;ckEop,p,rD;e,m;ing,pi2;ck,nk,t4;er,m,p;ck,ff,ge,in,ke,lEmp,nd,p2rDte,y;!e,t;k,l;aJeIiHlGoFrDur,y;ay,e56inDu3;g,k2;ns8Bt;a5Qit;ll,n,r87te;ed,ll;m,n,rk;b,uC;aDee1Tow;ke,p;a5Je4FiDo53;le,rk;eep,iDou4;ce,p,t;ateboa7Ii;de,gnDl2Vnk,p,ze;!al;aGeFiEoDuff2;ck,p,re,w;ft,p,v0;d,i3Ylt0;ck,de,pe,re,ve;aEed,nDrv1It;se,t2N;l,r4t;aGhedu2oBrD;aEeDibb2o3Z;en,w;pe,t4;le,n,r2M;cDfegua72il,mp2;k,rifi3;aZeHhy6LiGoEuD;b,in,le,n,s5X;a6ck,ll,oDpe,u5;f,t;de,ng,ot,p,s1W;aTcSdo,el,fQgPje8lOmMnLo17pJque6sFturn,vDwa6V;eDi27;al,r1;er74oFpe8tEuD;lt,me;!a55;l71rt;air,eaDly,o53;l,t;dezvo2Zt;aDedy;ke,rk;ea1i4G;a6Iist0r5N;act6Yer1Vo71uD;nd,se;a38o6F;ch,s6G;c1Dge,iEke,lly,nDp1Wt1W;ge,k,t;n,se;es6Biv0;a04e00hYiXlToNrEsy4uD;mp,n4rcha1sh;aKeIiHoDu4O;be,ceFdu3fi2grDje8mi1p,te6;amDe6W;!me;ed,ss;ce,de,nt;sDy;er6Cs;cti3i1;iHlFoEp,re,sDuCw0;e,i5Yt;l,p;iDl;ce,sh;nt,s5V;aEce,e32uD;g,mp,n7;ce,nDy;!t;ck,le,n17pe,tNvot;a1oD;ne,tograph;ak,eFnErDt;fu55mA;!c32;!l,r;ckJiInHrFsEtDu1y;ch,e9;s,te;k,tD;!y;!ic;nt,r,se;!a7;bje8ff0il,oErDutli3Qver4B;bAd0ie9;ze;a4ReFoDur1;d,tD;e,i3;ed,gle8tD;!work;aMeKiIoEuD;rd0;ck,d3Rld,nEp,uDve;nt,th;it5EkD;ey;lk,n4Brr5CsDx;s,ta2B;asuBn4UrDss;ge,it;il,nFp,rk3WsEtD;ch,t0;h,k,t0;da5n0oeuvB;aLeJiHoEuD;mp,st;aEbby,ck,g,oDve;k,t;d,n;cDe,ft,mAnIst;en1k;aDc0Pe4vK;ch,d,k,p,se;bFcEnd,p,t4uD;gh,n4;e,k;el,o2U;eEiDno4E;ck,d,ll,ss;el,y;aEo1OuD;i3mp;m,zz;mpJnEr46ssD;ue;c1Rdex,fluGha2k,se2HteDvoi3;nt,rD;e6fa3viD;ew;en3;a8le2A;aJeHiGoEuD;g,nt;l3Ano2Dok,pDr1u1;!e;ghli1Fke,nt,re,t;aDd7lp;d,t;ck,mGndFrEsh,tDu9;ch,e;bo3Xm,ne4Eve6;!le;!m0;aMear,ift,lKossJrFuD;arDe4Alp,n;antee,d;aFiEoDumb2;uCwth;ll,nd,p;de,sp;ip;aBoDue;ss,w;g,in,me,ng,s,te,ze;aZeWiRlNoJrFuD;ck,el,nDss,zz;c38d;aEoDy;st,wn;cDgme,me,nchi1;tuB;cFg,il,ld,rD;ce,e29mDwa31;!at;us;aFe0Vip,oDy;at,ck,od,wD;!er;g,ke,me,re,sh,vo1E;eGgFlEnDre,sh,t,x;an3i0Q;e,m,t0;ht,uB;ld;aEeDn3;d,l;r,tuB;ce,il,ll,rm,vo2W;cho,d7ffe8nMsKxFyeD;!baD;ll;cGerci1hFpDtra8;eriDo0W;en3me9;au6ibA;el,han7u1;caDtima5;pe;count0d,vy;a01eSiMoJrEuDye;b,el,mp,pli2X;aGeFiEoD;ne,p;ft,ll,nk,p,ve;am,ss;ft,g,in;cEd7ubt,wnloD;ad;k,u0E;ge6p,sFt4vD;e,iDor3;de;char7gui1h,liEpD;at4lay,u5;ke;al,bKcJfeIlGmaCposAsEtaD;il;e07iD;gn,re;ay,ega5iD;ght;at,ct;li04rea1;a5ut;b,ma7n3rDte;e,t;a0Eent0Dh06irc2l03oKrFuD;be,e,rDt;b,e,l,ve;aGeFoEuDy;sh;p,ss,wd;dAep;ck,ft,sh;at,de,in,lTmMnFordina5py,re,st,uDv0;gh,nDp2rt;s01t;ceHdu8fli8glomeIsFtDveN;a8rD;a6ol;e9tru8;ct;ntDrn;ra5;bHfoGmFpD;leDouCromi1;me9;aCe9it,u5;rt;at,iD;ne;lap1oD;r,ur;aEiDoud,ub;ck,p;im,w;aEeDip;at,ck,er;iGllen7nErD;ge,m,t;ge,nD;el;n,r;er,re;ke,ll,mp,noe,pGrXsFtEuDve;se,ti0I;alog,ch;h,t;!tuB;re;a03eZiXlToPrHuEyD;pa11;bb2ck2dgEff0mp,rDst,zz;den,n;et;anJeHiFoadEuD;i1sh;ca6;be,d7;ge;aDed;ch,k;ch,d;aFg,mb,nEoDrd0tt2x,ycott;k,st,t;d,e;rd,st;aFeCiDoYur;nk,tz;nd;me;as,d,ke,nd,opsy,tD;!ch,e;aFef,lt,nDt;d,efA;it;r,t;ck,il,lan3nIrFsEtt2;le;e,h;!gDk;aDe;in;!d,g,k;bu1c05dZge,iYlVnTppQrLsIttGucEwaD;rd;tiD;on;aDempt;ck;k,sD;i6ocia5;st;chFmD;!oD;ur;!iD;ve;eEroa4;ch;al;chDg0sw0;or;aEt0;er;rm;d,m,r;dreHvD;an3oD;ca5;te;ce;ss;cDe,he,t;eFoD;rd,u9;nt;nt,ss;se",Actor:"trueยฆ0:7B;1:7G;2:6A;3:7F;4:7O;5:7K;a6Nb62c4Ud4Be41f3Sg3Bh30i2Uj2Qkin2Pl2Km26n1Zo1Sp0Vqu0Tr0JsQtJuHvEw8yo6;gi,ut6;h,ub0;aAe9i8o7r6;estl0it0;m2rk0;fe,nn0t2Bza2H;atherm2ld0;ge earn0it0nder0rri1;eter7i6oyF;ll5Qp,s3Z;an,ina2U;n6s0;c6Uder03;aoisea23e9herapi5iktok0o8r6ut1yco6S;a6endseLo43;d0mp,nscri0Bvel0;ddl0u1G;a0Qchn7en6na4st0;ag0;i3Oo0D;aiXcUeRhPiMki0mu26oJpGquaFtBu7wee6;p0theart;lt2per7r6;f0ge6Iviv1;h6inten0Ist5Ivis1;ero,um2;a8ep7r6;ang0eam0;bro2Nc2Ofa2Nmo2Nsi20;ff0tesm2;tt0;ec7ir2Do6;kesp59u0M;ia5Jt3;l7me6An,rcere6ul;r,ss;di0oi5;n7s6;sy,t0;g0n0;am2ephe1Iow6;girl,m2r2Q;cretInior cit3Fr6;gea4v6;a4it1;hol4Xi7reen6ulpt1;wr2C;e01on;l1nt;aEe9o8u6;l0nn6;er up,ingE;g40le mod3Zof0;a4Zc8fug2Ppo32searQv6;ere4Uolution6;ary;e6luYru22;ptio3T;bbi,dic5Vpp0;arter6e2Z;back;aYeWhSiRlOoKr8sycho7u6;nk,p31;logi5;aGeDiBo6;d9fess1g7ph47s6;pe2Ktitu51;en6ramm0;it1y;igy,uc0;est4Nme mini0Unce6s3E;!ss;a7si6;de4;ch0;ctiti39nk0P;dca0Oet,li6pula50rnst42;c2Itic6;al scie6i2;nti5;a6umb0;nn0y6;er,ma4Lwright;lgrim,one0;a8iloso7otogra7ra6ysi1V;se;ph0;ntom,rmaci5;r6ssi1T;form0s4O;i3El,nel3Yr8st1tr6wn;i6on;arWot;ent4Wi42tn0;ccupa4ffBp8r7ut6;ca5l0B;ac4Iganiz0ig2Fph2;er3t6;i1Jomet6;ri5;ic0spring;aBe9ie4Xo7u6;n,rser3J;b6mad,vi4V;le2Vo4D;i6mesis,phew;ce,ghb1;nny,rr3t1X;aEeDiAo7u6yst1Y;m8si16;der3gul,m7n6th0;arDk;!my;ni7s6;f02s0Jt0;on,st0;chan1Qnt1rcha4;gi9k0n8rtyr,t6y1;e,riar6;ch;ag0iac;ci2stra3I;a7e2Aieutena4o6;rd,s0v0;bor0d7ndlo6ss,urea3Fwy0ym2;rd;!y;!s28;e8o7u6;ggl0;gg0urna2U;st0;c3Hdol,llu3Ummigra4n6; l9c1Qfa4habi42nov3s7ve6;nt1stig3;pe0Nt6;a1Fig3ru0M;aw;airFeBistoAo8u6ygie1K;man6sba2H;!ita8;bo,st6usekN;age,e3P;ri2;ir,r6;m7o6;!ine;it;dress0sty2C;aLeIhostGirl26ladi3oCrand7u6;e5ru;c9daug0Jfa8m7pa6s2Y;!re4;a,o6;th0;hi1B;al7d6lf0;!de3A;ie,k6te26;eep0;!wr6;it0;isha,n6;i6tl04;us;mbl0rden0;aDella,iAo7r6;eela2Nie1P;e,re6ster pare4;be1Hm2r6st0;unn0;an2ZgZlmm17nanci0r6tt0;e6st la2H; marsh2OfigXm2;rm0th0;conoEdDlectriCm8n7x6;amin0cellency,i2A;emy,trepreneur,vironmenta1J;c8p6;er1loye6;e,r;ee;ci2;it1;mi5;aKeBi8ork,ri7u6we02;de,tche2H;ft0v0;ct3eti7plom2Hre6va;ct1;ci2ti2;aDcor3fencCi0InAput9s7tectLvel6;op0;ce1Ge6ign0;rt0;ee,y;iz6;en;em2;c1Ml0;d8nc0redev7ug6;ht0;il;!dy;a06e04fo,hXitizenWlToBr9u6;r3stomer6;! representat6;ive;e3it6;ic;lJmGnAord9rpor1Nu7w6;boy,ork0;n6ri0;ciTte1Q;in3;fidantAgressSs9t6;e0Kr6;ibut1o6;ll0;tab13ul1O;!e;edi2m6pos0rade;a0EeQissi6;on0;leag8on7um6;ni5;el;ue;e6own;an0r6;ic,k;!s;a9e7i6um;ld;erle6f;ad0;ir7nce6plFract0;ll1;m2wI;lebri6o;ty;dBptAr6shi0;e7pe6;nt0;r,t6;ak0;ain;et;aMeLiJlogg0oErBu6;dd0Fild0rgl9siness6;m2p7w6;om2;ers05;ar;i7o6;!k0th0;cklay0de,gadi0;hemi2oge8y6;!frie6;nd;ym2;an;cyc6sR;li5;atbox0ings;by,nk0r6;b0on7te6;nd0;!e07;c04dWge4nQpLrHsFtAu7yatull6;ah;nt7t6;h1oG;!ie;h8t6;e6orney;nda4;ie5le6;te;sis00tron6;aut,om0;chbis8isto7tis6;an,t;crU;hop;ost9p6;ari6rentiS;ti6;on;le;a9cest1im3nou8y6;bo6;dy;nc0;ly5rc6;hi5;mi8v6;entur0is1;er;ni7r6;al;str3;at1;or;counBquaintanArob9t6;ivi5or,re6;ss;st;at;ce;ta4;nt","Adj|Noun":"trueยฆ0:16;a1Db17c0Ud0Re0Mf0Dg0Ah08i06ju05l02mWnUoSpNrIsBt7u4v1watershed;a1ision0Z;gabo4nilla,ria1;b0Vnt;ndergr1pstairs;adua14ou1;nd;a3e1oken,ri0;en,r1;min0rori13;boo,n;age,e5ilv0Flack,o3quat,ta2u1well;bordina0Xper5;b0Lndard;ciali0Yl1vereign;e,ve16;cret,n1ri0;ior;a4e2ou1ubbiL;nd,tiY;ar,bBl0Wnt0p1side11;resent0Vublican;ci0Qsh;a4eriodic0last0Zotenti0r1;emi2incip0o1;!fession0;er,um;rall4st,tie0U;ff1pposi0Hv0;ens0Oi0C;agg01ov1uts;el;a5e3iniatJo1;bi01der07r1;al,t0;di1tr0N;an,um;le,riG;attOi2u1;sh;ber0ght,qC;stice,veniT;de0mpressioYn1;cumbe0Edividu0no0Dsta0Eterim;alf,o1umdrum;bby,melF;en2old,ra1;ph0Bve;er0ious;a7e5i4l3u1;git03t1;ure;uid;ne;llow,m1;aFiL;ir,t,vo1;riOuriO;l3p00x1;c1ecutUpeV;ess;d1iK;er;ar2e1;mographUrivO;k,l2;hiGlassSo2rude,unn1;ing;m5n1operK;creCstitueOte2vertab1;le;mpor1nt;ary;ic,m2p1;anion,lex;er2u1;ni8;ci0;al;e5lank,o4r1;i2u1;te;ef;ttom,urgeois;st;cadem9d6l2ntarct9r1;ab,ct8;e3tern1;at1;ive;rt;oles1ult;ce1;nt;ic","Adj|Past":"trueยฆ0:4Q;1:4C;2:4H;3:4E;a44b3Tc36d2Je29f20g1Wh1Si1Jj1Gkno1Fl1Am15n12o0Xp0Mqu0Kr08sLtEuAv9w4yellow0;a7ea6o4rinkl0;r4u3Y;n,ri0;k31th3;rp0sh0tZ;ari0e1O;n5p4s0;d1li1Rset;cov3derstood,i4;fi0t0;a8e3Rhr7i6ouTr4urn0wi4C;a4imm0ou2G;ck0in0pp0;ed,r0;eat2Qi37;m0nn0r4;get0ni2T;aOcKeIhGimFm0Hoak0pDt7u4;bsid3Ogge44s4;pe4ta2Y;ct0nd0;a8e7i2Eok0r5u4;ff0mp0nn0;ength2Hip4;ed,p0;am0reotyp0;in0t0;eci4ik0oH;al3Efi0;pRul1;a4ock0ut;d0r0;a4c1Jle2t31;l0s3Ut0;a6or5r4;at4e25;ch0;r0tt3;t4ut0;is2Mur1;aEe5o4;tt0;cAdJf2Bg9je2l8m0Knew0p7qu6s4;eTpe2t4;or0ri2;e3Dir0;e1lac0;at0e2Q;i0Rul1;eiv0o4ycl0;mme2Lrd0v3;in0lli0ti2A;a4ot0;li28;aCer30iBlAo9r5u4;mp0zzl0;e6i2Oo4;ce2Fd4lo1Anou30pos0te2v0;uc0;fe1CocCp0Iss0;i2Kli1L;ann0e2CuS;ck0erc0ss0;ck0i2Hr4st0;allLk0;bse7c6pp13rgan2Dver4;lo4whelm0;ok0;cupi0;rv0;aJe5o4;t0uri1A;ed0gle2;a6e5ix0o4ut0ys1N;di1Nt15u26;as0Clt0;n4rk0;ag0ufact0A;e6i5o4;ad0ck0st,v0;cens0m04st0;ft,v4;el0;tt0wn;a5o15u4;dg0s1B;gg0;llumSmpAn4sol1;br0cre1Ldebt0f8jZspir0t5v4;it0olv0;e4ox0Y;gr1n4re23;d0si15;e2l1o1Wuri1;li0o01r4;ov0;a6e1o4um03;ok0r4;ri0Z;mm3rm0;i6r5u4;a1Bid0;a0Ui0Rown;ft0;aAe9i8l6oc0Ir4;a4i0oz0Y;ctHg19m0;avo0Ju4;st3;ni08tt0x0;ar0;d0il0sc4;in1;dCl1mBn9quipp0s8x4;agger1c6p4te0T;a0Se4os0;ct0rie1D;it0;cap0tabliZ;cha0XgFha1As4;ur0;a0Zbarra0N;i0Buc1;aMeDi5r4;a01i0;gni08miniSre2s4;a9c6grun0Ft4;o4re0Hu17;rt0;iplWou4;nt0r4;ag0;bl0;cBdRf9l8p7ra6t5v4;elop0ot0;ail0ermQ;ng0;re07;ay0ight0;e4in0o0M;rr0;ay0enTor1;m5t0z4;ed,zl0;ag0p4;en0;aPeLhIlHo9r6u4;lt4r0stom03;iv1;a5owd0u4;sh0;ck0mp0;d0loAm7n4ok0v3;centr1f5s4troC;id3olid1;us0;b5pl4;ic1;in0;r0ur0;assi9os0utt3;ar5i4;ll0;g0m0;lebr1n6r4;ti4;fi0;tralJ;g0lcul1;aDewild3iCl9o7r5urn4;ed,t;ok4uis0;en;il0r0t4und;tl0;e5i4;nd0;ss0;as0;ffl0k0laMs0tt3;bPcNdKfIg0lFmaz0nDppBrm0ss9u5wa4;rd0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;a5leg0t3;er0;rm0;fe2;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;and5so4;rb0;on0;ed",Singular:"trueยฆ0:5I;1:5G;2:4V;3:4R;4:51;5:56;6:5K;a4Zb4Ic3Ld33e2Vf2Mg2Hh26in22j21k20l1Sm1Jn1Fo19p0Pqu0Or0DsXtKuFvAw7x r55yo yo;a7ha3No3O;f3i4Ot0Ey7;! arou37;arAe8ideo ga2Oo7;cabu4Gl59;gMr7t;di4Wt1W;iety,ni4M;n9p2Yr8s 7;do41s5B;bani1in0;coordinat38der7;estima1to22we3Z; rex,aIeHhFiDoCr9u8v7;! show;m2Mn2rntJto1B;agedy,ib7o4B;e,u7;n0ta43;ni1p2rq3J;c,er,m7;etD;ing7ree24;!y;am,mp3D;ct2le6x return;aLcKeIhor4NiHkFoEpin off,tBu9y7;ll7ner4Jst4Q;ab2V;b7i1n26per bowl,rro1V;st3Jtot0;at8ipe2Eo1Jrate4Fudent7;! lo0G;i37u1;ft ser4Imeo1G;elet5i7;ll,r3S;b36gn2Rte;ab2Hc7min39;t,urity gua2L;e6ho2W;bbatic0la3Gndwi0Opi5;av5eBhetor2i8o7;de6om,w;t8v7;erb2A;e,u0;bBc9f7publ2r0Yspi1;er7orm3;e6r0;i7ord label;p2Ft0;a1u43;estion mark,ot2D;aNeKhoJiGlEoCr8u7yram1D;ddi3EpCrpo1Hs3G;e9o7;bl3Ws7;pe3Gta1;dic1Pmi1Dp1Oroga3Sss relea1D;p7rt0;py;a7ebisci1;q2Bte;cn2e8g7;!gy;!r;ne call,tocoI;anut,d8r7t0yo1;cen3Gsp3H;al,est0;nop4r8t7;e,hog5;adi0Zi2S;atme0bj3Cc9pia1rde0thers,utspok5ve7wn3;n,r7;ti0Nview;cu8e7;an;pi3;ar9it8ot7umb3;a2Chi2O;e,ra1;cot2ra34;aDeAi8o7ur0;nopo4p16rni2Ksq1Pti33uld;c,li0Zn08s7tt5;chief,si31;d8nu,t7;al,i3;al,ic;gna1mm0nd13rsupi0te7yf4;ri0;aBegAi9u7;ddi1n7;ch;me,p07; 9e0K;bor12y7; 7er;up;eyno1itt5;el4ourn0;c9dices,itia2Kni22s8tel0Jvert7;eb1H;e25titu1;en2Hi2Q;aGeCighBo8u7;man right,s1Z;me7rmoDsp1Dtb0I;! r7;un; scho0WriW;a7i1K;d7v5; start,pho7;ne;ndful,sh brown,v5ze;a9elat0Glaci3r7ul4yp1P;an7enadi3id;a19d slam,ny;df4r7;l2ni1F;aEeti1EiDlu1oAr8un7;er0;ee market,i7onti3;ga1;l4ur7;so7;me;eNref4;br2mi4;conoDffi1Mgg,lecto0Pmbas1BnApidem2s1Wth2ven9x8yel7;id;ampXempl0Lte6;i16t;er1Iterp7;ri7;se;my;eJiCo9r7ump tru0R;agonf4i7;er,ve thru;c8g1Bi4or,ssi3wn7;side;to0CumenC;aCgniBnn3s8vide7;nd;conte6incen1Bp7tri0Y;osi7;tion;ta0E;le0U;ath9c8f7ni0terre6;ault 03err0;al,im0;!b7;ed;aUeRhKiJlHoBr7;edit ca9uc7;ib7;le;rd;efficBke,lAmmuniqJns8pi3rr0t0Uus7yo1;in;erv7uG;atoZ;ic,lO;ie6;er0Li7oth;e6n2;ty,vil wK;aBeqAick5oco9r7;istmas car7ysanthemum;ol;la1;ue;ndeli3racteri7;st2;i8llCr7;e0tifica1;liW;hi3nDpCrAt7ucus;erpi7hedr0;ll7;ar;!bohyd7ri3;ra1;it0;a7e,nib0;l,ry;aKeJiop2leHoFrBu7;nny,r7tterf4;g7i0;la7;ry;eak8i7;ck;fa7thro9;st;dy,ro7wl;ugh;mi7;sh;an,l4;nki8rri3;er;ng;cQdKlGnDppeti1rBs9tt2utop7;sy;ic;ce6pe7;ct;r7sen0;ay;ec8oma4ti8;ly;do1;i5l7;er7y;gy;en; hominBj8van7;tage;ec7;ti7;ve;em;cAe8qui7;tt0;ta1;te;i8ru0;al;de6;nt","Person|Noun":"trueยฆa0Eb07c03dWeUfQgOhLjHkiGlFmCnBolive,p7r4s3trini06v1wa0;ng,rd,tts;an,enus,iol0;a,et;ky,onPumm09;ay,e1o0uby;bin,d,se;ed,x;a2e1o0;l,tt04;aLnJ;dYge,tR;at,orm;a0eloW;t0x,ya;!s;a9eo,iH;ng,tP;a2e1o0;lGy;an,w3;de,smi4y;a0erb,iOolBuntR;ll,z0;el;ail,e0iLuy;ne;a1ern,i0lo;elds,nn;ith,n0;ny;a0dEmir,ula,ve;rl;a4e3i1j,ol0;ly;ck,x0;ie;an,ja;i0wn;sy;am,h0liff,rystal;a0in,ristian;mbers,ri0;ty;a4e3i2o,r0ud;an0ook;dy;ll;nedict,rg;k0nks;er;l0rt;fredo,ma","Actor|Verb":"trueยฆaCb8c5doctor,engineAfool,g3host,judge,m2nerd,p1recruit,scout,ushAvolunteAwi0;mp,tneA;arent,ilot;an,ime;eek,oof,r0uide;adu8oom;ha1o0;ach,nscript,ok;mpion,uffeur;o2u0;lly,tch0;er;ss;ddi1ffili0rchite1;ate;ct",MaleName:"trueยฆ0:H6;1:FZ;2:DS;3:GQ;4:CZ;5:FV;6:GM;7:FP;8:GW;9:ET;A:C2;B:GD;aF8bE1cCQdBMeASfA1g8Yh88i7Uj6Sk6Bl5Mm48n3So3Ip33qu31r26s1Et0Ru0Ov0CwTxSyHzC;aCor0;cChC1karia,nAT;!hDkC;!aF6;!ar7CeF5;aJevgenBSoEuC;en,rFVsCu3FvEF;if,uf;nDs6OusC;ouf,s6N;aCg;s,tC;an,h0;hli,nCrosE1ss09;is,nC;!iBU;avi2ho5;aPeNiDoCyaEL;jcieBJlfgang,odrFutR;lFnC;f8TsC;lCt1;ow;bGey,frEhe4QlC;aE5iCy;am,e,s;ed8iC;d,ed;eAur;i,ndeD2rn2sC;!l9t1;lDyC;l1ne;lDtC;!er;aCHy;aKernDAiFladDoC;jteB0lodymyr;!iC;mFQsDB;cFha0ktBZnceDrgCOvC;a0ek;!nC;t,zo;!e4StBV;lCnC7sily;!entC;in9J;ghE2lCm70nax,ri,sm0;riCyss87;ch,k;aWeRhNiLoGrEuDyC;!l2roEDs1;n6r6E;avD0eCist0oy,um0;ntCRvBKy;bFdAWmCny;!asDmCoharu;aFFie,y;!z;iA6y;mCt4;!my,othy;adEeoDia0SomC;!as;!dor91;!de4;dFrC;enBKrC;anBJeCy;ll,nBI;!dy;dgh,ha,iCnn2req,tsu5V;cDAka;aYcotWeThPiMlobod0oKpenc2tEurDvenAEyCzym1;ed,lvest2;aj,e9V;anFeDuC;!aA;fan17phEQvCwaA;e77ie;!islaCl9;v,w;lom1rBuC;leymaDHta;dDgmu9UlCm1yabonga;as,v8B;!dhart8Yn9;aEeClo75;lCrm0;d1t1;h9Jne,qu1Jun,wn,yne;aDbastiEDk2Yl5Mpp,rgCth,ymoCU;e1Dio;m4n;!tC;!ie,y;eDPlFmEnCq67tosCMul;dCj2UtiA5;e01ro;!iATkeB6mC4u5;!ik,vato9K;aZeUheC8iRoGuDyC;an,ou;b99dDf4peAssC;!elEG;ol00y;an,bLc7MdJel,geIh0lHmGnEry,sDyC;!ce;ar7Ocoe,s;!aCnBU;ld,n;an,eo;a7Ef;l7Jr;e3Eg2n9olfo,riC;go;bBNeDH;cCl9;ar87c86h54kCo;!ey,ie,y;cFeA3gDid,ubByCza;an8Ln06;g85iC;naC6s;ep;ch8Kfa5hHin2je8HlGmFndEoHpha5sDul,wi36yC;an,mo8O;h9Im4;alDSol3O;iD0on;f,ph;ul;e9CinC;cy,t1;aOeLhilJiFrCyoG;aDeC;m,st1;ka85v2O;eDoC;tr;r8GtC;er,ro;!ipCl6H;!p6U;dCLrcy,tC;ar,e9JrC;!o7;b9Udra8So9UscAHtri62ulCv8I;!ie,o7;ctav6Ji2lImHndrBRrGsDtCum6wB;is,to;aDc6k6m0vCwaBE;al79;ma;i,vR;ar,er;aDeksandr,ivC;er,i2;f,v;aNeLguyBiFoCu3O;aDel,j4l0ma0rC;beAm0;h,m;cFels,g5i9EkDlC;es,s;!au,h96l78olaC;!i,y;hCkCol76;ol75;al,d,il,ls1vC;ilAF;hom,tC;e,hC;anCy;!a5i5;aYeViLoGuDyC;l4Nr1;hamDr84staC;fa,p6E;ed,mG;di10e,hamEis4JntDritz,sCussa;es,he;e,y;ad,ed,mC;ad,ed;cGgu5hai,kFlEnDtchC;!e8O;a9Pik;house,o7t1;ae73eC3ha8Iolaj;ah,hDkC;!ey,y;aDeC;al,l;el,l;hDlv3rC;le,ri8Ev4T;di,met;ay0c00gn4hWjd,ks2NlTmadZnSrKsXtDuric7VxC;imilBKwe8B;eHhEi69tCus,y69;!eo,hCia7;ew,i67;eDiC;as,eu,s;us,w;j,o;cHiGkFlEqu8Qsha83tCv3;iCy;!m,n;in,on;el,o7us;a6Yo7us;!elCin,o7us;!l8o;frAEi5Zny,u5;achDcoCik;lm;ai,y;amDdi,e5VmC;oud;adCm6W;ou;aulCi9P;ay;aWeOiMloyd,oJuDyC;le,nd1;cFdEiDkCth2uk;a7e;gi,s,z;ov7Cv6Hw6H;!as,iC;a6Een;g0nn52renDuCvA4we7D;!iS;!zo;am,n4oC;n5r;a9Yevi,la5KnHoFst2thaEvC;eCi;nte;bo;nCpo8V;!a82el,id;!nC;aAy;mEnd1rDsz73urenCwr6K;ce,t;ry,s;ar,beAont;aOeIhalHiFla4onr63rDu5SylC;e,s;istCzysztof;i0oph2;er0ngsl9p,rC;ilA9k,ollos;ed,id;en0iGnDrmCv4Z;it;!dDnCt1;e2Ny;ri4Z;r,th;cp2j4mEna8BrDsp6them,uC;ri;im,l;al,il;a03eXiVoFuC;an,lCst3;en,iC;an,en,o,us;aQeOhKkub4AnIrGsDzC;ef;eDhCi9Wue;!ua;!f,ph;dCge;i,on;!aCny;h,s,th6J;anDnC;!ath6Hie,n72;!nC;!es;!l,sCy;ph;o,qu3;an,mC;!i,m6V;d,ffFns,rCs4;a7JemDmai7QoCry;me,ni1H;i9Dy;!e73rC;ey,y;cKdBkImHrEsDvi2yC;dBs1;on,p2;ed,oDrCv67;e6Qod;d,s61;al,es5Wis1;a,e,oCub;b,v;ob,qu13;aTbNchiMgLke53lija,nuKonut,rIsEtCv0;ai,suC;ki;aDha0i8XmaCsac;el,il;ac,iaC;h,s;a,vinCw3;!g;k,nngu6X;nac1Xor;ka;ai,rahC;im;aReLoIuCyd6;beAgGmFsC;eyDsC;a3e3;in,n;ber5W;h,o;m2raDsse3wC;a5Pie;c49t1K;a0Qct3XiGnDrC;beAman08;dr7VrC;iCy2N;!k,q1R;n0Tt3S;bKlJmza,nIo,rEsDyC;a5KdB;an,s0;lEo67r2IuCv9;hi5Hki,tC;a,o;an,ey;k,s;!im;ib;a08e00iUlenToQrMuCyorgy;iHnFsC;!taC;f,vC;!e,o;n6tC;er,h2;do,lC;herDlC;auCerQ;me;aEegCov2;!g,orC;!io,y;dy,h7C;dfr9nza3XrDttfC;ri6C;an,d47;!n;acoGlEno,oCuseppe;rgiCvan6O;!o,s;be6Ies,lC;es;mo;oFrC;aDha4HrC;it,y;ld,rd8;ffErgC;!e7iCy;!os;!r9;bElBrCv3;eCla1Nr4Hth,y;th;e,rC;e3YielC;!i4;aXeSiQlOorrest,rCyod2E;aHedFiC;edDtC;s,z;ri18;!d42eri11riC;ck,k;nCs2;cEkC;ie,lC;in,yn;esLisC;!co,z3M;etch2oC;ri0yd;d5lConn;ip;deriFliEng,rC;dinaCg4nan0B;nd8;pe,x;co;bCdi,hd;iEriC;ce,zC;io;an,en,o;benez2dZfrYit0lTmMnJo3rFsteb0th0ugenEvCymBzra;an,eCge4D;ns,re3K;!e;gi,iDnCrol,v3w3;est8ie,st;cCk;!h,k;o0DriCzo;co,qC;ue;aHerGiDmC;aGe3A;lCrh0;!iC;a10o,s;s1y;nu5;beAd1iEliDm2t1viCwood;n,s;ot28s;!as,j5Hot,sC;ha;a3en;!dGg6mFoDua2QwC;a2Pin;arC;do;oZuZ;ie;a04eTiOmitrNoFrag0uEwDylC;an,l0;ay3Hig4D;a3Gdl9nc0st3;minFnDri0ugCvydGy2S;!lF;!a36nCov0;e1Eie,y;go,iDykC;as;cCk;!k;i,y;armuFetDll1mitri7neCon,rk;sh;er,m6riC;ch;id;andLepak,j0lbeAmetri4nIon,rGsEvDwCxt2;ay30ey;en,in;hawn,moC;nd;ek,riC;ck;is,nC;is,y;rt;re;an,le,mKnIrEvC;e,iC;!d;en,iEne0PrCyl;eCin,yl;l45n;n,o,us;!iCny;el,lo;iCon;an,en,on;a0Fe0Ch03iar0lRoJrFuDyrC;il,us;rtC;!is;aEistC;iaCob12;no;ig;dy,lInErC;ey,neliCy;s,us;nEor,rDstaC;nt3;ad;or;by,e,in,l3t1;aHeEiCyde;fCnt,ve;fo0Xt1;menDt4;us;s,t;rFuDyC;!t1;dCs;e,io;enC;ce;aHeGrisC;!toC;phCs;!eC;!r;st2t;d,rCs;b5leC;s,y;cDdrCs6;ic;il;lHmFrC;ey,lDroCy;ll;!o7t1;er1iC;lo;!eb,v3;a09eZiVjorn,laUoSrEuCyr1;ddy,rtKst2;er;aKeFiEuDyC;an,ce,on;ce,no;an,ce;nDtC;!t;dDtC;!on;an,on;dFnC;dDisC;lav;en,on;!foOl9y;bby,gd0rCyd;is;i0Lke;bElDshC;al;al,lL;ek;nIrCshoi;at,nEtC;!raC;m,nd;aDhaCie;rd;rd8;!iDjam3nCs1;ie,y;to;kaMlazs,nHrC;n9rDtC;!holomew;eCy;tt;ey;dCeD;ar,iC;le;ar1Nb1Dd16fon15gust3hm12i0Zja0Yl0Bm07nTputsiSrGsaFugustEveDyCziz;a0kh0;ry;o,us;hi;aMchiKiJjun,mHnEon,tCy0;em,hCie,ur8;ur;aDoC;!ld;ud,v;aCin;an,nd8;!el,ki;baCe;ld;ta;aq;aMdHgel8tCw6;hoFoC;iDnC;!i8y;ne;ny;er7rCy;eDzC;ej;!as,i,j,s,w;!s;s,tolC;iCy;!y;ar,iEmaCos;nu5r;el;ne,r,t;aVbSdBeJfHiGl01onFphonsEt1vC;aPin;on;e,o;so,zo;!sR;!onZrC;ed;c,jaHksFssaHxC;!andC;er,rC;e,os,u;andCei;ar,er,r;ndC;ro;en;eDrecC;ht;rt8;dd3in,n,sC;taC;ir;ni;dDm6;ar;an,en;ad,eC;d,t;in;so;aGi,olErDvC;ik;ian8;f8ph;!o;mCn;!a;dGeFraDuC;!bakr,lfazl;hCm;am;!l;allFel,oulaye,ulC;!lDrahm0;an;ah,o;ah;av,on",Uncountable:"trueยฆ0:2E;1:2L;2:33;a2Ub2Lc29d22e1Rf1Ng1Eh16i11j0Yk0Wl0Rm0Hn0Do0Cp03rZsLt9uran2Jv7w3you gu0E;a5his17i4oo3;d,l;ldlife,ne;rm8t1;apor,ernacul29i3;neg28ol1Otae;eDhBiAo8r4un3yranny;a,gst1B;aff2Oea1Ko4ue nor3;th;o08u3;bleshoot2Ose1Tt;night,othpas1Vwn3;foEsfoE;me off,n;er3und1;e,mod2S;a,nnis;aDcCeBhAi9ki8o7p6t4u3weepstak0;g1Unshi2Hshi;ati08e3;am,el;ace2Keci0;ap,cc1meth2C;n,ttl0;lk;eep,ingl0or1C;lf,na1Gri0;ene1Kisso1C;d0Wfe2l4nd,t3;i0Iurn;m1Ut;abi0e4ic3;e,ke15;c3i01laxa11search;ogni10rea10;a9e8hys7luto,o5re3ut2;amble,mis0s3ten20;en1Zs0L;l3rk;i28l0EyH; 16i28;a24tr0F;nt3ti0M;i0s;bstetri24vercrowd1Qxyg09;a5e4owada3utella;ys;ptu1Ows;il poliZtional securi2;aAe8o5u3;m3s1H;ps;n3o1K;ey,o3;gamy;a3cha0Elancholy,rchandi1Htallurgy;sl0t;chine3g1Aj1Hrs,thema1Q; learn1Cry;aught1e6i5ogi4u3;ck,g12;c,s1M;ce,ghtn18nguis1LteratWv1;ath1isVss;ara0EindergartPn3;icke0Aowled0Y;e3upit1;a3llyfiGwel0G;ns;ce,gnor6mp5n3;forma00ter3;net,sta07;atiSort3rov;an18;a7e6isto09o3ung1;ckey,mework,ne4o3rseradi8spitali2use arrest;ky;s2y;adquarteXre;ir,libut,ppiHs3;hi3te;sh;ene8l6o5r3um,ymnas11;a3eZ;niUss;lf,re;ut3yce0F;en; 3ti0W;edit0Hpo3;ol;aNicFlour,o4urnit3;ure;od,rgive3uri1wl;ness;arCcono0LducaBlectr9n7quip8thi0Pvery6x3;ist4per3;ti0B;en0J;body,o08th07;joy3tertain3;ment;ici2o3;ni0H;tiS;nings,th;emi02i6o4raugh3ynas2;ts;pe,wnstai3;rs;abet0ce,s3;honZrepu3;te;aDelciChAivi07l8o3urrency;al,ld w6mmenta5n3ral,ttIuscoB;fusiHt 3;ed;ry;ar;assi01oth0;es;aos,e3;eMwK;us;d,rO;a8i6lood,owlHread5u3;ntGtt1;er;!th;lliarJs3;on;g3ss;ga3;ge;cKdviJeroGirFmBn6ppeal court,r4spi3thleL;rin;ithmet3sen3;ic;i6y3;o4th3;ing;ne;se;en5n3;es2;ty;ds;craft;bi8d3nau7;yna3;mi6;ce;id,ous3;ti3;cs",Infinitive:"trueยฆ0:9G;1:9T;2:AD;3:90;4:9Z;5:84;6:AH;7:A9;8:92;9:A0;A:AG;B:AI;C:9V;D:8R;E:8O;F:97;G:6H;H:7D;a94b8Hc7Jd68e4Zf4Mg4Gh4Ai3Qj3Nk3Kl3Bm34nou48o2Vp2Equ2Dr1Es0CtZuTvRwI;aOeNiLors5rI;eJiI;ng,te;ak,st3;d5e8TthI;draw,er;a2d,ep;i2ke,nIrn;d1t;aIie;liADniAry;nJpI;ho8Llift;cov1dJear8Hfound8DlIplug,rav82tie,ve94;eaAo3X;erIo;cut,go,staAFvalA3w2G;aSeQhNoMrIu73;aIe72;ffi3Smp3nsI;aBfo7CpI;i8oD;pp3ugh5;aJiJrIwaD;eat5i2;nk;aImA0;ch,se;ck3ilor,keImp1r8L;! paD;a0Ic0He0Fh0Bi0Al08mugg3n07o05p02qu01tUuLwI;aJeeIim;p,t5;ll7Wy;bNccMffLggeCmmKppJrI;mouFpa6Zvi2;o0re6Y;ari0on;er,i4;e7Numb;li9KmJsiIveD;de,st;er9it;aMe8MiKrI;ang3eIi2;ng27w;fIng;f5le;b,gg1rI;t3ve;a4AiA;a4UeJit,l7DoI;il,of;ak,nd;lIot7Kw;icEve;atGeak,i0O;aIi6;m,y;ft,ng,t;aKi6CoJriIun;nk,v6Q;ot,rt5;ke,rp5tt1;eIll,nd,que8Gv1w;!k,m;aven9ul8W;dd5tis1Iy;a0FeKiJoI;am,t,ut;d,p5;a0Ab08c06d05f01group,hea00iZjoi4lXmWnVpTq3MsOtMup,vI;amp,eJiIo3B;sEve;l,rI;e,t;i8rI;ie2ofE;eLiKpo8PtIurfa4;o24rI;aHiBuctu8;de,gn,st;mb3nt;el,hra0lIreseF;a4e71;d1ew,o07;aHe3Fo2;a7eFiIo6Jy;e2nq41ve;mbur0nf38;r0t;inKleBocus,rJuI;el,rbiA;aBeA;an4e;aBu4;ei2k8Bla43oIyc3;gni39nci3up,v1;oot,uI;ff;ct,d,liIp;se,ze;tt3viA;aAenGit,o7;aWerUinpoiFlumm1LoTrLuI;b47ke,niArIt;poDsuI;aFe;eMoI;cKd,fe4XhibEmo7noJpo0sp1tru6vI;e,i6o5L;un4;la3Nu8;aGclu6dJf1occupy,sup0JvI;a6BeF;etermi4TiB;aGllu7rtr5Ksse4Q;cei2fo4NiAmea7plex,sIva6;eve8iCua6;mp1rItrol,ve;a6It6E;bOccuNmEpMutLverIwe;l07sJtu6Yu0wI;helm;ee,h1F;gr5Cnu2Cpa4;era7i4Ipo0;py,r;ey,seItaH;r2ss;aMe0ViJoIultiply;leCu6Pw;micJnIspla4;ce,g3us;!k;iIke,na9;m,ntaH;aPeLiIo0u3N;ke,ng1quIv5;eIi6S;fy;aKnIss5;d,gI;th5;rn,ve;ng2Gu1N;eep,idnJnI;e4Cow;ap;oHuI;gg3xtaI;po0;gno8mVnIrk;cTdRfQgeChPitia7ju8q1CsNtKun6EvI;a6eIo11;nt,rt,st;erJimi6BoxiPrI;odu4u6;aBn,pr03ru6C;iCpi8tIu8;all,il,ruB;abEibE;eCo3Eu0;iIul9;ca7;i7lu6;b5Xmer0pI;aLer4Uin9ly,oJrI;e3Ais6Bo2;rt,se,veI;riA;le,rt;aLeKiIoiCuD;de,jaInd1;ck;ar,iT;mp1ng,pp5raIve;ng5Mss;ath1et,iMle27oLrI;aJeIow;et;b,pp3ze;!ve5A;gg3ve;aTer45i5RlSorMrJuI;lf4Cndrai0r48;eJiIolic;ght5;e0Qsh5;b3XeLfeEgJsI;a3Dee;eIi2;!t;clo0go,shIwa4Z;ad3F;att1ee,i36;lt1st5;a0OdEl0Mm0FnXquip,rWsVtGvTxI;aRcPeDhOiNpJtIu6;ing0Yol;eKi8lIo0un9;aHoI;it,re;ct,di7l;st,t;a3oDu3B;e30lI;a10u6;lt,mi28;alua7oI;ke,l2;chew,pou0tab19;a0u4U;aYcVdTfSgQhan4joy,lPqOrNsuMtKvI;e0YisI;a9i50;er,i4rI;aHenGuC;e,re;iGol0F;ui8;ar9iC;a9eIra2ulf;nd1;or4;ang1oIu8;r0w;irc3lo0ou0ErJuI;mb1;oaGy4D;b3ct;bKer9pI;hasiIow1;ze;aKody,rI;a4oiI;d1l;lm,rk;ap0eBuI;ci40de;rIt;ma0Rn;a0Re04iKo,rIwind3;aw,ed9oI;wn;agno0e,ff1g,mi2Kne,sLvI;eIul9;rIst;ge,t;aWbVcQlod9mant3pNru3TsMtI;iIoDu37;lJngI;uiA;!l;ol2ua6;eJlIo0ro2;a4ea0;n0r0;a2Xe36lKoIu0S;uIv1;ra9;aIo0;im;a3Kur0;b3rm;af5b01cVduBep5fUliTmQnOpMrLsiCtaGvI;eIol2;lop;ch;a20i2;aDiBloIoD;re,y;oIy;te,un4;eJoI;liA;an;mEv1;a4i0Ao06raud,y;ei2iMla8oKrI;ee,yI;!pt;de,mIup3;missi34po0;de,ma7ph1;aJrief,uI;g,nk;rk;mp5rk5uF;a0Dea0h0Ai09l08oKrIurta1G;a2ea7ipp3uI;mb3;ales4e04habEinci6ll03m00nIrro6;cXdUfQju8no7qu1sLtKvI;eIin4;ne,r9y;aHin2Bribu7;er2iLoli2Epi8tJuI;lt,me;itu7raH;in;d1st;eKiJoIroFu0;rm;de,gu8rm;ss;eJoI;ne;mn,n0;eIlu6ur;al,i2;buCe,men4pI;eIi3ly;l,te;eBi6u6;r4xiC;ean0iT;rcumveFte;eJirp,oI;o0p;riAw;ncIre5t1ulk;el;a02eSi6lQoPrKuI;iXrIy;st,y;aLeaKiJoad5;en;ng;stfeLtX;ke;il,l11mba0WrrMth1;eIow;ed;!coQfrie1LgPhMliLqueaKstJtrIwild1;ay;ow;th;e2tt3;a2eJoI;ld;ad;!in,ui3;me;bysEckfi8ff3tI;he;b15c0Rd0Iff0Ggree,l0Cm09n03ppZrXsQttOuMvJwaE;it;eDoI;id;rt;gIto0X;meF;aIeCraB;ch,in;pi8sJtoI;niA;aKeIi04u8;mb3rt,ss;le;il;re;g0Hi0ou0rI;an9i2;eaKly,oiFrI;ai0o2;nt;r,se;aMi0GnJtI;icipa7;eJoIul;un4y;al;ly0;aJu0;se;lga08ze;iKlI;e9oIu6;t,w;gn;ix,oI;rd;a03jNmiKoJsoI;rb;pt,rn;niIt;st1;er;ouJuC;st;rn;cLhie2knowled9quiItiva7;es4re;ce;ge;eQliOoKrJusI;e,tom;ue;mIst;moJpI;any,liA;da7;ma7;te;pt;andPduBet,i6oKsI;coKol2;ve;liArt,uI;nd;sh;de;ct;on",Person:"trueยฆ0:1Q;a29b1Zc1Md1Ee18f15g13h0Ri0Qj0Nk0Jl0Gm09n06o05p00rPsItCusain bolt,v9w4xzibit,y1;anni,oko on2uji,v1;an,es;en,o;a3ednesday adams,i2o1;lfram,o0Q;ll ferrell,z khalifa;lt disn1Qr1;hol,r0G;a2i1oltai06;n dies0Zrginia wo17;lentino rossi,n goG;a4h3i2ripp,u1yra banks;lZpac shakur;ger woods,mba07;eresa may,or;kashi,t1ylor;um,ya1B;a5carlett johanss0h4i3lobodan milosevic,no2ocr1Lpider1uperm0Fwami; m0Em0E;op dogg,w whi1H;egfried,nbad;akespeaTerlock holm1Sia labeouf;ddam hussa16nt1;a cla11ig9;aAe6i5o3u1za;mi,n dmc,paul,sh limbau1;gh;bin hood,d stew16nald1thko;in0Mo;han0Yngo starr,valdo;ese witherspo0i1mbrandt;ll2nh1;old;ey,y;chmaninoff,ffi,iJshid,y roma1H;a4e3i2la16o1uff daddy;cahont0Ie;lar,p19;le,rZ;lm17ris hilt0;leg,prah winfr0Sra;a2e1iles cra1Bostradam0J; yo,l5tt06wmQ;pole0s;a5e4i2o1ubar03;by,lie5net,rriss0N;randa ju1tt romn0M;ly;rl0GssiaB;cklemo1rkov,s0ta hari,ya angelou;re;ady gaga,e1ibera0Pu;bron jam0Xch wale1e;sa;anye west,e3i1obe bryant;d cudi,efer suther1;la0P;ats,sha;a2effers0fk,k rowling,rr tolki1;en;ck the ripp0Mwaharlal nehru,y z;liTnez,ron m7;a7e5i3u1;lk hog5mphrey1sa01;! bog05;l1tl0H;de; m1dwig,nry 4;an;ile selassFlle ber4m3rrison1;! 1;ford;id,mo09;ry;ast0iannis,o1;odwPtye;ergus0lorence nightinga08r1;an1ederic chopN;s,z;ff5m2nya,ustaXzeki1;el;eril lagasse,i1;le zatop1nem;ek;ie;a6e4i2octor w1rake;ho;ck w1ego maradoC;olf;g1mi lovaOnzel washingt0;as;l1nHrth vadR;ai lNt0;a8h5lint0o1thulhu;n1olio;an,fuci1;us;on;aucKop2ristian baMy1;na;in;millo,ptain beefhe4r1;dinal wols2son1;! palmF;ey;art;a8e5hatt,i3oHro1;ck,n1;te;ll g1ng crosby;atB;ck,nazir bhut2rtil,yon1;ce;to;nksy,rack ob1;ama;l 6r3shton kutch2vril lavig8yn ra1;nd;er;chimed2istot1;le;es;capo2paci1;no;ne",Adjective:"trueยฆ0:AI;1:BS;2:BI;3:BA;4:A8;5:84;6:AV;7:AN;8:AF;9:7H;A:BQ;B:AY;C:BC;D:BH;E:9Y;aA2b9Ec8Fd7We79f6Ng6Eh61i4Xj4Wk4Tl4Im41n3Po36p2Oquart7Pr2Ds1Dt14uSvOwFye29;aMeKhIiHoF;man5oFrth7G;dADzy;despreB1n w97s86;acked1UoleF;!sa6;ather1PeFll o70ste1D;!k5;nt1Ist6Ate4;aHeGiFola5T;bBUce versa,gi3Lle;ng67rsa5R;ca1gBSluAV;lt0PnLpHrGsFttermoBL;ef9Ku3;b96ge1; Hb32pGsFtiAH;ca6ide d4R;er,i85;f52to da2;a0Fbeco0Hc0Bd04e02f01gu1XheaBGiXkn4OmUnTopp06pRrNsJtHus0wF;aFiel3K;nt0rra0P;app0eXoF;ld,uS;eHi37o5ApGuF;perv06spec39;e1ok9O;en,ttl0;eFu5;cogn06gul2RlGqu84sF;erv0olv0;at0en33;aFrecede0E;id,rallel0;am0otic0;aFet;rri0tF;ch0;nFq26vers3;sur0terFv7U;eFrupt0;st0;air,inish0orese98;mploy0n7Ov97xpF;ect0lain0;eHisFocume01ue;clFput0;os0;cid0rF;!a8Scov9ha8Jlyi8nea8Gprivileg0sMwF;aFei9I;t9y;hGircumcFonvin2U;is0;aFeck0;lleng0rt0;b20ppea85ssuGttend0uthorF;iz0;mi8;i4Ara;aLeIhoHip 25oGrF;anspare1encha1i2;geth9leADp notch,rpB;rny,ugh6H;ena8DmpGrFs6U;r49tia4;eCo8P;leFst4M;nt0;a0Dc09e07h06i04ki03l01mug,nobbi4XoVpRqueami4XtKuFymb94;bHccinAi generis,pFr5;erFre7N;! dup9b,vi70;du0li7Lp6IsFurb7J;eq9Atanda9X;aKeJi16o2QrGubboFy4Q;rn;aightFin5GungS; fFfF;or7V;adfa9Pri6;lwa6Ftu82;arHeGir6NlendBot Fry;on;c3Qe1S;k5se; call0lImb9phistic16rHuFviV;ndFth1B;proof;dBry;dFub6; o2A;e60ipF;pe4shod;ll0n d7R;g2HnF;ceEg6ist9;am3Se9;co1Zem5lfFn6Are7; suf4Xi43;aGholFient3A;ar5;rlFt4A;et;cr0me,tisfac7F;aOeIheumatoBiGoF;bu8Ztt7Gy3;ghtFv3; 1Sf6X;cJdu8PlInown0pro69sGtF;ard0;is47oF;lu2na1;e1Suc45;alcit8Xe1ondi2;bBci3mpa1;aSePicayu7laOoNrGuF;bl7Tnjabi;eKiIoF;b7VfGmi49pFxi2M;er,ort81;a7uD;maFor,sti7va2;!ry;ciDexis0Ima2CpaB;in55puli8G;cBid;ac2Ynt 3IrFti2;ma40tFv7W;!i3Z;i2YrFss7R;anoBtF; 5XiF;al,s5V;bSffQkPld OnMrLth9utKverF;!aIbMdHhGni75seas,t,wF;ei74rou74;a63e7A;ue;ll;do1Ger,si6A;d3Qg2Aotu5Z; bFbFe on o7g3Uli7;oa80;fashion0school;!ay; gua7XbFha5Uli7;eat;eHligGsF;ce7er0So1C;at0;diFse;a1e1;aOeNiMoGuF;anc0de; moEnHrthFt6V;!eFwe7L;a7Krn;chaGdescri7Iprof30sF;top;la1;ght5;arby,cessa4ighbor5wlyw0xt;k0usiaFv3;ti8;aQeNiLoHuF;dIltiF;facet0p6;deHlGnFot,rbBst;ochro4Xth5;dy;rn,st;ddle ag0nF;dbloZi,or;ag9diocEga,naGrFtropolit4Q;e,ry;ci8;cIgenta,inHj0Fkeshift,mmGnFri4Oscu61ver18;da5Dy;ali4Lo4U;!stream;abEho;aOeLiIoFumberi8;ngFuti1R;stan3RtF;erm,i4H;ghtGteraF;l,ry,te;heart0wei5O;ft JgFss9th3;al,eFi0M;nda4;nguBps0te5;apGind5noF;wi8;ut;ad0itte4uniW;ce co0Hgno6Mll0Cm04nHpso 2UrF;a2releF;va1; ZaYcoWdReQfOgrNhibi4Ri05nMoLsHtFvalu5M;aAeF;nDrdepe2K;a7iGolFuboI;ub6ve1;de,gF;nifica1;rdi5N;a2er;own;eriIiLluenVrF;ar0eq5H;pt,rt;eHiGoFul1O;or;e,reA;fiFpe26termi5E;ni2;mpFnsideCrreA;le2;ccuCdeq5Ene,ppr4J;fFsitu,vitro;ro1;mJpF;arHeGl15oFrop9;li2r11;n2LrfeA;ti3;aGeFi18;d4BnD;tuE;egGiF;c0YteC;al,iF;tiF;ma2;ld;aOelNiLoFuma7;a4meInHrrGsFur5;ti6;if4E;e58o3U; ma3GsF;ick;ghfalut2HspF;an49;li00pf33;i4llow0ndGrdFtM; 05coEworki8;sy,y;aLener44iga3Blob3oKrGuF;il1Nng ho;aFea1Fizzl0;cGtF;ef2Vis;ef2U;ld3Aod;iFuc2D;nf2R;aVeSiQlOoJrF;aGeFil5ug3;q43tf2O;gFnt3S;i6ra1;lk13oHrF; keeps,eFge0Vm9tu41;g0Ei2Ds3R;liF;sh;ag4Mowe4uF;e1or45;e4nF;al,i2;d Gmini7rF;ti6ve1;up;bl0lDmIr Fst pac0ux;oGreacF;hi8;ff;ed,ili0R;aXfVlTmQnOqu3rMthere3veryday,xF;aApIquisi2traHuF;be48lF;ta1;!va2L;edRlF;icF;it;eAstF;whi6; Famor0ough,tiE;rou2sui2;erGiF;ne1;ge1;dFe2Aoq34;er5;ficF;ie1;g9sF;t,ygF;oi8;er;aWeMiHoGrFue;ea4owY;ci6mina1ne,r31ti8ubQ;dact2Jfficult,m,sGverF;ge1se;creGePjoi1paCtF;a1inA;et,te; Nadp0WceMfiLgeneCliJmuEpeIreliAsGvoF;id,ut;pFtitu2ul1L;eCoF;nde1;ca2ghF;tf13;a1ni2;as0;facto;i5ngero0I;ar0Ce09h07i06l05oOrIuF;rmudgeon5stoma4teF;sy;ly;aIeHu1EystalF; cleFli7;ar;epy;fFv17z0;ty;erUgTloSmPnGrpoCunterclVveFy;rt;cLdJgr21jIsHtrF;aFi2;dic0Yry;eq1Yta1;oi1ug3;escenFuN;di8;a1QeFiD;it0;atoDmensuCpF;ass1SulF;so4;ni3ss3;e1niza1;ci1J;ockwiD;rcumspeAvil;eFintzy;e4wy;leGrtaF;in;ba2;diac,ef00;a00ePiLliJoGrFuck nak0;and new,isk,on22;gGldface,naF; fi05fi05;us;nd,tF;he;gGpartisFzarE;an;tiF;me;autifOhiNlLnHsFyoN;iWtselF;li8;eGiFt;gn;aFfi03;th;at0oF;v0w;nd;ul;ckwards,rF;e,rT; priori,b13c0Zd0Tf0Ng0Ihe0Hl09mp6nt06pZrTsQttracti0MuLvIwF;aGkF;wa1B;ke,re;ant garGeraF;ge;de;diIsteEtF;heFoimmu7;nt07;re;to4;hGlFtu2;eep;en;bitIchiv3roHtF;ifiFsy;ci3;ga1;ra4;ry;pFt;aHetizi8rF;oprF;ia2;llFre1;ed,i8;ng;iquFsy;at0e;ed;cohKiJkaHl,oGriFterX;ght;ne,of;li7;ne;ke,ve;olF;ic;ad;ain07gressiIi6rF;eeF;ab6;le;ve;fGraB;id;ectGlF;ue1;ioF;na2; JaIeGvF;erD;pt,qF;ua2;ma1;hoc,infinitum;cuCquiGtu3u2;al;esce1;ra2;erSjeAlPoNrKsGuF;nda1;e1olu2trF;aAuD;se;te;eaGuF;pt;st;aFve;rd;aFe;ze;ct;ra1;nt",Pronoun:"trueยฆelle,h3i2me,she,th0us,we,you;e0ou;e,m,y;!l,t;e,im",Preposition:"trueยฆaPbMcLdKexcept,fIinGmid,notwithstandiWoDpXqua,sCt7u4v2w0;/o,hereSith0;! whHin,oW;ersus,i0;a,s a vis;n1p0;!on;like,til;h1ill,oward0;!s;an,ereby,r0;ough0u;!oM;ans,ince,o that,uch G;f1n0ut;!to;!f;! 0to;effect,part;or,r0;om;espite,own,u3;hez,irca;ar1e0oBy;sides,tween;ri7;bo8cross,ft7lo6m4propos,round,s1t0;!op;! 0;a whole,long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"trueยฆ0:18;1:1E;2:1D;3:14;a1Db15c0Sd0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Am01new UoRpKqueens parkJreal salt lake,sBt6utah jazz,vancouver whitecaps,w4yW;ashington 4h10;natio1Mredski2wizar0W;ampa bay 7e6o4;ronto 4ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasD;buccanee0ra0K;a8eattle 6porting kansas0Wt4; louis 4oke0V;c1Drams;marine0s4;eah13ounH;cramento Rn 4;antonio spu0diego 4francisco gJjose earthquak1;char08paB; ran07;a9h6ittsburgh 5ortland t4;imbe0rail blaze0;pirat1steele0;il4oenix su2;adelphia 4li1;eagl1philNunE;dr1;akland 4klahoma city thunder,rlando magic;athle0Lrai4;de0;england 8orleans 7york 4;g5je3knYme3red bul0Xy4;anke1;ian3;pelica2sain3;patrio3revolut4;ion;anchEeAi4ontreal impact;ami 8lwaukee b7nnesota 4;t5vi4;kings;imberwolv1wi2;rewe0uc0J;dolphi2heat,marli2;mphis grizz4ts;li1;a6eic5os angeles 4;clippe0dodFlaB;esterV; galaxy,ke0;ansas city 4nF;chiefs,roya0D; pace0polis col3;astr05dynamo,rocke3texa2;olden state warrio0reen bay pac4;ke0;allas 8e4i04od6;nver 6troit 4;lio2pisto2ti4;ge0;broncYnugge3;cowbo5maver4;icZ;ys;arEelLhAincinnati 8leveland 6ol4;orado r4umbus crew sc;api7ocki1;brow2cavalie0guar4in4;dia2;bengaVre4;ds;arlotte horAicago 4;b5cubs,fire,wh4;iteB;ea0ulQ;diff4olina panthe0; city;altimore Alackburn rove0oston 6rooklyn 4uffalo bilN;ne3;ts;cel5red4; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 4;brav1falco2h4;awA;ns;es;on villa,r4;os;c6di4;amondbac4;ks;ardi4;na4;ls",Unit:"trueยฆa07b04cXdWexVfTgRhePinYjoule0BkMlJmDnan08oCp9quart0Bsq ft,t7volts,w6y2ze3ยฐ1ยต0;g,s;c,f,n;dVear1o0;ttR; 0s 0;old;att,b;erNon0;!ne02;ascals,e1i0;cXnt00;rcent,tJ;hms,unceY;/s,e4i0mยฒ,ยฒ,ยณ;/h,cro2l0;e0liK;!ยฒ;grLsR;gCtJ;it1u0;menQx;erPreP;b5elvins,ilo1m0notO;/h,ph,ยฒ;!byGgrEmCs;ct0rtzL;aJogrC;allonJb0ig3rB;ps;a0emtEl oz,t4;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;ยฒ,ยณ;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s","Noun|Gerund":"trueยฆ0:3O;1:3M;2:3N;3:3D;4:32;5:2V;6:3E;7:3K;8:36;9:3J;A:3B;a3Pb37c2Jd27e23f1Vg1Sh1Mi1Ij1Gk1Dl18m13n11o0Wp0Pques0Sr0EsTtNunderMvKwFyDzB;eroi0oB;ni0o3P;aw2eB;ar2l3;aEed4hispe5i5oCrB;ap8est3i1;n0ErB;ki0r31;i1r2s9tc9;isualizi0oB;lunt1Vti0;stan4ta6;aFeDhin6iCraBy8;c6di0i2vel1M;mi0p8;aBs1;c9si0;l6n2s1;aUcReQhOiMkatKl2Wmo6nowJpeItFuCwB;ea5im37;b35f0FrB;fi0vB;e2Mi2J;aAoryt1KrCuB;d2KfS;etc9ugg3;l3n4;bCi0;ebBi0;oar4;gnBnAt1;a3i0;ip8oB;p8rte2u1;a1r27t1;hCo5reBulp1;a2Qe2;edu3oo3;i3yi0;aKeEi4oCuB;li0n2;oBwi0;fi0;aFcEhear7laxi0nDpor1sB;pon4tructB;r2Iu5;de5;or4yc3;di0so2;p8ti0;aFeacek20laEoCrBublis9;a1Teten4in1oces7;iso2siB;tio2;n2yi0;ckaAin1rB;ki0t1O;fEpeDrganiCvB;erco24ula1;si0zi0;ni0ra1;fe5;avi0QeBur7;gotia1twor6;aDeCi2oB;de3nito5;a2dita1e1ssaA;int0XnBrke1;ifUufactu5;aEeaDiBodAyi0;cen7f1mi1stB;e2i0;r2si0;n4ug9;iCnB;ea4it1;c6l3;ogAuB;dAgg3stif12;ci0llust0VmDnBro2;nova1sp0NterBven1;ac1vie02;agi2plo4;aDea1iCoBun1;l4w3;ki0ri0;nd3rB;roWvB;es1;aCene0Lli4rBui4;ee1ie0N;rde2the5;aHeGiDlCorBros1un4;e0Pmat1;ir1oo4;gh1lCnBs9;anZdi0;i0li0;e3nX;r0Zscina1;a1du01nCxB;erci7plo5;chan1di0ginB;ee5;aLeHiGoub1rCum8wB;el3;aDeCiB;bb3n6vi0;a0Qs7;wi0;rTscoDvi0;ba1coZlBvelo8;eCiB;ve5;ga1;nGti0;aVelebUhSlPoDrBur3yc3;aBos7yi0;f1w3;aLdi0lJmFnBo6pi0ve5;dDsCvinB;ci0;trBul1;uc1;muniDpB;lBo7;ai2;ca1;lBo5;ec1;c9ti0;ap8eaCimToBubT;ni0t9;ni0ri0;aBee5;n1t1;ra1;m8rCs1te5;ri0;vi0;aPeNitMlLoGrDuB;dge1il4llBr8;yi0;an4eat9oadB;cas1;di0;a1mEokB;i0kB;ee8;pi0;bi0;es7oa1;c9i0;gin2lonAt1;gi0;bysit1c6ki0tt3;li0;ki0;bando2cGdverti7gi0pproac9rgDssuCtB;trac1;mi0;ui0;hi0;si0;coun1ti0;ti0;ni0;ng",PhrasalVerb:"trueยฆ0:92;1:96;2:8H;3:8V;4:8A;5:83;6:85;7:98;8:90;9:8G;A:8X;B:8R;C:8U;D:8S;E:70;F:97;G:8Y;H:81;I:7H;J:79;a9Fb7Uc6Rd6Le6Jf5Ig50h4Biron0j47k40l3Em31n2Yo2Wp2Cquiet Hr1Xs0KtZuXvacuu6QwNyammerBzK;ero Dip LonK;e0k0;by,ov9up;aQeMhLiKor0Mrit19;mp0n3Fpe0r5s5;ackAeel Di0S;aLiKn33;gh 3Wrd0;n Dr K;do1in,oJ;it 79k5lk Lrm 69sh Kt83v60;aw3do1o7up;aw3in,oC;rgeBsK;e 2herE;a00eYhViRoQrMuKypP;ckErn K;do1in,oJup;aLiKot0y 30;ckl7Zp F;ck HdK;e 5Y;n7Wp 3Es5K;ck MdLe Kghten 6me0p o0Rre0;aw3ba4do1in,up;e Iy 2;by,oG;ink Lrow K;aw3ba4in,up;ba4ov9up;aKe 77ll62;m 2r 5M;ckBke Llk K;ov9shit,u47;aKba4do1in,leave,o4Dup;ba4ft9pa69w3;a0Vc0Te0Mh0Ii0Fl09m08n07o06p01quar5GtQuOwK;earMiK;ngLtch K;aw3ba4o8K; by;cKi6Bm 2ss0;k 64;aReQiPoNrKud35;aigh2Det75iK;ke 7Sng K;al6Yup;p Krm2F;by,in,oG;c3Ln3Lr 2tc4O;p F;c3Jmp0nd LrKveAy 2O;e Ht 2L;ba4do1up;ar3GeNiMlLrKurB;ead0ingBuc5;a49it 6H;c5ll o3Cn 2;ak Fe1Xll0;a3Bber 2rt0und like;ap 5Vow Duggl5;ash 6Noke0;eep NiKow 6;cLp K;o6Dup;e 68;in,oK;ff,v9;de19gn 4NnKt 6Gz5;gKkE; al6Ale0;aMoKu5W;ot Kut0w 7M;aw3ba4f48oC;c2WdeEk6EveA;e Pll1Nnd Orv5tK; Ktl5J;do1foLin,o7upK;!on;ot,r5Z;aw3ba4do1in,o33up;oCto;al66out0rK;ap65ew 6J;ilAv5;aXeUiSoOuK;b 5Yle0n Kstl5;aLba4do1inKo2Ith4Nu5P;!to;c2Xr8w3;ll Mot LpeAuK;g3Ind17;a2Wf3Po7;ar8in,o7up;ng 68p oKs5;ff,p18;aKelAinEnt0;c6Hd K;o4Dup;c27t0;aZeYiWlToQrOsyc35uK;ll Mn5Kt K;aKba4do1in,oJto47up;pa4Dw3;a3Jdo1in,o21to45up;attleBess KiNop 2;ah2Fon;iLp Kr4Zu1Gwer 6N;do1in,o6Nup;nt0;aLuK;gEmp 6;ce u20y 6D;ck Kg0le 4An 6p5B;oJup;el 5NncilE;c53ir 39n0ss MtLy K;ba4oG; Hc2R;aw3ba4in,oJ;pKw4Y;e4Xt D;aLerd0oK;dAt53;il Hrrow H;aTeQiPoLuK;ddl5ll I;c1FnkeyMp 6uthAve K;aKdo1in,o4Lup;l4Nw3; wi4K;ss0x 2;asur5e3SlLss K;a21up;t 6;ke Ln 6rKs2Ax0;k 6ryA;do,fun,oCsure,up;a02eViQoLuK;ck0st I;aNc4Fg MoKse0;k Kse4D;aft9ba4do1forw37in56o0Zu46;in,oJ;d 6;e NghtMnLsKve 00;ten F;e 2k 2; 2e46;ar8do1in;aMt LvelK; oC;do1go,in,o7up;nEve K;in,oK;pKut;en;c5p 2sh LtchBughAy K;do1o59;in4Po7;eMick Lnock K;do1oCup;oCup;eLy K;in,up;l Ip K;aw3ba4do1f04in,oJto,up;aMoLuK;ic5mpE;ke3St H;c43zz 2;a01eWiToPuK;nLrrKsh 6;y 2;keLt K;ar8do1;r H;lKneErse3K;d Ke 2;ba4dKfast,o0Cup;ear,o1;de Lt K;ba4on,up;aw3o7;aKlp0;d Ml Ir Kt 2;fKof;rom;f11in,o03uW;cPm 2nLsh0ve Kz2P;at,it,to;d Lg KkerP;do1in,o2Tup;do1in,oK;ut,v9;k 2;aZeTive Rloss IoMrLunK; f0S;ab hold,in43ow 2U; Kof 2I;aMb1Mit,oLr8th1IuK;nd9;ff,n,v9;bo7ft9hQw3;aw3bKdo1in,oJrise,up,w3;a4ir2H;ar 6ek0t K;aLb1Fdo1in,oKr8up;ff,n,ut,v9;cLhKl2Fr8t,w3;ead;ross;d aKng 2;bo7;a0Ee07iYlUoQrMuK;ck Ke2N;ar8up;eLighten KownBy 2;aw3oG;eKshe27; 2z5;g 2lMol Krk I;aKwi20;bo7r8;d 6low 2;aLeKip0;sh0;g 6ke0mKrKtten H;e F;gRlPnNrLsKzzle0;h F;e Km 2;aw3ba4up;d0isK;h 2;e Kl 1T;aw3fPin,o7;ht ba4ure0;ePnLsK;s 2;cMd K;fKoG;or;e D;d04l 2;cNll Krm0t1G;aLbKdo1in,o09sho0Eth08victim;a4ehi2O;pa0C;e K;do1oGup;at Kdge0nd 12y5;in,o7up;aOi1HoNrK;aLess 6op KuN;aw3b03in,oC;gBwB; Ile0ubl1B;m 2;a0Ah05l02oOrLut K;aw3ba4do1oCup;ackBeep LoKy0;ss Dwd0;by,do1in,o0Uup;me NoLuntK; o2A;k 6l K;do1oG;aRbQforOin,oNtKu0O;hLoKrue;geth9;rough;ff,ut,v9;th,wK;ard;a4y;paKr8w3;rt;eaLose K;in,oCup;n 6r F;aNeLiK;ll0pE;ck Der Kw F;on,up;t 2;lRncel0rOsMtch LveE; in;o1Nup;h Dt K;doubt,oG;ry LvK;e 08;aw3oJ;l Km H;aLba4do1oJup;ff,n,ut;r8w3;a0Ve0MiteAl0Fo04rQuK;bblNckl05il0Dlk 6ndl05rLsKtMy FzzA;t 00;n 0HsK;t D;e I;ov9;anWeaUiLush K;oGup;ghQng K;aNba4do1forMin,oLuK;nd9p;n,ut;th;bo7lKr8w3;ong;teK;n 2;k K;do1in,o7up;ch0;arTg 6iRn5oPrNssMttlLunce Kx D;aw3ba4;e 6; ar8;e H;do1;k Dt 2;e 2;l 6;do1up;d 2;aPeed0oKurt0;cMw K;aw3ba4do1o7up;ck;k K;in,oC;ck0nk0stA; oQaNef 2lt0nd K;do1ov9up;er;up;r Lt K;do1in,oCup;do1o7;ff,nK;to;ck Pil0nMrgLsK;h D;ainBe D;g DkB; on;in,o7;aw3do1in,oCup;ff,ut;ay;ct FdQir0sk MuctionA; oG;ff;ar8o7;ouK;nd; o7;d K;do1oKup;ff,n;wn;o7up;ut",ProperNoun:"trueยฆabid,barbie,c3e2f1iron maiden,kirby,m0nis,riel;cgill,ercedes,issy;lorence,ranco;lmo,uro;atalina,hristi","Person|Place":"trueยฆa8d6h4jordan,k3orlando,s1vi0;ctor9rgin9;a0ydney;lvador,mara,ntia4;ent,obe;amil0ous0;ton;arw2ie0;go;lexandr1ust0;in;ia",LastName:"trueยฆ0:BR;1:BF;2:B5;3:BH;4:AX;5:9Y;6:B6;7:BK;8:B0;9:AV;A:AL;B:8Q;C:8G;D:7K;E:BM;F:AH;aBDb9Zc8Wd88e81f7Kg6Wh64i60j5Lk4Vl4Dm39n2Wo2Op25quispe,r1Ls0Pt0Ev03wTxSyKzG;aIhGimmerm6A;aGou,u;ng,o;khar5ytsE;aKeun9BiHoGun;koya32shiBU;!lG;diGmaz;rim,z;maGng;da,g52mo83sGzaC;aChiBV;iao,u;aLeJiHoGright,u;jcA5lff,ng;lGmm0nkl0sniewsC;kiB1liams33s3;bGiss,lt0;b,er,st0;a6Vgn0lHtG;anabe,s3;k0sh,tG;e2Non;aLeKiHoGukD;gt,lk5roby5;dHllalGnogr3Kr1Css0val3S;ba,ob1W;al,ov4;lasHsel8W;lJn dIrgBEsHzG;qu7;ilyEqu7siljE;en b6Aijk,yk;enzueAIverde;aPeix1VhKi2j8ka43oJrIsui,uG;om5UrG;c2n0un1;an,emblA7ynisC;dorAMlst3Km4rrAth;atch0i8UoG;mHrG;are84laci79;ps3sG;en,on;hirDkah9Mnaka,te,varA;a06ch01eYhUiRmOoMtIuHvGzabo;en9Jobod3N;ar7bot4lliv2zuC;aIeHoG;i7Bj4AyanAB;ele,in2FpheBvens25;l8rm0;kol5lovy5re7Tsa,to,uG;ng,sa;iGy72;rn5tG;!h;l71mHnGrbu;at9cla9Egh;moBo7M;aIeGimizu;hu,vchG;en8Luk;la,r1G;gu9infe5YmGoh,pulveA7rra5P;jGyG;on5;evi6iltz,miHneid0roed0uGwarz;be3Elz;dHtG;!t,z;!t;ar4Th8ito,ka4OlJnGr4saCto,unde19v4;ch7dHtGz;a5Le,os;b53e16;as,ihDm4Po0Y;aVeSiPoJuHyG;a6oo,u;bio,iz,sG;so,u;bKc8Fdrigue67ge10j9YmJosevelt,sItHux,wG;e,li6;a9Ch;enb4Usi;a54e4L;erts15i93;bei4JcHes,vGzzo;as,e9;ci,hards12;ag2es,iHut0yG;es,nol5N;s,t0;dImHnGsmu97v6C;tan1;ir7os;ic,u;aUeOhMiJoHrGut8;asad,if6Zochazk27;lishc2GpGrti72u10we76;e3Aov51;cHe45nG;as,to;as70hl0;aGillips;k,m,n6I;a3Hde3Wete0Bna,rJtG;ersHrovGters54;!a,ic;!en,on;eGic,kiBss3;i9ra,tz,z;h86k,padopoulIrk0tHvG;ic,l4N;el,te39;os;bMconn2Ag2TlJnei6PrHsbor6XweBzG;dem7Rturk;ella4DtGwe6N;ega,iz;iGof7Hs8I;vGyn1R;ei9;aSri1;aPeNiJoGune50ym2;rHvGwak;ak4Qik5otn66;odahl,r4S;cholsZeHkolGls4Jx3;ic,ov84;ls1miG;!n1;ils3mG;co4Xec;gy,kaGray2sh,var38;jiGmu9shiG;ma;a07c04eZiWoMuHyeG;rs;lJnIrGssoli6S;atGp03r7C;i,ov4;oz,te58;d0l0;h2lOnNo0RrHsGza1A;er,s;aKeJiIoz5risHtG;e56on;!on;!n7K;au,i9no,t5J;!lA;r1Btgome59;i3El0;cracFhhail5kkeHlG;l0os64;ls1;hmeJiIj30lHn3Krci0ssiGyer2N;!er;n0Po;er,j0;dDti;cartHlG;aughl8e2;hy;dQe7Egnu68i0jer3TkPmNnMrItHyG;er,r;ei,ic,su21thews;iHkDquAroqu8tinG;ez,s;a5Xc,nG;!o;ci5Vn;a5UmG;ad5;ar5e6Kin1;rig77s1;aVeOiLoJuHyG;!nch;k4nGo;d,gu;mbarGpe3Fvr4we;di;!nGu,yana2B;coln,dG;b21holm,strom;bedEfeKhIitn0kaHn8rGw35;oy;!j;m11tG;in1on1;bvGvG;re;iGmmy,ng,rs2Qu,voie,ws3;ne,t1F;aZeYh2iWlUnez50oNrJuHvar2woG;k,n;cerGmar68znets5;a,o34;aHem0isGyeziu;h23t3O;m0sni4Fus3KvG;ch4O;bay57ch,rh0Usk16vaIwalGzl5;czGsC;yk;cIlG;!cGen4K;huk;!ev4ic,s;e8uiveG;rt;eff0kGl4mu9nnun1;ucF;ll0nnedy;hn,llKminsCne,pIrHstra3Qto,ur,yGzl5;a,s0;j0Rls22;l2oG;or;oe;aPenOha6im14oHuG;ng,r4;e32hInHrge32u6vG;anD;es,ss3;anHnsG;en,on,t3;nesGs1R;en,s1;kiBnings,s1;cJkob4EnGrv0E;kDsG;en,sG;en0Ion;ks3obs2A;brahimDglesi5Nke5Fl0Qno07oneIshikHto,vanoG;u,v54;awa;scu;aVeOiNjaltal8oIrist50uG;!aGb0ghAynh;m2ng;a6dz4fIjgaa3Hk,lHpUrGwe,x3X;ak1Gvat;mAt;er,fm3WmG;ann;ggiBtchcock;iJmingw4BnHrGss;nand7re9;deGriks1;rs3;kkiHnG;on1;la,n1;dz4g1lvoQmOns0ZqNrMsJuIwHyG;asFes;kiB;g1ng;anHhiG;mo14;i,ov0J;di6p0r10t;ue;alaG;in1;rs1;aVeorgUheorghe,iSjonRoLrJuGw3;errGnnar3Co,staf3Ctierr7zm2;a,eG;ro;ayli6ee2Lg4iffithGub0;!s;lIme0UnHodGrbachE;e,m2;calvAzale0S;dGubE;bGs0E;erg;aj,i;bs3l,mGordaO;en7;iev3U;gnMlJmaIndFo,rGsFuthi0;cGdn0za;ia;ge;eaHlG;agh0i,o;no;e,on;aVerQiLjeldsted,lKoIrHuG;chs,entAji41ll0;eem2iedm2;ntaGrt8urni0wl0;na;emi6orA;lipIsHtzgeraG;ld;ch0h0;ovG;!ic;hatDnanIrG;arGei9;a,i;deY;ov4;b0rre1D;dKinsJriksIsGvaB;cob3GpGtra3D;inoza,osiQ;en,s3;te8;er,is3warG;ds;aXePiNjurhuMoKrisco15uHvorakG;!oT;arte,boHmitru,nn,rGt3C;and,ic;is;g2he0Omingu7nErd1ItG;to;us;aGcki2Hmitr2Ossanayake,x3;s,z; JbnaIlHmirGrvisFvi,w2;!ov4;gado,ic;th;bo0groot,jo6lHsilGvriA;va;a cruz,e3uG;ca;hl,mcevsCnIt2WviG;dGes,s;ov,s3;ielsGku22;!en;ki;a0Be06hRiobQlarkPoIrGunningh1H;awfo0RivGuz;elli;h1lKntJoIrGs2Nx;byn,reG;a,ia;ke,p0;i,rer2K;em2liB;ns;!e;anu;aOeMiu,oIristGu6we;eGiaG;ns1;i,ng,p9uHwGy;!dH;dGng;huJ;!n,onGu6;!g;kJnIpm2ttHudhGv7;ry;erjee,o14;!d,g;ma,raboG;rty;bJl0Cng4rG;eghetHnG;a,y;ti;an,ota1C;cerAlder3mpbeLrIstGvadi0B;iGro;llo;doHl0Er,t0uGvalho;so;so,zo;ll;a0Fe01hYiXlUoNrKuIyG;rLtyG;qi;chan2rG;ke,ns;ank5iem,oGyant;oks,wG;ne;gdan5nIruya,su,uchaHyKziG;c,n5;rd;darGik;enG;ko;ov;aGond15;nco,zG;ev4;ancFshw16;a08oGuiy2;umGwmG;ik;ckRethov1gu,ktPnNrG;gJisInG;ascoGds1;ni;ha;er,mG;anG;!n;gtGit7nP;ss3;asF;hi;er,hG;am;b4ch,ez,hRiley,kk0ldw8nMrIshHtAu0;es;ir;bInHtlGua;ett;es,i0;ieYosa;dGik;a9yoG;padhyG;ay;ra;k,ng;ic;bb0Acos09d07g04kht05lZnPrLsl2tJyG;aHd8;in;la;chis3kiG;ns3;aImstro6sl2;an;ng;ujo,ya;dJgelHsaG;ri;ovG;!a;ersJov,reG;aGjEws;ss1;en;en,on,s3;on;eksejEiyEmeiIvG;ar7es;ez;da;ev;arwHuilG;ar;al;ams,l0;er;ta;as",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:74;1:61;2:6G;3:6J;4:5S;a68b53c4Id48e44f3Wg3Hh39i31j2Wk2Fl23m1Mn1Co19p0Wq0Ur0Os05tRuQvLwDxiBy9z5;a7h5i4Muri4O;a5e5ongsh0;ng3H;greb,nzib5G;ang2e5okoha3Sunfu;katerin3Hrev0;a5n0Q;m5Hn;arsBeAi6roclBu5;h0xi,zh5P;c7n5;d5nipeg,terth4;hoek,s1L;hi5Zkl3A;l63xford;aw;a8e6i5ladivost5Molgogr6L;en3lni6S;ni22r5;o3saill4N;lenc4Wncouv3Sr3ughn;lan bat1Crumqi,trecht;aFbilisi,eEheDiBo9r7u5;l21n63r5;in,ku;i5ondh62;es51poli;kyo,m2Zron1Pulo5;n,uS;an5jua3l2Tmisoa6Bra3;j4Tshui; hag62ssaloni2H;gucigal26hr0l av1U;briz,i6llinn,mpe56ng5rtu,shk2R;i3Esh0;an,chu1n0p2Eyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4X;ba0Ht;aten is55ockholm,rasbou67uttga2V;an8e6i5;jiazhua1llo1m5Xy0;f50n5;ya1zh4H;gh3Kt4Q;att45o1Vv44;cramen16int ClBn5o paulo,ppo3Rrajevo; 7aa,t5;a 5o domin3E;a3fe,m1M;antonio,die3Cfrancisco,j5ped3Nsalvad0J;o5u0;se;em,t lake ci5Fz25;lou58peters24;a9e8i6o5;me,t59;ga,o5yadh;! de janei3F;cife,ims,nn3Jykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0Q;aFeEhDiCo9r7u6yong5;ya1;eb59ya1;a5etor3M;g52to;rt5zn0; 5la4Co;au prin0Melizabe24sa03;ls3Prae5Atts26;iladelph3Gnom pe1Aoenix;ki1r21tah tik3E;dua,lerYnaji,r4Ot5;na,r32;ak44des0Km1Mr6s5ttawa;a3Vlo;an,d06;a7ew5ing2Fovosibir1Jyc; 5cast36;del24orlea44taip14;g8iro4Wn5pl2Wshv33v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0W;aEeCi9o6u5;mb2Ani26sc3Y;gadishu,nt6s5;c13ul;evideo,pelli1Rre2Z;ami,l6n14s5;kolc,sissauga;an,waukee;cca,d5lbour2Mmph41ndo1Cssi3;an,ell2Xi3;cau,drAkass2Sl9n8r5shh4A;aca6ib5rakesh,se2L;or;i1Sy;a4EchFdal0Zi47;mo;id;aDeAi8o6u5vSy2;anMckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Lma5nz,sb2verpo28;!ss27; ma39i5;c5pzig;est16; p6g5ho2Wn0Cusan24;os;az,la33;aHharFiClaipeBo9rak0Du7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Hlka2Xpavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bHdu3llakuric0Qmpa3Fn6ohsiu1ra5un1Iwaguc0Q;c0Pj;d5o,p4;ah1Ty;a7e6i5ohannesV;l1Vn0;dd36rusalem;ip4k5;ar2H;bad0mph1OnArkutUs7taXz5;mir,tapala5;pa;fah0l6tanb5;ul;am2Zi2H;che2d5;ianap2Mo20;aAe7o5yder2W; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Oupe;ld coa1Bthen5;bu2S;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal29es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,nkirk,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Zr es sala1KugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1Q;lo7n6penhag0Ar5;do1Ok;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr14;ch8sha,zh07;gliari,i9lga8mayenJn6pe town,r5tanO;acCdiff;ber1Ac5;un;ry;ro;aWeNhKirmingh0WoJr9u5;chareTdapeTenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iCl9ng8r5;g6l5n;in;en;aluru,hazi;fa6grade,o horizon5;te;st;ji1rut;ghd0BkFn9ot8r7s6yan n4;ur;el,r07;celo3i,ranquil09;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a05b02cc01ddis aba00gartaZhmedXizawl,lSmPnHqa00rEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a8c5kaOtwerp;hora6o3;na;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 7buquerq6eppo,giers,ma5;ty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"trueยฆ0:2K;1:2Q;2:2H;3:2B;a2Ob2Bc1Xd1Ses1Rf1Pg1Kh1Gi1Bj17k12l0Zm0On06o04pYqVrSsJtEuBverAw6y4zacatec2S;akut0o0Cu4;cat2k06;a5est 4isconsin,yomi1K;bengal,virgin0;rwick3shington4;! dc;acruz,mont;dmurt0t4;ah,tar4; 2La0Y;a6e5laxca1Rripu1Xu4;scaEva;langa1nnessee,x2F;bas0Wm4smOtar25;aulip2Dil nadu;a9i7o5taf12u4ylh1F;ffZrr05s1A;me1Cno1Quth 4;cWdV;ber0c4kkim,naloa;hu2ily;n5skatchew2xo4;ny; luis potosi,ta catari1;a4hodeA;j4ngp08;asth2shahi;ingh25u4;e4intana roo;bec,en6retaro;ara8e6rince edward4unjab; i4;sl0C;i,nnsylv4rnambu0C;an0;!na;axa0Ydisha,h4klaho20ntar4reg7ss0Cx0H;io;aKeEo6u4;evo le4nav0W;on;r4tt17va scot0;f9mandy,th4; 4ampton3;c6d5yo4;rk3;ako1N;aroli1;olk;bras1Mva0Cw4; 5foundland4;! and labrador;brunswick,hamp3jers5mexiTyork4;! state;ey;galPyarit;aAeghala0Mi6o4;nta1r4;dov0elos;ch6dlanDn5ss4zor11;issippi,ouri;as geraPneso18;ig2oac2;dhy12harasht0Gine,ni5r4ssachusetts;anhao,i el,ylG;p4toba;ur;anca3e4incoln3ouisI;e4iR;ds;a6e5h4omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr4;achay,el0nata0X;alis6har4iangxi;kh4;and;co;daho,llino7n4owa;d5gush4;et0;ia1;is;a6ert5i4un2;dalFm0D;ford3;mp3rya1waii;ansu,eorg0lou7oa,u4;an4izhou,jarat;ajuato,gdo4;ng;cester3;lori4uji2;da;sex;ageUe7o5uran4;go;rs4;et;lawaMrby3;aFeaEh9o4rim08umbr0;ahui7l6nnectic5rsi4ventry;ca;ut;i03orado;la;e5hattisgarh,i4uvash0;apRhuahua;chn5rke4;ss0;ya;ra;lGm4;bridge3peche;a9ihar,r8u4;ck4ryat0;ingham3;shi4;re;emen,itish columb0;h0ja cal8lk7s4v7;hkorto4que;st2;an;ar0;iforn0;ia;dygHguascalientes,lBndhr9r5ss4;am;izo1kans5un4;achal 7;as;na;a 4;pradesh;a6ber5t4;ai;ta;ba5s4;ka;ma;ea",Country:"trueยฆ0:38;1:2L;2:3B;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om2pZqat1KrXsKtCu7v5wal4yemTz3;a25imbabwe;es,lis and futu2Y;a3enezue32ietnam;nuatu,tican city;gTk6nited 4ruXs3zbeE; 2Ca,sr;arab emirat0Kkingdom,states3;! of am2Y;!raiV;a8haCimor les0Co7rinidad 5u3;nis0rk3valu;ey,me2Zs and caic1V;and t3t3;oba1L;go,kel10nga;iw2ji3nz2T;ki2V;aDcotl1eCi9lov8o6pa2Dri lanka,u5w3yr0;az3edAitzerl1;il1;d2riname;lomon1Xmal0uth 3;afr2KkMsud2;ak0en0;erra leoFn3;gapo1Yt maart3;en;negLrb0ychellZ;int 3moa,n marino,udi arab0;hele26luc0mart21;epublic of ir0Eom2Euss0w3;an27;a4eIhilippinUitcairn1Mo3uerto riN;l1rtugF;ki2Dl4nama,pua new0Vra3;gu7;au,esti3;ne;aBe9i7or3;folk1Ith4w3;ay; k3ern mariana1D;or0O;caragua,ger3ue;!ia;p3ther1Aw zeal1;al;mib0u3;ru;a7exi6icro0Bo3yanm06;ldova,n3roc5zambA;a4gol0t3;enegro,serrat;co;cAdagasc01l7r5urit4yot3;te;an0i16;shall0Xtin3;ique;a4div3i,ta;es;wi,ys0;ao,ed02;a6e5i3uxembourg;b3echtenste12thu1G;er0ya;ban0Isotho;os,tv0;azakh1Fe4iriba04o3uwait,yrgyz1F;rXsovo;eling0Knya;a3erG;ma16p2;c7nd6r4s3taly,vory coast;le of m2rael;a3el1;n,q;ia,oJ;el1;aiTon3ungary;dur0Ng kong;aBermany,ha0QibraltAre8u3;a6ern5inea3ya0P;! biss3;au;sey;deloupe,m,tema0Q;e3na0N;ce,nl1;ar;bUmb0;a7i6r3;ance,ench 3;guia0Epoly3;nes0;ji,nl1;lklandUroeU;ast tim7cu6gypt,l salv6ngl1quatorial4ritr5st3thiop0;on0; guin3;ea;ad3;or;enmark,jibou5ominica4r con3;go;!n C;ti;aBentral african Ah8o5roat0u4yprRzech3; 9ia;ba,racao;c4lo3morQngo brazzaville,okGsta r04te de ivoiL;mb0;osE;i3ristmasG;le,na;republic;m3naUpe verde,ymanA;bod0ero3;on;aGeDhut2o9r5u3;lgar0r3;kina faso,ma,undi;azil,itish 3unei;virgin3; is3;lands;liv0nai5snia and herzegoviHtswaHuvet3; isl1;and;re;l3n8rmuG;ar3gium,ize;us;h4ngladesh,rbad3;os;am4ra3;in;as;fghaGlDmBn6r4ustr3zerbaij2;al0ia;genti3men0uba;na;dorra,g5t3;arct7igua and barbu3;da;o3uil3;la;er3;ica;b3ger0;an0;ia;ni3;st2;an",Place:"trueยฆa0Gb0Bc03d02e01f00gWhUiSkQlNmLnIorHpDrCsAt5u4v3w2y0;a0yz;kutPngtze;ake isHupatki;irgin islands,ostok;laanbaatar,p02;a3eotihuac0Hh1onto,sarskoe selo,u0;lXzigoot;am09e 0;bronx,hamptons;hiti,j mahE;a0cotts bluff,eine,fo,oho,under9;int lawrence river,khalY;ed s3io grande;a1ek,h0itcairn,ompeii;l,x;cif05pahanaumokuak0rthenX;ea;ange county,d,inoco;e0ile;uschwansteQw eng0;land;a0co,ekong,idLuc;chu picchu,gad00libu,nhatt00;a1gw,hr,incoln memori0;al;s,x;azan kremlJosrae,rasnoyar0ul;sk;ax,cn,nd0st;ianSochina;arlem,kg,nd,ov0;d,enweep;a2odavari,re0;at 0enwich;britaBlakI;ngHy village;co,ra;urope,vergladF;anube,en,fw,own4xb;arrizo pla6dg,edar 5gk,h1lt,olosse0;um;a2i0uuk;chen itza,mney rock,na0ricahua;town;morro,tham;breaks,fa5;in;cn,e2kk,ro0;oklyn,wns cany0;on;l air,verly hi0;lls;driadic,frica,lhambra,m7n3rc2sia,tl1zor0;es;!ant2; de triomphe,t1;adyr,tarct0;ic0; oce0;an;ericas,s",FirstName:"trueยฆaTblair,cQdOfrancoZgabMhinaLilya,jHkClBm6ni4quinn,re3s0;h0umit,yd;ay,e0iloh;a,lby;g9ne;co,ko0;!s;a1el0ina,org6;!okuhF;ds,naia,r1tt0xiB;i,y;ion,lo;ashawn,eif,uca;a3e1ir0rM;an;lsFn0rry;dall,yat5;i,sD;a0essIie,ude;i1m0;ie,mG;me;ta;rie0y;le;arcy,ev0;an,on;as1h0;arl8eyenne;ey,sidy;drien,kira,l4nd1ubr0vi;ey;i,r0;a,e0;a,y;ex2f1o0;is;ie;ei,is",WeekDay:"trueยฆfri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"trueยฆdec0february,july,nov0octo1sept0;em0;ber",Date:"trueยฆago,on4som4t1week0yesterd5; end,ends;mr1o0;d2morrow;!w;ed0;ay",Duration:"trueยฆcenturAd8h7m5q4se3w1y0;ear8r8;eek0k7;!end,s;ason,c5;tr,uarter;i0onth3;llisecond2nute2;our1r1;ay0ecade0;!s;ies,y",FemaleName:"trueยฆ0:J7;1:JB;2:IJ;3:IK;4:J1;5:IO;6:JS;7:JO;8:HB;9:JK;A:H4;B:I2;C:IT;D:JH;E:IX;F:BA;G:I4;aGTbFLcDRdD0eBMfB4gADh9Ti9Gj8Dk7Cl5Wm48n3Lo3Hp33qu32r29s15t0Eu0Cv02wVxiTyOzH;aLeIineb,oHsof3;e3Sf3la,ra;h2iKlIna,ynH;ab,ep;da,ma;da,h2iHra;nab;aKeJi0FolB7uIvH;et8onDP;i0na;le0sen3;el,gm3Hn,rGLs8W;aoHme0nyi;m5XyAD;aMendDZhiDGiH;dele9lJnH;if48niHo0;e,f47;a,helmi0lHma;a,ow;ka0nB;aNeKiHusa5;ck84kIl8oleAviH;anFenJ4;ky,toriBK;da,lA8rHs0;a,nHoniH9;a,iFR;leHnesH9;nILrH;i1y;g9rHs6xHA;su5te;aYeUhRiNoLrIuHy2;i,la;acJ3iHu0J;c3na,sH;hFta;nHr0F;iFya;aJffaEOnHs6;a,gtiH;ng;!nFSra;aIeHomasi0;a,l9Oo8Ares1;l3ndolwethu;g9Fo88rIssH;!a,ie;eHi,ri7;sa,za;bOlMmKnIrHs6tia0wa0;a60yn;iHya;a,ka,s6;arFe2iHm77ra;!ka;a,iH;a,t6;at6it6;a0Ecarlett,e0AhWiSkye,neza0oQri,tNuIyH;bIGlvi1;ha,mayIJniAsIzH;an3Net8ie,y;anHi7;!a,e,nH;aCe;aIeH;fan4l5Dphan6E;cI5r5;b3fiAAm0LnHphi1;d2ia,ja,ya;er2lJmon1nIobh8QtH;a,i;dy;lETv3;aMeIirHo0risFDy5;a,lDM;ba,e0i5lJrH;iHr6Jyl;!d8Ifa;ia,lDZ;hd,iMki2nJrIu0w0yH;la,ma,na;i,le9on,ron,yn;aIda,ia,nHon;a,on;!ya;k6mH;!aa;lJrItaye82vH;da,inj;e0ife;en1i0ma;anA9bLd5Oh1SiBkKlJmInd2rHs6vannaC;aCi0;ant6i2;lDOma,ome;ee0in8Tu2;in1ri0;a05eZhXiUoHuthDM;bScRghQl8LnPsJwIxH;anB3ie,y;an,e0;aIeHie,lD;ann7ll1marDGtA;!lHnn1;iHyn;e,nH;a,dF;da,i,na;ayy8G;hel67io;bDRerAyn;a,cIkHmas,nFta,ya;ki,o;h8Xki;ea,iannGMoH;da,n1P;an0bJemFgi0iInHta,y0;a8Bee;han86na;a,eH;cHkaC;a,ca;bi0chIe,i0mo0nHquETy0;di,ia;aERelHiB;!e,le;een4ia0;aPeOhMiLoJrHute6A;iHudenCV;scil3LyamvaB;lHrt3;i0ly;a,paluk;ilome0oebe,ylH;is,lis;ggy,nelope,r5t2;ige,m0VnKo5rvaDMtIulH;a,et8in1;ricHt4T;a,e,ia;do2i07;ctav3dIfD3is6ksa0lHphD3umC5yunbileg;a,ga,iv3;eHvAF;l3t8;aWeUiMoIurHy5;!ay,ul;a,eJor,rIuH;f,r;aCeEma;ll1mi;aNcLhariBQkKlaJna,sHta,vi;anHha;ur;!y;a,iDZki;hoGk9YolH;a,e4P;!mh;hir,lHna,risDEsreE;!a,lBV;asuMdLh3i6Dl5nKomi7rgEVtH;aHhal4;lHs6;i1ya;cy,et8;e9iF0ya;nngu2X;a0Ackenz4e02iMoJrignayani,uriDJyH;a,rH;a,iOlNna,tG;bi0i2llBJnH;a,iH;ca,ka,qD9;a,cUdo4ZkaTlOmi,nMrItzi,yH;ar;aJiIlH;anET;am;!l,nB;dy,eHh,n4;nhGrva;aKdJe0iCUlH;iHy;cent,e;red;!gros;!e5;ae5hH;ae5el3Z;ag5DgNi,lKrH;edi7AiIjem,on,yH;em,l;em,sCG;an4iHliCF;nHsCJ;a,da;!an,han;b09cASd07e,g05ha,i04ja,l02n00rLsoum5YtKuIv84xBKyHz4;bell,ra,soBB;d7rH;a,eE;h8Gild1t4;a,cUgQiKjor4l7Un4s6tJwa,yH;!aHbe6Xja9lAE;m,nBL;a,ha,in1;!aJbCGeIja,lDna,sHt63;!a,ol,sa;!l1D;!h,mInH;!a,e,n1;!awit,i;arJeIie,oHr48ueri8;!t;!ry;et46i3B;el4Xi7Cy;dHon,ue5;akranAy;ak,en,iHlo3S;a,ka,nB;a,re,s4te;daHg4;!l3E;alDd4elHge,isDJon0;ei9in1yn;el,le;a0Ne0CiXoQuLyH;d3la,nH;!a,dIe2OnHsCT;!a,e2N;a,sCR;aD4cJel0Pis1lIna,pHz;e,iA;a,u,wa;iHy;a0Se,ja,l2NnB;is,l1UrItt1LuHvel4;el5is1;aKeIi7na,rH;aADi7;lHn1tA;ei;!in1;aTbb9HdSepa,lNnKsJvIzH;!a,be5Ret8z4;!ia;a,et8;!a,dH;a,sHy;ay,ey,i,y;a,iJja,lH;iHy;aA8e;!aH;!nF;ia,ya;!nH;!a,ne;aPda,e0iNjYla,nMoKsJtHx93y5;iHt4;c3t3;e2PlCO;la,nHra;a,ie,o2;a,or1;a,gh,laH;!ni;!h,nH;a,d2e,n5V;cOdon9DiNkes6mi9Gna,rMtJurIvHxmi,y5;ern1in3;a,e5Aie,yn;as6iIoH;nya,ya;fa,s6;a,isA9;a,la;ey,ie,y;a04eZhXiOlASoNrJyH;lHra;a,ee,ie;istHy6I;a,en,iIyH;!na;!e,n5F;nul,ri,urtnB8;aOerNlB7mJrHzzy;a,stH;en,in;!berlImernH;aq;eHi,y;e,y;a,stE;!na,ra;aHei2ongordzol;dij1w5;el7UiKjsi,lJnIrH;a,i,ri;d2na,za;ey,i,lBLs4y;ra,s6;biAcARdiat7MeBAiSlQmPnyakuma1DrNss6NtKviAyH;!e,lH;a,eH;e,i8T;!a6HeIhHi4TlDri0y;ar8Her8Hie,leErBAy;!lyn8Ori0;a,en,iHl5Xoli0yn;!ma,nFs95;a5il1;ei8Mi,lH;e,ie;a,tl6O;a0AeZiWoOuH;anMdLlHst88;es,iH;a8NeHs8X;!n9tH;!a,te;e5Mi3My;a,iA;!anNcelDdMelGhan7VleLni,sIva0yH;a,ce;eHie;fHlDph7Y;a,in1;en,n1;i7y;!a,e,n45;lHng;!i1DlH;!i1C;anNle0nKrJsH;i8JsH;!e,i8I;i,ri;!a,elGif2CnH;a,et8iHy;!e,f2A;a,eJiInH;a,eIiH;e,n1;!t8;cMda,mi,nIque4YsminFvie2y9zH;min7;a7eIiH;ce,e,n1s;!lHs82t0F;e,le;inIk6HlDquelH;in1yn;da,ta;da,lRmPnOo0rNsIvaHwo0zaro;!a0lu,na;aJiIlaHob89;!n9R;do2;belHdo2;!a,e,l3B;a7Ben1i0ma;di2es,gr72ji;a9elBogH;en1;a,e9iHo0se;a0na;aSeOiJoHus7Kyacin2C;da,ll4rten24snH;a,i9U;lImaH;ri;aIdHlaI;a,egard;ry;ath1BiJlInrietArmi9sH;sa,t1A;en2Uga,mi;di;bi2Fil8MlNnMrJsItHwa,yl8M;i5Tt4;n60ti;iHmo51ri53;etH;!te;aCnaC;a,ey,l4;a02eWiRlPoNrKunJwH;enHyne1R;!dolD;ay,el;acieIetHiselB;a,chE;!la;ld1CogooH;sh;adys,enHor3yn2K;a,da,na;aKgi,lIna,ov8EselHta;a,e,le;da,liH;an;!n0;mLnJorgIrH;ald5Si,m3Etrud7;et8i4X;a,eHna;s29vieve;ma;bIle,mHrnet,yG;al5Si5;iIrielH;a,l1;!ja;aTeQiPlorOoz3rH;anJeIiH;da,eB;da,ja;!cH;esIiHoi0P;n1s66;!ca;a,enc3;en,o0;lIn0rnH;anB;ec3ic3;jr,nArKtHy7;emIiHma,oumaA;ha,ma,n;eh;ah,iBrah,za0;cr4Rd0Re0Qi0Pk0Ol07mXn54rUsOtNuMvHwa;aKelIiH;!e,ta;inFyn;!a;!ngel4V;geni1ni47;h5Yien9ta;mLperanKtH;eIhHrel5;er;l31r7;za;a,eralB;iHma,ne4Lyn;cHka,n;a,ka;aPeNiKmH;aHe21ie,y;!li9nuH;elG;lHn1;e7iHy;a,e,ja;lHrald;da,y;!nue5;aWeUiNlMma,no2oKsJvH;a,iH;na,ra;a,ie;iHuiH;se;a,en,ie,y;a0c3da,e,f,nMsJzaH;!betHveA;e,h;aHe,ka;!beH;th;!a,or;anor,nH;!a,i;!in1na;ate1Rta;leEs6;vi;eIiHna,wi0;e,th;l,n;aYeMh3iLjeneKoH;lor5Vminiq4Ln3FrHtt4;a,eEis,la,othHthy;ea,y;ba;an09naCon9ya;anQbPde,eOiMlJmetr3nHsir5M;a,iH;ce,se;a,iIla,orHphi9;es,is;a,l6F;dHrdH;re;!d5Ena;!b2ForaCraC;a,d2nH;!a,e;hl3i0l0GmNnLphn1rIvi1WyH;le,na;a,by,cIia,lH;a,en1;ey,ie;a,et8iH;!ca,el1Aka,z;arHia;is;a0Re0Nh04i02lUoJristIynH;di,th3;al,i0;lPnMrIurH;tn1D;aJd2OiHn2Ori9;!nH;a,e,n1;!l4;cepci5Cn4sH;tanHuelo;ce,za;eHleE;en,t8;aJeoIotH;il54;!pat2;ir7rJudH;et8iH;a,ne;a,e,iH;ce,sZ;a2er2ndH;i,y;aReNloe,rH;isJyH;stH;al;sy,tH;a1Sen,iHy;an1e,n1;deJlseIrH;!i7yl;a,y;li9;nMrH;isKlImH;ai9;a,eHot8;n1t8;!sa;d2elGtH;al,elG;cIlH;es8i47;el3ilH;e,ia,y;itlYlXmilWndVrMsKtHy5;aIeIhHri0;er1IleErDy;ri0;a38sH;a37ie;a,iOlLmeJolIrH;ie,ol;!e,in1yn;lHn;!a,la;a,eIie,otHy;a,ta;ne,y;na,s1X;a0Ii0I;a,e,l1;isAl4;in,yn;a0Ke02iZlXoUrH;andi7eRiJoIyH;an0nn;nwDoke;an3HdgMgiLtH;n31tH;!aInH;ey,i,y;ny;d,t8;etH;!t7;an0e,nH;da,na;bbi7glarIlo07nH;iAn4;ka;ancHythe;a,he;an1Clja0nHsm3M;iAtH;ou;aWcVlinUniArPssOtJulaCvH;!erlH;ey,y;hJsy,tH;e,iHy7;e,na;!anH;ie,y;!ie;nItHyl;ha,ie;adIiH;ce;et8i9;ay,da;ca,ky;!triH;ce,z;rbJyaH;rmH;aa;a2o2ra;a2Ub2Od25g21i1Sj5l18m0Zn0Boi,r06sWtVuPvOwa,yIzH;ra,u0;aKes6gJlIn,seH;!l;in;un;!nH;a,na;a,i2K;drLguJrIsteH;ja;el3;stH;in1;a,ey,i,y;aahua,he0;hIi2Gja,miAs2DtrH;id;aMlIraqHt21;at;eIi7yH;!n;e,iHy;gh;!nH;ti;iJleIo6piA;ta;en,n1t8;aHelG;!n1J;a01dje5eZgViTjRnKohito,toHya;inet8nH;el5ia;te;!aKeIiHmJ;e,ka;!mHtt7;ar4;!belIliHmU;sa;!l1;a,eliH;ca;ka,sHta;a,sa;elHie;a,iH;a,ca,n1qH;ue;!tH;a,te;!bImHstasiMya;ar3;el;aLberKeliJiHy;e,l3naH;!ta;a,ja;!ly;hGiIl3nB;da;a,ra;le;aWba,ePiMlKthJyH;a,c3sH;a,on,sa;ea;iHys0N;e,s0M;a,cIn1sHza;a,e,ha,on,sa;e,ia,ja;c3is6jaKksaKna,sJxH;aHia;!nd2;ia,saH;nd2;ra;ia;i0nIyH;ah,na;a,is,naCoud;la;c6da,leEmNnLsH;haClH;inHyY;g,n;!h;a,o,slH;ey;ee;en;at6g4nIusH;ti0;es;ie;aWdiTelMrH;eJiH;anMenH;a,e,ne;an0;na;!aLeKiIyH;nn;a,n1;a,e;!ne;!iH;de;e,lDsH;on;yn;!lH;i9yn;ne;aKbIiHrL;!e,gaK;ey,i7y;!e;gaH;il;dKliyJradhIs6;ha;ya;ah;a,ya",Honorific:"trueยฆdirector1field marsh2lieutenant1rear0sergeant major,vice0; admir1; gener0;al","Adj|Gerund":"trueยฆ0:3F;1:3H;2:31;3:2X;4:35;5:33;6:3C;7:2Z;8:36;9:29;a33b2Tc2Bd1Te1If19g12h0Zi0Rl0Nm0Gnu0Fo0Ap04rYsKtEuBvAw1Ayiel3;ar6e08;nBpA;l1Rs0B;fol3n1Zsett2;aEeDhrBi4ouc7rAwis0;e0Bif2oub2us0yi1;ea1SiA;l2vi1;l2mp0rr1J;nt1Vxi1;aMcreec7enten2NhLkyrocke0lo0Vmi2oJpHtDuBweA;e0Ul2;pp2ArA;gi1pri5roun3;aBea8iAri2Hun9;mula0r4;gge4rA;t2vi1;ark2eAraw2;e3llb2F;aAot7;ki1ri1;i9oc29;dYtisf6;aEeBive0oAus7;a4l2;assu4defi9fres7ig9juve07mai9s0vAwar3;ea2italiAol1G;si1zi1;gi1ll6mb2vi1;a6eDier23lun1VrAun2C;eBoA;mi5vo1Z;ce3s5vai2;n3rpleA;xi1;ffCpWutBverAwi1;arc7lap04p0Pri3whel8;goi1l6st1J;en3sA;et0;m2Jrtu4;aEeDiCoBuAyst0L;mb2;t1Jvi1;s5tiga0;an1Rl0n3smeri26;dAtu4;de9;aCeaBiAo0U;fesa0Tvi1;di1ni1;c1Fg19s0;llumiGmFnArri0R;cDfurHsCtBviA;go23ti1;e1Oimi21oxica0rig0V;pi4ul0;orpo20r0K;po5;na0;eaBorr02umilA;ia0;li1rtwar8;lFrA;atiDipCoBuelA;i1li1;undbrea10wi1;pi1;f6ng;a4ea8;a3etc7it0lEoCrBulfA;il2;ee1FighXust1L;rAun3;ebo3thco8;aCoA;a0wA;e4i1;mi1tte4;lectrJmHnExA;aCci0hBis0pA;an3lo3;aOila1B;c0spe1A;ab2coura0CdBergi13ga0Clive9ric7s02tA;hral2i0J;ea4u4;barras5er09pA;owe4;if6;aQeIiBrA;if0;sAzz6;aEgDhearCsen0tA;rAur11;ac0es5;te9;us0;ppoin0r8;biliGcDfi9gra3ligh0mBpres5sAvasG;erE;an3ea9orA;ali0L;a6eiBli9rA;ea5;vi1;ta0;maPri1s7un0zz2;aPhMlo5oAripp2ut0;mGnArrespon3;cer9fDspi4tA;inBrA;as0ibu0ol2;ui1;lic0u5;ni1;fDmCpA;eAromi5;l2ti1;an3;or0;aAil2;llenAnAr8;gi1;l8ptAri1;iva0;aff2eGin3lFoDrBuA;d3st2;eathtaAui5;ki1;gg2i2o8ri1unA;ci1;in3;co8wiA;lAtc7;de4;bsorVcOgonMlJmHnno6ppea2rFsA;pi4su4toA;nBun3;di1;is7;hi1;res0;li1;aFu5;si1;ar8lu4;ri1;mi1;iAzi1;zi1;cAhi1;eleDomA;moBpan6;yi1;da0;ra0;ti1;bi1;ng",Comparable:"trueยฆ0:3C;1:3Q;2:3F;a3Tb3Cc33d2Te2Mf2Ag1Wh1Li1Fj1Ek1Bl13m0Xn0So0Rp0Iqu0Gr07sHtCug0vAw4y3za0Q;el10ouN;ary,e6hi5i3ry;ck0Cde,l3n1ry,se;d,y;ny,te;a3i3R;k,ry;a3erda2ulgar;gue,in,st;a6en2Xhi5i4ouZr3;anqu2Cen1ue;dy,g36me0ny;ck,rs28;ll,me,rt,wd3I;aRcaPeOhMiLkin0BlImGoEpDt6u4w3;eet,ift;b3dd0Wperfi21rre28;sta26t21;a8e7iff,r4u3;pUr1;a4ict,o3;ng;ig2Vn0N;a1ep,rn;le,rk,te0;e1Si2Vright0;ci1Yft,l3on,re;emn,id;a3el0;ll,rt;e4i3y;g2Mm0Z;ek,nd2T;ck24l0mp1L;a3iRrill,y;dy,l01rp;ve0Jxy;n1Jr3;ce,y;d,fe,int0l1Hv0V;a8e6i5o3ude;mantic,o19sy,u3;gh;pe,t1P;a3d,mo0A;dy,l;gg4iFndom,p3re,w;id;ed;ai2i3;ck,et;hoAi1Fl9o8r5u3;ny,r3;e,p11;egna2ic4o3;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e5i4o3u14;b0Sisy,rm0Ysy;bb0ce,mb0R;a3r1w;r,t;ad,e5ild,o4u3;nda12te;ist,o1;a4ek,l3;low;s0ty;a8e7i6o3ucky;f0Jn4o15u3ve0w10y0N;d,sy;e0g;ke0l,mp,tt0Eve0;e1Qwd;me,r3te;ge;e4i3;nd;en;ol0ui19;cy,ll,n3;secu6t3;e3ima4;llege2rmedia3;te;re;aAe7i6o5u3;ge,m3ng1C;bYid;me0t;gh,l0;a3fXsita2;dy,rWv3;en0y;nd13ppy,r3;d3sh;!y;aFenEhCiBlAoofy,r3;a8e6i5o3ue0Z;o3ss;vy;m,s0;at,e3y;dy,n;nd,y;ad,ib,ooD;a2d1;a3o3;st0;tDuiS;u1y;aCeebBi9l8o6r5u3;ll,n3r0N;!ny;aCesh,iend0;a3nd,rmD;my;at,ir7;erce,nan3;ci9;le;r,ul3;ty;a6erie,sse4v3xtre0B;il;nti3;al;r4s3;tern,y;ly,th0;appZe9i5ru4u3;mb;nk;r5vi4z3;zy;ne;e,ty;a3ep,n9;d3f,r;!ly;agey,h8l7o5r4u3;dd0r0te;isp,uel;ar3ld,mmon,st0ward0zy;se;evKou1;e3il0;ap,e3;sy;aHiFlCoAr5u3;ff,r0sy;ly;a6i3oad;g4llia2;nt;ht;sh,ve;ld,un3;cy;a4o3ue;nd,o1;ck,nd;g,tt3;er;d,ld,w1;dy;bsu6ng5we3;so3;me;ry;rd",Adverb:"trueยฆa08b05d00eYfSheQinPjustOkinda,likewiZmMnJoEpCquite,r9s5t2u0very,well;ltima01p0; to,wards5;h1iny bit,o0wiO;o,t6;en,us;eldom,o0uch;!me1rt0; of;how,times,w0C;a1e0;alS;ndomRth05;ar excellenEer0oint blank; Lhaps;f3n0utright;ce0ly;! 0;ag05moX; courGten;ewJo0; longWt 0;onHwithstand9;aybe,eanwhiNore0;!ovT;! aboX;deed,steY;lla,n0;ce;or3u0;ck1l9rther0;!moK;ing; 0evK;exampCgood,suH;n mas0vI;se;e0irect2; 2fini0;te0;ly;juAtrop;ackward,y 0;far,no0; means,w; GbroFd nauseam,gEl7ny5part,s4t 2w0;ay,hi0;le;be7l0mo7wor7;arge,ea6; soon,i4;mo0way;re;l 3mo2ongsi1ready,so,togeth0ways;er;de;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"trueยฆaXbTcReNhowMiEjust00noBo9p8supposing,t5wh0yet;e1il0o3;e,st;n1re0thN; if,by,vM;evL;h0il,o;erefOo0;!uU;lus,rovided th9;r0therwiM;! not; mattEr,w0;! 0;since,th4w7;f4n0; 0asmuch;as mIcaForder t0;h0o;at;! 0;only,t0w0;hen;!ev3;ith2ven0;! 0;if,tB;er;o0uz;s,z;e0ut,y the time;cau1f0;ore;se;lt3nd,s 0;far1if,m0soon1t2;uch0; as;hou0;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",Determiner:"trueยฆaBboth,d9e6few,le5mu8neiDplenty,s4th2various,wh0;at0ich0;evC;a0e4is,ose;!t;everal,ome;!ast,s;a1l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er","Adj|Present":"trueยฆa07b04cVdQeNfJhollIidRlEmCnarrIoBp9qua8r7s3t2uttFw0;aKet,ro0;ng,u08;endChin;e2hort,l1mooth,our,pa9tray,u0;re,speU;i2ow;cu6da02leSpaN;eplica01i02;ck;aHerfePr0;eseUime,omV;bscu1pen,wn;atu0e3odeH;re;a2e1ive,ow0;er;an;st,y;ow;a2i1oul,r0;ee,inge;rm;iIke,ncy,st;l1mpty,x0;emHpress;abo4ic7;amp,e2i1oub0ry,ull;le;ffu9re6;fu8libe0;raE;alm,l5o0;mpleCn3ol,rr1unterfe0;it;e0u7;ct;juga8sum7;ea1o0;se;n,r;ankru1lu0;nt;pt;li2pproxi0rticula1;ma0;te;ght","Person|Adj":"trueยฆb3du2earnest,frank,mi2r0san1woo1;an0ich,u1;dy;sty;ella,rown",Modal:"trueยฆc5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Verb:"trueยฆborn,cannot,gonna,has,keep tabs,msg","Person|Verb":"trueยฆb8ch7dr6foster,gra5ja9lan4ma2ni9ollie,p1rob,s0wade;kip,pike,t5ue;at,eg,ier2;ck,r0;k,shal;ce;ce,nt;ew;ase,u1;iff,l1ob,u0;ck;aze,ossom","Person|Date":"trueยฆa2j0sep;an0une;!uary;p0ugust,v0;ril"};const Eo=36,Fo="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",Oo=Fo.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var zo=function(e){if(void 0!==Oo[e])return Oo[e];let t=0,n=1,a=Eo,r=1;for(;n=0;n--,r*=Eo){let a=e.charCodeAt(n)-48;a>10&&(a-=7),t+=a*r}return t},Vo=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=So(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=Ko(To[e]);Wo.test(e)?Object.keys(t).forEach((t=>{if(qo[t]=e,"Noun|Verb"===e){let e=Jo(t,Ro);qo[e]="Plural|Verb"}})):Object.keys(t).forEach((t=>{Uo[t]=e}))})),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Uo[e]="Emoticon")),delete Uo[""],delete Uo.null,delete Uo[" "];const Qo="Singular";var Zo={beforeTags:{Determiner:Qo,Possessive:Qo,Acronym:Qo,Noun:Qo,Adjective:Qo,PresentTense:Qo,Gerund:Qo,PastTense:Qo,Infinitive:Qo,Date:Qo,Ordinal:Qo,Demonym:Qo},afterTags:{Value:Qo,Modal:Qo,Copula:Qo,PresentTense:Qo,PastTense:Qo,Demonym:Qo,Actor:Qo},beforeWords:{the:Qo,with:Qo,without:Qo,of:Qo,for:Qo,any:Qo,all:Qo,on:Qo,cut:Qo,cuts:Qo,increase:Qo,decrease:Qo,raise:Qo,drop:Qo,save:Qo,saved:Qo,saves:Qo,make:Qo,makes:Qo,made:Qo,minus:Qo,plus:Qo,than:Qo,another:Qo,versus:Qo,neither:Qo,about:Qo,favorite:Qo,best:Qo,daily:Qo,weekly:Qo,linear:Qo,binary:Qo,mobile:Qo,lexical:Qo,technical:Qo,computer:Qo,scientific:Qo,security:Qo,government:Qo,popular:Qo,formal:Qo,no:Qo,more:Qo,one:Qo,let:Qo,her:Qo,his:Qo,their:Qo,our:Qo,us:Qo,sheer:Qo,monthly:Qo,yearly:Qo,current:Qo,previous:Qo,upcoming:Qo,last:Qo,next:Qo,main:Qo,initial:Qo,final:Qo,beginning:Qo,end:Qo,top:Qo,bottom:Qo,future:Qo,past:Qo,major:Qo,minor:Qo,side:Qo,central:Qo,peripheral:Qo,public:Qo,private:Qo},afterWords:{of:Qo,system:Qo,aid:Qo,method:Qo,utility:Qo,tool:Qo,reform:Qo,therapy:Qo,philosophy:Qo,room:Qo,authority:Qo,says:Qo,said:Qo,wants:Qo,wanted:Qo,is:Qo,did:Qo,do:Qo,can:Qo,wise:Qo}};const _o="Infinitive";var Xo={beforeTags:{Modal:_o,Adverb:_o,Negative:_o,Plural:_o},afterTags:{Determiner:_o,Adverb:_o,Possessive:_o,Reflexive:_o,Preposition:_o,Cardinal:_o,Comparative:_o,Superlative:_o},beforeWords:{i:_o,we:_o,you:_o,they:_o,to:_o,please:_o,will:_o,have:_o,had:_o,would:_o,could:_o,should:_o,do:_o,did:_o,does:_o,can:_o,must:_o,us:_o,me:_o,let:_o,even:_o,when:_o,help:_o,he:_o,she:_o,it:_o,being:_o,bi:_o,co:_o,contra:_o,de:_o,inter:_o,intra:_o,mis:_o,pre:_o,out:_o,counter:_o,nobody:_o,somebody:_o,anybody:_o,everybody:_o},afterWords:{the:_o,me:_o,you:_o,him:_o,us:_o,her:_o,his:_o,them:_o,they:_o,it:_o,himself:_o,herself:_o,itself:_o,myself:_o,ourselves:_o,themselves:_o,something:_o,anything:_o,a:_o,an:_o,up:_o,down:_o,by:_o,out:_o,off:_o,under:_o,what:_o,all:_o,to:_o,because:_o,although:_o,how:_o,otherwise:_o,together:_o,though:_o,into:_o,yet:_o,more:_o,here:_o,there:_o,away:_o}},Yo={beforeTags:Object.assign({},Xo.beforeTags,Zo.beforeTags,{}),afterTags:Object.assign({},Xo.afterTags,Zo.afterTags,{}),beforeWords:Object.assign({},Xo.beforeWords,Zo.beforeWords,{}),afterWords:Object.assign({},Xo.afterWords,Zo.afterWords,{})};const ei="Adjective";var ti={beforeTags:{Determiner:ei,Possessive:ei,Hyphenated:ei},afterTags:{Adjective:ei},beforeWords:{seem:ei,seemed:ei,seems:ei,feel:ei,feels:ei,felt:ei,stay:ei,appear:ei,appears:ei,appeared:ei,also:ei,over:ei,under:ei,too:ei,it:ei,but:ei,still:ei,really:ei,quite:ei,well:ei,very:ei,truly:ei,how:ei,deeply:ei,hella:ei,profoundly:ei,extremely:ei,so:ei,badly:ei,mostly:ei,totally:ei,awfully:ei,rather:ei,nothing:ei,something:ei,anything:ei,not:ei,me:ei,is:ei,face:ei,faces:ei,faced:ei,look:ei,looks:ei,looked:ei,reveal:ei,reveals:ei,revealed:ei,sound:ei,sounded:ei,sounds:ei,remains:ei,remained:ei,prove:ei,proves:ei,proved:ei,becomes:ei,stays:ei,tastes:ei,taste:ei,smells:ei,smell:ei,gets:ei,grows:ei,as:ei,rings:ei,radiates:ei,conveys:ei,convey:ei,conveyed:ei,of:ei},afterWords:{too:ei,also:ei,or:ei,enough:ei,as:ei}};const ni="Gerund";var ai={beforeTags:{Adverb:ni,Preposition:ni,Conjunction:ni},afterTags:{Adverb:ni,Possessive:ni,Person:ni,Pronoun:ni,Determiner:ni,Copula:ni,Preposition:ni,Conjunction:ni,Comparative:ni},beforeWords:{been:ni,keep:ni,continue:ni,stop:ni,am:ni,be:ni,me:ni,began:ni,start:ni,starts:ni,started:ni,stops:ni,stopped:ni,help:ni,helps:ni,avoid:ni,avoids:ni,love:ni,loves:ni,loved:ni,hate:ni,hates:ni,hated:ni},afterWords:{you:ni,me:ni,her:ni,him:ni,his:ni,them:ni,their:ni,it:ni,this:ni,there:ni,on:ni,about:ni,for:ni,up:ni,down:ni}};const ri="Gerund",oi="Adjective";var ii={beforeTags:Object.assign({},ti.beforeTags,ai.beforeTags,{Imperative:ri,Infinitive:oi,Plural:ri}),afterTags:Object.assign({},ti.afterTags,ai.afterTags,{Noun:oi}),beforeWords:Object.assign({},ti.beforeWords,ai.beforeWords,{is:oi,are:ri,was:oi,of:oi,suggest:ri,suggests:ri,suggested:ri,recommend:ri,recommends:ri,recommended:ri,imagine:ri,imagines:ri,imagined:ri,consider:ri,considered:ri,considering:ri,resist:ri,resists:ri,resisted:ri,avoid:ri,avoided:ri,avoiding:ri,except:oi,accept:oi,assess:ri,explore:ri,fear:ri,fears:ri,appreciate:ri,question:ri,help:ri,embrace:ri,with:oi}),afterWords:Object.assign({},ti.afterWords,ai.afterWords,{to:ri,not:ri,the:ri})};const si={beforeTags:{Determiner:void 0,Cardinal:"Noun",PhrasalVerb:"Adjective"},afterTags:{}};var li={beforeTags:Object.assign({},ti.beforeTags,Zo.beforeTags,si.beforeTags),afterTags:Object.assign({},ti.afterTags,Zo.afterTags,si.afterTags),beforeWords:Object.assign({},ti.beforeWords,Zo.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective",off:"Adjective",out:"Adjective"}),afterWords:Object.assign({},ti.afterWords,Zo.afterWords)};let ui="PastTense",ci="Adjective";const di={beforeTags:{Adverb:ui,Pronoun:ui,ProperNoun:ui,Auxiliary:ui,Noun:ui},afterTags:{Possessive:ui,Pronoun:ui,Determiner:ui,Adverb:ui,Comparative:ui,Date:ui,Gerund:ui},beforeWords:{be:ui,who:ui,get:ci,had:ui,has:ui,have:ui,been:ui,it:ui,as:ui,for:ci,more:ci,always:ci},afterWords:{by:ui,back:ui,out:ui,in:ui,up:ui,down:ui,before:ui,after:ui,for:ui,the:ui,with:ui,as:ui,on:ui,at:ui,between:ui,to:ui,into:ui,us:ui,them:ui,his:ui,her:ui,their:ui,our:ui,me:ui,about:ci}};var hi={beforeTags:Object.assign({},ti.beforeTags,di.beforeTags),afterTags:Object.assign({},ti.afterTags,di.afterTags),beforeWords:Object.assign({},ti.beforeWords,di.beforeWords),afterWords:Object.assign({},ti.afterWords,di.afterWords)};const gi={afterTags:{Noun:"Adjective",Conjunction:void 0}};var mi={beforeTags:Object.assign({},ti.beforeTags,Xo.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},ti.afterTags,Xo.afterTags,gi.afterTags),beforeWords:Object.assign({},ti.beforeWords,Xo.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},ti.afterWords,Xo.afterWords,{to:void 0,as:"Adjective"})};const pi={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},fi={Value:"Gerund"},bi={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},vi={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var yi={beforeTags:Object.assign({},ai.beforeTags,Zo.beforeTags,pi),afterTags:Object.assign({},ai.afterTags,Zo.afterTags,fi),beforeWords:Object.assign({},ai.beforeWords,Zo.beforeWords,bi),afterWords:Object.assign({},ai.afterWords,Zo.afterWords,vi)};const wi="Singular",ki="Infinitive";var Pi={beforeTags:Object.assign({},Xo.beforeTags,Zo.beforeTags,{Adjective:wi,Particle:wi}),afterTags:Object.assign({},Xo.afterTags,Zo.afterTags,{ProperNoun:ki,Gerund:ki,Adjective:ki,Copula:wi}),beforeWords:Object.assign({},Xo.beforeWords,Zo.beforeWords,{is:wi,was:wi,of:wi,have:null}),afterWords:Object.assign({},Xo.afterWords,Zo.afterWords,{instead:ki,about:ki,his:ki,her:ki,to:null,by:null,in:null})};const Ai="Person";var Ci={beforeTags:{Honorific:Ai,Person:Ai},afterTags:{Person:Ai,ProperNoun:Ai,Verb:Ai},ownTags:{ProperNoun:Ai},beforeWords:{hi:Ai,hey:Ai,yo:Ai,dear:Ai,hello:Ai},afterWords:{said:Ai,says:Ai,told:Ai,tells:Ai,feels:Ai,felt:Ai,seems:Ai,thinks:Ai,thought:Ai,spends:Ai,spendt:Ai,plays:Ai,played:Ai,sing:Ai,sang:Ai,learn:Ai,learned:Ai,wants:Ai,wanted:Ai}};const ji="Month",Ni={beforeTags:{Date:ji,Value:ji},afterTags:{Date:ji,Value:ji},beforeWords:{by:ji,in:ji,on:ji,during:ji,after:ji,before:ji,between:ji,until:ji,til:ji,sometime:ji,of:ji,this:ji,next:ji,last:ji,previous:ji,following:ji,with:"Person"},afterWords:{sometime:ji,in:ji,of:ji,until:ji,the:ji}};var Ii={beforeTags:Object.assign({},Ci.beforeTags,Ni.beforeTags),afterTags:Object.assign({},Ci.afterTags,Ni.afterTags),beforeWords:Object.assign({},Ci.beforeWords,Ni.beforeWords),afterWords:Object.assign({},Ci.afterWords,Ni.afterWords)};const Di="Place",Hi={beforeTags:{Place:Di},afterTags:{Place:Di,Abbreviation:Di},beforeWords:{in:Di,by:Di,near:Di,from:Di,to:Di},afterWords:{in:Di,by:Di,near:Di,from:Di,to:Di,government:Di,council:Di,region:Di,city:Di}};let Gi="Unit";const xi={"Actor|Verb":Yo,"Adj|Gerund":ii,"Adj|Noun":li,"Adj|Past":hi,"Adj|Present":mi,"Noun|Verb":Pi,"Noun|Gerund":yi,"Person|Noun":{beforeTags:Object.assign({},Zo.beforeTags,Ci.beforeTags),afterTags:Object.assign({},Zo.afterTags,Ci.afterTags),beforeWords:Object.assign({},Zo.beforeWords,Ci.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Zo.afterWords,Ci.afterWords)},"Person|Date":Ii,"Person|Verb":{beforeTags:Object.assign({},Zo.beforeTags,Ci.beforeTags,Xo.beforeTags),afterTags:Object.assign({},Zo.afterTags,Ci.afterTags,Xo.afterTags),beforeWords:Object.assign({},Zo.beforeWords,Ci.beforeWords,Xo.beforeWords),afterWords:Object.assign({},Zo.afterWords,Ci.afterWords,Xo.afterWords)},"Person|Place":{beforeTags:Object.assign({},Hi.beforeTags,Ci.beforeTags),afterTags:Object.assign({},Hi.afterTags,Ci.afterTags),beforeWords:Object.assign({},Hi.beforeWords,Ci.beforeWords),afterWords:Object.assign({},Hi.afterWords,Ci.afterWords)},"Person|Adj":{beforeTags:Object.assign({},Ci.beforeTags,ti.beforeTags),afterTags:Object.assign({},Ci.afterTags,ti.afterTags),beforeWords:Object.assign({},Ci.beforeWords,ti.beforeWords),afterWords:Object.assign({},Ci.afterWords,ti.afterWords)},"Unit|Noun":{beforeTags:{Value:Gi},afterTags:{},beforeWords:{per:Gi,every:Gi,each:Gi,square:Gi,cubic:Gi,sq:Gi,metric:Gi},afterWords:{per:Gi,squared:Gi,cubed:Gi,long:Gi}}},Ti=(e,t)=>{let n=Object.keys(e).reduce(((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t)),{});return Object.assign(n,t)};xi["Plural|Verb"]={beforeWords:Ti(xi["Noun|Verb"].beforeWords,{had:"Plural",have:"Plural"}),afterWords:Ti(xi["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null,is:"PresentTense",by:"PresentTense"}),beforeTags:Ti(xi["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:Ti(xi["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var Ei=xi;const Fi="Adjective",Oi="Infinitive",zi="PresentTense",Vi="Singular",Bi="PastTense",Si="Adverb",Ki="Plural",$i="Actor",Mi="Verb",Li="Noun",Ji="LastName",Wi="Modal",Ui="Place",qi="Participle";var Ri=[null,null,{ea:Vi,ia:Li,ic:Fi,ly:Si,"'n":Mi,"'t":Mi},{oed:Bi,ued:Bi,xed:Bi," so":Si,"'ll":Wi,"'re":"Copula",azy:Fi,eer:Li,end:Mi,ped:Bi,ffy:Fi,ify:Oi,ing:"Gerund",ize:Oi,ibe:Oi,lar:Fi,mum:Fi,nes:zi,nny:Fi,ous:Fi,que:Fi,ger:Li,ber:Li,rol:Vi,sis:Vi,ogy:Vi,oid:Vi,ian:Vi,zes:zi,eld:Bi,ken:qi,ven:qi,ten:qi,ect:Oi,ict:Oi,ign:Oi,oze:Oi,ful:Fi,bal:Fi,ton:Li},{amed:Bi,aped:Bi,ched:Bi,lked:Bi,rked:Bi,reed:Bi,nded:Bi,mned:Fi,cted:Bi,dged:Bi,ield:Vi,akis:Ji,cede:Oi,chuk:Ji,czyk:Ji,ects:zi,iend:Vi,ends:Mi,enko:Ji,ette:Vi,iary:Vi,wner:Vi,fies:zi,fore:Si,gate:Oi,gone:Fi,ices:Ki,ints:Ki,ruct:Oi,ines:Ki,ions:Ki,ners:Ki,pers:Ki,lers:Ki,less:Fi,llen:Fi,made:Fi,nsen:Ji,oses:zi,ould:Wi,some:Fi,sson:Ji,ians:Ki,tion:Vi,tage:Li,ique:Vi,tive:Fi,tors:Li,vice:Vi,lier:Vi,fier:Vi,wned:Bi,gent:Vi,tist:$i,pist:$i,rist:$i,mist:$i,yist:$i,vist:$i,ists:$i,lite:Vi,site:Vi,rite:Vi,mite:Vi,bite:Vi,mate:Vi,date:Vi,ndal:Vi,vent:Vi,uist:$i,gist:$i,note:Vi,cide:Vi,ence:Vi,wide:Fi,vide:Oi,ract:Oi,duce:Oi,pose:Oi,eive:Oi,lyze:Oi,lyse:Oi,iant:Fi,nary:Fi,ghty:Fi,uent:Fi,erer:$i,bury:Ui,dorf:Li,esty:Li,wych:Ui,dale:Ui,folk:Ui},{elist:$i,holic:Vi,phite:Vi,tized:Bi,urned:Bi,eased:Bi,ances:Ki,bound:Fi,ettes:Ki,fully:Si,ishes:zi,ities:Ki,marek:Ji,nssen:Ji,ology:Li,osome:Vi,tment:Vi,ports:Ki,rough:Fi,tches:zi,tieth:"Ordinal",tures:Ki,wards:Si,where:Si,archy:Li,pathy:Li,opoly:Li,embly:Li,phate:Li,ndent:Vi,scent:Vi,onist:$i,anist:$i,alist:$i,olist:$i,icist:$i,ounce:Oi,iable:Fi,borne:Fi,gnant:Fi,inant:Fi,igent:Fi,atory:Fi,rient:Vi,dient:Vi,maker:$i,burgh:Ui,mouth:Ui,ceter:Ui,ville:Ui,worth:Li},{auskas:Ji,parent:Vi,cedent:Vi,ionary:Vi,cklist:Vi,keeper:$i,logist:$i,teenth:"Value",worker:$i,master:$i,writer:$i,brough:Ui,cester:Ui},{logists:$i,opoulos:Ji,borough:Ui,sdottir:Ji}];const Qi="Adjective",Zi="Noun",_i="Verb";var Xi=[null,null,{},{neo:Zi,bio:Zi,"de-":_i,"re-":_i,"un-":_i,"ex-":Zi},{anti:Zi,auto:Zi,faux:Qi,hexa:Zi,kilo:Zi,mono:Zi,nano:Zi,octa:Zi,poly:Zi,semi:Qi,tele:Zi,"pro-":Qi,"mis-":_i,"dis-":_i,"pre-":Qi},{anglo:Zi,centi:Zi,ethno:Zi,ferro:Zi,grand:Zi,hepta:Zi,hydro:Zi,intro:Zi,macro:Zi,micro:Zi,milli:Zi,nitro:Zi,penta:Zi,quasi:Qi,radio:Zi,tetra:Zi,"omni-":Qi,"post-":Qi},{pseudo:Qi,"extra-":Qi,"hyper-":Qi,"inter-":Qi,"intra-":Qi,"deca-":Qi},{electro:Zi}];const Yi="Adjective",es="Infinitive",ts="PresentTense",ns="Singular",as="PastTense",rs="Adverb",os="Expression",is="Actor",ss="Verb",ls="Noun",us="LastName";var cs={a:[[/.[aeiou]na$/,ls,"tuna"],[/.[oau][wvl]ska$/,us],[/.[^aeiou]ica$/,ns,"harmonica"],[/^([hyj]a+)+$/,os,"haha"]],c:[[/.[^aeiou]ic$/,Yi]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,as,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,as,"rammed"],[/.[aeiou][sg]hed$/,as,"gushed"],[/.[aeiou]red$/,as,"hired"],[/.[aeiou]r?ried$/,as,"hurried"],[/[^aeiou]ard$/,ns,"steward"],[/[aeiou][^aeiou]id$/,Yi,""],[/.[vrl]id$/,Yi,"livid"],[/..led$/,as,"hurled"],[/.[iao]sed$/,as,""],[/[aeiou]n?[cs]ed$/,as,""],[/[aeiou][rl]?[mnf]ed$/,as,""],[/[aeiou][ns]?c?ked$/,as,"bunked"],[/[aeiou]gned$/,as],[/[aeiou][nl]?ged$/,as],[/.[tdbwxyz]ed$/,as],[/[^aeiou][aeiou][tvx]ed$/,as],[/.[cdflmnprstv]ied$/,as,"emptied"]],e:[[/.[lnr]ize$/,es,"antagonize"],[/.[^aeiou]ise$/,es,"antagonise"],[/.[aeiou]te$/,es,"bite"],[/.[^aeiou][ai]ble$/,Yi,"fixable"],[/.[^aeiou]eable$/,Yi,"maleable"],[/.[ts]ive$/,Yi,"festive"],[/[a-z]-like$/,Yi,"woman-like"]],h:[[/.[^aeiouf]ish$/,Yi,"cornish"],[/.v[iy]ch$/,us,"..ovich"],[/^ug?h+$/,os,"ughh"],[/^uh[ -]?oh$/,os,"uhoh"],[/[a-z]-ish$/,Yi,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,us,"polish-male"]],k:[[/^(k){2}$/,os,"kkkk"]],l:[[/.[gl]ial$/,Yi,"familial"],[/.[^aeiou]ful$/,Yi,"fitful"],[/.[nrtumcd]al$/,Yi,"natal"],[/.[^aeiou][ei]al$/,Yi,"familial"]],m:[[/.[^aeiou]ium$/,ns,"magnesium"],[/[^aeiou]ism$/,ns,"schism"],[/^[hu]m+$/,os,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Yi,"republican"],[/[^aeiou]ician$/,is,"musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,os,"noooo"],[/^(yo)+$/,os,"yoo"],[/^wo{2,}[pt]?$/,os,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,ns],[/[^i]fer$/,es],[/.[^aeiou][ao]pher$/,is],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Yi],[/[aeiou].*ist$/,Yi],[/^[a-z]et$/,ss]],s:[[/.[^aeiou]ises$/,ts],[/.[rln]ates$/,ts],[/.[^z]ens$/,ss],[/.[lstrn]us$/,ns],[/.[aeiou]sks$/,ts],[/.[aeiou]kes$/,ts],[/[aeiou][^aeiou]is$/,ns],[/[a-z]'s$/,ls],[/^yes+$/,os]],v:[[/.[^aeiou][ai][kln]ov$/,us]],y:[[/.[cts]hy$/,Yi],[/.[st]ty$/,Yi],[/.[tnl]ary$/,Yi],[/.[oe]ry$/,ns],[/[rdntkbhs]ly$/,rs],[/.(gg|bb|zz)ly$/,Yi],[/...lly$/,rs],[/.[gk]y$/,Yi],[/[bszmp]{2}y$/,Yi],[/.[ai]my$/,Yi],[/[ea]{2}zy$/,Yi],[/.[^aeiou]ity$/,ns]]};const ds="Verb",hs="Noun";var gs={leftTags:[["Adjective",hs],["Possessive",hs],["Determiner",hs],["Adverb",ds],["Pronoun",ds],["Value",hs],["Ordinal",hs],["Modal",ds],["Superlative",hs],["Demonym",hs],["Honorific","Person"]],leftWords:[["i",ds],["first",hs],["it",ds],["there",ds],["not",ds],["because",hs],["if",hs],["but",hs],["who",ds],["this",hs],["his",hs],["when",hs],["you",ds],["very","Adjective"],["old",hs],["never",ds],["before",hs],["a",hs],["the",hs],["been",ds]],rightTags:[["Copula",hs],["PastTense",hs],["Conjunction",hs],["Modal",hs]],rightWords:[["there",ds],["me",ds],["man","Adjective"],["him",ds],["it",ds],["were",hs],["took",hs],["himself",ds],["went",hs],["who",hs],["jr","Person"]]},ms={fwd:"3:ser,ierยฆ1er:h,t,f,l,nยฆ1r:eยฆ2er:ss,or,om",both:"3er:ver,ear,almยฆ3ner:hinยฆ3ter:latยฆ2mer:imยฆ2er:ng,rm,mbยฆ2ber:ibยฆ2ger:igยฆ1er:w,p,k,dยฆier:y",rev:"1:tter,yerยฆ2:uer,ver,ffer,oner,eler,ller,iler,ster,cer,uler,sher,ener,gher,aner,adder,nter,eter,rter,hter,rner,fterยฆ3:oser,ooler,eafer,user,airer,bler,maler,tler,eater,uger,rger,ainer,urer,ealer,icher,pler,emner,icter,nser,iserยฆ4:arser,viner,ucher,rosser,somer,ndomer,moter,oother,uarer,hiterยฆ5:nuiner,esser,emierยฆar:urther",ex:"worse:badยฆbetter:goodยฆ4er:fair,gray,poorยฆ1urther:farยฆ3ter:fat,hot,wetยฆ3der:mad,sadยฆ3er:shy,funยฆ4der:gladยฆ:ยฆ4r:cute,dire,fake,fine,free,lame,late,pale,rare,ripe,rude,safe,sore,tame,wideยฆ5r:eerie,stale"},ps={fwd:"1:nning,tting,rring,pping,eing,mming,gging,dding,bbing,kkingยฆ2:eking,oling,eling,emingยฆ3:velling,siting,uiting,fiting,loting,geting,ialing,cellingยฆ4:graming",both:"1:aing,iing,fing,xing,ying,oing,hing,wingยฆ2:tzing,rping,izzing,bting,mning,sping,wling,rling,wding,rbing,uping,lming,wning,mping,oning,lting,mbing,lking,fting,hting,sking,gning,pting,cking,ening,nking,iling,eping,ering,rting,rming,cting,lping,ssing,nting,nding,lding,sting,rning,rding,rkingยฆ3:belling,siping,toming,yaking,uaking,oaning,auling,ooping,aiding,naping,euring,tolling,uzzing,ganing,haning,ualing,halling,iasing,auding,ieting,ceting,ouling,voring,ralling,garing,joring,oaming,oaking,roring,nelling,ooring,uelling,eaming,ooding,eaping,eeting,ooting,ooming,xiting,keting,ooking,ulling,airing,oaring,biting,outing,oiting,earing,naling,oading,eeding,ouring,eaking,aiming,illing,oining,eaning,onging,ealing,aining,eadingยฆ4:thoming,melling,aboring,ivoting,weating,dfilling,onoring,eriting,imiting,tialling,rgining,otoring,linging,winging,lleting,louding,spelling,mpelling,heating,feating,opelling,choring,welling,ymaking,ctoring,calling,peating,iloring,laiting,utoring,uditing,mmaking,loating,iciting,waiting,mbating,voiding,otalling,nsoring,nselling,ocusing,itoring,elopingยฆ5:rselling,umpeting,atrolling,treating,tselling,rpreting,pringing,ummeting,ossoming,elmaking,eselling,rediting,totyping,onmaking,rfeiting,ntrollingยฆ5e:chmaking,dkeeping,severing,erouting,ecreting,ephoning,uthoring,ravening,reathing,pediting,erfering,eotyping,fringing,entoring,ombining,ompetingยฆ4e:emaking,eething,twining,rruling,chuting,xciting,rseding,scoping,edoring,pinging,lunging,agining,craping,pleting,eleting,nciting,nfining,ncoding,tponing,ecoding,writing,esaling,nvening,gnoring,evoting,mpeding,rvening,dhering,mpiling,storing,nviting,ploringยฆ3e:tining,nuring,saking,miring,haling,ceding,xuding,rining,nuting,laring,caring,miling,riding,hoking,piring,lading,curing,uading,noting,taping,futing,paring,hading,loding,siring,guring,vading,voking,during,niting,laning,caping,luting,muting,ruding,ciding,juring,laming,caling,hining,uoting,liding,ciling,duling,tuting,puting,cuting,coring,uiding,tiring,turing,siding,rading,enging,haping,buting,lining,taking,anging,haring,uiring,coming,mining,moting,suring,viding,ludingยฆ2e:tring,zling,uging,oging,gling,iging,vring,fling,lging,obing,psing,pling,ubing,cling,dling,wsing,iking,rsing,dging,kling,ysing,tling,rging,eging,nsing,uning,osing,uming,using,ibing,bling,aging,ising,asing,atingยฆ2ie:rlyingยฆ1e:zing,uing,cing,ving",rev:"ying:ieยฆ1ing:se,ke,te,we,ne,re,de,pe,me,le,c,heยฆ2ing:ll,ng,dd,ee,ye,oe,rg,usยฆ2ning:unยฆ2ging:og,ag,ug,ig,egยฆ2ming:umยฆ2bing:ub,ab,eb,obยฆ3ning:lan,can,hin,pin,winยฆ3ring:cur,lur,tir,tar,pur,carยฆ3ing:ait,del,eel,fin,eat,oat,eem,lel,ool,ein,uinยฆ3ping:rop,rap,top,uip,wap,hip,hop,lap,rip,capยฆ3ming:tem,wim,rim,kim,limยฆ3ting:mat,cut,pot,lit,lot,hat,set,pit,putยฆ3ding:hed,bed,bidยฆ3king:rekยฆ3ling:cil,pelยฆ3bing:ribยฆ4ning:eginยฆ4ing:isit,ruit,ilot,nsit,dget,rkel,ival,rcelยฆ4ring:efer,nferยฆ4ting:rmit,mmit,ysit,dmit,emit,bmit,tfit,gretยฆ4ling:evel,xcel,ivelยฆ4ding:hredยฆ5ing:arget,posit,rofitยฆ5ring:nsferยฆ5ting:nsmit,orget,cquitยฆ5ling:ancel,istil",ex:"3:adding,eating,aiming,aiding,airing,outing,gassing,setting,getting,putting,cutting,winning,sitting,betting,mapping,tapping,letting,bidding,hitting,tanning,netting,popping,fitting,capping,lapping,barring,banning,vetting,topping,rotting,tipping,potting,wetting,pitting,dipping,budding,hemming,pinning,jetting,kidding,padding,podding,sipping,wedding,bedding,donning,warring,penning,gutting,cueing,wadding,petting,ripping,napping,matting,tinning,binning,dimming,hopping,mopping,nodding,panning,rapping,ridding,sinningยฆ4:selling,falling,calling,waiting,editing,telling,rolling,heating,boating,hanging,beating,coating,singing,tolling,felling,polling,discing,seating,voiding,gelling,yelling,baiting,reining,ruining,seeking,spanning,stepping,knitting,emitting,slipping,quitting,dialing,omitting,clipping,shutting,skinning,abutting,flipping,trotting,cramming,fretting,suitingยฆ5:bringing,treating,spelling,stalling,trolling,expelling,rivaling,wringing,deterring,singeing,befitting,refittingยฆ6:enrolling,distilling,scrolling,strolling,caucusing,travellingยฆ7:installing,redefining,stencilling,recharging,overeating,benefiting,unraveling,programingยฆ9:reprogrammingยฆis:beingยฆ2e:using,aging,owingยฆ3e:making,taking,coming,noting,hiring,filing,coding,citing,doping,baking,coping,hoping,lading,caring,naming,voting,riding,mining,curing,lining,ruling,typing,boring,dining,firing,hiding,piling,taping,waning,baling,boning,faring,honing,wiping,luring,timing,wading,piping,fading,biting,zoning,daring,waking,gaming,raking,ceding,tiring,coking,wining,joking,paring,gaping,poking,pining,coring,liming,toting,roping,wiring,achingยฆ4e:writing,storing,eroding,framing,smoking,tasting,wasting,phoning,shaking,abiding,braking,flaking,pasting,priming,shoring,sloping,withing,hingingยฆ5e:defining,refining,renaming,swathing,fringing,recitingยฆ1ie:dying,tying,lying,vyingยฆ7e:sunbathing"},fs={fwd:"1:mtยฆ2:llenยฆ3:iven,akenยฆ:neยฆy:in",both:"1:wnยฆ2:me,atenยฆ3:seen,bidden,isenยฆ4:roven,astenยฆ3l:piltยฆ3d:uiltยฆ2e:ittenยฆ1im:wumยฆ1eak:pokenยฆ1ine:honeยฆ1ose:osenยฆ1in:gunยฆ1ake:wokenยฆear:ornยฆeal:olenยฆeeze:ozenยฆet:ottenยฆink:unkยฆing:ung",rev:"2:unยฆoken:eakยฆought:eekยฆoven:eaveยฆ1ne:oยฆ1own:lyยฆ1den:deยฆ1in:ayยฆ2t:amยฆ2n:eeยฆ3en:allยฆ4n:rive,sake,takeยฆ5n:rgive",ex:"2:beenยฆ3:seen,runยฆ4:given,takenยฆ5:shakenยฆ2eak:brokenยฆ1ive:doveยฆ2y:flownยฆ3e:hidden,riddenยฆ1eek:soughtยฆ1ake:wokenยฆ1eave:woven"},bs={fwd:"1:oesยฆ1ve:as",both:"1:xesยฆ2:zzes,ches,shes,ssesยฆ3:iasesยฆ2y:llies,pliesยฆ1y:cies,bies,ties,vies,nies,pies,dies,ries,fiesยฆ:s",rev:"1ies:lyยฆ2es:us,go,doยฆ3es:cho,eto",ex:"2:does,goesยฆ3:gassesยฆ5:focusesยฆis:areยฆ3y:reliesยฆ2y:fliesยฆ2ve:has"},vs={fwd:"1st:eยฆ1est:l,m,f,sยฆ1iest:ceyยฆ2est:or,irยฆ3est:ver",both:"4:eastยฆ5:hwestยฆ5lest:erfulยฆ4est:weet,lgar,tter,oungยฆ4most:uterยฆ3est:ger,der,rey,iet,ong,earยฆ3test:latยฆ3most:nerยฆ2est:pt,ft,nt,ct,rt,htยฆ2test:itยฆ2gest:igยฆ1est:b,k,n,p,h,d,wยฆiest:y",rev:"1:ttest,nnest,yestยฆ2:sest,stest,rmest,cest,vest,lmest,olest,ilest,ulest,ssest,imest,uestยฆ3:rgest,eatest,oorest,plest,allest,urest,iefest,uelest,blest,ugest,amest,yalest,ealest,illest,tlest,itestยฆ4:cerest,eriest,somest,rmalest,ndomest,motest,uarest,tiffestยฆ5:leverest,rangestยฆar:urthestยฆ3ey:riciest",ex:"best:goodยฆworst:badยฆ5est:greatยฆ4est:fast,full,fair,dullยฆ3test:hot,wet,fatยฆ4nest:thinยฆ1urthest:farยฆ3est:gay,shy,illยฆ4test:neatยฆ4st:late,wide,fine,safe,cute,fake,pale,rare,rude,sore,ripe,direยฆ6st:severe"},ys={fwd:"1:tistic,eable,lful,sful,ting,ttyยฆ2:onate,rtable,geous,ced,seful,ctfulยฆ3:ortive,entedยฆarity:earยฆy:eticยฆfulness:begoneยฆ1ity:reยฆ1y:tiful,gicยฆ2ity:ile,imous,ilous,imeยฆ2ion:atedยฆ2eness:ivingยฆ2y:triousยฆ2ation:iringยฆ2tion:vantยฆ3ion:ectยฆ3ce:mant,manticยฆ3tion:irableยฆ3y:est,esticยฆ3m:mistic,listicยฆ3ess:ningยฆ4n:utiousยฆ4on:rative,native,vative,ectiveยฆ4ce:erant",both:"1:king,wingยฆ2:alous,ltuous,oyful,rdousยฆ3:gorous,ectable,werful,amaticยฆ4:oised,usical,agical,raceful,ocused,lined,ightfulยฆ5ness:stful,lding,itous,nuous,ulous,otous,nable,gious,ayful,rvous,ntous,lsive,peful,entle,ciful,osive,leful,isive,ncise,reful,miousยฆ5ty:ivaciousยฆ5ties:ubtleยฆ5ce:ilient,adiant,atientยฆ5cy:icientยฆ5sm:gmaticยฆ5on:sessive,dictiveยฆ5ity:pular,sonal,eative,enticยฆ5sity:uminousยฆ5ism:conicยฆ5nce:mperateยฆ5ility:mitableยฆ5ment:xcitedยฆ5n:bitiousยฆ4cy:brant,etent,curateยฆ4ility:erable,acable,icable,ptableยฆ4ty:nacious,aive,oyal,daciousยฆ4n:iciousยฆ4ce:vient,erent,stent,ndent,dient,quent,identยฆ4ness:adic,ound,hing,pant,sant,oing,oist,tuteยฆ4icity:impleยฆ4ment:fined,musedยฆ4ism:oticยฆ4ry:danticยฆ4ity:tund,eralยฆ4edness:handยฆ4on:uitiveยฆ4lity:pitableยฆ4sm:eroic,namicยฆ4sity:nerousยฆ3th:armยฆ3ility:pable,bable,dable,iableยฆ3cy:hant,nant,icateยฆ3ness:red,hin,nse,ict,iet,ite,oud,ind,ied,rceยฆ3ion:luteยฆ3ity:ual,gal,volous,ialยฆ3ce:sent,fensive,lant,gant,gent,lent,dantยฆ3on:asiveยฆ3m:fist,sistic,iasticยฆ3y:terious,xurious,ronic,tasticยฆ3ur:amorousยฆ3e:tunateยฆ3ation:minedยฆ3sy:rteousยฆ3ty:ainยฆ3ry:aveยฆ3ment:azedยฆ2ness:de,on,ue,rn,ur,ft,rp,pe,om,ge,rd,od,ay,ss,er,ll,oy,ap,ht,ld,ad,rtยฆ2inousness:umousยฆ2ity:neous,ene,id,aneยฆ2cy:bate,lateยฆ2ation:izedยฆ2ility:oble,ibleยฆ2y:odicยฆ2e:oving,aringยฆ2s:ostยฆ2itude:ptยฆ2dom:eeยฆ2ance:uringยฆ2tion:reetยฆ2ion:otedยฆ2sion:endingยฆ2liness:anยฆ2or:rdentยฆ1th:ungยฆ1e:uableยฆ1ness:w,h,k,fยฆ1ility:mbleยฆ1or:ventยฆ1ement:gingยฆ1tiquity:ncientยฆ1ment:hedยฆverty:orยฆength:ongยฆeat:otยฆpth:epยฆiness:y",rev:"",ex:"5:forceful,humorousยฆ8:charismaticยฆ13:understandingยฆ5ity:activeยฆ11ness:adventurous,inquisitive,resourcefulยฆ8on:aggressive,automatic,perceptiveยฆ7ness:amorous,fatuous,furtive,ominous,seriousยฆ5ness:ample,sweetยฆ12ness:apprehensive,cantankerous,contemptuous,ostentatiousยฆ13ness:argumentative,conscientiousยฆ9ness:assertive,facetious,imperious,inventive,oblivious,rapacious,receptive,seditious,whimsicalยฆ10ness:attractive,expressive,impressive,loquacious,salubrious,thoughtfulยฆ3edom:boringยฆ4ness:calm,fast,keen,tameยฆ8ness:cheerful,gracious,specious,spurious,timorous,unctuousยฆ5sity:curiousยฆ9ion:deliberateยฆ8ion:desperateยฆ6e:expensiveยฆ7ce:fragrantยฆ3y:furiousยฆ9ility:ineluctableยฆ6ism:mysticalยฆ8ity:physical,proactive,sensitive,verticalยฆ5cy:pliantยฆ7ity:positiveยฆ9ity:practicalยฆ12ism:professionalยฆ6ce:prudentยฆ3ness:redยฆ6cy:vagrantยฆ3dom:wise"},ws=function(e="",t={}){let n=function(e,t={}){return t.hasOwnProperty(e)?t[e]:null}(e,t.ex);return n=n||function(e,t=[]){for(let n=0;n=1;a-=1){let r=e.length-a,o=e.substring(r,e.length);if(!0===t.hasOwnProperty(o))return e.slice(0,r)+t[o];if(!0===n.hasOwnProperty(o))return e.slice(0,r)+n[o]}return t.hasOwnProperty("")?e+t[""]:n.hasOwnProperty("")?e+n[""]:null}(e,t.fwd,t.both),n=n||e,n};const ks=function(e){return Object.entries(e).reduce(((e,t)=>(e[t[1]]=t[0],e)),{})};var Ps=function(e={}){return{reversed:!0,both:ks(e.both),ex:ks(e.ex),fwd:e.rev||{}}};const As=/^([0-9]+)/,Cs=function(e){let t=function(e){let t={};return e.split("ยฆ").forEach((e=>{let[n,a]=e.split(":");a=(a||"").split(","),a.forEach((e=>{t[e]=n}))})),t}(e);return Object.keys(t).reduce(((e,n)=>(e[n]=function(e="",t=""){let n=(t=String(t)).match(As);if(null===n)return t;let a=Number(n[1])||0;return e.substring(0,a)+t.replace(As,"")}(n,t[n]),e)),{})};var js=function(e={}){return"string"==typeof e&&(e=JSON.parse(e)),e.fwd=Cs(e.fwd||""),e.both=Cs(e.both||""),e.rev=Cs(e.rev||""),e.ex=Cs(e.ex||""),e};const Ns=js({fwd:"1:tted,wed,gged,nned,een,rred,pped,yed,bbed,oed,dded,rd,wn,mmedยฆ2:eed,nded,et,hted,st,oled,ut,emed,eled,lded,ken,rt,nked,apt,ant,eped,ekedยฆ3:eared,eat,eaded,nelled,ealt,eeded,ooted,eaked,eaned,eeted,mited,bid,uit,ead,uited,ealed,geted,velled,ialed,belledยฆ4:ebuted,hined,comedยฆy:iedยฆome:ameยฆear:oreยฆind:oundยฆing:ung,angยฆep:ptยฆink:ank,unkยฆig:ugยฆall:ellยฆee:awยฆive:aveยฆeeze:ozeยฆold:eldยฆave:ftยฆake:ookยฆell:oldยฆite:oteยฆide:odeยฆine:oneยฆin:un,onยฆeal:oleยฆim:amยฆie:ayยฆand:oodยฆ1ise:roseยฆ1eak:rokeยฆ1ing:roughtยฆ1ive:roveยฆ1el:eltยฆ1id:badeยฆ1et:gotยฆ1y:aidยฆ1it:satยฆ3e:lidยฆ3d:pent",both:"1:aed,fed,xed,hedยฆ2:sged,xted,wled,rped,lked,kied,lmed,lped,uped,bted,rbed,rked,wned,rled,mped,fted,mned,mbed,zzed,omed,ened,cked,gned,lted,sked,ued,zed,nted,ered,rted,rmed,ced,sted,rned,ssed,rded,pted,ved,ctedยฆ3:cled,eined,siped,ooned,uked,ymed,jored,ouded,ioted,oaned,lged,asped,iged,mured,oided,eiled,yped,taled,moned,yled,lit,kled,oaked,gled,naled,fled,uined,oared,valled,koned,soned,aided,obed,ibed,meted,nicked,rored,micked,keted,vred,ooped,oaded,rited,aired,auled,filled,ouled,ooded,ceted,tolled,oited,bited,aped,tled,vored,dled,eamed,nsed,rsed,sited,owded,pled,sored,rged,osed,pelled,oured,psed,oated,loned,aimed,illed,eured,tred,ioned,celled,bled,wsed,ooked,oiled,itzed,iked,iased,onged,ased,ailed,uned,umed,ained,auded,nulled,ysed,eged,ised,aged,oined,ated,used,dged,donedยฆ4:ntied,efited,uaked,caded,fired,roped,halled,roked,himed,culed,tared,lared,tuted,uared,routed,pited,naked,miled,houted,helled,hared,cored,caled,tired,peated,futed,ciled,called,tined,moted,filed,sided,poned,iloted,honed,lleted,huted,ruled,cured,named,preted,vaded,sured,talled,haled,peded,gined,nited,uided,ramed,feited,laked,gured,ctored,unged,pired,cuted,voked,eloped,ralled,rined,coded,icited,vided,uaded,voted,mined,sired,noted,lined,nselled,luted,jured,fided,puted,piled,pared,olored,cided,hoked,enged,tured,geoned,cotted,lamed,uiled,waited,udited,anged,luded,mired,uired,radedยฆ5:modelled,izzled,eleted,umpeted,ailored,rseded,treated,eduled,ecited,rammed,eceded,atrolled,nitored,basted,twined,itialled,ncited,gnored,ploded,xcited,nrolled,namelled,plored,efeated,redited,ntrolled,nfined,pleted,llided,lcined,eathed,ibuted,lloted,dhered,ccededยฆ3ad:sledยฆ2aw:drewยฆ2ot:hotยฆ2ke:madeยฆ2ow:hrew,grewยฆ2ose:hoseยฆ2d:iltยฆ2in:eganยฆ1un:ranยฆ1ink:houghtยฆ1ick:tuckยฆ1ike:ruckยฆ1eak:poke,nuckยฆ1it:patยฆ1o:didยฆ1ow:newยฆ1ake:wokeยฆgo:went",rev:"3:rst,hed,hut,cut,setยฆ4:tbidยฆ5:dcast,eread,pread,erbidยฆought:uy,eekยฆ1ied:ny,ly,dy,ry,fy,py,vy,by,ty,cyยฆ1ung:ling,ting,wingยฆ1pt:eepยฆ1ank:rinkยฆ1ore:bear,wearยฆ1ave:giveยฆ1oze:reezeยฆ1ound:rind,windยฆ1ook:take,hakeยฆ1aw:seeยฆ1old:sellยฆ1ote:riteยฆ1ole:tealยฆ1unk:tinkยฆ1am:wimยฆ1ay:lieยฆ1ood:tandยฆ1eld:holdยฆ2d:he,ge,re,le,leed,ne,reed,be,ye,lee,pe,weยฆ2ed:dd,oy,or,ey,gg,rr,us,ew,toยฆ2ame:ecome,rcomeยฆ2ped:apยฆ2ged:ag,og,ug,egยฆ2bed:ub,ab,ib,obยฆ2lt:neelยฆ2id:payยฆ2ang:pringยฆ2ove:triveยฆ2med:umยฆ2ode:rrideยฆ2at:ysitยฆ3ted:mit,hat,mat,lat,pot,rot,batยฆ3ed:low,end,tow,und,ond,eem,lay,cho,dow,xit,eld,ald,uld,law,lel,eat,oll,ray,ank,fin,oam,out,how,iek,tay,haw,ait,vet,say,cay,bowยฆ3d:ste,ede,ode,ete,ree,ude,ame,oke,ote,ime,ute,adeยฆ3red:lur,cur,pur,carยฆ3ped:hop,rop,uip,rip,lip,tep,topยฆ3ded:bed,rod,kidยฆ3ade:orbidยฆ3led:uelยฆ3ned:lan,can,kin,pan,tunยฆ3med:rim,limยฆ4ted:quit,llotยฆ4ed:pear,rrow,rand,lean,mand,anel,pand,reet,link,abel,evel,imit,ceed,ruit,mind,peal,veal,hool,head,pell,well,mell,uell,band,hear,weakยฆ4led:nnel,qual,ebel,ivelยฆ4red:nfer,efer,sferยฆ4n:sake,trewยฆ4d:nteeยฆ4ded:hredยฆ4ned:rpinยฆ5ed:light,nceal,right,ndear,arget,hread,eight,rtial,ebootยฆ5d:edite,nviteยฆ5ted:egretยฆ5led:ravel",ex:"2:been,uppedยฆ3:added,aged,aided,aimed,aired,bid,died,dyed,egged,erred,eyed,fit,gassed,hit,lied,owed,pent,pied,tied,used,vied,oiled,outed,banned,barred,bet,canned,cut,dipped,donned,ended,feed,inked,jarred,let,manned,mowed,netted,padded,panned,pitted,popped,potted,put,set,sewn,sowed,tanned,tipped,topped,vowed,weed,bowed,jammed,binned,dimmed,hopped,mopped,nodded,pinned,rigged,sinned,towed,vettedยฆ4:ached,baked,baled,boned,bored,called,caned,cared,ceded,cited,coded,cored,cubed,cured,dared,dined,edited,exited,faked,fared,filed,fined,fired,fuelled,gamed,gelled,hired,hoped,joked,lined,mined,named,noted,piled,poked,polled,pored,pulled,reaped,roamed,rolled,ruled,seated,shed,sided,timed,tolled,toned,voted,waited,walled,waned,winged,wiped,wired,zoned,yelled,tamed,lubed,roped,faded,mired,caked,honed,banged,culled,heated,raked,welled,banded,beat,cast,cooled,cost,dealt,feared,folded,footed,handed,headed,heard,hurt,knitted,landed,leaked,leapt,linked,meant,minded,molded,neared,needed,peaked,plodded,plotted,pooled,quit,read,rooted,sealed,seeded,seeped,shipped,shunned,skimmed,slammed,sparred,stemmed,stirred,suited,thinned,twinned,swayed,winked,dialed,abutted,blotted,fretted,healed,heeded,peeled,reeledยฆ5:basted,cheated,equalled,eroded,exiled,focused,opined,pleated,primed,quoted,scouted,shored,sloped,smoked,sniped,spelled,spouted,routed,staked,stored,swelled,tasted,treated,wasted,smelled,dwelled,honored,prided,quelled,eloped,scared,coveted,sweated,breaded,cleared,debuted,deterred,freaked,modeled,pleaded,rebutted,speededยฆ6:anchored,defined,endured,impaled,invited,refined,revered,strolled,cringed,recast,thrust,unfoldedยฆ7:authored,combined,competed,conceded,convened,excreted,extruded,redefined,restored,secreted,rescinded,welcomedยฆ8:expedited,infringedยฆ9:interfered,intervened,perseveredยฆ10:contravenedยฆeat:ateยฆis:wasยฆgo:wentยฆare:wereยฆ3d:bent,lent,rent,sentยฆ3e:bit,fled,hid,lostยฆ3ed:bled,bredยฆ2ow:blew,grewยฆ1uy:boughtยฆ2tch:caughtยฆ1o:didยฆ1ive:dove,gaveยฆ2aw:drewยฆ2ed:fedยฆ2y:flew,laid,paid,saidยฆ1ight:foughtยฆ1et:gotยฆ2ve:hadยฆ1ang:hungยฆ2ad:ledยฆ2ght:litยฆ2ke:madeยฆ2et:metยฆ1un:ranยฆ1ise:roseยฆ1it:satยฆ1eek:soughtยฆ1each:taughtยฆ1ake:woke,tookยฆ1eave:woveยฆ2ise:aroseยฆ1ear:bore,tore,woreยฆ1ind:bound,found,woundยฆ2eak:brokeยฆ2ing:brought,wrungยฆ1ome:cameยฆ2ive:droveยฆ1ig:dugยฆ1all:fellยฆ2el:feltยฆ4et:forgotยฆ1old:heldยฆ2ave:leftยฆ1ing:rang,sangยฆ1ide:rodeยฆ1ink:sankยฆ1ee:sawยฆ2ine:shoneยฆ4e:slidยฆ1ell:sold,toldยฆ4d:spentยฆ2in:spunยฆ1in:won"}),Is=js(bs),Ds=js(ps),Hs=js(fs),Gs=Ps(Ns),xs=Ps(Is),Ts=Ps(Ds),Es=Ps(Hs),Fs=js(ms),Os=js(vs);var zs={fromPast:Ns,fromPresent:Is,fromGerund:Ds,fromParticiple:Hs,toPast:Gs,toPresent:xs,toGerund:Ts,toParticiple:Es,toComparative:Fs,toSuperlative:Os,fromComparative:Ps(Fs),fromSuperlative:Ps(Os),adjToNoun:js(ys)},Vs=["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","faction","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","politburo","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","subsidiary","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce(((e,t)=>(e[t]=!0,e)),{}),Bs=["atoll","basin","bay","beach","bluff","bog","camp","canyon","canyons","cape","cave","caves","cliffs","coast","cove","coves","crater","creek","desert","dune","dunes","escarpment","estuary","falls","fjord","fjords","forest","forests","glacier","gorge","gorges","gulf","gully","highland","hill","hills","inlet","island","islands","isthmus","knoll","lagoon","lake","marsh","marshes","mount","mountain","mountains","narrows","peninsula","plains","plateau","pond","rapids","ravine","reef","reefs","ridge","river","rivers","sandhill","shoal","shore","shoreline","shores","strait","straits","stream","swamp","tombolo","trail","trails","trench","valley","vallies","volcano","waterfall","watershed","wetland","woods","burough","county","district","municipality","prefecture","province","region","reservation","state","territory","borough","metropolis","downtown","uptown","midtown","city","town","township","hamlet","country","kingdom","enclave","neighbourhood","neighborhood","kingdom","ward","zone","airport","amphitheater","arch","arena","auditorium","bar","barn","basilica","battlefield","bridge","building","castle","centre","coliseum","cineplex","complex","dam","farm","field","fort","garden","gardens","gymnasium","hall","house","levee","library","memorial","monument","museum","gallery","palace","pillar","pits","plantation","playhouse","quarry","sportsfield","sportsplex","stadium","terrace","terraces","theater","tower","park","parks","site","raceway","sportsplex","st","street","rd","road","crescent","cr","way","tr","terrace","avenue","ave"].reduce(((e,t)=>(e[t]=!0,e)),{}),Ss=[[/([^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"],[/(..ase)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,""]],Ks=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(Ms[t].forEach((n=>e[n]=t)),e)),{});var Ls=Ms,Js=function(e){let t=e.substring(e.length-3);if(!0===Ls.hasOwnProperty(t))return Ls[t];let n=e.substring(e.length-2);return!0===Ls.hasOwnProperty(n)?Ls[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const Ws={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var Us=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=Js(e)),Ws.hasOwnProperty(e))c=Ws[e];else if("Participle"===n)c=ws(l,i);else if("PastTense"===n)c=ws(l,a);else if("PresentTense"===n)c=ws(l,r);else{if("Gerund"!==n)return e;c=ws(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c},qs=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:i,PastTense:ws(i,n),PresentTense:ws(i,a),Gerund:ws(i,r),FutureTense:"will "+i},u=ws(i,o);if(u!==e&&u!==l.PastTense){let n=t.one.lexicon||{};"Participle"!==n[u]&&"Adjective"!==n[u]||("play"===e&&(u="played"),l.Participle=u)}return s&&Object.keys(l).forEach((e=>{l[e]+=" "+s})),l},Rs={toInfinitive:Us,conjugate:qs,all:function(e,t){let n=qs(e,t);return delete n.FutureTense,Object.values(n).filter((e=>e))}};const Qs=function(e,t){const n=t.two.models.toSuperlative;return ws(e,n)},Zs=function(e,t){const n=t.two.models.toComparative;return ws(e,n)};var _s=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 Xs="ically",Ys=new Set(["analyt"+Xs,"chem"+Xs,"class"+Xs,"clin"+Xs,"crit"+Xs,"ecolog"+Xs,"electr"+Xs,"empir"+Xs,"frant"+Xs,"grammat"+Xs,"ident"+Xs,"ideolog"+Xs,"log"+Xs,"mag"+Xs,"mathemat"+Xs,"mechan"+Xs,"med"+Xs,"method"+Xs,"method"+Xs,"mus"+Xs,"phys"+Xs,"phys"+Xs,"polit"+Xs,"pract"+Xs,"rad"+Xs,"satir"+Xs,"statist"+Xs,"techn"+Xs,"technolog"+Xs,"theoret"+Xs,"typ"+Xs,"vert"+Xs,"whims"+Xs]),el=[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"}],tl=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"]),nl={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"quick",superbly:"superb",cynically:"cynical",well:"good"},al=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],rl={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var ol=function(e){if(rl.hasOwnProperty(e))return rl[e];let t=_s(e,al);return t||(t=e+"ly"),t},il={toSuperlative:Qs,toComparative:Zs,toAdverb:ol,toNoun:function(e,t){const n=t.two.models.adjToNoun;return ws(e,n)},fromAdverb:function(e){return e.endsWith("ly")?Ys.has(e)?e.replace(/ically/,"ical"):tl.has(e)?null:nl.hasOwnProperty(e)?nl[e]:_s(e,el)||e:null},fromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return ws(e,n)},fromComparative:function(e,t){const n=t.two.models.fromComparative;return ws(e,n)},all:function(e,t){let n=[e];return n.push(Qs(e,t)),n.push(Zs(e,t)),n.push(ol(e)),n=n.filter((e=>e)),n=new Set(n),Array.from(n)}},sl={noun:$s,verb:Rs,adjective:il},ll={Singular:(e,t,n,a)=>{let r=a.one.lexicon,o=n.two.transform.noun.toPlural(e,a);r[o]||(t[o]=t[o]||"Plural")},Actor:(e,t,n,a)=>{let r=a.one.lexicon,o=n.two.transform.noun.toPlural(e,a);r[o]||(t[o]=t[o]||["Plural","Actor"])},Comparable:(e,t,n,a)=>{let r=a.one.lexicon,{toSuperlative:o,toComparative:i}=n.two.transform.adjective,s=o(e,a);r[s]||(t[s]=t[s]||"Superlative");let l=i(e,a);r[l]||(t[l]=t[l]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,a)=>{let r=n.two.transform.noun.toPlural(e,a);t[r]=t[r]||["Demonym","Plural"]},Infinitive:(e,t,n,a)=>{let r=a.one.lexicon,o=n.two.transform.verb.conjugate(e,a);Object.entries(o).forEach((e=>{r[e[1]]||t[e[1]]||"FutureTense"===e[0]||(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.verb.conjugate(i,a);delete l.FutureTense,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]]=2;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"]},Place:(e,t)=>{t[e]=["Place","ProperNoun"]},Region:(e,t)=>{t[e]=["Region","ProperNoun"]}},ul=function(e,t){const{methods:n,model:a}=t;let r={},o={};return Object.keys(e).forEach((t=>{let i=e[t],s=(t=(t=t.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);s.length>1&&(void 0===o[s[0]]||s.length>o[s[0]])&&(o[s[0]]=s.length),!0===ll.hasOwnProperty(i)&&ll[i](t,r,n,a),r[t]=r[t]||i})),delete r[""],delete r.null,delete r[" "],{lex:r,_multi:o}},cl=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]){let n=e[t-1];if(n.tags.has("Date")||r.has(n.normal))return!1;if(n.tags.has("Adjective")||a.tags.has("Adjective"))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)})),ae.endsWith(t))):"s"===t&&!gl.find((t=>e.endsWith(t)))},pl={two:{quickSplit:cl,expandLexicon:ul,transform:sl,looksPlural:ml}},fl=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};let bl={one:{lexicon:{}},two:{models:zs}};const vl={"Actor|Verb":"Actor","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":"FirstName","Person|Place":"Person","Person|Adj":"Comparative","Plural|Verb":"Plural","Unit|Noun":"Noun"},yl=function(e,t){const n={model:t,methods:pl};let{lex:a,_multi:r}=pl.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,a),Object.assign(t.one._multiCache,r),t},wl=function(e,t,n){let a=qs(e,bl);t[a.PastTense]=t[a.PastTense]||"PastTense",t[a.Gerund]=t[a.Gerund]||"Gerund",!0===n&&(t[a.PresentTense]=t[a.PresentTense]||"PresentTense")},kl=function(e,t,n){let a=Qs(e,n);t[a]=t[a]||"Superlative";let r=Zs(e,n);t[r]=t[r]||"Comparative"},Pl=function(e,t){let n={};const a=t.one.lexicon;return Object.keys(e).forEach((r=>{const o=e[r];if(n[r]=vl[o],"Noun|Verb"!==o&&"Person|Verb"!==o&&"Actor|Verb"!==o||wl(r,a,!1),"Adj|Present"===o&&(wl(r,a,!0),kl(r,a,t)),"Person|Adj"===o&&kl(r,a,t),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=Us(r,bl,"Gerund");a[e]||(n[e]="Infinitive")}if("Noun|Gerund"!==o&&"Adj|Noun"!==o&&"Person|Noun"!==o||function(e,t,n){let a=Jo(e,n);t[a]=t[a]||"Plural"}(r,a,t),"Adj|Past"===o){let e=Us(r,bl,"PastTense");a[e]||(n[e]="Infinitive")}})),t=yl(n,t)};var Al=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=yl(e.one.lexicon,e)).one.lexicon,e),e=Pl(e.two.switches,e),e=fl(e)};let Cl={one:{_multiCache:{},lexicon:Uo,frozenLex:{"20th century fox":"Organization","7 eleven":"Organization","motel 6":"Organization","excuse me":"Expression","financial times":"Organization","guns n roses":"Organization","la z boy":"Organization","labour party":"Organization","new kids on the block":"Organization","new york times":"Organization","the guess who":"Organization","thin lizzy":"Organization","prime minister":"Actor","free market":"Singular","lay up":"Singular","living room":"Singular","living rooms":"Plural","spin off":"Singular","appeal court":"Uncountable","cold war":"Uncountable","gene pool":"Uncountable","machine learning":"Uncountable","nail polish":"Uncountable","time off":"Uncountable","take part":"Infinitive","bill gates":"Person","doctor who":"Person","dr who":"Person","he man":"Person","iron man":"Person","kid cudi":"Person","run dmc":"Person","rush limbaugh":"Person","snow white":"Person","tiger woods":"Person","brand new":"Adjective","en route":"Adjective","left wing":"Adjective","off guard":"Adjective","on board":"Adjective","part time":"Adjective","right wing":"Adjective","so called":"Adjective","spot on":"Adjective","straight forward":"Adjective","super duper":"Adjective","tip top":"Adjective","top notch":"Adjective","up to date":"Adjective","win win":"Adjective","brooklyn nets":"SportsTeam","chicago bears":"SportsTeam","houston astros":"SportsTeam","houston dynamo":"SportsTeam","houston rockets":"SportsTeam","houston texans":"SportsTeam","minnesota twins":"SportsTeam","orlando magic":"SportsTeam","san antonio spurs":"SportsTeam","san diego chargers":"SportsTeam","san diego padres":"SportsTeam","iron maiden":"ProperNoun","isle of man":"Country","united states":"Country","united states of america":"Country","prince edward island":"Region","cedar breaks":"Place","cedar falls":"Place","point blank":"Adverb","tiny bit":"Adverb","by the time":"Conjunction","no matter":"Conjunction","civil wars":"Plural","credit cards":"Plural","default rates":"Plural","free markets":"Plural","head starts":"Plural","home runs":"Plural","lay ups":"Plural","phone calls":"Plural","press releases":"Plural","record labels":"Plural","soft serves":"Plural","student loans":"Plural","tax returns":"Plural","tv shows":"Plural","video games":"Plural","took part":"PastTense","takes part":"PresentTense","taking part":"Gerund","taken part":"Participle","light bulb":"Noun","rush hour":"Noun","fluid ounce":"Unit","the rolling stones":"Organization"}},two:{irregularPlurals:xo,models:zs,suffixPatterns:Ri,prefixPatterns:Xi,endsWith:cs,neighbours:gs,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'[a-z]{3}/,"LastName","mc'neil"],[/^o'[a-z]{3}/,"LastName","o'connor"],[/^ma?cd[aeiou][a-z]{3}/,"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]{4}|[0-9]{2})$/,"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})$/,"NumericValue","9km"]],switches:qo,clues:Ei,uncountable:{},orgWords:Vs,placeWords:Bs}};Cl=Al(Cl);var jl=Cl,Nl=function(e,t,n,a){const r=a.methods.one.setTag;if(0===t&&e.length>=3){const t=/:/;if(e[0].post.match(t)){let t=e[1];if(t.tags.has("Value")||t.tags.has("Email")||t.tags.has("PhoneNumber"))return;r([e[0]],"Expression",a,null,"2-punct-colon''")}}},Il=function(e,t,n,a){const r=a.methods.one.setTag;"-"===e[t].post&&e[t+1]&&r([e[t],e[t+1]],"Hyphenated",a,null,"1-punct-hyphen''")};const Dl=/^(under|over|mis|re|un|dis|semi)-?/;var Hl=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(Dl.test(r.normal)){let e=r.normal.replace(Dl,"");e.length>3&&a.hasOwnProperty(e)&&(r.switch=a[e])}},Gl=function(e,t,n){if(!t||0===t.length)return;if(!0===e.frozen)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 xl=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific","Month"];var Tl=function(e,t,n){let a=e[t],r=Array.from(a.tags);for(let e=0;ee.tags.has(t)))||(ml(e.normal)?Gl(e,"Plural","3-plural-guess"):Gl(e,"Singular","3-singular-guess"))}(a),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=Js(e.normal);t&&Gl(e,t,"3-verb-tense-guess")}}(a)};const El=/^\p{Lu}[\p{Ll}'โ€™]/u,Fl=/[0-9]/,Ol=["Date","Month","WeekDay","Unit","Expression"],zl=/[IVX]/,Vl=/^[IVXLCDM]{2,}$/,Bl=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,Sl={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var Kl=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===El.test(o)&&!1===Fl.test(o)?Ol.find((e=>a.tags.has(e)))||a.pre.match(/["']$/)||"the"===a.normal?null:(Tl(e,t,n),a.tags.has("Noun")||a.frozen||a.tags.clear(),Gl(a,"ProperNoun","2-titlecase"),!0):o.length>=2&&Vl.test(o)&&zl.test(o)&&Bl.test(o)&&!Sl[a.normal]?(Gl(a,"RomanNumeral","2-xvii"),!0):null};const $l=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 Ml=function(e,t,n){let a=e[t];if(0===a.tags.size){let e=$l(a.normal,n.two.suffixPatterns);if(null!==e)return Gl(a,e,"2-suffix"),a.confidence=.7,!0;if(a.implicit&&(e=$l(a.implicit,n.two.suffixPatterns),null!==e))return Gl(a,e,"2-implicit-suffix"),a.confidence=.7,!0}return null};const Ll=/['โ€˜โ€™โ€›โ€ตโ€ฒ`ยด]/,Jl=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 Gl(a,e,"2-prefix"),a.confidence=.5,!0}return null};const ql=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"]),Rl=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!ql.has(t)||!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun")},Ql=function(e){return!(!e||!e.tags.has("Ordinal")&&!(e.tags.has("Cardinal")&&e.normal.length<3)&&"is"!==e.normal&&"was"!==e.normal)},Zl=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var _l=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(Rl(r)||Rl(o))return Gl(n,"Year","2-tagYear");if(a>=1920&&a<2025){if(Ql(r)||Ql(o))return Gl(n,"Year","2-tagYear-close");if(Zl(e[t-2])||Zl(e[t+2]))return Gl(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 Gl(n,"Year","2-tagYear-noun")}}}return null},Xl=function(e,t,n,a){const r=a.methods.one.setTag,o=e[t],i=["PastTense","PresentTense","Auxiliary","Modal","Particle"];o.tags.has("Verb")&&(i.find((e=>o.tags.has(e)))||r([o],"Infinitive",a,null,"2-verb-type''"))};const Yl=/^[A-Z]('s|,)?$/,eu=/^[A-Z-]+$/,tu=/^[A-Z]+s$/,nu=/([A-Z]\.)+[A-Z]?,?$/,au=/[A-Z]{2,}('s|,)?$/,ru=/([a-z]\.)+[a-z]\.?$/,ou={I:!0,A:!0},iu={la:!0,ny:!0,us:!0,dc:!0,gb:!0};var su=function(e,t,n){let a=e[t];return a.tags.has("RomanNumeral")||a.tags.has("Acronym")||a.frozen?null:function(e,t){let n=e.text;if(!1===eu.test(n)){if(!(n.length>3&&!0===tu.test(n)))return!1;n=n.replace(/s$/,"")}return!(n.length>5||ou.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==nu.test(n)&&!0!==ru.test(n)&&!0!==Yl.test(n)&&!0!==au.test(n))}(a,n)?(a.tags.clear(),Gl(a,["Acronym","Noun"],"3-no-period-acronym"),!0===iu[a.normal]&&Gl(a,"Place","3-place-acronym"),!0===tu.test(a.text)&&Gl(a,"Plural","3-plural-acronym"),!0):!ou.hasOwnProperty(a.text)&&Yl.test(a.text)?(a.tags.clear(),Gl(a,["Acronym","Noun"],"3-one-letter-acronym"),!0):a.tags.has("Organization")&&a.text.length<=3?(Gl(a,"Acronym","3-org-acronym"),!0):a.tags.has("Organization")&&eu.test(a.text)&&a.text.length<=6?(Gl(a,"Acronym","3-titlecase-acronym"),!0):null};const lu=function(e,t){if(!e)return null;let n=t.find((t=>e.normal===t[0]));return n?n[1]:null},uu=function(e,t){if(!e)return null;let n=t.find((t=>e.tags.has(t[0])));return n?n[1]:null};var cu=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||lu(e[t-1],r),l=l||lu(e[t+1],o),l=l||uu(e[t-1],a),l=l||uu(e[t+1],i),l)return Gl(s,l,"3-[neighbour]"),Tl(e,t,n),e[t].confidence=.2,!0}return null};const du=function(e,t,n){return!!e&&!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||!(n||(a=e.text,!/^\p{Lu}[\p{Ll}'โ€™]/u.test(a)))&&(0!==t||e.tags.has("Singular")));var a};var hu=function(e,t,n,a){const r=n.model.two.orgWords,o=n.methods.one.setTag;let i=e[t];if(!0===r[i.machine||i.normal]&&du(e[t-1],t-1,a)){o([e[t]],"Organization",n,null,"3-[org-word]");for(let r=t;r>=0&&du(e[r],r,a);r-=1)o([e[r]],"Organization",n,null,"3-[org-word]")}return null};const gu=/'s$/,mu=new Set(["athletic","city","community","eastern","federal","financial","great","historic","historical","local","memorial","municipal","national","northern","provincial","southern","state","western"]),pu=new Set(["center","centre","way","range","bar","bridge","field","pit"]),fu=function(e,t,n){if(!e)return!1;let a=e.tags;return!(a.has("Organization")||a.has("Possessive")||gu.test(e.normal))&&(!(!a.has("ProperNoun")&&!a.has("Place"))||!(n||(r=e.text,!/^\p{Lu}[\p{Ll}'โ€™]/u.test(r)))&&(0!==t||a.has("Singular")));var r};var bu=function(e,t,n,a){const r=n.model.two.placeWords,o=n.methods.one.setTag;let i=e[t],s=i.machine||i.normal;if(!0===r[s]){for(let r=t-1;r>=0;r-=1)if(!mu.has(e[r].normal)){if(!fu(e[r],r,a))break;o(e.slice(r,t+1),"Place",n,null,"3-[place-of-foo]")}if(pu.has(s))return!1;for(let r=t+1;re[t].tags.has("ProperNoun")&&yu.test(e[t].text)?"Noun":null,ku=(e,t,n)=>0!==t||e[1]?null:n,Pu={"Adj|Gerund":(e,t)=>wu(e,t),"Adj|Noun":(e,t)=>wu(e,t)||function(e,t){return!e[t+1]&&e[t-1]&&e[t-1].tags.has("Determiner")?"Noun":null}(e,t),"Actor|Verb":(e,t)=>wu(e,t),"Adj|Past":(e,t)=>wu(e,t),"Adj|Present":(e,t)=>wu(e,t),"Noun|Gerund":(e,t)=>wu(e,t),"Noun|Verb":(e,t)=>t>0&&wu(e,t)||ku(e,t,"Infinitive"),"Plural|Verb":(e,t)=>wu(e,t)||ku(e,t,"PresentTense")||function(e,t,n){return 0===t&&e.length>3?n:null}(e,t,"Plural"),"Person|Noun":(e,t)=>wu(e,t),"Person|Verb":(e,t)=>0!==t?wu(e,t):null,"Person|Adj":(e,t)=>0===t&&e.length>1||wu(e,t)?"Person":null};var Au=Pu;const Cu="undefined"!=typeof process&&process.env?process.env:self.env||{},ju=/^(under|over|mis|re|un|dis|semi)-?/,Nu=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit,a=null;return t.hasOwnProperty(n)&&(a=t[n]),a&&Cu.DEBUG_TAGS&&console.log(`\n  โ†“ - '${n}' `),a},Iu=(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)),r=a.find((e=>t[e]));return r&&Cu.DEBUG_TAGS&&console.log(`  โ†“ - '${e.normal||e.implicit}' (#${r}) `),r=t[r],r};var Du=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(ju.test(l)&&!o[l]&&(l=l.replace(ju,"")),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="also"!==e[t-1]?.text?t-1:Math.max(0,t-2),o=a.one.tagSet;let i=Nu(e[t+1],n.afterWords);return i=i||Nu(e[r],n.beforeWords),i=i||Iu(e[r],n.beforeTags,o),i=i||Iu(e[t+1],n.afterTags,o),i}(e,t,i[o],a);Au[o]&&(u=Au[o](e,t)||u),u?(r([s],u,n,null,`3-[switch] (${o})`),Tl(e,t,a)):Cu.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}};const Hu={there:!0,this:!0,it:!0,him:!0,her:!0,us:!0};var Gu=function(e,t){const n=t.methods.one.setTag,a=t.model.one._multiCache||{};let r=e[0];if(("Noun|Verb"===r.switch||r.tags.has("Infinitive"))&&e.length>=2){if(e.length<4&&!Hu[e[1].normal])return;if(!r.tags.has("PhrasalVerb")&&a.hasOwnProperty(r.normal))return;(e[1].tags.has("Noun")||e[1].tags.has("Determiner"))&&(e.slice(1,3).some((e=>e.tags.has("Verb")))&&!r.tags.has("#PhrasalVerb")||n([r],"Imperative",t,null,"3-[imperative]"))}};const xu=function(e){if(e.filter((e=>!e.tags.has("ProperNoun"))).length<=3)return!1;const t=/^[a-z]/;return e.every((e=>!t.test(e.text)))},Tu=function(e,t,n,a){for(let r=0;r{Nl(e,0,t,n)}))}(r,n,a);let o=t.two.quickSplit(r);for(let e=0;e{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.noun.toSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(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.verb.toInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromSuperlative(n,t.model)},Adverb:(e,t)=>{const{fromAdverb:n}=t.methods.two.transform.adjective;return n(e.machine||e.normal||e.text)}};var zu=function(e){const t=e.world,n=Object.keys(Ou);e.docs.forEach((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{let t=Ru.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=qu},Zu=function(e,t,n){let[a,r]=t;n&&0!==n.length&&(n=n.map(((e,t)=>(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[a,r+t],e))),n[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 _u=/'/,Xu=new Set(["been","become"]),Yu=new Set(["what","how","when","if","too"]);let ec=new Set(["too","also","enough"]);var tc=function(e,t){let n=e[t].normal.split(_u)[0];if("let"===n)return[n,"us"];if("there"===n){let a=e[t+1];if(a&&a.tags.has("Plural"))return[n,"are"]}return"has"===((e,t)=>{for(let n=t+1;n{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("i"===n.normal)return["am","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const sc={that:!0,there:!0,let:!0,here:!0,everywhere:!0},lc={in:!0,by:!0,for:!0};let uc=new Set(["too","also","enough","about"]),cc=new Set(["is","are","did","were","could","should","must","had","have"]);var dc=(e,t)=>{let n=e[t];if(sc.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("QuestionWord"))return!1;if("he's"===n.normal||"she's"===n.normal)return!1;let a=e[t+1];if(!a)return!0;if("it's"===n.normal)return!!a.tags.has("#Noun");if("Noun|Gerund"==a.switch){let a=e[t+2];return a?!!a.tags.has("Copula")||("on"===a.normal||a.normal,!1):!(!n.tags.has("Actor")&&!n.tags.has("ProperNoun"))}if(a.tags.has("Verb"))return!!a.tags.has("Infinitive")||!a.tags.has("Gerund")&&!!a.tags.has("PresentTense");if("Adj|Noun"===a.switch){let n=e[t+2];if(!n)return!1;if(cc.has(n.normal))return!0;if(uc.has(n.normal))return!1}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===lc[e[t-1].normal])return!0;if(a.tags.has("Adjective")){let n=e[t+2];if(!n)return!1;if(n.tags.has("Noun")&&!n.tags.has("Pronoun")){let e=a.normal;return"above"!==e&&"below"!==e&&"behind"!==e}return"Noun|Verb"===n.switch}return!!a.tags.has("Value")};const hc=/'/,gc=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(["freeze","lexicon","preTagger","unfreeze"]),function(e){e.forEach(((e,t)=>{e.index&&(e.index[1]=t)}))}(e)},mc={d:(e,t)=>oc(e,t),t:(e,t)=>ic(e,t),s:(e,t,n)=>dc(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,null,"2-contraction"):tc(e,t)},pc=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var fc={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===hc.test(a[o].normal)&&(i=a[o].normal.split(hc)[1]);let s=null;mc.hasOwnProperty(i)&&(s=mc[i](a,o,t)),s&&(s=pc(s,e),Zu(n,[r,o],s),gc(n[r],e,o,s.length))}}))}},bc={compute:fc,api:Qu,hooks:["contractionTwo"]};const vc="(hard|fast|late|early|high|right|deep|close|direct)",yc="(i|we|they)";let wc=[].concat([{match:"(got|were|was|is|are|am) (#PastTense|#Participle)",tag:"Passive",reason:"got-walked"},{match:"(was|were|is|are|am) being (#PastTense|#Participle)",tag:"Passive",reason:"was-being"},{match:"(had|have|has) been (#PastTense|#Participle)",tag:"Passive",reason:"had-been"},{match:"will be being? (#PastTense|#Participle)",tag:"Passive",reason:"will-be-cleaned"},{match:"#Noun [(#PastTense|#Participle)] by (the|a) #Noun",group:0,tag:"Passive",reason:"suffered-by"}],[{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,notIf:"(all|even)",tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"[#Hyphenated (#Hyphenated && #PastTense)] (#Noun|#Conjunction)",group:0,tag:"Adjective",notIf:"#Adverb",reason:"faith-based"},{match:"[#Hyphenated (#Hyphenated && #Gerund)] (#Noun|#Conjunction)",group:0,tag:"Adjective",notIf:"#Adverb",reason:"self-driving"},{match:"[#PastTense (#Hyphenated && #PhrasalVerb)] (#Noun|#Conjunction)",group:0,tag:"Adjective",reason:"dammed-up"},{match:"(#Hyphenated && #Value) fold",tag:"Adjective",reason:"two-fold"},{match:"must (#Hyphenated && #Infinitive)",tag:"Adjective",reason:"must-win"},{match:"(#Hyphenated && #Infinitive) #Hyphenated",tag:"Adjective",notIf:"#PhrasalVerb",reason:"vacuum-sealed"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"},{match:"[(un|contra|extra|inter|intra|macro|micro|mid|mis|mono|multi|pre|sub|tri|ex)] #Adjective",group:0,tag:["Adjective","Prefix"],reason:"un-skilled"}],[{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:"#Copula [far too] #Adjective",group:0,tag:"Adverb",reason:"far-too"},{match:"#Copula [still] (in|#Gerund|#Adjective)",group:0,tag:"Adverb",reason:"was-still-walking"},{match:`#Plural ${vc}`,tag:"#PresentTense #Adverb",reason:"studies-hard"},{match:`#Verb [${vc}] !#Noun?`,group:0,notIf:"(#Copula|get|got|getting|become|became|becoming|feel|feels|feeling|#Determiner|#Preposition)",tag:"Adverb",reason:"shops-direct"},{match:"[#Plural] a lot",tag:"PresentTense",reason:"studies-a-lot"}],[{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:"#Gerund [#Gerund]",group:0,tag:"Adjective",notIf:"(impersonating|practicing|considering|assuming)",reason:"looking-annoying"},{match:"(looked|look|looks) #Adverb? [%Adj|Gerund%]",group:0,tag:"Adjective",notIf:"(impersonating|practicing|considering|assuming)",reason:"looked-amazing"},{match:"[%Adj|Gerund%] #Determiner",group:0,tag:"Gerund",reason:"developing-a"},{match:"#Possessive [%Adj|Gerund%] #Noun",group:0,tag:"Adjective",reason:"leading-manufacturer"},{match:"%Noun|Gerund% %Adj|Gerund%",tag:"Gerund #Adjective",reason:"meaning-alluring"},{match:"(face|embrace|reveal|stop|start|resume) %Adj|Gerund%",tag:"#PresentTense #Adjective",reason:"face-shocking"},{match:"(are|were) [%Adj|Gerund%] #Plural",group:0,tag:"Adjective",reason:"are-enduring-symbols"}],[{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",notIf:"#Hyphenated",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:"no [#Adjective] #Modal",group:0,tag:"Noun",reason:"no-golden"},{match:"[brand #Gerund?] new",group:0,tag:"Adverb",reason:"brand-new"},{match:"(#Determiner|#Comparative|new|different) [kind]",group:0,tag:"Noun",reason:"some-kind"},{match:"#Possessive [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"her-favourite"},{match:"must && #Hyphenated .",tag:"Adjective",reason:"must-win"},{match:"#Determiner [#Adjective]$",tag:"Noun",notIf:"(this|that|#Comparative|#Superlative)",reason:"the-south"},{match:"(#Noun && #Hyphenated) (#Adjective && #Hyphenated)",tag:"Adjective",notIf:"(this|that|#Comparative|#Superlative)",reason:"company-wide"},{match:"#Determiner [#Adjective] (#Copula|#Determiner)",notIf:"(#Comparative|#Superlative)",group:0,tag:"Noun",reason:"the-poor"},{match:"[%Adj|Noun%] #Noun",notIf:"(#Pronoun|#ProperNoun)",group:0,tag:"Adjective",reason:"stable-foundations"}],[{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,notIf:"(#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] #Comparative",group:0,tag:"Adverb",reason:"even-worse"},{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|bright|slow|fast|backwards|forwards)]",notIf:"#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",notIf:"(getting|becoming|feeling)",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",notIf:"(#PhrasalVerb|#Copula)",reason:"charge-back"},{match:"#Verb [around]",group:0,tag:"Adverb",notIf:"#PhrasalVerb",reason:"send-around"},{match:"[later] #PresentTense",group:0,tag:"Adverb",reason:"later-say"},{match:"#Determiner [well] !#PastTense?",group:0,tag:"Noun",reason:"the-well"},{match:"#Adjective [enough]",group:0,tag:"Adverb",reason:"high-enough"}],[{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) !#Infinitive?",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:"#Value (am|pm)",tag:"Time",reason:"2-am"}],[{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:"(the|any) [more]",group:0,tag:"Singular",reason:"more-noun"},{match:"[more] #Noun",group:0,tag:"Adjective",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Singular",reason:"bit-2"},{match:"a [must]",group:0,tag:"Singular",reason:"must-2"},{match:"(we|us) [all]",group:0,tag:"Noun",reason:"we all"},{match:"due to [#Verb]",group:0,tag:"Noun",reason:"due-to"},{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",notIf:"#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:"(a|an|the) [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",notIf:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,notIf:"#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? [#PresentTense #Particle?]",group:0,tag:"Noun",notIf:"(seem|appear|include|#Gerund|#Copula)",reason:"det-inf"},{match:"#Noun #Actor",tag:"Actor",notIf:"(#Person|#Pronoun)",reason:"thing-doer"},{match:"#Gerund #Actor",tag:"Actor",reason:"gerund-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"[#Noun+] #Actor",group:0,tag:"Actor",notIf:"(#Honorific|#Pronoun|#Possessive)",reason:"air-traffic-controller"},{match:"(urban|cardiac|cardiovascular|respiratory|medical|clinical|visual|graphic|creative|dental|exotic|fine|certified|registered|technical|virtual|professional|amateur|junior|senior|special|pharmaceutical|theoretical)+ #Noun? #Actor",tag:"Actor",reason:"fine-artist"},{match:"#Noun+ (coach|chef|king|engineer|fellow|personality|boy|girl|man|woman|master)",tag:"Actor",reason:"dance-coach"},{match:"chief . officer",tag:"Actor",reason:"chief-x-officer"},{match:"chief of #Noun+",tag:"Actor",reason:"chief-of-police"},{match:"senior? vice? president of #Noun+",tag:"Actor",reason:"president-of"},{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:"#Possessive #PresentTense #Particle?",notIf:"(#Gerund|her)",tag:"Noun",reason:"possessive-verb"},{match:"(my|our|their|her|his|its) [(#Plural && #Actor)] #Noun",tag:"Possessive",reason:"my-dads"},{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 [#Verb] and #Noun",group:0,tag:"Noun",reason:"peace-and-flowers"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"},{match:"#Copula the [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"the-premier-university"},{match:"i #Verb [me] #Noun",group:0,tag:"Possessive",reason:"scottish-me"},{match:"[#PresentTense] (music|class|lesson|night|party|festival|league|ceremony)",group:0,tag:"Noun",reason:"dance-music"},{match:"[wit] (me|it)",group:0,tag:"Presposition",reason:"wit-me"},{match:"#PastTense #Possessive [#Verb]",group:0,tag:"Noun",notIf:"(saw|made)",reason:"left-her-boots"},{match:"#Value [%Plural|Verb%]",group:0,tag:"Plural",notIf:"(one|1|a|an)",reason:"35-signs"},{match:"had [#PresentTense]",group:0,tag:"Noun",notIf:"(#Gerund|come|become)",reason:"had-time"},{match:"%Adj|Noun% %Noun|Verb%",tag:"#Adjective #Noun",notIf:"#ProperNoun #Noun",reason:"instant-access"},{match:"#Determiner [%Adj|Noun%] #Conjunction",group:0,tag:"Noun",reason:"a-rep-to"},{match:"#Adjective #Noun [%Plural|Verb%]$",group:0,tag:"Plural",notIf:"#Pronoun",reason:"near-death-experiences"},{match:"#Possessive #Noun [%Plural|Verb%]$",group:0,tag:"Plural",reason:"your-guild-colors"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,ifNo:"#Copula",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",notIf:"(still|even|just)",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"#Copula [(#Gerund|#Activity)] #Copula",group:0,tag:"Gerund",reason:"are-doing-is"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"},{match:"#Singular for [%Noun|Gerund%]",group:0,tag:"Gerund",reason:"noun-for-gerund"},{match:"#Comparative (for|at) [%Noun|Gerund%]",group:0,tag:"Gerund",reason:"better-for-gerund"},{match:"#PresentTense the [#Gerund]",group:0,tag:"Noun",reason:"keep-the-touching"}],[{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 (only|further|just|more|backward) [#Infinitive]",group:0,tag:"Noun",reason:"the-only-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{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,notIf:"from",tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"#Plural 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 #Particle?]",notIf:"(#Copula|#Noun|sure|fun|up)",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",notIf:"#Pronoun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"this [#Plural]",group:0,tag:"PresentTense",notIf:"(#Preposition|#Date)",reason:"this-verbs"},{match:"#Noun that [#Plural]",group:0,tag:"PresentTense",notIf:"(#Preposition|#Pronoun|way)",reason:"voice-that-rocks"},{match:"that [#Plural] to",group:0,tag:"PresentTense",notIf:"#Preposition",reason:"that-leads-to"},{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]",notIf:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",notIf:"better",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",notIf:"(#Copula|better)",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"many-poses"},{match:"#Determiner #Adverb #Adjective [%Noun|Verb%]",group:0,tag:"Noun",notIf:"#Copula",reason:"very-big-dream"},{match:"from #Noun to [%Noun|Verb%]",group:0,tag:"Noun",reason:"start-to-finish"},{match:"(for|with|of) #Noun (and|or|not) [%Noun|Verb%]",group:0,tag:"Noun",notIf:"#Pronoun",reason:"for-food-and-gas"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",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) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #Particle #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] of",group:0,notIf:"(one|1|#Copula|#Infinitive)",tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",notIf:"#Copula",reason:"our-full-support"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",notIf:"going",reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"},{match:"how to [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"how-to-noun"},{match:"which [%Noun|Verb%] #Noun",group:0,tag:"Infinitive",reason:"which-boost-it"},{match:"#Gerund [%Plural|Verb%]",group:0,tag:"Plural",reason:"asking-questions"},{match:"(ready|available|difficult|hard|easy|made|attempt|try) to [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"ready-to-noun"},{match:"(bring|went|go|drive|run|bike) to [%Noun|Verb%]",group:0,tag:"Noun",reason:"bring-to-noun"},{match:"#Modal #Noun [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"would-you-look"},{match:"#Copula just [#Infinitive]",group:0,tag:"Noun",reason:"is-just-spam"},{match:"^%Noun|Verb% %Plural|Verb%",tag:"Imperative #Plural",reason:"request-copies"},{match:"#Adjective #Plural and [%Plural|Verb%]",group:0,tag:"#Plural",reason:"pickles-and-drinks"},{match:"#Determiner #Year [#Verb]",group:0,tag:"Noun",reason:"the-1968-film"},{match:"#Determiner [#PhrasalVerb #Particle]",group:0,tag:"Noun",reason:"the-break-up"},{match:"#Determiner [%Adj|Noun%] #Noun",group:0,tag:"Adjective",notIf:"(#Pronoun|#Possessive|#ProperNoun)",reason:"the-individual-goals"},{match:"[%Noun|Verb%] or #Infinitive",group:0,tag:"Infinitive",reason:"work-or-prepare"},{match:"to #Infinitive [#PresentTense]",group:0,tag:"Noun",notIf:"(#Gerund|#Copula|help)",reason:"to-give-thanks"},{match:"[#Noun] me",group:0,tag:"Verb",reason:"kills-me"},{match:"%Plural|Verb% %Plural|Verb%",tag:"#PresentTense #Plural",reason:"removes-wrinkles"}],[{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:"a pound",tag:"#Money #Unit",reason:"a-pound"},{match:"#Value (pound|pounds)",tag:"#Money #Unit",reason:"4-pounds"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"},{match:"#Value #Unit [(per|an) (hr|hour|sec|second|min|minute)]",group:0,tag:"Unit",reason:"12-miles-per-second"},{match:"#Value [(square|cubic)] #Unit",group:0,tag:"Unit",reason:"square-miles"},{match:"^[#Value] (#Determiner|#Gerund)",group:0,tag:"Expression",unTag:"Value",reason:"numbered-list"}],[{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(sister|pope|brother|father|aunt|uncle|grandpa|grandfather|grandma) #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",notIf:"#Place",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",notIf:"#Place",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",notIf:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",notIf:"#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:"[(lieutenant|corporal|sergeant|captain|qeen|king|admiral|major|colonel|marshal|president|queen|king)+] #ProperNoun",group:0,tag:"Honorific",reason:"seargeant-john"},{match:"[(private|general|major|rear|prime|field|count|miss)] #Honorific? #Person",group:0,tag:["Honorific","Person"],reason:"ambg-honorifics"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",notIf:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:"Honorific",reason:"his-excellency"},{match:"#Honorific #Actor",tag:"Honorific",reason:"Lieutenant colonel"},{match:"(first|second|third|1st|2nd|3rd) #Actor",tag:"Honorific",reason:"first lady"},{match:"#Person #RomanNumeral",tag:"Person",reason:"louis-IV"}],[{match:"#FirstName #Noun$",tag:". #LastName",notIf:"(#Possessive|#Organization|#Place|#Pronoun|@hasTitleCase)",reason:"firstname-noun"},{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",ifNo:"#Actor"},{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:"#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:"(#FirstName && !#Possessive) [#Singular] #Verb",group:0,safe:!0,tag:"LastName",reason:"jack-layton"},{match:"^[#Singular] #Person #Verb",group:0,safe:!0,tag:"Person",reason:"sherwood-anderson"},{match:"(a|an) [#Person]$",group:0,unTag:"Person",reason:"a-warhol"}],[{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",notIf:"(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:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(have|had) read",tag:"Modal #PastTense",reason:"read-read"},{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:"as #Pronoun [please]",group:0,tag:"Infinitive",reason:"as-we-please"},{match:"[(co|mis|de|inter|intra|pre|re|un|out|under|over|counter)] #Verb",group:0,tag:["Verb","Prefix"],notIf:"(#Copula|#PhrasalVerb)",reason:"co-write"},{match:"#PastTense and [%Adj|Past%]",group:0,tag:"PastTense",reason:"dressed-and-left"},{match:"[%Adj|Past%] and #PastTense",group:0,tag:"PastTense",reason:"dressed-and-left"},{match:"#Copula #Pronoun [%Adj|Past%]",group:0,tag:"Adjective",reason:"is-he-stoked"},{match:"to [%Noun|Verb%] #Preposition",group:0,tag:"Infinitive",reason:"to-dream-of"}],[{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:"#Copula [#Adjective] (well|badly|quickly|slowly)",group:0,tag:"Verb",reason:"done-well"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"},{match:"(seem|feel|seemed|felt) [#PastTense #Particle?]",group:0,tag:"Adjective",reason:"seem-confused"},{match:"a (bit|little|tad) [#PastTense #Particle?]",group:0,tag:"Adjective",reason:"a-bit-confused"},{match:"not be [%Adj|Past% #Particle?]",group:0,tag:"Adjective",reason:"do-not-be-confused"},{match:"#Copula just [%Adj|Past% #Particle?]",group:0,tag:"Adjective",reason:"is-just-right"},{match:"as [#Infinitive] as",group:0,tag:"Adjective",reason:"as-pale-as"},{match:"[%Adj|Past%] and #Adjective",group:0,tag:"Adjective",reason:"faled-and-oppressive"},{match:"or [#PastTense] #Noun",group:0,tag:"Adjective",notIf:"(#Copula|#Pronoun)",reason:"or-heightened-emotion"},{match:"(become|became|becoming|becomes) [#Verb]",group:0,tag:"Adjective",reason:"become-verb"},{match:"#Possessive [#PastTense] #Noun",group:0,tag:"Adjective",reason:"declared-intentions"},{match:"#Copula #Pronoun [%Adj|Present%]",group:0,tag:"Adjective",reason:"is-he-cool"},{match:"#Copula [%Adj|Past%] with",group:0,tag:"Adjective",notIf:"(associated|worn|baked|aged|armed|bound|fried|loaded|mixed|packed|pumped|filled|sealed)",reason:"is-crowded-with"},{match:"#Copula #Adverb? [%Adj|Present%]$",group:0,tag:"Adjective",reason:"was-empty$"}],[{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:"[(#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:"[(been|had|became|came)] #PastTense",group:0,notIf:"#PhrasalVerb",tag:"Auxiliary",reason:"been-told"},{match:"[(being|having|getting)] #Verb",group:0,tag:"Auxiliary",reason:"being-born"},{match:"[be] #Gerund",group:0,tag:"Auxiliary",reason:"be-walking"},{match:"[better] #PresentTense",group:0,tag:"Modal",notIf:"(#Copula|#Gerund)",reason:"better-go"},{match:"even better",tag:"Adverb #Comparative",reason:"even-better"}],[{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)",notIf:"#Copula",tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"#Verb (up|down|in|on|for)$",tag:"PhrasalVerb #Particle",notIf:"#PhrasalVerb",reason:"come-down$"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"#PhrasalVerb (in && #Particle) #Determiner",tag:"#Verb #Preposition #Determiner",unTag:"PhrasalVerb",reason:"work-in-the"},{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:yc,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:yc,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:yc,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",notIf:"(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|a|an|any|each|every|some|more|with|on)",group:0,notIf:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me|there)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^[#Infinitive] (#Adjective|#Adverb)? and #Infinitive",group:0,tag:"Imperative",reason:"call-and-reserve"},{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:"^[#PhrasalVerb #Particle] #Determiner #Noun",group:0,tag:"Imperative",reason:"turn-off-the-light"},{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:"^come #Infinitive",tag:"Imperative",notIf:"on",reason:"come-have"},{match:"^come and? #Infinitive",tag:"Imperative . Imperative",notIf:"#PhrasalVerb",reason:"come-and-have"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[(stay|be|keep)] #Adjective",group:0,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:"[#Infinitive] what .",group:0,tag:"Imperative",reason:"look-what"},{match:"^[#Infinitive] #Gerund",group:0,tag:"Imperative",reason:"keep-playing"},{match:"^[#Infinitive] (to|for|into|toward|here|there)",group:0,tag:"Imperative",reason:"go-to"},{match:"^[#Infinitive] (and|or) #Infinitive",group:0,tag:"Imperative",reason:"inf-and-inf"},{match:"^[%Noun|Verb%] to",group:0,tag:"Imperative",reason:"commit-to"},{match:"^[#Infinitive] #Adjective? #Singular #Singular",group:0,tag:"Imperative",reason:"maintain-eye-contact"},{match:"do not (forget|omit|neglect) to [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-forget"},{match:"^[(ask|wear|pay|look|help|show|watch|act|fix|kill|stop|start|turn|try|win)] #Noun",group:0,tag:"Imperative",reason:"pay-attention"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"},{match:"#Gerund [#Gerund] #Plural",group:0,tag:"Adjective",reason:"hard-working-fam"}],[{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:"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:"[right] (before|after|in|into|to|toward)",group:0,tag:"#Adverb",reason:"right-into"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"(are|#Modal|see|do|for) [ya]",group:0,tag:"Pronoun",reason:"are-ya"},{match:"[long live] .",group:0,tag:"#Adjective #Infinitive",reason:"long-live"},{match:"[plenty] of",group:0,tag:"#Uncountable",reason:"plenty-of"},{match:"(always|nearly|barely|practically) [there]",group:0,tag:"Adjective",reason:"always-there"},{match:"[there] (#Adverb|#Pronoun)? #Copula",group:0,tag:"There",reason:"there-is"},{match:"#Copula [there] .",group:0,tag:"There",reason:"is-there"},{match:"#Modal #Adverb? [there]",group:0,tag:"There",reason:"should-there"},{match:"^[do] (you|we|they)",group:0,tag:"QuestionWord",reason:"do-you"},{match:"^[does] (he|she|it|#ProperNoun)",group:0,tag:"QuestionWord",reason:"does-he"},{match:"#Determiner #Noun+ [who] #Verb",group:0,tag:"Preposition",reason:"the-x-who"},{match:"#Determiner #Noun+ [which] #Verb",group:0,tag:"Preposition",reason:"the-x-which"},{match:"a [while]",group:0,tag:"Noun",reason:"a-while"},{match:"guess who",tag:"#Infinitive #QuestionWord",reason:"guess-who"},{match:"[fucking] !#Verb",group:0,tag:"#Gerund",reason:"f-as-gerund"}],[{match:"university of #Place",tag:"Organization",reason:"university-of-Foo"},{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",notIf:"#FirstName",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:"government of the? [#Place+]",tag:"Organization",reason:"government-of-x"},{match:"(health|school|commerce) board",tag:"Organization",reason:"school-board"},{match:"(nominating|special|conference|executive|steering|central|congressional) committee",tag:"Organization",reason:"special-comittee"},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"},{match:"#Place+ #SportsTeam",tag:"SportsTeam",reason:"place-sportsteam"},{match:"(dc|atlanta|minnesota|manchester|newcastle|sheffield) united",tag:"SportsTeam",reason:"united-sportsteam"},{match:"#Place+ fc",tag:"SportsTeam",reason:"fc-sportsteam"}],[{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+ (cliff|place|range|pit|place|point|room|grounds|ruins)",tag:"Place",reason:"foo-point"},{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:"a #Noun [like] (#Noun|#Determiner)",group:0,tag:"Preposition",reason:"a-noun-like"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Infinitive #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"}],[{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^[(well|so|okay|now)] !#Adjective?",group:0,tag:"Expression",reason:"well-"},{match:"^come on",tag:"Expression",reason:"come-on"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"^(ok|alright|shoot|hell|anyways)",tag:"Expression",reason:"ok-"},{match:"^(say && @hasComma)",tag:"Expression",reason:"say-"},{match:"^(like && @hasComma)",tag:"Expression",reason:"like-"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}]),kc=null;var Pc={postTagger:function(e){const{world:t}=e,{model:n,methods:a}=t;kc=kc||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(kc),e.uncache(),e.unfreeze(),e},tagger:e=>e.compute(["freeze","lexicon","preTagger","postTagger","unfreeze"])};const Ac={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach((n=>{n.forEach((n=>{t+=1,e+=n.confidence||1}))})),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["tagger"])}},compute:Pc,model:{two:{matches:wc}},hooks:["postTagger"]};var Cc=Ac,jc=function(e,t){let n=function(e){return Object.keys(e.hooks).filter((e=>!e.startsWith("#")&&!e.startsWith("%")))}(t);if(0===n.length)return e;e._cache||e.cache();let a=e._cache;return e.filter(((e,t)=>n.some((e=>a[t].has(e)))))},Nc=function(e,t){let n=t;"string"==typeof t&&(n=this.buildNet([{match:t}]));let a=this.tokenize(e),r=jc(a,n);return r.found?(r.compute(["index","tagger"]),r.match(t)):a.none()},Ic={lib:{lazy:Nc}},Dc=function(e,t){let n=t;return e.forEach((e=>{e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verb.conjugate)(t,e.model);return e.has("#Gerund")?n.Gerund:e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)})),e},Hc=function(e,t,n){let a=e.split(/ /g).map((e=>e.toLowerCase().trim()));a=a.filter((e=>e)),a=a.map((e=>`{${e}}`)).join(" ");let r=this.match(a);return n&&(r=r.if(n)),r.has("#Verb")?Dc(r,t):r.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.noun.toPlural)(t,e.model)),e.replaceWith(n,{possessives:!0})}(r,t):r.has("#Adverb")?function(e,t){const{toAdverb:n}=e.methods.two.transform.adjective;let a=n(t);a&&e.replaceWith(a)}(r,t):r.has("#Adjective")?function(e,t){const{toComparative:n,toSuperlative:a}=e.methods.two.transform.adjective;let r=t;e.has("#Comparative")?r=n(r,e.model):e.has("#Superlative")&&(r=a(r,e.model)),r&&e.replaceWith(r)}(r,t):this},Gc={api:function(e){e.prototype.swap=Hc}};return b.plugin(Ju),b.plugin(bc),b.plugin(Cc),b.plugin(Ic),b.plugin(Gc),b},"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:[]};const t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach((a=>{t.compute.hasOwnProperty(a)?n[a](this):console.warn("no compute:",e)})):"function"==typeof e?e(this):console.warn("no compute:",e),this}};var n={forEach:function(e){return this.fullPointer.forEach(((t,n)=>{let a=this.update([t]);e(a,n)})),this},map:function(e,t){let n=this.fullPointer.map(((t,n)=>{let a=this.update([t]),r=e(a,n);return void 0===r?this.none():r}));if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let a=[];return n.forEach((e=>{a=a.concat(e.fullPointer)})),this.toView(a)},filter:function(e){let t=this.fullPointer;return t=t.filter(((t,n)=>{let a=this.update([t]);return e(a,n)})),this.update(t)},find:function(e){let t=this.fullPointer.find(((t,n)=>{let a=this.update([t]);return e(a,n)}));return this.update([t])},some:function(e){return this.fullPointer.some(((t,n)=>{let a=this.update([t]);return e(a,n)}))},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const a={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach((e=>{t[e]=this.update(this._groups[e])})),t},eq:function(e){let t=this.pointer;return t||(t=this.docs.map(((e,t)=>[t]))),t[e]?this.update([t[e]]):this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map(((e,t)=>[t]));return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map((e=>[e[0]]));return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every(((e,t)=>!!n[t]&&e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2]))},wordCount:function(){return this.docs.reduce(((e,t)=>(e+=t.filter((e=>""!==e.text)).length,e)),0)},isFull:function(){let e=this.pointer;if(!e)return!0;if(0===e.length||0!==e[0][0])return!1;let t=0,n=0;return this.document.forEach((e=>t+=e.length)),this.docs.forEach((e=>n+=e.length)),t===n},getNth:function(e){return"number"==typeof e?this.eq(e):"string"==typeof e?this.if(e):this}};a.group=a.groups,a.fullSentence=a.fullSentences,a.sentence=a.fullSentences,a.lastTerm=a.lastTerms,a.firstTerm=a.firstTerms;const r=Object.assign({},a,t,n);r.get=r.eq;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,a=t||e.map(((e,t)=>[t]));return a.map((e=>{let[t,a,r,o,i]=e;return a=a||0,r=r||(n[t]||[]).length,n[t]&&n[t][a]&&(o=o||n[t][a].id,n[t][r-1]&&(i=i||n[t][r-1].id)),[t,a,r,o,i]}))}update(e){let t=new View(this.document,e);if(this._cache&&e&&e.length>0){let n=[];e.forEach(((e,t)=>{let[a,r,o]=e;(1===e.length||0===r&&this.document[a].length===o)&&(n[t]=this._cache[a])})),n.length>0&&(t._cache=n)}return t.world=this.world,t}toView(e){return new View(this.document,e||this.pointer)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),a=new View(n);return a.world=this.world,a.compute(["normal","freeze","lexicon"]),this.world.compute.preTagger&&a.compute("preTagger"),a.compute("unfreeze"),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,r);const o=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};function i(e,t){if(o(t))for(const n in t)o(t[n])?(e[n]||Object.assign(e,{[n]:{}}),i(e[n],t[n])):Object.assign(e,{[n]:t[n]});return e}const s=function(e,t,n,a){const{methods:r,model:o,compute:s,hooks:l}=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&&i(o,e.model),e.irregulars&&function(e,t){let n=e.two.models||{};Object.keys(t).forEach((e=>{t[e].pastTense&&(n.toPast&&(n.toPast.ex[e]=t[e].pastTense),n.fromPast&&(n.fromPast.ex[t[e].pastTense]=e)),t[e].presentTense&&(n.toPresent&&(n.toPresent.ex[e]=t[e].presentTense),n.fromPresent&&(n.fromPresent.ex[t[e].presentTense]=e)),t[e].gerund&&(n.toGerund&&(n.toGerund.ex[e]=t[e].gerund),n.fromGerund&&(n.fromGerund.ex[t[e].gerund]=e)),t[e].comparative&&(n.toComparative&&(n.toComparative.ex[e]=t[e].comparative),n.fromComparative&&(n.fromComparative.ex[t[e].comparative]=e)),t[e].superlative&&(n.toSuperlative&&(n.toSuperlative.ex[e]=t[e].superlative),n.fromSuperlative&&(n.fromSuperlative.ex[t[e].superlative]=e))}))}(o,e.irregulars),e.compute&&Object.assign(s,e.compute),l&&(t.hooks=l.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.frozen&&a.addWords(e.frozen,!0),e.mutate&&e.mutate(t,a)},l=function(e){return"[object Array]"===Object.prototype.toString.call(e)},u=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(l(e)){if(l(e[0])){let n=e.map((e=>e.map((e=>({text:e,normal:e,pre:"",post:" ",tags:new Set})))));return new t(n)}let n=e.map((e=>e.terms.map((e=>(l(e.tags)&&(e.tags=new Set(e.tags)),e)))));return new t(n)}return r};let c=Object.assign({},e);const d=function(e,t){t&&d.addWords(t);let n=u(e,View,c);return e&&n.compute(c.hooks),n};Object.defineProperty(d,"_world",{value:c,writable:!0}),d.tokenize=function(e,t){const{compute:n}=this._world;t&&d.addWords(t);let a=u(e,View,c);return n.contractions&&a.compute(["alias","normal","machine","contractions"]),a},d.plugin=function(e){return s(e,this._world,View,this),this},d.extend=d.plugin,d.world=function(){return this._world},d.model=function(){return this._world.model},d.methods=function(){return this._world.methods},d.hooks=function(){return this._world.hooks},d.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},d.version="14.14.0";var h={one:{cacheDoc:function(e){let t=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 a=[t,0].concat(n);Array.prototype.splice.apply(e,a)}return e},y=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-โ€“โ€”]/.test(t.post)||(t.post+=" ")},v=(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,"")}},w=function(e,t,n,a){let[r,o,i]=t;0===o||i===a[r].length?y(n):(y(n),y([e[t[1]]])),function(e,t,n){let a=e[t];if(0!==t||!f(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")||f(r.text)&&r.text.length>1&&(r.text=r.text.replace(/^\p{Lu}/u,(e=>e.toLowerCase())))}(e,o,n),b(e,o,n)};let k=0;const P=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e,A=function(e){let[t,n]=e.index||[0,0];k+=1,k=k>46655?0:k,t=t>46655?0:t,n=n>1294?0:n;let a=P(k.toString(36));a+=P(t.toString(36));let r=n.toString(36);return r=r.length<2?"0"+r:r,a+=r,a+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+a.toUpperCase()},C=function(e){e.has("@hasContraction")&&"function"==typeof e.contractions&&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;t.uncache();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);0!==h.length&&(h=function(e){return e.map((e=>(e.id=A(e),e)))}(h),n?(C(t.update([u]).firstTerm()),w(d,u,h,a)):(C(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);let r=a.docs[0],o=t.possessives&&r[r.length-1].tags.has("Possessive");e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e=e.replace(D,(e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})),e}(e,a);let i=this.update(n);n=n.map((e=>e.slice(0,3)));let s=(i.docs[0]||[]).map((e=>Array.from(e.tags)));if("string"==typeof e&&(e=this.fromText(e).compute("id")),a.insertAfter(e),i.has("@hasContraction")&&a.contractions&&a.grow("@hasContraction+").contractions().expand(),a.delete(i),o){let e=a.docs[0],t=e[e.length-1];t.tags.has("Possessive")||(t.text+="'s",t.normal+="'s",t.tags.add("Possessive"))}let l=a.toView(n).compute(["index","freeze","lexicon"]);return l.world.compute.preTagger&&l.compute("preTagger"),l.compute("unfreeze"),t.tags&&l.terms().forEach(((e,t)=>{e.tagSafe(s[t])})),t.case&&l.docs[0]&&l.docs[0][0]&&0===l.docs[0][0].index[1]&&(l.docs[0][0].text=l.docs[0][0].text.replace(/\w\S*/g,(e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase()))),l},replace:function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let a=this.match(e);return a.found?(this.soften(),a.replaceWith(t,n)):this}},T={remove:function(e){const{indexN:t}=this.methods.one.pointer;this.uncache();let n=this.all(),a=this;e&&(n=this,a=this.match(e));let r=!n.ptrs;a.has("@hasContraction")&&a.contractions&&a.grow("@hasContraction").contractions().expand();let o=n.fullPointer,i=a.fullPointer.reverse(),s=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}(this.document,i);return o=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})),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)))}(o,t(i)),n.ptrs=o,n.document=s,n.compute("index"),r&&(n.ptrs=void 0),e?n.toView(o):(this.ptrs=[],n.none())}};T.delete=T.remove;const G={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}};G.deHyphenate=G.dehyphenate,G.toQuotation=G.toQuotations;var x={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 E=new Set(["index","sequence","seq","sequential","chron","chronological"]),F=new Set(["freq","frequency","topk","repeats"]),O=new Set(["alpha","alphabetical"]);var z={unique:function(){let e=new Set,t=this.filter((t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)}));return t},reverse:function(){let e=this.pointer||this.docs.map(((e,t)=>[t]));return e=[].concat(e),e=e.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if(this.uncache(),"function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort(((n,a)=>(n=e.update([n]),a=e.update([a]),t(n,a)))),e.ptrs=n,e}(this,e);e=e||"alpha";let a=n||t.map(((e,t)=>[t])),r=t.map(((e,t)=>({index:t,words:e.length,normal:e.map((e=>e.machine||e.normal||"")).join(" "),pointer:a[t]})));return E.has(e)&&(e="sequential"),O.has(e)&&(e="alpha"),F.has(e)?(r=x.byFreq(r),this.update(r.map((e=>e.pointer)))):"function"==typeof x[e]?(r=r.sort(x[e]),this.update(r.map((e=>e.pointer)))):this}};const V=function(e,t){if(e.length>0){let t=e[e.length-1],n=t[t.length-1];!1===/ /.test(n.post)&&(n.post+=" ")}return e=e.concat(t)};var B={concat:function(e){if("string"==typeof e){let t=this.fromText(e);if(this.found&&this.ptrs){let e=this.fullPointer,n=e[e.length-1][0];this.document.splice(n,0,...t.document)}else this.document=this.document.concat(t.document);return this.all().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=V(e.document,t.docs),e.all()}(this,e);if(t=e,"[object Array]"===Object.prototype.toString.call(t)){let t=V(this.document,e);return this.document=t,this.all()}var t;return this}},S={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}},I,H,T,G,z,B,S),$={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))),n[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))},U=/'/,q=new Set(["what","how","when","where","why"]),R=new Set(["be","go","start","think","need"]),Q=new Set(["been","gone"]),Z=/'/,X=/(e|รฉ|aison|sion|tion)$/,_=/(age|isme|acle|ege|oire)$/;var Y=(e,t)=>["je",e[t].normal.split(Z)[1]],ee=(e,t)=>{let n=e[t].normal.split(Z)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},te=(e,t)=>{let n=e[t].normal.split(Z)[1];return n&&X.test(n)&&!_.test(n)?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const ne=/^([0-9.]{1,4}[a-z]{0,2}) ?[-โ€“โ€”] ?([0-9]{1,4}[a-z]{0,2})$/i,ae=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-โ€“โ€”] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,re=/^[0-9]{3}-[0-9]{4}$/,oe=function(e,t){let n=e[t],a=n.text.match(ne);return null!==a?!0===n.tags.has("PhoneNumber")||re.test(n.text)?null:[a[1],"to",a[2]]:(a=n.text.match(ae),null!==a?[a[1],"to",a[4]]:null)},ie=/^([+-]?[0-9][.,0-9]*)([a-zยฐยฒยณยต/]+)$/,se=function(e,t,n){const a=n.model.one.numberSuffixes||{};let r=e[t].text.match(ie);if(null!==r){let e=r[2].toLowerCase().trim();return a.hasOwnProperty(e)?null:[r[1],e]}return null},le=/'/,ue=/^[0-9][^-โ€“โ€”]*[-โ€“โ€”].*?[0-9]/,ce=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]]},de={t:(e,t)=>function(e,t){return"ain't"===e[t].normal||"aint"===e[t].normal?null:[e[t].normal.replace(/n't/,""),"not"]}(e,t),d:(e,t)=>function(e,t){let n=e[t].normal.split(U)[0];if(q.has(n))return[n,"did"];if(e[t+1]){if(Q.has(e[t+1].normal))return[n,"had"];if(R.has(e[t+1].normal))return[n,"would"]}return null}(e,t)},he={j:(e,t)=>Y(e,t),l:(e,t)=>ee(e,t),d:(e,t)=>te(e,t)},ge=function(e,t,n,a){for(let r=0;r2)return o.out.concat(a)}return null},me=function(e,t){let n=t.fromText(e.join(" "));return n.compute(["id","alias"]),n.docs[0]},pe=function(e,t){for(let n=t+1;n<5&&e[n];n+=1)if("been"===e[n].normal)return["there","has"];return["there","is"]};var fe={contractions:e=>{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;if(!0===le.test(a[s].normal)){let e=a[s].normal.split(le);l=e[0],u=e[1]}let c=ge(o,a[s],l,u);!c&&de.hasOwnProperty(u)&&(c=de[u](a,s,t)),!c&&he.hasOwnProperty(l)&&(c=he[l](a,s)),"there"===l&&"s"===u&&(c=pe(a,s)),c?(c=me(c,e),W(n,[i,s],c),ce(n[i],e,s,c.length)):ue.test(a[s].normal)?(c=oe(a,s),c&&(c=me(c,e),W(n,[i,s],c),r.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&r.one.setTag([c[0]],"Time",t,null,"time-range"),ce(n[i],e,s,c.length))):(c=se(a,s,t),c&&(c=me(c,e),W(n,[i,s],c),r.one.setTag([c[1]],"Unit",t,null,"contraction-unit")))}}))}};const be={model:J,compute:fe,hooks:["contractions"]},ye=function(e){const t=e.world,{model:n,methods:a}=e.world,r=a.one.setTag,{frozenLex:o}=n.one,i=n.one._multiCache||{};e.docs.forEach((e=>{for(let n=0;nn;a-=1){let i=e.slice(n,a+1),s=i.map((e=>e.machine||e.normal)).join(" ");!0!==o.hasOwnProperty(s)||(r(i,o[s],t,!1,"1-frozen-multi-lexicon"),i.forEach((e=>e.frozen=!0)))}void 0!==o[s]&&o.hasOwnProperty(s)&&(r([a],o[s],t,!1,"1-freeze-lexicon"),a.frozen=!0)}}))},ve=e=>""+e+"",we=e=>""+e+"",ke=function(e){e.docs.forEach((e=>{console.log(ve("\n โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€")),e.forEach((e=>{let t=` ${we("โ”‚")} `,n=e.implicit||e.text||"-";!0===e.frozen?t+=`${ve(n)} โ„๏ธ`:t+=we(n),console.log(t)}))}))};var Pe={compute:{frozen:ye,freeze:ye,unfreeze:function(e){return e.docs.forEach((e=>{e.forEach((e=>{delete e.frozen}))})),e}},mutate:e=>{const t=e.methods.one;t.termMethods.isFrozen=e=>!0===e.frozen,t.debug.freeze=ke,t.debug.frozen=ke},api:function(e){e.prototype.freeze=function(){return this.docs.forEach((e=>{e.forEach((e=>{e.frozen=!0}))})),this},e.prototype.unfreeze=function(){this.compute("unfreeze")},e.prototype.isFrozen=function(){return this.match("@isFrozen+")}},hooks:["freeze"]};const Ae=function(e,t,n){const{model:a,methods:r}=n,o=r.one.setTag,i=a.one._multiCache||{},{lexicon:s}=a.one||{};let l=e[t],u=l.machine||l.normal;if(void 0!==i[u]&&e[t+1]){for(let a=t+i[u]-1;a>t;a-=1){let r=e.slice(t,a+1);if(r.length<=1)return!1;let i=r.map((e=>e.machine||e.normal)).join(" ");if(!0===s.hasOwnProperty(i)){let e=s[i];return o(r,e,n,!1,"1-multi-lexicon"),!e||2!==e.length||"PhrasalVerb"!==e[0]&&"PhrasalVerb"!==e[1]||o([r[1]],"Particle",n,!1,"1-phrasal-particle"),!0}}return!1}return null},Ce=/^(under|over|mis|re|un|dis|semi|pre|post)-?/,je=new Set(["Verb","Infinitive","PastTense","Gerund","PresentTense","Adjective","Participle"]),Ne=function(e,t,n){const{model:a,methods:r}=n,o=r.one.setTag,{lexicon:i}=a.one;let s=e[t],l=s.machine||s.normal;if(void 0!==i[l]&&i.hasOwnProperty(l))return o([s],i[l],n,!1,"1-lexicon"),!0;if(s.alias){let e=s.alias.find((e=>i.hasOwnProperty(e)));if(e)return o([s],i[e],n,!1,"1-lexicon-alias"),!0}if(!0===Ce.test(l)){let e=l.replace(Ce,"");if(i.hasOwnProperty(e)&&e.length>3&&je.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null};var Ie={lexicon:function(e){const t=e.world;e.docs.forEach((e=>{for(let n=0;n{let r=e[a],o=(a=(a=a.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);o.length>1&&(void 0===n[o[0]]||o.length>n[o[0]])&&(n[o[0]]=o.length),t[a]=t[a]||r})),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}}}},He={addWords:function(e,t=!1){const n=this.world(),{methods:a,model:r}=n;if(!e)return;if(Object.keys(e).forEach((t=>{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))})),!0===t){let{lex:t,_multi:o}=a.one.expandLexicon(e,n);return Object.assign(r.one._multiCache,o),void Object.assign(r.one.frozenLex,t)}if(a.two.expandLexicon){let{lex:t,_multi:o}=a.two.expandLexicon(e,n);Object.assign(r.one.lexicon,t),Object.assign(r.one._multiCache,o)}let{lex:o,_multi:i}=a.one.expandLexicon(e,n);Object.assign(r.one.lexicon,o),Object.assign(r.one._multiCache,i)}},Te={model:{one:{lexicon:{},_multiCache:{},frozenLex:{}}},methods:De,compute:Ie,lib:He,hooks:["lexicon"]};const Ge=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;let r=n.one.tokenize.splitTerms(e,a).map((e=>n.one.tokenize.splitWhitespace(e,a)));return r.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}},xe=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;t{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1);return e},Oe={buildTrie:function(e){return function(e){return e.goNext=e.goNext.map((e=>{if(0!==Object.keys(e).length)return e})),e.goNext=Fe(e.goNext,void 0),e.failTo=Fe(e.failTo,0),e.endAs=Fe(e.endAs,null),e}(Ge(e,this.world()))}};Oe.compile=Oe.buildTrie;var ze={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();var n;"string"==typeof e&&(e=[e]);let a=function(e,t,n){let a=[];n.form=n.form||"normal";let r=e.docs;if(!t.goNext||!t.goNext[0])return console.error("Compromise invalid lookup trie"),e.none();let o=Object.keys(t.goNext[0]);for(let i=0;i0&&(a=a.concat(l))}return e.update(a)}(this,(n=e,"[object Object]"===Object.prototype.toString.call(n)?e:Ge(e,this.world)),t);return a=a.settle(),a}},lib:Oe};const Ve=function(e,t){return t?(e.forEach((e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])})),e):e},Be=function(e,t){let{ptrs:n,byGroup:a}=e;return n=Ve(n,t),Object.keys(a).forEach((e=>{a[e]=Ve(a[e],t)})),{ptrs:n,byGroup:a}},Se=function(e,t,n){const a=n.methods.one;return"number"==typeof e&&(e=String(e)),"string"==typeof e&&(e=a.killUnicode(e,n),e=a.parseMatch(e,t,n)),e},Ke=e=>"[object Object]"===Object.prototype.toString.call(e),$e=e=>e&&Ke(e)&&!0===e.isView,Le=e=>e&&Ke(e)&&!0===e.isNet;var Me={matchOne:function(e,t,n){const a=this.methods.one;if($e(e))return this.intersection(e).eq(0);if(Le(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;let r={regs:e=Se(e,n,this.world),group:t,justOne:!0},o=a.match(this.docs,r,this._cache),{ptrs:i,byGroup:s}=Be(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const a=this.methods.one;if($e(e))return this.intersection(e);if(Le(e))return this.sweep(e,{tagger:!1}).view.settle();let r={regs:e=Se(e,n,this.world),group:t},o=a.match(this.docs,r,this._cache),{ptrs:i,byGroup:s}=Be(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const a=this.methods.one;if($e(e))return this.intersection(e).fullPointer.length>0;if(Le(e))return this.sweep(e,{tagger:!1}).view.found;let r={regs:e=Se(e,n,this.world),group:t,justOne:!0};return a.match(this.docs,r,this._cache).ptrs.length>0},if:function(e,t,n){const a=this.methods.one;if($e(e))return this.filter((t=>t.intersection(e).found));if(Le(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}let r={regs:e=Se(e,n,this.world),group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter(((e,t)=>{let n=this.update([e]);return a.match(n.docs,r,i[t]).ptrs.length>0}));let s=this.update(o);return this._cache&&(s._cache=o.map((e=>i[e[0]]))),s},ifNo:function(e,t,n){const{methods:a}=this,r=a.one;if($e(e))return this.filter((t=>!t.intersection(e).found));if(Le(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}e=Se(e,n,this.world);let o=this._cache||[],i=this.filter(((n,a)=>{let i={regs:e,group:t,justOne:!0};return 0===r.match(n.docs,i,o[a]).ptrs.length}));return this._cache&&(i._cache=i.ptrs.map((e=>o[e[0]]))),i}},Je={before:function(e,t,n){const{indexN:a}=this.methods.one.pointer;let r=[],o=a(this.fullPointer);Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?1:-1))[0];t[1]>0&&r.push([t[0],0,t[1]])}));let i=this.toView(r);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:a}=this.methods.one.pointer;let r=[],o=a(this.fullPointer),i=this.document;Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?-1:1))[0],[n,,a]=t;a{let o=n.before(e,t);if(o.found){let e=o.terms();a[r][1]-=e.length,a[r][3]=e.docs[0][0].id}})),this.update(a)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let a=this.fullPointer;return this.forEach(((n,r)=>{let o=n.after(e,t);if(o.found){let e=o.terms();a[r][2]+=e.length,a[r][4]=null}})),this.update(a)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const We=function(e,t){return[e[0],e[1],t[2]]},Ue=(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},qe=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},Re={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let a=Ue(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=>qe(e,this))),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let a=Ue(e,this,t).fullPointer,r=n(this.fullPointer,a);for(let e=0;e{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(We(e.match,e.after)):o.push(e.match)})),o=o.filter((e=>e)),o=o.map((e=>qe(e,this))),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let a=Ue(e,this,t).fullPointer,r=n(this.fullPointer,a),o=[];return r.forEach((e=>{o.push(e.passthrough),e.before&&e.match?o.push(We(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=>qe(e,this))),this.update(o)}};Re.split=Re.splitAfter;const Qe=function(e,t){return!(!e||!t)&&e[0]===t[0]&&e[2]===t[1]},Ze=function(e,t,n){const a=e.world,r=a.methods.one.parseMatch;n=n||"^.";let o=r(t=t||".$",{},a),i=r(n,{},a);o[o.length-1].end=!0,i[0].start=!0;let s=e.fullPointer,l=[s[0]];for(let t=1;t)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,et=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,tt=/ /g,nt=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),at=function(e){return e=(e=e.map((e=>e.trim()))).filter((e=>e))},rt=/\{([0-9]+)?(, *[0-9]*)?\}/,ot=/&&/,it=new RegExp(/^<\s*(\S+)\s*>/),st=e=>e.charAt(0).toUpperCase()+e.substring(1),lt=e=>e.charAt(e.length-1),ut=e=>e.charAt(0),ct=e=>e.substring(1),dt=e=>e.substring(0,e.length-1),ht=function(e){return e=ct(e),e=dt(e)},gt=function(e,t){let n={};for(let a=0;a<2;a+=1){if("$"===lt(e)&&(n.end=!0,e=dt(e)),"^"===ut(e)&&(n.start=!0,e=ct(e)),"?"===lt(e)&&(n.optional=!0,e=dt(e)),("["===ut(e)||"]"===lt(e))&&(n.group=null,"["===ut(e)&&(n.groupStart=!0),"]"===lt(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===ut(e))){const t=it.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===lt(e)&&(n.greedy=!0,e=dt(e)),"*"!==e&&"*"===lt(e)&&"\\*"!==e&&(n.greedy=!0,e=dt(e)),"!"===ut(e)&&(n.negative=!0,e=ct(e)),"~"===ut(e)&&"~"===lt(e)&&e.length>2&&(e=ht(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("/"===ut(e)&&"/"===lt(e))return e=ht(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if(!0===rt.test(e)&&(e=e.replace(rt,((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),"")))),"("===ut(e)&&")"===lt(e)){ot.test(e)?(n.choices=e.split(ot),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=ct(n.choices[0]);let a=n.choices.length-1;n.choices[a]=dt(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=>gt(e,t))))),e=""}if("{"===ut(e)&&"}"===lt(e)){if(e=ht(e),n.root=e,/\//.test(e)){let e=n.root.split(/\//);n.root=e[0],n.pos=e[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==e[2]&&(n.sense=e[2])}return n}if("<"===ut(e)&&">"===lt(e))return e=ht(e),n.chunk=st(e),n.greedy=!0,n;if("%"===ut(e)&&"%"===lt(e))return e=ht(e),n.switch=e,n}return"#"===ut(e)?(n.tag=ct(e),n.tag=st(n.tag),n):"@"===ut(e)?(n.method=ct(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)},mt=/[a-z0-9][-โ€“โ€”][a-z]/i,pt=function(e,t){let{all:n}=t.methods.two.transform.verb||{},a=e.root;return n?n(a,t.model):[]},ft=function(e,t){let{all:n}=t.methods.two.transform.noun||{};return n?n(e.root,t.model):[e.root]},bt=function(e,t){let{all:n}=t.methods.two.transform.adjective||{};return n?n(e.root,t.model):[e.root]},yt=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}))),e},vt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1},wt=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),It={hasQuote:e=>Pt.test(e.pre)||At.test(e.post),hasComma:e=>Nt(e,","),hasPeriod:e=>!0===Nt(e,".")&&!1===Nt(e,"..."),hasExclamation:e=>Nt(e,"!"),hasQuestionMark:e=>Nt(e,"?")||Nt(e,"ยฟ"),hasEllipses:e=>Nt(e,"..")||Nt(e,"โ€ฆ"),hasSemicolon:e=>Nt(e,";"),hasColon:e=>Nt(e,":"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>Ct.test(e.post)||Ct.test(e.pre),hasDash:e=>jt.test(e.post)||jt.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};It.hasQuotation=It.hasQuote;let Dt=function(){};Dt=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.id&&t.id===e.id)return!0;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(kt(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some((e=>e===t.word)))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof It[t.method]&&!0===It[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}if(void 0!==t.chunk)return e.chunk===t.chunk;if(void 0!==t.switch)return e.switch===t.switch;if(void 0!==t.machine)return e.normal===t.machine||e.machine===t.machine||e.root===t.machine;if(void 0!==t.sense)return e.sense===t.sense;if(void 0!==t.fastOr){if(t.pos&&!e.tags.has(t.pos))return null;let n=e.root||e.implicit||e.machine||e.normal;return t.fastOr.has(n)||t.fastOr.has(e.text)}return void 0!==t.choices&&("and"===t.operator?t.choices.every((t=>Dt(e,t,n,a))):t.choices.some((t=>Dt(e,t,n,a))))}(e,t,n,a);return!0===t.negative?!r:r};const Ht=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max?(e.t=e.t+n.max,!0):(!0===e.hasGroup&&(Tt(e,e.t).length=a-e.t),e.t=a,!0)},xt=function(e,t=0){let n=e.regs[e.r],a=!1;for(let o=0;o{let r=0,o=e.t+a+t+r;if(void 0===e.terms[o])return!1;let i=Dt(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let a=n.every(((t,n)=>{let a=e.t+n;return void 0!==e.terms[a]&&Dt(e.terms[a],t,a,e.phrase_length)}));return!0===a&&n.length>t&&(t=n.length),a}))&&t}(e);if(a){if(!0===n.negative)return null;if(!0===e.hasGroup&&(Tt(e,e.t).length+=a),!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=a,!0}return!!n.optional||null},Ot=function(e){const{regs:t}=e;let n=t[e.r],a=Object.assign({},n);if(a.negative=!1,Dt(e.terms[e.t],a,e.start_i+e.t,e.phrase_length))return!1;if(n.optional){let n=t[e.r+1];n&&(Dt(e.terms[e.t],n,e.start_i+e.t,e.phrase_length)?e.r+=1:n.optional&&t[e.r+2]&&Dt(e.terms[e.t],t[e.r+2],e.start_i+e.t,e.phrase_length)&&(e.r+=2))}return n.greedy?function(e,t,n){let a=0;for(let r=e.t;ra||(e.t+=a,0))}(e,a,t[e.r+1]):(e.t+=1,!0)},zt=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},Vt=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]&&function(e){const{regs:t}=e;let n=t[e.r],a=e.terms[e.t],r=Dt(a,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||r){let n=e.terms[e.t+1];n&&Dt(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}}(e),a.implicit&&e.terms[e.t+1]&&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)}}(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy?null:!0!==n.greedy||zt(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const a=Tt(e,t);e.t>1&&n.greedy?a.length+=e.t-t:a.length++}(e,r),!0):null)},Bt=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!==Ht(e,r)){if(e.negative){if(!Ot(r))return null}else if(!0!==Dt(r.terms[r.t],e,r.start_i+r.t,r.phrase_length)){if(!0!==e.optional)return null}else if(!Vt(r))return null}else if(!Vt(r))return null}else{if(e.negative&&e.anything)return null;if(!Vt(r))return null}else if(!Ft(r))return null}else if(!Et(r))return null}else if(!Gt(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}},St=function(e,t){return e.pointer[0]=t,Object.keys(e.groups).forEach((n=>{e.groups[n][0]=t})),e},Kt=function(e,t,n){let a=Bt(e,t,0,e.length);return a?(a=St(a,n),a):null},$t={one:{termMethods:It,parseMatch:function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let a=function(e){let t=e.split(Ye),n=[];t.forEach((e=>{nt(e)?n.push(e):n=n.concat(e.split(et))})),n=at(n);let a=[];return n.forEach((e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||nt(e)?a.push(e):a=a.concat(e.split(tt))})),a=at(a),a}(e);return a=a.map((e=>gt(e,t))),a=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&&mt.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}(a,n),a=function(e,t){return e.map((e=>{if(e.root)if(t.methods.two&&t.methods.two.transform){let n=[];e.pos?"Verb"===e.pos?n=n.concat(pt(e,t)):"Noun"===e.pos?n=n.concat(ft(e,t)):"Adjective"===e.pos&&(n=n.concat(bt(e,t))):(n=n.concat(pt(e,t)),n=n.concat(ft(e,t)),n=n.concat(bt(e,t))),n=n.filter((e=>e)),n.length>0&&(e.operator="or",e.fastOr=new Set(n))}else e.machine=e.root,delete e.id,delete e.root;return e}))}(a,n),a=yt(a),a},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=Kt(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]}))),t.notIf&&(i=function(e,t,n){return e=e.filter((e=>{let[a,r,o]=e.pointer,i=n[a].slice(r,o);for(let e=0;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}}(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}}};var Lt={api:function(e){Object.assign(e.prototype,_e)},methods:$t,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 Mt=/^\../,Jt=/^#./,Wt=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,"'"),Mt.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 Ut={html:function(e){let{starts:t,ends:n}=Wt(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(Rt,""),Zt.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(Rt,""),r="-"===r?" ":r.replace(qt,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||r&&Xt.test(r)||(r+=" "),a+=n+o+r})),!1===n&&(a=a.trim()),!0===t.lowerCase&&(a=a.toLowerCase()),a},Yt={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{keepSpace:!1,whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{keepSpace:!1,whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};Yt.clean=Yt.normal,Yt.reduced=Yt.root;let en=[],tn=0;for(;tn<64;)en[tn]=0|4294967296*Math.sin(++tn%Math.PI);const nn=function(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(tn=i=0;tn>4]+en[i]+~~o[tn|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},an={text:!0,terms:!0};let rn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const on=function(e,t){return Object.assign({},e,t)},sn={text:e=>_t(e,{keepPunct:!0},!1),normal:e=>_t(e,on(Yt.normal,{keepPunct:!0}),!1),implicit:e=>_t(e,on(Yt.implicit,{keepPunct:!0}),!1),machine:e=>_t(e,rn,!1),root:e=>_t(e,on(rn,{form:"root"}),!1),hash:e=>nn(_t(e,{keepPunct:!0},!1)),offset:e=>{let t=sn.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map((e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t})),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some((e=>!0===e.dirty))};sn.sentences=sn.sentence,sn.clean=sn.normal,sn.reduced=sn.root;const ln={json:function(e){let t=(n=this,"string"==typeof(a=(a=e)||{})&&(a={}),(a=Object.assign({},an,a)).offset&&n.compute("offset"),n.docs.map(((e,t)=>{let r={};return Object.keys(a).forEach((o=>{a[o]&&sn[o]&&(r[o]=sn[o](e,n,t))})),r})));var n,a;return"number"==typeof e?t[e]:t}};ln.data=ln.json;const un=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n},cn=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()));return e.filter((e=>e))}if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};e.forEach((e=>{t[e]=t[e]||0,t[e]+=1}));let n=Object.keys(t).map((e=>({normal:e,count:t[e]})));return n.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.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()},wrap:function(e){return cn(this,e)}};var hn={text:function(e){let t={};var n;if(e&&"string"==typeof e&&Yt.hasOwnProperty(e)?t=Object.assign({},Yt[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e)),void 0!==t.keepSpace||this.isFull()||(t.keepSpace=!1),void 0===t.keepEndPunct&&this.pointer){let e=this.pointer[0];e&&e[1]?t.keepEndPunct=!1:t.keepEndPunct=!0}return void 0===t.keepPunct&&(t.keepPunct=!0),void 0===t.keepSpace&&(t.keepSpace=!0),function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let a=0;a""+e+mn,red:e=>""+e+mn,blue:e=>""+e+mn,magenta:e=>""+e+mn,cyan:e=>""+e+mn,yellow:e=>""+e+mn,black:e=>""+e+mn,dim:e=>""+e+mn,i:e=>""+e+mn},fn={tags:function(e){let{docs:t,model:n}=e;0===t.length&&console.log(pn.blue("\n โ”€โ”€โ”€โ”€โ”€โ”€")),t.forEach((t=>{console.log(pn.blue("\n โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€")),t.forEach((t=>{let a=[...t.tags||[]],r=t.text||"-";t.sense&&(r=`{${t.normal}/${t.sense}}`),t.implicit&&(r="["+t.implicit+"]"),r=pn.yellow(r);let o="'"+r+"'";if(t.reference){let n=e.update([t.reference]).text("normal");o+=` - ${pn.dim(pn.i("["+n+"]"))}`}o=o.padEnd(18);let i=pn.blue(" โ”‚ ")+pn.i(o)+" - "+function(e,t){return t.one.tagSet&&(e=e.map((e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return pn[n](e)}))),e.join(", ")}(a,n);console.log(i)}))})),console.log("\n")},clientSide: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()}))},chunks:function(e){let{docs:t}=e;console.log(""),t.forEach((e=>{let t=[];e.forEach((e=>{"Noun"===e.chunk?t.push(pn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(pn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(pn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(pn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)})),console.log(t.join(" "),"\n")})),console.log("\n")},highlight:function(e){if(!e.found)return;let t={};e.fullPointer.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),Object.keys(t).forEach((n=>{let a=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach(((e,t)=>{a=function(e,t,n){let a=((e,t,n)=>{let a=9*n,r=t.start+a,o=r+t.length;return[e.substring(0,r),e.substring(r,o),e.substring(o,e.length)]})(e,t,n);return`${a[0]}${pn.blue(a[1])}${a[2]}`}(a,e.offset,t)})),console.log(a)})),console.log("\n")}};var bn={api:function(e){Object.assign(e.prototype,gn)},methods:{one:{hash:nn,debug:fn}}};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},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<20;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}}};const 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},Cn=(e,t)=>{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=Cn(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=Cn(e,this);let t=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{e=Pn(e,[t])})),e=jn(e,this.document),this.update(e)};var In={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},Hn=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.notIf&&(e.notIf=n(e.notIf,{},t)),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={buildNet:function(e,t){e=Hn(e,t);let n={};e.forEach((e=>{e.needs.forEach((t=>{n[t]=Array.isArray(n[t])?n[t]:[],n[t].push(e)})),e.wants.forEach((t=>{n[t]=Array.isArray(n[t])?n[t]:[],n[t].push(e)}))})),Object.keys(n).forEach((e=>{let t={};n[e]=n[e].filter((e=>"boolean"!=typeof 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=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=>"boolean"!=typeof o[e.match]&&(o[e.match]=!0,!0))),r}))}(r,t.hooks);o=function(e,t){return e.map(((e,n)=>{let a=t[n];return(e=(e=e.filter((e=>e.needs.every((e=>a.has(e)))))).filter((e=>void 0===e.ifNo||!0!==e.ifNo.some((e=>a.has(e)))))).filter((e=>0===e.wants.length||e.wants.filter((e=>a.has(e))).length>=e.minWant))}))}(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=e.filter((e=>a>=e.minWords)),e}))}(o,e);let i=function(e,t,n,a,r){let o=[];for(let n=0;n0&&(l.ptrs.forEach((e=>{e[0]=n;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),o.push(t)})),!0===r.matchOne))return[o[0]]}return o}(o,e,0,n,a);return i},bulkTagger:function(e,t,n){const{model:a,methods:r}=n,{getDoc:o,setTag:i,unTag:s}=r.one,l=r.two.looksPlural;return 0===e.length?e:(("undefined"!=typeof process&&process.env?process.env:self.env||{}).DEBUG_TAGS&&console.log(`\n\n โ†’ ${e.length} post-tagger:`),e.map((e=>{if(!e.tag&&!e.chunk&&!e.unTag)return;let r=e.reason||e.match,u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===function(e,t,n){let a=n.one.tagSet;if(!a.hasOwnProperty(t))return!0;let r=a[t].not||[];for(let t=0;te.frozen=!0))}void 0!==e.unTag&&s(u,e.unTag,n,e.safe,r),e.chunk&&u.forEach((t=>t.chunk=e.chunk))})))}},Gn={lib:{buildNet:function(e){let t=this.methods().one.buildNet(e,this.world());return t.isNet=!0,t}},api:function(e){e.prototype.sweep=function(e,t={}){const{world:n,docs:a}=this,{methods:r}=n;let o=r.one.bulkMatch(a,e,this.methods,t);!1!==t.tagger&&r.one.bulkTagger(o,a,this.world),o=o.map((e=>{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:Tn}};const xn=/ /,En=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;!0===e.frozen&&(a=!0);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("string"==typeof t)if(t=t.trim(),xn.test(t))!function(e,t,n,a){let r=t.split(xn);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;nOn(e,t,n,a)))},zn=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},Vn=/^ *(#|\/\/)/,Bn=function(e){let t=e.trim().split(/->/),n=[];t.forEach((e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map((e=>e.trim())).filter((e=>e)),t=t.map((e=>zn({id:e}))),t}return[zn({id:e})]}(e))})),n=n.filter((e=>e));let a=n[0];for(let e=1;e{let n=[],a=[e];for(;a.length>0;){let e=a.pop();n.push(e),e.children&&e.children.forEach((n=>{t&&t(e,n),a.push(n)}))}return n},Kn=e=>"[object Array]"===Object.prototype.toString.call(e),$n=e=>(e=e||"").trim(),Ln=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach((e=>{if(!e.trim()||Vn.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:Bn(e)})}));let a=function(e){let t={children:[]};return e.forEach(((n,a)=>{0===n.indent?t.children=t.children.concat(n.node):e[a-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e}));let n=zn({});return e.forEach((e=>{if((e=zn(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)})),n}(e):(Sn(t=e).forEach(zn),t);var t},Mn=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("โ†’ "));let a="";return Sn(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},Jn=function(e){let t=Sn(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},Wn={text:Mn,txt:Mn,array:Jn,flat:Jn},Un=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Mn(e,!0)),null):Wn.hasOwnProperty(t)?Wn[t](e):e},qn=e=>{Sn(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))}))},Rn=/\//;let Qn=class g{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=$n(e),!Rn.test(e)){let t=this.json.children.find((t=>t.id===e));return new g(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]));if(!a)return null;e=a}return e})(this.json,e)||zn({});return new g(t)}add(e,t={}){if(Kn(e))return e.forEach((e=>this.add($n(e),t))),this;e=$n(e);let n=zn({id:e,props:t});return this.json.children.push(n),new g(n)}remove(e){return e=$n(e),this.json.children=this.json.children.filter((t=>t.id!==e)),this}nodes(){return Sn(this.json).map((e=>(delete(e=Object.assign({},e)).children,e)))}cache(){return(e=>{let t=Sn(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 Sn(this.json)}fillDown(){var e;return e=this.json,Sn(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(){qn(this.json);let e=Sn(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 qn(this.json),Un(this.json,e)}debug(){return qn(this.json),Un(this.json,"debug"),this}};const Zn=function(e){let t=Ln(e);return new Qn(t)};Zn.prototype.plugin=function(e){e(this)};const Xn={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Hyphenated:"cyan",Adverb:"cyan"},_n=function(e){if(Xn.hasOwnProperty(e.id))return Xn[e.id];if(Xn.hasOwnProperty(e.is))return Xn[e.is];let t=e._cache.parents.find((e=>Xn[e]));return Xn[t]},Yn=function(e){return e?"string"==typeof e?[e]:e:[]},ea=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=Yn(e[t].children),e[t].not=Yn(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 ta={one:{setTag:On,unTag:function(e,t,n){t=t.trim().replace(/^#/,"");for(let a=0;a0)for(let e=0;e0&&(e=function(e){return Object.keys(e).forEach((t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0})),e}(e)),e=ea(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 Zn(t).cache().fillDown().out("array")}(Object.assign({},t,e)),a=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:_n(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}(n);return a},canBe:function(e,t,n){if(!n.hasOwnProperty(t))return!0;let a=n[t].not||[];for(let t=0;tr.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 na(e)?e.forEach((e=>a.one.unTag(n,e,i))):a.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){e=e.replace(/^#/,"");let t=this.model.one.tagSet,n=this.methods.one.canBe,a=[];this.document.forEach(((r,o)=>{r.forEach(((r,i)=>{n(r,e,t)||a.push([o,i,i+1])}))}));let r=this.update(a);return this.difference(r)}};var ra={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 oa=new Set(["Auxiliary","Possessive"]);var ia={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=e.sort(((e,n)=>{if(oa.has(e)||!t.hasOwnProperty(n))return 1;if(oa.has(n)||!t.hasOwnProperty(e))return-1;let a=t[e].children||[],r=a.length;return a=t[n].children||[],r-a.length})),e}(t,a)}))}))}},methods:ta,api:function(e){Object.assign(e.prototype,aa)},lib:ra};const sa=/([.!?\u203D\u2E18\u203C\u2047-\u2049\u3002]+\s)/g,la=/^[.!?\u203D\u2E18\u203C\u2047-\u2049\u3002]+\s$/,ua=/((?:\r?\n|\r)+)/,ca=/[a-z0-9\u00C0-\u00FF\u00a9\u00ae\u2000-\u3300\ud000-\udfff]/i,da=/\S/,ha={'"':'"',"๏ผ‚":"๏ผ‚","โ€œ":"โ€","โ€Ÿ":"โ€","โ€ž":"โ€","โน‚":"โ€","โ€š":"โ€™","ยซ":"ยป","โ€น":"โ€บ","โ€ต":"โ€ฒ","โ€ถ":"โ€ณ","โ€ท":"โ€ด","ใ€":"ใ€ž","ใ€Ÿ":"ใ€ž"},ga=RegExp("["+Object.keys(ha).join("")+"]","g"),ma=RegExp("["+Object.values(ha).join("")+"]","g"),pa=function(e){if(!e)return!1;let t=e.match(ma);return null!==t&&1===t.length},fa=/\(/g,ba=/\)/g,ya=/\S/,va=/^\s+/,wa=function(e,t){let n=e.split(/[-โ€“โ€”]/);if(n.length<=1)return!1;const{prefixes:a,suffixes:r}=t.one;return(1!==n[0].length||!/[a-z]/i.test(n[0]))&&(!a.hasOwnProperty(n[0])&&(n[1]=n[1].trim().replace(/[.?!]$/,""),!r.hasOwnProperty(n[1])&&(!0===/^([a-z\u00C0-\u00FF`"'/]+)[-โ€“โ€”]([a-z0-9\u00C0-\u00FF].*)/i.test(e)||!0===/^[('"]?([0-9]{1,4})[-โ€“โ€”]([a-z\u00C0-\u00FF`"'/-]+[)'"]?$)/i.test(e))))},ka=function(e){let t=[];const n=e.split(/[-โ€“โ€”]/);let a="-",r=e.match(/[-โ€“โ€”]/);r&&r[0]&&(a=r);for(let e=0;e(e[t]=!0,e)),{});const Ia=/\p{Letter}/u,Da=/[\p{Number}\p{Currency_Symbol}]/u,Ha=/^[a-z]\.([a-z]\.)+/i,Ta=/[sn]['โ€™]$/,Ga=/([A-Z]\.)+[A-Z]?,?$/,xa=/^[A-Z]\.,?$/,Ea=/[A-Z]{2,}('s|,)?$/,Fa=/([a-z]\.)+[a-z]\.?$/,Oa=function(e){return function(e){return!0===Ga.test(e)||!0===Fa.test(e)||!0===xa.test(e)||!0===Ea.test(e)}(e)&&(e=e.replace(/\./g,"")),e},za=function(e,t){const n=t.methods.one.killUnicode;let a=e.text||"";a=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.replace(/([0-9]),([0-9])/g,"$1$2")}(a),a=n(a,t),a=Oa(a),e.normal=a},Va=/[ .][A-Z]\.? *$/i,Ba=/(?:\u2026|\.{2,}) *$/,Sa=/\p{L}/u,Ka=/\. *$/,$a=/^[A-Z]\. $/;var La={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:function(e,t){if(e=e||"",!(e=String(e))||"string"!=typeof e||!1===ya.test(e))return[];let n=function(e){let t=[],n=e.split(ua);for(let e=0;e0&&(r.push(o),e[t]="")}return r}(a,t),a=function(e){let t=[];for(let n=0;n0?(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=function(e){for(let t=1;te)),n},splitWhitespace:(e,t)=>{let{str:n,pre:a,post:r}=function(e,t){let{prePunctuation:n,postPunctuation:a,emoticons:r}=t.one,o=e,i="",s="",l=Array.from(e);if(r.hasOwnProperty(e.trim()))return{str:e.trim(),pre:i,post:" "};let u=l.length;for(let e=0;e(s=e||"",""))),e=o,i=""),{str:e,pre:i,post:s}}(e,t);return{text:n,pre:a,post:r,tags:new Set}},fromString:function(e,t){const{methods:n,model:a}=t,{splitSentences:r,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=r(e=e||"",t).map((e=>{let n=o(e,a);return n=n.map((e=>i(e,a))),n.forEach((e=>{za(e,t)})),n})),e}}}};let Ma={},Ja={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","ยตg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach((e=>{e[0].forEach((t=>{Ma[t]=!0,Ja[t]="Abbreviation",void 0!==e[1]&&(Ja[t]=[Ja[t],e[1]])}))}));var Wa=["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","ex"].reduce(((e,t)=>(e[t]=!0,e)),{});let Ua={"!":"ยก","?":"ยฟษ",'"':'โ€œโ€"โโž',"'":"โ€˜โ€›โ›โœโ€™","-":"โ€”โ€“",a:"ยชร€รร‚รƒร„ร…ร รกรขรฃรครฅฤ€ฤฤ‚ฤƒฤ„ฤ…ววŽวžวŸว วกวบวปศ€ศศ‚ศƒศฆศงศบฮ†ฮ‘ฮ”ฮ›ฮฌฮฑฮปะะฐัฆังำำ‘ำ’ำ“ฦ›รฆ",b:"รŸรพฦ€ฦฦ‚ฦƒฦ„ฦ…ษƒฮ’ฮฒฯฯฆะ‘ะ’ะชะฌะฒัŠัŒัขัฃาŒา",c:"ยขยฉร‡รงฤ†ฤ‡ฤˆฤ‰ฤŠฤ‹ฤŒฤฦ†ฦ‡ฦˆศปศผอปอผฯฒฯนฯฝฯพะกัั”า€าาชาซ",d:"รฤŽฤฤฤ‘ฦ‰ฦŠศกฦ‹ฦŒ",e:"รˆร‰รŠร‹รจรฉรชรซฤ’ฤ“ฤ”ฤ•ฤ–ฤ—ฤ˜ฤ™ฤšฤ›ฦศ„ศ…ศ†ศ‡ศจศฉษ†ษ‡ฮˆฮ•ฮžฮฃฮญฮตฮพฯตะ€ะะ•ะตัั‘าผาฝาพาฟำ–ำ—แป…",f:"ฦ‘ฦ’ฯœฯำบำปา’า“ลฟ",g:"ฤœฤฤžฤŸฤ ฤกฤขฤฃฦ“วควฅวฆวงวดวต",h:"ฤคฤฅฤฆฤงฦ•วถศžศŸฮ‰ฮ—ะ‚ะŠะ‹ะะฝั’ั›าขาฃาคาฅาบาปำ‰ำŠ",I:"รŒรรŽร",i:"รฌรญรฎรฏฤจฤฉฤชฤซฤฌฤญฤฎฤฏฤฐฤฑฦ–ฦ—ศˆศ‰ศŠศ‹ฮŠฮฮชฮฏฮนฯŠะ†ะ‡ั–ั—iฬ‡",j:"ฤดฤตวฐศทษˆษ‰ฯณะˆั˜",k:"ฤถฤทฤธฦ˜ฦ™วจวฉฮšฮบะŒะ–ะšะถะบัœาšา›าœาาžาŸา าก",l:"ฤนฤบฤปฤผฤฝฤพฤฟล€ลล‚ฦšฦชว€ววศดศฝฮ™ำ€ำ",m:"ฮœฯบฯปะœะผำำŽ",n:"ร‘รฑลƒล„ล…ล†ล‡ลˆล‰ลŠล‹ฦฦžวธวนศ ศตฮฮ ฮฎฮทฯžะะ˜ะ™ะ›ะŸะธะนะปะฟัาŠา‹ำ…ำ†ำขำฃำคำฅฯ€",o:"ร’ร“ร”ร•ร–ร˜รฐรฒรณรดรตรถรธลŒลลŽลลล‘ฦŸฦ ฦกว‘ว’วชวซวฌวญวพวฟศŒศศŽศศชศซศฌศญศฎศฏศฐศฑฮŒฮ˜ฮŸฮธฮฟฯƒฯŒฯ•ฯ˜ฯ™ฯฌฯดะžะคะพัฒัณำฆำงำจำฉำชำซ",p:"ฦคฮกฯฯทฯธฯผะ ั€าŽารž",q:"ษŠษ‹",r:"ล”ล•ล–ล—ล˜ล™ฦฆศศ‘ศ’ศ“ษŒษะƒะ“ะฏะณัั“าา‘",s:"ลšล›ลœลลžลŸล ลกฦงฦจศ˜ศ™ศฟะ…ั•",t:"ลขลฃลคลฅลฆลงฦซฦฌฦญฦฎศšศ›ศถศพฮ“ฮคฯ„ฯฎะขั‚",u:"ร™รšร›รœรนรบรปรผลจลฉลชลซลฌลญลฎลฏลฐลฑลฒลณฦฏฦฐฦฑฦฒว“ว”ว•ว–ว—ว˜ว™วšว›วœศ”ศ•ศ–ศ—ษ„ฮฐฯ…ฯ‹ฯ",v:"ฮฝัดัตัถัท",w:"ลดลตฦœฯ‰ฯŽฯ–ฯขฯฃะจะฉัˆั‰ักัฟ",x:"ร—ฮงฯ‡ฯ—ฯฐะฅั…าฒาณำผำฝำพำฟ",y:"รรฝรฟลถลทลธฦณฦดศฒศณษŽษฮŽฮฅฮซฮณฯˆฯ’ฯ“ฯ”ะŽะฃัƒั‡ัžัฐัฑาฎาฏาฐาฑำฎำฏำฐำฑำฒำณ",z:"ลนลบลปลผลฝลพฦตฦถศคศฅษ€ฮ–"},qa={};Object.keys(Ua).forEach((function(e){Ua[e].split("").forEach((function(t){qa[t]=e}))}));const Ra=/\//,Qa=/[a-z]\.[a-z]/i,Za=/[0-9]/,Xa=function(e,t){let n=e.normal||e.text||e.machine;const a=t.model.one.aliases;if(a.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(a[n])),Ra.test(n)&&!Qa.test(n)&&!Za.test(n)){let t=n.split(Ra);t.length<=3&&t.forEach((t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))}))}return e},_a=/^\p{Letter}+-\p{Letter}+$/u,Ya=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"),_a.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)},er=function(e,t){let n=e.docs;for(let a=0;aer(e,Xa),machine:e=>er(e,Ya),normal:e=>er(e,za),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}(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}},sr={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=rr},lib:ir,compute:ar,hooks:["typeahead"]};d.extend(L),d.extend(bn),d.extend(Lt),d.extend(In),d.extend(ia),d.plugin(be),d.extend(nr),d.extend(Pe),d.plugin(p),d.extend(ze),d.extend(sr),d.extend(Te),d.extend(Gn);var lr={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",volcano:"volcanoes"},ur={Comparative:"trueยฆbett1f0;arth0ew0in0;er",Superlative:"trueยฆearlier",PresentTense:"trueยฆbests,sounds",Condition:"trueยฆlest,unless",PastTense:"trueยฆbegan,came,d4had,kneel3l2m0sa4we1;ea0sg2;nt;eap0i0;ed;id",Participle:"trueยฆ0:09;a06b01cZdXeat0fSgQhPoJprov0rHs7t6u4w1;ak0ithdra02o2r1;i02uY;k0v0;nd1pr04;ergoJoJ;ak0hHo3;e9h7lain,o6p5t4un3w1;o1um;rn;g,k;ol0reS;iQok0;ught,wn;ak0o1runk;ne,wn;en,wn;ewriNi1uJ;dd0s0;ut3ver1;do4se0t1;ak0h2;do2g1;roG;ne;ast0i7;iv0o1;ne,tt0;all0loBor1;bi3g2s1;ak0e0;iv0o9;dd0;ove,r1;a5eamt,iv0;hos0lu1;ng;e4i3lo2ui1;lt;wn;tt0;at0en,gun;r2w1;ak0ok0;is0;en",Gerund:"trueยฆaccord0be0doin,go0result0stain0;ing",Expression:"trueยฆa0Yb0Uc0Sd0Oe0Mfarew0Lg0FhZjeez,lWmVnToOpLsJtIuFvEw7y0;a5e3i1u0;ck,p;k04p0;ee,pee;a0p,s;!h;!a,h,y;a5h2o1t0;af,f;rd up,w;atsoever,e1o0;a,ops;e,w;hoo,t;ery w06oi0L;gh,h0;! 0h,m;huh,oh;here nPsk,ut tut;h0ic;eesh,hh,it,oo;ff,h1l0ow,sst;ease,s,z;ew,ooey;h1i,mg,o0uch,w,y;h,o,ps;! 0h;hTmy go0wT;d,sh;a7evertheless,o0;!pe;eh,mm;ah,eh,m1ol0;!s;ao,fao;aCeBi9o2u0;h,mph,rra0zzC;h,y;l1o0;r6y9;la,y0;! 0;c1moCsmok0;es;ow;!p hip hoor0;ay;ck,e,llo,y;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;ell;e0h,t cetera,ureka,ww,xcuse me;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;mon,o0;ngratulations,wabunga;a2oo1r0tw,ye;avo,r;!ya;h,m; 1h0ka,las,men,rgh,ye;!a,em,h,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ยฆdick0gre0ones,records;ens","Unit|Noun":"trueยฆcEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,t,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s",Value:"trueยฆa few",Imperative:"trueยฆbewa0come he0;re","Plural|Verb":"trueยฆleaves",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:4Q;a3Tb3Bc2Od2He2Df27g1Zh1Ti1Pj1Nk1Ll1Gm12n0Po0Mp0Cqu0Br02sTtHuCv9w3xiaomi,y1;amaha,m1Bou1w1B;gov,tu3C;a4e2iki1orld trade organizati33;leaRped0O;lls fargo,st1;fie2Hinghou2R;l1rner br3U;gree3Jl street journ2Im1E;an halOeriz2Xisa,o1;dafo2Yl1;kswagMvo;b4kip,n2ps,s1;a tod3Aps;es3Mi1;lev3Fted natio3C;er,s; mobi32aco beRd bOe9gi frida3Lh3im horto3Amz,o1witt3D;shi49y1;ota,s r 05;e 1in lizzy;b3carpen3Jdaily ma3Dguess w2holli0s1w2;mashing pumpki35uprem0;ho;ea1lack eyed pe3Xyr0Q;ch bo3Dtl0;l2n3Qs1xas instrumen1U;co,la m1F;efoni0Kus;a8cientology,e5ieme2Ymirnoff,np,o3pice gir6quare0Ata1ubaru;rbuc1to34;ks;ny,undgard1;en;a2x pisto1;ls;g1Wrs;few2Minsbur31lesfor03msu2E;adiohead,b8e4o1yana3C;man empi1Xyal 1;b1dutch she4;ank;a3d 1max,vl20;bu1c2Ahot chili peppe2Ylobst2N;ll;ders dige1Ll madrid;c,s;ant3Aizn2Q;a8bs,e5fiz2Ihilip4i3r1;emier 1udenti1D;leagTo2K;nk floyd,zza hut; morrBs;psi2tro1uge0E;br33chi0Tn33;!co;lant2Un1yp16; 2ason27da2P;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0QvZ;l,s;c,st1Otflix,w1; 1sweek;kids on the block,york0D;a,c;nd22s2t1;ional aca2Po,we0U;a,c02d0S;aDcdonalCe9i6lb,o3tv,y1;spa1;ce;b1Tnsanto,ody blu0t1;ley cr1or0T;ue;c2t1;as,subisO;helin,rosoft;dica2rcedes benz,talli1;ca;id,re;ds;cs milk,tt19z24;a3e1g,ittle caesa1P; ore09novo,x1;is,mark,us; 1bour party;pres0Dz boy;atv,fc,kk,lm,m1od1O;art;iffy lu0Roy divisi0Jpmorgan1sa;! cha09;bm,hop,k3n1tv;g,te1;l,rpol;ea;a5ewlett pack1Vi3o1sbc,yundai;me dep1n1P;ot;tac1zbollah;hi;lliburt08sbro;eneral 6hq,ithub,l5mb,o2reen d0Ou1;cci,ns n ros0;ldman sachs,o1;dye1g0H;ar;axo smith kli04encoW;electr0Nm1;oto0Z;a5bi,c barcelo4da,edex,i2leetwood m03o1rito l0G;rd,xcY;at,fa,nancial1restoZ; tim0;na;cebook,nnie mae;b0Asa,u3xxon1; m1m1;ob0J;!rosceptics;aiml0De5isney,o4u1;nkin donu2po0Zran dur1;an;ts;j,w jon0;a,f lepp12ll,peche mode,r spieg02stiny's chi1;ld;aJbc,hFiDloudflaCnn,o3r1;aigsli5eedence clearwater reviv1ossra09;al;c7inba6l4m1o0Est09;ca2p1;aq;st;dplSg1;ate;se;a c1o chanQ;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil a,na daily;r1y;on;d2pital o1rls jr;ne;bury,ill1;ac;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;cardi,idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser busDol,ppleAr6s4u3v2y1;er;is,on;di,todesk;hland o1sociated E;il;b3g2m1;co;os;ys; compu1be0;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ยฆits,my,our0thy;!s","Noun|Verb":"trueยฆ0:9W;1:AA;2:96;3:A3;4:9R;5:A2;6:9K;7:8N;8:7L;9:A8;A:93;B:8D;C:8X;a9Ob8Qc7Id6Re6Gf5Sg5Hh55i4Xj4Uk4Rl4Em40n3Vo3Sp2Squ2Rr21s0Jt02u00vVwGyFzD;ip,oD;ne,om;awn,e6Fie68;aOeMhJiHoErD;ap,e9Oink2;nd0rDuC;kDry,sh5Hth;!shop;ck,nDpe,re,sh;!d,g;e86iD;p,sD;k,p0t2;aDed,lco8W;r,th0;it,lk,rEsDt4ve,x;h,te;!ehou1ra9;aGen5FiFoD;iDmAte,w;ce,d;be,ew,sA;cuum,l4B;pDr7;da5gra6Elo6A;aReQhrPiOoMrGuEwiDy5Z;n,st;nDrn;e,n7O;aGeFiEoDu6;t,ub2;bu5ck4Jgg0m,p;at,k,nd;ck,de,in,nsDp,v7J;f0i8R;ll,ne,p,r4Yss,t94uD;ch,r;ck,de,e,le,me,p,re;e5Wow,u6;ar,e,ll,mp0st,xt;g,lDng2rg7Ps5x;k,ly;a0Sc0Ne0Kh0Fi0Dk0Cl0Am08n06o05pXquaBtKuFwD;ea88iD;ng,pe,t4;bGit,m,ppErD;fa3ge,pri1v2U;lDo6S;e6Py;!je8;aMeLiKoHrEuDy2;dy,ff,mb2;a85eEiDo5Pugg2;ke,ng;am,ss,t4;ckEop,p,rD;e,m;ing,pi2;ck,nk,t4;er,m,p;ck,ff,ge,in,ke,lEmp,nd,p2rDte,y;!e,t;k,l;aJeIiHlGoFrDur,y;ay,e56inDu3;g,k2;ns8Bt;a5Qit;ll,n,r87te;ed,ll;m,n,rk;b,uC;aDee1Tow;ke,p;a5Je4FiDo53;le,rk;eep,iDou4;ce,p,t;ateboa7Ii;de,gnDl2Vnk,p,ze;!al;aGeFiEoDuff2;ck,p,re,w;ft,p,v0;d,i3Ylt0;ck,de,pe,re,ve;aEed,nDrv1It;se,t2N;l,r4t;aGhedu2oBrD;aEeDibb2o3Z;en,w;pe,t4;le,n,r2M;cDfegua72il,mp2;k,rifi3;aZeHhy6LiGoEuD;b,in,le,n,s5X;a6ck,ll,oDpe,u5;f,t;de,ng,ot,p,s1W;aTcSdo,el,fQgPje8lOmMnLo17pJque6sFturn,vDwa6V;eDi27;al,r1;er74oFpe8tEuD;lt,me;!a55;l71rt;air,eaDly,o53;l,t;dezvo2Zt;aDedy;ke,rk;ea1i4G;a6Iist0r5N;act6Yer1Vo71uD;nd,se;a38o6F;ch,s6G;c1Dge,iEke,lly,nDp1Wt1W;ge,k,t;n,se;es6Biv0;a04e00hYiXlToNrEsy4uD;mp,n4rcha1sh;aKeIiHoDu4O;be,ceFdu3fi2grDje8mi1p,te6;amDe6W;!me;ed,ss;ce,de,nt;sDy;er6Cs;cti3i1;iHlFoEp,re,sDuCw0;e,i5Yt;l,p;iDl;ce,sh;nt,s5V;aEce,e32uD;g,mp,n7;ce,nDy;!t;ck,le,n17pe,tNvot;a1oD;ne,tograph;ak,eFnErDt;fu55mA;!c32;!l,r;ckJiInHrFsEtDu1y;ch,e9;s,te;k,tD;!y;!ic;nt,r,se;!a7;bje8ff0il,oErDutli3Qver4B;bAd0ie9;ze;a4ReFoDur1;d,tD;e,i3;ed,gle8tD;!work;aMeKiIoEuD;rd0;ck,d3Rld,nEp,uDve;nt,th;it5EkD;ey;lk,n4Brr5CsDx;s,ta2B;asuBn4UrDss;ge,it;il,nFp,rk3WsEtD;ch,t0;h,k,t0;da5n0oeuvB;aLeJiHoEuD;mp,st;aEbby,ck,g,oDve;k,t;d,n;cDe,ft,mAnIst;en1k;aDc0Pe4vK;ch,d,k,p,se;bFcEnd,p,t4uD;gh,n4;e,k;el,o2U;eEiDno4E;ck,d,ll,ss;el,y;aEo1OuD;i3mp;m,zz;mpJnEr46ssD;ue;c1Rdex,fluGha2k,se2HteDvoi3;nt,rD;e6fa3viD;ew;en3;a8le2A;aJeHiGoEuD;g,nt;l3Ano2Dok,pDr1u1;!e;ghli1Fke,nt,re,t;aDd7lp;d,t;ck,mGndFrEsh,tDu9;ch,e;bo3Xm,ne4Eve6;!le;!m0;aMear,ift,lKossJrFuD;arDe4Alp,n;antee,d;aFiEoDumb2;uCwth;ll,nd,p;de,sp;ip;aBoDue;ss,w;g,in,me,ng,s,te,ze;aZeWiRlNoJrFuD;ck,el,nDss,zz;c38d;aEoDy;st,wn;cDgme,me,nchi1;tuB;cFg,il,ld,rD;ce,e29mDwa31;!at;us;aFe0Vip,oDy;at,ck,od,wD;!er;g,ke,me,re,sh,vo1E;eGgFlEnDre,sh,t,x;an3i0Q;e,m,t0;ht,uB;ld;aEeDn3;d,l;r,tuB;ce,il,ll,rm,vo2W;cho,d7ffe8nMsKxFyeD;!baD;ll;cGerci1hFpDtra8;eriDo0W;en3me9;au6ibA;el,han7u1;caDtima5;pe;count0d,vy;a01eSiMoJrEuDye;b,el,mp,pli2X;aGeFiEoD;ne,p;ft,ll,nk,p,ve;am,ss;ft,g,in;cEd7ubt,wnloD;ad;k,u0E;ge6p,sFt4vD;e,iDor3;de;char7gui1h,liEpD;at4lay,u5;ke;al,bKcJfeIlGmaCposAsEtaD;il;e07iD;gn,re;ay,ega5iD;ght;at,ct;li04rea1;a5ut;b,ma7n3rDte;e,t;a0Eent0Dh06irc2l03oKrFuD;be,e,rDt;b,e,l,ve;aGeFoEuDy;sh;p,ss,wd;dAep;ck,ft,sh;at,de,in,lTmMnFordina5py,re,st,uDv0;gh,nDp2rt;s01t;ceHdu8fli8glomeIsFtDveN;a8rD;a6ol;e9tru8;ct;ntDrn;ra5;bHfoGmFpD;leDouCromi1;me9;aCe9it,u5;rt;at,iD;ne;lap1oD;r,ur;aEiDoud,ub;ck,p;im,w;aEeDip;at,ck,er;iGllen7nErD;ge,m,t;ge,nD;el;n,r;er,re;ke,ll,mp,noe,pGrXsFtEuDve;se,ti0I;alog,ch;h,t;!tuB;re;a03eZiXlToPrHuEyD;pa11;bb2ck2dgEff0mp,rDst,zz;den,n;et;anJeHiFoadEuD;i1sh;ca6;be,d7;ge;aDed;ch,k;ch,d;aFg,mb,nEoDrd0tt2x,ycott;k,st,t;d,e;rd,st;aFeCiDoYur;nk,tz;nd;me;as,d,ke,nd,opsy,tD;!ch,e;aFef,lt,nDt;d,efA;it;r,t;ck,il,lan3nIrFsEtt2;le;e,h;!gDk;aDe;in;!d,g,k;bu1c05dZge,iYlVnTppQrLsIttGucEwaD;rd;tiD;on;aDempt;ck;k,sD;i6ocia5;st;chFmD;!oD;ur;!iD;ve;eEroa4;ch;al;chDg0sw0;or;aEt0;er;rm;d,m,r;dreHvD;an3oD;ca5;te;ce;ss;cDe,he,t;eFoD;rd,u9;nt;nt,ss;se",Actor:"trueยฆ0:7B;1:7G;2:6A;3:7F;4:7O;5:7K;a6Nb62c4Ud4Be41f3Sg3Bh30i2Uj2Qkin2Pl2Km26n1Zo1Sp0Vqu0Tr0JsQtJuHvEw8yo6;gi,ut6;h,ub0;aAe9i8o7r6;estl0it0;m2rk0;fe,nn0t2Bza2H;atherm2ld0;ge earn0it0nder0rri1;eter7i6oyF;ll5Qp,s3Z;an,ina2U;n6s0;c6Uder03;aoisea23e9herapi5iktok0o8r6ut1yco6S;a6endseLo43;d0mp,nscri0Bvel0;ddl0u1G;a0Qchn7en6na4st0;ag0;i3Oo0D;aiXcUeRhPiMki0mu26oJpGquaFtBu7wee6;p0theart;lt2per7r6;f0ge6Iviv1;h6inten0Ist5Ivis1;ero,um2;a8ep7r6;ang0eam0;bro2Nc2Ofa2Nmo2Nsi20;ff0tesm2;tt0;ec7ir2Do6;kesp59u0M;ia5Jt3;l7me6An,rcere6ul;r,ss;di0oi5;n7s6;sy,t0;g0n0;am2ephe1Iow6;girl,m2r2Q;cretInior cit3Fr6;gea4v6;a4it1;hol4Xi7reen6ulpt1;wr2C;e01on;l1nt;aEe9o8u6;l0nn6;er up,ingE;g40le mod3Zof0;a4Zc8fug2Ppo32searQv6;ere4Uolution6;ary;e6luYru22;ptio3T;bbi,dic5Vpp0;arter6e2Z;back;aYeWhSiRlOoKr8sycho7u6;nk,p31;logi5;aGeDiBo6;d9fess1g7ph47s6;pe2Ktitu51;en6ramm0;it1y;igy,uc0;est4Nme mini0Unce6s3E;!ss;a7si6;de4;ch0;ctiti39nk0P;dca0Oet,li6pula50rnst42;c2Itic6;al scie6i2;nti5;a6umb0;nn0y6;er,ma4Lwright;lgrim,one0;a8iloso7otogra7ra6ysi1V;se;ph0;ntom,rmaci5;r6ssi1T;form0s4O;i3El,nel3Yr8st1tr6wn;i6on;arWot;ent4Wi42tn0;ccupa4ffBp8r7ut6;ca5l0B;ac4Iganiz0ig2Fph2;er3t6;i1Jomet6;ri5;ic0spring;aBe9ie4Xo7u6;n,rser3J;b6mad,vi4V;le2Vo4D;i6mesis,phew;ce,ghb1;nny,rr3t1X;aEeDiAo7u6yst1Y;m8si16;der3gul,m7n6th0;arDk;!my;ni7s6;f02s0Jt0;on,st0;chan1Qnt1rcha4;gi9k0n8rtyr,t6y1;e,riar6;ch;ag0iac;ci2stra3I;a7e2Aieutena4o6;rd,s0v0;bor0d7ndlo6ss,urea3Fwy0ym2;rd;!y;!s28;e8o7u6;ggl0;gg0urna2U;st0;c3Hdol,llu3Ummigra4n6; l9c1Qfa4habi42nov3s7ve6;nt1stig3;pe0Nt6;a1Fig3ru0M;aw;airFeBistoAo8u6ygie1K;man6sba2H;!ita8;bo,st6usekN;age,e3P;ri2;ir,r6;m7o6;!ine;it;dress0sty2C;aLeIhostGirl26ladi3oCrand7u6;e5ru;c9daug0Jfa8m7pa6s2Y;!re4;a,o6;th0;hi1B;al7d6lf0;!de3A;ie,k6te26;eep0;!wr6;it0;isha,n6;i6tl04;us;mbl0rden0;aDella,iAo7r6;eela2Nie1P;e,re6ster pare4;be1Hm2r6st0;unn0;an2ZgZlmm17nanci0r6tt0;e6st la2H; marsh2OfigXm2;rm0th0;conoEdDlectriCm8n7x6;amin0cellency,i2A;emy,trepreneur,vironmenta1J;c8p6;er1loye6;e,r;ee;ci2;it1;mi5;aKeBi8ork,ri7u6we02;de,tche2H;ft0v0;ct3eti7plom2Hre6va;ct1;ci2ti2;aDcor3fencCi0InAput9s7tectLvel6;op0;ce1Ge6ign0;rt0;ee,y;iz6;en;em2;c1Ml0;d8nc0redev7ug6;ht0;il;!dy;a06e04fo,hXitizenWlToBr9u6;r3stomer6;! representat6;ive;e3it6;ic;lJmGnAord9rpor1Nu7w6;boy,ork0;n6ri0;ciTte1Q;in3;fidantAgressSs9t6;e0Kr6;ibut1o6;ll0;tab13ul1O;!e;edi2m6pos0rade;a0EeQissi6;on0;leag8on7um6;ni5;el;ue;e6own;an0r6;ic,k;!s;a9e7i6um;ld;erle6f;ad0;ir7nce6plFract0;ll1;m2wI;lebri6o;ty;dBptAr6shi0;e7pe6;nt0;r,t6;ak0;ain;et;aMeLiJlogg0oErBu6;dd0Fild0rgl9siness6;m2p7w6;om2;ers05;ar;i7o6;!k0th0;cklay0de,gadi0;hemi2oge8y6;!frie6;nd;ym2;an;cyc6sR;li5;atbox0ings;by,nk0r6;b0on7te6;nd0;!e07;c04dWge4nQpLrHsFtAu7yatull6;ah;nt7t6;h1oG;!ie;h8t6;e6orney;nda4;ie5le6;te;sis00tron6;aut,om0;chbis8isto7tis6;an,t;crU;hop;ost9p6;ari6rentiS;ti6;on;le;a9cest1im3nou8y6;bo6;dy;nc0;ly5rc6;hi5;mi8v6;entur0is1;er;ni7r6;al;str3;at1;or;counBquaintanArob9t6;ivi5or,re6;ss;st;at;ce;ta4;nt","Adj|Noun":"trueยฆ0:16;a1Db17c0Ud0Re0Mf0Dg0Ah08i06ju05l02mWnUoSpNrIsBt7u4v1watershed;a1ision0Z;gabo4nilla,ria1;b0Vnt;ndergr1pstairs;adua14ou1;nd;a3e1oken,ri0;en,r1;min0rori13;boo,n;age,e5ilv0Flack,o3quat,ta2u1well;bordina0Xper5;b0Lndard;ciali0Yl1vereign;e,ve16;cret,n1ri0;ior;a4e2ou1ubbiL;nd,tiY;ar,bBl0Wnt0p1side11;resent0Vublican;ci0Qsh;a4eriodic0last0Zotenti0r1;emi2incip0o1;!fession0;er,um;rall4st,tie0U;ff1pposi0Hv0;ens0Oi0C;agg01ov1uts;el;a5e3iniatJo1;bi01der07r1;al,t0;di1tr0N;an,um;le,riG;attOi2u1;sh;ber0ght,qC;stice,veniT;de0mpressioYn1;cumbe0Edividu0no0Dsta0Eterim;alf,o1umdrum;bby,melF;en2old,ra1;ph0Bve;er0ious;a7e5i4l3u1;git03t1;ure;uid;ne;llow,m1;aFiL;ir,t,vo1;riOuriO;l3p00x1;c1ecutUpeV;ess;d1iK;er;ar2e1;mographUrivO;k,l2;hiGlassSo2rude,unn1;ing;m5n1operK;creCstitueOte2vertab1;le;mpor1nt;ary;ic,m2p1;anion,lex;er2u1;ni8;ci0;al;e5lank,o4r1;i2u1;te;ef;ttom,urgeois;st;cadem9d6l2ntarct9r1;ab,ct8;e3tern1;at1;ive;rt;oles1ult;ce1;nt;ic","Adj|Past":"trueยฆ0:4Q;1:4C;2:4H;3:4E;a44b3Tc36d2Je29f20g1Wh1Si1Jj1Gkno1Fl1Am15n12o0Xp0Mqu0Kr08sLtEuAv9w4yellow0;a7ea6o4rinkl0;r4u3Y;n,ri0;k31th3;rp0sh0tZ;ari0e1O;n5p4s0;d1li1Rset;cov3derstood,i4;fi0t0;a8e3Rhr7i6ouTr4urn0wi4C;a4imm0ou2G;ck0in0pp0;ed,r0;eat2Qi37;m0nn0r4;get0ni2T;aOcKeIhGimFm0Hoak0pDt7u4;bsid3Ogge44s4;pe4ta2Y;ct0nd0;a8e7i2Eok0r5u4;ff0mp0nn0;ength2Hip4;ed,p0;am0reotyp0;in0t0;eci4ik0oH;al3Efi0;pRul1;a4ock0ut;d0r0;a4c1Jle2t31;l0s3Ut0;a6or5r4;at4e25;ch0;r0tt3;t4ut0;is2Mur1;aEe5o4;tt0;cAdJf2Bg9je2l8m0Knew0p7qu6s4;eTpe2t4;or0ri2;e3Dir0;e1lac0;at0e2Q;i0Rul1;eiv0o4ycl0;mme2Lrd0v3;in0lli0ti2A;a4ot0;li28;aCer30iBlAo9r5u4;mp0zzl0;e6i2Oo4;ce2Fd4lo1Anou30pos0te2v0;uc0;fe1CocCp0Iss0;i2Kli1L;ann0e2CuS;ck0erc0ss0;ck0i2Hr4st0;allLk0;bse7c6pp13rgan2Dver4;lo4whelm0;ok0;cupi0;rv0;aJe5o4;t0uri1A;ed0gle2;a6e5ix0o4ut0ys1N;di1Nt15u26;as0Clt0;n4rk0;ag0ufact0A;e6i5o4;ad0ck0st,v0;cens0m04st0;ft,v4;el0;tt0wn;a5o15u4;dg0s1B;gg0;llumSmpAn4sol1;br0cre1Ldebt0f8jZspir0t5v4;it0olv0;e4ox0Y;gr1n4re23;d0si15;e2l1o1Wuri1;li0o01r4;ov0;a6e1o4um03;ok0r4;ri0Z;mm3rm0;i6r5u4;a1Bid0;a0Ui0Rown;ft0;aAe9i8l6oc0Ir4;a4i0oz0Y;ctHg19m0;avo0Ju4;st3;ni08tt0x0;ar0;d0il0sc4;in1;dCl1mBn9quipp0s8x4;agger1c6p4te0T;a0Se4os0;ct0rie1D;it0;cap0tabliZ;cha0XgFha1As4;ur0;a0Zbarra0N;i0Buc1;aMeDi5r4;a01i0;gni08miniSre2s4;a9c6grun0Ft4;o4re0Hu17;rt0;iplWou4;nt0r4;ag0;bl0;cBdRf9l8p7ra6t5v4;elop0ot0;ail0ermQ;ng0;re07;ay0ight0;e4in0o0M;rr0;ay0enTor1;m5t0z4;ed,zl0;ag0p4;en0;aPeLhIlHo9r6u4;lt4r0stom03;iv1;a5owd0u4;sh0;ck0mp0;d0loAm7n4ok0v3;centr1f5s4troC;id3olid1;us0;b5pl4;ic1;in0;r0ur0;assi9os0utt3;ar5i4;ll0;g0m0;lebr1n6r4;ti4;fi0;tralJ;g0lcul1;aDewild3iCl9o7r5urn4;ed,t;ok4uis0;en;il0r0t4und;tl0;e5i4;nd0;ss0;as0;ffl0k0laMs0tt3;bPcNdKfIg0lFmaz0nDppBrm0ss9u5wa4;rd0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;a5leg0t3;er0;rm0;fe2;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;and5so4;rb0;on0;ed",Singular:"trueยฆ0:5J;1:5H;2:4W;3:4S;4:52;5:57;6:5L;7:56;8:5B;a52b4Lc3Nd35e2Xf2Og2Jh28in24j23k22l1Um1Ln1Ho1Bp0Rqu0Qr0FsZtMuHvCw9x r58yo yo;a9ha3Po3Q;f3i4Rt0Gy9;! arou39;arCeAideo ga2Qo9;cabu4Jl5C;gOr9t;di4Zt1Y;iety,ni4P;nBp30rAs 9;do43s5E;bani1in0;coordinat3Ader9;estima1to24we41; rex,aKeJhHiFoErBuAv9;! show;m2On2rntLto1D;agedy,ib9o4E;e,u9;n0ta46;ni1p2rq3L;c,er,m9;etF;ing9ree26;!y;am,mp3F;ct2le6x return;aNcMeKhor4QiJkHoGpin off,tDuBy9;ll9ner7st4T;ab2X;b9i1n28per bowl,rro1X;st3Ltot0;atAipe2Go1Lrate7udent9;! lo0I;i39u1;ft ser4Lmeo1I;elet5i9;ll,r3V;b38gn2Tte;ab2Jc9min3B;t,urity gua2N;e6ho2Y;bbatic0la3Jndwi0Qpi5;av5eDhetor2iAo9;de6om,w;tAv9;erb2C;e,u0;bDcBf9publ2r10spi1;er9orm3;e6r0;i9ord label;p2Ht0;a1u46;estion mark,ot2F;aPeMhoLiIlGoErAu9yram1F;ddi3HpErpo1Js3J;eBo9;bl3Zs9;pe3Jta1;dic1Rmi1Fp1Qroga8ss relea1F;p9rt0;py;a9ebisci1;q2Dte;cn2eAg9;!gy;!r;ne call,tocoK;anut,dAr9t0yo1;cen3Jsp3K;al,est0;nop4rAt9;e,hog5;adi11i2V;atme0bj3FcBpia1rde0thers,utspok5ve9wn3;n,r9;ti0Pview;cuAe9;an;pi3;arBitAot9umb3;a2Fhi2R;e,ra1;cot2ra8;aFeCiAo9ur0;nopo4p18rni2Nsq1Rti36uld;c,li11n0As9tt5;chief,si34;dAnu,t9;al,i3;al,ic;gna1mm0nd15rsupi0te9yf4;ri0;aDegCiBu9;ddi1n9;ch;me,p09; Be0M;bor14y9; 9er;up;eyno1itt5;el4ourn0;cBdices,itia8ni25sAtel0Lvert9;eb1J;e28titu1;en8i2T;aIeEighDoAu9;man right,s22;me9rmoFsp1Ftb0K;! r9;un; scho0YriY;a9i1N;d9v5; start,pho9;ne;ndful,sh brown,v5ze;aBelat0Ilaci3r9ul4yp1S;an9enadi3id;a1Cd slam,ny;df4r9;l2ni1I;aGeti1HiFlu1oCrAun9;er0;ee market,i9onti3;ga1;l4ur9;so9;me;ePref4;br2mi4;conoFffi7gg,lecto0Rmbas1EnCpidem2s1Zth2venBxAyel9;id;ampZempl0Nte6;i19t;er7terp9;ri9;se;my;eLiEoBr9ump tru0U;agonf4i9;er,ve thru;cAg7i4or,ssi3wn9;side;to0EumenE;aEgniDnn3sAvide9;nd;conte6incen8p9tri11;osi9;ti0C;ta0H;le0X;athBcAf9ni0terre6;ault 05err0;al,im0;!b9;ed;aWeThMiLlJoDr9;edit caBuc9;ib9;le;rd;efficDke,lCmmuniqLnsApi3rr0t0Xus9yo1;in;erv9uI;ato02;ic,lQ;ie6;er7i9oth;e6n2;ty,vil wM;aDeqCick5ocoBr9;istmas car9ysanthemum;ol;la1;ue;ndeli3racteri9;st2;iAllEr9;e0tifica1;liZ;hi3nFpErCt9ucus;erpi9hedr0;ll9;ar;!bohyd9ri3;ra1;it0;aAe,nib0t9;on;l,ry;aMeLiop2leJoHrDu9;nny,r9tterf4;g9i0;la9;ry;eakAi9;ck;fa9throB;st;dy,ro9wl;ugh;mi9;sh;an,l4;nkiArri3;er;ng;cSdMlInFppeti1rDsBtt2utop9;sy;ic;ce6pe9;ct;r9sen0;ay;ecAoma4tiA;ly;do1;i5l9;er7y;gy;en; hominDjAvan9;tage;ec8;ti9;ve;em;cCeAqui9;tt0;ta1;te;iAru0;al;de6;nt","Person|Noun":"trueยฆa0Eb07c03dWeUfQgOhLjHkiGlFmCnBolive,p7r4s3trini06v1wa0;ng,rd,tts;an,enus,iol0;a,et;ky,onPumm09;ay,e1o0uby;bin,d,se;ed,x;a2e1o0;l,tt04;aLnJ;dYge,tR;at,orm;a0eloW;t0x,ya;!s;a9eo,iH;ng,tP;a2e1o0;lGy;an,w3;de,smi4y;a0erb,iOolBuntR;ll,z0;el;ail,e0iLuy;ne;a1ern,i0lo;elds,nn;ith,n0;ny;a0dEmir,ula,ve;rl;a4e3i1j,ol0;ly;ck,x0;ie;an,ja;i0wn;sy;am,h0liff,rystal;a0in,ristian;mbers,ri0;ty;a4e3i2o,r0ud;an0ook;dy;ll;nedict,rg;k0nks;er;l0rt;fredo,ma","Actor|Verb":"trueยฆaCb8c5doctor,engineAfool,g3host,judge,m2nerd,p1recruit,scout,ushAvolunteAwi0;mp,tneA;arent,ilot;an,ime;eek,oof,r0uide;adu8oom;ha1o0;ach,nscript,ok;mpion,uffeur;o2u0;lly,tch0;er;ss;ddi1ffili0rchite1;ate;ct",MaleName:"trueยฆ0:H6;1:FZ;2:DS;3:GQ;4:CZ;5:FV;6:GM;7:FP;8:GW;9:ET;A:C2;B:GD;aF8bE1cCQdBMeASfA1g8Yh88i7Uj6Sk6Bl5Mm48n3So3Ip33qu31r26s1Et0Ru0Ov0CwTxSyHzC;aCor0;cChC1karia,nAT;!hDkC;!aF6;!ar7CeF5;aJevgenBSoEuC;en,rFVsCu3FvEF;if,uf;nDs6OusC;ouf,s6N;aCg;s,tC;an,h0;hli,nCrosE1ss09;is,nC;!iBU;avi2ho5;aPeNiDoCyaEL;jcieBJlfgang,odrFutR;lFnC;f8TsC;lCt1;ow;bGey,frEhe4QlC;aE5iCy;am,e,s;ed8iC;d,ed;eAur;i,ndeD2rn2sC;!l9t1;lDyC;l1ne;lDtC;!er;aCHy;aKernDAiFladDoC;jteB0lodymyr;!iC;mFQsDB;cFha0ktBZnceDrgCOvC;a0ek;!nC;t,zo;!e4StBV;lCnC7sily;!entC;in9J;ghE2lCm70nax,ri,sm0;riCyss87;ch,k;aWeRhNiLoGrEuDyC;!l2roEDs1;n6r6E;avD0eCist0oy,um0;ntCRvBKy;bFdAWmCny;!asDmCoharu;aFFie,y;!z;iA6y;mCt4;!my,othy;adEeoDia0SomC;!as;!dor91;!de4;dFrC;enBKrC;anBJeCy;ll,nBI;!dy;dgh,ha,iCnn2req,tsu5V;cDAka;aYcotWeThPiMlobod0oKpenc2tEurDvenAEyCzym1;ed,lvest2;aj,e9V;anFeDuC;!aA;fan17phEQvCwaA;e77ie;!islaCl9;v,w;lom1rBuC;leymaDHta;dDgmu9UlCm1yabonga;as,v8B;!dhart8Yn9;aEeClo75;lCrm0;d1t1;h9Jne,qu1Jun,wn,yne;aDbastiEDk2Yl5Mpp,rgCth,ymoCU;e1Dio;m4n;!tC;!ie,y;eDPlFmEnCq67tosCMul;dCj2UtiA5;e01ro;!iATkeB6mC4u5;!ik,vato9K;aZeUheC8iRoGuDyC;an,ou;b99dDf4peAssC;!elEG;ol00y;an,bLc7MdJel,geIh0lHmGnEry,sDyC;!ce;ar7Ocoe,s;!aCnBU;ld,n;an,eo;a7Ef;l7Jr;e3Eg2n9olfo,riC;go;bBNeDH;cCl9;ar87c86h54kCo;!ey,ie,y;cFeA3gDid,ubByCza;an8Ln06;g85iC;naC6s;ep;ch8Kfa5hHin2je8HlGmFndEoHpha5sDul,wi36yC;an,mo8O;h9Im4;alDSol3O;iD0on;f,ph;ul;e9CinC;cy,t1;aOeLhilJiFrCyoG;aDeC;m,st1;ka85v2O;eDoC;tr;r8GtC;er,ro;!ipCl6H;!p6U;dCLrcy,tC;ar,e9JrC;!o7;b9Udra8So9UscAHtri62ulCv8I;!ie,o7;ctav6Ji2lImHndrBRrGsDtCum6wB;is,to;aDc6k6m0vCwaBE;al79;ma;i,vR;ar,er;aDeksandr,ivC;er,i2;f,v;aNeLguyBiFoCu3O;aDel,j4l0ma0rC;beAm0;h,m;cFels,g5i9EkDlC;es,s;!au,h96l78olaC;!i,y;hCkCol76;ol75;al,d,il,ls1vC;ilAF;hom,tC;e,hC;anCy;!a5i5;aYeViLoGuDyC;l4Nr1;hamDr84staC;fa,p6E;ed,mG;di10e,hamEis4JntDritz,sCussa;es,he;e,y;ad,ed,mC;ad,ed;cGgu5hai,kFlEnDtchC;!e8O;a9Pik;house,o7t1;ae73eC3ha8Iolaj;ah,hDkC;!ey,y;aDeC;al,l;el,l;hDlv3rC;le,ri8Ev4T;di,met;ay0c00gn4hWjd,ks2NlTmadZnSrKsXtDuric7VxC;imilBKwe8B;eHhEi69tCus,y69;!eo,hCia7;ew,i67;eDiC;as,eu,s;us,w;j,o;cHiGkFlEqu8Qsha83tCv3;iCy;!m,n;in,on;el,o7us;a6Yo7us;!elCin,o7us;!l8o;frAEi5Zny,u5;achDcoCik;lm;ai,y;amDdi,e5VmC;oud;adCm6W;ou;aulCi9P;ay;aWeOiMloyd,oJuDyC;le,nd1;cFdEiDkCth2uk;a7e;gi,s,z;ov7Cv6Hw6H;!as,iC;a6Een;g0nn52renDuCvA4we7D;!iS;!zo;am,n4oC;n5r;a9Yevi,la5KnHoFst2thaEvC;eCi;nte;bo;nCpo8V;!a82el,id;!nC;aAy;mEnd1rDsz73urenCwr6K;ce,t;ry,s;ar,beAont;aOeIhalHiFla4onr63rDu5SylC;e,s;istCzysztof;i0oph2;er0ngsl9p,rC;ilA9k,ollos;ed,id;en0iGnDrmCv4Z;it;!dDnCt1;e2Ny;ri4Z;r,th;cp2j4mEna8BrDsp6them,uC;ri;im,l;al,il;a03eXiVoFuC;an,lCst3;en,iC;an,en,o,us;aQeOhKkub4AnIrGsDzC;ef;eDhCi9Wue;!ua;!f,ph;dCge;i,on;!aCny;h,s,th6J;anDnC;!ath6Hie,n72;!nC;!es;!l,sCy;ph;o,qu3;an,mC;!i,m6V;d,ffFns,rCs4;a7JemDmai7QoCry;me,ni1H;i9Dy;!e73rC;ey,y;cKdBkImHrEsDvi2yC;dBs1;on,p2;ed,oDrCv67;e6Qod;d,s61;al,es5Wis1;a,e,oCub;b,v;ob,qu13;aTbNchiMgLke53lija,nuKonut,rIsEtCv0;ai,suC;ki;aDha0i8XmaCsac;el,il;ac,iaC;h,s;a,vinCw3;!g;k,nngu6X;nac1Xor;ka;ai,rahC;im;aReLoIuCyd6;beAgGmFsC;eyDsC;a3e3;in,n;ber5W;h,o;m2raDsse3wC;a5Pie;c49t1K;a0Qct3XiGnDrC;beAman08;dr7VrC;iCy2N;!k,q1R;n0Tt3S;bKlJmza,nIo,rEsDyC;a5KdB;an,s0;lEo67r2IuCv9;hi5Hki,tC;a,o;an,ey;k,s;!im;ib;a08e00iUlenToQrMuCyorgy;iHnFsC;!taC;f,vC;!e,o;n6tC;er,h2;do,lC;herDlC;auCerQ;me;aEegCov2;!g,orC;!io,y;dy,h7C;dfr9nza3XrDttfC;ri6C;an,d47;!n;acoGlEno,oCuseppe;rgiCvan6O;!o,s;be6Ies,lC;es;mo;oFrC;aDha4HrC;it,y;ld,rd8;ffErgC;!e7iCy;!os;!r9;bElBrCv3;eCla1Nr4Hth,y;th;e,rC;e3YielC;!i4;aXeSiQlOorrest,rCyod2E;aHedFiC;edDtC;s,z;ri18;!d42eri11riC;ck,k;nCs2;cEkC;ie,lC;in,yn;esLisC;!co,z3M;etch2oC;ri0yd;d5lConn;ip;deriFliEng,rC;dinaCg4nan0B;nd8;pe,x;co;bCdi,hd;iEriC;ce,zC;io;an,en,o;benez2dZfrYit0lTmMnJo3rFsteb0th0ugenEvCymBzra;an,eCge4D;ns,re3K;!e;gi,iDnCrol,v3w3;est8ie,st;cCk;!h,k;o0DriCzo;co,qC;ue;aHerGiDmC;aGe3A;lCrh0;!iC;a10o,s;s1y;nu5;beAd1iEliDm2t1viCwood;n,s;ot28s;!as,j5Hot,sC;ha;a3en;!dGg6mFoDua2QwC;a2Pin;arC;do;oZuZ;ie;a04eTiOmitrNoFrag0uEwDylC;an,l0;ay3Hig4D;a3Gdl9nc0st3;minFnDri0ugCvydGy2S;!lF;!a36nCov0;e1Eie,y;go,iDykC;as;cCk;!k;i,y;armuFetDll1mitri7neCon,rk;sh;er,m6riC;ch;id;andLepak,j0lbeAmetri4nIon,rGsEvDwCxt2;ay30ey;en,in;hawn,moC;nd;ek,riC;ck;is,nC;is,y;rt;re;an,le,mKnIrEvC;e,iC;!d;en,iEne0PrCyl;eCin,yl;l45n;n,o,us;!iCny;el,lo;iCon;an,en,on;a0Fe0Ch03iar0lRoJrFuDyrC;il,us;rtC;!is;aEistC;iaCob12;no;ig;dy,lInErC;ey,neliCy;s,us;nEor,rDstaC;nt3;ad;or;by,e,in,l3t1;aHeEiCyde;fCnt,ve;fo0Xt1;menDt4;us;s,t;rFuDyC;!t1;dCs;e,io;enC;ce;aHeGrisC;!toC;phCs;!eC;!r;st2t;d,rCs;b5leC;s,y;cDdrCs6;ic;il;lHmFrC;ey,lDroCy;ll;!o7t1;er1iC;lo;!eb,v3;a09eZiVjorn,laUoSrEuCyr1;ddy,rtKst2;er;aKeFiEuDyC;an,ce,on;ce,no;an,ce;nDtC;!t;dDtC;!on;an,on;dFnC;dDisC;lav;en,on;!foOl9y;bby,gd0rCyd;is;i0Lke;bElDshC;al;al,lL;ek;nIrCshoi;at,nEtC;!raC;m,nd;aDhaCie;rd;rd8;!iDjam3nCs1;ie,y;to;kaMlazs,nHrC;n9rDtC;!holomew;eCy;tt;ey;dCeD;ar,iC;le;ar1Nb1Dd16fon15gust3hm12i0Zja0Yl0Bm07nTputsiSrGsaFugustEveDyCziz;a0kh0;ry;o,us;hi;aMchiKiJjun,mHnEon,tCy0;em,hCie,ur8;ur;aDoC;!ld;ud,v;aCin;an,nd8;!el,ki;baCe;ld;ta;aq;aMdHgel8tCw6;hoFoC;iDnC;!i8y;ne;ny;er7rCy;eDzC;ej;!as,i,j,s,w;!s;s,tolC;iCy;!y;ar,iEmaCos;nu5r;el;ne,r,t;aVbSdBeJfHiGl01onFphonsEt1vC;aPin;on;e,o;so,zo;!sR;!onZrC;ed;c,jaHksFssaHxC;!andC;er,rC;e,os,u;andCei;ar,er,r;ndC;ro;en;eDrecC;ht;rt8;dd3in,n,sC;taC;ir;ni;dDm6;ar;an,en;ad,eC;d,t;in;so;aGi,olErDvC;ik;ian8;f8ph;!o;mCn;!a;dGeFraDuC;!bakr,lfazl;hCm;am;!l;allFel,oulaye,ulC;!lDrahm0;an;ah,o;ah;av,on",Uncountable:"trueยฆ0:2E;1:2L;2:33;a2Ub2Lc29d22e1Rf1Ng1Eh16i11j0Yk0Wl0Rm0Hn0Do0Cp03rZsLt9uran2Jv7w3you gu0E;a5his17i4oo3;d,l;ldlife,ne;rm8t1;apor,ernacul29i3;neg28ol1Otae;eDhBiAo8r4un3yranny;a,gst1B;aff2Oea1Ko4ue nor3;th;o08u3;bleshoot2Ose1Tt;night,othpas1Vwn3;foEsfoE;me off,n;er3und1;e,mod2S;a,nnis;aDcCeBhAi9ki8o7p6t4u3weepstak0;g1Unshi2Hshi;ati08e3;am,el;ace2Keci0;ap,cc1meth2C;n,ttl0;lk;eep,ingl0or1C;lf,na1Gri0;ene1Kisso1C;d0Wfe2l4nd,t3;i0Iurn;m1Ut;abi0e4ic3;e,ke15;c3i01laxa11search;ogni10rea10;a9e8hys7luto,o5re3ut2;amble,mis0s3ten20;en1Zs0L;l3rk;i28l0EyH; 16i28;a24tr0F;nt3ti0M;i0s;bstetri24vercrowd1Qxyg09;a5e4owada3utella;ys;ptu1Ows;il poliZtional securi2;aAe8o5u3;m3s1H;ps;n3o1K;ey,o3;gamy;a3cha0Elancholy,rchandi1Htallurgy;sl0t;chine3g1Aj1Hrs,thema1Q; learn1Cry;aught1e6i5ogi4u3;ck,g12;c,s1M;ce,ghtn18nguis1LteratWv1;ath1isVss;ara0EindergartPn3;icke0Aowled0Y;e3upit1;a3llyfiGwel0G;ns;ce,gnor6mp5n3;forma00ter3;net,sta07;atiSort3rov;an18;a7e6isto09o3ung1;ckey,mework,ne4o3rseradi8spitali2use arrest;ky;s2y;adquarteXre;ir,libut,ppiHs3;hi3te;sh;ene8l6o5r3um,ymnas11;a3eZ;niUss;lf,re;ut3yce0F;en; 3ti0W;edit0Hpo3;ol;aNicFlour,o4urnit3;ure;od,rgive3uri1wl;ness;arCcono0LducaBlectr9n7quip8thi0Pvery6x3;ist4per3;ti0B;en0J;body,o08th07;joy3tertain3;ment;ici2o3;ni0H;tiS;nings,th;emi02i6o4raugh3ynas2;ts;pe,wnstai3;rs;abet0ce,s3;honZrepu3;te;aDelciChAivi07l8o3urrency;al,ld w6mmenta5n3ral,ttIuscoB;fusiHt 3;ed;ry;ar;assi01oth0;es;aos,e3;eMwK;us;d,rO;a8i6lood,owlHread5u3;ntGtt1;er;!th;lliarJs3;on;g3ss;ga3;ge;cKdviJeroGirFmBn6ppeal court,r4spi3thleL;rin;ithmet3sen3;ic;i6y3;o4th3;ing;ne;se;en5n3;es2;ty;ds;craft;bi8d3nau7;yna3;mi6;ce;id,ous3;ti3;cs",Infinitive:"trueยฆ0:9G;1:9T;2:AD;3:90;4:9Z;5:84;6:AH;7:A9;8:92;9:A0;A:AG;B:AI;C:9V;D:8R;E:8O;F:97;G:6H;H:7D;a94b8Hc7Jd68e4Zf4Mg4Gh4Ai3Qj3Nk3Kl3Bm34nou48o2Vp2Equ2Dr1Es0CtZuTvRwI;aOeNiLors5rI;eJiI;ng,te;ak,st3;d5e8TthI;draw,er;a2d,ep;i2ke,nIrn;d1t;aIie;liADniAry;nJpI;ho8Llift;cov1dJear8Hfound8DlIplug,rav82tie,ve94;eaAo3X;erIo;cut,go,staAFvalA3w2G;aSeQhNoMrIu73;aIe72;ffi3Smp3nsI;aBfo7CpI;i8oD;pp3ugh5;aJiJrIwaD;eat5i2;nk;aImA0;ch,se;ck3ilor,keImp1r8L;! paD;a0Ic0He0Fh0Bi0Al08mugg3n07o05p02qu01tUuLwI;aJeeIim;p,t5;ll7Wy;bNccMffLggeCmmKppJrI;mouFpa6Zvi2;o0re6Y;ari0on;er,i4;e7Numb;li9KmJsiIveD;de,st;er9it;aMe8MiKrI;ang3eIi2;ng27w;fIng;f5le;b,gg1rI;t3ve;a4AiA;a4UeJit,l7DoI;il,of;ak,nd;lIot7Kw;icEve;atGeak,i0O;aIi6;m,y;ft,ng,t;aKi6CoJriIun;nk,v6Q;ot,rt5;ke,rp5tt1;eIll,nd,que8Gv1w;!k,m;aven9ul8W;dd5tis1Iy;a0FeKiJoI;am,t,ut;d,p5;a0Ab08c06d05f01group,hea00iZjoi4lXmWnVpTq3MsOtMup,vI;amp,eJiIo3B;sEve;l,rI;e,t;i8rI;ie2ofE;eLiKpo8PtIurfa4;o24rI;aHiBuctu8;de,gn,st;mb3nt;el,hra0lIreseF;a4e71;d1ew,o07;aHe3Fo2;a7eFiIo6Jy;e2nq41ve;mbur0nf38;r0t;inKleBocus,rJuI;el,rbiA;aBeA;an4e;aBu4;ei2k8Bla43oIyc3;gni39nci3up,v1;oot,uI;ff;ct,d,liIp;se,ze;tt3viA;aAenGit,o7;aWerUinpoiFlumm1LoTrLuI;b47ke,niArIt;poDsuI;aFe;eMoI;cKd,fe4XhibEmo7noJpo0sp1tru6vI;e,i6o5L;un4;la3Nu8;aGclu6dJf1occupy,sup0JvI;a6BeF;etermi4TiB;aGllu7rtr5Ksse4Q;cei2fo4NiAmea7plex,sIva6;eve8iCua6;mp1rItrol,ve;a6It6E;bOccuNmEpMutLverIwe;l07sJtu6Yu0wI;helm;ee,h1F;gr5Cnu2Cpa4;era7i4Ipo0;py,r;ey,seItaH;r2ss;aMe0ViJoIultiply;leCu6Pw;micJnIspla4;ce,g3us;!k;iIke,na9;m,ntaH;aPeLiIo0u3N;ke,ng1quIv5;eIi6S;fy;aKnIss5;d,gI;th5;rn,ve;ng2Gu1N;eep,idnJnI;e4Cow;ap;oHuI;gg3xtaI;po0;gno8mVnIrk;cTdRfQgeChPitia7ju8q1CsNtKun6EvI;a6eIo11;nt,rt,st;erJimi6BoxiPrI;odu4u6;aBn,pr03ru6C;iCpi8tIu8;all,il,ruB;abEibE;eCo3Eu0;iIul9;ca7;i7lu6;b5Xmer0pI;aLer4Uin9ly,oJrI;e3Ais6Bo2;rt,se,veI;riA;le,rt;aLeKiIoiCuD;de,jaInd1;ck;ar,iT;mp1ng,pp5raIve;ng5Mss;ath1et,iMle27oLrI;aJeIow;et;b,pp3ze;!ve5A;gg3ve;aTer45i5RlSorMrJuI;lf4Cndrai0r48;eJiIolic;ght5;e0Qsh5;b3XeLfeEgJsI;a3Dee;eIi2;!t;clo0go,shIwa4Z;ad3F;att1ee,i36;lt1st5;a0OdEl0Mm0FnXquip,rWsVtGvTxI;aRcPeDhOiNpJtIu6;ing0Yol;eKi8lIo0un9;aHoI;it,re;ct,di7l;st,t;a3oDu3B;e30lI;a10u6;lt,mi28;alua7oI;ke,l2;chew,pou0tab19;a0u4U;aYcVdTfSgQhan4joy,lPqOrNsuMtKvI;e0YisI;a9i50;er,i4rI;aHenGuC;e,re;iGol0F;ui8;ar9iC;a9eIra2ulf;nd1;or4;ang1oIu8;r0w;irc3lo0ou0ErJuI;mb1;oaGy4D;b3ct;bKer9pI;hasiIow1;ze;aKody,rI;a4oiI;d1l;lm,rk;ap0eBuI;ci40de;rIt;ma0Rn;a0Re04iKo,rIwind3;aw,ed9oI;wn;agno0e,ff1g,mi2Kne,sLvI;eIul9;rIst;ge,t;aWbVcQlod9mant3pNru3TsMtI;iIoDu37;lJngI;uiA;!l;ol2ua6;eJlIo0ro2;a4ea0;n0r0;a2Xe36lKoIu0S;uIv1;ra9;aIo0;im;a3Kur0;b3rm;af5b01cVduBep5fUliTmQnOpMrLsiCtaGvI;eIol2;lop;ch;a20i2;aDiBloIoD;re,y;oIy;te,un4;eJoI;liA;an;mEv1;a4i0Ao06raud,y;ei2iMla8oKrI;ee,yI;!pt;de,mIup3;missi34po0;de,ma7ph1;aJrief,uI;g,nk;rk;mp5rk5uF;a0Dea0h0Ai09l08oKrIurta1G;a2ea7ipp3uI;mb3;ales4e04habEinci6ll03m00nIrro6;cXdUfQju8no7qu1sLtKvI;eIin4;ne,r9y;aHin2Bribu7;er2iLoli2Epi8tJuI;lt,me;itu7raH;in;d1st;eKiJoIroFu0;rm;de,gu8rm;ss;eJoI;ne;mn,n0;eIlu6ur;al,i2;buCe,men4pI;eIi3ly;l,te;eBi6u6;r4xiC;ean0iT;rcumveFte;eJirp,oI;o0p;riAw;ncIre5t1ulk;el;a02eSi6lQoPrKuI;iXrIy;st,y;aLeaKiJoad5;en;ng;stfeLtX;ke;il,l11mba0WrrMth1;eIow;ed;!coQfrie1LgPhMliLqueaKstJtrIwild1;ay;ow;th;e2tt3;a2eJoI;ld;ad;!in,ui3;me;bysEckfi8ff3tI;he;b15c0Rd0Iff0Ggree,l0Cm09n03ppZrXsQttOuMvJwaE;it;eDoI;id;rt;gIto0X;meF;aIeCraB;ch,in;pi8sJtoI;niA;aKeIi04u8;mb3rt,ss;le;il;re;g0Hi0ou0rI;an9i2;eaKly,oiFrI;ai0o2;nt;r,se;aMi0GnJtI;icipa7;eJoIul;un4y;al;ly0;aJu0;se;lga08ze;iKlI;e9oIu6;t,w;gn;ix,oI;rd;a03jNmiKoJsoI;rb;pt,rn;niIt;st1;er;ouJuC;st;rn;cLhie2knowled9quiItiva7;es4re;ce;ge;eQliOoKrJusI;e,tom;ue;mIst;moJpI;any,liA;da7;ma7;te;pt;andPduBet,i6oKsI;coKol2;ve;liArt,uI;nd;sh;de;ct;on",Person:"trueยฆ0:1Q;a29b1Zc1Md1Ee18f15g13h0Ri0Qj0Nk0Jl0Gm09n06o05p00rPsItCusain bolt,v9w4xzibit,y1;anni,oko on2uji,v1;an,es;en,o;a3ednesday adams,i2o1;lfram,o0Q;ll ferrell,z khalifa;lt disn1Qr1;hol,r0G;a2i1oltai06;n dies0Zrginia wo17;lentino rossi,n goG;a4h3i2ripp,u1yra banks;lZpac shakur;ger woods,mba07;eresa may,or;kashi,t1ylor;um,ya1B;a5carlett johanss0h4i3lobodan milosevic,no2ocr1Lpider1uperm0Fwami; m0Em0E;op dogg,w whi1H;egfried,nbad;akespeaTerlock holm1Sia labeouf;ddam hussa16nt1;a cla11ig9;aAe6i5o3u1za;mi,n dmc,paul,sh limbau1;gh;bin hood,d stew16nald1thko;in0Mo;han0Yngo starr,valdo;ese witherspo0i1mbrandt;ll2nh1;old;ey,y;chmaninoff,ffi,iJshid,y roma1H;a4e3i2la16o1uff daddy;cahont0Ie;lar,p19;le,rZ;lm17ris hilt0;leg,prah winfr0Sra;a2e1iles cra1Bostradam0J; yo,l5tt06wmQ;pole0s;a5e4i2o1ubar03;by,lie5net,rriss0N;randa ju1tt romn0M;ly;rl0GssiaB;cklemo1rkov,s0ta hari,ya angelou;re;ady gaga,e1ibera0Pu;bron jam0Xch wale1e;sa;anye west,e3i1obe bryant;d cudi,efer suther1;la0P;ats,sha;a2effers0fk,k rowling,rr tolki1;en;ck the ripp0Mwaharlal nehru,y z;liTnez,ron m7;a7e5i3u1;lk hog5mphrey1sa01;! bog05;l1tl0H;de; m1dwig,nry 4;an;ile selassFlle ber4m3rrison1;! 1;ford;id,mo09;ry;ast0iannis,o1;odwPtye;ergus0lorence nightinga08r1;an1ederic chopN;s,z;ff5m2nya,ustaXzeki1;el;eril lagasse,i1;le zatop1nem;ek;ie;a6e4i2octor w1rake;ho;ck w1ego maradoC;olf;g1mi lovaOnzel washingt0;as;l1nHrth vadR;ai lNt0;a8h5lint0o1thulhu;n1olio;an,fuci1;us;on;aucKop2ristian baMy1;na;in;millo,ptain beefhe4r1;dinal wols2son1;! palmF;ey;art;a8e5hatt,i3oHro1;ck,n1;te;ll g1ng crosby;atB;ck,nazir bhut2rtil,yon1;ce;to;nksy,rack ob1;ama;l 6r3shton kutch2vril lavig8yn ra1;nd;er;chimed2istot1;le;es;capo2paci1;no;ne",Adjective:"trueยฆ0:AI;1:BS;2:BI;3:BA;4:A8;5:84;6:AV;7:AN;8:AF;9:7H;A:BQ;B:AY;C:BC;D:BH;E:9Y;aA2b9Ec8Fd7We79f6Ng6Eh61i4Xj4Wk4Tl4Im41n3Po36p2Oquart7Pr2Ds1Dt14uSvOwFye29;aMeKhIiHoF;man5oFrth7G;dADzy;despreB1n w97s86;acked1UoleF;!sa6;ather1PeFll o70ste1D;!k5;nt1Ist6Ate4;aHeGiFola5T;bBUce versa,gi3Lle;ng67rsa5R;ca1gBSluAV;lt0PnLpHrGsFttermoBL;ef9Ku3;b96ge1; Hb32pGsFtiAH;ca6ide d4R;er,i85;f52to da2;a0Fbeco0Hc0Bd04e02f01gu1XheaBGiXkn4OmUnTopp06pRrNsJtHus0wF;aFiel3K;nt0rra0P;app0eXoF;ld,uS;eHi37o5ApGuF;perv06spec39;e1ok9O;en,ttl0;eFu5;cogn06gul2RlGqu84sF;erv0olv0;at0en33;aFrecede0E;id,rallel0;am0otic0;aFet;rri0tF;ch0;nFq26vers3;sur0terFv7U;eFrupt0;st0;air,inish0orese98;mploy0n7Ov97xpF;ect0lain0;eHisFocume01ue;clFput0;os0;cid0rF;!a8Scov9ha8Jlyi8nea8Gprivileg0sMwF;aFei9I;t9y;hGircumcFonvin2U;is0;aFeck0;lleng0rt0;b20ppea85ssuGttend0uthorF;iz0;mi8;i4Ara;aLeIhoHip 25oGrF;anspare1encha1i2;geth9leADp notch,rpB;rny,ugh6H;ena8DmpGrFs6U;r49tia4;eCo8P;leFst4M;nt0;a0Dc09e07h06i04ki03l01mug,nobbi4XoVpRqueami4XtKuFymb94;bHccinAi generis,pFr5;erFre7N;! dup9b,vi70;du0li7Lp6IsFurb7J;eq9Atanda9X;aKeJi16o2QrGubboFy4Q;rn;aightFin5GungS; fFfF;or7V;adfa9Pri6;lwa6Ftu82;arHeGir6NlendBot Fry;on;c3Qe1S;k5se; call0lImb9phistic16rHuFviV;ndFth1B;proof;dBry;dFub6; o2A;e60ipF;pe4shod;ll0n d7R;g2HnF;ceEg6ist9;am3Se9;co1Zem5lfFn6Are7; suf4Xi43;aGholFient3A;ar5;rlFt4A;et;cr0me,tisfac7F;aOeIheumatoBiGoF;bu8Ztt7Gy3;ghtFv3; 1Sf6X;cJdu8PlInown0pro69sGtF;ard0;is47oF;lu2na1;e1Suc45;alcit8Xe1ondi2;bBci3mpa1;aSePicayu7laOoNrGuF;bl7Tnjabi;eKiIoF;b7VfGmi49pFxi2M;er,ort81;a7uD;maFor,sti7va2;!ry;ciDexis0Ima2CpaB;in55puli8G;cBid;ac2Ynt 3IrFti2;ma40tFv7W;!i3Z;i2YrFss7R;anoBtF; 5XiF;al,s5V;bSffQkPld OnMrLth9utKverF;!aIbMdHhGni75seas,t,wF;ei74rou74;a63e7A;ue;ll;do1Ger,si6A;d3Qg2Aotu5Z; bFbFe on o7g3Uli7;oa80;fashion0school;!ay; gua7XbFha5Uli7;eat;eHligGsF;ce7er0So1C;at0;diFse;a1e1;aOeNiMoGuF;anc0de; moEnHrthFt6V;!eFwe7L;a7Krn;chaGdescri7Iprof30sF;top;la1;ght5;arby,cessa4ighbor5wlyw0xt;k0usiaFv3;ti8;aQeNiLoHuF;dIltiF;facet0p6;deHlGnFot,rbBst;ochro4Xth5;dy;rn,st;ddle ag0nF;dbloZi,or;ag9diocEga,naGrFtropolit4Q;e,ry;ci8;cIgenta,inHj0Fkeshift,mmGnFri4Oscu61ver18;da5Dy;ali4Lo4U;!stream;abEho;aOeLiIoFumberi8;ngFuti1R;stan3RtF;erm,i4H;ghtGteraF;l,ry,te;heart0wei5O;ft JgFss9th3;al,eFi0M;nda4;nguBps0te5;apGind5noF;wi8;ut;ad0itte4uniW;ce co0Hgno6Mll0Cm04nHpso 2UrF;a2releF;va1; ZaYcoWdReQfOgrNhibi4Ri05nMoLsHtFvalu5M;aAeF;nDrdepe2K;a7iGolFuboI;ub6ve1;de,gF;nifica1;rdi5N;a2er;own;eriIiLluenVrF;ar0eq5H;pt,rt;eHiGoFul1O;or;e,reA;fiFpe26termi5E;ni2;mpFnsideCrreA;le2;ccuCdeq5Ene,ppr4J;fFsitu,vitro;ro1;mJpF;arHeGl15oFrop9;li2r11;n2LrfeA;ti3;aGeFi18;d4BnD;tuE;egGiF;c0YteC;al,iF;tiF;ma2;ld;aOelNiLoFuma7;a4meInHrrGsFur5;ti6;if4E;e58o3U; ma3GsF;ick;ghfalut2HspF;an49;li00pf33;i4llow0ndGrdFtM; 05coEworki8;sy,y;aLener44iga3Blob3oKrGuF;il1Nng ho;aFea1Fizzl0;cGtF;ef2Vis;ef2U;ld3Aod;iFuc2D;nf2R;aVeSiQlOoJrF;aGeFil5ug3;q43tf2O;gFnt3S;i6ra1;lk13oHrF; keeps,eFge0Vm9tu41;g0Ei2Ds3R;liF;sh;ag4Mowe4uF;e1or45;e4nF;al,i2;d Gmini7rF;ti6ve1;up;bl0lDmIr Fst pac0ux;oGreacF;hi8;ff;ed,ili0R;aXfVlTmQnOqu3rMthere3veryday,xF;aApIquisi2traHuF;be48lF;ta1;!va2L;edRlF;icF;it;eAstF;whi6; Famor0ough,tiE;rou2sui2;erGiF;ne1;ge1;dFe2Aoq34;er5;ficF;ie1;g9sF;t,ygF;oi8;er;aWeMiHoGrFue;ea4owY;ci6mina1ne,r31ti8ubQ;dact2Jfficult,m,sGverF;ge1se;creGePjoi1paCtF;a1inA;et,te; Nadp0WceMfiLgeneCliJmuEpeIreliAsGvoF;id,ut;pFtitu2ul1L;eCoF;nde1;ca2ghF;tf13;a1ni2;as0;facto;i5ngero0I;ar0Ce09h07i06l05oOrIuF;rmudgeon5stoma4teF;sy;ly;aIeHu1EystalF; cleFli7;ar;epy;fFv17z0;ty;erUgTloSmPnGrpoCunterclVveFy;rt;cLdJgr21jIsHtrF;aFi2;dic0Yry;eq1Yta1;oi1ug3;escenFuN;di8;a1QeFiD;it0;atoDmensuCpF;ass1SulF;so4;ni3ss3;e1niza1;ci1J;ockwiD;rcumspeAvil;eFintzy;e4wy;leGrtaF;in;ba2;diac,ef00;a00ePiLliJoGrFuck nak0;and new,isk,on22;gGldface,naF; fi05fi05;us;nd,tF;he;gGpartisFzarE;an;tiF;me;autifOhiNlLnHsFyoN;iWtselF;li8;eGiFt;gn;aFfi03;th;at0oF;v0w;nd;ul;ckwards,rF;e,rT; priori,b13c0Zd0Tf0Ng0Ihe0Hl09mp6nt06pZrTsQttracti0MuLvIwF;aGkF;wa1B;ke,re;ant garGeraF;ge;de;diIsteEtF;heFoimmu7;nt07;re;to4;hGlFtu2;eep;en;bitIchiv3roHtF;ifiFsy;ci3;ga1;ra4;ry;pFt;aHetizi8rF;oprF;ia2;llFre1;ed,i8;ng;iquFsy;at0e;ed;cohKiJkaHl,oGriFterX;ght;ne,of;li7;ne;ke,ve;olF;ic;ad;ain07gressiIi6rF;eeF;ab6;le;ve;fGraB;id;ectGlF;ue1;ioF;na2; JaIeGvF;erD;pt,qF;ua2;ma1;hoc,infinitum;cuCquiGtu3u2;al;esce1;ra2;erSjeAlPoNrKsGuF;nda1;e1olu2trF;aAuD;se;te;eaGuF;pt;st;aFve;rd;aFe;ze;ct;ra1;nt",Pronoun:"trueยฆelle,h3i2me,she,th0us,we,you;e0ou;e,m,y;!l,t;e,im",Preposition:"trueยฆaPbMcLdKexcept,fIinGmid,notwithstandiWoDpXqua,sCt7u4v2w0;/o,hereSith0;! whHin,oW;ersus,i0;a,s a vis;n1p0;!on;like,til;h1ill,oward0;!s;an,ereby,r0;ough0u;!oM;ans,ince,o that,uch G;f1n0ut;!to;!f;! 0to;effect,part;or,r0;om;espite,own,u3;hez,irca;ar1e0oBy;sides,tween;ri7;bo8cross,ft7lo6m4propos,round,s1t0;!op;! 0;a whole,long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"trueยฆ0:18;1:1E;2:1D;3:14;a1Db15c0Sd0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Am01new UoRpKqueens parkJreal salt lake,sBt6utah jazz,vancouver whitecaps,w4yW;ashington 4h10;natio1Mredski2wizar0W;ampa bay 7e6o4;ronto 4ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasD;buccanee0ra0K;a8eattle 6porting kansas0Wt4; louis 4oke0V;c1Drams;marine0s4;eah13ounH;cramento Rn 4;antonio spu0diego 4francisco gJjose earthquak1;char08paB; ran07;a9h6ittsburgh 5ortland t4;imbe0rail blaze0;pirat1steele0;il4oenix su2;adelphia 4li1;eagl1philNunE;dr1;akland 4klahoma city thunder,rlando magic;athle0Lrai4;de0;england 8orleans 7york 4;g5je3knYme3red bul0Xy4;anke1;ian3;pelica2sain3;patrio3revolut4;ion;anchEeAi4ontreal impact;ami 8lwaukee b7nnesota 4;t5vi4;kings;imberwolv1wi2;rewe0uc0J;dolphi2heat,marli2;mphis grizz4ts;li1;a6eic5os angeles 4;clippe0dodFlaB;esterV; galaxy,ke0;ansas city 4nF;chiefs,roya0D; pace0polis col3;astr05dynamo,rocke3texa2;olden state warrio0reen bay pac4;ke0;allas 8e4i04od6;nver 6troit 4;lio2pisto2ti4;ge0;broncYnugge3;cowbo5maver4;icZ;ys;arEelLhAincinnati 8leveland 6ol4;orado r4umbus crew sc;api7ocki1;brow2cavalie0guar4in4;dia2;bengaVre4;ds;arlotte horAicago 4;b5cubs,fire,wh4;iteB;ea0ulQ;diff4olina panthe0; city;altimore Alackburn rove0oston 6rooklyn 4uffalo bilN;ne3;ts;cel5red4; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 4;brav1falco2h4;awA;ns;es;on villa,r4;os;c6di4;amondbac4;ks;ardi4;na4;ls",Unit:"trueยฆa07b04cXdWexVfTgRhePinYjoule0BkMlJmDnan08oCp9quart0Bsq ft,t7volts,w6y2ze3ยฐ1ยต0;g,s;c,f,n;dVear1o0;ttR; 0s 0;old;att,b;erNon0;!ne02;ascals,e1i0;cXnt00;rcent,tJ;hms,unceY;/s,e4i0mยฒ,ยฒ,ยณ;/h,cro2l0;e0liK;!ยฒ;grLsR;gCtJ;it1u0;menQx;erPreP;b5elvins,ilo1m0notO;/h,ph,ยฒ;!byGgrEmCs;ct0rtzL;aJogrC;allonJb0ig3rB;ps;a0emtEl oz,t4;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;ยฒ,ยณ;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s","Noun|Gerund":"trueยฆ0:3O;1:3M;2:3N;3:3D;4:32;5:2V;6:3E;7:3K;8:36;9:3J;A:3B;a3Pb37c2Jd27e23f1Vg1Sh1Mi1Ij1Gk1Dl18m13n11o0Wp0Pques0Sr0EsTtNunderMvKwFyDzB;eroi0oB;ni0o3P;aw2eB;ar2l3;aEed4hispe5i5oCrB;ap8est3i1;n0ErB;ki0r31;i1r2s9tc9;isualizi0oB;lunt1Vti0;stan4ta6;aFeDhin6iCraBy8;c6di0i2vel1M;mi0p8;aBs1;c9si0;l6n2s1;aUcReQhOiMkatKl2Wmo6nowJpeItFuCwB;ea5im37;b35f0FrB;fi0vB;e2Mi2J;aAoryt1KrCuB;d2KfS;etc9ugg3;l3n4;bCi0;ebBi0;oar4;gnBnAt1;a3i0;ip8oB;p8rte2u1;a1r27t1;hCo5reBulp1;a2Qe2;edu3oo3;i3yi0;aKeEi4oCuB;li0n2;oBwi0;fi0;aFcEhear7laxi0nDpor1sB;pon4tructB;r2Iu5;de5;or4yc3;di0so2;p8ti0;aFeacek20laEoCrBublis9;a1Teten4in1oces7;iso2siB;tio2;n2yi0;ckaAin1rB;ki0t1O;fEpeDrganiCvB;erco24ula1;si0zi0;ni0ra1;fe5;avi0QeBur7;gotia1twor6;aDeCi2oB;de3nito5;a2dita1e1ssaA;int0XnBrke1;ifUufactu5;aEeaDiBodAyi0;cen7f1mi1stB;e2i0;r2si0;n4ug9;iCnB;ea4it1;c6l3;ogAuB;dAgg3stif12;ci0llust0VmDnBro2;nova1sp0NterBven1;ac1vie02;agi2plo4;aDea1iCoBun1;l4w3;ki0ri0;nd3rB;roWvB;es1;aCene0Lli4rBui4;ee1ie0N;rde2the5;aHeGiDlCorBros1un4;e0Pmat1;ir1oo4;gh1lCnBs9;anZdi0;i0li0;e3nX;r0Zscina1;a1du01nCxB;erci7plo5;chan1di0ginB;ee5;aLeHiGoub1rCum8wB;el3;aDeCiB;bb3n6vi0;a0Qs7;wi0;rTscoDvi0;ba1coZlBvelo8;eCiB;ve5;ga1;nGti0;aVelebUhSlPoDrBur3yc3;aBos7yi0;f1w3;aLdi0lJmFnBo6pi0ve5;dDsCvinB;ci0;trBul1;uc1;muniDpB;lBo7;ai2;ca1;lBo5;ec1;c9ti0;ap8eaCimToBubT;ni0t9;ni0ri0;aBee5;n1t1;ra1;m8rCs1te5;ri0;vi0;aPeNitMlLoGrDuB;dge1il4llBr8;yi0;an4eat9oadB;cas1;di0;a1mEokB;i0kB;ee8;pi0;bi0;es7oa1;c9i0;gin2lonAt1;gi0;bysit1c6ki0tt3;li0;ki0;bando2cGdverti7gi0pproac9rgDssuCtB;trac1;mi0;ui0;hi0;si0;coun1ti0;ti0;ni0;ng",PhrasalVerb:"trueยฆ0:92;1:96;2:8H;3:8V;4:8A;5:83;6:85;7:98;8:90;9:8G;A:8X;B:8R;C:8U;D:8S;E:70;F:97;G:8Y;H:81;I:7H;J:79;a9Fb7Uc6Rd6Le6Jf5Ig50h4Biron0j47k40l3Em31n2Yo2Wp2Cquiet Hr1Xs0KtZuXvacuu6QwNyammerBzK;ero Dip LonK;e0k0;by,ov9up;aQeMhLiKor0Mrit19;mp0n3Fpe0r5s5;ackAeel Di0S;aLiKn33;gh 3Wrd0;n Dr K;do1in,oJ;it 79k5lk Lrm 69sh Kt83v60;aw3do1o7up;aw3in,oC;rgeBsK;e 2herE;a00eYhViRoQrMuKypP;ckErn K;do1in,oJup;aLiKot0y 30;ckl7Zp F;ck HdK;e 5Y;n7Wp 3Es5K;ck MdLe Kghten 6me0p o0Rre0;aw3ba4do1in,up;e Iy 2;by,oG;ink Lrow K;aw3ba4in,up;ba4ov9up;aKe 77ll62;m 2r 5M;ckBke Llk K;ov9shit,u47;aKba4do1in,leave,o4Dup;ba4ft9pa69w3;a0Vc0Te0Mh0Ii0Fl09m08n07o06p01quar5GtQuOwK;earMiK;ngLtch K;aw3ba4o8K; by;cKi6Bm 2ss0;k 64;aReQiPoNrKud35;aigh2Det75iK;ke 7Sng K;al6Yup;p Krm2F;by,in,oG;c3Ln3Lr 2tc4O;p F;c3Jmp0nd LrKveAy 2O;e Ht 2L;ba4do1up;ar3GeNiMlLrKurB;ead0ingBuc5;a49it 6H;c5ll o3Cn 2;ak Fe1Xll0;a3Bber 2rt0und like;ap 5Vow Duggl5;ash 6Noke0;eep NiKow 6;cLp K;o6Dup;e 68;in,oK;ff,v9;de19gn 4NnKt 6Gz5;gKkE; al6Ale0;aMoKu5W;ot Kut0w 7M;aw3ba4f48oC;c2WdeEk6EveA;e Pll1Nnd Orv5tK; Ktl5J;do1foLin,o7upK;!on;ot,r5Z;aw3ba4do1in,o33up;oCto;al66out0rK;ap65ew 6J;ilAv5;aXeUiSoOuK;b 5Yle0n Kstl5;aLba4do1inKo2Ith4Nu5P;!to;c2Xr8w3;ll Mot LpeAuK;g3Ind17;a2Wf3Po7;ar8in,o7up;ng 68p oKs5;ff,p18;aKelAinEnt0;c6Hd K;o4Dup;c27t0;aZeYiWlToQrOsyc35uK;ll Mn5Kt K;aKba4do1in,oJto47up;pa4Dw3;a3Jdo1in,o21to45up;attleBess KiNop 2;ah2Fon;iLp Kr4Zu1Gwer 6N;do1in,o6Nup;nt0;aLuK;gEmp 6;ce u20y 6D;ck Kg0le 4An 6p5B;oJup;el 5NncilE;c53ir 39n0ss MtLy K;ba4oG; Hc2R;aw3ba4in,oJ;pKw4Y;e4Xt D;aLerd0oK;dAt53;il Hrrow H;aTeQiPoLuK;ddl5ll I;c1FnkeyMp 6uthAve K;aKdo1in,o4Lup;l4Nw3; wi4K;ss0x 2;asur5e3SlLss K;a21up;t 6;ke Ln 6rKs2Ax0;k 6ryA;do,fun,oCsure,up;a02eViQoLuK;ck0st I;aNc4Fg MoKse0;k Kse4D;aft9ba4do1forw37in56o0Zu46;in,oJ;d 6;e NghtMnLsKve 00;ten F;e 2k 2; 2e46;ar8do1in;aMt LvelK; oC;do1go,in,o7up;nEve K;in,oK;pKut;en;c5p 2sh LtchBughAy K;do1o59;in4Po7;eMick Lnock K;do1oCup;oCup;eLy K;in,up;l Ip K;aw3ba4do1f04in,oJto,up;aMoLuK;ic5mpE;ke3St H;c43zz 2;a01eWiToPuK;nLrrKsh 6;y 2;keLt K;ar8do1;r H;lKneErse3K;d Ke 2;ba4dKfast,o0Cup;ear,o1;de Lt K;ba4on,up;aw3o7;aKlp0;d Ml Ir Kt 2;fKof;rom;f11in,o03uW;cPm 2nLsh0ve Kz2P;at,it,to;d Lg KkerP;do1in,o2Tup;do1in,oK;ut,v9;k 2;aZeTive Rloss IoMrLunK; f0S;ab hold,in43ow 2U; Kof 2I;aMb1Mit,oLr8th1IuK;nd9;ff,n,v9;bo7ft9hQw3;aw3bKdo1in,oJrise,up,w3;a4ir2H;ar 6ek0t K;aLb1Fdo1in,oKr8up;ff,n,ut,v9;cLhKl2Fr8t,w3;ead;ross;d aKng 2;bo7;a0Ee07iYlUoQrMuK;ck Ke2N;ar8up;eLighten KownBy 2;aw3oG;eKshe27; 2z5;g 2lMol Krk I;aKwi20;bo7r8;d 6low 2;aLeKip0;sh0;g 6ke0mKrKtten H;e F;gRlPnNrLsKzzle0;h F;e Km 2;aw3ba4up;d0isK;h 2;e Kl 1T;aw3fPin,o7;ht ba4ure0;ePnLsK;s 2;cMd K;fKoG;or;e D;d04l 2;cNll Krm0t1G;aLbKdo1in,o09sho0Eth08victim;a4ehi2O;pa0C;e K;do1oGup;at Kdge0nd 12y5;in,o7up;aOi1HoNrK;aLess 6op KuN;aw3b03in,oC;gBwB; Ile0ubl1B;m 2;a0Ah05l02oOrLut K;aw3ba4do1oCup;ackBeep LoKy0;ss Dwd0;by,do1in,o0Uup;me NoLuntK; o2A;k 6l K;do1oG;aRbQforOin,oNtKu0O;hLoKrue;geth9;rough;ff,ut,v9;th,wK;ard;a4y;paKr8w3;rt;eaLose K;in,oCup;n 6r F;aNeLiK;ll0pE;ck Der Kw F;on,up;t 2;lRncel0rOsMtch LveE; in;o1Nup;h Dt K;doubt,oG;ry LvK;e 08;aw3oJ;l Km H;aLba4do1oJup;ff,n,ut;r8w3;a0Ve0MiteAl0Fo04rQuK;bblNckl05il0Dlk 6ndl05rLsKtMy FzzA;t 00;n 0HsK;t D;e I;ov9;anWeaUiLush K;oGup;ghQng K;aNba4do1forMin,oLuK;nd9p;n,ut;th;bo7lKr8w3;ong;teK;n 2;k K;do1in,o7up;ch0;arTg 6iRn5oPrNssMttlLunce Kx D;aw3ba4;e 6; ar8;e H;do1;k Dt 2;e 2;l 6;do1up;d 2;aPeed0oKurt0;cMw K;aw3ba4do1o7up;ck;k K;in,oC;ck0nk0stA; oQaNef 2lt0nd K;do1ov9up;er;up;r Lt K;do1in,oCup;do1o7;ff,nK;to;ck Pil0nMrgLsK;h D;ainBe D;g DkB; on;in,o7;aw3do1in,oCup;ff,ut;ay;ct FdQir0sk MuctionA; oG;ff;ar8o7;ouK;nd; o7;d K;do1oKup;ff,n;wn;o7up;ut",ProperNoun:"trueยฆaIbDc8dalhousHe7f5gosford,h4iron maiden,kirby,landsdowne,m2nis,r1s0wembF;herwood,paldiB;iel,othwe1;cgi0ercedes,issy;ll;intBudsB;airview,lorence,ra0;mpt9nco;lmo,uro;a1h0;arlt6es5risti;rl0talina;et4i0;ng;arb3e0;et1nt0rke0;ley;on;ie;bid,jax","Person|Place":"trueยฆa8d6h4jordan,k3orlando,s1vi0;ctor9rgin9;a0ydney;lvador,mara,ntia4;ent,obe;amil0ous0;ton;arw2ie0;go;lexandr1ust0;in;ia",LastName:"trueยฆ0:BR;1:BF;2:B5;3:BH;4:AX;5:9Y;6:B6;7:BK;8:B0;9:AV;A:AL;B:8Q;C:8G;D:7K;E:BM;F:AH;aBDb9Zc8Wd88e81f7Kg6Wh64i60j5Lk4Vl4Dm39n2Wo2Op25quispe,r1Ls0Pt0Ev03wTxSyKzG;aIhGimmerm6A;aGou,u;ng,o;khar5ytsE;aKeun9BiHoGun;koya32shiBU;!lG;diGmaz;rim,z;maGng;da,g52mo83sGzaC;aChiBV;iao,u;aLeJiHoGright,u;jcA5lff,ng;lGmm0nkl0sniewsC;kiB1liams33s3;bGiss,lt0;b,er,st0;a6Vgn0lHtG;anabe,s3;k0sh,tG;e2Non;aLeKiHoGukD;gt,lk5roby5;dHllalGnogr3Kr1Css0val3S;ba,ob1W;al,ov4;lasHsel8W;lJn dIrgBEsHzG;qu7;ilyEqu7siljE;en b6Aijk,yk;enzueAIverde;aPeix1VhKi2j8ka43oJrIsui,uG;om5UrG;c2n0un1;an,emblA7ynisC;dorAMlst3Km4rrAth;atch0i8UoG;mHrG;are84laci79;ps3sG;en,on;hirDkah9Mnaka,te,varA;a06ch01eYhUiRmOoMtIuHvGzabo;en9Jobod3N;ar7bot4lliv2zuC;aIeHoG;i7Bj4AyanAB;ele,in2FpheBvens25;l8rm0;kol5lovy5re7Tsa,to,uG;ng,sa;iGy72;rn5tG;!h;l71mHnGrbu;at9cla9Egh;moBo7M;aIeGimizu;hu,vchG;en8Luk;la,r1G;gu9infe5YmGoh,pulveA7rra5P;jGyG;on5;evi6iltz,miHneid0roed0uGwarz;be3Elz;dHtG;!t,z;!t;ar4Th8ito,ka4OlJnGr4saCto,unde19v4;ch7dHtGz;a5Le,os;b53e16;as,ihDm4Po0Y;aVeSiPoJuHyG;a6oo,u;bio,iz,sG;so,u;bKc8Fdrigue67ge10j9YmJosevelt,sItHux,wG;e,li6;a9Ch;enb4Usi;a54e4L;erts15i93;bei4JcHes,vGzzo;as,e9;ci,hards12;ag2es,iHut0yG;es,nol5N;s,t0;dImHnGsmu97v6C;tan1;ir7os;ic,u;aUeOhMiJoHrGut8;asad,if6Zochazk27;lishc2GpGrti72u10we76;e3Aov51;cHe45nG;as,to;as70hl0;aGillips;k,m,n6I;a3Hde3Wete0Bna,rJtG;ersHrovGters54;!a,ic;!en,on;eGic,kiBss3;i9ra,tz,z;h86k,padopoulIrk0tHvG;ic,l4N;el,te39;os;bMconn2Ag2TlJnei6PrHsbor6XweBzG;dem7Rturk;ella4DtGwe6N;ega,iz;iGof7Hs8I;vGyn1R;ei9;aSri1;aPeNiJoGune50ym2;rHvGwak;ak4Qik5otn66;odahl,r4S;cholsZeHkolGls4Jx3;ic,ov84;ls1miG;!n1;ils3mG;co4Xec;gy,kaGray2sh,var38;jiGmu9shiG;ma;a07c04eZiWoMuHyeG;rs;lJnIrGssoli6S;atGp03r7C;i,ov4;oz,te58;d0l0;h2lOnNo0RrHsGza1A;er,s;aKeJiIoz5risHtG;e56on;!on;!n7K;au,i9no,t5J;!lA;r1Btgome59;i3El0;cracFhhail5kkeHlG;l0os64;ls1;hmeJiIj30lHn3Krci0ssiGyer2N;!er;n0Po;er,j0;dDti;cartHlG;aughl8e2;hy;dQe7Egnu68i0jer3TkPmNnMrItHyG;er,r;ei,ic,su21thews;iHkDquAroqu8tinG;ez,s;a5Xc,nG;!o;ci5Vn;a5UmG;ad5;ar5e6Kin1;rig77s1;aVeOiLoJuHyG;!nch;k4nGo;d,gu;mbarGpe3Fvr4we;di;!nGu,yana2B;coln,dG;b21holm,strom;bedEfeKhIitn0kaHn8rGw35;oy;!j;m11tG;in1on1;bvGvG;re;iGmmy,ng,rs2Qu,voie,ws3;ne,t1F;aZeYh2iWlUnez50oNrJuHvar2woG;k,n;cerGmar68znets5;a,o34;aHem0isGyeziu;h23t3O;m0sni4Fus3KvG;ch4O;bay57ch,rh0Usk16vaIwalGzl5;czGsC;yk;cIlG;!cGen4K;huk;!ev4ic,s;e8uiveG;rt;eff0kGl4mu9nnun1;ucF;ll0nnedy;hn,llKminsCne,pIrHstra3Qto,ur,yGzl5;a,s0;j0Rls22;l2oG;or;oe;aPenOha6im14oHuG;ng,r4;e32hInHrge32u6vG;anD;es,ss3;anHnsG;en,on,t3;nesGs1R;en,s1;kiBnings,s1;cJkob4EnGrv0E;kDsG;en,sG;en0Ion;ks3obs2A;brahimDglesi5Nke5Fl0Qno07oneIshikHto,vanoG;u,v54;awa;scu;aVeOiNjaltal8oIrist50uG;!aGb0ghAynh;m2ng;a6dz4fIjgaa3Hk,lHpUrGwe,x3X;ak1Gvat;mAt;er,fm3WmG;ann;ggiBtchcock;iJmingw4BnHrGss;nand7re9;deGriks1;rs3;kkiHnG;on1;la,n1;dz4g1lvoQmOns0ZqNrMsJuIwHyG;asFes;kiB;g1ng;anHhiG;mo14;i,ov0J;di6p0r10t;ue;alaG;in1;rs1;aVeorgUheorghe,iSjonRoLrJuGw3;errGnnar3Co,staf3Ctierr7zm2;a,eG;ro;ayli6ee2Lg4iffithGub0;!s;lIme0UnHodGrbachE;e,m2;calvAzale0S;dGubE;bGs0E;erg;aj,i;bs3l,mGordaO;en7;iev3U;gnMlJmaIndFo,rGsFuthi0;cGdn0za;ia;ge;eaHlG;agh0i,o;no;e,on;aVerQiLjeldsted,lKoIrHuG;chs,entAji41ll0;eem2iedm2;ntaGrt8urni0wl0;na;emi6orA;lipIsHtzgeraG;ld;ch0h0;ovG;!ic;hatDnanIrG;arGei9;a,i;deY;ov4;b0rre1D;dKinsJriksIsGvaB;cob3GpGtra3D;inoza,osiQ;en,s3;te8;er,is3warG;ds;aXePiNjurhuMoKrisco15uHvorakG;!oT;arte,boHmitru,nn,rGt3C;and,ic;is;g2he0Omingu7nErd1ItG;to;us;aGcki2Hmitr2Ossanayake,x3;s,z; JbnaIlHmirGrvisFvi,w2;!ov4;gado,ic;th;bo0groot,jo6lHsilGvriA;va;a cruz,e3uG;ca;hl,mcevsCnIt2WviG;dGes,s;ov,s3;ielsGku22;!en;ki;a0Be06hRiobQlarkPoIrGunningh1H;awfo0RivGuz;elli;h1lKntJoIrGs2Nx;byn,reG;a,ia;ke,p0;i,rer2K;em2liB;ns;!e;anu;aOeMiu,oIristGu6we;eGiaG;ns1;i,ng,p9uHwGy;!dH;dGng;huJ;!n,onGu6;!g;kJnIpm2ttHudhGv7;ry;erjee,o14;!d,g;ma,raboG;rty;bJl0Cng4rG;eghetHnG;a,y;ti;an,ota1C;cerAlder3mpbeLrIstGvadi0B;iGro;llo;doHl0Er,t0uGvalho;so;so,zo;ll;a0Fe01hYiXlUoNrKuIyG;rLtyG;qi;chan2rG;ke,ns;ank5iem,oGyant;oks,wG;ne;gdan5nIruya,su,uchaHyKziG;c,n5;rd;darGik;enG;ko;ov;aGond15;nco,zG;ev4;ancFshw16;a08oGuiy2;umGwmG;ik;ckRethov1gu,ktPnNrG;gJisInG;ascoGds1;ni;ha;er,mG;anG;!n;gtGit7nP;ss3;asF;hi;er,hG;am;b4ch,ez,hRiley,kk0ldw8nMrIshHtAu0;es;ir;bInHtlGua;ett;es,i0;ieYosa;dGik;a9yoG;padhyG;ay;ra;k,ng;ic;bb0Acos09d07g04kht05lZnPrLsl2tJyG;aHd8;in;la;chis3kiG;ns3;aImstro6sl2;an;ng;ujo,ya;dJgelHsaG;ri;ovG;!a;ersJov,reG;aGjEws;ss1;en;en,on,s3;on;eksejEiyEmeiIvG;ar7es;ez;da;ev;arwHuilG;ar;al;ams,l0;er;ta;as",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:74;1:61;2:6G;3:6J;4:5S;a68b53c4Id48e44f3Wg3Hh39i31j2Wk2Fl23m1Mn1Co19p0Wq0Ur0Os05tRuQvLwDxiBy9z5;a7h5i4Muri4O;a5e5ongsh0;ng3H;greb,nzib5G;ang2e5okoha3Sunfu;katerin3Hrev0;a5n0Q;m5Hn;arsBeAi6roclBu5;h0xi,zh5P;c7n5;d5nipeg,terth4;hoek,s1L;hi5Zkl3A;l63xford;aw;a8e6i5ladivost5Molgogr6L;en3lni6S;ni22r5;o3saill4N;lenc4Wncouv3Sr3ughn;lan bat1Crumqi,trecht;aFbilisi,eEheDiBo9r7u5;l21n63r5;in,ku;i5ondh62;es51poli;kyo,m2Zron1Pulo5;n,uS;an5jua3l2Tmisoa6Bra3;j4Tshui; hag62ssaloni2H;gucigal26hr0l av1U;briz,i6llinn,mpe56ng5rtu,shk2R;i3Esh0;an,chu1n0p2Eyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4X;ba0Ht;aten is55ockholm,rasbou67uttga2V;an8e6i5;jiazhua1llo1m5Xy0;f50n5;ya1zh4H;gh3Kt4Q;att45o1Vv44;cramen16int ClBn5o paulo,ppo3Rrajevo; 7aa,t5;a 5o domin3E;a3fe,m1M;antonio,die3Cfrancisco,j5ped3Nsalvad0J;o5u0;se;em,t lake ci5Fz25;lou58peters24;a9e8i6o5;me,t59;ga,o5yadh;! de janei3F;cife,ims,nn3Jykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0Q;aFeEhDiCo9r7u6yong5;ya1;eb59ya1;a5etor3M;g52to;rt5zn0; 5la4Co;au prin0Melizabe24sa03;ls3Prae5Atts26;iladelph3Gnom pe1Aoenix;ki1tah tik3E;dua,lerYnaji,r4Ot5;na,r32;ak44des0Km1Mr6s5ttawa;a3Vlo;an,d06;a7ew5ing2Fovosibir1Jyc; 5cast36;del24orlea44taip14;g8iro4Wn5pl2Wshv33v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0W;aEeCi9o6u5;mb2Ani26sc3Y;gadishu,nt6s5;c13ul;evideo,pelli1Rre2Z;ami,l6n14s5;kolc,sissauga;an,waukee;cca,d5lbour2Mmph41ndo1Cssi3;an,ell2Xi3;cau,drAkass2Sl9n8r5shh4A;aca6ib5rakesh,se2L;or;i1Sy;a4EchFdal0Zi47;mo;id;aDeAi8o6u5vSy2;anMckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Lma5nz,sb2verpo28;!ss27; ma39i5;c5pzig;est16; p6g5ho2Wn0Cusan24;os;az,la33;aHharFiClaipeBo9rak0Du7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Hlka2Xpavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bHdu3llakuric0Qmpa3Fn6ohsiu1ra5un1Iwaguc0Q;c0Pj;d5o,p4;ah1Ty;a7e6i5ohannesV;l1Vn0;dd36rusalem;ip4k5;ar2H;bad0mph1OnArkutUs7taXz5;mir,tapala5;pa;fah0l6tanb5;ul;am2Zi2H;che2d5;ianap2Mo20;aAe7o5yder2W; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Oupe;ld coa1Bthen5;bu2S;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal29es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,nkirk,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Zr es sala1KugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1Q;lo7n6penhag0Ar5;do1Ok;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr14;ch8sha,zh07;gliari,i9lga8mayenJn6pe town,r5tanO;acCdiff;ber1Ac5;un;ry;ro;aWeNhKirmingh0WoJr9u5;chareTdapeTenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iCl9ng8r5;g6l5n;in;en;aluru,hazi;fa6grade,o horizon5;te;st;ji1rut;ghd0BkFn9ot8r7s6yan n4;ur;el,r07;celo3i,ranquil09;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a05b02cc01ddis aba00gartaZhmedXizawl,lSmPnHqa00rEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a8c5kaOtwerp;hora6o3;na;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 7buquerq6eppo,giers,ma5;ty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"trueยฆ0:2O;1:2L;2:2U;3:2F;a2Sb2Fc21d1Wes1Vf1Tg1Oh1Ki1Fj1Bk16l13m0Sn09o07pYqVrSsJtEuBverAw6y4zacatec2W;akut0o0Fu4;cat1k09;a5est 4isconsin,yomi1O;bengal,virgin0;rwick3shington4;! dc;acruz,mont;dmurt0t4;ah,tar4; 2Pa12;a6e5laxca1Vripu21u4;scaEva;langa2nnessee,x2J;bas10m4smQtar29;aulip2Hil nadu;a9elang07i7o5taf16u4ylh1J;ff02rr09s1E;me1Gno1Uuth 4;cZdY;ber0c4kkim,naloa;hu1ily;n5rawak,skatchew1xo4;ny; luis potosi,ta catari2;a4hodeA;j4ngp0C;asth1shahi;ingh29u4;e4intana roo;bec,en6retaro;aAe6rince edward4unjab; i4;sl0G;i,n5r4;ak,nambu0F;a0Rnsylv4;an0;ha0Pra4;!na;axa0Zdisha,h4klaho21ntar4reg7ss0Dx0I;io;aLeEo6u4;evo le4nav0X;on;r4tt18va scot0;f9mandy,th4; 4ampton3;c6d5yo4;rk3;ako1O;aroli2;olk;bras1Nva0Dw4; 6foundland4;! and labrad4;or;brunswick,hamp3jers5mexiTyork4;! state;ey;galPyarit;aAeghala0Mi6o4;nta2r4;dov0elos;ch6dlanDn5ss4zor11;issippi,ouri;as geraPneso18;ig1oac1;dhy12harasht0Gine,lac07ni5r4ssachusetts;anhao,i el,ylG;p4toba;ur;anca3e4incoln3ouisI;e4iR;ds;a6e5h4omi;aka06ul2;dah,lant1ntucky,ra01;bardino,lmyk0ns0Qr4;achay,el0nata0X;alis6har4iangxi;kh4;and;co;daho,llino7n4owa;d5gush4;et0;ia2;is;a6ert5i4un1;dalFm0D;ford3;mp3rya2waii;ansu,eorg0lou7oa,u4;an4izhou,jarat;ajuato,gdo4;ng;cester3;lori4uji1;da;sex;ageUe7o5uran4;go;rs4;et;lawaMrby3;aFeaEh9o4rim08umbr0;ahui7l6nnectic5rsi4ventry;ca;ut;i03orado;la;e5hattisgarh,i4uvash0;apRhuahua;chn5rke4;ss0;ya;ra;lGm4;bridge3peche;a9ihar,r8u4;ck4ryat0;ingham3;shi4;re;emen,itish columb0;h0ja cal8lk7s4v7;hkorto4que;st1;an;ar0;iforn0;ia;dygHguascalientes,lBndhr9r5ss4;am;izo2kans5un4;achal 7;as;na;a 4;pradesh;a6ber5t4;ai;ta;ba5s4;ka;ma;ea",Place:"trueยฆ0:4T;1:4V;2:44;3:4B;4:3I;a4Eb3Gc2Td2Ge26f25g1Vh1Ji1Fk1Cl14m0Vn0No0Jp08r04sTtNuLvJw7y5;a5o0Syz;kut1Bngtze;aDeChitBi9o5upatki,ycom2P;ki26o5;d5l1B;b3Ps5;i4to3Y;c0SllowbroCn5;c2Qgh2;by,chur1P;ed0ntw3Gs22;ke6r3St5;erf1f1; is0Gf3V;auxha3Mirgin is0Jost5;ok;laanbaatar,pto5xb3E;n,wn;a9eotihuac43h7ive49o6ru2Nsarskoe selo,u5;l2Dzigo47;nto,rquay,tt2J;am3e 5orn3E;bronx,hamptons;hiti,j mah0Iu1N;aEcotts bluff,eCfo,herbroQoApring9t7u5yd2F;dbu1Wn5;der03set3B;aff1ock2Nr5;atf1oud;hi37w24;ho,uth5; 1Iam1Zwo3E;a5i2O;f2Tt0;int lawrence riv3Pkhal2D;ayleigh,ed7i5oc1Z;chmo1Eo gran4ver5;be1Dfr09si4; s39cliffe,hi2Y;aCe9h8i5ompeii,utn2;c6ne5tcai2T; 2Pc0G;keri13t0;l,x;k,lh2mbr6n5r2J;n1Hzance;oke;cif38pahanaumokuak30r5;k5then0;si4w1K;ak7r6x5;f1l2X;ange county,d,f1inoco;mTw1G;e8i1Uo5;r5tt2N;th5wi0E; 0Sam19;uschwanste1Pw5; eng6a5h2market,po36;rk;la0P;a8co,e6i5uc;dt1Yll0Z;adow5ko0H;lands;chu picchu,gad2Ridsto1Ql8n7ple6r5;kh2; g1Cw11;hatt2Osf2B;ibu,t0ve1Z;a8e7gw,hr,in5owlOynd02;coln memori5dl2C;al;asi4w3;kefr7mbe1On5s,x;ca2Ig5si05;f1l27t0;ont;azan kreml14e6itchen2Gosrae,rasnoyar5ul;sk;ns0Hs1U;ax,cn,lf1n6ps5st;wiN;d5glew0Lverness;ian27ochina;aDeBi6kg,nd,ov5unti2H;d,enweep;gh6llc5;reL;bu03l5;and5;!s;r5yw0C;ef1tf1;libu24mp6r5stings;f1lem,row;stead,t0;aDodavari,r5uelph;avenAe5imsS;at 8en5; 6f1Fwi5;ch;acr3vall1H;brita0Flak3;hur5;st;ng3y villa0W;airhavHco,ra;aAgli9nf17ppi8u7ver6x5;et1Lf1;glad3t0;rope,st0;ng;nt0;rls1Ls5;t 5;e5si4;nd;aCe9fw,ig8o7ryd6u5xb;mfri3nstab00rh2tt0;en;nca18rcKv19wnt0B;by;n6r5vonpo1D;ry;!h2;nu8r5;l6t5;f1moor;ingt0;be;aLdg,eIgk,hClBo5royd0;l6m5rnwa0B;pt0;c7lingw6osse5;um;ood;he0S;earwat0St;a8el6i5uuk;chen itza,mney ro07natSricahua;m0Zt5;enh2;mor5rlottetPth2;ro;dar 5ntervilA;breaks,faZg5;rove;ld9m8r5versh2;lis6rizo pla5;in;le;bLpbellf1;weQ;aZcn,eNingl01kk,lackLolt0r5uckV;aGiAo5;ckt0ok5wns cany0;lyn,s5;i4to5;ne;de;dge6gh5;am,t0;n6t5;own;or5;th;ceb6m5;lNpt0;rid5;ge;bu5pool,wa8;rn;aconsfEdf1lBr9verly7x5;hi5;ll; hi5;lls;wi5;ck; air,l5;ingh2;am;ie5;ld;ltimore,rnsl6tters5;ea;ey;bLct0driadic,frica,ginJlGmFn9rc8s7tl6yleOzor3;es;!ant8;hcroft,ia; de triomphe,t6;adyr,ca8dov9tarct5;ic5; oce5;an;st5;er;ericas,s;be6dersh5hambra,list0;ot;rt0;cou5;rt;bot7i5;ngd0;on;sf1;ord",Country:"trueยฆ0:38;1:2L;2:3B;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om2pZqat1KrXsKtCu7v5wal4yemTz3;a25imbabwe;es,lis and futu2Y;a3enezue32ietnam;nuatu,tican city;gTk6nited 4ruXs3zbeE; 2Ca,sr;arab emirat0Kkingdom,states3;! of am2Y;!raiV;a8haCimor les0Co7rinidad 5u3;nis0rk3valu;ey,me2Zs and caic1V;and t3t3;oba1L;go,kel10nga;iw2ji3nz2T;ki2V;aDcotl1eCi9lov8o6pa2Dri lanka,u5w3yr0;az3edAitzerl1;il1;d2riname;lomon1Xmal0uth 3;afr2KkMsud2;ak0en0;erra leoFn3;gapo1Yt maart3;en;negLrb0ychellZ;int 3moa,n marino,udi arab0;hele26luc0mart21;epublic of ir0Eom2Euss0w3;an27;a4eIhilippinUitcairn1Mo3uerto riN;l1rtugF;ki2Dl4nama,pua new0Vra3;gu7;au,esti3;ne;aBe9i7or3;folk1Ith4w3;ay; k3ern mariana1D;or0O;caragua,ger3ue;!ia;p3ther1Aw zeal1;al;mib0u3;ru;a7exi6icro0Bo3yanm06;ldova,n3roc5zambA;a4gol0t3;enegro,serrat;co;cAdagasc01l7r5urit4yot3;te;an0i16;shall0Xtin3;ique;a4div3i,ta;es;wi,ys0;ao,ed02;a6e5i3uxembourg;b3echtenste12thu1G;er0ya;ban0Isotho;os,tv0;azakh1Fe4iriba04o3uwait,yrgyz1F;rXsovo;eling0Knya;a3erG;ma16p2;c7nd6r4s3taly,vory coast;le of m2rael;a3el1;n,q;ia,oJ;el1;aiTon3ungary;dur0Ng kong;aBermany,ha0QibraltAre8u3;a6ern5inea3ya0P;! biss3;au;sey;deloupe,m,tema0Q;e3na0N;ce,nl1;ar;bUmb0;a7i6r3;ance,ench 3;guia0Epoly3;nes0;ji,nl1;lklandUroeU;ast tim7cu6gypt,l salv6ngl1quatorial4ritr5st3thiop0;on0; guin3;ea;ad3;or;enmark,jibou5ominica4r con3;go;!n C;ti;aBentral african Ah8o5roat0u4yprRzech3; 9ia;ba,racao;c4lo3morQngo brazzaville,okGsta r04te de ivoiL;mb0;osE;i3ristmasG;le,na;republic;m3naUpe verde,ymanA;bod0ero3;on;aGeDhut2o9r5u3;lgar0r3;kina faso,ma,undi;azil,itish 3unei;virgin3; is3;lands;liv0nai5snia and herzegoviHtswaHuvet3; isl1;and;re;l3n8rmuG;ar3gium,ize;us;h4ngladesh,rbad3;os;am4ra3;in;as;fghaGlDmBn6r4ustr3zerbaij2;al0ia;genti3men0uba;na;dorra,g5t3;arct7igua and barbu3;da;o3uil3;la;er3;ica;b3ger0;an0;ia;ni3;st2;an",FirstName:"trueยฆaTblair,cQdOfrancoZgabMhinaLilya,jHkClBm6ni4quinn,re3s0;h0umit,yd;ay,e0iloh;a,lby;g9ne;co,ko0;!s;a1el0ina,org6;!okuhF;ds,naia,r1tt0xiB;i,y;ion,lo;ashawn,eif,uca;a3e1ir0rM;an;lsFn0rry;dall,yat5;i,sD;a0essIie,ude;i1m0;ie,mG;me;ta;rie0y;le;arcy,ev0;an,on;as1h0;arl8eyenne;ey,sidy;drien,kira,l4nd1ubr0vi;ey;i,r0;a,e0;a,y;ex2f1o0;is;ie;ei,is",WeekDay:"trueยฆfri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"trueยฆdec0february,july,nov0octo1sept0;em0;ber",Date:"trueยฆago,on4som4t1week0yesterd5; end,ends;mr1o0;d2morrow;!w;ed0;ay",Duration:"trueยฆcenturAd8h7m5q4se3w1y0;ear8r8;eek0k7;!end,s;ason,c5;tr,uarter;i0onth3;llisecond2nute2;our1r1;ay0ecade0;!s;ies,y",FemaleName:"trueยฆ0:J7;1:JB;2:IJ;3:IK;4:J1;5:IO;6:JS;7:JO;8:HB;9:JK;A:H4;B:I2;C:IT;D:JH;E:IX;F:BA;G:I4;aGTbFLcDRdD0eBMfB4gADh9Ti9Gj8Dk7Cl5Wm48n3Lo3Hp33qu32r29s15t0Eu0Cv02wVxiTyOzH;aLeIineb,oHsof3;e3Sf3la,ra;h2iKlIna,ynH;ab,ep;da,ma;da,h2iHra;nab;aKeJi0FolB7uIvH;et8onDP;i0na;le0sen3;el,gm3Hn,rGLs8W;aoHme0nyi;m5XyAD;aMendDZhiDGiH;dele9lJnH;if48niHo0;e,f47;a,helmi0lHma;a,ow;ka0nB;aNeKiHusa5;ck84kIl8oleAviH;anFenJ4;ky,toriBK;da,lA8rHs0;a,nHoniH9;a,iFR;leHnesH9;nILrH;i1y;g9rHs6xHA;su5te;aYeUhRiNoLrIuHy2;i,la;acJ3iHu0J;c3na,sH;hFta;nHr0F;iFya;aJffaEOnHs6;a,gtiH;ng;!nFSra;aIeHomasi0;a,l9Oo8Ares1;l3ndolwethu;g9Fo88rIssH;!a,ie;eHi,ri7;sa,za;bOlMmKnIrHs6tia0wa0;a60yn;iHya;a,ka,s6;arFe2iHm77ra;!ka;a,iH;a,t6;at6it6;a0Ecarlett,e0AhWiSkye,neza0oQri,tNuIyH;bIGlvi1;ha,mayIJniAsIzH;an3Net8ie,y;anHi7;!a,e,nH;aCe;aIeH;fan4l5Dphan6E;cI5r5;b3fiAAm0LnHphi1;d2ia,ja,ya;er2lJmon1nIobh8QtH;a,i;dy;lETv3;aMeIirHo0risFDy5;a,lDM;ba,e0i5lJrH;iHr6Jyl;!d8Ifa;ia,lDZ;hd,iMki2nJrIu0w0yH;la,ma,na;i,le9on,ron,yn;aIda,ia,nHon;a,on;!ya;k6mH;!aa;lJrItaye82vH;da,inj;e0ife;en1i0ma;anA9bLd5Oh1SiBkKlJmInd2rHs6vannaC;aCi0;ant6i2;lDOma,ome;ee0in8Tu2;in1ri0;a05eZhXiUoHuthDM;bScRghQl8LnPsJwIxH;anB3ie,y;an,e0;aIeHie,lD;ann7ll1marDGtA;!lHnn1;iHyn;e,nH;a,dF;da,i,na;ayy8G;hel67io;bDRerAyn;a,cIkHmas,nFta,ya;ki,o;h8Xki;ea,iannGMoH;da,n1P;an0bJemFgi0iInHta,y0;a8Bee;han86na;a,eH;cHkaC;a,ca;bi0chIe,i0mo0nHquETy0;di,ia;aERelHiB;!e,le;een4ia0;aPeOhMiLoJrHute6A;iHudenCV;scil3LyamvaB;lHrt3;i0ly;a,paluk;ilome0oebe,ylH;is,lis;ggy,nelope,r5t2;ige,m0VnKo5rvaDMtIulH;a,et8in1;ricHt4T;a,e,ia;do2i07;ctav3dIfD3is6ksa0lHphD3umC5yunbileg;a,ga,iv3;eHvAF;l3t8;aWeUiMoIurHy5;!ay,ul;a,eJor,rIuH;f,r;aCeEma;ll1mi;aNcLhariBQkKlaJna,sHta,vi;anHha;ur;!y;a,iDZki;hoGk9YolH;a,e4P;!mh;hir,lHna,risDEsreE;!a,lBV;asuMdLh3i6Dl5nKomi7rgEVtH;aHhal4;lHs6;i1ya;cy,et8;e9iF0ya;nngu2X;a0Ackenz4e02iMoJrignayani,uriDJyH;a,rH;a,iOlNna,tG;bi0i2llBJnH;a,iH;ca,ka,qD9;a,cUdo4ZkaTlOmi,nMrItzi,yH;ar;aJiIlH;anET;am;!l,nB;dy,eHh,n4;nhGrva;aKdJe0iCUlH;iHy;cent,e;red;!gros;!e5;ae5hH;ae5el3Z;ag5DgNi,lKrH;edi7AiIjem,on,yH;em,l;em,sCG;an4iHliCF;nHsCJ;a,da;!an,han;b09cASd07e,g05ha,i04ja,l02n00rLsoum5YtKuIv84xBKyHz4;bell,ra,soBB;d7rH;a,eE;h8Gild1t4;a,cUgQiKjor4l7Un4s6tJwa,yH;!aHbe6Xja9lAE;m,nBL;a,ha,in1;!aJbCGeIja,lDna,sHt63;!a,ol,sa;!l1D;!h,mInH;!a,e,n1;!awit,i;arJeIie,oHr48ueri8;!t;!ry;et46i3B;el4Xi7Cy;dHon,ue5;akranAy;ak,en,iHlo3S;a,ka,nB;a,re,s4te;daHg4;!l3E;alDd4elHge,isDJon0;ei9in1yn;el,le;a0Ne0CiXoQuLyH;d3la,nH;!a,dIe2OnHsCT;!a,e2N;a,sCR;aD4cJel0Pis1lIna,pHz;e,iA;a,u,wa;iHy;a0Se,ja,l2NnB;is,l1UrItt1LuHvel4;el5is1;aKeIi7na,rH;aADi7;lHn1tA;ei;!in1;aTbb9HdSepa,lNnKsJvIzH;!a,be5Ret8z4;!ia;a,et8;!a,dH;a,sHy;ay,ey,i,y;a,iJja,lH;iHy;aA8e;!aH;!nF;ia,ya;!nH;!a,ne;aPda,e0iNjYla,nMoKsJtHx93y5;iHt4;c3t3;e2PlCO;la,nHra;a,ie,o2;a,or1;a,gh,laH;!ni;!h,nH;a,d2e,n5V;cOdon9DiNkes6mi9Gna,rMtJurIvHxmi,y5;ern1in3;a,e5Aie,yn;as6iIoH;nya,ya;fa,s6;a,isA9;a,la;ey,ie,y;a04eZhXiOlASoNrJyH;lHra;a,ee,ie;istHy6I;a,en,iIyH;!na;!e,n5F;nul,ri,urtnB8;aOerNlB7mJrHzzy;a,stH;en,in;!berlImernH;aq;eHi,y;e,y;a,stE;!na,ra;aHei2ongordzol;dij1w5;el7UiKjsi,lJnIrH;a,i,ri;d2na,za;ey,i,lBLs4y;ra,s6;biAcARdiat7MeBAiSlQmPnyakuma1DrNss6NtKviAyH;!e,lH;a,eH;e,i8T;!a6HeIhHi4TlDri0y;ar8Her8Hie,leErBAy;!lyn8Ori0;a,en,iHl5Xoli0yn;!ma,nFs95;a5il1;ei8Mi,lH;e,ie;a,tl6O;a0AeZiWoOuH;anMdLlHst88;es,iH;a8NeHs8X;!n9tH;!a,te;e5Mi3My;a,iA;!anNcelDdMelGhan7VleLni,sIva0yH;a,ce;eHie;fHlDph7Y;a,in1;en,n1;i7y;!a,e,n45;lHng;!i1DlH;!i1C;anNle0nKrJsH;i8JsH;!e,i8I;i,ri;!a,elGif2CnH;a,et8iHy;!e,f2A;a,eJiInH;a,eIiH;e,n1;!t8;cMda,mi,nIque4YsminFvie2y9zH;min7;a7eIiH;ce,e,n1s;!lHs82t0F;e,le;inIk6HlDquelH;in1yn;da,ta;da,lRmPnOo0rNsIvaHwo0zaro;!a0lu,na;aJiIlaHob89;!n9R;do2;belHdo2;!a,e,l3B;a7Ben1i0ma;di2es,gr72ji;a9elBogH;en1;a,e9iHo0se;a0na;aSeOiJoHus7Kyacin2C;da,ll4rten24snH;a,i9U;lImaH;ri;aIdHlaI;a,egard;ry;ath1BiJlInrietArmi9sH;sa,t1A;en2Uga,mi;di;bi2Fil8MlNnMrJsItHwa,yl8M;i5Tt4;n60ti;iHmo51ri53;etH;!te;aCnaC;a,ey,l4;a02eWiRlPoNrKunJwH;enHyne1R;!dolD;ay,el;acieIetHiselB;a,chE;!la;ld1CogooH;sh;adys,enHor3yn2K;a,da,na;aKgi,lIna,ov8EselHta;a,e,le;da,liH;an;!n0;mLnJorgIrH;ald5Si,m3Etrud7;et8i4X;a,eHna;s29vieve;ma;bIle,mHrnet,yG;al5Si5;iIrielH;a,l1;!ja;aTeQiPlorOoz3rH;anJeIiH;da,eB;da,ja;!cH;esIiHoi0P;n1s66;!ca;a,enc3;en,o0;lIn0rnH;anB;ec3ic3;jr,nArKtHy7;emIiHma,oumaA;ha,ma,n;eh;ah,iBrah,za0;cr4Rd0Re0Qi0Pk0Ol07mXn54rUsOtNuMvHwa;aKelIiH;!e,ta;inFyn;!a;!ngel4V;geni1ni47;h5Yien9ta;mLperanKtH;eIhHrel5;er;l31r7;za;a,eralB;iHma,ne4Lyn;cHka,n;a,ka;aPeNiKmH;aHe21ie,y;!li9nuH;elG;lHn1;e7iHy;a,e,ja;lHrald;da,y;!nue5;aWeUiNlMma,no2oKsJvH;a,iH;na,ra;a,ie;iHuiH;se;a,en,ie,y;a0c3da,e,f,nMsJzaH;!betHveA;e,h;aHe,ka;!beH;th;!a,or;anor,nH;!a,i;!in1na;ate1Rta;leEs6;vi;eIiHna,wi0;e,th;l,n;aYeMh3iLjeneKoH;lor5Vminiq4Ln3FrHtt4;a,eEis,la,othHthy;ea,y;ba;an09naCon9ya;anQbPde,eOiMlJmetr3nHsir5M;a,iH;ce,se;a,iIla,orHphi9;es,is;a,l6F;dHrdH;re;!d5Ena;!b2ForaCraC;a,d2nH;!a,e;hl3i0l0GmNnLphn1rIvi1WyH;le,na;a,by,cIia,lH;a,en1;ey,ie;a,et8iH;!ca,el1Aka,z;arHia;is;a0Re0Nh04i02lUoJristIynH;di,th3;al,i0;lPnMrIurH;tn1D;aJd2OiHn2Ori9;!nH;a,e,n1;!l4;cepci5Cn4sH;tanHuelo;ce,za;eHleE;en,t8;aJeoIotH;il54;!pat2;ir7rJudH;et8iH;a,ne;a,e,iH;ce,sZ;a2er2ndH;i,y;aReNloe,rH;isJyH;stH;al;sy,tH;a1Sen,iHy;an1e,n1;deJlseIrH;!i7yl;a,y;li9;nMrH;isKlImH;ai9;a,eHot8;n1t8;!sa;d2elGtH;al,elG;cIlH;es8i47;el3ilH;e,ia,y;itlYlXmilWndVrMsKtHy5;aIeIhHri0;er1IleErDy;ri0;a38sH;a37ie;a,iOlLmeJolIrH;ie,ol;!e,in1yn;lHn;!a,la;a,eIie,otHy;a,ta;ne,y;na,s1X;a0Ii0I;a,e,l1;isAl4;in,yn;a0Ke02iZlXoUrH;andi7eRiJoIyH;an0nn;nwDoke;an3HdgMgiLtH;n31tH;!aInH;ey,i,y;ny;d,t8;etH;!t7;an0e,nH;da,na;bbi7glarIlo07nH;iAn4;ka;ancHythe;a,he;an1Clja0nHsm3M;iAtH;ou;aWcVlinUniArPssOtJulaCvH;!erlH;ey,y;hJsy,tH;e,iHy7;e,na;!anH;ie,y;!ie;nItHyl;ha,ie;adIiH;ce;et8i9;ay,da;ca,ky;!triH;ce,z;rbJyaH;rmH;aa;a2o2ra;a2Ub2Od25g21i1Sj5l18m0Zn0Boi,r06sWtVuPvOwa,yIzH;ra,u0;aKes6gJlIn,seH;!l;in;un;!nH;a,na;a,i2K;drLguJrIsteH;ja;el3;stH;in1;a,ey,i,y;aahua,he0;hIi2Gja,miAs2DtrH;id;aMlIraqHt21;at;eIi7yH;!n;e,iHy;gh;!nH;ti;iJleIo6piA;ta;en,n1t8;aHelG;!n1J;a01dje5eZgViTjRnKohito,toHya;inet8nH;el5ia;te;!aKeIiHmJ;e,ka;!mHtt7;ar4;!belIliHmU;sa;!l1;a,eliH;ca;ka,sHta;a,sa;elHie;a,iH;a,ca,n1qH;ue;!tH;a,te;!bImHstasiMya;ar3;el;aLberKeliJiHy;e,l3naH;!ta;a,ja;!ly;hGiIl3nB;da;a,ra;le;aWba,ePiMlKthJyH;a,c3sH;a,on,sa;ea;iHys0N;e,s0M;a,cIn1sHza;a,e,ha,on,sa;e,ia,ja;c3is6jaKksaKna,sJxH;aHia;!nd2;ia,saH;nd2;ra;ia;i0nIyH;ah,na;a,is,naCoud;la;c6da,leEmNnLsH;haClH;inHyY;g,n;!h;a,o,slH;ey;ee;en;at6g4nIusH;ti0;es;ie;aWdiTelMrH;eJiH;anMenH;a,e,ne;an0;na;!aLeKiIyH;nn;a,n1;a,e;!ne;!iH;de;e,lDsH;on;yn;!lH;i9yn;ne;aKbIiHrL;!e,gaK;ey,i7y;!e;gaH;il;dKliyJradhIs6;ha;ya;ah;a,ya",Honorific:"trueยฆdirector1field marsh2lieutenant1rear0sergeant major,vice0; admir1; gener0;al","Adj|Gerund":"trueยฆ0:3F;1:3H;2:31;3:2X;4:35;5:33;6:3C;7:2Z;8:36;9:29;a33b2Tc2Bd1Te1If19g12h0Zi0Rl0Nm0Gnu0Fo0Ap04rYsKtEuBvAw1Ayiel3;ar6e08;nBpA;l1Rs0B;fol3n1Zsett2;aEeDhrBi4ouc7rAwis0;e0Bif2oub2us0yi1;ea1SiA;l2vi1;l2mp0rr1J;nt1Vxi1;aMcreec7enten2NhLkyrocke0lo0Vmi2oJpHtDuBweA;e0Ul2;pp2ArA;gi1pri5roun3;aBea8iAri2Hun9;mula0r4;gge4rA;t2vi1;ark2eAraw2;e3llb2F;aAot7;ki1ri1;i9oc29;dYtisf6;aEeBive0oAus7;a4l2;assu4defi9fres7ig9juve07mai9s0vAwar3;ea2italiAol1G;si1zi1;gi1ll6mb2vi1;a6eDier23lun1VrAun2C;eBoA;mi5vo1Z;ce3s5vai2;n3rpleA;xi1;ffCpWutBverAwi1;arc7lap04p0Pri3whel8;goi1l6st1J;en3sA;et0;m2Jrtu4;aEeDiCoBuAyst0L;mb2;t1Jvi1;s5tiga0;an1Rl0n3smeri26;dAtu4;de9;aCeaBiAo0U;fesa0Tvi1;di1ni1;c1Fg19s0;llumiGmFnArri0R;cDfurHsCtBviA;go23ti1;e1Oimi21oxica0rig0V;pi4ul0;orpo20r0K;po5;na0;eaBorr02umilA;ia0;li1rtwar8;lFrA;atiDipCoBuelA;i1li1;undbrea10wi1;pi1;f6ng;a4ea8;a3etc7it0lEoCrBulfA;il2;ee1FighXust1L;rAun3;ebo3thco8;aCoA;a0wA;e4i1;mi1tte4;lectrJmHnExA;aCci0hBis0pA;an3lo3;aOila1B;c0spe1A;ab2coura0CdBergi13ga0Clive9ric7s02tA;hral2i0J;ea4u4;barras5er09pA;owe4;if6;aQeIiBrA;if0;sAzz6;aEgDhearCsen0tA;rAur11;ac0es5;te9;us0;ppoin0r8;biliGcDfi9gra3ligh0mBpres5sAvasG;erE;an3ea9orA;ali0L;a6eiBli9rA;ea5;vi1;ta0;maPri1s7un0zz2;aPhMlo5oAripp2ut0;mGnArrespon3;cer9fDspi4tA;inBrA;as0ibu0ol2;ui1;lic0u5;ni1;fDmCpA;eAromi5;l2ti1;an3;or0;aAil2;llenAnAr8;gi1;l8ptAri1;iva0;aff2eGin3lFoDrBuA;d3st2;eathtaAui5;ki1;gg2i2o8ri1unA;ci1;in3;co8wiA;lAtc7;de4;bsorVcOgonMlJmHnno6ppea2rFsA;pi4su4toA;nBun3;di1;is7;hi1;res0;li1;aFu5;si1;ar8lu4;ri1;mi1;iAzi1;zi1;cAhi1;eleDomA;moBpan6;yi1;da0;ra0;ti1;bi1;ng",Comparable:"trueยฆ0:3C;1:3Q;2:3F;a3Tb3Cc33d2Te2Mf2Ag1Wh1Li1Fj1Ek1Bl13m0Xn0So0Rp0Iqu0Gr07sHtCug0vAw4y3za0Q;el10ouN;ary,e6hi5i3ry;ck0Cde,l3n1ry,se;d,y;ny,te;a3i3R;k,ry;a3erda2ulgar;gue,in,st;a6en2Xhi5i4ouZr3;anqu2Cen1ue;dy,g36me0ny;ck,rs28;ll,me,rt,wd3I;aRcaPeOhMiLkin0BlImGoEpDt6u4w3;eet,ift;b3dd0Wperfi21rre28;sta26t21;a8e7iff,r4u3;pUr1;a4ict,o3;ng;ig2Vn0N;a1ep,rn;le,rk,te0;e1Si2Vright0;ci1Yft,l3on,re;emn,id;a3el0;ll,rt;e4i3y;g2Mm0Z;ek,nd2T;ck24l0mp1L;a3iRrill,y;dy,l01rp;ve0Jxy;n1Jr3;ce,y;d,fe,int0l1Hv0V;a8e6i5o3ude;mantic,o19sy,u3;gh;pe,t1P;a3d,mo0A;dy,l;gg4iFndom,p3re,w;id;ed;ai2i3;ck,et;hoAi1Fl9o8r5u3;ny,r3;e,p11;egna2ic4o3;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e5i4o3u14;b0Sisy,rm0Ysy;bb0ce,mb0R;a3r1w;r,t;ad,e5ild,o4u3;nda12te;ist,o1;a4ek,l3;low;s0ty;a8e7i6o3ucky;f0Jn4o15u3ve0w10y0N;d,sy;e0g;ke0l,mp,tt0Eve0;e1Qwd;me,r3te;ge;e4i3;nd;en;ol0ui19;cy,ll,n3;secu6t3;e3ima4;llege2rmedia3;te;re;aAe7i6o5u3;ge,m3ng1C;bYid;me0t;gh,l0;a3fXsita2;dy,rWv3;en0y;nd13ppy,r3;d3sh;!y;aFenEhCiBlAoofy,r3;a8e6i5o3ue0Z;o3ss;vy;m,s0;at,e3y;dy,n;nd,y;ad,ib,ooD;a2d1;a3o3;st0;tDuiS;u1y;aCeebBi9l8o6r5u3;ll,n3r0N;!ny;aCesh,iend0;a3nd,rmD;my;at,ir7;erce,nan3;ci9;le;r,ul3;ty;a6erie,sse4v3xtre0B;il;nti3;al;r4s3;tern,y;ly,th0;appZe9i5ru4u3;mb;nk;r5vi4z3;zy;ne;e,ty;a3ep,n9;d3f,r;!ly;agey,h8l7o5r4u3;dd0r0te;isp,uel;ar3ld,mmon,st0ward0zy;se;evKou1;e3il0;ap,e3;sy;aHiFlCoAr5u3;ff,r0sy;ly;a6i3oad;g4llia2;nt;ht;sh,ve;ld,un3;cy;a4o3ue;nd,o1;ck,nd;g,tt3;er;d,ld,w1;dy;bsu6ng5we3;so3;me;ry;rd",Adverb:"trueยฆa08b05d00eYfSheQinPjustOkinda,likewiZmMnJoEpCquite,r9s5t2u0very,well;ltima01p0; to,wards5;h1iny bit,o0wiO;o,t6;en,us;eldom,o0uch;!me1rt0; of;how,times,w0C;a1e0;alS;ndomRth05;ar excellenEer0oint blank; Lhaps;f3n0utright;ce0ly;! 0;ag05moX; courGten;ewJo0; longWt 0;onHwithstand9;aybe,eanwhiNore0;!ovT;! aboX;deed,steY;lla,n0;ce;or3u0;ck1l9rther0;!moK;ing; 0evK;exampCgood,suH;n mas0vI;se;e0irect2; 2fini0;te0;ly;juAtrop;ackward,y 0;far,no0; means,w; GbroFd nauseam,gEl7ny5part,s4t 2w0;ay,hi0;le;be7l0mo7wor7;arge,ea6; soon,i4;mo0way;re;l 3mo2ongsi1ready,so,togeth0ways;er;de;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"trueยฆaXbTcReNhowMiEjust00noBo9p8supposing,t5wh0yet;e1il0o3;e,st;n1re0thN; if,by,vM;evL;h0il,o;erefOo0;!uU;lus,rovided th9;r0therwiM;! not; mattEr,w0;! 0;since,th4w7;f4n0; 0asmuch;as mIcaForder t0;h0o;at;! 0;only,t0w0;hen;!ev3;ith2ven0;! 0;if,tB;er;o0uz;s,z;e0ut,y the time;cau1f0;ore;se;lt3nd,s 0;far1if,m0soon1t2;uch0; as;hou0;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",Determiner:"trueยฆaBboth,d9e6few,le5mu8neiDplenty,s4th2various,wh0;at0ich0;evC;a0e4is,ose;!t;everal,ome;!ast,s;a1l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er","Adj|Present":"trueยฆa07b04cVdQeNfJhollIidRlEmCnarrIoBp9qua8r7s3t2uttFw0;aKet,ro0;ng,u08;endChin;e2hort,l1mooth,our,pa9tray,u0;re,speU;i2ow;cu6da02leSpaN;eplica01i02;ck;aHerfePr0;eseUime,omV;bscu1pen,wn;atu0e3odeH;re;a2e1ive,ow0;er;an;st,y;ow;a2i1oul,r0;ee,inge;rm;iIke,ncy,st;l1mpty,x0;emHpress;abo4ic7;amp,e2i1oub0ry,ull;le;ffu9re6;fu8libe0;raE;alm,l5o0;mpleCn3ol,rr1unterfe0;it;e0u7;ct;juga8sum7;ea1o0;se;n,r;ankru1lu0;nt;pt;li2pproxi0rticula1;ma0;te;ght","Person|Adj":"trueยฆb3du2earnest,frank,mi2r0san1woo1;an0ich,u1;dy;sty;ella,rown",Modal:"trueยฆc5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Verb:"trueยฆborn,cannot,gonna,has,keep tabs,msg","Person|Verb":"trueยฆb8ch7dr6foster,gra5ja9lan4ma2ni9ollie,p1rob,s0wade;kip,pike,t5ue;at,eg,ier2;ck,r0;k,shal;ce;ce,nt;ew;ase,u1;iff,l1ob,u0;ck;aze,ossom","Person|Date":"trueยฆa2j0sep;an0une;!uary;p0ugust,v0;ril"};const cr=36,dr="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",hr=dr.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var gr=function(e){if(void 0!==hr[e])return hr[e];let t=0,n=1,a=cr,r=1;for(;n=0;n--,r*=cr){let a=e.charCodeAt(n)-48;a>10&&(a-=7),t+=a*r}return t};const mr=function(e,t,n){const a=gr(t);return a{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{let t=function(e){if(!e)return{};const t=e.split("|").reduce(((e,t)=>{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{if(Pr[t]=e,"Noun|Verb"===e){let e=vr(t,Ar);Pr[e]="Plural|Verb"}})):Object.keys(t).forEach((t=>{kr[t]=e}))})),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","kr[e]="Emoticon")),delete kr[""],delete kr.null,delete kr[" "];const Cr="Singular";var jr={beforeTags:{Determiner:Cr,Possessive:Cr,Acronym:Cr,Noun:Cr,Adjective:Cr,PresentTense:Cr,Gerund:Cr,PastTense:Cr,Infinitive:Cr,Date:Cr,Ordinal:Cr,Demonym:Cr},afterTags:{Value:Cr,Modal:Cr,Copula:Cr,PresentTense:Cr,PastTense:Cr,Demonym:Cr,Actor:Cr},beforeWords:{the:Cr,with:Cr,without:Cr,of:Cr,for:Cr,any:Cr,all:Cr,on:Cr,cut:Cr,cuts:Cr,increase:Cr,decrease:Cr,raise:Cr,drop:Cr,save:Cr,saved:Cr,saves:Cr,make:Cr,makes:Cr,made:Cr,minus:Cr,plus:Cr,than:Cr,another:Cr,versus:Cr,neither:Cr,about:Cr,favorite:Cr,best:Cr,daily:Cr,weekly:Cr,linear:Cr,binary:Cr,mobile:Cr,lexical:Cr,technical:Cr,computer:Cr,scientific:Cr,security:Cr,government:Cr,popular:Cr,formal:Cr,no:Cr,more:Cr,one:Cr,let:Cr,her:Cr,his:Cr,their:Cr,our:Cr,us:Cr,sheer:Cr,monthly:Cr,yearly:Cr,current:Cr,previous:Cr,upcoming:Cr,last:Cr,next:Cr,main:Cr,initial:Cr,final:Cr,beginning:Cr,end:Cr,top:Cr,bottom:Cr,future:Cr,past:Cr,major:Cr,minor:Cr,side:Cr,central:Cr,peripheral:Cr,public:Cr,private:Cr},afterWords:{of:Cr,system:Cr,aid:Cr,method:Cr,utility:Cr,tool:Cr,reform:Cr,therapy:Cr,philosophy:Cr,room:Cr,authority:Cr,says:Cr,said:Cr,wants:Cr,wanted:Cr,is:Cr,did:Cr,do:Cr,can:Cr,wise:Cr}};const Nr="Infinitive";var Ir={beforeTags:{Modal:Nr,Adverb:Nr,Negative:Nr,Plural:Nr},afterTags:{Determiner:Nr,Adverb:Nr,Possessive:Nr,Reflexive:Nr,Preposition:Nr,Cardinal:Nr,Comparative:Nr,Superlative:Nr},beforeWords:{i:Nr,we:Nr,you:Nr,they:Nr,to:Nr,please:Nr,will:Nr,have:Nr,had:Nr,would:Nr,could:Nr,should:Nr,do:Nr,did:Nr,does:Nr,can:Nr,must:Nr,us:Nr,me:Nr,let:Nr,even:Nr,when:Nr,help:Nr,he:Nr,she:Nr,it:Nr,being:Nr,bi:Nr,co:Nr,contra:Nr,de:Nr,inter:Nr,intra:Nr,mis:Nr,pre:Nr,out:Nr,counter:Nr,nobody:Nr,somebody:Nr,anybody:Nr,everybody:Nr},afterWords:{the:Nr,me:Nr,you:Nr,him:Nr,us:Nr,her:Nr,his:Nr,them:Nr,they:Nr,it:Nr,himself:Nr,herself:Nr,itself:Nr,myself:Nr,ourselves:Nr,themselves:Nr,something:Nr,anything:Nr,a:Nr,an:Nr,up:Nr,down:Nr,by:Nr,out:Nr,off:Nr,under:Nr,what:Nr,all:Nr,to:Nr,because:Nr,although:Nr,how:Nr,otherwise:Nr,together:Nr,though:Nr,into:Nr,yet:Nr,more:Nr,here:Nr,there:Nr,away:Nr}};const Dr={beforeTags:Object.assign({},Ir.beforeTags,jr.beforeTags,{}),afterTags:Object.assign({},Ir.afterTags,jr.afterTags,{}),beforeWords:Object.assign({},Ir.beforeWords,jr.beforeWords,{}),afterWords:Object.assign({},Ir.afterWords,jr.afterWords,{})},Hr="Adjective";var Tr={beforeTags:{Determiner:Hr,Possessive:Hr,Hyphenated:Hr},afterTags:{Adjective:Hr},beforeWords:{seem:Hr,seemed:Hr,seems:Hr,feel:Hr,feels:Hr,felt:Hr,stay:Hr,appear:Hr,appears:Hr,appeared:Hr,also:Hr,over:Hr,under:Hr,too:Hr,it:Hr,but:Hr,still:Hr,really:Hr,quite:Hr,well:Hr,very:Hr,truly:Hr,how:Hr,deeply:Hr,hella:Hr,profoundly:Hr,extremely:Hr,so:Hr,badly:Hr,mostly:Hr,totally:Hr,awfully:Hr,rather:Hr,nothing:Hr,something:Hr,anything:Hr,not:Hr,me:Hr,is:Hr,face:Hr,faces:Hr,faced:Hr,look:Hr,looks:Hr,looked:Hr,reveal:Hr,reveals:Hr,revealed:Hr,sound:Hr,sounded:Hr,sounds:Hr,remains:Hr,remained:Hr,prove:Hr,proves:Hr,proved:Hr,becomes:Hr,stays:Hr,tastes:Hr,taste:Hr,smells:Hr,smell:Hr,gets:Hr,grows:Hr,as:Hr,rings:Hr,radiates:Hr,conveys:Hr,convey:Hr,conveyed:Hr,of:Hr},afterWords:{too:Hr,also:Hr,or:Hr,enough:Hr,as:Hr}};const Gr="Gerund";var xr={beforeTags:{Adverb:Gr,Preposition:Gr,Conjunction:Gr},afterTags:{Adverb:Gr,Possessive:Gr,Person:Gr,Pronoun:Gr,Determiner:Gr,Copula:Gr,Preposition:Gr,Conjunction:Gr,Comparative:Gr},beforeWords:{been:Gr,keep:Gr,continue:Gr,stop:Gr,am:Gr,be:Gr,me:Gr,began:Gr,start:Gr,starts:Gr,started:Gr,stops:Gr,stopped:Gr,help:Gr,helps:Gr,avoid:Gr,avoids:Gr,love:Gr,loves:Gr,loved:Gr,hate:Gr,hates:Gr,hated:Gr},afterWords:{you:Gr,me:Gr,her:Gr,him:Gr,his:Gr,them:Gr,their:Gr,it:Gr,this:Gr,there:Gr,on:Gr,about:Gr,for:Gr,up:Gr,down:Gr}};const Er="Gerund",Fr="Adjective",Or={beforeTags:Object.assign({},Tr.beforeTags,xr.beforeTags,{Imperative:Er,Infinitive:Fr,Plural:Er}),afterTags:Object.assign({},Tr.afterTags,xr.afterTags,{Noun:Fr}),beforeWords:Object.assign({},Tr.beforeWords,xr.beforeWords,{is:Fr,are:Er,was:Fr,of:Fr,suggest:Er,suggests:Er,suggested:Er,recommend:Er,recommends:Er,recommended:Er,imagine:Er,imagines:Er,imagined:Er,consider:Er,considered:Er,considering:Er,resist:Er,resists:Er,resisted:Er,avoid:Er,avoided:Er,avoiding:Er,except:Fr,accept:Fr,assess:Er,explore:Er,fear:Er,fears:Er,appreciate:Er,question:Er,help:Er,embrace:Er,with:Fr}),afterWords:Object.assign({},Tr.afterWords,xr.afterWords,{to:Er,not:Er,the:Er})},zr={beforeTags:{Determiner:void 0,Cardinal:"Noun",PhrasalVerb:"Adjective"},afterTags:{}},Vr={beforeTags:Object.assign({},Tr.beforeTags,jr.beforeTags,zr.beforeTags),afterTags:Object.assign({},Tr.afterTags,jr.afterTags,zr.afterTags),beforeWords:Object.assign({},Tr.beforeWords,jr.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective",off:"Adjective",out:"Adjective"}),afterWords:Object.assign({},Tr.afterWords,jr.afterWords)};let Br="PastTense",Sr="Adjective";const Kr={beforeTags:{Adverb:Br,Pronoun:Br,ProperNoun:Br,Auxiliary:Br,Noun:Br},afterTags:{Possessive:Br,Pronoun:Br,Determiner:Br,Adverb:Br,Comparative:Br,Date:Br,Gerund:Br},beforeWords:{be:Br,who:Br,get:Sr,had:Br,has:Br,have:Br,been:Br,it:Br,as:Br,for:Sr,more:Sr,always:Sr},afterWords:{by:Br,back:Br,out:Br,in:Br,up:Br,down:Br,before:Br,after:Br,for:Br,the:Br,with:Br,as:Br,on:Br,at:Br,between:Br,to:Br,into:Br,us:Br,them:Br,his:Br,her:Br,their:Br,our:Br,me:Br,about:Sr}};var $r={beforeTags:Object.assign({},Tr.beforeTags,Kr.beforeTags),afterTags:Object.assign({},Tr.afterTags,Kr.afterTags),beforeWords:Object.assign({},Tr.beforeWords,Kr.beforeWords),afterWords:Object.assign({},Tr.afterWords,Kr.afterWords)};const Lr={afterTags:{Noun:"Adjective",Conjunction:void 0}},Mr={beforeTags:Object.assign({},Tr.beforeTags,Ir.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Tr.afterTags,Ir.afterTags,Lr.afterTags),beforeWords:Object.assign({},Tr.beforeWords,Ir.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Tr.afterWords,Ir.afterWords,{to:void 0,as:"Adjective"})},Jr={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},Wr={Value:"Gerund"},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"},Rr={beforeTags:Object.assign({},xr.beforeTags,jr.beforeTags,Jr),afterTags:Object.assign({},xr.afterTags,jr.afterTags,Wr),beforeWords:Object.assign({},xr.beforeWords,jr.beforeWords,Ur),afterWords:Object.assign({},xr.afterWords,jr.afterWords,qr)},Qr="Singular",Zr="Infinitive",Xr={beforeTags:Object.assign({},Ir.beforeTags,jr.beforeTags,{Adjective:Qr,Particle:Qr}),afterTags:Object.assign({},Ir.afterTags,jr.afterTags,{ProperNoun:Zr,Gerund:Zr,Adjective:Zr,Copula:Qr}),beforeWords:Object.assign({},Ir.beforeWords,jr.beforeWords,{is:Qr,was:Qr,of:Qr,have:null}),afterWords:Object.assign({},Ir.afterWords,jr.afterWords,{instead:Zr,about:Zr,his:Zr,her:Zr,to:null,by:null,in:null})},_r="Person";var Yr={beforeTags:{Honorific:_r,Person:_r},afterTags:{Person:_r,ProperNoun:_r,Verb:_r},ownTags:{ProperNoun:_r},beforeWords:{hi:_r,hey:_r,yo:_r,dear:_r,hello:_r},afterWords:{said:_r,says:_r,told:_r,tells:_r,feels:_r,felt:_r,seems:_r,thinks:_r,thought:_r,spends:_r,spendt:_r,plays:_r,played:_r,sing:_r,sang:_r,learn:_r,learned:_r,wants:_r,wanted:_r}};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,with:"Person"},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",ro={beforeTags:{Place:ao},afterTags:{Place:ao,Abbreviation:ao},beforeWords:{in:ao,by:ao,near:ao,from:ao,to:ao},afterWords:{in:ao,by:ao,near:ao,from:ao,to:ao,government:ao,council:ao,region:ao,city:ao}};let oo="Unit";const io={"Actor|Verb":Dr,"Adj|Gerund":Or,"Adj|Noun":Vr,"Adj|Past":$r,"Adj|Present":Mr,"Noun|Verb":Xr,"Noun|Gerund":Rr,"Person|Noun":{beforeTags:Object.assign({},jr.beforeTags,Yr.beforeTags),afterTags:Object.assign({},jr.afterTags,Yr.afterTags),beforeWords:Object.assign({},jr.beforeWords,Yr.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},jr.afterWords,Yr.afterWords)},"Person|Date":no,"Person|Verb":{beforeTags:Object.assign({},jr.beforeTags,Yr.beforeTags,Ir.beforeTags),afterTags:Object.assign({},jr.afterTags,Yr.afterTags,Ir.afterTags),beforeWords:Object.assign({},jr.beforeWords,Yr.beforeWords,Ir.beforeWords),afterWords:Object.assign({},jr.afterWords,Yr.afterWords,Ir.afterWords)},"Person|Place":{beforeTags:Object.assign({},ro.beforeTags,Yr.beforeTags),afterTags:Object.assign({},ro.afterTags,Yr.afterTags),beforeWords:Object.assign({},ro.beforeWords,Yr.beforeWords),afterWords:Object.assign({},ro.afterWords,Yr.afterWords)},"Person|Adj":{beforeTags:Object.assign({},Yr.beforeTags,Tr.beforeTags),afterTags:Object.assign({},Yr.afterTags,Tr.afterTags),beforeWords:Object.assign({},Yr.beforeWords,Tr.beforeWords),afterWords:Object.assign({},Yr.afterWords,Tr.afterWords)},"Unit|Noun":{beforeTags:{Value:oo},afterTags:{},beforeWords:{per:oo,every:oo,each:oo,square:oo,cubic:oo,sq:oo,metric:oo},afterWords:{per:oo,squared:oo,cubed:oo,long:oo}}},so=(e,t)=>{let n=Object.keys(e).reduce(((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t)),{});return Object.assign(n,t)};io["Plural|Verb"]={beforeWords:so(io["Noun|Verb"].beforeWords,{had:"Plural",have:"Plural"}),afterWords:so(io["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null,is:"PresentTense",by:"PresentTense"}),beforeTags:so(io["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:so(io["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};const lo="Adjective",uo="Infinitive",co="PresentTense",ho="Singular",go="PastTense",mo="Adverb",po="Plural",fo="Actor",bo="Verb",yo="Noun",vo="LastName",wo="Modal",ko="Place",Po="Participle";var Ao=[null,null,{ea:ho,ia:yo,ic:lo,ly:mo,"'n":bo,"'t":bo},{oed:go,ued:go,xed:go," so":mo,"'ll":wo,"'re":"Copula",azy:lo,eer:yo,end:bo,ped:go,ffy:lo,ify:uo,ing:"Gerund",ize:uo,ibe:uo,lar:lo,mum:lo,nes:co,nny:lo,ous:lo,que:lo,ger:yo,ber:yo,rol:ho,sis:ho,ogy:ho,oid:ho,ian:ho,zes:co,eld:go,ken:Po,ven:Po,ten:Po,ect:uo,ict:uo,ign:uo,oze:uo,ful:lo,bal:lo,ton:yo,pur:ko},{amed:go,aped:go,ched:go,lked:go,rked:go,reed:go,nded:go,mned:lo,cted:go,dged:go,ield:ho,akis:vo,cede:uo,chuk:vo,czyk:vo,ects:co,iend:ho,ends:bo,enko:vo,ette:ho,iary:ho,wner:ho,fies:co,fore:mo,gate:uo,gone:lo,ices:po,ints:po,ruct:uo,ines:po,ions:po,ners:po,pers:po,lers:po,less:lo,llen:lo,made:lo,nsen:vo,oses:co,ould:wo,some:lo,sson:vo,ians:po,tion:ho,tage:yo,ique:ho,tive:lo,tors:yo,vice:ho,lier:ho,fier:ho,wned:go,gent:ho,tist:fo,pist:fo,rist:fo,mist:fo,yist:fo,vist:fo,ists:fo,lite:ho,site:ho,rite:ho,mite:ho,bite:ho,mate:ho,date:ho,ndal:ho,vent:ho,uist:fo,gist:fo,note:ho,cide:ho,ence:ho,wide:lo,vide:uo,ract:uo,duce:uo,pose:uo,eive:uo,lyze:uo,lyse:uo,iant:lo,nary:lo,ghty:lo,uent:lo,erer:fo,bury:ko,dorf:yo,esty:yo,wych:ko,dale:ko,folk:ko,vale:ko,abad:ko,sham:ko,wick:ko,view:ko},{elist:fo,holic:ho,phite:ho,tized:go,urned:go,eased:go,ances:po,bound:lo,ettes:po,fully:mo,ishes:co,ities:po,marek:vo,nssen:vo,ology:yo,osome:ho,tment:ho,ports:po,rough:lo,tches:co,tieth:"Ordinal",tures:po,wards:mo,where:mo,archy:yo,pathy:yo,opoly:yo,embly:yo,phate:yo,ndent:ho,scent:ho,onist:fo,anist:fo,alist:fo,olist:fo,icist:fo,ounce:uo,iable:lo,borne:lo,gnant:lo,inant:lo,igent:lo,atory:lo,rient:ho,dient:ho,maker:fo,burgh:ko,mouth:ko,ceter:ko,ville:ko,hurst:ko,stead:ko,endon:ko,brook:ko,shire:ko,worth:yo,field:"ProperNoun",ridge:ko},{auskas:vo,parent:ho,cedent:ho,ionary:ho,cklist:ho,brooke:ko,keeper:fo,logist:fo,teenth:"Value",worker:fo,master:fo,writer:fo,brough:ko,cester:ko,ington:ko,cliffe:ko,ingham:ko},{chester:ko,logists:fo,opoulos:vo,borough:ko,sdottir:vo}];const Co="Adjective",jo="Noun",No="Verb";var Io=[null,null,{},{neo:jo,bio:jo,"de-":No,"re-":No,"un-":No,"ex-":jo},{anti:jo,auto:jo,faux:Co,hexa:jo,kilo:jo,mono:jo,nano:jo,octa:jo,poly:jo,semi:Co,tele:jo,"pro-":Co,"mis-":No,"dis-":No,"pre-":Co},{anglo:jo,centi:jo,ethno:jo,ferro:jo,grand:jo,hepta:jo,hydro:jo,intro:jo,macro:jo,micro:jo,milli:jo,nitro:jo,penta:jo,quasi:Co,radio:jo,tetra:jo,"omni-":Co,"post-":Co},{pseudo:Co,"extra-":Co,"hyper-":Co,"inter-":Co,"intra-":Co,"deca-":Co},{electro:jo}];const Do="Adjective",Ho="Infinitive",To="PresentTense",Go="Singular",xo="PastTense",Eo="Adverb",Fo="Expression",Oo="Actor",zo="Verb",Vo="Noun",Bo="LastName";var So={a:[[/.[aeiou]na$/,Vo,"tuna"],[/.[oau][wvl]ska$/,Bo],[/.[^aeiou]ica$/,Go,"harmonica"],[/^([hyj]a+)+$/,Fo,"haha"]],c:[[/.[^aeiou]ic$/,Do]],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$/,Go,"steward"],[/[aeiou][^aeiou]id$/,Do,""],[/.[vrl]id$/,Do,"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$/,Ho,"antagonize"],[/.[^aeiou]ise$/,Ho,"antagonise"],[/.[aeiou]te$/,Ho,"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$/,Bo,"..ovich"],[/^ug?h+$/,Fo,"ughh"],[/^uh[ -]?oh$/,Fo,"uhoh"],[/[a-z]-ish$/,Do,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Bo,"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$/,Go,"magnesium"],[/[^aeiou]ism$/,Go,"schism"],[/^[hu]m+$/,Fo,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Do,"republican"],[/[^aeiou]ician$/,Oo,"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$/,Go],[/[^i]fer$/,Ho],[/.[^aeiou][ao]pher$/,Oo],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Do],[/[aeiou].*ist$/,Do],[/^[a-z]et$/,zo]],s:[[/.[^aeiou]ises$/,To],[/.[rln]ates$/,To],[/.[^z]ens$/,zo],[/.[lstrn]us$/,Go],[/.[aeiou]sks$/,To],[/.[aeiou]kes$/,To],[/[aeiou][^aeiou]is$/,Go],[/[a-z]'s$/,Vo],[/^yes+$/,Fo]],v:[[/.[^aeiou][ai][kln]ov$/,Bo]],y:[[/.[cts]hy$/,Do],[/.[st]ty$/,Do],[/.[tnl]ary$/,Do],[/.[oe]ry$/,Go],[/[rdntkbhs]ly$/,Eo],[/.(gg|bb|zz)ly$/,Do],[/...lly$/,Eo],[/.[gk]y$/,Do],[/[bszmp]{2}y$/,Do],[/.[ai]my$/,Do],[/[ea]{2}zy$/,Do],[/.[^aeiou]ity$/,Go]]};const Ko="Verb",$o="Noun";var Lo={leftTags:[["Adjective",$o],["Possessive",$o],["Determiner",$o],["Adverb",Ko],["Pronoun",Ko],["Value",$o],["Ordinal",$o],["Modal",Ko],["Superlative",$o],["Demonym",$o],["Honorific","Person"]],leftWords:[["i",Ko],["first",$o],["it",Ko],["there",Ko],["not",Ko],["because",$o],["if",$o],["but",$o],["who",Ko],["this",$o],["his",$o],["when",$o],["you",Ko],["very","Adjective"],["old",$o],["never",Ko],["before",$o],["a",$o],["the",$o],["been",Ko]],rightTags:[["Copula",$o],["PastTense",$o],["Conjunction",$o],["Modal",$o]],rightWords:[["there",Ko],["me",Ko],["man","Adjective"],["him",Ko],["it",Ko],["were",$o],["took",$o],["himself",Ko],["went",$o],["who",$o],["jr","Person"]]},Mo={fwd:"3:ser,ierยฆ1er:h,t,f,l,nยฆ1r:eยฆ2er:ss,or,om",both:"3er:ver,ear,almยฆ3ner:hinยฆ3ter:latยฆ2mer:imยฆ2er:ng,rm,mbยฆ2ber:ibยฆ2ger:igยฆ1er:w,p,k,dยฆier:y",rev:"1:tter,yerยฆ2:uer,ver,ffer,oner,eler,ller,iler,ster,cer,uler,sher,ener,gher,aner,adder,nter,eter,rter,hter,rner,fterยฆ3:oser,ooler,eafer,user,airer,bler,maler,tler,eater,uger,rger,ainer,urer,ealer,icher,pler,emner,icter,nser,iserยฆ4:arser,viner,ucher,rosser,somer,ndomer,moter,oother,uarer,hiterยฆ5:nuiner,esser,emierยฆar:urther",ex:"worse:badยฆbetter:goodยฆ4er:fair,gray,poorยฆ1urther:farยฆ3ter:fat,hot,wetยฆ3der:mad,sadยฆ3er:shy,funยฆ4der:gladยฆ:ยฆ4r:cute,dire,fake,fine,free,lame,late,pale,rare,ripe,rude,safe,sore,tame,wideยฆ5r:eerie,stale"},Jo={fwd:"1:nning,tting,rring,pping,eing,mming,gging,dding,bbing,kkingยฆ2:eking,oling,eling,emingยฆ3:velling,siting,uiting,fiting,loting,geting,ialing,cellingยฆ4:graming",both:"1:aing,iing,fing,xing,ying,oing,hing,wingยฆ2:tzing,rping,izzing,bting,mning,sping,wling,rling,wding,rbing,uping,lming,wning,mping,oning,lting,mbing,lking,fting,hting,sking,gning,pting,cking,ening,nking,iling,eping,ering,rting,rming,cting,lping,ssing,nting,nding,lding,sting,rning,rding,rkingยฆ3:belling,siping,toming,yaking,uaking,oaning,auling,ooping,aiding,naping,euring,tolling,uzzing,ganing,haning,ualing,halling,iasing,auding,ieting,ceting,ouling,voring,ralling,garing,joring,oaming,oaking,roring,nelling,ooring,uelling,eaming,ooding,eaping,eeting,ooting,ooming,xiting,keting,ooking,ulling,airing,oaring,biting,outing,oiting,earing,naling,oading,eeding,ouring,eaking,aiming,illing,oining,eaning,onging,ealing,aining,eadingยฆ4:thoming,melling,aboring,ivoting,weating,dfilling,onoring,eriting,imiting,tialling,rgining,otoring,linging,winging,lleting,louding,spelling,mpelling,heating,feating,opelling,choring,welling,ymaking,ctoring,calling,peating,iloring,laiting,utoring,uditing,mmaking,loating,iciting,waiting,mbating,voiding,otalling,nsoring,nselling,ocusing,itoring,elopingยฆ5:rselling,umpeting,atrolling,treating,tselling,rpreting,pringing,ummeting,ossoming,elmaking,eselling,rediting,totyping,onmaking,rfeiting,ntrollingยฆ5e:chmaking,dkeeping,severing,erouting,ecreting,ephoning,uthoring,ravening,reathing,pediting,erfering,eotyping,fringing,entoring,ombining,ompetingยฆ4e:emaking,eething,twining,rruling,chuting,xciting,rseding,scoping,edoring,pinging,lunging,agining,craping,pleting,eleting,nciting,nfining,ncoding,tponing,ecoding,writing,esaling,nvening,gnoring,evoting,mpeding,rvening,dhering,mpiling,storing,nviting,ploringยฆ3e:tining,nuring,saking,miring,haling,ceding,xuding,rining,nuting,laring,caring,miling,riding,hoking,piring,lading,curing,uading,noting,taping,futing,paring,hading,loding,siring,guring,vading,voking,during,niting,laning,caping,luting,muting,ruding,ciding,juring,laming,caling,hining,uoting,liding,ciling,duling,tuting,puting,cuting,coring,uiding,tiring,turing,siding,rading,enging,haping,buting,lining,taking,anging,haring,uiring,coming,mining,moting,suring,viding,ludingยฆ2e:tring,zling,uging,oging,gling,iging,vring,fling,lging,obing,psing,pling,ubing,cling,dling,wsing,iking,rsing,dging,kling,ysing,tling,rging,eging,nsing,uning,osing,uming,using,ibing,bling,aging,ising,asing,atingยฆ2ie:rlyingยฆ1e:zing,uing,cing,ving",rev:"ying:ieยฆ1ing:se,ke,te,we,ne,re,de,pe,me,le,c,heยฆ2ing:ll,ng,dd,ee,ye,oe,rg,usยฆ2ning:unยฆ2ging:og,ag,ug,ig,egยฆ2ming:umยฆ2bing:ub,ab,eb,obยฆ3ning:lan,can,hin,pin,winยฆ3ring:cur,lur,tir,tar,pur,carยฆ3ing:ait,del,eel,fin,eat,oat,eem,lel,ool,ein,uinยฆ3ping:rop,rap,top,uip,wap,hip,hop,lap,rip,capยฆ3ming:tem,wim,rim,kim,limยฆ3ting:mat,cut,pot,lit,lot,hat,set,pit,putยฆ3ding:hed,bed,bidยฆ3king:rekยฆ3ling:cil,pelยฆ3bing:ribยฆ4ning:eginยฆ4ing:isit,ruit,ilot,nsit,dget,rkel,ival,rcelยฆ4ring:efer,nferยฆ4ting:rmit,mmit,ysit,dmit,emit,bmit,tfit,gretยฆ4ling:evel,xcel,ivelยฆ4ding:hredยฆ5ing:arget,posit,rofitยฆ5ring:nsferยฆ5ting:nsmit,orget,cquitยฆ5ling:ancel,istil",ex:"3:adding,eating,aiming,aiding,airing,outing,gassing,setting,getting,putting,cutting,winning,sitting,betting,mapping,tapping,letting,bidding,hitting,tanning,netting,popping,fitting,capping,lapping,barring,banning,vetting,topping,rotting,tipping,potting,wetting,pitting,dipping,budding,hemming,pinning,jetting,kidding,padding,podding,sipping,wedding,bedding,donning,warring,penning,gutting,cueing,wadding,petting,ripping,napping,matting,tinning,binning,dimming,hopping,mopping,nodding,panning,rapping,ridding,sinningยฆ4:selling,falling,calling,waiting,editing,telling,rolling,heating,boating,hanging,beating,coating,singing,tolling,felling,polling,discing,seating,voiding,gelling,yelling,baiting,reining,ruining,seeking,spanning,stepping,knitting,emitting,slipping,quitting,dialing,omitting,clipping,shutting,skinning,abutting,flipping,trotting,cramming,fretting,suitingยฆ5:bringing,treating,spelling,stalling,trolling,expelling,rivaling,wringing,deterring,singeing,befitting,refittingยฆ6:enrolling,distilling,scrolling,strolling,caucusing,travellingยฆ7:installing,redefining,stencilling,recharging,overeating,benefiting,unraveling,programingยฆ9:reprogrammingยฆis:beingยฆ2e:using,aging,owingยฆ3e:making,taking,coming,noting,hiring,filing,coding,citing,doping,baking,coping,hoping,lading,caring,naming,voting,riding,mining,curing,lining,ruling,typing,boring,dining,firing,hiding,piling,taping,waning,baling,boning,faring,honing,wiping,luring,timing,wading,piping,fading,biting,zoning,daring,waking,gaming,raking,ceding,tiring,coking,wining,joking,paring,gaping,poking,pining,coring,liming,toting,roping,wiring,achingยฆ4e:writing,storing,eroding,framing,smoking,tasting,wasting,phoning,shaking,abiding,braking,flaking,pasting,priming,shoring,sloping,withing,hingingยฆ5e:defining,refining,renaming,swathing,fringing,recitingยฆ1ie:dying,tying,lying,vyingยฆ7e:sunbathing"},Wo={fwd:"1:mtยฆ2:llenยฆ3:iven,akenยฆ:neยฆy:in",both:"1:wnยฆ2:me,atenยฆ3:seen,bidden,isenยฆ4:roven,astenยฆ3l:piltยฆ3d:uiltยฆ2e:ittenยฆ1im:wumยฆ1eak:pokenยฆ1ine:honeยฆ1ose:osenยฆ1in:gunยฆ1ake:wokenยฆear:ornยฆeal:olenยฆeeze:ozenยฆet:ottenยฆink:unkยฆing:ung",rev:"2:unยฆoken:eakยฆought:eekยฆoven:eaveยฆ1ne:oยฆ1own:lyยฆ1den:deยฆ1in:ayยฆ2t:amยฆ2n:eeยฆ3en:allยฆ4n:rive,sake,takeยฆ5n:rgive",ex:"2:beenยฆ3:seen,runยฆ4:given,takenยฆ5:shakenยฆ2eak:brokenยฆ1ive:doveยฆ2y:flownยฆ3e:hidden,riddenยฆ1eek:soughtยฆ1ake:wokenยฆ1eave:woven"},Uo={fwd:"1:oesยฆ1ve:as",both:"1:xesยฆ2:zzes,ches,shes,ssesยฆ3:iasesยฆ2y:llies,pliesยฆ1y:cies,bies,ties,vies,nies,pies,dies,ries,fiesยฆ:s",rev:"1ies:lyยฆ2es:us,go,doยฆ3es:cho,eto",ex:"2:does,goesยฆ3:gassesยฆ5:focusesยฆis:areยฆ3y:reliesยฆ2y:fliesยฆ2ve:has"},qo={fwd:"1st:eยฆ1est:l,m,f,sยฆ1iest:ceyยฆ2est:or,irยฆ3est:ver",both:"4:eastยฆ5:hwestยฆ5lest:erfulยฆ4est:weet,lgar,tter,oungยฆ4most:uterยฆ3est:ger,der,rey,iet,ong,earยฆ3test:latยฆ3most:nerยฆ2est:pt,ft,nt,ct,rt,htยฆ2test:itยฆ2gest:igยฆ1est:b,k,n,p,h,d,wยฆiest:y",rev:"1:ttest,nnest,yestยฆ2:sest,stest,rmest,cest,vest,lmest,olest,ilest,ulest,ssest,imest,uestยฆ3:rgest,eatest,oorest,plest,allest,urest,iefest,uelest,blest,ugest,amest,yalest,ealest,illest,tlest,itestยฆ4:cerest,eriest,somest,rmalest,ndomest,motest,uarest,tiffestยฆ5:leverest,rangestยฆar:urthestยฆ3ey:riciest",ex:"best:goodยฆworst:badยฆ5est:greatยฆ4est:fast,full,fair,dullยฆ3test:hot,wet,fatยฆ4nest:thinยฆ1urthest:farยฆ3est:gay,shy,illยฆ4test:neatยฆ4st:late,wide,fine,safe,cute,fake,pale,rare,rude,sore,ripe,direยฆ6st:severe"},Ro={fwd:"1:tistic,eable,lful,sful,ting,ttyยฆ2:onate,rtable,geous,ced,seful,ctfulยฆ3:ortive,entedยฆarity:earยฆy:eticยฆfulness:begoneยฆ1ity:reยฆ1y:tiful,gicยฆ2ity:ile,imous,ilous,imeยฆ2ion:atedยฆ2eness:ivingยฆ2y:triousยฆ2ation:iringยฆ2tion:vantยฆ3ion:ectยฆ3ce:mant,manticยฆ3tion:irableยฆ3y:est,esticยฆ3m:mistic,listicยฆ3ess:ningยฆ4n:utiousยฆ4on:rative,native,vative,ectiveยฆ4ce:erant",both:"1:king,wingยฆ2:alous,ltuous,oyful,rdousยฆ3:gorous,ectable,werful,amaticยฆ4:oised,usical,agical,raceful,ocused,lined,ightfulยฆ5ness:stful,lding,itous,nuous,ulous,otous,nable,gious,ayful,rvous,ntous,lsive,peful,entle,ciful,osive,leful,isive,ncise,reful,miousยฆ5ty:ivaciousยฆ5ties:ubtleยฆ5ce:ilient,adiant,atientยฆ5cy:icientยฆ5sm:gmaticยฆ5on:sessive,dictiveยฆ5ity:pular,sonal,eative,enticยฆ5sity:uminousยฆ5ism:conicยฆ5nce:mperateยฆ5ility:mitableยฆ5ment:xcitedยฆ5n:bitiousยฆ4cy:brant,etent,curateยฆ4ility:erable,acable,icable,ptableยฆ4ty:nacious,aive,oyal,daciousยฆ4n:iciousยฆ4ce:vient,erent,stent,ndent,dient,quent,identยฆ4ness:adic,ound,hing,pant,sant,oing,oist,tuteยฆ4icity:impleยฆ4ment:fined,musedยฆ4ism:oticยฆ4ry:danticยฆ4ity:tund,eralยฆ4edness:handยฆ4on:uitiveยฆ4lity:pitableยฆ4sm:eroic,namicยฆ4sity:nerousยฆ3th:armยฆ3ility:pable,bable,dable,iableยฆ3cy:hant,nant,icateยฆ3ness:red,hin,nse,ict,iet,ite,oud,ind,ied,rceยฆ3ion:luteยฆ3ity:ual,gal,volous,ialยฆ3ce:sent,fensive,lant,gant,gent,lent,dantยฆ3on:asiveยฆ3m:fist,sistic,iasticยฆ3y:terious,xurious,ronic,tasticยฆ3ur:amorousยฆ3e:tunateยฆ3ation:minedยฆ3sy:rteousยฆ3ty:ainยฆ3ry:aveยฆ3ment:azedยฆ2ness:de,on,ue,rn,ur,ft,rp,pe,om,ge,rd,od,ay,ss,er,ll,oy,ap,ht,ld,ad,rtยฆ2inousness:umousยฆ2ity:neous,ene,id,aneยฆ2cy:bate,lateยฆ2ation:izedยฆ2ility:oble,ibleยฆ2y:odicยฆ2e:oving,aringยฆ2s:ostยฆ2itude:ptยฆ2dom:eeยฆ2ance:uringยฆ2tion:reetยฆ2ion:otedยฆ2sion:endingยฆ2liness:anยฆ2or:rdentยฆ1th:ungยฆ1e:uableยฆ1ness:w,h,k,fยฆ1ility:mbleยฆ1or:ventยฆ1ement:gingยฆ1tiquity:ncientยฆ1ment:hedยฆverty:orยฆength:ongยฆeat:otยฆpth:epยฆiness:y",rev:"",ex:"5:forceful,humorousยฆ8:charismaticยฆ13:understandingยฆ5ity:activeยฆ11ness:adventurous,inquisitive,resourcefulยฆ8on:aggressive,automatic,perceptiveยฆ7ness:amorous,fatuous,furtive,ominous,seriousยฆ5ness:ample,sweetยฆ12ness:apprehensive,cantankerous,contemptuous,ostentatiousยฆ13ness:argumentative,conscientiousยฆ9ness:assertive,facetious,imperious,inventive,oblivious,rapacious,receptive,seditious,whimsicalยฆ10ness:attractive,expressive,impressive,loquacious,salubrious,thoughtfulยฆ3edom:boringยฆ4ness:calm,fast,keen,tameยฆ8ness:cheerful,gracious,specious,spurious,timorous,unctuousยฆ5sity:curiousยฆ9ion:deliberateยฆ8ion:desperateยฆ6e:expensiveยฆ7ce:fragrantยฆ3y:furiousยฆ9ility:ineluctableยฆ6ism:mysticalยฆ8ity:physical,proactive,sensitive,verticalยฆ5cy:pliantยฆ7ity:positiveยฆ9ity:practicalยฆ12ism:professionalยฆ6ce:prudentยฆ3ness:redยฆ6cy:vagrantยฆ3dom:wise"};const Qo=function(e="",t={}){let n=function(e,t={}){return t.hasOwnProperty(e)?t[e]:null}(e,t.ex);return n=n||function(e,t=[]){for(let n=0;n=1;a-=1){let r=e.length-a,o=e.substring(r,e.length);if(!0===t.hasOwnProperty(o))return e.slice(0,r)+t[o];if(!0===n.hasOwnProperty(o))return e.slice(0,r)+n[o]}return t.hasOwnProperty("")?e+t[""]:n.hasOwnProperty("")?e+n[""]:null}(e,t.fwd,t.both),n=n||e,n},Zo=function(e){return Object.entries(e).reduce(((e,t)=>(e[t[1]]=t[0],e)),{})},Xo=function(e={}){return{reversed:!0,both:Zo(e.both),ex:Zo(e.ex),fwd:e.rev||{}}},_o=/^([0-9]+)/,Yo=function(e){let t=function(e){let t={};return e.split("ยฆ").forEach((e=>{let[n,a]=e.split(":");a=(a||"").split(","),a.forEach((e=>{t[e]=n}))})),t}(e);return Object.keys(t).reduce(((e,n)=>(e[n]=function(e="",t=""){let n=(t=String(t)).match(_o);if(null===n)return t;let a=Number(n[1])||0;return e.substring(0,a)+t.replace(_o,"")}(n,t[n]),e)),{})},ei=function(e={}){return"string"==typeof e&&(e=JSON.parse(e)),e.fwd=Yo(e.fwd||""),e.both=Yo(e.both||""),e.rev=Yo(e.rev||""),e.ex=Yo(e.ex||""),e},ti=ei({fwd:"1:tted,wed,gged,nned,een,rred,pped,yed,bbed,oed,dded,rd,wn,mmedยฆ2:eed,nded,et,hted,st,oled,ut,emed,eled,lded,ken,rt,nked,apt,ant,eped,ekedยฆ3:eared,eat,eaded,nelled,ealt,eeded,ooted,eaked,eaned,eeted,mited,bid,uit,ead,uited,ealed,geted,velled,ialed,belledยฆ4:ebuted,hined,comedยฆy:iedยฆome:ameยฆear:oreยฆind:oundยฆing:ung,angยฆep:ptยฆink:ank,unkยฆig:ugยฆall:ellยฆee:awยฆive:aveยฆeeze:ozeยฆold:eldยฆave:ftยฆake:ookยฆell:oldยฆite:oteยฆide:odeยฆine:oneยฆin:un,onยฆeal:oleยฆim:amยฆie:ayยฆand:oodยฆ1ise:roseยฆ1eak:rokeยฆ1ing:roughtยฆ1ive:roveยฆ1el:eltยฆ1id:badeยฆ1et:gotยฆ1y:aidยฆ1it:satยฆ3e:lidยฆ3d:pent",both:"1:aed,fed,xed,hedยฆ2:sged,xted,wled,rped,lked,kied,lmed,lped,uped,bted,rbed,rked,wned,rled,mped,fted,mned,mbed,zzed,omed,ened,cked,gned,lted,sked,ued,zed,nted,ered,rted,rmed,ced,sted,rned,ssed,rded,pted,ved,ctedยฆ3:cled,eined,siped,ooned,uked,ymed,jored,ouded,ioted,oaned,lged,asped,iged,mured,oided,eiled,yped,taled,moned,yled,lit,kled,oaked,gled,naled,fled,uined,oared,valled,koned,soned,aided,obed,ibed,meted,nicked,rored,micked,keted,vred,ooped,oaded,rited,aired,auled,filled,ouled,ooded,ceted,tolled,oited,bited,aped,tled,vored,dled,eamed,nsed,rsed,sited,owded,pled,sored,rged,osed,pelled,oured,psed,oated,loned,aimed,illed,eured,tred,ioned,celled,bled,wsed,ooked,oiled,itzed,iked,iased,onged,ased,ailed,uned,umed,ained,auded,nulled,ysed,eged,ised,aged,oined,ated,used,dged,donedยฆ4:ntied,efited,uaked,caded,fired,roped,halled,roked,himed,culed,tared,lared,tuted,uared,routed,pited,naked,miled,houted,helled,hared,cored,caled,tired,peated,futed,ciled,called,tined,moted,filed,sided,poned,iloted,honed,lleted,huted,ruled,cured,named,preted,vaded,sured,talled,haled,peded,gined,nited,uided,ramed,feited,laked,gured,ctored,unged,pired,cuted,voked,eloped,ralled,rined,coded,icited,vided,uaded,voted,mined,sired,noted,lined,nselled,luted,jured,fided,puted,piled,pared,olored,cided,hoked,enged,tured,geoned,cotted,lamed,uiled,waited,udited,anged,luded,mired,uired,radedยฆ5:modelled,izzled,eleted,umpeted,ailored,rseded,treated,eduled,ecited,rammed,eceded,atrolled,nitored,basted,twined,itialled,ncited,gnored,ploded,xcited,nrolled,namelled,plored,efeated,redited,ntrolled,nfined,pleted,llided,lcined,eathed,ibuted,lloted,dhered,ccededยฆ3ad:sledยฆ2aw:drewยฆ2ot:hotยฆ2ke:madeยฆ2ow:hrew,grewยฆ2ose:hoseยฆ2d:iltยฆ2in:eganยฆ1un:ranยฆ1ink:houghtยฆ1ick:tuckยฆ1ike:ruckยฆ1eak:poke,nuckยฆ1it:patยฆ1o:didยฆ1ow:newยฆ1ake:wokeยฆgo:went",rev:"3:rst,hed,hut,cut,setยฆ4:tbidยฆ5:dcast,eread,pread,erbidยฆought:uy,eekยฆ1ied:ny,ly,dy,ry,fy,py,vy,by,ty,cyยฆ1ung:ling,ting,wingยฆ1pt:eepยฆ1ank:rinkยฆ1ore:bear,wearยฆ1ave:giveยฆ1oze:reezeยฆ1ound:rind,windยฆ1ook:take,hakeยฆ1aw:seeยฆ1old:sellยฆ1ote:riteยฆ1ole:tealยฆ1unk:tinkยฆ1am:wimยฆ1ay:lieยฆ1ood:tandยฆ1eld:holdยฆ2d:he,ge,re,le,leed,ne,reed,be,ye,lee,pe,weยฆ2ed:dd,oy,or,ey,gg,rr,us,ew,toยฆ2ame:ecome,rcomeยฆ2ped:apยฆ2ged:ag,og,ug,egยฆ2bed:ub,ab,ib,obยฆ2lt:neelยฆ2id:payยฆ2ang:pringยฆ2ove:triveยฆ2med:umยฆ2ode:rrideยฆ2at:ysitยฆ3ted:mit,hat,mat,lat,pot,rot,batยฆ3ed:low,end,tow,und,ond,eem,lay,cho,dow,xit,eld,ald,uld,law,lel,eat,oll,ray,ank,fin,oam,out,how,iek,tay,haw,ait,vet,say,cay,bowยฆ3d:ste,ede,ode,ete,ree,ude,ame,oke,ote,ime,ute,adeยฆ3red:lur,cur,pur,carยฆ3ped:hop,rop,uip,rip,lip,tep,topยฆ3ded:bed,rod,kidยฆ3ade:orbidยฆ3led:uelยฆ3ned:lan,can,kin,pan,tunยฆ3med:rim,limยฆ4ted:quit,llotยฆ4ed:pear,rrow,rand,lean,mand,anel,pand,reet,link,abel,evel,imit,ceed,ruit,mind,peal,veal,hool,head,pell,well,mell,uell,band,hear,weakยฆ4led:nnel,qual,ebel,ivelยฆ4red:nfer,efer,sferยฆ4n:sake,trewยฆ4d:nteeยฆ4ded:hredยฆ4ned:rpinยฆ5ed:light,nceal,right,ndear,arget,hread,eight,rtial,ebootยฆ5d:edite,nviteยฆ5ted:egretยฆ5led:ravel",ex:"2:been,uppedยฆ3:added,aged,aided,aimed,aired,bid,died,dyed,egged,erred,eyed,fit,gassed,hit,lied,owed,pent,pied,tied,used,vied,oiled,outed,banned,barred,bet,canned,cut,dipped,donned,ended,feed,inked,jarred,let,manned,mowed,netted,padded,panned,pitted,popped,potted,put,set,sewn,sowed,tanned,tipped,topped,vowed,weed,bowed,jammed,binned,dimmed,hopped,mopped,nodded,pinned,rigged,sinned,towed,vettedยฆ4:ached,baked,baled,boned,bored,called,caned,cared,ceded,cited,coded,cored,cubed,cured,dared,dined,edited,exited,faked,fared,filed,fined,fired,fuelled,gamed,gelled,hired,hoped,joked,lined,mined,named,noted,piled,poked,polled,pored,pulled,reaped,roamed,rolled,ruled,seated,shed,sided,timed,tolled,toned,voted,waited,walled,waned,winged,wiped,wired,zoned,yelled,tamed,lubed,roped,faded,mired,caked,honed,banged,culled,heated,raked,welled,banded,beat,cast,cooled,cost,dealt,feared,folded,footed,handed,headed,heard,hurt,knitted,landed,leaked,leapt,linked,meant,minded,molded,neared,needed,peaked,plodded,plotted,pooled,quit,read,rooted,sealed,seeded,seeped,shipped,shunned,skimmed,slammed,sparred,stemmed,stirred,suited,thinned,twinned,swayed,winked,dialed,abutted,blotted,fretted,healed,heeded,peeled,reeledยฆ5:basted,cheated,equalled,eroded,exiled,focused,opined,pleated,primed,quoted,scouted,shored,sloped,smoked,sniped,spelled,spouted,routed,staked,stored,swelled,tasted,treated,wasted,smelled,dwelled,honored,prided,quelled,eloped,scared,coveted,sweated,breaded,cleared,debuted,deterred,freaked,modeled,pleaded,rebutted,speededยฆ6:anchored,defined,endured,impaled,invited,refined,revered,strolled,cringed,recast,thrust,unfoldedยฆ7:authored,combined,competed,conceded,convened,excreted,extruded,redefined,restored,secreted,rescinded,welcomedยฆ8:expedited,infringedยฆ9:interfered,intervened,perseveredยฆ10:contravenedยฆeat:ateยฆis:wasยฆgo:wentยฆare:wereยฆ3d:bent,lent,rent,sentยฆ3e:bit,fled,hid,lostยฆ3ed:bled,bredยฆ2ow:blew,grewยฆ1uy:boughtยฆ2tch:caughtยฆ1o:didยฆ1ive:dove,gaveยฆ2aw:drewยฆ2ed:fedยฆ2y:flew,laid,paid,saidยฆ1ight:foughtยฆ1et:gotยฆ2ve:hadยฆ1ang:hungยฆ2ad:ledยฆ2ght:litยฆ2ke:madeยฆ2et:metยฆ1un:ranยฆ1ise:roseยฆ1it:satยฆ1eek:soughtยฆ1each:taughtยฆ1ake:woke,tookยฆ1eave:woveยฆ2ise:aroseยฆ1ear:bore,tore,woreยฆ1ind:bound,found,woundยฆ2eak:brokeยฆ2ing:brought,wrungยฆ1ome:cameยฆ2ive:droveยฆ1ig:dugยฆ1all:fellยฆ2el:feltยฆ4et:forgotยฆ1old:heldยฆ2ave:leftยฆ1ing:rang,sangยฆ1ide:rodeยฆ1ink:sankยฆ1ee:sawยฆ2ine:shoneยฆ4e:slidยฆ1ell:sold,toldยฆ4d:spentยฆ2in:spunยฆ1in:won"}),ni=ei(Uo),ai=ei(Jo),ri=ei(Wo),oi=Xo(ti),ii=Xo(ni),si=Xo(ai),li=Xo(ri),ui=ei(Mo),ci=ei(qo);var di={fromPast:ti,fromPresent:ni,fromGerund:ai,fromParticiple:ri,toPast:oi,toPresent:ii,toGerund:si,toParticiple:li,toComparative:ui,toSuperlative:ci,fromComparative:Xo(ui),fromSuperlative:Xo(ci),adjToNoun:ei(Ro)},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","faction","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","politburo","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","subsidiary","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce(((e,t)=>(e[t]=!0,e)),{}),gi=["atoll","basin","bay","beach","bluff","bog","camp","canyon","canyons","cape","cave","caves","cliffs","coast","cove","coves","crater","crossing","creek","desert","dune","dunes","downs","estates","escarpment","estuary","falls","fjord","fjords","forest","forests","glacier","gorge","gorges","grove","gulf","gully","highland","heights","hollow","hill","hills","inlet","island","islands","isthmus","junction","knoll","lagoon","lake","lakeshore","marsh","marshes","mount","mountain","mountains","narrows","peninsula","plains","plateau","pond","rapids","ravine","reef","reefs","ridge","river","rivers","sandhill","shoal","shore","shoreline","shores","strait","straits","springs","stream","swamp","tombolo","trail","trails","trench","valley","vallies","village","volcano","waterfall","watershed","wetland","woods","acres","burough","county","district","municipality","prefecture","province","region","reservation","state","territory","borough","metropolis","downtown","uptown","midtown","city","town","township","hamlet","country","kingdom","enclave","neighbourhood","neighborhood","kingdom","ward","zone","airport","amphitheater","arch","arena","auditorium","bar","barn","basilica","battlefield","bridge","building","castle","centre","coliseum","cineplex","complex","dam","farm","field","fort","garden","gardens","gymnasium","hall","house","levee","library","manor","memorial","monument","museum","gallery","palace","pillar","pits","plantation","playhouse","quarry","sportsfield","sportsplex","stadium","terrace","terraces","theater","tower","park","parks","site","ranch","raceway","sportsplex","ave","st","street","rd","road","lane","landing","crescent","cr","way","tr","terrace","avenue"].reduce(((e,t)=>(e[t]=!0,e)),{}),mi=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..ase)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,""]];const pi=function(e,t){const{irregularPlurals:n}=t.two;let a=(r=n,Object.keys(r).reduce(((e,t)=>(e[r[t]]=t,e)),{}));var r;if(a.hasOwnProperty(e))return a[e];for(let t=0;t(bi[t].forEach((n=>e[n]=t)),e)),{});const yi=function(e){let t=e.substring(e.length-3);if(!0===bi.hasOwnProperty(t))return bi[t];let n=e.substring(e.length-2);return!0===bi.hasOwnProperty(n)?bi[n]:"s"===e.substring(e.length-1)?"PresentTense":null},vi={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"},wi=function(e,t,n){const{fromPast:a,fromPresent:r,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",a={};t.one&&t.one.prefixes&&(a=t.one.prefixes);let[r,o]=e.split(/ /);return o&&!0===a[r]&&(n=r,r=o,o=""),{prefix:n,verb:r,particle:o}}(e,t),c="";if(n||(n=yi(e)),vi.hasOwnProperty(e))c=vi[e];else if("Participle"===n)c=Qo(l,i);else if("PastTense"===n)c=Qo(l,a);else if("PresentTense"===n)c=Qo(l,r);else{if("Gerund"!==n)return e;c=Qo(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c},ki=function(e,t){const{toPast:n,toPresent:a,toGerund:r,toParticiple:o}=t.two.models;if("be"===e)return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};let[i,s]=(e=>/ /.test(e)?e.split(/ /):[e,""])(e),l={Infinitive:i,PastTense:Qo(i,n),PresentTense:Qo(i,a),Gerund:Qo(i,r),FutureTense:"will "+i},u=Qo(i,o);if(u!==e&&u!==l.PastTense){let n=t.one.lexicon||{};"Participle"!==n[u]&&"Adjective"!==n[u]||("play"===e&&(u="played"),l.Participle=u)}return s&&Object.keys(l).forEach((e=>{l[e]+=" "+s})),l};var Pi={toInfinitive:wi,conjugate:ki,all:function(e,t){let n=ki(e,t);return delete n.FutureTense,Object.values(n).filter((e=>e))}};const Ai=function(e,t){const n=t.two.models.toSuperlative;return Qo(e,n)},Ci=function(e,t){const n=t.two.models.toComparative;return Qo(e,n)},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},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]),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"}],Hi=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),Ti={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"quick",superbly:"superb",cynically:"cynical",well:"good"},Gi=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],xi={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"},Ei=function(e){if(xi.hasOwnProperty(e))return xi[e];let t=ji(e,Gi);return t||(t=e+"ly"),t};var Fi={toSuperlative:Ai,toComparative:Ci,toAdverb:Ei,toNoun:function(e,t){const n=t.two.models.adjToNoun;return Qo(e,n)},fromAdverb:function(e){return e.endsWith("ly")?Ii.has(e)?e.replace(/ically/,"ical"):Hi.has(e)?null:Ti.hasOwnProperty(e)?Ti[e]:ji(e,Di)||e:null},fromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return Qo(e,n)},fromComparative:function(e,t){const n=t.two.models.fromComparative;return Qo(e,n)},all:function(e,t){let n=[e];return n.push(Ai(e,t)),n.push(Ci(e,t)),n.push(Ei(e)),n=n.filter((e=>e)),n=new Set(n),Array.from(n)}},Oi={noun:fi,verb:Pi,adjective:Fi},zi={Singular:(e,t,n,a)=>{let r=a.one.lexicon,o=n.two.transform.noun.toPlural(e,a);r[o]||(t[o]=t[o]||"Plural")},Actor:(e,t,n,a)=>{let r=a.one.lexicon,o=n.two.transform.noun.toPlural(e,a);r[o]||(t[o]=t[o]||["Plural","Actor"])},Comparable:(e,t,n,a)=>{let r=a.one.lexicon,{toSuperlative:o,toComparative:i}=n.two.transform.adjective,s=o(e,a);r[s]||(t[s]=t[s]||"Superlative");let l=i(e,a);r[l]||(t[l]=t[l]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,a)=>{let r=n.two.transform.noun.toPlural(e,a);t[r]=t[r]||["Demonym","Plural"]},Infinitive:(e,t,n,a)=>{let r=a.one.lexicon,o=n.two.transform.verb.conjugate(e,a);Object.entries(o).forEach((e=>{r[e[1]]||t[e[1]]||"FutureTense"===e[0]||(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.verb.conjugate(i,a);delete l.FutureTense,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]]=2;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"]},Place:(e,t)=>{t[e]=["Place","ProperNoun"]},Region:(e,t)=>{t[e]=["Region","ProperNoun"]}};const Vi={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"],t:["feet"]},Bi=new Set(["israelis","menus","logos"]),Si=["bus","mas","was","ias","xas","vas","cis","lis","nis","ois","ris","sis","tis","xis","aus","cus","eus","fus","gus","ius","lus","nus","das","ous","pus","rus","sus","tus","xus","aos","igos","ados","ogos","'s","ss"],Ki=function(e){if(!e||e.length<=3)return!1;if(Bi.has(e))return!0;let t=e[e.length-1];return Vi.hasOwnProperty(t)?Vi[t].find((t=>e.endsWith(t))):"s"===t&&!Si.find((t=>e.endsWith(t)))};var $i={two:{quickSplit:function(e){const t=/[,:;]/;let n=[];return e.forEach((e=>{let a=0;e.forEach(((r,o)=>{t.test(r.post)&&function(e,t){const n=/^[0-9]+$/;let a=e[t];if(!a)return!1;const r=new Set(["may","april","august","jan"]);if("like"===a.normal||r.has(a.normal))return!1;if(a.tags.has("Place")||a.tags.has("Date"))return!1;if(e[t-1]){let n=e[t-1];if(n.tags.has("Date")||r.has(n.normal))return!1;if(n.tags.has("Adjective")||a.tags.has("Adjective"))return!1}let o=a.normal;return 1!==o.length&&2!==o.length&&4!==o.length||!n.test(o)}(e,o+1)&&(n.push(e.slice(a,o+1)),a=o+1)})),a{let i=e[t],s=(t=(t=t.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);s.length>1&&(void 0===o[s[0]]||s.length>o[s[0]])&&(o[s[0]]=s.length),!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:Oi,looksPlural:Ki}};let Li={one:{lexicon:{}},two:{models:di}};const Mi={"Actor|Verb":"Actor","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":"FirstName","Person|Place":"Person","Person|Adj":"Comparative","Plural|Verb":"Plural","Unit|Noun":"Noun"},Ji=function(e,t){const n={model:t,methods:$i};let{lex:a,_multi:r}=$i.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,a),Object.assign(t.one._multiCache,r),t},Wi=function(e,t,n){let a=ki(e,Li);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,n){let a=Ai(e,n);t[a]=t[a]||"Superlative";let r=Ci(e,n);t[r]=t[r]||"Comparative"},qi=function(e,t){let n={};const a=t.one.lexicon;return Object.keys(e).forEach((r=>{const o=e[r];if(n[r]=Mi[o],"Noun|Verb"!==o&&"Person|Verb"!==o&&"Actor|Verb"!==o||Wi(r,a,!1),"Adj|Present"===o&&(Wi(r,a,!0),Ui(r,a,t)),"Person|Adj"===o&&Ui(r,a,t),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=wi(r,Li,"Gerund");a[e]||(n[e]="Infinitive")}if("Noun|Gerund"!==o&&"Adj|Noun"!==o&&"Person|Noun"!==o||function(e,t,n){let a=vr(e,n);t[a]=t[a]||"Plural"}(r,a,t),"Adj|Past"===o){let e=wi(r,Li,"PastTense");a[e]||(n[e]="Infinitive")}})),t=Ji(n,t)};let Ri={one:{_multiCache:{},lexicon:kr,frozenLex:{"20th century fox":"Organization","7 eleven":"Organization","motel 6":"Organization","excuse me":"Expression","financial times":"Organization","guns n roses":"Organization","la z boy":"Organization","labour party":"Organization","new kids on the block":"Organization","new york times":"Organization","the guess who":"Organization","thin lizzy":"Organization","prime minister":"Actor","free market":"Singular","lay up":"Singular","living room":"Singular","living rooms":"Plural","spin off":"Singular","appeal court":"Uncountable","cold war":"Uncountable","gene pool":"Uncountable","machine learning":"Uncountable","nail polish":"Uncountable","time off":"Uncountable","take part":"Infinitive","bill gates":"Person","doctor who":"Person","dr who":"Person","he man":"Person","iron man":"Person","kid cudi":"Person","run dmc":"Person","rush limbaugh":"Person","snow white":"Person","tiger woods":"Person","brand new":"Adjective","en route":"Adjective","left wing":"Adjective","off guard":"Adjective","on board":"Adjective","part time":"Adjective","right wing":"Adjective","so called":"Adjective","spot on":"Adjective","straight forward":"Adjective","super duper":"Adjective","tip top":"Adjective","top notch":"Adjective","up to date":"Adjective","win win":"Adjective","brooklyn nets":"SportsTeam","chicago bears":"SportsTeam","houston astros":"SportsTeam","houston dynamo":"SportsTeam","houston rockets":"SportsTeam","houston texans":"SportsTeam","minnesota twins":"SportsTeam","orlando magic":"SportsTeam","san antonio spurs":"SportsTeam","san diego chargers":"SportsTeam","san diego padres":"SportsTeam","iron maiden":"ProperNoun","isle of man":"Country","united states":"Country","united states of america":"Country","prince edward island":"Region","cedar breaks":"Place","cedar falls":"Place","point blank":"Adverb","tiny bit":"Adverb","by the time":"Conjunction","no matter":"Conjunction","civil wars":"Plural","credit cards":"Plural","default rates":"Plural","free markets":"Plural","head starts":"Plural","home runs":"Plural","lay ups":"Plural","phone calls":"Plural","press releases":"Plural","record labels":"Plural","soft serves":"Plural","student loans":"Plural","tax returns":"Plural","tv shows":"Plural","video games":"Plural","took part":"PastTense","takes part":"PresentTense","taking part":"Gerund","taken part":"Participle","light bulb":"Noun","rush hour":"Noun","fluid ounce":"Unit","the rolling stones":"Organization"}},two:{irregularPlurals:lr,models:di,suffixPatterns:Ao,prefixPatterns:Io,endsWith:So,neighbours:Lo,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'[a-z]{3}/,"LastName","mc'neil"],[/^o'[a-z]{3}/,"LastName","o'connor"],[/^ma?cd[aeiou][a-z]{3}/,"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"],[/[^:/]\/\p{Letter}/u,"SlashedTerm","love/hate"]],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]{4}|[0-9]{2})$/,"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})$/,"NumericValue","9km"]],switches:Pr,clues:io,uncountable:{},orgWords:hi,placeWords:gi}};Ri=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=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}(e=qi(e.two.switches,e)),e}(Ri);const Qi=function(e,t,n,a){const r=a.methods.one.setTag;"-"===e[t].post&&e[t+1]&&r([e[t],e[t+1]],"Hyphenated",a,null,"1-punct-hyphen''")},Zi=/^(under|over|mis|re|un|dis|semi)-?/,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(Zi.test(r.normal)){let e=r.normal.replace(Zi,"");e.length>3&&a.hasOwnProperty(e)&&(r.switch=a[e])}},_i=function(e,t,n){if(!t||0===t.length)return;if(!0===e.frozen)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)))},Yi=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific","Month"],es=function(e,t,n){let a=e[t],r=Array.from(a.tags);for(let e=0;ee.tags.has(t)))||(Ki(e.normal)?_i(e,"Plural","3-plural-guess"):_i(e,"Singular","3-singular-guess"))}(a),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=yi(e.normal);t&&_i(e,t,"3-verb-tense-guess")}}(a)},ts=/^\p{Lu}[\p{Ll}'โ€™]/u,ns=/[0-9]/,as=["Date","Month","WeekDay","Unit","Expression"],rs=/[IVX]/,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},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===ts.test(o)&&!1===ns.test(o)?as.find((e=>a.tags.has(e)))||a.pre.match(/["']$/)||"the"===a.normal?null:(es(e,t,n),a.tags.has("Noun")||a.frozen||a.tags.clear(),_i(a,"ProperNoun","2-titlecase"),!0):o.length>=2&&os.test(o)&&rs.test(o)&&is.test(o)&&!ss[a.normal]?(_i(a,"RomanNumeral","2-xvii"),!0):null},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},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 _i(a,e,"2-suffix"),a.confidence=.7,!0;if(a.implicit&&(e=us(a.implicit,n.two.suffixPatterns),null!==e))return _i(a,e,"2-implicit-suffix"),a.confidence=.7,!0}return null},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 _i(a,e,"2-prefix"),a.confidence=.5,!0}return null},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"))},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 _i(n,"Year","2-tagYear");if(a>=1920&&a<2025){if(bs(r)||bs(o))return _i(n,"Year","2-tagYear-close");if(ys(e[t-2])||ys(e[t+2]))return _i(n,"Year","2-tagYear-far");if(r&&(r.tags.has("Determiner")||r.tags.has("Possessive"))&&o&&o.tags.has("Noun")&&!o.tags.has("Plural"))return _i(n,"Year","2-tagYear-noun")}}}return null},ws=function(e,t,n,a){const r=a.methods.one.setTag,o=e[t],i=["PastTense","PresentTense","Auxiliary","Modal","Particle"];o.tags.has("Verb")&&(i.find((e=>o.tags.has(e)))||r([o],"Infinitive",a,null,"2-verb-type''"))},ks=/^[A-Z]('s|,)?$/,Ps=/^[A-Z-]+$/,As=/^[A-Z]+s$/,Cs=/([A-Z]\.)+[A-Z]?,?$/,js=/[A-Z]{2,}('s|,)?$/,Ns=/([a-z]\.)+[a-z]\.?$/,Is={I:!0,A:!0},Ds={la:!0,ny:!0,us:!0,dc:!0,gb:!0},Hs=function(e,t,n){let a=e[t];return a.tags.has("RomanNumeral")||a.tags.has("Acronym")||a.frozen?null:function(e,t){let n=e.text;if(!1===Ps.test(n)){if(!(n.length>3&&!0===As.test(n)))return!1;n=n.replace(/s$/,"")}return!(n.length>5||Is.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Cs.test(n)&&!0!==Ns.test(n)&&!0!==ks.test(n)&&!0!==js.test(n))}(a,n)?(a.tags.clear(),_i(a,["Acronym","Noun"],"3-no-period-acronym"),!0===Ds[a.normal]&&_i(a,"Place","3-place-acronym"),!0===As.test(a.text)&&_i(a,"Plural","3-plural-acronym"),!0):!Is.hasOwnProperty(a.text)&&ks.test(a.text)?(a.tags.clear(),_i(a,["Acronym","Noun"],"3-one-letter-acronym"),!0):a.tags.has("Organization")&&a.text.length<=3?(_i(a,"Acronym","3-org-acronym"),!0):a.tags.has("Organization")&&Ps.test(a.text)&&a.text.length<=6?(_i(a,"Acronym","3-titlecase-acronym"),!0):null},Ts=function(e,t){if(!e)return null;let n=t.find((t=>e.normal===t[0]));return n?n[1]:null},Gs=function(e,t){if(!e)return null;let n=t.find((t=>e.tags.has(t[0])));return n?n[1]:null},xs=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||Gs(e[t-1],a),l=l||Gs(e[t+1],i),l)return _i(s,l,"3-[neighbour]"),es(e,t,n),e[t].confidence=.2,!0}return null},Es=function(e,t,n){return!!e&&!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||!(n||(a=e.text,!/^\p{Lu}[\p{Ll}'โ€™]/u.test(a)))&&(0!==t||e.tags.has("Singular")));var a},Fs=function(e,t,n,a){const r=n.model.two.orgWords,o=n.methods.one.setTag;let i=e[t];if(!0===r[i.machine||i.normal]&&Es(e[t-1],t-1,a)){o([e[t]],"Organization",n,null,"3-[org-word]");for(let r=t;r>=0&&Es(e[r],r,a);r-=1)o([e[r]],"Organization",n,null,"3-[org-word]")}return null},Os=/'s$/,zs=new Set(["athletic","city","community","eastern","federal","financial","great","historic","historical","local","memorial","municipal","national","northern","provincial","southern","state","western","spring","pine","sunset","view","oak","maple","spruce","cedar","willow"]),Vs=new Set(["center","centre","way","range","bar","bridge","field","pit"]),Bs=function(e,t,n){if(!e)return!1;let a=e.tags;return!(a.has("Organization")||a.has("Possessive")||Os.test(e.normal))&&(!(!a.has("ProperNoun")&&!a.has("Place"))||!(n||(r=e.text,!/^\p{Lu}[\p{Ll}'โ€™]/u.test(r)))&&(0!==t||a.has("Singular")));var r},Ss=function(e,t,n,a){const r=n.model.two.placeWords,o=n.methods.one.setTag;let i=e[t],s=i.machine||i.normal;if(!0===r[s]){for(let r=t-1;r>=0;r-=1)if(!zs.has(e[r].normal)){if(!Bs(e[r],r,a))break;o(e.slice(r,t+1),"Place",n,null,"3-[place-of-foo]")}if(Vs.has(s))return!1;for(let r=t+1;re[t].tags.has("ProperNoun")&&$s.test(e[t].text)?"Noun":null,Ms=(e,t,n)=>0!==t||e[1]?null:n,Js={"Adj|Gerund":(e,t)=>Ls(e,t),"Adj|Noun":(e,t)=>Ls(e,t)||function(e,t){return!e[t+1]&&e[t-1]&&e[t-1].tags.has("Determiner")?"Noun":null}(e,t),"Actor|Verb":(e,t)=>Ls(e,t),"Adj|Past":(e,t)=>Ls(e,t),"Adj|Present":(e,t)=>Ls(e,t),"Noun|Gerund":(e,t)=>Ls(e,t),"Noun|Verb":(e,t)=>t>0&&Ls(e,t)||Ms(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Ls(e,t)||Ms(e,t,"PresentTense")||function(e,t,n){return 0===t&&e.length>3?n:null}(e,t,"Plural"),"Person|Noun":(e,t)=>Ls(e,t),"Person|Verb":(e,t)=>0!==t?Ls(e,t):null,"Person|Adj":(e,t)=>0===t&&e.length>1||Ls(e,t)?"Person":null},Ws="undefined"!=typeof process&&process.env?process.env:self.env||{},Us=/^(under|over|mis|re|un|dis|semi)-?/,qs=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit,a=null;return t.hasOwnProperty(n)&&(a=t[n]),a&&Ws.DEBUG_TAGS&&console.log(`\n  โ†“ - '${n}' `),a},Rs=(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)),r=a.find((e=>t[e]));return r&&Ws.DEBUG_TAGS&&console.log(`  โ†“ - '${e.normal||e.implicit}' (#${r}) `),r=t[r],r},Qs=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(Us.test(l)&&!o[l]&&(l=l.replace(Us,"")),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="also"!==e[t-1]?.text?t-1:Math.max(0,t-2),o=a.one.tagSet;let i=qs(e[t+1],n.afterWords);return i=i||qs(e[r],n.beforeWords),i=i||Rs(e[r],n.beforeTags,o),i=i||Rs(e[t+1],n.afterTags,o),i}(e,t,i[o],a);Js[o]&&(u=Js[o](e,t)||u),u?(r([s],u,n,null,`3-[switch] (${o})`),es(e,t,a)):Ws.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}},Zs={there:!0,this:!0,it:!0,him:!0,her:!0,us:!0},Xs=function(e){if(e.filter((e=>!e.tags.has("ProperNoun"))).length<=3)return!1;const t=/^[a-z]/;return e.every((e=>!t.test(e.text)))},_s=function(e,t,n,a){for(let r=0;r=2){if(e.length<4&&!Zs[e[1].normal])return;if(!r.tags.has("PhrasalVerb")&&a.hasOwnProperty(r.normal))return;(e[1].tags.has("Noun")||e[1].tags.has("Determiner"))&&(e.slice(1,3).some((e=>e.tags.has("Verb")))&&!r.tags.has("#PhrasalVerb")||n([r],"Imperative",t,null,"3-[imperative]"))}}(e,n)},el={Possessive:e=>{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.noun.toSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(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.verb.toInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromSuperlative(n,t.model)},Adverb:(e,t)=>{const{fromAdverb:n}=t.methods.two.transform.adjective;return n(e.machine||e.normal||e.text)}},tl={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:"NN",Plural:"NNS",Noun:"NN",There:"EX"};var nl={preTagger:function(e){const{methods:t,model:n,world:a}=e;let r=e.docs;!function(e,t,n){e.forEach((e=>{!function(e,t,n,a){const r=a.methods.one.setTag;if(e.length>=3){const t=/:/;if(e[0].post.match(t)){let t=e[1];if(t.tags.has("Value")||t.tags.has("Email")||t.tags.has("PhoneNumber"))return;r([e[0]],"Expression",a,null,"2-punct-colon''")}}}(e,0,0,n)}))}(r,0,a);let o=t.two.quickSplit(r);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))),n[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))},gl=/'/,ml=new Set(["been","become"]),pl=new Set(["what","how","when","if","too"]);let fl=new Set(["too","also","enough"]);const bl=function(e,t){let n=e[t].normal.split(gl)[0];if("let"===n)return[n,"us"];if("there"===n){let a=e[t+1];if(a&&a.tags.has("Plural"))return[n,"are"]}return"has"===((e,t)=>{for(let n=t+1;n{for(let n=t+1;n0&&(n-=1),e[o]&&(o+=1),r.ptrs=[[0,n,o]],r.compute(["freeze","lexicon","preTagger","unfreeze"]),function(e){e.forEach(((e,t)=>{e.index&&(e.index[1]=t)}))}(e)},Dl={d:(e,t)=>kl(e,t),t:(e,t)=>function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){if(e[t+1]&&"never"===e[t+1].normal)return["have"];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("i"===n.normal)return["am","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]}(e,t),s:(e,t,n)=>((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("QuestionWord"))return!1;if("he's"===n.normal||"she's"===n.normal)return!1;let a=e[t+1];if(!a)return!0;if("it's"===n.normal)return!!a.tags.has("#Noun");if("Noun|Gerund"==a.switch){let a=e[t+2];return a?!!a.tags.has("Copula")||("on"===a.normal||a.normal,!1):!(!n.tags.has("Actor")&&!n.tags.has("ProperNoun"))}if(a.tags.has("Verb"))return!!a.tags.has("Infinitive")||!a.tags.has("Gerund")&&!!a.tags.has("PresentTense");if("Adj|Noun"===a.switch){let n=e[t+2];if(!n)return!1;if(jl.has(n.normal))return!0;if(Cl.has(n.normal))return!1}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;if(a.tags.has("Adjective")){let n=e[t+2];if(!n)return!1;if(n.tags.has("Noun")&&!n.tags.has("Pronoun")){let e=a.normal;return"above"!==e&&"below"!==e&&"behind"!==e}return"Noun|Verb"===n.switch}return!!a.tags.has("Value")})(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,null,"2-contraction"):bl(e,t)},Hl=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var Tl={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)continue;let i=null;!0===Nl.test(a[o].normal)&&(i=a[o].normal.split(Nl)[1]);let s=null;Dl.hasOwnProperty(i)&&(s=Dl[i](a,o,t)),s&&(s=Hl(s,e),hl(n,[r,o],s),Il(n[r],e,o,s.length))}}))}},Gl={compute:Tl,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=cl},hooks:["contractionTwo"]};const xl="(hard|fast|late|early|high|right|deep|close|direct)",El="(i|we|they)";let Fl=[].concat([{match:"(got|were|was|is|are|am) (#PastTense|#Participle)",tag:"Passive",reason:"got-walked"},{match:"(was|were|is|are|am) being (#PastTense|#Participle)",tag:"Passive",reason:"was-being"},{match:"(had|have|has) been (#PastTense|#Participle)",tag:"Passive",reason:"had-been"},{match:"will be being? (#PastTense|#Participle)",tag:"Passive",reason:"will-be-cleaned"},{match:"#Noun [(#PastTense|#Participle)] by (the|a) #Noun",group:0,tag:"Passive",reason:"suffered-by"}],[{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,notIf:"(all|even)",tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"[#Hyphenated (#Hyphenated && #PastTense)] (#Noun|#Conjunction)",group:0,tag:"Adjective",notIf:"#Adverb",reason:"faith-based"},{match:"[#Hyphenated (#Hyphenated && #Gerund)] (#Noun|#Conjunction)",group:0,tag:"Adjective",notIf:"#Adverb",reason:"self-driving"},{match:"[#PastTense (#Hyphenated && #PhrasalVerb)] (#Noun|#Conjunction)",group:0,tag:"Adjective",reason:"dammed-up"},{match:"(#Hyphenated && #Value) fold",tag:"Adjective",reason:"two-fold"},{match:"must (#Hyphenated && #Infinitive)",tag:"Adjective",reason:"must-win"},{match:"(#Hyphenated && #Infinitive) #Hyphenated",tag:"Adjective",notIf:"#PhrasalVerb",reason:"vacuum-sealed"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"},{match:"[(un|contra|extra|inter|intra|macro|micro|mid|mis|mono|multi|pre|sub|tri|ex)] #Adjective",group:0,tag:["Adjective","Prefix"],reason:"un-skilled"}],[{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:"#Copula [far too] #Adjective",group:0,tag:"Adverb",reason:"far-too"},{match:"#Copula [still] (in|#Gerund|#Adjective)",group:0,tag:"Adverb",reason:"was-still-walking"},{match:`#Plural ${xl}`,tag:"#PresentTense #Adverb",reason:"studies-hard"},{match:`#Verb [${xl}] !#Noun?`,group:0,notIf:"(#Copula|get|got|getting|become|became|becoming|feel|feels|feeling|#Determiner|#Preposition)",tag:"Adverb",reason:"shops-direct"},{match:"[#Plural] a lot",tag:"PresentTense",reason:"studies-a-lot"}],[{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:"#Gerund [#Gerund]",group:0,tag:"Adjective",notIf:"(impersonating|practicing|considering|assuming)",reason:"looking-annoying"},{match:"(looked|look|looks) #Adverb? [%Adj|Gerund%]",group:0,tag:"Adjective",notIf:"(impersonating|practicing|considering|assuming)",reason:"looked-amazing"},{match:"[%Adj|Gerund%] #Determiner",group:0,tag:"Gerund",reason:"developing-a"},{match:"#Possessive [%Adj|Gerund%] #Noun",group:0,tag:"Adjective",reason:"leading-manufacturer"},{match:"%Noun|Gerund% %Adj|Gerund%",tag:"Gerund #Adjective",reason:"meaning-alluring"},{match:"(face|embrace|reveal|stop|start|resume) %Adj|Gerund%",tag:"#PresentTense #Adjective",reason:"face-shocking"},{match:"(are|were) [%Adj|Gerund%] #Plural",group:0,tag:"Adjective",reason:"are-enduring-symbols"}],[{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",notIf:"#Hyphenated",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:"no [#Adjective] #Modal",group:0,tag:"Noun",reason:"no-golden"},{match:"[brand #Gerund?] new",group:0,tag:"Adverb",reason:"brand-new"},{match:"(#Determiner|#Comparative|new|different) [kind]",group:0,tag:"Noun",reason:"some-kind"},{match:"#Possessive [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"her-favourite"},{match:"must && #Hyphenated .",tag:"Adjective",reason:"must-win"},{match:"#Determiner [#Adjective]$",tag:"Noun",notIf:"(this|that|#Comparative|#Superlative)",reason:"the-south"},{match:"(#Noun && #Hyphenated) (#Adjective && #Hyphenated)",tag:"Adjective",notIf:"(this|that|#Comparative|#Superlative)",reason:"company-wide"},{match:"#Determiner [#Adjective] (#Copula|#Determiner)",notIf:"(#Comparative|#Superlative)",group:0,tag:"Noun",reason:"the-poor"},{match:"[%Adj|Noun%] #Noun",notIf:"(#Pronoun|#ProperNoun)",group:0,tag:"Adjective",reason:"stable-foundations"}],[{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,notIf:"(#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] #Comparative",group:0,tag:"Adverb",reason:"even-worse"},{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|bright|slow|fast|backwards|forwards)]",notIf:"#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",notIf:"(getting|becoming|feeling)",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",notIf:"(#PhrasalVerb|#Copula)",reason:"charge-back"},{match:"#Verb [around]",group:0,tag:"Adverb",notIf:"#PhrasalVerb",reason:"send-around"},{match:"[later] #PresentTense",group:0,tag:"Adverb",reason:"later-say"},{match:"#Determiner [well] !#PastTense?",group:0,tag:"Noun",reason:"the-well"},{match:"#Adjective [enough]",group:0,tag:"Adverb",reason:"high-enough"}],[{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) !#Infinitive?",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:"#Value (am|pm)",tag:"Time",reason:"2-am"}],[{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:"(the|any) [more]",group:0,tag:"Singular",reason:"more-noun"},{match:"[more] #Noun",group:0,tag:"Adjective",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Singular",reason:"bit-2"},{match:"a [must]",group:0,tag:"Singular",reason:"must-2"},{match:"(we|us) [all]",group:0,tag:"Noun",reason:"we all"},{match:"due to [#Verb]",group:0,tag:"Noun",reason:"due-to"},{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",notIf:"#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:"(a|an|the) [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",notIf:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,notIf:"#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? [#PresentTense #Particle?]",group:0,tag:"Noun",notIf:"(seem|appear|include|#Gerund|#Copula)",reason:"det-inf"},{match:"#Noun #Actor",tag:"Actor",notIf:"(#Person|#Pronoun)",reason:"thing-doer"},{match:"#Gerund #Actor",tag:"Actor",reason:"gerund-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"[#Noun+] #Actor",group:0,tag:"Actor",notIf:"(#Honorific|#Pronoun|#Possessive)",reason:"air-traffic-controller"},{match:"(urban|cardiac|cardiovascular|respiratory|medical|clinical|visual|graphic|creative|dental|exotic|fine|certified|registered|technical|virtual|professional|amateur|junior|senior|special|pharmaceutical|theoretical)+ #Noun? #Actor",tag:"Actor",reason:"fine-artist"},{match:"#Noun+ (coach|chef|king|engineer|fellow|personality|boy|girl|man|woman|master)",tag:"Actor",reason:"dance-coach"},{match:"chief . officer",tag:"Actor",reason:"chief-x-officer"},{match:"chief of #Noun+",tag:"Actor",reason:"chief-of-police"},{match:"senior? vice? president of #Noun+",tag:"Actor",reason:"president-of"},{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:"#Possessive #PresentTense #Particle?",notIf:"(#Gerund|her)",tag:"Noun",reason:"possessive-verb"},{match:"(my|our|their|her|his|its) [(#Plural && #Actor)] #Noun",tag:"Possessive",reason:"my-dads"},{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 [#Verb] and #Noun",group:0,tag:"Noun",reason:"peace-and-flowers"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"},{match:"#Copula the [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"the-premier-university"},{match:"i #Verb [me] #Noun",group:0,tag:"Possessive",reason:"scottish-me"},{match:"[#PresentTense] (music|class|lesson|night|party|festival|league|ceremony)",group:0,tag:"Noun",reason:"dance-music"},{match:"[wit] (me|it)",group:0,tag:"Presposition",reason:"wit-me"},{match:"#PastTense #Possessive [#Verb]",group:0,tag:"Noun",notIf:"(saw|made)",reason:"left-her-boots"},{match:"#Value [%Plural|Verb%]",group:0,tag:"Plural",notIf:"(one|1|a|an)",reason:"35-signs"},{match:"had [#PresentTense]",group:0,tag:"Noun",notIf:"(#Gerund|come|become)",reason:"had-time"},{match:"%Adj|Noun% %Noun|Verb%",tag:"#Adjective #Noun",notIf:"#ProperNoun #Noun",reason:"instant-access"},{match:"#Determiner [%Adj|Noun%] #Conjunction",group:0,tag:"Noun",reason:"a-rep-to"},{match:"#Adjective #Noun [%Plural|Verb%]$",group:0,tag:"Plural",notIf:"#Pronoun",reason:"near-death-experiences"},{match:"#Possessive #Noun [%Plural|Verb%]$",group:0,tag:"Plural",reason:"your-guild-colors"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,ifNo:"#Copula",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",notIf:"(still|even|just)",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"#Copula [(#Gerund|#Activity)] #Copula",group:0,tag:"Gerund",reason:"are-doing-is"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"},{match:"#Singular for [%Noun|Gerund%]",group:0,tag:"Gerund",reason:"noun-for-gerund"},{match:"#Comparative (for|at) [%Noun|Gerund%]",group:0,tag:"Gerund",reason:"better-for-gerund"},{match:"#PresentTense the [#Gerund]",group:0,tag:"Noun",reason:"keep-the-touching"}],[{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 (only|further|just|more|backward) [#Infinitive]",group:0,tag:"Noun",reason:"the-only-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{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,notIf:"from",tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"#Plural 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 #Particle?]",notIf:"(#Copula|#Noun|sure|fun|up)",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",notIf:"#Pronoun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"this [#Plural]",group:0,tag:"PresentTense",notIf:"(#Preposition|#Date)",reason:"this-verbs"},{match:"#Noun that [#Plural]",group:0,tag:"PresentTense",notIf:"(#Preposition|#Pronoun|way)",reason:"voice-that-rocks"},{match:"that [#Plural] to",group:0,tag:"PresentTense",notIf:"#Preposition",reason:"that-leads-to"},{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]",notIf:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",notIf:"better",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",notIf:"(#Copula|better)",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"many-poses"},{match:"#Determiner #Adverb #Adjective [%Noun|Verb%]",group:0,tag:"Noun",notIf:"#Copula",reason:"very-big-dream"},{match:"from #Noun to [%Noun|Verb%]",group:0,tag:"Noun",reason:"start-to-finish"},{match:"(for|with|of) #Noun (and|or|not) [%Noun|Verb%]",group:0,tag:"Noun",notIf:"#Pronoun",reason:"for-food-and-gas"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",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) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #Particle #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] of",group:0,notIf:"(one|1|#Copula|#Infinitive)",tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",notIf:"#Copula",reason:"our-full-support"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",notIf:"going",reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"},{match:"how to [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"how-to-noun"},{match:"which [%Noun|Verb%] #Noun",group:0,tag:"Infinitive",reason:"which-boost-it"},{match:"#Gerund [%Plural|Verb%]",group:0,tag:"Plural",reason:"asking-questions"},{match:"(ready|available|difficult|hard|easy|made|attempt|try) to [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"ready-to-noun"},{match:"(bring|went|go|drive|run|bike) to [%Noun|Verb%]",group:0,tag:"Noun",reason:"bring-to-noun"},{match:"#Modal #Noun [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"would-you-look"},{match:"#Copula just [#Infinitive]",group:0,tag:"Noun",reason:"is-just-spam"},{match:"^%Noun|Verb% %Plural|Verb%",tag:"Imperative #Plural",reason:"request-copies"},{match:"#Adjective #Plural and [%Plural|Verb%]",group:0,tag:"#Plural",reason:"pickles-and-drinks"},{match:"#Determiner #Year [#Verb]",group:0,tag:"Noun",reason:"the-1968-film"},{match:"#Determiner [#PhrasalVerb #Particle]",group:0,tag:"Noun",reason:"the-break-up"},{match:"#Determiner [%Adj|Noun%] #Noun",group:0,tag:"Adjective",notIf:"(#Pronoun|#Possessive|#ProperNoun)",reason:"the-individual-goals"},{match:"[%Noun|Verb%] or #Infinitive",group:0,tag:"Infinitive",reason:"work-or-prepare"},{match:"to #Infinitive [#PresentTense]",group:0,tag:"Noun",notIf:"(#Gerund|#Copula|help)",reason:"to-give-thanks"},{match:"[#Noun] me",group:0,tag:"Verb",reason:"kills-me"},{match:"%Plural|Verb% %Plural|Verb%",tag:"#PresentTense #Plural",reason:"removes-wrinkles"}],[{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:"a pound",tag:"#Money #Unit",reason:"a-pound"},{match:"#Value (pound|pounds)",tag:"#Money #Unit",reason:"4-pounds"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"},{match:"#Value #Unit [(per|an) (hr|hour|sec|second|min|minute)]",group:0,tag:"Unit",reason:"12-miles-per-second"},{match:"#Value [(square|cubic)] #Unit",group:0,tag:"Unit",reason:"square-miles"}],[{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(sister|pope|brother|father|aunt|uncle|grandpa|grandfather|grandma) #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",notIf:"#Place",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",notIf:"#Place",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",notIf:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",notIf:"#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:"[(lieutenant|corporal|sergeant|captain|qeen|king|admiral|major|colonel|marshal|president|queen|king)+] #ProperNoun",group:0,tag:"Honorific",reason:"seargeant-john"},{match:"[(private|general|major|rear|prime|field|count|miss)] #Honorific? #Person",group:0,tag:["Honorific","Person"],reason:"ambg-honorifics"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",notIf:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:"Honorific",reason:"his-excellency"},{match:"#Honorific #Actor",tag:"Honorific",reason:"Lieutenant colonel"},{match:"(first|second|third|1st|2nd|3rd) #Actor",tag:"Honorific",reason:"first lady"},{match:"#Person #RomanNumeral",tag:"Person",reason:"louis-IV"}],[{match:"#FirstName #Noun$",tag:". #LastName",notIf:"(#Possessive|#Organization|#Place|#Pronoun|@hasTitleCase)",reason:"firstname-noun"},{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",ifNo:"#Actor"},{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:"#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:"(#FirstName && !#Possessive) [#Singular] #Verb",group:0,safe:!0,tag:"LastName",reason:"jack-layton"},{match:"^[#Singular] #Person #Verb",group:0,safe:!0,tag:"Person",reason:"sherwood-anderson"},{match:"(a|an) [#Person]$",group:0,unTag:"Person",reason:"a-warhol"}],[{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",notIf:"(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:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(have|had) read",tag:"Modal #PastTense",reason:"read-read"},{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:"as #Pronoun [please]",group:0,tag:"Infinitive",reason:"as-we-please"},{match:"[(co|mis|de|inter|intra|pre|re|un|out|under|over|counter)] #Verb",group:0,tag:["Verb","Prefix"],notIf:"(#Copula|#PhrasalVerb)",reason:"co-write"},{match:"#PastTense and [%Adj|Past%]",group:0,tag:"PastTense",reason:"dressed-and-left"},{match:"[%Adj|Past%] and #PastTense",group:0,tag:"PastTense",reason:"dressed-and-left"},{match:"#Copula #Pronoun [%Adj|Past%]",group:0,tag:"Adjective",reason:"is-he-stoked"},{match:"to [%Noun|Verb%] #Preposition",group:0,tag:"Infinitive",reason:"to-dream-of"}],[{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:"#Copula [#Adjective] (well|badly|quickly|slowly)",group:0,tag:"Verb",reason:"done-well"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"},{match:"(seem|feel|seemed|felt) [#PastTense #Particle?]",group:0,tag:"Adjective",reason:"seem-confused"},{match:"a (bit|little|tad) [#PastTense #Particle?]",group:0,tag:"Adjective",reason:"a-bit-confused"},{match:"not be [%Adj|Past% #Particle?]",group:0,tag:"Adjective",reason:"do-not-be-confused"},{match:"#Copula just [%Adj|Past% #Particle?]",group:0,tag:"Adjective",reason:"is-just-right"},{match:"as [#Infinitive] as",group:0,tag:"Adjective",reason:"as-pale-as"},{match:"[%Adj|Past%] and #Adjective",group:0,tag:"Adjective",reason:"faled-and-oppressive"},{match:"or [#PastTense] #Noun",group:0,tag:"Adjective",notIf:"(#Copula|#Pronoun)",reason:"or-heightened-emotion"},{match:"(become|became|becoming|becomes) [#Verb]",group:0,tag:"Adjective",reason:"become-verb"},{match:"#Possessive [#PastTense] #Noun",group:0,tag:"Adjective",reason:"declared-intentions"},{match:"#Copula #Pronoun [%Adj|Present%]",group:0,tag:"Adjective",reason:"is-he-cool"},{match:"#Copula [%Adj|Past%] with",group:0,tag:"Adjective",notIf:"(associated|worn|baked|aged|armed|bound|fried|loaded|mixed|packed|pumped|filled|sealed)",reason:"is-crowded-with"},{match:"#Copula #Adverb? [%Adj|Present%]$",group:0,tag:"Adjective",reason:"was-empty$"}],[{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:"[(#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:"[(been|had|became|came)] #PastTense",group:0,notIf:"#PhrasalVerb",tag:"Auxiliary",reason:"been-told"},{match:"[(being|having|getting)] #Verb",group:0,tag:"Auxiliary",reason:"being-born"},{match:"[be] #Gerund",group:0,tag:"Auxiliary",reason:"be-walking"},{match:"[better] #PresentTense",group:0,tag:"Modal",notIf:"(#Copula|#Gerund)",reason:"better-go"},{match:"even better",tag:"Adverb #Comparative",reason:"even-better"}],[{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)",notIf:"#Copula",tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"#Verb (up|down|in|on|for)$",tag:"PhrasalVerb #Particle",notIf:"#PhrasalVerb",reason:"come-down$"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"#PhrasalVerb (in && #Particle) #Determiner",tag:"#Verb #Preposition #Determiner",unTag:"PhrasalVerb",reason:"work-in-the"},{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",notIf:"(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|a|an|any|each|every|some|more|with|on)",group:0,notIf:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me|there)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^[#Infinitive] (#Adjective|#Adverb)? and #Infinitive",group:0,tag:"Imperative",reason:"call-and-reserve"},{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:"^[#PhrasalVerb #Particle] #Determiner #Noun",group:0,tag:"Imperative",reason:"turn-off-the-light"},{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:"^come #Infinitive",tag:"Imperative",notIf:"on",reason:"come-have"},{match:"^come and? #Infinitive",tag:"Imperative . Imperative",notIf:"#PhrasalVerb",reason:"come-and-have"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[(stay|be|keep)] #Adjective",group:0,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:"[#Infinitive] what .",group:0,tag:"Imperative",reason:"look-what"},{match:"^[#Infinitive] #Gerund",group:0,tag:"Imperative",reason:"keep-playing"},{match:"^[#Infinitive] (to|for|into|toward|here|there)",group:0,tag:"Imperative",reason:"go-to"},{match:"^[#Infinitive] (and|or) #Infinitive",group:0,tag:"Imperative",reason:"inf-and-inf"},{match:"^[%Noun|Verb%] to",group:0,tag:"Imperative",reason:"commit-to"},{match:"^[#Infinitive] #Adjective? #Singular #Singular",group:0,tag:"Imperative",reason:"maintain-eye-contact"},{match:"do not (forget|omit|neglect) to [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-forget"},{match:"^[(ask|wear|pay|look|help|show|watch|act|fix|kill|stop|start|turn|try|win)] #Noun",group:0,tag:"Imperative",reason:"pay-attention"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"},{match:"#Gerund [#Gerund] #Plural",group:0,tag:"Adjective",reason:"hard-working-fam"}],[{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:"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:"[right] (before|after|in|into|to|toward)",group:0,tag:"#Adverb",reason:"right-into"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"(are|#Modal|see|do|for) [ya]",group:0,tag:"Pronoun",reason:"are-ya"},{match:"[long live] .",group:0,tag:"#Adjective #Infinitive",reason:"long-live"},{match:"[plenty] of",group:0,tag:"#Uncountable",reason:"plenty-of"},{match:"(always|nearly|barely|practically) [there]",group:0,tag:"Adjective",reason:"always-there"},{match:"[there] (#Adverb|#Pronoun)? #Copula",group:0,tag:"There",reason:"there-is"},{match:"#Copula [there] .",group:0,tag:"There",reason:"is-there"},{match:"#Modal #Adverb? [there]",group:0,tag:"There",reason:"should-there"},{match:"^[do] (you|we|they)",group:0,tag:"QuestionWord",reason:"do-you"},{match:"^[does] (he|she|it|#ProperNoun)",group:0,tag:"QuestionWord",reason:"does-he"},{match:"#Determiner #Noun+ [who] #Verb",group:0,tag:"Preposition",reason:"the-x-who"},{match:"#Determiner #Noun+ [which] #Verb",group:0,tag:"Preposition",reason:"the-x-which"},{match:"a [while]",group:0,tag:"Noun",reason:"a-while"},{match:"guess who",tag:"#Infinitive #QuestionWord",reason:"guess-who"},{match:"[fucking] !#Verb",group:0,tag:"#Gerund",reason:"f-as-gerund"}],[{match:"university of #Place",tag:"Organization",reason:"university-of-Foo"},{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",notIf:"#FirstName",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:"government of the? [#Place+]",tag:"Organization",reason:"government-of-x"},{match:"(health|school|commerce) board",tag:"Organization",reason:"school-board"},{match:"(nominating|special|conference|executive|steering|central|congressional) committee",tag:"Organization",reason:"special-comittee"},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"},{match:"#Place+ #SportsTeam",tag:"SportsTeam",reason:"place-sportsteam"},{match:"(dc|atlanta|minnesota|manchester|newcastle|sheffield) united",tag:"SportsTeam",reason:"united-sportsteam"},{match:"#Place+ fc",tag:"SportsTeam",reason:"fc-sportsteam"},{match:"#Place+ #Noun{0,2} (club|society|group|team|committee|commission|association|guild|crew)",tag:"Organization",reason:"place-noun-society"}],[{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+ (cliff|place|range|pit|place|point|room|grounds|ruins)",tag:"Place",reason:"foo-point"},{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:"(port|mount|mt) #ProperName",tag:"Place",reason:"port-name"}],[{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:"a #Noun [like] (#Noun|#Determiner)",group:0,tag:"Preposition",reason:"a-noun-like"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Infinitive #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"}],[{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^[(well|so|okay|now)] !#Adjective?",group:0,tag:"Expression",reason:"well-"},{match:"^come on",tag:"Expression",reason:"come-on"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"^(ok|alright|shoot|hell|anyways)",tag:"Expression",reason:"ok-"},{match:"^(say && @hasComma)",tag:"Expression",reason:"say-"},{match:"^(like && @hasComma)",tag:"Expression",reason:"like-"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}]),Ol=null;var zl={postTagger:function(e){const{world:t}=e,{model:n,methods:a}=t;Ol=Ol||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(Ol),e.uncache(),e.unfreeze(),e},tagger:e=>e.compute(["freeze","lexicon","preTagger","postTagger","unfreeze"])};const Vl={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach((n=>{n.forEach((n=>{t+=1,e+=n.confidence||1}))})),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["tagger"])}},compute:zl,model:{two:{matches:Fl}},hooks:["postTagger"]},Bl=function(e,t){let n=function(e){return Object.keys(e.hooks).filter((e=>!e.startsWith("#")&&!e.startsWith("%")))}(t);if(0===n.length)return e;e._cache||e.cache();let a=e._cache;return e.filter(((e,t)=>n.some((e=>a[t].has(e)))))};var Sl={lib:{lazy:function(e,t){let n=t;"string"==typeof t&&(n=this.buildNet([{match:t}]));let a=this.tokenize(e),r=Bl(a,n);return r.found?(r.compute(["index","tagger"]),r.match(t)):a.none()}}};const Kl=function(e,t,n){let a=e.split(/ /g).map((e=>e.toLowerCase().trim()));a=a.filter((e=>e)),a=a.map((e=>`{${e}}`)).join(" ");let r=this.match(a);return n&&(r=r.if(n)),r.has("#Verb")?function(e,t){let n=t;return e.forEach((e=>{e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verb.conjugate)(t,e.model);return e.has("#Gerund")?n.Gerund:e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)})),e}(r,t):r.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.noun.toPlural)(t,e.model)),e.replaceWith(n,{possessives:!0})}(r,t):r.has("#Adverb")?function(e,t){const{toAdverb:n}=e.methods.two.transform.adjective;let a=n(t);a&&e.replaceWith(a)}(r,t):r.has("#Adjective")?function(e,t){const{toComparative:n,toSuperlative:a}=e.methods.two.transform.adjective;let r=t;e.has("#Comparative")?r=n(r,e.model):e.has("#Superlative")&&(r=a(r,e.model)),r&&e.replaceWith(r)}(r,t):this};var $l={api:function(e){e.prototype.swap=Kl}};return d.plugin(sl),d.plugin(Gl),d.plugin(Vl),d.plugin(Sl),d.plugin($l),d},"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 e97a8397a..be1681e83 100644 --- a/builds/two/compromise-two.mjs +++ b/builds/two/compromise-two.mjs @@ -1 +1 @@ -var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};const 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=t;var a={forEach:function(e){return this.fullPointer.forEach(((t,n)=>{let a=this.update([t]);e(a,n)})),this},map:function(e,t){let n=this.fullPointer.map(((t,n)=>{let a=this.update([t]),r=e(a,n);return void 0===r?this.none():r}));if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let a=[];return n.forEach((e=>{a=a.concat(e.fullPointer)})),this.toView(a)},filter:function(e){let t=this.fullPointer;return t=t.filter(((t,n)=>{let a=this.update([t]);return e(a,n)})),this.update(t)},find:function(e){let t=this.fullPointer.find(((t,n)=>{let a=this.update([t]);return e(a,n)}));return this.update([t])},some:function(e){return this.fullPointer.some(((t,n)=>{let a=this.update([t]);return e(a,n)}))},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const r={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach((e=>{t[e]=this.update(this._groups[e])})),t},eq:function(e){let t=this.pointer;return t||(t=this.docs.map(((e,t)=>[t]))),t[e]?this.update([t[e]]):this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map(((e,t)=>[t]));return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map((e=>[e[0]]));return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every(((e,t)=>!!n[t]&&(e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2])))},wordCount:function(){return this.docs.reduce(((e,t)=>(e+=t.filter((e=>""!==e.text)).length,e)),0)},isFull:function(){let e=this.pointer;if(!e)return!0;if(0===e.length||0!==e[0][0])return!1;let t=0,n=0;return this.document.forEach((e=>t+=e.length)),this.docs.forEach((e=>n+=e.length)),t===n},getNth:function(e){return"number"==typeof e?this.eq(e):"string"==typeof e?this.if(e):this}};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,n,a);i.get=i.eq;var s=i;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,a=t||e.map(((e,t)=>[t]));return a.map((e=>{let[t,a,r,o,i]=e;return a=a||0,r=r||(n[t]||[]).length,n[t]&&n[t][a]&&(o=o||n[t][a].id,n[t][r-1]&&(i=i||n[t][r-1].id)),[t,a,r,o,i]}))}update(e){let t=new View(this.document,e);if(this._cache&&e&&e.length>0){let n=[];e.forEach(((e,t)=>{let[a,r,o]=e;(1===e.length||0===r&&this.document[a].length===o)&&(n[t]=this._cache[a])})),n.length>0&&(t._cache=n)}return t.world=this.world,t}toView(e){return new View(this.document,e||this.pointer)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),a=new View(n);return a.world=this.world,a.compute(["normal","freeze","lexicon"]),this.world.compute.preTagger&&a.compute("preTagger"),a.compute("unfreeze"),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,s);var l=View;const u=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};function c(e,t){if(u(t))for(const n in t)u(t[n])?(e[n]||Object.assign(e,{[n]:{}}),c(e[n],t[n])):Object.assign(e,{[n]:t[n]});return e}var d=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&&c(o,e.model),e.irregulars&&function(e,t){let n=e.two.models||{};Object.keys(t).forEach((e=>{t[e].pastTense&&(n.toPast&&(n.toPast.ex[e]=t[e].pastTense),n.fromPast&&(n.fromPast.ex[t[e].pastTense]=e)),t[e].presentTense&&(n.toPresent&&(n.toPresent.ex[e]=t[e].presentTense),n.fromPresent&&(n.fromPresent.ex[t[e].presentTense]=e)),t[e].gerund&&(n.toGerund&&(n.toGerund.ex[e]=t[e].gerund),n.fromGerund&&(n.fromGerund.ex[t[e].gerund]=e)),t[e].comparative&&(n.toComparative&&(n.toComparative.ex[e]=t[e].comparative),n.fromComparative&&(n.fromComparative.ex[t[e].comparative]=e)),t[e].superlative&&(n.toSuperlative&&(n.toSuperlative.ex[e]=t[e].superlative),n.fromSuperlative&&(n.fromSuperlative.ex[t[e].superlative]=e))}))}(o,e.irregulars),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.frozen&&a.addWords(e.frozen,!0),e.mutate&&e.mutate(t)};const h=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var m=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(h(e)){if(h(e[0])){let n=e.map((e=>e.map((e=>({text:e,normal:e,pre:"",post:" ",tags:new Set})))));return new t(n)}let n=function(e){return e.map((e=>e.terms.map((e=>(h(e.tags)&&(e.tags=new Set(e.tags)),e)))))}(e);return new t(n)}return r};let p=Object.assign({},e);const f=function(e,t){t&&f.addWords(t);let n=m(e,l,p);return e&&n.compute(p.hooks),n};Object.defineProperty(f,"_world",{value:p,writable:!0}),f.tokenize=function(e,t){const{compute:n}=this._world;t&&f.addWords(t);let a=m(e,l,p);return n.contractions&&a.compute(["alias","normal","machine","contractions"]),a},f.plugin=function(e){return d(e,this._world,l,this),this},f.extend=f.plugin,f.world=function(){return this._world},f.model=function(){return this._world.model},f.methods=function(){return this._world.methods},f.hooks=function(){return this._world.hooks},f.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},f.version="14.13.0";var b=f;var v=function(e){let t=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),A=(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},C=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-โ€“โ€”]/.test(t.post)||(t.post+=" ")},j=(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,"")}},N=function(e,t,n,a){let[r,o,i]=t;0===o||i===a[r].length?C(n):(C(n),C([e[t[1]]])),function(e,t,n){let a=e[t];if(0!==t||!P(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")||P(r.text)&&r.text.length>1&&(r.text=(o=r.text,o.replace(/^\p{Lu}/u,(e=>e.toLowerCase()))));var o}(e,o,n),A(e,o,n)};let I=0;const D=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var H=function(e){let[t,n]=e.index||[0,0];I+=1,I=I>46655?0:I,t=t>46655?0:t,n=n>1294?0:n;let a=D(I.toString(36));a+=D(t.toString(36));let r=n.toString(36);return r=r.length<2?"0"+r:r,a+=r,a+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+a.toUpperCase()};const G=function(e){if(e.has("@hasContraction")&&"function"==typeof e.contractions){e.grow("@hasContraction").contractions().expand()}},x=e=>"[object Array]"===Object.prototype.toString.call(e),T=function(e,t,n){const{document:a,world:r}=t;t.uncache();let o=t.fullPointer,i=t.fullPointer;t.forEach(((s,l)=>{let u=s.fullPointer[0],[c]=u,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]||[]:x(e)?x(e[0])?e[0]:e:[]}(e,r);0!==h.length&&(h=function(e){return e.map((e=>(e.id=H(e),e)))}(h),n?(G(t.update([u]).firstTerm()),N(d,u,h,a)):(G(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);let r=a.docs[0],o=t.possessives&&r[r.length-1].tags.has("Possessive");e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e=e.replace(O,(e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})),e}(e,a);let i=this.update(n);n=n.map((e=>e.slice(0,3)));let s=(i.docs[0]||[]).map((e=>Array.from(e.tags)));if("string"==typeof e&&(e=this.fromText(e).compute("id")),a.insertAfter(e),i.has("@hasContraction")&&a.contractions){a.grow("@hasContraction+").contractions().expand()}if(a.delete(i),o){let e=a.docs[0],t=e[e.length-1];t.tags.has("Possessive")||(t.text+="'s",t.normal+="'s",t.tags.add("Possessive"))}let l=a.toView(n).compute(["index","freeze","lexicon"]);return l.world.compute.preTagger&&l.compute("preTagger"),l.compute("unfreeze"),t.tags&&l.terms().forEach(((e,t)=>{e.tagSafe(s[t])})),t.case&&l.docs[0]&&l.docs[0][0]&&0===l.docs[0][0].index[1]&&(l.docs[0][0].text=l.docs[0][0].text.replace(/\w\S*/g,(e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase()))),l},z.replace=function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let a=this.match(e);return a.found?(this.soften(),a.replaceWith(t,n)):this};var V=z;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 S={remove:function(e){const{indexN:t}=this.methods.one.pointer;this.uncache();let n=this.all(),a=this;e&&(n=this,a=this.match(e));let r=!n.ptrs;if(a.has("@hasContraction")&&a.contractions){a.grow("@hasContraction").contractions().expand()}let o=n.fullPointer,i=a.fullPointer.reverse(),s=B(this.document,i);return o=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})),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)))}(o,t(i)),n.ptrs=o,n.document=s,n.compute("index"),r&&(n.ptrs=void 0),e?n.toView(o):(this.ptrs=[],n.none())}};S.delete=S.remove;var K=S;const $={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}};$.deHyphenate=$.dehyphenate,$.toQuotation=$.toQuotations;var M=$;var L={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 J=new Set(["index","sequence","seq","sequential","chron","chronological"]),W=new Set(["freq","frequency","topk","repeats"]),U=new Set(["alpha","alphabetical"]);var q={unique:function(){let e=new Set,t=this.filter((t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)}));return t},reverse:function(){let e=this.pointer||this.docs.map(((e,t)=>[t]));return e=[].concat(e),e=e.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if(this.uncache(),"function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort(((n,a)=>(n=e.update([n]),a=e.update([a]),t(n,a)))),e.ptrs=n,e}(this,e);e=e||"alpha";let a=n||t.map(((e,t)=>[t])),r=t.map(((e,t)=>({index:t,words:e.length,normal:e.map((e=>e.machine||e.normal||"")).join(" "),pointer:a[t]})));return J.has(e)&&(e="sequential"),U.has(e)&&(e="alpha"),W.has(e)?(r=L.byFreq(r),this.update(r.map((e=>e.pointer)))):"function"==typeof L[e]?(r=r.sort(L[e]),this.update(r.map((e=>e.pointer)))):this}};const R=function(e,t){if(e.length>0){let t=e[e.length-1],n=t[t.length-1];!1===/ /.test(n.post)&&(n.post+=" ")}return e=e.concat(t)};var Q={concat:function(e){if("string"==typeof e){let t=this.fromText(e);if(this.found&&this.ptrs){let e=this.fullPointer,n=e[e.length-1][0];this.document.splice(n,0,...t.document)}else this.document=this.document.concat(t.document);return this.all().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=R(e.document,t.docs),e.all()}(this,e);if(t=e,"[object Array]"===Object.prototype.toString.call(t)){let t=R(this.document,e);return this.document=t,this.all()}var t;return this}};var Z={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 _=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}},F,V,K,M,q,Q,Z);var X=function(e){Object.assign(e.prototype,_)};const Y={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))),n[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 re=/'/,oe=new Set(["what","how","when","where","why"]),ie=new Set(["be","go","start","think","need"]),se=new Set(["been","gone"]);var le=function(e,t){let n=e[t].normal.split(re)[0];if(oe.has(n))return[n,"did"];if(e[t+1]){if(se.has(e[t+1].normal))return[n,"had"];if(ie.has(e[t+1].normal))return[n,"would"]}return null};var ue=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal)return null;return[e[t].normal.replace(/n't/,""),"not"]};const ce=/'/,de=/(e|รฉ|aison|sion|tion)$/,he=/(age|isme|acle|ege|oire)$/;var ge=(e,t)=>["je",e[t].normal.split(ce)[1]],me=(e,t)=>{let n=e[t].normal.split(ce)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},pe=(e,t)=>{let n=e[t].normal.split(ce)[1];return n&&de.test(n)&&!he.test(n)?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const fe=/^([0-9.]{1,4}[a-z]{0,2}) ?[-โ€“โ€”] ?([0-9]{1,4}[a-z]{0,2})$/i,be=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-โ€“โ€”] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,ve=/^[0-9]{3}-[0-9]{4}$/;var ye=function(e,t){let n=e[t],a=n.text.match(fe);return null!==a?!0===n.tags.has("PhoneNumber")||ve.test(n.text)?null:[a[1],"to",a[2]]:(a=n.text.match(be),null!==a?[a[1],"to",a[4]]:null)};const we=/^([+-]?[0-9][.,0-9]*)([a-zยฐยฒยณยต/]+)$/;var ke=function(e,t,n){const a=n.model.one.numberSuffixes||{};let r=e[t].text.match(we);if(null!==r){let e=r[2].toLowerCase().trim();return a.hasOwnProperty(e)?null:[r[1],e]}return null};const Pe=/'/,Ae=/^[0-9][^-โ€“โ€”]*[-โ€“โ€”].*?[0-9]/,Ce=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]]},je={t:(e,t)=>ue(e,t),d:(e,t)=>le(e,t)},Ne={j:(e,t)=>ge(e,t),l:(e,t)=>me(e,t),d:(e,t)=>pe(e,t)},Ie=function(e,t,n,a){for(let r=0;r2)return o.out.concat(a)}return null},De=function(e,t){let n=t.fromText(e.join(" "));return n.compute(["id","alias"]),n.docs[0]},He=function(e,t){for(let n=t+1;n<5&&e[n];n+=1)if("been"===e[n].normal)return["there","has"];return["there","is"]};var Ge=e=>{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;if(!0===Pe.test(a[s].normal)){let e=a[s].normal.split(Pe);l=e[0],u=e[1]}let c=Ie(o,a[s],l,u);!c&&je.hasOwnProperty(u)&&(c=je[u](a,s,t)),!c&&Ne.hasOwnProperty(l)&&(c=Ne[l](a,s)),"there"===l&&"s"===u&&(c=He(a,s)),c?(c=De(c,e),ae(n,[i,s],c),Ce(n[i],e,s,c.length)):Ae.test(a[s].normal)?(c=ye(a,s),c&&(c=De(c,e),ae(n,[i,s],c),r.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&r.one.setTag([c[0]],"Time",t,null,"time-range"),Ce(n[i],e,s,c.length))):(c=ke(a,s,t),c&&(c=De(c,e),ae(n,[i,s],c),r.one.setTag([c[1]],"Unit",t,null,"contraction-unit")))}}))};var xe={model:ne,compute:{contractions:Ge},hooks:["contractions"]};const Te=function(e){const t=e.world,{model:n,methods:a}=e.world,r=a.one.setTag,{frozenLex:o}=n.one,i=n.one._multiCache||{};e.docs.forEach((e=>{for(let n=0;nn;a-=1){let i=e.slice(n,a+1),s=i.map((e=>e.machine||e.normal)).join(" ");!0!==o.hasOwnProperty(s)||(r(i,o[s],t,!1,"1-frozen-multi-lexicon"),i.forEach((e=>e.frozen=!0)))}}void 0!==o[s]&&o.hasOwnProperty(s)&&(r([a],o[s],t,!1,"1-freeze-lexicon"),a.frozen=!0)}}))};const Ee=e=>""+e+"",Fe=e=>""+e+"";var Oe=function(e){e.docs.forEach((e=>{console.log(Ee("\n โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€")),e.forEach((e=>{let t=` ${Fe("โ”‚")} `,n=e.implicit||e.text||"-";!0===e.frozen?t+=`${Ee(n)} โ„๏ธ`:t+=Fe(n),console.log(t)}))}))},ze={compute:{frozen:Te,freeze:Te,unfreeze:function(e){return e.docs.forEach((e=>{e.forEach((e=>{delete e.frozen}))})),e}},mutate:e=>{const t=e.methods.one;t.termMethods.isFrozen=e=>!0===e.frozen,t.debug.freeze=Oe,t.debug.frozen=Oe},api:function(e){e.prototype.freeze=function(){return this.docs.forEach((e=>{e.forEach((e=>{e.frozen=!0}))})),this},e.prototype.unfreeze=function(){this.compute("unfreeze")},e.prototype.isFrozen=function(){return this.match("@isFrozen+")}},hooks:["freeze"]};var Ve=function(e,t,n){const{model:a,methods:r}=n,o=r.one.setTag,i=a.one._multiCache||{},{lexicon:s}=a.one||{};let l=e[t],u=l.machine||l.normal;if(void 0!==i[u]&&e[t+1]){for(let a=t+i[u]-1;a>t;a-=1){let r=e.slice(t,a+1);if(r.length<=1)return!1;let i=r.map((e=>e.machine||e.normal)).join(" ");if(!0===s.hasOwnProperty(i)){let e=s[i];return o(r,e,n,!1,"1-multi-lexicon"),!e||2!==e.length||"PhrasalVerb"!==e[0]&&"PhrasalVerb"!==e[1]||o([r[1]],"Particle",n,!1,"1-phrasal-particle"),!0}}return!1}return null};const Be=/^(under|over|mis|re|un|dis|semi|pre|post)-?/,Se=new Set(["Verb","Infinitive","PastTense","Gerund","PresentTense","Adjective","Participle"]);var Ke=function(e,t,n){const{model:a,methods:r}=n,o=r.one.setTag,{lexicon:i}=a.one;let s=e[t],l=s.machine||s.normal;if(void 0!==i[l]&&i.hasOwnProperty(l))return o([s],i[l],n,!1,"1-lexicon"),!0;if(s.alias){let e=s.alias.find((e=>i.hasOwnProperty(e)));if(e)return o([s],i[e],n,!1,"1-lexicon-alias"),!0}if(!0===Be.test(l)){let e=l.replace(Be,"");if(i.hasOwnProperty(e)&&e.length>3&&Se.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null};var $e={lexicon:function(e){const t=e.world;e.docs.forEach((e=>{for(let n=0;n{let r=e[a],o=(a=(a=a.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);o.length>1&&(void 0===n[o[0]]||o.length>n[o[0]])&&(n[o[0]]=o.length),t[a]=t[a]||r})),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}};var Le={addWords:function(e,t=!1){const n=this.world(),{methods:a,model:r}=n;if(!e)return;if(Object.keys(e).forEach((t=>{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))})),!0===t){let{lex:t,_multi:o}=a.one.expandLexicon(e,n);return Object.assign(r.one._multiCache,o),void Object.assign(r.one.frozenLex,t)}if(a.two.expandLexicon){let{lex:t,_multi:o}=a.two.expandLexicon(e,n);Object.assign(r.one.lexicon,t),Object.assign(r.one._multiCache,o)}let{lex:o,_multi:i}=a.one.expandLexicon(e,n);Object.assign(r.one.lexicon,o),Object.assign(r.one._multiCache,i)}};var Je={model:{one:{lexicon:{},_multiCache:{},frozenLex:{}}},methods:{one:{expandLexicon:Me}},compute:$e,lib:Le,hooks:["lexicon"]};var We=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;let r=n.one.tokenize.splitTerms(e,a).map((e=>n.one.tokenize.splitWhitespace(e,a)));return r.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 Ue=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 Qe=(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 Ze=function(e){return e.goNext=e.goNext.map((e=>{if(0!==Object.keys(e).length)return e})),e.goNext=Qe(e.goNext,void 0),e.failTo=Qe(e.failTo,0),e.endAs=Qe(e.endAs,null),e};const _e={buildTrie:function(e){const t=We(e,this.world());return Ze(t)}};_e.compile=_e.buildTrie;var Xe={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:We(e,this.world));var a;let r=Re(this,n,t);return r=r.settle(),r}},lib:_e};const Ye=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},et=function(e,t){let{ptrs:n,byGroup:a}=e;return n=Ye(n,t),Object.keys(a).forEach((e=>{a[e]=Ye(a[e],t)})),{ptrs:n,byGroup:a}},tt=function(e,t,n){const a=n.methods.one;return"number"==typeof e&&(e=String(e)),"string"==typeof e&&(e=a.killUnicode(e,n),e=a.parseMatch(e,t,n)),e},nt=e=>"[object Object]"===Object.prototype.toString.call(e),at=e=>e&&nt(e)&&!0===e.isView,rt=e=>e&&nt(e)&&!0===e.isNet;var ot={matchOne:function(e,t,n){const a=this.methods.one;if(at(e))return this.intersection(e).eq(0);if(rt(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;let r={regs:e=tt(e,n,this.world),group:t,justOne:!0},o=a.match(this.docs,r,this._cache),{ptrs:i,byGroup:s}=et(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const a=this.methods.one;if(at(e))return this.intersection(e);if(rt(e))return this.sweep(e,{tagger:!1}).view.settle();let r={regs:e=tt(e,n,this.world),group:t},o=a.match(this.docs,r,this._cache),{ptrs:i,byGroup:s}=et(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const a=this.methods.one;if(at(e)){return this.intersection(e).fullPointer.length>0}if(rt(e))return this.sweep(e,{tagger:!1}).view.found;let r={regs:e=tt(e,n,this.world),group:t,justOne:!0};return a.match(this.docs,r,this._cache).ptrs.length>0},if:function(e,t,n){const a=this.methods.one;if(at(e))return this.filter((t=>t.intersection(e).found));if(rt(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}let r={regs:e=tt(e,n,this.world),group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter(((e,t)=>{let n=this.update([e]);return a.match(n.docs,r,i[t]).ptrs.length>0}));let s=this.update(o);return this._cache&&(s._cache=o.map((e=>i[e[0]]))),s},ifNo:function(e,t,n){const{methods:a}=this,r=a.one;if(at(e))return this.filter((t=>!t.intersection(e).found));if(rt(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}e=tt(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 it={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 st=function(e,t){return[e[0],e[1],t[2]]},lt=(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},ut=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},ct={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let a=lt(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=>ut(e,this))),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let a=lt(e,this,t).fullPointer,r=n(this.fullPointer,a);for(let e=0;e{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(st(e.match,e.after)):o.push(e.match)})),o=o.filter((e=>e)),o=o.map((e=>ut(e,this))),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let a=lt(e,this,t).fullPointer,r=n(this.fullPointer,a),o=[];return r.forEach((e=>{o.push(e.passthrough),e.before&&e.match?o.push(st(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=>ut(e,this))),this.update(o)}};ct.split=ct.splitAfter;var dt=ct;const ht=function(e,t){return!(!e||!t)&&(e[0]===t[0]&&e[2]===t[1])},gt=function(e,t,n){const a=e.world,r=a.methods.one.parseMatch;n=n||"^.";let o=r(t=t||".$",{},a),i=r(n,{},a);o[o.length-1].end=!0,i[0].start=!0;let s=e.fullPointer,l=[s[0]];for(let t=1;t)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,vt=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,yt=/ /g,wt=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),kt=function(e){return e=(e=e.map((e=>e.trim()))).filter((e=>e))};var Pt=function(e){let t=e.split(bt),n=[];t.forEach((e=>{wt(e)?n.push(e):n=n.concat(e.split(vt))})),n=kt(n);let a=[];return n.forEach((e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||wt(e)?a.push(e):a=a.concat(e.split(yt))})),a=kt(a),a};const At=/\{([0-9]+)?(, *[0-9]*)?\}/,Ct=/&&/,jt=new RegExp(/^<\s*(\S+)\s*>/),Nt=e=>e.charAt(0).toUpperCase()+e.substring(1),It=e=>e.charAt(e.length-1),Dt=e=>e.charAt(0),Ht=e=>e.substring(1),Gt=e=>e.substring(0,e.length-1),xt=function(e){return e=Ht(e),e=Gt(e)},Tt=function(e,t){let n={};for(let a=0;a<2;a+=1){if("$"===It(e)&&(n.end=!0,e=Gt(e)),"^"===Dt(e)&&(n.start=!0,e=Ht(e)),"?"===It(e)&&(n.optional=!0,e=Gt(e)),("["===Dt(e)||"]"===It(e))&&(n.group=null,"["===Dt(e)&&(n.groupStart=!0),"]"===It(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===Dt(e))){const t=jt.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===It(e)&&(n.greedy=!0,e=Gt(e)),"*"!==e&&"*"===It(e)&&"\\*"!==e&&(n.greedy=!0,e=Gt(e)),"!"===Dt(e)&&(n.negative=!0,e=Ht(e)),"~"===Dt(e)&&"~"===It(e)&&e.length>2&&(e=xt(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("/"===Dt(e)&&"/"===It(e))return e=xt(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if(!0===At.test(e)&&(e=e.replace(At,((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),"")))),"("===Dt(e)&&")"===It(e)){Ct.test(e)?(n.choices=e.split(Ct),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=Ht(n.choices[0]);let a=n.choices.length-1;n.choices[a]=Gt(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=>Tt(e,t))))),e=""}if("{"===Dt(e)&&"}"===It(e)){if(e=xt(e),n.root=e,/\//.test(e)){let e=n.root.split(/\//);n.root=e[0],n.pos=e[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==e[2]&&(n.sense=e[2])}return n}if("<"===Dt(e)&&">"===It(e))return e=xt(e),n.chunk=Nt(e),n.greedy=!0,n;if("%"===Dt(e)&&"%"===It(e))return e=xt(e),n.switch=e,n}return"#"===Dt(e)?(n.tag=Ht(e),n.tag=Nt(n.tag),n):"@"===Dt(e)?(n.method=Ht(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var Et=Tt;const Ft=/[a-z0-9][-โ€“โ€”][a-z]/i;var Ot=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&&Ft.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};const zt=function(e,t){let{all:n}=t.methods.two.transform.verb||{},a=e.root;return n?n(a,t.model):[]},Vt=function(e,t){let{all:n}=t.methods.two.transform.noun||{};return n?n(e.root,t.model):[e.root]},Bt=function(e,t){let{all:n}=t.methods.two.transform.adjective||{};return n?n(e.root,t.model):[e.root]};var St=function(e,t){return e=e.map((e=>{if(e.root)if(t.methods.two&&t.methods.two.transform){let n=[];e.pos?"Verb"===e.pos?n=n.concat(zt(e,t)):"Noun"===e.pos?n=n.concat(Vt(e,t)):"Adjective"===e.pos&&(n=n.concat(Bt(e,t))):(n=n.concat(zt(e,t)),n=n.concat(Vt(e,t)),n=n.concat(Bt(e,t))),n=n.filter((e=>e)),n.length>0&&(e.operator="or",e.fastOr=new Set(n))}else e.machine=e.root,delete e.id,delete e.root;return e}))};var Kt=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}))),e};var $t=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let a=Pt(e);return a=a.map((e=>Et(e,t))),a=Ot(a,n),a=St(a,n),a=Kt(a),a};const Mt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var Lt=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),Zt={hasQuote:e=>Wt.test(e.pre)||Ut.test(e.post),hasComma:e=>Qt(e,","),hasPeriod:e=>!0===Qt(e,".")&&!1===Qt(e,"..."),hasExclamation:e=>Qt(e,"!"),hasQuestionMark:e=>Qt(e,"?")||Qt(e,"ยฟ"),hasEllipses:e=>Qt(e,"..")||Qt(e,"โ€ฆ"),hasSemicolon:e=>Qt(e,";"),hasColon:e=>Qt(e,":"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>qt.test(e.post)||qt.test(e.pre),hasDash:e=>Rt.test(e.post)||Rt.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)};Zt.hasQuotation=Zt.hasQuote;var _t=Zt;let Xt=function(){};Xt=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.id&&t.id===e.id)return!0;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(Jt(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some((e=>e===t.word)))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof _t[t.method]&&!0===_t[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)}if(void 0!==t.chunk)return e.chunk===t.chunk;if(void 0!==t.switch)return e.switch===t.switch;if(void 0!==t.machine)return e.normal===t.machine||e.machine===t.machine||e.root===t.machine;if(void 0!==t.sense)return e.sense===t.sense;if(void 0!==t.fastOr){if(t.pos&&!e.tags.has(t.pos))return null;let n=e.root||e.implicit||e.machine||e.normal;return t.fastOr.has(n)||t.fastOr.has(e.text)}return void 0!==t.choices&&("and"===t.operator?t.choices.every((t=>Xt(e,t,n,a))):t.choices.some((t=>Xt(e,t,n,a))))}(e,t,n,a);return!0===t.negative?!r:r};var Yt=Xt;const en=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){tn(e,e.t).length=a-e.t}return e.t=a,!0};const an=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=Yt(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]&&Yt(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){tn(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 sn=function(e,t,n){let a=0;for(let r=e.t;ra)&&(e.t+=a,!0))};var ln=function(e){const{regs:t}=e;let n=t[e.r],a=Object.assign({},n);if(a.negative=!1,Yt(e.terms[e.t],a,e.start_i+e.t,e.phrase_length))return!1;if(n.optional){let n=t[e.r+1];if(n){if(Yt(e.terms[e.t],n,e.start_i+e.t,e.phrase_length))e.r+=1;else if(n.optional&&t[e.r+2]){Yt(e.terms[e.t],t[e.r+2],e.start_i+e.t,e.phrase_length)&&(e.r+=2)}}}return n.greedy?sn(e,a,t[e.r+1]):(e.t+=1,!0)};var un=function(e){const{regs:t}=e;let n=t[e.r],a=e.terms[e.t],r=Yt(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&&Yt(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}};var cn=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 dn=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 hn=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]&&un(e),a.implicit&&e.terms[e.t+1]&&dn(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy)return null;if(!0===n.greedy){if(!cn(e))return null}return!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const a=tn(e,t);e.t>1&&n.greedy?a.length+=e.t-t:a.length++}(e,r),!0};var gn=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!==en(e,r))if(e.negative){if(!ln(r))return null}else if(!0!==Yt(r.terms[r.t],e,r.start_i+r.t,r.phrase_length)){if(!0!==e.optional)return null}else{if(!hn(r))return null}else{if(!hn(r))return null}else{if(e.negative&&e.anything)return null;if(!hn(r))return null}else{if(!on(r))return null}else{if(!rn(r))return null}else{if(!nn(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 mn=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}};var pn=function(e,t,n){return e=e.filter((e=>{let[a,r,o]=e.pointer,i=n[a].slice(r,o);for(let e=0;e{e.groups[n][0]=t})),e},bn=function(e,t,n){let a=gn(e,t,0,e.length);return a?(a=fn(a,n),a):null};var vn=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=bn(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]}))),t.notIf&&(i=pn(i,t.notIf,e)),i=mn(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};var yn={api:ft,methods:{one:{termMethods:_t,parseMatch:$t,match:vn}},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 wn=/^\../,kn=/^#./,Pn=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,"'"),wn.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 An={html:function(e){let{starts:t,ends:n}=Pn(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(jn,""),In.test(r)&&(r=" "),r=r.replace(Nn,""),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(jn,""),r="-"===r?" ":r.replace(Cn,""));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&&Dn.test(r)||(r+=" "),a+=n+o+r})),!1===n&&(a=a.trim()),!0===t.lowerCase&&(a=a.toLowerCase()),a},Gn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{keepSpace:!1,whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{keepSpace:!1,whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};Gn.clean=Gn.normal,Gn.reduced=Gn.root;var xn=Gn;let Tn=[],En=0;for(;En<64;)Tn[En]=0|4294967296*Math.sin(++En%Math.PI);var Fn=function(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(En=i=0;En>4]+Tn[i]+~~o[En|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 On={text:!0,terms:!0};let zn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const Vn=function(e,t){return Object.assign({},e,t)},Bn={text:e=>Hn(e,{keepPunct:!0},!1),normal:e=>Hn(e,Vn(xn.normal,{keepPunct:!0}),!1),implicit:e=>Hn(e,Vn(xn.implicit,{keepPunct:!0}),!1),machine:e=>Hn(e,zn,!1),root:e=>Hn(e,Vn(zn,{form:"root"}),!1),hash:e=>Fn(Hn(e,{keepPunct:!0},!1)),offset:e=>{let t=Bn.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))};Bn.sentences=Bn.sentence,Bn.clean=Bn.normal,Bn.reduced=Bn.root;const Sn={json:function(e){let t=(n=this,"string"==typeof(a=(a=e)||{})&&(a={}),(a=Object.assign({},On,a)).offset&&n.compute("offset"),n.docs.map(((e,t)=>{let r={};return Object.keys(a).forEach((o=>{a[o]&&Bn[o]&&(r[o]=Bn[o](e,n,t))})),r})));var n,a;return"number"==typeof e?t[e]:t}};Sn.data=Sn.json;var Kn=Sn;var $n=function(e){let t=this.methods.one.debug||{};return e&&t.hasOwnProperty(e)?(t[e](this),this):"undefined"!=typeof window&&window.document?(t.clientSide(this),this):(t.tags(this),this)};const Mn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var Ln=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()));return e.filter((e=>e))}if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};e.forEach((e=>{t[e]=t[e]||0,t[e]+=1}));let n=Object.keys(t).map((e=>({normal:e,count:t[e]})));return n.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.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()},wrap:function(e){return Ln(this,e)}};var Wn=Jn;var Un={text:function(e){let t={};var n;if(e&&"string"==typeof e&&xn.hasOwnProperty(e)?t=Object.assign({},xn[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e)),void 0!==t.keepSpace||this.isFull()||(t.keepSpace=!1),void 0===t.keepEndPunct&&this.pointer){let e=this.pointer[0];e&&e[1]?t.keepEndPunct=!1:t.keepEndPunct=!0}return void 0===t.keepPunct&&(t.keepPunct=!0),void 0===t.keepSpace&&(t.keepSpace=!0),function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let a=0;a{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 Zn="";var _n={green:e=>""+e+Zn,red:e=>""+e+Zn,blue:e=>""+e+Zn,magenta:e=>""+e+Zn,cyan:e=>""+e+Zn,yellow:e=>""+e+Zn,black:e=>""+e+Zn,dim:e=>""+e+Zn,i:e=>""+e+Zn};var Xn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(_n.blue("\n โ”€โ”€โ”€โ”€โ”€โ”€")),t.forEach((t=>{console.log(_n.blue("\n โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€")),t.forEach((t=>{let a=[...t.tags||[]],r=t.text||"-";t.sense&&(r=`{${t.normal}/${t.sense}}`),t.implicit&&(r="["+t.implicit+"]"),r=_n.yellow(r);let o="'"+r+"'";if(t.reference){let n=e.update([t.reference]).text("normal");o+=` - ${_n.dim(_n.i("["+n+"]"))}`}o=o.padEnd(18);let i=_n.blue(" โ”‚ ")+_n.i(o)+" - "+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 _n[n](e)}))),e.join(", ")}(a,n);console.log(i)}))})),console.log("\n")};var Yn=function(e){let{docs:t}=e;console.log(""),t.forEach((e=>{let t=[];e.forEach((e=>{"Noun"===e.chunk?t.push(_n.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(_n.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(_n.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(_n.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)})),console.log(t.join(" "),"\n")})),console.log("\n")};var ea=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]}${_n.blue(a[1])}${a[2]}`}(a,e.offset,t)})),console.log(a)})),console.log("\n")};var ta={api:Rn,methods:{one:{hash:Fn,debug:{tags:Xn,clientSide:Qn,chunks:Yn,highlight:ea}}}};const na=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},aa=function(e){let t={};return e.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),t};var ra=function(e,t){let n=aa(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 oa=function(e,t){let n=[];return e.forEach(((a,r)=>{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<20;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};var ia={one:{termList:function(e){let t=[];for(let n=0;n{let[t]=e;if(1===a[t].length)return void r.push(e);let n=a[t].filter((t=>na(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 ua=function(e,t){let n=aa(t),a=[];return e.forEach((e=>{let t=n[e[0]]||[];t=t.filter((t=>na(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},da=function(e,t){return e.map((e=>{let[n,a]=e;return t[n]&&t[n][a]&&(e[3]=t[n][a].id),e}))},ha={union:function(e){e=ca(e,this);let t=sa(this.fullPointer,e.fullPointer);return t=da(t,this.document),this.toView(t)}};ha.and=ha.union,ha.intersection=function(e){e=ca(e,this);let t=ua(this.fullPointer,e.fullPointer);return t=da(t,this.document),this.toView(t)},ha.not=function(e){e=ca(e,this);let t=la(this.fullPointer,e.fullPointer);return t=da(t,this.document),this.toView(t)},ha.difference=ha.not,ha.complement=function(){let e=this.all(),t=la(e.fullPointer,this.fullPointer);return t=da(t,this.document),this.toView(t)},ha.settle=function(){let e=this.fullPointer;return e.forEach((t=>{e=sa(e,[t])})),e=da(e,this.document),this.update(e)};var ga=function(e){Object.assign(e.prototype,ha)},ma={methods:ia,api:ga};var pa=function(e){e.prototype.sweep=function(e,t={}){const{world:n,docs:a}=this,{methods:r}=n;let o=r.one.bulkMatch(a,e,this.methods,t);!1!==t.tagger&&r.one.bulkTagger(o,a,this.world),o=o.map((e=>{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}}};const fa=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var ba=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.notIf&&(e.notIf=n(e.notIf,{},t)),e.needs=function(e){let t=[];return e.forEach((e=>{t.push(fa(e)),"and"===e.operator&&e.choices&&e.choices.forEach((e=>{e.forEach((e=>{t.push(fa(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=fa(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 va=function(e,t){e=ba(e,t);let n={};e.forEach((e=>{e.needs.forEach((t=>{n[t]=Array.isArray(n[t])?n[t]:[],n[t].push(e)})),e.wants.forEach((t=>{n[t]=Array.isArray(n[t])?n[t]:[],n[t].push(e)}))})),Object.keys(n).forEach((e=>{let t={};n[e]=n[e].filter((e=>"boolean"!=typeof 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}};var ya=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=>"boolean"!=typeof o[e.match]&&(o[e.match]=!0,!0))),r}))};var wa=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=>a.has(e)))))).filter((e=>{if(0===e.wants.length)return!0;return e.wants.filter((e=>a.has(e))).length>=e.minWant}))}))};var ka=function(e,t,n,a,r){let o=[];for(let n=0;n0&&(l.ptrs.forEach((e=>{e[0]=n;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),o.push(t)})),!0===r.matchOne))return[o[0]]}return o};var Pa=function(e,t,n,a={}){let r=n.one.cacheDoc(e),o=ya(r,t.hooks);return o=wa(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=e.filter((e=>a>=e.minWords)),e}))}(o,e),ka(o,e,r,n,a)};var Aa=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{if(!e.tag&&!e.chunk&&!e.unTag)return;let r=e.reason||e.match,u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===Aa(u,e.tag,a))return;if("-"===u[u.length-1].post)return}if(void 0!==e.tag){if(i(u,e.tag,n,e.safe,`[post] '${r}'`),"Noun"===e.tag&&l){let t=u[u.length-1];l(t.text)?i([t],"Plural",n,e.safe,"quick-plural"):i([t],"Singular",n,e.safe,"quick-singular")}!0===e.freeze&&u.forEach((e=>e.frozen=!0))}void 0!==e.unTag&&s(u,e.unTag,n,e.safe,r),e.chunk&&u.forEach((t=>t.chunk=e.chunk))}))},ja={lib:{buildNet:function(e){let t=this.methods().one.buildNet(e,this.world());return t.isNet=!0,t}},api:pa,methods:{one:{buildNet:va,bulkMatch:Pa,bulkTagger:Ca}}};const Na=/ /,Ia=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},Da=function(e,t,n,a){if(!0===e.tags.has(t))return null;if("."===t)return null;!0===e.frozen&&(a=!0);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("string"==typeof t)if(t=t.trim(),Na.test(t))!function(e,t,n,a){let r=t.split(Na);e.forEach(((e,t)=>{let o=r[t];o&&(o=o.replace(/^#/,""),Da(e,o,n,a))}))}(e,t,o,a);else{t=t.replace(/^#/,"");for(let n=0;nHa(e,t,n,a)))};var Ga=Ha;var xa=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=>Ea({id:e}))),t}return[Ea({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},Va=e=>"[object Array]"===Object.prototype.toString.call(e),Ba=e=>(e=e||"").trim(),Sa=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach((e=>{if(!e.trim()||Fa.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:Oa(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=Ea({});return e.forEach((e=>{if((e=Ea(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):(za(t=e).forEach(Ea),t);var t},Ka=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("โ†’ "));let a="";return za(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},$a=function(e){let t=za(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},Ma={text:Ka,txt:Ka,array:$a,flat:$a},La=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Ka(e,!0)),null):Ma.hasOwnProperty(t)?Ma[t](e):e},Ja=e=>{za(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))}))},Wa=/\//;let Ua=class g{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=Ba(e),!Wa.test(e)){let t=this.json.children.find((t=>t.id===e));return new g(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)||Ea({});return new g(t)}add(e,t={}){if(Va(e))return e.forEach((e=>this.add(Ba(e),t))),this;e=Ba(e);let n=Ea({id:e,props:t});return this.json.children.push(n),new g(n)}remove(e){return e=Ba(e),this.json.children=this.json.children.filter((t=>t.id!==e)),this}nodes(){return za(this.json).map((e=>(delete(e=Object.assign({},e)).children,e)))}cache(){return(e=>{let t=za(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 za(this.json)}fillDown(){var e;return e=this.json,za(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 Va(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])})),e))(t.props,e.props)})),this}depth(){Ja(this.json);let e=za(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 Ja(this.json),La(this.json,e)}debug(){return Ja(this.json),La(this.json,"debug"),this}};const qa=function(e){let t=Sa(e);return new Ua(t)};qa.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",Hyphenated:"cyan",Adverb:"cyan"};const Qa=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 Za=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:Qa(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 _a=function(e){return e?"string"==typeof e?[e]:e:[]};var Xa=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=_a(e[t].children),e[t].not=_a(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 Ya=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=Xa(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 qa(t).cache().fillDown().out("array")}(Object.assign({},t,e));return Za(n)},er={one:{setTag:Ga,unTag:xa,addTags:Ya,canBe:Ta}};const tr=function(e){return"[object Array]"===Object.prototype.toString.call(e)},nr={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||""),tr(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 tr(e)?e.forEach((e=>a.one.unTag(n,e,i))):a.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){e=e.replace(/^#/,"");let t=this.model.one.tagSet,n=this.methods.one.canBe,a=[];this.document.forEach(((r,o)=>{r.forEach(((r,i)=>{n(r,e,t)||a.push([o,i,i+1])}))}));let r=this.update(a);return this.difference(r)}};var ar=nr;var rr=function(e){Object.assign(e.prototype,ar)};var or={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 ir=new Set(["Auxiliary","Possessive"]);var sr=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=e.sort(((e,n)=>{if(ir.has(e)||!t.hasOwnProperty(n))return 1;if(ir.has(n)||!t.hasOwnProperty(e))return-1;let a=t[e].children||[],r=a.length;return a=t[n].children||[],r-a.length})),e}(t,a)}))}))},lr={model:{one:{tagSet:{}}},compute:{tagRank:sr},methods:er,api:rr,lib:or};const ur=/([.!?\u203D\u2E18\u203C\u2047-\u2049\u3002]+\s)/g,cr=/^[.!?\u203D\u2E18\u203C\u2047-\u2049\u3002]+\s$/,dr=/((?:\r?\n|\r)+)/;var hr=function(e){let t=[],n=e.split(dr);for(let e=0;e0&&(r.push(o),e[t]="")}return r};const br={'"':'"',"๏ผ‚":"๏ผ‚","โ€œ":"โ€","โ€Ÿ":"โ€","โ€ž":"โ€","โน‚":"โ€","โ€š":"โ€™","ยซ":"ยป","โ€น":"โ€บ","โ€ต":"โ€ฒ","โ€ถ":"โ€ณ","โ€ท":"โ€ด","ใ€":"ใ€ž","ใ€Ÿ":"ใ€ž"},vr=RegExp("["+Object.keys(br).join("")+"]","g"),yr=RegExp("["+Object.values(br).join("")+"]","g"),wr=function(e){if(!e)return!1;let t=e.match(yr);return null!==t&&1===t.length};var kr=function(e){let t=[];for(let n=0;n(e[t]=!0,e)),{});var Vr=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(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=Tr(n),n=Gr(n),n=n.filter((e=>e)),n};const Br=/\p{Letter}/u,Sr=/[\p{Number}\p{Currency_Symbol}]/u,Kr=/^[a-z]\.([a-z]\.)+/i,$r=/[sn]['โ€™]$/;var Mr=function(e,t){let{prePunctuation:n,postPunctuation:a,emoticons:r}=t.one,o=e,i="",s="",l=Array.from(e);if(r.hasOwnProperty(e.trim()))return{str:e.trim(),pre:i,post:" "};let u=l.length;for(let e=0;e(s=e||"",""))),e=o,i=""),{str:e,pre:i,post:s}};var Lr=(e,t)=>{let{str:n,pre:a,post:r}=Mr(e,t);return{text:n,pre:a,post:r,tags:new Set}};var Jr=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("")};var 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 Ur=/([A-Z]\.)+[A-Z]?,?$/,qr=/^[A-Z]\.,?$/,Rr=/[A-Z]{2,}('s|,)?$/,Qr=/([a-z]\.)+[a-z]\.?$/;var Zr=function(e){return function(e){return!0===Ur.test(e)||!0===Qr.test(e)||!0===qr.test(e)||!0===Rr.test(e)}(e)&&(e=e.replace(/\./g,"")),e};var _r=function(e,t){const n=t.methods.one.killUnicode;let a=e.text||"";a=Wr(a),a=n(a,t),a=Zr(a),e.normal=a};var Xr=function(e,t){const{methods:n,model:a}=t,{splitSentences:r,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=r(e=e||"",t).map((e=>{let n=o(e,a);return n=n.map((e=>i(e,a))),n.forEach((e=>{_r(e,t)})),n})),e};const Yr=/[ .][A-Z]\.? *$/i,eo=/(?:\u2026|\.{2,}) *$/,to=/\p{L}/u,no=/\. *$/,ao=/^[A-Z]\. $/;var ro={one:{killUnicode:Jr,tokenize:{splitSentences:Ir,isSentence:function(e,t){if(!1===to.test(e))return!1;if(!0===Yr.test(e))return!1;if(3===e.length&&ao.test(e))return!1;if(!0===eo.test(e))return!1;let n=e.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),a=n[n.length-1].toLowerCase();return!0!==t.hasOwnProperty(a)||!0!==no.test(e)},splitTerms:Vr,splitWhitespace:Lr,fromString:Xr}}};var oo={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let io={},so={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","ยตg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","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=>{io[t]=!0,so[t]="Abbreviation",void 0!==e[1]&&(so[t]=[so[t],e[1]])}))}));var lo=["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","ex"].reduce(((e,t)=>(e[t]=!0,e)),{});let uo={"!":"ยก","?":"ยฟษ",'"':'โ€œโ€"โโž',"'":"โ€˜โ€›โ›โœโ€™","-":"โ€”โ€“",a:"ยชร€รร‚รƒร„ร…ร รกรขรฃรครฅฤ€ฤฤ‚ฤƒฤ„ฤ…ววŽวžวŸว วกวบวปศ€ศศ‚ศƒศฆศงศบฮ†ฮ‘ฮ”ฮ›ฮฌฮฑฮปะะฐัฆังำำ‘ำ’ำ“ฦ›รฆ",b:"รŸรพฦ€ฦฦ‚ฦƒฦ„ฦ…ษƒฮ’ฮฒฯฯฆะ‘ะ’ะชะฌะฒัŠัŒัขัฃาŒา",c:"ยขยฉร‡รงฤ†ฤ‡ฤˆฤ‰ฤŠฤ‹ฤŒฤฦ†ฦ‡ฦˆศปศผอปอผฯฒฯนฯฝฯพะกัั”า€าาชาซ",d:"รฤŽฤฤฤ‘ฦ‰ฦŠศกฦ‹ฦŒ",e:"รˆร‰รŠร‹รจรฉรชรซฤ’ฤ“ฤ”ฤ•ฤ–ฤ—ฤ˜ฤ™ฤšฤ›ฦศ„ศ…ศ†ศ‡ศจศฉษ†ษ‡ฮˆฮ•ฮžฮฃฮญฮตฮพฯตะ€ะะ•ะตัั‘าผาฝาพาฟำ–ำ—แป…",f:"ฦ‘ฦ’ฯœฯำบำปา’า“ลฟ",g:"ฤœฤฤžฤŸฤ ฤกฤขฤฃฦ“วควฅวฆวงวดวต",h:"ฤคฤฅฤฆฤงฦ•วถศžศŸฮ‰ฮ—ะ‚ะŠะ‹ะะฝั’ั›าขาฃาคาฅาบาปำ‰ำŠ",I:"รŒรรŽร",i:"รฌรญรฎรฏฤจฤฉฤชฤซฤฌฤญฤฎฤฏฤฐฤฑฦ–ฦ—ศˆศ‰ศŠศ‹ฮŠฮฮชฮฏฮนฯŠะ†ะ‡ั–ั—iฬ‡",j:"ฤดฤตวฐศทษˆษ‰ฯณะˆั˜",k:"ฤถฤทฤธฦ˜ฦ™วจวฉฮšฮบะŒะ–ะšะถะบัœาšา›าœาาžาŸา าก",l:"ฤนฤบฤปฤผฤฝฤพฤฟล€ลล‚ฦšฦชว€ววศดศฝฮ™ำ€ำ",m:"ฮœฯบฯปะœะผำำŽ",n:"ร‘รฑลƒล„ล…ล†ล‡ลˆล‰ลŠล‹ฦฦžวธวนศ ศตฮฮ ฮฎฮทฯžะะ˜ะ™ะ›ะŸะธะนะปะฟัาŠา‹ำ…ำ†ำขำฃำคำฅฯ€",o:"ร’ร“ร”ร•ร–ร˜รฐรฒรณรดรตรถรธลŒลลŽลลล‘ฦŸฦ ฦกว‘ว’วชวซวฌวญวพวฟศŒศศŽศศชศซศฌศญศฎศฏศฐศฑฮŒฮ˜ฮŸฮธฮฟฯƒฯŒฯ•ฯ˜ฯ™ฯฌฯดะžะคะพัฒัณำฆำงำจำฉำชำซ",p:"ฦคฮกฯฯทฯธฯผะ ั€าŽารž",q:"ษŠษ‹",r:"ล”ล•ล–ล—ล˜ล™ฦฆศศ‘ศ’ศ“ษŒษะƒะ“ะฏะณัั“าา‘",s:"ลšล›ลœลลžลŸล ลกฦงฦจศ˜ศ™ศฟะ…ั•",t:"ลขลฃลคลฅลฆลงฦซฦฌฦญฦฎศšศ›ศถศพฮ“ฮคฯ„ฯฎะขั‚",u:"ร™รšร›รœรนรบรปรผลจลฉลชลซลฌลญลฎลฏลฐลฑลฒลณฦฏฦฐฦฑฦฒว“ว”ว•ว–ว—ว˜ว™วšว›วœศ”ศ•ศ–ศ—ษ„ฮฐฯ…ฯ‹ฯ",v:"ฮฝัดัตัถัท",w:"ลดลตฦœฯ‰ฯŽฯ–ฯขฯฃะจะฉัˆั‰ักัฟ",x:"ร—ฮงฯ‡ฯ—ฯฐะฅั…าฒาณำผำฝำพำฟ",y:"รรฝรฟลถลทลธฦณฦดศฒศณษŽษฮŽฮฅฮซฮณฯˆฯ’ฯ“ฯ”ะŽะฃัƒั‡ัžัฐัฑาฎาฏาฐาฑำฎำฏำฐำฑำฒำณ",z:"ลนลบลปลผลฝลพฦตฦถศคศฅษ€ฮ–"},co={};Object.keys(uo).forEach((function(e){uo[e].split("").forEach((function(t){co[t]=e}))}));const ho=/\//,go=/[a-z]\.[a-z]/i,mo=/[0-9]/;var po=function(e,t){let n=e.normal||e.text||e.machine;const a=t.model.one.aliases;if(a.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(a[n])),ho.test(n)&&!go.test(n)&&!mo.test(n)){let t=n.split(ho);t.length<=3&&t.forEach((t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))}))}return e};const fo=/^\p{Letter}+-\p{Letter}+$/u;var bo=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"),fo.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)};var vo=function(e){let t=e.docs,n={};for(let e=0;ePo(e,po),machine:e=>Po(e,bo),normal:e=>Po(e,_r),freq:vo,offset:yo,index:wo,wordCount:ko},methods:ro,model:{one:{aliases:oo,abbreviations:io,prefixes:lo,suffixes:{like:!0,ish:!0,less:!0,able:!0,elect:!0,type:!0,designate:!0},prePunctuation:{"#":!0,"@":!0,_:!0,"ยฐ":!0,"โ€‹":!0,"โ€Œ":!0,"โ€":!0,"\ufeff":!0},postPunctuation:{"%":!0,_:!0,"ยฐ":!0,"โ€‹":!0,"โ€Œ":!0,"โ€":!0,"\ufeff":!0},lexicon:so,unicode:co,emoticons:{"<3":!0,"{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 Do={safe:!0,min:3};var Ho={typeahead:function(e=[],t={}){let n=this.model();var a;t=Object.assign({},Do,t),a=e,"[object Object]"===Object.prototype.toString.call(a)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let r=Io(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}};var Go={model:{one:{typeahead:{}}},api:No,lib:Ho,compute:Co,hooks:["typeahead"]};b.extend(ee),b.extend(ta),b.extend(yn),b.extend(ma),b.extend(lr),b.plugin(xe),b.extend(Ao),b.extend(ze),b.plugin(k),b.extend(Xe),b.extend(Go),b.extend(Je),b.extend(ja);var xo={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",volcano:"volcanoes"},To={Comparative:"trueยฆbett1f0;arth0ew0in0;er",Superlative:"trueยฆearlier",PresentTense:"trueยฆbests,sounds",Condition:"trueยฆlest,unless",PastTense:"trueยฆbegan,came,d4had,kneel3l2m0sa4we1;ea0sg2;nt;eap0i0;ed;id",Participle:"trueยฆ0:09;a06b01cZdXeat0fSgQhPoJprov0rHs7t6u4w1;ak0ithdra02o2r1;i02uY;k0v0;nd1pr04;ergoJoJ;ak0hHo3;e9h7lain,o6p5t4un3w1;o1um;rn;g,k;ol0reS;iQok0;ught,wn;ak0o1runk;ne,wn;en,wn;ewriNi1uJ;dd0s0;ut3ver1;do4se0t1;ak0h2;do2g1;roG;ne;ast0i7;iv0o1;ne,tt0;all0loBor1;bi3g2s1;ak0e0;iv0o9;dd0;ove,r1;a5eamt,iv0;hos0lu1;ng;e4i3lo2ui1;lt;wn;tt0;at0en,gun;r2w1;ak0ok0;is0;en",Gerund:"trueยฆaccord0be0doin,go0result0stain0;ing",Expression:"trueยฆa0Yb0Uc0Sd0Oe0Mfarew0Lg0FhZjeez,lWmVnToOpLsJtIuFvEw7y0;a5e3i1u0;ck,p;k04p0;ee,pee;a0p,s;!h;!a,h,y;a5h2o1t0;af,f;rd up,w;atsoever,e1o0;a,ops;e,w;hoo,t;ery w06oi0L;gh,h0;! 0h,m;huh,oh;here nPsk,ut tut;h0ic;eesh,hh,it,oo;ff,h1l0ow,sst;ease,s,z;ew,ooey;h1i,mg,o0uch,w,y;h,o,ps;! 0h;hTmy go0wT;d,sh;a7evertheless,o0;!pe;eh,mm;ah,eh,m1ol0;!s;ao,fao;aCeBi9o2u0;h,mph,rra0zzC;h,y;l1o0;r6y9;la,y0;! 0;c1moCsmok0;es;ow;!p hip hoor0;ay;ck,e,llo,y;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;ell;e0h,t cetera,ureka,ww,xcuse me;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;mon,o0;ngratulations,wabunga;a2oo1r0tw,ye;avo,r;!ya;h,m; 1h0ka,las,men,rgh,ye;!a,em,h,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ยฆdick0gre0ones,records;ens","Unit|Noun":"trueยฆcEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,t,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s",Value:"trueยฆa few",Imperative:"trueยฆbewa0come he0;re","Plural|Verb":"trueยฆleaves",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:4Q;a3Tb3Bc2Od2He2Df27g1Zh1Ti1Pj1Nk1Ll1Gm12n0Po0Mp0Cqu0Br02sTtHuCv9w3xiaomi,y1;amaha,m1Bou1w1B;gov,tu3C;a4e2iki1orld trade organizati33;leaRped0O;lls fargo,st1;fie2Hinghou2R;l1rner br3U;gree3Jl street journ2Im1E;an halOeriz2Xisa,o1;dafo2Yl1;kswagMvo;b4kip,n2ps,s1;a tod3Aps;es3Mi1;lev3Fted natio3C;er,s; mobi32aco beRd bOe9gi frida3Lh3im horto3Amz,o1witt3D;shi49y1;ota,s r 05;e 1in lizzy;b3carpen3Jdaily ma3Dguess w2holli0s1w2;mashing pumpki35uprem0;ho;ea1lack eyed pe3Xyr0Q;ch bo3Dtl0;l2n3Qs1xas instrumen1U;co,la m1F;efoni0Kus;a8cientology,e5ieme2Ymirnoff,np,o3pice gir6quare0Ata1ubaru;rbuc1to34;ks;ny,undgard1;en;a2x pisto1;ls;g1Wrs;few2Minsbur31lesfor03msu2E;adiohead,b8e4o1yana3C;man empi1Xyal 1;b1dutch she4;ank;a3d 1max,vl20;bu1c2Ahot chili peppe2Ylobst2N;ll;ders dige1Ll madrid;c,s;ant3Aizn2Q;a8bs,e5fiz2Ihilip4i3r1;emier 1udenti1D;leagTo2K;nk floyd,zza hut; morrBs;psi2tro1uge0E;br33chi0Tn33;!co;lant2Un1yp16; 2ason27da2P;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0QvZ;l,s;c,st1Otflix,w1; 1sweek;kids on the block,york0D;a,c;nd22s2t1;ional aca2Po,we0U;a,c02d0S;aDcdonalCe9i6lb,o3tv,y1;spa1;ce;b1Tnsanto,ody blu0t1;ley cr1or0T;ue;c2t1;as,subisO;helin,rosoft;dica2rcedes benz,talli1;ca;id,re;ds;cs milk,tt19z24;a3e1g,ittle caesa1P; ore09novo,x1;is,mark,us; 1bour party;pres0Dz boy;atv,fc,kk,lm,m1od1O;art;iffy lu0Roy divisi0Jpmorgan1sa;! cha09;bm,hop,k3n1tv;g,te1;l,rpol;ea;a5ewlett pack1Vi3o1sbc,yundai;me dep1n1P;ot;tac1zbollah;hi;lliburt08sbro;eneral 6hq,ithub,l5mb,o2reen d0Ou1;cci,ns n ros0;ldman sachs,o1;dye1g0H;ar;axo smith kli04encoW;electr0Nm1;oto0Z;a5bi,c barcelo4da,edex,i2leetwood m03o1rito l0G;rd,xcY;at,fa,nancial1restoZ; tim0;na;cebook,nnie mae;b0Asa,u3xxon1; m1m1;ob0J;!rosceptics;aiml0De5isney,o4u1;nkin donu2po0Zran dur1;an;ts;j,w jon0;a,f lepp12ll,peche mode,r spieg02stiny's chi1;ld;aJbc,hFiDloudflaCnn,o3r1;aigsli5eedence clearwater reviv1ossra09;al;c7inba6l4m1o0Est09;ca2p1;aq;st;dplSg1;ate;se;a c1o chanQ;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil a,na daily;r1y;on;d2pital o1rls jr;ne;bury,ill1;ac;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;cardi,idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser busDol,ppleAr6s4u3v2y1;er;is,on;di,todesk;hland o1sociated E;il;b3g2m1;co;os;ys; compu1be0;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ยฆits,my,our0thy;!s","Noun|Verb":"trueยฆ0:9W;1:AA;2:96;3:A3;4:9R;5:A2;6:9K;7:8N;8:7L;9:A8;A:93;B:8D;C:8X;a9Ob8Qc7Id6Re6Gf5Sg5Hh55i4Xj4Uk4Rl4Em40n3Vo3Sp2Squ2Rr21s0Jt02u00vVwGyFzD;ip,oD;ne,om;awn,e6Fie68;aOeMhJiHoErD;ap,e9Oink2;nd0rDuC;kDry,sh5Hth;!shop;ck,nDpe,re,sh;!d,g;e86iD;p,sD;k,p0t2;aDed,lco8W;r,th0;it,lk,rEsDt4ve,x;h,te;!ehou1ra9;aGen5FiFoD;iDmAte,w;ce,d;be,ew,sA;cuum,l4B;pDr7;da5gra6Elo6A;aReQhrPiOoMrGuEwiDy5Z;n,st;nDrn;e,n7O;aGeFiEoDu6;t,ub2;bu5ck4Jgg0m,p;at,k,nd;ck,de,in,nsDp,v7J;f0i8R;ll,ne,p,r4Yss,t94uD;ch,r;ck,de,e,le,me,p,re;e5Wow,u6;ar,e,ll,mp0st,xt;g,lDng2rg7Ps5x;k,ly;a0Sc0Ne0Kh0Fi0Dk0Cl0Am08n06o05pXquaBtKuFwD;ea88iD;ng,pe,t4;bGit,m,ppErD;fa3ge,pri1v2U;lDo6S;e6Py;!je8;aMeLiKoHrEuDy2;dy,ff,mb2;a85eEiDo5Pugg2;ke,ng;am,ss,t4;ckEop,p,rD;e,m;ing,pi2;ck,nk,t4;er,m,p;ck,ff,ge,in,ke,lEmp,nd,p2rDte,y;!e,t;k,l;aJeIiHlGoFrDur,y;ay,e56inDu3;g,k2;ns8Bt;a5Qit;ll,n,r87te;ed,ll;m,n,rk;b,uC;aDee1Tow;ke,p;a5Je4FiDo53;le,rk;eep,iDou4;ce,p,t;ateboa7Ii;de,gnDl2Vnk,p,ze;!al;aGeFiEoDuff2;ck,p,re,w;ft,p,v0;d,i3Ylt0;ck,de,pe,re,ve;aEed,nDrv1It;se,t2N;l,r4t;aGhedu2oBrD;aEeDibb2o3Z;en,w;pe,t4;le,n,r2M;cDfegua72il,mp2;k,rifi3;aZeHhy6LiGoEuD;b,in,le,n,s5X;a6ck,ll,oDpe,u5;f,t;de,ng,ot,p,s1W;aTcSdo,el,fQgPje8lOmMnLo17pJque6sFturn,vDwa6V;eDi27;al,r1;er74oFpe8tEuD;lt,me;!a55;l71rt;air,eaDly,o53;l,t;dezvo2Zt;aDedy;ke,rk;ea1i4G;a6Iist0r5N;act6Yer1Vo71uD;nd,se;a38o6F;ch,s6G;c1Dge,iEke,lly,nDp1Wt1W;ge,k,t;n,se;es6Biv0;a04e00hYiXlToNrEsy4uD;mp,n4rcha1sh;aKeIiHoDu4O;be,ceFdu3fi2grDje8mi1p,te6;amDe6W;!me;ed,ss;ce,de,nt;sDy;er6Cs;cti3i1;iHlFoEp,re,sDuCw0;e,i5Yt;l,p;iDl;ce,sh;nt,s5V;aEce,e32uD;g,mp,n7;ce,nDy;!t;ck,le,n17pe,tNvot;a1oD;ne,tograph;ak,eFnErDt;fu55mA;!c32;!l,r;ckJiInHrFsEtDu1y;ch,e9;s,te;k,tD;!y;!ic;nt,r,se;!a7;bje8ff0il,oErDutli3Qver4B;bAd0ie9;ze;a4ReFoDur1;d,tD;e,i3;ed,gle8tD;!work;aMeKiIoEuD;rd0;ck,d3Rld,nEp,uDve;nt,th;it5EkD;ey;lk,n4Brr5CsDx;s,ta2B;asuBn4UrDss;ge,it;il,nFp,rk3WsEtD;ch,t0;h,k,t0;da5n0oeuvB;aLeJiHoEuD;mp,st;aEbby,ck,g,oDve;k,t;d,n;cDe,ft,mAnIst;en1k;aDc0Pe4vK;ch,d,k,p,se;bFcEnd,p,t4uD;gh,n4;e,k;el,o2U;eEiDno4E;ck,d,ll,ss;el,y;aEo1OuD;i3mp;m,zz;mpJnEr46ssD;ue;c1Rdex,fluGha2k,se2HteDvoi3;nt,rD;e6fa3viD;ew;en3;a8le2A;aJeHiGoEuD;g,nt;l3Ano2Dok,pDr1u1;!e;ghli1Fke,nt,re,t;aDd7lp;d,t;ck,mGndFrEsh,tDu9;ch,e;bo3Xm,ne4Eve6;!le;!m0;aMear,ift,lKossJrFuD;arDe4Alp,n;antee,d;aFiEoDumb2;uCwth;ll,nd,p;de,sp;ip;aBoDue;ss,w;g,in,me,ng,s,te,ze;aZeWiRlNoJrFuD;ck,el,nDss,zz;c38d;aEoDy;st,wn;cDgme,me,nchi1;tuB;cFg,il,ld,rD;ce,e29mDwa31;!at;us;aFe0Vip,oDy;at,ck,od,wD;!er;g,ke,me,re,sh,vo1E;eGgFlEnDre,sh,t,x;an3i0Q;e,m,t0;ht,uB;ld;aEeDn3;d,l;r,tuB;ce,il,ll,rm,vo2W;cho,d7ffe8nMsKxFyeD;!baD;ll;cGerci1hFpDtra8;eriDo0W;en3me9;au6ibA;el,han7u1;caDtima5;pe;count0d,vy;a01eSiMoJrEuDye;b,el,mp,pli2X;aGeFiEoD;ne,p;ft,ll,nk,p,ve;am,ss;ft,g,in;cEd7ubt,wnloD;ad;k,u0E;ge6p,sFt4vD;e,iDor3;de;char7gui1h,liEpD;at4lay,u5;ke;al,bKcJfeIlGmaCposAsEtaD;il;e07iD;gn,re;ay,ega5iD;ght;at,ct;li04rea1;a5ut;b,ma7n3rDte;e,t;a0Eent0Dh06irc2l03oKrFuD;be,e,rDt;b,e,l,ve;aGeFoEuDy;sh;p,ss,wd;dAep;ck,ft,sh;at,de,in,lTmMnFordina5py,re,st,uDv0;gh,nDp2rt;s01t;ceHdu8fli8glomeIsFtDveN;a8rD;a6ol;e9tru8;ct;ntDrn;ra5;bHfoGmFpD;leDouCromi1;me9;aCe9it,u5;rt;at,iD;ne;lap1oD;r,ur;aEiDoud,ub;ck,p;im,w;aEeDip;at,ck,er;iGllen7nErD;ge,m,t;ge,nD;el;n,r;er,re;ke,ll,mp,noe,pGrXsFtEuDve;se,ti0I;alog,ch;h,t;!tuB;re;a03eZiXlToPrHuEyD;pa11;bb2ck2dgEff0mp,rDst,zz;den,n;et;anJeHiFoadEuD;i1sh;ca6;be,d7;ge;aDed;ch,k;ch,d;aFg,mb,nEoDrd0tt2x,ycott;k,st,t;d,e;rd,st;aFeCiDoYur;nk,tz;nd;me;as,d,ke,nd,opsy,tD;!ch,e;aFef,lt,nDt;d,efA;it;r,t;ck,il,lan3nIrFsEtt2;le;e,h;!gDk;aDe;in;!d,g,k;bu1c05dZge,iYlVnTppQrLsIttGucEwaD;rd;tiD;on;aDempt;ck;k,sD;i6ocia5;st;chFmD;!oD;ur;!iD;ve;eEroa4;ch;al;chDg0sw0;or;aEt0;er;rm;d,m,r;dreHvD;an3oD;ca5;te;ce;ss;cDe,he,t;eFoD;rd,u9;nt;nt,ss;se",Actor:"trueยฆ0:7B;1:7G;2:6A;3:7F;4:7O;5:7K;a6Nb62c4Ud4Be41f3Sg3Bh30i2Uj2Qkin2Pl2Km26n1Zo1Sp0Vqu0Tr0JsQtJuHvEw8yo6;gi,ut6;h,ub0;aAe9i8o7r6;estl0it0;m2rk0;fe,nn0t2Bza2H;atherm2ld0;ge earn0it0nder0rri1;eter7i6oyF;ll5Qp,s3Z;an,ina2U;n6s0;c6Uder03;aoisea23e9herapi5iktok0o8r6ut1yco6S;a6endseLo43;d0mp,nscri0Bvel0;ddl0u1G;a0Qchn7en6na4st0;ag0;i3Oo0D;aiXcUeRhPiMki0mu26oJpGquaFtBu7wee6;p0theart;lt2per7r6;f0ge6Iviv1;h6inten0Ist5Ivis1;ero,um2;a8ep7r6;ang0eam0;bro2Nc2Ofa2Nmo2Nsi20;ff0tesm2;tt0;ec7ir2Do6;kesp59u0M;ia5Jt3;l7me6An,rcere6ul;r,ss;di0oi5;n7s6;sy,t0;g0n0;am2ephe1Iow6;girl,m2r2Q;cretInior cit3Fr6;gea4v6;a4it1;hol4Xi7reen6ulpt1;wr2C;e01on;l1nt;aEe9o8u6;l0nn6;er up,ingE;g40le mod3Zof0;a4Zc8fug2Ppo32searQv6;ere4Uolution6;ary;e6luYru22;ptio3T;bbi,dic5Vpp0;arter6e2Z;back;aYeWhSiRlOoKr8sycho7u6;nk,p31;logi5;aGeDiBo6;d9fess1g7ph47s6;pe2Ktitu51;en6ramm0;it1y;igy,uc0;est4Nme mini0Unce6s3E;!ss;a7si6;de4;ch0;ctiti39nk0P;dca0Oet,li6pula50rnst42;c2Itic6;al scie6i2;nti5;a6umb0;nn0y6;er,ma4Lwright;lgrim,one0;a8iloso7otogra7ra6ysi1V;se;ph0;ntom,rmaci5;r6ssi1T;form0s4O;i3El,nel3Yr8st1tr6wn;i6on;arWot;ent4Wi42tn0;ccupa4ffBp8r7ut6;ca5l0B;ac4Iganiz0ig2Fph2;er3t6;i1Jomet6;ri5;ic0spring;aBe9ie4Xo7u6;n,rser3J;b6mad,vi4V;le2Vo4D;i6mesis,phew;ce,ghb1;nny,rr3t1X;aEeDiAo7u6yst1Y;m8si16;der3gul,m7n6th0;arDk;!my;ni7s6;f02s0Jt0;on,st0;chan1Qnt1rcha4;gi9k0n8rtyr,t6y1;e,riar6;ch;ag0iac;ci2stra3I;a7e2Aieutena4o6;rd,s0v0;bor0d7ndlo6ss,urea3Fwy0ym2;rd;!y;!s28;e8o7u6;ggl0;gg0urna2U;st0;c3Hdol,llu3Ummigra4n6; l9c1Qfa4habi42nov3s7ve6;nt1stig3;pe0Nt6;a1Fig3ru0M;aw;airFeBistoAo8u6ygie1K;man6sba2H;!ita8;bo,st6usekN;age,e3P;ri2;ir,r6;m7o6;!ine;it;dress0sty2C;aLeIhostGirl26ladi3oCrand7u6;e5ru;c9daug0Jfa8m7pa6s2Y;!re4;a,o6;th0;hi1B;al7d6lf0;!de3A;ie,k6te26;eep0;!wr6;it0;isha,n6;i6tl04;us;mbl0rden0;aDella,iAo7r6;eela2Nie1P;e,re6ster pare4;be1Hm2r6st0;unn0;an2ZgZlmm17nanci0r6tt0;e6st la2H; marsh2OfigXm2;rm0th0;conoEdDlectriCm8n7x6;amin0cellency,i2A;emy,trepreneur,vironmenta1J;c8p6;er1loye6;e,r;ee;ci2;it1;mi5;aKeBi8ork,ri7u6we02;de,tche2H;ft0v0;ct3eti7plom2Hre6va;ct1;ci2ti2;aDcor3fencCi0InAput9s7tectLvel6;op0;ce1Ge6ign0;rt0;ee,y;iz6;en;em2;c1Ml0;d8nc0redev7ug6;ht0;il;!dy;a06e04fo,hXitizenWlToBr9u6;r3stomer6;! representat6;ive;e3it6;ic;lJmGnAord9rpor1Nu7w6;boy,ork0;n6ri0;ciTte1Q;in3;fidantAgressSs9t6;e0Kr6;ibut1o6;ll0;tab13ul1O;!e;edi2m6pos0rade;a0EeQissi6;on0;leag8on7um6;ni5;el;ue;e6own;an0r6;ic,k;!s;a9e7i6um;ld;erle6f;ad0;ir7nce6plFract0;ll1;m2wI;lebri6o;ty;dBptAr6shi0;e7pe6;nt0;r,t6;ak0;ain;et;aMeLiJlogg0oErBu6;dd0Fild0rgl9siness6;m2p7w6;om2;ers05;ar;i7o6;!k0th0;cklay0de,gadi0;hemi2oge8y6;!frie6;nd;ym2;an;cyc6sR;li5;atbox0ings;by,nk0r6;b0on7te6;nd0;!e07;c04dWge4nQpLrHsFtAu7yatull6;ah;nt7t6;h1oG;!ie;h8t6;e6orney;nda4;ie5le6;te;sis00tron6;aut,om0;chbis8isto7tis6;an,t;crU;hop;ost9p6;ari6rentiS;ti6;on;le;a9cest1im3nou8y6;bo6;dy;nc0;ly5rc6;hi5;mi8v6;entur0is1;er;ni7r6;al;str3;at1;or;counBquaintanArob9t6;ivi5or,re6;ss;st;at;ce;ta4;nt","Adj|Noun":"trueยฆ0:16;a1Db17c0Ud0Re0Mf0Dg0Ah08i06ju05l02mWnUoSpNrIsBt7u4v1watershed;a1ision0Z;gabo4nilla,ria1;b0Vnt;ndergr1pstairs;adua14ou1;nd;a3e1oken,ri0;en,r1;min0rori13;boo,n;age,e5ilv0Flack,o3quat,ta2u1well;bordina0Xper5;b0Lndard;ciali0Yl1vereign;e,ve16;cret,n1ri0;ior;a4e2ou1ubbiL;nd,tiY;ar,bBl0Wnt0p1side11;resent0Vublican;ci0Qsh;a4eriodic0last0Zotenti0r1;emi2incip0o1;!fession0;er,um;rall4st,tie0U;ff1pposi0Hv0;ens0Oi0C;agg01ov1uts;el;a5e3iniatJo1;bi01der07r1;al,t0;di1tr0N;an,um;le,riG;attOi2u1;sh;ber0ght,qC;stice,veniT;de0mpressioYn1;cumbe0Edividu0no0Dsta0Eterim;alf,o1umdrum;bby,melF;en2old,ra1;ph0Bve;er0ious;a7e5i4l3u1;git03t1;ure;uid;ne;llow,m1;aFiL;ir,t,vo1;riOuriO;l3p00x1;c1ecutUpeV;ess;d1iK;er;ar2e1;mographUrivO;k,l2;hiGlassSo2rude,unn1;ing;m5n1operK;creCstitueOte2vertab1;le;mpor1nt;ary;ic,m2p1;anion,lex;er2u1;ni8;ci0;al;e5lank,o4r1;i2u1;te;ef;ttom,urgeois;st;cadem9d6l2ntarct9r1;ab,ct8;e3tern1;at1;ive;rt;oles1ult;ce1;nt;ic","Adj|Past":"trueยฆ0:4Q;1:4C;2:4H;3:4E;a44b3Tc36d2Je29f20g1Wh1Si1Jj1Gkno1Fl1Am15n12o0Xp0Mqu0Kr08sLtEuAv9w4yellow0;a7ea6o4rinkl0;r4u3Y;n,ri0;k31th3;rp0sh0tZ;ari0e1O;n5p4s0;d1li1Rset;cov3derstood,i4;fi0t0;a8e3Rhr7i6ouTr4urn0wi4C;a4imm0ou2G;ck0in0pp0;ed,r0;eat2Qi37;m0nn0r4;get0ni2T;aOcKeIhGimFm0Hoak0pDt7u4;bsid3Ogge44s4;pe4ta2Y;ct0nd0;a8e7i2Eok0r5u4;ff0mp0nn0;ength2Hip4;ed,p0;am0reotyp0;in0t0;eci4ik0oH;al3Efi0;pRul1;a4ock0ut;d0r0;a4c1Jle2t31;l0s3Ut0;a6or5r4;at4e25;ch0;r0tt3;t4ut0;is2Mur1;aEe5o4;tt0;cAdJf2Bg9je2l8m0Knew0p7qu6s4;eTpe2t4;or0ri2;e3Dir0;e1lac0;at0e2Q;i0Rul1;eiv0o4ycl0;mme2Lrd0v3;in0lli0ti2A;a4ot0;li28;aCer30iBlAo9r5u4;mp0zzl0;e6i2Oo4;ce2Fd4lo1Anou30pos0te2v0;uc0;fe1CocCp0Iss0;i2Kli1L;ann0e2CuS;ck0erc0ss0;ck0i2Hr4st0;allLk0;bse7c6pp13rgan2Dver4;lo4whelm0;ok0;cupi0;rv0;aJe5o4;t0uri1A;ed0gle2;a6e5ix0o4ut0ys1N;di1Nt15u26;as0Clt0;n4rk0;ag0ufact0A;e6i5o4;ad0ck0st,v0;cens0m04st0;ft,v4;el0;tt0wn;a5o15u4;dg0s1B;gg0;llumSmpAn4sol1;br0cre1Ldebt0f8jZspir0t5v4;it0olv0;e4ox0Y;gr1n4re23;d0si15;e2l1o1Wuri1;li0o01r4;ov0;a6e1o4um03;ok0r4;ri0Z;mm3rm0;i6r5u4;a1Bid0;a0Ui0Rown;ft0;aAe9i8l6oc0Ir4;a4i0oz0Y;ctHg19m0;avo0Ju4;st3;ni08tt0x0;ar0;d0il0sc4;in1;dCl1mBn9quipp0s8x4;agger1c6p4te0T;a0Se4os0;ct0rie1D;it0;cap0tabliZ;cha0XgFha1As4;ur0;a0Zbarra0N;i0Buc1;aMeDi5r4;a01i0;gni08miniSre2s4;a9c6grun0Ft4;o4re0Hu17;rt0;iplWou4;nt0r4;ag0;bl0;cBdRf9l8p7ra6t5v4;elop0ot0;ail0ermQ;ng0;re07;ay0ight0;e4in0o0M;rr0;ay0enTor1;m5t0z4;ed,zl0;ag0p4;en0;aPeLhIlHo9r6u4;lt4r0stom03;iv1;a5owd0u4;sh0;ck0mp0;d0loAm7n4ok0v3;centr1f5s4troC;id3olid1;us0;b5pl4;ic1;in0;r0ur0;assi9os0utt3;ar5i4;ll0;g0m0;lebr1n6r4;ti4;fi0;tralJ;g0lcul1;aDewild3iCl9o7r5urn4;ed,t;ok4uis0;en;il0r0t4und;tl0;e5i4;nd0;ss0;as0;ffl0k0laMs0tt3;bPcNdKfIg0lFmaz0nDppBrm0ss9u5wa4;rd0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;a5leg0t3;er0;rm0;fe2;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;and5so4;rb0;on0;ed",Singular:"trueยฆ0:5I;1:5G;2:4V;3:4R;4:51;5:56;6:5K;a4Zb4Ic3Ld33e2Vf2Mg2Hh26in22j21k20l1Sm1Jn1Fo19p0Pqu0Or0DsXtKuFvAw7x r55yo yo;a7ha3No3O;f3i4Ot0Ey7;! arou37;arAe8ideo ga2Oo7;cabu4Gl59;gMr7t;di4Wt1W;iety,ni4M;n9p2Yr8s 7;do41s5B;bani1in0;coordinat38der7;estima1to22we3Z; rex,aIeHhFiDoCr9u8v7;! show;m2Mn2rntJto1B;agedy,ib7o4B;e,u7;n0ta43;ni1p2rq3J;c,er,m7;etD;ing7ree24;!y;am,mp3D;ct2le6x return;aLcKeIhor4NiHkFoEpin off,tBu9y7;ll7ner4Jst4Q;ab2V;b7i1n26per bowl,rro1V;st3Jtot0;at8ipe2Eo1Jrate4Fudent7;! lo0G;i37u1;ft ser4Imeo1G;elet5i7;ll,r3S;b36gn2Rte;ab2Hc7min39;t,urity gua2L;e6ho2W;bbatic0la3Gndwi0Opi5;av5eBhetor2i8o7;de6om,w;t8v7;erb2A;e,u0;bBc9f7publ2r0Yspi1;er7orm3;e6r0;i7ord label;p2Ft0;a1u43;estion mark,ot2D;aNeKhoJiGlEoCr8u7yram1D;ddi3EpCrpo1Hs3G;e9o7;bl3Ws7;pe3Gta1;dic1Pmi1Dp1Oroga3Sss relea1D;p7rt0;py;a7ebisci1;q2Bte;cn2e8g7;!gy;!r;ne call,tocoI;anut,d8r7t0yo1;cen3Gsp3H;al,est0;nop4r8t7;e,hog5;adi0Zi2S;atme0bj3Cc9pia1rde0thers,utspok5ve7wn3;n,r7;ti0Nview;cu8e7;an;pi3;ar9it8ot7umb3;a2Chi2O;e,ra1;cot2ra34;aDeAi8o7ur0;nopo4p16rni2Ksq1Pti33uld;c,li0Zn08s7tt5;chief,si31;d8nu,t7;al,i3;al,ic;gna1mm0nd13rsupi0te7yf4;ri0;aBegAi9u7;ddi1n7;ch;me,p07; 9e0K;bor12y7; 7er;up;eyno1itt5;el4ourn0;c9dices,itia2Kni22s8tel0Jvert7;eb1H;e25titu1;en2Hi2Q;aGeCighBo8u7;man right,s1Z;me7rmoDsp1Dtb0I;! r7;un; scho0WriW;a7i1K;d7v5; start,pho7;ne;ndful,sh brown,v5ze;a9elat0Glaci3r7ul4yp1P;an7enadi3id;a19d slam,ny;df4r7;l2ni1F;aEeti1EiDlu1oAr8un7;er0;ee market,i7onti3;ga1;l4ur7;so7;me;eNref4;br2mi4;conoDffi1Mgg,lecto0Pmbas1BnApidem2s1Wth2ven9x8yel7;id;ampXempl0Lte6;i16t;er1Iterp7;ri7;se;my;eJiCo9r7ump tru0R;agonf4i7;er,ve thru;c8g1Bi4or,ssi3wn7;side;to0CumenC;aCgniBnn3s8vide7;nd;conte6incen1Bp7tri0Y;osi7;tion;ta0E;le0U;ath9c8f7ni0terre6;ault 03err0;al,im0;!b7;ed;aUeRhKiJlHoBr7;edit ca9uc7;ib7;le;rd;efficBke,lAmmuniqJns8pi3rr0t0Uus7yo1;in;erv7uG;atoZ;ic,lO;ie6;er0Li7oth;e6n2;ty,vil wK;aBeqAick5oco9r7;istmas car7ysanthemum;ol;la1;ue;ndeli3racteri7;st2;i8llCr7;e0tifica1;liW;hi3nDpCrAt7ucus;erpi7hedr0;ll7;ar;!bohyd7ri3;ra1;it0;a7e,nib0;l,ry;aKeJiop2leHoFrBu7;nny,r7tterf4;g7i0;la7;ry;eak8i7;ck;fa7thro9;st;dy,ro7wl;ugh;mi7;sh;an,l4;nki8rri3;er;ng;cQdKlGnDppeti1rBs9tt2utop7;sy;ic;ce6pe7;ct;r7sen0;ay;ec8oma4ti8;ly;do1;i5l7;er7y;gy;en; hominBj8van7;tage;ec7;ti7;ve;em;cAe8qui7;tt0;ta1;te;i8ru0;al;de6;nt","Person|Noun":"trueยฆa0Eb07c03dWeUfQgOhLjHkiGlFmCnBolive,p7r4s3trini06v1wa0;ng,rd,tts;an,enus,iol0;a,et;ky,onPumm09;ay,e1o0uby;bin,d,se;ed,x;a2e1o0;l,tt04;aLnJ;dYge,tR;at,orm;a0eloW;t0x,ya;!s;a9eo,iH;ng,tP;a2e1o0;lGy;an,w3;de,smi4y;a0erb,iOolBuntR;ll,z0;el;ail,e0iLuy;ne;a1ern,i0lo;elds,nn;ith,n0;ny;a0dEmir,ula,ve;rl;a4e3i1j,ol0;ly;ck,x0;ie;an,ja;i0wn;sy;am,h0liff,rystal;a0in,ristian;mbers,ri0;ty;a4e3i2o,r0ud;an0ook;dy;ll;nedict,rg;k0nks;er;l0rt;fredo,ma","Actor|Verb":"trueยฆaCb8c5doctor,engineAfool,g3host,judge,m2nerd,p1recruit,scout,ushAvolunteAwi0;mp,tneA;arent,ilot;an,ime;eek,oof,r0uide;adu8oom;ha1o0;ach,nscript,ok;mpion,uffeur;o2u0;lly,tch0;er;ss;ddi1ffili0rchite1;ate;ct",MaleName:"trueยฆ0:H6;1:FZ;2:DS;3:GQ;4:CZ;5:FV;6:GM;7:FP;8:GW;9:ET;A:C2;B:GD;aF8bE1cCQdBMeASfA1g8Yh88i7Uj6Sk6Bl5Mm48n3So3Ip33qu31r26s1Et0Ru0Ov0CwTxSyHzC;aCor0;cChC1karia,nAT;!hDkC;!aF6;!ar7CeF5;aJevgenBSoEuC;en,rFVsCu3FvEF;if,uf;nDs6OusC;ouf,s6N;aCg;s,tC;an,h0;hli,nCrosE1ss09;is,nC;!iBU;avi2ho5;aPeNiDoCyaEL;jcieBJlfgang,odrFutR;lFnC;f8TsC;lCt1;ow;bGey,frEhe4QlC;aE5iCy;am,e,s;ed8iC;d,ed;eAur;i,ndeD2rn2sC;!l9t1;lDyC;l1ne;lDtC;!er;aCHy;aKernDAiFladDoC;jteB0lodymyr;!iC;mFQsDB;cFha0ktBZnceDrgCOvC;a0ek;!nC;t,zo;!e4StBV;lCnC7sily;!entC;in9J;ghE2lCm70nax,ri,sm0;riCyss87;ch,k;aWeRhNiLoGrEuDyC;!l2roEDs1;n6r6E;avD0eCist0oy,um0;ntCRvBKy;bFdAWmCny;!asDmCoharu;aFFie,y;!z;iA6y;mCt4;!my,othy;adEeoDia0SomC;!as;!dor91;!de4;dFrC;enBKrC;anBJeCy;ll,nBI;!dy;dgh,ha,iCnn2req,tsu5V;cDAka;aYcotWeThPiMlobod0oKpenc2tEurDvenAEyCzym1;ed,lvest2;aj,e9V;anFeDuC;!aA;fan17phEQvCwaA;e77ie;!islaCl9;v,w;lom1rBuC;leymaDHta;dDgmu9UlCm1yabonga;as,v8B;!dhart8Yn9;aEeClo75;lCrm0;d1t1;h9Jne,qu1Jun,wn,yne;aDbastiEDk2Yl5Mpp,rgCth,ymoCU;e1Dio;m4n;!tC;!ie,y;eDPlFmEnCq67tosCMul;dCj2UtiA5;e01ro;!iATkeB6mC4u5;!ik,vato9K;aZeUheC8iRoGuDyC;an,ou;b99dDf4peAssC;!elEG;ol00y;an,bLc7MdJel,geIh0lHmGnEry,sDyC;!ce;ar7Ocoe,s;!aCnBU;ld,n;an,eo;a7Ef;l7Jr;e3Eg2n9olfo,riC;go;bBNeDH;cCl9;ar87c86h54kCo;!ey,ie,y;cFeA3gDid,ubByCza;an8Ln06;g85iC;naC6s;ep;ch8Kfa5hHin2je8HlGmFndEoHpha5sDul,wi36yC;an,mo8O;h9Im4;alDSol3O;iD0on;f,ph;ul;e9CinC;cy,t1;aOeLhilJiFrCyoG;aDeC;m,st1;ka85v2O;eDoC;tr;r8GtC;er,ro;!ipCl6H;!p6U;dCLrcy,tC;ar,e9JrC;!o7;b9Udra8So9UscAHtri62ulCv8I;!ie,o7;ctav6Ji2lImHndrBRrGsDtCum6wB;is,to;aDc6k6m0vCwaBE;al79;ma;i,vR;ar,er;aDeksandr,ivC;er,i2;f,v;aNeLguyBiFoCu3O;aDel,j4l0ma0rC;beAm0;h,m;cFels,g5i9EkDlC;es,s;!au,h96l78olaC;!i,y;hCkCol76;ol75;al,d,il,ls1vC;ilAF;hom,tC;e,hC;anCy;!a5i5;aYeViLoGuDyC;l4Nr1;hamDr84staC;fa,p6E;ed,mG;di10e,hamEis4JntDritz,sCussa;es,he;e,y;ad,ed,mC;ad,ed;cGgu5hai,kFlEnDtchC;!e8O;a9Pik;house,o7t1;ae73eC3ha8Iolaj;ah,hDkC;!ey,y;aDeC;al,l;el,l;hDlv3rC;le,ri8Ev4T;di,met;ay0c00gn4hWjd,ks2NlTmadZnSrKsXtDuric7VxC;imilBKwe8B;eHhEi69tCus,y69;!eo,hCia7;ew,i67;eDiC;as,eu,s;us,w;j,o;cHiGkFlEqu8Qsha83tCv3;iCy;!m,n;in,on;el,o7us;a6Yo7us;!elCin,o7us;!l8o;frAEi5Zny,u5;achDcoCik;lm;ai,y;amDdi,e5VmC;oud;adCm6W;ou;aulCi9P;ay;aWeOiMloyd,oJuDyC;le,nd1;cFdEiDkCth2uk;a7e;gi,s,z;ov7Cv6Hw6H;!as,iC;a6Een;g0nn52renDuCvA4we7D;!iS;!zo;am,n4oC;n5r;a9Yevi,la5KnHoFst2thaEvC;eCi;nte;bo;nCpo8V;!a82el,id;!nC;aAy;mEnd1rDsz73urenCwr6K;ce,t;ry,s;ar,beAont;aOeIhalHiFla4onr63rDu5SylC;e,s;istCzysztof;i0oph2;er0ngsl9p,rC;ilA9k,ollos;ed,id;en0iGnDrmCv4Z;it;!dDnCt1;e2Ny;ri4Z;r,th;cp2j4mEna8BrDsp6them,uC;ri;im,l;al,il;a03eXiVoFuC;an,lCst3;en,iC;an,en,o,us;aQeOhKkub4AnIrGsDzC;ef;eDhCi9Wue;!ua;!f,ph;dCge;i,on;!aCny;h,s,th6J;anDnC;!ath6Hie,n72;!nC;!es;!l,sCy;ph;o,qu3;an,mC;!i,m6V;d,ffFns,rCs4;a7JemDmai7QoCry;me,ni1H;i9Dy;!e73rC;ey,y;cKdBkImHrEsDvi2yC;dBs1;on,p2;ed,oDrCv67;e6Qod;d,s61;al,es5Wis1;a,e,oCub;b,v;ob,qu13;aTbNchiMgLke53lija,nuKonut,rIsEtCv0;ai,suC;ki;aDha0i8XmaCsac;el,il;ac,iaC;h,s;a,vinCw3;!g;k,nngu6X;nac1Xor;ka;ai,rahC;im;aReLoIuCyd6;beAgGmFsC;eyDsC;a3e3;in,n;ber5W;h,o;m2raDsse3wC;a5Pie;c49t1K;a0Qct3XiGnDrC;beAman08;dr7VrC;iCy2N;!k,q1R;n0Tt3S;bKlJmza,nIo,rEsDyC;a5KdB;an,s0;lEo67r2IuCv9;hi5Hki,tC;a,o;an,ey;k,s;!im;ib;a08e00iUlenToQrMuCyorgy;iHnFsC;!taC;f,vC;!e,o;n6tC;er,h2;do,lC;herDlC;auCerQ;me;aEegCov2;!g,orC;!io,y;dy,h7C;dfr9nza3XrDttfC;ri6C;an,d47;!n;acoGlEno,oCuseppe;rgiCvan6O;!o,s;be6Ies,lC;es;mo;oFrC;aDha4HrC;it,y;ld,rd8;ffErgC;!e7iCy;!os;!r9;bElBrCv3;eCla1Nr4Hth,y;th;e,rC;e3YielC;!i4;aXeSiQlOorrest,rCyod2E;aHedFiC;edDtC;s,z;ri18;!d42eri11riC;ck,k;nCs2;cEkC;ie,lC;in,yn;esLisC;!co,z3M;etch2oC;ri0yd;d5lConn;ip;deriFliEng,rC;dinaCg4nan0B;nd8;pe,x;co;bCdi,hd;iEriC;ce,zC;io;an,en,o;benez2dZfrYit0lTmMnJo3rFsteb0th0ugenEvCymBzra;an,eCge4D;ns,re3K;!e;gi,iDnCrol,v3w3;est8ie,st;cCk;!h,k;o0DriCzo;co,qC;ue;aHerGiDmC;aGe3A;lCrh0;!iC;a10o,s;s1y;nu5;beAd1iEliDm2t1viCwood;n,s;ot28s;!as,j5Hot,sC;ha;a3en;!dGg6mFoDua2QwC;a2Pin;arC;do;oZuZ;ie;a04eTiOmitrNoFrag0uEwDylC;an,l0;ay3Hig4D;a3Gdl9nc0st3;minFnDri0ugCvydGy2S;!lF;!a36nCov0;e1Eie,y;go,iDykC;as;cCk;!k;i,y;armuFetDll1mitri7neCon,rk;sh;er,m6riC;ch;id;andLepak,j0lbeAmetri4nIon,rGsEvDwCxt2;ay30ey;en,in;hawn,moC;nd;ek,riC;ck;is,nC;is,y;rt;re;an,le,mKnIrEvC;e,iC;!d;en,iEne0PrCyl;eCin,yl;l45n;n,o,us;!iCny;el,lo;iCon;an,en,on;a0Fe0Ch03iar0lRoJrFuDyrC;il,us;rtC;!is;aEistC;iaCob12;no;ig;dy,lInErC;ey,neliCy;s,us;nEor,rDstaC;nt3;ad;or;by,e,in,l3t1;aHeEiCyde;fCnt,ve;fo0Xt1;menDt4;us;s,t;rFuDyC;!t1;dCs;e,io;enC;ce;aHeGrisC;!toC;phCs;!eC;!r;st2t;d,rCs;b5leC;s,y;cDdrCs6;ic;il;lHmFrC;ey,lDroCy;ll;!o7t1;er1iC;lo;!eb,v3;a09eZiVjorn,laUoSrEuCyr1;ddy,rtKst2;er;aKeFiEuDyC;an,ce,on;ce,no;an,ce;nDtC;!t;dDtC;!on;an,on;dFnC;dDisC;lav;en,on;!foOl9y;bby,gd0rCyd;is;i0Lke;bElDshC;al;al,lL;ek;nIrCshoi;at,nEtC;!raC;m,nd;aDhaCie;rd;rd8;!iDjam3nCs1;ie,y;to;kaMlazs,nHrC;n9rDtC;!holomew;eCy;tt;ey;dCeD;ar,iC;le;ar1Nb1Dd16fon15gust3hm12i0Zja0Yl0Bm07nTputsiSrGsaFugustEveDyCziz;a0kh0;ry;o,us;hi;aMchiKiJjun,mHnEon,tCy0;em,hCie,ur8;ur;aDoC;!ld;ud,v;aCin;an,nd8;!el,ki;baCe;ld;ta;aq;aMdHgel8tCw6;hoFoC;iDnC;!i8y;ne;ny;er7rCy;eDzC;ej;!as,i,j,s,w;!s;s,tolC;iCy;!y;ar,iEmaCos;nu5r;el;ne,r,t;aVbSdBeJfHiGl01onFphonsEt1vC;aPin;on;e,o;so,zo;!sR;!onZrC;ed;c,jaHksFssaHxC;!andC;er,rC;e,os,u;andCei;ar,er,r;ndC;ro;en;eDrecC;ht;rt8;dd3in,n,sC;taC;ir;ni;dDm6;ar;an,en;ad,eC;d,t;in;so;aGi,olErDvC;ik;ian8;f8ph;!o;mCn;!a;dGeFraDuC;!bakr,lfazl;hCm;am;!l;allFel,oulaye,ulC;!lDrahm0;an;ah,o;ah;av,on",Uncountable:"trueยฆ0:2E;1:2L;2:33;a2Ub2Lc29d22e1Rf1Ng1Eh16i11j0Yk0Wl0Rm0Hn0Do0Cp03rZsLt9uran2Jv7w3you gu0E;a5his17i4oo3;d,l;ldlife,ne;rm8t1;apor,ernacul29i3;neg28ol1Otae;eDhBiAo8r4un3yranny;a,gst1B;aff2Oea1Ko4ue nor3;th;o08u3;bleshoot2Ose1Tt;night,othpas1Vwn3;foEsfoE;me off,n;er3und1;e,mod2S;a,nnis;aDcCeBhAi9ki8o7p6t4u3weepstak0;g1Unshi2Hshi;ati08e3;am,el;ace2Keci0;ap,cc1meth2C;n,ttl0;lk;eep,ingl0or1C;lf,na1Gri0;ene1Kisso1C;d0Wfe2l4nd,t3;i0Iurn;m1Ut;abi0e4ic3;e,ke15;c3i01laxa11search;ogni10rea10;a9e8hys7luto,o5re3ut2;amble,mis0s3ten20;en1Zs0L;l3rk;i28l0EyH; 16i28;a24tr0F;nt3ti0M;i0s;bstetri24vercrowd1Qxyg09;a5e4owada3utella;ys;ptu1Ows;il poliZtional securi2;aAe8o5u3;m3s1H;ps;n3o1K;ey,o3;gamy;a3cha0Elancholy,rchandi1Htallurgy;sl0t;chine3g1Aj1Hrs,thema1Q; learn1Cry;aught1e6i5ogi4u3;ck,g12;c,s1M;ce,ghtn18nguis1LteratWv1;ath1isVss;ara0EindergartPn3;icke0Aowled0Y;e3upit1;a3llyfiGwel0G;ns;ce,gnor6mp5n3;forma00ter3;net,sta07;atiSort3rov;an18;a7e6isto09o3ung1;ckey,mework,ne4o3rseradi8spitali2use arrest;ky;s2y;adquarteXre;ir,libut,ppiHs3;hi3te;sh;ene8l6o5r3um,ymnas11;a3eZ;niUss;lf,re;ut3yce0F;en; 3ti0W;edit0Hpo3;ol;aNicFlour,o4urnit3;ure;od,rgive3uri1wl;ness;arCcono0LducaBlectr9n7quip8thi0Pvery6x3;ist4per3;ti0B;en0J;body,o08th07;joy3tertain3;ment;ici2o3;ni0H;tiS;nings,th;emi02i6o4raugh3ynas2;ts;pe,wnstai3;rs;abet0ce,s3;honZrepu3;te;aDelciChAivi07l8o3urrency;al,ld w6mmenta5n3ral,ttIuscoB;fusiHt 3;ed;ry;ar;assi01oth0;es;aos,e3;eMwK;us;d,rO;a8i6lood,owlHread5u3;ntGtt1;er;!th;lliarJs3;on;g3ss;ga3;ge;cKdviJeroGirFmBn6ppeal court,r4spi3thleL;rin;ithmet3sen3;ic;i6y3;o4th3;ing;ne;se;en5n3;es2;ty;ds;craft;bi8d3nau7;yna3;mi6;ce;id,ous3;ti3;cs",Infinitive:"trueยฆ0:9G;1:9T;2:AD;3:90;4:9Z;5:84;6:AH;7:A9;8:92;9:A0;A:AG;B:AI;C:9V;D:8R;E:8O;F:97;G:6H;H:7D;a94b8Hc7Jd68e4Zf4Mg4Gh4Ai3Qj3Nk3Kl3Bm34nou48o2Vp2Equ2Dr1Es0CtZuTvRwI;aOeNiLors5rI;eJiI;ng,te;ak,st3;d5e8TthI;draw,er;a2d,ep;i2ke,nIrn;d1t;aIie;liADniAry;nJpI;ho8Llift;cov1dJear8Hfound8DlIplug,rav82tie,ve94;eaAo3X;erIo;cut,go,staAFvalA3w2G;aSeQhNoMrIu73;aIe72;ffi3Smp3nsI;aBfo7CpI;i8oD;pp3ugh5;aJiJrIwaD;eat5i2;nk;aImA0;ch,se;ck3ilor,keImp1r8L;! paD;a0Ic0He0Fh0Bi0Al08mugg3n07o05p02qu01tUuLwI;aJeeIim;p,t5;ll7Wy;bNccMffLggeCmmKppJrI;mouFpa6Zvi2;o0re6Y;ari0on;er,i4;e7Numb;li9KmJsiIveD;de,st;er9it;aMe8MiKrI;ang3eIi2;ng27w;fIng;f5le;b,gg1rI;t3ve;a4AiA;a4UeJit,l7DoI;il,of;ak,nd;lIot7Kw;icEve;atGeak,i0O;aIi6;m,y;ft,ng,t;aKi6CoJriIun;nk,v6Q;ot,rt5;ke,rp5tt1;eIll,nd,que8Gv1w;!k,m;aven9ul8W;dd5tis1Iy;a0FeKiJoI;am,t,ut;d,p5;a0Ab08c06d05f01group,hea00iZjoi4lXmWnVpTq3MsOtMup,vI;amp,eJiIo3B;sEve;l,rI;e,t;i8rI;ie2ofE;eLiKpo8PtIurfa4;o24rI;aHiBuctu8;de,gn,st;mb3nt;el,hra0lIreseF;a4e71;d1ew,o07;aHe3Fo2;a7eFiIo6Jy;e2nq41ve;mbur0nf38;r0t;inKleBocus,rJuI;el,rbiA;aBeA;an4e;aBu4;ei2k8Bla43oIyc3;gni39nci3up,v1;oot,uI;ff;ct,d,liIp;se,ze;tt3viA;aAenGit,o7;aWerUinpoiFlumm1LoTrLuI;b47ke,niArIt;poDsuI;aFe;eMoI;cKd,fe4XhibEmo7noJpo0sp1tru6vI;e,i6o5L;un4;la3Nu8;aGclu6dJf1occupy,sup0JvI;a6BeF;etermi4TiB;aGllu7rtr5Ksse4Q;cei2fo4NiAmea7plex,sIva6;eve8iCua6;mp1rItrol,ve;a6It6E;bOccuNmEpMutLverIwe;l07sJtu6Yu0wI;helm;ee,h1F;gr5Cnu2Cpa4;era7i4Ipo0;py,r;ey,seItaH;r2ss;aMe0ViJoIultiply;leCu6Pw;micJnIspla4;ce,g3us;!k;iIke,na9;m,ntaH;aPeLiIo0u3N;ke,ng1quIv5;eIi6S;fy;aKnIss5;d,gI;th5;rn,ve;ng2Gu1N;eep,idnJnI;e4Cow;ap;oHuI;gg3xtaI;po0;gno8mVnIrk;cTdRfQgeChPitia7ju8q1CsNtKun6EvI;a6eIo11;nt,rt,st;erJimi6BoxiPrI;odu4u6;aBn,pr03ru6C;iCpi8tIu8;all,il,ruB;abEibE;eCo3Eu0;iIul9;ca7;i7lu6;b5Xmer0pI;aLer4Uin9ly,oJrI;e3Ais6Bo2;rt,se,veI;riA;le,rt;aLeKiIoiCuD;de,jaInd1;ck;ar,iT;mp1ng,pp5raIve;ng5Mss;ath1et,iMle27oLrI;aJeIow;et;b,pp3ze;!ve5A;gg3ve;aTer45i5RlSorMrJuI;lf4Cndrai0r48;eJiIolic;ght5;e0Qsh5;b3XeLfeEgJsI;a3Dee;eIi2;!t;clo0go,shIwa4Z;ad3F;att1ee,i36;lt1st5;a0OdEl0Mm0FnXquip,rWsVtGvTxI;aRcPeDhOiNpJtIu6;ing0Yol;eKi8lIo0un9;aHoI;it,re;ct,di7l;st,t;a3oDu3B;e30lI;a10u6;lt,mi28;alua7oI;ke,l2;chew,pou0tab19;a0u4U;aYcVdTfSgQhan4joy,lPqOrNsuMtKvI;e0YisI;a9i50;er,i4rI;aHenGuC;e,re;iGol0F;ui8;ar9iC;a9eIra2ulf;nd1;or4;ang1oIu8;r0w;irc3lo0ou0ErJuI;mb1;oaGy4D;b3ct;bKer9pI;hasiIow1;ze;aKody,rI;a4oiI;d1l;lm,rk;ap0eBuI;ci40de;rIt;ma0Rn;a0Re04iKo,rIwind3;aw,ed9oI;wn;agno0e,ff1g,mi2Kne,sLvI;eIul9;rIst;ge,t;aWbVcQlod9mant3pNru3TsMtI;iIoDu37;lJngI;uiA;!l;ol2ua6;eJlIo0ro2;a4ea0;n0r0;a2Xe36lKoIu0S;uIv1;ra9;aIo0;im;a3Kur0;b3rm;af5b01cVduBep5fUliTmQnOpMrLsiCtaGvI;eIol2;lop;ch;a20i2;aDiBloIoD;re,y;oIy;te,un4;eJoI;liA;an;mEv1;a4i0Ao06raud,y;ei2iMla8oKrI;ee,yI;!pt;de,mIup3;missi34po0;de,ma7ph1;aJrief,uI;g,nk;rk;mp5rk5uF;a0Dea0h0Ai09l08oKrIurta1G;a2ea7ipp3uI;mb3;ales4e04habEinci6ll03m00nIrro6;cXdUfQju8no7qu1sLtKvI;eIin4;ne,r9y;aHin2Bribu7;er2iLoli2Epi8tJuI;lt,me;itu7raH;in;d1st;eKiJoIroFu0;rm;de,gu8rm;ss;eJoI;ne;mn,n0;eIlu6ur;al,i2;buCe,men4pI;eIi3ly;l,te;eBi6u6;r4xiC;ean0iT;rcumveFte;eJirp,oI;o0p;riAw;ncIre5t1ulk;el;a02eSi6lQoPrKuI;iXrIy;st,y;aLeaKiJoad5;en;ng;stfeLtX;ke;il,l11mba0WrrMth1;eIow;ed;!coQfrie1LgPhMliLqueaKstJtrIwild1;ay;ow;th;e2tt3;a2eJoI;ld;ad;!in,ui3;me;bysEckfi8ff3tI;he;b15c0Rd0Iff0Ggree,l0Cm09n03ppZrXsQttOuMvJwaE;it;eDoI;id;rt;gIto0X;meF;aIeCraB;ch,in;pi8sJtoI;niA;aKeIi04u8;mb3rt,ss;le;il;re;g0Hi0ou0rI;an9i2;eaKly,oiFrI;ai0o2;nt;r,se;aMi0GnJtI;icipa7;eJoIul;un4y;al;ly0;aJu0;se;lga08ze;iKlI;e9oIu6;t,w;gn;ix,oI;rd;a03jNmiKoJsoI;rb;pt,rn;niIt;st1;er;ouJuC;st;rn;cLhie2knowled9quiItiva7;es4re;ce;ge;eQliOoKrJusI;e,tom;ue;mIst;moJpI;any,liA;da7;ma7;te;pt;andPduBet,i6oKsI;coKol2;ve;liArt,uI;nd;sh;de;ct;on",Person:"trueยฆ0:1Q;a29b1Zc1Md1Ee18f15g13h0Ri0Qj0Nk0Jl0Gm09n06o05p00rPsItCusain bolt,v9w4xzibit,y1;anni,oko on2uji,v1;an,es;en,o;a3ednesday adams,i2o1;lfram,o0Q;ll ferrell,z khalifa;lt disn1Qr1;hol,r0G;a2i1oltai06;n dies0Zrginia wo17;lentino rossi,n goG;a4h3i2ripp,u1yra banks;lZpac shakur;ger woods,mba07;eresa may,or;kashi,t1ylor;um,ya1B;a5carlett johanss0h4i3lobodan milosevic,no2ocr1Lpider1uperm0Fwami; m0Em0E;op dogg,w whi1H;egfried,nbad;akespeaTerlock holm1Sia labeouf;ddam hussa16nt1;a cla11ig9;aAe6i5o3u1za;mi,n dmc,paul,sh limbau1;gh;bin hood,d stew16nald1thko;in0Mo;han0Yngo starr,valdo;ese witherspo0i1mbrandt;ll2nh1;old;ey,y;chmaninoff,ffi,iJshid,y roma1H;a4e3i2la16o1uff daddy;cahont0Ie;lar,p19;le,rZ;lm17ris hilt0;leg,prah winfr0Sra;a2e1iles cra1Bostradam0J; yo,l5tt06wmQ;pole0s;a5e4i2o1ubar03;by,lie5net,rriss0N;randa ju1tt romn0M;ly;rl0GssiaB;cklemo1rkov,s0ta hari,ya angelou;re;ady gaga,e1ibera0Pu;bron jam0Xch wale1e;sa;anye west,e3i1obe bryant;d cudi,efer suther1;la0P;ats,sha;a2effers0fk,k rowling,rr tolki1;en;ck the ripp0Mwaharlal nehru,y z;liTnez,ron m7;a7e5i3u1;lk hog5mphrey1sa01;! bog05;l1tl0H;de; m1dwig,nry 4;an;ile selassFlle ber4m3rrison1;! 1;ford;id,mo09;ry;ast0iannis,o1;odwPtye;ergus0lorence nightinga08r1;an1ederic chopN;s,z;ff5m2nya,ustaXzeki1;el;eril lagasse,i1;le zatop1nem;ek;ie;a6e4i2octor w1rake;ho;ck w1ego maradoC;olf;g1mi lovaOnzel washingt0;as;l1nHrth vadR;ai lNt0;a8h5lint0o1thulhu;n1olio;an,fuci1;us;on;aucKop2ristian baMy1;na;in;millo,ptain beefhe4r1;dinal wols2son1;! palmF;ey;art;a8e5hatt,i3oHro1;ck,n1;te;ll g1ng crosby;atB;ck,nazir bhut2rtil,yon1;ce;to;nksy,rack ob1;ama;l 6r3shton kutch2vril lavig8yn ra1;nd;er;chimed2istot1;le;es;capo2paci1;no;ne",Adjective:"trueยฆ0:AI;1:BS;2:BI;3:BA;4:A8;5:84;6:AV;7:AN;8:AF;9:7H;A:BQ;B:AY;C:BC;D:BH;E:9Y;aA2b9Ec8Fd7We79f6Ng6Eh61i4Xj4Wk4Tl4Im41n3Po36p2Oquart7Pr2Ds1Dt14uSvOwFye29;aMeKhIiHoF;man5oFrth7G;dADzy;despreB1n w97s86;acked1UoleF;!sa6;ather1PeFll o70ste1D;!k5;nt1Ist6Ate4;aHeGiFola5T;bBUce versa,gi3Lle;ng67rsa5R;ca1gBSluAV;lt0PnLpHrGsFttermoBL;ef9Ku3;b96ge1; Hb32pGsFtiAH;ca6ide d4R;er,i85;f52to da2;a0Fbeco0Hc0Bd04e02f01gu1XheaBGiXkn4OmUnTopp06pRrNsJtHus0wF;aFiel3K;nt0rra0P;app0eXoF;ld,uS;eHi37o5ApGuF;perv06spec39;e1ok9O;en,ttl0;eFu5;cogn06gul2RlGqu84sF;erv0olv0;at0en33;aFrecede0E;id,rallel0;am0otic0;aFet;rri0tF;ch0;nFq26vers3;sur0terFv7U;eFrupt0;st0;air,inish0orese98;mploy0n7Ov97xpF;ect0lain0;eHisFocume01ue;clFput0;os0;cid0rF;!a8Scov9ha8Jlyi8nea8Gprivileg0sMwF;aFei9I;t9y;hGircumcFonvin2U;is0;aFeck0;lleng0rt0;b20ppea85ssuGttend0uthorF;iz0;mi8;i4Ara;aLeIhoHip 25oGrF;anspare1encha1i2;geth9leADp notch,rpB;rny,ugh6H;ena8DmpGrFs6U;r49tia4;eCo8P;leFst4M;nt0;a0Dc09e07h06i04ki03l01mug,nobbi4XoVpRqueami4XtKuFymb94;bHccinAi generis,pFr5;erFre7N;! dup9b,vi70;du0li7Lp6IsFurb7J;eq9Atanda9X;aKeJi16o2QrGubboFy4Q;rn;aightFin5GungS; fFfF;or7V;adfa9Pri6;lwa6Ftu82;arHeGir6NlendBot Fry;on;c3Qe1S;k5se; call0lImb9phistic16rHuFviV;ndFth1B;proof;dBry;dFub6; o2A;e60ipF;pe4shod;ll0n d7R;g2HnF;ceEg6ist9;am3Se9;co1Zem5lfFn6Are7; suf4Xi43;aGholFient3A;ar5;rlFt4A;et;cr0me,tisfac7F;aOeIheumatoBiGoF;bu8Ztt7Gy3;ghtFv3; 1Sf6X;cJdu8PlInown0pro69sGtF;ard0;is47oF;lu2na1;e1Suc45;alcit8Xe1ondi2;bBci3mpa1;aSePicayu7laOoNrGuF;bl7Tnjabi;eKiIoF;b7VfGmi49pFxi2M;er,ort81;a7uD;maFor,sti7va2;!ry;ciDexis0Ima2CpaB;in55puli8G;cBid;ac2Ynt 3IrFti2;ma40tFv7W;!i3Z;i2YrFss7R;anoBtF; 5XiF;al,s5V;bSffQkPld OnMrLth9utKverF;!aIbMdHhGni75seas,t,wF;ei74rou74;a63e7A;ue;ll;do1Ger,si6A;d3Qg2Aotu5Z; bFbFe on o7g3Uli7;oa80;fashion0school;!ay; gua7XbFha5Uli7;eat;eHligGsF;ce7er0So1C;at0;diFse;a1e1;aOeNiMoGuF;anc0de; moEnHrthFt6V;!eFwe7L;a7Krn;chaGdescri7Iprof30sF;top;la1;ght5;arby,cessa4ighbor5wlyw0xt;k0usiaFv3;ti8;aQeNiLoHuF;dIltiF;facet0p6;deHlGnFot,rbBst;ochro4Xth5;dy;rn,st;ddle ag0nF;dbloZi,or;ag9diocEga,naGrFtropolit4Q;e,ry;ci8;cIgenta,inHj0Fkeshift,mmGnFri4Oscu61ver18;da5Dy;ali4Lo4U;!stream;abEho;aOeLiIoFumberi8;ngFuti1R;stan3RtF;erm,i4H;ghtGteraF;l,ry,te;heart0wei5O;ft JgFss9th3;al,eFi0M;nda4;nguBps0te5;apGind5noF;wi8;ut;ad0itte4uniW;ce co0Hgno6Mll0Cm04nHpso 2UrF;a2releF;va1; ZaYcoWdReQfOgrNhibi4Ri05nMoLsHtFvalu5M;aAeF;nDrdepe2K;a7iGolFuboI;ub6ve1;de,gF;nifica1;rdi5N;a2er;own;eriIiLluenVrF;ar0eq5H;pt,rt;eHiGoFul1O;or;e,reA;fiFpe26termi5E;ni2;mpFnsideCrreA;le2;ccuCdeq5Ene,ppr4J;fFsitu,vitro;ro1;mJpF;arHeGl15oFrop9;li2r11;n2LrfeA;ti3;aGeFi18;d4BnD;tuE;egGiF;c0YteC;al,iF;tiF;ma2;ld;aOelNiLoFuma7;a4meInHrrGsFur5;ti6;if4E;e58o3U; ma3GsF;ick;ghfalut2HspF;an49;li00pf33;i4llow0ndGrdFtM; 05coEworki8;sy,y;aLener44iga3Blob3oKrGuF;il1Nng ho;aFea1Fizzl0;cGtF;ef2Vis;ef2U;ld3Aod;iFuc2D;nf2R;aVeSiQlOoJrF;aGeFil5ug3;q43tf2O;gFnt3S;i6ra1;lk13oHrF; keeps,eFge0Vm9tu41;g0Ei2Ds3R;liF;sh;ag4Mowe4uF;e1or45;e4nF;al,i2;d Gmini7rF;ti6ve1;up;bl0lDmIr Fst pac0ux;oGreacF;hi8;ff;ed,ili0R;aXfVlTmQnOqu3rMthere3veryday,xF;aApIquisi2traHuF;be48lF;ta1;!va2L;edRlF;icF;it;eAstF;whi6; Famor0ough,tiE;rou2sui2;erGiF;ne1;ge1;dFe2Aoq34;er5;ficF;ie1;g9sF;t,ygF;oi8;er;aWeMiHoGrFue;ea4owY;ci6mina1ne,r31ti8ubQ;dact2Jfficult,m,sGverF;ge1se;creGePjoi1paCtF;a1inA;et,te; Nadp0WceMfiLgeneCliJmuEpeIreliAsGvoF;id,ut;pFtitu2ul1L;eCoF;nde1;ca2ghF;tf13;a1ni2;as0;facto;i5ngero0I;ar0Ce09h07i06l05oOrIuF;rmudgeon5stoma4teF;sy;ly;aIeHu1EystalF; cleFli7;ar;epy;fFv17z0;ty;erUgTloSmPnGrpoCunterclVveFy;rt;cLdJgr21jIsHtrF;aFi2;dic0Yry;eq1Yta1;oi1ug3;escenFuN;di8;a1QeFiD;it0;atoDmensuCpF;ass1SulF;so4;ni3ss3;e1niza1;ci1J;ockwiD;rcumspeAvil;eFintzy;e4wy;leGrtaF;in;ba2;diac,ef00;a00ePiLliJoGrFuck nak0;and new,isk,on22;gGldface,naF; fi05fi05;us;nd,tF;he;gGpartisFzarE;an;tiF;me;autifOhiNlLnHsFyoN;iWtselF;li8;eGiFt;gn;aFfi03;th;at0oF;v0w;nd;ul;ckwards,rF;e,rT; priori,b13c0Zd0Tf0Ng0Ihe0Hl09mp6nt06pZrTsQttracti0MuLvIwF;aGkF;wa1B;ke,re;ant garGeraF;ge;de;diIsteEtF;heFoimmu7;nt07;re;to4;hGlFtu2;eep;en;bitIchiv3roHtF;ifiFsy;ci3;ga1;ra4;ry;pFt;aHetizi8rF;oprF;ia2;llFre1;ed,i8;ng;iquFsy;at0e;ed;cohKiJkaHl,oGriFterX;ght;ne,of;li7;ne;ke,ve;olF;ic;ad;ain07gressiIi6rF;eeF;ab6;le;ve;fGraB;id;ectGlF;ue1;ioF;na2; JaIeGvF;erD;pt,qF;ua2;ma1;hoc,infinitum;cuCquiGtu3u2;al;esce1;ra2;erSjeAlPoNrKsGuF;nda1;e1olu2trF;aAuD;se;te;eaGuF;pt;st;aFve;rd;aFe;ze;ct;ra1;nt",Pronoun:"trueยฆelle,h3i2me,she,th0us,we,you;e0ou;e,m,y;!l,t;e,im",Preposition:"trueยฆaPbMcLdKexcept,fIinGmid,notwithstandiWoDpXqua,sCt7u4v2w0;/o,hereSith0;! whHin,oW;ersus,i0;a,s a vis;n1p0;!on;like,til;h1ill,oward0;!s;an,ereby,r0;ough0u;!oM;ans,ince,o that,uch G;f1n0ut;!to;!f;! 0to;effect,part;or,r0;om;espite,own,u3;hez,irca;ar1e0oBy;sides,tween;ri7;bo8cross,ft7lo6m4propos,round,s1t0;!op;! 0;a whole,long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"trueยฆ0:18;1:1E;2:1D;3:14;a1Db15c0Sd0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Am01new UoRpKqueens parkJreal salt lake,sBt6utah jazz,vancouver whitecaps,w4yW;ashington 4h10;natio1Mredski2wizar0W;ampa bay 7e6o4;ronto 4ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasD;buccanee0ra0K;a8eattle 6porting kansas0Wt4; louis 4oke0V;c1Drams;marine0s4;eah13ounH;cramento Rn 4;antonio spu0diego 4francisco gJjose earthquak1;char08paB; ran07;a9h6ittsburgh 5ortland t4;imbe0rail blaze0;pirat1steele0;il4oenix su2;adelphia 4li1;eagl1philNunE;dr1;akland 4klahoma city thunder,rlando magic;athle0Lrai4;de0;england 8orleans 7york 4;g5je3knYme3red bul0Xy4;anke1;ian3;pelica2sain3;patrio3revolut4;ion;anchEeAi4ontreal impact;ami 8lwaukee b7nnesota 4;t5vi4;kings;imberwolv1wi2;rewe0uc0J;dolphi2heat,marli2;mphis grizz4ts;li1;a6eic5os angeles 4;clippe0dodFlaB;esterV; galaxy,ke0;ansas city 4nF;chiefs,roya0D; pace0polis col3;astr05dynamo,rocke3texa2;olden state warrio0reen bay pac4;ke0;allas 8e4i04od6;nver 6troit 4;lio2pisto2ti4;ge0;broncYnugge3;cowbo5maver4;icZ;ys;arEelLhAincinnati 8leveland 6ol4;orado r4umbus crew sc;api7ocki1;brow2cavalie0guar4in4;dia2;bengaVre4;ds;arlotte horAicago 4;b5cubs,fire,wh4;iteB;ea0ulQ;diff4olina panthe0; city;altimore Alackburn rove0oston 6rooklyn 4uffalo bilN;ne3;ts;cel5red4; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 4;brav1falco2h4;awA;ns;es;on villa,r4;os;c6di4;amondbac4;ks;ardi4;na4;ls",Unit:"trueยฆa07b04cXdWexVfTgRhePinYjoule0BkMlJmDnan08oCp9quart0Bsq ft,t7volts,w6y2ze3ยฐ1ยต0;g,s;c,f,n;dVear1o0;ttR; 0s 0;old;att,b;erNon0;!ne02;ascals,e1i0;cXnt00;rcent,tJ;hms,unceY;/s,e4i0mยฒ,ยฒ,ยณ;/h,cro2l0;e0liK;!ยฒ;grLsR;gCtJ;it1u0;menQx;erPreP;b5elvins,ilo1m0notO;/h,ph,ยฒ;!byGgrEmCs;ct0rtzL;aJogrC;allonJb0ig3rB;ps;a0emtEl oz,t4;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;ยฒ,ยณ;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s","Noun|Gerund":"trueยฆ0:3O;1:3M;2:3N;3:3D;4:32;5:2V;6:3E;7:3K;8:36;9:3J;A:3B;a3Pb37c2Jd27e23f1Vg1Sh1Mi1Ij1Gk1Dl18m13n11o0Wp0Pques0Sr0EsTtNunderMvKwFyDzB;eroi0oB;ni0o3P;aw2eB;ar2l3;aEed4hispe5i5oCrB;ap8est3i1;n0ErB;ki0r31;i1r2s9tc9;isualizi0oB;lunt1Vti0;stan4ta6;aFeDhin6iCraBy8;c6di0i2vel1M;mi0p8;aBs1;c9si0;l6n2s1;aUcReQhOiMkatKl2Wmo6nowJpeItFuCwB;ea5im37;b35f0FrB;fi0vB;e2Mi2J;aAoryt1KrCuB;d2KfS;etc9ugg3;l3n4;bCi0;ebBi0;oar4;gnBnAt1;a3i0;ip8oB;p8rte2u1;a1r27t1;hCo5reBulp1;a2Qe2;edu3oo3;i3yi0;aKeEi4oCuB;li0n2;oBwi0;fi0;aFcEhear7laxi0nDpor1sB;pon4tructB;r2Iu5;de5;or4yc3;di0so2;p8ti0;aFeacek20laEoCrBublis9;a1Teten4in1oces7;iso2siB;tio2;n2yi0;ckaAin1rB;ki0t1O;fEpeDrganiCvB;erco24ula1;si0zi0;ni0ra1;fe5;avi0QeBur7;gotia1twor6;aDeCi2oB;de3nito5;a2dita1e1ssaA;int0XnBrke1;ifUufactu5;aEeaDiBodAyi0;cen7f1mi1stB;e2i0;r2si0;n4ug9;iCnB;ea4it1;c6l3;ogAuB;dAgg3stif12;ci0llust0VmDnBro2;nova1sp0NterBven1;ac1vie02;agi2plo4;aDea1iCoBun1;l4w3;ki0ri0;nd3rB;roWvB;es1;aCene0Lli4rBui4;ee1ie0N;rde2the5;aHeGiDlCorBros1un4;e0Pmat1;ir1oo4;gh1lCnBs9;anZdi0;i0li0;e3nX;r0Zscina1;a1du01nCxB;erci7plo5;chan1di0ginB;ee5;aLeHiGoub1rCum8wB;el3;aDeCiB;bb3n6vi0;a0Qs7;wi0;rTscoDvi0;ba1coZlBvelo8;eCiB;ve5;ga1;nGti0;aVelebUhSlPoDrBur3yc3;aBos7yi0;f1w3;aLdi0lJmFnBo6pi0ve5;dDsCvinB;ci0;trBul1;uc1;muniDpB;lBo7;ai2;ca1;lBo5;ec1;c9ti0;ap8eaCimToBubT;ni0t9;ni0ri0;aBee5;n1t1;ra1;m8rCs1te5;ri0;vi0;aPeNitMlLoGrDuB;dge1il4llBr8;yi0;an4eat9oadB;cas1;di0;a1mEokB;i0kB;ee8;pi0;bi0;es7oa1;c9i0;gin2lonAt1;gi0;bysit1c6ki0tt3;li0;ki0;bando2cGdverti7gi0pproac9rgDssuCtB;trac1;mi0;ui0;hi0;si0;coun1ti0;ti0;ni0;ng",PhrasalVerb:"trueยฆ0:92;1:96;2:8H;3:8V;4:8A;5:83;6:85;7:98;8:90;9:8G;A:8X;B:8R;C:8U;D:8S;E:70;F:97;G:8Y;H:81;I:7H;J:79;a9Fb7Uc6Rd6Le6Jf5Ig50h4Biron0j47k40l3Em31n2Yo2Wp2Cquiet Hr1Xs0KtZuXvacuu6QwNyammerBzK;ero Dip LonK;e0k0;by,ov9up;aQeMhLiKor0Mrit19;mp0n3Fpe0r5s5;ackAeel Di0S;aLiKn33;gh 3Wrd0;n Dr K;do1in,oJ;it 79k5lk Lrm 69sh Kt83v60;aw3do1o7up;aw3in,oC;rgeBsK;e 2herE;a00eYhViRoQrMuKypP;ckErn K;do1in,oJup;aLiKot0y 30;ckl7Zp F;ck HdK;e 5Y;n7Wp 3Es5K;ck MdLe Kghten 6me0p o0Rre0;aw3ba4do1in,up;e Iy 2;by,oG;ink Lrow K;aw3ba4in,up;ba4ov9up;aKe 77ll62;m 2r 5M;ckBke Llk K;ov9shit,u47;aKba4do1in,leave,o4Dup;ba4ft9pa69w3;a0Vc0Te0Mh0Ii0Fl09m08n07o06p01quar5GtQuOwK;earMiK;ngLtch K;aw3ba4o8K; by;cKi6Bm 2ss0;k 64;aReQiPoNrKud35;aigh2Det75iK;ke 7Sng K;al6Yup;p Krm2F;by,in,oG;c3Ln3Lr 2tc4O;p F;c3Jmp0nd LrKveAy 2O;e Ht 2L;ba4do1up;ar3GeNiMlLrKurB;ead0ingBuc5;a49it 6H;c5ll o3Cn 2;ak Fe1Xll0;a3Bber 2rt0und like;ap 5Vow Duggl5;ash 6Noke0;eep NiKow 6;cLp K;o6Dup;e 68;in,oK;ff,v9;de19gn 4NnKt 6Gz5;gKkE; al6Ale0;aMoKu5W;ot Kut0w 7M;aw3ba4f48oC;c2WdeEk6EveA;e Pll1Nnd Orv5tK; Ktl5J;do1foLin,o7upK;!on;ot,r5Z;aw3ba4do1in,o33up;oCto;al66out0rK;ap65ew 6J;ilAv5;aXeUiSoOuK;b 5Yle0n Kstl5;aLba4do1inKo2Ith4Nu5P;!to;c2Xr8w3;ll Mot LpeAuK;g3Ind17;a2Wf3Po7;ar8in,o7up;ng 68p oKs5;ff,p18;aKelAinEnt0;c6Hd K;o4Dup;c27t0;aZeYiWlToQrOsyc35uK;ll Mn5Kt K;aKba4do1in,oJto47up;pa4Dw3;a3Jdo1in,o21to45up;attleBess KiNop 2;ah2Fon;iLp Kr4Zu1Gwer 6N;do1in,o6Nup;nt0;aLuK;gEmp 6;ce u20y 6D;ck Kg0le 4An 6p5B;oJup;el 5NncilE;c53ir 39n0ss MtLy K;ba4oG; Hc2R;aw3ba4in,oJ;pKw4Y;e4Xt D;aLerd0oK;dAt53;il Hrrow H;aTeQiPoLuK;ddl5ll I;c1FnkeyMp 6uthAve K;aKdo1in,o4Lup;l4Nw3; wi4K;ss0x 2;asur5e3SlLss K;a21up;t 6;ke Ln 6rKs2Ax0;k 6ryA;do,fun,oCsure,up;a02eViQoLuK;ck0st I;aNc4Fg MoKse0;k Kse4D;aft9ba4do1forw37in56o0Zu46;in,oJ;d 6;e NghtMnLsKve 00;ten F;e 2k 2; 2e46;ar8do1in;aMt LvelK; oC;do1go,in,o7up;nEve K;in,oK;pKut;en;c5p 2sh LtchBughAy K;do1o59;in4Po7;eMick Lnock K;do1oCup;oCup;eLy K;in,up;l Ip K;aw3ba4do1f04in,oJto,up;aMoLuK;ic5mpE;ke3St H;c43zz 2;a01eWiToPuK;nLrrKsh 6;y 2;keLt K;ar8do1;r H;lKneErse3K;d Ke 2;ba4dKfast,o0Cup;ear,o1;de Lt K;ba4on,up;aw3o7;aKlp0;d Ml Ir Kt 2;fKof;rom;f11in,o03uW;cPm 2nLsh0ve Kz2P;at,it,to;d Lg KkerP;do1in,o2Tup;do1in,oK;ut,v9;k 2;aZeTive Rloss IoMrLunK; f0S;ab hold,in43ow 2U; Kof 2I;aMb1Mit,oLr8th1IuK;nd9;ff,n,v9;bo7ft9hQw3;aw3bKdo1in,oJrise,up,w3;a4ir2H;ar 6ek0t K;aLb1Fdo1in,oKr8up;ff,n,ut,v9;cLhKl2Fr8t,w3;ead;ross;d aKng 2;bo7;a0Ee07iYlUoQrMuK;ck Ke2N;ar8up;eLighten KownBy 2;aw3oG;eKshe27; 2z5;g 2lMol Krk I;aKwi20;bo7r8;d 6low 2;aLeKip0;sh0;g 6ke0mKrKtten H;e F;gRlPnNrLsKzzle0;h F;e Km 2;aw3ba4up;d0isK;h 2;e Kl 1T;aw3fPin,o7;ht ba4ure0;ePnLsK;s 2;cMd K;fKoG;or;e D;d04l 2;cNll Krm0t1G;aLbKdo1in,o09sho0Eth08victim;a4ehi2O;pa0C;e K;do1oGup;at Kdge0nd 12y5;in,o7up;aOi1HoNrK;aLess 6op KuN;aw3b03in,oC;gBwB; Ile0ubl1B;m 2;a0Ah05l02oOrLut K;aw3ba4do1oCup;ackBeep LoKy0;ss Dwd0;by,do1in,o0Uup;me NoLuntK; o2A;k 6l K;do1oG;aRbQforOin,oNtKu0O;hLoKrue;geth9;rough;ff,ut,v9;th,wK;ard;a4y;paKr8w3;rt;eaLose K;in,oCup;n 6r F;aNeLiK;ll0pE;ck Der Kw F;on,up;t 2;lRncel0rOsMtch LveE; in;o1Nup;h Dt K;doubt,oG;ry LvK;e 08;aw3oJ;l Km H;aLba4do1oJup;ff,n,ut;r8w3;a0Ve0MiteAl0Fo04rQuK;bblNckl05il0Dlk 6ndl05rLsKtMy FzzA;t 00;n 0HsK;t D;e I;ov9;anWeaUiLush K;oGup;ghQng K;aNba4do1forMin,oLuK;nd9p;n,ut;th;bo7lKr8w3;ong;teK;n 2;k K;do1in,o7up;ch0;arTg 6iRn5oPrNssMttlLunce Kx D;aw3ba4;e 6; ar8;e H;do1;k Dt 2;e 2;l 6;do1up;d 2;aPeed0oKurt0;cMw K;aw3ba4do1o7up;ck;k K;in,oC;ck0nk0stA; oQaNef 2lt0nd K;do1ov9up;er;up;r Lt K;do1in,oCup;do1o7;ff,nK;to;ck Pil0nMrgLsK;h D;ainBe D;g DkB; on;in,o7;aw3do1in,oCup;ff,ut;ay;ct FdQir0sk MuctionA; oG;ff;ar8o7;ouK;nd; o7;d K;do1oKup;ff,n;wn;o7up;ut",ProperNoun:"trueยฆabid,barbie,c3e2f1iron maiden,kirby,m0nis,riel;cgill,ercedes,issy;lorence,ranco;lmo,uro;atalina,hristi","Person|Place":"trueยฆa8d6h4jordan,k3orlando,s1vi0;ctor9rgin9;a0ydney;lvador,mara,ntia4;ent,obe;amil0ous0;ton;arw2ie0;go;lexandr1ust0;in;ia",LastName:"trueยฆ0:BR;1:BF;2:B5;3:BH;4:AX;5:9Y;6:B6;7:BK;8:B0;9:AV;A:AL;B:8Q;C:8G;D:7K;E:BM;F:AH;aBDb9Zc8Wd88e81f7Kg6Wh64i60j5Lk4Vl4Dm39n2Wo2Op25quispe,r1Ls0Pt0Ev03wTxSyKzG;aIhGimmerm6A;aGou,u;ng,o;khar5ytsE;aKeun9BiHoGun;koya32shiBU;!lG;diGmaz;rim,z;maGng;da,g52mo83sGzaC;aChiBV;iao,u;aLeJiHoGright,u;jcA5lff,ng;lGmm0nkl0sniewsC;kiB1liams33s3;bGiss,lt0;b,er,st0;a6Vgn0lHtG;anabe,s3;k0sh,tG;e2Non;aLeKiHoGukD;gt,lk5roby5;dHllalGnogr3Kr1Css0val3S;ba,ob1W;al,ov4;lasHsel8W;lJn dIrgBEsHzG;qu7;ilyEqu7siljE;en b6Aijk,yk;enzueAIverde;aPeix1VhKi2j8ka43oJrIsui,uG;om5UrG;c2n0un1;an,emblA7ynisC;dorAMlst3Km4rrAth;atch0i8UoG;mHrG;are84laci79;ps3sG;en,on;hirDkah9Mnaka,te,varA;a06ch01eYhUiRmOoMtIuHvGzabo;en9Jobod3N;ar7bot4lliv2zuC;aIeHoG;i7Bj4AyanAB;ele,in2FpheBvens25;l8rm0;kol5lovy5re7Tsa,to,uG;ng,sa;iGy72;rn5tG;!h;l71mHnGrbu;at9cla9Egh;moBo7M;aIeGimizu;hu,vchG;en8Luk;la,r1G;gu9infe5YmGoh,pulveA7rra5P;jGyG;on5;evi6iltz,miHneid0roed0uGwarz;be3Elz;dHtG;!t,z;!t;ar4Th8ito,ka4OlJnGr4saCto,unde19v4;ch7dHtGz;a5Le,os;b53e16;as,ihDm4Po0Y;aVeSiPoJuHyG;a6oo,u;bio,iz,sG;so,u;bKc8Fdrigue67ge10j9YmJosevelt,sItHux,wG;e,li6;a9Ch;enb4Usi;a54e4L;erts15i93;bei4JcHes,vGzzo;as,e9;ci,hards12;ag2es,iHut0yG;es,nol5N;s,t0;dImHnGsmu97v6C;tan1;ir7os;ic,u;aUeOhMiJoHrGut8;asad,if6Zochazk27;lishc2GpGrti72u10we76;e3Aov51;cHe45nG;as,to;as70hl0;aGillips;k,m,n6I;a3Hde3Wete0Bna,rJtG;ersHrovGters54;!a,ic;!en,on;eGic,kiBss3;i9ra,tz,z;h86k,padopoulIrk0tHvG;ic,l4N;el,te39;os;bMconn2Ag2TlJnei6PrHsbor6XweBzG;dem7Rturk;ella4DtGwe6N;ega,iz;iGof7Hs8I;vGyn1R;ei9;aSri1;aPeNiJoGune50ym2;rHvGwak;ak4Qik5otn66;odahl,r4S;cholsZeHkolGls4Jx3;ic,ov84;ls1miG;!n1;ils3mG;co4Xec;gy,kaGray2sh,var38;jiGmu9shiG;ma;a07c04eZiWoMuHyeG;rs;lJnIrGssoli6S;atGp03r7C;i,ov4;oz,te58;d0l0;h2lOnNo0RrHsGza1A;er,s;aKeJiIoz5risHtG;e56on;!on;!n7K;au,i9no,t5J;!lA;r1Btgome59;i3El0;cracFhhail5kkeHlG;l0os64;ls1;hmeJiIj30lHn3Krci0ssiGyer2N;!er;n0Po;er,j0;dDti;cartHlG;aughl8e2;hy;dQe7Egnu68i0jer3TkPmNnMrItHyG;er,r;ei,ic,su21thews;iHkDquAroqu8tinG;ez,s;a5Xc,nG;!o;ci5Vn;a5UmG;ad5;ar5e6Kin1;rig77s1;aVeOiLoJuHyG;!nch;k4nGo;d,gu;mbarGpe3Fvr4we;di;!nGu,yana2B;coln,dG;b21holm,strom;bedEfeKhIitn0kaHn8rGw35;oy;!j;m11tG;in1on1;bvGvG;re;iGmmy,ng,rs2Qu,voie,ws3;ne,t1F;aZeYh2iWlUnez50oNrJuHvar2woG;k,n;cerGmar68znets5;a,o34;aHem0isGyeziu;h23t3O;m0sni4Fus3KvG;ch4O;bay57ch,rh0Usk16vaIwalGzl5;czGsC;yk;cIlG;!cGen4K;huk;!ev4ic,s;e8uiveG;rt;eff0kGl4mu9nnun1;ucF;ll0nnedy;hn,llKminsCne,pIrHstra3Qto,ur,yGzl5;a,s0;j0Rls22;l2oG;or;oe;aPenOha6im14oHuG;ng,r4;e32hInHrge32u6vG;anD;es,ss3;anHnsG;en,on,t3;nesGs1R;en,s1;kiBnings,s1;cJkob4EnGrv0E;kDsG;en,sG;en0Ion;ks3obs2A;brahimDglesi5Nke5Fl0Qno07oneIshikHto,vanoG;u,v54;awa;scu;aVeOiNjaltal8oIrist50uG;!aGb0ghAynh;m2ng;a6dz4fIjgaa3Hk,lHpUrGwe,x3X;ak1Gvat;mAt;er,fm3WmG;ann;ggiBtchcock;iJmingw4BnHrGss;nand7re9;deGriks1;rs3;kkiHnG;on1;la,n1;dz4g1lvoQmOns0ZqNrMsJuIwHyG;asFes;kiB;g1ng;anHhiG;mo14;i,ov0J;di6p0r10t;ue;alaG;in1;rs1;aVeorgUheorghe,iSjonRoLrJuGw3;errGnnar3Co,staf3Ctierr7zm2;a,eG;ro;ayli6ee2Lg4iffithGub0;!s;lIme0UnHodGrbachE;e,m2;calvAzale0S;dGubE;bGs0E;erg;aj,i;bs3l,mGordaO;en7;iev3U;gnMlJmaIndFo,rGsFuthi0;cGdn0za;ia;ge;eaHlG;agh0i,o;no;e,on;aVerQiLjeldsted,lKoIrHuG;chs,entAji41ll0;eem2iedm2;ntaGrt8urni0wl0;na;emi6orA;lipIsHtzgeraG;ld;ch0h0;ovG;!ic;hatDnanIrG;arGei9;a,i;deY;ov4;b0rre1D;dKinsJriksIsGvaB;cob3GpGtra3D;inoza,osiQ;en,s3;te8;er,is3warG;ds;aXePiNjurhuMoKrisco15uHvorakG;!oT;arte,boHmitru,nn,rGt3C;and,ic;is;g2he0Omingu7nErd1ItG;to;us;aGcki2Hmitr2Ossanayake,x3;s,z; JbnaIlHmirGrvisFvi,w2;!ov4;gado,ic;th;bo0groot,jo6lHsilGvriA;va;a cruz,e3uG;ca;hl,mcevsCnIt2WviG;dGes,s;ov,s3;ielsGku22;!en;ki;a0Be06hRiobQlarkPoIrGunningh1H;awfo0RivGuz;elli;h1lKntJoIrGs2Nx;byn,reG;a,ia;ke,p0;i,rer2K;em2liB;ns;!e;anu;aOeMiu,oIristGu6we;eGiaG;ns1;i,ng,p9uHwGy;!dH;dGng;huJ;!n,onGu6;!g;kJnIpm2ttHudhGv7;ry;erjee,o14;!d,g;ma,raboG;rty;bJl0Cng4rG;eghetHnG;a,y;ti;an,ota1C;cerAlder3mpbeLrIstGvadi0B;iGro;llo;doHl0Er,t0uGvalho;so;so,zo;ll;a0Fe01hYiXlUoNrKuIyG;rLtyG;qi;chan2rG;ke,ns;ank5iem,oGyant;oks,wG;ne;gdan5nIruya,su,uchaHyKziG;c,n5;rd;darGik;enG;ko;ov;aGond15;nco,zG;ev4;ancFshw16;a08oGuiy2;umGwmG;ik;ckRethov1gu,ktPnNrG;gJisInG;ascoGds1;ni;ha;er,mG;anG;!n;gtGit7nP;ss3;asF;hi;er,hG;am;b4ch,ez,hRiley,kk0ldw8nMrIshHtAu0;es;ir;bInHtlGua;ett;es,i0;ieYosa;dGik;a9yoG;padhyG;ay;ra;k,ng;ic;bb0Acos09d07g04kht05lZnPrLsl2tJyG;aHd8;in;la;chis3kiG;ns3;aImstro6sl2;an;ng;ujo,ya;dJgelHsaG;ri;ovG;!a;ersJov,reG;aGjEws;ss1;en;en,on,s3;on;eksejEiyEmeiIvG;ar7es;ez;da;ev;arwHuilG;ar;al;ams,l0;er;ta;as",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:74;1:61;2:6G;3:6J;4:5S;a68b53c4Id48e44f3Wg3Hh39i31j2Wk2Fl23m1Mn1Co19p0Wq0Ur0Os05tRuQvLwDxiBy9z5;a7h5i4Muri4O;a5e5ongsh0;ng3H;greb,nzib5G;ang2e5okoha3Sunfu;katerin3Hrev0;a5n0Q;m5Hn;arsBeAi6roclBu5;h0xi,zh5P;c7n5;d5nipeg,terth4;hoek,s1L;hi5Zkl3A;l63xford;aw;a8e6i5ladivost5Molgogr6L;en3lni6S;ni22r5;o3saill4N;lenc4Wncouv3Sr3ughn;lan bat1Crumqi,trecht;aFbilisi,eEheDiBo9r7u5;l21n63r5;in,ku;i5ondh62;es51poli;kyo,m2Zron1Pulo5;n,uS;an5jua3l2Tmisoa6Bra3;j4Tshui; hag62ssaloni2H;gucigal26hr0l av1U;briz,i6llinn,mpe56ng5rtu,shk2R;i3Esh0;an,chu1n0p2Eyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4X;ba0Ht;aten is55ockholm,rasbou67uttga2V;an8e6i5;jiazhua1llo1m5Xy0;f50n5;ya1zh4H;gh3Kt4Q;att45o1Vv44;cramen16int ClBn5o paulo,ppo3Rrajevo; 7aa,t5;a 5o domin3E;a3fe,m1M;antonio,die3Cfrancisco,j5ped3Nsalvad0J;o5u0;se;em,t lake ci5Fz25;lou58peters24;a9e8i6o5;me,t59;ga,o5yadh;! de janei3F;cife,ims,nn3Jykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0Q;aFeEhDiCo9r7u6yong5;ya1;eb59ya1;a5etor3M;g52to;rt5zn0; 5la4Co;au prin0Melizabe24sa03;ls3Prae5Atts26;iladelph3Gnom pe1Aoenix;ki1r21tah tik3E;dua,lerYnaji,r4Ot5;na,r32;ak44des0Km1Mr6s5ttawa;a3Vlo;an,d06;a7ew5ing2Fovosibir1Jyc; 5cast36;del24orlea44taip14;g8iro4Wn5pl2Wshv33v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0W;aEeCi9o6u5;mb2Ani26sc3Y;gadishu,nt6s5;c13ul;evideo,pelli1Rre2Z;ami,l6n14s5;kolc,sissauga;an,waukee;cca,d5lbour2Mmph41ndo1Cssi3;an,ell2Xi3;cau,drAkass2Sl9n8r5shh4A;aca6ib5rakesh,se2L;or;i1Sy;a4EchFdal0Zi47;mo;id;aDeAi8o6u5vSy2;anMckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Lma5nz,sb2verpo28;!ss27; ma39i5;c5pzig;est16; p6g5ho2Wn0Cusan24;os;az,la33;aHharFiClaipeBo9rak0Du7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Hlka2Xpavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bHdu3llakuric0Qmpa3Fn6ohsiu1ra5un1Iwaguc0Q;c0Pj;d5o,p4;ah1Ty;a7e6i5ohannesV;l1Vn0;dd36rusalem;ip4k5;ar2H;bad0mph1OnArkutUs7taXz5;mir,tapala5;pa;fah0l6tanb5;ul;am2Zi2H;che2d5;ianap2Mo20;aAe7o5yder2W; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Oupe;ld coa1Bthen5;bu2S;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal29es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,nkirk,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Zr es sala1KugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1Q;lo7n6penhag0Ar5;do1Ok;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr14;ch8sha,zh07;gliari,i9lga8mayenJn6pe town,r5tanO;acCdiff;ber1Ac5;un;ry;ro;aWeNhKirmingh0WoJr9u5;chareTdapeTenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iCl9ng8r5;g6l5n;in;en;aluru,hazi;fa6grade,o horizon5;te;st;ji1rut;ghd0BkFn9ot8r7s6yan n4;ur;el,r07;celo3i,ranquil09;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a05b02cc01ddis aba00gartaZhmedXizawl,lSmPnHqa00rEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a8c5kaOtwerp;hora6o3;na;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 7buquerq6eppo,giers,ma5;ty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"trueยฆ0:2K;1:2Q;2:2H;3:2B;a2Ob2Bc1Xd1Ses1Rf1Pg1Kh1Gi1Bj17k12l0Zm0On06o04pYqVrSsJtEuBverAw6y4zacatec2S;akut0o0Cu4;cat2k06;a5est 4isconsin,yomi1K;bengal,virgin0;rwick3shington4;! dc;acruz,mont;dmurt0t4;ah,tar4; 2La0Y;a6e5laxca1Rripu1Xu4;scaEva;langa1nnessee,x2F;bas0Wm4smOtar25;aulip2Dil nadu;a9i7o5taf12u4ylh1F;ffZrr05s1A;me1Cno1Quth 4;cWdV;ber0c4kkim,naloa;hu2ily;n5skatchew2xo4;ny; luis potosi,ta catari1;a4hodeA;j4ngp08;asth2shahi;ingh25u4;e4intana roo;bec,en6retaro;ara8e6rince edward4unjab; i4;sl0C;i,nnsylv4rnambu0C;an0;!na;axa0Ydisha,h4klaho20ntar4reg7ss0Cx0H;io;aKeEo6u4;evo le4nav0W;on;r4tt17va scot0;f9mandy,th4; 4ampton3;c6d5yo4;rk3;ako1N;aroli1;olk;bras1Mva0Cw4; 5foundland4;! and labrador;brunswick,hamp3jers5mexiTyork4;! state;ey;galPyarit;aAeghala0Mi6o4;nta1r4;dov0elos;ch6dlanDn5ss4zor11;issippi,ouri;as geraPneso18;ig2oac2;dhy12harasht0Gine,ni5r4ssachusetts;anhao,i el,ylG;p4toba;ur;anca3e4incoln3ouisI;e4iR;ds;a6e5h4omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr4;achay,el0nata0X;alis6har4iangxi;kh4;and;co;daho,llino7n4owa;d5gush4;et0;ia1;is;a6ert5i4un2;dalFm0D;ford3;mp3rya1waii;ansu,eorg0lou7oa,u4;an4izhou,jarat;ajuato,gdo4;ng;cester3;lori4uji2;da;sex;ageUe7o5uran4;go;rs4;et;lawaMrby3;aFeaEh9o4rim08umbr0;ahui7l6nnectic5rsi4ventry;ca;ut;i03orado;la;e5hattisgarh,i4uvash0;apRhuahua;chn5rke4;ss0;ya;ra;lGm4;bridge3peche;a9ihar,r8u4;ck4ryat0;ingham3;shi4;re;emen,itish columb0;h0ja cal8lk7s4v7;hkorto4que;st2;an;ar0;iforn0;ia;dygHguascalientes,lBndhr9r5ss4;am;izo1kans5un4;achal 7;as;na;a 4;pradesh;a6ber5t4;ai;ta;ba5s4;ka;ma;ea",Country:"trueยฆ0:38;1:2L;2:3B;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om2pZqat1KrXsKtCu7v5wal4yemTz3;a25imbabwe;es,lis and futu2Y;a3enezue32ietnam;nuatu,tican city;gTk6nited 4ruXs3zbeE; 2Ca,sr;arab emirat0Kkingdom,states3;! of am2Y;!raiV;a8haCimor les0Co7rinidad 5u3;nis0rk3valu;ey,me2Zs and caic1V;and t3t3;oba1L;go,kel10nga;iw2ji3nz2T;ki2V;aDcotl1eCi9lov8o6pa2Dri lanka,u5w3yr0;az3edAitzerl1;il1;d2riname;lomon1Xmal0uth 3;afr2KkMsud2;ak0en0;erra leoFn3;gapo1Yt maart3;en;negLrb0ychellZ;int 3moa,n marino,udi arab0;hele26luc0mart21;epublic of ir0Eom2Euss0w3;an27;a4eIhilippinUitcairn1Mo3uerto riN;l1rtugF;ki2Dl4nama,pua new0Vra3;gu7;au,esti3;ne;aBe9i7or3;folk1Ith4w3;ay; k3ern mariana1D;or0O;caragua,ger3ue;!ia;p3ther1Aw zeal1;al;mib0u3;ru;a7exi6icro0Bo3yanm06;ldova,n3roc5zambA;a4gol0t3;enegro,serrat;co;cAdagasc01l7r5urit4yot3;te;an0i16;shall0Xtin3;ique;a4div3i,ta;es;wi,ys0;ao,ed02;a6e5i3uxembourg;b3echtenste12thu1G;er0ya;ban0Isotho;os,tv0;azakh1Fe4iriba04o3uwait,yrgyz1F;rXsovo;eling0Knya;a3erG;ma16p2;c7nd6r4s3taly,vory coast;le of m2rael;a3el1;n,q;ia,oJ;el1;aiTon3ungary;dur0Ng kong;aBermany,ha0QibraltAre8u3;a6ern5inea3ya0P;! biss3;au;sey;deloupe,m,tema0Q;e3na0N;ce,nl1;ar;bUmb0;a7i6r3;ance,ench 3;guia0Epoly3;nes0;ji,nl1;lklandUroeU;ast tim7cu6gypt,l salv6ngl1quatorial4ritr5st3thiop0;on0; guin3;ea;ad3;or;enmark,jibou5ominica4r con3;go;!n C;ti;aBentral african Ah8o5roat0u4yprRzech3; 9ia;ba,racao;c4lo3morQngo brazzaville,okGsta r04te de ivoiL;mb0;osE;i3ristmasG;le,na;republic;m3naUpe verde,ymanA;bod0ero3;on;aGeDhut2o9r5u3;lgar0r3;kina faso,ma,undi;azil,itish 3unei;virgin3; is3;lands;liv0nai5snia and herzegoviHtswaHuvet3; isl1;and;re;l3n8rmuG;ar3gium,ize;us;h4ngladesh,rbad3;os;am4ra3;in;as;fghaGlDmBn6r4ustr3zerbaij2;al0ia;genti3men0uba;na;dorra,g5t3;arct7igua and barbu3;da;o3uil3;la;er3;ica;b3ger0;an0;ia;ni3;st2;an",Place:"trueยฆa0Gb0Bc03d02e01f00gWhUiSkQlNmLnIorHpDrCsAt5u4v3w2y0;a0yz;kutPngtze;ake isHupatki;irgin islands,ostok;laanbaatar,p02;a3eotihuac0Hh1onto,sarskoe selo,u0;lXzigoot;am09e 0;bronx,hamptons;hiti,j mahE;a0cotts bluff,eine,fo,oho,under9;int lawrence river,khalY;ed s3io grande;a1ek,h0itcairn,ompeii;l,x;cif05pahanaumokuak0rthenX;ea;ange county,d,inoco;e0ile;uschwansteQw eng0;land;a0co,ekong,idLuc;chu picchu,gad00libu,nhatt00;a1gw,hr,incoln memori0;al;s,x;azan kremlJosrae,rasnoyar0ul;sk;ax,cn,nd0st;ianSochina;arlem,kg,nd,ov0;d,enweep;a2odavari,re0;at 0enwich;britaBlakI;ngHy village;co,ra;urope,vergladF;anube,en,fw,own4xb;arrizo pla6dg,edar 5gk,h1lt,olosse0;um;a2i0uuk;chen itza,mney rock,na0ricahua;town;morro,tham;breaks,fa5;in;cn,e2kk,ro0;oklyn,wns cany0;on;l air,verly hi0;lls;driadic,frica,lhambra,m7n3rc2sia,tl1zor0;es;!ant2; de triomphe,t1;adyr,tarct0;ic0; oce0;an;ericas,s",FirstName:"trueยฆaTblair,cQdOfrancoZgabMhinaLilya,jHkClBm6ni4quinn,re3s0;h0umit,yd;ay,e0iloh;a,lby;g9ne;co,ko0;!s;a1el0ina,org6;!okuhF;ds,naia,r1tt0xiB;i,y;ion,lo;ashawn,eif,uca;a3e1ir0rM;an;lsFn0rry;dall,yat5;i,sD;a0essIie,ude;i1m0;ie,mG;me;ta;rie0y;le;arcy,ev0;an,on;as1h0;arl8eyenne;ey,sidy;drien,kira,l4nd1ubr0vi;ey;i,r0;a,e0;a,y;ex2f1o0;is;ie;ei,is",WeekDay:"trueยฆfri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"trueยฆdec0february,july,nov0octo1sept0;em0;ber",Date:"trueยฆago,on4som4t1week0yesterd5; end,ends;mr1o0;d2morrow;!w;ed0;ay",Duration:"trueยฆcenturAd8h7m5q4se3w1y0;ear8r8;eek0k7;!end,s;ason,c5;tr,uarter;i0onth3;llisecond2nute2;our1r1;ay0ecade0;!s;ies,y",FemaleName:"trueยฆ0:J7;1:JB;2:IJ;3:IK;4:J1;5:IO;6:JS;7:JO;8:HB;9:JK;A:H4;B:I2;C:IT;D:JH;E:IX;F:BA;G:I4;aGTbFLcDRdD0eBMfB4gADh9Ti9Gj8Dk7Cl5Wm48n3Lo3Hp33qu32r29s15t0Eu0Cv02wVxiTyOzH;aLeIineb,oHsof3;e3Sf3la,ra;h2iKlIna,ynH;ab,ep;da,ma;da,h2iHra;nab;aKeJi0FolB7uIvH;et8onDP;i0na;le0sen3;el,gm3Hn,rGLs8W;aoHme0nyi;m5XyAD;aMendDZhiDGiH;dele9lJnH;if48niHo0;e,f47;a,helmi0lHma;a,ow;ka0nB;aNeKiHusa5;ck84kIl8oleAviH;anFenJ4;ky,toriBK;da,lA8rHs0;a,nHoniH9;a,iFR;leHnesH9;nILrH;i1y;g9rHs6xHA;su5te;aYeUhRiNoLrIuHy2;i,la;acJ3iHu0J;c3na,sH;hFta;nHr0F;iFya;aJffaEOnHs6;a,gtiH;ng;!nFSra;aIeHomasi0;a,l9Oo8Ares1;l3ndolwethu;g9Fo88rIssH;!a,ie;eHi,ri7;sa,za;bOlMmKnIrHs6tia0wa0;a60yn;iHya;a,ka,s6;arFe2iHm77ra;!ka;a,iH;a,t6;at6it6;a0Ecarlett,e0AhWiSkye,neza0oQri,tNuIyH;bIGlvi1;ha,mayIJniAsIzH;an3Net8ie,y;anHi7;!a,e,nH;aCe;aIeH;fan4l5Dphan6E;cI5r5;b3fiAAm0LnHphi1;d2ia,ja,ya;er2lJmon1nIobh8QtH;a,i;dy;lETv3;aMeIirHo0risFDy5;a,lDM;ba,e0i5lJrH;iHr6Jyl;!d8Ifa;ia,lDZ;hd,iMki2nJrIu0w0yH;la,ma,na;i,le9on,ron,yn;aIda,ia,nHon;a,on;!ya;k6mH;!aa;lJrItaye82vH;da,inj;e0ife;en1i0ma;anA9bLd5Oh1SiBkKlJmInd2rHs6vannaC;aCi0;ant6i2;lDOma,ome;ee0in8Tu2;in1ri0;a05eZhXiUoHuthDM;bScRghQl8LnPsJwIxH;anB3ie,y;an,e0;aIeHie,lD;ann7ll1marDGtA;!lHnn1;iHyn;e,nH;a,dF;da,i,na;ayy8G;hel67io;bDRerAyn;a,cIkHmas,nFta,ya;ki,o;h8Xki;ea,iannGMoH;da,n1P;an0bJemFgi0iInHta,y0;a8Bee;han86na;a,eH;cHkaC;a,ca;bi0chIe,i0mo0nHquETy0;di,ia;aERelHiB;!e,le;een4ia0;aPeOhMiLoJrHute6A;iHudenCV;scil3LyamvaB;lHrt3;i0ly;a,paluk;ilome0oebe,ylH;is,lis;ggy,nelope,r5t2;ige,m0VnKo5rvaDMtIulH;a,et8in1;ricHt4T;a,e,ia;do2i07;ctav3dIfD3is6ksa0lHphD3umC5yunbileg;a,ga,iv3;eHvAF;l3t8;aWeUiMoIurHy5;!ay,ul;a,eJor,rIuH;f,r;aCeEma;ll1mi;aNcLhariBQkKlaJna,sHta,vi;anHha;ur;!y;a,iDZki;hoGk9YolH;a,e4P;!mh;hir,lHna,risDEsreE;!a,lBV;asuMdLh3i6Dl5nKomi7rgEVtH;aHhal4;lHs6;i1ya;cy,et8;e9iF0ya;nngu2X;a0Ackenz4e02iMoJrignayani,uriDJyH;a,rH;a,iOlNna,tG;bi0i2llBJnH;a,iH;ca,ka,qD9;a,cUdo4ZkaTlOmi,nMrItzi,yH;ar;aJiIlH;anET;am;!l,nB;dy,eHh,n4;nhGrva;aKdJe0iCUlH;iHy;cent,e;red;!gros;!e5;ae5hH;ae5el3Z;ag5DgNi,lKrH;edi7AiIjem,on,yH;em,l;em,sCG;an4iHliCF;nHsCJ;a,da;!an,han;b09cASd07e,g05ha,i04ja,l02n00rLsoum5YtKuIv84xBKyHz4;bell,ra,soBB;d7rH;a,eE;h8Gild1t4;a,cUgQiKjor4l7Un4s6tJwa,yH;!aHbe6Xja9lAE;m,nBL;a,ha,in1;!aJbCGeIja,lDna,sHt63;!a,ol,sa;!l1D;!h,mInH;!a,e,n1;!awit,i;arJeIie,oHr48ueri8;!t;!ry;et46i3B;el4Xi7Cy;dHon,ue5;akranAy;ak,en,iHlo3S;a,ka,nB;a,re,s4te;daHg4;!l3E;alDd4elHge,isDJon0;ei9in1yn;el,le;a0Ne0CiXoQuLyH;d3la,nH;!a,dIe2OnHsCT;!a,e2N;a,sCR;aD4cJel0Pis1lIna,pHz;e,iA;a,u,wa;iHy;a0Se,ja,l2NnB;is,l1UrItt1LuHvel4;el5is1;aKeIi7na,rH;aADi7;lHn1tA;ei;!in1;aTbb9HdSepa,lNnKsJvIzH;!a,be5Ret8z4;!ia;a,et8;!a,dH;a,sHy;ay,ey,i,y;a,iJja,lH;iHy;aA8e;!aH;!nF;ia,ya;!nH;!a,ne;aPda,e0iNjYla,nMoKsJtHx93y5;iHt4;c3t3;e2PlCO;la,nHra;a,ie,o2;a,or1;a,gh,laH;!ni;!h,nH;a,d2e,n5V;cOdon9DiNkes6mi9Gna,rMtJurIvHxmi,y5;ern1in3;a,e5Aie,yn;as6iIoH;nya,ya;fa,s6;a,isA9;a,la;ey,ie,y;a04eZhXiOlASoNrJyH;lHra;a,ee,ie;istHy6I;a,en,iIyH;!na;!e,n5F;nul,ri,urtnB8;aOerNlB7mJrHzzy;a,stH;en,in;!berlImernH;aq;eHi,y;e,y;a,stE;!na,ra;aHei2ongordzol;dij1w5;el7UiKjsi,lJnIrH;a,i,ri;d2na,za;ey,i,lBLs4y;ra,s6;biAcARdiat7MeBAiSlQmPnyakuma1DrNss6NtKviAyH;!e,lH;a,eH;e,i8T;!a6HeIhHi4TlDri0y;ar8Her8Hie,leErBAy;!lyn8Ori0;a,en,iHl5Xoli0yn;!ma,nFs95;a5il1;ei8Mi,lH;e,ie;a,tl6O;a0AeZiWoOuH;anMdLlHst88;es,iH;a8NeHs8X;!n9tH;!a,te;e5Mi3My;a,iA;!anNcelDdMelGhan7VleLni,sIva0yH;a,ce;eHie;fHlDph7Y;a,in1;en,n1;i7y;!a,e,n45;lHng;!i1DlH;!i1C;anNle0nKrJsH;i8JsH;!e,i8I;i,ri;!a,elGif2CnH;a,et8iHy;!e,f2A;a,eJiInH;a,eIiH;e,n1;!t8;cMda,mi,nIque4YsminFvie2y9zH;min7;a7eIiH;ce,e,n1s;!lHs82t0F;e,le;inIk6HlDquelH;in1yn;da,ta;da,lRmPnOo0rNsIvaHwo0zaro;!a0lu,na;aJiIlaHob89;!n9R;do2;belHdo2;!a,e,l3B;a7Ben1i0ma;di2es,gr72ji;a9elBogH;en1;a,e9iHo0se;a0na;aSeOiJoHus7Kyacin2C;da,ll4rten24snH;a,i9U;lImaH;ri;aIdHlaI;a,egard;ry;ath1BiJlInrietArmi9sH;sa,t1A;en2Uga,mi;di;bi2Fil8MlNnMrJsItHwa,yl8M;i5Tt4;n60ti;iHmo51ri53;etH;!te;aCnaC;a,ey,l4;a02eWiRlPoNrKunJwH;enHyne1R;!dolD;ay,el;acieIetHiselB;a,chE;!la;ld1CogooH;sh;adys,enHor3yn2K;a,da,na;aKgi,lIna,ov8EselHta;a,e,le;da,liH;an;!n0;mLnJorgIrH;ald5Si,m3Etrud7;et8i4X;a,eHna;s29vieve;ma;bIle,mHrnet,yG;al5Si5;iIrielH;a,l1;!ja;aTeQiPlorOoz3rH;anJeIiH;da,eB;da,ja;!cH;esIiHoi0P;n1s66;!ca;a,enc3;en,o0;lIn0rnH;anB;ec3ic3;jr,nArKtHy7;emIiHma,oumaA;ha,ma,n;eh;ah,iBrah,za0;cr4Rd0Re0Qi0Pk0Ol07mXn54rUsOtNuMvHwa;aKelIiH;!e,ta;inFyn;!a;!ngel4V;geni1ni47;h5Yien9ta;mLperanKtH;eIhHrel5;er;l31r7;za;a,eralB;iHma,ne4Lyn;cHka,n;a,ka;aPeNiKmH;aHe21ie,y;!li9nuH;elG;lHn1;e7iHy;a,e,ja;lHrald;da,y;!nue5;aWeUiNlMma,no2oKsJvH;a,iH;na,ra;a,ie;iHuiH;se;a,en,ie,y;a0c3da,e,f,nMsJzaH;!betHveA;e,h;aHe,ka;!beH;th;!a,or;anor,nH;!a,i;!in1na;ate1Rta;leEs6;vi;eIiHna,wi0;e,th;l,n;aYeMh3iLjeneKoH;lor5Vminiq4Ln3FrHtt4;a,eEis,la,othHthy;ea,y;ba;an09naCon9ya;anQbPde,eOiMlJmetr3nHsir5M;a,iH;ce,se;a,iIla,orHphi9;es,is;a,l6F;dHrdH;re;!d5Ena;!b2ForaCraC;a,d2nH;!a,e;hl3i0l0GmNnLphn1rIvi1WyH;le,na;a,by,cIia,lH;a,en1;ey,ie;a,et8iH;!ca,el1Aka,z;arHia;is;a0Re0Nh04i02lUoJristIynH;di,th3;al,i0;lPnMrIurH;tn1D;aJd2OiHn2Ori9;!nH;a,e,n1;!l4;cepci5Cn4sH;tanHuelo;ce,za;eHleE;en,t8;aJeoIotH;il54;!pat2;ir7rJudH;et8iH;a,ne;a,e,iH;ce,sZ;a2er2ndH;i,y;aReNloe,rH;isJyH;stH;al;sy,tH;a1Sen,iHy;an1e,n1;deJlseIrH;!i7yl;a,y;li9;nMrH;isKlImH;ai9;a,eHot8;n1t8;!sa;d2elGtH;al,elG;cIlH;es8i47;el3ilH;e,ia,y;itlYlXmilWndVrMsKtHy5;aIeIhHri0;er1IleErDy;ri0;a38sH;a37ie;a,iOlLmeJolIrH;ie,ol;!e,in1yn;lHn;!a,la;a,eIie,otHy;a,ta;ne,y;na,s1X;a0Ii0I;a,e,l1;isAl4;in,yn;a0Ke02iZlXoUrH;andi7eRiJoIyH;an0nn;nwDoke;an3HdgMgiLtH;n31tH;!aInH;ey,i,y;ny;d,t8;etH;!t7;an0e,nH;da,na;bbi7glarIlo07nH;iAn4;ka;ancHythe;a,he;an1Clja0nHsm3M;iAtH;ou;aWcVlinUniArPssOtJulaCvH;!erlH;ey,y;hJsy,tH;e,iHy7;e,na;!anH;ie,y;!ie;nItHyl;ha,ie;adIiH;ce;et8i9;ay,da;ca,ky;!triH;ce,z;rbJyaH;rmH;aa;a2o2ra;a2Ub2Od25g21i1Sj5l18m0Zn0Boi,r06sWtVuPvOwa,yIzH;ra,u0;aKes6gJlIn,seH;!l;in;un;!nH;a,na;a,i2K;drLguJrIsteH;ja;el3;stH;in1;a,ey,i,y;aahua,he0;hIi2Gja,miAs2DtrH;id;aMlIraqHt21;at;eIi7yH;!n;e,iHy;gh;!nH;ti;iJleIo6piA;ta;en,n1t8;aHelG;!n1J;a01dje5eZgViTjRnKohito,toHya;inet8nH;el5ia;te;!aKeIiHmJ;e,ka;!mHtt7;ar4;!belIliHmU;sa;!l1;a,eliH;ca;ka,sHta;a,sa;elHie;a,iH;a,ca,n1qH;ue;!tH;a,te;!bImHstasiMya;ar3;el;aLberKeliJiHy;e,l3naH;!ta;a,ja;!ly;hGiIl3nB;da;a,ra;le;aWba,ePiMlKthJyH;a,c3sH;a,on,sa;ea;iHys0N;e,s0M;a,cIn1sHza;a,e,ha,on,sa;e,ia,ja;c3is6jaKksaKna,sJxH;aHia;!nd2;ia,saH;nd2;ra;ia;i0nIyH;ah,na;a,is,naCoud;la;c6da,leEmNnLsH;haClH;inHyY;g,n;!h;a,o,slH;ey;ee;en;at6g4nIusH;ti0;es;ie;aWdiTelMrH;eJiH;anMenH;a,e,ne;an0;na;!aLeKiIyH;nn;a,n1;a,e;!ne;!iH;de;e,lDsH;on;yn;!lH;i9yn;ne;aKbIiHrL;!e,gaK;ey,i7y;!e;gaH;il;dKliyJradhIs6;ha;ya;ah;a,ya",Honorific:"trueยฆdirector1field marsh2lieutenant1rear0sergeant major,vice0; admir1; gener0;al","Adj|Gerund":"trueยฆ0:3F;1:3H;2:31;3:2X;4:35;5:33;6:3C;7:2Z;8:36;9:29;a33b2Tc2Bd1Te1If19g12h0Zi0Rl0Nm0Gnu0Fo0Ap04rYsKtEuBvAw1Ayiel3;ar6e08;nBpA;l1Rs0B;fol3n1Zsett2;aEeDhrBi4ouc7rAwis0;e0Bif2oub2us0yi1;ea1SiA;l2vi1;l2mp0rr1J;nt1Vxi1;aMcreec7enten2NhLkyrocke0lo0Vmi2oJpHtDuBweA;e0Ul2;pp2ArA;gi1pri5roun3;aBea8iAri2Hun9;mula0r4;gge4rA;t2vi1;ark2eAraw2;e3llb2F;aAot7;ki1ri1;i9oc29;dYtisf6;aEeBive0oAus7;a4l2;assu4defi9fres7ig9juve07mai9s0vAwar3;ea2italiAol1G;si1zi1;gi1ll6mb2vi1;a6eDier23lun1VrAun2C;eBoA;mi5vo1Z;ce3s5vai2;n3rpleA;xi1;ffCpWutBverAwi1;arc7lap04p0Pri3whel8;goi1l6st1J;en3sA;et0;m2Jrtu4;aEeDiCoBuAyst0L;mb2;t1Jvi1;s5tiga0;an1Rl0n3smeri26;dAtu4;de9;aCeaBiAo0U;fesa0Tvi1;di1ni1;c1Fg19s0;llumiGmFnArri0R;cDfurHsCtBviA;go23ti1;e1Oimi21oxica0rig0V;pi4ul0;orpo20r0K;po5;na0;eaBorr02umilA;ia0;li1rtwar8;lFrA;atiDipCoBuelA;i1li1;undbrea10wi1;pi1;f6ng;a4ea8;a3etc7it0lEoCrBulfA;il2;ee1FighXust1L;rAun3;ebo3thco8;aCoA;a0wA;e4i1;mi1tte4;lectrJmHnExA;aCci0hBis0pA;an3lo3;aOila1B;c0spe1A;ab2coura0CdBergi13ga0Clive9ric7s02tA;hral2i0J;ea4u4;barras5er09pA;owe4;if6;aQeIiBrA;if0;sAzz6;aEgDhearCsen0tA;rAur11;ac0es5;te9;us0;ppoin0r8;biliGcDfi9gra3ligh0mBpres5sAvasG;erE;an3ea9orA;ali0L;a6eiBli9rA;ea5;vi1;ta0;maPri1s7un0zz2;aPhMlo5oAripp2ut0;mGnArrespon3;cer9fDspi4tA;inBrA;as0ibu0ol2;ui1;lic0u5;ni1;fDmCpA;eAromi5;l2ti1;an3;or0;aAil2;llenAnAr8;gi1;l8ptAri1;iva0;aff2eGin3lFoDrBuA;d3st2;eathtaAui5;ki1;gg2i2o8ri1unA;ci1;in3;co8wiA;lAtc7;de4;bsorVcOgonMlJmHnno6ppea2rFsA;pi4su4toA;nBun3;di1;is7;hi1;res0;li1;aFu5;si1;ar8lu4;ri1;mi1;iAzi1;zi1;cAhi1;eleDomA;moBpan6;yi1;da0;ra0;ti1;bi1;ng",Comparable:"trueยฆ0:3C;1:3Q;2:3F;a3Tb3Cc33d2Te2Mf2Ag1Wh1Li1Fj1Ek1Bl13m0Xn0So0Rp0Iqu0Gr07sHtCug0vAw4y3za0Q;el10ouN;ary,e6hi5i3ry;ck0Cde,l3n1ry,se;d,y;ny,te;a3i3R;k,ry;a3erda2ulgar;gue,in,st;a6en2Xhi5i4ouZr3;anqu2Cen1ue;dy,g36me0ny;ck,rs28;ll,me,rt,wd3I;aRcaPeOhMiLkin0BlImGoEpDt6u4w3;eet,ift;b3dd0Wperfi21rre28;sta26t21;a8e7iff,r4u3;pUr1;a4ict,o3;ng;ig2Vn0N;a1ep,rn;le,rk,te0;e1Si2Vright0;ci1Yft,l3on,re;emn,id;a3el0;ll,rt;e4i3y;g2Mm0Z;ek,nd2T;ck24l0mp1L;a3iRrill,y;dy,l01rp;ve0Jxy;n1Jr3;ce,y;d,fe,int0l1Hv0V;a8e6i5o3ude;mantic,o19sy,u3;gh;pe,t1P;a3d,mo0A;dy,l;gg4iFndom,p3re,w;id;ed;ai2i3;ck,et;hoAi1Fl9o8r5u3;ny,r3;e,p11;egna2ic4o3;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e5i4o3u14;b0Sisy,rm0Ysy;bb0ce,mb0R;a3r1w;r,t;ad,e5ild,o4u3;nda12te;ist,o1;a4ek,l3;low;s0ty;a8e7i6o3ucky;f0Jn4o15u3ve0w10y0N;d,sy;e0g;ke0l,mp,tt0Eve0;e1Qwd;me,r3te;ge;e4i3;nd;en;ol0ui19;cy,ll,n3;secu6t3;e3ima4;llege2rmedia3;te;re;aAe7i6o5u3;ge,m3ng1C;bYid;me0t;gh,l0;a3fXsita2;dy,rWv3;en0y;nd13ppy,r3;d3sh;!y;aFenEhCiBlAoofy,r3;a8e6i5o3ue0Z;o3ss;vy;m,s0;at,e3y;dy,n;nd,y;ad,ib,ooD;a2d1;a3o3;st0;tDuiS;u1y;aCeebBi9l8o6r5u3;ll,n3r0N;!ny;aCesh,iend0;a3nd,rmD;my;at,ir7;erce,nan3;ci9;le;r,ul3;ty;a6erie,sse4v3xtre0B;il;nti3;al;r4s3;tern,y;ly,th0;appZe9i5ru4u3;mb;nk;r5vi4z3;zy;ne;e,ty;a3ep,n9;d3f,r;!ly;agey,h8l7o5r4u3;dd0r0te;isp,uel;ar3ld,mmon,st0ward0zy;se;evKou1;e3il0;ap,e3;sy;aHiFlCoAr5u3;ff,r0sy;ly;a6i3oad;g4llia2;nt;ht;sh,ve;ld,un3;cy;a4o3ue;nd,o1;ck,nd;g,tt3;er;d,ld,w1;dy;bsu6ng5we3;so3;me;ry;rd",Adverb:"trueยฆa08b05d00eYfSheQinPjustOkinda,likewiZmMnJoEpCquite,r9s5t2u0very,well;ltima01p0; to,wards5;h1iny bit,o0wiO;o,t6;en,us;eldom,o0uch;!me1rt0; of;how,times,w0C;a1e0;alS;ndomRth05;ar excellenEer0oint blank; Lhaps;f3n0utright;ce0ly;! 0;ag05moX; courGten;ewJo0; longWt 0;onHwithstand9;aybe,eanwhiNore0;!ovT;! aboX;deed,steY;lla,n0;ce;or3u0;ck1l9rther0;!moK;ing; 0evK;exampCgood,suH;n mas0vI;se;e0irect2; 2fini0;te0;ly;juAtrop;ackward,y 0;far,no0; means,w; GbroFd nauseam,gEl7ny5part,s4t 2w0;ay,hi0;le;be7l0mo7wor7;arge,ea6; soon,i4;mo0way;re;l 3mo2ongsi1ready,so,togeth0ways;er;de;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"trueยฆaXbTcReNhowMiEjust00noBo9p8supposing,t5wh0yet;e1il0o3;e,st;n1re0thN; if,by,vM;evL;h0il,o;erefOo0;!uU;lus,rovided th9;r0therwiM;! not; mattEr,w0;! 0;since,th4w7;f4n0; 0asmuch;as mIcaForder t0;h0o;at;! 0;only,t0w0;hen;!ev3;ith2ven0;! 0;if,tB;er;o0uz;s,z;e0ut,y the time;cau1f0;ore;se;lt3nd,s 0;far1if,m0soon1t2;uch0; as;hou0;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",Determiner:"trueยฆaBboth,d9e6few,le5mu8neiDplenty,s4th2various,wh0;at0ich0;evC;a0e4is,ose;!t;everal,ome;!ast,s;a1l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er","Adj|Present":"trueยฆa07b04cVdQeNfJhollIidRlEmCnarrIoBp9qua8r7s3t2uttFw0;aKet,ro0;ng,u08;endChin;e2hort,l1mooth,our,pa9tray,u0;re,speU;i2ow;cu6da02leSpaN;eplica01i02;ck;aHerfePr0;eseUime,omV;bscu1pen,wn;atu0e3odeH;re;a2e1ive,ow0;er;an;st,y;ow;a2i1oul,r0;ee,inge;rm;iIke,ncy,st;l1mpty,x0;emHpress;abo4ic7;amp,e2i1oub0ry,ull;le;ffu9re6;fu8libe0;raE;alm,l5o0;mpleCn3ol,rr1unterfe0;it;e0u7;ct;juga8sum7;ea1o0;se;n,r;ankru1lu0;nt;pt;li2pproxi0rticula1;ma0;te;ght","Person|Adj":"trueยฆb3du2earnest,frank,mi2r0san1woo1;an0ich,u1;dy;sty;ella,rown",Modal:"trueยฆc5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Verb:"trueยฆborn,cannot,gonna,has,keep tabs,msg","Person|Verb":"trueยฆb8ch7dr6foster,gra5ja9lan4ma2ni9ollie,p1rob,s0wade;kip,pike,t5ue;at,eg,ier2;ck,r0;k,shal;ce;ce,nt;ew;ase,u1;iff,l1ob,u0;ck;aze,ossom","Person|Date":"trueยฆa2j0sep;an0une;!uary;p0ugust,v0;ril"};const Eo=36,Fo="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",Oo=Fo.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var zo=function(e){if(void 0!==Oo[e])return Oo[e];let t=0,n=1,a=Eo,r=1;for(;n=0;n--,r*=Eo){let a=e.charCodeAt(n)-48;a>10&&(a-=7),t+=a*r}return t};var Vo=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=So(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=Ko(To[e]);Wo.test(e)?Object.keys(t).forEach((t=>{if(qo[t]=e,"Noun|Verb"===e){let e=Jo(t,Ro);qo[e]="Plural|Verb"}})):Object.keys(t).forEach((t=>{Uo[t]=e}))})),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Uo[e]="Emoticon")),delete Uo[""],delete Uo.null,delete Uo[" "];const Qo="Singular";var Zo={beforeTags:{Determiner:Qo,Possessive:Qo,Acronym:Qo,Noun:Qo,Adjective:Qo,PresentTense:Qo,Gerund:Qo,PastTense:Qo,Infinitive:Qo,Date:Qo,Ordinal:Qo,Demonym:Qo},afterTags:{Value:Qo,Modal:Qo,Copula:Qo,PresentTense:Qo,PastTense:Qo,Demonym:Qo,Actor:Qo},beforeWords:{the:Qo,with:Qo,without:Qo,of:Qo,for:Qo,any:Qo,all:Qo,on:Qo,cut:Qo,cuts:Qo,increase:Qo,decrease:Qo,raise:Qo,drop:Qo,save:Qo,saved:Qo,saves:Qo,make:Qo,makes:Qo,made:Qo,minus:Qo,plus:Qo,than:Qo,another:Qo,versus:Qo,neither:Qo,about:Qo,favorite:Qo,best:Qo,daily:Qo,weekly:Qo,linear:Qo,binary:Qo,mobile:Qo,lexical:Qo,technical:Qo,computer:Qo,scientific:Qo,security:Qo,government:Qo,popular:Qo,formal:Qo,no:Qo,more:Qo,one:Qo,let:Qo,her:Qo,his:Qo,their:Qo,our:Qo,us:Qo,sheer:Qo,monthly:Qo,yearly:Qo,current:Qo,previous:Qo,upcoming:Qo,last:Qo,next:Qo,main:Qo,initial:Qo,final:Qo,beginning:Qo,end:Qo,top:Qo,bottom:Qo,future:Qo,past:Qo,major:Qo,minor:Qo,side:Qo,central:Qo,peripheral:Qo,public:Qo,private:Qo},afterWords:{of:Qo,system:Qo,aid:Qo,method:Qo,utility:Qo,tool:Qo,reform:Qo,therapy:Qo,philosophy:Qo,room:Qo,authority:Qo,says:Qo,said:Qo,wants:Qo,wanted:Qo,is:Qo,did:Qo,do:Qo,can:Qo,wise:Qo}};const _o="Infinitive";var Xo={beforeTags:{Modal:_o,Adverb:_o,Negative:_o,Plural:_o},afterTags:{Determiner:_o,Adverb:_o,Possessive:_o,Reflexive:_o,Preposition:_o,Cardinal:_o,Comparative:_o,Superlative:_o},beforeWords:{i:_o,we:_o,you:_o,they:_o,to:_o,please:_o,will:_o,have:_o,had:_o,would:_o,could:_o,should:_o,do:_o,did:_o,does:_o,can:_o,must:_o,us:_o,me:_o,let:_o,even:_o,when:_o,help:_o,he:_o,she:_o,it:_o,being:_o,bi:_o,co:_o,contra:_o,de:_o,inter:_o,intra:_o,mis:_o,pre:_o,out:_o,counter:_o,nobody:_o,somebody:_o,anybody:_o,everybody:_o},afterWords:{the:_o,me:_o,you:_o,him:_o,us:_o,her:_o,his:_o,them:_o,they:_o,it:_o,himself:_o,herself:_o,itself:_o,myself:_o,ourselves:_o,themselves:_o,something:_o,anything:_o,a:_o,an:_o,up:_o,down:_o,by:_o,out:_o,off:_o,under:_o,what:_o,all:_o,to:_o,because:_o,although:_o,how:_o,otherwise:_o,together:_o,though:_o,into:_o,yet:_o,more:_o,here:_o,there:_o,away:_o}};var Yo={beforeTags:Object.assign({},Xo.beforeTags,Zo.beforeTags,{}),afterTags:Object.assign({},Xo.afterTags,Zo.afterTags,{}),beforeWords:Object.assign({},Xo.beforeWords,Zo.beforeWords,{}),afterWords:Object.assign({},Xo.afterWords,Zo.afterWords,{})};const ei="Adjective";var ti={beforeTags:{Determiner:ei,Possessive:ei,Hyphenated:ei},afterTags:{Adjective:ei},beforeWords:{seem:ei,seemed:ei,seems:ei,feel:ei,feels:ei,felt:ei,stay:ei,appear:ei,appears:ei,appeared:ei,also:ei,over:ei,under:ei,too:ei,it:ei,but:ei,still:ei,really:ei,quite:ei,well:ei,very:ei,truly:ei,how:ei,deeply:ei,hella:ei,profoundly:ei,extremely:ei,so:ei,badly:ei,mostly:ei,totally:ei,awfully:ei,rather:ei,nothing:ei,something:ei,anything:ei,not:ei,me:ei,is:ei,face:ei,faces:ei,faced:ei,look:ei,looks:ei,looked:ei,reveal:ei,reveals:ei,revealed:ei,sound:ei,sounded:ei,sounds:ei,remains:ei,remained:ei,prove:ei,proves:ei,proved:ei,becomes:ei,stays:ei,tastes:ei,taste:ei,smells:ei,smell:ei,gets:ei,grows:ei,as:ei,rings:ei,radiates:ei,conveys:ei,convey:ei,conveyed:ei,of:ei},afterWords:{too:ei,also:ei,or:ei,enough:ei,as:ei}};const ni="Gerund";var ai={beforeTags:{Adverb:ni,Preposition:ni,Conjunction:ni},afterTags:{Adverb:ni,Possessive:ni,Person:ni,Pronoun:ni,Determiner:ni,Copula:ni,Preposition:ni,Conjunction:ni,Comparative:ni},beforeWords:{been:ni,keep:ni,continue:ni,stop:ni,am:ni,be:ni,me:ni,began:ni,start:ni,starts:ni,started:ni,stops:ni,stopped:ni,help:ni,helps:ni,avoid:ni,avoids:ni,love:ni,loves:ni,loved:ni,hate:ni,hates:ni,hated:ni},afterWords:{you:ni,me:ni,her:ni,him:ni,his:ni,them:ni,their:ni,it:ni,this:ni,there:ni,on:ni,about:ni,for:ni,up:ni,down:ni}};const ri="Gerund",oi="Adjective";var ii={beforeTags:Object.assign({},ti.beforeTags,ai.beforeTags,{Imperative:ri,Infinitive:oi,Plural:ri}),afterTags:Object.assign({},ti.afterTags,ai.afterTags,{Noun:oi}),beforeWords:Object.assign({},ti.beforeWords,ai.beforeWords,{is:oi,are:ri,was:oi,of:oi,suggest:ri,suggests:ri,suggested:ri,recommend:ri,recommends:ri,recommended:ri,imagine:ri,imagines:ri,imagined:ri,consider:ri,considered:ri,considering:ri,resist:ri,resists:ri,resisted:ri,avoid:ri,avoided:ri,avoiding:ri,except:oi,accept:oi,assess:ri,explore:ri,fear:ri,fears:ri,appreciate:ri,question:ri,help:ri,embrace:ri,with:oi}),afterWords:Object.assign({},ti.afterWords,ai.afterWords,{to:ri,not:ri,the:ri})};const si={beforeTags:{Determiner:void 0,Cardinal:"Noun",PhrasalVerb:"Adjective"},afterTags:{}};var li={beforeTags:Object.assign({},ti.beforeTags,Zo.beforeTags,si.beforeTags),afterTags:Object.assign({},ti.afterTags,Zo.afterTags,si.afterTags),beforeWords:Object.assign({},ti.beforeWords,Zo.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective",off:"Adjective",out:"Adjective"}),afterWords:Object.assign({},ti.afterWords,Zo.afterWords)};let ui="PastTense",ci="Adjective";const di={beforeTags:{Adverb:ui,Pronoun:ui,ProperNoun:ui,Auxiliary:ui,Noun:ui},afterTags:{Possessive:ui,Pronoun:ui,Determiner:ui,Adverb:ui,Comparative:ui,Date:ui,Gerund:ui},beforeWords:{be:ui,who:ui,get:ci,had:ui,has:ui,have:ui,been:ui,it:ui,as:ui,for:ci,more:ci,always:ci},afterWords:{by:ui,back:ui,out:ui,in:ui,up:ui,down:ui,before:ui,after:ui,for:ui,the:ui,with:ui,as:ui,on:ui,at:ui,between:ui,to:ui,into:ui,us:ui,them:ui,his:ui,her:ui,their:ui,our:ui,me:ui,about:ci}};var hi={beforeTags:Object.assign({},ti.beforeTags,di.beforeTags),afterTags:Object.assign({},ti.afterTags,di.afterTags),beforeWords:Object.assign({},ti.beforeWords,di.beforeWords),afterWords:Object.assign({},ti.afterWords,di.afterWords)};const gi={afterTags:{Noun:"Adjective",Conjunction:void 0}};var mi={beforeTags:Object.assign({},ti.beforeTags,Xo.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},ti.afterTags,Xo.afterTags,gi.afterTags),beforeWords:Object.assign({},ti.beforeWords,Xo.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},ti.afterWords,Xo.afterWords,{to:void 0,as:"Adjective"})};const pi={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},fi={Value:"Gerund"},bi={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},vi={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var yi={beforeTags:Object.assign({},ai.beforeTags,Zo.beforeTags,pi),afterTags:Object.assign({},ai.afterTags,Zo.afterTags,fi),beforeWords:Object.assign({},ai.beforeWords,Zo.beforeWords,bi),afterWords:Object.assign({},ai.afterWords,Zo.afterWords,vi)};const wi="Singular",ki="Infinitive";var Pi={beforeTags:Object.assign({},Xo.beforeTags,Zo.beforeTags,{Adjective:wi,Particle:wi}),afterTags:Object.assign({},Xo.afterTags,Zo.afterTags,{ProperNoun:ki,Gerund:ki,Adjective:ki,Copula:wi}),beforeWords:Object.assign({},Xo.beforeWords,Zo.beforeWords,{is:wi,was:wi,of:wi,have:null}),afterWords:Object.assign({},Xo.afterWords,Zo.afterWords,{instead:ki,about:ki,his:ki,her:ki,to:null,by:null,in:null})};const Ai="Person";var Ci={beforeTags:{Honorific:Ai,Person:Ai},afterTags:{Person:Ai,ProperNoun:Ai,Verb:Ai},ownTags:{ProperNoun:Ai},beforeWords:{hi:Ai,hey:Ai,yo:Ai,dear:Ai,hello:Ai},afterWords:{said:Ai,says:Ai,told:Ai,tells:Ai,feels:Ai,felt:Ai,seems:Ai,thinks:Ai,thought:Ai,spends:Ai,spendt:Ai,plays:Ai,played:Ai,sing:Ai,sang:Ai,learn:Ai,learned:Ai,wants:Ai,wanted:Ai}};const ji="Month",Ni={beforeTags:{Date:ji,Value:ji},afterTags:{Date:ji,Value:ji},beforeWords:{by:ji,in:ji,on:ji,during:ji,after:ji,before:ji,between:ji,until:ji,til:ji,sometime:ji,of:ji,this:ji,next:ji,last:ji,previous:ji,following:ji,with:"Person"},afterWords:{sometime:ji,in:ji,of:ji,until:ji,the:ji}};var Ii={beforeTags:Object.assign({},Ci.beforeTags,Ni.beforeTags),afterTags:Object.assign({},Ci.afterTags,Ni.afterTags),beforeWords:Object.assign({},Ci.beforeWords,Ni.beforeWords),afterWords:Object.assign({},Ci.afterWords,Ni.afterWords)};const Di="Place",Hi={beforeTags:{Place:Di},afterTags:{Place:Di,Abbreviation:Di},beforeWords:{in:Di,by:Di,near:Di,from:Di,to:Di},afterWords:{in:Di,by:Di,near:Di,from:Di,to:Di,government:Di,council:Di,region:Di,city:Di}};let Gi="Unit";const xi={"Actor|Verb":Yo,"Adj|Gerund":ii,"Adj|Noun":li,"Adj|Past":hi,"Adj|Present":mi,"Noun|Verb":Pi,"Noun|Gerund":yi,"Person|Noun":{beforeTags:Object.assign({},Zo.beforeTags,Ci.beforeTags),afterTags:Object.assign({},Zo.afterTags,Ci.afterTags),beforeWords:Object.assign({},Zo.beforeWords,Ci.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Zo.afterWords,Ci.afterWords)},"Person|Date":Ii,"Person|Verb":{beforeTags:Object.assign({},Zo.beforeTags,Ci.beforeTags,Xo.beforeTags),afterTags:Object.assign({},Zo.afterTags,Ci.afterTags,Xo.afterTags),beforeWords:Object.assign({},Zo.beforeWords,Ci.beforeWords,Xo.beforeWords),afterWords:Object.assign({},Zo.afterWords,Ci.afterWords,Xo.afterWords)},"Person|Place":{beforeTags:Object.assign({},Hi.beforeTags,Ci.beforeTags),afterTags:Object.assign({},Hi.afterTags,Ci.afterTags),beforeWords:Object.assign({},Hi.beforeWords,Ci.beforeWords),afterWords:Object.assign({},Hi.afterWords,Ci.afterWords)},"Person|Adj":{beforeTags:Object.assign({},Ci.beforeTags,ti.beforeTags),afterTags:Object.assign({},Ci.afterTags,ti.afterTags),beforeWords:Object.assign({},Ci.beforeWords,ti.beforeWords),afterWords:Object.assign({},Ci.afterWords,ti.afterWords)},"Unit|Noun":{beforeTags:{Value:Gi},afterTags:{},beforeWords:{per:Gi,every:Gi,each:Gi,square:Gi,cubic:Gi,sq:Gi,metric:Gi},afterWords:{per:Gi,squared:Gi,cubed:Gi,long:Gi}}},Ti=(e,t)=>{let n=Object.keys(e).reduce(((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t)),{});return Object.assign(n,t)};xi["Plural|Verb"]={beforeWords:Ti(xi["Noun|Verb"].beforeWords,{had:"Plural",have:"Plural"}),afterWords:Ti(xi["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null,is:"PresentTense",by:"PresentTense"}),beforeTags:Ti(xi["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:Ti(xi["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var Ei=xi;const Fi="Adjective",Oi="Infinitive",zi="PresentTense",Vi="Singular",Bi="PastTense",Si="Adverb",Ki="Plural",$i="Actor",Mi="Verb",Li="Noun",Ji="LastName",Wi="Modal",Ui="Place",qi="Participle";var Ri=[null,null,{ea:Vi,ia:Li,ic:Fi,ly:Si,"'n":Mi,"'t":Mi},{oed:Bi,ued:Bi,xed:Bi," so":Si,"'ll":Wi,"'re":"Copula",azy:Fi,eer:Li,end:Mi,ped:Bi,ffy:Fi,ify:Oi,ing:"Gerund",ize:Oi,ibe:Oi,lar:Fi,mum:Fi,nes:zi,nny:Fi,ous:Fi,que:Fi,ger:Li,ber:Li,rol:Vi,sis:Vi,ogy:Vi,oid:Vi,ian:Vi,zes:zi,eld:Bi,ken:qi,ven:qi,ten:qi,ect:Oi,ict:Oi,ign:Oi,oze:Oi,ful:Fi,bal:Fi,ton:Li},{amed:Bi,aped:Bi,ched:Bi,lked:Bi,rked:Bi,reed:Bi,nded:Bi,mned:Fi,cted:Bi,dged:Bi,ield:Vi,akis:Ji,cede:Oi,chuk:Ji,czyk:Ji,ects:zi,iend:Vi,ends:Mi,enko:Ji,ette:Vi,iary:Vi,wner:Vi,fies:zi,fore:Si,gate:Oi,gone:Fi,ices:Ki,ints:Ki,ruct:Oi,ines:Ki,ions:Ki,ners:Ki,pers:Ki,lers:Ki,less:Fi,llen:Fi,made:Fi,nsen:Ji,oses:zi,ould:Wi,some:Fi,sson:Ji,ians:Ki,tion:Vi,tage:Li,ique:Vi,tive:Fi,tors:Li,vice:Vi,lier:Vi,fier:Vi,wned:Bi,gent:Vi,tist:$i,pist:$i,rist:$i,mist:$i,yist:$i,vist:$i,ists:$i,lite:Vi,site:Vi,rite:Vi,mite:Vi,bite:Vi,mate:Vi,date:Vi,ndal:Vi,vent:Vi,uist:$i,gist:$i,note:Vi,cide:Vi,ence:Vi,wide:Fi,vide:Oi,ract:Oi,duce:Oi,pose:Oi,eive:Oi,lyze:Oi,lyse:Oi,iant:Fi,nary:Fi,ghty:Fi,uent:Fi,erer:$i,bury:Ui,dorf:Li,esty:Li,wych:Ui,dale:Ui,folk:Ui},{elist:$i,holic:Vi,phite:Vi,tized:Bi,urned:Bi,eased:Bi,ances:Ki,bound:Fi,ettes:Ki,fully:Si,ishes:zi,ities:Ki,marek:Ji,nssen:Ji,ology:Li,osome:Vi,tment:Vi,ports:Ki,rough:Fi,tches:zi,tieth:"Ordinal",tures:Ki,wards:Si,where:Si,archy:Li,pathy:Li,opoly:Li,embly:Li,phate:Li,ndent:Vi,scent:Vi,onist:$i,anist:$i,alist:$i,olist:$i,icist:$i,ounce:Oi,iable:Fi,borne:Fi,gnant:Fi,inant:Fi,igent:Fi,atory:Fi,rient:Vi,dient:Vi,maker:$i,burgh:Ui,mouth:Ui,ceter:Ui,ville:Ui,worth:Li},{auskas:Ji,parent:Vi,cedent:Vi,ionary:Vi,cklist:Vi,keeper:$i,logist:$i,teenth:"Value",worker:$i,master:$i,writer:$i,brough:Ui,cester:Ui},{logists:$i,opoulos:Ji,borough:Ui,sdottir:Ji}];const Qi="Adjective",Zi="Noun",_i="Verb";var Xi=[null,null,{},{neo:Zi,bio:Zi,"de-":_i,"re-":_i,"un-":_i,"ex-":Zi},{anti:Zi,auto:Zi,faux:Qi,hexa:Zi,kilo:Zi,mono:Zi,nano:Zi,octa:Zi,poly:Zi,semi:Qi,tele:Zi,"pro-":Qi,"mis-":_i,"dis-":_i,"pre-":Qi},{anglo:Zi,centi:Zi,ethno:Zi,ferro:Zi,grand:Zi,hepta:Zi,hydro:Zi,intro:Zi,macro:Zi,micro:Zi,milli:Zi,nitro:Zi,penta:Zi,quasi:Qi,radio:Zi,tetra:Zi,"omni-":Qi,"post-":Qi},{pseudo:Qi,"extra-":Qi,"hyper-":Qi,"inter-":Qi,"intra-":Qi,"deca-":Qi},{electro:Zi}];const Yi="Adjective",es="Infinitive",ts="PresentTense",ns="Singular",as="PastTense",rs="Adverb",os="Expression",is="Actor",ss="Verb",ls="Noun",us="LastName";var cs={a:[[/.[aeiou]na$/,ls,"tuna"],[/.[oau][wvl]ska$/,us],[/.[^aeiou]ica$/,ns,"harmonica"],[/^([hyj]a+)+$/,os,"haha"]],c:[[/.[^aeiou]ic$/,Yi]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,as,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,as,"rammed"],[/.[aeiou][sg]hed$/,as,"gushed"],[/.[aeiou]red$/,as,"hired"],[/.[aeiou]r?ried$/,as,"hurried"],[/[^aeiou]ard$/,ns,"steward"],[/[aeiou][^aeiou]id$/,Yi,""],[/.[vrl]id$/,Yi,"livid"],[/..led$/,as,"hurled"],[/.[iao]sed$/,as,""],[/[aeiou]n?[cs]ed$/,as,""],[/[aeiou][rl]?[mnf]ed$/,as,""],[/[aeiou][ns]?c?ked$/,as,"bunked"],[/[aeiou]gned$/,as],[/[aeiou][nl]?ged$/,as],[/.[tdbwxyz]ed$/,as],[/[^aeiou][aeiou][tvx]ed$/,as],[/.[cdflmnprstv]ied$/,as,"emptied"]],e:[[/.[lnr]ize$/,es,"antagonize"],[/.[^aeiou]ise$/,es,"antagonise"],[/.[aeiou]te$/,es,"bite"],[/.[^aeiou][ai]ble$/,Yi,"fixable"],[/.[^aeiou]eable$/,Yi,"maleable"],[/.[ts]ive$/,Yi,"festive"],[/[a-z]-like$/,Yi,"woman-like"]],h:[[/.[^aeiouf]ish$/,Yi,"cornish"],[/.v[iy]ch$/,us,"..ovich"],[/^ug?h+$/,os,"ughh"],[/^uh[ -]?oh$/,os,"uhoh"],[/[a-z]-ish$/,Yi,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,us,"polish-male"]],k:[[/^(k){2}$/,os,"kkkk"]],l:[[/.[gl]ial$/,Yi,"familial"],[/.[^aeiou]ful$/,Yi,"fitful"],[/.[nrtumcd]al$/,Yi,"natal"],[/.[^aeiou][ei]al$/,Yi,"familial"]],m:[[/.[^aeiou]ium$/,ns,"magnesium"],[/[^aeiou]ism$/,ns,"schism"],[/^[hu]m+$/,os,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Yi,"republican"],[/[^aeiou]ician$/,is,"musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,os,"noooo"],[/^(yo)+$/,os,"yoo"],[/^wo{2,}[pt]?$/,os,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,ns],[/[^i]fer$/,es],[/.[^aeiou][ao]pher$/,is],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Yi],[/[aeiou].*ist$/,Yi],[/^[a-z]et$/,ss]],s:[[/.[^aeiou]ises$/,ts],[/.[rln]ates$/,ts],[/.[^z]ens$/,ss],[/.[lstrn]us$/,ns],[/.[aeiou]sks$/,ts],[/.[aeiou]kes$/,ts],[/[aeiou][^aeiou]is$/,ns],[/[a-z]'s$/,ls],[/^yes+$/,os]],v:[[/.[^aeiou][ai][kln]ov$/,us]],y:[[/.[cts]hy$/,Yi],[/.[st]ty$/,Yi],[/.[tnl]ary$/,Yi],[/.[oe]ry$/,ns],[/[rdntkbhs]ly$/,rs],[/.(gg|bb|zz)ly$/,Yi],[/...lly$/,rs],[/.[gk]y$/,Yi],[/[bszmp]{2}y$/,Yi],[/.[ai]my$/,Yi],[/[ea]{2}zy$/,Yi],[/.[^aeiou]ity$/,ns]]};const ds="Verb",hs="Noun";var gs={leftTags:[["Adjective",hs],["Possessive",hs],["Determiner",hs],["Adverb",ds],["Pronoun",ds],["Value",hs],["Ordinal",hs],["Modal",ds],["Superlative",hs],["Demonym",hs],["Honorific","Person"]],leftWords:[["i",ds],["first",hs],["it",ds],["there",ds],["not",ds],["because",hs],["if",hs],["but",hs],["who",ds],["this",hs],["his",hs],["when",hs],["you",ds],["very","Adjective"],["old",hs],["never",ds],["before",hs],["a",hs],["the",hs],["been",ds]],rightTags:[["Copula",hs],["PastTense",hs],["Conjunction",hs],["Modal",hs]],rightWords:[["there",ds],["me",ds],["man","Adjective"],["him",ds],["it",ds],["were",hs],["took",hs],["himself",ds],["went",hs],["who",hs],["jr","Person"]]},ms={fwd:"3:ser,ierยฆ1er:h,t,f,l,nยฆ1r:eยฆ2er:ss,or,om",both:"3er:ver,ear,almยฆ3ner:hinยฆ3ter:latยฆ2mer:imยฆ2er:ng,rm,mbยฆ2ber:ibยฆ2ger:igยฆ1er:w,p,k,dยฆier:y",rev:"1:tter,yerยฆ2:uer,ver,ffer,oner,eler,ller,iler,ster,cer,uler,sher,ener,gher,aner,adder,nter,eter,rter,hter,rner,fterยฆ3:oser,ooler,eafer,user,airer,bler,maler,tler,eater,uger,rger,ainer,urer,ealer,icher,pler,emner,icter,nser,iserยฆ4:arser,viner,ucher,rosser,somer,ndomer,moter,oother,uarer,hiterยฆ5:nuiner,esser,emierยฆar:urther",ex:"worse:badยฆbetter:goodยฆ4er:fair,gray,poorยฆ1urther:farยฆ3ter:fat,hot,wetยฆ3der:mad,sadยฆ3er:shy,funยฆ4der:gladยฆ:ยฆ4r:cute,dire,fake,fine,free,lame,late,pale,rare,ripe,rude,safe,sore,tame,wideยฆ5r:eerie,stale"},ps={fwd:"1:nning,tting,rring,pping,eing,mming,gging,dding,bbing,kkingยฆ2:eking,oling,eling,emingยฆ3:velling,siting,uiting,fiting,loting,geting,ialing,cellingยฆ4:graming",both:"1:aing,iing,fing,xing,ying,oing,hing,wingยฆ2:tzing,rping,izzing,bting,mning,sping,wling,rling,wding,rbing,uping,lming,wning,mping,oning,lting,mbing,lking,fting,hting,sking,gning,pting,cking,ening,nking,iling,eping,ering,rting,rming,cting,lping,ssing,nting,nding,lding,sting,rning,rding,rkingยฆ3:belling,siping,toming,yaking,uaking,oaning,auling,ooping,aiding,naping,euring,tolling,uzzing,ganing,haning,ualing,halling,iasing,auding,ieting,ceting,ouling,voring,ralling,garing,joring,oaming,oaking,roring,nelling,ooring,uelling,eaming,ooding,eaping,eeting,ooting,ooming,xiting,keting,ooking,ulling,airing,oaring,biting,outing,oiting,earing,naling,oading,eeding,ouring,eaking,aiming,illing,oining,eaning,onging,ealing,aining,eadingยฆ4:thoming,melling,aboring,ivoting,weating,dfilling,onoring,eriting,imiting,tialling,rgining,otoring,linging,winging,lleting,louding,spelling,mpelling,heating,feating,opelling,choring,welling,ymaking,ctoring,calling,peating,iloring,laiting,utoring,uditing,mmaking,loating,iciting,waiting,mbating,voiding,otalling,nsoring,nselling,ocusing,itoring,elopingยฆ5:rselling,umpeting,atrolling,treating,tselling,rpreting,pringing,ummeting,ossoming,elmaking,eselling,rediting,totyping,onmaking,rfeiting,ntrollingยฆ5e:chmaking,dkeeping,severing,erouting,ecreting,ephoning,uthoring,ravening,reathing,pediting,erfering,eotyping,fringing,entoring,ombining,ompetingยฆ4e:emaking,eething,twining,rruling,chuting,xciting,rseding,scoping,edoring,pinging,lunging,agining,craping,pleting,eleting,nciting,nfining,ncoding,tponing,ecoding,writing,esaling,nvening,gnoring,evoting,mpeding,rvening,dhering,mpiling,storing,nviting,ploringยฆ3e:tining,nuring,saking,miring,haling,ceding,xuding,rining,nuting,laring,caring,miling,riding,hoking,piring,lading,curing,uading,noting,taping,futing,paring,hading,loding,siring,guring,vading,voking,during,niting,laning,caping,luting,muting,ruding,ciding,juring,laming,caling,hining,uoting,liding,ciling,duling,tuting,puting,cuting,coring,uiding,tiring,turing,siding,rading,enging,haping,buting,lining,taking,anging,haring,uiring,coming,mining,moting,suring,viding,ludingยฆ2e:tring,zling,uging,oging,gling,iging,vring,fling,lging,obing,psing,pling,ubing,cling,dling,wsing,iking,rsing,dging,kling,ysing,tling,rging,eging,nsing,uning,osing,uming,using,ibing,bling,aging,ising,asing,atingยฆ2ie:rlyingยฆ1e:zing,uing,cing,ving",rev:"ying:ieยฆ1ing:se,ke,te,we,ne,re,de,pe,me,le,c,heยฆ2ing:ll,ng,dd,ee,ye,oe,rg,usยฆ2ning:unยฆ2ging:og,ag,ug,ig,egยฆ2ming:umยฆ2bing:ub,ab,eb,obยฆ3ning:lan,can,hin,pin,winยฆ3ring:cur,lur,tir,tar,pur,carยฆ3ing:ait,del,eel,fin,eat,oat,eem,lel,ool,ein,uinยฆ3ping:rop,rap,top,uip,wap,hip,hop,lap,rip,capยฆ3ming:tem,wim,rim,kim,limยฆ3ting:mat,cut,pot,lit,lot,hat,set,pit,putยฆ3ding:hed,bed,bidยฆ3king:rekยฆ3ling:cil,pelยฆ3bing:ribยฆ4ning:eginยฆ4ing:isit,ruit,ilot,nsit,dget,rkel,ival,rcelยฆ4ring:efer,nferยฆ4ting:rmit,mmit,ysit,dmit,emit,bmit,tfit,gretยฆ4ling:evel,xcel,ivelยฆ4ding:hredยฆ5ing:arget,posit,rofitยฆ5ring:nsferยฆ5ting:nsmit,orget,cquitยฆ5ling:ancel,istil",ex:"3:adding,eating,aiming,aiding,airing,outing,gassing,setting,getting,putting,cutting,winning,sitting,betting,mapping,tapping,letting,bidding,hitting,tanning,netting,popping,fitting,capping,lapping,barring,banning,vetting,topping,rotting,tipping,potting,wetting,pitting,dipping,budding,hemming,pinning,jetting,kidding,padding,podding,sipping,wedding,bedding,donning,warring,penning,gutting,cueing,wadding,petting,ripping,napping,matting,tinning,binning,dimming,hopping,mopping,nodding,panning,rapping,ridding,sinningยฆ4:selling,falling,calling,waiting,editing,telling,rolling,heating,boating,hanging,beating,coating,singing,tolling,felling,polling,discing,seating,voiding,gelling,yelling,baiting,reining,ruining,seeking,spanning,stepping,knitting,emitting,slipping,quitting,dialing,omitting,clipping,shutting,skinning,abutting,flipping,trotting,cramming,fretting,suitingยฆ5:bringing,treating,spelling,stalling,trolling,expelling,rivaling,wringing,deterring,singeing,befitting,refittingยฆ6:enrolling,distilling,scrolling,strolling,caucusing,travellingยฆ7:installing,redefining,stencilling,recharging,overeating,benefiting,unraveling,programingยฆ9:reprogrammingยฆis:beingยฆ2e:using,aging,owingยฆ3e:making,taking,coming,noting,hiring,filing,coding,citing,doping,baking,coping,hoping,lading,caring,naming,voting,riding,mining,curing,lining,ruling,typing,boring,dining,firing,hiding,piling,taping,waning,baling,boning,faring,honing,wiping,luring,timing,wading,piping,fading,biting,zoning,daring,waking,gaming,raking,ceding,tiring,coking,wining,joking,paring,gaping,poking,pining,coring,liming,toting,roping,wiring,achingยฆ4e:writing,storing,eroding,framing,smoking,tasting,wasting,phoning,shaking,abiding,braking,flaking,pasting,priming,shoring,sloping,withing,hingingยฆ5e:defining,refining,renaming,swathing,fringing,recitingยฆ1ie:dying,tying,lying,vyingยฆ7e:sunbathing"},fs={fwd:"1:mtยฆ2:llenยฆ3:iven,akenยฆ:neยฆy:in",both:"1:wnยฆ2:me,atenยฆ3:seen,bidden,isenยฆ4:roven,astenยฆ3l:piltยฆ3d:uiltยฆ2e:ittenยฆ1im:wumยฆ1eak:pokenยฆ1ine:honeยฆ1ose:osenยฆ1in:gunยฆ1ake:wokenยฆear:ornยฆeal:olenยฆeeze:ozenยฆet:ottenยฆink:unkยฆing:ung",rev:"2:unยฆoken:eakยฆought:eekยฆoven:eaveยฆ1ne:oยฆ1own:lyยฆ1den:deยฆ1in:ayยฆ2t:amยฆ2n:eeยฆ3en:allยฆ4n:rive,sake,takeยฆ5n:rgive",ex:"2:beenยฆ3:seen,runยฆ4:given,takenยฆ5:shakenยฆ2eak:brokenยฆ1ive:doveยฆ2y:flownยฆ3e:hidden,riddenยฆ1eek:soughtยฆ1ake:wokenยฆ1eave:woven"},bs={fwd:"1:oesยฆ1ve:as",both:"1:xesยฆ2:zzes,ches,shes,ssesยฆ3:iasesยฆ2y:llies,pliesยฆ1y:cies,bies,ties,vies,nies,pies,dies,ries,fiesยฆ:s",rev:"1ies:lyยฆ2es:us,go,doยฆ3es:cho,eto",ex:"2:does,goesยฆ3:gassesยฆ5:focusesยฆis:areยฆ3y:reliesยฆ2y:fliesยฆ2ve:has"},vs={fwd:"1st:eยฆ1est:l,m,f,sยฆ1iest:ceyยฆ2est:or,irยฆ3est:ver",both:"4:eastยฆ5:hwestยฆ5lest:erfulยฆ4est:weet,lgar,tter,oungยฆ4most:uterยฆ3est:ger,der,rey,iet,ong,earยฆ3test:latยฆ3most:nerยฆ2est:pt,ft,nt,ct,rt,htยฆ2test:itยฆ2gest:igยฆ1est:b,k,n,p,h,d,wยฆiest:y",rev:"1:ttest,nnest,yestยฆ2:sest,stest,rmest,cest,vest,lmest,olest,ilest,ulest,ssest,imest,uestยฆ3:rgest,eatest,oorest,plest,allest,urest,iefest,uelest,blest,ugest,amest,yalest,ealest,illest,tlest,itestยฆ4:cerest,eriest,somest,rmalest,ndomest,motest,uarest,tiffestยฆ5:leverest,rangestยฆar:urthestยฆ3ey:riciest",ex:"best:goodยฆworst:badยฆ5est:greatยฆ4est:fast,full,fair,dullยฆ3test:hot,wet,fatยฆ4nest:thinยฆ1urthest:farยฆ3est:gay,shy,illยฆ4test:neatยฆ4st:late,wide,fine,safe,cute,fake,pale,rare,rude,sore,ripe,direยฆ6st:severe"},ys={fwd:"1:tistic,eable,lful,sful,ting,ttyยฆ2:onate,rtable,geous,ced,seful,ctfulยฆ3:ortive,entedยฆarity:earยฆy:eticยฆfulness:begoneยฆ1ity:reยฆ1y:tiful,gicยฆ2ity:ile,imous,ilous,imeยฆ2ion:atedยฆ2eness:ivingยฆ2y:triousยฆ2ation:iringยฆ2tion:vantยฆ3ion:ectยฆ3ce:mant,manticยฆ3tion:irableยฆ3y:est,esticยฆ3m:mistic,listicยฆ3ess:ningยฆ4n:utiousยฆ4on:rative,native,vative,ectiveยฆ4ce:erant",both:"1:king,wingยฆ2:alous,ltuous,oyful,rdousยฆ3:gorous,ectable,werful,amaticยฆ4:oised,usical,agical,raceful,ocused,lined,ightfulยฆ5ness:stful,lding,itous,nuous,ulous,otous,nable,gious,ayful,rvous,ntous,lsive,peful,entle,ciful,osive,leful,isive,ncise,reful,miousยฆ5ty:ivaciousยฆ5ties:ubtleยฆ5ce:ilient,adiant,atientยฆ5cy:icientยฆ5sm:gmaticยฆ5on:sessive,dictiveยฆ5ity:pular,sonal,eative,enticยฆ5sity:uminousยฆ5ism:conicยฆ5nce:mperateยฆ5ility:mitableยฆ5ment:xcitedยฆ5n:bitiousยฆ4cy:brant,etent,curateยฆ4ility:erable,acable,icable,ptableยฆ4ty:nacious,aive,oyal,daciousยฆ4n:iciousยฆ4ce:vient,erent,stent,ndent,dient,quent,identยฆ4ness:adic,ound,hing,pant,sant,oing,oist,tuteยฆ4icity:impleยฆ4ment:fined,musedยฆ4ism:oticยฆ4ry:danticยฆ4ity:tund,eralยฆ4edness:handยฆ4on:uitiveยฆ4lity:pitableยฆ4sm:eroic,namicยฆ4sity:nerousยฆ3th:armยฆ3ility:pable,bable,dable,iableยฆ3cy:hant,nant,icateยฆ3ness:red,hin,nse,ict,iet,ite,oud,ind,ied,rceยฆ3ion:luteยฆ3ity:ual,gal,volous,ialยฆ3ce:sent,fensive,lant,gant,gent,lent,dantยฆ3on:asiveยฆ3m:fist,sistic,iasticยฆ3y:terious,xurious,ronic,tasticยฆ3ur:amorousยฆ3e:tunateยฆ3ation:minedยฆ3sy:rteousยฆ3ty:ainยฆ3ry:aveยฆ3ment:azedยฆ2ness:de,on,ue,rn,ur,ft,rp,pe,om,ge,rd,od,ay,ss,er,ll,oy,ap,ht,ld,ad,rtยฆ2inousness:umousยฆ2ity:neous,ene,id,aneยฆ2cy:bate,lateยฆ2ation:izedยฆ2ility:oble,ibleยฆ2y:odicยฆ2e:oving,aringยฆ2s:ostยฆ2itude:ptยฆ2dom:eeยฆ2ance:uringยฆ2tion:reetยฆ2ion:otedยฆ2sion:endingยฆ2liness:anยฆ2or:rdentยฆ1th:ungยฆ1e:uableยฆ1ness:w,h,k,fยฆ1ility:mbleยฆ1or:ventยฆ1ement:gingยฆ1tiquity:ncientยฆ1ment:hedยฆverty:orยฆength:ongยฆeat:otยฆpth:epยฆiness:y",rev:"",ex:"5:forceful,humorousยฆ8:charismaticยฆ13:understandingยฆ5ity:activeยฆ11ness:adventurous,inquisitive,resourcefulยฆ8on:aggressive,automatic,perceptiveยฆ7ness:amorous,fatuous,furtive,ominous,seriousยฆ5ness:ample,sweetยฆ12ness:apprehensive,cantankerous,contemptuous,ostentatiousยฆ13ness:argumentative,conscientiousยฆ9ness:assertive,facetious,imperious,inventive,oblivious,rapacious,receptive,seditious,whimsicalยฆ10ness:attractive,expressive,impressive,loquacious,salubrious,thoughtfulยฆ3edom:boringยฆ4ness:calm,fast,keen,tameยฆ8ness:cheerful,gracious,specious,spurious,timorous,unctuousยฆ5sity:curiousยฆ9ion:deliberateยฆ8ion:desperateยฆ6e:expensiveยฆ7ce:fragrantยฆ3y:furiousยฆ9ility:ineluctableยฆ6ism:mysticalยฆ8ity:physical,proactive,sensitive,verticalยฆ5cy:pliantยฆ7ity:positiveยฆ9ity:practicalยฆ12ism:professionalยฆ6ce:prudentยฆ3ness:redยฆ6cy:vagrantยฆ3dom:wise"};var ws=function(e="",t={}){let n=function(e,t={}){return t.hasOwnProperty(e)?t[e]:null}(e,t.ex);return n=n||function(e,t=[]){for(let n=0;n=1;a-=1){let r=e.length-a,o=e.substring(r,e.length);if(!0===t.hasOwnProperty(o))return e.slice(0,r)+t[o];if(!0===n.hasOwnProperty(o))return e.slice(0,r)+n[o]}return t.hasOwnProperty("")?e+t[""]:n.hasOwnProperty("")?e+n[""]:null}(e,t.fwd,t.both),n=n||e,n};const ks=function(e){return Object.entries(e).reduce(((e,t)=>(e[t[1]]=t[0],e)),{})};var Ps=function(e={}){return{reversed:!0,both:ks(e.both),ex:ks(e.ex),fwd:e.rev||{}}};const As=/^([0-9]+)/,Cs=function(e){let t=function(e){let t={};return e.split("ยฆ").forEach((e=>{let[n,a]=e.split(":");a=(a||"").split(","),a.forEach((e=>{t[e]=n}))})),t}(e);return Object.keys(t).reduce(((e,n)=>(e[n]=function(e="",t=""){let n=(t=String(t)).match(As);if(null===n)return t;let a=Number(n[1])||0;return e.substring(0,a)+t.replace(As,"")}(n,t[n]),e)),{})};var js=function(e={}){return"string"==typeof e&&(e=JSON.parse(e)),e.fwd=Cs(e.fwd||""),e.both=Cs(e.both||""),e.rev=Cs(e.rev||""),e.ex=Cs(e.ex||""),e};const Ns=js({fwd:"1:tted,wed,gged,nned,een,rred,pped,yed,bbed,oed,dded,rd,wn,mmedยฆ2:eed,nded,et,hted,st,oled,ut,emed,eled,lded,ken,rt,nked,apt,ant,eped,ekedยฆ3:eared,eat,eaded,nelled,ealt,eeded,ooted,eaked,eaned,eeted,mited,bid,uit,ead,uited,ealed,geted,velled,ialed,belledยฆ4:ebuted,hined,comedยฆy:iedยฆome:ameยฆear:oreยฆind:oundยฆing:ung,angยฆep:ptยฆink:ank,unkยฆig:ugยฆall:ellยฆee:awยฆive:aveยฆeeze:ozeยฆold:eldยฆave:ftยฆake:ookยฆell:oldยฆite:oteยฆide:odeยฆine:oneยฆin:un,onยฆeal:oleยฆim:amยฆie:ayยฆand:oodยฆ1ise:roseยฆ1eak:rokeยฆ1ing:roughtยฆ1ive:roveยฆ1el:eltยฆ1id:badeยฆ1et:gotยฆ1y:aidยฆ1it:satยฆ3e:lidยฆ3d:pent",both:"1:aed,fed,xed,hedยฆ2:sged,xted,wled,rped,lked,kied,lmed,lped,uped,bted,rbed,rked,wned,rled,mped,fted,mned,mbed,zzed,omed,ened,cked,gned,lted,sked,ued,zed,nted,ered,rted,rmed,ced,sted,rned,ssed,rded,pted,ved,ctedยฆ3:cled,eined,siped,ooned,uked,ymed,jored,ouded,ioted,oaned,lged,asped,iged,mured,oided,eiled,yped,taled,moned,yled,lit,kled,oaked,gled,naled,fled,uined,oared,valled,koned,soned,aided,obed,ibed,meted,nicked,rored,micked,keted,vred,ooped,oaded,rited,aired,auled,filled,ouled,ooded,ceted,tolled,oited,bited,aped,tled,vored,dled,eamed,nsed,rsed,sited,owded,pled,sored,rged,osed,pelled,oured,psed,oated,loned,aimed,illed,eured,tred,ioned,celled,bled,wsed,ooked,oiled,itzed,iked,iased,onged,ased,ailed,uned,umed,ained,auded,nulled,ysed,eged,ised,aged,oined,ated,used,dged,donedยฆ4:ntied,efited,uaked,caded,fired,roped,halled,roked,himed,culed,tared,lared,tuted,uared,routed,pited,naked,miled,houted,helled,hared,cored,caled,tired,peated,futed,ciled,called,tined,moted,filed,sided,poned,iloted,honed,lleted,huted,ruled,cured,named,preted,vaded,sured,talled,haled,peded,gined,nited,uided,ramed,feited,laked,gured,ctored,unged,pired,cuted,voked,eloped,ralled,rined,coded,icited,vided,uaded,voted,mined,sired,noted,lined,nselled,luted,jured,fided,puted,piled,pared,olored,cided,hoked,enged,tured,geoned,cotted,lamed,uiled,waited,udited,anged,luded,mired,uired,radedยฆ5:modelled,izzled,eleted,umpeted,ailored,rseded,treated,eduled,ecited,rammed,eceded,atrolled,nitored,basted,twined,itialled,ncited,gnored,ploded,xcited,nrolled,namelled,plored,efeated,redited,ntrolled,nfined,pleted,llided,lcined,eathed,ibuted,lloted,dhered,ccededยฆ3ad:sledยฆ2aw:drewยฆ2ot:hotยฆ2ke:madeยฆ2ow:hrew,grewยฆ2ose:hoseยฆ2d:iltยฆ2in:eganยฆ1un:ranยฆ1ink:houghtยฆ1ick:tuckยฆ1ike:ruckยฆ1eak:poke,nuckยฆ1it:patยฆ1o:didยฆ1ow:newยฆ1ake:wokeยฆgo:went",rev:"3:rst,hed,hut,cut,setยฆ4:tbidยฆ5:dcast,eread,pread,erbidยฆought:uy,eekยฆ1ied:ny,ly,dy,ry,fy,py,vy,by,ty,cyยฆ1ung:ling,ting,wingยฆ1pt:eepยฆ1ank:rinkยฆ1ore:bear,wearยฆ1ave:giveยฆ1oze:reezeยฆ1ound:rind,windยฆ1ook:take,hakeยฆ1aw:seeยฆ1old:sellยฆ1ote:riteยฆ1ole:tealยฆ1unk:tinkยฆ1am:wimยฆ1ay:lieยฆ1ood:tandยฆ1eld:holdยฆ2d:he,ge,re,le,leed,ne,reed,be,ye,lee,pe,weยฆ2ed:dd,oy,or,ey,gg,rr,us,ew,toยฆ2ame:ecome,rcomeยฆ2ped:apยฆ2ged:ag,og,ug,egยฆ2bed:ub,ab,ib,obยฆ2lt:neelยฆ2id:payยฆ2ang:pringยฆ2ove:triveยฆ2med:umยฆ2ode:rrideยฆ2at:ysitยฆ3ted:mit,hat,mat,lat,pot,rot,batยฆ3ed:low,end,tow,und,ond,eem,lay,cho,dow,xit,eld,ald,uld,law,lel,eat,oll,ray,ank,fin,oam,out,how,iek,tay,haw,ait,vet,say,cay,bowยฆ3d:ste,ede,ode,ete,ree,ude,ame,oke,ote,ime,ute,adeยฆ3red:lur,cur,pur,carยฆ3ped:hop,rop,uip,rip,lip,tep,topยฆ3ded:bed,rod,kidยฆ3ade:orbidยฆ3led:uelยฆ3ned:lan,can,kin,pan,tunยฆ3med:rim,limยฆ4ted:quit,llotยฆ4ed:pear,rrow,rand,lean,mand,anel,pand,reet,link,abel,evel,imit,ceed,ruit,mind,peal,veal,hool,head,pell,well,mell,uell,band,hear,weakยฆ4led:nnel,qual,ebel,ivelยฆ4red:nfer,efer,sferยฆ4n:sake,trewยฆ4d:nteeยฆ4ded:hredยฆ4ned:rpinยฆ5ed:light,nceal,right,ndear,arget,hread,eight,rtial,ebootยฆ5d:edite,nviteยฆ5ted:egretยฆ5led:ravel",ex:"2:been,uppedยฆ3:added,aged,aided,aimed,aired,bid,died,dyed,egged,erred,eyed,fit,gassed,hit,lied,owed,pent,pied,tied,used,vied,oiled,outed,banned,barred,bet,canned,cut,dipped,donned,ended,feed,inked,jarred,let,manned,mowed,netted,padded,panned,pitted,popped,potted,put,set,sewn,sowed,tanned,tipped,topped,vowed,weed,bowed,jammed,binned,dimmed,hopped,mopped,nodded,pinned,rigged,sinned,towed,vettedยฆ4:ached,baked,baled,boned,bored,called,caned,cared,ceded,cited,coded,cored,cubed,cured,dared,dined,edited,exited,faked,fared,filed,fined,fired,fuelled,gamed,gelled,hired,hoped,joked,lined,mined,named,noted,piled,poked,polled,pored,pulled,reaped,roamed,rolled,ruled,seated,shed,sided,timed,tolled,toned,voted,waited,walled,waned,winged,wiped,wired,zoned,yelled,tamed,lubed,roped,faded,mired,caked,honed,banged,culled,heated,raked,welled,banded,beat,cast,cooled,cost,dealt,feared,folded,footed,handed,headed,heard,hurt,knitted,landed,leaked,leapt,linked,meant,minded,molded,neared,needed,peaked,plodded,plotted,pooled,quit,read,rooted,sealed,seeded,seeped,shipped,shunned,skimmed,slammed,sparred,stemmed,stirred,suited,thinned,twinned,swayed,winked,dialed,abutted,blotted,fretted,healed,heeded,peeled,reeledยฆ5:basted,cheated,equalled,eroded,exiled,focused,opined,pleated,primed,quoted,scouted,shored,sloped,smoked,sniped,spelled,spouted,routed,staked,stored,swelled,tasted,treated,wasted,smelled,dwelled,honored,prided,quelled,eloped,scared,coveted,sweated,breaded,cleared,debuted,deterred,freaked,modeled,pleaded,rebutted,speededยฆ6:anchored,defined,endured,impaled,invited,refined,revered,strolled,cringed,recast,thrust,unfoldedยฆ7:authored,combined,competed,conceded,convened,excreted,extruded,redefined,restored,secreted,rescinded,welcomedยฆ8:expedited,infringedยฆ9:interfered,intervened,perseveredยฆ10:contravenedยฆeat:ateยฆis:wasยฆgo:wentยฆare:wereยฆ3d:bent,lent,rent,sentยฆ3e:bit,fled,hid,lostยฆ3ed:bled,bredยฆ2ow:blew,grewยฆ1uy:boughtยฆ2tch:caughtยฆ1o:didยฆ1ive:dove,gaveยฆ2aw:drewยฆ2ed:fedยฆ2y:flew,laid,paid,saidยฆ1ight:foughtยฆ1et:gotยฆ2ve:hadยฆ1ang:hungยฆ2ad:ledยฆ2ght:litยฆ2ke:madeยฆ2et:metยฆ1un:ranยฆ1ise:roseยฆ1it:satยฆ1eek:soughtยฆ1each:taughtยฆ1ake:woke,tookยฆ1eave:woveยฆ2ise:aroseยฆ1ear:bore,tore,woreยฆ1ind:bound,found,woundยฆ2eak:brokeยฆ2ing:brought,wrungยฆ1ome:cameยฆ2ive:droveยฆ1ig:dugยฆ1all:fellยฆ2el:feltยฆ4et:forgotยฆ1old:heldยฆ2ave:leftยฆ1ing:rang,sangยฆ1ide:rodeยฆ1ink:sankยฆ1ee:sawยฆ2ine:shoneยฆ4e:slidยฆ1ell:sold,toldยฆ4d:spentยฆ2in:spunยฆ1in:won"}),Is=js(bs),Ds=js(ps),Hs=js(fs),Gs=Ps(Ns),xs=Ps(Is),Ts=Ps(Ds),Es=Ps(Hs),Fs=js(ms),Os=js(vs);var zs={fromPast:Ns,fromPresent:Is,fromGerund:Ds,fromParticiple:Hs,toPast:Gs,toPresent:xs,toGerund:Ts,toParticiple:Es,toComparative:Fs,toSuperlative:Os,fromComparative:Ps(Fs),fromSuperlative:Ps(Os),adjToNoun:js(ys)},Vs=["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","faction","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","politburo","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","subsidiary","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce(((e,t)=>(e[t]=!0,e)),{}),Bs=["atoll","basin","bay","beach","bluff","bog","camp","canyon","canyons","cape","cave","caves","cliffs","coast","cove","coves","crater","creek","desert","dune","dunes","escarpment","estuary","falls","fjord","fjords","forest","forests","glacier","gorge","gorges","gulf","gully","highland","hill","hills","inlet","island","islands","isthmus","knoll","lagoon","lake","marsh","marshes","mount","mountain","mountains","narrows","peninsula","plains","plateau","pond","rapids","ravine","reef","reefs","ridge","river","rivers","sandhill","shoal","shore","shoreline","shores","strait","straits","stream","swamp","tombolo","trail","trails","trench","valley","vallies","volcano","waterfall","watershed","wetland","woods","burough","county","district","municipality","prefecture","province","region","reservation","state","territory","borough","metropolis","downtown","uptown","midtown","city","town","township","hamlet","country","kingdom","enclave","neighbourhood","neighborhood","kingdom","ward","zone","airport","amphitheater","arch","arena","auditorium","bar","barn","basilica","battlefield","bridge","building","castle","centre","coliseum","cineplex","complex","dam","farm","field","fort","garden","gardens","gymnasium","hall","house","levee","library","memorial","monument","museum","gallery","palace","pillar","pits","plantation","playhouse","quarry","sportsfield","sportsplex","stadium","terrace","terraces","theater","tower","park","parks","site","raceway","sportsplex","st","street","rd","road","crescent","cr","way","tr","terrace","avenue","ave"].reduce(((e,t)=>(e[t]=!0,e)),{}),Ss=[[/([^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"],[/(..ase)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 Ks=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(Ms[t].forEach((n=>e[n]=t)),e)),{});var Ls=Ms;var Js=function(e){let t=e.substring(e.length-3);if(!0===Ls.hasOwnProperty(t))return Ls[t];let n=e.substring(e.length-2);return!0===Ls.hasOwnProperty(n)?Ls[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const Ws={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var Us=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=Js(e)),Ws.hasOwnProperty(e))c=Ws[e];else if("Participle"===n)c=ws(l,i);else if("PastTense"===n)c=ws(l,a);else if("PresentTense"===n)c=ws(l,r);else{if("Gerund"!==n)return e;c=ws(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c};var qs=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:i,PastTense:ws(i,n),PresentTense:ws(i,a),Gerund:ws(i,r),FutureTense:"will "+i},u=ws(i,o);if(u!==e&&u!==l.PastTense){let n=t.one.lexicon||{};"Participle"!==n[u]&&"Adjective"!==n[u]||("play"===e&&(u="played"),l.Participle=u)}return s&&Object.keys(l).forEach((e=>{l[e]+=" "+s})),l};var Rs={toInfinitive:Us,conjugate:qs,all:function(e,t){let n=qs(e,t);return delete n.FutureTense,Object.values(n).filter((e=>e))}};const Qs=function(e,t){const n=t.two.models.toSuperlative;return ws(e,n)},Zs=function(e,t){const n=t.two.models.toComparative;return ws(e,n)};var _s=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 Xs="ically",Ys=new Set(["analyt"+Xs,"chem"+Xs,"class"+Xs,"clin"+Xs,"crit"+Xs,"ecolog"+Xs,"electr"+Xs,"empir"+Xs,"frant"+Xs,"grammat"+Xs,"ident"+Xs,"ideolog"+Xs,"log"+Xs,"mag"+Xs,"mathemat"+Xs,"mechan"+Xs,"med"+Xs,"method"+Xs,"method"+Xs,"mus"+Xs,"phys"+Xs,"phys"+Xs,"polit"+Xs,"pract"+Xs,"rad"+Xs,"satir"+Xs,"statist"+Xs,"techn"+Xs,"technolog"+Xs,"theoret"+Xs,"typ"+Xs,"vert"+Xs,"whims"+Xs]),el=[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"}],tl=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"]),nl={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"quick",superbly:"superb",cynically:"cynical",well:"good"};const al=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],rl={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var ol=function(e){if(rl.hasOwnProperty(e))return rl[e];let t=_s(e,al);return t||(t=e+"ly"),t};var il={toSuperlative:Qs,toComparative:Zs,toAdverb:ol,toNoun:function(e,t){const n=t.two.models.adjToNoun;return ws(e,n)},fromAdverb:function(e){return e.endsWith("ly")?Ys.has(e)?e.replace(/ically/,"ical"):tl.has(e)?null:nl.hasOwnProperty(e)?nl[e]:_s(e,el)||e:null},fromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return ws(e,n)},fromComparative:function(e,t){const n=t.two.models.fromComparative;return ws(e,n)},all:function(e,t){let n=[e];return n.push(Qs(e,t)),n.push(Zs(e,t)),n.push(ol(e)),n=n.filter((e=>e)),n=new Set(n),Array.from(n)}},sl={noun:$s,verb:Rs,adjective:il},ll={Singular:(e,t,n,a)=>{let r=a.one.lexicon,o=n.two.transform.noun.toPlural(e,a);r[o]||(t[o]=t[o]||"Plural")},Actor:(e,t,n,a)=>{let r=a.one.lexicon,o=n.two.transform.noun.toPlural(e,a);r[o]||(t[o]=t[o]||["Plural","Actor"])},Comparable:(e,t,n,a)=>{let r=a.one.lexicon,{toSuperlative:o,toComparative:i}=n.two.transform.adjective,s=o(e,a);r[s]||(t[s]=t[s]||"Superlative");let l=i(e,a);r[l]||(t[l]=t[l]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,a)=>{let r=n.two.transform.noun.toPlural(e,a);t[r]=t[r]||["Demonym","Plural"]},Infinitive:(e,t,n,a)=>{let r=a.one.lexicon,o=n.two.transform.verb.conjugate(e,a);Object.entries(o).forEach((e=>{r[e[1]]||t[e[1]]||"FutureTense"===e[0]||(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.verb.conjugate(i,a);delete l.FutureTense,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]]=2;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"]},Place:(e,t)=>{t[e]=["Place","ProperNoun"]},Region:(e,t)=>{t[e]=["Region","ProperNoun"]}};var ul=function(e,t){const{methods:n,model:a}=t;let r={},o={};return Object.keys(e).forEach((t=>{let i=e[t],s=(t=(t=t.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);s.length>1&&(void 0===o[s[0]]||s.length>o[s[0]])&&(o[s[0]]=s.length),!0===ll.hasOwnProperty(i)&&ll[i](t,r,n,a),r[t]=r[t]||i})),delete r[""],delete r.null,delete r[" "],{lex:r,_multi:o}};var cl=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]){let n=e[t-1];if(n.tags.has("Date")||r.has(n.normal))return!1;if(n.tags.has("Adjective")||a.tags.has("Adjective"))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)})),ae.endsWith(t))):"s"===t&&!gl.find((t=>e.endsWith(t)))},pl={two:{quickSplit:cl,expandLexicon:ul,transform:sl,looksPlural:ml}};var fl=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};let bl={one:{lexicon:{}},two:{models:zs}};const vl={"Actor|Verb":"Actor","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":"FirstName","Person|Place":"Person","Person|Adj":"Comparative","Plural|Verb":"Plural","Unit|Noun":"Noun"},yl=function(e,t){const n={model:t,methods:pl};let{lex:a,_multi:r}=pl.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,a),Object.assign(t.one._multiCache,r),t},wl=function(e,t,n){let a=qs(e,bl);t[a.PastTense]=t[a.PastTense]||"PastTense",t[a.Gerund]=t[a.Gerund]||"Gerund",!0===n&&(t[a.PresentTense]=t[a.PresentTense]||"PresentTense")},kl=function(e,t,n){let a=Qs(e,n);t[a]=t[a]||"Superlative";let r=Zs(e,n);t[r]=t[r]||"Comparative"},Pl=function(e,t){let n={};const a=t.one.lexicon;return Object.keys(e).forEach((r=>{const o=e[r];if(n[r]=vl[o],"Noun|Verb"!==o&&"Person|Verb"!==o&&"Actor|Verb"!==o||wl(r,a,!1),"Adj|Present"===o&&(wl(r,a,!0),kl(r,a,t)),"Person|Adj"===o&&kl(r,a,t),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=Us(r,bl,"Gerund");a[e]||(n[e]="Infinitive")}if("Noun|Gerund"!==o&&"Adj|Noun"!==o&&"Person|Noun"!==o||function(e,t,n){let a=Jo(e,n);t[a]=t[a]||"Plural"}(r,a,t),"Adj|Past"===o){let e=Us(r,bl,"PastTense");a[e]||(n[e]="Infinitive")}})),t=yl(n,t)};var Al=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=yl(e.one.lexicon,e)).one.lexicon,e),e=Pl(e.two.switches,e),e=fl(e)};let Cl={one:{_multiCache:{},lexicon:Uo,frozenLex:{"20th century fox":"Organization","7 eleven":"Organization","motel 6":"Organization","excuse me":"Expression","financial times":"Organization","guns n roses":"Organization","la z boy":"Organization","labour party":"Organization","new kids on the block":"Organization","new york times":"Organization","the guess who":"Organization","thin lizzy":"Organization","prime minister":"Actor","free market":"Singular","lay up":"Singular","living room":"Singular","living rooms":"Plural","spin off":"Singular","appeal court":"Uncountable","cold war":"Uncountable","gene pool":"Uncountable","machine learning":"Uncountable","nail polish":"Uncountable","time off":"Uncountable","take part":"Infinitive","bill gates":"Person","doctor who":"Person","dr who":"Person","he man":"Person","iron man":"Person","kid cudi":"Person","run dmc":"Person","rush limbaugh":"Person","snow white":"Person","tiger woods":"Person","brand new":"Adjective","en route":"Adjective","left wing":"Adjective","off guard":"Adjective","on board":"Adjective","part time":"Adjective","right wing":"Adjective","so called":"Adjective","spot on":"Adjective","straight forward":"Adjective","super duper":"Adjective","tip top":"Adjective","top notch":"Adjective","up to date":"Adjective","win win":"Adjective","brooklyn nets":"SportsTeam","chicago bears":"SportsTeam","houston astros":"SportsTeam","houston dynamo":"SportsTeam","houston rockets":"SportsTeam","houston texans":"SportsTeam","minnesota twins":"SportsTeam","orlando magic":"SportsTeam","san antonio spurs":"SportsTeam","san diego chargers":"SportsTeam","san diego padres":"SportsTeam","iron maiden":"ProperNoun","isle of man":"Country","united states":"Country","united states of america":"Country","prince edward island":"Region","cedar breaks":"Place","cedar falls":"Place","point blank":"Adverb","tiny bit":"Adverb","by the time":"Conjunction","no matter":"Conjunction","civil wars":"Plural","credit cards":"Plural","default rates":"Plural","free markets":"Plural","head starts":"Plural","home runs":"Plural","lay ups":"Plural","phone calls":"Plural","press releases":"Plural","record labels":"Plural","soft serves":"Plural","student loans":"Plural","tax returns":"Plural","tv shows":"Plural","video games":"Plural","took part":"PastTense","takes part":"PresentTense","taking part":"Gerund","taken part":"Participle","light bulb":"Noun","rush hour":"Noun","fluid ounce":"Unit","the rolling stones":"Organization"}},two:{irregularPlurals:xo,models:zs,suffixPatterns:Ri,prefixPatterns:Xi,endsWith:cs,neighbours:gs,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'[a-z]{3}/,"LastName","mc'neil"],[/^o'[a-z]{3}/,"LastName","o'connor"],[/^ma?cd[aeiou][a-z]{3}/,"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]{4}|[0-9]{2})$/,"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})$/,"NumericValue","9km"]],switches:qo,clues:Ei,uncountable:{},orgWords:Vs,placeWords:Bs}};Cl=Al(Cl);var jl=Cl;var Nl=function(e,t,n,a){const r=a.methods.one.setTag;if(0===t&&e.length>=3){const t=/:/;if(e[0].post.match(t)){let t=e[1];if(t.tags.has("Value")||t.tags.has("Email")||t.tags.has("PhoneNumber"))return;r([e[0]],"Expression",a,null,"2-punct-colon''")}}};var Il=function(e,t,n,a){const r=a.methods.one.setTag;"-"===e[t].post&&e[t+1]&&r([e[t],e[t+1]],"Hyphenated",a,null,"1-punct-hyphen''")};const Dl=/^(under|over|mis|re|un|dis|semi)-?/;var Hl=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(Dl.test(r.normal)){let e=r.normal.replace(Dl,"");e.length>3&&a.hasOwnProperty(e)&&(r.switch=a[e])}};var Gl=function(e,t,n){if(!t||0===t.length)return;if(!0===e.frozen)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 xl=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific","Month"];var Tl=function(e,t,n){let a=e[t],r=Array.from(a.tags);for(let e=0;ee.tags.has(t)))||(ml(e.normal)?Gl(e,"Plural","3-plural-guess"):Gl(e,"Singular","3-singular-guess"))}(a),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=Js(e.normal);t&&Gl(e,t,"3-verb-tense-guess")}}(a)};const El=/^\p{Lu}[\p{Ll}'โ€™]/u,Fl=/[0-9]/,Ol=["Date","Month","WeekDay","Unit","Expression"],zl=/[IVX]/,Vl=/^[IVXLCDM]{2,}$/,Bl=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,Sl={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var Kl=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===El.test(o)&&!1===Fl.test(o)?Ol.find((e=>a.tags.has(e)))||a.pre.match(/["']$/)||"the"===a.normal?null:(Tl(e,t,n),a.tags.has("Noun")||a.frozen||a.tags.clear(),Gl(a,"ProperNoun","2-titlecase"),!0):o.length>=2&&Vl.test(o)&&zl.test(o)&&Bl.test(o)&&!Sl[a.normal]?(Gl(a,"RomanNumeral","2-xvii"),!0):null};const $l=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 Ml=function(e,t,n){let a=e[t];if(0===a.tags.size){let e=$l(a.normal,n.two.suffixPatterns);if(null!==e)return Gl(a,e,"2-suffix"),a.confidence=.7,!0;if(a.implicit&&(e=$l(a.implicit,n.two.suffixPatterns),null!==e))return Gl(a,e,"2-implicit-suffix"),a.confidence=.7,!0}return null};const Ll=/['โ€˜โ€™โ€›โ€ตโ€ฒ`ยด]/,Jl=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 Gl(a,e,"2-prefix"),a.confidence=.5,!0}return null};const ql=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"]),Rl=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!ql.has(t)||(!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun"))},Ql=function(e){return!!e&&(!!e.tags.has("Ordinal")||(!!(e.tags.has("Cardinal")&&e.normal.length<3)||("is"===e.normal||"was"===e.normal)))},Zl=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var _l=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(Rl(r)||Rl(o))return Gl(n,"Year","2-tagYear");if(a>=1920&&a<2025){if(Ql(r)||Ql(o))return Gl(n,"Year","2-tagYear-close");if(Zl(e[t-2])||Zl(e[t+2]))return Gl(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 Gl(n,"Year","2-tagYear-noun")}}}return null};var Xl=function(e,t,n,a){const r=a.methods.one.setTag,o=e[t],i=["PastTense","PresentTense","Auxiliary","Modal","Particle"];if(o.tags.has("Verb")){i.find((e=>o.tags.has(e)))||r([o],"Infinitive",a,null,"2-verb-type''")}};const Yl=/^[A-Z]('s|,)?$/,eu=/^[A-Z-]+$/,tu=/^[A-Z]+s$/,nu=/([A-Z]\.)+[A-Z]?,?$/,au=/[A-Z]{2,}('s|,)?$/,ru=/([a-z]\.)+[a-z]\.?$/,ou={I:!0,A:!0},iu={la:!0,ny:!0,us:!0,dc:!0,gb:!0};var su=function(e,t,n){let a=e[t];return a.tags.has("RomanNumeral")||a.tags.has("Acronym")||a.frozen?null:function(e,t){let n=e.text;if(!1===eu.test(n)){if(!(n.length>3&&!0===tu.test(n)))return!1;n=n.replace(/s$/,"")}return!(n.length>5||ou.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==nu.test(n)&&!0!==ru.test(n)&&!0!==Yl.test(n)&&!0!==au.test(n))}(a,n)?(a.tags.clear(),Gl(a,["Acronym","Noun"],"3-no-period-acronym"),!0===iu[a.normal]&&Gl(a,"Place","3-place-acronym"),!0===tu.test(a.text)&&Gl(a,"Plural","3-plural-acronym"),!0):!ou.hasOwnProperty(a.text)&&Yl.test(a.text)?(a.tags.clear(),Gl(a,["Acronym","Noun"],"3-one-letter-acronym"),!0):a.tags.has("Organization")&&a.text.length<=3?(Gl(a,"Acronym","3-org-acronym"),!0):a.tags.has("Organization")&&eu.test(a.text)&&a.text.length<=6?(Gl(a,"Acronym","3-titlecase-acronym"),!0):null};const lu=function(e,t){if(!e)return null;let n=t.find((t=>e.normal===t[0]));return n?n[1]:null},uu=function(e,t){if(!e)return null;let n=t.find((t=>e.tags.has(t[0])));return n?n[1]:null};var cu=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||lu(e[t-1],r),l=l||lu(e[t+1],o),l=l||uu(e[t-1],a),l=l||uu(e[t+1],i),l)return Gl(s,l,"3-[neighbour]"),Tl(e,t,n),e[t].confidence=.2,!0}return null};const du=function(e,t,n){return!!e&&(!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||!(n||(a=e.text,!/^\p{Lu}[\p{Ll}'โ€™]/u.test(a)))&&(0!==t||e.tags.has("Singular"))));var a};var hu=function(e,t,n,a){const r=n.model.two.orgWords,o=n.methods.one.setTag;let i=e[t];if(!0===r[i.machine||i.normal]&&du(e[t-1],t-1,a)){o([e[t]],"Organization",n,null,"3-[org-word]");for(let r=t;r>=0&&du(e[r],r,a);r-=1)o([e[r]],"Organization",n,null,"3-[org-word]")}return null};const gu=/'s$/,mu=new Set(["athletic","city","community","eastern","federal","financial","great","historic","historical","local","memorial","municipal","national","northern","provincial","southern","state","western"]),pu=new Set(["center","centre","way","range","bar","bridge","field","pit"]),fu=function(e,t,n){if(!e)return!1;let a=e.tags;return!(a.has("Organization")||a.has("Possessive")||gu.test(e.normal))&&(!(!a.has("ProperNoun")&&!a.has("Place"))||!(n||(r=e.text,!/^\p{Lu}[\p{Ll}'โ€™]/u.test(r)))&&(0!==t||a.has("Singular")));var r};var bu=function(e,t,n,a){const r=n.model.two.placeWords,o=n.methods.one.setTag;let i=e[t],s=i.machine||i.normal;if(!0===r[s]){for(let r=t-1;r>=0;r-=1)if(!mu.has(e[r].normal)){if(!fu(e[r],r,a))break;o(e.slice(r,t+1),"Place",n,null,"3-[place-of-foo]")}if(pu.has(s))return!1;for(let r=t+1;re[t].tags.has("ProperNoun")&&yu.test(e[t].text)?"Noun":null,ku=(e,t,n)=>0!==t||e[1]?null:n,Pu={"Adj|Gerund":(e,t)=>wu(e,t),"Adj|Noun":(e,t)=>wu(e,t)||function(e,t){return!e[t+1]&&e[t-1]&&e[t-1].tags.has("Determiner")?"Noun":null}(e,t),"Actor|Verb":(e,t)=>wu(e,t),"Adj|Past":(e,t)=>wu(e,t),"Adj|Present":(e,t)=>wu(e,t),"Noun|Gerund":(e,t)=>wu(e,t),"Noun|Verb":(e,t)=>t>0&&wu(e,t)||ku(e,t,"Infinitive"),"Plural|Verb":(e,t)=>wu(e,t)||ku(e,t,"PresentTense")||function(e,t,n){return 0===t&&e.length>3?n:null}(e,t,"Plural"),"Person|Noun":(e,t)=>wu(e,t),"Person|Verb":(e,t)=>0!==t?wu(e,t):null,"Person|Adj":(e,t)=>0===t&&e.length>1||wu(e,t)?"Person":null};var Au=Pu;const Cu="undefined"!=typeof process&&process.env?process.env:self.env||{},ju=/^(under|over|mis|re|un|dis|semi)-?/,Nu=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit,a=null;return t.hasOwnProperty(n)&&(a=t[n]),a&&Cu.DEBUG_TAGS&&console.log(`\n  โ†“ - '${n}' `),a},Iu=(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)),r=a.find((e=>t[e]));return r&&Cu.DEBUG_TAGS&&console.log(`  โ†“ - '${e.normal||e.implicit}' (#${r}) `),r=t[r],r};var Du=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(ju.test(l)&&!o[l]&&(l=l.replace(ju,"")),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="also"!==e[t-1]?.text?t-1:Math.max(0,t-2),o=a.one.tagSet;let i=Nu(e[t+1],n.afterWords);return i=i||Nu(e[r],n.beforeWords),i=i||Iu(e[r],n.beforeTags,o),i=i||Iu(e[t+1],n.afterTags,o),i}(e,t,i[o],a);Au[o]&&(u=Au[o](e,t)||u),u?(r([s],u,n,null,`3-[switch] (${o})`),Tl(e,t,a)):Cu.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}};const Hu={there:!0,this:!0,it:!0,him:!0,her:!0,us:!0};var Gu=function(e,t){const n=t.methods.one.setTag,a=t.model.one._multiCache||{};let r=e[0];if(("Noun|Verb"===r.switch||r.tags.has("Infinitive"))&&e.length>=2){if(e.length<4&&!Hu[e[1].normal])return;if(!r.tags.has("PhrasalVerb")&&a.hasOwnProperty(r.normal))return;if(e[1].tags.has("Noun")||e[1].tags.has("Determiner")){e.slice(1,3).some((e=>e.tags.has("Verb")))&&!r.tags.has("#PhrasalVerb")||n([r],"Imperative",t,null,"3-[imperative]")}}};const xu=function(e){if(e.filter((e=>!e.tags.has("ProperNoun"))).length<=3)return!1;const t=/^[a-z]/;return e.every((e=>!t.test(e.text)))},Tu=function(e,t,n,a){for(let r=0;r{Nl(e,0,t,n)}))}(r,n,a);let o=t.two.quickSplit(r);for(let e=0;e{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.noun.toSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(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.verb.toInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromSuperlative(n,t.model)},Adverb:(e,t)=>{const{fromAdverb:n}=t.methods.two.transform.adjective;return n(e.machine||e.normal||e.text)}};var zu=function(e){const t=e.world,n=Object.keys(Ou);e.docs.forEach((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{let t=Ru.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=qu};var Zu=function(e,t,n){let[a,r]=t;n&&0!==n.length&&(n=n.map(((e,t)=>(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[a,r+t],e))),n[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 _u=/'/,Xu=new Set(["been","become"]),Yu=new Set(["what","how","when","if","too"]);let ec=new Set(["too","also","enough"]);var tc=function(e,t){let n=e[t].normal.split(_u)[0];if("let"===n)return[n,"us"];if("there"===n){let a=e[t+1];if(a&&a.tags.has("Plural"))return[n,"are"]}return"has"===((e,t)=>{for(let n=t+1;n{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("i"===n.normal)return["am","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const sc={that:!0,there:!0,let:!0,here:!0,everywhere:!0},lc={in:!0,by:!0,for:!0};let uc=new Set(["too","also","enough","about"]),cc=new Set(["is","are","did","were","could","should","must","had","have"]);var dc=(e,t)=>{let n=e[t];if(sc.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("QuestionWord"))return!1;if("he's"===n.normal||"she's"===n.normal)return!1;let a=e[t+1];if(!a)return!0;if("it's"===n.normal)return!!a.tags.has("#Noun");if("Noun|Gerund"==a.switch){let a=e[t+2];return a?!!a.tags.has("Copula")||("on"===a.normal||a.normal,!1):!(!n.tags.has("Actor")&&!n.tags.has("ProperNoun"))}if(a.tags.has("Verb"))return!!a.tags.has("Infinitive")||!a.tags.has("Gerund")&&!!a.tags.has("PresentTense");if("Adj|Noun"===a.switch){let n=e[t+2];if(!n)return!1;if(cc.has(n.normal))return!0;if(uc.has(n.normal))return!1}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===lc[e[t-1].normal])return!0;if(a.tags.has("Adjective")){let n=e[t+2];if(!n)return!1;if(n.tags.has("Noun")&&!n.tags.has("Pronoun")){let e=a.normal;return"above"!==e&&"below"!==e&&"behind"!==e}return"Noun|Verb"===n.switch}return!!a.tags.has("Value")};const hc=/'/,gc=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(["freeze","lexicon","preTagger","unfreeze"]),function(e){e.forEach(((e,t)=>{e.index&&(e.index[1]=t)}))}(e)},mc={d:(e,t)=>oc(e,t),t:(e,t)=>ic(e,t),s:(e,t,n)=>dc(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,null,"2-contraction"):tc(e,t)},pc=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var fc={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===hc.test(a[o].normal)&&(i=a[o].normal.split(hc)[1]);let s=null;mc.hasOwnProperty(i)&&(s=mc[i](a,o,t)),s&&(s=pc(s,e),Zu(n,[r,o],s),gc(n[r],e,o,s.length))}}))}},bc={compute:fc,api:Qu,hooks:["contractionTwo"]};const vc="(hard|fast|late|early|high|right|deep|close|direct)";const yc="(i|we|they)";let wc=[].concat([{match:"(got|were|was|is|are|am) (#PastTense|#Participle)",tag:"Passive",reason:"got-walked"},{match:"(was|were|is|are|am) being (#PastTense|#Participle)",tag:"Passive",reason:"was-being"},{match:"(had|have|has) been (#PastTense|#Participle)",tag:"Passive",reason:"had-been"},{match:"will be being? (#PastTense|#Participle)",tag:"Passive",reason:"will-be-cleaned"},{match:"#Noun [(#PastTense|#Participle)] by (the|a) #Noun",group:0,tag:"Passive",reason:"suffered-by"}],[{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,notIf:"(all|even)",tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"[#Hyphenated (#Hyphenated && #PastTense)] (#Noun|#Conjunction)",group:0,tag:"Adjective",notIf:"#Adverb",reason:"faith-based"},{match:"[#Hyphenated (#Hyphenated && #Gerund)] (#Noun|#Conjunction)",group:0,tag:"Adjective",notIf:"#Adverb",reason:"self-driving"},{match:"[#PastTense (#Hyphenated && #PhrasalVerb)] (#Noun|#Conjunction)",group:0,tag:"Adjective",reason:"dammed-up"},{match:"(#Hyphenated && #Value) fold",tag:"Adjective",reason:"two-fold"},{match:"must (#Hyphenated && #Infinitive)",tag:"Adjective",reason:"must-win"},{match:"(#Hyphenated && #Infinitive) #Hyphenated",tag:"Adjective",notIf:"#PhrasalVerb",reason:"vacuum-sealed"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"},{match:"[(un|contra|extra|inter|intra|macro|micro|mid|mis|mono|multi|pre|sub|tri|ex)] #Adjective",group:0,tag:["Adjective","Prefix"],reason:"un-skilled"}],[{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:"#Copula [far too] #Adjective",group:0,tag:"Adverb",reason:"far-too"},{match:"#Copula [still] (in|#Gerund|#Adjective)",group:0,tag:"Adverb",reason:"was-still-walking"},{match:`#Plural ${vc}`,tag:"#PresentTense #Adverb",reason:"studies-hard"},{match:`#Verb [${vc}] !#Noun?`,group:0,notIf:"(#Copula|get|got|getting|become|became|becoming|feel|feels|feeling|#Determiner|#Preposition)",tag:"Adverb",reason:"shops-direct"},{match:"[#Plural] a lot",tag:"PresentTense",reason:"studies-a-lot"}],[{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:"#Gerund [#Gerund]",group:0,tag:"Adjective",notIf:"(impersonating|practicing|considering|assuming)",reason:"looking-annoying"},{match:"(looked|look|looks) #Adverb? [%Adj|Gerund%]",group:0,tag:"Adjective",notIf:"(impersonating|practicing|considering|assuming)",reason:"looked-amazing"},{match:"[%Adj|Gerund%] #Determiner",group:0,tag:"Gerund",reason:"developing-a"},{match:"#Possessive [%Adj|Gerund%] #Noun",group:0,tag:"Adjective",reason:"leading-manufacturer"},{match:"%Noun|Gerund% %Adj|Gerund%",tag:"Gerund #Adjective",reason:"meaning-alluring"},{match:"(face|embrace|reveal|stop|start|resume) %Adj|Gerund%",tag:"#PresentTense #Adjective",reason:"face-shocking"},{match:"(are|were) [%Adj|Gerund%] #Plural",group:0,tag:"Adjective",reason:"are-enduring-symbols"}],[{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",notIf:"#Hyphenated",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:"no [#Adjective] #Modal",group:0,tag:"Noun",reason:"no-golden"},{match:"[brand #Gerund?] new",group:0,tag:"Adverb",reason:"brand-new"},{match:"(#Determiner|#Comparative|new|different) [kind]",group:0,tag:"Noun",reason:"some-kind"},{match:"#Possessive [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"her-favourite"},{match:"must && #Hyphenated .",tag:"Adjective",reason:"must-win"},{match:"#Determiner [#Adjective]$",tag:"Noun",notIf:"(this|that|#Comparative|#Superlative)",reason:"the-south"},{match:"(#Noun && #Hyphenated) (#Adjective && #Hyphenated)",tag:"Adjective",notIf:"(this|that|#Comparative|#Superlative)",reason:"company-wide"},{match:"#Determiner [#Adjective] (#Copula|#Determiner)",notIf:"(#Comparative|#Superlative)",group:0,tag:"Noun",reason:"the-poor"},{match:"[%Adj|Noun%] #Noun",notIf:"(#Pronoun|#ProperNoun)",group:0,tag:"Adjective",reason:"stable-foundations"}],[{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,notIf:"(#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] #Comparative",group:0,tag:"Adverb",reason:"even-worse"},{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|bright|slow|fast|backwards|forwards)]",notIf:"#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",notIf:"(getting|becoming|feeling)",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",notIf:"(#PhrasalVerb|#Copula)",reason:"charge-back"},{match:"#Verb [around]",group:0,tag:"Adverb",notIf:"#PhrasalVerb",reason:"send-around"},{match:"[later] #PresentTense",group:0,tag:"Adverb",reason:"later-say"},{match:"#Determiner [well] !#PastTense?",group:0,tag:"Noun",reason:"the-well"},{match:"#Adjective [enough]",group:0,tag:"Adverb",reason:"high-enough"}],[{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) !#Infinitive?",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:"#Value (am|pm)",tag:"Time",reason:"2-am"}],[{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:"(the|any) [more]",group:0,tag:"Singular",reason:"more-noun"},{match:"[more] #Noun",group:0,tag:"Adjective",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Singular",reason:"bit-2"},{match:"a [must]",group:0,tag:"Singular",reason:"must-2"},{match:"(we|us) [all]",group:0,tag:"Noun",reason:"we all"},{match:"due to [#Verb]",group:0,tag:"Noun",reason:"due-to"},{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",notIf:"#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:"(a|an|the) [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",notIf:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,notIf:"#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? [#PresentTense #Particle?]",group:0,tag:"Noun",notIf:"(seem|appear|include|#Gerund|#Copula)",reason:"det-inf"},{match:"#Noun #Actor",tag:"Actor",notIf:"(#Person|#Pronoun)",reason:"thing-doer"},{match:"#Gerund #Actor",tag:"Actor",reason:"gerund-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"[#Noun+] #Actor",group:0,tag:"Actor",notIf:"(#Honorific|#Pronoun|#Possessive)",reason:"air-traffic-controller"},{match:"(urban|cardiac|cardiovascular|respiratory|medical|clinical|visual|graphic|creative|dental|exotic|fine|certified|registered|technical|virtual|professional|amateur|junior|senior|special|pharmaceutical|theoretical)+ #Noun? #Actor",tag:"Actor",reason:"fine-artist"},{match:"#Noun+ (coach|chef|king|engineer|fellow|personality|boy|girl|man|woman|master)",tag:"Actor",reason:"dance-coach"},{match:"chief . officer",tag:"Actor",reason:"chief-x-officer"},{match:"chief of #Noun+",tag:"Actor",reason:"chief-of-police"},{match:"senior? vice? president of #Noun+",tag:"Actor",reason:"president-of"},{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:"#Possessive #PresentTense #Particle?",notIf:"(#Gerund|her)",tag:"Noun",reason:"possessive-verb"},{match:"(my|our|their|her|his|its) [(#Plural && #Actor)] #Noun",tag:"Possessive",reason:"my-dads"},{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 [#Verb] and #Noun",group:0,tag:"Noun",reason:"peace-and-flowers"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"},{match:"#Copula the [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"the-premier-university"},{match:"i #Verb [me] #Noun",group:0,tag:"Possessive",reason:"scottish-me"},{match:"[#PresentTense] (music|class|lesson|night|party|festival|league|ceremony)",group:0,tag:"Noun",reason:"dance-music"},{match:"[wit] (me|it)",group:0,tag:"Presposition",reason:"wit-me"},{match:"#PastTense #Possessive [#Verb]",group:0,tag:"Noun",notIf:"(saw|made)",reason:"left-her-boots"},{match:"#Value [%Plural|Verb%]",group:0,tag:"Plural",notIf:"(one|1|a|an)",reason:"35-signs"},{match:"had [#PresentTense]",group:0,tag:"Noun",notIf:"(#Gerund|come|become)",reason:"had-time"},{match:"%Adj|Noun% %Noun|Verb%",tag:"#Adjective #Noun",notIf:"#ProperNoun #Noun",reason:"instant-access"},{match:"#Determiner [%Adj|Noun%] #Conjunction",group:0,tag:"Noun",reason:"a-rep-to"},{match:"#Adjective #Noun [%Plural|Verb%]$",group:0,tag:"Plural",notIf:"#Pronoun",reason:"near-death-experiences"},{match:"#Possessive #Noun [%Plural|Verb%]$",group:0,tag:"Plural",reason:"your-guild-colors"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,ifNo:"#Copula",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",notIf:"(still|even|just)",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"#Copula [(#Gerund|#Activity)] #Copula",group:0,tag:"Gerund",reason:"are-doing-is"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"},{match:"#Singular for [%Noun|Gerund%]",group:0,tag:"Gerund",reason:"noun-for-gerund"},{match:"#Comparative (for|at) [%Noun|Gerund%]",group:0,tag:"Gerund",reason:"better-for-gerund"},{match:"#PresentTense the [#Gerund]",group:0,tag:"Noun",reason:"keep-the-touching"}],[{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 (only|further|just|more|backward) [#Infinitive]",group:0,tag:"Noun",reason:"the-only-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{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,notIf:"from",tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"#Plural 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 #Particle?]",notIf:"(#Copula|#Noun|sure|fun|up)",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",notIf:"#Pronoun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"this [#Plural]",group:0,tag:"PresentTense",notIf:"(#Preposition|#Date)",reason:"this-verbs"},{match:"#Noun that [#Plural]",group:0,tag:"PresentTense",notIf:"(#Preposition|#Pronoun|way)",reason:"voice-that-rocks"},{match:"that [#Plural] to",group:0,tag:"PresentTense",notIf:"#Preposition",reason:"that-leads-to"},{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]",notIf:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",notIf:"better",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",notIf:"(#Copula|better)",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"many-poses"},{match:"#Determiner #Adverb #Adjective [%Noun|Verb%]",group:0,tag:"Noun",notIf:"#Copula",reason:"very-big-dream"},{match:"from #Noun to [%Noun|Verb%]",group:0,tag:"Noun",reason:"start-to-finish"},{match:"(for|with|of) #Noun (and|or|not) [%Noun|Verb%]",group:0,tag:"Noun",notIf:"#Pronoun",reason:"for-food-and-gas"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",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) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #Particle #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] of",group:0,notIf:"(one|1|#Copula|#Infinitive)",tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",notIf:"#Copula",reason:"our-full-support"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",notIf:"going",reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"},{match:"how to [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"how-to-noun"},{match:"which [%Noun|Verb%] #Noun",group:0,tag:"Infinitive",reason:"which-boost-it"},{match:"#Gerund [%Plural|Verb%]",group:0,tag:"Plural",reason:"asking-questions"},{match:"(ready|available|difficult|hard|easy|made|attempt|try) to [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"ready-to-noun"},{match:"(bring|went|go|drive|run|bike) to [%Noun|Verb%]",group:0,tag:"Noun",reason:"bring-to-noun"},{match:"#Modal #Noun [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"would-you-look"},{match:"#Copula just [#Infinitive]",group:0,tag:"Noun",reason:"is-just-spam"},{match:"^%Noun|Verb% %Plural|Verb%",tag:"Imperative #Plural",reason:"request-copies"},{match:"#Adjective #Plural and [%Plural|Verb%]",group:0,tag:"#Plural",reason:"pickles-and-drinks"},{match:"#Determiner #Year [#Verb]",group:0,tag:"Noun",reason:"the-1968-film"},{match:"#Determiner [#PhrasalVerb #Particle]",group:0,tag:"Noun",reason:"the-break-up"},{match:"#Determiner [%Adj|Noun%] #Noun",group:0,tag:"Adjective",notIf:"(#Pronoun|#Possessive|#ProperNoun)",reason:"the-individual-goals"},{match:"[%Noun|Verb%] or #Infinitive",group:0,tag:"Infinitive",reason:"work-or-prepare"},{match:"to #Infinitive [#PresentTense]",group:0,tag:"Noun",notIf:"(#Gerund|#Copula|help)",reason:"to-give-thanks"},{match:"[#Noun] me",group:0,tag:"Verb",reason:"kills-me"},{match:"%Plural|Verb% %Plural|Verb%",tag:"#PresentTense #Plural",reason:"removes-wrinkles"}],[{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:"a pound",tag:"#Money #Unit",reason:"a-pound"},{match:"#Value (pound|pounds)",tag:"#Money #Unit",reason:"4-pounds"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"},{match:"#Value #Unit [(per|an) (hr|hour|sec|second|min|minute)]",group:0,tag:"Unit",reason:"12-miles-per-second"},{match:"#Value [(square|cubic)] #Unit",group:0,tag:"Unit",reason:"square-miles"},{match:"^[#Value] (#Determiner|#Gerund)",group:0,tag:"Expression",unTag:"Value",reason:"numbered-list"}],[{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(sister|pope|brother|father|aunt|uncle|grandpa|grandfather|grandma) #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",notIf:"#Place",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",notIf:"#Place",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",notIf:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",notIf:"#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:"[(lieutenant|corporal|sergeant|captain|qeen|king|admiral|major|colonel|marshal|president|queen|king)+] #ProperNoun",group:0,tag:"Honorific",reason:"seargeant-john"},{match:"[(private|general|major|rear|prime|field|count|miss)] #Honorific? #Person",group:0,tag:["Honorific","Person"],reason:"ambg-honorifics"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",notIf:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:"Honorific",reason:"his-excellency"},{match:"#Honorific #Actor",tag:"Honorific",reason:"Lieutenant colonel"},{match:"(first|second|third|1st|2nd|3rd) #Actor",tag:"Honorific",reason:"first lady"},{match:"#Person #RomanNumeral",tag:"Person",reason:"louis-IV"}],[{match:"#FirstName #Noun$",tag:". #LastName",notIf:"(#Possessive|#Organization|#Place|#Pronoun|@hasTitleCase)",reason:"firstname-noun"},{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",ifNo:"#Actor"},{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:"#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:"(#FirstName && !#Possessive) [#Singular] #Verb",group:0,safe:!0,tag:"LastName",reason:"jack-layton"},{match:"^[#Singular] #Person #Verb",group:0,safe:!0,tag:"Person",reason:"sherwood-anderson"},{match:"(a|an) [#Person]$",group:0,unTag:"Person",reason:"a-warhol"}],[{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",notIf:"(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:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(have|had) read",tag:"Modal #PastTense",reason:"read-read"},{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:"as #Pronoun [please]",group:0,tag:"Infinitive",reason:"as-we-please"},{match:"[(co|mis|de|inter|intra|pre|re|un|out|under|over|counter)] #Verb",group:0,tag:["Verb","Prefix"],notIf:"(#Copula|#PhrasalVerb)",reason:"co-write"},{match:"#PastTense and [%Adj|Past%]",group:0,tag:"PastTense",reason:"dressed-and-left"},{match:"[%Adj|Past%] and #PastTense",group:0,tag:"PastTense",reason:"dressed-and-left"},{match:"#Copula #Pronoun [%Adj|Past%]",group:0,tag:"Adjective",reason:"is-he-stoked"},{match:"to [%Noun|Verb%] #Preposition",group:0,tag:"Infinitive",reason:"to-dream-of"}],[{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:"#Copula [#Adjective] (well|badly|quickly|slowly)",group:0,tag:"Verb",reason:"done-well"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"},{match:"(seem|feel|seemed|felt) [#PastTense #Particle?]",group:0,tag:"Adjective",reason:"seem-confused"},{match:"a (bit|little|tad) [#PastTense #Particle?]",group:0,tag:"Adjective",reason:"a-bit-confused"},{match:"not be [%Adj|Past% #Particle?]",group:0,tag:"Adjective",reason:"do-not-be-confused"},{match:"#Copula just [%Adj|Past% #Particle?]",group:0,tag:"Adjective",reason:"is-just-right"},{match:"as [#Infinitive] as",group:0,tag:"Adjective",reason:"as-pale-as"},{match:"[%Adj|Past%] and #Adjective",group:0,tag:"Adjective",reason:"faled-and-oppressive"},{match:"or [#PastTense] #Noun",group:0,tag:"Adjective",notIf:"(#Copula|#Pronoun)",reason:"or-heightened-emotion"},{match:"(become|became|becoming|becomes) [#Verb]",group:0,tag:"Adjective",reason:"become-verb"},{match:"#Possessive [#PastTense] #Noun",group:0,tag:"Adjective",reason:"declared-intentions"},{match:"#Copula #Pronoun [%Adj|Present%]",group:0,tag:"Adjective",reason:"is-he-cool"},{match:"#Copula [%Adj|Past%] with",group:0,tag:"Adjective",notIf:"(associated|worn|baked|aged|armed|bound|fried|loaded|mixed|packed|pumped|filled|sealed)",reason:"is-crowded-with"},{match:"#Copula #Adverb? [%Adj|Present%]$",group:0,tag:"Adjective",reason:"was-empty$"}],[{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:"[(#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:"[(been|had|became|came)] #PastTense",group:0,notIf:"#PhrasalVerb",tag:"Auxiliary",reason:"been-told"},{match:"[(being|having|getting)] #Verb",group:0,tag:"Auxiliary",reason:"being-born"},{match:"[be] #Gerund",group:0,tag:"Auxiliary",reason:"be-walking"},{match:"[better] #PresentTense",group:0,tag:"Modal",notIf:"(#Copula|#Gerund)",reason:"better-go"},{match:"even better",tag:"Adverb #Comparative",reason:"even-better"}],[{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)",notIf:"#Copula",tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"#Verb (up|down|in|on|for)$",tag:"PhrasalVerb #Particle",notIf:"#PhrasalVerb",reason:"come-down$"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"#PhrasalVerb (in && #Particle) #Determiner",tag:"#Verb #Preposition #Determiner",unTag:"PhrasalVerb",reason:"work-in-the"},{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:yc,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:yc,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:yc,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",notIf:"(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|a|an|any|each|every|some|more|with|on)",group:0,notIf:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me|there)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^[#Infinitive] (#Adjective|#Adverb)? and #Infinitive",group:0,tag:"Imperative",reason:"call-and-reserve"},{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:"^[#PhrasalVerb #Particle] #Determiner #Noun",group:0,tag:"Imperative",reason:"turn-off-the-light"},{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:"^come #Infinitive",tag:"Imperative",notIf:"on",reason:"come-have"},{match:"^come and? #Infinitive",tag:"Imperative . Imperative",notIf:"#PhrasalVerb",reason:"come-and-have"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[(stay|be|keep)] #Adjective",group:0,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:"[#Infinitive] what .",group:0,tag:"Imperative",reason:"look-what"},{match:"^[#Infinitive] #Gerund",group:0,tag:"Imperative",reason:"keep-playing"},{match:"^[#Infinitive] (to|for|into|toward|here|there)",group:0,tag:"Imperative",reason:"go-to"},{match:"^[#Infinitive] (and|or) #Infinitive",group:0,tag:"Imperative",reason:"inf-and-inf"},{match:"^[%Noun|Verb%] to",group:0,tag:"Imperative",reason:"commit-to"},{match:"^[#Infinitive] #Adjective? #Singular #Singular",group:0,tag:"Imperative",reason:"maintain-eye-contact"},{match:"do not (forget|omit|neglect) to [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-forget"},{match:"^[(ask|wear|pay|look|help|show|watch|act|fix|kill|stop|start|turn|try|win)] #Noun",group:0,tag:"Imperative",reason:"pay-attention"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"},{match:"#Gerund [#Gerund] #Plural",group:0,tag:"Adjective",reason:"hard-working-fam"}],[{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:"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:"[right] (before|after|in|into|to|toward)",group:0,tag:"#Adverb",reason:"right-into"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"(are|#Modal|see|do|for) [ya]",group:0,tag:"Pronoun",reason:"are-ya"},{match:"[long live] .",group:0,tag:"#Adjective #Infinitive",reason:"long-live"},{match:"[plenty] of",group:0,tag:"#Uncountable",reason:"plenty-of"},{match:"(always|nearly|barely|practically) [there]",group:0,tag:"Adjective",reason:"always-there"},{match:"[there] (#Adverb|#Pronoun)? #Copula",group:0,tag:"There",reason:"there-is"},{match:"#Copula [there] .",group:0,tag:"There",reason:"is-there"},{match:"#Modal #Adverb? [there]",group:0,tag:"There",reason:"should-there"},{match:"^[do] (you|we|they)",group:0,tag:"QuestionWord",reason:"do-you"},{match:"^[does] (he|she|it|#ProperNoun)",group:0,tag:"QuestionWord",reason:"does-he"},{match:"#Determiner #Noun+ [who] #Verb",group:0,tag:"Preposition",reason:"the-x-who"},{match:"#Determiner #Noun+ [which] #Verb",group:0,tag:"Preposition",reason:"the-x-which"},{match:"a [while]",group:0,tag:"Noun",reason:"a-while"},{match:"guess who",tag:"#Infinitive #QuestionWord",reason:"guess-who"},{match:"[fucking] !#Verb",group:0,tag:"#Gerund",reason:"f-as-gerund"}],[{match:"university of #Place",tag:"Organization",reason:"university-of-Foo"},{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",notIf:"#FirstName",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:"government of the? [#Place+]",tag:"Organization",reason:"government-of-x"},{match:"(health|school|commerce) board",tag:"Organization",reason:"school-board"},{match:"(nominating|special|conference|executive|steering|central|congressional) committee",tag:"Organization",reason:"special-comittee"},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"},{match:"#Place+ #SportsTeam",tag:"SportsTeam",reason:"place-sportsteam"},{match:"(dc|atlanta|minnesota|manchester|newcastle|sheffield) united",tag:"SportsTeam",reason:"united-sportsteam"},{match:"#Place+ fc",tag:"SportsTeam",reason:"fc-sportsteam"}],[{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+ (cliff|place|range|pit|place|point|room|grounds|ruins)",tag:"Place",reason:"foo-point"},{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:"a #Noun [like] (#Noun|#Determiner)",group:0,tag:"Preposition",reason:"a-noun-like"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Infinitive #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"}],[{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^[(well|so|okay|now)] !#Adjective?",group:0,tag:"Expression",reason:"well-"},{match:"^come on",tag:"Expression",reason:"come-on"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"^(ok|alright|shoot|hell|anyways)",tag:"Expression",reason:"ok-"},{match:"^(say && @hasComma)",tag:"Expression",reason:"say-"},{match:"^(like && @hasComma)",tag:"Expression",reason:"like-"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}]);let kc=null;var Pc={postTagger:function(e){const{world:t}=e,{model:n,methods:a}=t;kc=kc||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(kc),e.uncache(),e.unfreeze(),e},tagger:e=>e.compute(["freeze","lexicon","preTagger","postTagger","unfreeze"])};const Ac={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach((n=>{n.forEach((n=>{t+=1,e+=n.confidence||1}))})),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["tagger"])}},compute:Pc,model:{two:{matches:wc}},hooks:["postTagger"]};var Cc=Ac;var jc=function(e,t){let n=function(e){return Object.keys(e.hooks).filter((e=>!e.startsWith("#")&&!e.startsWith("%")))}(t);if(0===n.length)return e;e._cache||e.cache();let a=e._cache;return e.filter(((e,t)=>n.some((e=>a[t].has(e)))))};var Nc=function(e,t){let n=t;"string"==typeof t&&(n=this.buildNet([{match:t}]));let a=this.tokenize(e),r=jc(a,n);return r.found?(r.compute(["index","tagger"]),r.match(t)):a.none()},Ic={lib:{lazy:Nc}};var Dc=function(e,t){let n=t;return e.forEach((e=>{e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verb.conjugate)(t,e.model);return e.has("#Gerund")?n.Gerund:e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)})),e};var Hc=function(e,t,n){let a=e.split(/ /g).map((e=>e.toLowerCase().trim()));a=a.filter((e=>e)),a=a.map((e=>`{${e}}`)).join(" ");let r=this.match(a);return n&&(r=r.if(n)),r.has("#Verb")?Dc(r,t):r.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.noun.toPlural)(t,e.model));e.replaceWith(n,{possessives:!0})}(r,t):r.has("#Adverb")?function(e,t){const{toAdverb:n}=e.methods.two.transform.adjective;let a=n(t);a&&e.replaceWith(a)}(r,t):r.has("#Adjective")?function(e,t){const{toComparative:n,toSuperlative:a}=e.methods.two.transform.adjective;let r=t;e.has("#Comparative")?r=n(r,e.model):e.has("#Superlative")&&(r=a(r,e.model)),r&&e.replaceWith(r)}(r,t):this};var Gc={api:function(e){e.prototype.swap=Hc}};b.plugin(Ju),b.plugin(bc),b.plugin(Cc),b.plugin(Ic),b.plugin(Gc);export{b as default}; +var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};const t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach((a=>{t.compute.hasOwnProperty(a)?n[a](this):console.warn("no compute:",e)})):"function"==typeof e?e(this):console.warn("no compute:",e),this}};var n={forEach:function(e){return this.fullPointer.forEach(((t,n)=>{let a=this.update([t]);e(a,n)})),this},map:function(e,t){let n=this.fullPointer.map(((t,n)=>{let a=this.update([t]),r=e(a,n);return void 0===r?this.none():r}));if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let a=[];return n.forEach((e=>{a=a.concat(e.fullPointer)})),this.toView(a)},filter:function(e){let t=this.fullPointer;return t=t.filter(((t,n)=>{let a=this.update([t]);return e(a,n)})),this.update(t)},find:function(e){let t=this.fullPointer.find(((t,n)=>{let a=this.update([t]);return e(a,n)}));return this.update([t])},some:function(e){return this.fullPointer.some(((t,n)=>{let a=this.update([t]);return e(a,n)}))},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const a={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach((e=>{t[e]=this.update(this._groups[e])})),t},eq:function(e){let t=this.pointer;return t||(t=this.docs.map(((e,t)=>[t]))),t[e]?this.update([t[e]]):this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map(((e,t)=>[t]));return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map((e=>[e[0]]));return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every(((e,t)=>!!n[t]&&(e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2])))},wordCount:function(){return this.docs.reduce(((e,t)=>(e+=t.filter((e=>""!==e.text)).length,e)),0)},isFull:function(){let e=this.pointer;if(!e)return!0;if(0===e.length||0!==e[0][0])return!1;let t=0,n=0;return this.document.forEach((e=>t+=e.length)),this.docs.forEach((e=>n+=e.length)),t===n},getNth:function(e){return"number"==typeof e?this.eq(e):"string"==typeof e?this.if(e):this}};a.group=a.groups,a.fullSentence=a.fullSentences,a.sentence=a.fullSentences,a.lastTerm=a.lastTerms,a.firstTerm=a.firstTerms;const r=Object.assign({},a,t,n);r.get=r.eq;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,a=t||e.map(((e,t)=>[t]));return a.map((e=>{let[t,a,r,o,i]=e;return a=a||0,r=r||(n[t]||[]).length,n[t]&&n[t][a]&&(o=o||n[t][a].id,n[t][r-1]&&(i=i||n[t][r-1].id)),[t,a,r,o,i]}))}update(e){let t=new View(this.document,e);if(this._cache&&e&&e.length>0){let n=[];e.forEach(((e,t)=>{let[a,r,o]=e;(1===e.length||0===r&&this.document[a].length===o)&&(n[t]=this._cache[a])})),n.length>0&&(t._cache=n)}return t.world=this.world,t}toView(e){return new View(this.document,e||this.pointer)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),a=new View(n);return a.world=this.world,a.compute(["normal","freeze","lexicon"]),this.world.compute.preTagger&&a.compute("preTagger"),a.compute("unfreeze"),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,r);const o=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};function i(e,t){if(o(t))for(const n in t)o(t[n])?(e[n]||Object.assign(e,{[n]:{}}),i(e[n],t[n])):Object.assign(e,{[n]:t[n]});return e}const s=function(e,t,n,a){const{methods:r,model:o,compute:s,hooks:l}=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&&i(o,e.model),e.irregulars&&function(e,t){let n=e.two.models||{};Object.keys(t).forEach((e=>{t[e].pastTense&&(n.toPast&&(n.toPast.ex[e]=t[e].pastTense),n.fromPast&&(n.fromPast.ex[t[e].pastTense]=e)),t[e].presentTense&&(n.toPresent&&(n.toPresent.ex[e]=t[e].presentTense),n.fromPresent&&(n.fromPresent.ex[t[e].presentTense]=e)),t[e].gerund&&(n.toGerund&&(n.toGerund.ex[e]=t[e].gerund),n.fromGerund&&(n.fromGerund.ex[t[e].gerund]=e)),t[e].comparative&&(n.toComparative&&(n.toComparative.ex[e]=t[e].comparative),n.fromComparative&&(n.fromComparative.ex[t[e].comparative]=e)),t[e].superlative&&(n.toSuperlative&&(n.toSuperlative.ex[e]=t[e].superlative),n.fromSuperlative&&(n.fromSuperlative.ex[t[e].superlative]=e))}))}(o,e.irregulars),e.compute&&Object.assign(s,e.compute),l&&(t.hooks=l.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.frozen&&a.addWords(e.frozen,!0),e.mutate&&e.mutate(t,a)},l=function(e){return"[object Array]"===Object.prototype.toString.call(e)},u=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(l(e)){if(l(e[0])){let n=e.map((e=>e.map((e=>({text:e,normal:e,pre:"",post:" ",tags:new Set})))));return new t(n)}let n=e.map((e=>e.terms.map((e=>(l(e.tags)&&(e.tags=new Set(e.tags)),e)))));return new t(n)}return r};let c=Object.assign({},e);const d=function(e,t){t&&d.addWords(t);let n=u(e,View,c);return e&&n.compute(c.hooks),n};Object.defineProperty(d,"_world",{value:c,writable:!0}),d.tokenize=function(e,t){const{compute:n}=this._world;t&&d.addWords(t);let a=u(e,View,c);return n.contractions&&a.compute(["alias","normal","machine","contractions"]),a},d.plugin=function(e){return s(e,this._world,View,this),this},d.extend=d.plugin,d.world=function(){return this._world},d.model=function(){return this._world.model},d.methods=function(){return this._world.methods},d.hooks=function(){return this._world.hooks},d.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},d.version="14.14.0";var h={one:{cacheDoc:function(e){let t=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 a=[t,0].concat(n);Array.prototype.splice.apply(e,a)}return e},y=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-โ€“โ€”]/.test(t.post)||(t.post+=" ")},v=(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,"")}},w=function(e,t,n,a){let[r,o,i]=t;0===o||i===a[r].length?y(n):(y(n),y([e[t[1]]])),function(e,t,n){let a=e[t];if(0!==t||!f(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")||f(r.text)&&r.text.length>1&&(r.text=(o=r.text,o.replace(/^\p{Lu}/u,(e=>e.toLowerCase()))));var o}(e,o,n),b(e,o,n)};let k=0;const P=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e,A=function(e){let[t,n]=e.index||[0,0];k+=1,k=k>46655?0:k,t=t>46655?0:t,n=n>1294?0:n;let a=P(k.toString(36));a+=P(t.toString(36));let r=n.toString(36);return r=r.length<2?"0"+r:r,a+=r,a+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+a.toUpperCase()},C=function(e){if(e.has("@hasContraction")&&"function"==typeof e.contractions){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;t.uncache();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);0!==h.length&&(h=function(e){return e.map((e=>(e.id=A(e),e)))}(h),n?(C(t.update([u]).firstTerm()),w(d,u,h,a)):(C(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);let r=a.docs[0],o=t.possessives&&r[r.length-1].tags.has("Possessive");e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e=e.replace(D,(e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})),e}(e,a);let i=this.update(n);n=n.map((e=>e.slice(0,3)));let s=(i.docs[0]||[]).map((e=>Array.from(e.tags)));if("string"==typeof e&&(e=this.fromText(e).compute("id")),a.insertAfter(e),i.has("@hasContraction")&&a.contractions){a.grow("@hasContraction+").contractions().expand()}if(a.delete(i),o){let e=a.docs[0],t=e[e.length-1];t.tags.has("Possessive")||(t.text+="'s",t.normal+="'s",t.tags.add("Possessive"))}let l=a.toView(n).compute(["index","freeze","lexicon"]);return l.world.compute.preTagger&&l.compute("preTagger"),l.compute("unfreeze"),t.tags&&l.terms().forEach(((e,t)=>{e.tagSafe(s[t])})),t.case&&l.docs[0]&&l.docs[0][0]&&0===l.docs[0][0].index[1]&&(l.docs[0][0].text=l.docs[0][0].text.replace(/\w\S*/g,(e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase()))),l},H.replace=function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let a=this.match(e);return a.found?(this.soften(),a.replaceWith(t,n)):this};const G={remove:function(e){const{indexN:t}=this.methods.one.pointer;this.uncache();let n=this.all(),a=this;e&&(n=this,a=this.match(e));let r=!n.ptrs;if(a.has("@hasContraction")&&a.contractions){a.grow("@hasContraction").contractions().expand()}let o=n.fullPointer,i=a.fullPointer.reverse(),s=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}(this.document,i);return o=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})),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)))}(o,t(i)),n.ptrs=o,n.document=s,n.compute("index"),r&&(n.ptrs=void 0),e?n.toView(o):(this.ptrs=[],n.none())}};G.delete=G.remove;const T={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}};T.deHyphenate=T.dehyphenate,T.toQuotation=T.toQuotations;var x={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 E=new Set(["index","sequence","seq","sequential","chron","chronological"]),F=new Set(["freq","frequency","topk","repeats"]),O=new Set(["alpha","alphabetical"]);var z={unique:function(){let e=new Set,t=this.filter((t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)}));return t},reverse:function(){let e=this.pointer||this.docs.map(((e,t)=>[t]));return e=[].concat(e),e=e.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if(this.uncache(),"function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort(((n,a)=>(n=e.update([n]),a=e.update([a]),t(n,a)))),e.ptrs=n,e}(this,e);e=e||"alpha";let a=n||t.map(((e,t)=>[t])),r=t.map(((e,t)=>({index:t,words:e.length,normal:e.map((e=>e.machine||e.normal||"")).join(" "),pointer:a[t]})));return E.has(e)&&(e="sequential"),O.has(e)&&(e="alpha"),F.has(e)?(r=x.byFreq(r),this.update(r.map((e=>e.pointer)))):"function"==typeof x[e]?(r=r.sort(x[e]),this.update(r.map((e=>e.pointer)))):this}};const V=function(e,t){if(e.length>0){let t=e[e.length-1],n=t[t.length-1];!1===/ /.test(n.post)&&(n.post+=" ")}return e=e.concat(t)};var B={concat:function(e){if("string"==typeof e){let t=this.fromText(e);if(this.found&&this.ptrs){let e=this.fullPointer,n=e[e.length-1][0];this.document.splice(n,0,...t.document)}else this.document=this.document.concat(t.document);return this.all().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=V(e.document,t.docs),e.all()}(this,e);if(t=e,"[object Array]"===Object.prototype.toString.call(t)){let t=V(this.document,e);return this.document=t,this.all()}var t;return this}};var S={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}},I,H,G,T,z,B,S),$={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))),n[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))},U=/'/,q=new Set(["what","how","when","where","why"]),R=new Set(["be","go","start","think","need"]),Q=new Set(["been","gone"]),Z=/'/,X=/(e|รฉ|aison|sion|tion)$/,_=/(age|isme|acle|ege|oire)$/;var Y=(e,t)=>["je",e[t].normal.split(Z)[1]],ee=(e,t)=>{let n=e[t].normal.split(Z)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},te=(e,t)=>{let n=e[t].normal.split(Z)[1];return n&&X.test(n)&&!_.test(n)?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const ne=/^([0-9.]{1,4}[a-z]{0,2}) ?[-โ€“โ€”] ?([0-9]{1,4}[a-z]{0,2})$/i,ae=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-โ€“โ€”] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,re=/^[0-9]{3}-[0-9]{4}$/,oe=function(e,t){let n=e[t],a=n.text.match(ne);return null!==a?!0===n.tags.has("PhoneNumber")||re.test(n.text)?null:[a[1],"to",a[2]]:(a=n.text.match(ae),null!==a?[a[1],"to",a[4]]:null)},ie=/^([+-]?[0-9][.,0-9]*)([a-zยฐยฒยณยต/]+)$/,se=function(e,t,n){const a=n.model.one.numberSuffixes||{};let r=e[t].text.match(ie);if(null!==r){let e=r[2].toLowerCase().trim();return a.hasOwnProperty(e)?null:[r[1],e]}return null},le=/'/,ue=/^[0-9][^-โ€“โ€”]*[-โ€“โ€”].*?[0-9]/,ce=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]]},de={t:(e,t)=>function(e,t){return"ain't"===e[t].normal||"aint"===e[t].normal?null:[e[t].normal.replace(/n't/,""),"not"]}(e,t),d:(e,t)=>function(e,t){let n=e[t].normal.split(U)[0];if(q.has(n))return[n,"did"];if(e[t+1]){if(Q.has(e[t+1].normal))return[n,"had"];if(R.has(e[t+1].normal))return[n,"would"]}return null}(e,t)},he={j:(e,t)=>Y(e,t),l:(e,t)=>ee(e,t),d:(e,t)=>te(e,t)},ge=function(e,t,n,a){for(let r=0;r2)return o.out.concat(a)}return null},me=function(e,t){let n=t.fromText(e.join(" "));return n.compute(["id","alias"]),n.docs[0]},pe=function(e,t){for(let n=t+1;n<5&&e[n];n+=1)if("been"===e[n].normal)return["there","has"];return["there","is"]};var fe={contractions:e=>{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;if(!0===le.test(a[s].normal)){let e=a[s].normal.split(le);l=e[0],u=e[1]}let c=ge(o,a[s],l,u);!c&&de.hasOwnProperty(u)&&(c=de[u](a,s,t)),!c&&he.hasOwnProperty(l)&&(c=he[l](a,s)),"there"===l&&"s"===u&&(c=pe(a,s)),c?(c=me(c,e),W(n,[i,s],c),ce(n[i],e,s,c.length)):ue.test(a[s].normal)?(c=oe(a,s),c&&(c=me(c,e),W(n,[i,s],c),r.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&r.one.setTag([c[0]],"Time",t,null,"time-range"),ce(n[i],e,s,c.length))):(c=se(a,s,t),c&&(c=me(c,e),W(n,[i,s],c),r.one.setTag([c[1]],"Unit",t,null,"contraction-unit")))}}))}};const be={model:J,compute:fe,hooks:["contractions"]},ye=function(e){const t=e.world,{model:n,methods:a}=e.world,r=a.one.setTag,{frozenLex:o}=n.one,i=n.one._multiCache||{};e.docs.forEach((e=>{for(let n=0;nn;a-=1){let i=e.slice(n,a+1),s=i.map((e=>e.machine||e.normal)).join(" ");!0!==o.hasOwnProperty(s)||(r(i,o[s],t,!1,"1-frozen-multi-lexicon"),i.forEach((e=>e.frozen=!0)))}}void 0!==o[s]&&o.hasOwnProperty(s)&&(r([a],o[s],t,!1,"1-freeze-lexicon"),a.frozen=!0)}}))};const ve=e=>""+e+"",we=e=>""+e+"",ke=function(e){e.docs.forEach((e=>{console.log(ve("\n โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€")),e.forEach((e=>{let t=` ${we("โ”‚")} `,n=e.implicit||e.text||"-";!0===e.frozen?t+=`${ve(n)} โ„๏ธ`:t+=we(n),console.log(t)}))}))};var Pe={compute:{frozen:ye,freeze:ye,unfreeze:function(e){return e.docs.forEach((e=>{e.forEach((e=>{delete e.frozen}))})),e}},mutate:e=>{const t=e.methods.one;t.termMethods.isFrozen=e=>!0===e.frozen,t.debug.freeze=ke,t.debug.frozen=ke},api:function(e){e.prototype.freeze=function(){return this.docs.forEach((e=>{e.forEach((e=>{e.frozen=!0}))})),this},e.prototype.unfreeze=function(){this.compute("unfreeze")},e.prototype.isFrozen=function(){return this.match("@isFrozen+")}},hooks:["freeze"]};const Ae=function(e,t,n){const{model:a,methods:r}=n,o=r.one.setTag,i=a.one._multiCache||{},{lexicon:s}=a.one||{};let l=e[t],u=l.machine||l.normal;if(void 0!==i[u]&&e[t+1]){for(let a=t+i[u]-1;a>t;a-=1){let r=e.slice(t,a+1);if(r.length<=1)return!1;let i=r.map((e=>e.machine||e.normal)).join(" ");if(!0===s.hasOwnProperty(i)){let e=s[i];return o(r,e,n,!1,"1-multi-lexicon"),!e||2!==e.length||"PhrasalVerb"!==e[0]&&"PhrasalVerb"!==e[1]||o([r[1]],"Particle",n,!1,"1-phrasal-particle"),!0}}return!1}return null},Ce=/^(under|over|mis|re|un|dis|semi|pre|post)-?/,je=new Set(["Verb","Infinitive","PastTense","Gerund","PresentTense","Adjective","Participle"]),Ne=function(e,t,n){const{model:a,methods:r}=n,o=r.one.setTag,{lexicon:i}=a.one;let s=e[t],l=s.machine||s.normal;if(void 0!==i[l]&&i.hasOwnProperty(l))return o([s],i[l],n,!1,"1-lexicon"),!0;if(s.alias){let e=s.alias.find((e=>i.hasOwnProperty(e)));if(e)return o([s],i[e],n,!1,"1-lexicon-alias"),!0}if(!0===Ce.test(l)){let e=l.replace(Ce,"");if(i.hasOwnProperty(e)&&e.length>3&&je.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null};var Ie={lexicon:function(e){const t=e.world;e.docs.forEach((e=>{for(let n=0;n{let r=e[a],o=(a=(a=a.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);o.length>1&&(void 0===n[o[0]]||o.length>n[o[0]])&&(n[o[0]]=o.length),t[a]=t[a]||r})),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}}}};var He={addWords:function(e,t=!1){const n=this.world(),{methods:a,model:r}=n;if(!e)return;if(Object.keys(e).forEach((t=>{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))})),!0===t){let{lex:t,_multi:o}=a.one.expandLexicon(e,n);return Object.assign(r.one._multiCache,o),void Object.assign(r.one.frozenLex,t)}if(a.two.expandLexicon){let{lex:t,_multi:o}=a.two.expandLexicon(e,n);Object.assign(r.one.lexicon,t),Object.assign(r.one._multiCache,o)}let{lex:o,_multi:i}=a.one.expandLexicon(e,n);Object.assign(r.one.lexicon,o),Object.assign(r.one._multiCache,i)}};var Ge={model:{one:{lexicon:{},_multiCache:{},frozenLex:{}}},methods:De,compute:Ie,lib:He,hooks:["lexicon"]};const Te=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;let r=n.one.tokenize.splitTerms(e,a).map((e=>n.one.tokenize.splitWhitespace(e,a)));return r.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}},xe=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;t{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1);return e},Oe={buildTrie:function(e){return function(e){return e.goNext=e.goNext.map((e=>{if(0!==Object.keys(e).length)return e})),e.goNext=Fe(e.goNext,void 0),e.failTo=Fe(e.failTo,0),e.endAs=Fe(e.endAs,null),e}(Te(e,this.world()))}};Oe.compile=Oe.buildTrie;var ze={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();var n;"string"==typeof e&&(e=[e]);let a=function(e,t,n){let a=[];n.form=n.form||"normal";let r=e.docs;if(!t.goNext||!t.goNext[0])return console.error("Compromise invalid lookup trie"),e.none();let o=Object.keys(t.goNext[0]);for(let i=0;i0&&(a=a.concat(l))}return e.update(a)}(this,(n=e,"[object Object]"===Object.prototype.toString.call(n)?e:Te(e,this.world)),t);return a=a.settle(),a}},lib:Oe};const Ve=function(e,t){return t?(e.forEach((e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])})),e):e},Be=function(e,t){let{ptrs:n,byGroup:a}=e;return n=Ve(n,t),Object.keys(a).forEach((e=>{a[e]=Ve(a[e],t)})),{ptrs:n,byGroup:a}},Se=function(e,t,n){const a=n.methods.one;return"number"==typeof e&&(e=String(e)),"string"==typeof e&&(e=a.killUnicode(e,n),e=a.parseMatch(e,t,n)),e},Ke=e=>"[object Object]"===Object.prototype.toString.call(e),$e=e=>e&&Ke(e)&&!0===e.isView,Le=e=>e&&Ke(e)&&!0===e.isNet;var Me={matchOne:function(e,t,n){const a=this.methods.one;if($e(e))return this.intersection(e).eq(0);if(Le(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;let r={regs:e=Se(e,n,this.world),group:t,justOne:!0},o=a.match(this.docs,r,this._cache),{ptrs:i,byGroup:s}=Be(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const a=this.methods.one;if($e(e))return this.intersection(e);if(Le(e))return this.sweep(e,{tagger:!1}).view.settle();let r={regs:e=Se(e,n,this.world),group:t},o=a.match(this.docs,r,this._cache),{ptrs:i,byGroup:s}=Be(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const a=this.methods.one;if($e(e)){return this.intersection(e).fullPointer.length>0}if(Le(e))return this.sweep(e,{tagger:!1}).view.found;let r={regs:e=Se(e,n,this.world),group:t,justOne:!0};return a.match(this.docs,r,this._cache).ptrs.length>0},if:function(e,t,n){const a=this.methods.one;if($e(e))return this.filter((t=>t.intersection(e).found));if(Le(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}let r={regs:e=Se(e,n,this.world),group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter(((e,t)=>{let n=this.update([e]);return a.match(n.docs,r,i[t]).ptrs.length>0}));let s=this.update(o);return this._cache&&(s._cache=o.map((e=>i[e[0]]))),s},ifNo:function(e,t,n){const{methods:a}=this,r=a.one;if($e(e))return this.filter((t=>!t.intersection(e).found));if(Le(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}e=Se(e,n,this.world);let o=this._cache||[],i=this.filter(((n,a)=>{let i={regs:e,group:t,justOne:!0};return 0===r.match(n.docs,i,o[a]).ptrs.length}));return this._cache&&(i._cache=i.ptrs.map((e=>o[e[0]]))),i}};var Je={before:function(e,t,n){const{indexN:a}=this.methods.one.pointer;let r=[],o=a(this.fullPointer);Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?1:-1))[0];t[1]>0&&r.push([t[0],0,t[1]])}));let i=this.toView(r);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:a}=this.methods.one.pointer;let r=[],o=a(this.fullPointer),i=this.document;Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?-1:1))[0],[n,,a]=t;a{let o=n.before(e,t);if(o.found){let e=o.terms();a[r][1]-=e.length,a[r][3]=e.docs[0][0].id}})),this.update(a)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let a=this.fullPointer;return this.forEach(((n,r)=>{let o=n.after(e,t);if(o.found){let e=o.terms();a[r][2]+=e.length,a[r][4]=null}})),this.update(a)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const We=function(e,t){return[e[0],e[1],t[2]]},Ue=(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},qe=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},Re={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let a=Ue(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=>qe(e,this))),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let a=Ue(e,this,t).fullPointer,r=n(this.fullPointer,a);for(let e=0;e{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(We(e.match,e.after)):o.push(e.match)})),o=o.filter((e=>e)),o=o.map((e=>qe(e,this))),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let a=Ue(e,this,t).fullPointer,r=n(this.fullPointer,a),o=[];return r.forEach((e=>{o.push(e.passthrough),e.before&&e.match?o.push(We(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=>qe(e,this))),this.update(o)}};Re.split=Re.splitAfter;const Qe=function(e,t){return!(!e||!t)&&(e[0]===t[0]&&e[2]===t[1])},Ze=function(e,t,n){const a=e.world,r=a.methods.one.parseMatch;n=n||"^.";let o=r(t=t||".$",{},a),i=r(n,{},a);o[o.length-1].end=!0,i[0].start=!0;let s=e.fullPointer,l=[s[0]];for(let t=1;t)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,et=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,tt=/ /g,nt=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),at=function(e){return e=(e=e.map((e=>e.trim()))).filter((e=>e))},rt=/\{([0-9]+)?(, *[0-9]*)?\}/,ot=/&&/,it=new RegExp(/^<\s*(\S+)\s*>/),st=e=>e.charAt(0).toUpperCase()+e.substring(1),lt=e=>e.charAt(e.length-1),ut=e=>e.charAt(0),ct=e=>e.substring(1),dt=e=>e.substring(0,e.length-1),ht=function(e){return e=ct(e),e=dt(e)},gt=function(e,t){let n={};for(let a=0;a<2;a+=1){if("$"===lt(e)&&(n.end=!0,e=dt(e)),"^"===ut(e)&&(n.start=!0,e=ct(e)),"?"===lt(e)&&(n.optional=!0,e=dt(e)),("["===ut(e)||"]"===lt(e))&&(n.group=null,"["===ut(e)&&(n.groupStart=!0),"]"===lt(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===ut(e))){const t=it.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===lt(e)&&(n.greedy=!0,e=dt(e)),"*"!==e&&"*"===lt(e)&&"\\*"!==e&&(n.greedy=!0,e=dt(e)),"!"===ut(e)&&(n.negative=!0,e=ct(e)),"~"===ut(e)&&"~"===lt(e)&&e.length>2&&(e=ht(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("/"===ut(e)&&"/"===lt(e))return e=ht(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if(!0===rt.test(e)&&(e=e.replace(rt,((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),"")))),"("===ut(e)&&")"===lt(e)){ot.test(e)?(n.choices=e.split(ot),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=ct(n.choices[0]);let a=n.choices.length-1;n.choices[a]=dt(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=>gt(e,t))))),e=""}if("{"===ut(e)&&"}"===lt(e)){if(e=ht(e),n.root=e,/\//.test(e)){let e=n.root.split(/\//);n.root=e[0],n.pos=e[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==e[2]&&(n.sense=e[2])}return n}if("<"===ut(e)&&">"===lt(e))return e=ht(e),n.chunk=st(e),n.greedy=!0,n;if("%"===ut(e)&&"%"===lt(e))return e=ht(e),n.switch=e,n}return"#"===ut(e)?(n.tag=ct(e),n.tag=st(n.tag),n):"@"===ut(e)?(n.method=ct(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)},mt=/[a-z0-9][-โ€“โ€”][a-z]/i,pt=function(e,t){let{all:n}=t.methods.two.transform.verb||{},a=e.root;return n?n(a,t.model):[]},ft=function(e,t){let{all:n}=t.methods.two.transform.noun||{};return n?n(e.root,t.model):[e.root]},bt=function(e,t){let{all:n}=t.methods.two.transform.adjective||{};return n?n(e.root,t.model):[e.root]},yt=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}))),e},vt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1},wt=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),It={hasQuote:e=>Pt.test(e.pre)||At.test(e.post),hasComma:e=>Nt(e,","),hasPeriod:e=>!0===Nt(e,".")&&!1===Nt(e,"..."),hasExclamation:e=>Nt(e,"!"),hasQuestionMark:e=>Nt(e,"?")||Nt(e,"ยฟ"),hasEllipses:e=>Nt(e,"..")||Nt(e,"โ€ฆ"),hasSemicolon:e=>Nt(e,";"),hasColon:e=>Nt(e,":"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>Ct.test(e.post)||Ct.test(e.pre),hasDash:e=>jt.test(e.post)||jt.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};It.hasQuotation=It.hasQuote;let Dt=function(){};Dt=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.id&&t.id===e.id)return!0;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(kt(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some((e=>e===t.word)))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof It[t.method]&&!0===It[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}if(void 0!==t.chunk)return e.chunk===t.chunk;if(void 0!==t.switch)return e.switch===t.switch;if(void 0!==t.machine)return e.normal===t.machine||e.machine===t.machine||e.root===t.machine;if(void 0!==t.sense)return e.sense===t.sense;if(void 0!==t.fastOr){if(t.pos&&!e.tags.has(t.pos))return null;let n=e.root||e.implicit||e.machine||e.normal;return t.fastOr.has(n)||t.fastOr.has(e.text)}return void 0!==t.choices&&("and"===t.operator?t.choices.every((t=>Dt(e,t,n,a))):t.choices.some((t=>Dt(e,t,n,a))))}(e,t,n,a);return!0===t.negative?!r:r};const Ht=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max)return e.t=e.t+n.max,!0;if(!0===e.hasGroup){Gt(e,e.t).length=a-e.t}return e.t=a,!0},xt=function(e,t=0){let n=e.regs[e.r],a=!1;for(let o=0;o{let r=0,o=e.t+a+t+r;if(void 0===e.terms[o])return!1;let i=Dt(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let a=n.every(((t,n)=>{let a=e.t+n;return void 0!==e.terms[a]&&Dt(e.terms[a],t,a,e.phrase_length)}));return!0===a&&n.length>t&&(t=n.length),a}))&&t}(e);if(a){if(!0===n.negative)return null;if(!0===e.hasGroup){Gt(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},Ot=function(e){const{regs:t}=e;let n=t[e.r],a=Object.assign({},n);if(a.negative=!1,Dt(e.terms[e.t],a,e.start_i+e.t,e.phrase_length))return!1;if(n.optional){let n=t[e.r+1];if(n){if(Dt(e.terms[e.t],n,e.start_i+e.t,e.phrase_length))e.r+=1;else if(n.optional&&t[e.r+2]){Dt(e.terms[e.t],t[e.r+2],e.start_i+e.t,e.phrase_length)&&(e.r+=2)}}}return n.greedy?function(e,t,n){let a=0;for(let r=e.t;ra||(e.t+=a,0))}(e,a,t[e.r+1]):(e.t+=1,!0)},zt=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},Vt=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]&&function(e){const{regs:t}=e;let n=t[e.r],a=e.terms[e.t],r=Dt(a,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||r){let n=e.terms[e.t+1];n&&Dt(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}}(e),a.implicit&&e.terms[e.t+1]&&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)}}(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy)return null;if(!0===n.greedy){if(!zt(e))return null}return!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const a=Gt(e,t);e.t>1&&n.greedy?a.length+=e.t-t:a.length++}(e,r),!0},Bt=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!==Ht(e,r))if(e.negative){if(!Ot(r))return null}else if(!0!==Dt(r.terms[r.t],e,r.start_i+r.t,r.phrase_length)){if(!0!==e.optional)return null}else{if(!Vt(r))return null}else{if(!Vt(r))return null}else{if(e.negative&&e.anything)return null;if(!Vt(r))return null}else{if(!Ft(r))return null}else{if(!Et(r))return null}else{if(!Tt(r))return null}}let o=[null,n,r.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(r.groups).forEach((e=>{let t=r.groups[e],a=n+t.start;i[e]=[null,a,a+t.length]})),{pointer:o,groups:i}},St=function(e,t){return e.pointer[0]=t,Object.keys(e.groups).forEach((n=>{e.groups[n][0]=t})),e},Kt=function(e,t,n){let a=Bt(e,t,0,e.length);return a?(a=St(a,n),a):null},$t={one:{termMethods:It,parseMatch:function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let a=function(e){let t=e.split(Ye),n=[];t.forEach((e=>{nt(e)?n.push(e):n=n.concat(e.split(et))})),n=at(n);let a=[];return n.forEach((e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||nt(e)?a.push(e):a=a.concat(e.split(tt))})),a=at(a),a}(e);return a=a.map((e=>gt(e,t))),a=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&&mt.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}(a,n),a=function(e,t){return e.map((e=>{if(e.root)if(t.methods.two&&t.methods.two.transform){let n=[];e.pos?"Verb"===e.pos?n=n.concat(pt(e,t)):"Noun"===e.pos?n=n.concat(ft(e,t)):"Adjective"===e.pos&&(n=n.concat(bt(e,t))):(n=n.concat(pt(e,t)),n=n.concat(ft(e,t)),n=n.concat(bt(e,t))),n=n.filter((e=>e)),n.length>0&&(e.operator="or",e.fastOr=new Set(n))}else e.machine=e.root,delete e.id,delete e.root;return e}))}(a,n),a=yt(a),a},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=Kt(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]}))),t.notIf&&(i=function(e,t,n){return e=e.filter((e=>{let[a,r,o]=e.pointer,i=n[a].slice(r,o);for(let e=0;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}}(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}}};var Lt={api:function(e){Object.assign(e.prototype,_e)},methods:$t,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 Mt=/^\../,Jt=/^#./,Wt=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,"'"),Mt.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 Ut={html:function(e){let{starts:t,ends:n}=Wt(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(Rt,""),Zt.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(Rt,""),r="-"===r?" ":r.replace(qt,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||r&&Xt.test(r)||(r+=" "),a+=n+o+r})),!1===n&&(a=a.trim()),!0===t.lowerCase&&(a=a.toLowerCase()),a},Yt={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{keepSpace:!1,whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{keepSpace:!1,whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};Yt.clean=Yt.normal,Yt.reduced=Yt.root;let en=[],tn=0;for(;tn<64;)en[tn]=0|4294967296*Math.sin(++tn%Math.PI);const nn=function(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(tn=i=0;tn>4]+en[i]+~~o[tn|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},an={text:!0,terms:!0};let rn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const on=function(e,t){return Object.assign({},e,t)},sn={text:e=>_t(e,{keepPunct:!0},!1),normal:e=>_t(e,on(Yt.normal,{keepPunct:!0}),!1),implicit:e=>_t(e,on(Yt.implicit,{keepPunct:!0}),!1),machine:e=>_t(e,rn,!1),root:e=>_t(e,on(rn,{form:"root"}),!1),hash:e=>nn(_t(e,{keepPunct:!0},!1)),offset:e=>{let t=sn.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map((e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t})),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some((e=>!0===e.dirty))};sn.sentences=sn.sentence,sn.clean=sn.normal,sn.reduced=sn.root;const ln={json:function(e){let t=(n=this,"string"==typeof(a=(a=e)||{})&&(a={}),(a=Object.assign({},an,a)).offset&&n.compute("offset"),n.docs.map(((e,t)=>{let r={};return Object.keys(a).forEach((o=>{a[o]&&sn[o]&&(r[o]=sn[o](e,n,t))})),r})));var n,a;return"number"==typeof e?t[e]:t}};ln.data=ln.json;const un=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n},cn=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()));return e.filter((e=>e))}if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};e.forEach((e=>{t[e]=t[e]||0,t[e]+=1}));let n=Object.keys(t).map((e=>({normal:e,count:t[e]})));return n.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.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()},wrap:function(e){return cn(this,e)}};var hn={text:function(e){let t={};var n;if(e&&"string"==typeof e&&Yt.hasOwnProperty(e)?t=Object.assign({},Yt[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e)),void 0!==t.keepSpace||this.isFull()||(t.keepSpace=!1),void 0===t.keepEndPunct&&this.pointer){let e=this.pointer[0];e&&e[1]?t.keepEndPunct=!1:t.keepEndPunct=!0}return void 0===t.keepPunct&&(t.keepPunct=!0),void 0===t.keepSpace&&(t.keepSpace=!0),function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let a=0;a""+e+mn,red:e=>""+e+mn,blue:e=>""+e+mn,magenta:e=>""+e+mn,cyan:e=>""+e+mn,yellow:e=>""+e+mn,black:e=>""+e+mn,dim:e=>""+e+mn,i:e=>""+e+mn},fn={tags:function(e){let{docs:t,model:n}=e;0===t.length&&console.log(pn.blue("\n โ”€โ”€โ”€โ”€โ”€โ”€")),t.forEach((t=>{console.log(pn.blue("\n โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€")),t.forEach((t=>{let a=[...t.tags||[]],r=t.text||"-";t.sense&&(r=`{${t.normal}/${t.sense}}`),t.implicit&&(r="["+t.implicit+"]"),r=pn.yellow(r);let o="'"+r+"'";if(t.reference){let n=e.update([t.reference]).text("normal");o+=` - ${pn.dim(pn.i("["+n+"]"))}`}o=o.padEnd(18);let i=pn.blue(" โ”‚ ")+pn.i(o)+" - "+function(e,t){return t.one.tagSet&&(e=e.map((e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return pn[n](e)}))),e.join(", ")}(a,n);console.log(i)}))})),console.log("\n")},clientSide: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()}))},chunks:function(e){let{docs:t}=e;console.log(""),t.forEach((e=>{let t=[];e.forEach((e=>{"Noun"===e.chunk?t.push(pn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(pn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(pn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(pn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)})),console.log(t.join(" "),"\n")})),console.log("\n")},highlight:function(e){if(!e.found)return;let t={};e.fullPointer.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),Object.keys(t).forEach((n=>{let a=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach(((e,t)=>{a=function(e,t,n){let a=((e,t,n)=>{let a=9*n,r=t.start+a,o=r+t.length;return[e.substring(0,r),e.substring(r,o),e.substring(o,e.length)]})(e,t,n);return`${a[0]}${pn.blue(a[1])}${a[2]}`}(a,e.offset,t)})),console.log(a)})),console.log("\n")}};var bn={api:function(e){Object.assign(e.prototype,gn)},methods:{one:{hash:nn,debug:fn}}};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},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<20;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}}};const 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},Cn=(e,t)=>{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=Cn(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=Cn(e,this);let t=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{e=Pn(e,[t])})),e=jn(e,this.document),this.update(e)};var In={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},Hn=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.notIf&&(e.notIf=n(e.notIf,{},t)),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 Gn={buildNet:function(e,t){e=Hn(e,t);let n={};e.forEach((e=>{e.needs.forEach((t=>{n[t]=Array.isArray(n[t])?n[t]:[],n[t].push(e)})),e.wants.forEach((t=>{n[t]=Array.isArray(n[t])?n[t]:[],n[t].push(e)}))})),Object.keys(n).forEach((e=>{let t={};n[e]=n[e].filter((e=>"boolean"!=typeof 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=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=>"boolean"!=typeof o[e.match]&&(o[e.match]=!0,!0))),r}))}(r,t.hooks);o=function(e,t){return e.map(((e,n)=>{let a=t[n];return(e=(e=e.filter((e=>e.needs.every((e=>a.has(e)))))).filter((e=>void 0===e.ifNo||!0!==e.ifNo.some((e=>a.has(e)))))).filter((e=>0===e.wants.length||e.wants.filter((e=>a.has(e))).length>=e.minWant))}))}(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=e.filter((e=>a>=e.minWords)),e}))}(o,e);let i=function(e,t,n,a,r){let o=[];for(let n=0;n0&&(l.ptrs.forEach((e=>{e[0]=n;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),o.push(t)})),!0===r.matchOne))return[o[0]]}return o}(o,e,0,n,a);return i},bulkTagger:function(e,t,n){const{model:a,methods:r}=n,{getDoc:o,setTag:i,unTag:s}=r.one,l=r.two.looksPlural;if(0===e.length)return e;return("undefined"!=typeof process&&process.env?process.env:self.env||{}).DEBUG_TAGS&&console.log(`\n\n โ†’ ${e.length} post-tagger:`),e.map((e=>{if(!e.tag&&!e.chunk&&!e.unTag)return;let r=e.reason||e.match,u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===function(e,t,n){let a=n.one.tagSet;if(!a.hasOwnProperty(t))return!0;let r=a[t].not||[];for(let t=0;te.frozen=!0))}void 0!==e.unTag&&s(u,e.unTag,n,e.safe,r),e.chunk&&u.forEach((t=>t.chunk=e.chunk))}))}},Tn={lib:{buildNet:function(e){let t=this.methods().one.buildNet(e,this.world());return t.isNet=!0,t}},api:function(e){e.prototype.sweep=function(e,t={}){const{world:n,docs:a}=this,{methods:r}=n;let o=r.one.bulkMatch(a,e,this.methods,t);!1!==t.tagger&&r.one.bulkTagger(o,a,this.world),o=o.map((e=>{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:Gn}};const xn=/ /,En=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;!0===e.frozen&&(a=!0);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("string"==typeof t)if(t=t.trim(),xn.test(t))!function(e,t,n,a){let r=t.split(xn);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;nOn(e,t,n,a)))},zn=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},Vn=/^ *(#|\/\/)/,Bn=function(e){let t=e.trim().split(/->/),n=[];t.forEach((e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map((e=>e.trim())).filter((e=>e)),t=t.map((e=>zn({id:e}))),t}return[zn({id:e})]}(e))})),n=n.filter((e=>e));let a=n[0];for(let e=1;e{let n=[],a=[e];for(;a.length>0;){let e=a.pop();n.push(e),e.children&&e.children.forEach((n=>{t&&t(e,n),a.push(n)}))}return n},Kn=e=>"[object Array]"===Object.prototype.toString.call(e),$n=e=>(e=e||"").trim(),Ln=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach((e=>{if(!e.trim()||Vn.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:Bn(e)})}));let a=function(e){let t={children:[]};return e.forEach(((n,a)=>{0===n.indent?t.children=t.children.concat(n.node):e[a-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e}));let n=zn({});return e.forEach((e=>{if((e=zn(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)})),n}(e):(Sn(t=e).forEach(zn),t);var t},Mn=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("โ†’ "));let a="";return Sn(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},Jn=function(e){let t=Sn(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},Wn={text:Mn,txt:Mn,array:Jn,flat:Jn},Un=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Mn(e,!0)),null):Wn.hasOwnProperty(t)?Wn[t](e):e},qn=e=>{Sn(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))}))},Rn=/\//;let Qn=class g{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=$n(e),!Rn.test(e)){let t=this.json.children.find((t=>t.id===e));return new g(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]));if(!a)return null;e=a}return e})(this.json,e)||zn({});return new g(t)}add(e,t={}){if(Kn(e))return e.forEach((e=>this.add($n(e),t))),this;e=$n(e);let n=zn({id:e,props:t});return this.json.children.push(n),new g(n)}remove(e){return e=$n(e),this.json.children=this.json.children.filter((t=>t.id!==e)),this}nodes(){return Sn(this.json).map((e=>(delete(e=Object.assign({},e)).children,e)))}cache(){return(e=>{let t=Sn(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 Sn(this.json)}fillDown(){var e;return e=this.json,Sn(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(){qn(this.json);let e=Sn(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 qn(this.json),Un(this.json,e)}debug(){return qn(this.json),Un(this.json,"debug"),this}};const Zn=function(e){let t=Ln(e);return new Qn(t)};Zn.prototype.plugin=function(e){e(this)};const Xn={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Hyphenated:"cyan",Adverb:"cyan"},_n=function(e){if(Xn.hasOwnProperty(e.id))return Xn[e.id];if(Xn.hasOwnProperty(e.is))return Xn[e.is];let t=e._cache.parents.find((e=>Xn[e]));return Xn[t]},Yn=function(e){return e?"string"==typeof e?[e]:e:[]},ea=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=Yn(e[t].children),e[t].not=Yn(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 ta={one:{setTag:On,unTag:function(e,t,n){t=t.trim().replace(/^#/,"");for(let a=0;a0)for(let e=0;e0&&(e=function(e){return Object.keys(e).forEach((t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0})),e}(e)),e=ea(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 Zn(t).cache().fillDown().out("array")}(Object.assign({},t,e)),a=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:_n(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}(n);return a},canBe:function(e,t,n){if(!n.hasOwnProperty(t))return!0;let a=n[t].not||[];for(let t=0;tr.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 na(e)?e.forEach((e=>a.one.unTag(n,e,i))):a.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){e=e.replace(/^#/,"");let t=this.model.one.tagSet,n=this.methods.one.canBe,a=[];this.document.forEach(((r,o)=>{r.forEach(((r,i)=>{n(r,e,t)||a.push([o,i,i+1])}))}));let r=this.update(a);return this.difference(r)}};var ra={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 oa=new Set(["Auxiliary","Possessive"]);var ia={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=e.sort(((e,n)=>{if(oa.has(e)||!t.hasOwnProperty(n))return 1;if(oa.has(n)||!t.hasOwnProperty(e))return-1;let a=t[e].children||[],r=a.length;return a=t[n].children||[],r-a.length})),e}(t,a)}))}))}},methods:ta,api:function(e){Object.assign(e.prototype,aa)},lib:ra};const sa=/([.!?\u203D\u2E18\u203C\u2047-\u2049\u3002]+\s)/g,la=/^[.!?\u203D\u2E18\u203C\u2047-\u2049\u3002]+\s$/,ua=/((?:\r?\n|\r)+)/,ca=/[a-z0-9\u00C0-\u00FF\u00a9\u00ae\u2000-\u3300\ud000-\udfff]/i,da=/\S/,ha={'"':'"',"๏ผ‚":"๏ผ‚","โ€œ":"โ€","โ€Ÿ":"โ€","โ€ž":"โ€","โน‚":"โ€","โ€š":"โ€™","ยซ":"ยป","โ€น":"โ€บ","โ€ต":"โ€ฒ","โ€ถ":"โ€ณ","โ€ท":"โ€ด","ใ€":"ใ€ž","ใ€Ÿ":"ใ€ž"},ga=RegExp("["+Object.keys(ha).join("")+"]","g"),ma=RegExp("["+Object.values(ha).join("")+"]","g"),pa=function(e){if(!e)return!1;let t=e.match(ma);return null!==t&&1===t.length},fa=/\(/g,ba=/\)/g,ya=/\S/,va=/^\s+/,wa=function(e,t){let n=e.split(/[-โ€“โ€”]/);if(n.length<=1)return!1;const{prefixes:a,suffixes:r}=t.one;if(1===n[0].length&&/[a-z]/i.test(n[0]))return!1;if(a.hasOwnProperty(n[0]))return!1;if(n[1]=n[1].trim().replace(/[.?!]$/,""),r.hasOwnProperty(n[1]))return!1;if(!0===/^([a-z\u00C0-\u00FF`"'/]+)[-โ€“โ€”]([a-z0-9\u00C0-\u00FF].*)/i.test(e))return!0;return!0===/^[('"]?([0-9]{1,4})[-โ€“โ€”]([a-z\u00C0-\u00FF`"'/-]+[)'"]?$)/i.test(e)},ka=function(e){let t=[];const n=e.split(/[-โ€“โ€”]/);let a="-",r=e.match(/[-โ€“โ€”]/);r&&r[0]&&(a=r);for(let e=0;e(e[t]=!0,e)),{});const Ia=/\p{Letter}/u,Da=/[\p{Number}\p{Currency_Symbol}]/u,Ha=/^[a-z]\.([a-z]\.)+/i,Ga=/[sn]['โ€™]$/,Ta=/([A-Z]\.)+[A-Z]?,?$/,xa=/^[A-Z]\.,?$/,Ea=/[A-Z]{2,}('s|,)?$/,Fa=/([a-z]\.)+[a-z]\.?$/,Oa=function(e){return function(e){return!0===Ta.test(e)||!0===Fa.test(e)||!0===xa.test(e)||!0===Ea.test(e)}(e)&&(e=e.replace(/\./g,"")),e},za=function(e,t){const n=t.methods.one.killUnicode;let a=e.text||"";a=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.replace(/([0-9]),([0-9])/g,"$1$2")}(a),a=n(a,t),a=Oa(a),e.normal=a},Va=/[ .][A-Z]\.? *$/i,Ba=/(?:\u2026|\.{2,}) *$/,Sa=/\p{L}/u,Ka=/\. *$/,$a=/^[A-Z]\. $/;var La={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:function(e,t){if(e=e||"",!(e=String(e))||"string"!=typeof e||!1===ya.test(e))return[];let n=function(e){let t=[],n=e.split(ua);for(let e=0;e0&&(r.push(o),e[t]="")}return r}(a,t),a=function(e){let t=[];for(let n=0;n0?(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=function(e){for(let t=1;te)),n},splitWhitespace:(e,t)=>{let{str:n,pre:a,post:r}=function(e,t){let{prePunctuation:n,postPunctuation:a,emoticons:r}=t.one,o=e,i="",s="",l=Array.from(e);if(r.hasOwnProperty(e.trim()))return{str:e.trim(),pre:i,post:" "};let u=l.length;for(let e=0;e(s=e||"",""))),e=o,i=""),{str:e,pre:i,post:s}}(e,t);return{text:n,pre:a,post:r,tags:new Set}},fromString:function(e,t){const{methods:n,model:a}=t,{splitSentences:r,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=r(e=e||"",t).map((e=>{let n=o(e,a);return n=n.map((e=>i(e,a))),n.forEach((e=>{za(e,t)})),n})),e}}}};let Ma={},Ja={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","ยตg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach((e=>{e[0].forEach((t=>{Ma[t]=!0,Ja[t]="Abbreviation",void 0!==e[1]&&(Ja[t]=[Ja[t],e[1]])}))}));var Wa=["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","ex"].reduce(((e,t)=>(e[t]=!0,e)),{});let Ua={"!":"ยก","?":"ยฟษ",'"':'โ€œโ€"โโž',"'":"โ€˜โ€›โ›โœโ€™","-":"โ€”โ€“",a:"ยชร€รร‚รƒร„ร…ร รกรขรฃรครฅฤ€ฤฤ‚ฤƒฤ„ฤ…ววŽวžวŸว วกวบวปศ€ศศ‚ศƒศฆศงศบฮ†ฮ‘ฮ”ฮ›ฮฌฮฑฮปะะฐัฆังำำ‘ำ’ำ“ฦ›รฆ",b:"รŸรพฦ€ฦฦ‚ฦƒฦ„ฦ…ษƒฮ’ฮฒฯฯฆะ‘ะ’ะชะฌะฒัŠัŒัขัฃาŒา",c:"ยขยฉร‡รงฤ†ฤ‡ฤˆฤ‰ฤŠฤ‹ฤŒฤฦ†ฦ‡ฦˆศปศผอปอผฯฒฯนฯฝฯพะกัั”า€าาชาซ",d:"รฤŽฤฤฤ‘ฦ‰ฦŠศกฦ‹ฦŒ",e:"รˆร‰รŠร‹รจรฉรชรซฤ’ฤ“ฤ”ฤ•ฤ–ฤ—ฤ˜ฤ™ฤšฤ›ฦศ„ศ…ศ†ศ‡ศจศฉษ†ษ‡ฮˆฮ•ฮžฮฃฮญฮตฮพฯตะ€ะะ•ะตัั‘าผาฝาพาฟำ–ำ—แป…",f:"ฦ‘ฦ’ฯœฯำบำปา’า“ลฟ",g:"ฤœฤฤžฤŸฤ ฤกฤขฤฃฦ“วควฅวฆวงวดวต",h:"ฤคฤฅฤฆฤงฦ•วถศžศŸฮ‰ฮ—ะ‚ะŠะ‹ะะฝั’ั›าขาฃาคาฅาบาปำ‰ำŠ",I:"รŒรรŽร",i:"รฌรญรฎรฏฤจฤฉฤชฤซฤฌฤญฤฎฤฏฤฐฤฑฦ–ฦ—ศˆศ‰ศŠศ‹ฮŠฮฮชฮฏฮนฯŠะ†ะ‡ั–ั—iฬ‡",j:"ฤดฤตวฐศทษˆษ‰ฯณะˆั˜",k:"ฤถฤทฤธฦ˜ฦ™วจวฉฮšฮบะŒะ–ะšะถะบัœาšา›าœาาžาŸา าก",l:"ฤนฤบฤปฤผฤฝฤพฤฟล€ลล‚ฦšฦชว€ววศดศฝฮ™ำ€ำ",m:"ฮœฯบฯปะœะผำำŽ",n:"ร‘รฑลƒล„ล…ล†ล‡ลˆล‰ลŠล‹ฦฦžวธวนศ ศตฮฮ ฮฎฮทฯžะะ˜ะ™ะ›ะŸะธะนะปะฟัาŠา‹ำ…ำ†ำขำฃำคำฅฯ€",o:"ร’ร“ร”ร•ร–ร˜รฐรฒรณรดรตรถรธลŒลลŽลลล‘ฦŸฦ ฦกว‘ว’วชวซวฌวญวพวฟศŒศศŽศศชศซศฌศญศฎศฏศฐศฑฮŒฮ˜ฮŸฮธฮฟฯƒฯŒฯ•ฯ˜ฯ™ฯฌฯดะžะคะพัฒัณำฆำงำจำฉำชำซ",p:"ฦคฮกฯฯทฯธฯผะ ั€าŽารž",q:"ษŠษ‹",r:"ล”ล•ล–ล—ล˜ล™ฦฆศศ‘ศ’ศ“ษŒษะƒะ“ะฏะณัั“าา‘",s:"ลšล›ลœลลžลŸล ลกฦงฦจศ˜ศ™ศฟะ…ั•",t:"ลขลฃลคลฅลฆลงฦซฦฌฦญฦฎศšศ›ศถศพฮ“ฮคฯ„ฯฎะขั‚",u:"ร™รšร›รœรนรบรปรผลจลฉลชลซลฌลญลฎลฏลฐลฑลฒลณฦฏฦฐฦฑฦฒว“ว”ว•ว–ว—ว˜ว™วšว›วœศ”ศ•ศ–ศ—ษ„ฮฐฯ…ฯ‹ฯ",v:"ฮฝัดัตัถัท",w:"ลดลตฦœฯ‰ฯŽฯ–ฯขฯฃะจะฉัˆั‰ักัฟ",x:"ร—ฮงฯ‡ฯ—ฯฐะฅั…าฒาณำผำฝำพำฟ",y:"รรฝรฟลถลทลธฦณฦดศฒศณษŽษฮŽฮฅฮซฮณฯˆฯ’ฯ“ฯ”ะŽะฃัƒั‡ัžัฐัฑาฎาฏาฐาฑำฎำฏำฐำฑำฒำณ",z:"ลนลบลปลผลฝลพฦตฦถศคศฅษ€ฮ–"},qa={};Object.keys(Ua).forEach((function(e){Ua[e].split("").forEach((function(t){qa[t]=e}))}));const Ra=/\//,Qa=/[a-z]\.[a-z]/i,Za=/[0-9]/,Xa=function(e,t){let n=e.normal||e.text||e.machine;const a=t.model.one.aliases;if(a.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(a[n])),Ra.test(n)&&!Qa.test(n)&&!Za.test(n)){let t=n.split(Ra);t.length<=3&&t.forEach((t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))}))}return e},_a=/^\p{Letter}+-\p{Letter}+$/u,Ya=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"),_a.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)},er=function(e,t){let n=e.docs;for(let a=0;aer(e,Xa),machine:e=>er(e,Ya),normal:e=>er(e,za),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}(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}};var sr={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=rr},lib:ir,compute:ar,hooks:["typeahead"]};d.extend(L),d.extend(bn),d.extend(Lt),d.extend(In),d.extend(ia),d.plugin(be),d.extend(nr),d.extend(Pe),d.plugin(p),d.extend(ze),d.extend(sr),d.extend(Ge),d.extend(Tn);var lr={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",volcano:"volcanoes"},ur={Comparative:"trueยฆbett1f0;arth0ew0in0;er",Superlative:"trueยฆearlier",PresentTense:"trueยฆbests,sounds",Condition:"trueยฆlest,unless",PastTense:"trueยฆbegan,came,d4had,kneel3l2m0sa4we1;ea0sg2;nt;eap0i0;ed;id",Participle:"trueยฆ0:09;a06b01cZdXeat0fSgQhPoJprov0rHs7t6u4w1;ak0ithdra02o2r1;i02uY;k0v0;nd1pr04;ergoJoJ;ak0hHo3;e9h7lain,o6p5t4un3w1;o1um;rn;g,k;ol0reS;iQok0;ught,wn;ak0o1runk;ne,wn;en,wn;ewriNi1uJ;dd0s0;ut3ver1;do4se0t1;ak0h2;do2g1;roG;ne;ast0i7;iv0o1;ne,tt0;all0loBor1;bi3g2s1;ak0e0;iv0o9;dd0;ove,r1;a5eamt,iv0;hos0lu1;ng;e4i3lo2ui1;lt;wn;tt0;at0en,gun;r2w1;ak0ok0;is0;en",Gerund:"trueยฆaccord0be0doin,go0result0stain0;ing",Expression:"trueยฆa0Yb0Uc0Sd0Oe0Mfarew0Lg0FhZjeez,lWmVnToOpLsJtIuFvEw7y0;a5e3i1u0;ck,p;k04p0;ee,pee;a0p,s;!h;!a,h,y;a5h2o1t0;af,f;rd up,w;atsoever,e1o0;a,ops;e,w;hoo,t;ery w06oi0L;gh,h0;! 0h,m;huh,oh;here nPsk,ut tut;h0ic;eesh,hh,it,oo;ff,h1l0ow,sst;ease,s,z;ew,ooey;h1i,mg,o0uch,w,y;h,o,ps;! 0h;hTmy go0wT;d,sh;a7evertheless,o0;!pe;eh,mm;ah,eh,m1ol0;!s;ao,fao;aCeBi9o2u0;h,mph,rra0zzC;h,y;l1o0;r6y9;la,y0;! 0;c1moCsmok0;es;ow;!p hip hoor0;ay;ck,e,llo,y;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;ell;e0h,t cetera,ureka,ww,xcuse me;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;mon,o0;ngratulations,wabunga;a2oo1r0tw,ye;avo,r;!ya;h,m; 1h0ka,las,men,rgh,ye;!a,em,h,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ยฆdick0gre0ones,records;ens","Unit|Noun":"trueยฆcEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,t,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s",Value:"trueยฆa few",Imperative:"trueยฆbewa0come he0;re","Plural|Verb":"trueยฆleaves",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:4Q;a3Tb3Bc2Od2He2Df27g1Zh1Ti1Pj1Nk1Ll1Gm12n0Po0Mp0Cqu0Br02sTtHuCv9w3xiaomi,y1;amaha,m1Bou1w1B;gov,tu3C;a4e2iki1orld trade organizati33;leaRped0O;lls fargo,st1;fie2Hinghou2R;l1rner br3U;gree3Jl street journ2Im1E;an halOeriz2Xisa,o1;dafo2Yl1;kswagMvo;b4kip,n2ps,s1;a tod3Aps;es3Mi1;lev3Fted natio3C;er,s; mobi32aco beRd bOe9gi frida3Lh3im horto3Amz,o1witt3D;shi49y1;ota,s r 05;e 1in lizzy;b3carpen3Jdaily ma3Dguess w2holli0s1w2;mashing pumpki35uprem0;ho;ea1lack eyed pe3Xyr0Q;ch bo3Dtl0;l2n3Qs1xas instrumen1U;co,la m1F;efoni0Kus;a8cientology,e5ieme2Ymirnoff,np,o3pice gir6quare0Ata1ubaru;rbuc1to34;ks;ny,undgard1;en;a2x pisto1;ls;g1Wrs;few2Minsbur31lesfor03msu2E;adiohead,b8e4o1yana3C;man empi1Xyal 1;b1dutch she4;ank;a3d 1max,vl20;bu1c2Ahot chili peppe2Ylobst2N;ll;ders dige1Ll madrid;c,s;ant3Aizn2Q;a8bs,e5fiz2Ihilip4i3r1;emier 1udenti1D;leagTo2K;nk floyd,zza hut; morrBs;psi2tro1uge0E;br33chi0Tn33;!co;lant2Un1yp16; 2ason27da2P;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0QvZ;l,s;c,st1Otflix,w1; 1sweek;kids on the block,york0D;a,c;nd22s2t1;ional aca2Po,we0U;a,c02d0S;aDcdonalCe9i6lb,o3tv,y1;spa1;ce;b1Tnsanto,ody blu0t1;ley cr1or0T;ue;c2t1;as,subisO;helin,rosoft;dica2rcedes benz,talli1;ca;id,re;ds;cs milk,tt19z24;a3e1g,ittle caesa1P; ore09novo,x1;is,mark,us; 1bour party;pres0Dz boy;atv,fc,kk,lm,m1od1O;art;iffy lu0Roy divisi0Jpmorgan1sa;! cha09;bm,hop,k3n1tv;g,te1;l,rpol;ea;a5ewlett pack1Vi3o1sbc,yundai;me dep1n1P;ot;tac1zbollah;hi;lliburt08sbro;eneral 6hq,ithub,l5mb,o2reen d0Ou1;cci,ns n ros0;ldman sachs,o1;dye1g0H;ar;axo smith kli04encoW;electr0Nm1;oto0Z;a5bi,c barcelo4da,edex,i2leetwood m03o1rito l0G;rd,xcY;at,fa,nancial1restoZ; tim0;na;cebook,nnie mae;b0Asa,u3xxon1; m1m1;ob0J;!rosceptics;aiml0De5isney,o4u1;nkin donu2po0Zran dur1;an;ts;j,w jon0;a,f lepp12ll,peche mode,r spieg02stiny's chi1;ld;aJbc,hFiDloudflaCnn,o3r1;aigsli5eedence clearwater reviv1ossra09;al;c7inba6l4m1o0Est09;ca2p1;aq;st;dplSg1;ate;se;a c1o chanQ;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil a,na daily;r1y;on;d2pital o1rls jr;ne;bury,ill1;ac;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;cardi,idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser busDol,ppleAr6s4u3v2y1;er;is,on;di,todesk;hland o1sociated E;il;b3g2m1;co;os;ys; compu1be0;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ยฆits,my,our0thy;!s","Noun|Verb":"trueยฆ0:9W;1:AA;2:96;3:A3;4:9R;5:A2;6:9K;7:8N;8:7L;9:A8;A:93;B:8D;C:8X;a9Ob8Qc7Id6Re6Gf5Sg5Hh55i4Xj4Uk4Rl4Em40n3Vo3Sp2Squ2Rr21s0Jt02u00vVwGyFzD;ip,oD;ne,om;awn,e6Fie68;aOeMhJiHoErD;ap,e9Oink2;nd0rDuC;kDry,sh5Hth;!shop;ck,nDpe,re,sh;!d,g;e86iD;p,sD;k,p0t2;aDed,lco8W;r,th0;it,lk,rEsDt4ve,x;h,te;!ehou1ra9;aGen5FiFoD;iDmAte,w;ce,d;be,ew,sA;cuum,l4B;pDr7;da5gra6Elo6A;aReQhrPiOoMrGuEwiDy5Z;n,st;nDrn;e,n7O;aGeFiEoDu6;t,ub2;bu5ck4Jgg0m,p;at,k,nd;ck,de,in,nsDp,v7J;f0i8R;ll,ne,p,r4Yss,t94uD;ch,r;ck,de,e,le,me,p,re;e5Wow,u6;ar,e,ll,mp0st,xt;g,lDng2rg7Ps5x;k,ly;a0Sc0Ne0Kh0Fi0Dk0Cl0Am08n06o05pXquaBtKuFwD;ea88iD;ng,pe,t4;bGit,m,ppErD;fa3ge,pri1v2U;lDo6S;e6Py;!je8;aMeLiKoHrEuDy2;dy,ff,mb2;a85eEiDo5Pugg2;ke,ng;am,ss,t4;ckEop,p,rD;e,m;ing,pi2;ck,nk,t4;er,m,p;ck,ff,ge,in,ke,lEmp,nd,p2rDte,y;!e,t;k,l;aJeIiHlGoFrDur,y;ay,e56inDu3;g,k2;ns8Bt;a5Qit;ll,n,r87te;ed,ll;m,n,rk;b,uC;aDee1Tow;ke,p;a5Je4FiDo53;le,rk;eep,iDou4;ce,p,t;ateboa7Ii;de,gnDl2Vnk,p,ze;!al;aGeFiEoDuff2;ck,p,re,w;ft,p,v0;d,i3Ylt0;ck,de,pe,re,ve;aEed,nDrv1It;se,t2N;l,r4t;aGhedu2oBrD;aEeDibb2o3Z;en,w;pe,t4;le,n,r2M;cDfegua72il,mp2;k,rifi3;aZeHhy6LiGoEuD;b,in,le,n,s5X;a6ck,ll,oDpe,u5;f,t;de,ng,ot,p,s1W;aTcSdo,el,fQgPje8lOmMnLo17pJque6sFturn,vDwa6V;eDi27;al,r1;er74oFpe8tEuD;lt,me;!a55;l71rt;air,eaDly,o53;l,t;dezvo2Zt;aDedy;ke,rk;ea1i4G;a6Iist0r5N;act6Yer1Vo71uD;nd,se;a38o6F;ch,s6G;c1Dge,iEke,lly,nDp1Wt1W;ge,k,t;n,se;es6Biv0;a04e00hYiXlToNrEsy4uD;mp,n4rcha1sh;aKeIiHoDu4O;be,ceFdu3fi2grDje8mi1p,te6;amDe6W;!me;ed,ss;ce,de,nt;sDy;er6Cs;cti3i1;iHlFoEp,re,sDuCw0;e,i5Yt;l,p;iDl;ce,sh;nt,s5V;aEce,e32uD;g,mp,n7;ce,nDy;!t;ck,le,n17pe,tNvot;a1oD;ne,tograph;ak,eFnErDt;fu55mA;!c32;!l,r;ckJiInHrFsEtDu1y;ch,e9;s,te;k,tD;!y;!ic;nt,r,se;!a7;bje8ff0il,oErDutli3Qver4B;bAd0ie9;ze;a4ReFoDur1;d,tD;e,i3;ed,gle8tD;!work;aMeKiIoEuD;rd0;ck,d3Rld,nEp,uDve;nt,th;it5EkD;ey;lk,n4Brr5CsDx;s,ta2B;asuBn4UrDss;ge,it;il,nFp,rk3WsEtD;ch,t0;h,k,t0;da5n0oeuvB;aLeJiHoEuD;mp,st;aEbby,ck,g,oDve;k,t;d,n;cDe,ft,mAnIst;en1k;aDc0Pe4vK;ch,d,k,p,se;bFcEnd,p,t4uD;gh,n4;e,k;el,o2U;eEiDno4E;ck,d,ll,ss;el,y;aEo1OuD;i3mp;m,zz;mpJnEr46ssD;ue;c1Rdex,fluGha2k,se2HteDvoi3;nt,rD;e6fa3viD;ew;en3;a8le2A;aJeHiGoEuD;g,nt;l3Ano2Dok,pDr1u1;!e;ghli1Fke,nt,re,t;aDd7lp;d,t;ck,mGndFrEsh,tDu9;ch,e;bo3Xm,ne4Eve6;!le;!m0;aMear,ift,lKossJrFuD;arDe4Alp,n;antee,d;aFiEoDumb2;uCwth;ll,nd,p;de,sp;ip;aBoDue;ss,w;g,in,me,ng,s,te,ze;aZeWiRlNoJrFuD;ck,el,nDss,zz;c38d;aEoDy;st,wn;cDgme,me,nchi1;tuB;cFg,il,ld,rD;ce,e29mDwa31;!at;us;aFe0Vip,oDy;at,ck,od,wD;!er;g,ke,me,re,sh,vo1E;eGgFlEnDre,sh,t,x;an3i0Q;e,m,t0;ht,uB;ld;aEeDn3;d,l;r,tuB;ce,il,ll,rm,vo2W;cho,d7ffe8nMsKxFyeD;!baD;ll;cGerci1hFpDtra8;eriDo0W;en3me9;au6ibA;el,han7u1;caDtima5;pe;count0d,vy;a01eSiMoJrEuDye;b,el,mp,pli2X;aGeFiEoD;ne,p;ft,ll,nk,p,ve;am,ss;ft,g,in;cEd7ubt,wnloD;ad;k,u0E;ge6p,sFt4vD;e,iDor3;de;char7gui1h,liEpD;at4lay,u5;ke;al,bKcJfeIlGmaCposAsEtaD;il;e07iD;gn,re;ay,ega5iD;ght;at,ct;li04rea1;a5ut;b,ma7n3rDte;e,t;a0Eent0Dh06irc2l03oKrFuD;be,e,rDt;b,e,l,ve;aGeFoEuDy;sh;p,ss,wd;dAep;ck,ft,sh;at,de,in,lTmMnFordina5py,re,st,uDv0;gh,nDp2rt;s01t;ceHdu8fli8glomeIsFtDveN;a8rD;a6ol;e9tru8;ct;ntDrn;ra5;bHfoGmFpD;leDouCromi1;me9;aCe9it,u5;rt;at,iD;ne;lap1oD;r,ur;aEiDoud,ub;ck,p;im,w;aEeDip;at,ck,er;iGllen7nErD;ge,m,t;ge,nD;el;n,r;er,re;ke,ll,mp,noe,pGrXsFtEuDve;se,ti0I;alog,ch;h,t;!tuB;re;a03eZiXlToPrHuEyD;pa11;bb2ck2dgEff0mp,rDst,zz;den,n;et;anJeHiFoadEuD;i1sh;ca6;be,d7;ge;aDed;ch,k;ch,d;aFg,mb,nEoDrd0tt2x,ycott;k,st,t;d,e;rd,st;aFeCiDoYur;nk,tz;nd;me;as,d,ke,nd,opsy,tD;!ch,e;aFef,lt,nDt;d,efA;it;r,t;ck,il,lan3nIrFsEtt2;le;e,h;!gDk;aDe;in;!d,g,k;bu1c05dZge,iYlVnTppQrLsIttGucEwaD;rd;tiD;on;aDempt;ck;k,sD;i6ocia5;st;chFmD;!oD;ur;!iD;ve;eEroa4;ch;al;chDg0sw0;or;aEt0;er;rm;d,m,r;dreHvD;an3oD;ca5;te;ce;ss;cDe,he,t;eFoD;rd,u9;nt;nt,ss;se",Actor:"trueยฆ0:7B;1:7G;2:6A;3:7F;4:7O;5:7K;a6Nb62c4Ud4Be41f3Sg3Bh30i2Uj2Qkin2Pl2Km26n1Zo1Sp0Vqu0Tr0JsQtJuHvEw8yo6;gi,ut6;h,ub0;aAe9i8o7r6;estl0it0;m2rk0;fe,nn0t2Bza2H;atherm2ld0;ge earn0it0nder0rri1;eter7i6oyF;ll5Qp,s3Z;an,ina2U;n6s0;c6Uder03;aoisea23e9herapi5iktok0o8r6ut1yco6S;a6endseLo43;d0mp,nscri0Bvel0;ddl0u1G;a0Qchn7en6na4st0;ag0;i3Oo0D;aiXcUeRhPiMki0mu26oJpGquaFtBu7wee6;p0theart;lt2per7r6;f0ge6Iviv1;h6inten0Ist5Ivis1;ero,um2;a8ep7r6;ang0eam0;bro2Nc2Ofa2Nmo2Nsi20;ff0tesm2;tt0;ec7ir2Do6;kesp59u0M;ia5Jt3;l7me6An,rcere6ul;r,ss;di0oi5;n7s6;sy,t0;g0n0;am2ephe1Iow6;girl,m2r2Q;cretInior cit3Fr6;gea4v6;a4it1;hol4Xi7reen6ulpt1;wr2C;e01on;l1nt;aEe9o8u6;l0nn6;er up,ingE;g40le mod3Zof0;a4Zc8fug2Ppo32searQv6;ere4Uolution6;ary;e6luYru22;ptio3T;bbi,dic5Vpp0;arter6e2Z;back;aYeWhSiRlOoKr8sycho7u6;nk,p31;logi5;aGeDiBo6;d9fess1g7ph47s6;pe2Ktitu51;en6ramm0;it1y;igy,uc0;est4Nme mini0Unce6s3E;!ss;a7si6;de4;ch0;ctiti39nk0P;dca0Oet,li6pula50rnst42;c2Itic6;al scie6i2;nti5;a6umb0;nn0y6;er,ma4Lwright;lgrim,one0;a8iloso7otogra7ra6ysi1V;se;ph0;ntom,rmaci5;r6ssi1T;form0s4O;i3El,nel3Yr8st1tr6wn;i6on;arWot;ent4Wi42tn0;ccupa4ffBp8r7ut6;ca5l0B;ac4Iganiz0ig2Fph2;er3t6;i1Jomet6;ri5;ic0spring;aBe9ie4Xo7u6;n,rser3J;b6mad,vi4V;le2Vo4D;i6mesis,phew;ce,ghb1;nny,rr3t1X;aEeDiAo7u6yst1Y;m8si16;der3gul,m7n6th0;arDk;!my;ni7s6;f02s0Jt0;on,st0;chan1Qnt1rcha4;gi9k0n8rtyr,t6y1;e,riar6;ch;ag0iac;ci2stra3I;a7e2Aieutena4o6;rd,s0v0;bor0d7ndlo6ss,urea3Fwy0ym2;rd;!y;!s28;e8o7u6;ggl0;gg0urna2U;st0;c3Hdol,llu3Ummigra4n6; l9c1Qfa4habi42nov3s7ve6;nt1stig3;pe0Nt6;a1Fig3ru0M;aw;airFeBistoAo8u6ygie1K;man6sba2H;!ita8;bo,st6usekN;age,e3P;ri2;ir,r6;m7o6;!ine;it;dress0sty2C;aLeIhostGirl26ladi3oCrand7u6;e5ru;c9daug0Jfa8m7pa6s2Y;!re4;a,o6;th0;hi1B;al7d6lf0;!de3A;ie,k6te26;eep0;!wr6;it0;isha,n6;i6tl04;us;mbl0rden0;aDella,iAo7r6;eela2Nie1P;e,re6ster pare4;be1Hm2r6st0;unn0;an2ZgZlmm17nanci0r6tt0;e6st la2H; marsh2OfigXm2;rm0th0;conoEdDlectriCm8n7x6;amin0cellency,i2A;emy,trepreneur,vironmenta1J;c8p6;er1loye6;e,r;ee;ci2;it1;mi5;aKeBi8ork,ri7u6we02;de,tche2H;ft0v0;ct3eti7plom2Hre6va;ct1;ci2ti2;aDcor3fencCi0InAput9s7tectLvel6;op0;ce1Ge6ign0;rt0;ee,y;iz6;en;em2;c1Ml0;d8nc0redev7ug6;ht0;il;!dy;a06e04fo,hXitizenWlToBr9u6;r3stomer6;! representat6;ive;e3it6;ic;lJmGnAord9rpor1Nu7w6;boy,ork0;n6ri0;ciTte1Q;in3;fidantAgressSs9t6;e0Kr6;ibut1o6;ll0;tab13ul1O;!e;edi2m6pos0rade;a0EeQissi6;on0;leag8on7um6;ni5;el;ue;e6own;an0r6;ic,k;!s;a9e7i6um;ld;erle6f;ad0;ir7nce6plFract0;ll1;m2wI;lebri6o;ty;dBptAr6shi0;e7pe6;nt0;r,t6;ak0;ain;et;aMeLiJlogg0oErBu6;dd0Fild0rgl9siness6;m2p7w6;om2;ers05;ar;i7o6;!k0th0;cklay0de,gadi0;hemi2oge8y6;!frie6;nd;ym2;an;cyc6sR;li5;atbox0ings;by,nk0r6;b0on7te6;nd0;!e07;c04dWge4nQpLrHsFtAu7yatull6;ah;nt7t6;h1oG;!ie;h8t6;e6orney;nda4;ie5le6;te;sis00tron6;aut,om0;chbis8isto7tis6;an,t;crU;hop;ost9p6;ari6rentiS;ti6;on;le;a9cest1im3nou8y6;bo6;dy;nc0;ly5rc6;hi5;mi8v6;entur0is1;er;ni7r6;al;str3;at1;or;counBquaintanArob9t6;ivi5or,re6;ss;st;at;ce;ta4;nt","Adj|Noun":"trueยฆ0:16;a1Db17c0Ud0Re0Mf0Dg0Ah08i06ju05l02mWnUoSpNrIsBt7u4v1watershed;a1ision0Z;gabo4nilla,ria1;b0Vnt;ndergr1pstairs;adua14ou1;nd;a3e1oken,ri0;en,r1;min0rori13;boo,n;age,e5ilv0Flack,o3quat,ta2u1well;bordina0Xper5;b0Lndard;ciali0Yl1vereign;e,ve16;cret,n1ri0;ior;a4e2ou1ubbiL;nd,tiY;ar,bBl0Wnt0p1side11;resent0Vublican;ci0Qsh;a4eriodic0last0Zotenti0r1;emi2incip0o1;!fession0;er,um;rall4st,tie0U;ff1pposi0Hv0;ens0Oi0C;agg01ov1uts;el;a5e3iniatJo1;bi01der07r1;al,t0;di1tr0N;an,um;le,riG;attOi2u1;sh;ber0ght,qC;stice,veniT;de0mpressioYn1;cumbe0Edividu0no0Dsta0Eterim;alf,o1umdrum;bby,melF;en2old,ra1;ph0Bve;er0ious;a7e5i4l3u1;git03t1;ure;uid;ne;llow,m1;aFiL;ir,t,vo1;riOuriO;l3p00x1;c1ecutUpeV;ess;d1iK;er;ar2e1;mographUrivO;k,l2;hiGlassSo2rude,unn1;ing;m5n1operK;creCstitueOte2vertab1;le;mpor1nt;ary;ic,m2p1;anion,lex;er2u1;ni8;ci0;al;e5lank,o4r1;i2u1;te;ef;ttom,urgeois;st;cadem9d6l2ntarct9r1;ab,ct8;e3tern1;at1;ive;rt;oles1ult;ce1;nt;ic","Adj|Past":"trueยฆ0:4Q;1:4C;2:4H;3:4E;a44b3Tc36d2Je29f20g1Wh1Si1Jj1Gkno1Fl1Am15n12o0Xp0Mqu0Kr08sLtEuAv9w4yellow0;a7ea6o4rinkl0;r4u3Y;n,ri0;k31th3;rp0sh0tZ;ari0e1O;n5p4s0;d1li1Rset;cov3derstood,i4;fi0t0;a8e3Rhr7i6ouTr4urn0wi4C;a4imm0ou2G;ck0in0pp0;ed,r0;eat2Qi37;m0nn0r4;get0ni2T;aOcKeIhGimFm0Hoak0pDt7u4;bsid3Ogge44s4;pe4ta2Y;ct0nd0;a8e7i2Eok0r5u4;ff0mp0nn0;ength2Hip4;ed,p0;am0reotyp0;in0t0;eci4ik0oH;al3Efi0;pRul1;a4ock0ut;d0r0;a4c1Jle2t31;l0s3Ut0;a6or5r4;at4e25;ch0;r0tt3;t4ut0;is2Mur1;aEe5o4;tt0;cAdJf2Bg9je2l8m0Knew0p7qu6s4;eTpe2t4;or0ri2;e3Dir0;e1lac0;at0e2Q;i0Rul1;eiv0o4ycl0;mme2Lrd0v3;in0lli0ti2A;a4ot0;li28;aCer30iBlAo9r5u4;mp0zzl0;e6i2Oo4;ce2Fd4lo1Anou30pos0te2v0;uc0;fe1CocCp0Iss0;i2Kli1L;ann0e2CuS;ck0erc0ss0;ck0i2Hr4st0;allLk0;bse7c6pp13rgan2Dver4;lo4whelm0;ok0;cupi0;rv0;aJe5o4;t0uri1A;ed0gle2;a6e5ix0o4ut0ys1N;di1Nt15u26;as0Clt0;n4rk0;ag0ufact0A;e6i5o4;ad0ck0st,v0;cens0m04st0;ft,v4;el0;tt0wn;a5o15u4;dg0s1B;gg0;llumSmpAn4sol1;br0cre1Ldebt0f8jZspir0t5v4;it0olv0;e4ox0Y;gr1n4re23;d0si15;e2l1o1Wuri1;li0o01r4;ov0;a6e1o4um03;ok0r4;ri0Z;mm3rm0;i6r5u4;a1Bid0;a0Ui0Rown;ft0;aAe9i8l6oc0Ir4;a4i0oz0Y;ctHg19m0;avo0Ju4;st3;ni08tt0x0;ar0;d0il0sc4;in1;dCl1mBn9quipp0s8x4;agger1c6p4te0T;a0Se4os0;ct0rie1D;it0;cap0tabliZ;cha0XgFha1As4;ur0;a0Zbarra0N;i0Buc1;aMeDi5r4;a01i0;gni08miniSre2s4;a9c6grun0Ft4;o4re0Hu17;rt0;iplWou4;nt0r4;ag0;bl0;cBdRf9l8p7ra6t5v4;elop0ot0;ail0ermQ;ng0;re07;ay0ight0;e4in0o0M;rr0;ay0enTor1;m5t0z4;ed,zl0;ag0p4;en0;aPeLhIlHo9r6u4;lt4r0stom03;iv1;a5owd0u4;sh0;ck0mp0;d0loAm7n4ok0v3;centr1f5s4troC;id3olid1;us0;b5pl4;ic1;in0;r0ur0;assi9os0utt3;ar5i4;ll0;g0m0;lebr1n6r4;ti4;fi0;tralJ;g0lcul1;aDewild3iCl9o7r5urn4;ed,t;ok4uis0;en;il0r0t4und;tl0;e5i4;nd0;ss0;as0;ffl0k0laMs0tt3;bPcNdKfIg0lFmaz0nDppBrm0ss9u5wa4;rd0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;a5leg0t3;er0;rm0;fe2;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;and5so4;rb0;on0;ed",Singular:"trueยฆ0:5J;1:5H;2:4W;3:4S;4:52;5:57;6:5L;7:56;8:5B;a52b4Lc3Nd35e2Xf2Og2Jh28in24j23k22l1Um1Ln1Ho1Bp0Rqu0Qr0FsZtMuHvCw9x r58yo yo;a9ha3Po3Q;f3i4Rt0Gy9;! arou39;arCeAideo ga2Qo9;cabu4Jl5C;gOr9t;di4Zt1Y;iety,ni4P;nBp30rAs 9;do43s5E;bani1in0;coordinat3Ader9;estima1to24we41; rex,aKeJhHiFoErBuAv9;! show;m2On2rntLto1D;agedy,ib9o4E;e,u9;n0ta46;ni1p2rq3L;c,er,m9;etF;ing9ree26;!y;am,mp3F;ct2le6x return;aNcMeKhor4QiJkHoGpin off,tDuBy9;ll9ner7st4T;ab2X;b9i1n28per bowl,rro1X;st3Ltot0;atAipe2Go1Lrate7udent9;! lo0I;i39u1;ft ser4Lmeo1I;elet5i9;ll,r3V;b38gn2Tte;ab2Jc9min3B;t,urity gua2N;e6ho2Y;bbatic0la3Jndwi0Qpi5;av5eDhetor2iAo9;de6om,w;tAv9;erb2C;e,u0;bDcBf9publ2r10spi1;er9orm3;e6r0;i9ord label;p2Ht0;a1u46;estion mark,ot2F;aPeMhoLiIlGoErAu9yram1F;ddi3HpErpo1Js3J;eBo9;bl3Zs9;pe3Jta1;dic1Rmi1Fp1Qroga8ss relea1F;p9rt0;py;a9ebisci1;q2Dte;cn2eAg9;!gy;!r;ne call,tocoK;anut,dAr9t0yo1;cen3Jsp3K;al,est0;nop4rAt9;e,hog5;adi11i2V;atme0bj3FcBpia1rde0thers,utspok5ve9wn3;n,r9;ti0Pview;cuAe9;an;pi3;arBitAot9umb3;a2Fhi2R;e,ra1;cot2ra8;aFeCiAo9ur0;nopo4p18rni2Nsq1Rti36uld;c,li11n0As9tt5;chief,si34;dAnu,t9;al,i3;al,ic;gna1mm0nd15rsupi0te9yf4;ri0;aDegCiBu9;ddi1n9;ch;me,p09; Be0M;bor14y9; 9er;up;eyno1itt5;el4ourn0;cBdices,itia8ni25sAtel0Lvert9;eb1J;e28titu1;en8i2T;aIeEighDoAu9;man right,s22;me9rmoFsp1Ftb0K;! r9;un; scho0YriY;a9i1N;d9v5; start,pho9;ne;ndful,sh brown,v5ze;aBelat0Ilaci3r9ul4yp1S;an9enadi3id;a1Cd slam,ny;df4r9;l2ni1I;aGeti1HiFlu1oCrAun9;er0;ee market,i9onti3;ga1;l4ur9;so9;me;ePref4;br2mi4;conoFffi7gg,lecto0Rmbas1EnCpidem2s1Zth2venBxAyel9;id;ampZempl0Nte6;i19t;er7terp9;ri9;se;my;eLiEoBr9ump tru0U;agonf4i9;er,ve thru;cAg7i4or,ssi3wn9;side;to0EumenE;aEgniDnn3sAvide9;nd;conte6incen8p9tri11;osi9;ti0C;ta0H;le0X;athBcAf9ni0terre6;ault 05err0;al,im0;!b9;ed;aWeThMiLlJoDr9;edit caBuc9;ib9;le;rd;efficDke,lCmmuniqLnsApi3rr0t0Xus9yo1;in;erv9uI;ato02;ic,lQ;ie6;er7i9oth;e6n2;ty,vil wM;aDeqCick5ocoBr9;istmas car9ysanthemum;ol;la1;ue;ndeli3racteri9;st2;iAllEr9;e0tifica1;liZ;hi3nFpErCt9ucus;erpi9hedr0;ll9;ar;!bohyd9ri3;ra1;it0;aAe,nib0t9;on;l,ry;aMeLiop2leJoHrDu9;nny,r9tterf4;g9i0;la9;ry;eakAi9;ck;fa9throB;st;dy,ro9wl;ugh;mi9;sh;an,l4;nkiArri3;er;ng;cSdMlInFppeti1rDsBtt2utop9;sy;ic;ce6pe9;ct;r9sen0;ay;ecAoma4tiA;ly;do1;i5l9;er7y;gy;en; hominDjAvan9;tage;ec8;ti9;ve;em;cCeAqui9;tt0;ta1;te;iAru0;al;de6;nt","Person|Noun":"trueยฆa0Eb07c03dWeUfQgOhLjHkiGlFmCnBolive,p7r4s3trini06v1wa0;ng,rd,tts;an,enus,iol0;a,et;ky,onPumm09;ay,e1o0uby;bin,d,se;ed,x;a2e1o0;l,tt04;aLnJ;dYge,tR;at,orm;a0eloW;t0x,ya;!s;a9eo,iH;ng,tP;a2e1o0;lGy;an,w3;de,smi4y;a0erb,iOolBuntR;ll,z0;el;ail,e0iLuy;ne;a1ern,i0lo;elds,nn;ith,n0;ny;a0dEmir,ula,ve;rl;a4e3i1j,ol0;ly;ck,x0;ie;an,ja;i0wn;sy;am,h0liff,rystal;a0in,ristian;mbers,ri0;ty;a4e3i2o,r0ud;an0ook;dy;ll;nedict,rg;k0nks;er;l0rt;fredo,ma","Actor|Verb":"trueยฆaCb8c5doctor,engineAfool,g3host,judge,m2nerd,p1recruit,scout,ushAvolunteAwi0;mp,tneA;arent,ilot;an,ime;eek,oof,r0uide;adu8oom;ha1o0;ach,nscript,ok;mpion,uffeur;o2u0;lly,tch0;er;ss;ddi1ffili0rchite1;ate;ct",MaleName:"trueยฆ0:H6;1:FZ;2:DS;3:GQ;4:CZ;5:FV;6:GM;7:FP;8:GW;9:ET;A:C2;B:GD;aF8bE1cCQdBMeASfA1g8Yh88i7Uj6Sk6Bl5Mm48n3So3Ip33qu31r26s1Et0Ru0Ov0CwTxSyHzC;aCor0;cChC1karia,nAT;!hDkC;!aF6;!ar7CeF5;aJevgenBSoEuC;en,rFVsCu3FvEF;if,uf;nDs6OusC;ouf,s6N;aCg;s,tC;an,h0;hli,nCrosE1ss09;is,nC;!iBU;avi2ho5;aPeNiDoCyaEL;jcieBJlfgang,odrFutR;lFnC;f8TsC;lCt1;ow;bGey,frEhe4QlC;aE5iCy;am,e,s;ed8iC;d,ed;eAur;i,ndeD2rn2sC;!l9t1;lDyC;l1ne;lDtC;!er;aCHy;aKernDAiFladDoC;jteB0lodymyr;!iC;mFQsDB;cFha0ktBZnceDrgCOvC;a0ek;!nC;t,zo;!e4StBV;lCnC7sily;!entC;in9J;ghE2lCm70nax,ri,sm0;riCyss87;ch,k;aWeRhNiLoGrEuDyC;!l2roEDs1;n6r6E;avD0eCist0oy,um0;ntCRvBKy;bFdAWmCny;!asDmCoharu;aFFie,y;!z;iA6y;mCt4;!my,othy;adEeoDia0SomC;!as;!dor91;!de4;dFrC;enBKrC;anBJeCy;ll,nBI;!dy;dgh,ha,iCnn2req,tsu5V;cDAka;aYcotWeThPiMlobod0oKpenc2tEurDvenAEyCzym1;ed,lvest2;aj,e9V;anFeDuC;!aA;fan17phEQvCwaA;e77ie;!islaCl9;v,w;lom1rBuC;leymaDHta;dDgmu9UlCm1yabonga;as,v8B;!dhart8Yn9;aEeClo75;lCrm0;d1t1;h9Jne,qu1Jun,wn,yne;aDbastiEDk2Yl5Mpp,rgCth,ymoCU;e1Dio;m4n;!tC;!ie,y;eDPlFmEnCq67tosCMul;dCj2UtiA5;e01ro;!iATkeB6mC4u5;!ik,vato9K;aZeUheC8iRoGuDyC;an,ou;b99dDf4peAssC;!elEG;ol00y;an,bLc7MdJel,geIh0lHmGnEry,sDyC;!ce;ar7Ocoe,s;!aCnBU;ld,n;an,eo;a7Ef;l7Jr;e3Eg2n9olfo,riC;go;bBNeDH;cCl9;ar87c86h54kCo;!ey,ie,y;cFeA3gDid,ubByCza;an8Ln06;g85iC;naC6s;ep;ch8Kfa5hHin2je8HlGmFndEoHpha5sDul,wi36yC;an,mo8O;h9Im4;alDSol3O;iD0on;f,ph;ul;e9CinC;cy,t1;aOeLhilJiFrCyoG;aDeC;m,st1;ka85v2O;eDoC;tr;r8GtC;er,ro;!ipCl6H;!p6U;dCLrcy,tC;ar,e9JrC;!o7;b9Udra8So9UscAHtri62ulCv8I;!ie,o7;ctav6Ji2lImHndrBRrGsDtCum6wB;is,to;aDc6k6m0vCwaBE;al79;ma;i,vR;ar,er;aDeksandr,ivC;er,i2;f,v;aNeLguyBiFoCu3O;aDel,j4l0ma0rC;beAm0;h,m;cFels,g5i9EkDlC;es,s;!au,h96l78olaC;!i,y;hCkCol76;ol75;al,d,il,ls1vC;ilAF;hom,tC;e,hC;anCy;!a5i5;aYeViLoGuDyC;l4Nr1;hamDr84staC;fa,p6E;ed,mG;di10e,hamEis4JntDritz,sCussa;es,he;e,y;ad,ed,mC;ad,ed;cGgu5hai,kFlEnDtchC;!e8O;a9Pik;house,o7t1;ae73eC3ha8Iolaj;ah,hDkC;!ey,y;aDeC;al,l;el,l;hDlv3rC;le,ri8Ev4T;di,met;ay0c00gn4hWjd,ks2NlTmadZnSrKsXtDuric7VxC;imilBKwe8B;eHhEi69tCus,y69;!eo,hCia7;ew,i67;eDiC;as,eu,s;us,w;j,o;cHiGkFlEqu8Qsha83tCv3;iCy;!m,n;in,on;el,o7us;a6Yo7us;!elCin,o7us;!l8o;frAEi5Zny,u5;achDcoCik;lm;ai,y;amDdi,e5VmC;oud;adCm6W;ou;aulCi9P;ay;aWeOiMloyd,oJuDyC;le,nd1;cFdEiDkCth2uk;a7e;gi,s,z;ov7Cv6Hw6H;!as,iC;a6Een;g0nn52renDuCvA4we7D;!iS;!zo;am,n4oC;n5r;a9Yevi,la5KnHoFst2thaEvC;eCi;nte;bo;nCpo8V;!a82el,id;!nC;aAy;mEnd1rDsz73urenCwr6K;ce,t;ry,s;ar,beAont;aOeIhalHiFla4onr63rDu5SylC;e,s;istCzysztof;i0oph2;er0ngsl9p,rC;ilA9k,ollos;ed,id;en0iGnDrmCv4Z;it;!dDnCt1;e2Ny;ri4Z;r,th;cp2j4mEna8BrDsp6them,uC;ri;im,l;al,il;a03eXiVoFuC;an,lCst3;en,iC;an,en,o,us;aQeOhKkub4AnIrGsDzC;ef;eDhCi9Wue;!ua;!f,ph;dCge;i,on;!aCny;h,s,th6J;anDnC;!ath6Hie,n72;!nC;!es;!l,sCy;ph;o,qu3;an,mC;!i,m6V;d,ffFns,rCs4;a7JemDmai7QoCry;me,ni1H;i9Dy;!e73rC;ey,y;cKdBkImHrEsDvi2yC;dBs1;on,p2;ed,oDrCv67;e6Qod;d,s61;al,es5Wis1;a,e,oCub;b,v;ob,qu13;aTbNchiMgLke53lija,nuKonut,rIsEtCv0;ai,suC;ki;aDha0i8XmaCsac;el,il;ac,iaC;h,s;a,vinCw3;!g;k,nngu6X;nac1Xor;ka;ai,rahC;im;aReLoIuCyd6;beAgGmFsC;eyDsC;a3e3;in,n;ber5W;h,o;m2raDsse3wC;a5Pie;c49t1K;a0Qct3XiGnDrC;beAman08;dr7VrC;iCy2N;!k,q1R;n0Tt3S;bKlJmza,nIo,rEsDyC;a5KdB;an,s0;lEo67r2IuCv9;hi5Hki,tC;a,o;an,ey;k,s;!im;ib;a08e00iUlenToQrMuCyorgy;iHnFsC;!taC;f,vC;!e,o;n6tC;er,h2;do,lC;herDlC;auCerQ;me;aEegCov2;!g,orC;!io,y;dy,h7C;dfr9nza3XrDttfC;ri6C;an,d47;!n;acoGlEno,oCuseppe;rgiCvan6O;!o,s;be6Ies,lC;es;mo;oFrC;aDha4HrC;it,y;ld,rd8;ffErgC;!e7iCy;!os;!r9;bElBrCv3;eCla1Nr4Hth,y;th;e,rC;e3YielC;!i4;aXeSiQlOorrest,rCyod2E;aHedFiC;edDtC;s,z;ri18;!d42eri11riC;ck,k;nCs2;cEkC;ie,lC;in,yn;esLisC;!co,z3M;etch2oC;ri0yd;d5lConn;ip;deriFliEng,rC;dinaCg4nan0B;nd8;pe,x;co;bCdi,hd;iEriC;ce,zC;io;an,en,o;benez2dZfrYit0lTmMnJo3rFsteb0th0ugenEvCymBzra;an,eCge4D;ns,re3K;!e;gi,iDnCrol,v3w3;est8ie,st;cCk;!h,k;o0DriCzo;co,qC;ue;aHerGiDmC;aGe3A;lCrh0;!iC;a10o,s;s1y;nu5;beAd1iEliDm2t1viCwood;n,s;ot28s;!as,j5Hot,sC;ha;a3en;!dGg6mFoDua2QwC;a2Pin;arC;do;oZuZ;ie;a04eTiOmitrNoFrag0uEwDylC;an,l0;ay3Hig4D;a3Gdl9nc0st3;minFnDri0ugCvydGy2S;!lF;!a36nCov0;e1Eie,y;go,iDykC;as;cCk;!k;i,y;armuFetDll1mitri7neCon,rk;sh;er,m6riC;ch;id;andLepak,j0lbeAmetri4nIon,rGsEvDwCxt2;ay30ey;en,in;hawn,moC;nd;ek,riC;ck;is,nC;is,y;rt;re;an,le,mKnIrEvC;e,iC;!d;en,iEne0PrCyl;eCin,yl;l45n;n,o,us;!iCny;el,lo;iCon;an,en,on;a0Fe0Ch03iar0lRoJrFuDyrC;il,us;rtC;!is;aEistC;iaCob12;no;ig;dy,lInErC;ey,neliCy;s,us;nEor,rDstaC;nt3;ad;or;by,e,in,l3t1;aHeEiCyde;fCnt,ve;fo0Xt1;menDt4;us;s,t;rFuDyC;!t1;dCs;e,io;enC;ce;aHeGrisC;!toC;phCs;!eC;!r;st2t;d,rCs;b5leC;s,y;cDdrCs6;ic;il;lHmFrC;ey,lDroCy;ll;!o7t1;er1iC;lo;!eb,v3;a09eZiVjorn,laUoSrEuCyr1;ddy,rtKst2;er;aKeFiEuDyC;an,ce,on;ce,no;an,ce;nDtC;!t;dDtC;!on;an,on;dFnC;dDisC;lav;en,on;!foOl9y;bby,gd0rCyd;is;i0Lke;bElDshC;al;al,lL;ek;nIrCshoi;at,nEtC;!raC;m,nd;aDhaCie;rd;rd8;!iDjam3nCs1;ie,y;to;kaMlazs,nHrC;n9rDtC;!holomew;eCy;tt;ey;dCeD;ar,iC;le;ar1Nb1Dd16fon15gust3hm12i0Zja0Yl0Bm07nTputsiSrGsaFugustEveDyCziz;a0kh0;ry;o,us;hi;aMchiKiJjun,mHnEon,tCy0;em,hCie,ur8;ur;aDoC;!ld;ud,v;aCin;an,nd8;!el,ki;baCe;ld;ta;aq;aMdHgel8tCw6;hoFoC;iDnC;!i8y;ne;ny;er7rCy;eDzC;ej;!as,i,j,s,w;!s;s,tolC;iCy;!y;ar,iEmaCos;nu5r;el;ne,r,t;aVbSdBeJfHiGl01onFphonsEt1vC;aPin;on;e,o;so,zo;!sR;!onZrC;ed;c,jaHksFssaHxC;!andC;er,rC;e,os,u;andCei;ar,er,r;ndC;ro;en;eDrecC;ht;rt8;dd3in,n,sC;taC;ir;ni;dDm6;ar;an,en;ad,eC;d,t;in;so;aGi,olErDvC;ik;ian8;f8ph;!o;mCn;!a;dGeFraDuC;!bakr,lfazl;hCm;am;!l;allFel,oulaye,ulC;!lDrahm0;an;ah,o;ah;av,on",Uncountable:"trueยฆ0:2E;1:2L;2:33;a2Ub2Lc29d22e1Rf1Ng1Eh16i11j0Yk0Wl0Rm0Hn0Do0Cp03rZsLt9uran2Jv7w3you gu0E;a5his17i4oo3;d,l;ldlife,ne;rm8t1;apor,ernacul29i3;neg28ol1Otae;eDhBiAo8r4un3yranny;a,gst1B;aff2Oea1Ko4ue nor3;th;o08u3;bleshoot2Ose1Tt;night,othpas1Vwn3;foEsfoE;me off,n;er3und1;e,mod2S;a,nnis;aDcCeBhAi9ki8o7p6t4u3weepstak0;g1Unshi2Hshi;ati08e3;am,el;ace2Keci0;ap,cc1meth2C;n,ttl0;lk;eep,ingl0or1C;lf,na1Gri0;ene1Kisso1C;d0Wfe2l4nd,t3;i0Iurn;m1Ut;abi0e4ic3;e,ke15;c3i01laxa11search;ogni10rea10;a9e8hys7luto,o5re3ut2;amble,mis0s3ten20;en1Zs0L;l3rk;i28l0EyH; 16i28;a24tr0F;nt3ti0M;i0s;bstetri24vercrowd1Qxyg09;a5e4owada3utella;ys;ptu1Ows;il poliZtional securi2;aAe8o5u3;m3s1H;ps;n3o1K;ey,o3;gamy;a3cha0Elancholy,rchandi1Htallurgy;sl0t;chine3g1Aj1Hrs,thema1Q; learn1Cry;aught1e6i5ogi4u3;ck,g12;c,s1M;ce,ghtn18nguis1LteratWv1;ath1isVss;ara0EindergartPn3;icke0Aowled0Y;e3upit1;a3llyfiGwel0G;ns;ce,gnor6mp5n3;forma00ter3;net,sta07;atiSort3rov;an18;a7e6isto09o3ung1;ckey,mework,ne4o3rseradi8spitali2use arrest;ky;s2y;adquarteXre;ir,libut,ppiHs3;hi3te;sh;ene8l6o5r3um,ymnas11;a3eZ;niUss;lf,re;ut3yce0F;en; 3ti0W;edit0Hpo3;ol;aNicFlour,o4urnit3;ure;od,rgive3uri1wl;ness;arCcono0LducaBlectr9n7quip8thi0Pvery6x3;ist4per3;ti0B;en0J;body,o08th07;joy3tertain3;ment;ici2o3;ni0H;tiS;nings,th;emi02i6o4raugh3ynas2;ts;pe,wnstai3;rs;abet0ce,s3;honZrepu3;te;aDelciChAivi07l8o3urrency;al,ld w6mmenta5n3ral,ttIuscoB;fusiHt 3;ed;ry;ar;assi01oth0;es;aos,e3;eMwK;us;d,rO;a8i6lood,owlHread5u3;ntGtt1;er;!th;lliarJs3;on;g3ss;ga3;ge;cKdviJeroGirFmBn6ppeal court,r4spi3thleL;rin;ithmet3sen3;ic;i6y3;o4th3;ing;ne;se;en5n3;es2;ty;ds;craft;bi8d3nau7;yna3;mi6;ce;id,ous3;ti3;cs",Infinitive:"trueยฆ0:9G;1:9T;2:AD;3:90;4:9Z;5:84;6:AH;7:A9;8:92;9:A0;A:AG;B:AI;C:9V;D:8R;E:8O;F:97;G:6H;H:7D;a94b8Hc7Jd68e4Zf4Mg4Gh4Ai3Qj3Nk3Kl3Bm34nou48o2Vp2Equ2Dr1Es0CtZuTvRwI;aOeNiLors5rI;eJiI;ng,te;ak,st3;d5e8TthI;draw,er;a2d,ep;i2ke,nIrn;d1t;aIie;liADniAry;nJpI;ho8Llift;cov1dJear8Hfound8DlIplug,rav82tie,ve94;eaAo3X;erIo;cut,go,staAFvalA3w2G;aSeQhNoMrIu73;aIe72;ffi3Smp3nsI;aBfo7CpI;i8oD;pp3ugh5;aJiJrIwaD;eat5i2;nk;aImA0;ch,se;ck3ilor,keImp1r8L;! paD;a0Ic0He0Fh0Bi0Al08mugg3n07o05p02qu01tUuLwI;aJeeIim;p,t5;ll7Wy;bNccMffLggeCmmKppJrI;mouFpa6Zvi2;o0re6Y;ari0on;er,i4;e7Numb;li9KmJsiIveD;de,st;er9it;aMe8MiKrI;ang3eIi2;ng27w;fIng;f5le;b,gg1rI;t3ve;a4AiA;a4UeJit,l7DoI;il,of;ak,nd;lIot7Kw;icEve;atGeak,i0O;aIi6;m,y;ft,ng,t;aKi6CoJriIun;nk,v6Q;ot,rt5;ke,rp5tt1;eIll,nd,que8Gv1w;!k,m;aven9ul8W;dd5tis1Iy;a0FeKiJoI;am,t,ut;d,p5;a0Ab08c06d05f01group,hea00iZjoi4lXmWnVpTq3MsOtMup,vI;amp,eJiIo3B;sEve;l,rI;e,t;i8rI;ie2ofE;eLiKpo8PtIurfa4;o24rI;aHiBuctu8;de,gn,st;mb3nt;el,hra0lIreseF;a4e71;d1ew,o07;aHe3Fo2;a7eFiIo6Jy;e2nq41ve;mbur0nf38;r0t;inKleBocus,rJuI;el,rbiA;aBeA;an4e;aBu4;ei2k8Bla43oIyc3;gni39nci3up,v1;oot,uI;ff;ct,d,liIp;se,ze;tt3viA;aAenGit,o7;aWerUinpoiFlumm1LoTrLuI;b47ke,niArIt;poDsuI;aFe;eMoI;cKd,fe4XhibEmo7noJpo0sp1tru6vI;e,i6o5L;un4;la3Nu8;aGclu6dJf1occupy,sup0JvI;a6BeF;etermi4TiB;aGllu7rtr5Ksse4Q;cei2fo4NiAmea7plex,sIva6;eve8iCua6;mp1rItrol,ve;a6It6E;bOccuNmEpMutLverIwe;l07sJtu6Yu0wI;helm;ee,h1F;gr5Cnu2Cpa4;era7i4Ipo0;py,r;ey,seItaH;r2ss;aMe0ViJoIultiply;leCu6Pw;micJnIspla4;ce,g3us;!k;iIke,na9;m,ntaH;aPeLiIo0u3N;ke,ng1quIv5;eIi6S;fy;aKnIss5;d,gI;th5;rn,ve;ng2Gu1N;eep,idnJnI;e4Cow;ap;oHuI;gg3xtaI;po0;gno8mVnIrk;cTdRfQgeChPitia7ju8q1CsNtKun6EvI;a6eIo11;nt,rt,st;erJimi6BoxiPrI;odu4u6;aBn,pr03ru6C;iCpi8tIu8;all,il,ruB;abEibE;eCo3Eu0;iIul9;ca7;i7lu6;b5Xmer0pI;aLer4Uin9ly,oJrI;e3Ais6Bo2;rt,se,veI;riA;le,rt;aLeKiIoiCuD;de,jaInd1;ck;ar,iT;mp1ng,pp5raIve;ng5Mss;ath1et,iMle27oLrI;aJeIow;et;b,pp3ze;!ve5A;gg3ve;aTer45i5RlSorMrJuI;lf4Cndrai0r48;eJiIolic;ght5;e0Qsh5;b3XeLfeEgJsI;a3Dee;eIi2;!t;clo0go,shIwa4Z;ad3F;att1ee,i36;lt1st5;a0OdEl0Mm0FnXquip,rWsVtGvTxI;aRcPeDhOiNpJtIu6;ing0Yol;eKi8lIo0un9;aHoI;it,re;ct,di7l;st,t;a3oDu3B;e30lI;a10u6;lt,mi28;alua7oI;ke,l2;chew,pou0tab19;a0u4U;aYcVdTfSgQhan4joy,lPqOrNsuMtKvI;e0YisI;a9i50;er,i4rI;aHenGuC;e,re;iGol0F;ui8;ar9iC;a9eIra2ulf;nd1;or4;ang1oIu8;r0w;irc3lo0ou0ErJuI;mb1;oaGy4D;b3ct;bKer9pI;hasiIow1;ze;aKody,rI;a4oiI;d1l;lm,rk;ap0eBuI;ci40de;rIt;ma0Rn;a0Re04iKo,rIwind3;aw,ed9oI;wn;agno0e,ff1g,mi2Kne,sLvI;eIul9;rIst;ge,t;aWbVcQlod9mant3pNru3TsMtI;iIoDu37;lJngI;uiA;!l;ol2ua6;eJlIo0ro2;a4ea0;n0r0;a2Xe36lKoIu0S;uIv1;ra9;aIo0;im;a3Kur0;b3rm;af5b01cVduBep5fUliTmQnOpMrLsiCtaGvI;eIol2;lop;ch;a20i2;aDiBloIoD;re,y;oIy;te,un4;eJoI;liA;an;mEv1;a4i0Ao06raud,y;ei2iMla8oKrI;ee,yI;!pt;de,mIup3;missi34po0;de,ma7ph1;aJrief,uI;g,nk;rk;mp5rk5uF;a0Dea0h0Ai09l08oKrIurta1G;a2ea7ipp3uI;mb3;ales4e04habEinci6ll03m00nIrro6;cXdUfQju8no7qu1sLtKvI;eIin4;ne,r9y;aHin2Bribu7;er2iLoli2Epi8tJuI;lt,me;itu7raH;in;d1st;eKiJoIroFu0;rm;de,gu8rm;ss;eJoI;ne;mn,n0;eIlu6ur;al,i2;buCe,men4pI;eIi3ly;l,te;eBi6u6;r4xiC;ean0iT;rcumveFte;eJirp,oI;o0p;riAw;ncIre5t1ulk;el;a02eSi6lQoPrKuI;iXrIy;st,y;aLeaKiJoad5;en;ng;stfeLtX;ke;il,l11mba0WrrMth1;eIow;ed;!coQfrie1LgPhMliLqueaKstJtrIwild1;ay;ow;th;e2tt3;a2eJoI;ld;ad;!in,ui3;me;bysEckfi8ff3tI;he;b15c0Rd0Iff0Ggree,l0Cm09n03ppZrXsQttOuMvJwaE;it;eDoI;id;rt;gIto0X;meF;aIeCraB;ch,in;pi8sJtoI;niA;aKeIi04u8;mb3rt,ss;le;il;re;g0Hi0ou0rI;an9i2;eaKly,oiFrI;ai0o2;nt;r,se;aMi0GnJtI;icipa7;eJoIul;un4y;al;ly0;aJu0;se;lga08ze;iKlI;e9oIu6;t,w;gn;ix,oI;rd;a03jNmiKoJsoI;rb;pt,rn;niIt;st1;er;ouJuC;st;rn;cLhie2knowled9quiItiva7;es4re;ce;ge;eQliOoKrJusI;e,tom;ue;mIst;moJpI;any,liA;da7;ma7;te;pt;andPduBet,i6oKsI;coKol2;ve;liArt,uI;nd;sh;de;ct;on",Person:"trueยฆ0:1Q;a29b1Zc1Md1Ee18f15g13h0Ri0Qj0Nk0Jl0Gm09n06o05p00rPsItCusain bolt,v9w4xzibit,y1;anni,oko on2uji,v1;an,es;en,o;a3ednesday adams,i2o1;lfram,o0Q;ll ferrell,z khalifa;lt disn1Qr1;hol,r0G;a2i1oltai06;n dies0Zrginia wo17;lentino rossi,n goG;a4h3i2ripp,u1yra banks;lZpac shakur;ger woods,mba07;eresa may,or;kashi,t1ylor;um,ya1B;a5carlett johanss0h4i3lobodan milosevic,no2ocr1Lpider1uperm0Fwami; m0Em0E;op dogg,w whi1H;egfried,nbad;akespeaTerlock holm1Sia labeouf;ddam hussa16nt1;a cla11ig9;aAe6i5o3u1za;mi,n dmc,paul,sh limbau1;gh;bin hood,d stew16nald1thko;in0Mo;han0Yngo starr,valdo;ese witherspo0i1mbrandt;ll2nh1;old;ey,y;chmaninoff,ffi,iJshid,y roma1H;a4e3i2la16o1uff daddy;cahont0Ie;lar,p19;le,rZ;lm17ris hilt0;leg,prah winfr0Sra;a2e1iles cra1Bostradam0J; yo,l5tt06wmQ;pole0s;a5e4i2o1ubar03;by,lie5net,rriss0N;randa ju1tt romn0M;ly;rl0GssiaB;cklemo1rkov,s0ta hari,ya angelou;re;ady gaga,e1ibera0Pu;bron jam0Xch wale1e;sa;anye west,e3i1obe bryant;d cudi,efer suther1;la0P;ats,sha;a2effers0fk,k rowling,rr tolki1;en;ck the ripp0Mwaharlal nehru,y z;liTnez,ron m7;a7e5i3u1;lk hog5mphrey1sa01;! bog05;l1tl0H;de; m1dwig,nry 4;an;ile selassFlle ber4m3rrison1;! 1;ford;id,mo09;ry;ast0iannis,o1;odwPtye;ergus0lorence nightinga08r1;an1ederic chopN;s,z;ff5m2nya,ustaXzeki1;el;eril lagasse,i1;le zatop1nem;ek;ie;a6e4i2octor w1rake;ho;ck w1ego maradoC;olf;g1mi lovaOnzel washingt0;as;l1nHrth vadR;ai lNt0;a8h5lint0o1thulhu;n1olio;an,fuci1;us;on;aucKop2ristian baMy1;na;in;millo,ptain beefhe4r1;dinal wols2son1;! palmF;ey;art;a8e5hatt,i3oHro1;ck,n1;te;ll g1ng crosby;atB;ck,nazir bhut2rtil,yon1;ce;to;nksy,rack ob1;ama;l 6r3shton kutch2vril lavig8yn ra1;nd;er;chimed2istot1;le;es;capo2paci1;no;ne",Adjective:"trueยฆ0:AI;1:BS;2:BI;3:BA;4:A8;5:84;6:AV;7:AN;8:AF;9:7H;A:BQ;B:AY;C:BC;D:BH;E:9Y;aA2b9Ec8Fd7We79f6Ng6Eh61i4Xj4Wk4Tl4Im41n3Po36p2Oquart7Pr2Ds1Dt14uSvOwFye29;aMeKhIiHoF;man5oFrth7G;dADzy;despreB1n w97s86;acked1UoleF;!sa6;ather1PeFll o70ste1D;!k5;nt1Ist6Ate4;aHeGiFola5T;bBUce versa,gi3Lle;ng67rsa5R;ca1gBSluAV;lt0PnLpHrGsFttermoBL;ef9Ku3;b96ge1; Hb32pGsFtiAH;ca6ide d4R;er,i85;f52to da2;a0Fbeco0Hc0Bd04e02f01gu1XheaBGiXkn4OmUnTopp06pRrNsJtHus0wF;aFiel3K;nt0rra0P;app0eXoF;ld,uS;eHi37o5ApGuF;perv06spec39;e1ok9O;en,ttl0;eFu5;cogn06gul2RlGqu84sF;erv0olv0;at0en33;aFrecede0E;id,rallel0;am0otic0;aFet;rri0tF;ch0;nFq26vers3;sur0terFv7U;eFrupt0;st0;air,inish0orese98;mploy0n7Ov97xpF;ect0lain0;eHisFocume01ue;clFput0;os0;cid0rF;!a8Scov9ha8Jlyi8nea8Gprivileg0sMwF;aFei9I;t9y;hGircumcFonvin2U;is0;aFeck0;lleng0rt0;b20ppea85ssuGttend0uthorF;iz0;mi8;i4Ara;aLeIhoHip 25oGrF;anspare1encha1i2;geth9leADp notch,rpB;rny,ugh6H;ena8DmpGrFs6U;r49tia4;eCo8P;leFst4M;nt0;a0Dc09e07h06i04ki03l01mug,nobbi4XoVpRqueami4XtKuFymb94;bHccinAi generis,pFr5;erFre7N;! dup9b,vi70;du0li7Lp6IsFurb7J;eq9Atanda9X;aKeJi16o2QrGubboFy4Q;rn;aightFin5GungS; fFfF;or7V;adfa9Pri6;lwa6Ftu82;arHeGir6NlendBot Fry;on;c3Qe1S;k5se; call0lImb9phistic16rHuFviV;ndFth1B;proof;dBry;dFub6; o2A;e60ipF;pe4shod;ll0n d7R;g2HnF;ceEg6ist9;am3Se9;co1Zem5lfFn6Are7; suf4Xi43;aGholFient3A;ar5;rlFt4A;et;cr0me,tisfac7F;aOeIheumatoBiGoF;bu8Ztt7Gy3;ghtFv3; 1Sf6X;cJdu8PlInown0pro69sGtF;ard0;is47oF;lu2na1;e1Suc45;alcit8Xe1ondi2;bBci3mpa1;aSePicayu7laOoNrGuF;bl7Tnjabi;eKiIoF;b7VfGmi49pFxi2M;er,ort81;a7uD;maFor,sti7va2;!ry;ciDexis0Ima2CpaB;in55puli8G;cBid;ac2Ynt 3IrFti2;ma40tFv7W;!i3Z;i2YrFss7R;anoBtF; 5XiF;al,s5V;bSffQkPld OnMrLth9utKverF;!aIbMdHhGni75seas,t,wF;ei74rou74;a63e7A;ue;ll;do1Ger,si6A;d3Qg2Aotu5Z; bFbFe on o7g3Uli7;oa80;fashion0school;!ay; gua7XbFha5Uli7;eat;eHligGsF;ce7er0So1C;at0;diFse;a1e1;aOeNiMoGuF;anc0de; moEnHrthFt6V;!eFwe7L;a7Krn;chaGdescri7Iprof30sF;top;la1;ght5;arby,cessa4ighbor5wlyw0xt;k0usiaFv3;ti8;aQeNiLoHuF;dIltiF;facet0p6;deHlGnFot,rbBst;ochro4Xth5;dy;rn,st;ddle ag0nF;dbloZi,or;ag9diocEga,naGrFtropolit4Q;e,ry;ci8;cIgenta,inHj0Fkeshift,mmGnFri4Oscu61ver18;da5Dy;ali4Lo4U;!stream;abEho;aOeLiIoFumberi8;ngFuti1R;stan3RtF;erm,i4H;ghtGteraF;l,ry,te;heart0wei5O;ft JgFss9th3;al,eFi0M;nda4;nguBps0te5;apGind5noF;wi8;ut;ad0itte4uniW;ce co0Hgno6Mll0Cm04nHpso 2UrF;a2releF;va1; ZaYcoWdReQfOgrNhibi4Ri05nMoLsHtFvalu5M;aAeF;nDrdepe2K;a7iGolFuboI;ub6ve1;de,gF;nifica1;rdi5N;a2er;own;eriIiLluenVrF;ar0eq5H;pt,rt;eHiGoFul1O;or;e,reA;fiFpe26termi5E;ni2;mpFnsideCrreA;le2;ccuCdeq5Ene,ppr4J;fFsitu,vitro;ro1;mJpF;arHeGl15oFrop9;li2r11;n2LrfeA;ti3;aGeFi18;d4BnD;tuE;egGiF;c0YteC;al,iF;tiF;ma2;ld;aOelNiLoFuma7;a4meInHrrGsFur5;ti6;if4E;e58o3U; ma3GsF;ick;ghfalut2HspF;an49;li00pf33;i4llow0ndGrdFtM; 05coEworki8;sy,y;aLener44iga3Blob3oKrGuF;il1Nng ho;aFea1Fizzl0;cGtF;ef2Vis;ef2U;ld3Aod;iFuc2D;nf2R;aVeSiQlOoJrF;aGeFil5ug3;q43tf2O;gFnt3S;i6ra1;lk13oHrF; keeps,eFge0Vm9tu41;g0Ei2Ds3R;liF;sh;ag4Mowe4uF;e1or45;e4nF;al,i2;d Gmini7rF;ti6ve1;up;bl0lDmIr Fst pac0ux;oGreacF;hi8;ff;ed,ili0R;aXfVlTmQnOqu3rMthere3veryday,xF;aApIquisi2traHuF;be48lF;ta1;!va2L;edRlF;icF;it;eAstF;whi6; Famor0ough,tiE;rou2sui2;erGiF;ne1;ge1;dFe2Aoq34;er5;ficF;ie1;g9sF;t,ygF;oi8;er;aWeMiHoGrFue;ea4owY;ci6mina1ne,r31ti8ubQ;dact2Jfficult,m,sGverF;ge1se;creGePjoi1paCtF;a1inA;et,te; Nadp0WceMfiLgeneCliJmuEpeIreliAsGvoF;id,ut;pFtitu2ul1L;eCoF;nde1;ca2ghF;tf13;a1ni2;as0;facto;i5ngero0I;ar0Ce09h07i06l05oOrIuF;rmudgeon5stoma4teF;sy;ly;aIeHu1EystalF; cleFli7;ar;epy;fFv17z0;ty;erUgTloSmPnGrpoCunterclVveFy;rt;cLdJgr21jIsHtrF;aFi2;dic0Yry;eq1Yta1;oi1ug3;escenFuN;di8;a1QeFiD;it0;atoDmensuCpF;ass1SulF;so4;ni3ss3;e1niza1;ci1J;ockwiD;rcumspeAvil;eFintzy;e4wy;leGrtaF;in;ba2;diac,ef00;a00ePiLliJoGrFuck nak0;and new,isk,on22;gGldface,naF; fi05fi05;us;nd,tF;he;gGpartisFzarE;an;tiF;me;autifOhiNlLnHsFyoN;iWtselF;li8;eGiFt;gn;aFfi03;th;at0oF;v0w;nd;ul;ckwards,rF;e,rT; priori,b13c0Zd0Tf0Ng0Ihe0Hl09mp6nt06pZrTsQttracti0MuLvIwF;aGkF;wa1B;ke,re;ant garGeraF;ge;de;diIsteEtF;heFoimmu7;nt07;re;to4;hGlFtu2;eep;en;bitIchiv3roHtF;ifiFsy;ci3;ga1;ra4;ry;pFt;aHetizi8rF;oprF;ia2;llFre1;ed,i8;ng;iquFsy;at0e;ed;cohKiJkaHl,oGriFterX;ght;ne,of;li7;ne;ke,ve;olF;ic;ad;ain07gressiIi6rF;eeF;ab6;le;ve;fGraB;id;ectGlF;ue1;ioF;na2; JaIeGvF;erD;pt,qF;ua2;ma1;hoc,infinitum;cuCquiGtu3u2;al;esce1;ra2;erSjeAlPoNrKsGuF;nda1;e1olu2trF;aAuD;se;te;eaGuF;pt;st;aFve;rd;aFe;ze;ct;ra1;nt",Pronoun:"trueยฆelle,h3i2me,she,th0us,we,you;e0ou;e,m,y;!l,t;e,im",Preposition:"trueยฆaPbMcLdKexcept,fIinGmid,notwithstandiWoDpXqua,sCt7u4v2w0;/o,hereSith0;! whHin,oW;ersus,i0;a,s a vis;n1p0;!on;like,til;h1ill,oward0;!s;an,ereby,r0;ough0u;!oM;ans,ince,o that,uch G;f1n0ut;!to;!f;! 0to;effect,part;or,r0;om;espite,own,u3;hez,irca;ar1e0oBy;sides,tween;ri7;bo8cross,ft7lo6m4propos,round,s1t0;!op;! 0;a whole,long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"trueยฆ0:18;1:1E;2:1D;3:14;a1Db15c0Sd0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Am01new UoRpKqueens parkJreal salt lake,sBt6utah jazz,vancouver whitecaps,w4yW;ashington 4h10;natio1Mredski2wizar0W;ampa bay 7e6o4;ronto 4ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasD;buccanee0ra0K;a8eattle 6porting kansas0Wt4; louis 4oke0V;c1Drams;marine0s4;eah13ounH;cramento Rn 4;antonio spu0diego 4francisco gJjose earthquak1;char08paB; ran07;a9h6ittsburgh 5ortland t4;imbe0rail blaze0;pirat1steele0;il4oenix su2;adelphia 4li1;eagl1philNunE;dr1;akland 4klahoma city thunder,rlando magic;athle0Lrai4;de0;england 8orleans 7york 4;g5je3knYme3red bul0Xy4;anke1;ian3;pelica2sain3;patrio3revolut4;ion;anchEeAi4ontreal impact;ami 8lwaukee b7nnesota 4;t5vi4;kings;imberwolv1wi2;rewe0uc0J;dolphi2heat,marli2;mphis grizz4ts;li1;a6eic5os angeles 4;clippe0dodFlaB;esterV; galaxy,ke0;ansas city 4nF;chiefs,roya0D; pace0polis col3;astr05dynamo,rocke3texa2;olden state warrio0reen bay pac4;ke0;allas 8e4i04od6;nver 6troit 4;lio2pisto2ti4;ge0;broncYnugge3;cowbo5maver4;icZ;ys;arEelLhAincinnati 8leveland 6ol4;orado r4umbus crew sc;api7ocki1;brow2cavalie0guar4in4;dia2;bengaVre4;ds;arlotte horAicago 4;b5cubs,fire,wh4;iteB;ea0ulQ;diff4olina panthe0; city;altimore Alackburn rove0oston 6rooklyn 4uffalo bilN;ne3;ts;cel5red4; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 4;brav1falco2h4;awA;ns;es;on villa,r4;os;c6di4;amondbac4;ks;ardi4;na4;ls",Unit:"trueยฆa07b04cXdWexVfTgRhePinYjoule0BkMlJmDnan08oCp9quart0Bsq ft,t7volts,w6y2ze3ยฐ1ยต0;g,s;c,f,n;dVear1o0;ttR; 0s 0;old;att,b;erNon0;!ne02;ascals,e1i0;cXnt00;rcent,tJ;hms,unceY;/s,e4i0mยฒ,ยฒ,ยณ;/h,cro2l0;e0liK;!ยฒ;grLsR;gCtJ;it1u0;menQx;erPreP;b5elvins,ilo1m0notO;/h,ph,ยฒ;!byGgrEmCs;ct0rtzL;aJogrC;allonJb0ig3rB;ps;a0emtEl oz,t4;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;ยฒ,ยณ;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s","Noun|Gerund":"trueยฆ0:3O;1:3M;2:3N;3:3D;4:32;5:2V;6:3E;7:3K;8:36;9:3J;A:3B;a3Pb37c2Jd27e23f1Vg1Sh1Mi1Ij1Gk1Dl18m13n11o0Wp0Pques0Sr0EsTtNunderMvKwFyDzB;eroi0oB;ni0o3P;aw2eB;ar2l3;aEed4hispe5i5oCrB;ap8est3i1;n0ErB;ki0r31;i1r2s9tc9;isualizi0oB;lunt1Vti0;stan4ta6;aFeDhin6iCraBy8;c6di0i2vel1M;mi0p8;aBs1;c9si0;l6n2s1;aUcReQhOiMkatKl2Wmo6nowJpeItFuCwB;ea5im37;b35f0FrB;fi0vB;e2Mi2J;aAoryt1KrCuB;d2KfS;etc9ugg3;l3n4;bCi0;ebBi0;oar4;gnBnAt1;a3i0;ip8oB;p8rte2u1;a1r27t1;hCo5reBulp1;a2Qe2;edu3oo3;i3yi0;aKeEi4oCuB;li0n2;oBwi0;fi0;aFcEhear7laxi0nDpor1sB;pon4tructB;r2Iu5;de5;or4yc3;di0so2;p8ti0;aFeacek20laEoCrBublis9;a1Teten4in1oces7;iso2siB;tio2;n2yi0;ckaAin1rB;ki0t1O;fEpeDrganiCvB;erco24ula1;si0zi0;ni0ra1;fe5;avi0QeBur7;gotia1twor6;aDeCi2oB;de3nito5;a2dita1e1ssaA;int0XnBrke1;ifUufactu5;aEeaDiBodAyi0;cen7f1mi1stB;e2i0;r2si0;n4ug9;iCnB;ea4it1;c6l3;ogAuB;dAgg3stif12;ci0llust0VmDnBro2;nova1sp0NterBven1;ac1vie02;agi2plo4;aDea1iCoBun1;l4w3;ki0ri0;nd3rB;roWvB;es1;aCene0Lli4rBui4;ee1ie0N;rde2the5;aHeGiDlCorBros1un4;e0Pmat1;ir1oo4;gh1lCnBs9;anZdi0;i0li0;e3nX;r0Zscina1;a1du01nCxB;erci7plo5;chan1di0ginB;ee5;aLeHiGoub1rCum8wB;el3;aDeCiB;bb3n6vi0;a0Qs7;wi0;rTscoDvi0;ba1coZlBvelo8;eCiB;ve5;ga1;nGti0;aVelebUhSlPoDrBur3yc3;aBos7yi0;f1w3;aLdi0lJmFnBo6pi0ve5;dDsCvinB;ci0;trBul1;uc1;muniDpB;lBo7;ai2;ca1;lBo5;ec1;c9ti0;ap8eaCimToBubT;ni0t9;ni0ri0;aBee5;n1t1;ra1;m8rCs1te5;ri0;vi0;aPeNitMlLoGrDuB;dge1il4llBr8;yi0;an4eat9oadB;cas1;di0;a1mEokB;i0kB;ee8;pi0;bi0;es7oa1;c9i0;gin2lonAt1;gi0;bysit1c6ki0tt3;li0;ki0;bando2cGdverti7gi0pproac9rgDssuCtB;trac1;mi0;ui0;hi0;si0;coun1ti0;ti0;ni0;ng",PhrasalVerb:"trueยฆ0:92;1:96;2:8H;3:8V;4:8A;5:83;6:85;7:98;8:90;9:8G;A:8X;B:8R;C:8U;D:8S;E:70;F:97;G:8Y;H:81;I:7H;J:79;a9Fb7Uc6Rd6Le6Jf5Ig50h4Biron0j47k40l3Em31n2Yo2Wp2Cquiet Hr1Xs0KtZuXvacuu6QwNyammerBzK;ero Dip LonK;e0k0;by,ov9up;aQeMhLiKor0Mrit19;mp0n3Fpe0r5s5;ackAeel Di0S;aLiKn33;gh 3Wrd0;n Dr K;do1in,oJ;it 79k5lk Lrm 69sh Kt83v60;aw3do1o7up;aw3in,oC;rgeBsK;e 2herE;a00eYhViRoQrMuKypP;ckErn K;do1in,oJup;aLiKot0y 30;ckl7Zp F;ck HdK;e 5Y;n7Wp 3Es5K;ck MdLe Kghten 6me0p o0Rre0;aw3ba4do1in,up;e Iy 2;by,oG;ink Lrow K;aw3ba4in,up;ba4ov9up;aKe 77ll62;m 2r 5M;ckBke Llk K;ov9shit,u47;aKba4do1in,leave,o4Dup;ba4ft9pa69w3;a0Vc0Te0Mh0Ii0Fl09m08n07o06p01quar5GtQuOwK;earMiK;ngLtch K;aw3ba4o8K; by;cKi6Bm 2ss0;k 64;aReQiPoNrKud35;aigh2Det75iK;ke 7Sng K;al6Yup;p Krm2F;by,in,oG;c3Ln3Lr 2tc4O;p F;c3Jmp0nd LrKveAy 2O;e Ht 2L;ba4do1up;ar3GeNiMlLrKurB;ead0ingBuc5;a49it 6H;c5ll o3Cn 2;ak Fe1Xll0;a3Bber 2rt0und like;ap 5Vow Duggl5;ash 6Noke0;eep NiKow 6;cLp K;o6Dup;e 68;in,oK;ff,v9;de19gn 4NnKt 6Gz5;gKkE; al6Ale0;aMoKu5W;ot Kut0w 7M;aw3ba4f48oC;c2WdeEk6EveA;e Pll1Nnd Orv5tK; Ktl5J;do1foLin,o7upK;!on;ot,r5Z;aw3ba4do1in,o33up;oCto;al66out0rK;ap65ew 6J;ilAv5;aXeUiSoOuK;b 5Yle0n Kstl5;aLba4do1inKo2Ith4Nu5P;!to;c2Xr8w3;ll Mot LpeAuK;g3Ind17;a2Wf3Po7;ar8in,o7up;ng 68p oKs5;ff,p18;aKelAinEnt0;c6Hd K;o4Dup;c27t0;aZeYiWlToQrOsyc35uK;ll Mn5Kt K;aKba4do1in,oJto47up;pa4Dw3;a3Jdo1in,o21to45up;attleBess KiNop 2;ah2Fon;iLp Kr4Zu1Gwer 6N;do1in,o6Nup;nt0;aLuK;gEmp 6;ce u20y 6D;ck Kg0le 4An 6p5B;oJup;el 5NncilE;c53ir 39n0ss MtLy K;ba4oG; Hc2R;aw3ba4in,oJ;pKw4Y;e4Xt D;aLerd0oK;dAt53;il Hrrow H;aTeQiPoLuK;ddl5ll I;c1FnkeyMp 6uthAve K;aKdo1in,o4Lup;l4Nw3; wi4K;ss0x 2;asur5e3SlLss K;a21up;t 6;ke Ln 6rKs2Ax0;k 6ryA;do,fun,oCsure,up;a02eViQoLuK;ck0st I;aNc4Fg MoKse0;k Kse4D;aft9ba4do1forw37in56o0Zu46;in,oJ;d 6;e NghtMnLsKve 00;ten F;e 2k 2; 2e46;ar8do1in;aMt LvelK; oC;do1go,in,o7up;nEve K;in,oK;pKut;en;c5p 2sh LtchBughAy K;do1o59;in4Po7;eMick Lnock K;do1oCup;oCup;eLy K;in,up;l Ip K;aw3ba4do1f04in,oJto,up;aMoLuK;ic5mpE;ke3St H;c43zz 2;a01eWiToPuK;nLrrKsh 6;y 2;keLt K;ar8do1;r H;lKneErse3K;d Ke 2;ba4dKfast,o0Cup;ear,o1;de Lt K;ba4on,up;aw3o7;aKlp0;d Ml Ir Kt 2;fKof;rom;f11in,o03uW;cPm 2nLsh0ve Kz2P;at,it,to;d Lg KkerP;do1in,o2Tup;do1in,oK;ut,v9;k 2;aZeTive Rloss IoMrLunK; f0S;ab hold,in43ow 2U; Kof 2I;aMb1Mit,oLr8th1IuK;nd9;ff,n,v9;bo7ft9hQw3;aw3bKdo1in,oJrise,up,w3;a4ir2H;ar 6ek0t K;aLb1Fdo1in,oKr8up;ff,n,ut,v9;cLhKl2Fr8t,w3;ead;ross;d aKng 2;bo7;a0Ee07iYlUoQrMuK;ck Ke2N;ar8up;eLighten KownBy 2;aw3oG;eKshe27; 2z5;g 2lMol Krk I;aKwi20;bo7r8;d 6low 2;aLeKip0;sh0;g 6ke0mKrKtten H;e F;gRlPnNrLsKzzle0;h F;e Km 2;aw3ba4up;d0isK;h 2;e Kl 1T;aw3fPin,o7;ht ba4ure0;ePnLsK;s 2;cMd K;fKoG;or;e D;d04l 2;cNll Krm0t1G;aLbKdo1in,o09sho0Eth08victim;a4ehi2O;pa0C;e K;do1oGup;at Kdge0nd 12y5;in,o7up;aOi1HoNrK;aLess 6op KuN;aw3b03in,oC;gBwB; Ile0ubl1B;m 2;a0Ah05l02oOrLut K;aw3ba4do1oCup;ackBeep LoKy0;ss Dwd0;by,do1in,o0Uup;me NoLuntK; o2A;k 6l K;do1oG;aRbQforOin,oNtKu0O;hLoKrue;geth9;rough;ff,ut,v9;th,wK;ard;a4y;paKr8w3;rt;eaLose K;in,oCup;n 6r F;aNeLiK;ll0pE;ck Der Kw F;on,up;t 2;lRncel0rOsMtch LveE; in;o1Nup;h Dt K;doubt,oG;ry LvK;e 08;aw3oJ;l Km H;aLba4do1oJup;ff,n,ut;r8w3;a0Ve0MiteAl0Fo04rQuK;bblNckl05il0Dlk 6ndl05rLsKtMy FzzA;t 00;n 0HsK;t D;e I;ov9;anWeaUiLush K;oGup;ghQng K;aNba4do1forMin,oLuK;nd9p;n,ut;th;bo7lKr8w3;ong;teK;n 2;k K;do1in,o7up;ch0;arTg 6iRn5oPrNssMttlLunce Kx D;aw3ba4;e 6; ar8;e H;do1;k Dt 2;e 2;l 6;do1up;d 2;aPeed0oKurt0;cMw K;aw3ba4do1o7up;ck;k K;in,oC;ck0nk0stA; oQaNef 2lt0nd K;do1ov9up;er;up;r Lt K;do1in,oCup;do1o7;ff,nK;to;ck Pil0nMrgLsK;h D;ainBe D;g DkB; on;in,o7;aw3do1in,oCup;ff,ut;ay;ct FdQir0sk MuctionA; oG;ff;ar8o7;ouK;nd; o7;d K;do1oKup;ff,n;wn;o7up;ut",ProperNoun:"trueยฆaIbDc8dalhousHe7f5gosford,h4iron maiden,kirby,landsdowne,m2nis,r1s0wembF;herwood,paldiB;iel,othwe1;cgi0ercedes,issy;ll;intBudsB;airview,lorence,ra0;mpt9nco;lmo,uro;a1h0;arlt6es5risti;rl0talina;et4i0;ng;arb3e0;et1nt0rke0;ley;on;ie;bid,jax","Person|Place":"trueยฆa8d6h4jordan,k3orlando,s1vi0;ctor9rgin9;a0ydney;lvador,mara,ntia4;ent,obe;amil0ous0;ton;arw2ie0;go;lexandr1ust0;in;ia",LastName:"trueยฆ0:BR;1:BF;2:B5;3:BH;4:AX;5:9Y;6:B6;7:BK;8:B0;9:AV;A:AL;B:8Q;C:8G;D:7K;E:BM;F:AH;aBDb9Zc8Wd88e81f7Kg6Wh64i60j5Lk4Vl4Dm39n2Wo2Op25quispe,r1Ls0Pt0Ev03wTxSyKzG;aIhGimmerm6A;aGou,u;ng,o;khar5ytsE;aKeun9BiHoGun;koya32shiBU;!lG;diGmaz;rim,z;maGng;da,g52mo83sGzaC;aChiBV;iao,u;aLeJiHoGright,u;jcA5lff,ng;lGmm0nkl0sniewsC;kiB1liams33s3;bGiss,lt0;b,er,st0;a6Vgn0lHtG;anabe,s3;k0sh,tG;e2Non;aLeKiHoGukD;gt,lk5roby5;dHllalGnogr3Kr1Css0val3S;ba,ob1W;al,ov4;lasHsel8W;lJn dIrgBEsHzG;qu7;ilyEqu7siljE;en b6Aijk,yk;enzueAIverde;aPeix1VhKi2j8ka43oJrIsui,uG;om5UrG;c2n0un1;an,emblA7ynisC;dorAMlst3Km4rrAth;atch0i8UoG;mHrG;are84laci79;ps3sG;en,on;hirDkah9Mnaka,te,varA;a06ch01eYhUiRmOoMtIuHvGzabo;en9Jobod3N;ar7bot4lliv2zuC;aIeHoG;i7Bj4AyanAB;ele,in2FpheBvens25;l8rm0;kol5lovy5re7Tsa,to,uG;ng,sa;iGy72;rn5tG;!h;l71mHnGrbu;at9cla9Egh;moBo7M;aIeGimizu;hu,vchG;en8Luk;la,r1G;gu9infe5YmGoh,pulveA7rra5P;jGyG;on5;evi6iltz,miHneid0roed0uGwarz;be3Elz;dHtG;!t,z;!t;ar4Th8ito,ka4OlJnGr4saCto,unde19v4;ch7dHtGz;a5Le,os;b53e16;as,ihDm4Po0Y;aVeSiPoJuHyG;a6oo,u;bio,iz,sG;so,u;bKc8Fdrigue67ge10j9YmJosevelt,sItHux,wG;e,li6;a9Ch;enb4Usi;a54e4L;erts15i93;bei4JcHes,vGzzo;as,e9;ci,hards12;ag2es,iHut0yG;es,nol5N;s,t0;dImHnGsmu97v6C;tan1;ir7os;ic,u;aUeOhMiJoHrGut8;asad,if6Zochazk27;lishc2GpGrti72u10we76;e3Aov51;cHe45nG;as,to;as70hl0;aGillips;k,m,n6I;a3Hde3Wete0Bna,rJtG;ersHrovGters54;!a,ic;!en,on;eGic,kiBss3;i9ra,tz,z;h86k,padopoulIrk0tHvG;ic,l4N;el,te39;os;bMconn2Ag2TlJnei6PrHsbor6XweBzG;dem7Rturk;ella4DtGwe6N;ega,iz;iGof7Hs8I;vGyn1R;ei9;aSri1;aPeNiJoGune50ym2;rHvGwak;ak4Qik5otn66;odahl,r4S;cholsZeHkolGls4Jx3;ic,ov84;ls1miG;!n1;ils3mG;co4Xec;gy,kaGray2sh,var38;jiGmu9shiG;ma;a07c04eZiWoMuHyeG;rs;lJnIrGssoli6S;atGp03r7C;i,ov4;oz,te58;d0l0;h2lOnNo0RrHsGza1A;er,s;aKeJiIoz5risHtG;e56on;!on;!n7K;au,i9no,t5J;!lA;r1Btgome59;i3El0;cracFhhail5kkeHlG;l0os64;ls1;hmeJiIj30lHn3Krci0ssiGyer2N;!er;n0Po;er,j0;dDti;cartHlG;aughl8e2;hy;dQe7Egnu68i0jer3TkPmNnMrItHyG;er,r;ei,ic,su21thews;iHkDquAroqu8tinG;ez,s;a5Xc,nG;!o;ci5Vn;a5UmG;ad5;ar5e6Kin1;rig77s1;aVeOiLoJuHyG;!nch;k4nGo;d,gu;mbarGpe3Fvr4we;di;!nGu,yana2B;coln,dG;b21holm,strom;bedEfeKhIitn0kaHn8rGw35;oy;!j;m11tG;in1on1;bvGvG;re;iGmmy,ng,rs2Qu,voie,ws3;ne,t1F;aZeYh2iWlUnez50oNrJuHvar2woG;k,n;cerGmar68znets5;a,o34;aHem0isGyeziu;h23t3O;m0sni4Fus3KvG;ch4O;bay57ch,rh0Usk16vaIwalGzl5;czGsC;yk;cIlG;!cGen4K;huk;!ev4ic,s;e8uiveG;rt;eff0kGl4mu9nnun1;ucF;ll0nnedy;hn,llKminsCne,pIrHstra3Qto,ur,yGzl5;a,s0;j0Rls22;l2oG;or;oe;aPenOha6im14oHuG;ng,r4;e32hInHrge32u6vG;anD;es,ss3;anHnsG;en,on,t3;nesGs1R;en,s1;kiBnings,s1;cJkob4EnGrv0E;kDsG;en,sG;en0Ion;ks3obs2A;brahimDglesi5Nke5Fl0Qno07oneIshikHto,vanoG;u,v54;awa;scu;aVeOiNjaltal8oIrist50uG;!aGb0ghAynh;m2ng;a6dz4fIjgaa3Hk,lHpUrGwe,x3X;ak1Gvat;mAt;er,fm3WmG;ann;ggiBtchcock;iJmingw4BnHrGss;nand7re9;deGriks1;rs3;kkiHnG;on1;la,n1;dz4g1lvoQmOns0ZqNrMsJuIwHyG;asFes;kiB;g1ng;anHhiG;mo14;i,ov0J;di6p0r10t;ue;alaG;in1;rs1;aVeorgUheorghe,iSjonRoLrJuGw3;errGnnar3Co,staf3Ctierr7zm2;a,eG;ro;ayli6ee2Lg4iffithGub0;!s;lIme0UnHodGrbachE;e,m2;calvAzale0S;dGubE;bGs0E;erg;aj,i;bs3l,mGordaO;en7;iev3U;gnMlJmaIndFo,rGsFuthi0;cGdn0za;ia;ge;eaHlG;agh0i,o;no;e,on;aVerQiLjeldsted,lKoIrHuG;chs,entAji41ll0;eem2iedm2;ntaGrt8urni0wl0;na;emi6orA;lipIsHtzgeraG;ld;ch0h0;ovG;!ic;hatDnanIrG;arGei9;a,i;deY;ov4;b0rre1D;dKinsJriksIsGvaB;cob3GpGtra3D;inoza,osiQ;en,s3;te8;er,is3warG;ds;aXePiNjurhuMoKrisco15uHvorakG;!oT;arte,boHmitru,nn,rGt3C;and,ic;is;g2he0Omingu7nErd1ItG;to;us;aGcki2Hmitr2Ossanayake,x3;s,z; JbnaIlHmirGrvisFvi,w2;!ov4;gado,ic;th;bo0groot,jo6lHsilGvriA;va;a cruz,e3uG;ca;hl,mcevsCnIt2WviG;dGes,s;ov,s3;ielsGku22;!en;ki;a0Be06hRiobQlarkPoIrGunningh1H;awfo0RivGuz;elli;h1lKntJoIrGs2Nx;byn,reG;a,ia;ke,p0;i,rer2K;em2liB;ns;!e;anu;aOeMiu,oIristGu6we;eGiaG;ns1;i,ng,p9uHwGy;!dH;dGng;huJ;!n,onGu6;!g;kJnIpm2ttHudhGv7;ry;erjee,o14;!d,g;ma,raboG;rty;bJl0Cng4rG;eghetHnG;a,y;ti;an,ota1C;cerAlder3mpbeLrIstGvadi0B;iGro;llo;doHl0Er,t0uGvalho;so;so,zo;ll;a0Fe01hYiXlUoNrKuIyG;rLtyG;qi;chan2rG;ke,ns;ank5iem,oGyant;oks,wG;ne;gdan5nIruya,su,uchaHyKziG;c,n5;rd;darGik;enG;ko;ov;aGond15;nco,zG;ev4;ancFshw16;a08oGuiy2;umGwmG;ik;ckRethov1gu,ktPnNrG;gJisInG;ascoGds1;ni;ha;er,mG;anG;!n;gtGit7nP;ss3;asF;hi;er,hG;am;b4ch,ez,hRiley,kk0ldw8nMrIshHtAu0;es;ir;bInHtlGua;ett;es,i0;ieYosa;dGik;a9yoG;padhyG;ay;ra;k,ng;ic;bb0Acos09d07g04kht05lZnPrLsl2tJyG;aHd8;in;la;chis3kiG;ns3;aImstro6sl2;an;ng;ujo,ya;dJgelHsaG;ri;ovG;!a;ersJov,reG;aGjEws;ss1;en;en,on,s3;on;eksejEiyEmeiIvG;ar7es;ez;da;ev;arwHuilG;ar;al;ams,l0;er;ta;as",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:74;1:61;2:6G;3:6J;4:5S;a68b53c4Id48e44f3Wg3Hh39i31j2Wk2Fl23m1Mn1Co19p0Wq0Ur0Os05tRuQvLwDxiBy9z5;a7h5i4Muri4O;a5e5ongsh0;ng3H;greb,nzib5G;ang2e5okoha3Sunfu;katerin3Hrev0;a5n0Q;m5Hn;arsBeAi6roclBu5;h0xi,zh5P;c7n5;d5nipeg,terth4;hoek,s1L;hi5Zkl3A;l63xford;aw;a8e6i5ladivost5Molgogr6L;en3lni6S;ni22r5;o3saill4N;lenc4Wncouv3Sr3ughn;lan bat1Crumqi,trecht;aFbilisi,eEheDiBo9r7u5;l21n63r5;in,ku;i5ondh62;es51poli;kyo,m2Zron1Pulo5;n,uS;an5jua3l2Tmisoa6Bra3;j4Tshui; hag62ssaloni2H;gucigal26hr0l av1U;briz,i6llinn,mpe56ng5rtu,shk2R;i3Esh0;an,chu1n0p2Eyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4X;ba0Ht;aten is55ockholm,rasbou67uttga2V;an8e6i5;jiazhua1llo1m5Xy0;f50n5;ya1zh4H;gh3Kt4Q;att45o1Vv44;cramen16int ClBn5o paulo,ppo3Rrajevo; 7aa,t5;a 5o domin3E;a3fe,m1M;antonio,die3Cfrancisco,j5ped3Nsalvad0J;o5u0;se;em,t lake ci5Fz25;lou58peters24;a9e8i6o5;me,t59;ga,o5yadh;! de janei3F;cife,ims,nn3Jykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0Q;aFeEhDiCo9r7u6yong5;ya1;eb59ya1;a5etor3M;g52to;rt5zn0; 5la4Co;au prin0Melizabe24sa03;ls3Prae5Atts26;iladelph3Gnom pe1Aoenix;ki1tah tik3E;dua,lerYnaji,r4Ot5;na,r32;ak44des0Km1Mr6s5ttawa;a3Vlo;an,d06;a7ew5ing2Fovosibir1Jyc; 5cast36;del24orlea44taip14;g8iro4Wn5pl2Wshv33v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0W;aEeCi9o6u5;mb2Ani26sc3Y;gadishu,nt6s5;c13ul;evideo,pelli1Rre2Z;ami,l6n14s5;kolc,sissauga;an,waukee;cca,d5lbour2Mmph41ndo1Cssi3;an,ell2Xi3;cau,drAkass2Sl9n8r5shh4A;aca6ib5rakesh,se2L;or;i1Sy;a4EchFdal0Zi47;mo;id;aDeAi8o6u5vSy2;anMckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Lma5nz,sb2verpo28;!ss27; ma39i5;c5pzig;est16; p6g5ho2Wn0Cusan24;os;az,la33;aHharFiClaipeBo9rak0Du7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Hlka2Xpavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bHdu3llakuric0Qmpa3Fn6ohsiu1ra5un1Iwaguc0Q;c0Pj;d5o,p4;ah1Ty;a7e6i5ohannesV;l1Vn0;dd36rusalem;ip4k5;ar2H;bad0mph1OnArkutUs7taXz5;mir,tapala5;pa;fah0l6tanb5;ul;am2Zi2H;che2d5;ianap2Mo20;aAe7o5yder2W; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Oupe;ld coa1Bthen5;bu2S;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal29es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,nkirk,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Zr es sala1KugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1Q;lo7n6penhag0Ar5;do1Ok;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr14;ch8sha,zh07;gliari,i9lga8mayenJn6pe town,r5tanO;acCdiff;ber1Ac5;un;ry;ro;aWeNhKirmingh0WoJr9u5;chareTdapeTenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iCl9ng8r5;g6l5n;in;en;aluru,hazi;fa6grade,o horizon5;te;st;ji1rut;ghd0BkFn9ot8r7s6yan n4;ur;el,r07;celo3i,ranquil09;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a05b02cc01ddis aba00gartaZhmedXizawl,lSmPnHqa00rEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a8c5kaOtwerp;hora6o3;na;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 7buquerq6eppo,giers,ma5;ty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"trueยฆ0:2O;1:2L;2:2U;3:2F;a2Sb2Fc21d1Wes1Vf1Tg1Oh1Ki1Fj1Bk16l13m0Sn09o07pYqVrSsJtEuBverAw6y4zacatec2W;akut0o0Fu4;cat1k09;a5est 4isconsin,yomi1O;bengal,virgin0;rwick3shington4;! dc;acruz,mont;dmurt0t4;ah,tar4; 2Pa12;a6e5laxca1Vripu21u4;scaEva;langa2nnessee,x2J;bas10m4smQtar29;aulip2Hil nadu;a9elang07i7o5taf16u4ylh1J;ff02rr09s1E;me1Gno1Uuth 4;cZdY;ber0c4kkim,naloa;hu1ily;n5rawak,skatchew1xo4;ny; luis potosi,ta catari2;a4hodeA;j4ngp0C;asth1shahi;ingh29u4;e4intana roo;bec,en6retaro;aAe6rince edward4unjab; i4;sl0G;i,n5r4;ak,nambu0F;a0Rnsylv4;an0;ha0Pra4;!na;axa0Zdisha,h4klaho21ntar4reg7ss0Dx0I;io;aLeEo6u4;evo le4nav0X;on;r4tt18va scot0;f9mandy,th4; 4ampton3;c6d5yo4;rk3;ako1O;aroli2;olk;bras1Nva0Dw4; 6foundland4;! and labrad4;or;brunswick,hamp3jers5mexiTyork4;! state;ey;galPyarit;aAeghala0Mi6o4;nta2r4;dov0elos;ch6dlanDn5ss4zor11;issippi,ouri;as geraPneso18;ig1oac1;dhy12harasht0Gine,lac07ni5r4ssachusetts;anhao,i el,ylG;p4toba;ur;anca3e4incoln3ouisI;e4iR;ds;a6e5h4omi;aka06ul2;dah,lant1ntucky,ra01;bardino,lmyk0ns0Qr4;achay,el0nata0X;alis6har4iangxi;kh4;and;co;daho,llino7n4owa;d5gush4;et0;ia2;is;a6ert5i4un1;dalFm0D;ford3;mp3rya2waii;ansu,eorg0lou7oa,u4;an4izhou,jarat;ajuato,gdo4;ng;cester3;lori4uji1;da;sex;ageUe7o5uran4;go;rs4;et;lawaMrby3;aFeaEh9o4rim08umbr0;ahui7l6nnectic5rsi4ventry;ca;ut;i03orado;la;e5hattisgarh,i4uvash0;apRhuahua;chn5rke4;ss0;ya;ra;lGm4;bridge3peche;a9ihar,r8u4;ck4ryat0;ingham3;shi4;re;emen,itish columb0;h0ja cal8lk7s4v7;hkorto4que;st1;an;ar0;iforn0;ia;dygHguascalientes,lBndhr9r5ss4;am;izo2kans5un4;achal 7;as;na;a 4;pradesh;a6ber5t4;ai;ta;ba5s4;ka;ma;ea",Place:"trueยฆ0:4T;1:4V;2:44;3:4B;4:3I;a4Eb3Gc2Td2Ge26f25g1Vh1Ji1Fk1Cl14m0Vn0No0Jp08r04sTtNuLvJw7y5;a5o0Syz;kut1Bngtze;aDeChitBi9o5upatki,ycom2P;ki26o5;d5l1B;b3Ps5;i4to3Y;c0SllowbroCn5;c2Qgh2;by,chur1P;ed0ntw3Gs22;ke6r3St5;erf1f1; is0Gf3V;auxha3Mirgin is0Jost5;ok;laanbaatar,pto5xb3E;n,wn;a9eotihuac43h7ive49o6ru2Nsarskoe selo,u5;l2Dzigo47;nto,rquay,tt2J;am3e 5orn3E;bronx,hamptons;hiti,j mah0Iu1N;aEcotts bluff,eCfo,herbroQoApring9t7u5yd2F;dbu1Wn5;der03set3B;aff1ock2Nr5;atf1oud;hi37w24;ho,uth5; 1Iam1Zwo3E;a5i2O;f2Tt0;int lawrence riv3Pkhal2D;ayleigh,ed7i5oc1Z;chmo1Eo gran4ver5;be1Dfr09si4; s39cliffe,hi2Y;aCe9h8i5ompeii,utn2;c6ne5tcai2T; 2Pc0G;keri13t0;l,x;k,lh2mbr6n5r2J;n1Hzance;oke;cif38pahanaumokuak30r5;k5then0;si4w1K;ak7r6x5;f1l2X;ange county,d,f1inoco;mTw1G;e8i1Uo5;r5tt2N;th5wi0E; 0Sam19;uschwanste1Pw5; eng6a5h2market,po36;rk;la0P;a8co,e6i5uc;dt1Yll0Z;adow5ko0H;lands;chu picchu,gad2Ridsto1Ql8n7ple6r5;kh2; g1Cw11;hatt2Osf2B;ibu,t0ve1Z;a8e7gw,hr,in5owlOynd02;coln memori5dl2C;al;asi4w3;kefr7mbe1On5s,x;ca2Ig5si05;f1l27t0;ont;azan kreml14e6itchen2Gosrae,rasnoyar5ul;sk;ns0Hs1U;ax,cn,lf1n6ps5st;wiN;d5glew0Lverness;ian27ochina;aDeBi6kg,nd,ov5unti2H;d,enweep;gh6llc5;reL;bu03l5;and5;!s;r5yw0C;ef1tf1;libu24mp6r5stings;f1lem,row;stead,t0;aDodavari,r5uelph;avenAe5imsS;at 8en5; 6f1Fwi5;ch;acr3vall1H;brita0Flak3;hur5;st;ng3y villa0W;airhavHco,ra;aAgli9nf17ppi8u7ver6x5;et1Lf1;glad3t0;rope,st0;ng;nt0;rls1Ls5;t 5;e5si4;nd;aCe9fw,ig8o7ryd6u5xb;mfri3nstab00rh2tt0;en;nca18rcKv19wnt0B;by;n6r5vonpo1D;ry;!h2;nu8r5;l6t5;f1moor;ingt0;be;aLdg,eIgk,hClBo5royd0;l6m5rnwa0B;pt0;c7lingw6osse5;um;ood;he0S;earwat0St;a8el6i5uuk;chen itza,mney ro07natSricahua;m0Zt5;enh2;mor5rlottetPth2;ro;dar 5ntervilA;breaks,faZg5;rove;ld9m8r5versh2;lis6rizo pla5;in;le;bLpbellf1;weQ;aZcn,eNingl01kk,lackLolt0r5uckV;aGiAo5;ckt0ok5wns cany0;lyn,s5;i4to5;ne;de;dge6gh5;am,t0;n6t5;own;or5;th;ceb6m5;lNpt0;rid5;ge;bu5pool,wa8;rn;aconsfEdf1lBr9verly7x5;hi5;ll; hi5;lls;wi5;ck; air,l5;ingh2;am;ie5;ld;ltimore,rnsl6tters5;ea;ey;bLct0driadic,frica,ginJlGmFn9rc8s7tl6yleOzor3;es;!ant8;hcroft,ia; de triomphe,t6;adyr,ca8dov9tarct5;ic5; oce5;an;st5;er;ericas,s;be6dersh5hambra,list0;ot;rt0;cou5;rt;bot7i5;ngd0;on;sf1;ord",Country:"trueยฆ0:38;1:2L;2:3B;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om2pZqat1KrXsKtCu7v5wal4yemTz3;a25imbabwe;es,lis and futu2Y;a3enezue32ietnam;nuatu,tican city;gTk6nited 4ruXs3zbeE; 2Ca,sr;arab emirat0Kkingdom,states3;! of am2Y;!raiV;a8haCimor les0Co7rinidad 5u3;nis0rk3valu;ey,me2Zs and caic1V;and t3t3;oba1L;go,kel10nga;iw2ji3nz2T;ki2V;aDcotl1eCi9lov8o6pa2Dri lanka,u5w3yr0;az3edAitzerl1;il1;d2riname;lomon1Xmal0uth 3;afr2KkMsud2;ak0en0;erra leoFn3;gapo1Yt maart3;en;negLrb0ychellZ;int 3moa,n marino,udi arab0;hele26luc0mart21;epublic of ir0Eom2Euss0w3;an27;a4eIhilippinUitcairn1Mo3uerto riN;l1rtugF;ki2Dl4nama,pua new0Vra3;gu7;au,esti3;ne;aBe9i7or3;folk1Ith4w3;ay; k3ern mariana1D;or0O;caragua,ger3ue;!ia;p3ther1Aw zeal1;al;mib0u3;ru;a7exi6icro0Bo3yanm06;ldova,n3roc5zambA;a4gol0t3;enegro,serrat;co;cAdagasc01l7r5urit4yot3;te;an0i16;shall0Xtin3;ique;a4div3i,ta;es;wi,ys0;ao,ed02;a6e5i3uxembourg;b3echtenste12thu1G;er0ya;ban0Isotho;os,tv0;azakh1Fe4iriba04o3uwait,yrgyz1F;rXsovo;eling0Knya;a3erG;ma16p2;c7nd6r4s3taly,vory coast;le of m2rael;a3el1;n,q;ia,oJ;el1;aiTon3ungary;dur0Ng kong;aBermany,ha0QibraltAre8u3;a6ern5inea3ya0P;! biss3;au;sey;deloupe,m,tema0Q;e3na0N;ce,nl1;ar;bUmb0;a7i6r3;ance,ench 3;guia0Epoly3;nes0;ji,nl1;lklandUroeU;ast tim7cu6gypt,l salv6ngl1quatorial4ritr5st3thiop0;on0; guin3;ea;ad3;or;enmark,jibou5ominica4r con3;go;!n C;ti;aBentral african Ah8o5roat0u4yprRzech3; 9ia;ba,racao;c4lo3morQngo brazzaville,okGsta r04te de ivoiL;mb0;osE;i3ristmasG;le,na;republic;m3naUpe verde,ymanA;bod0ero3;on;aGeDhut2o9r5u3;lgar0r3;kina faso,ma,undi;azil,itish 3unei;virgin3; is3;lands;liv0nai5snia and herzegoviHtswaHuvet3; isl1;and;re;l3n8rmuG;ar3gium,ize;us;h4ngladesh,rbad3;os;am4ra3;in;as;fghaGlDmBn6r4ustr3zerbaij2;al0ia;genti3men0uba;na;dorra,g5t3;arct7igua and barbu3;da;o3uil3;la;er3;ica;b3ger0;an0;ia;ni3;st2;an",FirstName:"trueยฆaTblair,cQdOfrancoZgabMhinaLilya,jHkClBm6ni4quinn,re3s0;h0umit,yd;ay,e0iloh;a,lby;g9ne;co,ko0;!s;a1el0ina,org6;!okuhF;ds,naia,r1tt0xiB;i,y;ion,lo;ashawn,eif,uca;a3e1ir0rM;an;lsFn0rry;dall,yat5;i,sD;a0essIie,ude;i1m0;ie,mG;me;ta;rie0y;le;arcy,ev0;an,on;as1h0;arl8eyenne;ey,sidy;drien,kira,l4nd1ubr0vi;ey;i,r0;a,e0;a,y;ex2f1o0;is;ie;ei,is",WeekDay:"trueยฆfri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"trueยฆdec0february,july,nov0octo1sept0;em0;ber",Date:"trueยฆago,on4som4t1week0yesterd5; end,ends;mr1o0;d2morrow;!w;ed0;ay",Duration:"trueยฆcenturAd8h7m5q4se3w1y0;ear8r8;eek0k7;!end,s;ason,c5;tr,uarter;i0onth3;llisecond2nute2;our1r1;ay0ecade0;!s;ies,y",FemaleName:"trueยฆ0:J7;1:JB;2:IJ;3:IK;4:J1;5:IO;6:JS;7:JO;8:HB;9:JK;A:H4;B:I2;C:IT;D:JH;E:IX;F:BA;G:I4;aGTbFLcDRdD0eBMfB4gADh9Ti9Gj8Dk7Cl5Wm48n3Lo3Hp33qu32r29s15t0Eu0Cv02wVxiTyOzH;aLeIineb,oHsof3;e3Sf3la,ra;h2iKlIna,ynH;ab,ep;da,ma;da,h2iHra;nab;aKeJi0FolB7uIvH;et8onDP;i0na;le0sen3;el,gm3Hn,rGLs8W;aoHme0nyi;m5XyAD;aMendDZhiDGiH;dele9lJnH;if48niHo0;e,f47;a,helmi0lHma;a,ow;ka0nB;aNeKiHusa5;ck84kIl8oleAviH;anFenJ4;ky,toriBK;da,lA8rHs0;a,nHoniH9;a,iFR;leHnesH9;nILrH;i1y;g9rHs6xHA;su5te;aYeUhRiNoLrIuHy2;i,la;acJ3iHu0J;c3na,sH;hFta;nHr0F;iFya;aJffaEOnHs6;a,gtiH;ng;!nFSra;aIeHomasi0;a,l9Oo8Ares1;l3ndolwethu;g9Fo88rIssH;!a,ie;eHi,ri7;sa,za;bOlMmKnIrHs6tia0wa0;a60yn;iHya;a,ka,s6;arFe2iHm77ra;!ka;a,iH;a,t6;at6it6;a0Ecarlett,e0AhWiSkye,neza0oQri,tNuIyH;bIGlvi1;ha,mayIJniAsIzH;an3Net8ie,y;anHi7;!a,e,nH;aCe;aIeH;fan4l5Dphan6E;cI5r5;b3fiAAm0LnHphi1;d2ia,ja,ya;er2lJmon1nIobh8QtH;a,i;dy;lETv3;aMeIirHo0risFDy5;a,lDM;ba,e0i5lJrH;iHr6Jyl;!d8Ifa;ia,lDZ;hd,iMki2nJrIu0w0yH;la,ma,na;i,le9on,ron,yn;aIda,ia,nHon;a,on;!ya;k6mH;!aa;lJrItaye82vH;da,inj;e0ife;en1i0ma;anA9bLd5Oh1SiBkKlJmInd2rHs6vannaC;aCi0;ant6i2;lDOma,ome;ee0in8Tu2;in1ri0;a05eZhXiUoHuthDM;bScRghQl8LnPsJwIxH;anB3ie,y;an,e0;aIeHie,lD;ann7ll1marDGtA;!lHnn1;iHyn;e,nH;a,dF;da,i,na;ayy8G;hel67io;bDRerAyn;a,cIkHmas,nFta,ya;ki,o;h8Xki;ea,iannGMoH;da,n1P;an0bJemFgi0iInHta,y0;a8Bee;han86na;a,eH;cHkaC;a,ca;bi0chIe,i0mo0nHquETy0;di,ia;aERelHiB;!e,le;een4ia0;aPeOhMiLoJrHute6A;iHudenCV;scil3LyamvaB;lHrt3;i0ly;a,paluk;ilome0oebe,ylH;is,lis;ggy,nelope,r5t2;ige,m0VnKo5rvaDMtIulH;a,et8in1;ricHt4T;a,e,ia;do2i07;ctav3dIfD3is6ksa0lHphD3umC5yunbileg;a,ga,iv3;eHvAF;l3t8;aWeUiMoIurHy5;!ay,ul;a,eJor,rIuH;f,r;aCeEma;ll1mi;aNcLhariBQkKlaJna,sHta,vi;anHha;ur;!y;a,iDZki;hoGk9YolH;a,e4P;!mh;hir,lHna,risDEsreE;!a,lBV;asuMdLh3i6Dl5nKomi7rgEVtH;aHhal4;lHs6;i1ya;cy,et8;e9iF0ya;nngu2X;a0Ackenz4e02iMoJrignayani,uriDJyH;a,rH;a,iOlNna,tG;bi0i2llBJnH;a,iH;ca,ka,qD9;a,cUdo4ZkaTlOmi,nMrItzi,yH;ar;aJiIlH;anET;am;!l,nB;dy,eHh,n4;nhGrva;aKdJe0iCUlH;iHy;cent,e;red;!gros;!e5;ae5hH;ae5el3Z;ag5DgNi,lKrH;edi7AiIjem,on,yH;em,l;em,sCG;an4iHliCF;nHsCJ;a,da;!an,han;b09cASd07e,g05ha,i04ja,l02n00rLsoum5YtKuIv84xBKyHz4;bell,ra,soBB;d7rH;a,eE;h8Gild1t4;a,cUgQiKjor4l7Un4s6tJwa,yH;!aHbe6Xja9lAE;m,nBL;a,ha,in1;!aJbCGeIja,lDna,sHt63;!a,ol,sa;!l1D;!h,mInH;!a,e,n1;!awit,i;arJeIie,oHr48ueri8;!t;!ry;et46i3B;el4Xi7Cy;dHon,ue5;akranAy;ak,en,iHlo3S;a,ka,nB;a,re,s4te;daHg4;!l3E;alDd4elHge,isDJon0;ei9in1yn;el,le;a0Ne0CiXoQuLyH;d3la,nH;!a,dIe2OnHsCT;!a,e2N;a,sCR;aD4cJel0Pis1lIna,pHz;e,iA;a,u,wa;iHy;a0Se,ja,l2NnB;is,l1UrItt1LuHvel4;el5is1;aKeIi7na,rH;aADi7;lHn1tA;ei;!in1;aTbb9HdSepa,lNnKsJvIzH;!a,be5Ret8z4;!ia;a,et8;!a,dH;a,sHy;ay,ey,i,y;a,iJja,lH;iHy;aA8e;!aH;!nF;ia,ya;!nH;!a,ne;aPda,e0iNjYla,nMoKsJtHx93y5;iHt4;c3t3;e2PlCO;la,nHra;a,ie,o2;a,or1;a,gh,laH;!ni;!h,nH;a,d2e,n5V;cOdon9DiNkes6mi9Gna,rMtJurIvHxmi,y5;ern1in3;a,e5Aie,yn;as6iIoH;nya,ya;fa,s6;a,isA9;a,la;ey,ie,y;a04eZhXiOlASoNrJyH;lHra;a,ee,ie;istHy6I;a,en,iIyH;!na;!e,n5F;nul,ri,urtnB8;aOerNlB7mJrHzzy;a,stH;en,in;!berlImernH;aq;eHi,y;e,y;a,stE;!na,ra;aHei2ongordzol;dij1w5;el7UiKjsi,lJnIrH;a,i,ri;d2na,za;ey,i,lBLs4y;ra,s6;biAcARdiat7MeBAiSlQmPnyakuma1DrNss6NtKviAyH;!e,lH;a,eH;e,i8T;!a6HeIhHi4TlDri0y;ar8Her8Hie,leErBAy;!lyn8Ori0;a,en,iHl5Xoli0yn;!ma,nFs95;a5il1;ei8Mi,lH;e,ie;a,tl6O;a0AeZiWoOuH;anMdLlHst88;es,iH;a8NeHs8X;!n9tH;!a,te;e5Mi3My;a,iA;!anNcelDdMelGhan7VleLni,sIva0yH;a,ce;eHie;fHlDph7Y;a,in1;en,n1;i7y;!a,e,n45;lHng;!i1DlH;!i1C;anNle0nKrJsH;i8JsH;!e,i8I;i,ri;!a,elGif2CnH;a,et8iHy;!e,f2A;a,eJiInH;a,eIiH;e,n1;!t8;cMda,mi,nIque4YsminFvie2y9zH;min7;a7eIiH;ce,e,n1s;!lHs82t0F;e,le;inIk6HlDquelH;in1yn;da,ta;da,lRmPnOo0rNsIvaHwo0zaro;!a0lu,na;aJiIlaHob89;!n9R;do2;belHdo2;!a,e,l3B;a7Ben1i0ma;di2es,gr72ji;a9elBogH;en1;a,e9iHo0se;a0na;aSeOiJoHus7Kyacin2C;da,ll4rten24snH;a,i9U;lImaH;ri;aIdHlaI;a,egard;ry;ath1BiJlInrietArmi9sH;sa,t1A;en2Uga,mi;di;bi2Fil8MlNnMrJsItHwa,yl8M;i5Tt4;n60ti;iHmo51ri53;etH;!te;aCnaC;a,ey,l4;a02eWiRlPoNrKunJwH;enHyne1R;!dolD;ay,el;acieIetHiselB;a,chE;!la;ld1CogooH;sh;adys,enHor3yn2K;a,da,na;aKgi,lIna,ov8EselHta;a,e,le;da,liH;an;!n0;mLnJorgIrH;ald5Si,m3Etrud7;et8i4X;a,eHna;s29vieve;ma;bIle,mHrnet,yG;al5Si5;iIrielH;a,l1;!ja;aTeQiPlorOoz3rH;anJeIiH;da,eB;da,ja;!cH;esIiHoi0P;n1s66;!ca;a,enc3;en,o0;lIn0rnH;anB;ec3ic3;jr,nArKtHy7;emIiHma,oumaA;ha,ma,n;eh;ah,iBrah,za0;cr4Rd0Re0Qi0Pk0Ol07mXn54rUsOtNuMvHwa;aKelIiH;!e,ta;inFyn;!a;!ngel4V;geni1ni47;h5Yien9ta;mLperanKtH;eIhHrel5;er;l31r7;za;a,eralB;iHma,ne4Lyn;cHka,n;a,ka;aPeNiKmH;aHe21ie,y;!li9nuH;elG;lHn1;e7iHy;a,e,ja;lHrald;da,y;!nue5;aWeUiNlMma,no2oKsJvH;a,iH;na,ra;a,ie;iHuiH;se;a,en,ie,y;a0c3da,e,f,nMsJzaH;!betHveA;e,h;aHe,ka;!beH;th;!a,or;anor,nH;!a,i;!in1na;ate1Rta;leEs6;vi;eIiHna,wi0;e,th;l,n;aYeMh3iLjeneKoH;lor5Vminiq4Ln3FrHtt4;a,eEis,la,othHthy;ea,y;ba;an09naCon9ya;anQbPde,eOiMlJmetr3nHsir5M;a,iH;ce,se;a,iIla,orHphi9;es,is;a,l6F;dHrdH;re;!d5Ena;!b2ForaCraC;a,d2nH;!a,e;hl3i0l0GmNnLphn1rIvi1WyH;le,na;a,by,cIia,lH;a,en1;ey,ie;a,et8iH;!ca,el1Aka,z;arHia;is;a0Re0Nh04i02lUoJristIynH;di,th3;al,i0;lPnMrIurH;tn1D;aJd2OiHn2Ori9;!nH;a,e,n1;!l4;cepci5Cn4sH;tanHuelo;ce,za;eHleE;en,t8;aJeoIotH;il54;!pat2;ir7rJudH;et8iH;a,ne;a,e,iH;ce,sZ;a2er2ndH;i,y;aReNloe,rH;isJyH;stH;al;sy,tH;a1Sen,iHy;an1e,n1;deJlseIrH;!i7yl;a,y;li9;nMrH;isKlImH;ai9;a,eHot8;n1t8;!sa;d2elGtH;al,elG;cIlH;es8i47;el3ilH;e,ia,y;itlYlXmilWndVrMsKtHy5;aIeIhHri0;er1IleErDy;ri0;a38sH;a37ie;a,iOlLmeJolIrH;ie,ol;!e,in1yn;lHn;!a,la;a,eIie,otHy;a,ta;ne,y;na,s1X;a0Ii0I;a,e,l1;isAl4;in,yn;a0Ke02iZlXoUrH;andi7eRiJoIyH;an0nn;nwDoke;an3HdgMgiLtH;n31tH;!aInH;ey,i,y;ny;d,t8;etH;!t7;an0e,nH;da,na;bbi7glarIlo07nH;iAn4;ka;ancHythe;a,he;an1Clja0nHsm3M;iAtH;ou;aWcVlinUniArPssOtJulaCvH;!erlH;ey,y;hJsy,tH;e,iHy7;e,na;!anH;ie,y;!ie;nItHyl;ha,ie;adIiH;ce;et8i9;ay,da;ca,ky;!triH;ce,z;rbJyaH;rmH;aa;a2o2ra;a2Ub2Od25g21i1Sj5l18m0Zn0Boi,r06sWtVuPvOwa,yIzH;ra,u0;aKes6gJlIn,seH;!l;in;un;!nH;a,na;a,i2K;drLguJrIsteH;ja;el3;stH;in1;a,ey,i,y;aahua,he0;hIi2Gja,miAs2DtrH;id;aMlIraqHt21;at;eIi7yH;!n;e,iHy;gh;!nH;ti;iJleIo6piA;ta;en,n1t8;aHelG;!n1J;a01dje5eZgViTjRnKohito,toHya;inet8nH;el5ia;te;!aKeIiHmJ;e,ka;!mHtt7;ar4;!belIliHmU;sa;!l1;a,eliH;ca;ka,sHta;a,sa;elHie;a,iH;a,ca,n1qH;ue;!tH;a,te;!bImHstasiMya;ar3;el;aLberKeliJiHy;e,l3naH;!ta;a,ja;!ly;hGiIl3nB;da;a,ra;le;aWba,ePiMlKthJyH;a,c3sH;a,on,sa;ea;iHys0N;e,s0M;a,cIn1sHza;a,e,ha,on,sa;e,ia,ja;c3is6jaKksaKna,sJxH;aHia;!nd2;ia,saH;nd2;ra;ia;i0nIyH;ah,na;a,is,naCoud;la;c6da,leEmNnLsH;haClH;inHyY;g,n;!h;a,o,slH;ey;ee;en;at6g4nIusH;ti0;es;ie;aWdiTelMrH;eJiH;anMenH;a,e,ne;an0;na;!aLeKiIyH;nn;a,n1;a,e;!ne;!iH;de;e,lDsH;on;yn;!lH;i9yn;ne;aKbIiHrL;!e,gaK;ey,i7y;!e;gaH;il;dKliyJradhIs6;ha;ya;ah;a,ya",Honorific:"trueยฆdirector1field marsh2lieutenant1rear0sergeant major,vice0; admir1; gener0;al","Adj|Gerund":"trueยฆ0:3F;1:3H;2:31;3:2X;4:35;5:33;6:3C;7:2Z;8:36;9:29;a33b2Tc2Bd1Te1If19g12h0Zi0Rl0Nm0Gnu0Fo0Ap04rYsKtEuBvAw1Ayiel3;ar6e08;nBpA;l1Rs0B;fol3n1Zsett2;aEeDhrBi4ouc7rAwis0;e0Bif2oub2us0yi1;ea1SiA;l2vi1;l2mp0rr1J;nt1Vxi1;aMcreec7enten2NhLkyrocke0lo0Vmi2oJpHtDuBweA;e0Ul2;pp2ArA;gi1pri5roun3;aBea8iAri2Hun9;mula0r4;gge4rA;t2vi1;ark2eAraw2;e3llb2F;aAot7;ki1ri1;i9oc29;dYtisf6;aEeBive0oAus7;a4l2;assu4defi9fres7ig9juve07mai9s0vAwar3;ea2italiAol1G;si1zi1;gi1ll6mb2vi1;a6eDier23lun1VrAun2C;eBoA;mi5vo1Z;ce3s5vai2;n3rpleA;xi1;ffCpWutBverAwi1;arc7lap04p0Pri3whel8;goi1l6st1J;en3sA;et0;m2Jrtu4;aEeDiCoBuAyst0L;mb2;t1Jvi1;s5tiga0;an1Rl0n3smeri26;dAtu4;de9;aCeaBiAo0U;fesa0Tvi1;di1ni1;c1Fg19s0;llumiGmFnArri0R;cDfurHsCtBviA;go23ti1;e1Oimi21oxica0rig0V;pi4ul0;orpo20r0K;po5;na0;eaBorr02umilA;ia0;li1rtwar8;lFrA;atiDipCoBuelA;i1li1;undbrea10wi1;pi1;f6ng;a4ea8;a3etc7it0lEoCrBulfA;il2;ee1FighXust1L;rAun3;ebo3thco8;aCoA;a0wA;e4i1;mi1tte4;lectrJmHnExA;aCci0hBis0pA;an3lo3;aOila1B;c0spe1A;ab2coura0CdBergi13ga0Clive9ric7s02tA;hral2i0J;ea4u4;barras5er09pA;owe4;if6;aQeIiBrA;if0;sAzz6;aEgDhearCsen0tA;rAur11;ac0es5;te9;us0;ppoin0r8;biliGcDfi9gra3ligh0mBpres5sAvasG;erE;an3ea9orA;ali0L;a6eiBli9rA;ea5;vi1;ta0;maPri1s7un0zz2;aPhMlo5oAripp2ut0;mGnArrespon3;cer9fDspi4tA;inBrA;as0ibu0ol2;ui1;lic0u5;ni1;fDmCpA;eAromi5;l2ti1;an3;or0;aAil2;llenAnAr8;gi1;l8ptAri1;iva0;aff2eGin3lFoDrBuA;d3st2;eathtaAui5;ki1;gg2i2o8ri1unA;ci1;in3;co8wiA;lAtc7;de4;bsorVcOgonMlJmHnno6ppea2rFsA;pi4su4toA;nBun3;di1;is7;hi1;res0;li1;aFu5;si1;ar8lu4;ri1;mi1;iAzi1;zi1;cAhi1;eleDomA;moBpan6;yi1;da0;ra0;ti1;bi1;ng",Comparable:"trueยฆ0:3C;1:3Q;2:3F;a3Tb3Cc33d2Te2Mf2Ag1Wh1Li1Fj1Ek1Bl13m0Xn0So0Rp0Iqu0Gr07sHtCug0vAw4y3za0Q;el10ouN;ary,e6hi5i3ry;ck0Cde,l3n1ry,se;d,y;ny,te;a3i3R;k,ry;a3erda2ulgar;gue,in,st;a6en2Xhi5i4ouZr3;anqu2Cen1ue;dy,g36me0ny;ck,rs28;ll,me,rt,wd3I;aRcaPeOhMiLkin0BlImGoEpDt6u4w3;eet,ift;b3dd0Wperfi21rre28;sta26t21;a8e7iff,r4u3;pUr1;a4ict,o3;ng;ig2Vn0N;a1ep,rn;le,rk,te0;e1Si2Vright0;ci1Yft,l3on,re;emn,id;a3el0;ll,rt;e4i3y;g2Mm0Z;ek,nd2T;ck24l0mp1L;a3iRrill,y;dy,l01rp;ve0Jxy;n1Jr3;ce,y;d,fe,int0l1Hv0V;a8e6i5o3ude;mantic,o19sy,u3;gh;pe,t1P;a3d,mo0A;dy,l;gg4iFndom,p3re,w;id;ed;ai2i3;ck,et;hoAi1Fl9o8r5u3;ny,r3;e,p11;egna2ic4o3;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e5i4o3u14;b0Sisy,rm0Ysy;bb0ce,mb0R;a3r1w;r,t;ad,e5ild,o4u3;nda12te;ist,o1;a4ek,l3;low;s0ty;a8e7i6o3ucky;f0Jn4o15u3ve0w10y0N;d,sy;e0g;ke0l,mp,tt0Eve0;e1Qwd;me,r3te;ge;e4i3;nd;en;ol0ui19;cy,ll,n3;secu6t3;e3ima4;llege2rmedia3;te;re;aAe7i6o5u3;ge,m3ng1C;bYid;me0t;gh,l0;a3fXsita2;dy,rWv3;en0y;nd13ppy,r3;d3sh;!y;aFenEhCiBlAoofy,r3;a8e6i5o3ue0Z;o3ss;vy;m,s0;at,e3y;dy,n;nd,y;ad,ib,ooD;a2d1;a3o3;st0;tDuiS;u1y;aCeebBi9l8o6r5u3;ll,n3r0N;!ny;aCesh,iend0;a3nd,rmD;my;at,ir7;erce,nan3;ci9;le;r,ul3;ty;a6erie,sse4v3xtre0B;il;nti3;al;r4s3;tern,y;ly,th0;appZe9i5ru4u3;mb;nk;r5vi4z3;zy;ne;e,ty;a3ep,n9;d3f,r;!ly;agey,h8l7o5r4u3;dd0r0te;isp,uel;ar3ld,mmon,st0ward0zy;se;evKou1;e3il0;ap,e3;sy;aHiFlCoAr5u3;ff,r0sy;ly;a6i3oad;g4llia2;nt;ht;sh,ve;ld,un3;cy;a4o3ue;nd,o1;ck,nd;g,tt3;er;d,ld,w1;dy;bsu6ng5we3;so3;me;ry;rd",Adverb:"trueยฆa08b05d00eYfSheQinPjustOkinda,likewiZmMnJoEpCquite,r9s5t2u0very,well;ltima01p0; to,wards5;h1iny bit,o0wiO;o,t6;en,us;eldom,o0uch;!me1rt0; of;how,times,w0C;a1e0;alS;ndomRth05;ar excellenEer0oint blank; Lhaps;f3n0utright;ce0ly;! 0;ag05moX; courGten;ewJo0; longWt 0;onHwithstand9;aybe,eanwhiNore0;!ovT;! aboX;deed,steY;lla,n0;ce;or3u0;ck1l9rther0;!moK;ing; 0evK;exampCgood,suH;n mas0vI;se;e0irect2; 2fini0;te0;ly;juAtrop;ackward,y 0;far,no0; means,w; GbroFd nauseam,gEl7ny5part,s4t 2w0;ay,hi0;le;be7l0mo7wor7;arge,ea6; soon,i4;mo0way;re;l 3mo2ongsi1ready,so,togeth0ways;er;de;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"trueยฆaXbTcReNhowMiEjust00noBo9p8supposing,t5wh0yet;e1il0o3;e,st;n1re0thN; if,by,vM;evL;h0il,o;erefOo0;!uU;lus,rovided th9;r0therwiM;! not; mattEr,w0;! 0;since,th4w7;f4n0; 0asmuch;as mIcaForder t0;h0o;at;! 0;only,t0w0;hen;!ev3;ith2ven0;! 0;if,tB;er;o0uz;s,z;e0ut,y the time;cau1f0;ore;se;lt3nd,s 0;far1if,m0soon1t2;uch0; as;hou0;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",Determiner:"trueยฆaBboth,d9e6few,le5mu8neiDplenty,s4th2various,wh0;at0ich0;evC;a0e4is,ose;!t;everal,ome;!ast,s;a1l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er","Adj|Present":"trueยฆa07b04cVdQeNfJhollIidRlEmCnarrIoBp9qua8r7s3t2uttFw0;aKet,ro0;ng,u08;endChin;e2hort,l1mooth,our,pa9tray,u0;re,speU;i2ow;cu6da02leSpaN;eplica01i02;ck;aHerfePr0;eseUime,omV;bscu1pen,wn;atu0e3odeH;re;a2e1ive,ow0;er;an;st,y;ow;a2i1oul,r0;ee,inge;rm;iIke,ncy,st;l1mpty,x0;emHpress;abo4ic7;amp,e2i1oub0ry,ull;le;ffu9re6;fu8libe0;raE;alm,l5o0;mpleCn3ol,rr1unterfe0;it;e0u7;ct;juga8sum7;ea1o0;se;n,r;ankru1lu0;nt;pt;li2pproxi0rticula1;ma0;te;ght","Person|Adj":"trueยฆb3du2earnest,frank,mi2r0san1woo1;an0ich,u1;dy;sty;ella,rown",Modal:"trueยฆc5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Verb:"trueยฆborn,cannot,gonna,has,keep tabs,msg","Person|Verb":"trueยฆb8ch7dr6foster,gra5ja9lan4ma2ni9ollie,p1rob,s0wade;kip,pike,t5ue;at,eg,ier2;ck,r0;k,shal;ce;ce,nt;ew;ase,u1;iff,l1ob,u0;ck;aze,ossom","Person|Date":"trueยฆa2j0sep;an0une;!uary;p0ugust,v0;ril"};const cr=36,dr="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",hr=dr.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var gr=function(e){if(void 0!==hr[e])return hr[e];let t=0,n=1,a=cr,r=1;for(;n=0;n--,r*=cr){let a=e.charCodeAt(n)-48;a>10&&(a-=7),t+=a*r}return t};const mr=function(e,t,n){const a=gr(t);return a{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{let t=function(e){if(!e)return{};const t=e.split("|").reduce(((e,t)=>{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{if(Pr[t]=e,"Noun|Verb"===e){let e=vr(t,Ar);Pr[e]="Plural|Verb"}})):Object.keys(t).forEach((t=>{kr[t]=e}))})),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","kr[e]="Emoticon")),delete kr[""],delete kr.null,delete kr[" "];const Cr="Singular";var jr={beforeTags:{Determiner:Cr,Possessive:Cr,Acronym:Cr,Noun:Cr,Adjective:Cr,PresentTense:Cr,Gerund:Cr,PastTense:Cr,Infinitive:Cr,Date:Cr,Ordinal:Cr,Demonym:Cr},afterTags:{Value:Cr,Modal:Cr,Copula:Cr,PresentTense:Cr,PastTense:Cr,Demonym:Cr,Actor:Cr},beforeWords:{the:Cr,with:Cr,without:Cr,of:Cr,for:Cr,any:Cr,all:Cr,on:Cr,cut:Cr,cuts:Cr,increase:Cr,decrease:Cr,raise:Cr,drop:Cr,save:Cr,saved:Cr,saves:Cr,make:Cr,makes:Cr,made:Cr,minus:Cr,plus:Cr,than:Cr,another:Cr,versus:Cr,neither:Cr,about:Cr,favorite:Cr,best:Cr,daily:Cr,weekly:Cr,linear:Cr,binary:Cr,mobile:Cr,lexical:Cr,technical:Cr,computer:Cr,scientific:Cr,security:Cr,government:Cr,popular:Cr,formal:Cr,no:Cr,more:Cr,one:Cr,let:Cr,her:Cr,his:Cr,their:Cr,our:Cr,us:Cr,sheer:Cr,monthly:Cr,yearly:Cr,current:Cr,previous:Cr,upcoming:Cr,last:Cr,next:Cr,main:Cr,initial:Cr,final:Cr,beginning:Cr,end:Cr,top:Cr,bottom:Cr,future:Cr,past:Cr,major:Cr,minor:Cr,side:Cr,central:Cr,peripheral:Cr,public:Cr,private:Cr},afterWords:{of:Cr,system:Cr,aid:Cr,method:Cr,utility:Cr,tool:Cr,reform:Cr,therapy:Cr,philosophy:Cr,room:Cr,authority:Cr,says:Cr,said:Cr,wants:Cr,wanted:Cr,is:Cr,did:Cr,do:Cr,can:Cr,wise:Cr}};const Nr="Infinitive";var Ir={beforeTags:{Modal:Nr,Adverb:Nr,Negative:Nr,Plural:Nr},afterTags:{Determiner:Nr,Adverb:Nr,Possessive:Nr,Reflexive:Nr,Preposition:Nr,Cardinal:Nr,Comparative:Nr,Superlative:Nr},beforeWords:{i:Nr,we:Nr,you:Nr,they:Nr,to:Nr,please:Nr,will:Nr,have:Nr,had:Nr,would:Nr,could:Nr,should:Nr,do:Nr,did:Nr,does:Nr,can:Nr,must:Nr,us:Nr,me:Nr,let:Nr,even:Nr,when:Nr,help:Nr,he:Nr,she:Nr,it:Nr,being:Nr,bi:Nr,co:Nr,contra:Nr,de:Nr,inter:Nr,intra:Nr,mis:Nr,pre:Nr,out:Nr,counter:Nr,nobody:Nr,somebody:Nr,anybody:Nr,everybody:Nr},afterWords:{the:Nr,me:Nr,you:Nr,him:Nr,us:Nr,her:Nr,his:Nr,them:Nr,they:Nr,it:Nr,himself:Nr,herself:Nr,itself:Nr,myself:Nr,ourselves:Nr,themselves:Nr,something:Nr,anything:Nr,a:Nr,an:Nr,up:Nr,down:Nr,by:Nr,out:Nr,off:Nr,under:Nr,what:Nr,all:Nr,to:Nr,because:Nr,although:Nr,how:Nr,otherwise:Nr,together:Nr,though:Nr,into:Nr,yet:Nr,more:Nr,here:Nr,there:Nr,away:Nr}};const Dr={beforeTags:Object.assign({},Ir.beforeTags,jr.beforeTags,{}),afterTags:Object.assign({},Ir.afterTags,jr.afterTags,{}),beforeWords:Object.assign({},Ir.beforeWords,jr.beforeWords,{}),afterWords:Object.assign({},Ir.afterWords,jr.afterWords,{})},Hr="Adjective";var Gr={beforeTags:{Determiner:Hr,Possessive:Hr,Hyphenated:Hr},afterTags:{Adjective:Hr},beforeWords:{seem:Hr,seemed:Hr,seems:Hr,feel:Hr,feels:Hr,felt:Hr,stay:Hr,appear:Hr,appears:Hr,appeared:Hr,also:Hr,over:Hr,under:Hr,too:Hr,it:Hr,but:Hr,still:Hr,really:Hr,quite:Hr,well:Hr,very:Hr,truly:Hr,how:Hr,deeply:Hr,hella:Hr,profoundly:Hr,extremely:Hr,so:Hr,badly:Hr,mostly:Hr,totally:Hr,awfully:Hr,rather:Hr,nothing:Hr,something:Hr,anything:Hr,not:Hr,me:Hr,is:Hr,face:Hr,faces:Hr,faced:Hr,look:Hr,looks:Hr,looked:Hr,reveal:Hr,reveals:Hr,revealed:Hr,sound:Hr,sounded:Hr,sounds:Hr,remains:Hr,remained:Hr,prove:Hr,proves:Hr,proved:Hr,becomes:Hr,stays:Hr,tastes:Hr,taste:Hr,smells:Hr,smell:Hr,gets:Hr,grows:Hr,as:Hr,rings:Hr,radiates:Hr,conveys:Hr,convey:Hr,conveyed:Hr,of:Hr},afterWords:{too:Hr,also:Hr,or:Hr,enough:Hr,as:Hr}};const Tr="Gerund";var xr={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,his:Tr,them:Tr,their:Tr,it:Tr,this:Tr,there:Tr,on:Tr,about:Tr,for:Tr,up:Tr,down:Tr}};const Er="Gerund",Fr="Adjective",Or={beforeTags:Object.assign({},Gr.beforeTags,xr.beforeTags,{Imperative:Er,Infinitive:Fr,Plural:Er}),afterTags:Object.assign({},Gr.afterTags,xr.afterTags,{Noun:Fr}),beforeWords:Object.assign({},Gr.beforeWords,xr.beforeWords,{is:Fr,are:Er,was:Fr,of:Fr,suggest:Er,suggests:Er,suggested:Er,recommend:Er,recommends:Er,recommended:Er,imagine:Er,imagines:Er,imagined:Er,consider:Er,considered:Er,considering:Er,resist:Er,resists:Er,resisted:Er,avoid:Er,avoided:Er,avoiding:Er,except:Fr,accept:Fr,assess:Er,explore:Er,fear:Er,fears:Er,appreciate:Er,question:Er,help:Er,embrace:Er,with:Fr}),afterWords:Object.assign({},Gr.afterWords,xr.afterWords,{to:Er,not:Er,the:Er})},zr={beforeTags:{Determiner:void 0,Cardinal:"Noun",PhrasalVerb:"Adjective"},afterTags:{}},Vr={beforeTags:Object.assign({},Gr.beforeTags,jr.beforeTags,zr.beforeTags),afterTags:Object.assign({},Gr.afterTags,jr.afterTags,zr.afterTags),beforeWords:Object.assign({},Gr.beforeWords,jr.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective",off:"Adjective",out:"Adjective"}),afterWords:Object.assign({},Gr.afterWords,jr.afterWords)};let Br="PastTense",Sr="Adjective";const Kr={beforeTags:{Adverb:Br,Pronoun:Br,ProperNoun:Br,Auxiliary:Br,Noun:Br},afterTags:{Possessive:Br,Pronoun:Br,Determiner:Br,Adverb:Br,Comparative:Br,Date:Br,Gerund:Br},beforeWords:{be:Br,who:Br,get:Sr,had:Br,has:Br,have:Br,been:Br,it:Br,as:Br,for:Sr,more:Sr,always:Sr},afterWords:{by:Br,back:Br,out:Br,in:Br,up:Br,down:Br,before:Br,after:Br,for:Br,the:Br,with:Br,as:Br,on:Br,at:Br,between:Br,to:Br,into:Br,us:Br,them:Br,his:Br,her:Br,their:Br,our:Br,me:Br,about:Sr}};var $r={beforeTags:Object.assign({},Gr.beforeTags,Kr.beforeTags),afterTags:Object.assign({},Gr.afterTags,Kr.afterTags),beforeWords:Object.assign({},Gr.beforeWords,Kr.beforeWords),afterWords:Object.assign({},Gr.afterWords,Kr.afterWords)};const Lr={afterTags:{Noun:"Adjective",Conjunction:void 0}},Mr={beforeTags:Object.assign({},Gr.beforeTags,Ir.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Gr.afterTags,Ir.afterTags,Lr.afterTags),beforeWords:Object.assign({},Gr.beforeWords,Ir.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Gr.afterWords,Ir.afterWords,{to:void 0,as:"Adjective"})},Jr={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},Wr={Value:"Gerund"},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"},Rr={beforeTags:Object.assign({},xr.beforeTags,jr.beforeTags,Jr),afterTags:Object.assign({},xr.afterTags,jr.afterTags,Wr),beforeWords:Object.assign({},xr.beforeWords,jr.beforeWords,Ur),afterWords:Object.assign({},xr.afterWords,jr.afterWords,qr)},Qr="Singular",Zr="Infinitive",Xr={beforeTags:Object.assign({},Ir.beforeTags,jr.beforeTags,{Adjective:Qr,Particle:Qr}),afterTags:Object.assign({},Ir.afterTags,jr.afterTags,{ProperNoun:Zr,Gerund:Zr,Adjective:Zr,Copula:Qr}),beforeWords:Object.assign({},Ir.beforeWords,jr.beforeWords,{is:Qr,was:Qr,of:Qr,have:null}),afterWords:Object.assign({},Ir.afterWords,jr.afterWords,{instead:Zr,about:Zr,his:Zr,her:Zr,to:null,by:null,in:null})},_r="Person";var Yr={beforeTags:{Honorific:_r,Person:_r},afterTags:{Person:_r,ProperNoun:_r,Verb:_r},ownTags:{ProperNoun:_r},beforeWords:{hi:_r,hey:_r,yo:_r,dear:_r,hello:_r},afterWords:{said:_r,says:_r,told:_r,tells:_r,feels:_r,felt:_r,seems:_r,thinks:_r,thought:_r,spends:_r,spendt:_r,plays:_r,played:_r,sing:_r,sang:_r,learn:_r,learned:_r,wants:_r,wanted:_r}};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,with:"Person"},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",ro={beforeTags:{Place:ao},afterTags:{Place:ao,Abbreviation:ao},beforeWords:{in:ao,by:ao,near:ao,from:ao,to:ao},afterWords:{in:ao,by:ao,near:ao,from:ao,to:ao,government:ao,council:ao,region:ao,city:ao}};let oo="Unit";const io={"Actor|Verb":Dr,"Adj|Gerund":Or,"Adj|Noun":Vr,"Adj|Past":$r,"Adj|Present":Mr,"Noun|Verb":Xr,"Noun|Gerund":Rr,"Person|Noun":{beforeTags:Object.assign({},jr.beforeTags,Yr.beforeTags),afterTags:Object.assign({},jr.afterTags,Yr.afterTags),beforeWords:Object.assign({},jr.beforeWords,Yr.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},jr.afterWords,Yr.afterWords)},"Person|Date":no,"Person|Verb":{beforeTags:Object.assign({},jr.beforeTags,Yr.beforeTags,Ir.beforeTags),afterTags:Object.assign({},jr.afterTags,Yr.afterTags,Ir.afterTags),beforeWords:Object.assign({},jr.beforeWords,Yr.beforeWords,Ir.beforeWords),afterWords:Object.assign({},jr.afterWords,Yr.afterWords,Ir.afterWords)},"Person|Place":{beforeTags:Object.assign({},ro.beforeTags,Yr.beforeTags),afterTags:Object.assign({},ro.afterTags,Yr.afterTags),beforeWords:Object.assign({},ro.beforeWords,Yr.beforeWords),afterWords:Object.assign({},ro.afterWords,Yr.afterWords)},"Person|Adj":{beforeTags:Object.assign({},Yr.beforeTags,Gr.beforeTags),afterTags:Object.assign({},Yr.afterTags,Gr.afterTags),beforeWords:Object.assign({},Yr.beforeWords,Gr.beforeWords),afterWords:Object.assign({},Yr.afterWords,Gr.afterWords)},"Unit|Noun":{beforeTags:{Value:oo},afterTags:{},beforeWords:{per:oo,every:oo,each:oo,square:oo,cubic:oo,sq:oo,metric:oo},afterWords:{per:oo,squared:oo,cubed:oo,long:oo}}},so=(e,t)=>{let n=Object.keys(e).reduce(((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t)),{});return Object.assign(n,t)};io["Plural|Verb"]={beforeWords:so(io["Noun|Verb"].beforeWords,{had:"Plural",have:"Plural"}),afterWords:so(io["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null,is:"PresentTense",by:"PresentTense"}),beforeTags:so(io["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:so(io["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};const lo="Adjective",uo="Infinitive",co="PresentTense",ho="Singular",go="PastTense",mo="Adverb",po="Plural",fo="Actor",bo="Verb",yo="Noun",vo="LastName",wo="Modal",ko="Place",Po="Participle";var Ao=[null,null,{ea:ho,ia:yo,ic:lo,ly:mo,"'n":bo,"'t":bo},{oed:go,ued:go,xed:go," so":mo,"'ll":wo,"'re":"Copula",azy:lo,eer:yo,end:bo,ped:go,ffy:lo,ify:uo,ing:"Gerund",ize:uo,ibe:uo,lar:lo,mum:lo,nes:co,nny:lo,ous:lo,que:lo,ger:yo,ber:yo,rol:ho,sis:ho,ogy:ho,oid:ho,ian:ho,zes:co,eld:go,ken:Po,ven:Po,ten:Po,ect:uo,ict:uo,ign:uo,oze:uo,ful:lo,bal:lo,ton:yo,pur:ko},{amed:go,aped:go,ched:go,lked:go,rked:go,reed:go,nded:go,mned:lo,cted:go,dged:go,ield:ho,akis:vo,cede:uo,chuk:vo,czyk:vo,ects:co,iend:ho,ends:bo,enko:vo,ette:ho,iary:ho,wner:ho,fies:co,fore:mo,gate:uo,gone:lo,ices:po,ints:po,ruct:uo,ines:po,ions:po,ners:po,pers:po,lers:po,less:lo,llen:lo,made:lo,nsen:vo,oses:co,ould:wo,some:lo,sson:vo,ians:po,tion:ho,tage:yo,ique:ho,tive:lo,tors:yo,vice:ho,lier:ho,fier:ho,wned:go,gent:ho,tist:fo,pist:fo,rist:fo,mist:fo,yist:fo,vist:fo,ists:fo,lite:ho,site:ho,rite:ho,mite:ho,bite:ho,mate:ho,date:ho,ndal:ho,vent:ho,uist:fo,gist:fo,note:ho,cide:ho,ence:ho,wide:lo,vide:uo,ract:uo,duce:uo,pose:uo,eive:uo,lyze:uo,lyse:uo,iant:lo,nary:lo,ghty:lo,uent:lo,erer:fo,bury:ko,dorf:yo,esty:yo,wych:ko,dale:ko,folk:ko,vale:ko,abad:ko,sham:ko,wick:ko,view:ko},{elist:fo,holic:ho,phite:ho,tized:go,urned:go,eased:go,ances:po,bound:lo,ettes:po,fully:mo,ishes:co,ities:po,marek:vo,nssen:vo,ology:yo,osome:ho,tment:ho,ports:po,rough:lo,tches:co,tieth:"Ordinal",tures:po,wards:mo,where:mo,archy:yo,pathy:yo,opoly:yo,embly:yo,phate:yo,ndent:ho,scent:ho,onist:fo,anist:fo,alist:fo,olist:fo,icist:fo,ounce:uo,iable:lo,borne:lo,gnant:lo,inant:lo,igent:lo,atory:lo,rient:ho,dient:ho,maker:fo,burgh:ko,mouth:ko,ceter:ko,ville:ko,hurst:ko,stead:ko,endon:ko,brook:ko,shire:ko,worth:yo,field:"ProperNoun",ridge:ko},{auskas:vo,parent:ho,cedent:ho,ionary:ho,cklist:ho,brooke:ko,keeper:fo,logist:fo,teenth:"Value",worker:fo,master:fo,writer:fo,brough:ko,cester:ko,ington:ko,cliffe:ko,ingham:ko},{chester:ko,logists:fo,opoulos:vo,borough:ko,sdottir:vo}];const Co="Adjective",jo="Noun",No="Verb";var Io=[null,null,{},{neo:jo,bio:jo,"de-":No,"re-":No,"un-":No,"ex-":jo},{anti:jo,auto:jo,faux:Co,hexa:jo,kilo:jo,mono:jo,nano:jo,octa:jo,poly:jo,semi:Co,tele:jo,"pro-":Co,"mis-":No,"dis-":No,"pre-":Co},{anglo:jo,centi:jo,ethno:jo,ferro:jo,grand:jo,hepta:jo,hydro:jo,intro:jo,macro:jo,micro:jo,milli:jo,nitro:jo,penta:jo,quasi:Co,radio:jo,tetra:jo,"omni-":Co,"post-":Co},{pseudo:Co,"extra-":Co,"hyper-":Co,"inter-":Co,"intra-":Co,"deca-":Co},{electro:jo}];const Do="Adjective",Ho="Infinitive",Go="PresentTense",To="Singular",xo="PastTense",Eo="Adverb",Fo="Expression",Oo="Actor",zo="Verb",Vo="Noun",Bo="LastName";var So={a:[[/.[aeiou]na$/,Vo,"tuna"],[/.[oau][wvl]ska$/,Bo],[/.[^aeiou]ica$/,To,"harmonica"],[/^([hyj]a+)+$/,Fo,"haha"]],c:[[/.[^aeiou]ic$/,Do]],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$/,To,"steward"],[/[aeiou][^aeiou]id$/,Do,""],[/.[vrl]id$/,Do,"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$/,Ho,"antagonize"],[/.[^aeiou]ise$/,Ho,"antagonise"],[/.[aeiou]te$/,Ho,"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$/,Bo,"..ovich"],[/^ug?h+$/,Fo,"ughh"],[/^uh[ -]?oh$/,Fo,"uhoh"],[/[a-z]-ish$/,Do,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Bo,"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$/,To,"magnesium"],[/[^aeiou]ism$/,To,"schism"],[/^[hu]m+$/,Fo,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Do,"republican"],[/[^aeiou]ician$/,Oo,"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$/,To],[/[^i]fer$/,Ho],[/.[^aeiou][ao]pher$/,Oo],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Do],[/[aeiou].*ist$/,Do],[/^[a-z]et$/,zo]],s:[[/.[^aeiou]ises$/,Go],[/.[rln]ates$/,Go],[/.[^z]ens$/,zo],[/.[lstrn]us$/,To],[/.[aeiou]sks$/,Go],[/.[aeiou]kes$/,Go],[/[aeiou][^aeiou]is$/,To],[/[a-z]'s$/,Vo],[/^yes+$/,Fo]],v:[[/.[^aeiou][ai][kln]ov$/,Bo]],y:[[/.[cts]hy$/,Do],[/.[st]ty$/,Do],[/.[tnl]ary$/,Do],[/.[oe]ry$/,To],[/[rdntkbhs]ly$/,Eo],[/.(gg|bb|zz)ly$/,Do],[/...lly$/,Eo],[/.[gk]y$/,Do],[/[bszmp]{2}y$/,Do],[/.[ai]my$/,Do],[/[ea]{2}zy$/,Do],[/.[^aeiou]ity$/,To]]};const Ko="Verb",$o="Noun";var Lo={leftTags:[["Adjective",$o],["Possessive",$o],["Determiner",$o],["Adverb",Ko],["Pronoun",Ko],["Value",$o],["Ordinal",$o],["Modal",Ko],["Superlative",$o],["Demonym",$o],["Honorific","Person"]],leftWords:[["i",Ko],["first",$o],["it",Ko],["there",Ko],["not",Ko],["because",$o],["if",$o],["but",$o],["who",Ko],["this",$o],["his",$o],["when",$o],["you",Ko],["very","Adjective"],["old",$o],["never",Ko],["before",$o],["a",$o],["the",$o],["been",Ko]],rightTags:[["Copula",$o],["PastTense",$o],["Conjunction",$o],["Modal",$o]],rightWords:[["there",Ko],["me",Ko],["man","Adjective"],["him",Ko],["it",Ko],["were",$o],["took",$o],["himself",Ko],["went",$o],["who",$o],["jr","Person"]]},Mo={fwd:"3:ser,ierยฆ1er:h,t,f,l,nยฆ1r:eยฆ2er:ss,or,om",both:"3er:ver,ear,almยฆ3ner:hinยฆ3ter:latยฆ2mer:imยฆ2er:ng,rm,mbยฆ2ber:ibยฆ2ger:igยฆ1er:w,p,k,dยฆier:y",rev:"1:tter,yerยฆ2:uer,ver,ffer,oner,eler,ller,iler,ster,cer,uler,sher,ener,gher,aner,adder,nter,eter,rter,hter,rner,fterยฆ3:oser,ooler,eafer,user,airer,bler,maler,tler,eater,uger,rger,ainer,urer,ealer,icher,pler,emner,icter,nser,iserยฆ4:arser,viner,ucher,rosser,somer,ndomer,moter,oother,uarer,hiterยฆ5:nuiner,esser,emierยฆar:urther",ex:"worse:badยฆbetter:goodยฆ4er:fair,gray,poorยฆ1urther:farยฆ3ter:fat,hot,wetยฆ3der:mad,sadยฆ3er:shy,funยฆ4der:gladยฆ:ยฆ4r:cute,dire,fake,fine,free,lame,late,pale,rare,ripe,rude,safe,sore,tame,wideยฆ5r:eerie,stale"},Jo={fwd:"1:nning,tting,rring,pping,eing,mming,gging,dding,bbing,kkingยฆ2:eking,oling,eling,emingยฆ3:velling,siting,uiting,fiting,loting,geting,ialing,cellingยฆ4:graming",both:"1:aing,iing,fing,xing,ying,oing,hing,wingยฆ2:tzing,rping,izzing,bting,mning,sping,wling,rling,wding,rbing,uping,lming,wning,mping,oning,lting,mbing,lking,fting,hting,sking,gning,pting,cking,ening,nking,iling,eping,ering,rting,rming,cting,lping,ssing,nting,nding,lding,sting,rning,rding,rkingยฆ3:belling,siping,toming,yaking,uaking,oaning,auling,ooping,aiding,naping,euring,tolling,uzzing,ganing,haning,ualing,halling,iasing,auding,ieting,ceting,ouling,voring,ralling,garing,joring,oaming,oaking,roring,nelling,ooring,uelling,eaming,ooding,eaping,eeting,ooting,ooming,xiting,keting,ooking,ulling,airing,oaring,biting,outing,oiting,earing,naling,oading,eeding,ouring,eaking,aiming,illing,oining,eaning,onging,ealing,aining,eadingยฆ4:thoming,melling,aboring,ivoting,weating,dfilling,onoring,eriting,imiting,tialling,rgining,otoring,linging,winging,lleting,louding,spelling,mpelling,heating,feating,opelling,choring,welling,ymaking,ctoring,calling,peating,iloring,laiting,utoring,uditing,mmaking,loating,iciting,waiting,mbating,voiding,otalling,nsoring,nselling,ocusing,itoring,elopingยฆ5:rselling,umpeting,atrolling,treating,tselling,rpreting,pringing,ummeting,ossoming,elmaking,eselling,rediting,totyping,onmaking,rfeiting,ntrollingยฆ5e:chmaking,dkeeping,severing,erouting,ecreting,ephoning,uthoring,ravening,reathing,pediting,erfering,eotyping,fringing,entoring,ombining,ompetingยฆ4e:emaking,eething,twining,rruling,chuting,xciting,rseding,scoping,edoring,pinging,lunging,agining,craping,pleting,eleting,nciting,nfining,ncoding,tponing,ecoding,writing,esaling,nvening,gnoring,evoting,mpeding,rvening,dhering,mpiling,storing,nviting,ploringยฆ3e:tining,nuring,saking,miring,haling,ceding,xuding,rining,nuting,laring,caring,miling,riding,hoking,piring,lading,curing,uading,noting,taping,futing,paring,hading,loding,siring,guring,vading,voking,during,niting,laning,caping,luting,muting,ruding,ciding,juring,laming,caling,hining,uoting,liding,ciling,duling,tuting,puting,cuting,coring,uiding,tiring,turing,siding,rading,enging,haping,buting,lining,taking,anging,haring,uiring,coming,mining,moting,suring,viding,ludingยฆ2e:tring,zling,uging,oging,gling,iging,vring,fling,lging,obing,psing,pling,ubing,cling,dling,wsing,iking,rsing,dging,kling,ysing,tling,rging,eging,nsing,uning,osing,uming,using,ibing,bling,aging,ising,asing,atingยฆ2ie:rlyingยฆ1e:zing,uing,cing,ving",rev:"ying:ieยฆ1ing:se,ke,te,we,ne,re,de,pe,me,le,c,heยฆ2ing:ll,ng,dd,ee,ye,oe,rg,usยฆ2ning:unยฆ2ging:og,ag,ug,ig,egยฆ2ming:umยฆ2bing:ub,ab,eb,obยฆ3ning:lan,can,hin,pin,winยฆ3ring:cur,lur,tir,tar,pur,carยฆ3ing:ait,del,eel,fin,eat,oat,eem,lel,ool,ein,uinยฆ3ping:rop,rap,top,uip,wap,hip,hop,lap,rip,capยฆ3ming:tem,wim,rim,kim,limยฆ3ting:mat,cut,pot,lit,lot,hat,set,pit,putยฆ3ding:hed,bed,bidยฆ3king:rekยฆ3ling:cil,pelยฆ3bing:ribยฆ4ning:eginยฆ4ing:isit,ruit,ilot,nsit,dget,rkel,ival,rcelยฆ4ring:efer,nferยฆ4ting:rmit,mmit,ysit,dmit,emit,bmit,tfit,gretยฆ4ling:evel,xcel,ivelยฆ4ding:hredยฆ5ing:arget,posit,rofitยฆ5ring:nsferยฆ5ting:nsmit,orget,cquitยฆ5ling:ancel,istil",ex:"3:adding,eating,aiming,aiding,airing,outing,gassing,setting,getting,putting,cutting,winning,sitting,betting,mapping,tapping,letting,bidding,hitting,tanning,netting,popping,fitting,capping,lapping,barring,banning,vetting,topping,rotting,tipping,potting,wetting,pitting,dipping,budding,hemming,pinning,jetting,kidding,padding,podding,sipping,wedding,bedding,donning,warring,penning,gutting,cueing,wadding,petting,ripping,napping,matting,tinning,binning,dimming,hopping,mopping,nodding,panning,rapping,ridding,sinningยฆ4:selling,falling,calling,waiting,editing,telling,rolling,heating,boating,hanging,beating,coating,singing,tolling,felling,polling,discing,seating,voiding,gelling,yelling,baiting,reining,ruining,seeking,spanning,stepping,knitting,emitting,slipping,quitting,dialing,omitting,clipping,shutting,skinning,abutting,flipping,trotting,cramming,fretting,suitingยฆ5:bringing,treating,spelling,stalling,trolling,expelling,rivaling,wringing,deterring,singeing,befitting,refittingยฆ6:enrolling,distilling,scrolling,strolling,caucusing,travellingยฆ7:installing,redefining,stencilling,recharging,overeating,benefiting,unraveling,programingยฆ9:reprogrammingยฆis:beingยฆ2e:using,aging,owingยฆ3e:making,taking,coming,noting,hiring,filing,coding,citing,doping,baking,coping,hoping,lading,caring,naming,voting,riding,mining,curing,lining,ruling,typing,boring,dining,firing,hiding,piling,taping,waning,baling,boning,faring,honing,wiping,luring,timing,wading,piping,fading,biting,zoning,daring,waking,gaming,raking,ceding,tiring,coking,wining,joking,paring,gaping,poking,pining,coring,liming,toting,roping,wiring,achingยฆ4e:writing,storing,eroding,framing,smoking,tasting,wasting,phoning,shaking,abiding,braking,flaking,pasting,priming,shoring,sloping,withing,hingingยฆ5e:defining,refining,renaming,swathing,fringing,recitingยฆ1ie:dying,tying,lying,vyingยฆ7e:sunbathing"},Wo={fwd:"1:mtยฆ2:llenยฆ3:iven,akenยฆ:neยฆy:in",both:"1:wnยฆ2:me,atenยฆ3:seen,bidden,isenยฆ4:roven,astenยฆ3l:piltยฆ3d:uiltยฆ2e:ittenยฆ1im:wumยฆ1eak:pokenยฆ1ine:honeยฆ1ose:osenยฆ1in:gunยฆ1ake:wokenยฆear:ornยฆeal:olenยฆeeze:ozenยฆet:ottenยฆink:unkยฆing:ung",rev:"2:unยฆoken:eakยฆought:eekยฆoven:eaveยฆ1ne:oยฆ1own:lyยฆ1den:deยฆ1in:ayยฆ2t:amยฆ2n:eeยฆ3en:allยฆ4n:rive,sake,takeยฆ5n:rgive",ex:"2:beenยฆ3:seen,runยฆ4:given,takenยฆ5:shakenยฆ2eak:brokenยฆ1ive:doveยฆ2y:flownยฆ3e:hidden,riddenยฆ1eek:soughtยฆ1ake:wokenยฆ1eave:woven"},Uo={fwd:"1:oesยฆ1ve:as",both:"1:xesยฆ2:zzes,ches,shes,ssesยฆ3:iasesยฆ2y:llies,pliesยฆ1y:cies,bies,ties,vies,nies,pies,dies,ries,fiesยฆ:s",rev:"1ies:lyยฆ2es:us,go,doยฆ3es:cho,eto",ex:"2:does,goesยฆ3:gassesยฆ5:focusesยฆis:areยฆ3y:reliesยฆ2y:fliesยฆ2ve:has"},qo={fwd:"1st:eยฆ1est:l,m,f,sยฆ1iest:ceyยฆ2est:or,irยฆ3est:ver",both:"4:eastยฆ5:hwestยฆ5lest:erfulยฆ4est:weet,lgar,tter,oungยฆ4most:uterยฆ3est:ger,der,rey,iet,ong,earยฆ3test:latยฆ3most:nerยฆ2est:pt,ft,nt,ct,rt,htยฆ2test:itยฆ2gest:igยฆ1est:b,k,n,p,h,d,wยฆiest:y",rev:"1:ttest,nnest,yestยฆ2:sest,stest,rmest,cest,vest,lmest,olest,ilest,ulest,ssest,imest,uestยฆ3:rgest,eatest,oorest,plest,allest,urest,iefest,uelest,blest,ugest,amest,yalest,ealest,illest,tlest,itestยฆ4:cerest,eriest,somest,rmalest,ndomest,motest,uarest,tiffestยฆ5:leverest,rangestยฆar:urthestยฆ3ey:riciest",ex:"best:goodยฆworst:badยฆ5est:greatยฆ4est:fast,full,fair,dullยฆ3test:hot,wet,fatยฆ4nest:thinยฆ1urthest:farยฆ3est:gay,shy,illยฆ4test:neatยฆ4st:late,wide,fine,safe,cute,fake,pale,rare,rude,sore,ripe,direยฆ6st:severe"},Ro={fwd:"1:tistic,eable,lful,sful,ting,ttyยฆ2:onate,rtable,geous,ced,seful,ctfulยฆ3:ortive,entedยฆarity:earยฆy:eticยฆfulness:begoneยฆ1ity:reยฆ1y:tiful,gicยฆ2ity:ile,imous,ilous,imeยฆ2ion:atedยฆ2eness:ivingยฆ2y:triousยฆ2ation:iringยฆ2tion:vantยฆ3ion:ectยฆ3ce:mant,manticยฆ3tion:irableยฆ3y:est,esticยฆ3m:mistic,listicยฆ3ess:ningยฆ4n:utiousยฆ4on:rative,native,vative,ectiveยฆ4ce:erant",both:"1:king,wingยฆ2:alous,ltuous,oyful,rdousยฆ3:gorous,ectable,werful,amaticยฆ4:oised,usical,agical,raceful,ocused,lined,ightfulยฆ5ness:stful,lding,itous,nuous,ulous,otous,nable,gious,ayful,rvous,ntous,lsive,peful,entle,ciful,osive,leful,isive,ncise,reful,miousยฆ5ty:ivaciousยฆ5ties:ubtleยฆ5ce:ilient,adiant,atientยฆ5cy:icientยฆ5sm:gmaticยฆ5on:sessive,dictiveยฆ5ity:pular,sonal,eative,enticยฆ5sity:uminousยฆ5ism:conicยฆ5nce:mperateยฆ5ility:mitableยฆ5ment:xcitedยฆ5n:bitiousยฆ4cy:brant,etent,curateยฆ4ility:erable,acable,icable,ptableยฆ4ty:nacious,aive,oyal,daciousยฆ4n:iciousยฆ4ce:vient,erent,stent,ndent,dient,quent,identยฆ4ness:adic,ound,hing,pant,sant,oing,oist,tuteยฆ4icity:impleยฆ4ment:fined,musedยฆ4ism:oticยฆ4ry:danticยฆ4ity:tund,eralยฆ4edness:handยฆ4on:uitiveยฆ4lity:pitableยฆ4sm:eroic,namicยฆ4sity:nerousยฆ3th:armยฆ3ility:pable,bable,dable,iableยฆ3cy:hant,nant,icateยฆ3ness:red,hin,nse,ict,iet,ite,oud,ind,ied,rceยฆ3ion:luteยฆ3ity:ual,gal,volous,ialยฆ3ce:sent,fensive,lant,gant,gent,lent,dantยฆ3on:asiveยฆ3m:fist,sistic,iasticยฆ3y:terious,xurious,ronic,tasticยฆ3ur:amorousยฆ3e:tunateยฆ3ation:minedยฆ3sy:rteousยฆ3ty:ainยฆ3ry:aveยฆ3ment:azedยฆ2ness:de,on,ue,rn,ur,ft,rp,pe,om,ge,rd,od,ay,ss,er,ll,oy,ap,ht,ld,ad,rtยฆ2inousness:umousยฆ2ity:neous,ene,id,aneยฆ2cy:bate,lateยฆ2ation:izedยฆ2ility:oble,ibleยฆ2y:odicยฆ2e:oving,aringยฆ2s:ostยฆ2itude:ptยฆ2dom:eeยฆ2ance:uringยฆ2tion:reetยฆ2ion:otedยฆ2sion:endingยฆ2liness:anยฆ2or:rdentยฆ1th:ungยฆ1e:uableยฆ1ness:w,h,k,fยฆ1ility:mbleยฆ1or:ventยฆ1ement:gingยฆ1tiquity:ncientยฆ1ment:hedยฆverty:orยฆength:ongยฆeat:otยฆpth:epยฆiness:y",rev:"",ex:"5:forceful,humorousยฆ8:charismaticยฆ13:understandingยฆ5ity:activeยฆ11ness:adventurous,inquisitive,resourcefulยฆ8on:aggressive,automatic,perceptiveยฆ7ness:amorous,fatuous,furtive,ominous,seriousยฆ5ness:ample,sweetยฆ12ness:apprehensive,cantankerous,contemptuous,ostentatiousยฆ13ness:argumentative,conscientiousยฆ9ness:assertive,facetious,imperious,inventive,oblivious,rapacious,receptive,seditious,whimsicalยฆ10ness:attractive,expressive,impressive,loquacious,salubrious,thoughtfulยฆ3edom:boringยฆ4ness:calm,fast,keen,tameยฆ8ness:cheerful,gracious,specious,spurious,timorous,unctuousยฆ5sity:curiousยฆ9ion:deliberateยฆ8ion:desperateยฆ6e:expensiveยฆ7ce:fragrantยฆ3y:furiousยฆ9ility:ineluctableยฆ6ism:mysticalยฆ8ity:physical,proactive,sensitive,verticalยฆ5cy:pliantยฆ7ity:positiveยฆ9ity:practicalยฆ12ism:professionalยฆ6ce:prudentยฆ3ness:redยฆ6cy:vagrantยฆ3dom:wise"};const Qo=function(e="",t={}){let n=function(e,t={}){return t.hasOwnProperty(e)?t[e]:null}(e,t.ex);return n=n||function(e,t=[]){for(let n=0;n=1;a-=1){let r=e.length-a,o=e.substring(r,e.length);if(!0===t.hasOwnProperty(o))return e.slice(0,r)+t[o];if(!0===n.hasOwnProperty(o))return e.slice(0,r)+n[o]}return t.hasOwnProperty("")?e+t[""]:n.hasOwnProperty("")?e+n[""]:null}(e,t.fwd,t.both),n=n||e,n},Zo=function(e){return Object.entries(e).reduce(((e,t)=>(e[t[1]]=t[0],e)),{})},Xo=function(e={}){return{reversed:!0,both:Zo(e.both),ex:Zo(e.ex),fwd:e.rev||{}}},_o=/^([0-9]+)/,Yo=function(e){let t=function(e){let t={};return e.split("ยฆ").forEach((e=>{let[n,a]=e.split(":");a=(a||"").split(","),a.forEach((e=>{t[e]=n}))})),t}(e);return Object.keys(t).reduce(((e,n)=>(e[n]=function(e="",t=""){let n=(t=String(t)).match(_o);if(null===n)return t;let a=Number(n[1])||0;return e.substring(0,a)+t.replace(_o,"")}(n,t[n]),e)),{})},ei=function(e={}){return"string"==typeof e&&(e=JSON.parse(e)),e.fwd=Yo(e.fwd||""),e.both=Yo(e.both||""),e.rev=Yo(e.rev||""),e.ex=Yo(e.ex||""),e},ti=ei({fwd:"1:tted,wed,gged,nned,een,rred,pped,yed,bbed,oed,dded,rd,wn,mmedยฆ2:eed,nded,et,hted,st,oled,ut,emed,eled,lded,ken,rt,nked,apt,ant,eped,ekedยฆ3:eared,eat,eaded,nelled,ealt,eeded,ooted,eaked,eaned,eeted,mited,bid,uit,ead,uited,ealed,geted,velled,ialed,belledยฆ4:ebuted,hined,comedยฆy:iedยฆome:ameยฆear:oreยฆind:oundยฆing:ung,angยฆep:ptยฆink:ank,unkยฆig:ugยฆall:ellยฆee:awยฆive:aveยฆeeze:ozeยฆold:eldยฆave:ftยฆake:ookยฆell:oldยฆite:oteยฆide:odeยฆine:oneยฆin:un,onยฆeal:oleยฆim:amยฆie:ayยฆand:oodยฆ1ise:roseยฆ1eak:rokeยฆ1ing:roughtยฆ1ive:roveยฆ1el:eltยฆ1id:badeยฆ1et:gotยฆ1y:aidยฆ1it:satยฆ3e:lidยฆ3d:pent",both:"1:aed,fed,xed,hedยฆ2:sged,xted,wled,rped,lked,kied,lmed,lped,uped,bted,rbed,rked,wned,rled,mped,fted,mned,mbed,zzed,omed,ened,cked,gned,lted,sked,ued,zed,nted,ered,rted,rmed,ced,sted,rned,ssed,rded,pted,ved,ctedยฆ3:cled,eined,siped,ooned,uked,ymed,jored,ouded,ioted,oaned,lged,asped,iged,mured,oided,eiled,yped,taled,moned,yled,lit,kled,oaked,gled,naled,fled,uined,oared,valled,koned,soned,aided,obed,ibed,meted,nicked,rored,micked,keted,vred,ooped,oaded,rited,aired,auled,filled,ouled,ooded,ceted,tolled,oited,bited,aped,tled,vored,dled,eamed,nsed,rsed,sited,owded,pled,sored,rged,osed,pelled,oured,psed,oated,loned,aimed,illed,eured,tred,ioned,celled,bled,wsed,ooked,oiled,itzed,iked,iased,onged,ased,ailed,uned,umed,ained,auded,nulled,ysed,eged,ised,aged,oined,ated,used,dged,donedยฆ4:ntied,efited,uaked,caded,fired,roped,halled,roked,himed,culed,tared,lared,tuted,uared,routed,pited,naked,miled,houted,helled,hared,cored,caled,tired,peated,futed,ciled,called,tined,moted,filed,sided,poned,iloted,honed,lleted,huted,ruled,cured,named,preted,vaded,sured,talled,haled,peded,gined,nited,uided,ramed,feited,laked,gured,ctored,unged,pired,cuted,voked,eloped,ralled,rined,coded,icited,vided,uaded,voted,mined,sired,noted,lined,nselled,luted,jured,fided,puted,piled,pared,olored,cided,hoked,enged,tured,geoned,cotted,lamed,uiled,waited,udited,anged,luded,mired,uired,radedยฆ5:modelled,izzled,eleted,umpeted,ailored,rseded,treated,eduled,ecited,rammed,eceded,atrolled,nitored,basted,twined,itialled,ncited,gnored,ploded,xcited,nrolled,namelled,plored,efeated,redited,ntrolled,nfined,pleted,llided,lcined,eathed,ibuted,lloted,dhered,ccededยฆ3ad:sledยฆ2aw:drewยฆ2ot:hotยฆ2ke:madeยฆ2ow:hrew,grewยฆ2ose:hoseยฆ2d:iltยฆ2in:eganยฆ1un:ranยฆ1ink:houghtยฆ1ick:tuckยฆ1ike:ruckยฆ1eak:poke,nuckยฆ1it:patยฆ1o:didยฆ1ow:newยฆ1ake:wokeยฆgo:went",rev:"3:rst,hed,hut,cut,setยฆ4:tbidยฆ5:dcast,eread,pread,erbidยฆought:uy,eekยฆ1ied:ny,ly,dy,ry,fy,py,vy,by,ty,cyยฆ1ung:ling,ting,wingยฆ1pt:eepยฆ1ank:rinkยฆ1ore:bear,wearยฆ1ave:giveยฆ1oze:reezeยฆ1ound:rind,windยฆ1ook:take,hakeยฆ1aw:seeยฆ1old:sellยฆ1ote:riteยฆ1ole:tealยฆ1unk:tinkยฆ1am:wimยฆ1ay:lieยฆ1ood:tandยฆ1eld:holdยฆ2d:he,ge,re,le,leed,ne,reed,be,ye,lee,pe,weยฆ2ed:dd,oy,or,ey,gg,rr,us,ew,toยฆ2ame:ecome,rcomeยฆ2ped:apยฆ2ged:ag,og,ug,egยฆ2bed:ub,ab,ib,obยฆ2lt:neelยฆ2id:payยฆ2ang:pringยฆ2ove:triveยฆ2med:umยฆ2ode:rrideยฆ2at:ysitยฆ3ted:mit,hat,mat,lat,pot,rot,batยฆ3ed:low,end,tow,und,ond,eem,lay,cho,dow,xit,eld,ald,uld,law,lel,eat,oll,ray,ank,fin,oam,out,how,iek,tay,haw,ait,vet,say,cay,bowยฆ3d:ste,ede,ode,ete,ree,ude,ame,oke,ote,ime,ute,adeยฆ3red:lur,cur,pur,carยฆ3ped:hop,rop,uip,rip,lip,tep,topยฆ3ded:bed,rod,kidยฆ3ade:orbidยฆ3led:uelยฆ3ned:lan,can,kin,pan,tunยฆ3med:rim,limยฆ4ted:quit,llotยฆ4ed:pear,rrow,rand,lean,mand,anel,pand,reet,link,abel,evel,imit,ceed,ruit,mind,peal,veal,hool,head,pell,well,mell,uell,band,hear,weakยฆ4led:nnel,qual,ebel,ivelยฆ4red:nfer,efer,sferยฆ4n:sake,trewยฆ4d:nteeยฆ4ded:hredยฆ4ned:rpinยฆ5ed:light,nceal,right,ndear,arget,hread,eight,rtial,ebootยฆ5d:edite,nviteยฆ5ted:egretยฆ5led:ravel",ex:"2:been,uppedยฆ3:added,aged,aided,aimed,aired,bid,died,dyed,egged,erred,eyed,fit,gassed,hit,lied,owed,pent,pied,tied,used,vied,oiled,outed,banned,barred,bet,canned,cut,dipped,donned,ended,feed,inked,jarred,let,manned,mowed,netted,padded,panned,pitted,popped,potted,put,set,sewn,sowed,tanned,tipped,topped,vowed,weed,bowed,jammed,binned,dimmed,hopped,mopped,nodded,pinned,rigged,sinned,towed,vettedยฆ4:ached,baked,baled,boned,bored,called,caned,cared,ceded,cited,coded,cored,cubed,cured,dared,dined,edited,exited,faked,fared,filed,fined,fired,fuelled,gamed,gelled,hired,hoped,joked,lined,mined,named,noted,piled,poked,polled,pored,pulled,reaped,roamed,rolled,ruled,seated,shed,sided,timed,tolled,toned,voted,waited,walled,waned,winged,wiped,wired,zoned,yelled,tamed,lubed,roped,faded,mired,caked,honed,banged,culled,heated,raked,welled,banded,beat,cast,cooled,cost,dealt,feared,folded,footed,handed,headed,heard,hurt,knitted,landed,leaked,leapt,linked,meant,minded,molded,neared,needed,peaked,plodded,plotted,pooled,quit,read,rooted,sealed,seeded,seeped,shipped,shunned,skimmed,slammed,sparred,stemmed,stirred,suited,thinned,twinned,swayed,winked,dialed,abutted,blotted,fretted,healed,heeded,peeled,reeledยฆ5:basted,cheated,equalled,eroded,exiled,focused,opined,pleated,primed,quoted,scouted,shored,sloped,smoked,sniped,spelled,spouted,routed,staked,stored,swelled,tasted,treated,wasted,smelled,dwelled,honored,prided,quelled,eloped,scared,coveted,sweated,breaded,cleared,debuted,deterred,freaked,modeled,pleaded,rebutted,speededยฆ6:anchored,defined,endured,impaled,invited,refined,revered,strolled,cringed,recast,thrust,unfoldedยฆ7:authored,combined,competed,conceded,convened,excreted,extruded,redefined,restored,secreted,rescinded,welcomedยฆ8:expedited,infringedยฆ9:interfered,intervened,perseveredยฆ10:contravenedยฆeat:ateยฆis:wasยฆgo:wentยฆare:wereยฆ3d:bent,lent,rent,sentยฆ3e:bit,fled,hid,lostยฆ3ed:bled,bredยฆ2ow:blew,grewยฆ1uy:boughtยฆ2tch:caughtยฆ1o:didยฆ1ive:dove,gaveยฆ2aw:drewยฆ2ed:fedยฆ2y:flew,laid,paid,saidยฆ1ight:foughtยฆ1et:gotยฆ2ve:hadยฆ1ang:hungยฆ2ad:ledยฆ2ght:litยฆ2ke:madeยฆ2et:metยฆ1un:ranยฆ1ise:roseยฆ1it:satยฆ1eek:soughtยฆ1each:taughtยฆ1ake:woke,tookยฆ1eave:woveยฆ2ise:aroseยฆ1ear:bore,tore,woreยฆ1ind:bound,found,woundยฆ2eak:brokeยฆ2ing:brought,wrungยฆ1ome:cameยฆ2ive:droveยฆ1ig:dugยฆ1all:fellยฆ2el:feltยฆ4et:forgotยฆ1old:heldยฆ2ave:leftยฆ1ing:rang,sangยฆ1ide:rodeยฆ1ink:sankยฆ1ee:sawยฆ2ine:shoneยฆ4e:slidยฆ1ell:sold,toldยฆ4d:spentยฆ2in:spunยฆ1in:won"}),ni=ei(Uo),ai=ei(Jo),ri=ei(Wo),oi=Xo(ti),ii=Xo(ni),si=Xo(ai),li=Xo(ri),ui=ei(Mo),ci=ei(qo);var di={fromPast:ti,fromPresent:ni,fromGerund:ai,fromParticiple:ri,toPast:oi,toPresent:ii,toGerund:si,toParticiple:li,toComparative:ui,toSuperlative:ci,fromComparative:Xo(ui),fromSuperlative:Xo(ci),adjToNoun:ei(Ro)},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","faction","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","politburo","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","subsidiary","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce(((e,t)=>(e[t]=!0,e)),{}),gi=["atoll","basin","bay","beach","bluff","bog","camp","canyon","canyons","cape","cave","caves","cliffs","coast","cove","coves","crater","crossing","creek","desert","dune","dunes","downs","estates","escarpment","estuary","falls","fjord","fjords","forest","forests","glacier","gorge","gorges","grove","gulf","gully","highland","heights","hollow","hill","hills","inlet","island","islands","isthmus","junction","knoll","lagoon","lake","lakeshore","marsh","marshes","mount","mountain","mountains","narrows","peninsula","plains","plateau","pond","rapids","ravine","reef","reefs","ridge","river","rivers","sandhill","shoal","shore","shoreline","shores","strait","straits","springs","stream","swamp","tombolo","trail","trails","trench","valley","vallies","village","volcano","waterfall","watershed","wetland","woods","acres","burough","county","district","municipality","prefecture","province","region","reservation","state","territory","borough","metropolis","downtown","uptown","midtown","city","town","township","hamlet","country","kingdom","enclave","neighbourhood","neighborhood","kingdom","ward","zone","airport","amphitheater","arch","arena","auditorium","bar","barn","basilica","battlefield","bridge","building","castle","centre","coliseum","cineplex","complex","dam","farm","field","fort","garden","gardens","gymnasium","hall","house","levee","library","manor","memorial","monument","museum","gallery","palace","pillar","pits","plantation","playhouse","quarry","sportsfield","sportsplex","stadium","terrace","terraces","theater","tower","park","parks","site","ranch","raceway","sportsplex","ave","st","street","rd","road","lane","landing","crescent","cr","way","tr","terrace","avenue"].reduce(((e,t)=>(e[t]=!0,e)),{}),mi=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..ase)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,""]];const pi=function(e,t){const{irregularPlurals:n}=t.two;let a=(r=n,Object.keys(r).reduce(((e,t)=>(e[r[t]]=t,e)),{}));var r;if(a.hasOwnProperty(e))return a[e];for(let t=0;t(bi[t].forEach((n=>e[n]=t)),e)),{});const yi=function(e){let t=e.substring(e.length-3);if(!0===bi.hasOwnProperty(t))return bi[t];let n=e.substring(e.length-2);return!0===bi.hasOwnProperty(n)?bi[n]:"s"===e.substring(e.length-1)?"PresentTense":null},vi={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"},wi=function(e,t,n){const{fromPast:a,fromPresent:r,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",a={};t.one&&t.one.prefixes&&(a=t.one.prefixes);let[r,o]=e.split(/ /);return o&&!0===a[r]&&(n=r,r=o,o=""),{prefix:n,verb:r,particle:o}}(e,t),c="";if(n||(n=yi(e)),vi.hasOwnProperty(e))c=vi[e];else if("Participle"===n)c=Qo(l,i);else if("PastTense"===n)c=Qo(l,a);else if("PresentTense"===n)c=Qo(l,r);else{if("Gerund"!==n)return e;c=Qo(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c},ki=function(e,t){const{toPast:n,toPresent:a,toGerund:r,toParticiple:o}=t.two.models;if("be"===e)return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};let[i,s]=(e=>/ /.test(e)?e.split(/ /):[e,""])(e),l={Infinitive:i,PastTense:Qo(i,n),PresentTense:Qo(i,a),Gerund:Qo(i,r),FutureTense:"will "+i},u=Qo(i,o);if(u!==e&&u!==l.PastTense){let n=t.one.lexicon||{};"Participle"!==n[u]&&"Adjective"!==n[u]||("play"===e&&(u="played"),l.Participle=u)}return s&&Object.keys(l).forEach((e=>{l[e]+=" "+s})),l};var Pi={toInfinitive:wi,conjugate:ki,all:function(e,t){let n=ki(e,t);return delete n.FutureTense,Object.values(n).filter((e=>e))}};const Ai=function(e,t){const n=t.two.models.toSuperlative;return Qo(e,n)},Ci=function(e,t){const n=t.two.models.toComparative;return Qo(e,n)},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},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]),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"}],Hi=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),Gi={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"quick",superbly:"superb",cynically:"cynical",well:"good"},Ti=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],xi={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"},Ei=function(e){if(xi.hasOwnProperty(e))return xi[e];let t=ji(e,Ti);return t||(t=e+"ly"),t};var Fi={toSuperlative:Ai,toComparative:Ci,toAdverb:Ei,toNoun:function(e,t){const n=t.two.models.adjToNoun;return Qo(e,n)},fromAdverb:function(e){return e.endsWith("ly")?Ii.has(e)?e.replace(/ically/,"ical"):Hi.has(e)?null:Gi.hasOwnProperty(e)?Gi[e]:ji(e,Di)||e:null},fromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return Qo(e,n)},fromComparative:function(e,t){const n=t.two.models.fromComparative;return Qo(e,n)},all:function(e,t){let n=[e];return n.push(Ai(e,t)),n.push(Ci(e,t)),n.push(Ei(e)),n=n.filter((e=>e)),n=new Set(n),Array.from(n)}},Oi={noun:fi,verb:Pi,adjective:Fi},zi={Singular:(e,t,n,a)=>{let r=a.one.lexicon,o=n.two.transform.noun.toPlural(e,a);r[o]||(t[o]=t[o]||"Plural")},Actor:(e,t,n,a)=>{let r=a.one.lexicon,o=n.two.transform.noun.toPlural(e,a);r[o]||(t[o]=t[o]||["Plural","Actor"])},Comparable:(e,t,n,a)=>{let r=a.one.lexicon,{toSuperlative:o,toComparative:i}=n.two.transform.adjective,s=o(e,a);r[s]||(t[s]=t[s]||"Superlative");let l=i(e,a);r[l]||(t[l]=t[l]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,a)=>{let r=n.two.transform.noun.toPlural(e,a);t[r]=t[r]||["Demonym","Plural"]},Infinitive:(e,t,n,a)=>{let r=a.one.lexicon,o=n.two.transform.verb.conjugate(e,a);Object.entries(o).forEach((e=>{r[e[1]]||t[e[1]]||"FutureTense"===e[0]||(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.verb.conjugate(i,a);delete l.FutureTense,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]]=2;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"]},Place:(e,t)=>{t[e]=["Place","ProperNoun"]},Region:(e,t)=>{t[e]=["Region","ProperNoun"]}};const Vi={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"],t:["feet"]},Bi=new Set(["israelis","menus","logos"]),Si=["bus","mas","was","ias","xas","vas","cis","lis","nis","ois","ris","sis","tis","xis","aus","cus","eus","fus","gus","ius","lus","nus","das","ous","pus","rus","sus","tus","xus","aos","igos","ados","ogos","'s","ss"],Ki=function(e){if(!e||e.length<=3)return!1;if(Bi.has(e))return!0;let t=e[e.length-1];return Vi.hasOwnProperty(t)?Vi[t].find((t=>e.endsWith(t))):"s"===t&&!Si.find((t=>e.endsWith(t)))};var $i={two:{quickSplit:function(e){const t=/[,:;]/;let n=[];return e.forEach((e=>{let a=0;e.forEach(((r,o)=>{t.test(r.post)&&function(e,t){const n=/^[0-9]+$/;let a=e[t];if(!a)return!1;const r=new Set(["may","april","august","jan"]);if("like"===a.normal||r.has(a.normal))return!1;if(a.tags.has("Place")||a.tags.has("Date"))return!1;if(e[t-1]){let n=e[t-1];if(n.tags.has("Date")||r.has(n.normal))return!1;if(n.tags.has("Adjective")||a.tags.has("Adjective"))return!1}let o=a.normal;return 1!==o.length&&2!==o.length&&4!==o.length||!n.test(o)}(e,o+1)&&(n.push(e.slice(a,o+1)),a=o+1)})),a{let i=e[t],s=(t=(t=t.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);s.length>1&&(void 0===o[s[0]]||s.length>o[s[0]])&&(o[s[0]]=s.length),!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:Oi,looksPlural:Ki}};let Li={one:{lexicon:{}},two:{models:di}};const Mi={"Actor|Verb":"Actor","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":"FirstName","Person|Place":"Person","Person|Adj":"Comparative","Plural|Verb":"Plural","Unit|Noun":"Noun"},Ji=function(e,t){const n={model:t,methods:$i};let{lex:a,_multi:r}=$i.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,a),Object.assign(t.one._multiCache,r),t},Wi=function(e,t,n){let a=ki(e,Li);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,n){let a=Ai(e,n);t[a]=t[a]||"Superlative";let r=Ci(e,n);t[r]=t[r]||"Comparative"},qi=function(e,t){let n={};const a=t.one.lexicon;return Object.keys(e).forEach((r=>{const o=e[r];if(n[r]=Mi[o],"Noun|Verb"!==o&&"Person|Verb"!==o&&"Actor|Verb"!==o||Wi(r,a,!1),"Adj|Present"===o&&(Wi(r,a,!0),Ui(r,a,t)),"Person|Adj"===o&&Ui(r,a,t),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=wi(r,Li,"Gerund");a[e]||(n[e]="Infinitive")}if("Noun|Gerund"!==o&&"Adj|Noun"!==o&&"Person|Noun"!==o||function(e,t,n){let a=vr(e,n);t[a]=t[a]||"Plural"}(r,a,t),"Adj|Past"===o){let e=wi(r,Li,"PastTense");a[e]||(n[e]="Infinitive")}})),t=Ji(n,t)};let Ri={one:{_multiCache:{},lexicon:kr,frozenLex:{"20th century fox":"Organization","7 eleven":"Organization","motel 6":"Organization","excuse me":"Expression","financial times":"Organization","guns n roses":"Organization","la z boy":"Organization","labour party":"Organization","new kids on the block":"Organization","new york times":"Organization","the guess who":"Organization","thin lizzy":"Organization","prime minister":"Actor","free market":"Singular","lay up":"Singular","living room":"Singular","living rooms":"Plural","spin off":"Singular","appeal court":"Uncountable","cold war":"Uncountable","gene pool":"Uncountable","machine learning":"Uncountable","nail polish":"Uncountable","time off":"Uncountable","take part":"Infinitive","bill gates":"Person","doctor who":"Person","dr who":"Person","he man":"Person","iron man":"Person","kid cudi":"Person","run dmc":"Person","rush limbaugh":"Person","snow white":"Person","tiger woods":"Person","brand new":"Adjective","en route":"Adjective","left wing":"Adjective","off guard":"Adjective","on board":"Adjective","part time":"Adjective","right wing":"Adjective","so called":"Adjective","spot on":"Adjective","straight forward":"Adjective","super duper":"Adjective","tip top":"Adjective","top notch":"Adjective","up to date":"Adjective","win win":"Adjective","brooklyn nets":"SportsTeam","chicago bears":"SportsTeam","houston astros":"SportsTeam","houston dynamo":"SportsTeam","houston rockets":"SportsTeam","houston texans":"SportsTeam","minnesota twins":"SportsTeam","orlando magic":"SportsTeam","san antonio spurs":"SportsTeam","san diego chargers":"SportsTeam","san diego padres":"SportsTeam","iron maiden":"ProperNoun","isle of man":"Country","united states":"Country","united states of america":"Country","prince edward island":"Region","cedar breaks":"Place","cedar falls":"Place","point blank":"Adverb","tiny bit":"Adverb","by the time":"Conjunction","no matter":"Conjunction","civil wars":"Plural","credit cards":"Plural","default rates":"Plural","free markets":"Plural","head starts":"Plural","home runs":"Plural","lay ups":"Plural","phone calls":"Plural","press releases":"Plural","record labels":"Plural","soft serves":"Plural","student loans":"Plural","tax returns":"Plural","tv shows":"Plural","video games":"Plural","took part":"PastTense","takes part":"PresentTense","taking part":"Gerund","taken part":"Participle","light bulb":"Noun","rush hour":"Noun","fluid ounce":"Unit","the rolling stones":"Organization"}},two:{irregularPlurals:lr,models:di,suffixPatterns:Ao,prefixPatterns:Io,endsWith:So,neighbours:Lo,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'[a-z]{3}/,"LastName","mc'neil"],[/^o'[a-z]{3}/,"LastName","o'connor"],[/^ma?cd[aeiou][a-z]{3}/,"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"],[/[^:/]\/\p{Letter}/u,"SlashedTerm","love/hate"]],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]{4}|[0-9]{2})$/,"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})$/,"NumericValue","9km"]],switches:Pr,clues:io,uncountable:{},orgWords:hi,placeWords:gi}};Ri=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=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}(e=qi(e.two.switches,e)),e}(Ri);const Qi=function(e,t,n,a){const r=a.methods.one.setTag;"-"===e[t].post&&e[t+1]&&r([e[t],e[t+1]],"Hyphenated",a,null,"1-punct-hyphen''")},Zi=/^(under|over|mis|re|un|dis|semi)-?/,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(Zi.test(r.normal)){let e=r.normal.replace(Zi,"");e.length>3&&a.hasOwnProperty(e)&&(r.switch=a[e])}},_i=function(e,t,n){if(!t||0===t.length)return;if(!0===e.frozen)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)))},Yi=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific","Month"],es=function(e,t,n){let a=e[t],r=Array.from(a.tags);for(let e=0;ee.tags.has(t)))||(Ki(e.normal)?_i(e,"Plural","3-plural-guess"):_i(e,"Singular","3-singular-guess"))}(a),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=yi(e.normal);t&&_i(e,t,"3-verb-tense-guess")}}(a)},ts=/^\p{Lu}[\p{Ll}'โ€™]/u,ns=/[0-9]/,as=["Date","Month","WeekDay","Unit","Expression"],rs=/[IVX]/,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},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===ts.test(o)&&!1===ns.test(o)?as.find((e=>a.tags.has(e)))||a.pre.match(/["']$/)||"the"===a.normal?null:(es(e,t,n),a.tags.has("Noun")||a.frozen||a.tags.clear(),_i(a,"ProperNoun","2-titlecase"),!0):o.length>=2&&os.test(o)&&rs.test(o)&&is.test(o)&&!ss[a.normal]?(_i(a,"RomanNumeral","2-xvii"),!0):null},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},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 _i(a,e,"2-suffix"),a.confidence=.7,!0;if(a.implicit&&(e=us(a.implicit,n.two.suffixPatterns),null!==e))return _i(a,e,"2-implicit-suffix"),a.confidence=.7,!0}return null},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 _i(a,e,"2-prefix"),a.confidence=.5,!0}return null},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"))},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 _i(n,"Year","2-tagYear");if(a>=1920&&a<2025){if(bs(r)||bs(o))return _i(n,"Year","2-tagYear-close");if(ys(e[t-2])||ys(e[t+2]))return _i(n,"Year","2-tagYear-far");if(r&&(r.tags.has("Determiner")||r.tags.has("Possessive"))&&o&&o.tags.has("Noun")&&!o.tags.has("Plural"))return _i(n,"Year","2-tagYear-noun")}}}return null},ws=function(e,t,n,a){const r=a.methods.one.setTag,o=e[t],i=["PastTense","PresentTense","Auxiliary","Modal","Particle"];if(o.tags.has("Verb")){i.find((e=>o.tags.has(e)))||r([o],"Infinitive",a,null,"2-verb-type''")}},ks=/^[A-Z]('s|,)?$/,Ps=/^[A-Z-]+$/,As=/^[A-Z]+s$/,Cs=/([A-Z]\.)+[A-Z]?,?$/,js=/[A-Z]{2,}('s|,)?$/,Ns=/([a-z]\.)+[a-z]\.?$/,Is={I:!0,A:!0},Ds={la:!0,ny:!0,us:!0,dc:!0,gb:!0},Hs=function(e,t,n){let a=e[t];return a.tags.has("RomanNumeral")||a.tags.has("Acronym")||a.frozen?null:function(e,t){let n=e.text;if(!1===Ps.test(n)){if(!(n.length>3&&!0===As.test(n)))return!1;n=n.replace(/s$/,"")}return!(n.length>5||Is.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Cs.test(n)&&!0!==Ns.test(n)&&!0!==ks.test(n)&&!0!==js.test(n))}(a,n)?(a.tags.clear(),_i(a,["Acronym","Noun"],"3-no-period-acronym"),!0===Ds[a.normal]&&_i(a,"Place","3-place-acronym"),!0===As.test(a.text)&&_i(a,"Plural","3-plural-acronym"),!0):!Is.hasOwnProperty(a.text)&&ks.test(a.text)?(a.tags.clear(),_i(a,["Acronym","Noun"],"3-one-letter-acronym"),!0):a.tags.has("Organization")&&a.text.length<=3?(_i(a,"Acronym","3-org-acronym"),!0):a.tags.has("Organization")&&Ps.test(a.text)&&a.text.length<=6?(_i(a,"Acronym","3-titlecase-acronym"),!0):null},Gs=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},xs=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||Ts(e[t-1],a),l=l||Ts(e[t+1],i),l)return _i(s,l,"3-[neighbour]"),es(e,t,n),e[t].confidence=.2,!0}return null},Es=function(e,t,n){return!!e&&(!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||!(n||(a=e.text,!/^\p{Lu}[\p{Ll}'โ€™]/u.test(a)))&&(0!==t||e.tags.has("Singular"))));var a},Fs=function(e,t,n,a){const r=n.model.two.orgWords,o=n.methods.one.setTag;let i=e[t];if(!0===r[i.machine||i.normal]&&Es(e[t-1],t-1,a)){o([e[t]],"Organization",n,null,"3-[org-word]");for(let r=t;r>=0&&Es(e[r],r,a);r-=1)o([e[r]],"Organization",n,null,"3-[org-word]")}return null},Os=/'s$/,zs=new Set(["athletic","city","community","eastern","federal","financial","great","historic","historical","local","memorial","municipal","national","northern","provincial","southern","state","western","spring","pine","sunset","view","oak","maple","spruce","cedar","willow"]),Vs=new Set(["center","centre","way","range","bar","bridge","field","pit"]),Bs=function(e,t,n){if(!e)return!1;let a=e.tags;return!(a.has("Organization")||a.has("Possessive")||Os.test(e.normal))&&(!(!a.has("ProperNoun")&&!a.has("Place"))||!(n||(r=e.text,!/^\p{Lu}[\p{Ll}'โ€™]/u.test(r)))&&(0!==t||a.has("Singular")));var r},Ss=function(e,t,n,a){const r=n.model.two.placeWords,o=n.methods.one.setTag;let i=e[t],s=i.machine||i.normal;if(!0===r[s]){for(let r=t-1;r>=0;r-=1)if(!zs.has(e[r].normal)){if(!Bs(e[r],r,a))break;o(e.slice(r,t+1),"Place",n,null,"3-[place-of-foo]")}if(Vs.has(s))return!1;for(let r=t+1;re[t].tags.has("ProperNoun")&&$s.test(e[t].text)?"Noun":null,Ms=(e,t,n)=>0!==t||e[1]?null:n,Js={"Adj|Gerund":(e,t)=>Ls(e,t),"Adj|Noun":(e,t)=>Ls(e,t)||function(e,t){return!e[t+1]&&e[t-1]&&e[t-1].tags.has("Determiner")?"Noun":null}(e,t),"Actor|Verb":(e,t)=>Ls(e,t),"Adj|Past":(e,t)=>Ls(e,t),"Adj|Present":(e,t)=>Ls(e,t),"Noun|Gerund":(e,t)=>Ls(e,t),"Noun|Verb":(e,t)=>t>0&&Ls(e,t)||Ms(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Ls(e,t)||Ms(e,t,"PresentTense")||function(e,t,n){return 0===t&&e.length>3?n:null}(e,t,"Plural"),"Person|Noun":(e,t)=>Ls(e,t),"Person|Verb":(e,t)=>0!==t?Ls(e,t):null,"Person|Adj":(e,t)=>0===t&&e.length>1||Ls(e,t)?"Person":null},Ws="undefined"!=typeof process&&process.env?process.env:self.env||{},Us=/^(under|over|mis|re|un|dis|semi)-?/,qs=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit,a=null;return t.hasOwnProperty(n)&&(a=t[n]),a&&Ws.DEBUG_TAGS&&console.log(`\n  โ†“ - '${n}' `),a},Rs=(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)),r=a.find((e=>t[e]));return r&&Ws.DEBUG_TAGS&&console.log(`  โ†“ - '${e.normal||e.implicit}' (#${r}) `),r=t[r],r},Qs=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(Us.test(l)&&!o[l]&&(l=l.replace(Us,"")),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="also"!==e[t-1]?.text?t-1:Math.max(0,t-2),o=a.one.tagSet;let i=qs(e[t+1],n.afterWords);return i=i||qs(e[r],n.beforeWords),i=i||Rs(e[r],n.beforeTags,o),i=i||Rs(e[t+1],n.afterTags,o),i}(e,t,i[o],a);Js[o]&&(u=Js[o](e,t)||u),u?(r([s],u,n,null,`3-[switch] (${o})`),es(e,t,a)):Ws.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}},Zs={there:!0,this:!0,it:!0,him:!0,her:!0,us:!0},Xs=function(e){if(e.filter((e=>!e.tags.has("ProperNoun"))).length<=3)return!1;const t=/^[a-z]/;return e.every((e=>!t.test(e.text)))},_s=function(e,t,n,a){for(let r=0;r=2){if(e.length<4&&!Zs[e[1].normal])return;if(!r.tags.has("PhrasalVerb")&&a.hasOwnProperty(r.normal))return;(e[1].tags.has("Noun")||e[1].tags.has("Determiner"))&&(e.slice(1,3).some((e=>e.tags.has("Verb")))&&!r.tags.has("#PhrasalVerb")||n([r],"Imperative",t,null,"3-[imperative]"))}}(e,n)},el={Possessive:e=>{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.noun.toSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(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.verb.toInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromSuperlative(n,t.model)},Adverb:(e,t)=>{const{fromAdverb:n}=t.methods.two.transform.adjective;return n(e.machine||e.normal||e.text)}},tl={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:"NN",Plural:"NNS",Noun:"NN",There:"EX"};var nl={preTagger:function(e){const{methods:t,model:n,world:a}=e;let r=e.docs;!function(e,t,n){e.forEach((e=>{!function(e,t,n,a){const r=a.methods.one.setTag;if(e.length>=3){const t=/:/;if(e[0].post.match(t)){let t=e[1];if(t.tags.has("Value")||t.tags.has("Email")||t.tags.has("PhoneNumber"))return;r([e[0]],"Expression",a,null,"2-punct-colon''")}}}(e,0,0,n)}))}(r,0,a);let o=t.two.quickSplit(r);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))),n[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))},gl=/'/,ml=new Set(["been","become"]),pl=new Set(["what","how","when","if","too"]);let fl=new Set(["too","also","enough"]);const bl=function(e,t){let n=e[t].normal.split(gl)[0];if("let"===n)return[n,"us"];if("there"===n){let a=e[t+1];if(a&&a.tags.has("Plural"))return[n,"are"]}return"has"===((e,t)=>{for(let n=t+1;n{for(let n=t+1;n0&&(n-=1),e[o]&&(o+=1),r.ptrs=[[0,n,o]],r.compute(["freeze","lexicon","preTagger","unfreeze"]),function(e){e.forEach(((e,t)=>{e.index&&(e.index[1]=t)}))}(e)},Dl={d:(e,t)=>kl(e,t),t:(e,t)=>function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){if(e[t+1]&&"never"===e[t+1].normal)return["have"];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("i"===n.normal)return["am","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]}(e,t),s:(e,t,n)=>((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("QuestionWord"))return!1;if("he's"===n.normal||"she's"===n.normal)return!1;let a=e[t+1];if(!a)return!0;if("it's"===n.normal)return!!a.tags.has("#Noun");if("Noun|Gerund"==a.switch){let a=e[t+2];return a?!!a.tags.has("Copula")||("on"===a.normal||a.normal,!1):!(!n.tags.has("Actor")&&!n.tags.has("ProperNoun"))}if(a.tags.has("Verb"))return!!a.tags.has("Infinitive")||!a.tags.has("Gerund")&&!!a.tags.has("PresentTense");if("Adj|Noun"===a.switch){let n=e[t+2];if(!n)return!1;if(jl.has(n.normal))return!0;if(Cl.has(n.normal))return!1}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;if(a.tags.has("Adjective")){let n=e[t+2];if(!n)return!1;if(n.tags.has("Noun")&&!n.tags.has("Pronoun")){let e=a.normal;return"above"!==e&&"below"!==e&&"behind"!==e}return"Noun|Verb"===n.switch}return!!a.tags.has("Value")})(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,null,"2-contraction"):bl(e,t)},Hl=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var Gl={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)continue;let i=null;!0===Nl.test(a[o].normal)&&(i=a[o].normal.split(Nl)[1]);let s=null;Dl.hasOwnProperty(i)&&(s=Dl[i](a,o,t)),s&&(s=Hl(s,e),hl(n,[r,o],s),Il(n[r],e,o,s.length))}}))}},Tl={compute:Gl,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=cl},hooks:["contractionTwo"]};const xl="(hard|fast|late|early|high|right|deep|close|direct)";const El="(i|we|they)";let Fl=[].concat([{match:"(got|were|was|is|are|am) (#PastTense|#Participle)",tag:"Passive",reason:"got-walked"},{match:"(was|were|is|are|am) being (#PastTense|#Participle)",tag:"Passive",reason:"was-being"},{match:"(had|have|has) been (#PastTense|#Participle)",tag:"Passive",reason:"had-been"},{match:"will be being? (#PastTense|#Participle)",tag:"Passive",reason:"will-be-cleaned"},{match:"#Noun [(#PastTense|#Participle)] by (the|a) #Noun",group:0,tag:"Passive",reason:"suffered-by"}],[{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,notIf:"(all|even)",tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"[#Hyphenated (#Hyphenated && #PastTense)] (#Noun|#Conjunction)",group:0,tag:"Adjective",notIf:"#Adverb",reason:"faith-based"},{match:"[#Hyphenated (#Hyphenated && #Gerund)] (#Noun|#Conjunction)",group:0,tag:"Adjective",notIf:"#Adverb",reason:"self-driving"},{match:"[#PastTense (#Hyphenated && #PhrasalVerb)] (#Noun|#Conjunction)",group:0,tag:"Adjective",reason:"dammed-up"},{match:"(#Hyphenated && #Value) fold",tag:"Adjective",reason:"two-fold"},{match:"must (#Hyphenated && #Infinitive)",tag:"Adjective",reason:"must-win"},{match:"(#Hyphenated && #Infinitive) #Hyphenated",tag:"Adjective",notIf:"#PhrasalVerb",reason:"vacuum-sealed"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"},{match:"[(un|contra|extra|inter|intra|macro|micro|mid|mis|mono|multi|pre|sub|tri|ex)] #Adjective",group:0,tag:["Adjective","Prefix"],reason:"un-skilled"}],[{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:"#Copula [far too] #Adjective",group:0,tag:"Adverb",reason:"far-too"},{match:"#Copula [still] (in|#Gerund|#Adjective)",group:0,tag:"Adverb",reason:"was-still-walking"},{match:`#Plural ${xl}`,tag:"#PresentTense #Adverb",reason:"studies-hard"},{match:`#Verb [${xl}] !#Noun?`,group:0,notIf:"(#Copula|get|got|getting|become|became|becoming|feel|feels|feeling|#Determiner|#Preposition)",tag:"Adverb",reason:"shops-direct"},{match:"[#Plural] a lot",tag:"PresentTense",reason:"studies-a-lot"}],[{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:"#Gerund [#Gerund]",group:0,tag:"Adjective",notIf:"(impersonating|practicing|considering|assuming)",reason:"looking-annoying"},{match:"(looked|look|looks) #Adverb? [%Adj|Gerund%]",group:0,tag:"Adjective",notIf:"(impersonating|practicing|considering|assuming)",reason:"looked-amazing"},{match:"[%Adj|Gerund%] #Determiner",group:0,tag:"Gerund",reason:"developing-a"},{match:"#Possessive [%Adj|Gerund%] #Noun",group:0,tag:"Adjective",reason:"leading-manufacturer"},{match:"%Noun|Gerund% %Adj|Gerund%",tag:"Gerund #Adjective",reason:"meaning-alluring"},{match:"(face|embrace|reveal|stop|start|resume) %Adj|Gerund%",tag:"#PresentTense #Adjective",reason:"face-shocking"},{match:"(are|were) [%Adj|Gerund%] #Plural",group:0,tag:"Adjective",reason:"are-enduring-symbols"}],[{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",notIf:"#Hyphenated",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:"no [#Adjective] #Modal",group:0,tag:"Noun",reason:"no-golden"},{match:"[brand #Gerund?] new",group:0,tag:"Adverb",reason:"brand-new"},{match:"(#Determiner|#Comparative|new|different) [kind]",group:0,tag:"Noun",reason:"some-kind"},{match:"#Possessive [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"her-favourite"},{match:"must && #Hyphenated .",tag:"Adjective",reason:"must-win"},{match:"#Determiner [#Adjective]$",tag:"Noun",notIf:"(this|that|#Comparative|#Superlative)",reason:"the-south"},{match:"(#Noun && #Hyphenated) (#Adjective && #Hyphenated)",tag:"Adjective",notIf:"(this|that|#Comparative|#Superlative)",reason:"company-wide"},{match:"#Determiner [#Adjective] (#Copula|#Determiner)",notIf:"(#Comparative|#Superlative)",group:0,tag:"Noun",reason:"the-poor"},{match:"[%Adj|Noun%] #Noun",notIf:"(#Pronoun|#ProperNoun)",group:0,tag:"Adjective",reason:"stable-foundations"}],[{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,notIf:"(#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] #Comparative",group:0,tag:"Adverb",reason:"even-worse"},{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|bright|slow|fast|backwards|forwards)]",notIf:"#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",notIf:"(getting|becoming|feeling)",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",notIf:"(#PhrasalVerb|#Copula)",reason:"charge-back"},{match:"#Verb [around]",group:0,tag:"Adverb",notIf:"#PhrasalVerb",reason:"send-around"},{match:"[later] #PresentTense",group:0,tag:"Adverb",reason:"later-say"},{match:"#Determiner [well] !#PastTense?",group:0,tag:"Noun",reason:"the-well"},{match:"#Adjective [enough]",group:0,tag:"Adverb",reason:"high-enough"}],[{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) !#Infinitive?",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:"#Value (am|pm)",tag:"Time",reason:"2-am"}],[{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:"(the|any) [more]",group:0,tag:"Singular",reason:"more-noun"},{match:"[more] #Noun",group:0,tag:"Adjective",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Singular",reason:"bit-2"},{match:"a [must]",group:0,tag:"Singular",reason:"must-2"},{match:"(we|us) [all]",group:0,tag:"Noun",reason:"we all"},{match:"due to [#Verb]",group:0,tag:"Noun",reason:"due-to"},{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",notIf:"#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:"(a|an|the) [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",notIf:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,notIf:"#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? [#PresentTense #Particle?]",group:0,tag:"Noun",notIf:"(seem|appear|include|#Gerund|#Copula)",reason:"det-inf"},{match:"#Noun #Actor",tag:"Actor",notIf:"(#Person|#Pronoun)",reason:"thing-doer"},{match:"#Gerund #Actor",tag:"Actor",reason:"gerund-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"[#Noun+] #Actor",group:0,tag:"Actor",notIf:"(#Honorific|#Pronoun|#Possessive)",reason:"air-traffic-controller"},{match:"(urban|cardiac|cardiovascular|respiratory|medical|clinical|visual|graphic|creative|dental|exotic|fine|certified|registered|technical|virtual|professional|amateur|junior|senior|special|pharmaceutical|theoretical)+ #Noun? #Actor",tag:"Actor",reason:"fine-artist"},{match:"#Noun+ (coach|chef|king|engineer|fellow|personality|boy|girl|man|woman|master)",tag:"Actor",reason:"dance-coach"},{match:"chief . officer",tag:"Actor",reason:"chief-x-officer"},{match:"chief of #Noun+",tag:"Actor",reason:"chief-of-police"},{match:"senior? vice? president of #Noun+",tag:"Actor",reason:"president-of"},{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:"#Possessive #PresentTense #Particle?",notIf:"(#Gerund|her)",tag:"Noun",reason:"possessive-verb"},{match:"(my|our|their|her|his|its) [(#Plural && #Actor)] #Noun",tag:"Possessive",reason:"my-dads"},{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 [#Verb] and #Noun",group:0,tag:"Noun",reason:"peace-and-flowers"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"},{match:"#Copula the [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"the-premier-university"},{match:"i #Verb [me] #Noun",group:0,tag:"Possessive",reason:"scottish-me"},{match:"[#PresentTense] (music|class|lesson|night|party|festival|league|ceremony)",group:0,tag:"Noun",reason:"dance-music"},{match:"[wit] (me|it)",group:0,tag:"Presposition",reason:"wit-me"},{match:"#PastTense #Possessive [#Verb]",group:0,tag:"Noun",notIf:"(saw|made)",reason:"left-her-boots"},{match:"#Value [%Plural|Verb%]",group:0,tag:"Plural",notIf:"(one|1|a|an)",reason:"35-signs"},{match:"had [#PresentTense]",group:0,tag:"Noun",notIf:"(#Gerund|come|become)",reason:"had-time"},{match:"%Adj|Noun% %Noun|Verb%",tag:"#Adjective #Noun",notIf:"#ProperNoun #Noun",reason:"instant-access"},{match:"#Determiner [%Adj|Noun%] #Conjunction",group:0,tag:"Noun",reason:"a-rep-to"},{match:"#Adjective #Noun [%Plural|Verb%]$",group:0,tag:"Plural",notIf:"#Pronoun",reason:"near-death-experiences"},{match:"#Possessive #Noun [%Plural|Verb%]$",group:0,tag:"Plural",reason:"your-guild-colors"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,ifNo:"#Copula",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",notIf:"(still|even|just)",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"#Copula [(#Gerund|#Activity)] #Copula",group:0,tag:"Gerund",reason:"are-doing-is"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"},{match:"#Singular for [%Noun|Gerund%]",group:0,tag:"Gerund",reason:"noun-for-gerund"},{match:"#Comparative (for|at) [%Noun|Gerund%]",group:0,tag:"Gerund",reason:"better-for-gerund"},{match:"#PresentTense the [#Gerund]",group:0,tag:"Noun",reason:"keep-the-touching"}],[{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 (only|further|just|more|backward) [#Infinitive]",group:0,tag:"Noun",reason:"the-only-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{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,notIf:"from",tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"#Plural 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 #Particle?]",notIf:"(#Copula|#Noun|sure|fun|up)",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",notIf:"#Pronoun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"this [#Plural]",group:0,tag:"PresentTense",notIf:"(#Preposition|#Date)",reason:"this-verbs"},{match:"#Noun that [#Plural]",group:0,tag:"PresentTense",notIf:"(#Preposition|#Pronoun|way)",reason:"voice-that-rocks"},{match:"that [#Plural] to",group:0,tag:"PresentTense",notIf:"#Preposition",reason:"that-leads-to"},{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]",notIf:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",notIf:"better",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",notIf:"(#Copula|better)",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"many-poses"},{match:"#Determiner #Adverb #Adjective [%Noun|Verb%]",group:0,tag:"Noun",notIf:"#Copula",reason:"very-big-dream"},{match:"from #Noun to [%Noun|Verb%]",group:0,tag:"Noun",reason:"start-to-finish"},{match:"(for|with|of) #Noun (and|or|not) [%Noun|Verb%]",group:0,tag:"Noun",notIf:"#Pronoun",reason:"for-food-and-gas"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",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) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #Particle #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] of",group:0,notIf:"(one|1|#Copula|#Infinitive)",tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",notIf:"#Copula",reason:"our-full-support"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",notIf:"going",reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"},{match:"how to [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"how-to-noun"},{match:"which [%Noun|Verb%] #Noun",group:0,tag:"Infinitive",reason:"which-boost-it"},{match:"#Gerund [%Plural|Verb%]",group:0,tag:"Plural",reason:"asking-questions"},{match:"(ready|available|difficult|hard|easy|made|attempt|try) to [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"ready-to-noun"},{match:"(bring|went|go|drive|run|bike) to [%Noun|Verb%]",group:0,tag:"Noun",reason:"bring-to-noun"},{match:"#Modal #Noun [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"would-you-look"},{match:"#Copula just [#Infinitive]",group:0,tag:"Noun",reason:"is-just-spam"},{match:"^%Noun|Verb% %Plural|Verb%",tag:"Imperative #Plural",reason:"request-copies"},{match:"#Adjective #Plural and [%Plural|Verb%]",group:0,tag:"#Plural",reason:"pickles-and-drinks"},{match:"#Determiner #Year [#Verb]",group:0,tag:"Noun",reason:"the-1968-film"},{match:"#Determiner [#PhrasalVerb #Particle]",group:0,tag:"Noun",reason:"the-break-up"},{match:"#Determiner [%Adj|Noun%] #Noun",group:0,tag:"Adjective",notIf:"(#Pronoun|#Possessive|#ProperNoun)",reason:"the-individual-goals"},{match:"[%Noun|Verb%] or #Infinitive",group:0,tag:"Infinitive",reason:"work-or-prepare"},{match:"to #Infinitive [#PresentTense]",group:0,tag:"Noun",notIf:"(#Gerund|#Copula|help)",reason:"to-give-thanks"},{match:"[#Noun] me",group:0,tag:"Verb",reason:"kills-me"},{match:"%Plural|Verb% %Plural|Verb%",tag:"#PresentTense #Plural",reason:"removes-wrinkles"}],[{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:"a pound",tag:"#Money #Unit",reason:"a-pound"},{match:"#Value (pound|pounds)",tag:"#Money #Unit",reason:"4-pounds"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"},{match:"#Value #Unit [(per|an) (hr|hour|sec|second|min|minute)]",group:0,tag:"Unit",reason:"12-miles-per-second"},{match:"#Value [(square|cubic)] #Unit",group:0,tag:"Unit",reason:"square-miles"}],[{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(sister|pope|brother|father|aunt|uncle|grandpa|grandfather|grandma) #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",notIf:"#Place",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",notIf:"#Place",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",notIf:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",notIf:"#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:"[(lieutenant|corporal|sergeant|captain|qeen|king|admiral|major|colonel|marshal|president|queen|king)+] #ProperNoun",group:0,tag:"Honorific",reason:"seargeant-john"},{match:"[(private|general|major|rear|prime|field|count|miss)] #Honorific? #Person",group:0,tag:["Honorific","Person"],reason:"ambg-honorifics"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",notIf:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:"Honorific",reason:"his-excellency"},{match:"#Honorific #Actor",tag:"Honorific",reason:"Lieutenant colonel"},{match:"(first|second|third|1st|2nd|3rd) #Actor",tag:"Honorific",reason:"first lady"},{match:"#Person #RomanNumeral",tag:"Person",reason:"louis-IV"}],[{match:"#FirstName #Noun$",tag:". #LastName",notIf:"(#Possessive|#Organization|#Place|#Pronoun|@hasTitleCase)",reason:"firstname-noun"},{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",ifNo:"#Actor"},{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:"#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:"(#FirstName && !#Possessive) [#Singular] #Verb",group:0,safe:!0,tag:"LastName",reason:"jack-layton"},{match:"^[#Singular] #Person #Verb",group:0,safe:!0,tag:"Person",reason:"sherwood-anderson"},{match:"(a|an) [#Person]$",group:0,unTag:"Person",reason:"a-warhol"}],[{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",notIf:"(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:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(have|had) read",tag:"Modal #PastTense",reason:"read-read"},{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:"as #Pronoun [please]",group:0,tag:"Infinitive",reason:"as-we-please"},{match:"[(co|mis|de|inter|intra|pre|re|un|out|under|over|counter)] #Verb",group:0,tag:["Verb","Prefix"],notIf:"(#Copula|#PhrasalVerb)",reason:"co-write"},{match:"#PastTense and [%Adj|Past%]",group:0,tag:"PastTense",reason:"dressed-and-left"},{match:"[%Adj|Past%] and #PastTense",group:0,tag:"PastTense",reason:"dressed-and-left"},{match:"#Copula #Pronoun [%Adj|Past%]",group:0,tag:"Adjective",reason:"is-he-stoked"},{match:"to [%Noun|Verb%] #Preposition",group:0,tag:"Infinitive",reason:"to-dream-of"}],[{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:"#Copula [#Adjective] (well|badly|quickly|slowly)",group:0,tag:"Verb",reason:"done-well"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"},{match:"(seem|feel|seemed|felt) [#PastTense #Particle?]",group:0,tag:"Adjective",reason:"seem-confused"},{match:"a (bit|little|tad) [#PastTense #Particle?]",group:0,tag:"Adjective",reason:"a-bit-confused"},{match:"not be [%Adj|Past% #Particle?]",group:0,tag:"Adjective",reason:"do-not-be-confused"},{match:"#Copula just [%Adj|Past% #Particle?]",group:0,tag:"Adjective",reason:"is-just-right"},{match:"as [#Infinitive] as",group:0,tag:"Adjective",reason:"as-pale-as"},{match:"[%Adj|Past%] and #Adjective",group:0,tag:"Adjective",reason:"faled-and-oppressive"},{match:"or [#PastTense] #Noun",group:0,tag:"Adjective",notIf:"(#Copula|#Pronoun)",reason:"or-heightened-emotion"},{match:"(become|became|becoming|becomes) [#Verb]",group:0,tag:"Adjective",reason:"become-verb"},{match:"#Possessive [#PastTense] #Noun",group:0,tag:"Adjective",reason:"declared-intentions"},{match:"#Copula #Pronoun [%Adj|Present%]",group:0,tag:"Adjective",reason:"is-he-cool"},{match:"#Copula [%Adj|Past%] with",group:0,tag:"Adjective",notIf:"(associated|worn|baked|aged|armed|bound|fried|loaded|mixed|packed|pumped|filled|sealed)",reason:"is-crowded-with"},{match:"#Copula #Adverb? [%Adj|Present%]$",group:0,tag:"Adjective",reason:"was-empty$"}],[{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:"[(#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:"[(been|had|became|came)] #PastTense",group:0,notIf:"#PhrasalVerb",tag:"Auxiliary",reason:"been-told"},{match:"[(being|having|getting)] #Verb",group:0,tag:"Auxiliary",reason:"being-born"},{match:"[be] #Gerund",group:0,tag:"Auxiliary",reason:"be-walking"},{match:"[better] #PresentTense",group:0,tag:"Modal",notIf:"(#Copula|#Gerund)",reason:"better-go"},{match:"even better",tag:"Adverb #Comparative",reason:"even-better"}],[{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)",notIf:"#Copula",tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"#Verb (up|down|in|on|for)$",tag:"PhrasalVerb #Particle",notIf:"#PhrasalVerb",reason:"come-down$"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"#PhrasalVerb (in && #Particle) #Determiner",tag:"#Verb #Preposition #Determiner",unTag:"PhrasalVerb",reason:"work-in-the"},{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",notIf:"(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|a|an|any|each|every|some|more|with|on)",group:0,notIf:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me|there)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^[#Infinitive] (#Adjective|#Adverb)? and #Infinitive",group:0,tag:"Imperative",reason:"call-and-reserve"},{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:"^[#PhrasalVerb #Particle] #Determiner #Noun",group:0,tag:"Imperative",reason:"turn-off-the-light"},{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:"^come #Infinitive",tag:"Imperative",notIf:"on",reason:"come-have"},{match:"^come and? #Infinitive",tag:"Imperative . Imperative",notIf:"#PhrasalVerb",reason:"come-and-have"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[(stay|be|keep)] #Adjective",group:0,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:"[#Infinitive] what .",group:0,tag:"Imperative",reason:"look-what"},{match:"^[#Infinitive] #Gerund",group:0,tag:"Imperative",reason:"keep-playing"},{match:"^[#Infinitive] (to|for|into|toward|here|there)",group:0,tag:"Imperative",reason:"go-to"},{match:"^[#Infinitive] (and|or) #Infinitive",group:0,tag:"Imperative",reason:"inf-and-inf"},{match:"^[%Noun|Verb%] to",group:0,tag:"Imperative",reason:"commit-to"},{match:"^[#Infinitive] #Adjective? #Singular #Singular",group:0,tag:"Imperative",reason:"maintain-eye-contact"},{match:"do not (forget|omit|neglect) to [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-forget"},{match:"^[(ask|wear|pay|look|help|show|watch|act|fix|kill|stop|start|turn|try|win)] #Noun",group:0,tag:"Imperative",reason:"pay-attention"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"},{match:"#Gerund [#Gerund] #Plural",group:0,tag:"Adjective",reason:"hard-working-fam"}],[{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:"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:"[right] (before|after|in|into|to|toward)",group:0,tag:"#Adverb",reason:"right-into"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"(are|#Modal|see|do|for) [ya]",group:0,tag:"Pronoun",reason:"are-ya"},{match:"[long live] .",group:0,tag:"#Adjective #Infinitive",reason:"long-live"},{match:"[plenty] of",group:0,tag:"#Uncountable",reason:"plenty-of"},{match:"(always|nearly|barely|practically) [there]",group:0,tag:"Adjective",reason:"always-there"},{match:"[there] (#Adverb|#Pronoun)? #Copula",group:0,tag:"There",reason:"there-is"},{match:"#Copula [there] .",group:0,tag:"There",reason:"is-there"},{match:"#Modal #Adverb? [there]",group:0,tag:"There",reason:"should-there"},{match:"^[do] (you|we|they)",group:0,tag:"QuestionWord",reason:"do-you"},{match:"^[does] (he|she|it|#ProperNoun)",group:0,tag:"QuestionWord",reason:"does-he"},{match:"#Determiner #Noun+ [who] #Verb",group:0,tag:"Preposition",reason:"the-x-who"},{match:"#Determiner #Noun+ [which] #Verb",group:0,tag:"Preposition",reason:"the-x-which"},{match:"a [while]",group:0,tag:"Noun",reason:"a-while"},{match:"guess who",tag:"#Infinitive #QuestionWord",reason:"guess-who"},{match:"[fucking] !#Verb",group:0,tag:"#Gerund",reason:"f-as-gerund"}],[{match:"university of #Place",tag:"Organization",reason:"university-of-Foo"},{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",notIf:"#FirstName",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:"government of the? [#Place+]",tag:"Organization",reason:"government-of-x"},{match:"(health|school|commerce) board",tag:"Organization",reason:"school-board"},{match:"(nominating|special|conference|executive|steering|central|congressional) committee",tag:"Organization",reason:"special-comittee"},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"},{match:"#Place+ #SportsTeam",tag:"SportsTeam",reason:"place-sportsteam"},{match:"(dc|atlanta|minnesota|manchester|newcastle|sheffield) united",tag:"SportsTeam",reason:"united-sportsteam"},{match:"#Place+ fc",tag:"SportsTeam",reason:"fc-sportsteam"},{match:"#Place+ #Noun{0,2} (club|society|group|team|committee|commission|association|guild|crew)",tag:"Organization",reason:"place-noun-society"}],[{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+ (cliff|place|range|pit|place|point|room|grounds|ruins)",tag:"Place",reason:"foo-point"},{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:"(port|mount|mt) #ProperName",tag:"Place",reason:"port-name"}],[{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:"a #Noun [like] (#Noun|#Determiner)",group:0,tag:"Preposition",reason:"a-noun-like"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Infinitive #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"}],[{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^[(well|so|okay|now)] !#Adjective?",group:0,tag:"Expression",reason:"well-"},{match:"^come on",tag:"Expression",reason:"come-on"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"^(ok|alright|shoot|hell|anyways)",tag:"Expression",reason:"ok-"},{match:"^(say && @hasComma)",tag:"Expression",reason:"say-"},{match:"^(like && @hasComma)",tag:"Expression",reason:"like-"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}]);let Ol=null;var zl={postTagger:function(e){const{world:t}=e,{model:n,methods:a}=t;Ol=Ol||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(Ol),e.uncache(),e.unfreeze(),e},tagger:e=>e.compute(["freeze","lexicon","preTagger","postTagger","unfreeze"])};const Vl={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach((n=>{n.forEach((n=>{t+=1,e+=n.confidence||1}))})),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["tagger"])}},compute:zl,model:{two:{matches:Fl}},hooks:["postTagger"]},Bl=function(e,t){let n=function(e){return Object.keys(e.hooks).filter((e=>!e.startsWith("#")&&!e.startsWith("%")))}(t);if(0===n.length)return e;e._cache||e.cache();let a=e._cache;return e.filter(((e,t)=>n.some((e=>a[t].has(e)))))};var Sl={lib:{lazy:function(e,t){let n=t;"string"==typeof t&&(n=this.buildNet([{match:t}]));let a=this.tokenize(e),r=Bl(a,n);return r.found?(r.compute(["index","tagger"]),r.match(t)):a.none()}}};const Kl=function(e,t,n){let a=e.split(/ /g).map((e=>e.toLowerCase().trim()));a=a.filter((e=>e)),a=a.map((e=>`{${e}}`)).join(" ");let r=this.match(a);return n&&(r=r.if(n)),r.has("#Verb")?function(e,t){let n=t;return e.forEach((e=>{e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verb.conjugate)(t,e.model);return e.has("#Gerund")?n.Gerund:e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)})),e}(r,t):r.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.noun.toPlural)(t,e.model));e.replaceWith(n,{possessives:!0})}(r,t):r.has("#Adverb")?function(e,t){const{toAdverb:n}=e.methods.two.transform.adjective;let a=n(t);a&&e.replaceWith(a)}(r,t):r.has("#Adjective")?function(e,t){const{toComparative:n,toSuperlative:a}=e.methods.two.transform.adjective;let r=t;e.has("#Comparative")?r=n(r,e.model):e.has("#Superlative")&&(r=a(r,e.model)),r&&e.replaceWith(r)}(r,t):this};var $l={api:function(e){e.prototype.swap=Kl}};d.plugin(sl),d.plugin(Tl),d.plugin(Vl),d.plugin(Sl),d.plugin($l);export{d as default}; diff --git a/changelog.md b/changelog.md index 0d39905a8..63eea205e 100644 --- a/changelog.md +++ b/changelog.md @@ -20,6 +20,19 @@ While all _Major_ releases should be reviewed, our only _large_ releases are **v - **[fix]** - .before() .after() --> +#### 14.14.0 [July 2024] +- **[new]** - .slashes() and .slashes().split() methods #1100 +- **[fix]** - multiple contraction issue #1128 +- **[fix]** - toNumbers() return values #1113 +- **[fix]** - (plugins/wikipedia) - fix hard-coded path for #1116 +- **[fix]** - (plugins/dates) - limit values in `mm/dd` format +- **[fix]** - (plugins/dates) params mutation #1109 +- **[change]** - split people names by commas #1111 +- **[change]** - typescript export update #1104 +- **[update]** - eslint config format +- **[update]** - github actions +- **[update]** - dependencies + #### 14.13.0 [Apr 2024] - **[new]** - .compute('freeze') diff --git a/data/lexicon/nouns/properNouns.js b/data/lexicon/nouns/properNouns.js index fdab921c5..983d9682a 100644 --- a/data/lexicon/nouns/properNouns.js +++ b/data/lexicon/nouns/properNouns.js @@ -15,6 +15,27 @@ export default [ 'stevens', 'abid', 'mcgill', + 'hudson', + 'chesley', + 'carling', + 'berkeley', + 'beeton', + 'carleton', + 'ajax', + 'weston', + 'sherwood', + 'wembley', + 'hinton', + 'bentley', + 'landsdowne', + 'brock', + 'dalhousie', + 'spalding', + 'charlton', + 'rothwell', + 'gosford', + 'frampton', + 'fairview', // currencies 'nis', 'riel', diff --git a/data/lexicon/nouns/singulars.js b/data/lexicon/nouns/singulars.js index 2168047fc..4b6601702 100644 --- a/data/lexicon/nouns/singulars.js +++ b/data/lexicon/nouns/singulars.js @@ -431,4 +431,5 @@ export default [ 'cannibal', 'video game', 'layer', + 'canton', ] diff --git a/data/lexicon/places/places.js b/data/lexicon/places/places.js index 91d5d7955..892db5122 100644 --- a/data/lexicon/places/places.js +++ b/data/lexicon/places/places.js @@ -133,4 +133,216 @@ export default [ 'cedar breaks', 'scotts bluff', 'saint lawrence river', + + // generic place names + 'west end', + 'east end', + 'north end', + 'south end', + 'west side', + 'east side', + 'north side', + 'south side', + 'brookside', + 'brookstone', + 'centerville', + 'clearwater', + 'cedar grove', + 'fairhaven', + 'green acres', + 'highland', + 'highlands', + 'hillcrest', + 'lakefront', + 'lowlands', + 'lowland', + 'maplewood', + 'meadowlands', + 'midlands', + 'oakmont', + 'pinecrest', + 'riverbend', + 'riverfront', + 'riverside', + 'springhill', + 'springwood', + 'willowbrook', + 'sunset hills', + 'oakwood', + 'parkside', + 'green valley', + 'maple grove', + 'pine ridge', + 'greenfield', + + //misc notable british + 'abbotsford', + 'abingdon', + 'acton', + 'agincourt', + 'alberton', + 'aldershot', + 'alliston', + 'ancaster', + 'andover', + 'ashcroft', + 'aylesford', + 'baltimore', + 'barnsley', + 'battersea', + 'beaconsfield', + 'bedford', + 'bellingham', + 'berwick', + 'bexhill', + 'bingley', + 'blackburn', + 'blackpool', + 'blackwall', + 'bolton', + 'bracebridge', + 'bramley', + 'brampton', + 'bridgenorth', + 'bridgetown', + 'brigham', + 'brighton', + 'brockton', + 'buckingham', + 'caldwell', + 'cambridge', + 'campbellford', + 'carlisle', + 'caversham', + 'charlottetown', + 'chelmsford', + 'cheltenham', + 'colchester', + 'collingwood', + 'compton', + 'cornwall', + 'croydon', + 'darlington', + 'dartford', + 'dartmoor', + 'denham', + 'derry', + 'devonport', + 'digby', + 'doncaster', + 'dorchester', + 'dover', + 'dryden', + 'dumfries', + 'dunstable', + 'durham', + 'dutton', + 'earlscourt', + 'eglinton', + 'enfield', + 'epping', + 'euston', + 'everton', + 'exeter', + 'exford', + 'gravenhurst', + 'grimsby', + 'guelph', + 'haliburton', + 'hampstead', + 'hampton', + 'harford', + 'harrow', + 'hastings', + 'hereford', + 'hertford', + 'heywood', + 'highbury', + 'huntingdon', + 'ilford', + 'inglewood', + 'inverness', + 'ipswich', + 'kensington', + 'keswick', + 'kitchener', + 'lambeth', + 'lancaster', + 'langford', + 'langley', + 'langton', + 'lansing', + 'leaside', + 'lewes', + 'lindley', + 'lyndhurst', + 'maidstone', + 'malton', + 'malvern', + 'mansfield', + 'markham', + 'millington', + 'newark', + 'newham', + 'newmarket', + 'newport', + 'northampton', + 'norwich', + 'nottingham', + 'orford', + 'oxford', + 'oxley', + 'parkwood', + 'pelham', + 'pembroke', + 'pennington', + 'penzance', + 'perth', + 'pickering', + 'picton', + 'putnam', + 'rayleigh', + 'redcliffe', + 'redhill', + 'richmond', + 'rochester', + 'seaforth', + 'seaton', + 'sherbrooke', + 'southampton', + 'southwold', + 'stafford', + 'stockwell', + 'stratford', + 'stroud', + 'sudbury', + 'sunderland', + 'sydenham', + 'taunton', + 'thornhill', + 'tiverton', + 'torquay', + 'tottenham', + 'truro', + 'upton', + 'uxbridge', + 'vauxhall', + 'wakefield', + 'warwick', + 'waterford', + 'watford', + 'weedon', + 'wentworth', + 'whitby', + 'whitchurch', + 'wickham', + 'winchester', + 'wingham', + 'woking', + 'woodbridge', + 'woodside', + 'woodstock', + 'woolwich', + 'wycombe', + 'york', ] diff --git a/data/lexicon/places/regions.js b/data/lexicon/places/regions.js index e40a11e7c..d52527749 100644 --- a/data/lexicon/places/regions.js +++ b/data/lexicon/places/regions.js @@ -223,4 +223,14 @@ export default [ 'chechnya', 'chuvashia', 'crimea', + + // malaysia + 'penang', + 'pahang', + 'perak', + 'sarawak', + 'selangor', + 'malacca', + 'kedah', + 'kelantan', ] diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 000000000..dbef5b0e8 --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,40 @@ +import * as regexpPlugin from "eslint-plugin-regexp" + +export default [ + regexpPlugin.configs["flat/recommended"], + + { + // "ignorePatterns": ["**/builds/*"], + "ignores": ["**/builds/*"], + "rules": { + "comma-dangle": [1, "only-multiline"], + "quotes": [0, "single", "avoid-escape"], + "max-nested-callbacks": [1, 4], + "max-params": [1, 5], + "consistent-return": 1, + "no-bitwise": 1, + "no-empty": 1, + "no-console": 1, + "no-duplicate-imports": 1, + "no-eval": 2, + "no-implied-eval": 2, + "no-mixed-operators": 2, + "no-multi-assign": 2, + "no-nested-ternary": 1, + "no-prototype-builtins": 0, + "no-self-compare": 1, + "no-sequences": 1, + "no-shadow": 2, + "no-unmodified-loop-condition": 1, + "no-use-before-define": 1, + "prefer-const": 0, + "radix": 1, + "no-unused-vars": 1, + "regexp/prefer-d": 0, + "regexp/prefer-w": 0, + "regexp/prefer-range": 0, + "regexp/no-unused-capturing-group": 0, + "eslint-comments/no-unused-disable": 0 + } + }, +] diff --git a/package-lock.json b/package-lock.json index cbce37590..1bfea6bc2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "compromise", - "version": "14.11.2", + "version": "14.14.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "compromise", - "version": "14.11.2", + "version": "14.14.0", "license": "MIT", "dependencies": { "efrt": "2.7.0", @@ -18,14 +18,14 @@ "@rollup/plugin-terser": "0.4.4", "amble": "1.3.0", "cross-env": "^7.0.3", - "eslint": "8.53.0", - "eslint-plugin-regexp": "1.15.0", + "eslint": "9.8.0", + "eslint-plugin-regexp": "2.6.0", "nlp-corpus": "4.4.0", - "rollup": "3.28.0", - "rollup-plugin-filesize-check": "^0.0.2", + "rollup": "4.19.1", + "rollup-plugin-filesize-check": "1.2.0", "shelljs": "0.8.5", "tap-dancer": "0.3.4", - "tape": "5.7.5" + "tape": "5.8.1" }, "engines": { "node": ">=12.0.0" @@ -56,24 +56,40 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", - "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz", + "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==", "dev": true, + "license": "MIT", "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, + "node_modules/@eslint/config-array": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.17.1.tgz", + "integrity": "sha512-BlYOpej8AQ8Ev9xVqroV7a02JK3SkBAaN9GfMMH9W6Ch8FlQlkjGw4Ir7+FgYwfirivAf4t+GtzuAxqfukmISA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.4", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, "node_modules/@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.1.0.tgz", + "integrity": "sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==", "dev": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", + "espree": "^10.0.1", + "globals": "^14.0.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", @@ -81,33 +97,30 @@ "strip-json-comments": "^3.1.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" } }, "node_modules/@eslint/js": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.53.0.tgz", - "integrity": "sha512-Kn7K8dx/5U6+cT1yEhpX1w4PCSg0M+XyRILPgvwcEBjerFWCwQj5sbr3/VmxqV0JGHCBCzyd6LxypEuehypY1w==", + "version": "9.8.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.8.0.tgz", + "integrity": "sha512-MfluB7EUfxXtv3i/++oh89uzAr4PDI4nn201hsp+qaXqsjAWzinlZEHEfPgAX4doIlKvPG/i0A9dpKxOLII8yA==", "dev": true, + "license": "MIT", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.13", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", - "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", + "node_modules/@eslint/object-schema": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.4.tgz", + "integrity": "sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==", "dev": true, - "dependencies": { - "@humanwhocodes/object-schema": "^2.0.1", - "debug": "^4.1.1", - "minimatch": "^3.0.5" - }, + "license": "Apache-2.0", "engines": { - "node": ">=10.10.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, "node_modules/@humanwhocodes/module-importer": { @@ -123,11 +136,18 @@ "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", - "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", - "dev": true + "node_modules/@humanwhocodes/retry": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.0.tgz", + "integrity": "sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==", + "dev": true, + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.3", @@ -188,24 +208,27 @@ } }, "node_modules/@ljharb/resumer": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@ljharb/resumer/-/resumer-0.1.2.tgz", - "integrity": "sha512-opZnY9WsZ6tjPSpmTEdPY+LpxpEwqg3VsQiGFv+wAaA1ffTghnG019mAD8BKxkcpZx6HtvNj0vdyxDHTxPQlJw==", + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@ljharb/resumer/-/resumer-0.1.3.tgz", + "integrity": "sha512-d+tsDgfkj9X5QTriqM4lKesCkMMJC3IrbPKHvayP00ELx2axdXvDfWkqjxrLXIzGcQzmj7VAUT1wopqARTvafw==", "dev": true, + "license": "MIT", "dependencies": { - "@ljharb/through": "^2.3.12" + "@ljharb/through": "^2.3.13", + "call-bind": "^1.0.7" }, "engines": { "node": ">= 0.4" } }, "node_modules/@ljharb/through": { - "version": "2.3.12", - "resolved": "https://registry.npmjs.org/@ljharb/through/-/through-2.3.12.tgz", - "integrity": "sha512-ajo/heTlG3QgC8EGP6APIejksVAYt4ayz4tqoP3MolFELzcH1x1fzwEYRJTPO0IELutZ5HQ0c26/GqAYy79u3g==", + "version": "2.3.13", + "resolved": "https://registry.npmjs.org/@ljharb/through/-/through-2.3.13.tgz", + "integrity": "sha512-/gKJun8NNiWGZJkGzI/Ragc53cOdcLNdzjLaIa+GEjguQs0ulsurx8WN0jijdK9yPqDvziX995sMRLyLt1uZMQ==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.5" + "call-bind": "^1.0.7" }, "engines": { "node": ">= 0.4" @@ -324,6 +347,230 @@ } } }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.19.1.tgz", + "integrity": "sha512-XzqSg714++M+FXhHfXpS1tDnNZNpgxxuGZWlRG/jSj+VEPmZ0yg6jV4E0AL3uyBKxO8mO3xtOsP5mQ+XLfrlww==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.19.1.tgz", + "integrity": "sha512-thFUbkHteM20BGShD6P08aungq4irbIZKUNbG70LN8RkO7YztcGPiKTTGZS7Kw+x5h8hOXs0i4OaHwFxlpQN6A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.19.1.tgz", + "integrity": "sha512-8o6eqeFZzVLia2hKPUZk4jdE3zW7LCcZr+MD18tXkgBBid3lssGVAYuox8x6YHoEPDdDa9ixTaStcmx88lio5Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.19.1.tgz", + "integrity": "sha512-4T42heKsnbjkn7ovYiAdDVRRWZLU9Kmhdt6HafZxFcUdpjlBlxj4wDrt1yFWLk7G4+E+8p2C9tcmSu0KA6auGA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.19.1.tgz", + "integrity": "sha512-MXg1xp+e5GhZ3Vit1gGEyoC+dyQUBy2JgVQ+3hUrD9wZMkUw/ywgkpK7oZgnB6kPpGrxJ41clkPPnsknuD6M2Q==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.19.1.tgz", + "integrity": "sha512-DZNLwIY4ftPSRVkJEaxYkq7u2zel7aah57HESuNkUnz+3bZHxwkCUkrfS2IWC1sxK6F2QNIR0Qr/YXw7nkF3Pw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.19.1.tgz", + "integrity": "sha512-C7evongnjyxdngSDRRSQv5GvyfISizgtk9RM+z2biV5kY6S/NF/wta7K+DanmktC5DkuaJQgoKGf7KUDmA7RUw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.19.1.tgz", + "integrity": "sha512-89tFWqxfxLLHkAthAcrTs9etAoBFRduNfWdl2xUs/yLV+7XDrJ5yuXMHptNqf1Zw0UCA3cAutkAiAokYCkaPtw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.19.1.tgz", + "integrity": "sha512-PromGeV50sq+YfaisG8W3fd+Cl6mnOOiNv2qKKqKCpiiEke2KiKVyDqG/Mb9GWKbYMHj5a01fq/qlUR28PFhCQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.19.1.tgz", + "integrity": "sha512-/1BmHYh+iz0cNCP0oHCuF8CSiNj0JOGf0jRlSo3L/FAyZyG2rGBuKpkZVH9YF+x58r1jgWxvm1aRg3DHrLDt6A==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.19.1.tgz", + "integrity": "sha512-0cYP5rGkQWRZKy9/HtsWVStLXzCF3cCBTRI+qRL8Z+wkYlqN7zrSYm6FuY5Kd5ysS5aH0q5lVgb/WbG4jqXN1Q==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.19.1.tgz", + "integrity": "sha512-XUXeI9eM8rMP8aGvii/aOOiMvTs7xlCosq9xCjcqI9+5hBxtjDpD+7Abm1ZhVIFE1J2h2VIg0t2DX/gjespC2Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.19.1.tgz", + "integrity": "sha512-V7cBw/cKXMfEVhpSvVZhC+iGifD6U1zJ4tbibjjN+Xi3blSXaj/rJynAkCFFQfoG6VZrAiP7uGVzL440Q6Me2Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.19.1.tgz", + "integrity": "sha512-88brja2vldW/76jWATlBqHEoGjJLRnP0WOEKAUbMcXaAZnemNhlAHSyj4jIwMoP2T750LE9lblvD4e2jXleZsA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.19.1.tgz", + "integrity": "sha512-LdxxcqRVSXi6k6JUrTah1rHuaupoeuiv38du8Mt4r4IPer3kwlTo+RuvfE8KzZ/tL6BhaPlzJ3835i6CxrFIRQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.19.1.tgz", + "integrity": "sha512-2bIrL28PcK3YCqD9anGxDxamxdiJAxA+l7fWIwM5o8UqNy1t3d1NdAweO2XhA0KTDJ5aH1FsuiT5+7VhtHliXg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, "node_modules/@types/estree": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", @@ -336,17 +583,12 @@ "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", "dev": true }, - "node_modules/@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "dev": true - }, "node_modules/acorn": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", "dev": true, + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -421,27 +663,33 @@ "dev": true }, "node_modules/array-buffer-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", - "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "is-array-buffer": "^3.0.1" + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/array.prototype.every": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/array.prototype.every/-/array.prototype.every-1.1.5.tgz", - "integrity": "sha512-FfMQJ+/joFGXpRCltbzV3znaP5QxIhLFySo0fEPn3GuoYlud9LhknMCIxdYKC2qsM/6VHoSp6YGwe3EZXrEcwQ==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/array.prototype.every/-/array.prototype.every-1.1.6.tgz", + "integrity": "sha512-gNEqZD97w6bfQRNmHkFv7rNnGM+VWyHZT+h/rf9C+22owcXuENr66Lfo0phItpU5KoXW6Owb34q2+8MnSIZ57w==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0", "is-string": "^1.0.7" }, "engines": { @@ -452,17 +700,19 @@ } }, "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", - "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", "dev": true, + "license": "MIT", "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "is-array-buffer": "^3.0.2", + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", "is-shared-array-buffer": "^1.0.2" }, "engines": { @@ -473,10 +723,14 @@ } }, "node_modules/available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", "dev": true, + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, "engines": { "node": ">= 0.4" }, @@ -510,12 +764,13 @@ } }, "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, + "license": "MIT", "dependencies": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" }, "engines": { "node": ">=8" @@ -653,10 +908,64 @@ "node": ">= 8" } }, + "node_modules/data-view-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", + "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", + "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", "dev": true, "dependencies": { "ms": "2.1.2" @@ -766,18 +1075,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/dotignore": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/dotignore/-/dotignore-0.1.2.tgz", @@ -799,50 +1096,58 @@ } }, "node_modules/es-abstract": { - "version": "1.22.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz", - "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==", + "version": "1.23.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", + "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", "dev": true, + "license": "MIT", "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "arraybuffer.prototype.slice": "^1.0.2", - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.5", - "es-set-tostringtag": "^2.0.1", + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", "es-to-primitive": "^1.2.1", "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.2", - "get-symbol-description": "^1.0.0", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", "globalthis": "^1.0.3", "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", "has-symbols": "^1.0.3", - "hasown": "^2.0.0", - "internal-slot": "^1.0.5", - "is-array-buffer": "^3.0.2", + "hasown": "^2.0.2", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", + "is-data-view": "^1.0.1", + "is-negative-zero": "^2.0.3", "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", + "is-shared-array-buffer": "^1.0.3", "is-string": "^1.0.7", - "is-typed-array": "^1.1.12", + "is-typed-array": "^1.1.13", "is-weakref": "^1.0.2", "object-inspect": "^1.13.1", "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.1", - "safe-array-concat": "^1.0.1", - "safe-regex-test": "^1.0.0", - "string.prototype.trim": "^1.2.8", - "string.prototype.trimend": "^1.0.7", - "string.prototype.trimstart": "^1.0.7", - "typed-array-buffer": "^1.0.0", - "typed-array-byte-length": "^1.0.0", - "typed-array-byte-offset": "^1.0.0", - "typed-array-length": "^1.0.4", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.2", + "safe-array-concat": "^1.1.2", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.6", "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.13" + "which-typed-array": "^1.1.15" }, "engines": { "node": ">= 0.4" @@ -898,15 +1203,29 @@ "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", "dev": true }, + "node_modules/es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/es-set-tostringtag": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", - "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", "dev": true, + "license": "MIT", "dependencies": { - "get-intrinsic": "^1.2.2", - "has-tostringtag": "^1.0.0", - "hasown": "^2.0.0" + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" }, "engines": { "node": ">= 0.4" @@ -917,6 +1236,7 @@ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dev": true, + "license": "MIT", "dependencies": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", @@ -930,41 +1250,38 @@ } }, "node_modules/eslint": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.53.0.tgz", - "integrity": "sha512-N4VuiPjXDUa4xVeV/GC/RV3hQW9Nw+Y463lkWaKKXKYMvmRiRDAtfpuPFLN+E1/6ZhyR8J2ig+eVREnYgUsiag==", + "version": "9.8.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.8.0.tgz", + "integrity": "sha512-K8qnZ/QJzT2dLKdZJVX6W4XOwBzutMYmt0lqUS+JdXgd+HTYFlonFgkJ8s44d/zMPPCnOOk0kMWCApCPhiOy9A==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.3", - "@eslint/js": "8.53.0", - "@humanwhocodes/config-array": "^0.11.13", + "@eslint-community/regexpp": "^4.11.0", + "@eslint/config-array": "^0.17.1", + "@eslint/eslintrc": "^3.1.0", + "@eslint/js": "9.8.0", "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.3.0", "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", "debug": "^4.3.2", - "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", + "eslint-scope": "^8.0.2", + "eslint-visitor-keys": "^4.0.0", + "espree": "^10.1.0", + "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", + "file-entry-cache": "^8.0.0", "find-up": "^5.0.0", "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", @@ -978,45 +1295,45 @@ "eslint": "bin/eslint.js" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://opencollective.com/eslint" + "url": "https://eslint.org/donate" } }, "node_modules/eslint-plugin-regexp": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-regexp/-/eslint-plugin-regexp-1.15.0.tgz", - "integrity": "sha512-YEtQPfdudafU7RBIFci81R/Q1yErm0mVh3BkGnXD2Dk8DLwTFdc2ITYH1wCnHKim2gnHfPFgrkh+b2ozyyU7ag==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-regexp/-/eslint-plugin-regexp-2.6.0.tgz", + "integrity": "sha512-FCL851+kislsTEQEMioAlpDuK5+E5vs0hi1bF8cFlPlHcEjeRhuAzEsGikXRreE+0j4WhW2uO54MqTjXtYOi3A==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.4.0", - "comment-parser": "^1.1.2", - "grapheme-splitter": "^1.0.4", - "jsdoctypeparser": "^9.0.0", - "refa": "^0.11.0", - "regexp-ast-analysis": "^0.6.0", - "scslre": "^0.2.0" + "@eslint-community/regexpp": "^4.9.1", + "comment-parser": "^1.4.0", + "jsdoc-type-pratt-parser": "^4.0.0", + "refa": "^0.12.1", + "regexp-ast-analysis": "^0.7.1", + "scslre": "^0.3.0" }, "engines": { - "node": "^12 || >=14" + "node": "^18 || >=20" }, "peerDependencies": { - "eslint": ">=6.0.0" + "eslint": ">=8.44.0" } }, "node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.0.2.tgz", + "integrity": "sha512-6E4xmrTw5wtxnLA5wYL3WDfhZ/1bUBGOXV0zQvVRDOtrR8D0p6W7fs3JweNYhwRYeGvd/1CKX2se0/2s7Q/nJA==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -1095,6 +1412,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz", + "integrity": "sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, "node_modules/eslint/node_modules/glob-parent": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", @@ -1129,17 +1458,30 @@ } }, "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.1.0.tgz", + "integrity": "sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "acorn": "^8.9.0", + "acorn": "^8.12.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" + "eslint-visitor-keys": "^4.0.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz", + "integrity": "sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -1162,6 +1504,7 @@ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "estraverse": "^5.2.0" }, @@ -1221,22 +1564,23 @@ } }, "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", "dev": true, "dependencies": { - "flat-cache": "^3.0.4" + "flat-cache": "^4.0.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=16.0.0" } }, "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, + "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -1261,22 +1605,22 @@ } }, "node_modules/flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", "dev": true, "dependencies": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" + "flatted": "^3.2.9", + "keyv": "^4.5.4" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=16" } }, "node_modules/flatted": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.2.tgz", - "integrity": "sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", "dev": true }, "node_modules/for-each": { @@ -1321,6 +1665,7 @@ "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -1372,13 +1717,15 @@ } }, "node_modules/get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" }, "engines": { "node": ">= 0.4" @@ -1420,27 +1767,26 @@ } }, "node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, "engines": { - "node": ">=8" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", "dev": true, + "license": "MIT", "dependencies": { - "define-properties": "^1.1.3" + "define-properties": "^1.2.1", + "gopd": "^1.0.1" }, "engines": { "node": ">= 0.4" @@ -1469,18 +1815,6 @@ "node": ">=8.0.0" } }, - "node_modules/grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", - "dev": true - }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true - }, "node_modules/has-bigints": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", @@ -1519,10 +1853,11 @@ } }, "node_modules/has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -1543,12 +1878,13 @@ } }, "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "dev": true, + "license": "MIT", "dependencies": { - "has-symbols": "^1.0.2" + "has-symbols": "^1.0.3" }, "engines": { "node": ">= 0.4" @@ -1558,10 +1894,11 @@ } }, "node_modules/hasown": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz", - "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dev": true, + "license": "MIT", "dependencies": { "function-bind": "^1.1.2" }, @@ -1570,9 +1907,9 @@ } }, "node_modules/ignore": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", - "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", "dev": true, "engines": { "node": ">= 4" @@ -1620,12 +1957,13 @@ "dev": true }, "node_modules/internal-slot": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz", - "integrity": "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", "dev": true, + "license": "MIT", "dependencies": { - "get-intrinsic": "^1.2.2", + "es-errors": "^1.3.0", "hasown": "^2.0.0", "side-channel": "^1.0.4" }, @@ -1659,14 +1997,17 @@ } }, "node_modules/is-array-buffer": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", - "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", - "is-typed-array": "^1.1.10" + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -1751,6 +2092,22 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-data-view": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-date-object": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", @@ -1803,10 +2160,11 @@ "dev": true }, "node_modules/is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -1819,6 +2177,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.12.0" } @@ -1873,12 +2232,16 @@ } }, "node_modules/is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2" + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -1915,12 +2278,13 @@ } }, "node_modules/is-typed-array": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", - "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", "dev": true, + "license": "MIT", "dependencies": { - "which-typed-array": "^1.1.11" + "which-typed-array": "^1.1.14" }, "engines": { "node": ">= 0.4" @@ -1943,6 +2307,7 @@ "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2" }, @@ -1987,18 +2352,21 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/jsdoctypeparser": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/jsdoctypeparser/-/jsdoctypeparser-9.0.0.tgz", - "integrity": "sha512-jrTA2jJIL6/DAEILBEh2/w9QxCuwmvNXIry39Ay/HVfhE3o2yVV0U44blYkqdHA/OKloJEqvJy0xU+GSdE2SIw==", + "node_modules/jsdoc-type-pratt-parser": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-4.0.0.tgz", + "integrity": "sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==", "dev": true, - "bin": { - "jsdoctypeparser": "bin/jsdoctypeparser" - }, "engines": { - "node": ">=10" + "node": ">=12.0.0" } }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -2011,6 +2379,15 @@ "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", "dev": true }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, "node_modules/levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", @@ -2129,13 +2506,14 @@ } }, "node_modules/object-is": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", - "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", + "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1" }, "engines": { "node": ">= 0.4" @@ -2284,6 +2662,16 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -2383,39 +2771,41 @@ } }, "node_modules/refa": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/refa/-/refa-0.11.0.tgz", - "integrity": "sha512-486O8/pQXwj9jV0mVvUnTsxq0uknpBnNJ0eCUhkZqJRQ8KutrT1PhzmumdCeM1hSBF2eMlFPmwECRER4IbKXlQ==", + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/refa/-/refa-0.12.1.tgz", + "integrity": "sha512-J8rn6v4DBb2nnFqkqwy6/NnTYMcgLA+sLr0iIO41qpv0n+ngb7ksag2tMRl0inb1bbO/esUwzW1vbJi7K0sI0g==", "dev": true, "dependencies": { - "@eslint-community/regexpp": "^4.5.0" + "@eslint-community/regexpp": "^4.8.0" }, "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, "node_modules/regexp-ast-analysis": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/regexp-ast-analysis/-/regexp-ast-analysis-0.6.0.tgz", - "integrity": "sha512-OLxjyjPkVH+rQlBLb1I/P/VTmamSjGkvN5PTV5BXP432k3uVz727J7H29GA5IFiY0m7e1xBN7049Wn59FY3DEQ==", + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/regexp-ast-analysis/-/regexp-ast-analysis-0.7.1.tgz", + "integrity": "sha512-sZuz1dYW/ZsfG17WSAG7eS85r5a0dDsvg+7BiiYR5o6lKCAtUrEwdmRmaGF6rwVj3LcmAeYkOWKEPlbPzN3Y3A==", "dev": true, "dependencies": { - "@eslint-community/regexpp": "^4.5.0", - "refa": "^0.11.0" + "@eslint-community/regexpp": "^4.8.0", + "refa": "^0.12.1" }, "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, "node_modules/regexp.prototype.flags": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", - "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", + "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "set-function-name": "^2.0.0" + "call-bind": "^1.0.6", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.1" }, "engines": { "node": ">= 0.4" @@ -2460,41 +2850,50 @@ "node": ">=0.10.0" } }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "node_modules/rollup": { + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.19.1.tgz", + "integrity": "sha512-K5vziVlg7hTpYfFBI+91zHBEMo6jafYXpkMlqZjg7/zhIG9iHqazBf4xz9AVdjS9BruRn280ROqLI7G3OFRIlw==", "dev": true, + "license": "MIT", "dependencies": { - "glob": "^7.1.3" + "@types/estree": "1.0.5" }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/rollup": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.28.0.tgz", - "integrity": "sha512-d7zhvo1OUY2SXSM6pfNjgD5+d0Nz87CUp4mt8l/GgVP3oBsPwzNvSzyu1me6BSG9JIgWNTVcafIXBIyM8yQ3yw==", - "dev": true, "bin": { "rollup": "dist/bin/rollup" }, "engines": { - "node": ">=14.18.0", + "node": ">=18.0.0", "npm": ">=8.0.0" }, "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.19.1", + "@rollup/rollup-android-arm64": "4.19.1", + "@rollup/rollup-darwin-arm64": "4.19.1", + "@rollup/rollup-darwin-x64": "4.19.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.19.1", + "@rollup/rollup-linux-arm-musleabihf": "4.19.1", + "@rollup/rollup-linux-arm64-gnu": "4.19.1", + "@rollup/rollup-linux-arm64-musl": "4.19.1", + "@rollup/rollup-linux-powerpc64le-gnu": "4.19.1", + "@rollup/rollup-linux-riscv64-gnu": "4.19.1", + "@rollup/rollup-linux-s390x-gnu": "4.19.1", + "@rollup/rollup-linux-x64-gnu": "4.19.1", + "@rollup/rollup-linux-x64-musl": "4.19.1", + "@rollup/rollup-win32-arm64-msvc": "4.19.1", + "@rollup/rollup-win32-ia32-msvc": "4.19.1", + "@rollup/rollup-win32-x64-msvc": "4.19.1", "fsevents": "~2.3.2" } }, "node_modules/rollup-plugin-filesize-check": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/rollup-plugin-filesize-check/-/rollup-plugin-filesize-check-0.0.2.tgz", - "integrity": "sha512-4CTEMQ8DEDE+NJGVKvRayFxX4vmMmzmgrFAjBqPJmM5zmccBbW4Im/AZeNejn2RaxRdYALJCUXuhFz5zlUCPIw==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-filesize-check/-/rollup-plugin-filesize-check-1.2.0.tgz", + "integrity": "sha512-d6ZX4BLz6gCvkqkoH+PqwVZCRmakX9DFXgUJYDWjspv0hla5B1wJDT3NY3vYWVNKqmngigaJeS83HcNfhGOjbA==", "dev": true, + "license": "MIT", "peerDependencies": { - "rollup": "^3.2.3" + "rollup": "*" } }, "node_modules/run-parallel": { @@ -2521,13 +2920,14 @@ } }, "node_modules/safe-array-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", - "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", "has-symbols": "^1.0.3", "isarray": "^2.0.5" }, @@ -2542,7 +2942,8 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/safe-buffer": { "version": "5.1.2", @@ -2551,28 +2952,35 @@ "dev": true }, "node_modules/safe-regex-test": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", "is-regex": "^1.1.4" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/scslre": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/scslre/-/scslre-0.2.0.tgz", - "integrity": "sha512-4hc49fUMmX3jM0XdFUAPBrs1xwEcdHa0KyjEsjFs+Zfc66mpFpq5YmRgDtl+Ffo6AtJIilfei+yKw8fUn3N88w==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/scslre/-/scslre-0.3.0.tgz", + "integrity": "sha512-3A6sD0WYP7+QrjbfNA2FN3FsOaGGFoekCVgTyypy53gPxhbkCIjtO6YWgdrfM+n/8sI8JeXZOIxsHjMTNxQ4nQ==", "dev": true, "dependencies": { - "@eslint-community/regexpp": "^4.5.0", - "refa": "^0.11.0", - "regexp-ast-analysis": "^0.6.0" + "@eslint-community/regexpp": "^4.8.0", + "refa": "^0.12.0", + "regexp-ast-analysis": "^0.7.0" + }, + "engines": { + "node": "^14.0.0 || >=16.0.0" } }, "node_modules/set-function-length": { @@ -2717,14 +3125,16 @@ } }, "node_modules/string.prototype.trim": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", - "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -2734,28 +3144,33 @@ } }, "node_modules/string.prototype.trimend": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", - "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimstart": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", - "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -2840,14 +3255,15 @@ } }, "node_modules/tape": { - "version": "5.7.5", - "resolved": "https://registry.npmjs.org/tape/-/tape-5.7.5.tgz", - "integrity": "sha512-C5Gm1MR8ujZmNrsmOiHSkKFfY2thrnUrFw/fFtcva9FABbN7LrHuQPi3MTS0Z0i/SLfYSJtRIcJYDUpwPsQ8yA==", + "version": "5.8.1", + "resolved": "https://registry.npmjs.org/tape/-/tape-5.8.1.tgz", + "integrity": "sha512-pUzADXBVYm5Jkneh9hfXnirADrzQrDA3vddKbPOc/ZLORj4dFQ6GR1KdGWX0/NvOLDcYkVgeMdw78Uf6BzO3KA==", "dev": true, + "license": "MIT", "dependencies": { - "@ljharb/resumer": "^0.1.2", - "@ljharb/through": "^2.3.12", - "array.prototype.every": "^1.1.5", + "@ljharb/resumer": "^0.1.3", + "@ljharb/through": "^2.3.13", + "array.prototype.every": "^1.1.6", "call-bind": "^1.0.7", "deep-equal": "^2.2.3", "defined": "^1.0.1", @@ -2856,17 +3272,17 @@ "get-package-type": "^0.1.0", "glob": "^7.2.3", "has-dynamic-import": "^2.1.0", - "hasown": "^2.0.1", + "hasown": "^2.0.2", "inherits": "^2.0.4", "is-regex": "^1.1.4", "minimist": "^1.2.8", "mock-property": "^1.0.3", "object-inspect": "^1.13.1", - "object-is": "^1.1.5", + "object-is": "^1.1.6", "object-keys": "^1.1.1", "object.assign": "^4.1.5", "resolve": "^2.0.0-next.5", - "string.prototype.trim": "^1.2.8" + "string.prototype.trim": "^1.2.9" }, "bin": { "tape": "bin/tape" @@ -2927,6 +3343,7 @@ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, + "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -2952,42 +3369,33 @@ "node": ">= 0.8.0" } }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/typed-array-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", - "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", - "is-typed-array": "^1.1.10" + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" }, "engines": { "node": ">= 0.4" } }, "node_modules/typed-array-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", - "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", + "call-bind": "^1.0.7", "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" }, "engines": { "node": ">= 0.4" @@ -2997,16 +3405,18 @@ } }, "node_modules/typed-array-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", - "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", "dev": true, + "license": "MIT", "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" }, "engines": { "node": ">= 0.4" @@ -3016,14 +3426,21 @@ } }, "node_modules/typed-array-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", - "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", + "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", + "call-bind": "^1.0.7", "for-each": "^0.3.3", - "is-typed-array": "^1.1.9" + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -3034,6 +3451,7 @@ "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "has-bigints": "^1.0.2", @@ -3106,16 +3524,17 @@ } }, "node_modules/which-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", - "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", "dev": true, + "license": "MIT", "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", "for-each": "^0.3.3", "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -3160,21 +3579,32 @@ } }, "@eslint-community/regexpp": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", - "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz", + "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==", "dev": true }, + "@eslint/config-array": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.17.1.tgz", + "integrity": "sha512-BlYOpej8AQ8Ev9xVqroV7a02JK3SkBAaN9GfMMH9W6Ch8FlQlkjGw4Ir7+FgYwfirivAf4t+GtzuAxqfukmISA==", + "dev": true, + "requires": { + "@eslint/object-schema": "^2.1.4", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + } + }, "@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.1.0.tgz", + "integrity": "sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==", "dev": true, "requires": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", + "espree": "^10.0.1", + "globals": "^14.0.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", @@ -3183,21 +3613,16 @@ } }, "@eslint/js": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.53.0.tgz", - "integrity": "sha512-Kn7K8dx/5U6+cT1yEhpX1w4PCSg0M+XyRILPgvwcEBjerFWCwQj5sbr3/VmxqV0JGHCBCzyd6LxypEuehypY1w==", + "version": "9.8.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.8.0.tgz", + "integrity": "sha512-MfluB7EUfxXtv3i/++oh89uzAr4PDI4nn201hsp+qaXqsjAWzinlZEHEfPgAX4doIlKvPG/i0A9dpKxOLII8yA==", "dev": true }, - "@humanwhocodes/config-array": { - "version": "0.11.13", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", - "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", - "dev": true, - "requires": { - "@humanwhocodes/object-schema": "^2.0.1", - "debug": "^4.1.1", - "minimatch": "^3.0.5" - } + "@eslint/object-schema": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.4.tgz", + "integrity": "sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==", + "dev": true }, "@humanwhocodes/module-importer": { "version": "1.0.1", @@ -3205,10 +3630,10 @@ "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "dev": true }, - "@humanwhocodes/object-schema": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", - "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", + "@humanwhocodes/retry": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.0.tgz", + "integrity": "sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==", "dev": true }, "@jridgewell/gen-mapping": { @@ -3261,21 +3686,22 @@ } }, "@ljharb/resumer": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@ljharb/resumer/-/resumer-0.1.2.tgz", - "integrity": "sha512-opZnY9WsZ6tjPSpmTEdPY+LpxpEwqg3VsQiGFv+wAaA1ffTghnG019mAD8BKxkcpZx6HtvNj0vdyxDHTxPQlJw==", + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@ljharb/resumer/-/resumer-0.1.3.tgz", + "integrity": "sha512-d+tsDgfkj9X5QTriqM4lKesCkMMJC3IrbPKHvayP00ELx2axdXvDfWkqjxrLXIzGcQzmj7VAUT1wopqARTvafw==", "dev": true, "requires": { - "@ljharb/through": "^2.3.12" + "@ljharb/through": "^2.3.13", + "call-bind": "^1.0.7" } }, "@ljharb/through": { - "version": "2.3.12", - "resolved": "https://registry.npmjs.org/@ljharb/through/-/through-2.3.12.tgz", - "integrity": "sha512-ajo/heTlG3QgC8EGP6APIejksVAYt4ayz4tqoP3MolFELzcH1x1fzwEYRJTPO0IELutZ5HQ0c26/GqAYy79u3g==", + "version": "2.3.13", + "resolved": "https://registry.npmjs.org/@ljharb/through/-/through-2.3.13.tgz", + "integrity": "sha512-/gKJun8NNiWGZJkGzI/Ragc53cOdcLNdzjLaIa+GEjguQs0ulsurx8WN0jijdK9yPqDvziX995sMRLyLt1uZMQ==", "dev": true, "requires": { - "call-bind": "^1.0.5" + "call-bind": "^1.0.7" } }, "@nodelib/fs.scandir": { @@ -3309,47 +3735,159 @@ "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.2.3.tgz", "integrity": "sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==", "dev": true, - "requires": { - "@rollup/pluginutils": "^5.0.1", - "@types/resolve": "1.20.2", - "deepmerge": "^4.2.2", - "is-builtin-module": "^3.2.1", - "is-module": "^1.0.0", - "resolve": "^1.22.1" - } + "requires": { + "@rollup/pluginutils": "^5.0.1", + "@types/resolve": "1.20.2", + "deepmerge": "^4.2.2", + "is-builtin-module": "^3.2.1", + "is-module": "^1.0.0", + "resolve": "^1.22.1" + } + }, + "@rollup/plugin-terser": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/@rollup/plugin-terser/-/plugin-terser-0.4.4.tgz", + "integrity": "sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==", + "dev": true, + "requires": { + "serialize-javascript": "^6.0.1", + "smob": "^1.0.0", + "terser": "^5.17.4" + }, + "dependencies": { + "serialize-javascript": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", + "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + } + } + }, + "@rollup/pluginutils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", + "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", + "dev": true, + "requires": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + } + }, + "@rollup/rollup-android-arm-eabi": { + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.19.1.tgz", + "integrity": "sha512-XzqSg714++M+FXhHfXpS1tDnNZNpgxxuGZWlRG/jSj+VEPmZ0yg6jV4E0AL3uyBKxO8mO3xtOsP5mQ+XLfrlww==", + "dev": true, + "optional": true + }, + "@rollup/rollup-android-arm64": { + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.19.1.tgz", + "integrity": "sha512-thFUbkHteM20BGShD6P08aungq4irbIZKUNbG70LN8RkO7YztcGPiKTTGZS7Kw+x5h8hOXs0i4OaHwFxlpQN6A==", + "dev": true, + "optional": true + }, + "@rollup/rollup-darwin-arm64": { + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.19.1.tgz", + "integrity": "sha512-8o6eqeFZzVLia2hKPUZk4jdE3zW7LCcZr+MD18tXkgBBid3lssGVAYuox8x6YHoEPDdDa9ixTaStcmx88lio5Q==", + "dev": true, + "optional": true + }, + "@rollup/rollup-darwin-x64": { + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.19.1.tgz", + "integrity": "sha512-4T42heKsnbjkn7ovYiAdDVRRWZLU9Kmhdt6HafZxFcUdpjlBlxj4wDrt1yFWLk7G4+E+8p2C9tcmSu0KA6auGA==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.19.1.tgz", + "integrity": "sha512-MXg1xp+e5GhZ3Vit1gGEyoC+dyQUBy2JgVQ+3hUrD9wZMkUw/ywgkpK7oZgnB6kPpGrxJ41clkPPnsknuD6M2Q==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-arm-musleabihf": { + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.19.1.tgz", + "integrity": "sha512-DZNLwIY4ftPSRVkJEaxYkq7u2zel7aah57HESuNkUnz+3bZHxwkCUkrfS2IWC1sxK6F2QNIR0Qr/YXw7nkF3Pw==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-arm64-gnu": { + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.19.1.tgz", + "integrity": "sha512-C7evongnjyxdngSDRRSQv5GvyfISizgtk9RM+z2biV5kY6S/NF/wta7K+DanmktC5DkuaJQgoKGf7KUDmA7RUw==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-arm64-musl": { + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.19.1.tgz", + "integrity": "sha512-89tFWqxfxLLHkAthAcrTs9etAoBFRduNfWdl2xUs/yLV+7XDrJ5yuXMHptNqf1Zw0UCA3cAutkAiAokYCkaPtw==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.19.1.tgz", + "integrity": "sha512-PromGeV50sq+YfaisG8W3fd+Cl6mnOOiNv2qKKqKCpiiEke2KiKVyDqG/Mb9GWKbYMHj5a01fq/qlUR28PFhCQ==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-riscv64-gnu": { + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.19.1.tgz", + "integrity": "sha512-/1BmHYh+iz0cNCP0oHCuF8CSiNj0JOGf0jRlSo3L/FAyZyG2rGBuKpkZVH9YF+x58r1jgWxvm1aRg3DHrLDt6A==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-s390x-gnu": { + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.19.1.tgz", + "integrity": "sha512-0cYP5rGkQWRZKy9/HtsWVStLXzCF3cCBTRI+qRL8Z+wkYlqN7zrSYm6FuY5Kd5ysS5aH0q5lVgb/WbG4jqXN1Q==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-x64-gnu": { + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.19.1.tgz", + "integrity": "sha512-XUXeI9eM8rMP8aGvii/aOOiMvTs7xlCosq9xCjcqI9+5hBxtjDpD+7Abm1ZhVIFE1J2h2VIg0t2DX/gjespC2Q==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-x64-musl": { + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.19.1.tgz", + "integrity": "sha512-V7cBw/cKXMfEVhpSvVZhC+iGifD6U1zJ4tbibjjN+Xi3blSXaj/rJynAkCFFQfoG6VZrAiP7uGVzL440Q6Me2Q==", + "dev": true, + "optional": true + }, + "@rollup/rollup-win32-arm64-msvc": { + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.19.1.tgz", + "integrity": "sha512-88brja2vldW/76jWATlBqHEoGjJLRnP0WOEKAUbMcXaAZnemNhlAHSyj4jIwMoP2T750LE9lblvD4e2jXleZsA==", + "dev": true, + "optional": true }, - "@rollup/plugin-terser": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/@rollup/plugin-terser/-/plugin-terser-0.4.4.tgz", - "integrity": "sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==", + "@rollup/rollup-win32-ia32-msvc": { + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.19.1.tgz", + "integrity": "sha512-LdxxcqRVSXi6k6JUrTah1rHuaupoeuiv38du8Mt4r4IPer3kwlTo+RuvfE8KzZ/tL6BhaPlzJ3835i6CxrFIRQ==", "dev": true, - "requires": { - "serialize-javascript": "^6.0.1", - "smob": "^1.0.0", - "terser": "^5.17.4" - }, - "dependencies": { - "serialize-javascript": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", - "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", - "dev": true, - "requires": { - "randombytes": "^2.1.0" - } - } - } + "optional": true }, - "@rollup/pluginutils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", - "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", + "@rollup/rollup-win32-x64-msvc": { + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.19.1.tgz", + "integrity": "sha512-2bIrL28PcK3YCqD9anGxDxamxdiJAxA+l7fWIwM5o8UqNy1t3d1NdAweO2XhA0KTDJ5aH1FsuiT5+7VhtHliXg==", "dev": true, - "requires": { - "@types/estree": "^1.0.0", - "estree-walker": "^2.0.2", - "picomatch": "^2.3.1" - } + "optional": true }, "@types/estree": { "version": "1.0.5", @@ -3363,16 +3901,10 @@ "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", "dev": true }, - "@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "dev": true - }, "acorn": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", "dev": true }, "acorn-jsx": { @@ -3427,47 +3959,52 @@ "dev": true }, "array-buffer-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", - "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", "dev": true, "requires": { - "call-bind": "^1.0.2", - "is-array-buffer": "^3.0.1" + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" } }, "array.prototype.every": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/array.prototype.every/-/array.prototype.every-1.1.5.tgz", - "integrity": "sha512-FfMQJ+/joFGXpRCltbzV3znaP5QxIhLFySo0fEPn3GuoYlud9LhknMCIxdYKC2qsM/6VHoSp6YGwe3EZXrEcwQ==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/array.prototype.every/-/array.prototype.every-1.1.6.tgz", + "integrity": "sha512-gNEqZD97w6bfQRNmHkFv7rNnGM+VWyHZT+h/rf9C+22owcXuENr66Lfo0phItpU5KoXW6Owb34q2+8MnSIZ57w==", "dev": true, "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0", "is-string": "^1.0.7" } }, "arraybuffer.prototype.slice": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", - "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", "dev": true, "requires": { - "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "is-array-buffer": "^3.0.2", + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", "is-shared-array-buffer": "^1.0.2" } }, "available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", - "dev": true + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "requires": { + "possible-typed-array-names": "^1.0.0" + } }, "balanced-match": { "version": "1.0.0", @@ -3492,12 +4029,12 @@ } }, "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, "requires": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" } }, "buffer-from": { @@ -3597,10 +4134,43 @@ "which": "^2.0.1" } }, + "data-view-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "dev": true, + "requires": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + } + }, + "data-view-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", + "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + } + }, + "data-view-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", + "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "dev": true, + "requires": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + } + }, "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", "dev": true, "requires": { "ms": "2.1.2" @@ -3680,15 +4250,6 @@ "integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==", "dev": true }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, "dotignore": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/dotignore/-/dotignore-0.1.2.tgz", @@ -3704,50 +4265,57 @@ "integrity": "sha512-/RInbCy1d4P6Zdfa+TMVsf/ufZVotat5hCw3QXmWtjU+3pFEOvOQ7ibo3aIxyCJw2leIeAMjmPj+1SLJiCpdrQ==" }, "es-abstract": { - "version": "1.22.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz", - "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==", + "version": "1.23.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", + "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", "dev": true, "requires": { - "array-buffer-byte-length": "^1.0.0", - "arraybuffer.prototype.slice": "^1.0.2", - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.5", - "es-set-tostringtag": "^2.0.1", + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", "es-to-primitive": "^1.2.1", "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.2", - "get-symbol-description": "^1.0.0", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", "globalthis": "^1.0.3", "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", "has-symbols": "^1.0.3", - "hasown": "^2.0.0", - "internal-slot": "^1.0.5", - "is-array-buffer": "^3.0.2", + "hasown": "^2.0.2", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", + "is-data-view": "^1.0.1", + "is-negative-zero": "^2.0.3", "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", + "is-shared-array-buffer": "^1.0.3", "is-string": "^1.0.7", - "is-typed-array": "^1.1.12", + "is-typed-array": "^1.1.13", "is-weakref": "^1.0.2", "object-inspect": "^1.13.1", "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.1", - "safe-array-concat": "^1.0.1", - "safe-regex-test": "^1.0.0", - "string.prototype.trim": "^1.2.8", - "string.prototype.trimend": "^1.0.7", - "string.prototype.trimstart": "^1.0.7", - "typed-array-buffer": "^1.0.0", - "typed-array-byte-length": "^1.0.0", - "typed-array-byte-offset": "^1.0.0", - "typed-array-length": "^1.0.4", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.2", + "safe-array-concat": "^1.1.2", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.6", "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.13" + "which-typed-array": "^1.1.15" } }, "es-define-property": { @@ -3790,15 +4358,24 @@ } } }, + "es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "dev": true, + "requires": { + "es-errors": "^1.3.0" + } + }, "es-set-tostringtag": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", - "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", "dev": true, "requires": { - "get-intrinsic": "^1.2.2", - "has-tostringtag": "^1.0.0", - "hasown": "^2.0.0" + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" } }, "es-to-primitive": { @@ -3813,41 +4390,37 @@ } }, "eslint": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.53.0.tgz", - "integrity": "sha512-N4VuiPjXDUa4xVeV/GC/RV3hQW9Nw+Y463lkWaKKXKYMvmRiRDAtfpuPFLN+E1/6ZhyR8J2ig+eVREnYgUsiag==", + "version": "9.8.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.8.0.tgz", + "integrity": "sha512-K8qnZ/QJzT2dLKdZJVX6W4XOwBzutMYmt0lqUS+JdXgd+HTYFlonFgkJ8s44d/zMPPCnOOk0kMWCApCPhiOy9A==", "dev": true, "requires": { "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.3", - "@eslint/js": "8.53.0", - "@humanwhocodes/config-array": "^0.11.13", + "@eslint-community/regexpp": "^4.11.0", + "@eslint/config-array": "^0.17.1", + "@eslint/eslintrc": "^3.1.0", + "@eslint/js": "9.8.0", "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.3.0", "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", "debug": "^4.3.2", - "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", + "eslint-scope": "^8.0.2", + "eslint-visitor-keys": "^4.0.0", + "espree": "^10.1.0", + "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", + "file-entry-cache": "^8.0.0", "find-up": "^5.0.0", "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", @@ -3898,6 +4471,12 @@ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true }, + "eslint-visitor-keys": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz", + "integrity": "sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==", + "dev": true + }, "glob-parent": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", @@ -3925,25 +4504,24 @@ } }, "eslint-plugin-regexp": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-regexp/-/eslint-plugin-regexp-1.15.0.tgz", - "integrity": "sha512-YEtQPfdudafU7RBIFci81R/Q1yErm0mVh3BkGnXD2Dk8DLwTFdc2ITYH1wCnHKim2gnHfPFgrkh+b2ozyyU7ag==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-regexp/-/eslint-plugin-regexp-2.6.0.tgz", + "integrity": "sha512-FCL851+kislsTEQEMioAlpDuK5+E5vs0hi1bF8cFlPlHcEjeRhuAzEsGikXRreE+0j4WhW2uO54MqTjXtYOi3A==", "dev": true, "requires": { "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.4.0", - "comment-parser": "^1.1.2", - "grapheme-splitter": "^1.0.4", - "jsdoctypeparser": "^9.0.0", - "refa": "^0.11.0", - "regexp-ast-analysis": "^0.6.0", - "scslre": "^0.2.0" + "@eslint-community/regexpp": "^4.9.1", + "comment-parser": "^1.4.0", + "jsdoc-type-pratt-parser": "^4.0.0", + "refa": "^0.12.1", + "regexp-ast-analysis": "^0.7.1", + "scslre": "^0.3.0" } }, "eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.0.2.tgz", + "integrity": "sha512-6E4xmrTw5wtxnLA5wYL3WDfhZ/1bUBGOXV0zQvVRDOtrR8D0p6W7fs3JweNYhwRYeGvd/1CKX2se0/2s7Q/nJA==", "dev": true, "requires": { "esrecurse": "^4.3.0", @@ -3957,14 +4535,22 @@ "dev": true }, "espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.1.0.tgz", + "integrity": "sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA==", "dev": true, "requires": { - "acorn": "^8.9.0", + "acorn": "^8.12.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" + "eslint-visitor-keys": "^4.0.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz", + "integrity": "sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==", + "dev": true + } } }, "esquery": { @@ -4031,18 +4617,18 @@ } }, "file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", "dev": true, "requires": { - "flat-cache": "^3.0.4" + "flat-cache": "^4.0.0" } }, "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, "requires": { "to-regex-range": "^5.0.1" @@ -4059,19 +4645,19 @@ } }, "flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", "dev": true, "requires": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" + "flatted": "^3.2.9", + "keyv": "^4.5.4" } }, "flatted": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.2.tgz", - "integrity": "sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", "dev": true }, "for-each": { @@ -4140,13 +4726,14 @@ "dev": true }, "get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", "dev": true, "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" } }, "glob": { @@ -4173,21 +4760,19 @@ } }, "globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true }, "globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", "dev": true, "requires": { - "define-properties": "^1.1.3" + "define-properties": "^1.2.1", + "gopd": "^1.0.1" } }, "gopd": { @@ -4204,18 +4789,6 @@ "resolved": "https://registry.npmjs.org/grad-school/-/grad-school-0.0.5.tgz", "integrity": "sha512-rXunEHF9M9EkMydTBux7+IryYXEZinRk6g8OBOGDBzo/qWJjhTxy86i5q7lQYpCLHN8Sqv1XX3OIOc7ka2gtvQ==" }, - "grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", - "dev": true - }, - "graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true - }, "has-bigints": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", @@ -4242,9 +4815,9 @@ } }, "has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", "dev": true }, "has-symbols": { @@ -4254,27 +4827,27 @@ "dev": true }, "has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "dev": true, "requires": { - "has-symbols": "^1.0.2" + "has-symbols": "^1.0.3" } }, "hasown": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz", - "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dev": true, "requires": { "function-bind": "^1.1.2" } }, "ignore": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", - "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", "dev": true }, "import-fresh": { @@ -4310,12 +4883,12 @@ "dev": true }, "internal-slot": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz", - "integrity": "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", "dev": true, "requires": { - "get-intrinsic": "^1.2.2", + "es-errors": "^1.3.0", "hasown": "^2.0.0", "side-channel": "^1.0.4" } @@ -4337,14 +4910,13 @@ } }, "is-array-buffer": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", - "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", "dev": true, "requires": { "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", - "is-typed-array": "^1.1.10" + "get-intrinsic": "^1.2.1" } }, "is-bigint": { @@ -4399,6 +4971,15 @@ "hasown": "^2.0.0" } }, + "is-data-view": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "dev": true, + "requires": { + "is-typed-array": "^1.1.13" + } + }, "is-date-object": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", @@ -4436,9 +5017,9 @@ "dev": true }, "is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", "dev": true }, "is-number": { @@ -4479,12 +5060,12 @@ "dev": true }, "is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", "dev": true, "requires": { - "call-bind": "^1.0.2" + "call-bind": "^1.0.7" } }, "is-string": { @@ -4506,12 +5087,12 @@ } }, "is-typed-array": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", - "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", "dev": true, "requires": { - "which-typed-array": "^1.1.11" + "which-typed-array": "^1.1.14" } }, "is-weakmap": { @@ -4560,10 +5141,16 @@ "argparse": "^2.0.1" } }, - "jsdoctypeparser": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/jsdoctypeparser/-/jsdoctypeparser-9.0.0.tgz", - "integrity": "sha512-jrTA2jJIL6/DAEILBEh2/w9QxCuwmvNXIry39Ay/HVfhE3o2yVV0U44blYkqdHA/OKloJEqvJy0xU+GSdE2SIw==", + "jsdoc-type-pratt-parser": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-4.0.0.tgz", + "integrity": "sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==", + "dev": true + }, + "json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", "dev": true }, "json-schema-traverse": { @@ -4578,6 +5165,15 @@ "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", "dev": true }, + "keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "requires": { + "json-buffer": "3.0.1" + } + }, "levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", @@ -4671,13 +5267,13 @@ "dev": true }, "object-is": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", - "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", + "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", "dev": true, "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1" } }, "object-keys": { @@ -4778,6 +5374,12 @@ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true }, + "possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "dev": true + }, "prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -4851,33 +5453,34 @@ } }, "refa": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/refa/-/refa-0.11.0.tgz", - "integrity": "sha512-486O8/pQXwj9jV0mVvUnTsxq0uknpBnNJ0eCUhkZqJRQ8KutrT1PhzmumdCeM1hSBF2eMlFPmwECRER4IbKXlQ==", + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/refa/-/refa-0.12.1.tgz", + "integrity": "sha512-J8rn6v4DBb2nnFqkqwy6/NnTYMcgLA+sLr0iIO41qpv0n+ngb7ksag2tMRl0inb1bbO/esUwzW1vbJi7K0sI0g==", "dev": true, "requires": { - "@eslint-community/regexpp": "^4.5.0" + "@eslint-community/regexpp": "^4.8.0" } }, "regexp-ast-analysis": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/regexp-ast-analysis/-/regexp-ast-analysis-0.6.0.tgz", - "integrity": "sha512-OLxjyjPkVH+rQlBLb1I/P/VTmamSjGkvN5PTV5BXP432k3uVz727J7H29GA5IFiY0m7e1xBN7049Wn59FY3DEQ==", + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/regexp-ast-analysis/-/regexp-ast-analysis-0.7.1.tgz", + "integrity": "sha512-sZuz1dYW/ZsfG17WSAG7eS85r5a0dDsvg+7BiiYR5o6lKCAtUrEwdmRmaGF6rwVj3LcmAeYkOWKEPlbPzN3Y3A==", "dev": true, "requires": { - "@eslint-community/regexpp": "^4.5.0", - "refa": "^0.11.0" + "@eslint-community/regexpp": "^4.8.0", + "refa": "^0.12.1" } }, "regexp.prototype.flags": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", - "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", + "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", "dev": true, "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "set-function-name": "^2.0.0" + "call-bind": "^1.0.6", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.1" } }, "resolve": { @@ -4903,28 +5506,36 @@ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, "rollup": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.28.0.tgz", - "integrity": "sha512-d7zhvo1OUY2SXSM6pfNjgD5+d0Nz87CUp4mt8l/GgVP3oBsPwzNvSzyu1me6BSG9JIgWNTVcafIXBIyM8yQ3yw==", - "dev": true, - "requires": { + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.19.1.tgz", + "integrity": "sha512-K5vziVlg7hTpYfFBI+91zHBEMo6jafYXpkMlqZjg7/zhIG9iHqazBf4xz9AVdjS9BruRn280ROqLI7G3OFRIlw==", + "dev": true, + "requires": { + "@rollup/rollup-android-arm-eabi": "4.19.1", + "@rollup/rollup-android-arm64": "4.19.1", + "@rollup/rollup-darwin-arm64": "4.19.1", + "@rollup/rollup-darwin-x64": "4.19.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.19.1", + "@rollup/rollup-linux-arm-musleabihf": "4.19.1", + "@rollup/rollup-linux-arm64-gnu": "4.19.1", + "@rollup/rollup-linux-arm64-musl": "4.19.1", + "@rollup/rollup-linux-powerpc64le-gnu": "4.19.1", + "@rollup/rollup-linux-riscv64-gnu": "4.19.1", + "@rollup/rollup-linux-s390x-gnu": "4.19.1", + "@rollup/rollup-linux-x64-gnu": "4.19.1", + "@rollup/rollup-linux-x64-musl": "4.19.1", + "@rollup/rollup-win32-arm64-msvc": "4.19.1", + "@rollup/rollup-win32-ia32-msvc": "4.19.1", + "@rollup/rollup-win32-x64-msvc": "4.19.1", + "@types/estree": "1.0.5", "fsevents": "~2.3.2" } }, "rollup-plugin-filesize-check": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/rollup-plugin-filesize-check/-/rollup-plugin-filesize-check-0.0.2.tgz", - "integrity": "sha512-4CTEMQ8DEDE+NJGVKvRayFxX4vmMmzmgrFAjBqPJmM5zmccBbW4Im/AZeNejn2RaxRdYALJCUXuhFz5zlUCPIw==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-filesize-check/-/rollup-plugin-filesize-check-1.2.0.tgz", + "integrity": "sha512-d6ZX4BLz6gCvkqkoH+PqwVZCRmakX9DFXgUJYDWjspv0hla5B1wJDT3NY3vYWVNKqmngigaJeS83HcNfhGOjbA==", "dev": true, "requires": {} }, @@ -4938,13 +5549,13 @@ } }, "safe-array-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", - "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", "dev": true, "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", "has-symbols": "^1.0.3", "isarray": "^2.0.5" }, @@ -4964,25 +5575,25 @@ "dev": true }, "safe-regex-test": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", "dev": true, "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", "is-regex": "^1.1.4" } }, "scslre": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/scslre/-/scslre-0.2.0.tgz", - "integrity": "sha512-4hc49fUMmX3jM0XdFUAPBrs1xwEcdHa0KyjEsjFs+Zfc66mpFpq5YmRgDtl+Ffo6AtJIilfei+yKw8fUn3N88w==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/scslre/-/scslre-0.3.0.tgz", + "integrity": "sha512-3A6sD0WYP7+QrjbfNA2FN3FsOaGGFoekCVgTyypy53gPxhbkCIjtO6YWgdrfM+n/8sI8JeXZOIxsHjMTNxQ4nQ==", "dev": true, "requires": { - "@eslint-community/regexpp": "^4.5.0", - "refa": "^0.11.0", - "regexp-ast-analysis": "^0.6.0" + "@eslint-community/regexpp": "^4.8.0", + "refa": "^0.12.0", + "regexp-ast-analysis": "^0.7.0" } }, "set-function-length": { @@ -5097,36 +5708,37 @@ } }, "string.prototype.trim": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", - "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", "dev": true, "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" } }, "string.prototype.trimend": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", - "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", "dev": true, "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" } }, "string.prototype.trimstart": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", - "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", "dev": true, "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" } }, "strip-ansi": { @@ -5186,14 +5798,14 @@ } }, "tape": { - "version": "5.7.5", - "resolved": "https://registry.npmjs.org/tape/-/tape-5.7.5.tgz", - "integrity": "sha512-C5Gm1MR8ujZmNrsmOiHSkKFfY2thrnUrFw/fFtcva9FABbN7LrHuQPi3MTS0Z0i/SLfYSJtRIcJYDUpwPsQ8yA==", + "version": "5.8.1", + "resolved": "https://registry.npmjs.org/tape/-/tape-5.8.1.tgz", + "integrity": "sha512-pUzADXBVYm5Jkneh9hfXnirADrzQrDA3vddKbPOc/ZLORj4dFQ6GR1KdGWX0/NvOLDcYkVgeMdw78Uf6BzO3KA==", "dev": true, "requires": { - "@ljharb/resumer": "^0.1.2", - "@ljharb/through": "^2.3.12", - "array.prototype.every": "^1.1.5", + "@ljharb/resumer": "^0.1.3", + "@ljharb/through": "^2.3.13", + "array.prototype.every": "^1.1.6", "call-bind": "^1.0.7", "deep-equal": "^2.2.3", "defined": "^1.0.1", @@ -5202,17 +5814,17 @@ "get-package-type": "^0.1.0", "glob": "^7.2.3", "has-dynamic-import": "^2.1.0", - "hasown": "^2.0.1", + "hasown": "^2.0.2", "inherits": "^2.0.4", "is-regex": "^1.1.4", "minimist": "^1.2.8", "mock-property": "^1.0.3", "object-inspect": "^1.13.1", - "object-is": "^1.1.5", + "object-is": "^1.1.6", "object-keys": "^1.1.1", "object.assign": "^4.1.5", "resolve": "^2.0.0-next.5", - "string.prototype.trim": "^1.2.8" + "string.prototype.trim": "^1.2.9" }, "dependencies": { "resolve": { @@ -5276,57 +5888,56 @@ "prelude-ls": "^1.2.1" } }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true - }, "typed-array-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", - "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", "dev": true, "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", - "is-typed-array": "^1.1.10" + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" } }, "typed-array-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", - "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", "dev": true, "requires": { - "call-bind": "^1.0.2", + "call-bind": "^1.0.7", "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" } }, "typed-array-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", - "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", "dev": true, "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" } }, "typed-array-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", - "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", + "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", "dev": true, "requires": { - "call-bind": "^1.0.2", + "call-bind": "^1.0.7", "for-each": "^0.3.3", - "is-typed-array": "^1.1.9" + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" } }, "unbox-primitive": { @@ -5391,16 +6002,16 @@ } }, "which-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", - "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", "dev": true, "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", "for-each": "^0.3.3", "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" + "has-tostringtag": "^1.0.2" } }, "wrappy": { diff --git a/package.json b/package.json index f566407c7..26fd1fd78 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.13.0", + "version": "14.14.0", "module": "./src/three.js", "main": "./src/three.js", "unpkg": "./builds/compromise.js", @@ -88,7 +88,7 @@ "coverage": "c8 -r lcov -n 'src/**/*' -n 'plugins/**/*' npm run test", "perf": "node ./scripts/perf/index.js", "flame": "clinic flame -- node ./scripts/perf/flame", - "lint": "eslint ./src/**/*", + "lint": "eslint src", "plugins:ci": "node ./scripts/plugins.js npm ci", "plugins:build": "node ./scripts/plugins.js npm run build" }, @@ -118,14 +118,14 @@ "@rollup/plugin-terser": "0.4.4", "amble": "1.3.0", "cross-env": "^7.0.3", - "eslint": "8.53.0", - "eslint-plugin-regexp": "1.15.0", + "eslint": "9.8.0", + "eslint-plugin-regexp": "2.6.0", "nlp-corpus": "4.4.0", - "rollup": "3.28.0", - "rollup-plugin-filesize-check": "^0.0.2", + "rollup": "4.19.1", + "rollup-plugin-filesize-check": "1.2.0", "shelljs": "0.8.5", "tap-dancer": "0.3.4", - "tape": "5.7.5" + "tape": "5.8.1" }, "eslintIgnore": [ "builds/*.js", diff --git a/plugins/_experiments/sentiment/scratch.js b/plugins/_experiments/sentiment/scratch.js index bdc6a1efa..e2d97deca 100644 --- a/plugins/_experiments/sentiment/scratch.js +++ b/plugins/_experiments/sentiment/scratch.js @@ -1,4 +1,3 @@ -/* eslint-disable */ import nlp from '../../../src/three.js' import plg from './src/plugin.js' nlp.plugin(plg) @@ -9,4 +8,4 @@ let arr = [ ] let res = nlp(arr[0]).sentiment() -console.log(res) \ No newline at end of file +console.log(res) diff --git a/plugins/_experiments/sentiment/src/emoji.js b/plugins/_experiments/sentiment/src/emoji.js index f31301502..88bbf00f1 100644 --- a/plugins/_experiments/sentiment/src/emoji.js +++ b/plugins/_experiments/sentiment/src/emoji.js @@ -1,4 +1,3 @@ -/* eslint-disable */ import RegExpEscape from './escape.js' /** @@ -10,8 +9,8 @@ import RegExpEscape from './escape.js' * * Original version: * @author Steven Loria -* @see {@link https://github.com/sloria/TextBlob/blob/dev/textblob/_text.py|_text.py} -* +* @see {@link https://github.com/sloria/TextBlob/blob/dev/textblob/_text.py|_text.py} +* * From emoticons section of python file above, data was converted to JSON Object containing selected emoticons/smileys and their associated polarity scores */ const emoticons = { "<3": "1.00", "โ™ฅ": "1.00", ">:D": "1.00", ":-D": "1.00", ":D": "1.00", "=-D": "1.00", "=D": "1.00", "X-D": "1.00", "x-D": "1.00", "XD": "1.00", "xD": "1.00", "8-D": "1.00", ">:P": "0.75", ":-P": "0.75", ":P": "0.75", ":-p": "0.75", ":p": "0.75", ":-b": "0.75", ":b": "0.75", ":c)": "0.75", ":o)": "0.75", ":^)": "0.75", ">:)": "0.50", ":-)": "0.50", ":)": "0.50", "=)": "0.50", "=]": "0.50", ":]": "0.50", ":}": "0.50", ":>": "0.50", ":3": "0.50", "8)": "0.50", "8-)": "0.50", ">;]": "0.25", ";-)": "0.25", ";)": "0.25", ";-]": "0.25", ";]": "0.25", ";D": "0.25", ";^)": "0.25", "*-)": "0.25", "*)": "0.25", ">:o": "0.05", ":-O": "0.05", ":O": "0.05", ":o": "0.05", ":-o": "0.05", "o_O": "0.05", "o.O": "0.05", "ยฐOยฐ": "0.05", "ยฐoยฐ": "0.05", ">:/": "-0.25", ":-/": "-0.25", ":/": "-0.25", ":\\": "-0.25", ">:\\": "-0.25", ":-.": "-0.25", ":-s": "-0.25", ":s": "-0.25", ":S": "-0.25", ":-S": "-0.25", ">.>": "-0.25", ">:[": "-0.75", ":-(": "-0.75", ":(": "-0.75", "=(": "-0.75", ":-[": "-0.75", ":[": "-0.75", ":{": "-0.75", ":-<": "-0.75", ":c": "-0.75", ":-c": "-0.75", "=/": "-0.75", ":'(": "-1.00", ":'''(": "-1.00", ";'(": "-1.00" }; @@ -30,8 +29,8 @@ const emoticon_regex = new RegExp((RegExpEscape(Object.keys(emoticons).join(' ') * * Original version: * @author P. Kralj Novak, J. Smailovic, B. Sluban, I. Mozetic -* @see {@link https://kt.ijs.si/data/Emoji_sentiment_ranking/|Emoji Sentiment Ranking v1.0} -* +* @see {@link https://kt.ijs.si/data/Emoji_sentiment_ranking/|Emoji Sentiment Ranking v1.0} +* * From emoji file above, data from Char and Sentiment score columns was used, and converted to JSON Object */ const emojis = { "๐Ÿ˜‚": "0.221", "โค": "0.746", "โ™ฅ": "0.657", "๐Ÿ˜": "0.678", "๐Ÿ˜ญ": "-0.093", "๐Ÿ˜˜": "0.701", "๐Ÿ˜Š": "0.644", "๐Ÿ‘Œ": "0.563", "๐Ÿ’•": "0.632", "๐Ÿ‘": "0.520", "๐Ÿ˜": "0.449", "โ˜บ": "0.657", "โ™ก": "0.669", "๐Ÿ‘": "0.521", "๐Ÿ˜ฉ": "-0.368", "๐Ÿ™": "0.417", "โœŒ": "0.463", "๐Ÿ˜": "0.332", "๐Ÿ˜‰": "0.463", "๐Ÿ™Œ": "0.559", "๐Ÿ™ˆ": "0.432", "๐Ÿ’ช": "0.555", "๐Ÿ˜„": "0.421", "๐Ÿ˜’": "-0.374", "๐Ÿ’ƒ": "0.734", "๐Ÿ’–": "0.712", "๐Ÿ˜ƒ": "0.557", "๐Ÿ˜”": "-0.146", "๐Ÿ˜ฑ": "0.190", "๐ŸŽ‰": "0.738", "๐Ÿ˜œ": "0.455", "โ˜ฏ": "0.001", "๐ŸŒธ": "0.650", "๐Ÿ’œ": "0.654", "๐Ÿ’™": "0.730", "โœจ": "0.351", "๐Ÿ˜ณ": "0.018", "๐Ÿ’—": "0.657", "โ˜…": "0.283", "โ˜€": "0.465", "๐Ÿ˜ก": "-0.173", "๐Ÿ˜Ž": "0.491", "๐Ÿ˜ข": "0.007", "๐Ÿ’‹": "0.691", "๐Ÿ˜‹": "0.631", "๐Ÿ™Š": "0.459", "๐Ÿ˜ด": "-0.080", "๐ŸŽถ": "0.537", "๐Ÿ’ž": "0.739", "๐Ÿ˜Œ": "0.482", "๐Ÿ”ฅ": "0.139", "๐Ÿ’ฏ": "0.120", "๐Ÿ”ซ": "-0.194", "๐Ÿ’›": "0.709", "๐Ÿ’": "0.326", "๐Ÿ’š": "0.656", "โ™ซ": "0.287", "๐Ÿ˜ž": "-0.118", "๐Ÿ˜†": "0.409", "๐Ÿ˜": "0.423", "๐Ÿ˜ช": "-0.080", "๐Ÿ˜ซ": "-0.145", "๐Ÿ˜…": "0.178", "๐Ÿ‘Š": "0.228", "๐Ÿ’€": "-0.207", "๐Ÿ˜€": "0.568", "๐Ÿ˜š": "0.710", "๐Ÿ˜ป": "0.619", "ยฉ": "0.117", "๐Ÿ‘€": "0.063", "๐Ÿ’˜": "0.683", "๐Ÿ“": "0.028", "โ˜•": "0.244", "๐Ÿ‘‹": "0.413", "โœ‹": "0.126", "๐ŸŽŠ": "0.721", "๐Ÿ•": "0.417", "โ„": "0.506", "๐Ÿ˜ฅ": "0.122", "๐Ÿ˜•": "-0.397", "๐Ÿ’ฅ": "0.148", "๐Ÿ’”": "-0.121", "๐Ÿ˜ค": "-0.209", "๐Ÿ˜ˆ": "0.265", "โœˆ": "0.415", "๐Ÿ”": "0.474", "๐Ÿ˜ฐ": "-0.020", "โšฝ": "0.616", "๐Ÿ˜‘": "-0.311", "๐Ÿ‘‘": "0.694", "๐Ÿ˜น": "0.141", "๐Ÿ‘‰": "0.390", "๐Ÿƒ": "0.378", "๐ŸŽ": "0.759", "๐Ÿ˜ ": "-0.299", "๐Ÿง": "0.456", "๐Ÿ€": "0.285", "๐ŸŽˆ": "0.718", "๐ŸŽ…": "0.318", "๐Ÿ˜“": "-0.080", "๐Ÿ˜ฃ": "-0.212", "๐Ÿ˜": "-0.388", "โœŠ": "0.429", "๐Ÿ˜จ": "-0.140", "๐Ÿ˜–": "-0.155", "๐Ÿ’ค": "0.370", "๐Ÿ’“": "0.664", "๐Ÿ‘Ž": "-0.188", "๐Ÿ’ฆ": "0.471", "โœ”": "0.270", "๐Ÿ˜ท": "-0.169", "โšก": "0.177", "๐Ÿ™‹": "0.485", "๐ŸŽ„": "0.531", "๐Ÿ’ฉ": "-0.116", "๐ŸŽต": "0.500", "โžก": "0.147", "๐Ÿ˜›": "0.601", "๐Ÿ˜ฌ": "0.194", "๐Ÿ‘ฏ": "0.439", "๐Ÿ’Ž": "0.561", "๐ŸŒฟ": "0.384", "๐ŸŽ‚": "0.613", "๐ŸŒŸ": "0.327", "๐Ÿ”ฎ": "0.267", "โ—": "0.100", "๐Ÿ‘ซ": "0.255", "๐Ÿ†": "0.726", "โœ–": "0.311", "โ˜": "0.309", "๐Ÿ˜™": "0.778", "โ›„": "0.521", "๐Ÿ‘…": "0.461", "โ™ช": "0.534", "๐Ÿ‚": "0.547", "๐Ÿ’": "0.388", "๐Ÿ”ช": "0.070", "๐ŸŒด": "0.525", "๐Ÿ‘ˆ": "0.424", "๐ŸŒน": "0.600", "๐Ÿ™†": "0.500", "๐Ÿ‘ป": "0.228", "๐Ÿ’ฐ": "0.251", "๐Ÿป": "0.512", "๐Ÿ™…": "-0.202", "๐ŸŒž": "0.558", "๐Ÿ": "0.482", "โญ": "0.580", "โ–ช": "0.198", "๐ŸŽ€": "0.629", "โ˜ท": "0.064", "๐Ÿท": "0.368", "๐Ÿ™‰": "0.333", "๐ŸŒบ": "0.549", "๐Ÿ’…": "0.388", "๐Ÿถ": "0.576", "๐ŸŒš": "0.464", "๐Ÿ‘ฝ": "0.315", "๐ŸŽค": "0.476", "๐Ÿ‘ญ": "0.463", "๐ŸŽง": "0.414", "๐Ÿ‘†": "0.326", "๐Ÿธ": "0.539", "๐Ÿท": "0.393", "ยฎ": "0.279", "๐Ÿ‰": "0.597", "๐Ÿ˜‡": "0.587", "โ˜‘": "0.101", "๐Ÿƒ": "0.406", "๐Ÿ˜ฟ": "-0.372", "๐Ÿ’ฃ": "0.007", "๐Ÿบ": "0.493", "โ–ถ": "0.209", "๐Ÿ˜ฒ": "-0.068", "๐ŸŽธ": "0.516", "๐Ÿน": "0.659", "๐Ÿ’ซ": "0.500", "๐Ÿ“š": "0.336", "๐Ÿ˜ถ": "-0.142", "๐ŸŒท": "0.538", "๐Ÿ’": "0.644", "๐Ÿ’จ": "0.381", "๐Ÿˆ": "0.530", "๐Ÿ’": "0.478", "โ˜”": "0.289", "๐Ÿ‘ธ": "0.605", "๐Ÿฉ": "0.382", "๐Ÿ‘พ": "0.361", "โ˜": "0.308", "๐ŸŒป": "0.570", "๐Ÿ˜ต": "0.085", "๐Ÿ“’": "0.038", "๐Ÿฏ": "0.476", "๐Ÿ‘ผ": "0.333", "๐Ÿ”": "0.277", "๐Ÿ˜ธ": "0.410", "๐Ÿ‘ถ": "0.434", "๐Ÿ’": "0.735", "๐ŸŒŠ": "0.500", "๐Ÿฆ": "0.459", "๐Ÿ“": "0.670", "๐Ÿ‘‡": "0.247", "๐Ÿ’†": "0.221", "๐Ÿด": "0.537", "๐Ÿ˜ง": "-0.063", "๐Ÿ˜ฎ": "0.269", "๐Ÿšซ": "-0.440", "๐Ÿ˜ฝ": "0.571", "๐ŸŒˆ": "0.516", "๐Ÿ™€": "0.330", "โš ": "-0.066", "๐ŸŽฎ": "0.427", "๐Ÿ†": "0.402", "๐Ÿฐ": "0.448", "๐Ÿ‘": "-0.023", "๐Ÿ™‡": "0.140", "๐ŸŸ": "0.302", "๐ŸŒ": "0.435", "๐Ÿ’‘": "0.659", "๐Ÿ‘ฌ": "-0.059", "๐Ÿฃ": "0.476", "๐ŸŽƒ": "0.595", "๐Ÿ˜Ÿ": "0.072", "๐Ÿพ": "0.605", "๐ŸŽ“": "0.563", "๐ŸŠ": "0.575", "๐Ÿซ": "0.152", "๐Ÿ“ท": "0.430", "๐Ÿ‘„": "0.474", "๐ŸŒผ": "0.779", "๐Ÿšถ": "-0.143", "๐Ÿฑ": "0.513", "๐Ÿธ": "-0.080", "๐Ÿ‘ฟ": "-0.534", "๐Ÿšฌ": "0.521", "๐Ÿ“–": "0.169", "๐Ÿ’": "0.521", "๐ŸŒ": "0.592", "๐Ÿฅ": "0.586", "๐ŸŒ€": "0.101", "๐Ÿผ": "0.261", "๐ŸŽฅ": "0.290", "๐Ÿ’„": "0.435", "๐Ÿ’ธ": "0.159", "โ›”": "0.485", "๐Ÿ€": "0.254", "๐Ÿ’‰": "0.358", "๐Ÿ’Ÿ": "0.682", "๐Ÿš—": "0.231", "๐Ÿ˜ฏ": "0.123", "๐Ÿ“": "0.231", "โ™ฆ": "0.453", "๐Ÿ’ญ": "0.206", "๐ŸŒ™": "0.590", "๐ŸŸ": "0.689", "๐Ÿ‘ฃ": "0.344", "โ˜ž": "0.115", "โœ‚": "-0.459", "๐Ÿ—ฟ": "0.443", "๐Ÿ": "0.117", "๐Ÿ‘ช": "-0.017", "๐Ÿญ": "0.300", "๐ŸŒƒ": "0.390", "โŒ": "0.271", "๐Ÿฐ": "0.586", "๐Ÿ’Š": "0.431", "๐Ÿšจ": "0.638", "๐Ÿ˜ฆ": "-0.368", "๐Ÿช": "0.316", "๐Ÿฃ": "-0.232", "๐ŸŽ†": "0.709", "๐ŸŽŽ": "0.907", "โœ…": "0.407", "๐Ÿ‘น": "0.058", "๐Ÿ“ฑ": "0.308", "๐Ÿ™": "-0.327", "๐Ÿ‘": "0.250", "๐ŸŽผ": "0.327", "๐Ÿ”Š": "0.404", "๐ŸŒŒ": "0.520", "๐ŸŽ": "0.320", "๐Ÿป": "0.440", "๐Ÿ’‡": "0.327", "โ™ฌ": "0.245", "โ™š": "0.041", "๐Ÿ”ด": "0.396", "๐Ÿฑ": "-0.313", "๐ŸŠ": "0.417", "๐Ÿ’": "0.313", "๐Ÿญ": "0.688", "๐Ÿ‘Ÿ": "0.417", "๐ŸŒŽ": "0.319", "๐Ÿ": "0.468", "๐Ÿฎ": "0.587", "๐Ÿ“ฒ": "0.239", "โ˜ผ": "0.196", "๐ŸŒ…": "0.356", "๐Ÿ‘ ": "0.356", "๐ŸŒฝ": "0.444", "๐Ÿ’ง": "-0.159", "โ“": "0.068", "๐Ÿฌ": "0.364", "๐Ÿ˜บ": "0.395", "๐Ÿด": "0.070", "๐Ÿš€": "0.488", "๐Ÿ’ข": "0.233", "๐ŸŽฌ": "0.279", "๐Ÿง": "0.302", "๐Ÿœ": "0.395", "๐Ÿ": "0.558", "๐Ÿ˜": "0.023", "๐Ÿ‘ง": "0.140", "๐Ÿ„": "0.524", "โฌ†": "0.286", "๐Ÿ‹": "0.244", "๐Ÿ†—": "0.537", "โšช": "0.450", "๐Ÿ“บ": "0.375", "๐Ÿ…": "0.350", "โ›…": "0.450", "๐Ÿข": "0.200", "๐Ÿ‘™": "0.500", "๐Ÿก": "0.436", "๐ŸŒพ": "0.538", "โœ": "0.342", "๐Ÿฌ": "0.421", "๐Ÿค": "0.053", "โ™ฃ": "0.342", "๐Ÿ": "0.211", "๐ŸŒ": "0.189", "๐Ÿ”‹": "-0.486", "๐Ÿ": "0.351", "โ™”": "0.541", "๐Ÿณ": "0.028", "๐Ÿ”ต": "0.306", "๐Ÿ˜พ": "-0.333", "๐ŸŒ•": "0.556", "๐Ÿจ": "0.444", "๐Ÿ”": "0.333", "๐Ÿ’ฟ": "0.611", "๐ŸŒณ": "0.486", "๐Ÿ‘ฐ": "0.486", "โš“": "0.571", "๐Ÿšด": "0.657", "๐Ÿ‘—": "0.235", "โž•": "0.529", "๐Ÿ’ฌ": "0.364", "๐Ÿ”œ": "0.273", "๐Ÿจ": "0.212", "๐Ÿ’ฒ": "0.242", "โ›ฝ": "0.152", "๐Ÿ™": "0.281", "๐Ÿ—": "0.063", "๐Ÿฒ": "0.125", "๐Ÿฅ": "-0.594", "โ™›": "0.188", "๐Ÿ˜ผ": "0.355", "๐Ÿ™": "0.387", "๐Ÿ‘จ": "0.516", "๐Ÿš": "0.452", "๐Ÿ–": "0.129", "โ™จ": "0.871", "๐ŸŽน": "0.355", "โ™•": "0.387", "๐Ÿš˜": "0.067", "๐Ÿ": "0.067", "๐Ÿ‘ฉ": "0.067", "๐Ÿ‘ฆ": "0.133", "โ˜ ": "-0.033", "๐Ÿ ": "0.414", "๐Ÿšน": "0.690", "๐Ÿ’ต": "0.379", "๐Ÿ‘›": "0.357", "๐Ÿš™": "0.036", "๐ŸŒฑ": "0.571", "๐Ÿ’ป": "0.250", "๐ŸŒ": "0.321", "๐Ÿ‘“": "0.296", "โšพ": "-0.037", "๐ŸŒฒ": "0.385", "๐Ÿ‘ด": "0.231", "๐Ÿ ": "0.500", "๐Ÿ‡": "0.269", "๐Ÿ˜": "0.385", "๐Ÿ›": "0.038", "๐Ÿ‡": "0.231", "๐Ÿ”ž": "-0.038", "๐Ÿ‘ต": "0.423", "โ—€": "0.269", "๐Ÿ”™": "0.192", "๐ŸŒต": "0.192", "๐Ÿฝ": "0.120", "๐Ÿฎ": "-0.120", "๐ŸŽ‡": "0.680", "๐ŸŽ": "0.400", "๐Ÿ’ถ": "0.000", "๐Ÿค": "0.520", "๐Ÿ›€": "0.125", "๐ŸŒ‘": "0.458", "๐Ÿšฒ": "0.375", "๐Ÿ‘": "-0.167", "๐Ÿ": "0.500", "๐Ÿž": "0.042", "๐ŸŽพ": "0.542", "๐Ÿˆน": "0.292", "๐Ÿณ": "0.130", "๐Ÿ‘ฎ": "-0.348", "โ˜น": "-0.522", "๐Ÿต": "0.478", "๐Ÿ—ผ": "0.522", "โ™ ": "0.304", "๐Ÿ‘บ": "-0.182", "๐Ÿš": "0.227", "๐Ÿ‘‚": "-0.136", "๐Ÿ—ฝ": "0.318", "๐Ÿต": "0.364", "๐Ÿ†’": "0.364", "๐Ÿฏ": "0.045", "๐Ÿบ": "0.227", "๐ŸŒ“": "0.591", "๐Ÿ”’": "0.182", "๐Ÿ‘ณ": "0.619", "๐ŸŒ‚": "0.238", "๐ŸšŒ": "0.190", "โ™ฉ": "0.524", "๐Ÿก": "-0.048", "โฅ": "0.238", "๐ŸŽก": "0.286", "๐Ÿ’Œ": "0.500", "๐Ÿฉ": "0.350", "๐ŸŒœ": "0.500", "โŒš": "0.200", "๐Ÿšฟ": "0.600", "๐Ÿ–": "0.150", "๐Ÿ”†": "0.550", "๐ŸŒ›": "0.550", "๐Ÿ’‚": "-0.150", "๐Ÿ”": "0.300", "๐Ÿ™Ž": "-0.050", "๐Ÿฉ": "0.421", "๐Ÿ”จ": "-0.105", "๐Ÿ“ข": "0.421", "๐Ÿฆ": "0.421", "๐Ÿฒ": "-0.053", "โ™ป": "0.474", "๐ŸŒ˜": "0.579", "๐Ÿ": "0.158", "๐ŸŒ”": "0.579", "๐Ÿ‘–": "0.333", "๐Ÿšบ": "0.167", "๐Ÿ˜—": "0.611", "๐ŸŽญ": "0.000", "๐Ÿ„": "0.278", "๐Ÿข": "-0.111", "๐ŸŽจ": "0.167", "โฌ‡": "0.389", "๐Ÿšผ": "0.556", "โ›ฒ": "0.056", "๐ŸŒ—": "0.611", "๐ŸŒ–": "0.611", "๐Ÿ”…": "0.833", "๐Ÿ‘œ": "0.235", "๐ŸŒ": "0.647", "๐Ÿ’ผ": "0.529", "๐Ÿš•": "0.000", "๐Ÿน": "0.294", "๐ŸŒ ": "0.529", "๐Ÿˆ": "0.294", "โ˜Ž": "0.000", "๐ŸŒ": "0.176", "โšซ": "0.235", "โ™ง": "0.471", "๐Ÿฐ": "0.294", "๐Ÿšต": "0.353", "๐ŸŽข": "0.471", "๐ŸŽท": "0.647", "๐ŸŽ": "0.176", "๐ŸŒ‡": "0.500", "โฐ": "0.438", "๐Ÿš‚": "0.250", "๐ŸŽฟ": "0.375", "๐Ÿ†”": "0.750", "โ›ช": "0.125", "๐ŸŒ’": "0.563", "๐Ÿช": "0.563", "๐Ÿ‘”": "0.333", "๐Ÿ”ฑ": "0.067", "๐Ÿ†“": "0.200", "๐Ÿ‹": "0.200", "๐Ÿ›": "0.267", "๐Ÿ‘•": "0.400", "๐Ÿš‹": "0.067", "๐Ÿ’ณ": "0.400", "๐ŸŒ†": "0.133", "๐Ÿง": "0.800", "๐Ÿ’ก": "0.600", "๐Ÿ”น": "0.133", "โฌ…": "0.467", "๐Ÿ ": "0.000", "๐Ÿซ": "0.333", "๐Ÿช": "0.067", "๐Ÿ“น": "0.429", "๐Ÿ‘ž": "0.429", "๐Ÿš‘": "0.071", "๐Ÿ†˜": "0.071", "๐Ÿ‘š": "0.571", "๐Ÿš": "0.071", "๐Ÿ‚": "0.143", "๐Ÿšฃ": "0.571", "โœณ": "0.000", "๐Ÿ‰": "0.500", "๐Ÿ—ป": "0.571", "๐Ÿ€": "0.143", "โ›บ": "0.462", "๐Ÿ•": "0.231", "๐Ÿ‚": "0.385", "๐Ÿ‘ก": "0.385", "๐Ÿ“ป": "0.308", "โœ’": "0.231", "๐ŸŒฐ": "0.538", "๐Ÿข": "0.154", "๐ŸŽ’": "0.462", "๐Ÿซ": "-0.231", "๐Ÿ“ด": "0.615", "๐Ÿšข": "0.231", "๐Ÿšš": "-0.077", "๐Ÿ‰": "0.154", "๐ŸŠ": "0.077", "๐Ÿ””": "0.769", "๐Ÿฅ": "0.250", "โ”": "0.000", "๐Ÿš–": "-0.083", "๐Ÿƒ": "0.083", "โ˜›": "0.333", "๐Ÿ’’": "0.500", "๐Ÿšค": "0.333", "๐Ÿ": "0.417", "๐Ÿ”š": "0.333", "๐ŸŽป": "0.333", "๐Ÿ”ท": "0.167", "๐Ÿšฆ": "0.083", "๐Ÿ”“": "0.083", "๐ŸŽฝ": "0.417", "๐Ÿ“…": "0.167", "๐ŸŽบ": "0.583", "๐Ÿˆ": "-0.333", "โœ‰": "0.250", "๐Ÿผ": "0.455", "๐Ÿ“€": "0.091", "๐Ÿš›": "-0.182", "๐Ÿ““": "0.182", "โ˜‰": "0.182", "๐Ÿ’ด": "-0.182", "๐Ÿƒ": "0.000", "โžฐ": "-0.091", "๐Ÿ”Œ": "-0.091", "๐Ÿ„": "0.000", "๐Ÿ“•": "0.182", "๐Ÿ“ฃ": "0.364", "๐Ÿš“": "0.273", "๐Ÿ—": "0.455", "โ†ช": "0.091", "โ›ณ": "0.636", "๐Ÿ‘ฑ": "0.100", "โณ": "0.000", "๐Ÿ’บ": "0.200", "๐Ÿ‡": "-0.100", "โ˜ป": "0.200", "๐Ÿ“ž": "0.400", "๐ŸŒ‰": "0.500", "๐Ÿšฉ": "-0.200", "โœŽ": "0.500", "๐Ÿ“ƒ": "0.400", "๐Ÿจ": "0.200", "๐Ÿ“Œ": "-0.400", "โ™Ž": "-0.100", "๐Ÿ’ท": "0.400", "๐Ÿš„": "0.500", "โ›ต": "0.500", "๐Ÿ”ธ": "0.200", "โŒ›": "0.100", "๐Ÿšœ": "0.700", "๐Ÿ†": "0.300", "๐Ÿ‘’": "0.200", "โ•": "0.200", "๐Ÿ”›": "0.400", "โ™ข": "0.300", "๐Ÿ‘": "0.333", "๐ŸŽ‹": "0.444", "๐Ÿ‘ฅ": "0.222", "๐Ÿ“ต": "0.111", "๐Ÿก": "0.222", "๐Ÿฏ": "0.111", "โ˜‚": "0.000", "๐Ÿ”ญ": "0.333", "๐ŸŽช": "0.222", "๐Ÿœ": "0.444", "โ™Œ": "0.556", "โ˜": "-0.667", "๐Ÿ‘ท": "0.222", "๐Ÿ”ˆ": "0.222", "๐Ÿ“„": "0.667", "๐Ÿ“": "0.111", "๐Ÿš": "0.556", "๐Ÿš”": "0.000", "๐ŸŒ‹": "0.444", "๐Ÿ“ก": "0.222", "โฉ": "0.111", "๐Ÿšณ": "0.667", "โ˜พ": "0.000", "๐Ÿ…ฐ": "0.222", "๐Ÿ“ฅ": "0.000", "๐Ÿ”ฆ": "0.000", "๐Ÿ‘ค": "0.500", "๐Ÿš": "0.125", "๐ŸŽ ": "0.375", "๐Ÿ": "-0.250", "๐Ÿ“—": "0.125", "โ˜ฎ": "0.000", "โ™‚": "0.125", "๐Ÿ“ฏ": "-0.125", "๐Ÿ”ฉ": "0.125", "๐Ÿ‘ข": "0.500", "๐Ÿ“ฐ": "0.250", "๐Ÿ“ถ": "0.250", "๐Ÿšฅ": "0.000", "๐ŸŒ„": "0.125", "๐Ÿ—พ": "0.250", "๐Ÿ”ถ": "0.250", "๐Ÿค": "0.250", "๐ŸŽฉ": "0.250", "โ“‚": "0.250", "๐Ÿ”ง": "-0.375", "๐Ÿ…": "0.125", "โ™ฎ": "0.125", "๐Ÿ…พ": "-0.125", "๐Ÿ”„": "0.000", "โ˜„": "0.000", "โ˜จ": "0.000" }; @@ -48,4 +47,4 @@ const emoji_object_regex = new RegExp((RegExpEscape(Object.keys(emojis).join(' ' const emoji_regex = new RegExp("([โœ€-โžฟ๎€€-๏ฃฟโ€‘-โ›ฟ]|๏ฟฝ๏ฟฝ|๏ฟฝ๏ฟฝ|๏ฟฝ๏ฟฝ)", 'g'); //console.log('emoji_regex: ', emoji_regex); -export { emoji_object_regex, emoji_regex, emoticon_regex, emoticons, emojis } \ No newline at end of file +export { emoji_object_regex, emoji_regex, emoticon_regex, emoticons, emojis } diff --git a/plugins/_experiments/sentiment/src/lib.js b/plugins/_experiments/sentiment/src/lib.js index 2f02e57a0..9f90635db 100644 --- a/plugins/_experiments/sentiment/src/lib.js +++ b/plugins/_experiments/sentiment/src/lib.js @@ -1,4 +1,3 @@ -/* eslint-disable */ import { intensifiers, negations } from './data/index.js' // HELPER FUNCTIONS @@ -12,7 +11,7 @@ import { intensifiers, negations } from './data/index.js' * @author Scott Cram * * @param {Array} inputArr - The array to be labeled -* +* * @returns {Object} labelReturnObj - Object consisting of labeling results, including: * @returns {Array} labelReturnObj.words - words from inputArr, less any exclamation marks * @returns {Array} labelReturnObj.labels - array of word types that act as labels for each element in labelReturnObj.words @@ -78,8 +77,8 @@ function labelWordArray(inputArr) { * @param {string} splitWord - The word at which split * * @returns {Array} splitPoints - Array of numbers that, when used in pairs for Array.splice(), cane be used to split the array so that only once occurence of splitWord appears -* -* +* +* */ function findArraySplitPoints(startingArr, splitWord) { @@ -119,7 +118,7 @@ function findArraySplitPoints(startingArr, splitWord) { * * @param {Array} wordsArr - Array of words to be chunked * @param {Array} labelsArr - Array of labels to be chunked -* +* * @returns {Object} chunks - Object consisting of chunking results, including: * @returns {Array} chunks.words - words from inputArr, less any exclamation marks * @returns {Array} chunks.labels - 2D array of word types @@ -139,11 +138,11 @@ function chunkArrays(wordsArr, labelsArr) { wordsArr2d.push(wordsArr.slice(wordLocs[index], wordLocs[index + 1])); labelsArr2d.push(labelsArr.slice(wordLocs[index], wordLocs[index + 1])); } - // Go through each subarray, and only keep + // Go through each subarray, and only keep // 1 closest preceeding negation, as well as // 1 closest preceeding intensifier - // Iterate through labelsArr2d to work with each subarray + // Iterate through labelsArr2d to work with each subarray labelsArr2d.forEach(function (element, index) { // Create array to hold location of a // single 'negation' (index 0), a @@ -170,18 +169,18 @@ function chunkArrays(wordsArr, labelsArr) { /** * Limit a value inside a certain range -* +* * * Original version: * @author w3resource -* @see {@link https://www.w3resource.com/javascript-exercises/JavaScript: Limit a value inside a certain range} +* @see {@link https://www.w3resource.com/javascript-exercises/JavaScript: Limit a value inside a certain range} * * @param {number} val - The value to be tested for range * @param {number} min - The minimum amount in the desired range * @param {number} max - The maximum amount in the desired range * * @returns {number} value - If the val input is within the range of min to max, val will be returned. If val is higher than max, then max will be returned. If val is lower than min, then min will be returned. -* +* */ function value_limit(val, min, max) { return val < min ? min : (val > max ? max : val); @@ -196,4 +195,4 @@ function averageArray(inputArr) { }, 0) / inputArr.length; } -export { labelWordArray, averageArray, value_limit, chunkArrays } \ No newline at end of file +export { labelWordArray, averageArray, value_limit, chunkArrays } diff --git a/plugins/dates/README.md b/plugins/dates/README.md index 96976f271..3df057032 100644 --- a/plugins/dates/README.md +++ b/plugins/dates/README.md @@ -7,7 +7,7 @@ - + @@ -215,6 +215,7 @@ const context = { punt: { weeks: 2 }, // the implied duration to use for 'after june 2nd' dayStart: '8:00am', dayEnd: '5:30pm', + dmy : false //assume british-format dates, when unclear } nlp('in two days').dates(context).get() @@ -299,7 +300,14 @@ As expected, _first monday of January_ will always be in January. ### _British/American ambiguity:_ -by default, we use the same interpretation of dates as javascript does - we assume `01/02/2020` is Jan 2nd, (US-version) but allow `13/01/2020` to be Jan 13th (UK-version). This should be possible to configure in the near future. +by default, we use the same interpretation of dates as javascript does - we assume `01/02/2020` is Jan 2nd, (US-version) but allow `13/01/2020` to be Jan 13th (UK-version). + +if you want to co-erce an interpretation of `02/03/1999`, you can set it with the `dmy:true` option: +```js +nlp('02/03/1999').dates().get() //February 3 +nlp('02/03/1999').dates({dmy:true}).get() // March 2 +``` +ISO dates, (like `1999-03-02`) are unaffected by the change. ### _Seasons:_ diff --git a/plugins/dates/builds/compromise-dates.cjs b/plugins/dates/builds/compromise-dates.cjs index 50bde1bf5..a5ecab1f1 100644 --- a/plugins/dates/builds/compromise-dates.cjs +++ b/plugins/dates/builds/compromise-dates.cjs @@ -83,7 +83,6 @@ dates = dates.not('and$'); return dates }; - var split$1 = split; const findDate = function (doc) { // if (doc.world.isVerbose() === 'date') { @@ -128,14 +127,13 @@ // 'one saturday' dates = dates.notIf('^one (#WeekDay|#Month)$'); // tokenize the dates - dates = split$1(dates); + dates = split(dates); // $5 an hour dates = dates.notIf('(#Money|#Percentage)'); dates = dates.notIf('^per #Duration'); return dates }; - var find$1 = findDate; const knownUnits = { second: true, @@ -216,7 +214,6 @@ m = doc.match('#DateShift+'); return { result, m } }; - var doShift = parseShift; /* a 'counter' is a Unit determined after a point @@ -268,7 +265,6 @@ return { result: null, m: doc.none() } }; - var doCounter = getCounter; const MSEC_IN_HOUR = 60 * 60 * 1000; @@ -276,7 +272,7 @@ const toUtc = (dstChange, offset, year) => { const [month, rest] = dstChange.split('/'); const [day, hour] = rest.split(':'); - return Date.UTC(year, month - 1, day, hour) - offset * MSEC_IN_HOUR + return Date.UTC(year, month - 1, day, hour) - (offset * MSEC_IN_HOUR) }; // compare epoch with dst change events (in utc) @@ -288,7 +284,7 @@ return epoch >= startUtc && epoch < endUtc }; - var inSummerTime$1 = inSummerTime; + /* eslint-disable no-console */ // this method avoids having to do a full dst-calculation on every operation // it reproduces some things in ./index.js, but speeds up spacetime considerably @@ -310,18 +306,17 @@ dec = jul - 1; } let split = obj.dst.split('->'); - let inSummer = inSummerTime$1(s.epoch, split[0], split[1], jul, dec); + let inSummer = inSummerTime(s.epoch, split[0], split[1], jul, dec); if (inSummer === true) { return jul } return dec }; - var quickOffset$1 = quickOffset; var data = { "9|s": "2/dili,2/jayapura", "9|n": "2/chita,2/khandyga,2/pyongyang,2/seoul,2/tokyo,2/yakutsk,11/palau,japan,rok", - "9.5|s|04/07:03->10/06:02": "4/adelaide,4/broken_hill,4/south,4/yancowinna", + "9.5|s|04/07:03->10/06:04": "4/adelaide,4/broken_hill,4/south,4/yancowinna", "9.5|s": "4/darwin,4/north", "8|s|03/13:01->10/02:00": "12/casey", "8|s": "2/kuala_lumpur,2/makassar,2/singapore,4/perth,2/ujung_pandang,4/west,singapore", @@ -340,66 +335,67 @@ "4|n": "2/baku,2/dubai,2/muscat,2/tbilisi,2/yerevan,8/astrakhan,8/samara,8/saratov,8/ulyanovsk,8/volgograd,9/mahe,9/mauritius,2/volgograd", "4.5|n": "2/kabul", "3|s": "12/syowa,9/antananarivo", - "3|n|04/26:00->10/31:24": "0/cairo,egypt", - "3|n|04/20:02->10/26:02": "2/gaza,2/hebron", - "3|n|03/31:03->10/27:04": "2/famagusta,2/nicosia,8/athens,8/bucharest,8/helsinki,8/kyiv,8/mariehamn,8/riga,8/sofia,8/tallinn,8/uzhgorod,8/vilnius,8/zaporozhye,8/nicosia,8/kiev,eet", - "3|n|03/31:02->10/27:03": "8/chisinau,8/tiraspol", - "3|n|03/31:00->10/26:24": "2/beirut", - "3|n|03/29:02->10/27:02": "2/jerusalem,2/tel_aviv,israel", + "3|n|04/26:02->10/31:24": "0/cairo,egypt", + "3|n|04/20:04->10/26:02": "2/gaza,2/hebron", + "3|n|03/31:05->10/27:04": "2/famagusta,2/nicosia,8/athens,8/bucharest,8/helsinki,8/kyiv,8/mariehamn,8/riga,8/sofia,8/tallinn,8/uzhgorod,8/vilnius,8/zaporozhye,8/nicosia,8/kiev,eet", + "3|n|03/31:04->10/27:03": "8/chisinau,8/tiraspol", + "3|n|03/31:02->10/26:24": "2/beirut", + "3|n|03/29:04->10/27:02": "2/jerusalem,2/tel_aviv,israel", "3|n": "0/addis_ababa,0/asmara,0/asmera,0/dar_es_salaam,0/djibouti,0/juba,0/kampala,0/mogadishu,0/nairobi,2/aden,2/amman,2/baghdad,2/bahrain,2/damascus,2/kuwait,2/qatar,2/riyadh,8/istanbul,8/kirov,8/minsk,8/moscow,8/simferopol,9/comoro,9/mayotte,2/istanbul,turkey,w-su", "3.5|n": "2/tehran,iran", - "2|s|03/31:02->10/27:02": "12/troll", + "2|s|03/31:04->10/27:02": "12/troll", "2|s": "0/gaborone,0/harare,0/johannesburg,0/lubumbashi,0/lusaka,0/maputo,0/maseru,0/mbabane", - "2|n|03/31:02->10/27:03": "0/ceuta,arctic/longyearbyen,8/amsterdam,8/andorra,8/belgrade,8/berlin,8/bratislava,8/brussels,8/budapest,8/busingen,8/copenhagen,8/gibraltar,8/ljubljana,8/luxembourg,8/madrid,8/malta,8/monaco,8/oslo,8/paris,8/podgorica,8/prague,8/rome,8/san_marino,8/sarajevo,8/skopje,8/stockholm,8/tirane,8/vaduz,8/vatican,8/vienna,8/warsaw,8/zagreb,8/zurich,3/jan_mayen,poland,cet,met", + "2|n|03/31:04->10/27:03": "0/ceuta,arctic/longyearbyen,8/amsterdam,8/andorra,8/belgrade,8/berlin,8/bratislava,8/brussels,8/budapest,8/busingen,8/copenhagen,8/gibraltar,8/ljubljana,8/luxembourg,8/madrid,8/malta,8/monaco,8/oslo,8/paris,8/podgorica,8/prague,8/rome,8/san_marino,8/sarajevo,8/skopje,8/stockholm,8/tirane,8/vaduz,8/vatican,8/vienna,8/warsaw,8/zagreb,8/zurich,3/jan_mayen,poland,cet,met", "2|n": "0/blantyre,0/bujumbura,0/khartoum,0/kigali,0/tripoli,8/kaliningrad,libya", "1|s": "0/brazzaville,0/kinshasa,0/luanda,0/windhoek", - "1|n|03/31:01->10/27:02": "3/canary,3/faroe,3/madeira,8/dublin,8/guernsey,8/isle_of_man,8/jersey,8/lisbon,8/london,3/faeroe,eire,8/belfast,gb-eire,gb,portugal,wet", + "1|n|03/31:03->10/27:02": "3/canary,3/faroe,3/madeira,8/dublin,8/guernsey,8/isle_of_man,8/jersey,8/lisbon,8/london,3/faeroe,eire,8/belfast,gb-eire,gb,portugal,wet", "1|n": "0/algiers,0/bangui,0/douala,0/lagos,0/libreville,0/malabo,0/ndjamena,0/niamey,0/porto-novo,0/tunis", "14|n": "11/kiritimati", "13|s": "11/apia,11/tongatapu", "13|n": "11/enderbury,11/kanton,11/fakaofo", - "12|s|04/07:03->09/29:02": "12/mcmurdo,11/auckland,12/south_pole,nz", + "12|s|04/07:03->09/29:04": "12/mcmurdo,11/auckland,12/south_pole,nz", "12|s": "11/fiji", "12|n": "2/anadyr,2/kamchatka,2/srednekolymsk,11/funafuti,11/kwajalein,11/majuro,11/nauru,11/tarawa,11/wake,11/wallis,kwajalein", "12.75|s|04/07:03->04/07:02": "11/chatham,nz-chat", - "11|s|04/07:03->10/06:02": "12/macquarie", + "11|s|04/07:03->10/06:04": "12/macquarie", "11|s": "11/bougainville", "11|n": "2/magadan,2/sakhalin,11/efate,11/guadalcanal,11/kosrae,11/noumea,11/pohnpei,11/ponape", - "11.5|n|04/07:03->10/06:02": "11/norfolk", - "10|s|04/07:03->10/06:02": "4/currie,4/hobart,4/melbourne,4/sydney,4/act,4/canberra,4/nsw,4/tasmania,4/victoria", + "11.5|n|04/07:03->10/06:04": "11/norfolk", + "10|s|04/07:03->10/06:04": "4/currie,4/hobart,4/melbourne,4/sydney,4/act,4/canberra,4/nsw,4/tasmania,4/victoria", "10|s": "12/dumontdurville,4/brisbane,4/lindeman,11/port_moresby,4/queensland", "10|n": "2/ust-nera,2/vladivostok,11/guam,11/saipan,11/chuuk,11/truk,11/yap", "10.5|s|04/07:01->10/06:02": "4/lord_howe,4/lhi", - "0|s|03/10:03->04/14:02": "0/casablanca,0/el_aaiun", - "0|n|03/31:00->10/27:01": "1/scoresbysund,3/azores", + "0|s|03/10:03->04/14:04": "0/casablanca,0/el_aaiun", + "0|n|03/31:02->10/27:01": "3/azores", + "0|n|03/31:01->10/26:24": "1/scoresbysund", "0|n": "0/abidjan,0/accra,0/bamako,0/banjul,0/bissau,0/conakry,0/dakar,0/freetown,0/lome,0/monrovia,0/nouakchott,0/ouagadougou,0/sao_tome,1/danmarkshavn,3/reykjavik,3/st_helena,13/gmt,13/utc,0/timbuktu,13/greenwich,13/uct,13/universal,13/zulu,gmt-0,gmt+0,gmt0,greenwich,iceland,uct,universal,utc,zulu,13/unknown,factory", - "-9|n|03/10:02->11/03:02": "1/adak,1/atka,us/aleutian", + "-9|n|03/10:04->11/03:02": "1/adak,1/atka,us/aleutian", "-9|n": "11/gambier", "-9.5|n": "11/marquesas", - "-8|n|03/10:02->11/03:02": "1/anchorage,1/juneau,1/metlakatla,1/nome,1/sitka,1/yakutat,us/alaska", + "-8|n|03/10:04->11/03:02": "1/anchorage,1/juneau,1/metlakatla,1/nome,1/sitka,1/yakutat,us/alaska", "-8|n": "11/pitcairn", - "-7|n|03/10:02->11/03:02": "1/los_angeles,1/santa_isabel,1/tijuana,1/vancouver,1/ensenada,6/pacific,10/bajanorte,us/pacific-new,us/pacific", + "-7|n|03/10:04->11/03:02": "1/los_angeles,1/santa_isabel,1/tijuana,1/vancouver,1/ensenada,6/pacific,10/bajanorte,us/pacific-new,us/pacific", "-7|n": "1/creston,1/dawson,1/dawson_creek,1/fort_nelson,1/hermosillo,1/mazatlan,1/phoenix,1/whitehorse,6/yukon,10/bajasur,us/arizona,mst", - "-6|s|04/06:22->09/07:22": "11/easter,7/easterisland", + "-6|s|04/06:22->09/07:24": "11/easter,7/easterisland", "-6|n|04/07:02->10/27:02": "1/merida", - "-6|n|03/10:02->11/03:02": "1/boise,1/cambridge_bay,1/denver,1/edmonton,1/inuvik,1/north_dakota,1/ojinaga,1/ciudad_juarez,1/yellowknife,1/shiprock,6/mountain,navajo,us/mountain", + "-6|n|03/10:04->11/03:02": "1/boise,1/cambridge_bay,1/denver,1/edmonton,1/inuvik,1/north_dakota,1/ojinaga,1/ciudad_juarez,1/yellowknife,1/shiprock,6/mountain,navajo,us/mountain", "-6|n": "1/bahia_banderas,1/belize,1/chihuahua,1/costa_rica,1/el_salvador,1/guatemala,1/managua,1/mexico_city,1/monterrey,1/regina,1/swift_current,1/tegucigalpa,11/galapagos,6/east-saskatchewan,6/saskatchewan,10/general", "-5|s": "1/lima,1/rio_branco,1/porto_acre,5/acre", - "-5|n|03/10:02->11/03:02": "1/chicago,1/matamoros,1/menominee,1/rainy_river,1/rankin_inlet,1/resolute,1/winnipeg,1/indiana/knox,1/indiana/tell_city,1/north_dakota/beulah,1/north_dakota/center,1/north_dakota/new_salem,1/knox_in,6/central,us/central,us/indiana-starke", + "-5|n|03/10:04->11/03:02": "1/chicago,1/matamoros,1/menominee,1/rainy_river,1/rankin_inlet,1/resolute,1/winnipeg,1/indiana/knox,1/indiana/tell_city,1/north_dakota/beulah,1/north_dakota/center,1/north_dakota/new_salem,1/knox_in,6/central,us/central,us/indiana-starke", "-5|n": "1/bogota,1/cancun,1/cayman,1/coral_harbour,1/eirunepe,1/guayaquil,1/jamaica,1/panama,1/atikokan,jamaica,est", - "-4|s|04/06:24->09/08:00": "1/santiago,7/continental", - "-4|s|03/23:24->10/06:00": "1/asuncion", + "-4|s|04/06:24->09/08:02": "1/santiago,7/continental", + "-4|s|03/23:24->10/06:02": "1/asuncion", "-4|s": "1/campo_grande,1/cuiaba,1/la_paz,1/manaus,5/west", - "-4|n|03/10:02->11/03:02": "1/detroit,1/grand_turk,1/indiana,1/indianapolis,1/iqaluit,1/kentucky,1/louisville,1/montreal,1/nassau,1/new_york,1/nipigon,1/pangnirtung,1/port-au-prince,1/thunder_bay,1/toronto,1/indiana/marengo,1/indiana/petersburg,1/indiana/vevay,1/indiana/vincennes,1/indiana/winamac,1/kentucky/monticello,1/fort_wayne,1/indiana/indianapolis,1/kentucky/louisville,6/eastern,us/east-indiana,us/eastern,us/michigan", - "-4|n|03/10:00->11/03:01": "1/havana,cuba", + "-4|n|03/10:04->11/03:02": "1/detroit,1/grand_turk,1/indiana,1/indianapolis,1/iqaluit,1/kentucky,1/louisville,1/montreal,1/nassau,1/new_york,1/nipigon,1/pangnirtung,1/port-au-prince,1/thunder_bay,1/toronto,1/indiana/marengo,1/indiana/petersburg,1/indiana/vevay,1/indiana/vincennes,1/indiana/winamac,1/kentucky/monticello,1/fort_wayne,1/indiana/indianapolis,1/kentucky/louisville,6/eastern,us/east-indiana,us/eastern,us/michigan", + "-4|n|03/10:02->11/03:01": "1/havana,cuba", "-4|n": "1/anguilla,1/antigua,1/aruba,1/barbados,1/blanc-sablon,1/boa_vista,1/caracas,1/curacao,1/dominica,1/grenada,1/guadeloupe,1/guyana,1/kralendijk,1/lower_princes,1/marigot,1/martinique,1/montserrat,1/port_of_spain,1/porto_velho,1/puerto_rico,1/santo_domingo,1/st_barthelemy,1/st_kitts,1/st_lucia,1/st_thomas,1/st_vincent,1/tortola,1/virgin", "-3|s": "1/argentina,1/buenos_aires,1/catamarca,1/cordoba,1/fortaleza,1/jujuy,1/mendoza,1/montevideo,1/punta_arenas,1/sao_paulo,12/palmer,12/rothera,3/stanley,1/argentina/la_rioja,1/argentina/rio_gallegos,1/argentina/salta,1/argentina/san_juan,1/argentina/san_luis,1/argentina/tucuman,1/argentina/ushuaia,1/argentina/comodrivadavia,1/argentina/buenos_aires,1/argentina/catamarca,1/argentina/cordoba,1/argentina/jujuy,1/argentina/mendoza,1/argentina/rosario,1/rosario,5/east", - "-3|n|03/10:02->11/03:02": "1/glace_bay,1/goose_bay,1/halifax,1/moncton,1/thule,3/bermuda,6/atlantic", + "-3|n|03/10:04->11/03:02": "1/glace_bay,1/goose_bay,1/halifax,1/moncton,1/thule,3/bermuda,6/atlantic", "-3|n": "1/araguaina,1/bahia,1/belem,1/cayenne,1/maceio,1/paramaribo,1/recife,1/santarem", - "-2|n|03/30:22->10/26:23": "1/nuuk,1/godthab", - "-2|n|03/10:02->11/03:02": "1/miquelon", + "-2|n|03/31:01->10/26:24": "1/nuuk,1/godthab", + "-2|n|03/10:04->11/03:02": "1/miquelon", "-2|n": "1/noronha,3/south_georgia,5/denoronha", - "-2.5|n|03/10:02->11/03:02": "1/st_johns,6/newfoundland", + "-2.5|n|03/10:04->11/03:02": "1/st_johns,6/newfoundland", "-1|n": "3/cape_verde", "-11|n": "11/midway,11/niue,11/pago_pago,11/samoa,us/samoa", "-10|n": "11/honolulu,11/johnston,11/rarotonga,11/tahiti,us/hawaii,hst" @@ -466,8 +462,6 @@ }; } - var zones$1 = all; - //find the implicit iana code for this machine. //safely query the Intl object //based on - https://bitbucket.org/pellepim/jstimezonedetect/src @@ -496,11 +490,9 @@ } return timezone }; - //do it once per computer - var guessTz$1 = guessTz; - const isOffset$1 = /(\-?[0-9]+)h(rs)?/i; - const isNumber$1 = /(\-?[0-9]+)/; + const isOffset$1 = /(-?[0-9]+)h(rs)?/i; + const isNumber$1 = /(-?[0-9]+)/; const utcOffset$1 = /utc([\-+]?[0-9]+)/i; const gmtOffset$1 = /gmt([\-+]?[0-9]+)/i; @@ -514,7 +506,7 @@ return null }; - const parseOffset$3 = function (tz) { + const parseOffset$2 = function (tz) { // '+5hrs' let m = tz.match(isOffset$1); if (m !== null) { @@ -538,12 +530,14 @@ } return null }; - var parseOffset$4 = parseOffset$3; - let local = guessTz$1(); + /* eslint-disable no-console */ + + + let local = guessTz(); //add all the city names by themselves - const cities = Object.keys(zones$1).reduce((h, k) => { + const cities = Object.keys(all).reduce((h, k) => { let city = k.split('/')[1] || ''; city = city.replace(/_/g, ' '); h[city] = k; @@ -551,13 +545,13 @@ }, {}); //try to match these against iana form - const normalize$7 = (tz) => { + const normalize$4 = (tz) => { tz = tz.replace(/ time/g, ''); tz = tz.replace(/ (standard|daylight|summer)/g, ''); tz = tz.replace(/\b(east|west|north|south)ern/g, '$1'); tz = tz.replace(/\b(africa|america|australia)n/g, '$1'); tz = tz.replace(/\beuropean/g, 'europe'); - tz = tz.replace(/\islands/g, 'island'); + tz = tz.replace(/islands/g, 'island'); return tz }; @@ -585,7 +579,7 @@ return tz } //lookup more loosely.. - tz = normalize$7(tz); + tz = normalize$4(tz); if (zones.hasOwnProperty(tz) === true) { return tz } @@ -595,7 +589,7 @@ } // //try to parse '-5h' if (/[0-9]/.test(tz) === true) { - let id = parseOffset$4(tz); + let id = parseOffset$2(tz); if (id) { return id } @@ -605,7 +599,6 @@ "Spacetime: Cannot find timezone named: '" + str + "'. Please enter an IANA timezone id." ) }; - var findTz = lookupTz; //git:blame @JuliasCaesar https://www.timeanddate.com/date/leapyear.html function isLeapYear(year) { return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0 } @@ -651,7 +644,7 @@ } //used mostly for cleanup of unit names, like 'months' - function normalize$6(str = '') { + function normalize$3(str = '') { str = str.toLowerCase().trim(); str = str.replace(/ies$/, 'y'); //'centuries' str = str.replace(/s$/, ''); @@ -696,6 +689,7 @@ return `${sign}${hours}${delimiter}${minutes}` } + /* eslint-disable no-console */ const defaults$1 = { year: new Date().getFullYear(), month: 0, @@ -806,10 +800,9 @@ } }; dates$4['new years eve'] = dates$4['new years']; - var namedDates = dates$4; //little cleanup.. - const normalize$4 = function (str) { + const normalize$2 = function (str) { // remove all day-names str = str.replace(/\b(mon|tues?|wed|wednes|thur?s?|fri|sat|satur|sun)(day)?\b/i, ''); //remove ordinal ending @@ -819,8 +812,6 @@ return str }; - var normalize$5 = normalize$4; - let o = { millisecond: 1 }; @@ -836,7 +827,8 @@ Object.keys(o).forEach(k => { o[k + 's'] = o[k]; }); - var ms = o; + + /* eslint-disable no-console */ //basically, step-forward/backward until js Date object says we're there. const walk = (s, n, fn, unit, previous) => { @@ -848,14 +840,14 @@ let original = s.epoch; //try to get it as close as we can let diff = n - current; - s.epoch += ms[unit] * diff; + s.epoch += o[unit] * diff; //DST edge-case: if we are going many days, be a little conservative // console.log(unit, diff) if (unit === 'day') { // s.epoch -= ms.minute //but don't push it over a month if (Math.abs(diff) > 28 && n < 28) { - s.epoch += ms.hour; + s.epoch += o.hour; } } // 1st time: oops, did we change previous unit? revert it. @@ -866,7 +858,7 @@ } //repair it if we've gone too far or something //(go by half-steps, just in case) - const halfStep = ms[unit] / 2; + const halfStep = o[unit] / 2; while (s.d[fn]() < n) { s.epoch += halfStep; } @@ -898,17 +890,17 @@ } //try to get it as close as we can.. let diff = n - current; - s.epoch += ms.day * (diff * 28); //special case + s.epoch += o.day * (diff * 28); //special case //oops, did we change the year? revert it. if (startUnit !== s.d.getFullYear()) { s.epoch = original; } //increment by day while (s.d.getMonth() < n) { - s.epoch += ms.day; + s.epoch += o.day; } while (s.d.getMonth() > n) { - s.epoch -= ms.day; + s.epoch -= o.day; } } }, @@ -965,8 +957,6 @@ return }; - var walkTo$1 = walkTo; - const monthLengths = [ 31, // January - 31 days 28, // February - 28 days in a common year and 29 days in leap years @@ -981,7 +971,6 @@ 30, // November - 30 days 31 // December - 31 days ]; - var monthLength = monthLengths; // 28 - feb // 30 - april, june, sept, nov @@ -1048,7 +1037,7 @@ let num = 0; // for (+-)hh:mm - if (/^[\+-]?[0-9]{2}:[0-9]{2}$/.test(offset)) { + if (/^[+-]?[0-9]{2}:[0-9]{2}$/.test(offset)) { //support "+01:00" if (/:00/.test(offset) === true) { offset = offset.replace(/:00/, ''); @@ -1060,7 +1049,7 @@ } // for (+-)hhmm - if (/^[\+-]?[0-9]{4}$/.test(offset)) { + if (/^[+-]?[0-9]{4}$/.test(offset)) { offset = offset.replace(/30$/, '.5'); } num = parseFloat(offset); @@ -1092,7 +1081,6 @@ } return s }; - var parseOffset$2 = parseOffset$1; // truncate any sub-millisecond values const parseMs = function (str = '') { @@ -1112,11 +1100,11 @@ return Number(str) || 0 }; - const parseTime$2 = (s, str = '') => { + const parseTime$1 = (s, str = '') => { // remove all whitespace str = str.replace(/^\s+/, '').toLowerCase(); //formal time format - 04:30.23 - let arr = str.match(/([0-9]{1,2}):([0-9]{1,2}):?([0-9]{1,2})?[:\.]?([0-9]{1,4})?/); + let arr = str.match(/([0-9]{1,2}):([0-9]{1,2}):?([0-9]{1,2})?[:.]?([0-9]{1,4})?/); if (arr !== null) { let [, h, m, sec, ms] = arr; //validate it a little @@ -1133,7 +1121,7 @@ s = s.seconds(sec || 0); s = s.millisecond(parseMs(ms)); //parse-out am/pm - let ampm = str.match(/[\b0-9] ?(am|pm)\b/); + let ampm = str.match(/[0-9] ?(am|pm)\b/); if (ampm !== null && ampm[1]) { s = s.ampm(ampm[1]); } @@ -1158,14 +1146,13 @@ s = s.startOf('day'); return s }; - var parseTime$3 = parseTime$2; let months$1 = mapping$3(); //given a month, return whether day number exists in it const validate$1 = (obj) => { //invalid values - if (monthLength.hasOwnProperty(obj.month) !== true) { + if (monthLengths.hasOwnProperty(obj.month) !== true) { return false } //support leap-year in february @@ -1177,7 +1164,7 @@ } } //is this date too-big for this month? - let max = monthLength[obj.month] || 0; + let max = monthLengths[obj.month] || 0; if (obj.date <= max) { return true } @@ -1218,7 +1205,7 @@ // ===== //iso-this 1998-05-30T22:00:00:000Z, iso-that 2017-04-03T08:00:00-0700 { - reg: /^(\-?0?0?[0-9]{3,4})-([0-9]{1,2})-([0-9]{1,2})[T| ]([0-9.:]+)(Z|[0-9\-\+:]+)?$/i, + reg: /^(-?0{0,2}[0-9]{3,4})-([0-9]{1,2})-([0-9]{1,2})[T| ]([0-9.:]+)(Z|[0-9-+:]+)?$/i, parse: (s, m) => { let obj = { year: m[1], @@ -1229,15 +1216,15 @@ s.epoch = null; return s } - parseOffset$2(s, m[5]); - walkTo$1(s, obj); - s = parseTime$3(s, m[4]); + parseOffset$1(s, m[5]); + walkTo(s, obj); + s = parseTime$1(s, m[4]); return s } }, //short-iso "2015-03-25" or "2015/03/25" or "2015/03/25 12:26:14 PM" { - reg: /^([0-9]{4})[\-\/\. ]([0-9]{1,2})[\-\/\. ]([0-9]{1,2})( [0-9]{1,2}(:[0-9]{0,2})?(:[0-9]{0,3})? ?(am|pm)?)?$/i, + reg: /^([0-9]{4})[\-/. ]([0-9]{1,2})[\-/. ]([0-9]{1,2})( [0-9]{1,2}(:[0-9]{0,2})?(:[0-9]{0,3})? ?(am|pm)?)?$/i, parse: (s, m) => { let obj = { year: m[1], @@ -1253,15 +1240,15 @@ s.epoch = null; return s } - walkTo$1(s, obj); - s = parseTime$3(s, m[4]); + walkTo(s, obj); + s = parseTime$1(s, m[4]); return s } }, //text-month "2015-feb-25" { - reg: /^([0-9]{4})[\-\/\. ]([a-z]+)[\-\/\. ]([0-9]{1,2})( [0-9]{1,2}(:[0-9]{0,2})?(:[0-9]{0,3})? ?(am|pm)?)?$/i, + reg: /^([0-9]{4})[\-/. ]([a-z]+)[\-/. ]([0-9]{1,2})( [0-9]{1,2}(:[0-9]{0,2})?(:[0-9]{0,3})? ?(am|pm)?)?$/i, parse: (s, m) => { let obj = { year: parseYear(m[1], s._today), @@ -1272,8 +1259,8 @@ s.epoch = null; return s } - walkTo$1(s, obj); - s = parseTime$3(s, m[4]); + walkTo(s, obj); + s = parseTime$1(s, m[4]); return s } } @@ -1285,7 +1272,7 @@ // ===== //mm/dd/yyyy - uk/canada "6/28/2019, 12:26:14 PM" { - reg: /^([0-9]{1,2})[\-\/.]([0-9]{1,2})[\-\/.]?([0-9]{4})?( [0-9]{1,2}:[0-9]{2}:?[0-9]{0,2}? ?(am|pm|gmt))?$/i, + reg: /^([0-9]{1,2})[-/.]([0-9]{1,2})[\-/.]?([0-9]{4})?( [0-9]{1,2}:[0-9]{2}:?[0-9]{0,2} ?(am|pm|gmt))?$/i, parse: (s, arr) => { let month = parseInt(arr[1], 10) - 1; let date = parseInt(arr[2], 10); @@ -1303,14 +1290,14 @@ s.epoch = null; return s } - walkTo$1(s, obj); - s = parseTime$3(s, arr[4]); + walkTo(s, obj); + s = parseTime$1(s, arr[4]); return s } }, //alt short format - "feb-25-2015" { - reg: /^([a-z]+)[\-\/\. ]([0-9]{1,2})[\-\/\. ]?([0-9]{4}|'[0-9]{2})?( [0-9]{1,2}(:[0-9]{0,2})?(:[0-9]{0,3})? ?(am|pm)?)?$/i, + reg: /^([a-z]+)[\-/. ]([0-9]{1,2})[\-/. ]?([0-9]{4}|'[0-9]{2})?( [0-9]{1,2}(:[0-9]{0,2})?(:[0-9]{0,3})? ?(am|pm)?)?$/i, parse: (s, arr) => { let obj = { year: parseYear(arr[3], s._today), @@ -1321,8 +1308,8 @@ s.epoch = null; return s } - walkTo$1(s, obj); - s = parseTime$3(s, arr[4]); + walkTo(s, obj); + s = parseTime$1(s, arr[4]); return s } }, @@ -1341,8 +1328,8 @@ s.epoch = null; return s } - walkTo$1(s, obj); - s = parseTime$3(s, arr[4]); + walkTo(s, obj); + s = parseTime$1(s, arr[4]); return s } }, @@ -1360,9 +1347,9 @@ s.epoch = null; return s } - walkTo$1(s, obj); - s = parseOffset$2(s, tz); - s = parseTime$3(s, time); + walkTo(s, obj); + s = parseOffset$1(s, tz); + s = parseTime$1(s, time); return s } } @@ -1374,7 +1361,7 @@ // ===== //common british format - "25-feb-2015" { - reg: /^([0-9]{1,2})[\-\/]([a-z]+)[\-\/]?([0-9]{4})?$/i, + reg: /^([0-9]{1,2})[-/]([a-z]+)[\-/]?([0-9]{4})?$/i, parse: (s, m) => { let obj = { year: parseYear(m[3], s._today), @@ -1385,14 +1372,14 @@ s.epoch = null; return s } - walkTo$1(s, obj); - s = parseTime$3(s, m[4]); + walkTo(s, obj); + s = parseTime$1(s, m[4]); return s } }, // "25 Mar 2015" { - reg: /^([0-9]{1,2})( [a-z]+)( [0-9]{4}| '[0-9]{2})? ?([0-9]{1,2}:[0-9]{2}:?[0-9]{0,2}? ?(am|pm|gmt))?$/i, + reg: /^([0-9]{1,2})( [a-z]+)( [0-9]{4}| '[0-9]{2})? ?([0-9]{1,2}:[0-9]{2}:?[0-9]{0,2} ?(am|pm|gmt))?$/i, parse: (s, m) => { let obj = { year: parseYear(m[3], s._today), @@ -1403,14 +1390,14 @@ s.epoch = null; return s } - walkTo$1(s, obj); - s = parseTime$3(s, m[4]); + walkTo(s, obj); + s = parseTime$1(s, m[4]); return s } }, // 01-jan-2020 { - reg: /^([0-9]{1,2})[\. -/]([a-z]+)[\. -/]([0-9]{4})?( [0-9]{1,2}(:[0-9]{0,2})?(:[0-9]{0,3})? ?(am|pm)?)?$/i, + reg: /^([0-9]{1,2})[. \-/]([a-z]+)[. \-/]([0-9]{4})?( [0-9]{1,2}(:[0-9]{0,2})?(:[0-9]{0,3})? ?(am|pm)?)?$/i, parse: (s, m) => { let obj = { date: Number(m[1]), @@ -1421,9 +1408,9 @@ s.epoch = null; return s } - walkTo$1(s, obj); + walkTo(s, obj); s = s.startOf('day'); - s = parseTime$3(s, m[4]); + s = parseTime$1(s, m[4]); return s } } @@ -1436,7 +1423,7 @@ // '2012-06' month-only { - reg: /^([0-9]{4})[\-\/]([0-9]{2})$/i, + reg: /^([0-9]{4})[\-/]([0-9]{2})$/, parse: (s, m) => { let obj = { year: m[1], @@ -1447,8 +1434,8 @@ s.epoch = null; return s } - walkTo$1(s, obj); - s = parseTime$3(s, m[4]); + walkTo(s, obj); + s = parseTime$1(s, m[4]); return s } }, @@ -1466,8 +1453,8 @@ s.epoch = null; return s } - walkTo$1(s, obj); - s = parseTime$3(s, arr[4]); + walkTo(s, obj); + s = parseTime$1(s, arr[4]); return s } }, @@ -1517,8 +1504,8 @@ s.epoch = null; return s } - walkTo$1(s, obj); - s = parseTime$3(s); + walkTo(s, obj); + s = parseTime$1(s); return s } }, @@ -1539,8 +1526,8 @@ s.epoch = null; return s } - walkTo$1(s, obj); - s = parseTime$3(s); + walkTo(s, obj); + s = parseTime$1(s); return s } }, @@ -1563,8 +1550,8 @@ s.epoch = null; return s } - walkTo$1(s, obj); - s = parseTime$3(s); + walkTo(s, obj); + s = parseTime$1(s); return s } } @@ -1572,6 +1559,8 @@ var parsers = [].concat(ymd, mdy, dmy, misc); + /* eslint-disable no-console */ + const parseString = function (s, input, givenTz) { // let parsers = s.parsers || [] //try each text-parse template, use the first good result @@ -1590,7 +1579,6 @@ s.epoch = null; return s }; - var parseString$1 = parseString; const { parseArray, parseObject, parseNumber } = fns; //we have to actually parse these inputs ourselves @@ -1654,16 +1642,15 @@ return s } //little cleanup.. - input = normalize$5(input); + input = normalize$2(input); //try some known-words, like 'now' - if (namedDates.hasOwnProperty(input) === true) { - s = namedDates[input](s); + if (dates$4.hasOwnProperty(input) === true) { + s = dates$4[input](s); return s } //try each text-parse template, use the first good result - return parseString$1(s, input) + return parseString(s, input) }; - var handleInput = parseInput; let shortDays = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat']; let longDays = ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday']; @@ -1707,8 +1694,6 @@ return !offset ? 'Z' : formatTimezone(offset, ':') }; - var isoOffset$1 = isoOffset; - const applyCaseFormat = (str) => { if (useTitleCase()) { return titleCase$1(str) @@ -1794,7 +1779,7 @@ era: (s) => s.era(), json: (s) => s.json(), timezone: (s) => s.timezone().name, - offset: (s) => isoOffset$1(s), + offset: (s) => isoOffset(s), numeric: (s) => `${s.year()}/${zeroPad(s.month() + 1)}/${zeroPad(s.date())}`, // yyyy/mm/dd 'numeric-us': (s) => `${zeroPad(s.month() + 1)}/${zeroPad(s.date())}/${s.year()}`, // mm/dd/yyyy @@ -1810,7 +1795,7 @@ let minute = zeroPad(s.minute()); let second = zeroPad(s.second()); let ms = zeroPad(s.millisecond(), 3); - let offset = isoOffset$1(s); + let offset = isoOffset(s); return `${year}-${month}-${date}T${hour}:${minute}:${second}.${ms}${offset}` //2018-03-09T08:50:00.000-05:00 }, 'iso-short': (s) => { @@ -1903,7 +1888,6 @@ return s.format('iso-short') }; - var format$1 = printFormat; //parse this insane unix-time-templating thing, from the 19th century //http://unicode.org/reports/tr35/tr35-25.html#Date_Format_Patterns @@ -2074,7 +2058,7 @@ txt += mapping$2[c](s) || ''; } else { // 'unescape' - if (/^'.{1,}'$/.test(c)) { + if (/^'.+'$/.test(c)) { c = c.replace(/'/g, ''); } txt += c; @@ -2082,7 +2066,6 @@ return txt }, '') }; - var unixFmt$1 = unixFmt; const units$4 = ['year', 'season', 'quarter', 'month', 'week', 'day', 'quarterHour', 'hour', 'minute']; @@ -2097,7 +2080,7 @@ //how far it is along, from 0-1 const progress = (s, unit) => { if (unit) { - unit = normalize$6(unit); + unit = normalize$3(unit); return doUnit(s, unit) } let obj = {}; @@ -2107,13 +2090,13 @@ return obj }; - var progress$1 = progress; + /* eslint-disable no-console */ //round to either current, or +1 of this unit const nearest = (s, unit) => { //how far have we gone? let prog = s.progress(); - unit = normalize$6(unit); + unit = normalize$3(unit); //fix camel-case for this one if (unit === 'quarterhour') { unit = 'quarterHour'; @@ -2130,7 +2113,6 @@ } return s }; - var nearest$1 = nearest; //increment until dates are the same const climb = (a, b, unit) => { @@ -2158,8 +2140,6 @@ } }; - var diffOne$1 = diffOne; - // don't do anything too fancy here. // 2020 - 2019 may be 1 year, or 0 years // - '1 year difference' means 366 days during a leap year @@ -2176,7 +2156,7 @@ // use a waterfall-method for computing a diff of any 'pre-knowable' units // compute years, then compute months, etc.. // ... then ms-math for any very-small units - const diff$1 = function (a, b) { + const diff = function (a, b) { // an hour is always the same # of milliseconds // so these units can be 'pre-calculated' let msDiff = b.epoch - a.epoch; @@ -2195,7 +2175,7 @@ //there's always 12 months in a year... obj.months = obj.years * 12; tmp = a.add(obj.months, 'month'); - obj.months += diffOne$1(tmp, b, 'month'); + obj.months += diffOne(tmp, b, 'month'); // there's always 4 quarters in a year... obj.quarters = obj.years * 4; @@ -2205,16 +2185,15 @@ // (month * 4) isn't as close obj.weeks = obj.years * 52; tmp = a.add(obj.weeks, 'week'); - obj.weeks += diffOne$1(tmp, b, 'week'); + obj.weeks += diffOne(tmp, b, 'week'); // there's always atleast 7 days in a week obj.days = obj.weeks * 7; tmp = a.add(obj.days, 'day'); - obj.days += diffOne$1(tmp, b, 'day'); + obj.days += diffOne(tmp, b, 'day'); return obj }; - var waterfall = diff$1; const reverseDiff = function (obj) { Object.keys(obj).forEach((k) => { @@ -2237,14 +2216,14 @@ reversed = true; } //compute them all (i know!) - let obj = waterfall(a, b); + let obj = diff(a, b); if (reversed) { obj = reverseDiff(obj); } //return just the requested unit if (unit) { //make sure it's plural-form - unit = normalize$6(unit); + unit = normalize$3(unit); if (/s$/.test(unit) !== true) { unit += 's'; } @@ -2256,8 +2235,6 @@ return obj }; - var diff = main$1; - /* ISO 8601 duration format // https://en.wikipedia.org/wiki/ISO_8601#Durations @@ -2285,7 +2262,6 @@ iso += fmt$1(diff.seconds) + 'S'; return iso }; - var toISO$1 = toISO; //get number of hours/minutes... between the two dates function getDiff(a, b) { @@ -2433,7 +2409,8 @@ const englishValue = pluralize(value, unit); englishValues.push(englishValue); if (!rounded) { - rounded = qualified = englishValue; + rounded = englishValue; + qualified = englishValue; if (i > 4) { return } @@ -2451,7 +2428,6 @@ return { qualified, rounded, abbreviated, englishValues } }; - var soften = toSoft; //by spencermountain + Shaun Grady @@ -2474,7 +2450,7 @@ let precise; let direction = futureString(); - let { rounded, qualified, englishValues, abbreviated } = soften(diff); + let { rounded, qualified, englishValues, abbreviated } = toSoft(diff); //make them into a string precise = englishValues.splice(0, 2).join(', '); @@ -2491,7 +2467,7 @@ } // https://en.wikipedia.org/wiki/ISO_8601#Durations // P[n]Y[n]M[n]DT[n]H[n]M[n]S - let iso = toISO$1(diff); + let iso = toISO(diff); return { diff, rounded, @@ -2503,8 +2479,6 @@ } }; - var since$1 = since; - //https://www.timeanddate.com/calendar/aboutseasons.html // Spring - from March 1 to May 31; // Summer - from June 1 to August 31; @@ -2537,13 +2511,13 @@ const units$2 = { second: (s) => { - walkTo$1(s, { + walkTo(s, { millisecond: 0 }); return s }, minute: (s) => { - walkTo$1(s, { + walkTo(s, { second: 0, millisecond: 0 }); @@ -2560,14 +2534,14 @@ } else { s = s.minutes(0); } - walkTo$1(s, { + walkTo(s, { second: 0, millisecond: 0 }); return s }, hour: (s) => { - walkTo$1(s, { + walkTo(s, { minute: 0, second: 0, millisecond: 0 @@ -2575,7 +2549,7 @@ return s }, day: (s) => { - walkTo$1(s, { + walkTo(s, { hour: 0, minute: 0, second: 0, @@ -2589,7 +2563,7 @@ if (s.isAfter(original)) { s = s.subtract(1, 'week'); } - walkTo$1(s, { + walkTo(s, { hour: 0, minute: 0, second: 0, @@ -2598,7 +2572,7 @@ return s }, month: (s) => { - walkTo$1(s, { + walkTo(s, { date: 1, hour: 0, minute: 0, @@ -2610,7 +2584,7 @@ quarter: (s) => { let q = s.quarter(); if (quarters[q]) { - walkTo$1(s, { + walkTo(s, { month: quarters[q][0], date: quarters[q][1], hour: 0, @@ -2634,7 +2608,7 @@ if (current === 'winter' && s.month() < 3) { year -= 1; } - walkTo$1(s, { + walkTo(s, { year, month: seasons$1[hem][i][1], date: seasons$1[hem][i][2], @@ -2649,7 +2623,7 @@ return s }, year: (s) => { - walkTo$1(s, { + walkTo(s, { month: 0, date: 1, hour: 0, @@ -2679,7 +2653,7 @@ const startOf = (a, unit) => { let s = a.clone(); - unit = normalize$6(unit); + unit = normalize$3(unit); if (units$2[unit]) { return units$2[unit](s) } @@ -2693,7 +2667,7 @@ //piggy-backs off startOf const endOf = (a, unit) => { let s = a.clone(); - unit = normalize$6(unit); + unit = normalize$3(unit); if (units$2[unit]) { // go to beginning, go to next one, step back 1ms s = units$2[unit](s); // startof @@ -2717,12 +2691,12 @@ // return a list of the weeks/months/days between a -> b // returns spacetime objects in the timezone of the input - const every = function (start, unit, end) { + const every = function (start, unit, end, stepCount = 1) { if (!unit || !end) { return [] } //cleanup unit param - unit = normalize$6(unit); + unit = normalize$3(unit); //cleanup to param end = start.clone().set(end); //swap them, if they're backwards @@ -2731,7 +2705,10 @@ start = end; end = tmp; } - + //prevent going beyond end if unit/stepCount > than the range + if (start.diff(end, unit) < stepCount) { + return [] + } //support 'every wednesday' let d = start.clone(); if (isDay(unit)) { @@ -2747,11 +2724,12 @@ let result = []; while (d.isBefore(end)) { result.push(d); - d = d.add(1, unit); + d = d.add(stepCount, unit); } return result }; - var every$1 = every; + + /* eslint-disable no-console */ const parseDst = dst => { if (!dst) { @@ -2763,7 +2741,7 @@ //iana codes are case-sensitive, technically const titleCase = str => { str = str[0].toUpperCase() + str.substr(1); - str = str.replace(/[\/_-]([a-z])/gi, s => { + str = str.replace(/[/_-]([a-z])/gi, s => { return s.toUpperCase() }); str = str.replace(/_(of|es)_/i, (s) => s.toLowerCase()); @@ -2775,11 +2753,11 @@ }; //get metadata about this timezone - const timezone$1 = s => { + const timezone = s => { let zones = s.timezones; let tz = s.tz; if (zones.hasOwnProperty(tz) === false) { - tz = findTz(s.tz, zones); + tz = lookupTz(s.tz, zones); } if (tz === null) { if (s.silent === false) { @@ -2826,7 +2804,7 @@ if (result.hasDst === false) { result.current.offset = summer; result.current.isDST = false; - } else if (inSummerTime$1(s.epoch, result.change.start, result.change.back, summer, winter) === true) { + } else if (inSummerTime(s.epoch, result.change.start, result.change.back, summer, winter) === true) { result.current.offset = summer; result.current.isDST = result.hemisphere === 'North'; //dst 'on' in winter in north } else { @@ -2836,8 +2814,8 @@ } return result }; - var timezone$2 = timezone$1; + /* eslint-disable no-console */ const units$1 = [ 'century', 'decade', @@ -2855,32 +2833,32 @@ const methods$4 = { set: function (input, tz) { let s = this.clone(); - s = handleInput(s, input); + s = parseInput(s, input); if (tz) { - this.tz = findTz(tz); + this.tz = lookupTz(tz); } return s }, timezone: function () { - return timezone$2(this) + return timezone(this) }, isDST: function () { - return timezone$2(this).current.isDST + return timezone(this).current.isDST }, hasDST: function () { - return timezone$2(this).hasDst + return timezone(this).hasDst }, offset: function () { - return timezone$2(this).current.offset * 60 + return timezone(this).current.offset * 60 }, hemisphere: function () { - return timezone$2(this).hemisphere + return timezone(this).hemisphere }, format: function (fmt) { - return format$1(this, fmt) + return printFormat(this, fmt) }, unixFmt: function (fmt) { - return unixFmt$1(this, fmt) + return unixFmt(this, fmt) }, startOf: function (unit) { return startOf(this, unit) @@ -2893,19 +2871,19 @@ return isLeapYear(year) }, progress: function (unit) { - return progress$1(this, unit) + return progress(this, unit) }, nearest: function (unit) { - return nearest$1(this, unit) + return nearest(this, unit) }, diff: function (d, unit) { - return diff(this, d, unit) + return main$1(this, d, unit) }, since: function (d) { if (!d) { d = this.clone().set(); } - return since$1(this, d) + return since(this, d) }, next: function (unit) { let s = this.add(1, unit); @@ -2926,18 +2904,18 @@ //travel to this timezone goto: function (tz) { let s = this.clone(); - s.tz = findTz(tz, s.timezones); //science! + s.tz = lookupTz(tz, s.timezones); //science! return s }, //get each week/month/day between a -> b - every: function (unit, to) { + every: function (unit, to, stepCount) { // allow swapping these params: if (typeof unit === 'object' && typeof to === 'string') { let tmp = to; to = unit; unit = tmp; } - return every$1(this, unit, to) + return every(this, unit, to, stepCount) }, isAwake: function () { let hour = this.hour(); @@ -2983,12 +2961,12 @@ //pretty-printing log: function () { console.log(''); - console.log(format$1(this, 'nice-short')); + console.log(printFormat(this, 'nice-short')); return this }, logYear: function () { console.log(''); - console.log(format$1(this, 'full-short')); + console.log(printFormat(this, 'full-short')); return this }, json: function () { @@ -3040,7 +3018,6 @@ methods$4.inDST = methods$4.isDST; methods$4.round = methods$4.nearest; methods$4.each = methods$4.every; - var methods$5 = methods$4; // javascript setX methods like setDate() can't be used because of the local bias //these methods wrap around them. @@ -3087,7 +3064,7 @@ n = validate(n); let old = s.clone(); let diff = s.second() - n; - let shift = diff * ms.second; + let shift = diff * o.second; s.epoch = s.epoch - shift; s = fwdBkwd(s, old, goFwd, 'minute'); // specify direction return s.epoch @@ -3097,7 +3074,7 @@ n = validate(n); let old = s.clone(); let diff = s.minute() - n; - let shift = diff * ms.minute; + let shift = diff * o.minute; s.epoch -= shift; confirm(s, old, 'second'); s = fwdBkwd(s, old, goFwd, 'hour'); // specify direction @@ -3113,7 +3090,7 @@ } let old = s.clone(); let diff = s.hour() - n; - let shift = diff * ms.hour; + let shift = diff * o.hour; s.epoch -= shift; // oops, did we change the day? if (s.date() !== old.date()) { @@ -3124,10 +3101,10 @@ if (diff < 1) { diff += 1; } - shift = diff * ms.hour; + shift = diff * o.hour; s.epoch -= shift; } - walkTo$1(s, { + walkTo(s, { hour: n }); confirm(s, old, 'minute'); @@ -3135,7 +3112,7 @@ return s.epoch }; - const time$1 = function (s, str, goFwd) { + const time = function (s, str, goFwd) { let m = str.match(/([0-9]{1,2})[:h]([0-9]{1,2})(:[0-9]{1,2})? ?(am|pm)?/); if (!m) { //fallback to support just '2am' @@ -3184,7 +3161,7 @@ //avoid setting february 31st if (n > 28) { let month = s.month(); - let max = monthLength[month]; + let max = monthLengths[month]; // support leap day in february if (month === 1 && n === 29 && isLeapYear(s.year())) { max = 29; @@ -3198,7 +3175,7 @@ n = 1; } let old = s.clone(); - walkTo$1(s, { + walkTo(s, { date: n }); s = fwdBkwd(s, old, goFwd, 'month'); // specify direction @@ -3223,12 +3200,12 @@ let d = s.date(); //there's no 30th of february, etc. - if (d > monthLength[n]) { + if (d > monthLengths[n]) { //make it as close as we can.. - d = monthLength[n]; + d = monthLengths[n]; } let old = s.clone(); - walkTo$1(s, { + walkTo(s, { month: n, d }); @@ -3251,7 +3228,7 @@ } } n = validate(n); - walkTo$1(s, { + walkTo(s, { year: n }); return s.epoch @@ -3390,7 +3367,7 @@ if (str !== undefined) { let s = this.clone(); str = str.toLowerCase().trim(); - s.epoch = time$1(s, str, goFwd); + s.epoch = time(s, str, goFwd); return s } return `${this.h12()}:${zeroPad(this.minute())}${this.ampm()}` @@ -3474,7 +3451,6 @@ return this.format('iso') } }; - var timeFns = methods$3; const methods$2 = { // # day in the month @@ -3520,7 +3496,7 @@ } let s = this.subtract(diff, 'days'); //tighten it back up - walkTo$1(s, { + walkTo(s, { hour: original.hour(), minute: original.minute(), second: original.second() @@ -3538,7 +3514,8 @@ return s } }; - var dateFns = methods$2; + + /* eslint-disable no-console */ const clearMinutes = (s) => { s = s.minute(0); @@ -3608,7 +3585,7 @@ let i = 0; let skipWeeks = this.month() * 4; // console.log(ms.week+ " "+ skipWeeks); - tmp.epoch += ms.week * skipWeeks; + tmp.epoch += o.week * skipWeeks; i += skipWeeks; for (; i <= 52; i++) { if (tmp.epoch > thisOne) { @@ -3811,9 +3788,8 @@ return num } }; - var yearFns = methods$1; - const methods = Object.assign({}, timeFns, dateFns, yearFns); + const methods = Object.assign({}, methods$3, methods$2, methods$1); //aliases methods.milliseconds = methods.millisecond; @@ -3832,13 +3808,11 @@ }); }; - var queryFns = addMethods$4; - const getMonthLength = function (month, year) { if (month === 1 && isLeapYear(year)) { return 29 } - return monthLength[month] + return monthLengths[month] }; //month is the one thing we 'model/compute' @@ -3956,7 +3930,7 @@ return s //don't bother } let old = this.clone(); - unit = normalize$6(unit); + unit = normalize$3(unit); if (unit === 'millisecond') { s.epoch += num; return s @@ -3967,14 +3941,14 @@ unit = 'week'; } //move forward by the estimated milliseconds (rough) - if (ms[unit]) { - s.epoch += ms[unit] * num; + if (o[unit]) { + s.epoch += o[unit] * num; } else if (unit === 'week' || unit === 'weekend') { - s.epoch += ms.day * (num * 7); + s.epoch += o.day * (num * 7); } else if (unit === 'quarter' || unit === 'season') { - s.epoch += ms.month * (num * 3); + s.epoch += o.month * (num * 3); } else if (unit === 'quarterhour') { - s.epoch += ms.minute * 15 * num; + s.epoch += o.minute * 15 * num; } //now ensure our milliseconds/etc are in-line let want = {}; @@ -3997,7 +3971,7 @@ } //support coercing a week, too if (unit === 'week') { - let sum = old.date() + num * 7; + let sum = old.date() + (num * 7); if (sum <= 28 && sum > 1) { want.date = sum; } @@ -4022,12 +3996,12 @@ } // ensure a quarter is 3 months over else if (unit === 'quarter') { - want.month = old.month() + num * 3; + want.month = old.month() + (num * 3); want.year = old.year(); // handle rollover if (want.month < 0) { let years = Math.floor(want.month / 12); - let remainder = want.month + Math.abs(years) * 12; + let remainder = want.month + (Math.abs(years) * 12); want.month = remainder; want.year += years; } else if (want.month >= 12) { @@ -4043,10 +4017,10 @@ let haveYear = s.year(); if (haveYear < wantYear) { let toAdd = Math.floor(num / 4) || 1; //approx num of leap-days - s.epoch += Math.abs(ms.day * toAdd); + s.epoch += Math.abs(o.day * toAdd); } else if (haveYear > wantYear) { let toAdd = Math.floor(num / 4) || 1; //approx num of leap-days - s.epoch += ms.day * toAdd; + s.epoch += o.day * toAdd; } } //these are easier @@ -4057,14 +4031,14 @@ } //keep current date, unless the month doesn't have it. if (keepDate[unit]) { - let max = monthLength[want.month]; + let max = monthLengths[want.month]; want.date = old.date(); if (want.date > max) { want.date = max; } } if (Object.keys(want).length > 1) { - walkTo$1(s, want); + walkTo(s, want); } return s }; @@ -4079,8 +4053,6 @@ SpaceTime.prototype.plus = SpaceTime.prototype.add; }; - var addFns = addMethods$3; - //make a string, for easy comparison between dates const print = { millisecond: (s) => { @@ -4143,8 +4115,6 @@ }; }; - var sameFns = addMethods$2; - const addMethods$1 = SpaceTime => { const methods = { isAfter: function (d) { @@ -4195,8 +4165,6 @@ }); }; - var compareFns = addMethods$1; - const addMethods = SpaceTime => { const methods = { i18n: function (data) { @@ -4239,15 +4207,13 @@ }); }; - var i18nFns = addMethods; - - let timezones$1 = zones$1; + let timezones$1 = all; // fake timezone-support, for fakers (es5 class) const SpaceTime = function (input, tz, options = {}) { // the holy moment this.epoch = null; // the shift for the given timezone - this.tz = findTz(tz, timezones$1); + this.tz = lookupTz(tz, timezones$1); // whether to output warnings to console this.silent = typeof options.silent !== 'undefined' ? options.silent : true; // favour british interpretation of 02/02/2018, etc @@ -4273,11 +4239,11 @@ Object.defineProperty(this, 'd', { // return a js date object get: function () { - let offset = quickOffset$1(this); + let offset = quickOffset(this); // every computer is somewhere- get this computer's built-in offset let bias = new Date(this.epoch).getTimezoneOffset() || 0; // movement - let shift = bias + offset * 60; //in minutes + let shift = bias + (offset * 60); //in minutes shift = shift * 60 * 1000; //in ms // remove this computer's offset let epoch = this.epoch + shift; @@ -4294,7 +4260,7 @@ } }); // parse the various formats - let tmp = handleInput(this, input); + let tmp = parseInput(this, input); this.epoch = tmp.epoch; if (tmp.tz) { this.tz = tmp.tz; @@ -4302,8 +4268,8 @@ }; // (add instance methods to prototype) - Object.keys(methods$5).forEach((k) => { - SpaceTime.prototype[k] = methods$5[k]; + Object.keys(methods$4).forEach((k) => { + SpaceTime.prototype[k] = methods$4[k]; }); // ยฏ\_(ใƒ„)_/ยฏ @@ -4332,19 +4298,17 @@ }; // append more methods - queryFns(SpaceTime); - addFns(SpaceTime); - sameFns(SpaceTime); - compareFns(SpaceTime); - i18nFns(SpaceTime); - - var Spacetime = SpaceTime; + addMethods$4(SpaceTime); + addMethods$3(SpaceTime); + addMethods$2(SpaceTime); + addMethods$1(SpaceTime); + addMethods(SpaceTime); // const timezones = require('../data'); const whereIts = (a, b) => { - let start = new Spacetime(null); - let end = new Spacetime(null); + let start = new SpaceTime(null); + let end = new SpaceTime(null); start = start.time(a); //if b is undefined, use as 'within one hour' if (b) { @@ -4359,7 +4323,7 @@ if (tz.indexOf('/') === -1) { return false } - let m = new Spacetime(null, tz); + let m = new SpaceTime(null, tz); let hour = m.hour(); //do 'calendar-compare' not real-time-compare if (hour >= startHour && hour <= endHour) { @@ -4376,11 +4340,10 @@ }); return tzs }; - var whereIts$1 = whereIts; - var version$1 = '7.6.0'; + var version$1 = '7.6.1'; - const main = (input, tz, options) => new Spacetime(input, tz, options); + const main = (input, tz, options) => new SpaceTime(input, tz, options); // set all properties of a given 'today' object const setToday = function (s) { @@ -4393,53 +4356,52 @@ //some helper functions on the main method main.now = (tz, options) => { - let s = new Spacetime(new Date().getTime(), tz, options); + let s = new SpaceTime(new Date().getTime(), tz, options); s = setToday(s); return s }; main.today = (tz, options) => { - let s = new Spacetime(new Date().getTime(), tz, options); + let s = new SpaceTime(new Date().getTime(), tz, options); s = setToday(s); return s.startOf('day') }; main.tomorrow = (tz, options) => { - let s = new Spacetime(new Date().getTime(), tz, options); + let s = new SpaceTime(new Date().getTime(), tz, options); s = setToday(s); return s.add(1, 'day').startOf('day') }; main.yesterday = (tz, options) => { - let s = new Spacetime(new Date().getTime(), tz, options); + let s = new SpaceTime(new Date().getTime(), tz, options); s = setToday(s); return s.subtract(1, 'day').startOf('day') }; main.extend = function (obj = {}) { Object.keys(obj).forEach((k) => { - Spacetime.prototype[k] = obj[k]; + SpaceTime.prototype[k] = obj[k]; }); return this }; main.timezones = function () { - let s = new Spacetime(); + let s = new SpaceTime(); return s.timezones }; main.max = function (tz, options) { - let s = new Spacetime(null, tz, options); + let s = new SpaceTime(null, tz, options); s.epoch = 8640000000000000; return s }; main.min = function (tz, options) { - let s = new Spacetime(null, tz, options); + let s = new SpaceTime(null, tz, options); s.epoch = -8640000000000000; return s }; //find tz by time - main.whereIts = whereIts$1; + main.whereIts = whereIts; main.version = version$1; //aliases: main.plugin = main.extend; - var spacetime = main; // these should be added to model const hardCoded = { @@ -4508,7 +4470,7 @@ time = time.not('sharp'); time = time.not('on the dot'); // time.debug() - let s = spacetime.now(context.timezone); + let s = main.now(context.timezone); let now = s.clone(); // check for known-times (like 'today') let timeStr = time.not('in the').text('reduced'); @@ -4547,7 +4509,7 @@ m = time.match('[(half|quarter|25|20|15|10|5)] (past|after)'); if (m.found) { let min = m.groups('min').text('reduced'); - let d = spacetime(context.today); + let d = main(context.today); // support 'quarter', etc. if (minMap.hasOwnProperty(min)) { min = minMap[min]; @@ -4561,7 +4523,7 @@ m = time.match('[(half|quarter|25|20|15|10|5)] to'); if (m.found) { let min = m.groups('min').text('reduced'); - let d = spacetime(context.today); + let d = main(context.today); // support 'quarter', etc. if (minMap.hasOwnProperty(min)) { min = minMap[min]; @@ -4644,7 +4606,6 @@ } return { result: null, m: doc.none() } }; - var parseTime$1 = parseTime; // interpret 'this halloween' or 'next june' const parseRelative = function (doc) { @@ -4674,7 +4635,6 @@ } return { result: null, m: doc.none() } }; - var doRelative = parseRelative; // 'start of october', 'middle of june 1st' const parseSection = function (doc) { @@ -4695,7 +4655,6 @@ } return { result: null, m } }; - var doSection = parseSection; // some opinionated-but-common-sense timezone abbreviations // these timezone abbreviations are wholly made-up by me, Spencer Kelly, with no expertise in geography @@ -4948,7 +4907,7 @@ }; //add the official iana zonefile names - let iana$1 = spacetime().timezones; + let iana$1 = main().timezones; let formal$1 = Object.keys(iana$1).reduce((h, k) => { h[k] = k; return h @@ -5012,7 +4971,6 @@ return { result: null, m: doc.none() } }; - var doTimezone = parseTimezone; // pull-out 'thurs' from 'thurs next week' const parseWeekday = function (doc) { @@ -5026,7 +4984,6 @@ } return { result: null, m: doc.none() } }; - var doWeekday = parseWeekday; const cleanup = function (doc) { // 'the fifth week ..' @@ -5044,37 +5001,37 @@ const tokenize = function (doc, context) { // parse 'two weeks after' - let res = doShift(doc); + let res = parseShift(doc); let shift = res.result; doc = doc.not(res.m); // parse 'nth week of june' - res = doCounter(doc); + res = getCounter(doc); let counter = res.result; doc = doc.not(res.m); // parse 'eastern time' - res = doTimezone(doc); + res = parseTimezone(doc); let tz = res.result; doc = doc.not(res.m); // parse '2pm' - res = parseTime$1(doc, context); + res = parseTime(doc, context); let time = res.result; doc = doc.not(res.m); // parse 'tuesday' - res = doWeekday(doc); + res = parseWeekday(doc); let weekDay = res.result; doc = doc.not(res.m); // parse 'start of x' - res = doSection(doc); + res = parseSection(doc); let section = res.result; doc = doc.not(res.m); // parse 'next x' - res = doRelative(doc); + res = parseRelative(doc); let rel = res.result; doc = doc.not(res.m); @@ -5091,7 +5048,6 @@ doc } }; - var tokenize$1 = tokenize; class Unit { constructor(input, unit, context) { @@ -5110,7 +5066,7 @@ input.month = 'sep'; } // set it to the beginning of the given unit - let d = spacetime(input, context.timezone, { today: today, dmy: context.dmy }); + let d = main(input, context.timezone, { today: today, dmy: context.dmy }); Object.defineProperty(this, 'd', { enumerable: false, writable: true, @@ -5270,9 +5226,8 @@ return this } } - var Unit$1 = Unit; - class Day extends Unit$1 { + class Day extends Unit { constructor(input, unit, context) { super(input, unit, context); this.unit = 'day'; @@ -5316,7 +5271,7 @@ this.isWeekDay = true; //cool. // is the input just a weekday? if (typeof input === 'string') { - this.d = spacetime(context.today, context.timezone); + this.d = main(context.today, context.timezone); this.d = this.d.day(input); // assume a wednesday in the future if (this.d.isBefore(context.today)) { @@ -5390,7 +5345,7 @@ } } - class Hour extends Unit$1 { + class Hour extends Unit { constructor(input, unit, context) { super(input, unit, context, true); this.unit = 'hour'; @@ -5399,7 +5354,7 @@ } } } - class Minute extends Unit$1 { + class Minute extends Unit { constructor(input, unit, context) { super(input, unit, context, true); this.unit = 'minute'; @@ -5408,7 +5363,7 @@ } } } - class Moment extends Unit$1 { + class Moment extends Unit { constructor(input, unit, context) { super(input, unit, context, true); this.unit = 'millisecond'; @@ -5416,7 +5371,7 @@ } // a specific month, like 'March' - class AnyMonth extends Unit$1 { + class AnyMonth extends Unit { constructor(input, unit, context) { super(input, unit, context); this.unit = 'month'; @@ -5428,7 +5383,7 @@ } // a specific month, like 'March' - class Month extends Unit$1 { + class Month extends Unit { constructor(input, unit, context) { super(input, unit, context); this.unit = 'month'; @@ -5449,7 +5404,7 @@ } } - class AnyQuarter extends Unit$1 { + class AnyQuarter extends Unit { constructor(input, unit, context) { super(input, unit, context); this.unit = 'quarter'; @@ -5465,7 +5420,7 @@ } } - class Quarter extends Unit$1 { + class Quarter extends Unit { constructor(input, unit, context) { super(input, unit, context); this.unit = 'quarter'; @@ -5485,7 +5440,7 @@ return this } } - class Season extends Unit$1 { + class Season extends Unit { constructor(input, unit, context) { super(input, unit, context); this.unit = 'season'; @@ -5505,7 +5460,7 @@ return this } } - class Year extends Unit$1 { + class Year extends Unit { constructor(input, unit, context) { super(input, unit, context); this.unit = 'year'; @@ -5515,7 +5470,7 @@ } } - class Week extends Unit$1 { + class Week extends Unit { constructor(input, unit, context) { super(input, unit, context); this.unit = 'week'; @@ -5538,7 +5493,7 @@ } //may need some work - class WeekEnd extends Unit$1 { + class WeekEnd extends Unit { constructor(input, unit, context) { super(input, unit, context); this.unit = 'week'; @@ -5629,7 +5584,6 @@ } return unit }; - var today$1 = today; //yep, const jan$1 = 'january'; @@ -5720,7 +5674,7 @@ const fixedDates$1 = function (str, normal, year, tz) { if (fixed.hasOwnProperty(str) || fixed.hasOwnProperty(normal)) { let arr = fixed[str] || fixed[normal] || []; - let s = spacetime.now(tz); + let s = main.now(tz); s = s.year(year); s = s.startOf('year'); s = s.month(arr[0]); @@ -5784,7 +5738,7 @@ const fixedDates = function (str, normal, year, tz) { if (calendar.hasOwnProperty(str) || calendar.hasOwnProperty(normal)) { let arr = calendar[str] || calendar[normal] || []; - let s = spacetime.now(tz); + let s = main.now(tz); s = s.year(year); // [3rd, 'monday', 'january'] @@ -5869,7 +5823,7 @@ if (!date) { return null //no easter for this year } - let e = spacetime(date, tz); + let e = main(date, tz); e = e.year(year); let s = e.add(days, 'day'); @@ -6037,7 +5991,7 @@ var calcSeasons$1 = calcSeasons; // these are properly calculated in ./lib/seasons - let dates$1$1 = { + let dates$1 = { 'spring equinox': 'spring', 'summer solistice': 'summer', 'fall equinox': 'fall', @@ -6045,24 +5999,24 @@ }; // aliases - dates$1$1['march equinox'] = dates$1$1['spring equinox']; - dates$1$1['vernal equinox'] = dates$1$1['spring equinox']; - dates$1$1['ostara'] = dates$1$1['spring equinox']; + dates$1['march equinox'] = dates$1['spring equinox']; + dates$1['vernal equinox'] = dates$1['spring equinox']; + dates$1['ostara'] = dates$1['spring equinox']; - dates$1$1['june solstice'] = dates$1$1['summer solistice']; - dates$1$1['litha'] = dates$1$1['summer solistice']; + dates$1['june solstice'] = dates$1['summer solistice']; + dates$1['litha'] = dates$1['summer solistice']; - dates$1$1['autumn equinox'] = dates$1$1['fall equinox']; - dates$1$1['autumnal equinox'] = dates$1$1['fall equinox']; - dates$1$1['september equinox'] = dates$1$1['fall equinox']; - dates$1$1['sept equinox'] = dates$1$1['fall equinox']; - dates$1$1['mabon'] = dates$1$1['fall equinox']; + dates$1['autumn equinox'] = dates$1['fall equinox']; + dates$1['autumnal equinox'] = dates$1['fall equinox']; + dates$1['september equinox'] = dates$1['fall equinox']; + dates$1['sept equinox'] = dates$1['fall equinox']; + dates$1['mabon'] = dates$1['fall equinox']; - dates$1$1['december solstice'] = dates$1$1['winter solistice']; - dates$1$1['dec solstice'] = dates$1$1['winter solistice']; - dates$1$1['yule'] = dates$1$1['winter solistice']; + dates$1['december solstice'] = dates$1['winter solistice']; + dates$1['dec solstice'] = dates$1['winter solistice']; + dates$1['yule'] = dates$1['winter solistice']; - var holidays$1 = dates$1$1; + var holidays$1 = dates$1; const astroDates = function (str, normal, year, tz) { if (holidays$1.hasOwnProperty(str) || holidays$1.hasOwnProperty(normal)) { @@ -6071,7 +6025,7 @@ if (!season || !seasons || !seasons[season]) { return null // couldn't figure it out } - let s = spacetime(seasons[season], tz); + let s = main(seasons[season], tz); if (s.isValid()) { return s } @@ -6105,7 +6059,7 @@ return null } // start at 2018 - let s = spacetime(date + ' 2018', tz); + let s = main(date + ' 2018', tz); let diff = year - 2018; let toAdd = diff * dayDiff; s = s.add(toAdd, 'day'); @@ -6122,7 +6076,7 @@ }; var lunarDates$1 = lunarDates; - const nowYear = spacetime.now().year(); + const nowYear = main.now().year(); const spacetimeHoliday = function (str, year, tz) { year = year || nowYear; @@ -6182,7 +6136,6 @@ } return unit }; - var holiday = parseHoliday; const mapping$1 = { day: Day, @@ -6240,7 +6193,6 @@ // } return null }; - var nextLast$1 = nextLast; const fmtToday = function (context) { return { @@ -6255,7 +6207,7 @@ let m = doc.match('(spring|summer|winter|fall|autumn) [#Year?]'); if (m.found) { let str = doc.text('reduced'); - let s = spacetime(str, context.timezone, { today: fmtToday(context) }); + let s = main(str, context.timezone, { today: fmtToday(context) }); let unit = new Season(s, null, context); if (unit.d.isValid() === true) { return unit @@ -6266,7 +6218,7 @@ m = doc.match('[#FinancialQuarter] [#Year?]'); if (m.found) { let str = m.groups('q').text('reduced'); - let s = spacetime(str, context.timezone, { today: fmtToday(context) }); + let s = main(str, context.timezone, { today: fmtToday(context) }); if (m.groups('year')) { let year = Number(m.groups('year').text()) || context.today.year(); s = s.year(year); @@ -6280,7 +6232,7 @@ m = doc.match('[#Value] quarter (of|in)? [#Year?]'); if (m.found) { let q = m.groups('q').text('reduced'); - let s = spacetime(`q${q}`, context.timezone, { today: fmtToday(context) }); + let s = main(`q${q}`, context.timezone, { today: fmtToday(context) }); if (m.groups('year')) { let year = Number(m.groups('year').text()) || context.today.year(); s = s.year(year); @@ -6294,7 +6246,7 @@ m = doc.match('^#Year$'); if (m.found) { let str = doc.text('reduced'); - let s = spacetime(null, context.timezone, { today: fmtToday(context) }); + let s = main(null, context.timezone, { today: fmtToday(context) }); s = s.year(str); let unit = new Year(s, null, context); if (unit.d.isValid() === true) { @@ -6304,7 +6256,6 @@ return null }; - var yearly = parseYearly; // parse things like 'june 5th 2019' // most of this is done in spacetime @@ -6435,24 +6386,22 @@ } return unit }; - var explicit = parseExplicit; - const parse$4 = function (doc, context, parts) { + const parse$3 = function (doc, context, parts) { let unit = null; //'in two days' - unit = unit || today$1(doc, context, parts); + unit = unit || today(doc, context, parts); // 'this haloween' - unit = unit || holiday(doc, context); + unit = unit || parseHoliday(doc, context); // 'this month' - unit = unit || nextLast$1(doc, context); + unit = unit || nextLast(doc, context); // 'q2 2002' - unit = unit || yearly(doc, context); + unit = unit || parseYearly(doc, context); // 'this june 2nd' - unit = unit || explicit(doc, context); + unit = unit || parseExplicit(doc, context); return unit }; - var parse$5 = parse$4; const units = { day: Day, @@ -6495,7 +6444,6 @@ } return unit //fallback }; - var addCounter = applyCounter; // apply all parsed {parts} to our unit date const transform = function (unit, context, parts) { @@ -6540,11 +6488,10 @@ } // apply counter if (parts.counter && parts.counter.unit) { - unit = addCounter(unit, parts.counter); + unit = applyCounter(unit, parts.counter); } return unit }; - var transform$1 = transform; // import spacetime from 'spacetime' @@ -6563,7 +6510,7 @@ const parseDate = function (doc, context) { //parse-out any sections - let parts = tokenize$1(doc, context); + let parts = tokenize(doc, context); doc = parts.doc; // logger log$1(parts); @@ -6576,12 +6523,11 @@ context.today = context.today.goto(context.timezone).set(iso); } // decide on a root date object - let unit = parse$5(doc, context, parts); + let unit = parse$3(doc, context, parts); // apply all our parts - unit = transform$1(unit, context, parts); + unit = transform(unit, context, parts); return unit }; - var parseDate$1 = parseDate; const dayNames = { mon: 'monday', @@ -6696,14 +6642,13 @@ doc = doc.remove(m); let time = m.groups('time'); if (time.found) { - repeat.time = parseTime$1(time, context); + repeat.time = parseTime(time, context); } return { repeat: repeat } } } return null }; - var repeating = parseIntervals; // somewhat-intellegent response to end-before-start situations const reverseMaybe = function (obj) { @@ -6722,7 +6667,6 @@ } return obj }; - var reverseMaybe$1 = reverseMaybe; const moveToPM = function (obj) { let start = obj.start; @@ -6743,7 +6687,7 @@ parse: (m, context) => { let from = m.groups('from'); let to = m.groups('to'); - let end = parseDate$1(to, context); + let end = parseDate(to, context); if (end) { let start = end.clone(); start.applyTime(from.text('implicit')); @@ -6756,7 +6700,7 @@ if (/(am|pm)/.test(to) === false) { obj = moveToPM(obj); } - obj = reverseMaybe$1(obj); + obj = reverseMaybe(obj); return obj } } @@ -6772,7 +6716,7 @@ let main = m.groups('main'); let a = m.groups('a'); let b = m.groups('b'); - main = parseDate$1(main, context); + main = parseDate(main, context); if (main) { main.applyTime(a.text('implicit')); let end = main.clone(); @@ -6786,7 +6730,7 @@ if (/(am|pm)/.test(b.text()) === false) { obj = moveToPM(obj); } - obj = reverseMaybe$1(obj); + obj = reverseMaybe(obj); return obj } } @@ -6800,7 +6744,7 @@ parse: (m, context) => { let from = m.groups('from'); let to = m.groups('to'); - from = parseDate$1(from, context); + from = parseDate(from, context); if (from) { let end = from.clone(); end.applyTime(to.text('implicit')); @@ -6813,7 +6757,7 @@ if (/(am|pm)/.test(to.text()) === false) { obj = moveToPM(obj); } - obj = reverseMaybe$1(obj); + obj = reverseMaybe(obj); return obj } } @@ -6832,7 +6776,7 @@ parse: (m, context) => { let before = m.match('^during? [#Month]', 0); m = m.not('(or|and)'); - let start = parseDate$1(before, context); + let start = parseDate(before, context); if (start) { let result = [ { @@ -6845,7 +6789,7 @@ let more = m.not(before); if (more.found) { more.match('#Month').forEach((month) => { - let s = parseDate$1(month, context); + let s = parseDate(month, context); // s.d = s.d.month(month.text('reduced')) result.push({ start: s, @@ -6875,7 +6819,7 @@ parse: (m, context) => { m = m.not('(or|and)'); let before = m.match('^#Month #Value'); - let start = parseDate$1(before, context); + let start = parseDate(before, context); if (start) { let result = [ { @@ -6917,7 +6861,7 @@ if (year.found) { d.append(year); } - let start = parseDate$1(d, context); + let start = parseDate(d, context); if (start) { results.push({ start: start, @@ -6943,7 +6887,7 @@ if (year.found) { d.append(year); } - let start = parseDate$1(d, context); + let start = parseDate(d, context); if (start) { results.push({ start: start, @@ -6963,8 +6907,8 @@ parse: (m, context) => { let fromDoc = m.groups('from'); let toDoc = m.groups('to'); - let from = parseDate$1(fromDoc, context); - let to = parseDate$1(toDoc, context); + let from = parseDate(fromDoc, context); + let to = parseDate(toDoc, context); if (from && to) { return [ { @@ -6989,9 +6933,9 @@ desc: 'between friday and sunday', parse: (m, context) => { let start = m.groups('start'); - start = parseDate$1(start, context); + start = parseDate(start, context); let end = m.groups('end'); - end = parseDate$1(end, context); + end = parseDate(end, context); if (start && end) { end = end.before(); return { @@ -7013,13 +6957,13 @@ if (res.year) { start = start.append(res.year); } - start = parseDate$1(start, context); + start = parseDate(start, context); if (start) { let end = res.to; if (res.year) { end = end.append(res.year); } - end = parseDate$1(end, context); + end = parseDate(end, context); if (end) { // assume end is after start if (start.d.isAfter(end.d)) { @@ -7043,10 +6987,10 @@ let { month, from, to, year } = m.groups(); let year2 = year.clone(); let start = from.prepend(month).append(year); - start = parseDate$1(start, context); + start = parseDate(start, context); if (start) { let end = to.prepend(month).append(year2); - end = parseDate$1(end, context); + end = parseDate(end, context); return { start: start, end: end.end(), @@ -7061,7 +7005,7 @@ desc: '5 to 7 of january 1998', parse: (m, context) => { let to = m.groups('to'); - to = parseDate$1(to, context); + to = parseDate(to, context); if (to) { let fromDate = m.groups('from'); let from = to.clone(); @@ -7081,7 +7025,7 @@ desc: 'january 5 to 7', parse: (m, context) => { let from = m.groups('from'); - from = parseDate$1(from, context); + from = parseDate(from, context); if (from) { let toDate = m.groups('to'); let to = from.clone(); @@ -7103,8 +7047,8 @@ let from = m.groups('from'); let year = m.groups('year').numbers().get()[0]; let to = m.groups('to'); - from = parseDate$1(from, context); - to = parseDate$1(to, context); + from = parseDate(from, context); + to = parseDate(to, context); from.d = from.d.year(year); to.d = to.d.year(year); if (from && to) { @@ -7113,7 +7057,7 @@ end: to.end(), }; // reverse the order? - obj = reverseMaybe$1(obj); + obj = reverseMaybe(obj); return obj } return null @@ -7134,14 +7078,14 @@ parse: (m, context) => { let from = m.groups('from'); let to = m.groups('to'); - from = parseDate$1(from, context); - to = parseDate$1(to, context); + from = parseDate(from, context); + to = parseDate(to, context); if (from && to) { let obj = { start: from, end: to.end(), }; - obj = reverseMaybe$1(obj); + obj = reverseMaybe(obj); return obj } return null @@ -7154,9 +7098,9 @@ desc: 'before june', parse: (m, context) => { m = m.group(0); - let unit = parseDate$1(m, context); + let unit = parseDate(m, context); if (unit) { - let start = new Unit$1(context.today, null, context); + let start = new Unit(context.today, null, context); if (start.d.isAfter(unit.d)) { start = unit.clone().applyShift({ weeks: -2 }); } @@ -7177,7 +7121,7 @@ desc: 'in june', parse: (m, context) => { m = m.group(0); - let unit = parseDate$1(m, context); + let unit = parseDate(m, context); if (unit) { return { start: unit, end: unit.clone().end(), unit: unit.unit } } @@ -7190,7 +7134,7 @@ desc: 'after june', parse: (m, context) => { m = m.group(0); - let unit = parseDate$1(m, context); + let unit = parseDate(m, context); if (unit) { unit = unit.after(); return { @@ -7207,7 +7151,7 @@ desc: 'middle of', parse: (m, context) => { m = m.group(0); - let unit = parseDate$1(m, context); + let unit = parseDate(m, context); let start = unit.clone().middle(); let end = unit.beforeEnd(); if (unit) { @@ -7224,7 +7168,7 @@ match: '.+ after #Time+$', desc: 'tuesday after 5pm', parse: (m, context) => { - let unit = parseDate$1(m, context); + let unit = parseDate(m, context); if (unit) { let start = unit.clone(); let end = unit.end(); @@ -7242,7 +7186,7 @@ match: '.+ before #Time+$', desc: 'tuesday before noon', parse: (m, context) => { - let unit = parseDate$1(m, context); + let unit = parseDate(m, context); if (unit) { let end = unit.clone(); let start = unit.start(); @@ -7281,7 +7225,7 @@ if (!doc.found) { return res } - let unit = parseDate$1(doc, context); + let unit = parseDate(doc, context); if (unit) { let end = unit.clone().end(); res = { @@ -7317,7 +7261,7 @@ // loop thru each range template const parseRanges = function (m, context) { // parse-out 'every week ..' - let repeats = repeating(m, context) || {}; + let repeats = parseIntervals(m, context) || {}; // try picking-apart ranges let found = tryRanges(m, context); if (!found) { @@ -7333,9 +7277,8 @@ }); return found }; - var parseRange = parseRanges; - const normalize$2 = function (doc) { + const normalize$1 = function (doc) { if (!doc.numbers) { console.warn(`\nCompromise warning: compromise/three must be used with compromise-dates plugin\n`); // eslint-disable-line @@ -7361,23 +7304,20 @@ return doc }; - var normalize$3 = normalize$2; - - const parse$3 = function (doc, context) { + const parse$2 = function (doc, context) { // normalize context context = context || {}; if (context.timezone === false) { context.timezone = 'UTC'; } - context.today = context.today || spacetime.now(context.timezone); - context.today = spacetime(context.today, context.timezone); + context.today = context.today || main.now(context.timezone); + context.today = main(context.today, context.timezone); - doc = normalize$3(doc); + doc = normalize$1(doc); - let res = parseRange(doc, context); + let res = parseRanges(doc, context); return res }; - var parseDates = parse$3; const getDuration = function (range) { let end = range.end.d.add(1, 'millisecond'); @@ -7414,30 +7354,32 @@ // range: getRange(diff) } }; - var toJSON$1 = toJSON; const quickDate = function (view, str) { let tmp = view.fromText(str); - let found = parseDates(tmp, view.opts)[0]; + let found = parse$2(tmp, view.opts)[0]; if (!found || !found.start || !found.start.d) { return null } return found.start.d }; - const api$3 = function (View) { + const api$2 = function (View) { class Dates extends View { constructor(document, pointer, groups, opts = {}) { super(document, pointer, groups); this.viewType = 'Dates'; - this.opts = opts; + this.opts = Object.assign({}, opts); } get(n) { let all = []; this.forEach(m => { - parseDates(m, this.opts).forEach(res => { - all.push(toJSON$1(res)); + parse$2(m, this.opts).forEach(res => { + let json = toJSON(res); + if (json.start) { + all.push(json); + } }); }); if (typeof n === 'number') { @@ -7450,8 +7392,8 @@ return this.map(m => { let json = m.toView().json(opts)[0] || {}; if (opts && opts.dates !== false) { - let parsed = parseDates(m, this.opts); - json.dates = toJSON$1(parsed[0]); + let parsed = parse$2(m, this.opts); + json.dates = toJSON(parsed[0]); } return json }, []) @@ -7461,7 +7403,7 @@ format(fmt) { let found = this; let res = found.map(m => { - let obj = parseDates(m, this.opts)[0] || {}; + let obj = parse$2(m, this.opts)[0] || {}; if (obj.start) { let start = obj.start.d; let str = start.format(fmt); @@ -7482,7 +7424,7 @@ isBefore(iso) { let pivot = quickDate(this, iso); return this.filter(m => { - let obj = parseDates(m, this.opts)[0] || {}; + let obj = parse$2(m, this.opts)[0] || {}; return obj.start && obj.start.d && obj.start.d.isBefore(pivot) }) } @@ -7490,7 +7432,7 @@ isAfter(iso) { let pivot = quickDate(this, iso); return this.filter(m => { - let obj = parseDates(m, this.opts)[0] || {}; + let obj = parse$2(m, this.opts)[0] || {}; return obj.start && obj.start.d && obj.start.d.isAfter(pivot) }) } @@ -7498,20 +7440,18 @@ isSame(unit, iso) { let pivot = quickDate(this, iso); return this.filter(m => { - let obj = parseDates(m, this.opts)[0] || {}; + let obj = parse$2(m, this.opts)[0] || {}; return obj.start && obj.start.d && obj.start.d.isSame(pivot, unit) }) } } View.prototype.dates = function (opts) { - let m = find$1(this); + let m = findDate(this); return new Dates(this.document, m.pointer, null, opts) }; }; - var dates$1 = api$3; - const normalize = function (doc) { doc = doc.clone(); // 'four thirty' -> 4:30 @@ -7561,19 +7501,18 @@ doc.match('@hasDash').insertAfter('to').tag('Date'); return doc }; - var normalize$1 = normalize; const find = function (doc) { return doc.match('#Time+ (am|pm)?') }; - const parse$2 = function (m, context = {}) { - m = normalize$1(m); - let res = parseTime$1(m, context); + const parse$1 = function (m, context = {}) { + m = normalize(m); + let res = parseTime(m, context); if (!res.result) { return { time: null, '24h': null } } - let s = spacetime.now().time(res.result); + let s = main.now().time(res.result); return { time: res.result, '24h': s.format('time-24'), @@ -7584,7 +7523,7 @@ const getNth = (doc, n) => (typeof n === 'number' ? doc.eq(n) : doc); - const api$2 = function (View) { + const api$1 = function (View) { class Times extends View { constructor(document, pointer, groups, opts) { super(document, pointer, groups); @@ -7595,9 +7534,9 @@ format(fmt) { let found = this; let res = found.map(m => { - let obj = parse$2(m) || {}; + let obj = parse$1(m) || {}; if (obj.time) { - let s = spacetime.now().time(obj.time); + let s = main.now().time(obj.time); let str = obj.time; if (fmt === '24h') { str = s.format('time-24'); @@ -7613,14 +7552,14 @@ } get(n) { - return getNth(this, n).map(parse$2) + return getNth(this, n).map(parse$1) } json(opts = {}) { return this.map(m => { let json = m.toView().json(opts)[0] || {}; if (opts && opts.time !== false) { - json.time = parse$2(m); + json.time = parse$1(m); } return json }, []) @@ -7634,8 +7573,6 @@ }; }; - var times$1 = api$2; - const known = { century: true, day: true, @@ -7706,7 +7643,6 @@ } return duration }; - var parse$1 = parse; const addDurations = function (View) { /** phrases like '2 months', or '2mins' */ @@ -7720,7 +7656,7 @@ return this.map(m => { let json = m.toView().json(opts)[0] || {}; if (opts && opts.duration !== false) { - json.duration = parse$1(m); + json.duration = parse(m); } return json }, []) @@ -7729,7 +7665,7 @@ get(options) { let arr = []; this.forEach(doc => { - let res = parse$1(doc); + let res = parse(doc); arr.push(res); }); if (typeof options === 'number') { @@ -7752,14 +7688,12 @@ return new Durations(this.document, m.pointer) }; }; - var durations$1 = addDurations; const api = function (View) { - dates$1(View); - times$1(View); - durations$1(View); + api$2(View); + api$1(View); + addDurations(View); }; - var api$1 = api; //ambiguous 'may' and 'march' // const preps = '(in|by|before|during|on|until|after|of|within|all)' //6 @@ -7852,7 +7786,6 @@ return doc }; - var basic = tagDates; // 3-4 can be a time-range, sometimes const tagTimeRange = function (m, reason) { @@ -7915,7 +7848,6 @@ } return doc }; - var time = timeTagger; // timezone abbreviations // (from spencermountain/timezone-soft) @@ -8022,7 +7954,6 @@ } } }; - var timezone = tagTz; const here = 'fix-tagger'; // @@ -8054,7 +7985,6 @@ } return doc }; - var fixup = fixUp; const preps = '(in|by|before|during|on|until|after|of|within|all)'; //6 const thisNext = '(last|next|this|previous|current|upcoming|coming)'; //2 @@ -8335,13 +8265,12 @@ // a month from now { match: '(from|by|before) now', unTag: 'Time', tag: 'Date' }, ]; - var matches$1 = matches; let net = null; const doMatches = function (view) { let { world } = view; - net = net || world.methods.one.buildNet(matches$1, world); + net = net || world.methods.one.buildNet(matches, world); view.sweep(net); }; @@ -8350,10 +8279,10 @@ view.cache(); doMatches(view); doMatches(view); // do it twice - basic(view); - time(view); - timezone(view); - fixup(view); + tagDates(view); + timeTagger(view); + tagTz(view); + fixUp(view); view.uncache(); // sorry, one more @@ -8580,7 +8509,7 @@ }; //add the official iana zonefile names - let iana = spacetime().timezones; + let iana = main().timezones; let formal = Object.keys(iana).reduce((h, k) => { h[k] = k; return h @@ -8832,8 +8761,6 @@ add(durations, 'Duration'); add(holidays, 'Holiday'); add(times, 'Time'); - // console.log(lex['april fools']) - var words = lex; var regex = [ // 30sec @@ -8847,17 +8774,17 @@ // @4pm [/^@[1-9]+(am|pm)$/, 'Time', '@5pm'], // 03/02 - [/^[0-9]{2}\/[0-9]{2}$/, 'Date', '03/02'], + [/^(?:0[1-9]|[12]\d|3[01])\/(?:0[1-9]|[12]\d|3[01])$/, 'Date', '03/02'], // iso-time // [/^[0-9]{4}[:-][0-9]{2}[:-][0-9]{2}T[0-9]/i, 'Time', 'iso-time-tag'] ]; - var version = '3.5.0'; + var version = '3.6.0'; /* eslint-disable no-console */ - const fmt = iso => (iso ? spacetime(iso).format('{nice-day} {year}') : '-'); + const fmt = iso => (iso ? main(iso).format('{nice-day} {year}') : '-'); // https://stackoverflow.com/questions/9781218/how-to-change-node-jss-console-font-color const reset = '\x1b[0m'; @@ -8888,20 +8815,19 @@ console.log(msg + '\n'); }); }; - var debug$1 = debug; var plugin = { tags, - words, + words: lex, compute: compute$1, - api: api$1, + api, mutate: world => { // add our regexes world.model.two.regexText = world.model.two.regexText || []; world.model.two.regexText = world.model.two.regexText.concat(regex); // add our debug('dates') method world.methods.one.debug = world.methods.one.debug || {}; - world.methods.one.debug.dates = debug$1; + world.methods.one.debug.dates = debug; }, hooks: ['dates'], version, diff --git a/plugins/dates/builds/compromise-dates.min.js b/plugins/dates/builds/compromise-dates.min.js index d4e29ffdc..0d00d2893 100644 --- a/plugins/dates/builds/compromise-dates.min.js +++ b/plugins/dates/builds/compromise-dates.min.js @@ -1 +1 @@ -var e,t;e=this,t=function(){var e=function(e){let t=null;return e.has("^(between|within) #Date")?e:(e.has("#Month")&&(t=e.match("[#Month #Value] and? #Month",0).ifNo("@hasDash$"),t.found&&(e=e.splitAfter(t)),t=e.match("[#Value #Month] and? #Value #Month",0),t.found&&(e=e.splitAfter(t)),t=e.match("^[#Month] and? #Month #Ordinal?$",0),t.found&&(e=e.splitAfter(t)),t=e.match("[#Month #Value] #Month",0).ifNo("@hasDash$"),t.found&&(e=e.splitAfter(t))),e.has("#WeekDay")&&(t=e.match("^[#WeekDay] and? #WeekDay$",0).ifNo("@hasDash$"),t.found&&(e=e.splitAfter(t)),t=e.match("#WeekDay #WeekDay and? #WeekDay"),t.found&&(e=e.splitOn("#WeekDay")),t=e.match("[#WeekDay] (and|or|this|next)? #WeekDay",0).ifNo("@hasDash$"),t.found&&(e=e.splitAfter("#WeekDay"))),t=e.match("(this|next) #Duration [(today|tomorrow|yesterday)]",0),t.found&&(e=e.splitBefore(t)),t=e.match("[(today|tomorrow|yesterday)] #Value #Month",0),t.found&&(e=e.splitAfter(t)),t=e.match("[(today|tomorrow|yesterday)] (today|tomorrow|yesterday|#WeekDay)",0).ifNo("@hasDash$"),t.found&&(e=e.splitAfter(t)),t=e.match("#Year [and] #Year",0),t.found&&(e=e.splitAfter(t)),e=(e=e.not("^and")).not("and$"))},t=function(t){let a=t.match("#Date+");a=a.filter((e=>{let t=e.has("^#Duration+$")||e.has("^#Value #Duration+$");return!(!0!==t||!e.has("(#FinancialQuarter|quarter)"))||!1===t}));let n=a.match("[#Cardinal #Duration (in|on|this|next|during|for)] #Date",0);return n.found&&(a=a.not(n)),n=a.match("[#Cardinal #Duration] #WeekDay",0),n.found&&(a=a.not(n)),n=a.match("#Date [for #Value #Duration]$",0),n.found&&(a=a.not(n)),n=a.match("[#Cardinal #Duration] #Date",0),n.found&&!a.has("#Cardinal #Duration] (ago|from|before|after|back)")&&(a=a.not(n)),n=a.match("for #Cardinal #Duration"),n.found&&(a=a.not(n)),a=a.notIf("^one (#WeekDay|#Month)$"),a=e(a),a=a.notIf("(#Money|#Percentage)"),a=a.notIf("^per #Duration"),a};const a={second:!0,minute:!0,hour:!0,day:!0,week:!0,weekend:!0,month:!0,season:!0,quarter:!0,year:!0},n={wk:"week",min:"minute",sec:"second",weekend:"week"},r=function(e){let t=e.match("#Duration").text("normal");return t=t.replace(/s$/,""),n.hasOwnProperty(t)&&(t=n[t]),t};var i=function(e){let t={},n=e.none(),i=e.match("#DateShift+");if(!1===i.found)return{res:t,m:n};if(i.match("#Cardinal #Duration").forEach((e=>{let n=e.match("#Cardinal").numbers().get()[0];if(n&&"number"==typeof n){let i=r(e);!0===a[i]&&(t[i]=n)}})),!0===i.has("(before|ago|hence|back)$")&&Object.keys(t).forEach((e=>t[e]*=-1)),n=i.match("#Cardinal #Duration"),i=i.not(n),n=i.match("[#Duration] [(after|before)]"),n.found){let e=n.groups("unit").text("reduced"),a=n.groups("dir").text("reduced");"after"===a?t[e]=1:"before"===a&&(t[e]=-1)}if(n=i.match("half (a|an) [#Duration]",0),n.found){let e=r(n);t[e]=.5}return n=e.match("#DateShift+"),{result:t,m:n}};const o={minute:!0};var s=function(e){let t=e.match("[#Value] [#Duration+] (of|in)");if(t.found){let e=t.groups(),a=e.num.numbers().get()[0],n=e.unit.text("reduced"),r={unit:n,num:Number(a)||0};return o[n]||(r.num-=1),{result:r,m:t}}if(t=e.match("[(first|initial|last|final)] [#Duration+] (of|in)"),t.found){let e=t.groups(),a=e.dir.text("reduced");return"initial"===a&&(a="first"),"final"===a&&(a="last"),{result:{unit:e.unit.text("reduced"),dir:a},m:t}}return{result:null,m:e.none()}};const u=(e,t,a)=>{const[n,r]=e.split("/"),[i,o]=r.split(":");return Date.UTC(a,n-1,i,o)-36e5*t};var d=(e,t,a,n,r)=>{const i=new Date(e).getUTCFullYear(),o=u(t,r,i),s=u(a,n,i);return e>=o&&e{let t=e.timezones[e.tz];if(void 0===t)return console.warn("Warning: couldn't find timezone "+e.tz),0;if(void 0===t.dst)return t.offset;let a=t.offset,n=t.offset+1;"n"===t.hem&&(n=a-1);let r=t.dst.split("->");return!0===d(e.epoch,r[0],r[1],a,n)?a:n},h={"9|s":"2/dili,2/jayapura","9|n":"2/chita,2/khandyga,2/pyongyang,2/seoul,2/tokyo,2/yakutsk,11/palau,japan,rok","9.5|s|04/07:03->10/06:02":"4/adelaide,4/broken_hill,4/south,4/yancowinna","9.5|s":"4/darwin,4/north","8|s|03/13:01->10/02:00":"12/casey","8|s":"2/kuala_lumpur,2/makassar,2/singapore,4/perth,2/ujung_pandang,4/west,singapore","8|n":"2/brunei,2/choibalsan,2/hong_kong,2/irkutsk,2/kuching,2/macau,2/manila,2/shanghai,2/taipei,2/ulaanbaatar,2/chongqing,2/chungking,2/harbin,2/macao,2/ulan_bator,hongkong,prc,roc","8.75|s":"4/eucla","7|s":"12/davis,2/jakarta,9/christmas","7|n":"2/bangkok,2/barnaul,2/hovd,2/krasnoyarsk,2/novokuznetsk,2/novosibirsk,2/phnom_penh,2/pontianak,2/ho_chi_minh,2/tomsk,2/vientiane,2/saigon","6|s":"12/vostok","6|n":"2/almaty,2/bishkek,2/dhaka,2/omsk,2/qyzylorda,2/qostanay,2/thimphu,2/urumqi,9/chagos,2/dacca,2/kashgar,2/thimbu","6.5|n":"2/yangon,9/cocos,2/rangoon","5|s":"12/mawson,9/kerguelen","5|n":"2/aqtau,2/aqtobe,2/ashgabat,2/atyrau,2/dushanbe,2/karachi,2/oral,2/samarkand,2/tashkent,2/yekaterinburg,9/maldives,2/ashkhabad","5.75|n":"2/kathmandu,2/katmandu","5.5|n":"2/kolkata,2/colombo,2/calcutta","4|s":"9/reunion","4|n":"2/baku,2/dubai,2/muscat,2/tbilisi,2/yerevan,8/astrakhan,8/samara,8/saratov,8/ulyanovsk,8/volgograd,9/mahe,9/mauritius,2/volgograd","4.5|n":"2/kabul","3|s":"12/syowa,9/antananarivo","3|n|04/26:00->10/31:24":"0/cairo,egypt","3|n|04/20:02->10/26:02":"2/gaza,2/hebron","3|n|03/31:03->10/27:04":"2/famagusta,2/nicosia,8/athens,8/bucharest,8/helsinki,8/kyiv,8/mariehamn,8/riga,8/sofia,8/tallinn,8/uzhgorod,8/vilnius,8/zaporozhye,8/nicosia,8/kiev,eet","3|n|03/31:02->10/27:03":"8/chisinau,8/tiraspol","3|n|03/31:00->10/26:24":"2/beirut","3|n|03/29:02->10/27:02":"2/jerusalem,2/tel_aviv,israel","3|n":"0/addis_ababa,0/asmara,0/asmera,0/dar_es_salaam,0/djibouti,0/juba,0/kampala,0/mogadishu,0/nairobi,2/aden,2/amman,2/baghdad,2/bahrain,2/damascus,2/kuwait,2/qatar,2/riyadh,8/istanbul,8/kirov,8/minsk,8/moscow,8/simferopol,9/comoro,9/mayotte,2/istanbul,turkey,w-su","3.5|n":"2/tehran,iran","2|s|03/31:02->10/27:02":"12/troll","2|s":"0/gaborone,0/harare,0/johannesburg,0/lubumbashi,0/lusaka,0/maputo,0/maseru,0/mbabane","2|n|03/31:02->10/27:03":"0/ceuta,arctic/longyearbyen,8/amsterdam,8/andorra,8/belgrade,8/berlin,8/bratislava,8/brussels,8/budapest,8/busingen,8/copenhagen,8/gibraltar,8/ljubljana,8/luxembourg,8/madrid,8/malta,8/monaco,8/oslo,8/paris,8/podgorica,8/prague,8/rome,8/san_marino,8/sarajevo,8/skopje,8/stockholm,8/tirane,8/vaduz,8/vatican,8/vienna,8/warsaw,8/zagreb,8/zurich,3/jan_mayen,poland,cet,met","2|n":"0/blantyre,0/bujumbura,0/khartoum,0/kigali,0/tripoli,8/kaliningrad,libya","1|s":"0/brazzaville,0/kinshasa,0/luanda,0/windhoek","1|n|03/31:01->10/27:02":"3/canary,3/faroe,3/madeira,8/dublin,8/guernsey,8/isle_of_man,8/jersey,8/lisbon,8/london,3/faeroe,eire,8/belfast,gb-eire,gb,portugal,wet","1|n":"0/algiers,0/bangui,0/douala,0/lagos,0/libreville,0/malabo,0/ndjamena,0/niamey,0/porto-novo,0/tunis","14|n":"11/kiritimati","13|s":"11/apia,11/tongatapu","13|n":"11/enderbury,11/kanton,11/fakaofo","12|s|04/07:03->09/29:02":"12/mcmurdo,11/auckland,12/south_pole,nz","12|s":"11/fiji","12|n":"2/anadyr,2/kamchatka,2/srednekolymsk,11/funafuti,11/kwajalein,11/majuro,11/nauru,11/tarawa,11/wake,11/wallis,kwajalein","12.75|s|04/07:03->04/07:02":"11/chatham,nz-chat","11|s|04/07:03->10/06:02":"12/macquarie","11|s":"11/bougainville","11|n":"2/magadan,2/sakhalin,11/efate,11/guadalcanal,11/kosrae,11/noumea,11/pohnpei,11/ponape","11.5|n|04/07:03->10/06:02":"11/norfolk","10|s|04/07:03->10/06:02":"4/currie,4/hobart,4/melbourne,4/sydney,4/act,4/canberra,4/nsw,4/tasmania,4/victoria","10|s":"12/dumontdurville,4/brisbane,4/lindeman,11/port_moresby,4/queensland","10|n":"2/ust-nera,2/vladivostok,11/guam,11/saipan,11/chuuk,11/truk,11/yap","10.5|s|04/07:01->10/06:02":"4/lord_howe,4/lhi","0|s|03/10:03->04/14:02":"0/casablanca,0/el_aaiun","0|n|03/31:00->10/27:01":"1/scoresbysund,3/azores","0|n":"0/abidjan,0/accra,0/bamako,0/banjul,0/bissau,0/conakry,0/dakar,0/freetown,0/lome,0/monrovia,0/nouakchott,0/ouagadougou,0/sao_tome,1/danmarkshavn,3/reykjavik,3/st_helena,13/gmt,13/utc,0/timbuktu,13/greenwich,13/uct,13/universal,13/zulu,gmt-0,gmt+0,gmt0,greenwich,iceland,uct,universal,utc,zulu,13/unknown,factory","-9|n|03/10:02->11/03:02":"1/adak,1/atka,us/aleutian","-9|n":"11/gambier","-9.5|n":"11/marquesas","-8|n|03/10:02->11/03:02":"1/anchorage,1/juneau,1/metlakatla,1/nome,1/sitka,1/yakutat,us/alaska","-8|n":"11/pitcairn","-7|n|03/10:02->11/03:02":"1/los_angeles,1/santa_isabel,1/tijuana,1/vancouver,1/ensenada,6/pacific,10/bajanorte,us/pacific-new,us/pacific","-7|n":"1/creston,1/dawson,1/dawson_creek,1/fort_nelson,1/hermosillo,1/mazatlan,1/phoenix,1/whitehorse,6/yukon,10/bajasur,us/arizona,mst","-6|s|04/06:22->09/07:22":"11/easter,7/easterisland","-6|n|04/07:02->10/27:02":"1/merida","-6|n|03/10:02->11/03:02":"1/boise,1/cambridge_bay,1/denver,1/edmonton,1/inuvik,1/north_dakota,1/ojinaga,1/ciudad_juarez,1/yellowknife,1/shiprock,6/mountain,navajo,us/mountain","-6|n":"1/bahia_banderas,1/belize,1/chihuahua,1/costa_rica,1/el_salvador,1/guatemala,1/managua,1/mexico_city,1/monterrey,1/regina,1/swift_current,1/tegucigalpa,11/galapagos,6/east-saskatchewan,6/saskatchewan,10/general","-5|s":"1/lima,1/rio_branco,1/porto_acre,5/acre","-5|n|03/10:02->11/03:02":"1/chicago,1/matamoros,1/menominee,1/rainy_river,1/rankin_inlet,1/resolute,1/winnipeg,1/indiana/knox,1/indiana/tell_city,1/north_dakota/beulah,1/north_dakota/center,1/north_dakota/new_salem,1/knox_in,6/central,us/central,us/indiana-starke","-5|n":"1/bogota,1/cancun,1/cayman,1/coral_harbour,1/eirunepe,1/guayaquil,1/jamaica,1/panama,1/atikokan,jamaica,est","-4|s|04/06:24->09/08:00":"1/santiago,7/continental","-4|s|03/23:24->10/06:00":"1/asuncion","-4|s":"1/campo_grande,1/cuiaba,1/la_paz,1/manaus,5/west","-4|n|03/10:02->11/03:02":"1/detroit,1/grand_turk,1/indiana,1/indianapolis,1/iqaluit,1/kentucky,1/louisville,1/montreal,1/nassau,1/new_york,1/nipigon,1/pangnirtung,1/port-au-prince,1/thunder_bay,1/toronto,1/indiana/marengo,1/indiana/petersburg,1/indiana/vevay,1/indiana/vincennes,1/indiana/winamac,1/kentucky/monticello,1/fort_wayne,1/indiana/indianapolis,1/kentucky/louisville,6/eastern,us/east-indiana,us/eastern,us/michigan","-4|n|03/10:00->11/03:01":"1/havana,cuba","-4|n":"1/anguilla,1/antigua,1/aruba,1/barbados,1/blanc-sablon,1/boa_vista,1/caracas,1/curacao,1/dominica,1/grenada,1/guadeloupe,1/guyana,1/kralendijk,1/lower_princes,1/marigot,1/martinique,1/montserrat,1/port_of_spain,1/porto_velho,1/puerto_rico,1/santo_domingo,1/st_barthelemy,1/st_kitts,1/st_lucia,1/st_thomas,1/st_vincent,1/tortola,1/virgin","-3|s":"1/argentina,1/buenos_aires,1/catamarca,1/cordoba,1/fortaleza,1/jujuy,1/mendoza,1/montevideo,1/punta_arenas,1/sao_paulo,12/palmer,12/rothera,3/stanley,1/argentina/la_rioja,1/argentina/rio_gallegos,1/argentina/salta,1/argentina/san_juan,1/argentina/san_luis,1/argentina/tucuman,1/argentina/ushuaia,1/argentina/comodrivadavia,1/argentina/buenos_aires,1/argentina/catamarca,1/argentina/cordoba,1/argentina/jujuy,1/argentina/mendoza,1/argentina/rosario,1/rosario,5/east","-3|n|03/10:02->11/03:02":"1/glace_bay,1/goose_bay,1/halifax,1/moncton,1/thule,3/bermuda,6/atlantic","-3|n":"1/araguaina,1/bahia,1/belem,1/cayenne,1/maceio,1/paramaribo,1/recife,1/santarem","-2|n|03/30:22->10/26:23":"1/nuuk,1/godthab","-2|n|03/10:02->11/03:02":"1/miquelon","-2|n":"1/noronha,3/south_georgia,5/denoronha","-2.5|n|03/10:02->11/03:02":"1/st_johns,6/newfoundland","-1|n":"3/cape_verde","-11|n":"11/midway,11/niue,11/pago_pago,11/samoa,us/samoa","-10|n":"11/honolulu,11/johnston,11/rarotonga,11/tahiti,us/hawaii,hst"},m=["africa","america","asia","atlantic","australia","brazil","canada","chile","europe","indian","mexico","pacific","antarctica","etc"];let c={};Object.keys(h).forEach((e=>{let t=e.split("|"),a={offset:Number(t[0]),hem:t[1]};t[2]&&(a.dst=t[2]),h[e].split(",").forEach((e=>{e=e.replace(/(^[0-9]+)\//,((e,t)=>(t=Number(t),m[t]+"/"))),c[e]=a}))})),c.utc={offset:0,hem:"n"};for(let e=-14;e<=14;e+=.5){let t=e;t>0&&(t="+"+t);let a="etc/gmt"+t;c[a]={offset:-1*e,hem:"n"},a="utc/gmt"+t,c[a]={offset:-1*e,hem:"n"}}var f=c,y=()=>{let e=(()=>{if("undefined"==typeof Intl||void 0===Intl.DateTimeFormat)return null;let e=Intl.DateTimeFormat();if(void 0===e||void 0===e.resolvedOptions)return null;let t=e.resolvedOptions().timeZone;return t?t.toLowerCase():null})();return null===e?"utc":e};const p=/(\-?[0-9]+)h(rs)?/i,g=/(\-?[0-9]+)/,w=/utc([\-+]?[0-9]+)/i,b=/gmt([\-+]?[0-9]+)/i,k=function(e){return(e=Number(e))>=-13&&e<=13?"etc/gmt"+(e=((e*=-1)>0?"+":"")+e):null};var D=function(e){let t=e.match(p);if(null!==t)return k(t[1]);if(t=e.match(w),null!==t)return k(t[1]);if(t=e.match(b),null!==t){let e=-1*Number(t[1]);return k(e)}return t=e.match(g),null!==t?k(t[1]):null};let v=y();const x=Object.keys(f).reduce(((e,t)=>{let a=t.split("/")[1]||"";return a=a.replace(/_/g," "),e[a]=t,e}),{});var O=(e,t)=>{if(!e)return t.hasOwnProperty(v)||(console.warn(`Unrecognized IANA id '${v}'. Setting fallback tz to UTC.`),v="utc"),v;"string"!=typeof e&&console.error("Timezone must be a string - recieved: '",e,"'\n");let a=e.trim();if(a=a.toLowerCase(),!0===t.hasOwnProperty(a))return a;if(a=(e=>(e=(e=(e=(e=(e=e.replace(/ time/g,"")).replace(/ (standard|daylight|summer)/g,"")).replace(/\b(east|west|north|south)ern/g,"$1")).replace(/\b(africa|america|australia)n/g,"$1")).replace(/\beuropean/g,"europe")).replace(/\islands/g,"island"))(a),!0===t.hasOwnProperty(a))return a;if(!0===x.hasOwnProperty(a))return x[a];if(!0===/[0-9]/.test(a)){let e=D(a);if(e)return e}throw new Error("Spacetime: Cannot find timezone named: '"+e+"'. Please enter an IANA timezone id.")};function M(e){return e%4==0&&e%100!=0||e%400==0}function _(e){return"[object Date]"===Object.prototype.toString.call(e)&&!isNaN(e.valueOf())}function j(e){return"[object Object]"===Object.prototype.toString.call(e)}function $(e,t=2){return(e+="").length>=t?e:new Array(t-e.length+1).join("0")+e}function z(e){let t=e%10,a=e%100;return 1===t&&11!==a?e+"st":2===t&&12!==a?e+"nd":3===t&&13!==a?e+"rd":e+"th"}function T(e){return e=(e=String(e)).replace(/([0-9])(st|nd|rd|th)$/i,"$1"),parseInt(e,10)}function V(e=""){return"day"===(e=(e=(e=(e=e.toLowerCase().trim()).replace(/ies$/,"y")).replace(/s$/,"")).replace(/-/g,""))||"days"===e?"date":"min"===e||"mins"===e?"minute":e}function q(e){return"number"==typeof e?e:_(e)?e.getTime():e.epoch?e.epoch:null}function S(e,t){return!1===j(e)?t.clone().set(e):e}function C(e,t=""){const a=e>0?"+":"-",n=Math.abs(e);return`${a}${$(parseInt(""+n,10))}${t}${$(n%1*60)}`}const A={year:(new Date).getFullYear(),month:0,date:1};var E={parseArray:(e,t,a)=>{if(0===t.length)return e;let n=["year","month","date","hour","minute","second","millisecond"];for(let r=0;r{if(0===Object.keys(t).length)return e;t=Object.assign({},A,a,t);let n=Object.keys(t);for(let r=0;r0&&t<25e8&&!1===e.silent&&(console.warn(" - Warning: You are setting the date to January 1970."),console.warn(" - did input seconds instead of milliseconds?")),e.epoch=t,e}};const N=function(e){return e.epoch=Date.now(),Object.keys(e._today||{}).forEach((t=>{"function"==typeof e[t]&&(e=e[t](e._today[t]))})),e},P={now:e=>N(e),today:e=>N(e),tonight:e=>e=(e=N(e)).hour(18),tomorrow:e=>e=(e=(e=N(e)).add(1,"day")).startOf("day"),yesterday:e=>e=(e=(e=N(e)).subtract(1,"day")).startOf("day"),christmas:e=>{let t=N(e).year();return e=e.set([t,11,25,18,0,0])},"new years":e=>{let t=N(e).year();return e=e.set([t,11,31,18,0,0])}};P["new years eve"]=P["new years"];var Y=P,B=function(e){return e=(e=(e=(e=e.replace(/\b(mon|tues?|wed|wednes|thur?s?|fri|sat|satur|sun)(day)?\b/i,"")).replace(/([0-9])(th|rd|st|nd)/,"$1")).replace(/,/g,"")).replace(/ +/g," ").trim()};let H={millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5};H.date=H.day,H.month=25488e5,H.week=6048e5,H.year=3154e7,Object.keys(H).forEach((e=>{H[e+"s"]=H[e]}));var L=H;const I=(e,t,a,n,r)=>{let i=e.d[a]();if(i===t)return;let o=null===r?null:e.d[r](),s=e.epoch,u=t-i;e.epoch+=L[n]*u,"day"===n&&Math.abs(u)>28&&t<28&&(e.epoch+=L.hour),null!==r&&o!==e.d[r]()&&(e.epoch=s);const d=L[n]/2;for(;e.d[a]()t;)e.epoch-=d;null!==r&&o!==e.d[r]()&&(e.epoch=s)},W={year:{valid:e=>e>-4e3&&e<4e3,walkTo:(e,t)=>I(e,t,"getFullYear","year",null)},month:{valid:e=>e>=0&&e<=11,walkTo:(e,t)=>{let a=e.d,n=a.getMonth(),r=e.epoch,i=a.getFullYear();if(n===t)return;let o=t-n;for(e.epoch+=L.day*(28*o),i!==e.d.getFullYear()&&(e.epoch=r);e.d.getMonth()t;)e.epoch-=L.day}},date:{valid:e=>e>0&&e<=31,walkTo:(e,t)=>I(e,t,"getDate","day","getMonth")},hour:{valid:e=>e>=0&&e<24,walkTo:(e,t)=>I(e,t,"getHours","hour","getDate")},minute:{valid:e=>e>=0&&e<60,walkTo:(e,t)=>I(e,t,"getMinutes","minute","getHours")},second:{valid:e=>e>=0&&e<60,walkTo:(e,t)=>{e.epoch=e.seconds(t).epoch}},millisecond:{valid:e=>e>=0&&e<1e3,walkTo:(e,t)=>{e.epoch=e.milliseconds(t).epoch}}};var F=(e,t)=>{let a=Object.keys(W),n=e.clone();for(let r=0;r{if(!t)return e;t=t.trim().toLowerCase();let a=0;if(/^[\+-]?[0-9]{2}:[0-9]{2}$/.test(t)&&(!0===/:00/.test(t)&&(t=t.replace(/:00/,"")),!0===/:30/.test(t)&&(t=t.replace(/:30/,".5"))),/^[\+-]?[0-9]{4}$/.test(t)&&(t=t.replace(/30$/,".5")),a=parseFloat(t),Math.abs(a)>100&&(a/=100),0===a||"Z"===t||"z"===t)return e.tz="etc/gmt",e;a*=-1,a>=0&&(a="+"+a);let n="etc/gmt"+a;return e.timezones[n]&&(e.tz=n),e},Z=(e,t="")=>{let a=(t=t.replace(/^\s+/,"").toLowerCase()).match(/([0-9]{1,2}):([0-9]{1,2}):?([0-9]{1,2})?[:\.]?([0-9]{1,4})?/);if(null!==a){let[,n,r,i,o]=a;if(n=Number(n),n<0||n>24)return e.startOf("day");if(r=Number(r),a[2].length<2||r<0||r>59)return e.startOf("day");e=(e=(e=(e=e.hour(n)).minute(r)).seconds(i||0)).millisecond(function(e=""){return(e=String(e)).length>3?e=e.substring(0,3):1===e.length?e+="00":2===e.length&&(e+="0"),Number(e)||0}(o));let s=t.match(/[\b0-9] ?(am|pm)\b/);return null!==s&&s[1]&&(e=e.ampm(s[1])),e}if(a=t.match(/([0-9]+) ?(am|pm)/),null!==a&&a[1]){let t=Number(a[1]);return t>12||t<1?e.startOf("day"):e=(e=(e=e.hour(a[1]||0)).ampm(a[2])).startOf("hour")}return e=e.startOf("day")};let X=U();const ee=e=>{if(!0!==J.hasOwnProperty(e.month))return!1;if(1===e.month)return!!(M(e.year)&&e.date<=29)||e.date<=28;let t=J[e.month]||0;return e.date<=t},te=(e="",t)=>{if(e=e.trim(),!0===/^'[0-9][0-9]$/.test(e)){let t=Number(e.replace(/'/,""));return t>50?1900+t:2e3+t}let a=parseInt(e,10);return!a&&t&&(a=t.year),a=a||(new Date).getFullYear(),a},ae=function(e){return"sept"===(e=e.toLowerCase().trim())?X.sep:X[e]};var ne=[{reg:/^([0-9]{1,2})[\-\/.]([0-9]{1,2})[\-\/.]?([0-9]{4})?( [0-9]{1,2}:[0-9]{2}:?[0-9]{0,2}? ?(am|pm|gmt))?$/i,parse:(e,t)=>{let a=parseInt(t[1],10)-1,n=parseInt(t[2],10);(e.british||a>=12)&&(n=parseInt(t[1],10),a=parseInt(t[2],10)-1);let r={date:n,month:a,year:te(t[3],e._today)||(new Date).getFullYear()};return!1===ee(r)?(e.epoch=null,e):(F(e,r),e=Z(e,t[4]))}},{reg:/^([a-z]+)[\-\/\. ]([0-9]{1,2})[\-\/\. ]?([0-9]{4}|'[0-9]{2})?( [0-9]{1,2}(:[0-9]{0,2})?(:[0-9]{0,3})? ?(am|pm)?)?$/i,parse:(e,t)=>{let a={year:te(t[3],e._today),month:ae(t[1]),date:T(t[2]||"")};return!1===ee(a)?(e.epoch=null,e):(F(e,a),e=Z(e,t[4]))}},{reg:/^([a-z]+) ([0-9]{1,2})( [0-9]{4})?( ([0-9:]+( ?am| ?pm| ?gmt)?))?$/i,parse:(e,t)=>{let a={year:te(t[3],e._today),month:ae(t[1]),date:T(t[2]||"")};return!1===ee(a)?(e.epoch=null,e):(F(e,a),e=Z(e,t[4]))}},{reg:/^([a-z]+) ([0-9]{1,2}) ([0-9]{1,2}:[0-9]{2}:?[0-9]{0,2})( \+[0-9]{4})?( [0-9]{4})?$/i,parse:(e,t)=>{let[,a,n,r,i,o]=t,s={year:te(o,e._today),month:ae(a),date:T(n||"")};return!1===ee(s)?(e.epoch=null,e):(F(e,s),e=G(e,i),e=Z(e,r))}}],re=[{reg:/^([0-9]{4})[\-\/]([0-9]{2})$/i,parse:(e,t)=>{let a={year:t[1],month:parseInt(t[2],10)-1,date:1};return!1===ee(a)?(e.epoch=null,e):(F(e,a),e=Z(e,t[4]))}},{reg:/^([a-z]+) ([0-9]{4})$/i,parse:(e,t)=>{let a={year:te(t[2],e._today),month:ae(t[1]),date:e._today.date||1};return!1===ee(a)?(e.epoch=null,e):(F(e,a),e=Z(e,t[4]))}},{reg:/^(q[0-9])( of)?( [0-9]{4})?/i,parse:(e,t)=>{let a=t[1]||"";e=e.quarter(a);let n=t[3]||"";return n&&(n=n.trim(),e=e.year(n)),e}},{reg:/^(spring|summer|winter|fall|autumn)( of)?( [0-9]{4})?/i,parse:(e,t)=>{let a=t[1]||"";e=e.season(a);let n=t[3]||"";return n&&(n=n.trim(),e=e.year(n)),e}},{reg:/^[0-9,]+ ?b\.?c\.?$/i,parse:(e,t)=>{let a=t[0]||"";a=a.replace(/^([0-9,]+) ?b\.?c\.?$/i,"-$1");let n=new Date,r={year:parseInt(a.trim(),10),month:n.getMonth(),date:n.getDate()};return!1===ee(r)?(e.epoch=null,e):(F(e,r),e=Z(e))}},{reg:/^[0-9,]+ ?(a\.?d\.?|c\.?e\.?)$/i,parse:(e,t)=>{let a=t[0]||"";a=a.replace(/,/g,"");let n=new Date,r={year:parseInt(a.trim(),10),month:n.getMonth(),date:n.getDate()};return!1===ee(r)?(e.epoch=null,e):(F(e,r),e=Z(e))}},{reg:/^[0-9]{4}( ?a\.?d\.?)?$/i,parse:(e,t)=>{let a=e._today;a.month&&!a.date&&(a.date=1);let n=new Date,r={year:te(t[0],a),month:a.month||n.getMonth(),date:a.date||n.getDate()};return!1===ee(r)?(e.epoch=null,e):(F(e,r),e=Z(e))}}],ie=[].concat([{reg:/^(\-?0?0?[0-9]{3,4})-([0-9]{1,2})-([0-9]{1,2})[T| ]([0-9.:]+)(Z|[0-9\-\+:]+)?$/i,parse:(e,t)=>{let a={year:t[1],month:parseInt(t[2],10)-1,date:t[3]};return!1===ee(a)?(e.epoch=null,e):(G(e,t[5]),F(e,a),e=Z(e,t[4]))}},{reg:/^([0-9]{4})[\-\/\. ]([0-9]{1,2})[\-\/\. ]([0-9]{1,2})( [0-9]{1,2}(:[0-9]{0,2})?(:[0-9]{0,3})? ?(am|pm)?)?$/i,parse:(e,t)=>{let a={year:t[1],month:parseInt(t[2],10)-1,date:parseInt(t[3],10)};return a.month>=12&&(a.date=parseInt(t[2],10),a.month=parseInt(t[3],10)-1),!1===ee(a)?(e.epoch=null,e):(F(e,a),e=Z(e,t[4]))}},{reg:/^([0-9]{4})[\-\/\. ]([a-z]+)[\-\/\. ]([0-9]{1,2})( [0-9]{1,2}(:[0-9]{0,2})?(:[0-9]{0,3})? ?(am|pm)?)?$/i,parse:(e,t)=>{let a={year:te(t[1],e._today),month:ae(t[2]),date:T(t[3]||"")};return!1===ee(a)?(e.epoch=null,e):(F(e,a),e=Z(e,t[4]))}}],ne,[{reg:/^([0-9]{1,2})[\-\/]([a-z]+)[\-\/]?([0-9]{4})?$/i,parse:(e,t)=>{let a={year:te(t[3],e._today),month:ae(t[2]),date:T(t[1]||"")};return!1===ee(a)?(e.epoch=null,e):(F(e,a),e=Z(e,t[4]))}},{reg:/^([0-9]{1,2})( [a-z]+)( [0-9]{4}| '[0-9]{2})? ?([0-9]{1,2}:[0-9]{2}:?[0-9]{0,2}? ?(am|pm|gmt))?$/i,parse:(e,t)=>{let a={year:te(t[3],e._today),month:ae(t[2]),date:T(t[1])};return a.month&&!1!==ee(a)?(F(e,a),e=Z(e,t[4])):(e.epoch=null,e)}},{reg:/^([0-9]{1,2})[\. -/]([a-z]+)[\. -/]([0-9]{4})?( [0-9]{1,2}(:[0-9]{0,2})?(:[0-9]{0,3})? ?(am|pm)?)?$/i,parse:(e,t)=>{let a={date:Number(t[1]),month:ae(t[2]),year:Number(t[3])};return!1===ee(a)?(e.epoch=null,e):(F(e,a),e=e.startOf("day"),e=Z(e,t[4]))}}],re),oe=function(e,t,a){for(let n=0;n{let a=e._today||le;if("number"==typeof t)return de(e,t);if(e.epoch=Date.now(),e._today&&j(e._today)&&Object.keys(e._today).length>0){let t=ue(e,a,le);t.isValid()&&(e.epoch=t.epoch)}return null==t||""===t?e:!0===_(t)?(e.epoch=t.getTime(),e):!0===function(e){return"[object Array]"===Object.prototype.toString.call(e)}(t)?e=se(e,t,a):!0===j(t)?t.epoch?(e.epoch=t.epoch,e.tz=t.tz,e):e=ue(e,t,a):"string"!=typeof t?e:(t=B(t),!0===Y.hasOwnProperty(t)?e=Y[t](e):oe(e,t))};let me=["sun","mon","tue","wed","thu","fri","sat"],ce=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"];function fe(){return me}function ye(){return ce}const pe={mo:1,tu:2,we:3,th:4,fr:5,sa:6,su:7,tues:2,weds:3,wedn:3,thur:4,thurs:4};let ge=!0;var we=e=>{let t=e.timezone().current.offset;return t?C(t,":"):"Z"};const be=e=>ge?function(e){return e?e[0].toUpperCase()+e.substr(1):""}(e):e,ke={day:e=>be(e.dayName()),"day-short":e=>be(fe()[e.day()]),"day-number":e=>e.day(),"day-ordinal":e=>z(e.day()),"day-pad":e=>$(e.day()),date:e=>e.date(),"date-ordinal":e=>z(e.date()),"date-pad":e=>$(e.date()),month:e=>be(e.monthName()),"month-short":e=>be(R()[e.month()]),"month-number":e=>e.month(),"month-ordinal":e=>z(e.month()),"month-pad":e=>$(e.month()),"iso-month":e=>$(e.month()+1),year:e=>{let t=e.year();return t>0?t:(t=Math.abs(t),t+" BC")},"year-short":e=>{let t=e.year();return t>0?`'${String(e.year()).substr(2,4)}`:(t=Math.abs(t),t+" BC")},"iso-year":e=>{let t=e.year(),a=t<0,n=$(Math.abs(t),4);return a&&(n=$(n,6),n="-"+n),n},time:e=>e.time(),"time-24":e=>`${e.hour24()}:${$(e.minute())}`,hour:e=>e.hour12(),"hour-pad":e=>$(e.hour12()),"hour-24":e=>e.hour24(),"hour-24-pad":e=>$(e.hour24()),minute:e=>e.minute(),"minute-pad":e=>$(e.minute()),second:e=>e.second(),"second-pad":e=>$(e.second()),millisecond:e=>e.millisecond(),"millisecond-pad":e=>$(e.millisecond(),3),ampm:e=>e.ampm(),AMPM:e=>e.ampm().toUpperCase(),quarter:e=>"Q"+e.quarter(),season:e=>e.season(),era:e=>e.era(),json:e=>e.json(),timezone:e=>e.timezone().name,offset:e=>we(e),numeric:e=>`${e.year()}/${$(e.month()+1)}/${$(e.date())}`,"numeric-us":e=>`${$(e.month()+1)}/${$(e.date())}/${e.year()}`,"numeric-uk":e=>`${$(e.date())}/${$(e.month()+1)}/${e.year()}`,"mm/dd":e=>`${$(e.month()+1)}/${$(e.date())}`,iso:e=>`${e.format("iso-year")}-${$(e.month()+1)}-${$(e.date())}T${$(e.h24())}:${$(e.minute())}:${$(e.second())}.${$(e.millisecond(),3)}${we(e)}`,"iso-short":e=>{let t=$(e.month()+1),a=$(e.date());var n;return`${(n=e.year())>=0?$(n,4):"-"+$(n=Math.abs(n),4)}-${t}-${a}`},"iso-utc":e=>new Date(e.epoch).toISOString(),nice:e=>`${R()[e.month()]} ${z(e.date())}, ${e.time()}`,"nice-24":e=>`${R()[e.month()]} ${z(e.date())}, ${e.hour24()}:${$(e.minute())}`,"nice-year":e=>`${R()[e.month()]} ${z(e.date())}, ${e.year()}`,"nice-day":e=>`${fe()[e.day()]} ${be(R()[e.month()])} ${z(e.date())}`,"nice-full":e=>`${e.dayName()} ${be(e.monthName())} ${z(e.date())}, ${e.time()}`,"nice-full-24":e=>`${e.dayName()} ${be(e.monthName())} ${z(e.date())}, ${e.hour24()}:${$(e.minute())}`},De={"day-name":"day","month-name":"month","iso 8601":"iso","time-h24":"time-24","time-12":"time","time-h12":"time",tz:"timezone","day-num":"day-number","month-num":"month-number","month-iso":"iso-month","year-iso":"iso-year","nice-short":"nice","nice-short-24":"nice-24",mdy:"numeric-us",dmy:"numeric-uk",ymd:"numeric","yyyy/mm/dd":"numeric","mm/dd/yyyy":"numeric-us","dd/mm/yyyy":"numeric-us","little-endian":"numeric-uk","big-endian":"numeric","day-nice":"nice-day"};Object.keys(De).forEach((e=>ke[e]=ke[De[e]]));var ve=(e,t="")=>{if(!0!==e.isValid())return"";if(ke.hasOwnProperty(t)){let a=ke[t](e)||"";return"json"!==t&&(a=String(a),"ampm"!==t.toLowerCase()&&(a=be(a))),a}if(-1!==t.indexOf("{")){let a=/\{(.+?)\}/g;return t=t.replace(a,((t,a)=>{if(a=a.toLowerCase().trim(),ke.hasOwnProperty(a)){let t=String(ke[a](e));return"ampm"!==a.toLowerCase()?be(t):t}return""})),t}return e.format("iso-short")};const xe={G:e=>e.era(),GG:e=>e.era(),GGG:e=>e.era(),GGGG:e=>"AD"===e.era()?"Anno Domini":"Before Christ",y:e=>e.year(),yy:e=>$(Number(String(e.year()).substr(2,4))),yyy:e=>e.year(),yyyy:e=>e.year(),yyyyy:e=>"0"+e.year(),Q:e=>e.quarter(),QQ:e=>e.quarter(),QQQ:e=>e.quarter(),QQQQ:e=>e.quarter(),M:e=>e.month()+1,MM:e=>$(e.month()+1),MMM:e=>e.format("month-short"),MMMM:e=>e.format("month"),w:e=>e.week(),ww:e=>$(e.week()),d:e=>e.date(),dd:e=>$(e.date()),D:e=>e.dayOfYear(),DD:e=>$(e.dayOfYear()),DDD:e=>$(e.dayOfYear(),3),E:e=>e.format("day-short"),EE:e=>e.format("day-short"),EEE:e=>e.format("day-short"),EEEE:e=>e.format("day"),EEEEE:e=>e.format("day")[0],e:e=>e.day(),ee:e=>e.day(),eee:e=>e.format("day-short"),eeee:e=>e.format("day"),eeeee:e=>e.format("day")[0],a:e=>e.ampm().toUpperCase(),aa:e=>e.ampm().toUpperCase(),aaa:e=>e.ampm().toUpperCase(),aaaa:e=>e.ampm().toUpperCase(),h:e=>e.h12(),hh:e=>$(e.h12()),H:e=>e.hour(),HH:e=>$(e.hour()),m:e=>e.minute(),mm:e=>$(e.minute()),s:e=>e.second(),ss:e=>$(e.second()),SSS:e=>$(e.millisecond(),3),A:e=>e.epoch-e.startOf("day").epoch,z:e=>e.timezone().name,zz:e=>e.timezone().name,zzz:e=>e.timezone().name,zzzz:e=>e.timezone().name,Z:e=>C(e.timezone().current.offset),ZZ:e=>C(e.timezone().current.offset),ZZZ:e=>C(e.timezone().current.offset),ZZZZ:e=>C(e.timezone().current.offset,":")},Oe=(e,t,a)=>{let n=e,r=t;for(let i=0;i{let a=t.split("");return a=function(e){for(let t=0;te))}(a),a=function(e){for(let t=0;te))).map((e=>("''"===e&&(e="'"),e)))}(a),a.reduce(((t,a)=>(void 0!==xe[a]?t+=xe[a](e)||"":(/^'.{1,}'$/.test(a)&&(a=a.replace(/'/g,"")),t+=a),t)),"")};const _e=["year","season","quarter","month","week","day","quarterHour","hour","minute"],je=function(e,t){let a=e.clone().startOf(t),n=e.clone().endOf(t).epoch-a.epoch,r=(e.epoch-a.epoch)/n;return parseFloat(r.toFixed(2))};var $e=(e,t)=>{if(t)return t=V(t),je(e,t);let a={};return _e.forEach((t=>{a[t]=je(e,t)})),a},ze=(e,t)=>{let a=e.progress();return"quarterhour"===(t=V(t))&&(t="quarterHour"),void 0!==a[t]?(a[t]>.5&&(e=e.add(1,t)),e=e.startOf(t)):!1===e.silent&&console.warn("no known unit '"+t+"'"),e};const Te=(e,t,a)=>{let n=0;for(e=e.clone();e.isBefore(t);)e=e.add(1,a),n+=1;return e.isAfter(t,a)&&(n-=1),n};var Ve=(e,t,a)=>e.isBefore(t)?Te(e,t,a):-1*Te(t,e,a),qe=function(e,t){let a=t.epoch-e.epoch,n={milliseconds:a,seconds:parseInt(a/1e3,10)};n.minutes=parseInt(n.seconds/60,10),n.hours=parseInt(n.minutes/60,10);let r=e.clone();return n.years=((e,t)=>{let a=t.year()-e.year();return(e=e.year(t.year())).isAfter(t)&&(a-=1),a})(r,t),r=e.add(n.years,"year"),n.months=12*n.years,r=e.add(n.months,"month"),n.months+=Ve(r,t,"month"),n.quarters=4*n.years,n.quarters+=parseInt(n.months%12/3,10),n.weeks=52*n.years,r=e.add(n.weeks,"week"),n.weeks+=Ve(r,t,"week"),n.days=7*n.weeks,r=e.add(n.days,"day"),n.days+=Ve(r,t,"day"),n},Se=function(e,t,a){t=S(t,e);let n=!1;if(e.isAfter(t)){let a=e;e=t,t=a,n=!0}let r=qe(e,t);return n&&(r=function(e){return Object.keys(e).forEach((t=>{e[t]*=-1})),e}(r)),a?(a=V(a),!0!==/s$/.test(a)&&(a+="s"),"dates"===a&&(a="days"),r[a]):r};const Ce=e=>Math.abs(e)||0;var Ae=function(e){let t="P";return t+=Ce(e.years)+"Y",t+=Ce(e.months)+"M",t+=Ce(e.days)+"DT",t+=Ce(e.hours)+"H",t+=Ce(e.minutes)+"M",t+=Ce(e.seconds)+"S",t};let Ee={second:"second",seconds:"seconds",minute:"minute",minutes:"minutes",hour:"hour",hours:"hours",day:"day",days:"days",month:"month",months:"months",year:"year",years:"years"};function Ne(e){return Ee[e]||""}let Pe="past",Ye="future",Be="present",He="now",Le="almost",Ie="over",We=e=>`${e} ago`,Fe=e=>`in ${e}`;function Je(e){return We(e)}function Ke(e){return Fe(e)}function Qe(){return He}const Re={months:{almost:10,over:4},days:{almost:25,over:10},hours:{almost:20,over:8},minutes:{almost:50,over:20},seconds:{almost:50,over:20}};function Ue(e,t){return 1===e?e+" "+Ne(t.slice(0,-1)):e+" "+Ne(t)}var Ge=function(e){let t=null,a=null,n=[],r=[];return Object.keys(e).forEach(((i,o,s)=>{const u=Math.abs(e[i]);if(0===u)return;n.push(u+i[0]);const d=Ue(u,i);if(r.push(d),!t){if(t=a=d,o>4)return;const n=s[o+1],r=Math.abs(e[n]);r>Re[n].almost?(t=Ue(u+1,i),a=Le+" "+t):r>Re[n].over&&(a=Ie+" "+d)}})),{qualified:a,rounded:t,abbreviated:n,englishValues:r}},Ze=(e,t)=>{const a=function(e,t){const a=e.isBefore(t),n=a?t:e;let r=a?e:t;r=r.clone();const i={years:0,months:0,days:0,hours:0,minutes:0,seconds:0};return Object.keys(i).forEach((e=>{if(r.isSame(n,e))return;let t=r.diff(n,e);r=r.add(t,e),i[e]=t})),a&&Object.keys(i).forEach((e=>{0!==i[e]&&(i[e]*=-1)})),i}(e,t=S(t,e));if(!0===Object.keys(a).every((e=>!a[e])))return{diff:a,rounded:Qe(),qualified:Qe(),precise:Qe(),abbreviated:[],iso:"P0Y0M0DT0H0M0S",direction:Be};let n,r=Ye,{rounded:i,qualified:o,englishValues:s,abbreviated:u}=Ge(a);n=s.splice(0,2).join(", "),!0===e.isAfter(t)?(i=Je(i),o=Je(o),n=Je(n),r=Pe):(i=Ke(i),o=Ke(o),n=Ke(n));let d=Ae(a);return{diff:a,rounded:i,qualified:o,precise:n,abbreviated:u,iso:d,direction:r}},Xe={north:[["spring",2,1],["summer",5,1],["fall",8,1],["autumn",8,1],["winter",11,1]],south:[["fall",2,1],["autumn",2,1],["winter",5,1],["spring",8,1],["summer",11,1]]},et=[null,[0,1],[3,1],[6,1],[9,1]];const tt={second:e=>(F(e,{millisecond:0}),e),minute:e=>(F(e,{second:0,millisecond:0}),e),quarterhour:e=>{let t=e.minutes();return e=t>=45?e.minutes(45):t>=30?e.minutes(30):t>=15?e.minutes(15):e.minutes(0),F(e,{second:0,millisecond:0}),e},hour:e=>(F(e,{minute:0,second:0,millisecond:0}),e),day:e=>(F(e,{hour:0,minute:0,second:0,millisecond:0}),e),week:e=>{let t=e.clone();return(e=e.day(e._weekStart)).isAfter(t)&&(e=e.subtract(1,"week")),F(e,{hour:0,minute:0,second:0,millisecond:0}),e},month:e=>(F(e,{date:1,hour:0,minute:0,second:0,millisecond:0}),e),quarter:e=>{let t=e.quarter();return et[t]&&F(e,{month:et[t][0],date:et[t][1],hour:0,minute:0,second:0,millisecond:0}),e},season:e=>{let t=e.season(),a="north";"South"===e.hemisphere()&&(a="south");for(let n=0;n(F(e,{month:0,date:1,hour:0,minute:0,second:0,millisecond:0}),e),decade:e=>{let t=(e=e.startOf("year")).year(),a=10*parseInt(t/10,10);return e=e.year(a)},century:e=>{let t=(e=e.startOf("year")).year(),a=100*parseInt(t/100,10);return e=e.year(a)}};tt.date=tt.day;var at=function(e,t,a){if(!t||!a)return[];if(t=V(t),a=e.clone().set(a),e.isAfter(a)){let t=e;e=a,a=t}let n=e.clone();!function(e){return!!fe().find((t=>t===e))||!!ye().find((t=>t===e))}(t)?n.startOf(t).isBefore(e)&&(n=n.next(t)):(n=n.next(t),t="week");let r=[];for(;n.isBefore(a);)r.push(n),n=n.add(1,t);return r},nt=e=>{let t=e.timezones,a=e.tz;if(!1===t.hasOwnProperty(a)&&(a=O(e.tz,t)),null===a)return!1===e.silent&&console.warn("Warn: could not find given or local timezone - '"+e.tz+"'"),{current:{epochShift:0}};let n=t[a],r={name:(i=a,i=(i=(i=(i=(i=(i=(i=i[0].toUpperCase()+i.substr(1)).replace(/[\/_-]([a-z])/gi,(e=>e.toUpperCase()))).replace(/_(of|es)_/i,(e=>e.toLowerCase()))).replace(/\/gmt/i,"/GMT")).replace(/\/Dumontdurville$/i,"/DumontDUrville")).replace(/\/Mcmurdo$/i,"/McMurdo")).replace(/\/Port-au-prince$/i,"/Port-au-Prince")),hasDst:Boolean(n.dst),default_offset:n.offset,hemisphere:"s"===n.hem?"South":"North",current:{}};var i,o;if(r.hasDst){let e=(o=n.dst)?o.split("->"):[];r.change={start:e[0],back:e[1]}}let s=n.offset,u=s;return!0===r.hasDst&&(u="North"===r.hemisphere?s-1:n.offset+1),!1===r.hasDst?(r.current.offset=s,r.current.isDST=!1):!0===d(e.epoch,r.change.start,r.change.back,s,u)?(r.current.offset=s,r.current.isDST="North"===r.hemisphere):(r.current.offset=u,r.current.isDST="South"===r.hemisphere),r};const rt=["century","decade","year","month","date","day","hour","minute","second","millisecond"],it={set:function(e,t){let a=this.clone();return a=he(a,e),t&&(this.tz=O(t)),a},timezone:function(){return nt(this)},isDST:function(){return nt(this).current.isDST},hasDST:function(){return nt(this).hasDst},offset:function(){return 60*nt(this).current.offset},hemisphere:function(){return nt(this).hemisphere},format:function(e){return ve(this,e)},unixFmt:function(e){return Me(this,e)},startOf:function(e){return((e,t)=>{let a=e.clone();return t=V(t),tt[t]?tt[t](a):"summer"===t||"winter"===t?(a=a.season(t),tt.season(a)):a})(this,e)},endOf:function(e){return((e,t)=>{let a=e.clone();return t=V(t),tt[t]?(a=tt[t](a),a=a.add(1,t),a=a.subtract(1,"millisecond"),a):a})(this,e)},leapYear:function(){return M(this.year())},progress:function(e){return $e(this,e)},nearest:function(e){return ze(this,e)},diff:function(e,t){return Se(this,e,t)},since:function(e){return e||(e=this.clone().set()),Ze(this,e)},next:function(e){return this.add(1,e).startOf(e)},last:function(e){return this.subtract(1,e).startOf(e)},isValid:function(){return!(!this.epoch&&0!==this.epoch||isNaN(this.d.getTime()))},goto:function(e){let t=this.clone();return t.tz=O(e,t.timezones),t},every:function(e,t){if("object"==typeof e&&"string"==typeof t){let a=t;t=e,e=a}return at(this,e,t)},isAwake:function(){let e=this.hour();return!(e<8||e>22)},isAsleep:function(){return!this.isAwake()},daysInMonth:function(){switch(this.month()){case 0:case 2:case 4:case 6:case 7:case 9:case 11:return 31;case 1:return this.leapYear()?29:28;case 3:case 5:case 8:case 10:return 30;default:throw new Error("Invalid Month state.")}},log:function(){return console.log(""),console.log(ve(this,"nice-short")),this},logYear:function(){return console.log(""),console.log(ve(this,"full-short")),this},json:function(){return rt.reduce(((e,t)=>(e[t]=this[t](),e)),{})},debug:function(){let e=this.timezone(),t=this.format("MM")+" "+this.format("date-ordinal")+" "+this.year();return t+="\n - "+this.format("time"),console.log("\n\n",t+"\n - "+e.name+" ("+e.current.offset+")"),this},from:function(e){return(e=this.clone().set(e)).since(this)},fromNow:function(){return this.clone().set(Date.now()).since(this)},weekStart:function(e){if("number"==typeof e)return this._weekStart=e,this;if("string"==typeof e){e=e.toLowerCase().trim();let t=fe().indexOf(e);-1===t&&(t=ye().indexOf(e)),-1===t&&(t=1),this._weekStart=t}else console.warn("Spacetime Error: Cannot understand .weekStart() input:",e);return this}};it.inDST=it.isDST,it.round=it.nearest,it.each=it.every;var ot=it;const st=e=>("string"==typeof e&&(e=parseInt(e,10)),e),ut=["year","month","date","hour","minute","second","millisecond"],dt=(e,t,a)=>{let n=ut.indexOf(a),r=ut.slice(n,ut.length);for(let a=0;a=24?t=24:t<0&&(t=0);let n=e.clone(),r=e.hour()-t,i=r*L.hour;return e.epoch-=i,e.date()!==n.date()&&(e=n.clone(),r>1&&(r-=1),r<1&&(r+=1),i=r*L.hour,e.epoch-=i),F(e,{hour:t}),dt(e,n,"minute"),(e=lt(e,n,a,"day")).epoch},ct=function(e,t){return"string"==typeof t&&/^'[0-9]{2}$/.test(t)&&(t=t.replace(/'/,"").trim(),t=(t=Number(t))>30?1900+t:2e3+t),t=st(t),F(e,{year:t}),e.epoch};let ft="am",yt="pm";const pt={millisecond:function(e){if(void 0!==e){let t=this.clone();return t.epoch=function(e,t){t=st(t);let a=e.millisecond()-t;return e.epoch-a}(t,e),t}return this.d.getMilliseconds()},second:function(e,t){if(void 0!==e){let a=this.clone();return a.epoch=function(e,t,a){t=st(t);let n=e.clone(),r=(e.second()-t)*L.second;return e.epoch=e.epoch-r,(e=lt(e,n,a,"minute")).epoch}(a,e,t),a}return this.d.getSeconds()},minute:function(e,t){if(void 0!==e){let a=this.clone();return a.epoch=ht(a,e,t),a}return this.d.getMinutes()},hour:function(e,t){let a=this.d;if(void 0!==e){let a=this.clone();return a.epoch=mt(a,e,t),a}return a.getHours()},hourFloat:function(e,t){if(void 0!==e){let a=this.clone(),n=e%1;n*=60;let r=parseInt(e,10);return a.epoch=mt(a,r,t),a.epoch=ht(a,n,t),a}let a=this.d,n=a.getHours(),r=a.getMinutes();return r/=60,n+r},hour12:function(e,t){let a=this.d;if(void 0!==e){let a=this.clone(),n=(e=""+e).match(/^([0-9]+)(am|pm)$/);if(n){let e=parseInt(n[1],10);"pm"===n[2]&&(e+=12),a.epoch=mt(a,e,t)}return a}let n=a.getHours();return n>12&&(n-=12),0===n&&(n=12),n},time:function(e,t){if(void 0!==e){let a=this.clone();return e=e.toLowerCase().trim(),a.epoch=function(e,t,a){let n=t.match(/([0-9]{1,2})[:h]([0-9]{1,2})(:[0-9]{1,2})? ?(am|pm)?/);if(!n){if(n=t.match(/([0-9]{1,2}) ?(am|pm)/),!n)return e.epoch;n.splice(2,0,"0"),n.splice(3,0,"")}let r=!1,i=parseInt(n[1],10),o=parseInt(n[2],10);o>=60&&(o=59),i>12&&(r=!0),!1===r&&("am"===n[4]&&12===i&&(i=0),"pm"===n[4]&&i<12&&(i+=12)),n[3]=n[3]||"",n[3]=n[3].replace(/:/,"");let s=parseInt(n[3],10)||0,u=e.clone();return e=(e=(e=(e=e.hour(i)).minute(o)).second(s)).millisecond(0),(e=lt(e,u,a,"day")).epoch}(a,e,t),a}return`${this.h12()}:${$(this.minute())}${this.ampm()}`},ampm:function(e,t){let a=ft,n=this.hour();if(n>=12&&(a=yt),"string"!=typeof e)return a;let r=this.clone();return e=e.toLowerCase().trim(),n>=12&&"am"===e?(n-=12,r.hour(n,t)):n<12&&"pm"===e?(n+=12,r.hour(n,t)):r},dayTime:function(e,t){if(void 0!==e){const a={morning:"7:00",breakfast:"7:00",noon:"12:00",lunch:"12:00",afternoon:"14:00",evening:"18:00",dinner:"18:00",night:"23:00",midnight:"00:00"};let n=this.clone();return e=(e=e||"").toLowerCase(),!0===a.hasOwnProperty(e)&&(n=n.time(a[e],t)),n}let a=this.hour();return a<6?"night":a<12?"morning":a<17?"afternoon":a<22?"evening":"night"},iso:function(e){return void 0!==e?this.set(e):this.format("iso")}};var gt=pt;const wt={date:function(e,t){if(void 0!==e){let a=this.clone();return(e=parseInt(e,10))&&(a.epoch=function(e,t,a){if((t=st(t))>28){let a=e.month(),n=J[a];1===a&&29===t&&M(e.year())&&(n=29),t>n&&(t=n)}t<=0&&(t=1);let n=e.clone();return F(e,{date:t}),(e=lt(e,n,a,"month")).epoch}(a,e,t)),a}return this.d.getDate()},day:function(e,t){if(void 0===e)return this.d.getDay();let a=this.clone(),n=e;"string"==typeof e&&(e=e.toLowerCase(),pe.hasOwnProperty(e)?n=pe[e]:(n=fe().indexOf(e),-1===n&&(n=ye().indexOf(e))));let r=this.d.getDay()-n;!0===t&&r>0&&(r-=7),!1===t&&r<0&&(r+=7);let i=this.subtract(r,"days");return F(i,{hour:a.hour(),minute:a.minute(),second:a.second()}),i},dayName:function(e,t){if(void 0===e)return ye()[this.day()];let a=this.clone();return a=a.day(e,t),a}};var bt=wt;const kt=e=>e=(e=(e=e.minute(0)).second(0)).millisecond(1),Dt={dayOfYear:function(e,t){if(void 0!==e){let a=this.clone();return a.epoch=function(e,t,a){t=st(t);let n=e.clone();return(t-=1)<=0?t=0:t>=365&&(t=M(e.year())?365:364),e=(e=e.startOf("year")).add(t,"day"),dt(e,n,"hour"),(e=lt(e,n,a,"year")).epoch}(a,e,t),a}let a,n=0,r=this.d.getMonth();for(let e=1;e<=r;e++)a=new Date,a.setDate(1),a.setFullYear(this.d.getFullYear()),a.setHours(1),a.setMinutes(1),a.setMonth(e),a.setHours(-2),n+=a.getDate();return n+this.d.getDate()},week:function(e,t){if(void 0!==e){let a=this.clone();return a.epoch=function(e,t,a){let n=e.clone();return t=st(t),"december"===(e=(e=(e=e.month(0)).date(1)).day("monday")).monthName()&&e.date()>=28&&(e=e.add(1,"week")),t-=1,e=e.add(t,"weeks"),(e=lt(e,n,a,"year")).epoch}(this,e,t),a=kt(a),a}let a=this.clone();a=a.month(0),a=a.date(1),a=kt(a),a=a.day("monday"),11===a.month()&&a.date()>=25&&(a=a.add(1,"week"));let n=1;1===a.date()&&(n=0),a=a.minus(1,"second");const r=this.epoch;if(a.epoch>r)return 1;let i=0,o=4*this.month();for(a.epoch+=L.week*o,i+=o;i<=52;i++){if(a.epoch>r)return i+n;a=a.add(1,"week")}return 52},month:function(e,t){if(void 0!==e){let a=this.clone();return a.epoch=function(e,t,a){"string"==typeof t&&("sept"===t&&(t="sep"),t=U()[t.toLowerCase()]),(t=st(t))>=12&&(t=11),t<=0&&(t=0);let n=e.date();n>J[t]&&(n=J[t]);let r=e.clone();return F(e,{month:t,d:n}),(e=lt(e,r,a,"year")).epoch}(a,e,t),a}return this.d.getMonth()},monthName:function(e,t){if(void 0!==e){let a=this.clone();return a=a.month(e,t),a}return Q[this.month()]},quarter:function(e,t){if(void 0!==e&&("string"==typeof e&&(e=e.replace(/^q/i,""),e=parseInt(e,10)),et[e])){let a=this.clone(),n=et[e][0];return a=a.month(n,t),a=a.date(1,t),a=a.startOf("day"),a}let a=this.d.getMonth();for(let e=1;e=Xe[a][e][1]&&n0&&(t.epoch=ct(t,-1*a)),"ad"===e&&a<0&&(t.epoch=ct(t,-1*a)),t}return this.d.getFullYear()<0?"BC":"AD"},decade:function(e){if(void 0!==e){if(!(e=(e=(e=String(e)).replace(/([0-9])'?s$/,"$1")).replace(/([0-9])(th|rd|st|nd)/,"$1")))return console.warn("Spacetime: Invalid decade input"),this;2===e.length&&/[0-9][0-9]/.test(e)&&(e="19"+e);let t=Number(e);return isNaN(t)?this:(t=10*Math.floor(t/10),this.year(t))}return this.startOf("decade").year()},century:function(e){if(void 0!==e){"string"==typeof e&&(e=(e=(e=e.replace(/([0-9])(th|rd|st|nd)/,"$1")).replace(/([0-9]+) ?(b\.?c\.?|a\.?d\.?)/i,((e,t,a)=>(a.match(/b\.?c\.?/i)&&(t="-"+t),t)))).replace(/c$/,""));let t=Number(e);return isNaN(e)?(console.warn("Spacetime: Invalid century input"),this):(0===t&&(t=1),t=t>=0?100*(t-1):100*(t+1),this.year(t))}let t=this.startOf("century").year();return t=Math.floor(t/100),t<0?t-1:t+1},millenium:function(e){if(void 0!==e){if("string"==typeof e&&(e=e.replace(/([0-9])(th|rd|st|nd)/,"$1"),e=Number(e),isNaN(e)))return console.warn("Spacetime: Invalid millenium input"),this;e>0&&(e-=1);let t=1e3*e;return 0===t&&(t=1),this.year(t)}let t=Math.floor(this.year()/1e3);return t>=0&&(t+=1),t}};var vt=Dt;const xt=Object.assign({},gt,bt,vt);xt.milliseconds=xt.millisecond,xt.seconds=xt.second,xt.minutes=xt.minute,xt.hours=xt.hour,xt.hour24=xt.hour,xt.h12=xt.hour12,xt.h24=xt.hour24,xt.days=xt.day;var Ot=e=>{Object.keys(xt).forEach((t=>{e.prototype[t]=xt[t]}))};const Mt=function(e,t){return 1===e&&M(t)?29:J[e]},_t=(e,t)=>{if(e.month>0){let a=parseInt(e.month/12,10);e.year=t.year()+a,e.month=e.month%12}else if(e.month<0){let a=Math.abs(e.month),n=parseInt(a/12,10);a%12!=0&&(n+=1),e.year=t.year()-n,e.month=e.month%12,e.month=e.month+12,12===e.month&&(e.month=0)}return e},jt=(e,t,a)=>{let n=t.year(),r=t.month(),i=Mt(r,n);for(;a>i;)a-=i,r+=1,r>=12&&(r-=12,n+=1),i=Mt(r,n);return e.month=r,e.date=a,e},$t=(e,t,a)=>{e.year=t.year(),e.month=t.month();let n=t.date();for(e.date=n-Math.abs(a);e.date<1;){e.month-=1,e.month<0&&(e.month=11,e.year-=1);let t=Mt(e.month,e.year);e.date+=t}return e},zt=["millisecond","second","minute","hour","date","month"];let Tt={second:zt.slice(0,1),minute:zt.slice(0,2),quarterhour:zt.slice(0,2),hour:zt.slice(0,3),date:zt.slice(0,4),month:zt.slice(0,4),quarter:zt.slice(0,4),season:zt.slice(0,4),year:zt,decade:zt,century:zt};Tt.week=Tt.hour,Tt.season=Tt.date,Tt.quarter=Tt.date;const Vt={year:!0,quarter:!0,season:!0,month:!0,week:!0,date:!0},qt={month:!0,quarter:!0,season:!0,year:!0};var St=e=>{e.prototype.add=function(e,t){let a=this.clone();if(!t||0===e)return a;let n=this.clone();if("millisecond"===(t=V(t)))return a.epoch+=e,a;"fortnight"===t&&(e*=2,t="week"),L[t]?a.epoch+=L[t]*e:"week"===t||"weekend"===t?a.epoch+=L.day*(7*e):"quarter"===t||"season"===t?a.epoch+=L.month*(3*e):"quarterhour"===t&&(a.epoch+=15*L.minute*e);let r={};if(Tt[t]&&Tt[t].forEach((e=>{r[e]=n[e]()})),Vt[t]){const e=n.timezone().current.offset-a.timezone().current.offset;a.epoch+=3600*e*1e3}if("month"===t&&(r.month=n.month()+e,r=_t(r,n)),"week"===t){let t=n.date()+7*e;t<=28&&t>1&&(r.date=t)}if("weekend"===t&&"saturday"!==a.dayName())a=a.day("saturday",!0);else if("date"===t){if(e<0)r=$t(r,n,e);else{let t=n.date()+e;r=jt(r,n,t)}0!==e&&n.isSame(a,"day")&&(r.date=n.date()+e)}else if("quarter"===t){if(r.month=n.month()+3*e,r.year=n.year(),r.month<0){let e=Math.floor(r.month/12),t=r.month+12*Math.abs(e);r.month=t,r.year+=e}else if(r.month>=12){let e=Math.floor(r.month/12);r.month=r.month%12,r.year+=e}r.date=n.date()}else if("year"===t){let t=n.year()+e,r=a.year();if(rt){let t=Math.floor(e/4)||1;a.epoch+=L.day*t}}else"decade"===t?r.year=a.year()+10:"century"===t&&(r.year=a.year()+100);if(qt[t]){let e=J[r.month];r.date=n.date(),r.date>e&&(r.date=e)}return Object.keys(r).length>1&&F(a,r),a},e.prototype.subtract=function(e,t){return this.clone().add(-1*e,t)},e.prototype.minus=e.prototype.subtract,e.prototype.plus=e.prototype.add};const Ct={millisecond:e=>e.epoch,second:e=>[e.year(),e.month(),e.date(),e.hour(),e.minute(),e.second()].join("-"),minute:e=>[e.year(),e.month(),e.date(),e.hour(),e.minute()].join("-"),hour:e=>[e.year(),e.month(),e.date(),e.hour()].join("-"),day:e=>[e.year(),e.month(),e.date()].join("-"),week:e=>[e.year(),e.week()].join("-"),month:e=>[e.year(),e.month()].join("-"),quarter:e=>[e.year(),e.quarter()].join("-"),year:e=>e.year()};Ct.date=Ct.day;var At=e=>{e.prototype.isSame=function(t,a,n=!0){let r=this;if(!a)return null;if("string"==typeof t&&"object"==typeof a){let e=t;t=a,a=e}return"string"!=typeof t&&"number"!=typeof t||(t=new e(t,this.timezone.name)),a=a.replace(/s$/,""),!0===n&&r.tz!==t.tz&&((t=t.clone()).tz=r.tz),Ct[a]?Ct[a](r)===Ct[a](t):null}},Et=e=>{const t={isAfter:function(e){let t=q(e=S(e,this));return null===t?null:this.epoch>t},isBefore:function(e){let t=q(e=S(e,this));return null===t?null:this.epoch{e.prototype[a]=t[a]}))},Nt=e=>{const t={i18n:function(e){var t,a,n;return j(e.days)&&(t=e.days,me=t.short||me,ce=t.long||ce),j(e.months)&&function(e){K=e.short||K,Q=e.long||Q}(e.months),n=e.useTitleCase,"[object Boolean]"===Object.prototype.toString.call(n)&&(a=e.useTitleCase,ge=a),j(e.ampm)&&function(e){ft=e.am||ft,yt=e.pm||yt}(e.ampm),j(e.distance)&&function(e){We=e.pastDistance||We,Fe=e.futureDistance||Fe,Pe=e.past||Pe,Ye=e.future||Ye,Be=e.present||Be,He=e.now||He,Le=e.almost||Le,Ie=e.over||Ie}(e.distance),j(e.units)&&function(e={}){Ee={second:e.second||Ee.second,seconds:e.seconds||Ee.seconds,minute:e.minute||Ee.minute,minutes:e.minutes||Ee.minutes,hour:e.hour||Ee.hour,hours:e.hours||Ee.hours,day:e.day||Ee.day,days:e.days||Ee.days,month:e.month||Ee.month,months:e.months||Ee.months,year:e.year||Ee.year,years:e.years||Ee.years}}(e.units),this}};Object.keys(t).forEach((a=>{e.prototype[a]=t[a]}))};let Pt=f;const Yt=function(e,t,a={}){this.epoch=null,this.tz=O(t,Pt),this.silent=void 0===a.silent||a.silent,this.british=a.dmy||a.british,this._weekStart=1,void 0!==a.weekStart&&(this._weekStart=a.weekStart),this._today={},void 0!==a.today&&(this._today=a.today),Object.defineProperty(this,"d",{get:function(){let e=l(this),t=(new Date(this.epoch).getTimezoneOffset()||0)+60*e;t=60*t*1e3;let a=this.epoch+t;return new Date(a)}}),Object.defineProperty(this,"timezones",{get:()=>Pt,set:e=>(Pt=e,e)});let n=he(this,e);this.epoch=n.epoch,n.tz&&(this.tz=n.tz)};Object.keys(ot).forEach((e=>{Yt.prototype[e]=ot[e]})),Yt.prototype.clone=function(){return new Yt(this.epoch,this.tz,{silent:this.silent,weekStart:this._weekStart,today:this._today,parsers:this.parsers})},Yt.prototype.toLocalDate=function(){return this.toNativeDate()},Yt.prototype.toNativeDate=function(){return new Date(this.epoch)},Ot(Yt),St(Yt),At(Yt),Et(Yt),Nt(Yt);var Bt=Yt,Ht=(e,t)=>{let a=new Bt(null),n=new Bt(null);a=a.time(e),n=t?n.time(t):a.add(59,"minutes");let r=a.hour(),i=n.hour();return Object.keys(a.timezones).filter((e=>{if(-1===e.indexOf("/"))return!1;let t=new Bt(null,e),o=t.hour();return o>=r&&o<=i&&!(o===r&&t.minute()n.minute())}))};const Lt=(e,t,a)=>new Bt(e,t,a),It=function(e){let t=e._today||{};return Object.keys(t).forEach((a=>{e=e[a](t[a])})),e};Lt.now=(e,t)=>{let a=new Bt((new Date).getTime(),e,t);return a=It(a),a},Lt.today=(e,t)=>{let a=new Bt((new Date).getTime(),e,t);return a=It(a),a.startOf("day")},Lt.tomorrow=(e,t)=>{let a=new Bt((new Date).getTime(),e,t);return a=It(a),a.add(1,"day").startOf("day")},Lt.yesterday=(e,t)=>{let a=new Bt((new Date).getTime(),e,t);return a=It(a),a.subtract(1,"day").startOf("day")},Lt.extend=function(e={}){return Object.keys(e).forEach((t=>{Bt.prototype[t]=e[t]})),this},Lt.timezones=function(){return(new Bt).timezones},Lt.max=function(e,t){let a=new Bt(null,e,t);return a.epoch=864e13,a},Lt.min=function(e,t){let a=new Bt(null,e,t);return a.epoch=-864e13,a},Lt.whereIts=Ht,Lt.version="7.6.0",Lt.plugin=Lt.extend;var Wt=Lt;const Ft={daybreak:"7:00am",breakfast:"8:00am",morning:"9:00am",noon:"12:00pm",midday:"12:00pm",afternoon:"2:00pm",lunchtime:"12:00pm",evening:"6:00pm",dinnertime:"6:00pm",night:"8:00pm",eod:"10:00pm",midnight:"12:00am",am:"9:00am",pm:"5:00pm","early day":"8:00am","late at night":"11:00pm"},Jt={quarter:15,half:30},Kt=function(e){let t=e.time("6:00am");return e.isBefore(t)?e.ampm("pm"):e};var Qt=function(e,t){let a=e.match("(at|by|for|before|this|after)? #Time+");a=a.not("^(at|by|for|before|this|after)"),a=a.not("sharp"),a=a.not("on the dot");let n=Wt.now(t.timezone),r=n.clone(),i=a.not("in the").text("reduced");if(i=i.replace(/^@/,""),Ft.hasOwnProperty(i))return{result:Ft[i],m:a};let o=a.match("^#Cardinal oclock (am|pm)?");if(o.found&&(n=n.hour(o.text("reduced")),n=n.startOf("hour"),n.isValid()&&!n.isEqual(r))){let e=o.match("(am|pm)");return n=e.found?n.ampm(e.text("reduced")):Kt(n),{result:n.time(),m:o}}if(o=a.match("(half|quarter|25|20|15|10|5) (past|after|to) #Cardinal"),o.found&&(n=function(e,t){let a=e.match("#Cardinal$"),n=e.not(a).match("(half|quarter|25|20|15|10|5)");a=a.text("reduced");let r=n.text("reduced");Jt.hasOwnProperty(r)&&(r=Jt[r]);let i=e.has("to");return t=(t=t.hour(a)).startOf("hour"),a<6&&(t=t.ampm("pm")),i?t.subtract(r,"minutes"):t.add(r,"minutes")}(o,n),n.isValid()&&!n.isEqual(r)))return n=Kt(n),{result:n.time(),m:o};if(o=a.match("[(half|quarter|25|20|15|10|5)] (past|after)"),o.found){let e=o.groups("min").text("reduced"),a=Wt(t.today);if(Jt.hasOwnProperty(e)&&(e=Jt[e]),a=a.next("hour").startOf("hour").minute(e),a.isValid()&&!a.isEqual(r))return{result:a.time(),m:o}}if(o=a.match("[(half|quarter|25|20|15|10|5)] to"),o.found){let e=o.groups("min").text("reduced"),a=Wt(t.today);if(Jt.hasOwnProperty(e)&&(e=Jt[e]),a=a.next("hour").startOf("hour").minus(e,"minutes"),a.isValid()&&!a.isEqual(r))return{result:a.time(),m:o}}if(o=a.match("[
#Date+] from [#Time] (to|until|upto|through|thru|and) [#Time+]",desc:"january from 3pm to 4pm",parse:(e,t)=>{let a=e.groups("main"),n=e.groups("a"),r=e.groups("b");if(a=hn(a,t),a){a.applyTime(n.text("implicit"));let e=a.clone();if(e.applyTime(r.text("implicit")),e){let t={start:a,end:e,unit:"time"};return!1===/(am|pm)/.test(r.text())&&(t=pn(t)),t=yn(t),t}}return null}},{match:"[#Date+] (to|until|upto|through|thru|and) [#Time+]",desc:"january from 3pm to 4pm",parse:(e,t)=>{let a=e.groups("from"),n=e.groups("to");if(a=hn(a,t),a){let e=a.clone();if(e.applyTime(n.text("implicit")),e){let t={start:a,end:e,unit:"time"};return!1===/(am|pm)/.test(n.text())&&(t=pn(t)),t=yn(t),t}}return null}}],wn=[{match:"^during? #Month+ (or|and) #Month [#Year]?",desc:"march or june",parse:(e,t)=>{let a=e.match("^during? [#Month]",0);e=e.not("(or|and)");let n=hn(a,t);if(n){let r=[{start:n,end:n.clone().end(),unit:n.unit}],i=e.not(a);i.found&&i.match("#Month").forEach((e=>{let a=hn(e,t);r.push({start:a,end:a.clone().end(),unit:a.unit})}));let o=e.match("#Year$");return o.found&&(o=o.text("reduced"),r.forEach((e=>{e.start.d=e.start.d.year(o),e.end.d=e.end.d.year(o)}))),r}return null}},{match:"^#Month #Value+ (or|and)? #Value$",desc:"jan 5 or 8",parse:(e,t)=>{let a=(e=e.not("(or|and)")).match("^#Month #Value"),n=hn(a,t);if(n){let t=[{start:n,end:n.clone().end(),unit:n.unit}],r=e.not(a);return r.found&&r.match("#Value").forEach((e=>{let a=n.clone();a.d=a.d.date(e.text("reduced")),t.push({start:a,end:a.clone().end(),unit:a.unit})})),t}return null}},{match:"^#Month+ #Value #Value+$",desc:"jan 5 8",parse:(e,t)=>{let a=e.match("#Month"),n=e.match("#Year");e=e.not("#Year");let r=[];return e.match("#Value").forEach((e=>{let i=(e=e.clone()).prepend(a.text());n.found&&i.append(n);let o=hn(i,t);o&&r.push({start:o,end:o.clone().end(),unit:o.unit})})),r}},{match:"^#Value+ (or|and)? #Value of #Month #Year?$",desc:"5 or 8 of Jan",parse:(e,t)=>{let a=e.match("#Month"),n=e.match("#Year");e=e.not("#Year");let r=[];return e.match("#Value").forEach((e=>{let i=e.append(a);n.found&&i.append(n);let o=hn(i,t);o&&r.push({start:o,end:o.clone().end(),unit:o.unit})})),r}},{match:"^!(between|from|during)? [#Date+] (and|or) [#Date+]$",desc:"A or B",parse:(e,t)=>{let a=e.groups("from"),n=e.groups("to"),r=hn(a,t),i=hn(n,t);return r&&i?[{start:r,end:r.clone().end()},{start:i,end:i.clone().end()}]:null}}],bn=[{match:"between [.+] and [.+]",desc:"between friday and sunday",parse:(e,t)=>{let a=e.groups("start");a=hn(a,t);let n=e.groups("end");return n=hn(n,t),a&&n?(n=n.before(),{start:a,end:n}):null}},{match:"[#Month #Value] (to|through|thru) [#Month #Value] [#Year?]",desc:"june 5 to june 7",parse:(e,t)=>{let a=e.groups(),n=a.from;if(a.year&&(n=n.append(a.year)),n=hn(n,t),n){let e=a.to;if(a.year&&(e=e.append(a.year)),e=hn(e,t),e)return n.d.isAfter(e.d)&&(e.d=e.d.add(1,"year")),{start:n,end:e.end()}}return null}},{match:"[#Month] [#Value] (to|through|thru) [#Value] of? [#Year]",desc:"january 5 to 7 1998",parse:(e,t)=>{let{month:a,from:n,to:r,year:i}=e.groups(),o=i.clone(),s=n.prepend(a).append(i);if(s=hn(s,t),s){let e=r.prepend(a).append(o);return e=hn(e,t),{start:s,end:e.end()}}return null}},{match:"[#Value] (to|through|thru) [#Value of? #Month #Date+?]",desc:"5 to 7 of january 1998",parse:(e,t)=>{let a=e.groups("to");if(a=hn(a,t),a){let t=e.groups("from"),n=a.clone();return n.d=n.d.date(t.text("implicit")),{start:n,end:a.end()}}return null}},{match:"[#Month #Value] (to|through|thru) [#Value]",desc:"january 5 to 7",parse:(e,t)=>{let a=e.groups("from");if(a=hn(a,t),a){let t=e.groups("to"),n=a.clone();return n.d=n.d.date(t.text("implicit")),{start:a,end:n.end()}}return null}},{match:"from? [#Month] (to|until|upto|through|thru) [#Month] [#Year]",desc:"january to may 2020",parse:(e,t)=>{let a=e.groups("from"),n=e.groups("year").numbers().get()[0],r=e.groups("to");if(a=hn(a,t),r=hn(r,t),a.d=a.d.year(n),r.d=r.d.year(n),a&&r){let e={start:a,end:r.end()};return e=yn(e),e}return null}}];const kn=function(e,t){return e=e.applyShift(t.punt)},Dn=[].concat(gn,wn,bn,[{match:"from? [.+] (to|until|upto|through|thru) [.+]",desc:"from A to B",parse:(e,t)=>{let a=e.groups("from"),n=e.groups("to");if(a=hn(a,t),n=hn(n,t),a&&n){let e={start:a,end:n.end()};return e=yn(e),e}return null}},{match:"^due? (by|before) [.+]",desc:"before june",parse:(e,t)=>{e=e.group(0);let a=hn(e,t);if(a){let e=new ya(t.today,null,t);return e.d.isAfter(a.d)&&(e=a.clone().applyShift({weeks:-2})),{start:e,end:a.clone().applyShift({day:-1}).end()}}return null}},{match:"^(on|in|at|@|during) [.+]",desc:"in june",parse:(e,t)=>{e=e.group(0);let a=hn(e,t);return a?{start:a,end:a.clone().end(),unit:a.unit}:null}},{match:"^(after|following) [.+]",desc:"after june",parse:(e,t)=>{e=e.group(0);let a=hn(e,t);return a?(a=a.after(),{start:a.clone(),end:kn(a.clone(),t)}):null}},{match:"^(middle|center|midpoint) of [.+]",desc:"middle of",parse:(e,t)=>{e=e.group(0);let a=hn(e,t),n=a.clone().middle(),r=a.beforeEnd();return a?{start:n,end:r}:null}},{match:".+ after #Time+$",desc:"tuesday after 5pm",parse:(e,t)=>{let a=hn(e,t);return a?{start:a.clone(),end:a.end(),unit:"time"}:null}},{match:".+ before #Time+$",desc:"tuesday before noon",parse:(e,t)=>{let a=hn(e,t);if(a){let e=a.clone(),t=a.start();if(a)return{start:t,end:e,unit:"time"}}return null}}]),vn="undefined"!=typeof process&&process.env?process.env:self.env||{},xn=function(e,t){let a={start:null,end:null};if(!e.found)return a;let n=hn(e,t);if(n){let e=n.clone().end();a={start:n,end:e,unit:n.setTime?"time":n.unit}}return a};var On=function(e,t){let a=fn(e,t)||{},n=function(e,t){for(let r=0;rObject.assign({},a,e))),n.forEach((e=>{e.start&&e.end&&e.start.d.epoch>e.end.d.epoch&&(e.start=e.start.start())})),n},Mn=function(e){return e.numbers||console.warn("\nCompromise warning: compromise/three must be used with compromise-dates plugin\n"),(e=e.clone()).numbers().toNumber(),e.contractions().expand(),e.replace("week end","weekend",!0).tag("Date"),e.replace("up to","upto",!0).tag("Date"),!1===e.has("once (a|an) #Duration")&&e.match("[(a|an)] #Duration",0).replaceWith("1",{tags:!0}).compute("lexicon"),e.match("@hasDash").insertAfter("to").tag("Date"),e},_n=function(e,t){return!1===(t=t||{}).timezone&&(t.timezone="UTC"),t.today=t.today||Wt.now(t.timezone),t.today=Wt(t.today,t.timezone),e=Mn(e),On(e,t)},jn=function(e){if(!e.start)return{start:null,end:null,timezone:null,duration:{}};let t=e.end?function(e){let t=e.end.d.add(1,"millisecond").since(e.start.d).diff;return delete t.milliseconds,delete t.seconds,t}(e):{};return{start:e.start.format("iso"),end:e.end?e.end.format("iso"):null,timezone:e.start.d.format("timezone"),duration:t}};const $n=function(e,t){let a=e.fromText(t),n=_n(a,e.opts)[0];return n&&n.start&&n.start.d?n.start.d:null};var zn=function(e){class Dates extends e{constructor(e,t,a,n={}){super(e,t,a),this.viewType="Dates",this.opts=n}get(e){let t=[];return this.forEach((e=>{_n(e,this.opts).forEach((e=>{t.push(jn(e))}))})),"number"==typeof e?t[e]:t}json(e={}){return this.map((t=>{let a=t.toView().json(e)[0]||{};if(e&&!1!==e.dates){let e=_n(t,this.opts);a.dates=jn(e[0])}return a}),[])}format(e){let t=this.map((t=>{let a=_n(t,this.opts)[0]||{};if(a.start){let n=a.start.d,r=n.format(e);if(a.end){let t=a.end.d;!1===n.isSame(t,"day")&&(r+=" to "+t.format(e))}t.replaceWith(r)}return t}));return new Dates(this.document,t.pointer,null,this.opts)}isBefore(e){let t=$n(this,e);return this.filter((e=>{let a=_n(e,this.opts)[0]||{};return a.start&&a.start.d&&a.start.d.isBefore(t)}))}isAfter(e){let t=$n(this,e);return this.filter((e=>{let a=_n(e,this.opts)[0]||{};return a.start&&a.start.d&&a.start.d.isAfter(t)}))}isSame(e,t){let a=$n(this,t);return this.filter((t=>{let n=_n(t,this.opts)[0]||{};return n.start&&n.start.d&&n.start.d.isSame(a,e)}))}}e.prototype.dates=function(e){let a=t(this);return new Dates(this.document,a.pointer,null,e)}},Tn=function(e){let t=(e=e.clone()).match("#Time+").match("[#Cardinal] [(thirty|fifteen)]");if(t.found){let e=t.groups("hour"),a=t.groups("min"),n=e.values().get()[0];if(n>0&&n<=12){let e=`${n}:${a.values().get()[0]}`;t.replaceWith(e)}}if(e.numbers){let t=e.numbers();t.toNumber(),t.toCardinal(!1)}else console.warn("Warning: compromise .numbers() not loaded.\n This plugin requires >= v14");return e.contractions&&e.contractions().expand(),e.adverbs().remove(),e.replace("week end","weekend",!0).tag("Date"),e.replace("up to","upto",!0).tag("Date"),!1===e.has("once (a|an) #Duration")&&e.match("[(a|an)] #Duration",0).replaceWith("1").compute("lexicon"),e.match("@hasDash").insertAfter("to").tag("Date"),e};const Vn=function(e,t={}){e=Tn(e);let a=Qt(e,t);if(!a.result)return{time:null,"24h":null};let n=Wt.now().time(a.result);return{time:a.result,"24h":n.format("time-24"),hour:n.hour(),minute:n.minute()}},qn=(e,t)=>"number"==typeof t?e.eq(t):e;var Sn=function(e){class Times extends e{constructor(e,t,a,n){super(e,t,a),this.viewType="Times",this.opts=n||{}}format(e){let t=this.map((t=>{let a=Vn(t)||{};if(a.time){let n=Wt.now().time(a.time),r=a.time;r="24h"===e?n.format("time-24"):n.format(e),(t=t.not("#Preposition")).replaceWith(r)}return t}));return new Times(this.document,t.pointer,null,this.opts)}get(e){return qn(this,e).map(Vn)}json(e={}){return this.map((t=>{let a=t.toView().json(e)[0]||{};return e&&!1!==e.time&&(a.time=Vn(t)),a}),[])}}e.prototype.times=function(e){let t=this.match("#Time+ (am|pm)?");return t=qn(t,e),new Times(this.document,t.pointer)}};const Cn={century:!0,day:!0,decade:!0,hour:!0,millisecond:!0,minute:!0,month:!0,second:!0,weekend:!0,week:!0,year:!0,quarter:!0,season:!0};let An={m:"minute",h:"hour",hr:"hour",min:"minute",sec:"second","week end":"weekend",wk:"week",yr:"year",qtr:"quarter"};Object.keys(An).forEach((e=>{An[e+"s"]=An[e]}));var En=function(e){let t={},a=e.match("#Value+ #Duration");if(a.found)a.forEach((e=>{let a=e.numbers().get()[0],n=e.terms().last().text("reduced");n=n.replace(/ies$/,"y"),n=n.replace(/s$/,""),An.hasOwnProperty(n)&&(n=An[n]),Cn.hasOwnProperty(n)&&null!==a&&(t[n]=a)}));else if(e.match("(#Duration && /[0-9][a-z]+$/)").found){let a=e.text(),n=a.match(/([0-9]+)/),r=a.match(/([a-z]+)/);n&&r&&(n=n[0]||null,r=r[0]||null,An.hasOwnProperty(r)&&(r=An[r]),Cn.hasOwnProperty(r)&&null!==n&&(t[r]=Number(n)))}return t},Nn=function(e){class Durations extends e{constructor(e,t,a){super(e,t,a),this.context={}}json(e={}){return this.map((t=>{let a=t.toView().json(e)[0]||{};return e&&!1!==e.duration&&(a.duration=En(t)),a}),[])}get(e){let t=[];return this.forEach((e=>{let a=En(e);t.push(a)})),"number"==typeof e?t[e]:t}}e.prototype.durations=function(e){let t=this.match("#Value+ #Duration (and? #Value+ #Duration)?");return t=t.notIf("#DateShift"),"number"==typeof e&&(t=t.eq(e)),new Durations(this.document,t.pointer)}},Pn=function(e){zn(e),Sn(e),Nn(e)};const Yn="(start|end|middle|starting|ending|midpoint|beginning)",Bn=(e,t)=>{!0===e.found&&e.forEach((e=>{let a=e.text("reduced"),n=parseInt(a,10);n&&n>1e3&&n<3e3&&e.tag("Year",t)}))},Hn=(e,t)=>{!0===e.found&&e.forEach((e=>{let a=e.text("reduced"),n=parseInt(a,10);n&&n>1900&&n<2030&&e.tag("Year",t)}))};var Ln=function(e){e.match("(march|april|may) (and|to|or|through|until)? (march|april|may)").tag("Date").match("(march|april|may)").tag("Month","march|april|may");let t=e.if("#Cardinal");if(!0===t.found){let e=t.match("#Date #Value [#Cardinal]",0);Bn(e,"date-value-year"),e=t.match("#Date [#Cardinal]",0),Hn(e,"date-year"),e=t.match(`${Yn} of [#Cardinal]`),Hn(e,"section-year"),e=t.match("#Month #Value [#Cardinal]",0),Bn(e,"month-value-year"),e=t.match("#Month #Value to #Value [#Cardinal]",0),Bn(e,"month-range-year"),e=t.match("(in|of|by|during|before|starting|ending|for|year|since) [#Cardinal]",0),Bn(e,"in-year-1"),e=t.match("(q1|q2|q3|q4) [#Cardinal]",0),Bn(e,"in-year-2"),e=t.match("#Ordinal quarter of? [#Cardinal]",0),Bn(e,"in-year-3"),e=t.match("the year [#Cardinal]",0),Bn(e,"in-year-4"),e=t.match("it (is|was) [#Cardinal]",0),Hn(e,"in-year-5"),t.match(`${Yn} of #Year`).tag("Date");let a=t.match("between [#Cardinal] and [#Cardinal]");Bn(a.groups("0"),"between-year-and-year-1"),Bn(a.groups("1"),"between-year-and-year-2")}let a=e.match("^/^20[012][0-9]$/$");return Hn(a,"2020-ish"),e};const In=function(e,t){e.found&&(e.tag("Date",t),e.numbers().lessThan(31).ifNo("#Year").tag("#Time",t))};var Wn=function(e){let t=e.if("#Date");if(t.found){let a=t.if("#NumberRange");if(a.found){let e=a.match("[#NumberRange+] (on|by|at)? #WeekDay",0);In(e,"3-4-tuesday"),e=a.match("[#NumberRange+] (on|by|at)? #Month #Value",0),In(e,"3-4 mar 3"),e=a.match("[#NumberRange] to (#NumberRange && #Time)",0),In(e,"3-4pm"),e=a.match("(#NumberRange && #Time) to [#NumberRange]",0),In(e,"3pm-4")}let n=t.match("(from|between) #Cardinal and #Cardinal (in|on)? (#WeekDay|tomorrow|yesterday)");In(n,"from 9-5 tues"),n=e.match("#Cardinal to #Cardinal (#WeekDay|tomorrow|yesterday)"),In(n,"9-5 tues"),n=t.match("(from|between) [#NumericValue] (to|and) #Time",0).tag("Time","4-to-5pm"),In(n,"from 9-5pm"),n=t.match("(#WeekDay|tomorrow|yesterday) (from|between)? (#Cardinal|#Time) (and|to) (#Cardinal|#Time)"),In(n,"tues 3-5"),n=t.match("#Month #Value+ (from|between) [(after|before)]"),r.found){let e=r.groups("unit").text("reduced"),t=r.groups("dir").text("reduced");"after"===t?n[e]=1:"before"===t&&(n[e]=-1)}if(r=i.match("half (a|an) [#Duration]",0),r.found){let e=a(r);n[e]=.5}return r=t.match("#DateShift+"),{result:n,m:r}}(t),o=i.result;i=function(e){let t=e.match("[#Value] [#Duration+] (of|in)");if(t.found){let e=t.groups(),a=e.num.numbers().get()[0],r=e.unit.text("reduced"),i={unit:r,num:Number(a)||0};return n[r]||(i.num-=1),{result:i,m:t}}if(t=e.match("[(first|initial|last|final)] [#Duration+] (of|in)"),t.found){let e=t.groups(),a=e.dir.text("reduced");return"initial"===a&&(a="first"),"final"===a&&(a="last"),{result:{unit:e.unit.text("reduced"),dir:a},m:t}}return{result:null,m:e.none()}}(t=t.not(i.m));let s=i.result;t=t.not(i.m),i=Et(t);let u=i.result;t=t.not(i.m),i=kt(t,r);let d=i.result;i=function(e){let t=e.match("#WeekDay");return t.found&&!e.has("^#WeekDay$")?e.has("(this|next|last) (next|upcoming|coming|past)? #WeekDay")?{result:null,m:e.none()}:{result:t.text("reduced"),m:t}:{result:null,m:e.none()}}(t=t.not(i.m));let l=i.result;i=function(e){let t=e.match("[(start|beginning) of] .",0);return t.found?{result:"start",m:t}:(t=e.match("[end of] .",0),t.found?{result:"end",m:t}:(t=e.match("[(middle|midpoint|center) of] .",0),t.found?{result:"middle",m:t}:{result:null,m:t}))}(t=t.not(i.m));let h=i.result;return i=function(e){if(e.has("(next|last|this)$"))return{result:null,m:e.none()};let t=e.match("^this? (next|upcoming|coming)");return t.found?{result:"next",m:t}:(t=e.match("^this? (past)"),t.found?{result:"this-past",m:t}:(t=e.match("^this? (last|previous)"),t.found?{result:"last",m:t}:(t=e.match("^(this|current)"),t.found?{result:"this",m:t}:{result:null,m:e.none()})))}(t=t.not(i.m)),{shift:o,counter:s,tz:u,time:d,weekDay:l,section:h,rel:i.result,doc:t=function(e){return(e=(e=(e=(e=(e=(e=e.not("[^the] !#Value",0)).not("#Preposition$")).not("#Conjunction$")).not("sharp")).not("on the dot")).not("^(on|of)")).not("(next|last|this)$")}(t=t.not(i.m))}};class Unit{constructor(e,t,a){this.unit=t||"day",this.setTime=!1;let n={};(a=a||{}).today&&(n={date:a.today.date(),month:a.today.month(),year:a.today.year()}),e&&"sept"===e.month&&(e.month="sep");let r=yt(e,a.timezone,{today:n,dmy:a.dmy});Object.defineProperty(this,"d",{enumerable:!1,writable:!0,value:r}),Object.defineProperty(this,"context",{enumerable:!1,writable:!0,value:a})}clone(){let e=new Unit(this.d,this.unit,this.context);return e.setTime=this.setTime,e}log(){return console.log("--"),this.d.log(),console.log("\n"),this}applyShift(e={}){return Object.keys(e).forEach((t=>{this.d=this.d.add(e[t],t),"hour"!==t&&"minute"!==t||(this.setTime=!0)})),this}applyTime(e){if(e){if(/^[0-9]{1,2}$/.test(e)?this.d=this.d.hour(e):this.d=this.d.time(e),!/[ap]m/.test(e)){let e=this.d.time("6:00am");this.d.isBefore(e)&&(this.d=this.d.ampm("pm"));let t=this.d.time("10:00pm");this.d.isAfter(t)&&(this.d=this.d.ampm("am"))}}else this.d=this.d.startOf("day");return this.setTime=!0,this}applyWeekDay(e){if(e){let t=this.d.epoch;this.d=this.d.day(e),this.d.epochnew Day(e.today,null,e),yesterday:e=>new Day(e.today.minus(1,"day"),null,e),tomorrow:e=>new Day(e.today.plus(1,"day"),null,e),eom:e=>{let t=e.today.endOf("month");return t=t.startOf("day"),new Day(t,null,e)},eoy:e=>{let t=e.today.endOf("year");return t=t.startOf("day"),new Day(t,null,e)},now:e=>new Moment(e.today,null,e)};Pt.tommorrow=Pt.tomorrow,Pt.tmrw=Pt.tomorrow,Pt.anytime=Pt.today,Pt.sometime=Pt.today;const Yt="january",Bt="february",Ht="march",Lt="april",It="may",Wt="july",Ft="august",Jt="september",Ut="october",Kt="november",Qt="december";var Rt={"new years eve":[Qt,31],"new years":[Yt,1],"new years day":[Yt,1],"inauguration day":[Yt,20],"australia day":[Yt,26],"national freedom day":[Bt,1],"groundhog day":[Bt,2],"rosa parks day":[Bt,4],"valentines day":[Bt,14],"saint valentines day":[Bt,14],"st valentines day ":[Bt,14],"saint patricks day":[Ht,17],"st patricks day":[Ht,17],"april fools":[Lt,1],"april fools day":[Lt,1],"emancipation day":[Lt,16],"tax day":[Lt,15],"labour day":[It,1],"cinco de mayo":[It,5],"national nurses day":[It,6],"harvey milk day":[It,22],"victoria day":[It,24],juneteenth:["june",19],"canada day":[Wt,1],"independence day":[Wt,4],"independents day":[Wt,4],"bastille day":[Wt,14],"purple heart day":[Ft,7],"womens equality day":[Ft,26],"16 de septiembre":[Jt,16],"dieciseis de septiembre":[Jt,16],"grito de dolores":[Jt,16],halloween:[Ut,31],"all hallows eve":[Ut,31],"day of the dead":[Ut,31],"dia de muertos":[Ut,31],"veterans day":[Kt,11],"st andrews day":[Kt,30],"saint andrews day":[Kt,30],"all saints day":[Kt,1],"all sts day":[Kt,1],"armistice day":[Kt,11],"rememberance day":[Kt,11],"christmas eve":[Qt,24],christmas:[Qt,25],xmas:[Qt,25],"boxing day":[Qt,26],"st stephens day":[Qt,26],"saint stephens day":[Qt,26],epiphany:[Yt,6],"orthodox christmas day":[Yt,7],"orthodox new year":[Yt,14],"assumption of mary":[Ft,15],"all souls day":[Kt,2],"feast of the immaculate conception":[Qt,8],"feast of our lady of guadalupe":[Qt,12],kwanzaa:[Qt,26],imbolc:[Bt,2],beltaine:[It,1],lughnassadh:[Ft,1],samhain:[Ut,31]},Gt=function(e,t,a,n){if(Rt.hasOwnProperty(e)||Rt.hasOwnProperty(t)){let r=Rt[e]||Rt[t]||[],i=yt.now(n);if(i=i.year(a),i=i.startOf("year"),i=i.month(r[0]),i=i.date(r[1]),i.isValid())return i}return null};const Zt="october",Xt="november",ea="monday",ta="sunday";let aa={"martin luther king day":[3,ea,"january"],"presidents day":[3,ea,"february"],"commonwealth day":[2,ea,"march"],"mothers day":[2,ta,"may"],"fathers day":[3,ta,"june"],"labor day":[1,ea,"september"],"columbus day":[2,ea,Zt],"canadian thanksgiving":[2,ea,Zt],thanksgiving:[4,"thursday",Xt],"black friday":[4,"friday",Xt]};aa["turday day"]=aa.thanksgiving,aa["indigenous peoples day"]=aa["columbus day"],aa["mlk day"]=aa["martin luther king day"];var na=aa,ra=function(e,t,a,n){if(na.hasOwnProperty(e)||na.hasOwnProperty(t)){let r=na[e]||na[t]||[],i=yt.now(n);i=i.year(a),i=i.month(r[2]),i=i.startOf("month");let o=i.month();if(i=i.day(r[1]),i.month()!==o&&(i=i.add(1,"week")),r[0]>1&&(i=i.add(r[0]-1,"week")),i.isValid())return i}return null};let ia={easter:0,"ash wednesday":-46,"palm sunday":7,"maundy thursday":-3,"good friday":-2,"holy saturday":-1,"easter saturday":-1,"easter monday":1,"ascension day":39,"whit sunday":49,"whit monday":50,"trinity sunday":65,"corpus christi":60,"mardi gras":-47};ia["easter sunday"]=ia.easter,ia.pentecost=ia["whit sunday"],ia.whitsun=ia["whit sunday"];var oa=ia,sa=function(e){let t=Math.floor,a=e%19,n=t(e/100),r=(n-t(n/4)-t((8*n+13)/25)+19*a+15)%30,i=r-t(r/28)*(1-t(29/(r+1))*t((21-a)/11)),o=i-(e+t(e/4)+i+2-n+t(n/4))%7,s=3+t((o+40)/44),u=o+28-31*t(s/4);return s=4===s?"April":"March",s+" "+u},ua=function(e,t,a,n){if(oa.hasOwnProperty(e)||oa.hasOwnProperty(t)){let r=oa[e]||oa[t]||[],i=sa(a);if(!i)return null;let o=yt(i,n);o=o.year(a);let s=o.add(r,"day");if(s.isValid())return s}return null};const da={spring:[2003,2007,2044,2048,2052,2056,2060,2064,2068,2072,2076,2077,2080,2081,2084,2085,2088,2089,2092,2093,2096,2097],summer:[2021,2016,2020,2024,2028,2032,2036,2040,2041,2044,2045,2048,2049,2052,2053,2056,2057,2060,2061,2064,2065,2068,2069,2070,2072,2073,2074,2076,2077,2078,2080,2081,2082,2084,2085,2086,2088,2089,2090,2092,2093,2094,2096,2097,2098,2099],fall:[2002,2003,2004,2006,2007,2010,2011,2014,2015,2018,2019,2022,2023,2026,2027,2031,2035,2039,2043,2047,2051,2055,2059,2092,2096],winter:[2002,2003,2006,2007,2011,2015,2019,2023,2027,2031,2035,2039,2043,2080,2084,2088,2092,2096]},la=[2080,2084,2088,2092,2096];var ha=function(e){let t={spring:"March 20 "+e,summer:"June 21 "+e,fall:"Sept 22 "+e,winter:"Dec 21 "+e};return-1!==da.spring.indexOf(e)&&(t.spring="March 19 "+e),-1!==da.summer.indexOf(e)&&(t.summer="June 20 "+e),-1!==da.fall.indexOf(e)&&(t.fall="Sept 21 "+e),-1!==da.winter.indexOf(e)&&(t.winter="Dec 22 "+e),-1!==la.indexOf(e)&&(t.winter="Dec 20 "+e),t};let ma={"spring equinox":"spring","summer solistice":"summer","fall equinox":"fall","winter solstice":"winter"};ma["march equinox"]=ma["spring equinox"],ma["vernal equinox"]=ma["spring equinox"],ma.ostara=ma["spring equinox"],ma["june solstice"]=ma["summer solistice"],ma.litha=ma["summer solistice"],ma["autumn equinox"]=ma["fall equinox"],ma["autumnal equinox"]=ma["fall equinox"],ma["september equinox"]=ma["fall equinox"],ma["sept equinox"]=ma["fall equinox"],ma.mabon=ma["fall equinox"],ma["december solstice"]=ma["winter solistice"],ma["dec solstice"]=ma["winter solistice"],ma.yule=ma["winter solistice"];var ca=ma,fa=function(e,t,a,n){if(ca.hasOwnProperty(e)||ca.hasOwnProperty(t)){let r=ca[e]||ca[t],i=ha(a);if(!r||!i||!i[r])return null;let o=yt(i[r],n);if(o.isValid())return o}return null},ya={"isra and miraj":"april 13","lailat al-qadr":"june 10","eid al-fitr":"june 15","id al-Fitr":"june 15","eid ul-Fitr":"june 15",ramadan:"may 16","eid al-adha":"sep 22",muharram:"sep 12","prophets birthday":"nov 21"},pa=function(e,t,a,n){if(ya.hasOwnProperty(e)||ya.hasOwnProperty(t)){let r=ya[e]||ya[t]||[];if(!r)return null;let i=yt(r+" 2018",n),o=-10.64*(a-2018);if(i=i.add(o,"day"),i=i.startOf("day"),i=i.year(a),i.isValid())return i}return null};const ga=yt.now().year(),wa=function(e,t,a){t=t||ga,e=e||"";let n=(e=(e=(e=String(e)).trim().toLowerCase()).replace(/'s/,"s")).replace(/ day$/,"");n=n.replace(/^the /,""),n=n.replace(/^orthodox /,"");let r=Gt(e,n,t,a);return null!==r?r:(r=ra(e,n,t,a),null!==r?r:(r=ua(e,n,t,a),null!==r?r:(r=fa(e,n,t,a),null!==r?r:(r=pa(e,n,t,a),null!==r?r:null))))},ba={day:Day,hour:Hour,evening:Hour,second:Moment,milliscond:Moment,instant:Moment,minute:Minute,week:Week,weekend:WeekEnd,month:class AnyMonth extends Unit{constructor(e,t,a){super(e,t,a),this.unit="month",this.d.isValid()&&(this.d=this.d.startOf(this.unit))}},quarter:AnyQuarter,year:Year,season:Season,yr:Year,qtr:AnyQuarter,wk:Week,sec:Moment,hr:Hour};let ka=`^(${Object.keys(ba).join("|")})$`;const Da=function(e){return{date:e.today.date(),month:e.today.month(),year:e.today.year()}},va=function(e,t,a){let n=null;return n=n||function(e,t,a){let n=null;!1===e.found&&(null!==a.time&&(n=new Moment(t.today,null,t)),a.shift&&Object.keys(a.shift).length>0&&(n=a.shift.hour||a.shift.minute?new Moment(t.today,null,t):new Day(t.today,null,t)));let r=e.text("reduced");return!0===Pt.hasOwnProperty(r)?Pt[r](t):"next"===r&&a.shift&&Object.keys(a.shift).length>0?Pt.tomorrow(t):n}(e,t,a),n=n||function(e,t){let a=null,n=e.match("[#Holiday+] [#Year?]"),r=t.today.year();n.groups("year").found&&(r=Number(n.groups("year").text("reduced"))||r);let i=n.groups("holiday").text("reduced"),o=wa(i,r,t.timezone);return null!==o&&(o.isBefore(t.today)&&r===t.today.year()&&(o=wa(i,r+1,t.timezone)),a=new Holiday(o,null,t)),a}(e,t),n=n||function(e,t){let a=e.match(ka);if(!0===a.found){let e=a.text("reduced");if(ba.hasOwnProperty(e)){let a=ba[e];return a?new a(null,e,t):null}}if(a=e.match("^#WeekDay$"),!0===a.found){let e=a.text("reduced");return new WeekDay(e,null,t)}return null}(e,t),n=n||function(e,t){let a=e.match("(spring|summer|winter|fall|autumn) [#Year?]");if(a.found){let a=e.text("reduced"),n=yt(a,t.timezone,{today:Da(t)}),r=new Season(n,null,t);if(!0===r.d.isValid())return r}if(a=e.match("[#FinancialQuarter] [#Year?]"),a.found){let e=a.groups("q").text("reduced"),n=yt(e,t.timezone,{today:Da(t)});if(a.groups("year")){let e=Number(a.groups("year").text())||t.today.year();n=n.year(e)}let r=new Quarter(n,null,t);if(!0===r.d.isValid())return r}if(a=e.match("[#Value] quarter (of|in)? [#Year?]"),a.found){let e=a.groups("q").text("reduced"),n=yt(`q${e}`,t.timezone,{today:Da(t)});if(a.groups("year")){let e=Number(a.groups("year").text())||t.today.year();n=n.year(e)}let r=new Quarter(n,null,t);if(!0===r.d.isValid())return r}if(a=e.match("^#Year$"),a.found){let a=e.text("reduced"),n=yt(null,t.timezone,{today:Da(t)});n=n.year(a);let r=new Year(n,null,t);if(!0===r.d.isValid())return r}return null}(e,t),n=n||function(e,t){let a=t.today.year(),n=e.match("[#Value] of? [#Month] [#Year]");if(n.found||(n=e.match("[#Month] the? [#Value] [#Year]")),n.found){let e={month:n.groups("month").text("reduced"),date:n.groups("date").text("reduced"),year:n.groups("year").text()||a},r=new CalendarDate(e,null,t);if(!0===r.d.isValid())return r}if(n=e.match("[#Month] of? [#Year]"),n.found){let e={month:n.groups("month").text("reduced"),year:n.groups("year").text("reduced")||a},r=new Month(e,null,t);if(!0===r.d.isValid())return r}if(n=e.match("[#Value] of? [#Month]"),n.found||(n=e.match("[#Month] the? [#Value]")),n.found){let e={month:n.groups("month").text("reduced"),date:n.groups("date").text("reduced"),year:t.today.year()},a=new CalendarDate(e,null,t);if(a.d.month()#Value]"),n.found){let e={month:t.today.month(),date:n.groups("date").text("reduced"),year:t.today.year()},a=new CalendarDate(e,null,t);if(!0===a.d.isValid())return a}if(n=e.match("the [#Value]"),n.found){let e={month:t.today.month(),date:n.groups("date").text("reduced"),year:t.today.year()},a=new CalendarDate(e,null,t);if(!0===a.d.isValid())return a.d.isBefore(t.today)&&(a.d=a.d.add(1,"month")),a}if(n=e.match("/[0-9]{4}-[0-9]{2}-[0-9]{2}t[0-9]{2}:/"),n.found){let a=e.text("reduced"),n=new Moment(a,null,t);if(!0===n.d.isValid())return n}let r=e.text("reduced");if(!r)return new Moment(t.today,null,t);let i=new Day(r,null,t);return!1===i.d.isValid()?null:i}(e,t),n},xa={day:Day,week:Week,weekend:WeekEnd,month:Month,quarter:Quarter,season:Season,hour:Hour,minute:Minute},Oa=function(e,t,a){if(!e&&a.weekDay&&(e=new WeekDay(a.weekDay,null,t),a.weekDay=null),!e)return null;if(a.shift){let t=a.shift;e.applyShift(t),t.hour||t.minute?e=new Moment(e.d,null,e.context):(t.week||t.day||t.month)&&(e=new Day(e.d,null,e.context))}return a.weekDay&&"day"!==e.unit&&(e.applyWeekDay(a.weekDay),e=new WeekDay(e.d,null,e.context)),a.rel&&e.applyRel(a.rel),a.section&&e.applySection(a.section),a.time&&e.applyTime(a.time),a.counter&&a.counter.unit&&(e=function(e,t={}){let a=xa[t.unit];if(!a)return e;let n=e.d;"first"===t.dir||0===t.num?(n=e.start().d,n=n.startOf(t.unit)):"last"===t.dir?(n=n.endOf(e.unit),n="weekend"===t.unit?n.day("saturday",!1):n.startOf(t.unit)):t.num&&("weekend"===t.unit&&(n=n.day("saturday",!0).add(1,"day")),n=n.add(t.num,t.unit));let r=new a(n,null,e.context);return!0===r.d.isValid()?r:e}(e,a.counter)),e},Ma="undefined"!=typeof process&&process.env?process.env:self.env||{},_a=function(e,t){let a=Nt(e,t);if(e=a.doc,(e=>{Ma.DEBUG_DATE&&(console.log(`\n==== '${e.doc.text()}' =====`),Object.keys(e).forEach((t=>{"doc"!==t&&e[t]&&console.log(t,e[t])})),e.doc.debug())})(a),a.tz){let e=(t=Object.assign({},t,{timezone:a.tz})).today.format("iso-short");t.today=t.today.goto(t.timezone).set(e)}let n=va(e,t,a);return n=Oa(n,t,a),n},ja={mon:"monday",tue:"tuesday",tues:"wednesday",wed:"wednesday",thu:"thursday",fri:"friday",sat:"saturday",sun:"sunday",monday:"monday",tuesday:"tuesday",wednesday:"wednesday",thursday:"thursday",friday:"friday",saturday:"saturday",sunday:"sunday"},$a=function(e){return e.match("(every|each)").found?"AND":e.match("(any|a)").found?"OR":null},za=function(e){let t=e.start,a=e.end;if(t.d.isAfter(a.d)){if(t.isWeekDay&&a.isWeekDay)return e.end.next(),e;let n=t;e.start=a,e.end=n}return e},Ta=function(e){let t=e.start,a=e.end;return t.d.isAfter(a.d)&&a.d.hour()<10&&(a.d=a.d.ampm("pm")),e};var Va=[{match:"[#Time+] (to|until|upto|through|thru|and) [#Time+ #Date+]",desc:"3pm to 4pm january 5th",parse:(e,t)=>{let a=e.groups("from"),n=e.groups("to"),r=_a(n,t);if(r){let e=r.clone();if(e.applyTime(a.text("implicit")),e){let t={start:e,end:r,unit:"time"};return!1===/(am|pm)/.test(n)&&(t=Ta(t)),t=za(t),t}}return null}},{match:"[
#Date+] from [#Time] (to|until|upto|through|thru|and) [#Time+]",desc:"january from 3pm to 4pm",parse:(e,t)=>{let a=e.groups("main"),n=e.groups("a"),r=e.groups("b");if(a=_a(a,t),a){a.applyTime(n.text("implicit"));let e=a.clone();if(e.applyTime(r.text("implicit")),e){let t={start:a,end:e,unit:"time"};return!1===/(am|pm)/.test(r.text())&&(t=Ta(t)),t=za(t),t}}return null}},{match:"[#Date+] (to|until|upto|through|thru|and) [#Time+]",desc:"january from 3pm to 4pm",parse:(e,t)=>{let a=e.groups("from"),n=e.groups("to");if(a=_a(a,t),a){let e=a.clone();if(e.applyTime(n.text("implicit")),e){let t={start:a,end:e,unit:"time"};return!1===/(am|pm)/.test(n.text())&&(t=Ta(t)),t=za(t),t}}return null}}],qa=[{match:"^during? #Month+ (or|and) #Month [#Year]?",desc:"march or june",parse:(e,t)=>{let a=e.match("^during? [#Month]",0);e=e.not("(or|and)");let n=_a(a,t);if(n){let r=[{start:n,end:n.clone().end(),unit:n.unit}],i=e.not(a);i.found&&i.match("#Month").forEach((e=>{let a=_a(e,t);r.push({start:a,end:a.clone().end(),unit:a.unit})}));let o=e.match("#Year$");return o.found&&(o=o.text("reduced"),r.forEach((e=>{e.start.d=e.start.d.year(o),e.end.d=e.end.d.year(o)}))),r}return null}},{match:"^#Month #Value+ (or|and)? #Value$",desc:"jan 5 or 8",parse:(e,t)=>{let a=(e=e.not("(or|and)")).match("^#Month #Value"),n=_a(a,t);if(n){let t=[{start:n,end:n.clone().end(),unit:n.unit}],r=e.not(a);return r.found&&r.match("#Value").forEach((e=>{let a=n.clone();a.d=a.d.date(e.text("reduced")),t.push({start:a,end:a.clone().end(),unit:a.unit})})),t}return null}},{match:"^#Month+ #Value #Value+$",desc:"jan 5 8",parse:(e,t)=>{let a=e.match("#Month"),n=e.match("#Year");e=e.not("#Year");let r=[];return e.match("#Value").forEach((e=>{let i=(e=e.clone()).prepend(a.text());n.found&&i.append(n);let o=_a(i,t);o&&r.push({start:o,end:o.clone().end(),unit:o.unit})})),r}},{match:"^#Value+ (or|and)? #Value of #Month #Year?$",desc:"5 or 8 of Jan",parse:(e,t)=>{let a=e.match("#Month"),n=e.match("#Year");e=e.not("#Year");let r=[];return e.match("#Value").forEach((e=>{let i=e.append(a);n.found&&i.append(n);let o=_a(i,t);o&&r.push({start:o,end:o.clone().end(),unit:o.unit})})),r}},{match:"^!(between|from|during)? [#Date+] (and|or) [#Date+]$",desc:"A or B",parse:(e,t)=>{let a=e.groups("from"),n=e.groups("to"),r=_a(a,t),i=_a(n,t);return r&&i?[{start:r,end:r.clone().end()},{start:i,end:i.clone().end()}]:null}}],Sa=[{match:"between [.+] and [.+]",desc:"between friday and sunday",parse:(e,t)=>{let a=e.groups("start");a=_a(a,t);let n=e.groups("end");return n=_a(n,t),a&&n?(n=n.before(),{start:a,end:n}):null}},{match:"[#Month #Value] (to|through|thru) [#Month #Value] [#Year?]",desc:"june 5 to june 7",parse:(e,t)=>{let a=e.groups(),n=a.from;if(a.year&&(n=n.append(a.year)),n=_a(n,t),n){let e=a.to;if(a.year&&(e=e.append(a.year)),e=_a(e,t),e)return n.d.isAfter(e.d)&&(e.d=e.d.add(1,"year")),{start:n,end:e.end()}}return null}},{match:"[#Month] [#Value] (to|through|thru) [#Value] of? [#Year]",desc:"january 5 to 7 1998",parse:(e,t)=>{let{month:a,from:n,to:r,year:i}=e.groups(),o=i.clone(),s=n.prepend(a).append(i);if(s=_a(s,t),s){let e=r.prepend(a).append(o);return e=_a(e,t),{start:s,end:e.end()}}return null}},{match:"[#Value] (to|through|thru) [#Value of? #Month #Date+?]",desc:"5 to 7 of january 1998",parse:(e,t)=>{let a=e.groups("to");if(a=_a(a,t),a){let t=e.groups("from"),n=a.clone();return n.d=n.d.date(t.text("implicit")),{start:n,end:a.end()}}return null}},{match:"[#Month #Value] (to|through|thru) [#Value]",desc:"january 5 to 7",parse:(e,t)=>{let a=e.groups("from");if(a=_a(a,t),a){let t=e.groups("to"),n=a.clone();return n.d=n.d.date(t.text("implicit")),{start:a,end:n.end()}}return null}},{match:"from? [#Month] (to|until|upto|through|thru) [#Month] [#Year]",desc:"january to may 2020",parse:(e,t)=>{let a=e.groups("from"),n=e.groups("year").numbers().get()[0],r=e.groups("to");if(a=_a(a,t),r=_a(r,t),a.d=a.d.year(n),r.d=r.d.year(n),a&&r){let e={start:a,end:r.end()};return e=za(e),e}return null}}];const Ca=function(e,t){return e=e.applyShift(t.punt)},Aa=[].concat(Va,qa,Sa,[{match:"from? [.+] (to|until|upto|through|thru) [.+]",desc:"from A to B",parse:(e,t)=>{let a=e.groups("from"),n=e.groups("to");if(a=_a(a,t),n=_a(n,t),a&&n){let e={start:a,end:n.end()};return e=za(e),e}return null}},{match:"^due? (by|before) [.+]",desc:"before june",parse:(e,t)=>{e=e.group(0);let a=_a(e,t);if(a){let e=new Unit(t.today,null,t);return e.d.isAfter(a.d)&&(e=a.clone().applyShift({weeks:-2})),{start:e,end:a.clone().applyShift({day:-1}).end()}}return null}},{match:"^(on|in|at|@|during) [.+]",desc:"in june",parse:(e,t)=>{e=e.group(0);let a=_a(e,t);return a?{start:a,end:a.clone().end(),unit:a.unit}:null}},{match:"^(after|following) [.+]",desc:"after june",parse:(e,t)=>{e=e.group(0);let a=_a(e,t);return a?(a=a.after(),{start:a.clone(),end:Ca(a.clone(),t)}):null}},{match:"^(middle|center|midpoint) of [.+]",desc:"middle of",parse:(e,t)=>{e=e.group(0);let a=_a(e,t),n=a.clone().middle(),r=a.beforeEnd();return a?{start:n,end:r}:null}},{match:".+ after #Time+$",desc:"tuesday after 5pm",parse:(e,t)=>{let a=_a(e,t);return a?{start:a.clone(),end:a.end(),unit:"time"}:null}},{match:".+ before #Time+$",desc:"tuesday before noon",parse:(e,t)=>{let a=_a(e,t);if(a){let e=a.clone(),t=a.start();if(a)return{start:t,end:e,unit:"time"}}return null}}]),Ea="undefined"!=typeof process&&process.env?process.env:self.env||{},Na=function(e,t){let a={start:null,end:null};if(!e.found)return a;let n=_a(e,t);if(n){let e=n.clone().end();a={start:n,end:e,unit:n.setTime?"time":n.unit}}return a},Pa=function(e,t){let a=function(e,t){let a=e.match("[(every|any|each)] [other?] [#Duration] (starting|beginning|commencing)?");if(a.found){let t={interval:{}},n=a.groups("unit").text("reduced");return t.interval[n]=1,t.choose=$a(a),a.groups("skip").found&&(t.interval[n]=2),e=e.remove(a),{repeat:t}}if(a=e.match("[(every|any|each)] [#Value] [#Duration] (starting|beginning|commencing)?"),a.found){let t={interval:{}},n=a.groups("unit");n.nouns().toSingular();let r=n.text("reduced");return t.interval[r]=a.groups("num").numbers().get()[0],t.choose=$a(a),e=e.remove(a),{repeat:t}}if(a=e.match("[(every|any|each|a)] [other?] [#WeekDay+] (starting|beginning|commencing)?"),a.found){let t={interval:{day:1},filter:{weekDays:{}}},n=a.groups("day").text("reduced");if(n=ja[n],n)return t.filter.weekDays[n]=!0,t.choose=$a(a),e=e.remove(a),{repeat:t}}if(a=e.match("[(every|any|each|a)] [(weekday|week day|weekend|weekend day)] (starting|beginning|commencing)?"),a.found){let t={interval:{day:1},filter:{weekDays:{}}},n=a.groups("day");return n.has("(weekday|week day)")?t.filter.weekDays={monday:!0,tuesday:!0,wednesday:!0,thursday:!0,friday:!0}:n.has("(weekend|weekend day)")&&(t.filter.weekDays={saturday:!0,sunday:!0}),t.choose=$a(a),e=e.remove(a),{repeat:t}}if(a=e.match("[(mondays|tuesdays|wednesdays|thursdays|fridays|saturdays|sundays)] (at|near|after)? [(after|before)]"),n.found){let e=n.groups("unit").text("reduced"),a=n.groups("dir").text("reduced");"after"===a?t[e]=1:"before"===a&&(t[e]=-1)}if(n=i.match("half (a|an) [#Duration]",0),n.found){let e=r(n);t[e]=.5}return n=e.match("#DateShift+"),{result:t,m:n}};const o={minute:!0};var s=function(e){let t=e.match("[#Value] [#Duration+] (of|in)");if(t.found){let e=t.groups(),a=e.num.numbers().get()[0],n=e.unit.text("reduced"),r={unit:n,num:Number(a)||0};return o[n]||(r.num-=1),{result:r,m:t}}if(t=e.match("[(first|initial|last|final)] [#Duration+] (of|in)"),t.found){let e=t.groups(),a=e.dir.text("reduced");return"initial"===a&&(a="first"),"final"===a&&(a="last"),{result:{unit:e.unit.text("reduced"),dir:a},m:t}}return{result:null,m:e.none()}};const u=(e,t,a)=>{const[n,r]=e.split("/"),[i,o]=r.split(":");return Date.UTC(a,n-1,i,o)-36e5*t};var d=(e,t,a,n,r)=>{const i=new Date(e).getUTCFullYear(),o=u(t,r,i),s=u(a,n,i);return e>=o&&e{let t=e.timezones[e.tz];if(void 0===t)return console.warn("Warning: couldn't find timezone "+e.tz),0;if(void 0===t.dst)return t.offset;let a=t.offset,n=t.offset+1;"n"===t.hem&&(n=a-1);let r=t.dst.split("->");return!0===d(e.epoch,r[0],r[1],a,n)?a:n},h={"9|s":"2/dili,2/jayapura","9|n":"2/chita,2/khandyga,2/pyongyang,2/seoul,2/tokyo,2/yakutsk,11/palau,japan,rok","9.5|s|04/07:03->10/06:02":"4/adelaide,4/broken_hill,4/south,4/yancowinna","9.5|s":"4/darwin,4/north","8|s|03/13:01->10/02:00":"12/casey","8|s":"2/kuala_lumpur,2/makassar,2/singapore,4/perth,2/ujung_pandang,4/west,singapore","8|n":"2/brunei,2/choibalsan,2/hong_kong,2/irkutsk,2/kuching,2/macau,2/manila,2/shanghai,2/taipei,2/ulaanbaatar,2/chongqing,2/chungking,2/harbin,2/macao,2/ulan_bator,hongkong,prc,roc","8.75|s":"4/eucla","7|s":"12/davis,2/jakarta,9/christmas","7|n":"2/bangkok,2/barnaul,2/hovd,2/krasnoyarsk,2/novokuznetsk,2/novosibirsk,2/phnom_penh,2/pontianak,2/ho_chi_minh,2/tomsk,2/vientiane,2/saigon","6|s":"12/vostok","6|n":"2/almaty,2/bishkek,2/dhaka,2/omsk,2/qyzylorda,2/qostanay,2/thimphu,2/urumqi,9/chagos,2/dacca,2/kashgar,2/thimbu","6.5|n":"2/yangon,9/cocos,2/rangoon","5|s":"12/mawson,9/kerguelen","5|n":"2/aqtau,2/aqtobe,2/ashgabat,2/atyrau,2/dushanbe,2/karachi,2/oral,2/samarkand,2/tashkent,2/yekaterinburg,9/maldives,2/ashkhabad","5.75|n":"2/kathmandu,2/katmandu","5.5|n":"2/kolkata,2/colombo,2/calcutta","4|s":"9/reunion","4|n":"2/baku,2/dubai,2/muscat,2/tbilisi,2/yerevan,8/astrakhan,8/samara,8/saratov,8/ulyanovsk,8/volgograd,9/mahe,9/mauritius,2/volgograd","4.5|n":"2/kabul","3|s":"12/syowa,9/antananarivo","3|n|04/26:00->10/31:24":"0/cairo,egypt","3|n|04/20:02->10/26:02":"2/gaza,2/hebron","3|n|03/31:03->10/27:04":"2/famagusta,2/nicosia,8/athens,8/bucharest,8/helsinki,8/kyiv,8/mariehamn,8/riga,8/sofia,8/tallinn,8/uzhgorod,8/vilnius,8/zaporozhye,8/nicosia,8/kiev,eet","3|n|03/31:02->10/27:03":"8/chisinau,8/tiraspol","3|n|03/31:00->10/26:24":"2/beirut","3|n|03/29:02->10/27:02":"2/jerusalem,2/tel_aviv,israel","3|n":"0/addis_ababa,0/asmara,0/asmera,0/dar_es_salaam,0/djibouti,0/juba,0/kampala,0/mogadishu,0/nairobi,2/aden,2/amman,2/baghdad,2/bahrain,2/damascus,2/kuwait,2/qatar,2/riyadh,8/istanbul,8/kirov,8/minsk,8/moscow,8/simferopol,9/comoro,9/mayotte,2/istanbul,turkey,w-su","3.5|n":"2/tehran,iran","2|s|03/31:02->10/27:02":"12/troll","2|s":"0/gaborone,0/harare,0/johannesburg,0/lubumbashi,0/lusaka,0/maputo,0/maseru,0/mbabane","2|n|03/31:02->10/27:03":"0/ceuta,arctic/longyearbyen,8/amsterdam,8/andorra,8/belgrade,8/berlin,8/bratislava,8/brussels,8/budapest,8/busingen,8/copenhagen,8/gibraltar,8/ljubljana,8/luxembourg,8/madrid,8/malta,8/monaco,8/oslo,8/paris,8/podgorica,8/prague,8/rome,8/san_marino,8/sarajevo,8/skopje,8/stockholm,8/tirane,8/vaduz,8/vatican,8/vienna,8/warsaw,8/zagreb,8/zurich,3/jan_mayen,poland,cet,met","2|n":"0/blantyre,0/bujumbura,0/khartoum,0/kigali,0/tripoli,8/kaliningrad,libya","1|s":"0/brazzaville,0/kinshasa,0/luanda,0/windhoek","1|n|03/31:01->10/27:02":"3/canary,3/faroe,3/madeira,8/dublin,8/guernsey,8/isle_of_man,8/jersey,8/lisbon,8/london,3/faeroe,eire,8/belfast,gb-eire,gb,portugal,wet","1|n":"0/algiers,0/bangui,0/douala,0/lagos,0/libreville,0/malabo,0/ndjamena,0/niamey,0/porto-novo,0/tunis","14|n":"11/kiritimati","13|s":"11/apia,11/tongatapu","13|n":"11/enderbury,11/kanton,11/fakaofo","12|s|04/07:03->09/29:02":"12/mcmurdo,11/auckland,12/south_pole,nz","12|s":"11/fiji","12|n":"2/anadyr,2/kamchatka,2/srednekolymsk,11/funafuti,11/kwajalein,11/majuro,11/nauru,11/tarawa,11/wake,11/wallis,kwajalein","12.75|s|04/07:03->04/07:02":"11/chatham,nz-chat","11|s|04/07:03->10/06:02":"12/macquarie","11|s":"11/bougainville","11|n":"2/magadan,2/sakhalin,11/efate,11/guadalcanal,11/kosrae,11/noumea,11/pohnpei,11/ponape","11.5|n|04/07:03->10/06:02":"11/norfolk","10|s|04/07:03->10/06:02":"4/currie,4/hobart,4/melbourne,4/sydney,4/act,4/canberra,4/nsw,4/tasmania,4/victoria","10|s":"12/dumontdurville,4/brisbane,4/lindeman,11/port_moresby,4/queensland","10|n":"2/ust-nera,2/vladivostok,11/guam,11/saipan,11/chuuk,11/truk,11/yap","10.5|s|04/07:01->10/06:02":"4/lord_howe,4/lhi","0|s|03/10:03->04/14:02":"0/casablanca,0/el_aaiun","0|n|03/31:00->10/27:01":"1/scoresbysund,3/azores","0|n":"0/abidjan,0/accra,0/bamako,0/banjul,0/bissau,0/conakry,0/dakar,0/freetown,0/lome,0/monrovia,0/nouakchott,0/ouagadougou,0/sao_tome,1/danmarkshavn,3/reykjavik,3/st_helena,13/gmt,13/utc,0/timbuktu,13/greenwich,13/uct,13/universal,13/zulu,gmt-0,gmt+0,gmt0,greenwich,iceland,uct,universal,utc,zulu,13/unknown,factory","-9|n|03/10:02->11/03:02":"1/adak,1/atka,us/aleutian","-9|n":"11/gambier","-9.5|n":"11/marquesas","-8|n|03/10:02->11/03:02":"1/anchorage,1/juneau,1/metlakatla,1/nome,1/sitka,1/yakutat,us/alaska","-8|n":"11/pitcairn","-7|n|03/10:02->11/03:02":"1/los_angeles,1/santa_isabel,1/tijuana,1/vancouver,1/ensenada,6/pacific,10/bajanorte,us/pacific-new,us/pacific","-7|n":"1/creston,1/dawson,1/dawson_creek,1/fort_nelson,1/hermosillo,1/mazatlan,1/phoenix,1/whitehorse,6/yukon,10/bajasur,us/arizona,mst","-6|s|04/06:22->09/07:22":"11/easter,7/easterisland","-6|n|04/07:02->10/27:02":"1/merida","-6|n|03/10:02->11/03:02":"1/boise,1/cambridge_bay,1/denver,1/edmonton,1/inuvik,1/north_dakota,1/ojinaga,1/ciudad_juarez,1/yellowknife,1/shiprock,6/mountain,navajo,us/mountain","-6|n":"1/bahia_banderas,1/belize,1/chihuahua,1/costa_rica,1/el_salvador,1/guatemala,1/managua,1/mexico_city,1/monterrey,1/regina,1/swift_current,1/tegucigalpa,11/galapagos,6/east-saskatchewan,6/saskatchewan,10/general","-5|s":"1/lima,1/rio_branco,1/porto_acre,5/acre","-5|n|03/10:02->11/03:02":"1/chicago,1/matamoros,1/menominee,1/rainy_river,1/rankin_inlet,1/resolute,1/winnipeg,1/indiana/knox,1/indiana/tell_city,1/north_dakota/beulah,1/north_dakota/center,1/north_dakota/new_salem,1/knox_in,6/central,us/central,us/indiana-starke","-5|n":"1/bogota,1/cancun,1/cayman,1/coral_harbour,1/eirunepe,1/guayaquil,1/jamaica,1/panama,1/atikokan,jamaica,est","-4|s|04/06:24->09/08:00":"1/santiago,7/continental","-4|s|03/23:24->10/06:00":"1/asuncion","-4|s":"1/campo_grande,1/cuiaba,1/la_paz,1/manaus,5/west","-4|n|03/10:02->11/03:02":"1/detroit,1/grand_turk,1/indiana,1/indianapolis,1/iqaluit,1/kentucky,1/louisville,1/montreal,1/nassau,1/new_york,1/nipigon,1/pangnirtung,1/port-au-prince,1/thunder_bay,1/toronto,1/indiana/marengo,1/indiana/petersburg,1/indiana/vevay,1/indiana/vincennes,1/indiana/winamac,1/kentucky/monticello,1/fort_wayne,1/indiana/indianapolis,1/kentucky/louisville,6/eastern,us/east-indiana,us/eastern,us/michigan","-4|n|03/10:00->11/03:01":"1/havana,cuba","-4|n":"1/anguilla,1/antigua,1/aruba,1/barbados,1/blanc-sablon,1/boa_vista,1/caracas,1/curacao,1/dominica,1/grenada,1/guadeloupe,1/guyana,1/kralendijk,1/lower_princes,1/marigot,1/martinique,1/montserrat,1/port_of_spain,1/porto_velho,1/puerto_rico,1/santo_domingo,1/st_barthelemy,1/st_kitts,1/st_lucia,1/st_thomas,1/st_vincent,1/tortola,1/virgin","-3|s":"1/argentina,1/buenos_aires,1/catamarca,1/cordoba,1/fortaleza,1/jujuy,1/mendoza,1/montevideo,1/punta_arenas,1/sao_paulo,12/palmer,12/rothera,3/stanley,1/argentina/la_rioja,1/argentina/rio_gallegos,1/argentina/salta,1/argentina/san_juan,1/argentina/san_luis,1/argentina/tucuman,1/argentina/ushuaia,1/argentina/comodrivadavia,1/argentina/buenos_aires,1/argentina/catamarca,1/argentina/cordoba,1/argentina/jujuy,1/argentina/mendoza,1/argentina/rosario,1/rosario,5/east","-3|n|03/10:02->11/03:02":"1/glace_bay,1/goose_bay,1/halifax,1/moncton,1/thule,3/bermuda,6/atlantic","-3|n":"1/araguaina,1/bahia,1/belem,1/cayenne,1/maceio,1/paramaribo,1/recife,1/santarem","-2|n|03/30:22->10/26:23":"1/nuuk,1/godthab","-2|n|03/10:02->11/03:02":"1/miquelon","-2|n":"1/noronha,3/south_georgia,5/denoronha","-2.5|n|03/10:02->11/03:02":"1/st_johns,6/newfoundland","-1|n":"3/cape_verde","-11|n":"11/midway,11/niue,11/pago_pago,11/samoa,us/samoa","-10|n":"11/honolulu,11/johnston,11/rarotonga,11/tahiti,us/hawaii,hst"},m=["africa","america","asia","atlantic","australia","brazil","canada","chile","europe","indian","mexico","pacific","antarctica","etc"];let c={};Object.keys(h).forEach((e=>{let t=e.split("|"),a={offset:Number(t[0]),hem:t[1]};t[2]&&(a.dst=t[2]),h[e].split(",").forEach((e=>{e=e.replace(/(^[0-9]+)\//,((e,t)=>(t=Number(t),m[t]+"/"))),c[e]=a}))})),c.utc={offset:0,hem:"n"};for(let e=-14;e<=14;e+=.5){let t=e;t>0&&(t="+"+t);let a="etc/gmt"+t;c[a]={offset:-1*e,hem:"n"},a="utc/gmt"+t,c[a]={offset:-1*e,hem:"n"}}var f=c;var y=()=>{let e=(()=>{if("undefined"==typeof Intl||void 0===Intl.DateTimeFormat)return null;let e=Intl.DateTimeFormat();if(void 0===e||void 0===e.resolvedOptions)return null;let t=e.resolvedOptions().timeZone;return t?t.toLowerCase():null})();return null===e?"utc":e};const p=/(\-?[0-9]+)h(rs)?/i,g=/(\-?[0-9]+)/,w=/utc([\-+]?[0-9]+)/i,b=/gmt([\-+]?[0-9]+)/i,k=function(e){return(e=Number(e))>=-13&&e<=13?"etc/gmt"+(e=((e*=-1)>0?"+":"")+e):null};var D=function(e){let t=e.match(p);if(null!==t)return k(t[1]);if(t=e.match(w),null!==t)return k(t[1]);if(t=e.match(b),null!==t){let e=-1*Number(t[1]);return k(e)}return t=e.match(g),null!==t?k(t[1]):null};let v=y();const x=Object.keys(f).reduce(((e,t)=>{let a=t.split("/")[1]||"";return a=a.replace(/_/g," "),e[a]=t,e}),{});var O=(e,t)=>{if(!e)return t.hasOwnProperty(v)||(console.warn(`Unrecognized IANA id '${v}'. Setting fallback tz to UTC.`),v="utc"),v;"string"!=typeof e&&console.error("Timezone must be a string - recieved: '",e,"'\n");let a=e.trim();if(a=a.toLowerCase(),!0===t.hasOwnProperty(a))return a;if(a=(e=>(e=(e=(e=(e=(e=e.replace(/ time/g,"")).replace(/ (standard|daylight|summer)/g,"")).replace(/\b(east|west|north|south)ern/g,"$1")).replace(/\b(africa|america|australia)n/g,"$1")).replace(/\beuropean/g,"europe")).replace(/\islands/g,"island"))(a),!0===t.hasOwnProperty(a))return a;if(!0===x.hasOwnProperty(a))return x[a];if(!0===/[0-9]/.test(a)){let e=D(a);if(e)return e}throw new Error("Spacetime: Cannot find timezone named: '"+e+"'. Please enter an IANA timezone id.")};function M(e){return e%4==0&&e%100!=0||e%400==0}function _(e){return"[object Date]"===Object.prototype.toString.call(e)&&!isNaN(e.valueOf())}function j(e){return"[object Object]"===Object.prototype.toString.call(e)}function $(e,t=2){return(e+="").length>=t?e:new Array(t-e.length+1).join("0")+e}function z(e){let t=e%10,a=e%100;return 1===t&&11!==a?e+"st":2===t&&12!==a?e+"nd":3===t&&13!==a?e+"rd":e+"th"}function T(e){return e=(e=String(e)).replace(/([0-9])(st|nd|rd|th)$/i,"$1"),parseInt(e,10)}function V(e=""){return"day"===(e=(e=(e=(e=e.toLowerCase().trim()).replace(/ies$/,"y")).replace(/s$/,"")).replace(/-/g,""))||"days"===e?"date":"min"===e||"mins"===e?"minute":e}function q(e){return"number"==typeof e?e:_(e)?e.getTime():e.epoch?e.epoch:null}function S(e,t){return!1===j(e)?t.clone().set(e):e}function C(e,t=""){const a=e>0?"+":"-",n=Math.abs(e);return`${a}${$(parseInt(""+n,10))}${t}${$(n%1*60)}`}const A={year:(new Date).getFullYear(),month:0,date:1};var E={parseArray:(e,t,a)=>{if(0===t.length)return e;let n=["year","month","date","hour","minute","second","millisecond"];for(let r=0;r{if(0===Object.keys(t).length)return e;t=Object.assign({},A,a,t);let n=Object.keys(t);for(let r=0;r0&&t<25e8&&!1===e.silent&&(console.warn(" - Warning: You are setting the date to January 1970."),console.warn(" - did input seconds instead of milliseconds?")),e.epoch=t,e}};const N=function(e){return e.epoch=Date.now(),Object.keys(e._today||{}).forEach((t=>{"function"==typeof e[t]&&(e=e[t](e._today[t]))})),e},P={now:e=>N(e),today:e=>N(e),tonight:e=>e=(e=N(e)).hour(18),tomorrow:e=>e=(e=(e=N(e)).add(1,"day")).startOf("day"),yesterday:e=>e=(e=(e=N(e)).subtract(1,"day")).startOf("day"),christmas:e=>{let t=N(e).year();return e=e.set([t,11,25,18,0,0])},"new years":e=>{let t=N(e).year();return e=e.set([t,11,31,18,0,0])}};P["new years eve"]=P["new years"];var Y=P;var B=function(e){return e=(e=(e=(e=e.replace(/\b(mon|tues?|wed|wednes|thur?s?|fri|sat|satur|sun)(day)?\b/i,"")).replace(/([0-9])(th|rd|st|nd)/,"$1")).replace(/,/g,"")).replace(/ +/g," ").trim()};let H={millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5};H.date=H.day,H.month=25488e5,H.week=6048e5,H.year=3154e7,Object.keys(H).forEach((e=>{H[e+"s"]=H[e]}));var L=H;const I=(e,t,a,n,r)=>{let i=e.d[a]();if(i===t)return;let o=null===r?null:e.d[r](),s=e.epoch,u=t-i;e.epoch+=L[n]*u,"day"===n&&Math.abs(u)>28&&t<28&&(e.epoch+=L.hour),null!==r&&o!==e.d[r]()&&(e.epoch=s);const d=L[n]/2;for(;e.d[a]()t;)e.epoch-=d;null!==r&&o!==e.d[r]()&&(e.epoch=s)},W={year:{valid:e=>e>-4e3&&e<4e3,walkTo:(e,t)=>I(e,t,"getFullYear","year",null)},month:{valid:e=>e>=0&&e<=11,walkTo:(e,t)=>{let a=e.d,n=a.getMonth(),r=e.epoch,i=a.getFullYear();if(n===t)return;let o=t-n;for(e.epoch+=L.day*(28*o),i!==e.d.getFullYear()&&(e.epoch=r);e.d.getMonth()t;)e.epoch-=L.day}},date:{valid:e=>e>0&&e<=31,walkTo:(e,t)=>I(e,t,"getDate","day","getMonth")},hour:{valid:e=>e>=0&&e<24,walkTo:(e,t)=>I(e,t,"getHours","hour","getDate")},minute:{valid:e=>e>=0&&e<60,walkTo:(e,t)=>I(e,t,"getMinutes","minute","getHours")},second:{valid:e=>e>=0&&e<60,walkTo:(e,t)=>{e.epoch=e.seconds(t).epoch}},millisecond:{valid:e=>e>=0&&e<1e3,walkTo:(e,t)=>{e.epoch=e.milliseconds(t).epoch}}};var F=(e,t)=>{let a=Object.keys(W),n=e.clone();for(let r=0;r{if(!t)return e;t=t.trim().toLowerCase();let a=0;if(/^[\+-]?[0-9]{2}:[0-9]{2}$/.test(t)&&(!0===/:00/.test(t)&&(t=t.replace(/:00/,"")),!0===/:30/.test(t)&&(t=t.replace(/:30/,".5"))),/^[\+-]?[0-9]{4}$/.test(t)&&(t=t.replace(/30$/,".5")),a=parseFloat(t),Math.abs(a)>100&&(a/=100),0===a||"Z"===t||"z"===t)return e.tz="etc/gmt",e;a*=-1,a>=0&&(a="+"+a);let n="etc/gmt"+a;return e.timezones[n]&&(e.tz=n),e};var Z=(e,t="")=>{let a=(t=t.replace(/^\s+/,"").toLowerCase()).match(/([0-9]{1,2}):([0-9]{1,2}):?([0-9]{1,2})?[:\.]?([0-9]{1,4})?/);if(null!==a){let[,n,r,i,o]=a;if(n=Number(n),n<0||n>24)return e.startOf("day");if(r=Number(r),a[2].length<2||r<0||r>59)return e.startOf("day");e=(e=(e=(e=e.hour(n)).minute(r)).seconds(i||0)).millisecond(function(e=""){return(e=String(e)).length>3?e=e.substring(0,3):1===e.length?e+="00":2===e.length&&(e+="0"),Number(e)||0}(o));let s=t.match(/[\b0-9] ?(am|pm)\b/);return null!==s&&s[1]&&(e=e.ampm(s[1])),e}if(a=t.match(/([0-9]+) ?(am|pm)/),null!==a&&a[1]){let t=Number(a[1]);return t>12||t<1?e.startOf("day"):e=(e=(e=e.hour(a[1]||0)).ampm(a[2])).startOf("hour")}return e=e.startOf("day")};let X=U();const ee=e=>{if(!0!==J.hasOwnProperty(e.month))return!1;if(1===e.month)return!!(M(e.year)&&e.date<=29)||e.date<=28;let t=J[e.month]||0;return e.date<=t},te=(e="",t)=>{if(e=e.trim(),!0===/^'[0-9][0-9]$/.test(e)){let t=Number(e.replace(/'/,""));return t>50?1900+t:2e3+t}let a=parseInt(e,10);return!a&&t&&(a=t.year),a=a||(new Date).getFullYear(),a},ae=function(e){return"sept"===(e=e.toLowerCase().trim())?X.sep:X[e]};var ne=[{reg:/^([0-9]{1,2})[\-\/.]([0-9]{1,2})[\-\/.]?([0-9]{4})?( [0-9]{1,2}:[0-9]{2}:?[0-9]{0,2}? ?(am|pm|gmt))?$/i,parse:(e,t)=>{let a=parseInt(t[1],10)-1,n=parseInt(t[2],10);(e.british||a>=12)&&(n=parseInt(t[1],10),a=parseInt(t[2],10)-1);let r={date:n,month:a,year:te(t[3],e._today)||(new Date).getFullYear()};return!1===ee(r)?(e.epoch=null,e):(F(e,r),e=Z(e,t[4]))}},{reg:/^([a-z]+)[\-\/\. ]([0-9]{1,2})[\-\/\. ]?([0-9]{4}|'[0-9]{2})?( [0-9]{1,2}(:[0-9]{0,2})?(:[0-9]{0,3})? ?(am|pm)?)?$/i,parse:(e,t)=>{let a={year:te(t[3],e._today),month:ae(t[1]),date:T(t[2]||"")};return!1===ee(a)?(e.epoch=null,e):(F(e,a),e=Z(e,t[4]))}},{reg:/^([a-z]+) ([0-9]{1,2})( [0-9]{4})?( ([0-9:]+( ?am| ?pm| ?gmt)?))?$/i,parse:(e,t)=>{let a={year:te(t[3],e._today),month:ae(t[1]),date:T(t[2]||"")};return!1===ee(a)?(e.epoch=null,e):(F(e,a),e=Z(e,t[4]))}},{reg:/^([a-z]+) ([0-9]{1,2}) ([0-9]{1,2}:[0-9]{2}:?[0-9]{0,2})( \+[0-9]{4})?( [0-9]{4})?$/i,parse:(e,t)=>{let[,a,n,r,i,o]=t,s={year:te(o,e._today),month:ae(a),date:T(n||"")};return!1===ee(s)?(e.epoch=null,e):(F(e,s),e=G(e,i),e=Z(e,r))}}],re=[{reg:/^([0-9]{4})[\-\/]([0-9]{2})$/i,parse:(e,t)=>{let a={year:t[1],month:parseInt(t[2],10)-1,date:1};return!1===ee(a)?(e.epoch=null,e):(F(e,a),e=Z(e,t[4]))}},{reg:/^([a-z]+) ([0-9]{4})$/i,parse:(e,t)=>{let a={year:te(t[2],e._today),month:ae(t[1]),date:e._today.date||1};return!1===ee(a)?(e.epoch=null,e):(F(e,a),e=Z(e,t[4]))}},{reg:/^(q[0-9])( of)?( [0-9]{4})?/i,parse:(e,t)=>{let a=t[1]||"";e=e.quarter(a);let n=t[3]||"";return n&&(n=n.trim(),e=e.year(n)),e}},{reg:/^(spring|summer|winter|fall|autumn)( of)?( [0-9]{4})?/i,parse:(e,t)=>{let a=t[1]||"";e=e.season(a);let n=t[3]||"";return n&&(n=n.trim(),e=e.year(n)),e}},{reg:/^[0-9,]+ ?b\.?c\.?$/i,parse:(e,t)=>{let a=t[0]||"";a=a.replace(/^([0-9,]+) ?b\.?c\.?$/i,"-$1");let n=new Date,r={year:parseInt(a.trim(),10),month:n.getMonth(),date:n.getDate()};return!1===ee(r)?(e.epoch=null,e):(F(e,r),e=Z(e))}},{reg:/^[0-9,]+ ?(a\.?d\.?|c\.?e\.?)$/i,parse:(e,t)=>{let a=t[0]||"";a=a.replace(/,/g,"");let n=new Date,r={year:parseInt(a.trim(),10),month:n.getMonth(),date:n.getDate()};return!1===ee(r)?(e.epoch=null,e):(F(e,r),e=Z(e))}},{reg:/^[0-9]{4}( ?a\.?d\.?)?$/i,parse:(e,t)=>{let a=e._today;a.month&&!a.date&&(a.date=1);let n=new Date,r={year:te(t[0],a),month:a.month||n.getMonth(),date:a.date||n.getDate()};return!1===ee(r)?(e.epoch=null,e):(F(e,r),e=Z(e))}}],ie=[].concat([{reg:/^(\-?0?0?[0-9]{3,4})-([0-9]{1,2})-([0-9]{1,2})[T| ]([0-9.:]+)(Z|[0-9\-\+:]+)?$/i,parse:(e,t)=>{let a={year:t[1],month:parseInt(t[2],10)-1,date:t[3]};return!1===ee(a)?(e.epoch=null,e):(G(e,t[5]),F(e,a),e=Z(e,t[4]))}},{reg:/^([0-9]{4})[\-\/\. ]([0-9]{1,2})[\-\/\. ]([0-9]{1,2})( [0-9]{1,2}(:[0-9]{0,2})?(:[0-9]{0,3})? ?(am|pm)?)?$/i,parse:(e,t)=>{let a={year:t[1],month:parseInt(t[2],10)-1,date:parseInt(t[3],10)};return a.month>=12&&(a.date=parseInt(t[2],10),a.month=parseInt(t[3],10)-1),!1===ee(a)?(e.epoch=null,e):(F(e,a),e=Z(e,t[4]))}},{reg:/^([0-9]{4})[\-\/\. ]([a-z]+)[\-\/\. ]([0-9]{1,2})( [0-9]{1,2}(:[0-9]{0,2})?(:[0-9]{0,3})? ?(am|pm)?)?$/i,parse:(e,t)=>{let a={year:te(t[1],e._today),month:ae(t[2]),date:T(t[3]||"")};return!1===ee(a)?(e.epoch=null,e):(F(e,a),e=Z(e,t[4]))}}],ne,[{reg:/^([0-9]{1,2})[\-\/]([a-z]+)[\-\/]?([0-9]{4})?$/i,parse:(e,t)=>{let a={year:te(t[3],e._today),month:ae(t[2]),date:T(t[1]||"")};return!1===ee(a)?(e.epoch=null,e):(F(e,a),e=Z(e,t[4]))}},{reg:/^([0-9]{1,2})( [a-z]+)( [0-9]{4}| '[0-9]{2})? ?([0-9]{1,2}:[0-9]{2}:?[0-9]{0,2}? ?(am|pm|gmt))?$/i,parse:(e,t)=>{let a={year:te(t[3],e._today),month:ae(t[2]),date:T(t[1])};return a.month&&!1!==ee(a)?(F(e,a),e=Z(e,t[4])):(e.epoch=null,e)}},{reg:/^([0-9]{1,2})[\. -/]([a-z]+)[\. -/]([0-9]{4})?( [0-9]{1,2}(:[0-9]{0,2})?(:[0-9]{0,3})? ?(am|pm)?)?$/i,parse:(e,t)=>{let a={date:Number(t[1]),month:ae(t[2]),year:Number(t[3])};return!1===ee(a)?(e.epoch=null,e):(F(e,a),e=e.startOf("day"),e=Z(e,t[4]))}}],re);var oe=function(e,t,a){for(let n=0;n{let a=e._today||le;if("number"==typeof t)return de(e,t);if(e.epoch=Date.now(),e._today&&j(e._today)&&Object.keys(e._today).length>0){let t=ue(e,a,le);t.isValid()&&(e.epoch=t.epoch)}return null==t||""===t?e:!0===_(t)?(e.epoch=t.getTime(),e):!0===function(e){return"[object Array]"===Object.prototype.toString.call(e)}(t)?e=se(e,t,a):!0===j(t)?t.epoch?(e.epoch=t.epoch,e.tz=t.tz,e):e=ue(e,t,a):"string"!=typeof t?e:(t=B(t),!0===Y.hasOwnProperty(t)?e=Y[t](e):oe(e,t))};let me=["sun","mon","tue","wed","thu","fri","sat"],ce=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"];function fe(){return me}function ye(){return ce}const pe={mo:1,tu:2,we:3,th:4,fr:5,sa:6,su:7,tues:2,weds:3,wedn:3,thur:4,thurs:4};let ge=!0;var we=e=>{let t=e.timezone().current.offset;return t?C(t,":"):"Z"};const be=e=>ge?function(e){return e?e[0].toUpperCase()+e.substr(1):""}(e):e,ke={day:e=>be(e.dayName()),"day-short":e=>be(fe()[e.day()]),"day-number":e=>e.day(),"day-ordinal":e=>z(e.day()),"day-pad":e=>$(e.day()),date:e=>e.date(),"date-ordinal":e=>z(e.date()),"date-pad":e=>$(e.date()),month:e=>be(e.monthName()),"month-short":e=>be(R()[e.month()]),"month-number":e=>e.month(),"month-ordinal":e=>z(e.month()),"month-pad":e=>$(e.month()),"iso-month":e=>$(e.month()+1),year:e=>{let t=e.year();return t>0?t:(t=Math.abs(t),t+" BC")},"year-short":e=>{let t=e.year();return t>0?`'${String(e.year()).substr(2,4)}`:(t=Math.abs(t),t+" BC")},"iso-year":e=>{let t=e.year(),a=t<0,n=$(Math.abs(t),4);return a&&(n=$(n,6),n="-"+n),n},time:e=>e.time(),"time-24":e=>`${e.hour24()}:${$(e.minute())}`,hour:e=>e.hour12(),"hour-pad":e=>$(e.hour12()),"hour-24":e=>e.hour24(),"hour-24-pad":e=>$(e.hour24()),minute:e=>e.minute(),"minute-pad":e=>$(e.minute()),second:e=>e.second(),"second-pad":e=>$(e.second()),millisecond:e=>e.millisecond(),"millisecond-pad":e=>$(e.millisecond(),3),ampm:e=>e.ampm(),AMPM:e=>e.ampm().toUpperCase(),quarter:e=>"Q"+e.quarter(),season:e=>e.season(),era:e=>e.era(),json:e=>e.json(),timezone:e=>e.timezone().name,offset:e=>we(e),numeric:e=>`${e.year()}/${$(e.month()+1)}/${$(e.date())}`,"numeric-us":e=>`${$(e.month()+1)}/${$(e.date())}/${e.year()}`,"numeric-uk":e=>`${$(e.date())}/${$(e.month()+1)}/${e.year()}`,"mm/dd":e=>`${$(e.month()+1)}/${$(e.date())}`,iso:e=>`${e.format("iso-year")}-${$(e.month()+1)}-${$(e.date())}T${$(e.h24())}:${$(e.minute())}:${$(e.second())}.${$(e.millisecond(),3)}${we(e)}`,"iso-short":e=>{let t=$(e.month()+1),a=$(e.date());var n;return`${(n=e.year())>=0?$(n,4):"-"+$(n=Math.abs(n),4)}-${t}-${a}`},"iso-utc":e=>new Date(e.epoch).toISOString(),nice:e=>`${R()[e.month()]} ${z(e.date())}, ${e.time()}`,"nice-24":e=>`${R()[e.month()]} ${z(e.date())}, ${e.hour24()}:${$(e.minute())}`,"nice-year":e=>`${R()[e.month()]} ${z(e.date())}, ${e.year()}`,"nice-day":e=>`${fe()[e.day()]} ${be(R()[e.month()])} ${z(e.date())}`,"nice-full":e=>`${e.dayName()} ${be(e.monthName())} ${z(e.date())}, ${e.time()}`,"nice-full-24":e=>`${e.dayName()} ${be(e.monthName())} ${z(e.date())}, ${e.hour24()}:${$(e.minute())}`},De={"day-name":"day","month-name":"month","iso 8601":"iso","time-h24":"time-24","time-12":"time","time-h12":"time",tz:"timezone","day-num":"day-number","month-num":"month-number","month-iso":"iso-month","year-iso":"iso-year","nice-short":"nice","nice-short-24":"nice-24",mdy:"numeric-us",dmy:"numeric-uk",ymd:"numeric","yyyy/mm/dd":"numeric","mm/dd/yyyy":"numeric-us","dd/mm/yyyy":"numeric-us","little-endian":"numeric-uk","big-endian":"numeric","day-nice":"nice-day"};Object.keys(De).forEach((e=>ke[e]=ke[De[e]]));var ve=(e,t="")=>{if(!0!==e.isValid())return"";if(ke.hasOwnProperty(t)){let a=ke[t](e)||"";return"json"!==t&&(a=String(a),"ampm"!==t.toLowerCase()&&(a=be(a))),a}if(-1!==t.indexOf("{")){let a=/\{(.+?)\}/g;return t=t.replace(a,((t,a)=>{if(a=a.toLowerCase().trim(),ke.hasOwnProperty(a)){let t=String(ke[a](e));return"ampm"!==a.toLowerCase()?be(t):t}return""})),t}return e.format("iso-short")};const xe={G:e=>e.era(),GG:e=>e.era(),GGG:e=>e.era(),GGGG:e=>"AD"===e.era()?"Anno Domini":"Before Christ",y:e=>e.year(),yy:e=>$(Number(String(e.year()).substr(2,4))),yyy:e=>e.year(),yyyy:e=>e.year(),yyyyy:e=>"0"+e.year(),Q:e=>e.quarter(),QQ:e=>e.quarter(),QQQ:e=>e.quarter(),QQQQ:e=>e.quarter(),M:e=>e.month()+1,MM:e=>$(e.month()+1),MMM:e=>e.format("month-short"),MMMM:e=>e.format("month"),w:e=>e.week(),ww:e=>$(e.week()),d:e=>e.date(),dd:e=>$(e.date()),D:e=>e.dayOfYear(),DD:e=>$(e.dayOfYear()),DDD:e=>$(e.dayOfYear(),3),E:e=>e.format("day-short"),EE:e=>e.format("day-short"),EEE:e=>e.format("day-short"),EEEE:e=>e.format("day"),EEEEE:e=>e.format("day")[0],e:e=>e.day(),ee:e=>e.day(),eee:e=>e.format("day-short"),eeee:e=>e.format("day"),eeeee:e=>e.format("day")[0],a:e=>e.ampm().toUpperCase(),aa:e=>e.ampm().toUpperCase(),aaa:e=>e.ampm().toUpperCase(),aaaa:e=>e.ampm().toUpperCase(),h:e=>e.h12(),hh:e=>$(e.h12()),H:e=>e.hour(),HH:e=>$(e.hour()),m:e=>e.minute(),mm:e=>$(e.minute()),s:e=>e.second(),ss:e=>$(e.second()),SSS:e=>$(e.millisecond(),3),A:e=>e.epoch-e.startOf("day").epoch,z:e=>e.timezone().name,zz:e=>e.timezone().name,zzz:e=>e.timezone().name,zzzz:e=>e.timezone().name,Z:e=>C(e.timezone().current.offset),ZZ:e=>C(e.timezone().current.offset),ZZZ:e=>C(e.timezone().current.offset),ZZZZ:e=>C(e.timezone().current.offset,":")},Oe=(e,t,a)=>{let n=e,r=t;for(let i=0;i{let a=t.split("");return a=function(e){for(let t=0;te))}(a),a=function(e){for(let t=0;te))).map((e=>("''"===e&&(e="'"),e)))}(a),a.reduce(((t,a)=>(void 0!==xe[a]?t+=xe[a](e)||"":(/^'.{1,}'$/.test(a)&&(a=a.replace(/'/g,"")),t+=a),t)),"")};const _e=["year","season","quarter","month","week","day","quarterHour","hour","minute"],je=function(e,t){let a=e.clone().startOf(t),n=e.clone().endOf(t).epoch-a.epoch,r=(e.epoch-a.epoch)/n;return parseFloat(r.toFixed(2))};var $e=(e,t)=>{if(t)return t=V(t),je(e,t);let a={};return _e.forEach((t=>{a[t]=je(e,t)})),a};var ze=(e,t)=>{let a=e.progress();return"quarterhour"===(t=V(t))&&(t="quarterHour"),void 0!==a[t]?(a[t]>.5&&(e=e.add(1,t)),e=e.startOf(t)):!1===e.silent&&console.warn("no known unit '"+t+"'"),e};const Te=(e,t,a)=>{let n=0;for(e=e.clone();e.isBefore(t);)e=e.add(1,a),n+=1;return e.isAfter(t,a)&&(n-=1),n};var Ve=(e,t,a)=>e.isBefore(t)?Te(e,t,a):-1*Te(t,e,a);var qe=function(e,t){let a=t.epoch-e.epoch,n={milliseconds:a,seconds:parseInt(a/1e3,10)};n.minutes=parseInt(n.seconds/60,10),n.hours=parseInt(n.minutes/60,10);let r=e.clone();return n.years=((e,t)=>{let a=t.year()-e.year();return(e=e.year(t.year())).isAfter(t)&&(a-=1),a})(r,t),r=e.add(n.years,"year"),n.months=12*n.years,r=e.add(n.months,"month"),n.months+=Ve(r,t,"month"),n.quarters=4*n.years,n.quarters+=parseInt(n.months%12/3,10),n.weeks=52*n.years,r=e.add(n.weeks,"week"),n.weeks+=Ve(r,t,"week"),n.days=7*n.weeks,r=e.add(n.days,"day"),n.days+=Ve(r,t,"day"),n};var Se=function(e,t,a){t=S(t,e);let n=!1;if(e.isAfter(t)){let a=e;e=t,t=a,n=!0}let r=qe(e,t);return n&&(r=function(e){return Object.keys(e).forEach((t=>{e[t]*=-1})),e}(r)),a?(a=V(a),!0!==/s$/.test(a)&&(a+="s"),"dates"===a&&(a="days"),r[a]):r};const Ce=e=>Math.abs(e)||0;var Ae=function(e){let t="P";return t+=Ce(e.years)+"Y",t+=Ce(e.months)+"M",t+=Ce(e.days)+"DT",t+=Ce(e.hours)+"H",t+=Ce(e.minutes)+"M",t+=Ce(e.seconds)+"S",t};let Ee={second:"second",seconds:"seconds",minute:"minute",minutes:"minutes",hour:"hour",hours:"hours",day:"day",days:"days",month:"month",months:"months",year:"year",years:"years"};function Ne(e){return Ee[e]||""}let Pe="past",Ye="future",Be="present",He="now",Le="almost",Ie="over",We=e=>`${e} ago`,Fe=e=>`in ${e}`;function Je(e){return We(e)}function Ke(e){return Fe(e)}function Qe(){return He}const Re={months:{almost:10,over:4},days:{almost:25,over:10},hours:{almost:20,over:8},minutes:{almost:50,over:20},seconds:{almost:50,over:20}};function Ue(e,t){return 1===e?e+" "+Ne(t.slice(0,-1)):e+" "+Ne(t)}var Ge=function(e){let t=null,a=null,n=[],r=[];return Object.keys(e).forEach(((i,o,s)=>{const u=Math.abs(e[i]);if(0===u)return;n.push(u+i[0]);const d=Ue(u,i);if(r.push(d),!t){if(t=a=d,o>4)return;const n=s[o+1],r=Math.abs(e[n]);r>Re[n].almost?(t=Ue(u+1,i),a=Le+" "+t):r>Re[n].over&&(a=Ie+" "+d)}})),{qualified:a,rounded:t,abbreviated:n,englishValues:r}};var Ze=(e,t)=>{const a=function(e,t){const a=e.isBefore(t),n=a?t:e;let r=a?e:t;r=r.clone();const i={years:0,months:0,days:0,hours:0,minutes:0,seconds:0};return Object.keys(i).forEach((e=>{if(r.isSame(n,e))return;let t=r.diff(n,e);r=r.add(t,e),i[e]=t})),a&&Object.keys(i).forEach((e=>{0!==i[e]&&(i[e]*=-1)})),i}(e,t=S(t,e));if(!0===Object.keys(a).every((e=>!a[e])))return{diff:a,rounded:Qe(),qualified:Qe(),precise:Qe(),abbreviated:[],iso:"P0Y0M0DT0H0M0S",direction:Be};let n,r=Ye,{rounded:i,qualified:o,englishValues:s,abbreviated:u}=Ge(a);n=s.splice(0,2).join(", "),!0===e.isAfter(t)?(i=Je(i),o=Je(o),n=Je(n),r=Pe):(i=Ke(i),o=Ke(o),n=Ke(n));let d=Ae(a);return{diff:a,rounded:i,qualified:o,precise:n,abbreviated:u,iso:d,direction:r}};var Xe={north:[["spring",2,1],["summer",5,1],["fall",8,1],["autumn",8,1],["winter",11,1]],south:[["fall",2,1],["autumn",2,1],["winter",5,1],["spring",8,1],["summer",11,1]]},et=[null,[0,1],[3,1],[6,1],[9,1]];const tt={second:e=>(F(e,{millisecond:0}),e),minute:e=>(F(e,{second:0,millisecond:0}),e),quarterhour:e=>{let t=e.minutes();return e=t>=45?e.minutes(45):t>=30?e.minutes(30):t>=15?e.minutes(15):e.minutes(0),F(e,{second:0,millisecond:0}),e},hour:e=>(F(e,{minute:0,second:0,millisecond:0}),e),day:e=>(F(e,{hour:0,minute:0,second:0,millisecond:0}),e),week:e=>{let t=e.clone();return(e=e.day(e._weekStart)).isAfter(t)&&(e=e.subtract(1,"week")),F(e,{hour:0,minute:0,second:0,millisecond:0}),e},month:e=>(F(e,{date:1,hour:0,minute:0,second:0,millisecond:0}),e),quarter:e=>{let t=e.quarter();return et[t]&&F(e,{month:et[t][0],date:et[t][1],hour:0,minute:0,second:0,millisecond:0}),e},season:e=>{let t=e.season(),a="north";"South"===e.hemisphere()&&(a="south");for(let n=0;n(F(e,{month:0,date:1,hour:0,minute:0,second:0,millisecond:0}),e),decade:e=>{let t=(e=e.startOf("year")).year(),a=10*parseInt(t/10,10);return e=e.year(a)},century:e=>{let t=(e=e.startOf("year")).year(),a=100*parseInt(t/100,10);return e=e.year(a)}};tt.date=tt.day;var at=function(e,t,a){if(!t||!a)return[];if(t=V(t),a=e.clone().set(a),e.isAfter(a)){let t=e;e=a,a=t}let n=e.clone();if(function(e){return!!fe().find((t=>t===e))||!!ye().find((t=>t===e))}(t))n=n.next(t),t="week";else{n.startOf(t).isBefore(e)&&(n=n.next(t))}let r=[];for(;n.isBefore(a);)r.push(n),n=n.add(1,t);return r};var nt=e=>{let t=e.timezones,a=e.tz;if(!1===t.hasOwnProperty(a)&&(a=O(e.tz,t)),null===a)return!1===e.silent&&console.warn("Warn: could not find given or local timezone - '"+e.tz+"'"),{current:{epochShift:0}};let n=t[a],r={name:(i=a,i=(i=(i=(i=(i=(i=(i=i[0].toUpperCase()+i.substr(1)).replace(/[\/_-]([a-z])/gi,(e=>e.toUpperCase()))).replace(/_(of|es)_/i,(e=>e.toLowerCase()))).replace(/\/gmt/i,"/GMT")).replace(/\/Dumontdurville$/i,"/DumontDUrville")).replace(/\/Mcmurdo$/i,"/McMurdo")).replace(/\/Port-au-prince$/i,"/Port-au-Prince")),hasDst:Boolean(n.dst),default_offset:n.offset,hemisphere:"s"===n.hem?"South":"North",current:{}};var i,o;if(r.hasDst){let e=(o=n.dst)?o.split("->"):[];r.change={start:e[0],back:e[1]}}let s=n.offset,u=s;return!0===r.hasDst&&(u="North"===r.hemisphere?s-1:n.offset+1),!1===r.hasDst?(r.current.offset=s,r.current.isDST=!1):!0===d(e.epoch,r.change.start,r.change.back,s,u)?(r.current.offset=s,r.current.isDST="North"===r.hemisphere):(r.current.offset=u,r.current.isDST="South"===r.hemisphere),r};const rt=["century","decade","year","month","date","day","hour","minute","second","millisecond"],it={set:function(e,t){let a=this.clone();return a=he(a,e),t&&(this.tz=O(t)),a},timezone:function(){return nt(this)},isDST:function(){return nt(this).current.isDST},hasDST:function(){return nt(this).hasDst},offset:function(){return 60*nt(this).current.offset},hemisphere:function(){return nt(this).hemisphere},format:function(e){return ve(this,e)},unixFmt:function(e){return Me(this,e)},startOf:function(e){return((e,t)=>{let a=e.clone();return t=V(t),tt[t]?tt[t](a):"summer"===t||"winter"===t?(a=a.season(t),tt.season(a)):a})(this,e)},endOf:function(e){return((e,t)=>{let a=e.clone();return t=V(t),tt[t]?(a=tt[t](a),a=a.add(1,t),a=a.subtract(1,"millisecond"),a):a})(this,e)},leapYear:function(){return M(this.year())},progress:function(e){return $e(this,e)},nearest:function(e){return ze(this,e)},diff:function(e,t){return Se(this,e,t)},since:function(e){return e||(e=this.clone().set()),Ze(this,e)},next:function(e){return this.add(1,e).startOf(e)},last:function(e){return this.subtract(1,e).startOf(e)},isValid:function(){return!(!this.epoch&&0!==this.epoch)&&!isNaN(this.d.getTime())},goto:function(e){let t=this.clone();return t.tz=O(e,t.timezones),t},every:function(e,t){if("object"==typeof e&&"string"==typeof t){let a=t;t=e,e=a}return at(this,e,t)},isAwake:function(){let e=this.hour();return!(e<8||e>22)},isAsleep:function(){return!this.isAwake()},daysInMonth:function(){switch(this.month()){case 0:case 2:case 4:case 6:case 7:case 9:case 11:return 31;case 1:return this.leapYear()?29:28;case 3:case 5:case 8:case 10:return 30;default:throw new Error("Invalid Month state.")}},log:function(){return console.log(""),console.log(ve(this,"nice-short")),this},logYear:function(){return console.log(""),console.log(ve(this,"full-short")),this},json:function(){return rt.reduce(((e,t)=>(e[t]=this[t](),e)),{})},debug:function(){let e=this.timezone(),t=this.format("MM")+" "+this.format("date-ordinal")+" "+this.year();return t+="\n - "+this.format("time"),console.log("\n\n",t+"\n - "+e.name+" ("+e.current.offset+")"),this},from:function(e){return(e=this.clone().set(e)).since(this)},fromNow:function(){return this.clone().set(Date.now()).since(this)},weekStart:function(e){if("number"==typeof e)return this._weekStart=e,this;if("string"==typeof e){e=e.toLowerCase().trim();let t=fe().indexOf(e);-1===t&&(t=ye().indexOf(e)),-1===t&&(t=1),this._weekStart=t}else console.warn("Spacetime Error: Cannot understand .weekStart() input:",e);return this}};it.inDST=it.isDST,it.round=it.nearest,it.each=it.every;var ot=it;const st=e=>("string"==typeof e&&(e=parseInt(e,10)),e),ut=["year","month","date","hour","minute","second","millisecond"],dt=(e,t,a)=>{let n=ut.indexOf(a),r=ut.slice(n,ut.length);for(let a=0;a=24?t=24:t<0&&(t=0);let n=e.clone(),r=e.hour()-t,i=r*L.hour;return e.epoch-=i,e.date()!==n.date()&&(e=n.clone(),r>1&&(r-=1),r<1&&(r+=1),i=r*L.hour,e.epoch-=i),F(e,{hour:t}),dt(e,n,"minute"),(e=lt(e,n,a,"day")).epoch},ct=function(e,t){return"string"==typeof t&&/^'[0-9]{2}$/.test(t)&&(t=t.replace(/'/,"").trim(),t=(t=Number(t))>30?1900+t:2e3+t),t=st(t),F(e,{year:t}),e.epoch};let ft="am",yt="pm";const pt={millisecond:function(e){if(void 0!==e){let t=this.clone();return t.epoch=function(e,t){t=st(t);let a=e.millisecond()-t;return e.epoch-a}(t,e),t}return this.d.getMilliseconds()},second:function(e,t){if(void 0!==e){let a=this.clone();return a.epoch=function(e,t,a){t=st(t);let n=e.clone(),r=(e.second()-t)*L.second;return e.epoch=e.epoch-r,(e=lt(e,n,a,"minute")).epoch}(a,e,t),a}return this.d.getSeconds()},minute:function(e,t){if(void 0!==e){let a=this.clone();return a.epoch=ht(a,e,t),a}return this.d.getMinutes()},hour:function(e,t){let a=this.d;if(void 0!==e){let a=this.clone();return a.epoch=mt(a,e,t),a}return a.getHours()},hourFloat:function(e,t){if(void 0!==e){let a=this.clone(),n=e%1;n*=60;let r=parseInt(e,10);return a.epoch=mt(a,r,t),a.epoch=ht(a,n,t),a}let a=this.d,n=a.getHours(),r=a.getMinutes();return r/=60,n+r},hour12:function(e,t){let a=this.d;if(void 0!==e){let a=this.clone(),n=(e=""+e).match(/^([0-9]+)(am|pm)$/);if(n){let e=parseInt(n[1],10);"pm"===n[2]&&(e+=12),a.epoch=mt(a,e,t)}return a}let n=a.getHours();return n>12&&(n-=12),0===n&&(n=12),n},time:function(e,t){if(void 0!==e){let a=this.clone();return e=e.toLowerCase().trim(),a.epoch=function(e,t,a){let n=t.match(/([0-9]{1,2})[:h]([0-9]{1,2})(:[0-9]{1,2})? ?(am|pm)?/);if(!n){if(n=t.match(/([0-9]{1,2}) ?(am|pm)/),!n)return e.epoch;n.splice(2,0,"0"),n.splice(3,0,"")}let r=!1,i=parseInt(n[1],10),o=parseInt(n[2],10);o>=60&&(o=59),i>12&&(r=!0),!1===r&&("am"===n[4]&&12===i&&(i=0),"pm"===n[4]&&i<12&&(i+=12)),n[3]=n[3]||"",n[3]=n[3].replace(/:/,"");let s=parseInt(n[3],10)||0,u=e.clone();return e=(e=(e=(e=e.hour(i)).minute(o)).second(s)).millisecond(0),(e=lt(e,u,a,"day")).epoch}(a,e,t),a}return`${this.h12()}:${$(this.minute())}${this.ampm()}`},ampm:function(e,t){let a=ft,n=this.hour();if(n>=12&&(a=yt),"string"!=typeof e)return a;let r=this.clone();return e=e.toLowerCase().trim(),n>=12&&"am"===e?(n-=12,r.hour(n,t)):n<12&&"pm"===e?(n+=12,r.hour(n,t)):r},dayTime:function(e,t){if(void 0!==e){const a={morning:"7:00",breakfast:"7:00",noon:"12:00",lunch:"12:00",afternoon:"14:00",evening:"18:00",dinner:"18:00",night:"23:00",midnight:"00:00"};let n=this.clone();return e=(e=e||"").toLowerCase(),!0===a.hasOwnProperty(e)&&(n=n.time(a[e],t)),n}let a=this.hour();return a<6?"night":a<12?"morning":a<17?"afternoon":a<22?"evening":"night"},iso:function(e){return void 0!==e?this.set(e):this.format("iso")}};var gt=pt;const wt={date:function(e,t){if(void 0!==e){let a=this.clone();return(e=parseInt(e,10))&&(a.epoch=function(e,t,a){if((t=st(t))>28){let a=e.month(),n=J[a];1===a&&29===t&&M(e.year())&&(n=29),t>n&&(t=n)}t<=0&&(t=1);let n=e.clone();return F(e,{date:t}),(e=lt(e,n,a,"month")).epoch}(a,e,t)),a}return this.d.getDate()},day:function(e,t){if(void 0===e)return this.d.getDay();let a=this.clone(),n=e;"string"==typeof e&&(e=e.toLowerCase(),pe.hasOwnProperty(e)?n=pe[e]:(n=fe().indexOf(e),-1===n&&(n=ye().indexOf(e))));let r=this.d.getDay()-n;!0===t&&r>0&&(r-=7),!1===t&&r<0&&(r+=7);let i=this.subtract(r,"days");return F(i,{hour:a.hour(),minute:a.minute(),second:a.second()}),i},dayName:function(e,t){if(void 0===e)return ye()[this.day()];let a=this.clone();return a=a.day(e,t),a}};var bt=wt;const kt=e=>e=(e=(e=e.minute(0)).second(0)).millisecond(1),Dt={dayOfYear:function(e,t){if(void 0!==e){let a=this.clone();return a.epoch=function(e,t,a){t=st(t);let n=e.clone();return(t-=1)<=0?t=0:t>=365&&(t=M(e.year())?365:364),e=(e=e.startOf("year")).add(t,"day"),dt(e,n,"hour"),(e=lt(e,n,a,"year")).epoch}(a,e,t),a}let a,n=0,r=this.d.getMonth();for(let e=1;e<=r;e++)a=new Date,a.setDate(1),a.setFullYear(this.d.getFullYear()),a.setHours(1),a.setMinutes(1),a.setMonth(e),a.setHours(-2),n+=a.getDate();return n+this.d.getDate()},week:function(e,t){if(void 0!==e){let a=this.clone();return a.epoch=function(e,t,a){let n=e.clone();return t=st(t),"december"===(e=(e=(e=e.month(0)).date(1)).day("monday")).monthName()&&e.date()>=28&&(e=e.add(1,"week")),t-=1,e=e.add(t,"weeks"),(e=lt(e,n,a,"year")).epoch}(this,e,t),a=kt(a),a}let a=this.clone();a=a.month(0),a=a.date(1),a=kt(a),a=a.day("monday"),11===a.month()&&a.date()>=25&&(a=a.add(1,"week"));let n=1;1===a.date()&&(n=0),a=a.minus(1,"second");const r=this.epoch;if(a.epoch>r)return 1;let i=0,o=4*this.month();for(a.epoch+=L.week*o,i+=o;i<=52;i++){if(a.epoch>r)return i+n;a=a.add(1,"week")}return 52},month:function(e,t){if(void 0!==e){let a=this.clone();return a.epoch=function(e,t,a){"string"==typeof t&&("sept"===t&&(t="sep"),t=U()[t.toLowerCase()]),(t=st(t))>=12&&(t=11),t<=0&&(t=0);let n=e.date();n>J[t]&&(n=J[t]);let r=e.clone();return F(e,{month:t,d:n}),(e=lt(e,r,a,"year")).epoch}(a,e,t),a}return this.d.getMonth()},monthName:function(e,t){if(void 0!==e){let a=this.clone();return a=a.month(e,t),a}return Q[this.month()]},quarter:function(e,t){if(void 0!==e&&("string"==typeof e&&(e=e.replace(/^q/i,""),e=parseInt(e,10)),et[e])){let a=this.clone(),n=et[e][0];return a=a.month(n,t),a=a.date(1,t),a=a.startOf("day"),a}let a=this.d.getMonth();for(let e=1;e=Xe[a][e][1]&&n0&&(t.epoch=ct(t,-1*a)),"ad"===e&&a<0&&(t.epoch=ct(t,-1*a)),t}return this.d.getFullYear()<0?"BC":"AD"},decade:function(e){if(void 0!==e){if(!(e=(e=(e=String(e)).replace(/([0-9])'?s$/,"$1")).replace(/([0-9])(th|rd|st|nd)/,"$1")))return console.warn("Spacetime: Invalid decade input"),this;2===e.length&&/[0-9][0-9]/.test(e)&&(e="19"+e);let t=Number(e);return isNaN(t)?this:(t=10*Math.floor(t/10),this.year(t))}return this.startOf("decade").year()},century:function(e){if(void 0!==e){"string"==typeof e&&(e=(e=(e=e.replace(/([0-9])(th|rd|st|nd)/,"$1")).replace(/([0-9]+) ?(b\.?c\.?|a\.?d\.?)/i,((e,t,a)=>(a.match(/b\.?c\.?/i)&&(t="-"+t),t)))).replace(/c$/,""));let t=Number(e);return isNaN(e)?(console.warn("Spacetime: Invalid century input"),this):(0===t&&(t=1),t=t>=0?100*(t-1):100*(t+1),this.year(t))}let t=this.startOf("century").year();return t=Math.floor(t/100),t<0?t-1:t+1},millenium:function(e){if(void 0!==e){if("string"==typeof e&&(e=e.replace(/([0-9])(th|rd|st|nd)/,"$1"),e=Number(e),isNaN(e)))return console.warn("Spacetime: Invalid millenium input"),this;e>0&&(e-=1);let t=1e3*e;return 0===t&&(t=1),this.year(t)}let t=Math.floor(this.year()/1e3);return t>=0&&(t+=1),t}};var vt=Dt;const xt=Object.assign({},gt,bt,vt);xt.milliseconds=xt.millisecond,xt.seconds=xt.second,xt.minutes=xt.minute,xt.hours=xt.hour,xt.hour24=xt.hour,xt.h12=xt.hour12,xt.h24=xt.hour24,xt.days=xt.day;var Ot=e=>{Object.keys(xt).forEach((t=>{e.prototype[t]=xt[t]}))};const Mt=function(e,t){return 1===e&&M(t)?29:J[e]},_t=(e,t)=>{if(e.month>0){let a=parseInt(e.month/12,10);e.year=t.year()+a,e.month=e.month%12}else if(e.month<0){let a=Math.abs(e.month),n=parseInt(a/12,10);a%12!=0&&(n+=1),e.year=t.year()-n,e.month=e.month%12,e.month=e.month+12,12===e.month&&(e.month=0)}return e},jt=(e,t,a)=>{let n=t.year(),r=t.month(),i=Mt(r,n);for(;a>i;)a-=i,r+=1,r>=12&&(r-=12,n+=1),i=Mt(r,n);return e.month=r,e.date=a,e},$t=(e,t,a)=>{e.year=t.year(),e.month=t.month();let n=t.date();for(e.date=n-Math.abs(a);e.date<1;){e.month-=1,e.month<0&&(e.month=11,e.year-=1);let t=Mt(e.month,e.year);e.date+=t}return e},zt=["millisecond","second","minute","hour","date","month"];let Tt={second:zt.slice(0,1),minute:zt.slice(0,2),quarterhour:zt.slice(0,2),hour:zt.slice(0,3),date:zt.slice(0,4),month:zt.slice(0,4),quarter:zt.slice(0,4),season:zt.slice(0,4),year:zt,decade:zt,century:zt};Tt.week=Tt.hour,Tt.season=Tt.date,Tt.quarter=Tt.date;const Vt={year:!0,quarter:!0,season:!0,month:!0,week:!0,date:!0},qt={month:!0,quarter:!0,season:!0,year:!0};var St=e=>{e.prototype.add=function(e,t){let a=this.clone();if(!t||0===e)return a;let n=this.clone();if("millisecond"===(t=V(t)))return a.epoch+=e,a;"fortnight"===t&&(e*=2,t="week"),L[t]?a.epoch+=L[t]*e:"week"===t||"weekend"===t?a.epoch+=L.day*(7*e):"quarter"===t||"season"===t?a.epoch+=L.month*(3*e):"quarterhour"===t&&(a.epoch+=15*L.minute*e);let r={};if(Tt[t]&&Tt[t].forEach((e=>{r[e]=n[e]()})),Vt[t]){const e=n.timezone().current.offset-a.timezone().current.offset;a.epoch+=3600*e*1e3}if("month"===t&&(r.month=n.month()+e,r=_t(r,n)),"week"===t){let t=n.date()+7*e;t<=28&&t>1&&(r.date=t)}if("weekend"===t&&"saturday"!==a.dayName())a=a.day("saturday",!0);else if("date"===t){if(e<0)r=$t(r,n,e);else{let t=n.date()+e;r=jt(r,n,t)}0!==e&&n.isSame(a,"day")&&(r.date=n.date()+e)}else if("quarter"===t){if(r.month=n.month()+3*e,r.year=n.year(),r.month<0){let e=Math.floor(r.month/12),t=r.month+12*Math.abs(e);r.month=t,r.year+=e}else if(r.month>=12){let e=Math.floor(r.month/12);r.month=r.month%12,r.year+=e}r.date=n.date()}else if("year"===t){let t=n.year()+e,r=a.year();if(rt){let t=Math.floor(e/4)||1;a.epoch+=L.day*t}}else"decade"===t?r.year=a.year()+10:"century"===t&&(r.year=a.year()+100);if(qt[t]){let e=J[r.month];r.date=n.date(),r.date>e&&(r.date=e)}return Object.keys(r).length>1&&F(a,r),a},e.prototype.subtract=function(e,t){return this.clone().add(-1*e,t)},e.prototype.minus=e.prototype.subtract,e.prototype.plus=e.prototype.add};const Ct={millisecond:e=>e.epoch,second:e=>[e.year(),e.month(),e.date(),e.hour(),e.minute(),e.second()].join("-"),minute:e=>[e.year(),e.month(),e.date(),e.hour(),e.minute()].join("-"),hour:e=>[e.year(),e.month(),e.date(),e.hour()].join("-"),day:e=>[e.year(),e.month(),e.date()].join("-"),week:e=>[e.year(),e.week()].join("-"),month:e=>[e.year(),e.month()].join("-"),quarter:e=>[e.year(),e.quarter()].join("-"),year:e=>e.year()};Ct.date=Ct.day;var At=e=>{e.prototype.isSame=function(t,a,n=!0){let r=this;if(!a)return null;if("string"==typeof t&&"object"==typeof a){let e=t;t=a,a=e}return"string"!=typeof t&&"number"!=typeof t||(t=new e(t,this.timezone.name)),a=a.replace(/s$/,""),!0===n&&r.tz!==t.tz&&((t=t.clone()).tz=r.tz),Ct[a]?Ct[a](r)===Ct[a](t):null}};var Et=e=>{const t={isAfter:function(e){let t=q(e=S(e,this));return null===t?null:this.epoch>t},isBefore:function(e){let t=q(e=S(e,this));return null===t?null:this.epoch{e.prototype[a]=t[a]}))};var Nt=e=>{const t={i18n:function(e){var t,a,n;return j(e.days)&&(t=e.days,me=t.short||me,ce=t.long||ce),j(e.months)&&function(e){K=e.short||K,Q=e.long||Q}(e.months),n=e.useTitleCase,"[object Boolean]"===Object.prototype.toString.call(n)&&(a=e.useTitleCase,ge=a),j(e.ampm)&&function(e){ft=e.am||ft,yt=e.pm||yt}(e.ampm),j(e.distance)&&function(e){We=e.pastDistance||We,Fe=e.futureDistance||Fe,Pe=e.past||Pe,Ye=e.future||Ye,Be=e.present||Be,He=e.now||He,Le=e.almost||Le,Ie=e.over||Ie}(e.distance),j(e.units)&&function(e={}){Ee={second:e.second||Ee.second,seconds:e.seconds||Ee.seconds,minute:e.minute||Ee.minute,minutes:e.minutes||Ee.minutes,hour:e.hour||Ee.hour,hours:e.hours||Ee.hours,day:e.day||Ee.day,days:e.days||Ee.days,month:e.month||Ee.month,months:e.months||Ee.months,year:e.year||Ee.year,years:e.years||Ee.years}}(e.units),this}};Object.keys(t).forEach((a=>{e.prototype[a]=t[a]}))};let Pt=f;const Yt=function(e,t,a={}){this.epoch=null,this.tz=O(t,Pt),this.silent=void 0===a.silent||a.silent,this.british=a.dmy||a.british,this._weekStart=1,void 0!==a.weekStart&&(this._weekStart=a.weekStart),this._today={},void 0!==a.today&&(this._today=a.today),Object.defineProperty(this,"d",{get:function(){let e=l(this),t=(new Date(this.epoch).getTimezoneOffset()||0)+60*e;t=60*t*1e3;let a=this.epoch+t;return new Date(a)}}),Object.defineProperty(this,"timezones",{get:()=>Pt,set:e=>(Pt=e,e)});let n=he(this,e);this.epoch=n.epoch,n.tz&&(this.tz=n.tz)};Object.keys(ot).forEach((e=>{Yt.prototype[e]=ot[e]})),Yt.prototype.clone=function(){return new Yt(this.epoch,this.tz,{silent:this.silent,weekStart:this._weekStart,today:this._today,parsers:this.parsers})},Yt.prototype.toLocalDate=function(){return this.toNativeDate()},Yt.prototype.toNativeDate=function(){return new Date(this.epoch)},Ot(Yt),St(Yt),At(Yt),Et(Yt),Nt(Yt);var Bt=Yt;var Ht=(e,t)=>{let a=new Bt(null),n=new Bt(null);a=a.time(e),n=t?n.time(t):a.add(59,"minutes");let r=a.hour(),i=n.hour();return Object.keys(a.timezones).filter((e=>{if(-1===e.indexOf("/"))return!1;let t=new Bt(null,e),o=t.hour();return o>=r&&o<=i&&(!(o===r&&t.minute()n.minute()))}))};const Lt=(e,t,a)=>new Bt(e,t,a),It=function(e){let t=e._today||{};return Object.keys(t).forEach((a=>{e=e[a](t[a])})),e};Lt.now=(e,t)=>{let a=new Bt((new Date).getTime(),e,t);return a=It(a),a},Lt.today=(e,t)=>{let a=new Bt((new Date).getTime(),e,t);return a=It(a),a.startOf("day")},Lt.tomorrow=(e,t)=>{let a=new Bt((new Date).getTime(),e,t);return a=It(a),a.add(1,"day").startOf("day")},Lt.yesterday=(e,t)=>{let a=new Bt((new Date).getTime(),e,t);return a=It(a),a.subtract(1,"day").startOf("day")},Lt.extend=function(e={}){return Object.keys(e).forEach((t=>{Bt.prototype[t]=e[t]})),this},Lt.timezones=function(){return(new Bt).timezones},Lt.max=function(e,t){let a=new Bt(null,e,t);return a.epoch=864e13,a},Lt.min=function(e,t){let a=new Bt(null,e,t);return a.epoch=-864e13,a},Lt.whereIts=Ht,Lt.version="7.6.0",Lt.plugin=Lt.extend;var Wt=Lt;const Ft={daybreak:"7:00am",breakfast:"8:00am",morning:"9:00am",noon:"12:00pm",midday:"12:00pm",afternoon:"2:00pm",lunchtime:"12:00pm",evening:"6:00pm",dinnertime:"6:00pm",night:"8:00pm",eod:"10:00pm",midnight:"12:00am",am:"9:00am",pm:"5:00pm","early day":"8:00am","late at night":"11:00pm"},Jt={quarter:15,half:30},Kt=function(e){let t=e.time("6:00am");return e.isBefore(t)?e.ampm("pm"):e};var Qt=function(e,t){let a=e.match("(at|by|for|before|this|after)? #Time+");a=a.not("^(at|by|for|before|this|after)"),a=a.not("sharp"),a=a.not("on the dot");let n=Wt.now(t.timezone),r=n.clone(),i=a.not("in the").text("reduced");if(i=i.replace(/^@/,""),Ft.hasOwnProperty(i))return{result:Ft[i],m:a};let o=a.match("^#Cardinal oclock (am|pm)?");if(o.found&&(n=n.hour(o.text("reduced")),n=n.startOf("hour"),n.isValid()&&!n.isEqual(r))){let e=o.match("(am|pm)");return n=e.found?n.ampm(e.text("reduced")):Kt(n),{result:n.time(),m:o}}if(o=a.match("(half|quarter|25|20|15|10|5) (past|after|to) #Cardinal"),o.found&&(n=function(e,t){let a=e.match("#Cardinal$"),n=e.not(a).match("(half|quarter|25|20|15|10|5)");a=a.text("reduced");let r=n.text("reduced");Jt.hasOwnProperty(r)&&(r=Jt[r]);let i=e.has("to");return t=(t=t.hour(a)).startOf("hour"),a<6&&(t=t.ampm("pm")),i?t.subtract(r,"minutes"):t.add(r,"minutes")}(o,n),n.isValid()&&!n.isEqual(r)))return n=Kt(n),{result:n.time(),m:o};if(o=a.match("[(half|quarter|25|20|15|10|5)] (past|after)"),o.found){let e=o.groups("min").text("reduced"),a=Wt(t.today);if(Jt.hasOwnProperty(e)&&(e=Jt[e]),a=a.next("hour").startOf("hour").minute(e),a.isValid()&&!a.isEqual(r))return{result:a.time(),m:o}}if(o=a.match("[(half|quarter|25|20|15|10|5)] to"),o.found){let e=o.groups("min").text("reduced"),a=Wt(t.today);if(Jt.hasOwnProperty(e)&&(e=Jt[e]),a=a.next("hour").startOf("hour").minus(e,"minutes"),a.isValid()&&!a.isEqual(r))return{result:a.time(),m:o}}if(o=a.match("[
#Date+] from [#Time] (to|until|upto|through|thru|and) [#Time+]",desc:"january from 3pm to 4pm",parse:(e,t)=>{let a=e.groups("main"),n=e.groups("a"),r=e.groups("b");if(a=hn(a,t),a){a.applyTime(n.text("implicit"));let e=a.clone();if(e.applyTime(r.text("implicit")),e){let t={start:a,end:e,unit:"time"};return!1===/(am|pm)/.test(r.text())&&(t=pn(t)),t=yn(t),t}}return null}},{match:"[#Date+] (to|until|upto|through|thru|and) [#Time+]",desc:"january from 3pm to 4pm",parse:(e,t)=>{let a=e.groups("from"),n=e.groups("to");if(a=hn(a,t),a){let e=a.clone();if(e.applyTime(n.text("implicit")),e){let t={start:a,end:e,unit:"time"};return!1===/(am|pm)/.test(n.text())&&(t=pn(t)),t=yn(t),t}}return null}}],wn=[{match:"^during? #Month+ (or|and) #Month [#Year]?",desc:"march or june",parse:(e,t)=>{let a=e.match("^during? [#Month]",0);e=e.not("(or|and)");let n=hn(a,t);if(n){let r=[{start:n,end:n.clone().end(),unit:n.unit}],i=e.not(a);i.found&&i.match("#Month").forEach((e=>{let a=hn(e,t);r.push({start:a,end:a.clone().end(),unit:a.unit})}));let o=e.match("#Year$");return o.found&&(o=o.text("reduced"),r.forEach((e=>{e.start.d=e.start.d.year(o),e.end.d=e.end.d.year(o)}))),r}return null}},{match:"^#Month #Value+ (or|and)? #Value$",desc:"jan 5 or 8",parse:(e,t)=>{let a=(e=e.not("(or|and)")).match("^#Month #Value"),n=hn(a,t);if(n){let t=[{start:n,end:n.clone().end(),unit:n.unit}],r=e.not(a);return r.found&&r.match("#Value").forEach((e=>{let a=n.clone();a.d=a.d.date(e.text("reduced")),t.push({start:a,end:a.clone().end(),unit:a.unit})})),t}return null}},{match:"^#Month+ #Value #Value+$",desc:"jan 5 8",parse:(e,t)=>{let a=e.match("#Month"),n=e.match("#Year");e=e.not("#Year");let r=[];return e.match("#Value").forEach((e=>{let i=(e=e.clone()).prepend(a.text());n.found&&i.append(n);let o=hn(i,t);o&&r.push({start:o,end:o.clone().end(),unit:o.unit})})),r}},{match:"^#Value+ (or|and)? #Value of #Month #Year?$",desc:"5 or 8 of Jan",parse:(e,t)=>{let a=e.match("#Month"),n=e.match("#Year");e=e.not("#Year");let r=[];return e.match("#Value").forEach((e=>{let i=e.append(a);n.found&&i.append(n);let o=hn(i,t);o&&r.push({start:o,end:o.clone().end(),unit:o.unit})})),r}},{match:"^!(between|from|during)? [#Date+] (and|or) [#Date+]$",desc:"A or B",parse:(e,t)=>{let a=e.groups("from"),n=e.groups("to"),r=hn(a,t),i=hn(n,t);return r&&i?[{start:r,end:r.clone().end()},{start:i,end:i.clone().end()}]:null}}],bn=[{match:"between [.+] and [.+]",desc:"between friday and sunday",parse:(e,t)=>{let a=e.groups("start");a=hn(a,t);let n=e.groups("end");return n=hn(n,t),a&&n?(n=n.before(),{start:a,end:n}):null}},{match:"[#Month #Value] (to|through|thru) [#Month #Value] [#Year?]",desc:"june 5 to june 7",parse:(e,t)=>{let a=e.groups(),n=a.from;if(a.year&&(n=n.append(a.year)),n=hn(n,t),n){let e=a.to;if(a.year&&(e=e.append(a.year)),e=hn(e,t),e){return n.d.isAfter(e.d)&&(e.d=e.d.add(1,"year")),{start:n,end:e.end()}}}return null}},{match:"[#Month] [#Value] (to|through|thru) [#Value] of? [#Year]",desc:"january 5 to 7 1998",parse:(e,t)=>{let{month:a,from:n,to:r,year:i}=e.groups(),o=i.clone(),s=n.prepend(a).append(i);if(s=hn(s,t),s){let e=r.prepend(a).append(o);return e=hn(e,t),{start:s,end:e.end()}}return null}},{match:"[#Value] (to|through|thru) [#Value of? #Month #Date+?]",desc:"5 to 7 of january 1998",parse:(e,t)=>{let a=e.groups("to");if(a=hn(a,t),a){let t=e.groups("from"),n=a.clone();return n.d=n.d.date(t.text("implicit")),{start:n,end:a.end()}}return null}},{match:"[#Month #Value] (to|through|thru) [#Value]",desc:"january 5 to 7",parse:(e,t)=>{let a=e.groups("from");if(a=hn(a,t),a){let t=e.groups("to"),n=a.clone();return n.d=n.d.date(t.text("implicit")),{start:a,end:n.end()}}return null}},{match:"from? [#Month] (to|until|upto|through|thru) [#Month] [#Year]",desc:"january to may 2020",parse:(e,t)=>{let a=e.groups("from"),n=e.groups("year").numbers().get()[0],r=e.groups("to");if(a=hn(a,t),r=hn(r,t),a.d=a.d.year(n),r.d=r.d.year(n),a&&r){let e={start:a,end:r.end()};return e=yn(e),e}return null}}];const kn=function(e,t){return e=e.applyShift(t.punt)};const Dn=[].concat(gn,wn,bn,[{match:"from? [.+] (to|until|upto|through|thru) [.+]",desc:"from A to B",parse:(e,t)=>{let a=e.groups("from"),n=e.groups("to");if(a=hn(a,t),n=hn(n,t),a&&n){let e={start:a,end:n.end()};return e=yn(e),e}return null}},{match:"^due? (by|before) [.+]",desc:"before june",parse:(e,t)=>{e=e.group(0);let a=hn(e,t);if(a){let e=new ya(t.today,null,t);return e.d.isAfter(a.d)&&(e=a.clone().applyShift({weeks:-2})),{start:e,end:a.clone().applyShift({day:-1}).end()}}return null}},{match:"^(on|in|at|@|during) [.+]",desc:"in june",parse:(e,t)=>{e=e.group(0);let a=hn(e,t);return a?{start:a,end:a.clone().end(),unit:a.unit}:null}},{match:"^(after|following) [.+]",desc:"after june",parse:(e,t)=>{e=e.group(0);let a=hn(e,t);return a?(a=a.after(),{start:a.clone(),end:kn(a.clone(),t)}):null}},{match:"^(middle|center|midpoint) of [.+]",desc:"middle of",parse:(e,t)=>{e=e.group(0);let a=hn(e,t),n=a.clone().middle(),r=a.beforeEnd();return a?{start:n,end:r}:null}},{match:".+ after #Time+$",desc:"tuesday after 5pm",parse:(e,t)=>{let a=hn(e,t);if(a){return{start:a.clone(),end:a.end(),unit:"time"}}return null}},{match:".+ before #Time+$",desc:"tuesday before noon",parse:(e,t)=>{let a=hn(e,t);if(a){let e=a.clone(),t=a.start();if(a)return{start:t,end:e,unit:"time"}}return null}}]),vn="undefined"!=typeof process&&process.env?process.env:self.env||{},xn=function(e,t){let a={start:null,end:null};if(!e.found)return a;let n=hn(e,t);if(n){let e=n.clone().end();a={start:n,end:e,unit:n.setTime?"time":n.unit}}return a};var On=function(e,t){let a=fn(e,t)||{},n=function(e,t){for(let r=0;rObject.assign({},a,e))),n.forEach((e=>{e.start&&e.end&&e.start.d.epoch>e.end.d.epoch&&(e.start=e.start.start())})),n};var Mn=function(e){return e.numbers||console.warn("\nCompromise warning: compromise/three must be used with compromise-dates plugin\n"),(e=e.clone()).numbers().toNumber(),e.contractions().expand(),e.replace("week end","weekend",!0).tag("Date"),e.replace("up to","upto",!0).tag("Date"),!1===e.has("once (a|an) #Duration")&&e.match("[(a|an)] #Duration",0).replaceWith("1",{tags:!0}).compute("lexicon"),e.match("@hasDash").insertAfter("to").tag("Date"),e};var _n=function(e,t){return!1===(t=t||{}).timezone&&(t.timezone="UTC"),t.today=t.today||Wt.now(t.timezone),t.today=Wt(t.today,t.timezone),e=Mn(e),On(e,t)};var jn=function(e){if(!e.start)return{start:null,end:null,timezone:null,duration:{}};let t=e.end?function(e){let t=e.end.d.add(1,"millisecond").since(e.start.d).diff;return delete t.milliseconds,delete t.seconds,t}(e):{};return{start:e.start.format("iso"),end:e.end?e.end.format("iso"):null,timezone:e.start.d.format("timezone"),duration:t}};const $n=function(e,t){let a=e.fromText(t),n=_n(a,e.opts)[0];return n&&n.start&&n.start.d?n.start.d:null};var zn=function(e){class Dates extends e{constructor(e,t,a,n={}){super(e,t,a),this.viewType="Dates",this.opts=n}get(e){let t=[];return this.forEach((e=>{_n(e,this.opts).forEach((e=>{t.push(jn(e))}))})),"number"==typeof e?t[e]:t}json(e={}){return this.map((t=>{let a=t.toView().json(e)[0]||{};if(e&&!1!==e.dates){let e=_n(t,this.opts);a.dates=jn(e[0])}return a}),[])}format(e){let t=this.map((t=>{let a=_n(t,this.opts)[0]||{};if(a.start){let n=a.start.d,r=n.format(e);if(a.end){let t=a.end.d;!1===n.isSame(t,"day")&&(r+=" to "+t.format(e))}t.replaceWith(r)}return t}));return new Dates(this.document,t.pointer,null,this.opts)}isBefore(e){let t=$n(this,e);return this.filter((e=>{let a=_n(e,this.opts)[0]||{};return a.start&&a.start.d&&a.start.d.isBefore(t)}))}isAfter(e){let t=$n(this,e);return this.filter((e=>{let a=_n(e,this.opts)[0]||{};return a.start&&a.start.d&&a.start.d.isAfter(t)}))}isSame(e,t){let a=$n(this,t);return this.filter((t=>{let n=_n(t,this.opts)[0]||{};return n.start&&n.start.d&&n.start.d.isSame(a,e)}))}}e.prototype.dates=function(e){let a=t(this);return new Dates(this.document,a.pointer,null,e)}};var Tn=function(e){let t=(e=e.clone()).match("#Time+").match("[#Cardinal] [(thirty|fifteen)]");if(t.found){let e=t.groups("hour"),a=t.groups("min"),n=e.values().get()[0];if(n>0&&n<=12){let e=`${n}:${a.values().get()[0]}`;t.replaceWith(e)}}if(e.numbers){let t=e.numbers();t.toNumber(),t.toCardinal(!1)}else console.warn("Warning: compromise .numbers() not loaded.\n This plugin requires >= v14");return e.contractions&&e.contractions().expand(),e.adverbs().remove(),e.replace("week end","weekend",!0).tag("Date"),e.replace("up to","upto",!0).tag("Date"),!1===e.has("once (a|an) #Duration")&&e.match("[(a|an)] #Duration",0).replaceWith("1").compute("lexicon"),e.match("@hasDash").insertAfter("to").tag("Date"),e};const Vn=function(e,t={}){e=Tn(e);let a=Qt(e,t);if(!a.result)return{time:null,"24h":null};let n=Wt.now().time(a.result);return{time:a.result,"24h":n.format("time-24"),hour:n.hour(),minute:n.minute()}},qn=(e,t)=>"number"==typeof t?e.eq(t):e;var Sn=function(e){class Times extends e{constructor(e,t,a,n){super(e,t,a),this.viewType="Times",this.opts=n||{}}format(e){let t=this.map((t=>{let a=Vn(t)||{};if(a.time){let n=Wt.now().time(a.time),r=a.time;r="24h"===e?n.format("time-24"):n.format(e),(t=t.not("#Preposition")).replaceWith(r)}return t}));return new Times(this.document,t.pointer,null,this.opts)}get(e){return qn(this,e).map(Vn)}json(e={}){return this.map((t=>{let a=t.toView().json(e)[0]||{};return e&&!1!==e.time&&(a.time=Vn(t)),a}),[])}}e.prototype.times=function(e){let t=this.match("#Time+ (am|pm)?");return t=qn(t,e),new Times(this.document,t.pointer)}};const Cn={century:!0,day:!0,decade:!0,hour:!0,millisecond:!0,minute:!0,month:!0,second:!0,weekend:!0,week:!0,year:!0,quarter:!0,season:!0};let An={m:"minute",h:"hour",hr:"hour",min:"minute",sec:"second","week end":"weekend",wk:"week",yr:"year",qtr:"quarter"};Object.keys(An).forEach((e=>{An[e+"s"]=An[e]}));var En=function(e){let t={},a=e.match("#Value+ #Duration");if(a.found)a.forEach((e=>{let a=e.numbers().get()[0],n=e.terms().last().text("reduced");n=n.replace(/ies$/,"y"),n=n.replace(/s$/,""),An.hasOwnProperty(n)&&(n=An[n]),Cn.hasOwnProperty(n)&&null!==a&&(t[n]=a)}));else{if(e.match("(#Duration && /[0-9][a-z]+$/)").found){let a=e.text(),n=a.match(/([0-9]+)/),r=a.match(/([a-z]+)/);n&&r&&(n=n[0]||null,r=r[0]||null,An.hasOwnProperty(r)&&(r=An[r]),Cn.hasOwnProperty(r)&&null!==n&&(t[r]=Number(n)))}}return t};var Nn=function(e){class Durations extends e{constructor(e,t,a){super(e,t,a),this.context={}}json(e={}){return this.map((t=>{let a=t.toView().json(e)[0]||{};return e&&!1!==e.duration&&(a.duration=En(t)),a}),[])}get(e){let t=[];return this.forEach((e=>{let a=En(e);t.push(a)})),"number"==typeof e?t[e]:t}}e.prototype.durations=function(e){let t=this.match("#Value+ #Duration (and? #Value+ #Duration)?");return t=t.notIf("#DateShift"),"number"==typeof e&&(t=t.eq(e)),new Durations(this.document,t.pointer)}};var Pn=function(e){zn(e),Sn(e),Nn(e)};const Yn="(start|end|middle|starting|ending|midpoint|beginning)",Bn=(e,t)=>{!0===e.found&&e.forEach((e=>{let a=e.text("reduced"),n=parseInt(a,10);n&&n>1e3&&n<3e3&&e.tag("Year",t)}))},Hn=(e,t)=>{!0===e.found&&e.forEach((e=>{let a=e.text("reduced"),n=parseInt(a,10);n&&n>1900&&n<2030&&e.tag("Year",t)}))};var Ln=function(e){e.match("(march|april|may) (and|to|or|through|until)? (march|april|may)").tag("Date").match("(march|april|may)").tag("Month","march|april|may");let t=e.if("#Cardinal");if(!0===t.found){let e=t.match("#Date #Value [#Cardinal]",0);Bn(e,"date-value-year"),e=t.match("#Date [#Cardinal]",0),Hn(e,"date-year"),e=t.match(`${Yn} of [#Cardinal]`),Hn(e,"section-year"),e=t.match("#Month #Value [#Cardinal]",0),Bn(e,"month-value-year"),e=t.match("#Month #Value to #Value [#Cardinal]",0),Bn(e,"month-range-year"),e=t.match("(in|of|by|during|before|starting|ending|for|year|since) [#Cardinal]",0),Bn(e,"in-year-1"),e=t.match("(q1|q2|q3|q4) [#Cardinal]",0),Bn(e,"in-year-2"),e=t.match("#Ordinal quarter of? [#Cardinal]",0),Bn(e,"in-year-3"),e=t.match("the year [#Cardinal]",0),Bn(e,"in-year-4"),e=t.match("it (is|was) [#Cardinal]",0),Hn(e,"in-year-5"),t.match(`${Yn} of #Year`).tag("Date");let a=t.match("between [#Cardinal] and [#Cardinal]");Bn(a.groups("0"),"between-year-and-year-1"),Bn(a.groups("1"),"between-year-and-year-2")}let a=e.match("^/^20[012][0-9]$/$");return Hn(a,"2020-ish"),e};const In=function(e,t){if(e.found){e.tag("Date",t),e.numbers().lessThan(31).ifNo("#Year").tag("#Time",t)}};var Wn=function(e){let t=e.if("#Date");if(t.found){let a=t.if("#NumberRange");if(a.found){let e=a.match("[#NumberRange+] (on|by|at)? #WeekDay",0);In(e,"3-4-tuesday"),e=a.match("[#NumberRange+] (on|by|at)? #Month #Value",0),In(e,"3-4 mar 3"),e=a.match("[#NumberRange] to (#NumberRange && #Time)",0),In(e,"3-4pm"),e=a.match("(#NumberRange && #Time) to [#NumberRange]",0),In(e,"3pm-4")}let n=t.match("(from|between) #Cardinal and #Cardinal (in|on)? (#WeekDay|tomorrow|yesterday)");In(n,"from 9-5 tues"),n=e.match("#Cardinal to #Cardinal (#WeekDay|tomorrow|yesterday)"),In(n,"9-5 tues"),n=t.match("(from|between) [#NumericValue] (to|and) #Time",0).tag("Time","4-to-5pm"),In(n,"from 9-5pm"),n=t.match("(#WeekDay|tomorrow|yesterday) (from|between)? (#Cardinal|#Time) (and|to) (#Cardinal|#Time)"),In(n,"tues 3-5"),n=t.match("#Month #Value+ (from|between) [(after|before)]"),r.found){let e=r.groups("unit").text("reduced"),t=r.groups("dir").text("reduced");"after"===t?n[e]=1:"before"===t&&(n[e]=-1)}if(r=i.match("half (a|an) [#Duration]",0),r.found){let e=a(r);n[e]=.5}return r=t.match("#DateShift+"),{result:n,m:r}}(t),o=i.result;i=function(e){let t=e.match("[#Value] [#Duration+] (of|in)");if(t.found){let e=t.groups(),a=e.num.numbers().get()[0],r=e.unit.text("reduced"),i={unit:r,num:Number(a)||0};return n[r]||(i.num-=1),{result:i,m:t}}if(t=e.match("[(first|initial|last|final)] [#Duration+] (of|in)"),t.found){let e=t.groups(),a=e.dir.text("reduced");return"initial"===a&&(a="first"),"final"===a&&(a="last"),{result:{unit:e.unit.text("reduced"),dir:a},m:t}}return{result:null,m:e.none()}}(t=t.not(i.m));let s=i.result;t=t.not(i.m),i=Et(t);let u=i.result;t=t.not(i.m),i=kt(t,r);let d=i.result;i=function(e){let t=e.match("#WeekDay");return t.found&&!e.has("^#WeekDay$")?e.has("(this|next|last) (next|upcoming|coming|past)? #WeekDay")?{result:null,m:e.none()}:{result:t.text("reduced"),m:t}:{result:null,m:e.none()}}(t=t.not(i.m));let l=i.result;i=function(e){let t=e.match("[(start|beginning) of] .",0);return t.found?{result:"start",m:t}:(t=e.match("[end of] .",0),t.found?{result:"end",m:t}:(t=e.match("[(middle|midpoint|center) of] .",0),t.found?{result:"middle",m:t}:{result:null,m:t}))}(t=t.not(i.m));let h=i.result;return i=function(e){if(e.has("(next|last|this)$"))return{result:null,m:e.none()};let t=e.match("^this? (next|upcoming|coming)");return t.found?{result:"next",m:t}:(t=e.match("^this? (past)"),t.found?{result:"this-past",m:t}:(t=e.match("^this? (last|previous)"),t.found?{result:"last",m:t}:(t=e.match("^(this|current)"),t.found?{result:"this",m:t}:{result:null,m:e.none()})))}(t=t.not(i.m)),{shift:o,counter:s,tz:u,time:d,weekDay:l,section:h,rel:i.result,doc:t=function(e){return(e=(e=(e=(e=(e=(e=e.not("[^the] !#Value",0)).not("#Preposition$")).not("#Conjunction$")).not("sharp")).not("on the dot")).not("^(on|of)")).not("(next|last|this)$")}(t=t.not(i.m))}};class Unit{constructor(e,t,a){this.unit=t||"day",this.setTime=!1;let n={};(a=a||{}).today&&(n={date:a.today.date(),month:a.today.month(),year:a.today.year()}),e&&"sept"===e.month&&(e.month="sep");let r=yt(e,a.timezone,{today:n,dmy:a.dmy});Object.defineProperty(this,"d",{enumerable:!1,writable:!0,value:r}),Object.defineProperty(this,"context",{enumerable:!1,writable:!0,value:a})}clone(){let e=new Unit(this.d,this.unit,this.context);return e.setTime=this.setTime,e}log(){return console.log("--"),this.d.log(),console.log("\n"),this}applyShift(e={}){return Object.keys(e).forEach((t=>{this.d=this.d.add(e[t],t),"hour"!==t&&"minute"!==t||(this.setTime=!0)})),this}applyTime(e){if(e){if(/^[0-9]{1,2}$/.test(e)?this.d=this.d.hour(e):this.d=this.d.time(e),!/[ap]m/.test(e)){let e=this.d.time("6:00am");this.d.isBefore(e)&&(this.d=this.d.ampm("pm"));let t=this.d.time("10:00pm");this.d.isAfter(t)&&(this.d=this.d.ampm("am"))}}else this.d=this.d.startOf("day");return this.setTime=!0,this}applyWeekDay(e){if(e){let t=this.d.epoch;this.d=this.d.day(e),this.d.epochnew Day(e.today,null,e),yesterday:e=>new Day(e.today.minus(1,"day"),null,e),tomorrow:e=>new Day(e.today.plus(1,"day"),null,e),eom:e=>{let t=e.today.endOf("month");return t=t.startOf("day"),new Day(t,null,e)},eoy:e=>{let t=e.today.endOf("year");return t=t.startOf("day"),new Day(t,null,e)},now:e=>new Moment(e.today,null,e)};Pt.tommorrow=Pt.tomorrow,Pt.tmrw=Pt.tomorrow,Pt.anytime=Pt.today,Pt.sometime=Pt.today;const Yt="january",Bt="february",Ht="march",Lt="april",It="may",Wt="july",Ft="august",Jt="september",Ut="october",Kt="november",Qt="december";var Rt={"new years eve":[Qt,31],"new years":[Yt,1],"new years day":[Yt,1],"inauguration day":[Yt,20],"australia day":[Yt,26],"national freedom day":[Bt,1],"groundhog day":[Bt,2],"rosa parks day":[Bt,4],"valentines day":[Bt,14],"saint valentines day":[Bt,14],"st valentines day ":[Bt,14],"saint patricks day":[Ht,17],"st patricks day":[Ht,17],"april fools":[Lt,1],"april fools day":[Lt,1],"emancipation day":[Lt,16],"tax day":[Lt,15],"labour day":[It,1],"cinco de mayo":[It,5],"national nurses day":[It,6],"harvey milk day":[It,22],"victoria day":[It,24],juneteenth:["june",19],"canada day":[Wt,1],"independence day":[Wt,4],"independents day":[Wt,4],"bastille day":[Wt,14],"purple heart day":[Ft,7],"womens equality day":[Ft,26],"16 de septiembre":[Jt,16],"dieciseis de septiembre":[Jt,16],"grito de dolores":[Jt,16],halloween:[Ut,31],"all hallows eve":[Ut,31],"day of the dead":[Ut,31],"dia de muertos":[Ut,31],"veterans day":[Kt,11],"st andrews day":[Kt,30],"saint andrews day":[Kt,30],"all saints day":[Kt,1],"all sts day":[Kt,1],"armistice day":[Kt,11],"rememberance day":[Kt,11],"christmas eve":[Qt,24],christmas:[Qt,25],xmas:[Qt,25],"boxing day":[Qt,26],"st stephens day":[Qt,26],"saint stephens day":[Qt,26],epiphany:[Yt,6],"orthodox christmas day":[Yt,7],"orthodox new year":[Yt,14],"assumption of mary":[Ft,15],"all souls day":[Kt,2],"feast of the immaculate conception":[Qt,8],"feast of our lady of guadalupe":[Qt,12],kwanzaa:[Qt,26],imbolc:[Bt,2],beltaine:[It,1],lughnassadh:[Ft,1],samhain:[Ut,31]};var Gt=function(e,t,a,n){if(Rt.hasOwnProperty(e)||Rt.hasOwnProperty(t)){let r=Rt[e]||Rt[t]||[],i=yt.now(n);if(i=i.year(a),i=i.startOf("year"),i=i.month(r[0]),i=i.date(r[1]),i.isValid())return i}return null};const Zt="october",Xt="november",ea="monday",ta="sunday";let aa={"martin luther king day":[3,ea,"january"],"presidents day":[3,ea,"february"],"commonwealth day":[2,ea,"march"],"mothers day":[2,ta,"may"],"fathers day":[3,ta,"june"],"labor day":[1,ea,"september"],"columbus day":[2,ea,Zt],"canadian thanksgiving":[2,ea,Zt],thanksgiving:[4,"thursday",Xt],"black friday":[4,"friday",Xt]};aa["turday day"]=aa.thanksgiving,aa["indigenous peoples day"]=aa["columbus day"],aa["mlk day"]=aa["martin luther king day"];var na=aa;var ra=function(e,t,a,n){if(na.hasOwnProperty(e)||na.hasOwnProperty(t)){let r=na[e]||na[t]||[],i=yt.now(n);i=i.year(a),i=i.month(r[2]),i=i.startOf("month");let o=i.month();if(i=i.day(r[1]),i.month()!==o&&(i=i.add(1,"week")),r[0]>1&&(i=i.add(r[0]-1,"week")),i.isValid())return i}return null};let ia={easter:0,"ash wednesday":-46,"palm sunday":7,"maundy thursday":-3,"good friday":-2,"holy saturday":-1,"easter saturday":-1,"easter monday":1,"ascension day":39,"whit sunday":49,"whit monday":50,"trinity sunday":65,"corpus christi":60,"mardi gras":-47};ia["easter sunday"]=ia.easter,ia.pentecost=ia["whit sunday"],ia.whitsun=ia["whit sunday"];var oa=ia;var sa=function(e){let t=Math.floor,a=e%19,n=t(e/100),r=(n-t(n/4)-t((8*n+13)/25)+19*a+15)%30,i=r-t(r/28)*(1-t(29/(r+1))*t((21-a)/11)),o=i-(e+t(e/4)+i+2-n+t(n/4))%7,s=3+t((o+40)/44),u=o+28-31*t(s/4);return s=4===s?"April":"March",s+" "+u};var ua=function(e,t,a,n){if(oa.hasOwnProperty(e)||oa.hasOwnProperty(t)){let r=oa[e]||oa[t]||[],i=sa(a);if(!i)return null;let o=yt(i,n);o=o.year(a);let s=o.add(r,"day");if(s.isValid())return s}return null};const da={spring:[2003,2007,2044,2048,2052,2056,2060,2064,2068,2072,2076,2077,2080,2081,2084,2085,2088,2089,2092,2093,2096,2097],summer:[2021,2016,2020,2024,2028,2032,2036,2040,2041,2044,2045,2048,2049,2052,2053,2056,2057,2060,2061,2064,2065,2068,2069,2070,2072,2073,2074,2076,2077,2078,2080,2081,2082,2084,2085,2086,2088,2089,2090,2092,2093,2094,2096,2097,2098,2099],fall:[2002,2003,2004,2006,2007,2010,2011,2014,2015,2018,2019,2022,2023,2026,2027,2031,2035,2039,2043,2047,2051,2055,2059,2092,2096],winter:[2002,2003,2006,2007,2011,2015,2019,2023,2027,2031,2035,2039,2043,2080,2084,2088,2092,2096]},la=[2080,2084,2088,2092,2096];var ha=function(e){let t={spring:"March 20 "+e,summer:"June 21 "+e,fall:"Sept 22 "+e,winter:"Dec 21 "+e};return-1!==da.spring.indexOf(e)&&(t.spring="March 19 "+e),-1!==da.summer.indexOf(e)&&(t.summer="June 20 "+e),-1!==da.fall.indexOf(e)&&(t.fall="Sept 21 "+e),-1!==da.winter.indexOf(e)&&(t.winter="Dec 22 "+e),-1!==la.indexOf(e)&&(t.winter="Dec 20 "+e),t};let ma={"spring equinox":"spring","summer solistice":"summer","fall equinox":"fall","winter solstice":"winter"};ma["march equinox"]=ma["spring equinox"],ma["vernal equinox"]=ma["spring equinox"],ma.ostara=ma["spring equinox"],ma["june solstice"]=ma["summer solistice"],ma.litha=ma["summer solistice"],ma["autumn equinox"]=ma["fall equinox"],ma["autumnal equinox"]=ma["fall equinox"],ma["september equinox"]=ma["fall equinox"],ma["sept equinox"]=ma["fall equinox"],ma.mabon=ma["fall equinox"],ma["december solstice"]=ma["winter solistice"],ma["dec solstice"]=ma["winter solistice"],ma.yule=ma["winter solistice"];var ca=ma;var fa=function(e,t,a,n){if(ca.hasOwnProperty(e)||ca.hasOwnProperty(t)){let r=ca[e]||ca[t],i=ha(a);if(!r||!i||!i[r])return null;let o=yt(i[r],n);if(o.isValid())return o}return null};var ya={"isra and miraj":"april 13","lailat al-qadr":"june 10","eid al-fitr":"june 15","id al-Fitr":"june 15","eid ul-Fitr":"june 15",ramadan:"may 16","eid al-adha":"sep 22",muharram:"sep 12","prophets birthday":"nov 21"};var pa=function(e,t,a,n){if(ya.hasOwnProperty(e)||ya.hasOwnProperty(t)){let r=ya[e]||ya[t]||[];if(!r)return null;let i=yt(r+" 2018",n),o=-10.64*(a-2018);if(i=i.add(o,"day"),i=i.startOf("day"),i=i.year(a),i.isValid())return i}return null};const ga=yt.now().year(),wa=function(e,t,a){t=t||ga,e=e||"";let n=(e=(e=(e=String(e)).trim().toLowerCase()).replace(/'s/,"s")).replace(/ day$/,"");n=n.replace(/^the /,""),n=n.replace(/^orthodox /,"");let r=Gt(e,n,t,a);return null!==r?r:(r=ra(e,n,t,a),null!==r?r:(r=ua(e,n,t,a),null!==r?r:(r=fa(e,n,t,a),null!==r?r:(r=pa(e,n,t,a),null!==r?r:null))))},ba={day:Day,hour:Hour,evening:Hour,second:Moment,milliscond:Moment,instant:Moment,minute:Minute,week:Week,weekend:WeekEnd,month:class AnyMonth extends Unit{constructor(e,t,a){super(e,t,a),this.unit="month",this.d.isValid()&&(this.d=this.d.startOf(this.unit))}},quarter:AnyQuarter,year:Year,season:Season,yr:Year,qtr:AnyQuarter,wk:Week,sec:Moment,hr:Hour};let ka=`^(${Object.keys(ba).join("|")})$`;const Da=function(e){return{date:e.today.date(),month:e.today.month(),year:e.today.year()}},va=function(e,t,a){let n=null;return n=n||function(e,t,a){let n=null;!1===e.found&&(null!==a.time&&(n=new Moment(t.today,null,t)),a.shift&&Object.keys(a.shift).length>0&&(n=a.shift.hour||a.shift.minute?new Moment(t.today,null,t):new Day(t.today,null,t)));let r=e.text("reduced");return!0===Pt.hasOwnProperty(r)?Pt[r](t):"next"===r&&a.shift&&Object.keys(a.shift).length>0?Pt.tomorrow(t):n}(e,t,a),n=n||function(e,t){let a=null,n=e.match("[#Holiday+] [#Year?]"),r=t.today.year();n.groups("year").found&&(r=Number(n.groups("year").text("reduced"))||r);let i=n.groups("holiday").text("reduced"),o=wa(i,r,t.timezone);return null!==o&&(o.isBefore(t.today)&&r===t.today.year()&&(o=wa(i,r+1,t.timezone)),a=new Holiday(o,null,t)),a}(e,t),n=n||function(e,t){let a=e.match(ka);if(!0===a.found){let e=a.text("reduced");if(ba.hasOwnProperty(e)){let a=ba[e];return a?new a(null,e,t):null}}if(a=e.match("^#WeekDay$"),!0===a.found){let e=a.text("reduced");return new WeekDay(e,null,t)}return null}(e,t),n=n||function(e,t){let a=e.match("(spring|summer|winter|fall|autumn) [#Year?]");if(a.found){let a=e.text("reduced"),n=yt(a,t.timezone,{today:Da(t)}),r=new Season(n,null,t);if(!0===r.d.isValid())return r}if(a=e.match("[#FinancialQuarter] [#Year?]"),a.found){let e=a.groups("q").text("reduced"),n=yt(e,t.timezone,{today:Da(t)});if(a.groups("year")){let e=Number(a.groups("year").text())||t.today.year();n=n.year(e)}let r=new Quarter(n,null,t);if(!0===r.d.isValid())return r}if(a=e.match("[#Value] quarter (of|in)? [#Year?]"),a.found){let e=a.groups("q").text("reduced"),n=yt(`q${e}`,t.timezone,{today:Da(t)});if(a.groups("year")){let e=Number(a.groups("year").text())||t.today.year();n=n.year(e)}let r=new Quarter(n,null,t);if(!0===r.d.isValid())return r}if(a=e.match("^#Year$"),a.found){let a=e.text("reduced"),n=yt(null,t.timezone,{today:Da(t)});n=n.year(a);let r=new Year(n,null,t);if(!0===r.d.isValid())return r}return null}(e,t),n=n||function(e,t){let a=t.today.year(),n=e.match("[#Value] of? [#Month] [#Year]");if(n.found||(n=e.match("[#Month] the? [#Value] [#Year]")),n.found){let e={month:n.groups("month").text("reduced"),date:n.groups("date").text("reduced"),year:n.groups("year").text()||a},r=new CalendarDate(e,null,t);if(!0===r.d.isValid())return r}if(n=e.match("[#Month] of? [#Year]"),n.found){let e={month:n.groups("month").text("reduced"),year:n.groups("year").text("reduced")||a},r=new Month(e,null,t);if(!0===r.d.isValid())return r}if(n=e.match("[#Value] of? [#Month]"),n.found||(n=e.match("[#Month] the? [#Value]")),n.found){let e={month:n.groups("month").text("reduced"),date:n.groups("date").text("reduced"),year:t.today.year()},a=new CalendarDate(e,null,t);if(a.d.month()#Value]"),n.found){let e={month:t.today.month(),date:n.groups("date").text("reduced"),year:t.today.year()},a=new CalendarDate(e,null,t);if(!0===a.d.isValid())return a}if(n=e.match("the [#Value]"),n.found){let e={month:t.today.month(),date:n.groups("date").text("reduced"),year:t.today.year()},a=new CalendarDate(e,null,t);if(!0===a.d.isValid())return a.d.isBefore(t.today)&&(a.d=a.d.add(1,"month")),a}if(n=e.match("/[0-9]{4}-[0-9]{2}-[0-9]{2}t[0-9]{2}:/"),n.found){let a=e.text("reduced"),n=new Moment(a,null,t);if(!0===n.d.isValid())return n}let r=e.text("reduced");if(!r)return new Moment(t.today,null,t);let i=new Day(r,null,t);return!1===i.d.isValid()?null:i}(e,t),n},xa={day:Day,week:Week,weekend:WeekEnd,month:Month,quarter:Quarter,season:Season,hour:Hour,minute:Minute},Oa=function(e,t,a){if(!e&&a.weekDay&&(e=new WeekDay(a.weekDay,null,t),a.weekDay=null),!e)return null;if(a.shift){let t=a.shift;e.applyShift(t),t.hour||t.minute?e=new Moment(e.d,null,e.context):(t.week||t.day||t.month)&&(e=new Day(e.d,null,e.context))}return a.weekDay&&"day"!==e.unit&&(e.applyWeekDay(a.weekDay),e=new WeekDay(e.d,null,e.context)),a.rel&&e.applyRel(a.rel),a.section&&e.applySection(a.section),a.time&&e.applyTime(a.time),a.counter&&a.counter.unit&&(e=function(e,t={}){let a=xa[t.unit];if(!a)return e;let n=e.d;"first"===t.dir||0===t.num?(n=e.start().d,n=n.startOf(t.unit)):"last"===t.dir?(n=n.endOf(e.unit),n="weekend"===t.unit?n.day("saturday",!1):n.startOf(t.unit)):t.num&&("weekend"===t.unit&&(n=n.day("saturday",!0).add(1,"day")),n=n.add(t.num,t.unit));let r=new a(n,null,e.context);return!0===r.d.isValid()?r:e}(e,a.counter)),e},Ma="undefined"!=typeof process&&process.env?process.env:self.env||{},_a=function(e,t){let a=Nt(e,t);if(e=a.doc,(e=>{Ma.DEBUG_DATE&&(console.log(`\n==== '${e.doc.text()}' =====`),Object.keys(e).forEach((t=>{"doc"!==t&&e[t]&&console.log(t,e[t])})),e.doc.debug())})(a),a.tz){let e=(t=Object.assign({},t,{timezone:a.tz})).today.format("iso-short");t.today=t.today.goto(t.timezone).set(e)}let n=va(e,t,a);return n=Oa(n,t,a),n},ja={mon:"monday",tue:"tuesday",tues:"wednesday",wed:"wednesday",thu:"thursday",fri:"friday",sat:"saturday",sun:"sunday",monday:"monday",tuesday:"tuesday",wednesday:"wednesday",thursday:"thursday",friday:"friday",saturday:"saturday",sunday:"sunday"},$a=function(e){return e.match("(every|each)").found?"AND":e.match("(any|a)").found?"OR":null},za=function(e){let t=e.start,a=e.end;if(t.d.isAfter(a.d)){if(t.isWeekDay&&a.isWeekDay)return e.end.next(),e;let n=t;e.start=a,e.end=n}return e},Ta=function(e){let t=e.start,a=e.end;return t.d.isAfter(a.d)&&a.d.hour()<10&&(a.d=a.d.ampm("pm")),e};var Va=[{match:"[#Time+] (to|until|upto|through|thru|and) [#Time+ #Date+]",desc:"3pm to 4pm january 5th",parse:(e,t)=>{let a=e.groups("from"),n=e.groups("to"),r=_a(n,t);if(r){let e=r.clone();if(e.applyTime(a.text("implicit")),e){let t={start:e,end:r,unit:"time"};return!1===/(am|pm)/.test(n)&&(t=Ta(t)),t=za(t),t}}return null}},{match:"[
#Date+] from [#Time] (to|until|upto|through|thru|and) [#Time+]",desc:"january from 3pm to 4pm",parse:(e,t)=>{let a=e.groups("main"),n=e.groups("a"),r=e.groups("b");if(a=_a(a,t),a){a.applyTime(n.text("implicit"));let e=a.clone();if(e.applyTime(r.text("implicit")),e){let t={start:a,end:e,unit:"time"};return!1===/(am|pm)/.test(r.text())&&(t=Ta(t)),t=za(t),t}}return null}},{match:"[#Date+] (to|until|upto|through|thru|and) [#Time+]",desc:"january from 3pm to 4pm",parse:(e,t)=>{let a=e.groups("from"),n=e.groups("to");if(a=_a(a,t),a){let e=a.clone();if(e.applyTime(n.text("implicit")),e){let t={start:a,end:e,unit:"time"};return!1===/(am|pm)/.test(n.text())&&(t=Ta(t)),t=za(t),t}}return null}}],qa=[{match:"^during? #Month+ (or|and) #Month [#Year]?",desc:"march or june",parse:(e,t)=>{let a=e.match("^during? [#Month]",0);e=e.not("(or|and)");let n=_a(a,t);if(n){let r=[{start:n,end:n.clone().end(),unit:n.unit}],i=e.not(a);i.found&&i.match("#Month").forEach((e=>{let a=_a(e,t);r.push({start:a,end:a.clone().end(),unit:a.unit})}));let o=e.match("#Year$");return o.found&&(o=o.text("reduced"),r.forEach((e=>{e.start.d=e.start.d.year(o),e.end.d=e.end.d.year(o)}))),r}return null}},{match:"^#Month #Value+ (or|and)? #Value$",desc:"jan 5 or 8",parse:(e,t)=>{let a=(e=e.not("(or|and)")).match("^#Month #Value"),n=_a(a,t);if(n){let t=[{start:n,end:n.clone().end(),unit:n.unit}],r=e.not(a);return r.found&&r.match("#Value").forEach((e=>{let a=n.clone();a.d=a.d.date(e.text("reduced")),t.push({start:a,end:a.clone().end(),unit:a.unit})})),t}return null}},{match:"^#Month+ #Value #Value+$",desc:"jan 5 8",parse:(e,t)=>{let a=e.match("#Month"),n=e.match("#Year");e=e.not("#Year");let r=[];return e.match("#Value").forEach((e=>{let i=(e=e.clone()).prepend(a.text());n.found&&i.append(n);let o=_a(i,t);o&&r.push({start:o,end:o.clone().end(),unit:o.unit})})),r}},{match:"^#Value+ (or|and)? #Value of #Month #Year?$",desc:"5 or 8 of Jan",parse:(e,t)=>{let a=e.match("#Month"),n=e.match("#Year");e=e.not("#Year");let r=[];return e.match("#Value").forEach((e=>{let i=e.append(a);n.found&&i.append(n);let o=_a(i,t);o&&r.push({start:o,end:o.clone().end(),unit:o.unit})})),r}},{match:"^!(between|from|during)? [#Date+] (and|or) [#Date+]$",desc:"A or B",parse:(e,t)=>{let a=e.groups("from"),n=e.groups("to"),r=_a(a,t),i=_a(n,t);return r&&i?[{start:r,end:r.clone().end()},{start:i,end:i.clone().end()}]:null}}],Sa=[{match:"between [.+] and [.+]",desc:"between friday and sunday",parse:(e,t)=>{let a=e.groups("start");a=_a(a,t);let n=e.groups("end");return n=_a(n,t),a&&n?(n=n.before(),{start:a,end:n}):null}},{match:"[#Month #Value] (to|through|thru) [#Month #Value] [#Year?]",desc:"june 5 to june 7",parse:(e,t)=>{let a=e.groups(),n=a.from;if(a.year&&(n=n.append(a.year)),n=_a(n,t),n){let e=a.to;if(a.year&&(e=e.append(a.year)),e=_a(e,t),e){return n.d.isAfter(e.d)&&(e.d=e.d.add(1,"year")),{start:n,end:e.end()}}}return null}},{match:"[#Month] [#Value] (to|through|thru) [#Value] of? [#Year]",desc:"january 5 to 7 1998",parse:(e,t)=>{let{month:a,from:n,to:r,year:i}=e.groups(),o=i.clone(),s=n.prepend(a).append(i);if(s=_a(s,t),s){let e=r.prepend(a).append(o);return e=_a(e,t),{start:s,end:e.end()}}return null}},{match:"[#Value] (to|through|thru) [#Value of? #Month #Date+?]",desc:"5 to 7 of january 1998",parse:(e,t)=>{let a=e.groups("to");if(a=_a(a,t),a){let t=e.groups("from"),n=a.clone();return n.d=n.d.date(t.text("implicit")),{start:n,end:a.end()}}return null}},{match:"[#Month #Value] (to|through|thru) [#Value]",desc:"january 5 to 7",parse:(e,t)=>{let a=e.groups("from");if(a=_a(a,t),a){let t=e.groups("to"),n=a.clone();return n.d=n.d.date(t.text("implicit")),{start:a,end:n.end()}}return null}},{match:"from? [#Month] (to|until|upto|through|thru) [#Month] [#Year]",desc:"january to may 2020",parse:(e,t)=>{let a=e.groups("from"),n=e.groups("year").numbers().get()[0],r=e.groups("to");if(a=_a(a,t),r=_a(r,t),a.d=a.d.year(n),r.d=r.d.year(n),a&&r){let e={start:a,end:r.end()};return e=za(e),e}return null}}];const Ca=function(e,t){return e=e.applyShift(t.punt)};const Aa=[].concat(Va,qa,Sa,[{match:"from? [.+] (to|until|upto|through|thru) [.+]",desc:"from A to B",parse:(e,t)=>{let a=e.groups("from"),n=e.groups("to");if(a=_a(a,t),n=_a(n,t),a&&n){let e={start:a,end:n.end()};return e=za(e),e}return null}},{match:"^due? (by|before) [.+]",desc:"before june",parse:(e,t)=>{e=e.group(0);let a=_a(e,t);if(a){let e=new Unit(t.today,null,t);return e.d.isAfter(a.d)&&(e=a.clone().applyShift({weeks:-2})),{start:e,end:a.clone().applyShift({day:-1}).end()}}return null}},{match:"^(on|in|at|@|during) [.+]",desc:"in june",parse:(e,t)=>{e=e.group(0);let a=_a(e,t);return a?{start:a,end:a.clone().end(),unit:a.unit}:null}},{match:"^(after|following) [.+]",desc:"after june",parse:(e,t)=>{e=e.group(0);let a=_a(e,t);return a?(a=a.after(),{start:a.clone(),end:Ca(a.clone(),t)}):null}},{match:"^(middle|center|midpoint) of [.+]",desc:"middle of",parse:(e,t)=>{e=e.group(0);let a=_a(e,t),n=a.clone().middle(),r=a.beforeEnd();return a?{start:n,end:r}:null}},{match:".+ after #Time+$",desc:"tuesday after 5pm",parse:(e,t)=>{let a=_a(e,t);if(a){return{start:a.clone(),end:a.end(),unit:"time"}}return null}},{match:".+ before #Time+$",desc:"tuesday before noon",parse:(e,t)=>{let a=_a(e,t);if(a){let e=a.clone(),t=a.start();if(a)return{start:t,end:e,unit:"time"}}return null}}]),Ea="undefined"!=typeof process&&process.env?process.env:self.env||{},Na=function(e,t){let a={start:null,end:null};if(!e.found)return a;let n=_a(e,t);if(n){let e=n.clone().end();a={start:n,end:e,unit:n.setTime?"time":n.unit}}return a},Pa=function(e,t){let a=function(e,t){let a=e.match("[(every|any|each)] [other?] [#Duration] (starting|beginning|commencing)?");if(a.found){let t={interval:{}},n=a.groups("unit").text("reduced");return t.interval[n]=1,t.choose=$a(a),a.groups("skip").found&&(t.interval[n]=2),e=e.remove(a),{repeat:t}}if(a=e.match("[(every|any|each)] [#Value] [#Duration] (starting|beginning|commencing)?"),a.found){let t={interval:{}},n=a.groups("unit");n.nouns().toSingular();let r=n.text("reduced");return t.interval[r]=a.groups("num").numbers().get()[0],t.choose=$a(a),e=e.remove(a),{repeat:t}}if(a=e.match("[(every|any|each|a)] [other?] [#WeekDay+] (starting|beginning|commencing)?"),a.found){let t={interval:{day:1},filter:{weekDays:{}}},n=a.groups("day").text("reduced");if(n=ja[n],n)return t.filter.weekDays[n]=!0,t.choose=$a(a),e=e.remove(a),{repeat:t}}if(a=e.match("[(every|any|each|a)] [(weekday|week day|weekend|weekend day)] (starting|beginning|commencing)?"),a.found){let t={interval:{day:1},filter:{weekDays:{}}},n=a.groups("day");return n.has("(weekday|week day)")?t.filter.weekDays={monday:!0,tuesday:!0,wednesday:!0,thursday:!0,friday:!0}:n.has("(weekend|weekend day)")&&(t.filter.weekDays={saturday:!0,sunday:!0}),t.choose=$a(a),e=e.remove(a),{repeat:t}}if(a=e.match("[(mondays|tuesdays|wednesdays|thursdays|fridays|saturdays|sundays)] (at|near|after)? [
- +
Efficient Named-entity Recognition for compromise
- + @@ -21,9 +21,11 @@ -This plugin provides a highly-compressed list of ~38 thousand popular wikipedia articles, and efficiently scans a text for them. +This experimental plugin provides a highly-compressed list of ~38 thousand popular wikipedia articles, and efficiently scans a text for them. + +The plugin is approximately 300kb, minified. It does not include wikipedia's redirects (which it should!). -The plugin is approximately 300kb, minified. +It is intended as a proof-of-concept, for compressing a large lexicon onto the client-side. ### Wikipedia ```js @@ -37,4 +39,4 @@ m.json() ``` -MIT \ No newline at end of file +MIT diff --git a/plugins/wikipedia/builds/compromise-wikipedia.cjs b/plugins/wikipedia/builds/compromise-wikipedia.cjs index 1812ff743..25613f05c 100644 --- a/plugins/wikipedia/builds/compromise-wikipedia.cjs +++ b/plugins/wikipedia/builds/compromise-wikipedia.cjs @@ -4,7047 +4,6 @@ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.compromiseWikipedia = factory()); })(this, (function () { 'use strict'; - let methods$m = { - one: {}, - two: {}, - three: {}, - four: {}, - }; - - let model$5 = { - one: {}, - two: {}, - three: {}, - }; - let compute$9 = {}; - let hooks = []; - - var tmpWrld = { methods: methods$m, model: model$5, compute: compute$9, hooks }; - - const isArray$a = input => Object.prototype.toString.call(input) === '[object Array]'; - - const fns$4 = { - /** 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$a(input)) { - input.forEach(name => world.compute.hasOwnProperty(name) && compute[name](this)); - } - // 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$8 = fns$4; - - 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 = 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, some, random }; - - const utils = { - /** */ - termList: function () { - return this.methods.one.termList(this.docs) - }, - /** return individual terms*/ - terms: function (n) { - // 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$l = Object.assign({}, util, compute$8, loops); - - // aliases - methods$l.get = methods$l.eq; - var api$b = methods$l; - - 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(world.hooks) - doc.compute(['normal', 'lexicon', '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$b); - var View$1 = View; - - var version = '14.2.0-rc2'; - - 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$9 = 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$9(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$9(input)) { - // pre-tokenized array-of-arrays - if (isArray$9(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); - } - // 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$k = { - one: { - cacheDoc, - }, - }; - - const methods$j = { - /** */ - 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$j); - }; - var api$a = addAPI$3; - - var compute$7 = { - cache: function (view) { - view._cache = view.methods.one.cacheDoc(view.document); - } - }; - - var cache$3 = { - api: api$a, - compute: compute$7, - methods: methods$k, - }; - - 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 = (str) => /^\p{Lu}[\p{Ll}'โ€™]/u.test(str) || /^\p{Lu}$/u.test(str); - const toTitleCase = (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(from.text)) { - return - } - // titlecase new first term - needle[0].text = toTitleCase(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(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 seconds 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 - - */ - const start$1 = new Date().getTime(); - - 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]; - var now = new Date().getTime() - 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$1 = function (m) { - if (m.has('@hasContraction')) {//&& m.after('^.').has('@hasContraction') - let more = m.grow('@hasContraction'); - more.contractions().expand(); - } - }; - - const isArray$8 = (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$8(input)) { - return isArray$8(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$1(view.update([ptr]).firstTerm()); - cleanPrepend(home, ptr, terms, document); - } else { - expand$1(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', 'preTagger']); - return doc - }; - - const fns$3 = { - insertAfter: function (input) { - return insert(input, this, false) - }, - insertBefore: function (input) { - return insert(input, this, true) - }, - - }; - fns$3.append = fns$3.insertAfter; - fns$3.prepend = fns$3.insertBefore; - fns$3.insert = fns$3.insertAfter; - - var insert$1 = fns$3; - - const dollarStub = /\$[0-9a-z]+/g; - const fns$2 = {}; - - const titleCase$1 = 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$2.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', '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$1(m.docs[0][0].text); - } - return m - }; - - fns$2.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$2; - - // 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$i = { - /** */ - 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$i.delete = methods$i.remove; - var remove = methods$i; - - const methods$h = { - /** 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$h.deHyphenate = methods$h.dehyphenate; - methods$h.toQuotation = methods$h.toQuotations; - - var whitespace$1 = methods$h; - - /** 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$g = { 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$g.byFreq(arr); - return this.update(arr.map(o => o.pointer)) - } - // apply sort method on each phrase - if (typeof methods$g[input] === 'function') { - arr = arr.sort(methods$g[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 = 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, sort }; - - const isArray$7 = (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$7(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$f = Object.assign({}, caseFns, insert$1, replace, remove, whitespace$1, sort$1, concat, harden$1); - - const addAPI$2 = function (View) { - Object.assign(View.prototype, methods$f); - }; - var api$9 = addAPI$2; - - const compute$5 = { - 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$6 = compute$5; - - var change = { - api: api$9, - compute: compute$6, - }; - - 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: '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$4 = { one: { contractions: contractions$3 } }; - - // 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) => { - word.implicit = word.text; - word.machine = word.text; - word.pre = ''; - word.post = ''; - word.text = ''; - word.normal = ''; - 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 = /'/; - //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 = function (terms, i) { - let before = terms[i].normal.split(hasContraction$1)[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 = _apostropheD; - - //ain't -> are/is not - const apostropheT = 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$1 = apostropheT; - - const hasContraction = /'/; - - // l'amour - const preL = (terms, i) => { - // le/la - let after = terms[i].normal.split(hasContraction)[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)[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)[1]; - return ['je', after] - }; - - var french = { - preJ, - preL, - preD, - }; - - const isRange = /^([0-9.]{1,3}[a-z]{0,2}) ?[-โ€“โ€”] ?([0-9]{1,3}[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 numberRange = function (terms, i) { - let term = terms[i]; - if (term.tags.has('PhoneNumber') === true) { - return null - } - let parts = term.text.match(isRange); - if (parts !== null) { - 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 = /'/; - const numDash = /^[0-9][^-โ€“โ€”]*[-โ€“โ€”].*?[0-9]/; - - // 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', 'index']); - }; - - const byEnd = { - // ain't - t: (terms, i) => apostropheT$1(terms, i), - // how'd - d: (terms, i) => apostropheD(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 = function (words, view) { - return view.fromText(words.join(' ')).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.test(terms[i].normal) === true) { - [before, after] = terms[i].normal.split(byApostrophe); - } - // any known-ones, like 'dunno'? - let words = knownOnes(list, terms[i], before, after); - // ['foo', 's'] - if (!words && byEnd.hasOwnProperty(after)) { - words = byEnd[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(words, view); - splice(document, [n, i], words); - reTag(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(words, view); - splice(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(document[n], view, i, words.length); - } - } - } - }); - }; - var contractions$2 = contractions$1; - - var compute$4 = { contractions: contractions$2 }; - - const plugin$1 = { - model: model$4, - compute: compute$4, - hooks: ['contractions'], - }; - var contractions = plugin$1; - - // 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 = /^(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.test(word) === true) { - let stem = word.replace(prefix, ''); - 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$3 = { - lexicon: firstPass - }; - - // derive clever things from our lexicon key-value pairs - const expand = 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 = expand; - - var methods$e = { - one: { - expandLexicon, - } - }; - - /** 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$3 = { - one: { - lexicon: {}, //setup blank lexicon - _multiCache: {}, - } - }; - - var lexicon$1 = { - model: model$3, - methods: methods$e, - compute: compute$3, - 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$8 (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$8, - 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); - } - 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); - } - 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); - } - 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); - } - 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); - } - 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); - } - 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); - } - 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$1 = function (left, right) { - return [left[0], left[1], right[2]] - }; - - const isArray$6 = function (arr) { - return Object.prototype.toString.call(arr) === '[object Array]' - }; - - const getDoc$3 = (reg, view, group) => { - if (typeof reg === 'string' || isArray$6(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$d = {}; - // [before], [match], [after] - methods$d.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$d.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$1(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$d.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$1(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$d.split = methods$d.splitAfter; - - var split$1 = methods$d; - - const methods$c = Object.assign({}, match$3, lookaround, split$1); - // aliases - methods$c.lookBehind = methods$c.before; - methods$c.lookBefore = methods$c.before; - - methods$c.lookAhead = methods$c.after; - methods$c.lookAfter = methods$c.after; - - methods$c.notIf = methods$c.ifNo; - const matchAPI = function (View) { - Object.assign(View.prototype, methods$c); - }; - var api$7 = 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 = / /g; - - const isBlock = str => { - return /^[![^]*(<[^<]*>)?\(/.test(str) && /\)[?\]+*$~]*$/.test(str) - }; - const isReg = str => { - return /^[![^]*(<[^<]*>)?\//.test(str) && /\/[?\]+*$~]*$/.test(str) - }; - - const cleanUp = 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(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)); - } - }); - final = cleanUp(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 = 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(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(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(); - } - // if (hasDash.test(w) === true) { - // w = w.replace(/-/g, '') - // } - obj.word = w; - } - return obj - }; - var parseToken$1 = parseToken; - - // 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 = {}) { - // fail-fast - if (input === null || input === undefined || input === '') { - return [] - } - 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)); - //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$b = { - /** 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$b.hasQuotation = methods$b.hasQuote; - - var termMethods = methods$b; - - //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$5 = 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$5(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$9 = { - one: { - termMethods, - parseMatch, - match: match$1, - }, - }; - - var methods$a = methods$9; - - 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) - } - }; - - var match = { - api: api$7, - methods: methods$a, - 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$1 = { - 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$1 = { - 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$1.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$1.sentences = fns$1.sentence; - fns$1.clean = fns$1.normal; - fns$1.reduced = fns$1.root; - - const toJSON = function (view, option) { - option = option || {}; - if (typeof option === 'string') { - option = {}; - } - option = Object.assign({}, defaults$1, 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$1[k]) { - res[k] = fns$1[k](terms, view, i); - } - }); - return res - }) - }; - - - const methods$8 = { - /** return data */ - json: function (n) { - let res = toJSON(this, n); - if (typeof n === 'number') { - return res[n] - } - return res - }, - }; - methods$8.data = methods$8.json; - var json = methods$8; - - /* 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 = (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(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 = 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(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$7 = { - /** */ - debug: debug$1, - /** */ - out: out, - }; - - var out$1 = methods$7; - - 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$6 = Object.assign({}, out$1, text, json, html$1); - - const addAPI$1 = function (View) { - Object.assign(View.prototype, methods$6); - }; - var api$6 = addAPI$1; - - var output = { - api: api$6, - }; - - // 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 = 4; - - // sweep-around looking for our start term uuid - const blindSweep = function (id, doc, n) { - for (let i = 0; i < max; 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$5 = { - 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$4 = function (arr) { - return Object.prototype.toString.call(arr) === '[object Array]' - }; - - const getDoc = (m, view) => { - if (typeof m === 'string' || isArray$4(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$4 = {}; - - // all parts, minus duplicates - methods$4.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$4.and = methods$4.union; - - // only parts they both have - methods$4.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$4.not = function (m) { - m = getDoc(m, this); - let ptrs = getDifference(this.fullPointer, m.fullPointer); - ptrs = addIds(ptrs, this.document); - return this.toView(ptrs) - }; - methods$4.difference = methods$4.not; - - // get opposite of a - methods$4.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$4.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$4); - }; - var api$5 = addAPI; - - var pointers = { - methods: methods$5, - api: api$5, - }; - - var lib$2 = { - // compile a list of matches into a match-net - buildNet: function (matches) { - const methods = this.methods(); - let { index, always } = methods.one.buildNet(matches, methods); - return { - isNet: true, - index, - always - } - } - }; - - const api$3 = 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$4 = api$3; - - const parse = function (matches, methods) { - const parseMatch = methods.one.parseMatch; - matches.forEach(obj => { - obj.regs = parseMatch(obj.match); - // wrap these ifNo properties into an array - if (typeof obj.ifNo === 'string') { - obj.ifNo = [obj.ifNo]; - } - }); - return matches - }; - - var parse$1 = parse; - - // stich an array into another, replacing one element - function spliceArray(main, index, arrayToInsert) { - main.splice(index, 1, ...arrayToInsert); - return main - } - - // enumerate any OR options - const getORs = function (reg) { - if (reg.fastOr) { - return Array.from(reg.fastOr).map(str => { - return [{ word: str }] - }) - } - return reg.choices - }; - - // try keeping all other properties on the old reg - const combine = function (obj, reg) { - let both = Object.assign({}, obj, reg); - delete both.choices; - delete both.fastOr; - delete both.operator; - return both - }; - - const buildUp = function (matches) { - let all = []; - matches.forEach(obj => { - for (let i = 0; i < obj.regs.length; i += 1) { - let reg = obj.regs[i]; - // (negative or is un-multipliable) - !(a|b|c) -> "a" matches !b - if (reg.operator === 'or' && !reg.negative === true) { - let more = getORs(reg); - more.forEach(r => { - let tmp = Object.assign({}, obj);//clone - tmp.regs = tmp.regs.slice(0);//clone - r = r.map(main => combine(obj.regs[i], main)); - tmp.regs = spliceArray(tmp.regs, i, r); - all.push(tmp); - }); - return - } - } - all.push(obj); - }); - // console.dir(all, { depth: 5 }) - return all - }; - - - var buildUp$1 = buildUp; - - // extract the clear needs for an individual match token - const getTokenNeeds = function (reg) { - // negatives can't be cached - 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$1 = 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 - }; - - var cache$2 = cache$1; - - const groupBy = function (matches) { - let byGroup = {}; - matches.forEach(obj => { - obj.needs.forEach(need => { - byGroup[need] = byGroup[need] || []; - byGroup[need].push(obj); - }); - }); - return byGroup - }; - - var group = groupBy; - - // do some indexing on the list of matches - const compile = function (matches, methods) { - // turn match-syntax into json - matches = parse$1(matches, methods); - // convert (a|b) to ['a', 'b'] - matches = buildUp$1(matches); - // matches = buildUp(matches) // run this twice - // retrieve the needs of each match statement - matches = cache$2(matches); - // keep all un-cacheable matches (those with no needs) - let always = matches.filter(o => o.needs.length === 0); - - // organize them according to need... - let byGroup = group(matches); - - // Every sentence has a Noun/Verb, - // assume any match will be found on another need - // this is true now, - // but we should stay careful about this. - delete byGroup['#Noun']; - delete byGroup['#Verb']; - // console.log(matches.filter(o => o.needs.length === 1)) //check! - - return { - index: byGroup, - always - } - }; - - var buildNet = compile; - - // 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) - }) - }; - - var getCandidates = matchUp; - - // 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]; - - // ensure all stated-needs of the match are met - maybeList[n] = Array.from(maybeList[n]).filter(obj => { - return obj.needs.every(need => haves.has(need)) - }); - // ensure nothing matches in our 'ifNo' property - maybeList[n] = maybeList[n].filter(obj => { - if (obj.ifNo !== undefined && obj.ifNo.some(no => docCache[n].has(no)) === true) { - return false - } - return true - }); - } - return maybeList - }; - 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 counts = {} - - - // setInterval(() => { - // let res = Object.keys(counts).map(k => [k, counts[k]]) - // res = res.sort((a, b) => (a[1] > b[1] ? -1 : 0)) - // console.log(res) - // }, 5000) - - const tooSmall = function (maybeList, document) { - return maybeList.map((arr, i) => { - let termCount = document[i].length; - 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 - let maybeList = getCandidates(docCache, net.index); - // 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); - // console.log(maybeList) - // maybeList.forEach(list => { - // list.forEach(o => { - // counts[o.match] = counts[o.match] || 0 - // counts[o.match] += 1 - // }) - // }) - // now actually run the matches - let results = runMatch$1(maybeList, document, methods, opts); - // console.dir(results, { depth: 5 }) - return results - }; - var bulkMatch = sweep$1; - - const isArray$3 = function (arr) { - return Object.prototype.toString.call(arr) === '[object Array]' - }; - - const logger = function (todo, document) { - let [n, start, end] = todo.pointer; - let terms = document[n]; - let i = start > 4 ? start - 2 : 0; - let tag = todo.tag || ''; - if (isArray$3(todo.tag)) { - tag = todo.tag.join(' #'); - } - let reason = todo.reason || todo.match; - reason = reason ? `|${reason}|` : ''; - let msg = ` ${reason}`.padEnd(20) + ' - '; - const yellow = str => '\x1b[2m' + str + '\x1b[0m'; - for (; i < terms.length; i += 1) { - if (i > end + 2) { - break - } - let str = terms[i].machine || terms[i].normal; - msg += i > start && i < end ? `\x1b[32m${str}\x1b[0m ` : `${yellow(str)} `; // matched terms are green - } - msg += ' \x1b[32mโ†’\x1b[0m #' + tag.padEnd(12) + ' '; - console.log(msg); //eslint-disable-line - }; - var logger$1 = logger; - - // is this tag consistent with the tags they already have? - const canBe = function (terms, tag, model) { - let tagSet = model.one.tagSet; - 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 \x1b[32mโ†’ ${list.length} corrections:\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$1(todo, document); - } - 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, 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$3 = { - buildNet, - bulkMatch, - bulkTagger - }; - - var sweep = { - lib: lib$2, - api: api$4, - methods: { - one: methods$3, - } - }; - - 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 = (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(25)} ${i(reason)}`); // eslint-disable-line - }; - - // add a tag to all these terms - const setTag = 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(terms[0], tag, reason); - } - if (isArray$2(tag) === true) { - tag.forEach(tg => setTag(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$1 = setTag; - - // 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=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=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(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={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.hasOwnProperty(t)?p[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=(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{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(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(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(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(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(e);return new g(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$2 = 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$2(allTags); - // convert it to our final format - const res = fmt$1(nodes); - return res - }; - var addTags$2 = addTags$1; - - var methods$2 = { - one: { - setTag: setTag$1, - 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 = { - /** 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; - - const tagAPI = function (View) { - Object.assign(View.prototype, tag$1); - }; - var api$2 = 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$2, - api: api$2, - 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$1 = /[ .][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$1.test(str) === true) { - return false - } - //check for '...' - if (hasEllipse.test(str) === true) { - return false - } - let txt = str.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/, ''); - let words = txt.split(' '); - let lastWord = words[words.length - 1].toLowerCase(); - // check for 'Mr.' - if (abbrevs.hasOwnProperty(lastWord) === true) { - return false - } - // //check for jeopardy! - // if (blacklist.hasOwnProperty(lastWord)) { - // return false - // } - return true - }; - var isSentence$1 = isSentence; - - //(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 = /['โ€™]/; - 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.test(found) && /[sn]['โ€™]$/.test(original) && hasApostrophe.test(pre) === false) { - post = post.replace(hasApostrophe, ''); - 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 = /([A-Z]\.)+[A-Z]?,?$/; - const oneLetterAcronym = /^[A-Z]\.,?$/; - const noPeriodAcronym = /[A-Z]{2,}('s|,)?$/; - const lowerCaseAcronym = /([a-z]\.)+[a-z]\.?$/; - - const isAcronym = function (str) { - //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 doAcronym = function (str) { - if (isAcronym(str)) { - str = str.replace(/\./g, ''); - } - return str - }; - var doAcronyms = doAcronym; - - const normalize = 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; - - // '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$1 = { - one: { - killUnicode: killUnicode$1, - tokenize: { - splitSentences: sentence, - splitTerms: term, - splitWhitespace: whitespace, - fromString, - }, - }, - }; - - const aliases = { - '&': 'and', - '@': 'at', - '%': 'percent', - 'plz': 'please', - 'bein': 'being', - }; - var aliases$1 = aliases; - - var misc = [ - '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 = [ - '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 = [ - '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 = [ - '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$1 = [ - [misc], - [units, 'Unit'], - [nouns, 'Noun'], - [honorifics, 'Honorific'], - [months, 'Month'], - [organizations, 'Organization'], - [places, 'Place'], - ]; - // create key-val for sentence-tokenizer - let abbreviations = {}; - // add them to a future lexicon - let lexicon = {}; - - list$1.forEach(a => { - a[0].forEach(w => { - // sentence abbrevs - abbreviations[w] = true; - // future-lexicon - lexicon[w] = 'Abbreviation'; - if (a[1] !== undefined) { - lexicon[w] = [lexicon[w], a[1]]; - } - }); - }); - - // dashed prefixes that are not independent words - // 'mid-century', 'pre-history' - var prefixes = [ - 'anti', - 'bi', - 'co', - 'contra', - // 'counter', - 'de', - 'extra', - 'infra', - 'inter', - 'intra', - 'macro', - 'micro', - 'mid', - 'mis', - 'mono', - 'multi', - // 'non', - // 'over', - 'peri', - // 'post', - 'pre', - 'pro', - 'proto', - 'pseudo', - 're', - // 'semi', - 'sub', - // 'super', //'super-cool' - 'supra', - 'trans', - 'tri', - // 'ultra', //'ulta-cool' - 'un', - 'out', - // 'under', - // 'whole', - ].reduce((h, str) => { - h[str] = true; - return h - }, {}); - - // dashed suffixes that are not independent words - // 'flower-like', 'president-elect' - var suffixes = { - '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: 'ร‘รฑลƒล„ล…ล†ล‡ลˆล‰ลŠล‹ฦฦžวธวนศ ศตฮฮ ฮฎฮทฯžะะ˜ะ™ะ›ะŸะธะนะปะฟัาŠา‹ำ…ำ†ำขำฃำคำฅฯ€', - 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$2 = { - one: { - aliases: aliases$1, - abbreviations, - prefixes, - suffixes, - lexicon, //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 = 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 = { - alias: (view) => termLoop(view, alias), - machine: (view) => termLoop(view, machine), - normal: (view) => termLoop(view, normal), - freq: freq$1, - offset: offset$1, - index: index$1, - wordCount: wordCount$1, - }; - var compute$1 = methods; - - var tokenize = { - compute: compute$1, - methods: methods$1, - model: model$2, - 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 = { 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 = function (View) { - View.prototype.autoFill = autoFill; - }; - var api$1 = api; - - // 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 = { - safe: true, - min: 3, - }; - - const prepare = function (words = [], opts = {}) { - let model = this.model(); - opts = Object.assign({}, defaults, 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$1 = { - one: { - typeahead: {} //set a blank key-val - } - }; - var typeahead = { - model: model$1, - api: api$1, - lib, - compute, - 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$3); //~1kb - nlp$1.extend(lookup); //7kb - nlp$1.extend(typeahead); //1kb - nlp$1.extend(lexicon$1); //1kb - nlp$1.extend(sweep); //1kb - const BASE = 36; const seq = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'; @@ -7108,7 +67,6 @@ //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) { @@ -7149,7 +107,7 @@ }; //PackedTrie - Trie traversal of the Trie packed-string representation. - const unpack$2 = function (str) { + const unpack$1 = function (str) { const trie = { nodes: str.split(';'), syms: [], @@ -7157,17 +115,12 @@ }; //process symbols, if they have them if (str.match(':')) { - parseSymbols(trie); + symbols(trie); } return toArray(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('ยฆ'); @@ -7176,7 +129,7 @@ }, {}); const all = {}; Object.keys(obj).forEach(function (cat) { - const arr = traverse(obj[cat]); + const arr = unpack$1(obj[cat]); //special case, for botched-boolean if (cat === 'true') { cat = true; @@ -7197,22 +150,19 @@ return all }; - var unpack$1 = unpack; - var model = `trueยฆ0:HR0;1:HTI;2:HSM;3:HV6;4:HOR;5:HU9;6:HO8;7:HVY;8:HWE;9:HPV;A:HMD;B:HRB;C:HQF;D:HPC;E:HTC;F:HOW;G:HM1;H:HR5;I:HQ0;J:HFH;K:HQ8;L:HVB;M:HSO;N:HUY;"weird al" yankHX6'HX2aF7QbDONcBZ8dAYKeA9Ff9LVg8W1h86Gi7Q8j6WLk6G4l5RXm4LKn42So3SMp2XRq2VQr27Es0Y8tW1uPKvHEw6Lx5Sy2Bz06ยฃ9PHร strid bergรจs-frisbEรก03รคttestuH2YรฅHPTรฆ01รงatalhรถyรผk,รฉUรฎle-de-E4EรณTรถSรบrsula corbe79PรผRฤ‘orฤ‘e martinoviฤ‡D5Pล‚รณdลบ,ลQล›ลซnyatฤ,ลกkoda PลพOสปoumuamHHLฮผ2XK;eljko ivanGTSydrลซnas savickHWQ;auHEFoctE0V;dARNkaHON;bermensHL1rรผm5ZB;gede9IOtFWQzlem tรผreGVU;lafur darri รณlGT3scar mingueGXY;amon de vaCTWdRlQmile Pric Ovariste gDAW;ro7EWzemBQX;durkDG0zoHW2;anELUodie 970;er milit9LRgar raGTMith piGY6ouardO; mO-henri avrH9C;anHSQenHFE;on10SsHSLthelO;red the unreaHFCst1;lvaro morPngel O;corrHQBdi marG6A;aHWNte; 1R-1Qa15bigniew brzeziCTCd14e0Sfs,h0Ii0Al09oSsa zsa gabHSUuPweihรคGOTx FBByOz topGPFรผFIC;klon b,nGT0;bin8Q3cchiHLUlOmwaltFOJrichHJZ;fikar aliEPRu O;kFSClaH4NpeH2J;diac03eYg i of albDE6hXlWmToRpicDR6rPsia m3KFyaHCYรซ O;bucEIUk665qH30roENHwanamDVU;a neale hurGTNin HNSk,oastOro;er,rFB7;ey deALYlOm video D1VpC8NtopA;aGOJoH50;aHDNbieO;! OlaHS0;a9T1landDII;pidGNXtรกn61Z;ar,oGED; PyO; deGY's extraordinary 8BK;collGI8kPlisterD9XpDSQsaldaO;na,รฑa;az1raFZD;! 5WC;atan ibrahimH04ib;dovuCKRffADYgUllHTFmSnQonPpOta hanrHVY; FYLfGGA;! w5IPiHM3;c91Pdagi Oedine z5TC;mere gha1RYna milegi doDGG;babweOmermann teleFT9;! GP7anCI9;bHN6gBAA;aSeQoOuge l8M3;ngnanhHJYu O;dF6ZenlHJX;j8M0ng O;he,yi sH35;ng Po O;liFZEwH2JziEVT;weiHLYyimPzO;h92TiFBX;i8ou;aland65HbGdd,enat 76KitgAIBlda YnVppGTKrQtOus;aOtelka7IJ;! reticuHLT;kFUJmeloโ€“fraenkel seFDDoO; P-OdGJQzeroATN;knowledge pGUNpointE9Asum HF4widthCP9;dark thirHOKesA4Ymo0XBtO;o the powe0KNwo;! and the art of motorcycle maintenG9DdayaGO2er61JiPoO;'s parad9VRbA;maxA5Nth;fDL9wiG4C;f,zisล‚aw beks7H9;'3LQcYdieGONgreXhWiVkTlCXVmbAn11Kpatista army of national libeHQBrQtPwe asD2KyOzie beeHN9;ed bin sultan6MFn mFU9;anHG2o6F8;aOdBJV; OgoGVZ;l6UJtinBF5; Oir naGPQk wylGI6;bEXZpeHCVstaBH1zCVA;bBWFre;a99Ei hawaHTFn mccla9UM;b,us; WhQk O;and miri make a porH1Wde la rocGJ5rBT8snyderO;!'s justiTB; Pary O;goEZYleFE7qu9SQtaCR7;braHCEeQgPhadIki8laHCPstone is gonna beGJGwO;iGXEooHJ4;aEJRilGK9;dErHMQ;efr2taCR2;lDLXtB7B;naHPQsEX5; 32a27e1Sg1Ri1Qm1Pn1Oo0GuUvPลkOลซrH1F;ai,o hikaHBM;ePonne O;d5F5m3PNorGUWstrahoGPQ;s Ptte O;mim5GGnicoleE6R;bissouHM6montaHQ1;a07en woo-DANg04i 03ji oku7ORkZlYmXnVppHRKrTsRta4K9vPyu hakusGOZzuO;!ru han8VT;!aO;l noah haAFTn shankar raGM5;aku mae6SEuO;f demHPZke 4T8;i Ot;andropGS8bezmenGS8gagE6Clowe70MoBTG;gOn1; GLRblH9A;e nikHC5i's cG51; bryEAQe,ia tymoGPP;aHTYiOon; O-FC3o miETO;kajiOtsu8EF;!uG;horHR4i0U0m1CW;a545oslavO; Oia;partisaNwaHRE; mi8N2n O;dF4ZshikHHX;-0Ua0Tda,el roD42g0Qj8TRko0Oland0Mm kippur0Lna0Ko0Fr0As06tam ottolengHGVuPwO;amushi pDTUeri museveHIX; 03'02nUpoHINr TsStO;h of75PubeO;! O-GNBr;creator GIOkiHI0mGEBpremiHDXreOtv;d,wiHP8;ef al-obaidHDSsef kerkoH9G;highHRZlie in aprH5Z; yuh-D2Man nowzar3VKgO; Q'sDNGboy never broke70Qer Ohoe7U2;dryasOfANN;! impactAPL;aQdADEearth creatHI1fPlady andG7Wmone2JTroJs1KKtO;hEQ0urHIV;orEVJrankeGTD;dult0XYvBQH;ll never walk8AFre so va4ve got FRT;are my0BIdon't mess with the z7IAquiz48Xshall not steMwere never really G0R;emite8ZGhiPuO;ga no BDFke id8DF;!hiOnori kitaHR4tsugu matsuoGXN;de suGPHro togHG8;denis ug9ZMgos lanthimHKEkPuO; ni kake8S6b8R3; FLIshireO;! O;and the huHMQpudH6BtGAX; Pk su64Fn O;eu3KUse-HIL;ah-4in-HDUjae75Mseu0CyO;eon5NKoung-O;chFQLj4; of the A2Xtan nEL3;! w9;a Oi viDNM;h978sald1I8; OhaHKI;k6XJoGZQtaHGI;aPi OuHSD;aditya95UbDF4;! sutras of patanjaHIX;ne wisH9OsoFMT;kai wFP2yo HKC;gwie malms73Gw mH66;ca,ir; sunCRRd880fy,k yGO9n and ESMtzhak rGNV; H1XgdrA42;a00ezDh ZkaterinF91llowWm5nVoSrRsOti; OhHCRterday and0CA;dOmiD2V;ay,iHJW;ba H7Jev1sinia pestF; jin-gGUJm1nO; saOgj78Tmi G82;ng-GMU; pH2Nnefer of vengAZQ; PjacketDNHkDZ2stone O;cal4U2n8YE;e8TJfEUBj923rHMIvests 9AN;jawaani hai dee8NYrishta kya kehlatB6Q;h yeah yeaF88r Ost,t;without a BZIzeHFU;cht HAVh0Gir lapHOZk0Cl0Bm06nZoYphet kotH99rWsQyOz5I;a Ooi kusaHJR;d45StouEI8;en-GUWh SminQser arafHD3uO;jirล oG8YkO;e,uni shGUY; Oe bl43O;ag5JJmiHIE;cH7PrajCAT;a shahiHF7ichin bitchDN5oslav O;amosGPSthe4MN; GTJi;deSgQis varoufG11keePniO;!ck biGNP;! d920; Oon,tEO7;di-pertuan aCRDgu5TQmi;reG8ZxO;! DVH;aOi gautHNXl,nayaDDX;d64Bguchi-1KFha QtO;a no or6QIoO; GXB-EAI;cG9Hm5WI;e FJStaGAT;!ov dzhuga6IDuO;lt,tsPzaO;! kiwaHIR;!k;tzHIIwG78ya O;abdul-mateeH6Rkh1;cOtu mamรก tambi8K8;hromoCMDombinHAE; window FS3-0Ea09box06co05e01f00hZiTlSmRno7MGoQqc,tPuanza8v3CRxxOzibHMZ;!t4HRx;c,uFSG;chitl1PYlo maridueBQTr H6G;as,l; BFArFU; R'1aPnjiangOongEFB;! internment4AI; dF22ng5T2oO; zh1lin show5ZKmi;jinpingOmingENF;! th467;amHG5erdan shaqiHMCosa GYS;ce,iFCU;noPon,rO;ox,xesGRD;bladeFG6g90Yn,phoO;bAn;de,m;! O;cloud gaGSDgame Oo6series x and series s,wireless 47I;paHOZsHHQ;bi a9WTmGLFnRviO;! Per O;d791wB6O;heGQ3siGKD;der berkG1Athan gHAO;fFM6m5rayO;! crystallHJC;a7Xe62h4Ti1YjD8Vkrp in ciKSladimir CBo0Dps 89Rr03u00weRyOล‚adysล‚aw szpiEC0;att PcOnonna juFDMoGS3siwyg,veHF7;k godCNElef 797;eaFPHrEGI;! O;championB6Bh2V1intercontinentCBBnTrawQsPuniOwomen's tS;ted stateH1OversCBA;mackdownOtuHHC;! O;tOwomen'H1L;ag team H1L;eOxt;tFW9w year'921; P-tang9YJhanOnmi mosaBZKthering90MxA;! institute of viCQV;a3OMc8MQzeB3P;aVeRiPoO;cล‚HECught DKK;ght OtFQQ;brEVMfly0;ckPstlemaniaO;! back8VR; of the O-it r437;rms3GEt3GF;ng3XCth of O;m1the tiE7V;bZFjGLCk84Ml11m0Wn0To0OrOunded kneeECV;cestershire0Md0Kk0GldPmOzel gummH6W;!ho7; P's OomHB4;columbian exCOLend harGH2faHL7stronge0F0;b09ch07darts FSSe06giviC9Wh04m03of 01p00raZseriesYtWwO;arQide Oonder ring stardH47;fund for B49webO;! consorERB;! O;iOz;! cD6iO;! Oi;byGXHcD4inE3P;ourismCAFrO;adeEJBiED1;! of pGYI;lly H0OpidY;oA6QrofessionalEN5;tF00warcraftO;! cBYZ;ap,usHOY;appinessAT2eO;althEJ3ritage 8LG;conomic f7T8nergy supply and consu2HA;ampionshipOesH0F; wGG1s in wDCO;ankPlitzO; chesH0C;! gH5X; breakdown FEVers' paBBHinOweek and wG1;' moHMGg O;meDPRtiO;me,tleC7O; cFR3pGZ2s O;bubble up like soda pGVPper minuH;! DZH;dPlO;ly mamEK4worthsCAG;peF31row CXEs6K9y O;allAVVgFG5haO;rre7GMy3; ji7UJderOg karVD; OlHOCsAJGwallG91;egg prioGWYgDSSwEAS;an oRbH9HenO; P's O-are-wonderful ESN;empowerGXTrFGAsuffFJ8;and children3OSof theFCXt77X;f the b662n tGVB;fPverO;hamGQOi6;! R's QdGYFeGO5gang Oman 1E6rama986wBKW;amadeus mozaHNSpOvaAMG;auHEDetFDJuJ;laHJSra4;aHI5cGEThaC; haCN7-fi2GcGCFde2Fe2Efe of aHN4i2Dki2Cl0Nm 0MnZon,pHBSreWsVtRves of henryHE3zO; khDH0ardOkHKXzHJO;iAACs of O;theGAAwaverly4YS; FABan sulaG3LchQhOold pil791; Oania somn4IFin tempG3QnailVA;a little help from my9KSgreat power comes greatBYTtDRN; trials in the early modern8E4-CJUc9SFer,ing 6DP;cons4e man's grandcB6Zh EYDsam ben yeE4RtCSP; 2DDg86LlessOsDHO;! O;access8YJpower 2DB;aFT6chester08dZf121gXkleWniSona rydH5Dr9sQterOxDJ1; O's EQH;olG05paH6Fs0TRw9;ome s8XVton O;chCDHduGOO;ePnBFIpegO;! jeHIR; O-the-08F;ha99Tmadikizela-m45E;rHMCvossCAL; chHM9dHJPnutC6Es O;haC9EofHHY; VhoGJWmiCowPsO;cal99Zor GBV; H7Os O;ins6A6mQnPp9QQr48GsOup7HQvGNKxp;eFLGubsystem for2FC;otepHIJt;eOovie203;!d8I;pH1Mt98X;! O;mysteA9OrFNY;hGM9wenFYW; wheHE0bur s1Bco1Ad15f13helm11lSmRsonPtO; GJRsDIU; O'sH3N;bethIphE9I; hosEQMer valderC69; 0S-o'-the-wiFP7a282em0RiQowGGAyO; O'sGF1s GCR;brC9QwonGR9;amPe OsB4Z;gaH0TneGPE; P-adolphe bougueEC6s O;cG3Tgrand prixE6NsH5S;a0Jb0Hc0Gd0Fewart gladsGESf0Dg0Bh08i06j02l01mYpVrUsStPwOzabGR4;alH5GestmoBW7ilberfFIGordGCMyl0;ePhe OynF9S;c6KJsiG6H;cumseh s395ll;haOtuart-hCF4;kespeaBtn0;andolph9ATehnquiHIQoBUT;ePittCZXoO;o7weC;nn,rry33QtFBU;aPcF7WoO;nc9NMrrF;kepeace thackerKpoH7L;ane c0UBindsay gASDuther BFXyon mackenziFRW;aOennings bBC4oyHL0;ckson hEFVmesO;! sO;idF;iOv; H1Li H1L;aPenryB3LoOuHLR;ld5ward taFQ6;in3rtD8D;iHD4oldOuarneB;i8m1;aulBGJichDOKrO;aGKBiedk4;anCS8eva6;aFKAhester m542laHHB;aOlaGMY;lH4Err;badHIYustin0PH; dafoeHEP-alexander6NQ;arGNLeALCfQge0pProHDXsOyunDKG;asGJ4h1GMmi6DEuccess spoil rock hunter?;aGNOouFRK;erre6RQorH; Oina6NL;canG0Uke8EMmohnGMPrGKFscHHZ;ord bri6XYrO;ed 76Gied zaG9S; PcaOebeeHHRfiB;rd5BBtt0;bPhuH4NtuB7Gwild O;cGTPweHHO;ill hickHBPo9;!xon signed-ran1G2;miH2VoHL7;!feHH5leaksE2Xmedia731pE8FsoBVI;! u;nerH1Bsel awc; a5MNvi6;! protected O;acH1As4D2;-mF9Ua0Re0GiToPy O;him?,women HEW; Q's Pis,le Oopi goE70re8HI;foodsARWlotta8YK;afraid of virginia woolf?,minding the mint?,neA76the bosAVT;framed roger3HUkilled captain alex?,model list of essential medicH7Nwants to be a millionairFEP;le my guitar gently weeGUZpsnade4XSrlpool 09s07tO;ePney O;cuAU3hCDI; Q-PhAQFsOy4BX;nakeGDKpaceDRF;b8Q2tail072;a00bZcYdDIKelephant giftF07fWgenocideE7RhoTmF9InSpRrQsPtO;ig0raHBU;outh afrGVDtar H7GupreBNP;h7O9oHIN;ap0eGQMhosphorus munG3KoGFE;aG3NoiHIL;le,useO;! O;chiefCU3doHH6farm 8DZ;lOox;ag,igHH1;hEH1liffs of dE2L;l2CZoy FPQ;mGV1nglo-saxon protest4WT;kOperQBtZL;eyFYWy;cG2GgFUO;atXeUn SreOy; O's wallQ-to-be-bornHJ8;eagles daBis everybodPthe O;crawdads H8Gwild things aB;y?;callsQ4hopeFYSmarnie was tFROnature calls with helen miALBtheO; camellia bl9LJy see D;in,l of O;fortune and8QPtO;h8R0iHJI;!ston8UM;le8OBrton school of the university5QLtO; P's OabouFYBsaGEX;eating gilbert g0WCmy linFDOwrong with secretaryBIT;a wonderfulHI0happened to0HPlies benFFZremains of edith fAQJwO;e do in the shF0Pomen waH34; 1C're the m445a19b10ch0Zdding 0Ye0Uhrm82Li0Sl0NmbleyDMQn0Fr0BsPtOwoHFC; lDZSlaHFHr29I; 06ley05sHITtO; Xboro bap1GCern Pinghouse electr1MXjHFNliHJ2minster O;aAPOscEYU;aUblHJMcSdB1SeRghaHF0n3CQphFXLr9UUsQuniPwO;aCorHHU;on,tH68;aFI8cFKW;soteriGRFuGRV;aOulH5W;n2pe;sAtG2ZuCVE;afFRTbRcAJVendDIEgermanQindiesPmemphis4X5papua national0LAsOvC41y3R6;ideHI3uAJO;! cEZA;icGTAy;aGIKeO;ngalOrl4;! state electricity distribu2B9; snEROaF0I;a37JbAYXcPmanGTMstOweG84;rE5QuH6P;ha7R6rGAH;ewolQnOwoGNZ;er heOher von8LV;isGIYrzogHC4;f,ves wi5V7;dOtworth H9Nyen gab970;elSiQyO; O's;ca212monBL2ricHG9wiFS3; Oe maAPBgo;deng61Cmclendon-covE; meldrH38l O;andEGIpiBCL;come to ma4OOfareF10lPsh OterweHFD;c353laGQWpeGOS; to hell6JAePingtonOs farG6K;! paranormM;rm1sleyFZV;bullEA8ghtOm7SV; 8GXed arithmetic me1lifting fairy kim bok8FJ;kOn,z0;end Ply shลnen O;juFO5m2K9;at bernie9JXblockb475;anniversaLcrasEOG;at,sler adult intelligenceEFO; QasBQ9cHEYdGM4gl,hoH8UkHEEley revoB72os,p,rtc,sPtoO;on,rG64;itDUXoDPU;apB7SbH1cSdeRf1GThosting438ofDNSpaH04sO;craCYOervO;erOiHH5;! directoEPH;siGX8vGQ8;oBZVraCGW;k7U2pons of the vietnamGBJr H9JsItherO; OingX4;forecGOYreH5Lu5IL;are SbRdidn't start th94VgotQnePsOthreeATSwere s14M;hall fight on the beaHG6ummon the89F;ed to do sometDX2ver l4KM; mWYta get out of this4SZ;ar8SCought a4UW;lad7I3tG8L;bi-saFC8coE84d24ff23g21hhabiH83iting for godHHWk1Yl1Amiqa gabFC8n11r0Bs04tWvTyPzO;e,i8K0;anDRIbackEW2faHDPlon jeBUJmo,ne Ov,ward013;bDH4gBJVhenC39knHEFmard7neD69roPthieF77wO;aAJ1iFQZ;geHFFonE;!eO; Ol9GQnuHBJโ€“particle dCV6;eqF7VfuH28interfG1B;chTerPfoHF1kin tudorD77tO;o,pHD3s f8B4; Obo2R6fallG1Igat6UVmC50ship 5QFwHFT;bDCXcPma74BpOresouETUscarFOP;olCZNuriDH6;ons7L9yc7; Om5os;doHDXthe5M5;aFBRhingQpPsily kandiGD9teO; FEWwater1DW;!-G16; mEVLton O;capitaHEWfGASirFWXmOwizGNK;etroOoB58;!pF0M;! 05c9LZd04ez2QCf03gGFWhammer age of sigm9lo02ner00pGKGrVsQtPwickO; dGK4sDD7;!ime sexualHEA; of the RawO;! O;pactOup8GH;! invasion of cAT6;rHFOt1WZ;ant Ren PingO; states87Ft2;bOcDIJeFLOjefDD9mo2oH3Os1W2zev2;e3ZRufDTF;ca3CToCIV; OmE44;animationGY3mBR;ck,rdADH;ar4raHGC; BPQrobe malH1A;and37UcBJQforE9QhaG2Yin TmEUZoOtG1P;f the Pn O;druHD5teDSG;austrianC1firstPleague of cambrH4WsOthirdP;ixthOpanishC0; coaliHBU;dOheG7X;arfGWJonbHG6;dRgPkelCLPnO;acry ransomwareDQCseeG02; Oan4SX;leehGVCyiDZQ;aQerO;erOing jG2QleiGET; above the sea of fGQRsDJB; OviH1W;naGsyk3ven7OC;d09esF9RgrESFk08l02maHG2nFA1purgisD54rDtOz3X1; Yer Qher Pon Oz;faG7Bg69C;pp,von brauchiECI;bTcronkiHdur1HFhiCkSlAPHmQoBWSpPralDS1sOu1U6;coH6VmiGXS;aFN4idGN5;atthGTWcmFLWoO;dInF3C;o9SEruCQ2;eOreCDW;ck0njDJV;disneyOwhiCMV;! O;a2U8piFK8studios motionAX8wHE3; HBR-e,aQis PonApaperCL1s and b0GSy O;cGGOweHC7;and fuE3OsF3D;by,cOrGI4;e OhA;and gromHBPfardEB1hANIs8Q5; thCXPer hay3m1;en,orf O;astoriaHB4eCR9;anHDBeOizH2S; O-on-l1;fores5VYisH88; tYOner Oon tH03yu;gGWRmouG;e2AQle houseHEI;dOeE24;esdon4SOy wachtI; 7Ra5NcaHCRe4Ff4Ega4Dhs,i11l0Umware0SoWpnEDVrVsUtDGFulRyOรกclav h7DOรต nguyรชn giรกp;aPbO;oGXOz kaF79;cheslav molotGDGsa;canPfpeJgaOk1tuBva;r lEXLte; centaGV7oHCA;dc free video 822s vintorH7O;bo,chH0Fedefort CH7il;ca0Hd0GguE0Eice 0Djvo5KGlZmiHF0nVoUrSwIxRyO;ageOeuFD2nich manuDKV; HEKr Os of christopher coCBA;golden C2YpFCG; mE29el;onoi9KZtO;ex,igeH40;dooBBBt; Petta03ItaO;e9WVze burfiGPV;dOmiH5Jneumann F6G;utH2U;atile organic co3DBbeH02can00gYkswagenTleyGH4odymyr ze1WJtPvoO;! 7Y6;!aOesEE6r2;geOiB;! O;divFU3piFJ0;! O;beDTAemissions H8KgQjFZHpPtO;igu1ouarDUM;assGZToH5J;oGJEroGVT;aOoEEU;! gUX;ic explosivGK1o;c85MoOtyH28;f Over GQ6;aFMQvADH;afo6ka;lOtionalCPW; rGMSoHBCs;! O;esA21wATJ;adPc medOog;ia GT8; RiO;mir OvostH4J;harkCNWkramnG8Vlen4nabokGC8p8GMtGIEzO;elG9UhirinoFPS;and FG9the imp25Q;acomcFIEb2Yc2Ad23e1Ug1Tjay1Rk1Jl1GmFZBn13ol11perC1Mr0Es05tVvPzO; mE17sHD5; riF74a la vidaSeRiO;an PenOsG60; lDPRne weG5T;caH51vFRZ;k oberDM0nH1D;! or death and all his9AV;aRel6WXiliG1MoPruviOtorio de 5VX;anH8Rus; Or belGLG;corlATNg44P; sackville-HA0lQminO;! O;a,c,d,e,k;iOy zdorovetskiy; Ok butAAXy mykolG9C;klitschGLL;aTcoSegrรกdGUQhE1ZiQsel koFF0taGual Owanathan aEZK;eGZJnGQDsO;nHAWtudio FG3yFEK;ble ES4gothOt mallorcaDGD;icF97s;siH6MuGWO; requirements for OkhapaACH;indianOunited statesO; citizeN;a08giVtuOustotM;alQeO;! O;etBUAsign044; ObGDZiEFM;l1mPnetwork cC1Lprivate OrETUwHBB;nFJGseFBF;acG9EeDE8;l ZnO; ViO;aOe efiGty;! O-GG0;beach RfFOAgiuffBhQmPtechOvalleDJOwooGHS;! sCJA;a1WLckEOC;alas mccaDK2ey;np6IXsCJ7;aPgOiGAFmE00of the rAHQrF9G;alCCRroGU1;tECUuCOO;ablGSFeaFC2van dijk;l Ot k29N;hemorrhagicAYDvectorEAW;a9ULet Oin;everGIVjessGJS; dA50ayaZceReQg rhGB7laH8AnOรญcius jรบAP3;ie Oy testaverFZR;jHA0paFAB;eth sreeniv6AYssa ER1; SntO; Oe m5EE;caDRQd'onofrGA8gPkOpFJQvan goH5Q;artheEBUoG2N;alH3BigF3V;caH50gOlomb4QWm0NZneGOUoFHAstaERCv4RByFJ9;illOuarFBU;!ig1; vidheya BVPk damodar savAQT;laOniD;ge Orreal A6I;ofB7TpeGI6roadshowATH;ingTraPtor O;durasHC4frankl,orbCTHtsDK9yanukovyH03;mOnt maH8V; OarkuA8I;bEH5saOvedG0D;mvGX8rabhH07; Os;aGTPeQ2; Oanagar8BV;an4XMdever68OfH4YkDZ3mallGJBsethupathiH4X;enรจre0JAgo morFNP;nnaUtO; co8namO;! Pese O;alF77laGJVpeGHR;naG54warO;! cO;asualH67;! O;new year'sFZHphilharmFQD;eoPkun quisH3RyO;a bal1ut jammwM; OdGUQt4A0;editing FVWfiESMgameOho05Mkilled the radio ANVnEMSon2IC;! O;c8KIdevelopOg9FQiF29publiFR2;er,meGUP; 08e05hy DIMia faGSCkZtorO; TiO;aOoD; O's secrH78nA7X;and albert7YSbE4EcPde angelFfFPZjH5MpOso8t3TJwoHAY;e4XFrinc2NT;oren 65BroH9R;bRdavis haH38emmanuel ii8Yga6A8huFZ0lustG6XmQoladiERQvPwO;ebH0MiFFU;escoFDHykhryH7H;aGXHos3;orGSUuoGI6;ers Si Qy O;cristina2E7kOmAHB;au132rieGL3;la965peO;pperBZPteGP3;mDE8wE7A; Pnte O;cFXFfeGAMluqGYS;mDY1presid9IV;fPmOreG3V;arH0CignGBoDKX;a6DYliJ;er,raH5X; c3SM; cFSUb stutt7M7l wolfsERC;ctor 0Ud0Se0Qg0Khicle 0Hl0Dn06rRsOtrimaG9Lvo;na vulGEPpO;aOer lyH6A;!si1;a00cingetorGQCizon CG0khovna 9U5mYnWonUsStOy hi8N;ebraQiO;cal Ogo;b9f8MV;l column,te;aH98ionO; cGFQs of bladWG;a,ica O;cFIYlaGBImaH7XveG;aOe F2B; bC23cula424;iFOVoO;nt,uGRT; O-eGGScryF5K;f0AGlyGS2mEZZ;eSiRkat prabEH1lafaxi6mo,n9G2turQusO; OtraGHU;de miH10fly6M7of willenABHwiFJ7;e3QBi EEG;ceCVYs2;to,zuelaO;!n0ZG;ik3JSma dC6VociQvetO;! revolO;uH52v0;raGO5ty;id3UWregistration plateO;!s of O;euGI2tBYZ;aReOgietC9V;miHtaO;ble4AMrianismO;! EMI;!niGZRs O;golden knF1OpGXGvaG8Y;p,rO;-zaaGapp1;aOic7ZW;nH9Gs;calculus identiH3ZgBQIpEU7sC3D;a1Qc1Kdim khamuttski9IFg1Iishno devi1Gj1Fkeel saEZRl0Tmpire0Qn05por04rWsRtQuO;dG3ZxO;-le-vicEPZhall moDMT; id3UFicaEER;cQec8EKilOopreFSYsarFQH;iy lomaFJWopiH99y O;arkhipG7DstB06;o da 5T1ulO;arCR2itF;anTg vikeD50iQuO;du kaavaleDXLn O;d1J3tDX9;aOcella zoster9U1eties of c860;ble-frequencyGC8nO;ce,t creuBGB;aGZAgianO; g7RWs; ERNwaGXR; 05a04c00dWessa SgRiPnOtabEIFuaG79;aDQMes A92;lla Oshing gradientDSCtH8G;fC4UiH7OsG75;elFuard-GBU;bGNUcDL2fQhudCNVkD5TlPmarcGLAparadFrOwiFHX;ay,ed9CC;achEen80J;erliGQ0iF7G;alQerO;bilt Opump rFRJ;faFZOunFQ0; sa91Ts;e6LIouverO;! O;canFMRiO;nGVSsH14;diGSTm;allen radiation DGPdPhOjH0FmoE0SwiEQ5;alD5LuGRO;arkholH7Ver waalsF48;! O;hunterANPwO;ee8YL; kiFUGeZhYimGWGkVlSorRproaHsalva maneuv0tQue-added0L1ve PรฉrieO; pรฉcr7W0n ismaรซl;cFQDiH78;er 0K0teri bottH7R;aGRFieEJS;aPeO;tH82y of theAJR;bhbhaiFS9d4W3;nF1RyrO;ae,iO;aEXKe;alH73eGLG;dictoGQKnSrO;iOy legasG60;aPe O;bert8WEhE1Kle2pacDSZsolanH7F; goCQ5n and the city of a thousand plaCDL;cQtinO;a Oe8LAo2H5;allegra de f6KAsFIBtereshFD1;e elec3ZWiaO;! A1Zn3J;iralongH2rayaGSM;! templeO;! stamCJ9;inaOusA0;!l lu166;ation94JcinQhirawit chivaarGYVuum O;clCKFpermOtuF8Y;eaE6FitEHK;aH2MeO;! O;adverse event reportF8DhesitD0R;niDHBs153;for vendFS5sO;iGM9p4OD;-8YAaG5Lb5Yc5Wd5Uefa5Of5Ng5Mh5Lk5Gl55m4Yn10p0Tr0DsYtQwe boCyPzOฤŸur ลŸah4;bek07Fi,u3TU; scuFTBghurC0I;aSeRilitQkarsh ambu5GOopArDXKsuro-bu6tarO; pradeshOakAOI;! legislative 3EM;arELVy; GD1rD;da hika866hO;! O;jaBE7monoliGOLutes39S; 01aYbWc trojan5ZRd AH1eShRl Qman khawaFYVs Otaลกe;aFF9cOjE3RlibertyCFGmonBNX;aG1DoD56;chGIJleagueGCM;anGBDuaA; QnH2Qr O;aFTRdatagramGNEinterfaceOsH5J;! GLO;case14Qyour illusionFW3;! O-c;flashG9UhBNPon-the-FUH;! Pge share of Oin boET1;o50Oweb browseH48;nFCXtQK;aFXCchauC63;aZbaVdu,eUho kekk5RKiSlRolaD74sPtica dioiFV1uOvashi rau1CK;guayEZYk,sei yatsuG;aEGYodeoxycholCYKula O;andGGYvon der ley5;! shor0UA; geGX1cH3Eel,jah fE3Zm and thummGJWnaO;ry tract7INti2;a,mAthG;in le vFOAnO; OiE8Q;arGZVd323legeH1YmOoutfFDLplF13rail transiDJQ;ey0ytEMG;lQnO;iumOus;! g9BT; DKHicGG1;anishaGUJn,pPstateH1JtoOwoH1M;n sincDU1wn fuG5A;eOsaH56;na,r O;eaPpOweP;aleCFDeninsula of m5NC;st DOG;a3Kbreakable kimmy sc9PWc3Fd38e36f34guE5ViVknown pleasFA8manned TobtaiBM6rRsQtiO;l 9G0tled O;captain america sequIdeadpool H0Yfifth indiana jones H0YgoosE5Dmario H0Y;a6imulatedBZOolved9YJp8BXupervi0AG;avel6ZVeal O;eFJNt92L;aOcombat aO;eri1YG;c2Tdentified flying4EVf2Ngi6lE7XmGG1n2Mon 2Iq2HswF4Nt0KversQxO;! O-liG6U;sE88tiH54;al0City O;atD0Uc7B3of O;a07b05c02d8BLe01f370g00hBY7illinois urbana-ch8T9kansH54loFKFmWnUoxFV5pTsStQutGV8vBQ4wO;aOisconsinโ€“mESV;sCYCtE54;exas at0EYoO;kGB3rA4L;outhern c8D8t3PBy07C;arFen7KLittsAV0;ew so3KWoO;rth carolina at chapel E71tre SK;aQel6XFiO;aGWTchFS4nnesoH58ssO;i968ouH0V;n9VWssachusetts amherH1J;eCFHlasgH2L;dA8KxGQU;aPhBC7iOolorado bouEMU;ncin7BF;l8CXmE5B;olAKriO;stH3Wtish coluD5C;lOr21NuBSF;abamaOb2SE;! in huntsvilleCB9; OiGV1ly uniqueAJW;asynchronous receiver-tr3LPbasic i3M3classicAO1declaration9KLhealth2ZAmQpPstudios Otransverse mercator cCL0;f36Bh8YX;iF94lug and GR8roduc7D0;usicGLZ; 1Jar1GePy O;chEVZt7WI; the right rB5WdO; OhealthGLV;a19f18iBEAkingdom14nations10parcelE33ruG0MstatesO;! O;a0Ub0Tc0Od0Ke0Jf0Ihous0Hin0Dm08na03oYpVsQtwPvD41wO;a6Q1omen's national sEKF;entyYoY;ePoccer0LEpO;aEK5e6BC;cretOnaH; sE2Wary of O;dDJAsEMM;ostalE2Tresidential O;elFWEline ofO; succEX1;f aRne-O;dPhundredO;-dO;ollar DLG;l,meFCJ;tional s0KvO;al5VAyO;! O;oD4MsealO; selection and7PYs;arRen's national QiO;dterm3IQlitary Onor outlyingG1K;a5V5casualties 8P1;baskeFXDsEJS;ine6YZshalsE2C;fluenza statistics by flu C08telligenceQvO;asion of Oolvement in regimA07;greDH5panaGVN; c9JC;e0KFingAAG;ederal executive depar992ooEXA;lectoralFKVmbargo against cuGKN;eOoEJA;clarationB9Ppartment of O;dDIIhOjGXYsELUthe treasuL;ealth and humanFOOomeland 7HC;apitH2GensusDT2hained consuRoOustomary72H;ast2BJnO;gGE0sO;tiD1SuO;mer p7HZ;ill of9J7ullion dDCV;irEZ9rmOttorney ge901;edEFKyO;! O;a0KToD3Vr46HsU;! O;convention on the law of0WQeconomic and social83Qframework convention72XgePhuman rights83QpeaceA9TsO;ecurity83P;neral 3APo4VJ;! O;of PsO;pecialEFB;great britain andA2CtE0J;or hEIAruit FTA;irFMRrOustraliaGW7;ab OtD2I;e9S8rFQW;ianPy O;mGIPsEL5; universaFM0iGT1;of me29YtDK1;lo,ue selling proC21;bQcouncil of minDHIjaJo3OBpOsEL1tEIK;acific Oublic service9AU;bigCD8r94T;a1RRui5D3;corporated EM2terruptibl055;iQormO; resourceAHNed servicesC4Hs O;and insignia of the schut15Nof0A7;cation of Ped O;extensible firmwareEYZmodel9KVpaymentsEYZ;geFRZiD0K;ef,oO;deOrn;! subscripts and superscripGXS;ai3LVorgO;iv5oEKX;mployGBZscoOthical human experimentAY2;! intangible cultural heritage2H;eOrafted sports5WN;fADMrO; RgOta7wH0F;arGBUrO;aduate Oound948;deGOZeCDR;arAW4one 5WHprEKVsDSCthe silver 86O;annyRertaintyF3GhaQle Oontacted8LRut geGZX;bOsGYLtom's cFXJv6WH;en,uJ;ined me5O0rtGWV;! F0H; stubF6CbomberT8caBP4;aRberto Oineko7NJmag8GZp7;eGNPiO; Oi O;of iCZW; Pmi,r,yyad cO;aGTAonquest of hispCJH;musume pretty d5UNthuFO1;aanba2SCcerative colF7Tlu,m,st0tOu80W;imate VrO;aOon; hR-Qm1sBC5vOwide formaGX0;ioletOox;! iH0Nโ€“visible 1XO;high-definitio7JDwideBCI;d blu-rKiO;gh fF8N;customCQBfOmaDRXsFP0tensile06G;ate9EViA2R; Rg,iyoA1ArainOule7;ePian O;a9X7g1CShryvnAinsurgentC36laG9IpA98soviet B3L;! FUQโ€“natoBB4;dC1KindependenceGUIsingles8O8;tred8YIuru kenyatH1A;anGYYly bERDo humGJC;cBMKotGWI;! O;cReuropOnatGCGsuperGCM;a Oean GCT;conferenOleGCG;ceGCE;hGCBoDLCup winners'GCI;aOeEVYhamGUBo ki0;ciGU9loyESZy9ET; bOla brui461;rows0;aGWLba,erSisoftQlock39Us,untuO;! O;phFETveFBD;! O;conDJUmE6W;! eaGW5; A9Z-01SaY4biliGR2cY2eUXfโ€“idf,gv,hCJiAHjx52CkGWZms GABntAGo5Sp-6CYr27s22t21u10v0Vw0BxEPPyOzu82Bรฉa leoGQ1รฝr,ฤ moG8Tแบฟt; 09cho braGOTe3D8ga,ler 05ne daGL1pWrOsonD7K;aTeSiRoO;nOsi6; 0W9e O;pGF8wi63K;an puG9VonCB5;ek E2Bse7BH; bEBLnnO; mathFANoGLC;eShOogGTM;oOus;idAM5n,onO;! O-G3G;haCW3rGOL; Q-GUHfaGZ7r34LsOwr97J; of OcEVP;prostitution in modern75TswGOQ;a and type b personalBHJi and type ii er3T1o n3ZQxxiG3C;hQjPpOrENKwCO2;erLosE;ames DLGoE35;o5YTunALDyn3;burDCCcoF9OjoGX3siHJwaG6N;eZiToO; R's compC4M-O;facPsO;p8W2t8WL;e,tor EHZ;and a halfGXObrothersAHAfatE4Nmules for sister saGrodeA4Ysteps from E2L;gG8LliRnQsted PtterO;! suspGCZ;mFRDpaGVPsiGPC; peaGPFkle1YD;ghtOo;! zone8AL;lPnty OrGKK;on097thousand leagues under01H;fth SveO; O-stepCMN;days ofGZ7grDSPminut3oPtribes O;cBCXof isGN6;'clock98XlympGO9;doGLTnGW5; Qb aOos,xq;nniversary FONwards winnersO; lCZ0;asaGMNg44XpaOtD9Y;rental guidelGM6trGYC;a0Nb0Lck0Kesday weGXMf0Jl0Gmb0Fn0Bp0ArTsQtPvaO;!lu,n4VT;ankhamGYBoCTSsi;caFU4keO;gee On7IJ;airm5syphilis6ZT;andGZ7bo03du8Q3in01kUmerGZAnQpPquFY9ritopsis dohrnGUUtleO;! rockEREs all the way 580;enEHNinCAJ;-based s4K2er QiO;ng Op,t4;pointBF3rGTY;b5KVclassicDNOsGI9;anaC9JeySiOmeG9Ws and caicDI5u;c EDZsh O;aPdelGVKinvasion of cy36LlOpeG50radio and televisionFH5wB51;aG73iG;ir2G1lEUE;! O;naFSAvG96;!g O;aCY4c35KmED1teGV6; c42VchaDSBencabFGCf1jGUQprG5Z;acEK8le,pence miCCR;dGgPisOnelFI7;!iaES6;stenOuskaCFA;! c0P6;bGU2lr;anER3ipPpa,sOum;a raceDLYi gabDSD;! mCG8;nel84VtD3U;er carG18man's stages of groupG6F;eOi,ularCG1; mEXFr3NG; tagovailFG5re7H6tha dรฉ danaGGC; 4UVeokbokGGI;aQg G7Winghua EQVmc,uO;gumi ohGFAkihiGXUnOredureFP6shima EMDtomu86T;aGPVdeB;i ing-w5rO;! bomGF7domFU5;a1Ke11i09oXuPypO;oG5YtoAFX;die stG2YeTff7jGU3mRnajayaQsPth O;so0G3tGTE;s,ted platformEVJ;! rFCP;an capoHpO;et,iGO6; OcaGON;b82PdM2li3r3NO;ian bellisFT4jan YllXmsรธ,nWpStsk4BAubleRvo GMQyO; Oe s9WM;aiDK9bCX9dOeG42gaG6KkotsGDUpolama7E7;eFPPo9Q7; with theCPDd730;hic sta0C6icO; Pal Os;cycCSFsavanna79I;of BI1tFIN;!dCGS;!eyDH5faGWIs world F2I;hA39w9;a08b07c05dent04e03g00lZm6C1niWpUsPtiGHZvOxie ma0XW;aFLEikram srinivGX6;hQkeFC7taO;n OrAEU;and iseuEJWda cunFLUthDPN; strBCDa O;paytGX1yearG3R; hG4Ladv81Ile OoGNSpie 609uG;bottom GK6crown of acGX8ent8RMh,s7MK;dadPty O;college du816sBZP;! and tobaFL4;ateral95CobiH;eminalPlyceFE7onometrOun;ic8XCy; nAU8;!r,sH;!ineC8X;eratoG77ia O;helf0leigh 9NN;aGKNecaDOE;ge,lSngPssicOtAMI;!โ€“jur2HM;leOular FUW;! O;iCABs4HT; of OwaB;arne cheyenneCQHmiANB;aYbXe Wha89KlGNSnUpEROvoQyO; OarGKS;anastDIVlFAVpaDNBsongz;h c3IFnARRr O;hoGLQla8RWmcFC9noGMFpOslGQ3;eaCFAhilO;iG6RliG6R;chGI3dyGVJt O;alexander-14Oba128gFZ9reznGST;oB9Htra3FXweC;linka0I3uED1;dsFOQsTtO; DHRy oO;f On the non-proliferation of nuclear w8U1;brest-lit5NXlPsรจvr3tOv2R2;orde737riDK4;aus6ORisb2;on,ure O;isGOZplEML;b19c0Zd0TeDR0f0Rg0Qi0Njan0Mm0LnZpXudl j28DvPxamDWyOzo8C1;lor CSQv5ME;elSis O;bQfi9F2kPsEJIv1GTwO;alton ufoC4Qi5Z4;alaBI2elGV0;aDMOiFB2r6NI; Ping wilburFOClO;er's7YGing salesmanDFK;agF37m1; mFGSezoidOp FN2;!alB42;ceFGPsO; 06-04cendental01d99NfYgenderWh1M7iTlaGR5mission SnisFLGpoOsexuMubstaEA2y7B7;rtOse;! O;inG3HlayerO;! 79L;controlGCFelectron mic1RW;storPtO; authority of river F2Uion23G;! cEY9;! O;flG0JhFJF;e44Xigura1K6ormO;ationOerCQZ; mGBDal leadBD0; OiGLP;meditationOnuGPB;! BHU;neptunian44OpBCUsiberian O;orche2W5rD93;m1woO;m6KIrldBWO;!adGU9;!'sA29;lPnO; to bus1ingF7Bli6wrecksFGP; of0ZCer park DSZ;edy of the comFP9icA6X;alga746fic O;cF5JlGRQ;eRiO;ng3FUtional O;aG8Mchinese O;chBVXmA5O; uG5FmarkOr joe8WF;! FUH;eUhTi SkRtQy O;cALZletGQAmOpoD11wolfs2;cgCU6oBOK;atus logico-philosophD46or; andDWOmCCJ;lGJ9th2ZNwolGU6;eomalE8RtenberEVU; Pe elliECBrCGLy O;cD3RulDGJ;adF04cDFI;aGDZzonO;!spGQV; 48ast 9V1b43chigi FG2d3YeiF0Yfu,go,h3Xilet-bound hanako7AFk3Olue6m26n1Do1Bp14qGIKr0Ts0Pt0Iu0Bv09w03x01yO;! sGTDah willcFVFotOs "r" D;aOomi hidey7QE;! O;aWcUdynamic forceBZOfTgr ShiRjzBZOland cruiserQpG3GsPtOuzBZOyF9V;a5S5uESV; eF8DupG;! pCL5;aGT9gh4XWlFIM;eF8AyF9Q;jAD2ort3ZI;amLeliFIUorollaOroGR0;! cGAD; eF86lpGRL;ic mascu4BGoplasmO;a gondGPTosF;erPnO;es v04BsvFOS; Ps of bolO;ogGF3;brGBIh9GWof O;bCKAgGTQhanD27loF8Y;e Oino AH5;j9OQlo;cQhouNQker suleD5DlGRYrOssaint louverGGC; de OetteGD3i7EVmaGGQ;frF80sGC1;an,hO; PsO;cFWHtoneAB5;t581yourAI;alPo Otenham hotspurCWP;iv,w3G4; Ob0UWener7LJiE8H;dramaQeclipseOfertili3O6w9; ofO; theAC;! EHNraGLG;caQhiPliFSTs O;a coin to your witFTWbD19;ba,ro mifu6yuki moriAUV;! 5IS; bGJ0ah,chFZSiWnado VontoTpeFZVqGHEreRtPus,yO;! lanGLW;!oiseO;!shell30M;ntOy devitGAO; 6UHz;! O;fc,iDKLmaple leaCPJpearson GGKrapD6QsD3ZvanD33;aERRrEPW; Oi;amGKJbE2PkG6WspGLC; R-Qaz,herGR0kapฤฑ D9Dl55RoO;graphic prominGQ9logO;ical sorGSYy;down and bottom-up G80lB2J;bFGAchBUVgPhGEAof the O;laFU8poG34;ear challe24Eun; Ofa1naGKJtsGQ8;close for comG0Nold to dieDNN;es0Fg0Ei09sil08yO; Oa h22F;a04b02cuGBDd00fFQBgoZhaYiomGKFjERZkXlVmTpaDJErQsPtO;he landsCMUoEG9;coGJIhalhoDP4iriGELopEOF;anACXevo7IJiEXSoO;bOmo;biNiGKR;eGL4oO;nCB5wbrK;eung chiuOip;-wGGT;h1usDDQ;le,wk;ldwFQKn367;aOunG15;lt2nFTF;eOlaGO9;llFEQnFUD;bA9KwardO;! for bestDDGs;!lEYE; OcCC6;bQco2E8garGHAkPmoDKNsOtennFMW;ervEJStoGER;roGJKukoฤ;asG4PraGAR;a,hGCL; a6G5; 03a02bXer siESBiWmQoOyrF;kazu suDGNrrow OyukiQ2;never DWRx9X1;ie fra63PyO; OinnGNY;cQfuLhilfERJkiGNIlPmoOshC8Gtub8MEwi6AX;rrFN2ttoGR3;a8N3ee2P1;aldFIBho8; lahr5e; Ooy;of QraiderO;! O;ii,rel4XN;caecilia metGQUthe unknown 1C9; zdravkFVSsz schafernCR2to;a0Mb0Jc0Ad09f07g05h01kCURl00moZpVsRtykw0wO;aiGMZePilEZSolfO;!e;lGJRrn0;eQizeGKBker45BmDXHtO;oOuAPX;lBYEpAJN;guGlC72;ettyPidCA1rO;iGNMyGQ9;! O;and the heartbAJGdiGIZ;naF2YrGI9;aEXXe2WO;aQeFDJiddBNCoOulGQ4;llandOop0pp0;!er;nGGRrG9Syd5;rOuiL;av3e5;eFN5lFRHoOrDJ4u3EO;gEV1rd;alEel2TI;lancyPoOruiseGK2;nwKtt2urtenK;! G09'sO;! O;ghost reconQrainbow sixOsplinter A04the E9A;! O;ex901sDH2;! O;breakpFQQwil9R5;ak0ereG8YombadG3ArO;aG9CoO;kGFBokshi0;ckeC0Qnd jerryO;! O;fGJPinGM3;aVelG4Ei poGBLuTyoO;! OpFXR;broadcasting system9VAdecadGNOgQimperiHKmx,revANSsOtG55;kyGE6toOubway sarinD0C;ckE5Zry;hoEO9odfDND;gawa OsARY;ieQFshoguCG8;imura nuclear816mFM8;eeb jimG62o;d Orick FIT;fiF5XguC0ChOkohlheFLBm4MGphDCZruEAY;aOoCPK;berOyn3;koGF8;aRey magui9UTias QleFOYy O;fFQZhuGOPjGNNkebFRXleonardCAUonwuMEregD9FsOtuFWO;eb7PLtepGAC;lรผtFRBme7H4; catastrophAWHcGBV;catch a Pkill a mo2Q3love 7P7pimp a4JNtOyour8GG;ell the0A7hGK4;pEO1t76G;! equivaF9Y;a1Mbe1Jc1Idal lG8Yer1Hf1Eg18juana7RLk17l12m02nWoVpTraSshDAPtOz5รซsG79;anOePYi1o ortAS1us wellGKD; FG4faCiOobF7Ms;cFQWumO;! d2ZW;miFBKna;pOu 70W;er 1O5i heFGN;beGOQ;aRkerPnitDo livramECOto b524y tO;ina's wondDN6oon3UF; OcGL2;beCtailor soldierGOT; OsGDN;aBEQd3KNfElo9Z9majoAPGsinDUOtuFW2weymG0X; 09b08eVoPurO;!iGAD; weFVZthO;y Oรฉe ch2DC;bQdaFLGhuFRIlPmcvD19oOs1MKt553weGLR;lypG01munG5W;aurGMHeaL;atFMDot5R7; VlineQr,s O;higher education1PIsquareO;! FRJ; of Os of worldEZQ;aQhPnational8CZprehFCYstar trFLUthe OwCZR;evolutionary historyB21far fuGBJjames webb3CR;istoric i88ZumanB29;bolition of slavery and serfdG3ZncientEZM;banAEWcRdiF5Denough at 63Uformatting and storage buGLIin QmaEMKof con1IIperson 7W2sPtOvarianceBZLzo6;eGLKr6NB;eGFUigA3Z;auC0XcDBXtCG1;omplexiGI7ryDABuEQG;aGHLukFNA;aFVJbYcVdUferALKhSmRpoGNTrPsOtebGMC;c706tokeG96y2Z6;iGNPoO;bDFUthGHV;athFLUcFHSeaNinFS2;eideE3EoO;rDDWwaGM3;aG90raFPXuEE3;oPurryO;! performaGNA;nwKok;ePlakeDYVuO;cERSrtDA2;rners-lGFXv1; schweEO3aRdPia,lO; lindeG6Ey1D5;a Oe;cobham-heAO1swiD9W; teqK1pA;a sumE6BtGES; notaGC8erQht0M8raO;n petroEUHy O;reF7Ow9;! O;iFX2ki8laFPGshOwA4KzindA2Y;aGJRroG5X;a CD5fanO;i thieD92y O;dar0PLhad73Qt9W5yEV2; AW8ra del fueFBX;-tac-tFADkerC37onderoga-A6R;riDtO;! autonomous 5LSan O;buddEPBpeFU0; PmatE84nO;anme12Qgong sp6MWj4;carreBm57I;aHOe1Si16o0Bq0ArXuQwaites glaci0yPรฉrรจse of lis49Zรญch O;nhแบฅt hแบกDOVquแบฃng ฤ‘แปฉc;laFBFm7BJroGKV;cydidesTgSleRms G52nderQrPs spoke OtmoseDGC;kishibe r6CVzarathu2OH;good8LFingA; bKbolt and li7WFp406sAQ3;! air G8V;gGF1s of hindoFYJ;! 5ZS;aYeeQill0B1oO;ne of Ough the looking-g8T9;b7SAg8T8; Q's FDR-OsoGN1;bodyD6Zd8K3legged crGKXpO;hase electricG21oint field goM;colours9XDdQflavours cornetto9XDgorges7TWk13Dlaws of r3ANmOpercF9wise mEHK;en and a Oile island7Y7;baGI4little3CZ;ays OogCC6;gGL7of theEZP;cOsh1V0;e,iaN;! nordGNA;mUnTrQse who wish meFDYth,uO;ght9TNsandO; day9I9-yard sZG;!a birGB4iOoughbrGHZpeCYK;n oaken8ZBumO;!-based nucleB3K; mCMFg; yorFO8asOpson suY0son reuEUE; O-alexandre dumGMLin mcDGO;a08b07c06desiABOedFI3g05h00ian3AOjZkYleBDMmXneERRpVrUsStPvint9UKwolO;fe,sE;he PuO;chIll;aDQGtankBS0;aOoFD9;d3SVnG31;heGDHobert mal8AQ;aOeterf2CQikECUynF8E;i6rtE;aG4MeBC6iddledGANoBรผGDC;inF6UretsG1A;a6e5MN;aQePoO;bb3mer-dFKF;arNnryFL8;denEDRrO;dy,rF;iGDOomGEX;arly7oGCUr6BM;angaESEeCTVrodie-sangGBV;nEYCqu519;a07baut cour6BYe06n02rRs O;boyGLMisOtoo shall FCU; OlandE55;eG1Wspinal tEL9t0K4us;dTtOuvananthap1IR;eenPy O;seconds6YJy9H9; Pth O;a8R2doG8D;colo4NPlCF6; P-O;pe8NXw8IA;battle of panipG79c8IHeDQ5genPno5REplague p6NRr8ICservileFFDwO;ay,orGK7;d0e9H6; lizzyFEQgQkO; CYKpadO;! C4;ivG5Zs fallGLL;l fellowFXKrryCNM;go Omi6;alcรขnAHXsFK7; 0Cer0Air 09l08mFni esw9o00rQsPta,y O;both die at0JJliGAJmight beZCshall not grow oGJX;aG6JeDsaloENW;aWeUmOopoGJC;al QiEUGoO; fisher scientE8Ibaric9Z1coup7electric Onuclear9Z1;c72OefDQ1g7GT;conductiPeO;xp7T4;on,viGEQ; will be6QN's something about mOm4sa5XK;aLiriGHY;nGCRpeut7X2vaGJ3; UbroF1ScE54doRfanis gekGKZloFU1rOsEZC;etical pE5Py of O;eBXf9MCmOr85O;iGH0ultiple intelligeGJX;rOsi1VS; Oe ro9FFicFPI;herzl,moCXF;jFJTr1UMv2wBPK;eGD0onious moFKE;fi98Vsatanic majesties reqGFA;aOpugal virkapadG5H;n adhigaaram ond7K8thon bunma824;aE7bD0cBUdAWeAGf9Sg8Xh88i7Mj7Fk73l69m5An4Ro4Jp3Tqu3Qr36s1Ut12u0Vv0NwTxSyOzomDJ3;ardbES9ePoung O;and the restC1Bindiana jonesEALpoG8St2OT;ar Ollow wallpC2A;of magical tA4Hwithout a santa c6D6; 1LH-fEARx;a08b,e06h01iXoOrong misF6I;lf among Dman VnderUrldO; P's O;biD32finest assassin gets reincarnated in another world as an aristocrG61;atFE4endsQfactB42is not9G8of the O;mOwG5G;arF6S; withFBS; y7V1ful wizard of A9H;in the house across the street from the girl in the2GOwho fell toE3H;ck4Fg90Yld QndOre,tFKYzarding world8Q4; Os of 8OP;in the wi7EErAT4;b9HPthornberrFCRwild GGU;eel GJYiOoFDA;stQteO; Ost kids u'042;l9N9man's buFQPstrDSU;le707;aOdding G21ekndFD5instei1CDll-tempered cla9AYst AOI;l3V6ther7I2;chowskFlUnderingE35r TsSterboyCFOy O;of PwO;ay DTNe weB;kGGMthe O;househAV3wiGFW;hington44YtT6;b5FXof the3Pwith g9XA;l street jCDZtO; disne6XEoN;aReQiPoO;ice DQKy4SX;car of diA3Xper FYUralA5P;lvet2R0nomC67rG8S;lhallI0mpire PnO;guardG14quisDPV;cE9IdiO;aGAOes in no GJC;ltimate TmbrellaSnPpD2DsO;os,ual 6BP;bearable Pcanny CL1dOforgivGF1;ertCJ4oi8;lightness of bB1Fweight of massiveF3O; a5AWs of cherBPJ;fFP5wF1Q;a0De08h01imeZoVrTuQwO;ilightBUUo O;jFAQpop3;b3doGH6rO;nOtl3; of the sAMNer3V;ans45Ueachery of imFTGiMoOuma7Q;op,uFVE;morrowFCRnight showPrD6werO; of the s98Uing87V;! starring jO;immy faEHRohnny caFXH; mDXIlessFA5sO;! E9Z;iQree PundO;erEDY;musketAATstoog5DZteBE0;ck70nPrO;dGE4ty-fathom 8MQ; man goeENTg Ok0ni8;about pGFLfrom17P;ll-taleRmpQnPrminaOstament of sister newAAAxas chain sawD6F;l,tGF8;derl8Z0oGGM;eGFBtGBV; hCND;le of Oming of the shrF58tami41Px colleG55;genFJDthe bamboo cuEJJ;a0Uc0Se0Mh0Hi0Bli0Am08now7TVo03p01tRuPwO;eFAOord of030;btle art of not giving a fuJn also12XpO;eriorF69r9XX;aUiToRrO;aPeet profiGE2oO;k3ngest sage with the weakest cF3W;ightGHCngDV4;ne Oog3rmlight arCXD;quA8NrGH7;g,ng;nPrOtion nightclub GDB;-spangled baCZ9li8ryC7C;d,ley parGDR;aOe6Longebob squarepantsGFOy who dumpeC91;nish p9UXrk04M;cial Rng of achiFK2pr3BEuO;nd OvenirGDY;and theCP6of O;mF33silGFG;d1NPnEON;ashing puOithsFB2urCEJ;mpENN;m shady 35Sts;lRmPsters of m5IKxO; million dollarGD5th sEGD;psons3HsO;! reASD;entFW1marO;ilEWP;aQiPoOrink nextBRF;o5PTp around the coFOI;eGG6p that died 1X4;dowOnnaraE7Jpe 9BGrd,w129;! 7H9s;aScret QeEZWlfish ge6ries fiB8FttDUCvenOx lives of college7VX; Oth 7CB;basic pRBhusbands of evelyn huF5N;d3DTgaFO3hF5Klife of A9Jof O;kESSnimh; 2XLrcDNP;arlet OhoolG1Worpi6MUreGE8;leEICpimpernI;ga of tanya the D6Gint's magic power is omnipoEKIlRnPrah jane3MFtanic Oxon2B;teCX2ve2IK;dOta clBFF;!lGHJ;isbury poisonGDYvaB1N;a06eXhythmC7ZiToQuO;mble in the juD8PnO;aF8AdoGE5;ad PckOlling stonDE0mance of luGDSne2CoGCSyal tenenbauGF9;ford7Fy horror p3D;not t0HVto el C82;ghteous Qme of the ancient marEIVsPte ofO; spFTI;e and fall of ziggy stardust and the spiders fromB1Zing of the shieldA4V;brDN7gem7YT;al Rd Pign of the supeF3Imains of theETApair 84KscuersO;! down uF9E;sOturt7;ea diving re78JlAGO;ghostb35RhousewivesO;! O;of Oultimate girls 82A;atlFUHbeverly hFZ9chesCD0m6W8new Oorange c371potomEEYsalt l0PG;je69PyCPF;nG4Zpe of the sabineB0Bv5;aPeen isF7PiO;ck brown fox jumps over the lazyFRAntessential quintup275;lity of nationFMGrrym5;a0Be08h07i04la02m's d45QoXrQtlCCCuO;rOssycat7QS;ge,suit of happyGFC;acGB6etTiQoO;claiEQ1diFPFmised n4T5tOu1EH;ocols of the elders of zi2รฉgรฉ;nceOsF3K; 9BYss O;and594swG4M;enESLty reckBWY;gu3interA2kรฉmo18MliRssession of hannahGEGwerO; of Opuff7UM;nGDZtO;heFQV;cCW7tical1T5;ce beyond theOneGBTtENUyboy7LG; pG36;aFNIcPlOnk p66Uper at the gates of 8QKrate bK;grim's progFQWlars5JY;kwick 2A8ture of dorian A3J;antom of the22Ril silver64oenix โ€“ s kCBS;anutPmbrokeshire 79SntDR0rsOt girl of sakurasF7F;istence of CHEonal history of david copAAP; butter215sGDG;le blue eDKCndemicY5rOssion of the FYKtrick sta2Q;allItridgF77;a,bsoleteGB5ffUld man and09NmeTnSrvFASsmDK7ther RutOversGEXwlGE4;erPfERHlaO;st0OTw josey2VP; w6VU;guF8Aside of11HtA97w0A7;es who walk away from om8YTi2;gaGAZn;-BCCspFS5;a03eYflWiToQutcrackerO;! and the O;four r8DImousELL;rthPteAZ5vembO;erGAT; ECAm1;c5G4ghtOnth FVA; Omare beforeGFA;gwen stacy77FhGDPof; tO;odK;ighbourGFAon dFDUverRw Oxt karateD0D;batman3KDpoG3ErF3JscDURyorkO; timesOer;! best seller ANO;endingGE7s;ked Pme of the OnFAA;roGDHwiGB6;diG1NgGEE;a03e01iZoVuQyO;sterious Oth of sisy7F2;affair at stFJUisG80;mmy9A0nsEMPppetQrderOsicGAB; of roger acAFIbotO; diaG63; Os;christmas cGE3shGCN;dAKJnPody bluDBRrOst d39CtherlandETVuntain goaGAJ;e the mEX5rรญg1tal i9K;keOsters are due on maple GB0umentsGCU;esF7Wy's pG3P;ckey mouseCAJdnight Oghty c5OZllion dollar homeFQVndy8Usfit of demon king569z;clDBDgospIsFDD;g,ntaAN5rchant of ve2IVtamorphEU4yerowitzO; sG5S;c05g03llorca4ZnYp of tiny perfectGBCrTsStrixOuritaF9D;! O;awaBMMonG1PreO;l4KSs3URvO;isCVWolAWO;k of zorG2Pque of the redEAXter and marga25B;bleGDTriage of figaG2OsQvelOy tyler moor7K;eOous misadventures of flap04Ws;tt3; vFCIhall O;mathers 329tuckP4; Qchurian candi698daloFXBy O;adventures of winnie the Osaints of newaGA6;poFUB;fromDXFin the high F38who O;killed don q9MXshot liberty v6WF;ic Onificent sBGW;f2Y5moDGD;hiEGUk; 9MOa0Ae04iWoQuO;cyOm6EX; ASJโ€“desi comedy 54D;bG3Tckdown se7I4nRrd of the09Kst QtG7Rud housePvO;e 85Din' spoonfEC4;! mGBJ;boF6Id434syFDSvC87;elAUEg O;and winding 8GBballG9NcaCdaG9R;brary of bC4Fes of locke lamoGfe TmSon Rttle PvO;es of DK3ing daylE69;mOprGCY;atch CODer3E0;g6X0ki8sleeps6J8;ehouse golF5Qits to1I4;aquatic with steve zissF55of O;david AWNpAO3;agueSft hand of75BgOnnon7Fsser key o0F4;end of Po O;batmanGB4gFV5mGB5;h6WEkEIMsleepy ho93Dthe blueFRUvox 9WRzO;elGBJorG1Q;! of extraordinary gentl0I9;mb lies down on broaDEInd before GDAst PteOwrence welk ARY; late show with james coFK2ness of the 53R;boy scoE7HdrDOGe7F8leRof QpPsamCU3wiO;sh,tch CL0;ictur6G;the mohFODusG98;gi2tter from your4VW;aYiOominsky GBY;d larCLQllVnPssing5L5tO;e 8WO;gOksF6B; P's Okiller chronF1Y;affF5Jm1s85P;a61Gin ye92Xof O;fightersOquDPJstateE1F;! xv;eGAZing of a sacrO;ed 0PY;pil sharm53Wrate kidDMQshmir3B;aTeRim henso15AoQuO;mp,ngleO;! AWI;e rogan2W7shua G0U;fferACDopardy FS0rry springeOsus rA4MtACD;r ARA;ckbox party CHQm,zz FUS;c07d06m05nWpcress 6E8rSslPtO; croEIYalian63;and Oe2J;of Owith bear gDAY;doctor moD2Igiant insFZ1;isFURonPregularO; at mag4D9s; Oy14P;gEMYsheF7M;betweeD8UcVdepenBLFfUheritance3N5k spoG86tPvisible O;gG6Ym1;eOouchaFOQ;lligenQrO;nOprFYF;atioB38shFOG;ce ofC67t iELG;ernal nFB9inity gauntlG8K;al,rediFOK;aginarium of doctor p3R1itXRportance of being ear90B;aten deities know only23MiGCIol6DK;e OkabFMW;age adventures of buckDA6roG7X;a04e02iZoSuO;dsoDIBmQnOrt D2I;chback of notre-OgZMt for red octob0;daGBW;!anFNN;bbG8AlRme depGCAneymooD8Cok up DP3rus hereEXYuOwl0B;nd of the bask72se O;in fata mor6WVof the O;deG7Orising9W4;idKlPocaustO;! in23C;i3owG9Vywood re3YJ;dden PeropFMSn98Lstory of the decline and fall of the8NAtO;c1SBman6V0;dungeon only i can eF8OwiFU7;iG9OrO;o with a thousand f2WSshe6PC;gFZXlTmpD15nQrdy D9QtPunting of O;bly3P7hillG9X;eful eG8IiB43;dOgov0C; 8PEmaidO;'G8Pen;fOloween88K; of G7R;a0Denius prince's guide to raising a nation out of de07Ohost and molly0Ci0Ala09o02rQuO;ardianOess wF6Flag archipeE5Ynk;!s of the galaxy hOY;aWeatPinnOudFTG;ingG6N; Pest O;demon lord is reborn as a typical no5SMinEJHshoEGE;bQdiPgatsG6BhuFUVindian kit8MZk0OHmouse dOnFMSpottery throw 4KDwave off kan65S;etecFRA;ctFUV;eAX5ritish O;bake8HNsewing4L;duaHham nortoPnd Opes ofDVMss8EX;budapest73EtoFRD;n APJ;-go8CRdRes wrong APIlden QoO;d Oni3;dino6IUfG7Vli9pFU7wiGAN;gCFSpaFU6; of PfathO;erDKN;hD04smallG7K;morous imperial concuCMAss735;ftFPJrl Ov0;befoBin the yellow ju98Mwith the dragon tattFDF; mcgG2G;mQng carries a corpse up a DCWrden of PteO; 7I0way puBTQ;earthly delE33sinD70wFZF;bAe awardO; for game 7HXs;a04e02iYlWoRrOull monG45;ePozen ALCuit of O;eBSWgrisaA;ddie mercury tributeEYPewheelin' bob d60Onch dispE7Esh prince of bel-aG6N;oBBRrQuOx and the hALA;nOr agreFXU;d0tainG65;biddenE6Iever p0MJgotten O;baB0SciG3X;iOorida4F;ght attenEB7nt7S6;f15KgFG4nQrOsher FVEve loveFKJ;e8BBst O;great train rob31XlFZ5p0MDwivesC60;al de8EMg0;ar Oderalist 24DllowshipA7N;iG9Istreet9KE;belE56cEPLirly oddp3MLlTmPraway palad4tOult in ourCESvouV8; AC3e of the furAVW;e,ilO;iaPy O;iER0m1sF2J;r of 98K;con and the winter 0UTl of the house of uEPW;cono7ZXdge of seven5L8ight hun37Pl00mWnSpoch t7JZqualBSric andr30vPxoOye95E;dDrcism of emily EGZ;erlPil O;deG5Lwi4MB;y DG1;dOglish FTVola holmes92Utire history ofF17; of OlessDBI;e2RLhistory and the laO;stG50;ineQojiG77pO;eror's new Oire sPR;clo0QCgrooFYR;m AO2nce in shadG7C;der scrollsPectrical life of louis 04Ylen degenereO;s AO0;! CRX;a0Ae02iZoVrQuO;ellC9AkeOmE4Ongeon of black F00rrEKS; of death and his 39Ns of hazFT8;agon ReO;am of the fisherman29sOw care0U;denOs; fDZH;prG8Fre73I;me at america'Q5oOwnward spirM;bi0J7rO; into AH2s O;diG14of8MC;ary of a you14Dck van dyk28nnerG2Nrty doz5sposseCBYvO;ergenOisio4ME;t EBI;aScReQfe1EBpartG48scenPvilO; jB5D'sG5W;d3LSt;pG79r CGL;amA3Vline ofG5J;d Pth of O;stA05the au14Y;poG83sFKK; vinci EBSily WkoG95rSve clark 207wn of eRy O;afterPof the 91Uthe O;earth stood stiCmusic70T;! 973;verytCO2;jeeling62Ok O;c0IDfoEU7knight Opictures antFHLs8J3;rOtD52;etDB5is3;bD63life of the immortal FTPsOtelegCSMwiB;hG6Bto53C; p8R5a0Jh0Bl08oYrTuOw;ckoo's cRltQrO;eF1Lious incident of the dog in the night-G8ArentF25se of O;la llo4RMoak DWT;!ure of critiqu0G3;alG0W;aReation of adG57iterion 7K0oQucD6JyO;iB0TstO;al COU;oFX2wnedCEU;mFIOnberFZE;ca-col98XlUmmunSnQok of castD85rG66sbPunOwsFQR;s4VMt of monte6FO;y AMN;juringOneG63;! uFSJ;arFWVistO; manifesFPP;lege dropoE23oO;r Our and the shaFW4;of7YZpuFHK;aFZFeveland AMFoO;s0veO;hitch 48Irfield0JR;aUeTiSrOurch of jesus christ of latter-dayBXM;istmas QonicO;!les of O;na7G0ridEHG;cDXPpF3T;cFXMeftE52naFR7;mical DDXstnutG30;insmoEQ0nge-FP9;bWll of VnUptain goes down with the FJPrRsPtO; rDA4cher in the rDC2;agraC50e Ok of amontillaFEBtle of caglio8DAual vacC1B;files of lord el-mello2XQstudy of van92E;dPlyleFP2ol burnet04pOs;enEF7; C92igaN;nonba8AFterbu7A4;cthulDEOt8KP;in i2JOl4MQ;a0Ne0Fi08lZoSrPuOyrFW5;cket AFSreau of magicalG41tterfly DC3;ad3S8eakfa242idge on the river kwFVUoO;kenwood90Cnx,thers Own C2B;jFZLkaramazF5P;bSdy 7UVld Rnfire of the vaAKVoOriEXRss FS5;k OndockBWY;of Ot6NY;bCGWeFXUfive02OhC9A;and the b4DZtyFV8; newharO's burgersG4M;t ALJ;aRiQueO; Os DD8;danuE8Smarb7;ng FJGp,tz;ckOir witch10; OstoneFOF;cr59CkPpO;aDQAho6;eEZDlCO0;g Qllion dollar E9Qrth of PshopO;'s EPM;a B4HvenD;bQfat quiz 7E0lePreG2GsO;hoG6RiJtG2W;ap,boEH9;ang DOXoDAT;aRll Qst Ptty whitOverly hillbA5Mwitchin' 4FV;e AL1;damn9HRexotic marigold6YUfifa men's FLWyears of o9YU;cBYEj9;ch bQtlesOutifu7JA;! FYD' O;christmasDZOrooftopEUMsecond albFR4;oysEZIum;bSh468llad of RnPtO;man who la94Ttle at lake changj4;gl3kO; jDUR;buster sc97Pjohn and 6YPsongbirds and snEXQ;adoFWYylonO; bFXW;-EZZbyG51ccidental biCORd05ge of 04l02m00nTquatope on white DBCrQsOtD6Lutopsy of jane dESS;h3sOteriskEZTylFQU;assination of jesse james by the coward robert EW2ocE9H;isto61QtO; of Os;computer9VCs9KRw9;archTcient magus' bENAdQgry birdsG3JimO;aOeG1A;ls,trFM3;rOy griffith AKE;ewsOomeda stFQR; sCKW;ist cookAPGy;azing OerFGUityville43Y;m3PPraG4YsETMworld of gumF8E;an parsonsUlO;-kn95Nman brothers AGZ;adaFSTinnocG35;amRdamCFMjustmentCVIventures of O;baron munc103ozzie and harriG1Wpinoc1KSroPtO;iBN5om sa9MP;bin G5Kcky and bullwinkle and82Y; p6IF;bo mbeFNZddeus676gom7EiXlUm luang cave rescFTSnRppG1ArDPRtO; P's OcheE3R;my49Iso rEX4;mitchell and webb 3A0time i got reincarnated as a sliG5Avegan2V3which survBYU;aPdiwe BU4kOos; you for being a fB72sgiELA;sis7KOtFX1wat suengchitthaw2;aOes of mil8QVido7UYรญa;ivG18mDssoO;cDPCphFPU; Ol0V0;baG25c5ZDlaFDOpublic broadcaOscE0X;stiQS;a2Lc2Cd22e1Yhr1Xjasswi prakaFWNkk5l1Om1Jn16o15ppan28Rq14r0Ds04tZuton4DAxPyOรณfimo lรณpFXY;a4VOonah paBU1; VasRtO; PileO;! iDW7;edAMDm65Z;! O;boD9Vhold 'EWZiPlonghor3ACrO;ang4I1eBNB;nstrumG0B;aFE3riOwaEG6;c6S2tt0; 6GLanDrOsuya no71YtigoniASR;aPisO;! D9J;grammFW6hOpG4R;e9FDydrocannabinG3Y;co,la TsQtO; O-drivenFCXic7osF3Q;criCCFdrive unlimited solar cD80of english as a foreigEMO; of the d'urbPaCX2eO;lEL7raFFV;erviF6J;autopilG4TcPmodel O;s,x,y;oFHBybertBK9;a0De09f,i 08m03pe6rPtOuo6QB;iBGAulEAK;aZeXiTorSyO; O's chocolateCWG-9RT;bBLGcA4DgPjG25kaFMAmelF50niC9Up0SArOsDRYwC31;iE9NossF2G;illiG14leFMJoodATA; in2B5iFUQ; Qer,toriO;al OesB6D;disputes in the south chinaFIGevolutionB6C;iCOVschiavoBFT;ll oBQUnce O;hoC3Pma9AT;cOpFIZrA;eG2BottaB65;iOs of endearFDY;naOte;l Ptor O;genisEWHsal9GC;high altitude areaCJ3luciAMBvEBA;gaFWWhBLQpoFV5;nce Psa O;of รกviG3ApaEQCte8wrG0P;baF8WcrC2ZhiCmckDFKrattEQZstaE9PtO;ao,rent d'arFYT; pA36nce FLYtoFVW;uiG36;chew F9Zdoro obiang nguema mbasoERTtihu1DM; Z-Yacious9JDcentWerifeVgUnesseeSoRsPtOzing norgK;acle eroE68h 8WN;hin nasuA59orO;! pBK0flG1B;chtitl1r;! O;tiCM5wiECY;riFTXu,w9;! airportFT5;! O;gF2Bqq,vEOY;coEQVdRV;commandmFYPlost trib3yearsVT;pOuera moCVZ;eQleOo,uG; Oos;gr174hill FD2inDB4mE62of artemFunEKX;h,rate6F9; avFCWan6O2eRlQma9UGnFZEoPugu O;cAUJlaFBK;meB; me yourFYPtaleEG1urideCUQy savalG2Z;communica3FOgFWHoFBZpRtQvisionO;! O;prDR4shG0Q;e8PIo2ubD1B;atFWEhone number1C5;an,ik-i-taliban pa93J; 5BOnOrasil dangG0VtoEGV; PaO; BY5ge mutant ninja turtles8DG;dAMKpFAAtiCLGwoF7Y; Qdy Oros adhanom ghebreyC13;bOpenderg4FH;e9oy,ridgewERU;aF9MbTcSdaFV1hRkQlPmOnuEPZraiFUKstevens anchorag28LtuF9I;cgiDOMonDQ8;asF0GeFKY;aA1LeBK6nFZH;a25UuCSJ;a8HZh6T6rEUM;r37ZunFLF;hOumsEIW;laFYHnO;icSoO;!cDMGlogO;ical s788yO;! O;coESWreadinessCMJ;al OolFYT;anEGMdeYHuniversity of8B4; Tgan E6Qk,l,mRpot dom5FSrOsing master takagi06E; along the dotteA69s O;for f7CVin rain m623of theO; sG1FmF; Ofight t86HspeEYAvi5SKwoFXZ;l959ninEUCseG20tre3;partyDR5withCUV;hรฉky karF81l Op congestionF7P;c77YteDC1;a39b32c2Xda2We2Ug2Th2Ri2Jj2Hk24l1Vm1Hn12o10p0Xr0Ms0Kt07u06w03x00yOz3PYรญF9E; Y-k,e9XAloOsom D40;rOur p8WO; O'7SC;co7fFKMhTjenkins 1R5kiSlauC4Wmoms5rRsOto8WB;chAFNeFSZh2EOwiftO;! O's reputation stadium E6Z;aFECmastersEEYsiBYC;aEX3usEZF;nnEtsFQ1;aOeinF37;ckERMnFVJwE7E;bridgeFRDc3Z7; hET9at9XOiPonomOus baccaG1X;ic 836y; FWBcab2AT;awa onPhFYWny O;cypFCCkita5; moEFJ;! ceENWri6;aVeSiRmadFQCo5G2suPtooOumWHyanaDDL;! yESU;hisa3KOki fuji5W5roO; yamashiG1N; gabriFAQana mas6J4; Pโ€“labiancO;a 6V2;doCMRm6MR; PrsO;!t1;consultancyEMKfaESJgFIPmoCEXsO;ky,oNtO;arbEFOeI;h17JmaniaOuku hat4ZI;!n9SL;aUdiTek el mousFIHget SiRja turun5oPraBtaOy1JLz1;n,r25I;!n e5CEtO;! cardBU8;m bEMOq lamptE;cEJDfECJ;gDKAs; PnOxacFLI; killFXMtuG09;neEZKreFY4sO;tEXButEMZ; air portugMas,iO;ocaOr;! bEFO;! ObF8FiFR3;ruspoFRAte cCFX; C84a00gWhaF1DiVjir2F7kUmay bhFM4nRtPya rOzBIK;eB46obETF;alFL7rOล;a,icAUO;erOin; OiH;bu8YWsCXY; m1ie,sB2Jลb2;a raymDJAshk bagcFNU; QeOi0lFVH;nt,rineO;! dFX2;dDBTpi8soo F6YwF7H; Oya be2JB;mongeFEAr795;aYeXiUlyn tomiG0GmRpPsin Ozin ou3K6;e5BKgreEW6;a bay OeB;buccan9S0lD7S;anESTy O;a8A2faye OwynF17;bBYWm0R7; oldham ashc84ZlOm bin hamad6XS; Os;laF8Cna8WOrCPHscDVL; imB38ra m4JS;goB77le,m shudBBInnaFPVrO;a OiFVU;doFRBtaAWL;eSiQkPlOmFFBulah rCMF;iFHZow,ulah bankFVG; taBS7ing hea2DG;a Ob1esin j3WJ;a0YIbalsFWHsBVX; of the nine tailFUSs O;from the1HWof O;arObersB4WluminELTphantFKIsymphE6Pthe a3TAvespB4WzestirA;c9E5iFXV;aXePlamakIWo233t F70uO;mi mina88Qya 6WK; U-two7YPfusaThiRichi n5BDru satFFHshiO; O's EOE;kOobaFZP;anes6M0iF6R;ro tomiOto koO;yaELE; kuCIV;me toDQToEQSthFKT;hiro sakCFWnori niPshi mO;iiF0Qu6ST;shiA0U; 2R3ikO;iFABs; Uga,ka wai3XApSsPwanO;!ese7J0;hPsa fO;armiEVQ;o otome fairy FYPล;ei,ing O;heavenlyDV1rEDV;cFMEtuivaFGD;ar 9RFiO;ni,r raj bhEKMti; heu0alo8HH;joOkw68Iye2; B37nB36;lPOmichi kuri09D;hQitDko 49MoPtical O;r3FPsCGK;! F0Qma fd;i,yO;cardAon; C66byTernac7leOula raFG1; Pau EJ9tO; cED1op r3FJ;moD0Oof Ote8NK;handgun and rifle cartOkeyboard shortcuFU4;riCW3; cFJY's 9B3;psee panCN5rO;ak mehta ka ooltah chashmFODe zameen p9;aGmobileOpa4s8ZQ;! D;a02Ebs 02DcZXd 9OFeUOhQ9iMNjMMkM1lL8mKPnK6oFXpDJqD8rD4sCXt6Du1Nv1Kw0UySzRรกmi X4รฃo QรฉOรธren kierk3HUรผper lEUB;amusA0Fbastien O;haFP6loDES;pauFPGtomรฉ and prรญnciFMA;a,czec4;bi1d0Je0Ify,k0Hl0Bm04nWphE1GrTstemO; PanDUOd,s O;developmentISeFAJthDGE;oOpreEI1s927;f On a 16Y;a 473linear8T7;acusDQRiaO;!c F6Cn O;cE5OdemocraticDAF;apsUcSdEBQeRgman rhFPKtO;ax,hO;-pF5BesOwaFMY;iz0;cd4ZQsE71;hronOopaFT9reECG;iE54ousBUW;e,id;bRmetricFDQpO;athPhony ofO; the seFXI;e1Q6y for9P3;ioOolic 5A1;neseOsF; l4JE;lSvO;ester stallo9M9ia O;hoeFNAkriPplaFFCsiO;dnE;stI;ab7o2F8;esโ€“picot 77GkuF4P; raa narasimha1L9d kirDJD; bED9ney O;aFKYgreenFTEharbour CXSnew year'sFGCoRpQsPtO;huEPOo the mF8Y;ixeFV3uper BNWweEPB;enES8olD6Y;lympic park tennis6YGperaFVD;a09e00iSoO;osie kurFPHrdOt ALE;! O;aOof3ME;nd sorceLrt onlineEYB;gF5WnUssQtOzz beaFPD;ched-modOzerl0MN;e power su2TS; O-system7TZ;armOfra7OTg6G2international airCAWmark6SS;edD9By O;kC41m1;d2gEHS;ating9LXdQeOyn forkbEHZ;ney3Qt O;but psEEThome alaD2Hm93potaFEA;enQish O;aOemFHUhouse mEX7k4FRlaF51social dem2D1;irDSRlDSCrmBJV;! O;dOnaEQ8;emoc1S2u5IQ;bAchh bharat DAVdlinCRMeBVLhili F4Vmi vivek1PCnQrPstikaOt;! CYL;oES1thmoreEDW;! 718sFQB; werder br013alCQGeO;nOtlana alliluCKG; boB3I-bertil tauDY3goolFTV; bing9AHb3Wc3Sd3Pe3Mf3Kg3EharFDWi36joy gF0Tk34l2Xm2Pn29p0Yr0GsXtton WvarnabhumiFJZzO;anSi quatFKFuPy O;amis92JmiFN6paCN2;kOme no tojimaFS5;a na3R3i O;jimER8swiE0Nvi9SL; EYPnO;a5YJe O;cC5DpleshEX8soE5MveESR;foFLShEYN;aVhUie TpRsFVDtainabOurBV4;iDD0le O;developmentOenCA7;! goaFTR;ended 6QKiO;cious pBYOrA;deFFFesEZKmcaEQMw2II;a9MIi,mitEHX;!nO; PnOoo-no-mikoFDD;a h2A8e 1SP;atE1EbDLGdUflanAC4goD18hRlQolPsOwoDZR;a44FontF0Uu8UN;iv0s5;ucEUQynFJW;aPuntington gilbertO; dE3Z;rris0PUyBV4;ey,o5MH;a04bhi chandFGRfZgXiWj5WTnaFVArUstrรถmEXOtr,vOya;een4UAivO;al RorO;m1sO; of theOhip ABK; flEJU;fiFQRgaFV4hoC7CmoEIT;eOo6E1;aEEOnder 611y;naFV1yaFOK;eOical3LF;on gener6ZZry;acPsO;haFQYide condominiumCN2;eOtaFEO; BT0-O;mount 9J4tF0K;jFN3nneBKTt;erVpRrO;eme Oiya pathER3;court of OleaderE2V;iF2UruER6tF3G;ly PortO; your local gunfF0M-vectorD9B;and11YchainO;! DSJ; 07bFQHc04g03hZmSnQpF9Ns8R7t4DDvO;iOol0OT;sed 9K6;aturalOoETF;! fF7U;!aO;nQrPssive Ox01M;black 76YgETH;ine spitFPLkFQR;! O;iOrCWY;i,n FPV;eroPumanO; str7TO;! O;fiFPSmFRV;iaC8OraFT5;apacABLentenaFD8haCO3oOrFK4;mE8SnOpa de espa9UF;d8O6ti8NO;bowl ScrFK1dave osbCP9g2OTheavy-lift launchC0Fju970leagueA94mPnintendo en25BsO;e8VTiz9DU;arioOetE8T;! O;gE4SkaFU5oFR5pFNLs3WWwFSK;iEEHlXvi,xO;iF35lVvUxO;!iYvWxO;!iXvO;!iO;!iO;!iO;! halftime showE70;!iEE9;!iRvP;iQvO;!iO;!iF2U;!iF2Tv,x; ZdVflower farmers90Wg ka8iTjoSk1TDlFQJmi,nQsO;etOhine skyway CU7;! D3H;iFI8y O;deFSRkauLXl99SozeCsuljFTW; AXYng9GO;dhi004el83Ml Ot4JY;gavask9vaEWI;aOiMown A3M;nce PrOy in the park withABO; pi3B0baN;fCL1kFQP;bPdF40gym C8WmicrosF8DtOyat-s5;eBKLzu;eOoCY5;ar,ltED3; of norm5Y2aUerCOSiTmOo;aFOPer Oit F31;glF79oQpDL5sPwaO;lk0rs;olsFNS;f C7KlE60;re ueBNLtro djojohadikusuE4U;c,tG;aweFJLeiman the magnifiFCKfurTlStanO; Qate of O;rFDMzanO;zib9;batheLkรถs5;a,i,y sull51B;! d237icFQ5;arF07hC19i waterhFR3jAX6umarO;!a kurFAC; dD4BcidOkCUJ;al TeO;! OboEL8;by Qin5YHmC37of OpiCs9YC;amandaOjadi45Wkurt7OK; toDGC;han5VHjumping from heFPG;id1KItend18P;aOeASKoroA2J;b1Z3rO; Oca6;bPray O;l4NZroDWK;eFOMoCX9;fOiFITjan5TZ;oBKTragETI; Pt,z cO;anMrBOO;ann niCZNl9QBpBBK;anDLZden iPetenFL6ha murFLRokuO;! solving5QJ;m7BZnfant deathFBM;cPharit bhakFFYker punch D17rO;a755oFQF;e3X0uO;bDlentBA8;-saharanE0Aa01com00hasZlime8EJmaVnUprime mortg5P7rahmanyan chandrasekh9sPtOurb2VVwoof0;iFBOropiDYU;etRidERUtO;aPitutionO; ciBIR;ck,nceFFE;! sumCBN;auDUFetDYI;cBVGrineO;! Ps inO; the united states7HA;communicationsAFSsAWU; 5IJh CSD;andanteC1UpactAA0;ruOtomic pEGD;! O;ejAX1foreFHCimpreESUle6ACoD19t84Jw6TZ; 65a46e1Ri1Kjepan1G0o11r00uPx F1EyOรฉphane peterhaFIL;giomeduF8Zx;art WcFDLdRn098rOtt63CxnFNQyvesantA93;gPmO;abtei3MAgeschรผtzCKA;e2illDF8;entRioO; Oc8BB;biFNCchiE8RdOghibFI0mFNGtAMU;e5rD2B; 6YK's t-AU5;attEHZb2H8cOdaC54maDWRsut4Z1t99R;raEN9;a09e00iUoRucturPyOzyENW;chDKTk0;aEAKeO; DA8d9GE;ke,mPng O;and weak tyB7Pgirl bong-1J9i7GT; thurC6Zae;ctly SkQng PpO;chFCItF84;iBW0thD99;eOing vi6T0; the5WDbAKF;ballF60come danD5Q;amUetQisand CVKptococcOssโ€“strainBIO;al phary31GusO;! pyog8LJ; OsAZ2;dance girlsEWHfighterOwomanEWH;! O;iEZRv; of5PXing OlaDVB;mCE4teBHW;bismDdivaEZTiYngeUsAWQtQussโ€“howe genera9BTva,wOy 2G3; m1berryO;! field5II;egOford-upon-av2ton oakB9M;ic Oy 0OQ;bombOdefenseCL2;er,ing2SI; Qr O;in a strangOthFN2;e FJA;case of dr jekyll and mr 7O3fBUO;ght QtO; of Os timC5M;gibr75AmageBWM;edF89outta comET3;at,c01iEYCke00ll5mach AASnTpwat,rOut,weCFFya;age E8TmRyO; of ObBUItFIK;sea9PLyO;anxi C6KouCZA; 1FAing of the bastEKYy danAWRzy;eOy brook DIT; PhC4Lman douglas h1M2wall O;jERXr26B;aF7Zcold steveQoDKBsoF66templO;e piO;loFLI; auADL;-on-tEDTs' CP4;hasticQkO; Oard chDKWholm6IJx;aitken wa9JIexD5JfooERImarketEVNph69H;! O;gradient d7W3pF65;ckyTeg l4PHffSll RmuB7UngQpe miocFPZrlingO; O's approxiF3H;eE3SmoFOF; FHGrK;gaFPCsE43; littleOneFOC; finFI2;a1We1Sf1Pg1Oll1Hm 8YYn1Gp0Sr0Ntson5Z7vPwart Oyr aCMG;copeFIDlFH3;eRiO;a,e Pn O;joD42sEY3;nCM8ray0CXwondEID; W-o,nO; Osโ€“johnsF8O;aTbDEUcSdonzDP3gRkQlBM3moffFARoECKpi7EBsPtEUBuF9MvOwiES9yeFOH;an zACI;e4LLoderAWSpie3AHtDFX;nFM0ruAZG;erCJ8uDW1;auEEAroCX9;daFN6veL;a06b02c00ditEXDeZgYhXiC9QjoDTPkWlVmQnaFGHoedekeFKVpBLXreEIEsPuDXWvFDJwOyDW9zaD3R;inEVMoz88TyF78;arkiDVFpurEUD;aQcPillO;er A05;naFL0qEKT;dd5rO;iENXtAVO;i34MukaFAH;azFGGeFHSiEMElov3;a9ONufFG4;leFL3u0V8;ar7iESF;aC16h5ooO;g1k;aQiPlF9AroALMuO;rNsceFGG;ko,ng;cksEHBlEB1nn2;lOoF6X;biFE1l5;eoRling OnF94oFLS;ha442sO;hJPuO;bmBRZ;phonic s9Z4tyFCF;an ban2QLhPpeO;!rBLG;anie 06enO; OieBS2;a07Wb02cZdYfLgXhVjay g8FOkingBTGla8mUpTrSsRtoQwO;aOolfrFKZ;lDVTrd;bolEMPmpDWK;ilFNZondB7HtF6L;ea,oFOB;ad42GoFO3;c6O7e2ALoy0;aOeDUWill1CIumph5ZS;rp0wF91;rCGMy3GX;ilCYXorF5W;ampbellB8UhFLLoOurL;lOvE;beFNVliN;aOrE2JunFNX;lF6QrDZG;beaPlaFJQmOs5AR;cm8MV;chFKHtr9Q3;! ekF68dhM;aOer's sea8UG; RnPr O;cBNFeB5W; OtF;skEJ7;mOsB2A;axEE6cc6ES;anFGToF8J;anOfi grEP0on9IPรกn karl stefรกnEJT; Oie 7IWos tsits6AXโ€“boltzmannE80;mol16RzBS7;lOn raskF07; Oe dosDNTy d1;ba7Q7mO;agnoliFN4;kRlth QmO; Oboat wiBWAos,puEMP;awETNdeJeE1Cloc30Lpowered gir3JZt79C;a7S3gaFMX;! tarO;taB;b1Lc1Fd1Eff1Cg1BhlheFIHi19l18mAZ0n0Qp0Pr07si,tPyO; c701c; q8V1eXh lets flaFIMiSuO;e of Qs q8V0tO;e of limitFG4ory O;raFAZ;libDR4uD9Czeus at olympA;cQn,on Pstical O;hypothesisC49iE6OmeAE3significE17;elAPGtoE30wCXS; O-x;r8OSs8QV; Q-space0QSl3ZLn DB1s O;and OofEAL;federal territories of m8MCterritories27Sunion territorie802;aRba0BYcaE0KduFERfarm QincomePof OreE69;maDNJp5M0; tEYB;aAC0sECQ;nthem773th3BY; V-612bUcTdSfiFDXgateQk5WTliEM0ro,sOtBA6z;' top recipe at fun-7W7hip O;enEWAtr0TI;! O;atlB28uF6R;ew DL4ust crusaDYL;h,raDQT;ouFIAucFC5;al8HXc9BMiEU7oVtrekTwarsO;! O;hQprPreOsPtCIL;beFK0siAQZ;equel8WD;oliday4C;! O;b4MTcontinu3g51Cinto6DP;ce1f O;b96dB9SliFLN;hylococcus aureDleAOF; 03a kD6CdTford SisQley O;bEKScOd479h8Z7kubriCGCtEL0wiDVD;ai6up;lav Oล‚aw lEDU;ianeEHGpetrEK9;marshmallow8SKprison8SKsupe5OEunE3I; V-Uard Qing O;on the shoulders ofOwaFAV; gi2YH;chQd00QeBXQfor the uniform scheduling of medicines and poi9L7mE5WoPraid leAD7sO;coBtr7R7;il,perating proceduB;arterFGRiDNY;up1R3your-groundE68;by me doraEK2newsO;! raids and arr8ML;kroenEN0lOw5BB;aurIee;ag luftCEAiFAH;nOrwayED0;d,less sB5M;ed,fE1Y; sergeaF4XordshireO;! E3I;e de reiFJEium arcaEBI;ey RkQy O;keOmaDQQ;aF9Hi4KD; oBGIdrFFX;aD1HdOso076;aFCKoFU;-in-the-back 7LJle8VH;albaNdaviF9Tjames's C1Knazair913paO;ncra3LVuUN; Qc Pe composiOh file5V9l671;teFKA;combined graduate levelAD9tua9HE;andrea d83UcaliforEFMeQla bourgCDnormandFIHrichar3I1uPwinfO;ieldB9U;mbrAnF7R;dmundBB6mpire blFIS;ebrenicaC8Hgb,iO; PdeD4KnOracE9F;ag9ivasa ramanuj1;aurob98ElankaDSF;lXuO;aSeaky fromFKHiO;dQrO;e,relO;! BV5;! F4Mward tentaDAI;dQmaFKTreO; OsAEQ;enF0LroFKQwaF9L;!ron supreFK9;! i7ASiH;a1Ee0Oh0Li02l01oSqr,rQss,yO; Oro;kiF93ร— EBO;atlyEI7eadsBJMing O;and autumn6AZb9COfJ1;ck,il tEWBnUrPtO;i1AIted hyeF5I;tOus; Qing 28TsO; Owe9;betFK9c9equipEU1gaFJXinAMA;club corinthians paulEKSof a1PXutilityBQB;geOtaneous human combusFFK;!bob squarep2WS;e5it in6QP;ce04derYes in disg8TZke XnTrPtzO;!er27U;itPoO; agnE6InolacECE; ObEKZe7JLf6DSuaD0W;aEWMunt26M;aPn7SGoOtC2E;saF4XziFA8; bifiFHQch,l O;coFHDstenDZ4;chunsoDO7jonCGOlFBDmiC4UspiBEN;!-O;gw5hFGGmanOvF42wC6G;! O;in PnoFFPsOu4K6;trike7SY;fiFEZoth0BVteBATv8KT;! OjFFQ;and9FBgBOA;erOi7ZVynx1QZ;e,ical O;cAZUeETHharmoDQ6;a09cYeTnRrPtsO;es,nCU8;mOo ded3;! CDR;cer Oser confidF3D;faEALliFFVrepeatingDKHtD39;ch RdO; Of1rFIF;of Or1NOtaF78;lFFZs9TW;aEUCr1IQs0ZOtransmiss7KK;iStOulati92F;acled E2SrO;alPe,oOum;grFFSs0FE;! d866;al Pfic O;heat c6AEimp8CK;aPboatCHMfoCVEopOr73I;erations execuEYVs;ctivitieOirCHK;s A4T;kOrman's rank 161; nFGGeOing in ton7XZ;aE4Mr of the united states houseO; of represent9LW;ceZghettiYhn1ZGinDCEnQrO;kling C5OseEYOtaO;!cDnAKO;dau UishOning treeEZH; Oโ€“2R1;armaFGHcQemF3QfOinq5JLlaEQXnCGAr7TH;lu,ootballO; leaguBD1;ivDQ7oO;loBJ2nquest of the aztec F3L;ba9NPprEDS;! 06Q; QbDXBd repe8ERtiFI4xO;! O;marsB5IraEWVst5EO;battleship y9LUcoUdTeSghost coast toE4ZinvaDUHjFF1launch DJLneed7oRraFHDsO;huttleOw1NY;! cO;hallenger9SOolumb9SN;dA0IpeG;levF1QxploFDK;anF0YebrF;loCCMwCG2; 3Vap14Qb3Tc34d2Xf2Kh2Iil,j2GkalBTQl20m1Un14o12p0Rr0Ps0OtrovimD8NuWvPyO; BT9be1lentBKTou;ereignSietO; Pโ€“O;afghCX9j7KC;aOin53RnaDV7uESK;irCUC; Oty;citizenD6Umilitary order of malFI2sD0B;l0Dnd0Cp0Br09s BCJthO; TamEKMePwestO; airE1Qe2LA;astQrnO; Omost point buE56;baptis7TJc6PReuEQ8fDBGmethodis3YAoDC0rhodDQWunF4I; F2IernE1F;aYby sou1PXcWd1PVea1PUgeorgia and the south sandwichEFGhampstead9Z5iEPIkoreaUoss5J3pQsPtyrFGRv8GYwest OyMA;afDQ7eEXG;e8I6ud1;arOo7;k,q vaccinationO; speO;ciM;! EB1n O;d1PKw2;aroEBBhina O;morning32DsFB7;fricaPmeDPXsiaOuATH;!n association for regional1FW;! nCNVn O;aE89bord7K0national deCX4rE5E;av ganguF1QceOdETR; DK1-availabl79X;! joumE8I; of0P2cEWKgaENNs and sileFFZt7HU; OjaART;foFGZmE22;!ie5L;aOe throF2HghF1Mry to botherE8CtingCBQ; ama6AKiro8TR;hOraEOAwithCQ8;iPoO;cl3moB;a Te O;cooEISdRellis-bextFDAhuEDOmQnรฉl9OPokoneENHruE2HschoCtOwiA7K;hOuENK;atEHDomD4L;a353csCB;aD8Wuk0;buF83di BDXlOmELFof hanBZ4petrD8HtaylorCSS;iDLLor5;n-yi pDR1rO;arai pott6G0yavansF41; 0Ba0Adra locEI1equa martin3I1g03iZnXoUs of aF4UyO;! P's spider-manF0Va OlEQ8;cEUUdEBD;comput7G5entertainmenA5Ainteractiv0B9mQpicturesO;! O;aEU8haJmotion pictureEXWrel0GIteB7O;iDK9usicBWM;rPs,ya mO;izuENP;anD0H;et,i natteDJWy O;boENMchiEXHfr2NKliEDQ;a Qc O;a8VUboEVCco9Y4fOmAY5tC9x,yERU;oCSOrontEUW;gD2Dsotom857; Phai F1As Owr7NK;from the big cBG0in the key9T8;dCRLhye-kEM0jRkangQof OstD6K;sonFCQthe O;sERNthEQ1;!-EAX;i-hELWoong-EYC;kshi sinE4Jli be8MTmBQ6r;heung4H9na-eFF4of OyeENE;a crF43the362;aliSeO; Qbody that i used toPrsFC0tO;hing5Bimes i might be intro3LW; knFDG;gBKIlike it hFFYtime inBOC; cDNFa,laFBOs; invi5WWaWdierCHReVfรจEXPiRoOsFAB; leveF83monO; O's4GQ;iEDHnorthEX4;dPpsiF5ZtaO;iBryAJQ; s3QG-state OiF90wE0D;bF94dEIY;il moon frCJUnoFCR;nTrO; OciF8WpuEEW;ceCeQfA40hijri772irradiDTQopposEG3pPsOwiFBC;tiCyDGP;anIow0;c3BDnBTI;aDDCge knDW2;ournerOu; tCPR;aOo; 1LEil DAHm 68W;iXtOรญa vergaG; VbankEWKcore3Q7max EZUwareO; P-defined O;networF03rE11;aRbCBZdePeERFfDQreleaseOtBWGversEL5; life2PK;sign7R1velopmentO;! pEVD;rD6Rs0SS;dEECmCTCpETQroJskEXC;! sE50a O;boutFE7cOhubCH1pernFEOthe1FP;aET7op7AC;der children disB2ZiumPomO; and gomorrF4Py;! P-O;i3HMvapor7EI;bicaB4PcB4OhyO;dB4MpochloO;riH;hi,iPks,otGratO;es,ic FD5;alReOoENE;dade esportiva palmeirFECtO;alC6Dy O;for worldwide interbank financial tele5EGofA7O; SiO;sOte;m,t O;federal republicBIApar4ESreOsCWT;public AW5v5F0;a6YQb3WIcYdWissF2GjusticeVlA5JmediaTnetworkRsO;ciFBMecurity PimulOtra0C0;ation EY8;dea058nuF88;! A2GiO;ngCCU;! O;maEPGuse by7GN;! wDWD;arwiF30emocraO;cy,tic p1ZM;lPonOredi9S2;structF2Wt73Bv3YH;aFCPub;el op880hita dhuliAH6iborO; exter7R4;awkBDDi married the anti-f1ji-sCAE;a04e00iXoPuO;ff F95s;oSwO; OballCWTf6IIpie2T3ruBUPy6IS;cB33l38EpaEJCwhiteO;! O;and the huntEHBwith the red BDJ;kPpO; doggE6My;er,i;cDVSpO;erOping toFCN;! rDEP;akPllO;'sDY0en70K;erOy peH;elFCRs;ke Op5C1;caFBKoEQ2; 04aVeUiRoOs;key Poth cri6K5sh,therO;s CJD;and the banditEEHroDHA;lOthsonianBBO;eOing7AFod2;gaHy;dley buE1XgF56lls like teen sp79D;llRrtOsh mEOOug; Obe9p7GUwD9U;cOfort96E;aFAKiF6Go72BritAI8; Opox0OZtaB5DvE7T;and medium-sized9LOfPint5WNmodularBGMsO;oldERL;ac3orO;m-factor pluggable transA1PwaFAF;entertainmentOtoF9Q;! artBCJ;a08e01iYoQumPy O;and the family66ScoDP9sE56;!dog mil4OD;bodan UtTuRvPwO;diF1PthF13;akAenO;e EKXia;ching towards bOgh;ethlC2J; mCQYhA0E;miloลก564praljE8K;cePmO; picAKDe moFAV; o9PJd b578;dgehammTepPnder manO;! stabBKB; QerOing 9Y6less in seaA2N; Os;hF8GshEO9;apnF63depri8OKpDQH;erDP3;de,p BG7shUughterhouse-13GvPyO; the sEXBer;ePic Ooj ลพiลพE90s;lEMApa6W8; states and freeEYYryO;! in O;a02WtEKI;er F7C;a06e04iZopESHrillYs,uVyO; Sdance7MLfaClPpe,scOteF8OwestADG;aBSVrATG;aOer gis5LI;b,nDO1r O;a9ZIgrE;caE0PfCGZgOneF2JspC7Kuk;o,roET9;llPnkO;! wDWJ;! and bF9E;!ex; Rff7llshaBnO; O-37WheF79walker1SC;of hQNwhiO;teF1R;jumAS3mask the slump7PA;cCHOet ulCXFletal8YZptOtchESZwFA8;a,iEJK;!ndO;ar4KAerbBRN;รณn,รถgrenEUR; 38a36be33c2Yd2Re2Ig2Ak28l1Tm12n0Co07phonophorEX7r05sYtXvakarthikey1wa o5SQxOรขnBY8; S-dRtO;een canBRWhOon3; O-7GD;foEXZge86N;ayE4S;degrees of PflagsOminutes to2NUof cE1Vs9GI;! nCBY;kevinOsepaF6J; b76O;ar,cEQ6h,ti08C;sTtOy6AY;erQine O;chapelOsKQ;! ceiF3D; Ohood75X;aEM3ciF4Drosetta th65s7RPwB47;el kyrkje4NTy spacE7R; gawain and the greenAATaEZ2han siF1EiO;!us3XK;bhQn soEI4uxO;!sie O;and the bans4VDsioDZ6;an fOรกn mcsweE2S;ahEinn75D;a0Cbad the sailF73c0Adh,e 09gZhalYisterC0kUn fรฉ4o-RtPusDGYรฉad O;cuDGToARD; OerklaFAF;eustatiDmaart5;indian Psoviet Otibet71CvAZ2;borderD5ZsplF6P;border 3UQw9;ho7ing of O;mv sewF9Kthe O;ms e23Rrms Ot11H;lUGt11G;a EIOes77O; EYUaporeUhF72in'TlePular O;thEvalueA9O; Q-Oton7MB;c22Fnucleotide poly6RpO;age0ERl22Tr8GY;a4NFplEPHsign-2; in the EUX;! O;aOdoCPYnaE3Q;irDU1rmAXA;and coDTHwaEZ3; EUQlair O;broadcaBO4l994; weiBTGiD5Ploa6BUtrD9B; 900ciF3Ed,eon saxe-coburg-5OXmER4o04pXuQรณnO; bolO;รญv9; CALlO;aOtaneous localization and1FB;crRtO;ed anneaF26ionO;! Os ER2;h867v22D;a and si107um;!lPson's O;p7GCru7;eOified chinese3CZy6NF; Ox;liPmOnetwork managementEQEpl1;ail5JPinEY7;near21Uvi8; hรคyhรค,nO; Pe O;asEUUbCZHde beauCB8i7E1misBVweEM5;bB8ZcSfRhEMkDZPle b2monQoPpeDWNrF8OsinE69wO;hitER4ies743ooEY1;akF27f cyETI;jaJ;arnaF48ras2MJ;a7YYoO;lBIHweC;ambarasF2Fden01eYicUk TuES2vO;ana armenulEDIerOio berlus6AH; OfiF0IstoneD5O;linPpiDDNsO;ab7t9urf0;ings p0EQk;roF4OsDO0;a gIonO;! Oe;cOd1J8g9Q8vaD7O;arbiDWC;nt OsA;fiF48gC6PhOnF5NspEL9w0P5;iCouF6O;afELJ;hOkEMIorsky7DN; ETViEZ4s; TiSmRnPourney EO1rid kaEDTurO; rE7Ad; Oal-to-noise8L4;fuETDlaEGZof theBHC;a,oid ETBund 360;l,riEG8;mOsCY3;cx,px;gSmeNnQrra PveO; of erat7TDrt;enEI8leoneD24n6NC;a,na O;guil6QRmiEZ9;e of Pfried O;li6sas10G;bastOjadotvE35lenC8TsarajeDAVtobrCF2york9IE;og6; Sdhant chaturveEVZeDZAharthEEney O;crBSRgoALluQpoPsO;he8PC;iDR7weC;ft,mF4A;cCU7jE6YmeOsr4YUvic9TTwadA34;i0lt2;! semper tyra7X1hQilOkle cellEP2;ian Oy;dAP6mE8I;erheitsdienF4JuanO;! AL9;l kek29KriaO;!n O;cETBh4O3tD7N;mese On h7RT;cET9fighting DG1;baseDSHderivedDSH;a25e1Ci0MmiF7Yo06rWtisIuSweta tiwaF3MyPลO;chลซ,jo4CVnen4CV;am PlO;a stylF0CoJ;benBFMsinghaCWE; 3A3bOeisDW6ma-goCS1tters43O;-nigguCS0h mangal O;sOzyada sO;aav400;addhaBHPeRiQoPuti O;ha465ramachaAZI;psB3Mud of tur4;mp,neF59ya sE6L;kQwPya ghoO;shM;!sDG5;! O;foreverOt336; aBJ0;ck02e01g00hZko asaD63lKnda rh6H6otVpTrRtPuting fire in a crowded2WFvelA76wO;gBBXmEIVruBO5; g7D2ac2gunO;! sC9Z;'sC1TeDSYtO; sF62est pathBQShaF30ness of brD3F;ee,i0X9pO;ers drug BGEing 5Y7; 'em EOHing O;g5Q4of O;ashli ba4HKdaniel shEMAjacob b6BPmO;arkeis mcgloc4F3ichaelBJJ;ei ohCF5reh aghdashlE9F;akuk1i,un; BD7biCgaC3Q; 63Ming3W0;a0Bb0AddES8geru miya51Gh tDO4i7LDko9GPlpa7GTm08nZon2SSp XrSsh8EVvOzuka ishigaEYK; QaO;! Oani C7Bji;ayyadBN9baF1N;n8AGseERV;aRley Oล i2WV;baF3Mchis6EXh76TjPmaOteBM9;clDUVns2;acE8Hon3; pCBXz;of theOp2FA; ETHseD; TeSiRji QkaDJ0sOto,zo aD85;enOuke5S6;guEY6;k50Smi5ZW;chirล1WIgaEY4ng7MS; on you crazy9APdoF37e;g2J5hye-sF5GmOse3HOtae4SW;egami tensei OinA8N;iv,v;eC6Yla,onO; p7XPeF6D;a iBUTboleENZuEDS; Oโ€“sunni9G3;iEUOlabe6XM; 0E's 0D-0Ba09e08f07i05lZmXnWpherd's pF3JrOtEYX; shah suF1Wa daD8AeUiTlock holmesSmanPp64Bry8WQshaEVYyl O;crF3NlEXLsandEOI; P's march toO; theEK4;firefEQFhemD6C;! chapterEBV;danDZLlyn feEO0;e nEH9metyev1GX; yF4Zya8zh5;!aOp B2G;le,rAQN; s406by mus7U5don SlO; sQac,ey Py O;kisA8Imi8Z5;d9W1fab7FQhDLGlo8w8WZ;cD17hoJ;adeE8JcoDI3;kh Ola h5TW;haA43mujibur raENK;ali chow62QfDH2;na eaE2Wr heartBFI; w2SXmDr O;mAZPstEG5;huAXSraO;! and the princesses ofEK5;a6F7out of myEGUtheF0J;professed herself pupil of the wOwas prCVM;iseF0H;a1IbbEQPd16ggy roEXRh13i11k0Wl0Vm0Rn0Dolin 0Cp08quille07rYshi XunTwQyO; One toE0G;haCNYmi8CR;arEX8n O;aEY3dCUTgDM9leDIEmOrhC6Uw95P;eB2FiE80; Oa roDG8;ca7KEdoPeBRBg9A2o8XEthe sheAENwO;alEO5hiH;olE;kEUCtharoF1E;eVia,kSlRmQna buD73on PpOvari waEYH; cDNBe8HDsD63;caEXSgALFho9YRl8EEos4X9sDXBtaHvan eCNN; el-shei7E3ila03G;een spiAAAto co7DT;! taO;le,nkO;! iECM;it,pE4VwaB; o'0V3;ePiroโ€“wilO;k DMH; of Osh16X;tEOUyDVX;monasEY6s2VY;do8e ZgUia tTnPtO;ae,el vansant5hanu bhag5YX;a moa5TCen d8PPon Oyn sossam2;e3B3lePshO;arESF;e,to;wa4; dCFT-chiQhaiOri-F3P;! O;cooperationB4Pm8S7no2tEJ3;! and the legend of the tenO; rF0U;bCDXdaDXFgiD93mOvC86wA5X;acgIOcm839;anQbhaF3IeikAP1iPmiBECsO;heG;s5ta7E4; EP2iEUF;lF47om brune-fCXR;a,ePiOshouE8Runtala 1RL;b al2FXra cDS9;rs,speareO; ARC's O;plaDWCsonA9W; gilgeous-aAGPlene Ot1viEU8;wooEXL; PaF1Pid kOnamDK4;aZRh1;jB5FrukhEWY;es of VowO; OhunDBArF2V;and C6Tin the3JFof PtO;he hedgehEE8;a douQthe O;coloBLKtOv8VE;hEDJoOA;bt;bQgrPpOrEYKwDC8ye7T7;iE2XuECY;ay,e5;lERKroF0B;di mein zarooOn7RE;r aaEOK;a3Vb3Qc2Zdi2Ye2WfECSg2Ti2OjongE7TkhmEZHl2Bm21n1Vo1Rp1Lqu1Gr0Ns0Lt0Gung0Fv01wage00xOycheE57; Vagenary2DUiETOtaEMTualO; Pity Oly transmitted5FS;in aU4of3I3;aRdiQfB73ha7TOi2TLo8PQpenetEYMrePsO;laECAti0TP;prCR7voALG;moD4N;rousMssBUEt7CI;and Qc8F0eAEWiCU4mF07o9WYpPreassignment10WsyE2TtO;oy,r5F9;istoF0SoA2H;gender dis5KUth30Z; tr586;a00ePillO;a E5Xe;nOrus snaEQW; Q-segment5UNthO; 1DP-day advenO;tistCU9;archaA92bSdRlaws of noESPnQof CWCpPsOvAMJwonders of the anciF14y7Y2;amBJBum5QS;illars of wisdEHTo1HY;a9N0etD9A;eadly 8Q1irty wERBwarAZ5;ridOucks CBM;es for seveC8Pges of kรถn3LV;n niลŸany1stACJ;-hui cDXGri; CKQh OiE3I;a8J8cEGSd22KgQmProO;g8A6lBBQ;a2YTeC9S;abIre5;ameOsion initiaEJ7;! EYG;aph0Cb08en07fdEHFgYiSj tan8Z9mon on theD52otonin5V1piEOCtraEPCvO;al,er QiceOomAZF;-OnEZX;leve09Woriented CU1;messag1I7name iB1J;alQeOf,ne; Os and parallel circuiEXQ;a,b; OiC4S;aF2AcomEU5experiments DZ8kiESYpO;eripher8H5oF21;eRiO; 0NHo Oรฑo deEYK;agรผeEQ2busqueEXJl8I4matt1VJpOramETJ;ablETIรฉrEUM; Qi Py O;br4shoygu;eiseE26korolETTprokofiETTrachmaniD7Us0EM;gOibaE6Lmo9I9;aA7UnabL;a BN9ity prEH2;iaOo-croa8FVs;! On EA1;andOnaDVB; monten1XK;! ofOim of sDDL; tO;heO; eEXH;eQoiaO; Odendron giganteEM3;c9D1sempervi0GF;l,nceO;! d9SW;aration of Secat jagu9hRpQsFtOul6RM;iOuagiEKV;c BE7mius sevACC; 2M1u9B8;ardCP3oG;conc8L1poDOT; QhyF0Eng uiAB9ulO;! O;b3N6nationaAXA;bERRhyE8Kin-gC7Wyea-E1U; รงal kapฤฑmฤฑ,dReQgoku5RQran kaguGsPtiO;enF05me35TneleEZB;e and sen9CDitivity and specifiD8Dor;caAETgalCUP; in the cl9R0ai,er policy fO;rameD7K;aVen,iOoDUV;-TcoPoCXEtic O;lEB2peE74;l2nductorO;! O;device faOiCRU;briE0D;arid5CQpresidentiaANQ;glu1DCnticO; wCH6s;aZeUf-QiPjuBE4kEY5lOma bBOV;afDC7ing sunsEWS;mDQ7naAPH;aQdPeOhaENBimmoDH3;fficaD7YsteDSG;eterminatioBI6riving9IS;ct8WLwareEZ8;ctiQnOuciELK;aOiEL1; g4WC;o51Cve serO;otonin reuptak1WRvicAUV; AZUngEWR;kQnOsmic6S2zuB;eOfeEYP;!n45E;an68HlDoO;! mat41F;aOundCTSwK;! O;gEP8saB1X; you47MkOth0; lBHAing a friend for the end7VF;mentary EJ6ti2;ess8VYondWretRtio64EuO;laCY4rO;e6FJitO;ies and exchange board CQUy haCER; ParyOs of sulphur sDSM;-general5RLbiEXF;headquarD7FinPof 4N6sO;oBI0u4F6;telligen53TvaELJ; P-w6W7ary O;eABJs06N;ame02bZcXfrench WgViUlRo723pPsOteBFCvatican60Ew71W;chleswigDT8i720panP;olOunicDT7;ishC2C;aPiO;by3FOfe;ngE7Ww71Z;m720n6W4talo-ethiopiCES;e7UVreat awakeEPO;emEKLintervention inA0A;h723oOru720;ldDSYmi8n721;aOo724;lkCEMttle of O;e725fallujEP8;n74Gric3FE;astiOeEHS;an Pรกn O;marroquAHYpiYAyC4J;baENDgiovinEL6ku84Smanisc7X9st1veO;ttI; 0Jb0IfoEZ0h84Yl0Emus he9KCnZrVson UtPwO;isD9Dolf-E2C; ibiE08tleO;! Oโ€“tacom5SN;krPsO;eahCILupersoD5O;ak5;hu8J2of st805;chOs; engineOl6V5;! O;maEA5o0Q8; On williamANN;a00bZcXdWfDEBgVhTkSlRmcQpOrEUEstri44KyD5W;aOennERZ;rk0trick fla9F1ul,yt2;d80UvK;e9PIoJ;an1iDW0;aOepburn f2AC;nCKYrrFy3;elaIuEGO;uf0OPycEMS;hipEG8oO;mD31nneryERP;e1iggersA89;b8FSst4; Os and crofETX;oPteamO; sEEC;f soK8;isCUU;ane8N5c0E6lRoPpCDFshOurE1P;anERN;f Ott0;azDWHgalilEPQtDRE;evel1UBtd;a1Penes from a97Bh19i0ZleroderEQ5o04p 03rUuQyO;lEXFthO;e,iaEK3;ba52GdPlpEKLm's OrDB9ttEQE;wiEPC; mE3Geria O;alphaDMMf7JPtoro07Z;aUeenSiQoO;ogeOtEIG; mc8ZQd;bd,ptO; kiddEV9in7GC; OplKwr755;actors guilDN1geEVRprAB5;bb7mO;ble forD5UjETT;f4FPโ€“ containment brA7R;l0Ho0Ep0Dr0BtOuEVUvilleBV1;ch08iaAKGland06s E5WtO; SgDWEiOy hoCLC;e Qsh O;cl1foEVXga3IShighlDVDi93UnationalEQWpO;eE3Premi9F4;baATIpi7SM;adZbXcaWdUeaDPJfTgRhoD1FjoBRLmQpPrA18sOweiEQA;peeDSYteCZ4;eEBPilgrEB3;ctominKoBPX;leEFGoOr679;ttliCDR;isDXTolEreBB9;erricDZ5iOo494;siJ;an,wBY5;aOe48AoEQ0;io,kuEWH;aEV4kiN;! O;naDQNyaEUL; O-irish5HH;gaEWPwh1WH;chedCG0pionO;!s EOQ;es2A6olaDDIus;by-dooPtO;! mcnaiLer5ZT;! and guess who?;d's brid7iDC3;-hBTAaCZ9enPkit-l1ZJmBZRpio africanDssor sO;ev5isD4B;ceTtO;ific PologyO;! and celeb6QD;mPnoDCSrO;aE4OeAEU;aCU9eEV5;! fOdireE7Ps CDA;aDIBiction2GK;a02e01iZlYmidt sting painEVPnXoSrรถdingerRuPwOรถnbrun3PO;a,erer gustE0C;ko,mann resonaEV9tO;zsta5WC; CMP's13T;lQolOttky32T;! O;of EFFsA2V;astOz6ST;icDEL;apE6Ieider el8C7i3D3;eswig-ho304ieffen C95umBPV;ndler's 94Htt8OKzoO;affect2NKidCWOphrCTMtypCWN;herazaDJIngeCFN;denfreuDJHrnhorst-BFG;bi3da,lYnVpUrPtman O;crC25joCAN;letPy O;mETEstories to tell9FD; Pt O;b5CAjohanss8GW;fBYCnexDspDBHwEK1;a AR4hiEM7;dinaviaPia CMDnO;eETMing electron m7P7;!n9X9;abPlOpi8;i2op;iCCMle vector05D;d3QOentertainment DKZtv;a60b5Vc5Od5Kf5Dg5Bh5Ai4Qj4Pk4Nl40m2Vn1Qo1Op1Lq1Kr0Xs0Pt0Au01vTweetET3xoQyPzaeOรฏd benrahENOรบl รฑรญDSKแนƒsฤG;-s1;aka kETFyeshCUW;nOp6ZB;s,yO;!-anhaCI3;aSePiOoy;ng private 8LLtribai3VA; Od by the DXD;the9MNyourO; t65X;g2OLnO;nah OtEEN;cEGPwANV;ber motorsEIWcy sanADXdQerk1Y9lPmlaEDKna,roOsageBD5;n,poET3; gBNDi niinistรถ; oEL4aDIKiO; Oa;araObinladinECI;biaOmEH2;!n-led intervention in yO;em5;an00elliteYhya sa1DUiXoUsumaD9SurQyO;aOendra nath CODr; nadEU9jit8O8;day night QnO;! OalA;awE19devouring his4X7v;fBXAliEJU;mi saDYTrPshi O;k2na2PLtajiEQM; 53Yu iwaEUX;re,sA1K;! O;internet88EteALU;!iO;c p0LOsm;aThQkOuke4ON;atOia reDNT;ch6BSo2;a OiEM9;aA7AbC5PcATGgrEjEMOpietEESspiO;elECX;ki On6X4;and m2KMkoji1RH;aUbanesโ€“oxleyE5HcoidD9NdSgRiQkPlacc,m0VXoOpatta parambA3s,um1vepalli radh2LY;jini nai7QZo brieA4K;!aru vaari paaEUH;!leru neekevva5TMn,t5RG;assoE8Eon of akkEPV;ar uD42inO;e,iaAOK; 01c5h OjeCWPswaDGHwDQ7;aA6YbZchYeEATfDRSgXhWisgEAAjessica 9F4knDM7lUmSpQrPsOwayne cal8T2;haEHHilveDGKnoEKPu3KU;a6ACoem0;aOoCSR;l4riELDuDWY;c3DQiO;chelle geC9Sllic1;aOeD76;ncasAQ2wrenceDBA;arE7GolcoDK3yEMQ;ad2oBG2;alDV8;aarA0We8V3loom raABGrighA0W;al6FMbareiDVMd4JTgilEC1jean uAAPmartiNpaOraG6;scDG8xt2;ib saleDLLuon65A;!pO;hOoEHQ;iBo;irseOri hayaELD; ron1-monica8K9; 0Ga0FcEGXd03ford a4VVg-e-marBZ4ia 8B1j00na9YLo4DBsZtPyaO; malhCSJ;aRerD3Aiago PoO; 9ELriEIXs DWG;calatraDS3de composO;teESR; Ona EL6;cPmO;onica CG1uAH;laOruz de tA6D;rita658usO;!'s61;-serCPDkrEPD;ay Oeev venkEEMu;duEK2g2ASleela bhansaEJQpuran singhO; cYM;aYbox ED2eep9TCiWm1rQsDLIwiEHAy O;brEAPdOhook elementary0P3koufE4Q;enDO1uCIM;a QinPo O;botticD54koDO7raDPY;e bS7ghamER4;bPdOoh,รกvila beltrAAI;ayA5Hee,icD19;ernEQEulloBN7; toksvDOSa Oe C7Lnista national liberatioDJQsk;moCQ0peak tramwK;lDZBra D8V; CO1a la6A0;anXdiegoVfSgRjQmPpeDYYquentin stateOsebastiAAB; prDO1;a8SSiguel de a4OO;ose shCKLunipeEGQ;abrieA6Dimig4EN;ernando CRAranciscoO;! O;ba3ZNcB34inEG2;! O;comic-c2inEG0;dreas fBJQtonioO;! spuEQ9; 0A'sAO2a05b6KVe04ha4i zaDQNm01oZsTuO;el QraiOs DRJthirakaEHU;! O;champlDUUjaJ;becAO3eto2O5joOli9ILpepDKQtaylor col23Oum2QDweEOU;hEKIsl4;on,ungO;! O;eBQQgalaxyO;! O;a CUFnotOs CUFtab CUF;e CUE;aOsa,y9HN;! jDEJ;i hanr1B0o DOQy O;gOh4NL;ravaDZ9ueC5B;-sex marri1SXer thahENY;el,jwadiELAntha PrO;a w552iBAFkaENS;bPfDSVmOpoDK8ruth prabhuEL3slD5IwoB41;a51Ao9HI;ec3ODoENP;a04b03c02d01e00feDK5gian2J9hXjaA1ZkinDN3lWmUn7QSpTrRsQtaEJYwOyEOH;aOitw0ortAKT;lt2t3NU;he8K1miE9I;aiEJFiOockwe3Y1;egIlE;eckinpEHIit9YP;aOcqDNEeAOVorrE4A;gEO6nekC6A;aDSXeBVN;aAG9euD3BoOyDEW;usOweC;er,t2;llioAXNsCQ7;arDOV;la7ULooDSR;ankman-fDDLeazlEot3TEradDH5;cDM6l9YE; 09a07but0KEe04i02ly ZmWomรณn rondCKWtTuSvOzC85;aPia O;divin4VTofficinalF;dor Otore maranzaDYH;a4N5dalรญ;ki,te; O-n-peDX3onE59water c12L;and sanctuaLbECWlOmBTU;ak2P0;aOonEQC; h6HZn O;bin abdulaz8TAkhEK6oEGXrushdEOF;ann h3TAfD2HgeDO6hPke40Dlin3ZWme5phBDTrOstrutBX3;iDEBoDDN;awCWHemENH;cAATmOsCZNu adetunDRJ; khaBBMโ€“sulaDY5;m witchPsO; taxe6YZfCMV; tr9W1;ar,d8ZSfiCFOh,mO;aDJ2i;kh1m10KvulKN;haOo90Jug1;!l4;al aEB2id jAE9; 06cANMd3I7f al05gล takaDQHlor moon03nOp1tam3OX;a nehwMsbury6S4tO; O-trAP4s rowE03;baYcXgeB2ThelWjoBTMkittsVlucAmaE5WnicholEQ9pSsQthomas christEFBvO;alentineOincent and the grenadEDD;!'s dayBDZ;eOteph5ylvester644;b5Q0iDXZ;atrickPeterOierre and miqu9DW;!sC76;!'sD2I;! and nBK1;eEBEi0;hristoAGXroE67;rthรฉleCL9siO;l's ABV;! cO;ryBBM;-islam1J5i CLB;baba of shirEDQdharam0JWmadhav 3C3pal707;aGel,itya akademi1BGrawi arab democraticBSP;e sOo m7APrada famรญlA;talAKT;aSdQePfronO;! burDGJ; st8GBmo2;ar7DOiO;e BVW;ri 8FVvid O;dC17ir1; sat1ako yama5MPdQhgu5P2iOomasocCR8;e Oo ma7GNq CKY;fDRWsiDP3;am73Miq bE;agawEJFcThPkleAZKrO;amento81Ged0YP;a Petโ€“param17ViO; 9AIn tendulk9;baron cAV7dO;haw1;haromyces cerevisiEB9o and vanzDBQ;aRer6OJhaapAWOine Qle,rO;e,ina O;b1G2c9XHouazaEET;hossenfeC79schmiEHN;!h,n DZ1;b aOho,rEI4;b,u6EA;aJ3bJ2cIYdx,eD8gb9DChCMi9Cj 9Bk9AlcCLQms 97na,o2Gp2Es2Dt2Cu06w04yPza,รฉOรถyksoDKFรบben 0KXลn4;sumรฉ,uDZS; coC3ManSeRlan clark-0FJoya kuriCO0uPz5ลyลซ koOลซnosuke akut4JK;bayECH;gyong5HAichi2JWkyu Osuke hDT7;iDMWkCL3;!rsoC6I; O'sENDaEL1;aVbUcooAWTduE74egCBTfitzp8OBgThSleDQIo'0FDpRrQsPtOwCXP;anneBQWeB68;eacDACtCEZ;eAHTos1X6;hillipECVoCPQ;iDLGolBV7urELE;arcCYMigELGosEH7uDM6;ad0inAFS;daEMSrcidiacoDW2;andaOby;!n AD9;airiA19b1Ld1Be1Afus 19g17h16i hac59Cja ignatoDNCkia kuchiE70l13m0Zn0Wp0Qr0MsXtQud PyO; lANAi's royal love in the B52;gullEKSvan nistelroDC2;aTgerShO; Oerford4VQ;bPgoBTZjEM8keaEA1maCZXnegDL5porE9ZwO;est44IiDRG;ader ginsC5DuzCOE; hCDZs CH6; lEG0baDL1;' DULh 0Bkin 8XJsQtO; Oโ€“eater b8VN;beCAYshoot224; 07ell01iaQoO; BUE-O;georgiC3Jj6QMukrainiC3J;! DHTn O;aVcCVVemE9CfUgTlaDWJmDOPnaD1GoSprRrPsO;f67Hleep7UUoviet federative 8QL;eOo9TNub7;pDCAvoA6E;eBUMovisional g5FX;ligBQUr90H;roundC0G;a4NJoreign agentD8K;erospa6RBirOlCJNmeCWKrC0D; fCK2craft carrier admiral kuznetsDMA; P'sO; p6UL;bQcroweEH4gE5BhoANDjEG3peCVGs3D5tPwO;estbAUFiDQS; DCBovE;raEJPufaA6C;brKmD2FtD8U;diEFKlimbAQO;al PikOouni ken2W3;! dBZ5;arEHHpO;urE5L;aulQert Oi kaE3R;e3GWf9P4gA7Xmu4KApenryA1KsO;anCZPheldBDF;!'s drag raceO;! O;allAS0uk; P-dmc,away truck 35YesOgeโ€“kuttaAXUrDJDwK;!caEBE;bEIXhide fEK5lolaBU9the jeweEL4;!er7CJiQmPpO; sC5RelstiltA4Z;ikBJTy;!ko tak8P;a le7EWeO; of Os of c94J;lEBZthCUM;ollah khom3ERr;by OraEIO;uDXPw8UI;buck B2JseDDPwainCVY; mccl36Qsha little8FA;olRyO; Oard kipEFD;gOruettCMQy2J6;ay,iulD7EoE57;f Rph O;the red-nosedOval2S3; reinO;de0;abIclausiDhOnureyEEQs6U5;eELIรถELI;' al kUber TeRiQy O;baBDGl4on r0XZrOwDYD;idE4NoEKW;c2k's cuCOC; goldbergC10lELZnOus hagrEJV; fleBDAs barrichEDQ;duck debug4PDsoCKK;haED4;rs E3TsELQ;s,y6ED;gOk; mAM0;a69b4Cc3Sd3He 3GfecoxE40g36h31isin conaEFUku,l2Um22n1Ko1Ar16s0Ht0Du0Bvan2Q7w09x08yO; 03alPce O;g376pierrDJL; Oe union saint-gillDLJ;aYbankAZRcVdutch61VmaUnRrumbleQsPtOvictorian2UB;hai5C2ombs of the joseonBXP;ecret0TAoB4F;! mCIZ;avyAMXoble consort O;hwabin yELBsuOuibin s9LRwonbin 2A0;!bin D27;il,rE91;aOentral school of speech5N8oat of arm8VR;nadian OribbeanD2W;a7I1mountedBAHnaCZ9;cademy of2MTirCI2lbert DEOustralian O;a7HZnaCZ7;benavidEELcQdemD7FkPlic2STorb64IrOscheD1JthCM2woELT;ayB1RoEEE;ea6i5PH;hu8oC0H;etHie rDVHyD6R; echelon 9MQan Oo2;atCU4b1D8;en,lDMTnd-robin Oting informaE2J;scheduEE3t6IR;at91PhQoscoA28tO;eOwe0UA;n tomato3rdEIC; iGschilJI; 1RFa05co04eVh hashanEBHiTsPtoOwell9UBรฉ;ck,v-on-d2; Oano brCLE;bPgeECClBIIma974p87BuO;lbricEI9;arCOUraEIB;crucC0Ee O;huntington-whitCWKo490perEE1; Qanne baEE9ly8E1marOtta5FDwoEL8;ie de42Ry O;cD80haAA2keA2R;ayling-eCQ5bSkeA2Ql90RmPnOpaC4Lsc4DGweEHT;amajunEL1yDDU;atafD6PcO;gOiv0;ow1;ow4PXyr6;e arbuD08smECN; TceE6WlRmund piDMHnnPrO;io daDE9y;a Oe BX3;arDFUpanBLV;ind Oynn AZP;caECAfCENrBBI;luxemC1SpCCUsCKE;onoa zoE8Yschach D2Py O;cPg90DkO;e5ZHi5OF;ochDDTu5O8;ibECBm Wney VsStO; P-mean-square dOkEGW;evCNY;be0meaO;n 4TV;evelt PtO;er t0WP;faDBUisEDF;faDBTmaG;in E3Xt4XH; 00's gone wDGYaUda ro1NLeTnO;ie Py cO;hie8ox;baBB5coPjames dDIFo'747radDLTsOvan 0FGwoEKA;peE6T;lD0Cr5NF;la hajaD6Nn rubiDKM;ldPn O;faAUMkA1GrafEDVthe acc96L; OinDF4;aPkoD07mcCZYreaganOspeiEI1;! washington E7Q;ll5raรบAR3;d9ZVfunEIFg79ChoAJMjereCF8kRlQmaIpPreC1YwO;atCPPeaCKIhiHoodDJL;aCI2erB62;ei5EJi79Z;aEIRla4; the space9JXaUeSiRola gQulusOy sc6DEรกrDI0;! aO;nd remDugustAE8;arE8B; CZYnaDYN;!lu lu1OYo Oro duDR5sh rang612;+9SGa9SFbBD5;in gros431nO; XcTesqu5TIiQs8VCticO; OiEA3;c7VMmD4O; 5KGaOchM;!n O;laDRYreA1V;e Oing the5DM;fiEEXis a bonus 932lDTQnDWNof the tO;hree kO;ingdoEHJ;abramoBF6bCRIcTe514griffin71NhBPTkCFIleD32nuCF4pRrPsOร  cl9LI;afiuD05eA9H;eOiHoaE83;igNpD7K;olanskiOr5IP;! sexual abuse9UW;aQoO;nOp6ES;c7OXquesCR7sCH9;l9KCtholEJH;and SeRf77UlO;er coaE8Uing5D7o,s-royce O;ho2TQlB0DmO;eBTHotor 52P;-playinH8x;barOemmeC4ZorzabMratz3RF;th3; RiO;ngya Pt O;cDZ5shCI4;geCA9peDP5;jeong-eCPAmoDQD;er QueO; OliDK9;o6plC9AwaE7U;aC8UbTcSdReE12fed98Qgoo9DSlloyd-ANMmQpenCPRsOwaCQD;crut2tO;auAR5o6;cgDPGiE9KooB;altrEeaCOA;oD54raigDCD;aEILinDDM;de0m9P; Vdy UeSgers and hammeDGBman fleDAYney Rolfo5K0rOtang jitmuanA9Y;igo OyD6K;dutOsanBBB;erH;alcaEHTdangeCTZki8;nt,rick O;k02DstDEVwiCRR;mcdo6TTpD08ricE6K;of ascleCIEsOta9F1;erEAPteO;ig0wartDBA; 9FWco siffreE5Zh03kOoE49; 00aZeTnr3NLstQy O;aur rani ki prem kaC5HbalbD05fFWiDR7jEAFmOv;arc64HoCFD;ar OeadyCAJ;advanced game9NHgamesOnDTJ;! ADQ;feller StO; P-propelledO; g042;lOrac29P;aDJDeDTH;ceDEQfaD97;bBBNll;and rollOhuDYLmD2Upaper scissoEFP;! hN0; thรฉriB93eOfort BIA;!lle O;hum3waO;leDDQ; 1Cb18ertYinRlox2OHoOyn lAYH;cDP2tO;! 68OicOs exclusDV2; process au4Z3s; PhoOson crusD43;!od 93T;caven4XCde jesรบs,fox D8SgiRhoQlAG6olE67tPvan persEF0wO;illiamsEARrEEA;hDIVuD70;bb,od;bb,veN; Sa fBR4o O;bQcOdur9YYfir6QIman5WSorDGEr4D8;aOlem6BS;rlE8V;aA1UenigE6R;a0Qb0Pc0Nd0Le0Kf0Ig0Gh0Bi0Aj06k03l01mZpXrVsRtQuC36v1WGwOzemeckF;aOeCQZiEFGolCTE;dlEEUgn0lpo7;he b6KEo1Z4rEL;aQchuDZ9ean3CLhPtOรกnE99;aJepE1J;e5OKwaDEF;lCXDpo3S7;eOi'cEEKoDDYy1;df5BDed,iE57;atOeIic3P5laE0H;riJtiE97;aOcnD45itchE1Ios3ugaCIM;lo6ppleth3XHrk 5DBudCHBxD7J;ewandoCRDoOudlE1G;ggAuis4U;a382iPraCL8uO;biD5IrCKA;rB3CyoBZK;ames-c483oO;hnOrd1y; Os2;"mutt" lDPCb8FC;i 45Il0;aQePoO;hm1oDHZrL;leniDrjav55X;lf2nsOrDZBys;en,s5;rOuillauEG6;av3iffinB96;alconA59orE62rO;iDBLoECX;gE8UngD8Y;aC00e niroE9KuO;ncan mcn7FBrECUva3MO;arOliE5AonrEBWruD6Hu141;ly7ra957;al8H0iUNosch g8ZurNyEDR;lOramaDM2;an auBEGtm1;ert dijkgraDHNie Py O;beE8Ck1IZ;aOcoltD93d6UMfo9EYjarvFkea6la9EYroCR7wiCPF;meC;bryd2corddLdUe7FXfoEDKgThalSkRlQmPpiDHFrOsc69Fvan5MOya8z3S5;eCHPi3HEoy ma8VG;aAL8celheD5H;ieBJZoA41;a375nDGX;foEDFl;aB8FronCQB;el911yrdDCO;dQld Onoke coloDASring twenEAJt9XD;amunOdaC7W;ds5; tOside picnEFY;o per69Sra4;carpathAempress7F3lPolympEFWqueen Ot06P;e2M9maL;usit9XH;-bE3No7X3;bCVGm5P; 2Wa2Vbo9B1c18d0Ze0Uf0Tg0OhCFCk0Nley 0Mm0Kn0Ho0Cp 0Aqui puDBGs02tWvPyadOzE4L; mahrE85h;aTeOi1;rOt; Ps O;cuoCR2of blood67S;pC78thDE6where the moonO; r8O3;lDLWt1KN;a Qchie Oeish deshmu6OHu arDMW;bOvaleN;lackE86oD7N;cA3ZhayworthOmoAKFoGsiD9FwiDI4;! and shawO;shank rede7S;c4VXe Qhi Ping su63JkOotDWMperi5V1; CCQy A7R;kE4EsunDB3;againEBKof the O;footQg94YpB86tO;eenage mutant ninja turDYJoO;mb raCUJ;soAAC;toE43vO;an w21G; Pt gO;am3rrBHC;de janD8YfC0ZgrandeO;! O;do sCCPgorg5PK;a sawaDIDgOko kikDIU; of Oo starrD7Ns of saAGGwED1;fiBh6DB;aOwECZ; ho949c neD3E;keDR2reEBS; mayaCer7X2i lindECRsdDJL;a,el,htPoOveECD;lBGCr moDX6; said frE9H-Oeous among theDPEmoE3G;hand8MOwing poO;liCAUpuCXP; w9kin'sB5Yle; Pmann O;h7ARsDYVze7S4;kugi57TtaO;kOnaDIZ;ahE1K;dUePgeOley scoAKF; h7W8; QrO;s Oโ€“waite tarot deJ;ofE8LrD27;likeOthe70W; the 69X;ick Ol0;boA22moECP; 19ardo 18ciCJBe17h03in,kOo ve02E; Qr8BSson45y O;gervaFkambuaDLImaCJAneDGTpoOr21UschrBSC;nEDWweC;aYbXdWfDEUgr5NRhVjDCNkarsdoCDDmUnAEZoA0FpAAMrSsOwakCTT;aQcoE4PprA97tO;aCOTeO;in0v3;lom2;ioEAUoECFubinO;! production E5G;acDCNorBXL;aB66ofE4V;anDLTec50N;eaDV2rEAB;nd m1CXs7YX; 0PaOe9WIie samAMLter magnitudeBAW;rd Ot C3V;a0Lb0Jc0Hd0Ef0Dg0Bh09i08j06k04l03m00nDBHoXpVrSsQwO;a72BiO;dD8NnCKY;ac527chiDV9imD7LpeJtO;alAZBrD5E;aPoOud6XK;dE5RgeEB3;mirE5W;erLrO;oen1K8yE9L;'PsmanO;!'s house ofCPZ;b8TXcalCOWsu7BZ;aOuAY4;dd5nuIrOthDAA;cinDL9x;e8Z2i5AG;aE26iOukli99V;el,lEnd;eOoEA2;nCIHweC; DSMi7A1;aOiD92uCRY;lsey beE9CmASNrrF;eBiOriB5;bs2lliE5L;ey3QKrancis 5AO;awPeOoATMrey02R;an6X8nt;kiNs2;hD9PoOrBO9uDVB;l3ttA3Jy7;aseE59eOlaFoo6raE4Su928;c393lz0njamin7UBym0;nd maOshCGVttenbDOZyoaCZW;ry 8XGuriceBTN;bDVAdad poor dE82pO;aCAEiaDXL; C53gDWY;montalb9TXpeASL;fB0IocasD96;a cerA0nA64;myung0G7sol-D1H; blood group CDIa07e03iYoSyO;dianQs ifaNthmO;! O;and4XQgaEBV; vV1;dOmbDna mitG;eOiDWNoden7ML; C0AsO;! schol48CiaO;!n O;bu45WridgeBLK;anna pRnO;ePoO;c4FQvBP2;!land-palatiA1V;ratcheE2Q;a Qnzy fel8E4toricPumatO;ic7XOoid a091;!alB7U;du8L9p45Jri6KOseeE0W;bdomyolCPYmondreO; stA8F;a52b4Vc4Hd3Ge3Df38g2Ui2NkD06l2Cm24n1Oo 1Mp10quiem0Zs0Ct01uCJ7vQx PyOza 102; 7KSkjavรญk,nold7EZ;bu89RhaB45ry1tilleDPX;ersVisionTolOue starlE8B;utOv0;!ionO;! of Pary O;armed forces of co5IGgirl uteDWM;digBXSt6QC; cDGYist O;wes6NE;e Oi;dns lookDSReDNNosmCQLpOtranscription polymeraMN;olishAYLroCLW;ailWiUroSurn O;oPto O;castle wolfeDBHhogwBL8the blue l0BL;f the On697;jeDYUobra diDT9;aOvBOA;ctive2F7rDZ9;culocyte product6CFnO;a52Sol;! O;b48Up4PP;cue of jessica m7HFe02iXoWpTtPurrecOveraDGJ;tion 942;aurant Oless legsDU8;gordonPtoO; anotherE96; r5JN;awCVNiratory syPonsiO;bility assignmentDQPve web DPV;ncytial6VVstD2L;nCOZrts world6J9;dOn,stE72;ent evilPualO; nBZO-current9IW;! O;v5ECzeDYM;archSrvO;ationA48eOoirA48; Od ip addre4QB;baOcu7PU;nk C1B; OgaH;and Ostations inGItB1QunCRY;analysis 8EOdDIH;! for4JL;eat p8XDli08r04til02ubliO;cOka srpsDEZ; QanismPs of O;ruD6Dt7MF;! 7DP;of OrC6Z;artsa6JBcSfRgenCS1irelQkProse BYCsingapore4ZWtOve0E5;exE9Vh7X0;arDDJoreR;andC3O;lDMUormoDRC;hinOrimE3S;a O;aOnaCN5;irC5Yrm9X2;e,ian O;cAX3humanoE72;esentatiOiseC2X;onal state OveBTM;trO;ansf0;cation A5Yt;haBS3speedO; wBKJwBKJ;aWdeVeTinโ€“angiotensi7FCminC43nE5Qt-a8HRรฉO; Pe O;elise goldsbA6Czellw9JR;aPdescart3giB3JmagrO;itH;ngรฉlDM6uberjo4G1; 889eOwableANKรฉ 5SK; g2U8;rE19zvous with 8T1;issanceRtQultO;! O;clD7Bft,iD3Nmรฉ929;e reinsDYAo s44I;! O;aE96hOt517;umaDY4;ain 1AGbr8WDdesivE56eRington E75oPus lBZAy O;hE4Xl6PS;te Ove7H6;desktopDPWprocedure 81S;dQmbO;er the Orance of earth's paE5K;monster7K2tiARJ;y DIP;atiUiO;ance Sc DINgioO;nOus views2NO;! in O;aOcAVYgeCYHind78Hj92LruD50s8O1tA02;ncient DS7;enDIJi4J1;onal47QvO;e Oity6JC;kEpermitBJ0strengOthermE7V;thE7V;chsSdQ2gn of teAKKki,ms,nOwa;a ueE6Hc0L0deer0QOforceQhO;aBUGold mO;esE1C;d7E5ment 7XW;fรผhrer-E78tag O;buAKAfiB;enZgWiPression 8WOular Oรฉ-jean DKF;ex84KshE61;a ma7TVmeDRVnaRonPsO; philb4tered trademark D81;al comprehensive econom8PXs of O;e69KfrCMLiA6JtBZU; Pld O;dy0veljE0G;cC6RhaCki8spektE4M;aePie O;buDZImiDZ0wCGV;!t2;cy eOsBOZ;n8GTra;ormQrOs;actiOig723;on,veE77; OaE3D;clB4Gj539; drumANRbDYId PnaBWNseOve88C; witherspoATK's peanut butter cuDI6;biDTChaB9B; T-Sbu8D3dRfQis,mi,neJoOs5CGtuC9Iuced instruction set7RGwaCโ€“black DVO; of heOx;al0;aCoo; 8JKit;light2UFtailed AHY;army0Hb0Cd06e05fo04guard03hYjXlettWmeDT3nose day ac25TpTrSsPthreadOwoDCP; of DWC;caBea,kPpaAHYq4GUtaO;r belgBQWtes and blueDUF;eD3SuC;iDW0ose4B1;anE5Dill and blu3Y2roducO;tioO;n CXV;er6I1;oBM0unglefoBC5;aPerDJQoO;od,t chili peppeA6X;ir,tO;! enterpriseO; lCVM;i1s;rt,x;lCZFnveC8W;aE40eOwaA57;adOer;! O;onDU1reO;deOvo7VU;mpE2E;lRullO;! O;gOp1H7raBLO;mbh;ood 7G9;! fDI1;eYhargeable2JUkXoSreationRtQuO;rOva;rent8JXsi2;i7LYum;alACT;illessC7Tmmende6CFnRrdO; Oer of d1NX;of Op6KH;lodossD04ragnarDX6;quD75struction73D;fC4IiDXF;ivePnt Op tayyip er3ZTsDS8;african origin of modernC1Dd9ZY;d pronuncC9Or operating characte4TJ;aTePuO;ild of0O3s;cca Pl wiO;ls2thout a0MR;bBG0de moBJTfD3YgibnEhaCmiDX5romijn,sO;chaeCBFug9; mce3F0r;ctXdVgan assassination atUlOp0r02G; Q-time Pity Ome,politD15;bD6Tte9XC;o14Vs1R8;betFesBOJmadrid cPnuE03sOtime streamDJGv1UB;ociedE1PteI;astBAFf;temC1M;-only A7ByO; player 729-to-assemble furniDSJ; naDLVive oxygen6TBos; celta de viCTXaPd O;espanyE4Zm00G;! O;c0NYrC2O; leiB6Ymk;'s a4Ia4Gb4Bc3Sd3Ae38f31g2Yh2Vi2Lj2Fk2Cl25m1Rn14p0Zquel 0Yr0Ws0Lt0Eul j77Iv08w imageBN4yPรบl O;ca6BBespD6V; Ua and the last BGLleigh scat4SFmQnaudDP2oOtheon4XO; valleOn;caDCY;an,ond O;abBFBbPcOfr8L8s107van barneveE40;h9AGrCXJ;o72VuDYG;aDCCbYcXdVharryUj,kTlSmRofE29r6HSstevensQwO;alD2WiO;lliam9ZAnsCXV;!on;anz3SHeaE38ilDY9;ewFi3VK;r75QurzweDI2;haus5;aOoAQP;lD3Avi3;h8DNomC9T;o0WKradCE0;aDQDeRiO; Ochandran a5NU;shaOtejaDYDvakDHU;nk9stE0Y;!ena taCK6nO; CPN'C9Y-symo6W0na,sbrรผckBLB; TaSionalRko mladD9Cpac-dunQs33OtO;!leO; and071s2FU;e DEO; D31iDV9;n3SEtouCZP;ki8paJ;cal does not dream of WhRpberryOtafaE0O;! piO;! O;f3MSos;aRidPmiOom2triya swayamsevak sanDY8; ACBka mandC4I; BZXa OunDWB;jE2BtlaDM8;ad pA7Wd eAQU;a dreamiObunny girl senpDSZ;ng AF0;bg,e-earO;th e998;ca6JSw9X2; DNKeRhael war2ESiPtuBunzelO;!'s tangled3BC;d Oer;antige8NBeye movement sle9DXtra62I;! during the occupat91ZlKseDZD;a daggubaCQMbir ka09ch dr8A9dWgVi UkOma ยฝ,somDW6ulph f1OFveerDXR;inRs and insignia of O;natoPthe waffeO;n-E2Y;! armies offi47R;e1EOgO; 7FZs of universitieD8;lakshmibDSImBG4padC7E; CRHasthBQTe3UL; Yall XeWhirAE8i z7BToSy O;b8SXcQgre9GTjD5WmPneC90o8TPq7PCrh04HsOtrD73weDJC;a5XFtBTH;eiDWRoE2P;al5C0ouDQI;lph QmO; O-75Vized controlled1H5neE2M;access memoDUVfoCP9hE21number3M5v6PQwa9W8;ch8U1sBRB; 330e heDUN;cu9UPe802paDZI;al'OcCM4paC1Q;thE04;po6HV; 00aUbTeRiQjDZSmsD3ZonB0FsayPu6zOรณnAW3;an kadyrD1Yi yous95N; m821's kitc2RE; malD0Fn dj5QQ;n,sO;h bal4ZNsesCT3;oAW8ut1;! rajamDU0d1k0R0nOyaDON; Pa maharsDQTi durvaBZ7ujaO;!n sumDH6;spectO;rosO;coE2R;chD2GdaE21gopal vDVBmohanBS1nath koCSNpickDKRtrCHR;f Tly 7J8phO; Oie3FJ;bPfiennesD4UinD0Glauren29ZmacI8nOriC8Fvaugha7NGwaldo e2XS;ad0or4BE;aksDQJel1J4rO;eaks the iCZRoE00;li8TErang8P7sc3E9;esh jhunjhunB46im,shPuO;l preetDWIt5;aDKDit6D1; Sas5K8eRiQkummarD6JneeshOon r4CLpBWXya 242;! mBRYpO;urDZN;nikan2UWvBP1;ndra7LHsh1L;kDS7raja1S9;!ders of the lost0CMj4lWnQsing O;arOdi2the flag on2BA;izoDNY; SbowRdropQeOfoCO5mDONn 9BXwater harvAK4;r Oy q1Q9;maria rilD43werner fass4Z5; 75Fs keep fallin' on my DY9;! tDY3;m1of4JOpBUH; t4RgE1Q;eemCU9m e0ONul O;dr9Q7gBOOkO;ohDT2;'n'boneDXNdoCe against62OiPnarOtiE26; lodbrDT1รถk;ng A6W;ael Re PfO;aella carrร ,ey ca6HO;judC7XsO;paC;aguilar guaj80YbenรญtDUXcPdos anjDTTnadMtrO;ujBTZ;aro quin55PzichDTR; Okw2;dawn c1Q0sremmuDZP;a04e02for01hYiPoO;n,van karadลพD6F;aUcal5YJoPsh,um7M9xO;! 4TM;! R-frequency idenQactive Ocarbon daE22h57Visotope thermoelectric4XFs9T1;contamination from the rocky fOd6D3w6VA;lats9K1;tiA1Q;city music CULfC98spBGTtelevision of k419waDQX;n,tionO;! 96C;a Pe shyDYJika O;apHm044;krishnaAQ2mi79B;d CSZ;onOtzkyB4G;! rx vega C3Z;mel falcD9Cr;co2e 04hTiQketOlD2P; AZJeerO; influenced and corrupt organizationsDCPi8;al segrega5XnOsm8GK;g O;gaE17v0U4;ael Xel O;bVcampos-dufRMdUfr5VWgrShuRjDTNleDJNmQrANZsPtic206wOzeA99;aDYYei2B2;enJBheCCF;addDYZcaC48in0;nt0rd-D7U;e5iO;ffitBHP;olezMrBY0;iD45loDGArosnA2V;ha9PYleigh7S0s4A0ta8XV;and Ocon5V9;crim51Lethnicit247iBQE; ne bana di joDOTaRbitQindranathO; taO;goB;! rabbitY5;t,ul;njhanC0AshiOzi; khC0R;l ghBYW; 1N'orianka kilD1F-1Ma1Ibit1HeBCKi1DlipBC6r 1Cs1BuOwC51;a0IbDX0e00iPoOr1tb min9venzhanรฉ waC5Q;kD5Kra,t6EX;bi,cWddDOYet BIKnPque sรกnchez flD1DtO; indiaBPQo;cRi6oa,tO;aPon O;de koJjD2K; bruDSWna rD36;eOy9QC;!aO;รฑeG;!kO;bDQ9soE0HtiE08;bec4JCchu5R9eUnSrRstPtOzoB64;iaCHPzalcoatl86I;iOloDPG;onnAM5;c3CLy 20Q;tin Oya;criC2YtarantinoDTK;nOr; Q's gPpiNsO;! of the stone8JMlaDW5rรฟcDOI;ambDWDuaDXR;anne1HObDRRdiDS0elizabethRhyoC6Kii,jeongsDZClQmary university 70Sof Ov5YN;sB2Othe O;damnDV6u8PL;atifDQ0etizia BDX; P-class O;a6IBbAJG;ii,the queenBIV;d07il,keDXTl01ntUrQs9ternOvo;aLionO;!s and spatial roCG3;anBIKk,tO;erPi7zO;! cDHL;-l13JbaJ;iSumO;! O;b5NBc8OEdDZWentang94Hfiel51Zg1ZTharmonic o84PlPme8QXof soDIUpBKAsuOtunnDS3;icide andAK1per8Z4;eBYVogic DFE;cDWBle,tative O;eaDO4;commSiO;a,tO;ative5NUy O;ass6NLof O;liDZ1sAY6;! snapBAC;rOtrDR0;aRiPoO;!phBWV;ga fintech sBVlateralO;! security dialBLR;ntiDNYtO;ic Oure amplituCFP;eqBPLfAS9; worl8KP;coCMLd8YK;anlong50Tgo8l4nOyu50P; PgO; dBAKdD6ShDNI;dBAJshi h663;torCMY;nQsBKYtarO;! O;aCPYinvestment99OnaCSK;on,tasD51;fBV0le7OB;faDLB; versus npAIJ-UHaMFbsMEcMDdM8eH9fH8hEYiD5j D4kA2ClBWnBUo75r1Us1Ct17uYyOรจre lachaiseBQVรฉter mรกrki-zKโ€“nHF;chaDLJgmy5IOoWrStO;hOorDMZ;agorOia;as,ean tO;hAXYrC0B;amidQenePiHolCCYrhO;ic v4HLus of epBBU;anAPKes;! 1R5; yeD60ngAYZtr ilyich tchaiCAG;'er6ZWb0Me0Kff4g,l0Bmp09nYpWrSsQtPyi,zO;hu,zle v0R5;loBDBrefD9Pty;ha5WUsy O;caDTZgaloBriDYLt8Z1;chasing power paD7Adue QgaDXDiPple O;hA30m1; jagannadh,m,taN;phDQCunCFX;etta maresCN0pO;et on a 1YMy;cVeUiTjabSkQtO; gDXDa O;a5CScaDJD; Oy33K;roJs56K;! nation6E4iB9B;c CGNsh0;!eth rajkBLD;ak jayaPhOtBOD;-drunk9LFed 7O1;! regC5B;edOk4; up kAUQ-storage hydrDE;itzer prizeUmonary eTp RsO;ar,eO; oxim7DK-O;coCE8width CE9;fDAVmO;aga985;deDPRm0HJ;! for O;d8HBfDAR;lla magi madoka ma6LCrto O;riDJLvall1Q7wiC6Y;erDR0gCFXic 9XFliOmDSM;cOshโ€“subscribe69K; O-key6ORation history of marvel comics crossoverDSR;coCNYdomainSeBSKhRiQkey Pr8YWsector undertaking5N4tOu7A9;ransDL4;c4JEinfraBNU;mage7I0nvestment 6BJvy;e17Tolidays in9IQ;! O;dKin8ZE;eroRolemO;aic PyO;! i sAF1;dB8OkBT8;carpus santal1CBdactD9DsaDDC;a04eudo03ilocyb01o475v eindh1U2yO;!chOlANL;edelic YiVoO;-CNSaTkinDM7logQnCA8pOsFth91L;athyOoC2U;! che4F1;ical Oy;d8GMfDA2hoA8WpBHXtOwaDIN;hriDNSrB1D;ctive05YnCB5;atrOc;iOy;c h5HHst;drATPmCHRpD46roJ;e cub9KZinO;! mushDBS;coCK4ephedD02monas aerug7VPnDH6r4S3sB6O; gDE4lDUP; mBRJa4Ne3Qi1VoQuOzewalski's72G;e l87Gnella sc8WZssiaO;!n2LS; 1Nb1Ic1Gduction 1Ef18g0Zhibi0Yject0Tk6D5l0Sm0Pn0Oof of 0Np0Fs08t01ud 00vPxO;ima centauri65CyBV1;enceXiO;ncePsional O;government of the frenchAZ6irish r3T3; ofTs O;and territoriesA9Vof O;cAJIiQnepMsBA9thO;aiDP7e O;nAU0phDJ8;nd64CtaDGS; barceB19;!-alpes-cรดte d'azDCE;boCONmaL;a7F7eThom aDNCiDSQoO;-PnOtyDK5zCE3;!maD8Uv69H;germani75Uindo-europeanOsina59B; Os;laD4Dm98E;ctorate of bohemia and mor9ZZin9GAro988stanCAMus;ciAPFeTopagnosAperity theoD4TtOus;aOhDL3i9UH;glQteO;! O;caDL5m03G;and4;!cDHT;aUerties 6PIhetToRrOylene g6CZ;anolDUViO;etary Oo68T;lBU3soCGC;fDUSrtionalOsiDR3; repres7I6;!s and messengers BT2;gDTGne;conceBR6s6A5woDRB;gDKQoDUP;aBethPisO;c8MUed DOCing youngWX;a95VeD;etariDGVog; Pions of populationO; g6V5;g366haPjupyt0mOpDA5ru34Rver6Q2zomboDSL;aBT0e5OJkultG;bakkB21il BGN;tion8AA;eVnatBWRrO;ammRessivO;e OiDLJ;eGhDTCmCMUroJsupranuclear pAQ9webO; ap7KR;able logic 0CCe for international student21Ning O;languageOparadigm;!s used in most popular websCVP;rAsCTY;aBHDessOumoA6M;ionalPor O;laC24moriDOCx;! O;dartsCD8seCG7wrestlingO;! match 9MI;car speed 8IWmCFSof the O;james bond8E3lord of the rings fil08Z;eOol h1LEra5Z2u23;dural7JXssor regiDKE;abilityPiBVTlem O;of AJOsolCAG;! O;dOmass DFBthBCU;ensity DFAisAMF;boRevolution s1LYfootball hQkabaddiD62t83Fwrestling O;illustrOnoDKG;atDPK;all4CG;no,wl;c1Dde and preju3EXm13n07o05pyDFVsYtVvRyaO; bhavaniBXCd2T4nka O;arul m3JOboDSLchopraO;! j5OJ;aOy council 841;cy8D1teO; Oly held CKP;eq8LLmilitar47RnC0S;am,hviraj OiCEM;cOkDJJsukumCTC;ha1EH;cilla TonOtiDFB;! QerO; 5FD's dOs of the ghostDMX;ilemDM3;b5HLpOscB9D;lay8DH;ch1p1XT;n,rO;ity queDI1y of DFN;cPgl3tO;ed circuit6FXf format 1U7ingBFBmaDEU;eQipalO; Oity of sCZN;compone1YHph4DF; 00lyBC5sOtoBB7; in the7C7s O;alice of Xbeatrice5C6cVdeokhAY0eThaya bint67Ojulian4NAleAmQstรฉphanie of m8N3victoria O;louise 5MQof O;hesse and by89Wsaxe-coburg-saalAXO;arPiXononoCV0รคrtha O;louise4SKo90L;garDPOina 05;lisabethOugenDQZ; antarcBVZ;ecilie 02harlotte of O;cXw8TS;baTt8IU;aXeWgeorge of cVhUjoTlouis of RmiPof Owilliam of glouceDJ1;p0JPw8TP;chael of O;keDCS;baOcR;ttCTB;achim 5MAhn 82X;einrich ruzzo reuss of plau5isahito of akis10C;amATM;dward BHDmmanuel de meroCGJugene of savCGK;lbQndrewO;! O;of greece andCOA;ert of sax47YumD5H;'sANOaUePitive 7GZorO;dial nucliCGDsky krDHD; Pira B8Cra divisiรณn rf8UYtime emmy awardO;! for outstanding comedBV6s;minister of Onumber74Usu6YV;au94ZcaA6EiOj8MMm6SGsw8ZWt8IA;ndAsDGK;lit3EEry Ote;c65GsO;cB83ector of the8M0;eOhard colBMC; PwaterhousecOโ€“earnings754;oo4UN;elasticity ofOiDRV; de9FP;-0Iamble to the constitut6MUc0Fdni7APf0Eg0Dhistor0City zinDSRju3D2m08nuptia07sQtO;orAty OzI;boy0JXcuBgood privaBZWin piCRYlittle liaDQCwAF8y3OJ;byterB7Hc03idenUsOter 7KQ; freedomDROurO;e Oized water9W3;c3V9mO;acCOWeO;asuO;reD25;cy of VtO; Pial O;medal of6FCsyBTJ;of Opro tempore of the united states se9I8;chi7f7ETgeCHUi5TFme8T1ruCODso7EKthe O;european PpOrDQunDEY;eople's rDPhDF1;c60EuD2P;b632d630j9JEthe council 8KS;ott3ARription013;l 522;am,ierO; leagueOship rugDMW;! O;dB1Yrecords and7BX;ic6NDy;ab7IZn9LG;ectures 3XIrontal c92S;ambDANe90LiOog2YX;ousOpiC7Xsion and re7KH; mCJF;coOejacuARWraphaelite bBGA;de5LYlumbi6OH;bhXdWeUgPkash rD79mila jayapMnaOtama aDI6vin t8OF;b mukhDH5v mohanlMyaDJO;e4QYmaQueO;! O;astronomical cD9AcaCGFspD3X; 7WNtiO;cs,sm;torianOy for9JJ; g4AK;a,erโ€“williDARhan mantri kisan samman nidDES;as,u 65R;aBPDc4BdcaDNWe4Ag49i3Zk3Nl2Hm2Cn28o26p1Fr0Rs0AtYuXvWwerOynting2CNznaล„; PaD9AbaClTMpc,sOwoCWD; bootDFKheClaDGB;brD0XfSiC5NlDG2mCIYoRpCYNrangersQsO;eOu0O1;ri3t;! dino9Y7;f3LGver55Z;aDDKive conCB0;ertyCYVidone-io8G2;ltLnd D68ti6;aTePplD6BsdDNRterO;moBy;mkin v4USntiO;al OomDCV;enOsuper5MD;erCZRlargement 8JM;sQtoO;! O;chD2S;h,siumO;! O;chC7Vh9GNnC7T;e3YKi01tO; Z-Val codeTcoRgrQmodernO; OiDH0;arBIFli6DF;aduate92Desql;deOlonC97;s 6U3;!s in O;ba7D8caA41si7CX;apocalyptDQPcreditsQd7XQgr2QhardBHKimDECpunkProJsOt889;ovietDDAtruc0IW;! revAI1; s3O;ma9L8office passport seva keBOX;tOx;ivOron emission tomDJL;e8FKiDGM;c08firio AKIky5RUn03phB46rD7Vsche00tO; Xable networkWerVia deTland Sman68ZoRraQsmD1SugO;alBJUuese O;colonialCJPemDBAiCY0laCYHman o'CJPpeCWD;it of a lady o5O1yal of james bond iDLF;!fiCXE;ceCZWtrail blazeDNW; rO;osDGI; 3YZ's five force61U; g878;and starb9U8e1WKforwOmoresDKVr6G5wi6;arD3H;! O;cayBEAmOpana75Atayc1;ac1;hAMBmd,ographO;ic filmQyO;! O;in3VFlaws by 2NO;! aDC4;eCMSoPupineO;! DDH; rosCNB; 0C-8DQcorn0BeXpUulO;aOiDFW;r Qtion O;d6CMg6P9of canadaO;! by province andB5E;cCZXmO;obilizationB1TusDPN;eDN7yO;! O;de9A0moAGFplayDP0seDKD;! PyeO;! jDMYs;aXbWclement VfUgregoryCQ7hormisdDP1john TlQpOsilveCYD;aul B8Wius O;ix,xDKZ;eo OinD;i,xO;!iDKW;iCY3paulCENxxiDKV;elix CYOr84O;i,vDKT;enedict xB8Oonifac2DT;gapetOlexander B8N;usCPW;! DOLflD4X;aDOUmC9UpuCOBrOsmoCQAteam epDP4;ap,oJ;d7jaOn lD2J; hegCC7i;di06Sg,tOyo,z1HA; du 6U2e mo6FTiO;ac Ous piAOW;fire5PMgD67; RePodoro 8B7peO;ii,y;gra9EMlo,raniaO;!nCZ4;klement577poCWS; pDOOa0Oe0Li06ka05l02o01t6BIyO;a9PUcZdorBHMeWgVlact9GSmSnRpPsD8MtOuret3X2vinyl chC5M;etrafluoro4APh1DT;hOropy4AP;enDNIia;es3UWo26A;aD66erO;!aO;se chainCNW;on,raARG;st0thyleneO;! O;g65DterephthaAOD;a9E5ystic ovaryD7I;! g,niD8P;utOy 1KD;ant standardsDNAion of the gaO;ng3;!-dotDJ7;ce 00oZshUticO;al Po,s of O;cAB2t9F6;appointments by3SYcorrectDMMe8H7pPsO;ciDL7pB2Status ofC6D;artOhC1Z;ie5W1y; Pโ€“O;lithuanian commonwe0Y7sovietCHB;aPhus1QJlanOp6VSzล‚oDH6;dB04gCW2;irBJRlBJCrB02;! vAM4;in a pDNIranks OunC58;aBEHof98Y; PnDNRsO;!t9;of inacces7YTwe716;ndBH5rO; Ois;bearOc93S;! plO;unD5C;erYi52VรฉmonO;! O;bUdiamond andVevTfirered and leafgCQ5goRheartgold and soulSomega ruby and alphaQplatinD7VrPsOtrading card D79uA7Dx and y,ye6CZ;un and DHLword and 5ZO;ed and2CFuby andO; sapp9JD;!ld and O;si7BZ;ol855;lack andA51rilliant diamond and shiningO; p0CN;! pAM7;nTrot's earlyA9FsO;oning of sergei and yulia sQsonO; dAER's O;eqBDArB1D;krO;ipM;carรฉ88MsettAtO; Ps of theO; comCDI;and c6TDb5ACg45Wof AKI;c1B2rD1T;'sC79tL;ahontDMHoCSK;c financialC7YeumoO;nAthorCYA;aXeTiny26ot of the rue saint-nic25LuPyOรกcido 87Q;mCY5woDMG;g-in4OYsQtO;arDAPoO;! C84cB6FniD72; and minus s6Yโ€“minus D1M;ase pleas760dge of allegiC0QiPurO;iC88otus ostre81I;ad3stoO;ce6;ce0Kg0Hn0Ast08tYyOza4EI;bTerunknownSing cardRstationOto6;! O;nOportDHPst0QKviDMF;etBSSow;! 88N;!'s battlegrounds 5B8;ac2B4oO;i c6XTyO;! O;m4TUplayD1J;eVform TinumQoOypD;!'s retCQJnic Oon;loDAZs1A7;! OgCKR;eDHTjubileeO;! o7XC;asOgaDLK; aAKH; OlDHX;ar7FYtectoBSG;er,ic O;heAVRono 7WUp187sJJ; b CVFckSd3NNetPkt2ned parentDLJtO; sym05Har04Q; Pary defense coordination 45Ds O;beyond nepB09in a46S;h0ni6oAESsyB6DzCO3; O'sC63;coAY9l5KPu3R5;iaBJMueO; Os 6GX;doD7Vof justiCG1;bo,s1E4;ha7L6masDB5;-1Fa1Cc16d15e0Tg0Ska0Rl0Mn0Bon,p06ra03s01tWvotDGSxQzzaOรฑaDLJ;! OgateA8K;hBF8margheBZ;aQelB9EiOlr;e Ov;loDC4;bKrO;! aO;nimati6XM; 9PLaCSQcRtsburghOuitary0C;! O;penguiNsO;leep quCQRteeAXO;airnCISh perAPN;a,tO;aYol;cy,nhaPteO;d movie release 9CJs of the caribCXP;! 6X9; torReOpi longstD41; Pr O;a553la9NZperaA48;boCAYo8EL;reN;-upC4RbaCeVgu,kQnipDFQoOteC63y4;cOy big broD68;chCIN; OpantheCVB;diDCEflO;amingDC3oydO;! O;diDCBโ€“ OP;aOw6X2;lOpp7; gDD9;aRlarO; Ps of O;crC6e5AY;of s4WS;f,t3;!cARD; 9F8eonholeBLR;ces of aLMdYl B8FrStPzO;oe3UY; mondD2Zer bruegelPro O;d'abaCREscCBW; the eB20; paolo paACRce brosn1oCZMrPs O;co30Pmo8DV;eOot; P-O;auguste renoDFYemerick aubameAKCsimon lapD31;bou4J3c9N4gasD4EkoLlavMomidy9tr2K1; piper of hamCI5moD3D; 013g4;atinny BGZkPo BZWrC6CsaDJStOus;s,ures at an exhibiDF7;etQleOup t8ZF;baCd cO;ucuDDP; feDIIt'sAPM; DAHnoO;! key frequO;en9AN;ho7rame3ZF;a1Oen1Ni0Enom peAKRoZp,rWyO;lTsiO;cPoO;g9YSloCSB;al Oi1;attractiveDI4fOgrC2AlCYOquality ofNRth8NX;itDI3;icia rashDEZlis Oogenetic D77um;diDA6ge9VOl9HWsCRZ;ases from the hitcPeAT8ygiaO;!n cBIG;hhiker's guide to127;!eXnTsphRtoO;electric ANTgraPli5W3n,pDD0sOvoltaiBPX;yn6FN;mm6YVpDCH;aHorO;icDGAus;eQk,oO;graphOn;! 872;me,pe,tiBPPyCCI;be RniO;ciaPx sO;ky harbor D6DuN;!n BE7;bridDBBcD5PdynevDF8fCJUnich7AHto18Iwaller-AJA;! beta85HlPmBY3neas Osh8X8;and ferb,gaD0Q; 0Ia0Eeas0DiVlipToO;loCRKsophO;erQiรฆ naturalis principia mathe66AyO;! of O;friedrich n59LsASL;!'s4CM; Oa sCL3s exeter29Y;huA8EschofBU3;pOstD5G; WpOs;aDE6e SineO; Os CC0โ€“0QU;aOeBNPleroy-beaulBSQnaBVNpeso3M7re90Nst3M5tr95F;irOrBDH; fBEGlD5A;cPoCIJpO;ozzo di borC6BรฉBQC;leCS3out2M9;bak2AAg5O4iRle84BmQpulA48rPseymourOthe9BLv AW2; hD9G;iALIoD00;c05Vichael 75HorrisBZ0;iPv of O;frBWEsAVZ; of Oi AVW;frBWCmacCTFsAVX; foC59;delphiaOnth7O0;! O;eOflAP9inD5G;a5YGx6OL;anselBTKbARLcoXdWfAJKhUivEjCJRknDENlSmRnCCOsO;iOpeD4A;lversOmDFU;! archival45I;cCAYickeCKPuBL7;a48Eord and christopher D8KyO;noD8M;ar8OSeO;aCZHllmuCZH;o6A6unD7A;llOuCKJ;en,iCAE;cycli86IibBBHol,ylketon3OB;lVnSrQse-O;lockedOs58S; loCOU;aCXCise3macOoah75Orel08Q;euticalB8Ey;ero8TLtom O;bOst454th3C5;loDH7re9GW;anx ciD80loplASS;c cskaDEUiz0;a4Cc1d45e3Zg3Wjo8VRking3Vl3Smbroke welsh c3Rn2Zo2Qp2Ir1Hs1FtRugeDHEwdiepieQxeDEZyO;oHtoO;n mBC8;! vs t-BJG; s1Aah tikCFSeXite m2SErQtOula0C9;icoatOy harbourโ€“maddox coD64; juD1S; TarD58oO; poroCCXlPnasOpavlovsk-kamcha473;! C4I; eBV2eumO;! O;iB7XjCUT;fiaDG8y1ฤeD52; 0UrO; ObCTBlooA4E;a6NMb0Pc0Ld0Jf0Gg0Ch0Aii08jCIOkr07l06m02nyCCFoBKHp00sStQustinCF4vPweO;ir,ll0;auBSK;hOoDCG;eCL7iI;aTcSeRiQtPuO;nC41t2OB;ee7ormaB;dd7ng0;lAT7rafin340;h2D9olaDCDulD10;fr1rsO;g0ZYteCMQ;aOhA3BrBI0;n,ul ru54;aQeij0oOu9MO;lOrg1;yneC4Q;cnicDFEnlE;awC63orBynD4G;auDEGopoCBZ; of OiCCB;ruCCDy9K4;i8CEoO;lm,rt2tD8S;aQrO;av3iffiO;n,th;briA15diDG6lCMV;aPinD46onDDVrO;amCIReu5RK;c54Plk;aOinklageCHJruAUQuesCYE;szCBXvCB7;apBFLe3QEhern4oQrPuO;ll5s9V1;aCBQiDEJouD3Z;ok,yoH;as6TUeCY9illPoOutterwCR5;gd1T1y7;ingBG3;bRc9IZdPhegseCXHmaraABCpostle0ZKroDDVsOtownsheDBKw8W3;amprDFFe8PU;a4AOoO;ct0hBJQ;eDC3uO;rNttigi9VQ;emaD6Khop ADFoUP;cetarianD1Ehaw9tO; 83OiB6S; aspera ad aGBc0Jdita3W0e0Hf0Fi0Bl0Am05nell 04petual9DCr03sQtOu9LDvez musharrCGX;hOinCR1;! scorcALI;eXiUonO; of3RZaO; and reception of roman reRlO; OiBFU;cOdigital as4OWf74Slife of clint eaC7Brelationships of paul 1P5;aBomBTM;igN;anOmm2; Os;cD0IguCK4laCNE;pOus;ho6olisO;! 4EJ;ieCLBy 1T5;rB2Gw66F;aRiOuBV2;anOtAP7;!โ€“triO;assic7ME;cCPAfCH1;!in nCDZ; giA49cQneCZBodicDA6pheralPtonO;eCZAitF;! neur9LX;ardBKXl3;ect Oormanc03R;blD2QdaDACnuD8Lworld6W4;grineOstroiCJBzAIU; f2KY;ePivMussion i9JHy O;bysshe sheBD7f5ODjCGD;ntPptO;i2r2;-8N2i7; Ue TiSpPsiO;!co;a pCA9erO; OmiCXSoD3R;pBHNx;jn lijnBQEn the shoDE7;r13Bt26W;guardioDDJ;ny,pleO; U's Os2F6;aSliberation armyQparty PrO;epublic4IO;for freedom andAXWo9RJ;! O;a6A0groundBA2naBR8;cZLrmy of v6D9;for the ethical treatment of3V0power 8W5; 6O2a8d0Ee0Cg07i03nVtOรฉlope cruzD75;aPecostOhouse a1D3iCYGose phosphate pat4EB;!aBX6;gPtoniO;cAB7x;on OrDAH;pa4FQufo vO;ideD59; TsylvaniaSy O;lanQma9IXsO;eOinglAEB;renaC10;caD38e;! 3B3;bad7A7jiOstate nittany lio0IR;llCEK; 7YGciBU5nsular QsO;! enO;larBB4vy;m6CZw9; QuinO;! Os of madag175;bD31randomDBG;lOshuD1O;ei,iyu1;i285lope O;ann D40foDAQwiC9F;leton 9CNulCXQ;orCSP;ic1lPoponnesOvFรฉ;e,iASC;agGi sandD8O; o8DP;aPgy lO;ee,iCFR;sDtr2;-wee SrO; Q-to-410ageO; of Os 6GE;eCSNt829;gyCWAre7LT;heBZ8;agoCLLerastyTiat7WPop7P7rO;i,o O;alQc0RHiOpaBSDrodrigues filC7KsC79; Oi O;of br6ZC;modรณv9onCAB;! in ancient7RE;!cTfoAHBky blinBOPnutSrOsants'AICt;l QsonO; O's chi-squared BUB;correlation 4QH;hAUIjD95;! buBD9s;e QhO;! boOes ge9PH;wl,y river9V2;doAS4of KC;cPfO;! split and merCU7; Oa;order of mA5Gworld O;cup4IQdAAJ; CW3i9N3partpiAQY;! 01I;an7Oblo 7Nc7Kd7BelDBFg76hlaviANIi70kistan6Xl6Jm6Fn5No5Kp5Ar39s2Wt1KulZvWwTx ro2ZEyRzO; OuBTD;de la huOveC8M;erDC6; 934-per-7KZo5LYpalOsafe720tm;! mCCF; paCHIan kaly1eล‚ teclCDFnO; sOe596;a3O7taD9O;aniPeO;l dNHment condit5D6; rB4B; Z-peter tC7Sa YeXiQo Py O;d,s8EJ;coelC6KdybaDB1freiBs2FQ; TnO;a porizBH5e O;cOepisCV6mcA93;hOol9KT;alO;amD7N;e3GCmatrCOT;tteS3y perrCCJ;abdB9Fde5hiC08jD94new86YpaCDQr5PZyCYB;a0Vb0Rc0Qd0Pe0Ofe0Ng0Lh0Hi0Gj0Fk0Dl0Cm08n07o06p05r01sYthWvSwOyBIJ;alPeOhitBQU;ll0slE;kCTBterO; ha7XM;arC9AeQoO;lAQ2n hindO;enAS3;rho8DR;eAEXomas aO;nders9WT;cOhaBG9im2o0BNtaAWYun-hyung9A4;hOi5U0;ol3r93I;ePiBBVoOuddD49y1;bC88dD3H;is0uOveB;beN;i74VogCS2;'g9ACf7PP;ewmD42uCT6;cOeBQIichael gl9E7oBE9;cartneyOgaCSX;! O;an963diD2K;e 2AViebeC8GynBY4;aOlD29ru6LK;gaDADye;oseph6UHunger 2S2; oC6QsC1J;ePoOubschmD7T;g1l54V;at2nOym1;reD7Q;aOe9MTiamAZBleD6Qos9reeng1N3u1ZX;sco1A7u7YU;ig,ld0;at2rdล‘s;aCHNepodBKKirB8G;astelBXBรฉz32W;eQiPrownX7uO;chheD6Fny1;lCT2sso6CDya;rn78Wt05B;degboyega olaw8V3ll5nCEXt1IR; 0Pa0Oh0LrWsy UtO;aCHRiPon oswaAWQy O;duCBIh4YRjAE9mCSIs5AG; Oe bo868;dCD4haA2MlPsO;cialC4BmiCRU;abCJAuCD3;cCWYke584rO;aA4Xo4UW;e2iPoO;clDnymDA4;aCY3cPk s9WDot Ozia reggBUB;aCKZfC0Q;e 05i01k O;baZco450dXe7E4leaD34mVo'bCSMroTsRtro8HDvQwO;aOhiteC7AinC75;r47Oy6;allBNZiC6P;c72Fom54AtOwayA6J;ar,eCCE;bC2DthO;fuD8B;aOcgo2YU;h65CrleCNI;e32EoviCP2ufO;fy;mBZ9tBPF;a Oo mC41;arC48cPde lC47gC8DhOkrenwiAZDneMrout5Q5;aCWAeD0NighsCI0odCRB;l2Q1oA0K;dรฉsiPlumumCQGo'Orush5;neM;leD4S; Ofinder role0Q5oCI1s of47รฉ;integral forOof exi7;muBPN;gBG5udBC9;bVcUhiTmRnC75rQsPtO;il9V2oomE;ajC53me9ummeCQ8;ilEoBK5;ah64TcafD0KetheC3ZoO;riD95;ng7tch8RQ;aD09umAJN;enOoo6u679;at9;calYhtXsQtO; m7W3a,eOraD0K;b4u397;age on the lady 31BePov0portOwoD6A;! to pimliCUP;ngerOri6; piCFVs of theO; tO;itO;anD8T;o,uN; si6AT's O;t9ZVw83E;a0Ve0Si0Qk0Al06m03o02rD8Ms00tOvathy thiruvotAFL; of50UhXiQnership forPy of O;fiCXF; p4C7;alScle QtionO; AZ8s ofO; poD15;accel62Cb9CKpASTswarm oO;pt0OJ; dOly orderedCKF;erivaCO4i72;enoOiaBGL;gCX8n;ec,iOlEnCK2;ng,s;dy,xeAQP;aPiO;giano regg4UAnder nagG;!lCTE;er,iamentOop5BP; of Pary O;rBW0syB96;eCNOf4ELiCFPso1O6t7XA; Rer Qinson's PoCNZs and recrO;eaD37;dCOSlCWK;posEsolar proB9F;avenCVUbo-YchXeun-WgUhRjiPmin878sO;eo876hiUo-dD4E;-3IPn-O;jCA5yBER;ae1J8ee-PyO;e-BTJung-sC2J;so2;euOyu871;n-hABT;b4seCY2;an2M8ung-hCZ0;gCRZyBEJ;mB45neeti6W4s OzaD30;ag4HFcommu6hiC3LjC98mรฉtCVFsCQQ;id38FntPsBGHto O;d9Z3efficiBENprB8V;al advi5H0i8;b0Ec0Bd05ffin wCIWg03ll01mWnoTpRsO;hu7QViBLTocial3JAyO;mpatheOte;tiAL4;hOsBL7;ilAraD5B;iaPrmalO;! 3JD;! aBU7; vir c6OQahansa yogRiliCY2oO;re,tD3DuntO; O+;aCKNnBDGpiBBF;anD4Q;ax,el O;c7VHlCTRmACYuniverses inCC2; agrawMuayO;!anC0B;iQoxO;! O;iBBAof 1PB;gmPse O;loD36pd;! s4B8;eOoCWX;lsDtO;amD5M;le of the OoD5U;good samarAOIprodigal38T;aTerQpy boyiBT0riCB6ua OyrD;cB1VnO;ew guinD07; PbackO;! wr5DP;mC1OsiA36; Ql OrB65ver somniferCQUya;naD5YsO;ho3tCT3;john's88Or7TW;k C95lO;a fr28Ro O;di canC44gC53mal40Anu5NVso0C9; D2S's laby1OS-a0Ea0Ac07d02e01g00ic ZjXkaj Wnonian avaD3WoptB2WpsycB7LsVtQzerO; Of8S5;i5A5viii 6MB;eGhPi3oOyhoD47;miD5One;eOรฉ2;iCW9rO;! 9IQa;ex8JHpe5DC;kCLYtB53;a vaisshnavOshirB18; t9U4;a9FSroCKT;aCZJol4rD2F;er,tBY3;emicRorO;aOum; O's bC6M;pa47K;! sev1GH;aC6Xho vA9WreaO;s,tiO;c 7PZtF;maOsBKEvia tor1TH;! O;cOpa47D;anMiCYS;fB6Omerican45P; Qela OpAAA;aOcouCJMste1M3;dl2n75F;beesCPPdawb0fe8TZgCAIhuC0FolCZV;! 235aYeViUlSmOpaANU; oCHVa de mQeOyG; ACMr O;lu6I7raiCTR;al5CY;aBV6iativeO; caB;!ndCOE; PoOrBGNstine liber34N;coMUge6l8ELn7ZNzoD56;blue dD52of sett89NrBKI;ce of Od4ntir3WUu;vOw7XA;ersaiC6O;! Oi rupCWD;a584international869naOs85Etehreek-e-insC6A;tABCvy;ge Qm2nO; andOg takh2tings by1JI; g4N0;hPsMYturCQMvanO;zaCO3;o942uD24;aniQeOli7WC;rOt29X;!aC3X; Osm;huayGz965;dSmOre pC2Fua;aOรฉ amiBJP; OavCPSnabhaswamy25E;bOlak5S7shD06vibO;hu6BN;ington BNXy O;and the Pconsi7T7mO;cgC2Y;raCZQ;-m1hPific O;crest tB1AnCDoAYFt8FJw9;elbel's c9S0inCCC;acosta villarAADescob9hBQTlarra8MTneruD1Yp0QMs1AW; singh t3AVi ch madhaaCTI;adic C25vCS4; 9HI'har9S-9Ra9Lb98c8Kd8De88f82g7Yh7Qi7Ojib8S3k7Dl63m5Pn4Zo4Xp3Fr1Ps12t0Ru0Cv05w03xTySzO; the great and powerfB1YarCTQonePymanOzy osbourAGK;diD3Q;! O;depleCZAlCJ5;myak2o r55Ist0;al8W4enM4fQyO;coOmor2toc4;do6nt4;am,ordO;! Os8ZV;english dQhOuniversityAP5;ighO; school8A6;ictioO;naL;en Ol3ME;haD3HwiC6G;erOid; the S-the-RcookCYIfCGHjustificatio52VleC4Zseas QtonPview of gun laws by 813wO;atch seasonalCYOoC8H; windD11;c40IfrBHO;counterCEtop mediaA20;garde5EQr48Z;d,grรฉe-marihaA7MiBVFrWsmane dembรฉ0AZtO; of U-of-place artifaCEFback7VSer TkaCZTlPsO;ide the 52RourAI0;aPine of O;academic disciplCQ4james 7CBt5BK;st,w O;ki8motorcycle8YS;he9KNp8JFs7X8wilCRR;our h4CVsCZUthe9JO; Pan high school hoOoborCUL;st8YO;beloved 7AQf84JgQkind of C96laO;dy of Ost crusade or the rise of a n97N;fรกtiCUZguadaluCQX;a8iA5G;aXhWiVsu'D1EtO;awaTer,oO; Om8K5;c8KSfQpremiCL6skorzeBXSvon PwarmO;bi0;b4JNh1ZX;arBY2raC25;! sena9GC; maCQ3s r80X;elCTSo;go,ku; x08a05c00ecCPYiZkar YloXmVprEtQwald O;moB2Ysp5YNthe luckyO; r29I;eoPrO;aCAJiCQNogotAIW;aPpO;atCVRorBHP;rthrB8N;anC3BiCMXosisO;! jD00;! aCQW;dirlewaCKNschinBWE; mBMCrF;arOillo5VNoB1R; O-C5F;de la hoC9ShammersteiCI0i9MQmich9IUnunCUTpOw4QR;eCGGiO;aC3Ks2TJ;ka,mO;a1SFu O;dazCQFte46O;! O;el capAK0m735yoseCE0;a15bit12c0Zd0Qe0Ng0Ai01knElZphXson WtO;hoOolan bD1X;doxTgQpedicO; sO;ur7IT;onalOraph2WI; OiCV7;frequency-division multiple1SPmCHQ; j3X1y;be1scott 6RQweC3J;anABCeusO;! and eury2M4;ando OyCP7รฉaN;an71Rb7TMcitC4PinCP3mCYOnightclub884; and the VchalcCM4entUgQini kaiJVonO; O's 9A0;n7A0piB60;aCT8en,inO; of Pal O;antigenic s4equipment manufactADAfiCWRs4videoB7X;laC9Pthe domesticCBX;! e9CCaBKO;blind BMPwill of the wisCBM;aOo6y;niOsm;c UsSzO;ationOed c74D; Os of the duneCLG;for security and co-operation5OMof O;americanCNZukrainian national90U;ation of islamicOm; co9H6;cPfO;arC34oD0W;h9LDoO;mp7BN;gOiBCMo;aC87onO;! tAY1;er of RinaOov35Kre des arts et des letBLL;l BYYry O;diOjBNAleast s1DHpeC70;fferential AR3;aRcQm9U0nine an5HAop2FYs7IVthe O;bOcompanions of h7IWgaCTLthiBPL;aCIIr7JW;a9E7hC32;ssas6NZ;!hO;estraOidaAYL;!l manoeuvres7JY;! Pal O;me7ROp61I;bCQ7ofCUQ;cSdour-sur-gl63Sl RnO;!gO;e Out1;boA54fAIQis the newAA1;aAAGrehydration 84TsCZL;ene4GEleO;! O;cBIMd2Z9;al,e06h05iUo5OWpoSrah win7XNtiPuO;ntAs dC7B;cal Omus p73B;character rOf6FYi8L2mCYB;ecog278;!rtunityOsitional defiantB0P; coCWL;nion polling QoidPumO;! BIK;! epidemic7EZ;for the next Pon O;scottish767the emmanuel macron p9SU;austrianSdEJgRiQpolishPspEJuO;krainianOnEH; parliamentaryES;sraeliPtEJ;erEMreekO; legislativeEP;anCDFelia lovi78Uiu6NZthal5KY;c,l0Jn09raOth;nt coC5PtO;iOors in c and c03W;nB0UonO; Pal ampli6ETs O;maAX8re93S;b00cYdWeUfi7Q9gTmQnorthw6G1over3E0paperclCBHre8UVse0NOt1ESvPwO;arp speCUJeserรผbu8rath 5D7;aAKJe6FQ;arPince73KoO;cki3B8;ket C5UtyrALC;lBLAraCH0;agle clCO4nO;during5MEtebB0Z;exteC85own1A2rO;ago2;artwCK4hastiCXFoBBTrossrO;oaCNU;aPluOSoO;denplCTXlo;gCUHrb55L; U-Qai,b4RLcPdNgl,jdk,sOv5CFwCZ1;ea,treetmAY8uCX9;l,v;mid Psource O;iAO8lAXCsoBJL;back Ofront unO;rounded vowI;acCFAera tennis records โ€“ men's sin5FFl8QGmCTOsOunBGHwCX9;hortest pathOo79C; firCVD;! O;aOcAKD;stG;na Ort1EG;c4FZo5FH; 0A-board diagnosAV4ce upon a time in 09danseR2eWiVlPomatopoeAtOyx;arBWNoC7G;ine RyO; OfaN;fools and hoOmurders in the4ZD;rs3;advertiCMZchCJXfood or4EPgamOjavascript iBLWm4QRshop8F1video483;bCQUe;!on,si2; R-Pco4dC1TplDrBMJshCYKwO;!orCWS;child7H3pOtime pCTZ;artyAGQunchCTI;america ne2KEchCA6d8I2foot in the 523hundred UoSp81ZrRspring8NBtOw7K6;hOimes 37HruB46;eOousand and on97Y; w9KX;ace7HHi8;f OrdinaryBAE;th9W1us is lB24;and one dalmOyears of solAV6;atCMX;aB6Lh4SCme7YWsha5WKthCUJ;becoming a god in central fPthe O;basis of7S2origin of5LDwaterfBOW;lo4YD; ZaUeRicronQniPoOsk;rCL9s;-m1scient interfering 76W;! iBVO;gOprAQZrtร ;aOle;! CF4vCI3;ha4An,rO; PiO; hard7WHon;al-bashCTObraCREepC7YkhayyCUDsO;hHOy;mani padmeOshanti CCO; hCI5;' dirty bastaCV3a0Vd0Le0Hga 0GiYkiluoto nuclear p4NLlWmeB4Aof palCX9ubVx,ympO;iPus O;haB6KmoN;a dukB73cPque O;de marseBS9lyonnaF; O-class ocean lAZ4;gBW7sp9T4weightlO;ifCXE;ad1;ie w035y O;a8A3muCV3; BCBebCWCgaCLHvO;eYiO;a Per O;gi16Ama7MTs8NV;cTdQhPjaBKJmuCF9newton-6PDoC02rodriBL5thirlCS2wilO;de,lB6H;a9PNoAJOuCU2;'a9GIeO; havilCPVjO;onCEY;oOulADP;lm1oBYC; oC9Mr O;cr2M9hQjackson-c92LmacgreeBA4nC8Ap9QNreCRXsPtO;o7CYrCOFwiCTE;acCMLto6yk3;aOuCDI;rCFKzard perry-CCF;kurylBSPmered6Z2of kiCOOtokarczA3H; Pd,g OicCTXksandr usBY1mbe8ZU;karavay92YpenB8K;gunnar solskjรฆr,kirk christiaB97miss rebelsO;! fBZ3; Oest C2Ss4LO;aVbelie9ZWchurch slavBBJeC70k00FnTsStRworldO;! O;moOvC70;nkE;eATUown 4YRr0BP;chool runes569tyle and new style dCJB;e7X5orseO;! 7X9;cquaintBANge; caB0Wf OnWLv v3VB;ii3VAsc3C0; Xa9CIex,inawa Wja,lahomaRonomiQrPsana OtoberC79;grigor1UQlynC5V;!a;yaCEI;! O;cityPsO;oone9V4tate cowboysBYJ;! O;b93YtBH6;isCOVpC32;bo288cBAEtaec7VM;l pOngo bo7H4r1;a89Cl71V; TioPmO;!'sBGF;! O-BZ3;rCQHstate O;buckeyes footballOunBDE;! statistical leaB7X;my 967seO;-hCUV;aneBS0c Qgy and the cockroaCTZhO;am,uz tO;urCLE;niCUN; mice andCTHfO; RicOlineBH6;eOial language7XK; Or6WDwBGA;christmasCOUof strategicBGRs7PL;the 56V;cdQdipusO;! O;c5PKrCUM;! betterO; lifeCUI;a nob8BDdSeRiQnoklassAXOoPsonne รฉdo3EEysseO;us,y;ac0;n,sBJQ; to0N1d feCIBon leiceste34CsCCItte annCQMya CBE; Os67K;fuCHOta5J3;a6GKc05eXimum tenuifl2ZOtQulus O;qCPEriftO;! s;aSoO;ber QpO;ath trav7RQusO;'s C1Dsy;re8D4sBTE;l,ne raCUWvO;e,i1D8;anOlCUY; T's QiOus;aOc36P;! fAHR;el7X9tO;hOwelCJO;ir25T;lAWBsunB2T;am3R4itanSuO;lt,pO;ationOy wall CQL; 306al O;safety andFQth7YZ; C2Qie;d-ii piCJ2eXi-wan kenoAOWjectUlas52Loe,sO; AH3cured by18UeOidian9AJ;rvPssiveโ€“compulsive O;dAUZpAUW;aOer56B;bleCEJnce of christma41XtionalO; c665;-oriented6JEivPโ€“relationalO; m0Z7;e-c,iCKI;rOsiCNK;gruppenfรผOlinBBHth 9YQ;hr0;hu,kQsW4tOuCBVxaBIR;!h kOmeMsAME;ee3VZ;! AI7land O;aOr3DE;thleAQD;mikuBUKzo6;e CHC;'golo kan31Y-IEaDIbDBcD6damukong suh,e8Af84gi5A5h7Yi3Vjan marykutCN9kvd,le ch9H9m3Uo0Sp0Ps0Ot0NuWvUw5PZxSyOรกbr8LMรฉe,รญรฐhรถg2F4รผrburgC67ฤBQF;aQck de vCKTkAT4lPmOpd1IZquistโ€“shannon sampling 9T0stagmDx;eria 9YTph;a B0Pon;a 1KPn15rlath2ZS;ivm,t cO;hC5JruiserweighC5G;idiaOm94L;! nve4LH; mBL9alphan lamsCQAbAcle05d03j02ll4HWmXnWrSsrat fateh RtOuk;elCSWm99RriOty puttyBJL;a,tionO;!al y9QV;al4FB;-34RembergPsO;ery rhyCT4ultan nazarbayCLC;! O;coBGRexec7BDlaCK2tr7YN;!avAN9cha738o espรญrito sCAT;berQerOpy;a8G8ical OoC23;anB7HcBYT; OsB9C;of9QJsiC8DthABE;ab3;eOg6ZQity53N; b837;ar OicCQAo5O;and radiation A5YfUgAF7magneticTpowerPr8WQsBWCwO;aCEPe66OiBPT;! O;byC1Iin PpO;hase-oAMVlaCCF;frB77geBIKiC0Rt7IC; re7FQ;aBK4isCELuCEL;fs,r,sc;oCA7y4KO;-Or;cOhQH;ompleteCRF; 2Ma2Fb25cturnal 24d23e21fARVh,i20kAlan 1Zm1Xn1Po1Nr01sZtTun,vOwrBKNรซl co8S6;aReQgorod9VDiOosibirARMy56E; sCO9chokO; aBFS;lCRXmber-BVT;! scotAk djokCSRrtFvC47; SeQreOt8JH; dame fighting irishBUX-dame de parisO;! CNF;padWPs fromO; u0T2;another teenCPSgo50Xsafe for AYY;feraBQWql,tO;a4Y5radBSO;a17bCOGd15epinephBVNfolk14ilAR9m0Ro0Qse0OtRwO;ayALXegian OiCGG;air shu7IJforestOlaC0K; cCDN;e de santander0RDhO; 02amBUYeSrop grumm1umbRwestO; OerA9L;pOt8S4;asALY;erCKWrA;astUrn O;aB0JcReQhemi8CFirelandOmarianaBPSp9YHtA7Y;! O;as6ZY;uC0FxpoAAV;al3ZYyO;prD; Pern uniO;tCEMvB9F;iBZMmegal1D6;a01by nZcarolina2P9dYeaXgermanWhollywood shoo2B6koreaUmac83pTrhine-SsePv5R1weXyO;orks8NV;aPntinO;el AFW;! CCQ;westphBJE;acific right 9LYo7;! BL4n dOโ€“south korea71I;ef955; AGVicC1M;stC79;akoCRM;orO;thCNW;fricaPmericaO;!n free trad0H;!n4F7; Om5;colonization of northAZRm83L;dom sihano9XYvA4E; m6PMaO; she3KZlWnO; PdyOi,s;! landCNP;bScoRfinke0V0jos7OYlQmaPos3L6rOvincent pea7;eedDo6IE;il0;e9lo7N5;nquest5O6waN;at3orla9NU; Pized difference O;veget4S8watCJV;d9INpeBX2;! AF2; 6UMic Os1IRv545;c13HmBAV; OgaCIIh8GG;ephr2fateCE3waldstรคA9G;mOr inayat ALYtropCQX;!i ra7KS; non biyoCMH-Pa32Hdenominational387oAO8profit9L2steroidal anti-inflammatoryOtriniA5Lverbal 2QL; dr9NI;alignedAFJbScoRdisclosurQeuclideanPfungible1U1governmental9L0hodgkin lymphoCIMnewtonian81Hpenetrative7KNresident indian and person of indianO; o955; ge668;e 40J;mmissioned7SKoperationAFF;inary geBITreaking7KJ;aOic; dumezRRd,lizo leah tuBOX;g5HQnC1R;da,se p0CTtamiCBI;l Other'4GM;cl5GCfielC3Ug75S;em72Sirbek abdusattorBOK;a43BeA4I;el SiA74leQuO; 71WhiOnaga shi1J9o uem6RV;ko o0KYro watsuC8G; Osse obliC82;eightfold56IgCPV;memorial prize in economicCC6pO;eace8ZErizeO;! in O;li5CRphysiO;cs,ology or60Q;hOm choAVM; P'sO; aCLL;baum8Y8cPgOhaBOIjuCDTreCN2schBKJta7MIwy7;a9V5laCOJ;entOyrD;inBB8;country for oldCNMgame no CP8hiding00Vjacket requirCKRlonger h5QRmanOsudden moCEQtime to dCN6; 53E's O;laCLKsBO6;ap,daC44; no kuCF2a3Lbiru cataclyCFYc22e1Zg1Kh1JihC3Lk14l10m0Zn0Eo0Dp0Ar07sYtPue,vin pauCA3zhnO;y novgorCPG;hVi aayC04rO;am,ic ToO;gOus oBCV;enOlyc5N0;! O;c87EdO;ioBCR;acCMLoBCQ;i4ya m0QC;ek8XNour square9CVsanO;! O;gTleBQRnaA2LpatSqashqCDNrRsOvq7ULx-tAMEz-c9;e4AOiPkylineOtaBFC;! gR;lvA;b7UHogCD9;hfiBHHrCO7;t-r;maOvanaBI1;lOtrelvCL1; purBH4a sithar209;pOsey huss7;le,on O;bs BVWtv;biC9Gh;a 05e01iHjYoy aquinXtO;endoPh O;ge5K6;! O;dsSeQswitchOv5K6;! O;liHonCBO;nOshBW1;tertain72N;! BFUi;o CC2;aOutBAI;! O;asB8Bga8FUscAYGthA6P; P-dart fiCFStOvB4R;een eighty-AE4y-five thes3;inch nOnAUYy5JO;aiCM4;ariCM7dobrCGAhOsi6D9tuBV2;aOoCN2;g5r69P;itz-56IrCO5;and 9UCeOsson schmilBKK;! O;cOn33Kr0NG;roB7M;i00kWoO; kovaฤ,cado avocaBUPlPnO;! f-mAQT;aOe hannah821; Ri Oj coster-waldC20y yezhBMC;buPdOgogCN3rimsky-korsQD;urBMA;kh90Dlg05P;jokBS8tesCN9vuฤ2HI;hil1EXiOo7V6; Oe de j7IR;bCN5cBOUdel7BJfBA3gOh8SYreCIVsi6ZP;i5WLl8R6ra40A; lauCLNta O;khrush2J7mazep4;iB71on falcC2S;eVg0htO; QbPcoBwiO;ng,sh;irBB0ooCDD;at the3BAc9PSiQof the lPtO;eeC5D;iv4W1ong kn8GS;n the1SS;lQrO;!iaO;! BGZnAV1; Pla O;laBGKs89L;faAIKgBQ6haOlaBGJmanBKVng,slBCC;veCL4w1BL;cy naCEMlsPr reincO;ar7KV; boCADen ratCJT;arC7Scolรฒ 15e14h0Wk0AoO;! 08dem07lSmachean et74GniC95sAtinO;amide Oe;adenine diOmonoO;nucleoO;tiBAG;aYeRleOรกs maduCB3; 6HBtteO; shO;er619; Otte 8OE;aSbRholofc814kidBOHmPri7STsO;cherC57u5LQ;aOui0VO;in3lliotAWF;rownAAHy0;niBK5ri 77Q; Pe ceauศ™2KEs Ous copern8W7;anelBRFcageCFXfl9VYpรฉ169sarkoC30winding refn;coug16FpOst7TVwaBBR;ageCDJelCEY;o scarA7Pus;hรผlkBMNr1GX; UelQi Py O;ba8IKhilton rothsc660;cly6minC23;!baJodeonOโ€“metal hydride0ZI;! O;aOkids' choic6SUmoBOG;ll-star bra9R5nimation A93;antosBB2b00cWdVfTgaC4Bh8KXj4GJkSlaRmPnolHoffeB8TsO;ab1e5BLiriBKHza95S;aOo1DV;rkAVWs2;chEnd;am5roCyrgiCDR;ol3roCIQuO;eB8Yry;i9WXraBNJ;aOleB9C;nn2s1WBveO;! and the bad seeO;dsBF0;osOrimb7;a,trC11;elle07ZijBD9khCL3olO;as Oe9XW;brSf60IgonRhQiBHYlPrOspADT;al9P1;ati25Lyndh5AM;am91NouA8E;zalCEF;aCKWi2CJ;haCD2neAJ1;machiavAXTpaga410; Qc4gara2STll Pmh O;a9LMmc7ZU;fBJ9h9R2;dOjBX8lo8;acBI3;kSl O;heritage6VPoPstadiuOwintY8;m ANR;n tC4XutdoorO; gBK8s at lake t7OI;! general B70;lOt;! O;on QplayPregular 7HVsO;couting com8WLunday ti8SX;of8HP;cAPSfBM8;-BR2a4Cb4Ac47d 45e40fer0J9g3Wh3Ui3Jko3Il3Cm38neh 37o2Up2Sr2Qs2Nt2Au1Yv1Pw06xQym9zO;ha,ukO;o kamaBRQ;on,tOus moC9R; OcC0H;dutchXgeViRlQspPunO;ited kingdomW;anR;evel ch7MZibyan presidentiW;ndQrPtO;alP;ishR;ianQ;neration air dom6AErO;man fedP; genO;erO;alO; elBCY; W-ageB5Lark liberty C85castle upon ty6eB7Wfoundland and laAUTgrUhaCKMli6sStO; Qon's O;cr7Z9lawOmeCJ6; of universal graviB0Qs of8II;gingA6GscamaBCX; corpOmBW6naCFXpeBGK;!oCFV;anC2FoO;unC93;a0Vb0Scal0Rde0Pe0LfrAYPg0Kh0Ij0Eki0Bline7BOm0Ane1B5orleans08s04t02w01yRzealandO;! O;film4SMnational O;cA0FfBDYrugby union BE0;earUorkO; O-7MQ;cityPd6BWgiWWisl9B4jeCFSkn9H2metOpoCGSrNMs8V5unB1Uyanke3;rA3Ps;! O;c3KVdraft r0Ffc,police Os9FZ;commissiB76de0JC;! hon2Q's O;dKeveOre5WHsC03;! iAZ3;aveB4Yorld vBUI;eAHDhOr9GT;ougCGR;inceBSToPpO;a4ri8;uthO; w7K7;! O;pelBUPsa89G;e7KMo2;dsOnNM; on thO;e bC1F;aQerseyOourney toCG4;! O;deviCHC;ck s6NXpan pro-wBB1;a599oO;l4DUrizoN;i9M1uinea3LB;diCEVnglandO;! O;patrOsCAW;ioCEX;al,lC6QmO;ocraticCCP;edAQB;alAXKrunswickO;! neurological syndrome of unknownO; c7H8;dministrativeOge,msterdCFW; c6UP;aCH0eSiO;lle Os;chBG6lO;ancelotOongbottBY4; g5NR; 7AUrO; PlandOmiCEV; r17U;been ki8LLgonna give you C0Dmind the buzzc5O1rarely sometimes alB9Xsay never1QF;chรขtIrUschwansteTtrO;al RiBQ5oO;nOphBVJ;! O;boB8Zst9;cBRBmilk3AX;in B7K;alRoO;-linguistic67UdB09loBRImaC7Xn,plastiAPYs9SMtO;iBQPrO;ansmiAJG; nAP4iBI0; YbXcC3ZeaCGRflixWherlandsUscTworkO; O-attached830;address transAYZf8CYinterface QsPtO;imeBZAopoBRA;o8Q3wC6L;coN5;aC6DoACB;! O;a0R3in8T2naBBX;! aBW1;eaNoC8V;iOne82F;ncoCHX;aGpr50Ksun dorCA8tO;lรฉ,orO; makhBPFiaC72;iC2Okonda paarvC6Inst A8Fo,vO;a,ou9W3;alOhilBVRoAWNtu6;! s8SXi BQB; 8WD-YcVdymium magnCE4ge6lRm,nOplatoC6X;! genesisO; eO;vangeAWR;iPoO;giC87;be792thicO;! 800;lassicPoO;nservaAWC;a3Q4iC82;assyr4KEbabylon4KEnO;a508oCDO;ch8EF;aPesisO;! gBGE; cOtoB4Y;onneC3Y;lRson Oumbo nucCC;dilipkA4SmPpOroc6AJ;elC9Ri9DK;andeCGR; tiger Oie bC1Vy furtaBNZ;frC8X;paG;ghbXlO; Ol blom62S;aUciciereBDUdTgSha783pRsQtPwa565youngO;! discography and8JT;enA9L;edaBLWim2;atrick55ReaCH3;aiman8M9orsuC5A;egrasse7BAia8WXruckBZ6;rmBDHs33;ouCEU;a Oemiah per1NK;k11DshC8Z;aProO;!ni;sonic teenage warCCHtiveO; binomi0IC-index metam8BG;d for speedQlPm karolOnYFraj65Kt;i BXX;am kotXAima azeB8N;! O;heC25pay9QBrivaCEG;beOkBULlXZ;atCA3;ar zad8I9roO;m8A7nomADFp6T2sFtizingO; fasciAMU;r0GPuO;chadnezz8RBla award 2TS;l Rnder4B8politan Qr-O;deathOearthPVfield 2GF; experiCDR;no77Tp7IX;cas76EmPpurvis and robert5IMsO;ch2te0X6;aupKcdonBSU;aa division iPt dOuti gatBK2;iC83reCCZ;! O;football Omen's basketball4D8;bowl sub9YRchBS2;a RcO;! sPsn,uniO;versM;p9BTundaCX;all-staPfiA8UgBRJm1Hon O;abc,es4TDtBZI;r BZY;a4Ib4Hca airfoBSOd4Cemyeong7J6ftali2PMg48hua9S3i47j46ked 44l42m3Wn3Ao34p31r2Ps2Kt09u07v01wazZxaliteโ€“maoist insu06ZyWzO;aUca8TWgรปl,iOneen con3L7riya nazBTN; Osm;concentrationRgeB5Jhuman experim62EpC9AsOufC7F;aPymO;boAZ5;luH; c795;nin boniaC3GreBXK;aPe2iOpyidC4I;b buke7rah testi8Q0; 7FRntAEI; shOuddin sidd7OW;arABR;aQeOierโ€“stokes5AOjot singh sid9MPy14R;enOl,r; a6FE;joPl OrB;battle of guadalc4ZBmi6ravi2LH;! 7D2;ghtyBPYru,sC98tiO;cal 7OUlD; 1Wa1Ke 1Hh14i00oYsuXtล,uOyCC2;fian821rO;alOiC5N; Oi9HX;born kSdC4Ve2RUgCF1lQnuC98rPsO;atel767ciCCJelB7H;e6PNuAQM;aOoga99W;ngu5UFw;il9RR;ki hanC0Wme sลseBXE;! O;bombing8IXjoint military symboBNUphonetic AAD;onQvO;e Oi2ZB;american4N5hawaiC3S; 0NalO; PisO;m,t congressC88;a0Ib0Hco0Fde0Cf06geographCF2h05i01lXpTrPsOuniversity of si619wrestling5AD;cience fictionAR1ecurity 7QFtock exchange A5P;alBZ9eO;gister of historicOsistance front o2A5; plO;ac3;arOeople'sBPB;kPtyO; of 7QP;! s9D9;ampoon's Peague O;nBPXsBQ3;christmasOeuropeanOvaBE2; vaBE1;dQnstituteO; of standards and 62Es ofO; heOT;entifica9HN;ealth9CZocAX4;asc7FCilm rSlBJDootball O;coAY1leagueO;! mO;ost valuable playerO; a8DO;egiA57;bt7G6mocratic O;al59OpO;arty7BR;aliOllegiate athletic7F8uncil of proviCCV;tionC7E;a7F4olsheARR;nthemBA2ssembly oO;f so0U9;ofC2Gs9WC;aOuram godCC3;lie XnO; Qiel O;cOhaw123;halobC3O;aRbQch5fOla6;iOorB50;e9VMlASJ;edford 46RitumazaCD0;kรฉ,sO;pi7CN;emOkeACA;manuI;bu2M7dPne824rO;oAHJueCC8;i9O9oB0P;lTrajan chandrasekBCLsO;cha Rha Oia de219;bed88Sgregson wa52Ahens0C7lPo3V2rO;iAIKothB3Z;eggeC1Eiu bord0D5y7X7;kamp1RDmcel4H2;iOya neidC5Z;a Re O;aB04co7do17VgoCBMho9ZTimbruAF6mOportmC6Fsc2OPtr1woCD3zC71;a72UeO;rcBO0;dy0teBYB;king V5loC24wO;olBUZ;! C4Ua,carRd9NNeePh equilibriBXMim pedrC8OpeCAVsOtassja ki79Y;er al-attiyC2Xim nicholas tal9TH;m hOruddin 1F;amC80;! cu8K2;cVdwu9enSgis fakhC8Rit36Im0rRuOwhM;hiBUEtoO;! uzuO;maBV5;aBSQow-body4HN; Pdra modiO;! sB2U;chandra dCCIgUC;issPoO;l4XXs;a5IJisO;m,t2VV;aC7XhtB14l3oleonOrox5st0;! Oic AV4;bon2RSdBOJhiCiiBLJ; tลBG6kRmiOya131; Oe513;caBD8ekpe8R1foner gy05CmcduffC9Wo86Vs9ZXwO;atC7Yu;i OoYD;uraBG3yosBG5;a vis6TJcXdSga parbBXRi8EXjingRny m18LoPtOyang technologica88F;es,u8JY;mGYrOte9M6;oboA8P;! m8ZT; BRWaOo4DS; Qmuri O;balakOharikOkalyan rC8U;rishBXA;de9VR;iYy O;abu58OcarWdUgrace romanTjuv0X9kRmPpeloC2Ire9TUsOtrBF3waB14;h68Vin9HBpu5WJ;arc5TJcOe9JA;ke2;an19OerrAYZuO;lp; s2PL;oOrAYCuss933;lm1w;eCtAKN; grALG; SaRco,eOibAkoong m4ma m5ZMor;c5P3s O;and titles of jesus A90of O;godL3j75El0P9the days of the weB8H;haBTKsH;joo9IAyoon-AXJ;anC9FoOtreO;xo6;aOl58V;nd af5RFt4KU;ib razB7Hwa nimC7A;roA5Wve bayes classi5QN; hammadi82XaPinaCBKoOpBRJ;rno-karabakh185ya; OlaC78saBTN;chait25WmunchA1L;ezhda tolokonAGRhim zahaBYLiOji jBX6ya sulAR9;a Qne PrOya hussa4;shC14;cA0UniT8;boulaBTJcomฤƒneBA6;haan rizw1y keรฏCBB;cp;grC7SspAIU; BH8aOMbs AWOcO7dO6eJ9f J8gJ4i9Zj9Yls nextBQ1m9Xn9Vo4Jp4IqC1Yr4Es49t46u12v 11x BQAySรกRรคdchen a64Kรฅne7SPรฉPรณnica 2HWรถOรฝa,ฤori 3BTแปน lai8YM;bi95tley crรผe;lanie lauAYWnOtF;age ร  troFiรจreAXT;laB7Jrio jardI; 09a07c02e00kZles YntGoWrVsRthO;!bPic Ori movie 3R8;humanoiBZIqC57;usAIE;oBpaC9Uql,tO;!erOiBIU;io,y O;fiBUSm5;na lAY4rh;cardiOpA;al infarcC61tF;gAQIke7S2;elti wXJonC24;lodysplasticBTWrsโ€“briggs typO;e ind3K6;eQoOroft7WC;bacterium tuberOle pruiC1D;culAPQ;liBUZnaeO;!an6P7;nOsthenia grBDF;ime6INm9na buBMP;b08c05d04f01girlfriend is an a3D7he00isekai C9TlWmiBZYnUoSroommate is a gumiB56sRtQwO;eek with marilB8Iife and O;kiBYW;eenage 8KOhree 69M;enpai is annoAE6o-called C9Pweet 2OO;ctopusOwn private i5DG; teaBAO;ame is Oeighbor to92W;ea9CM;eft 9TSiPove from thO;e 5ML;fe is ANFttle O;m49Gold7KNpoB4Y;art will go 2ro0CK;aOirst girlfriend is a gM;irOvorit3H3; laBSN;arling clem83Zinner with a5GNress-up5I6;hemical rPousin vO;inB4R;omAO1;eOig fat greek5T8;autiful dark twisted3GKst friend's5T7;barag9FBdoรฑa p9KGwilhelm gust8IJ;a2Pc2Od2Ng2Ih2Cjahi15Ak2Al1Mm1Fn19on,r0AsUtPv-luv,watallOzzle b8ZI;i C5E;aC4Ziny on the bRsuhiroQual O;assuredA6IfuC5GinO;fBKStelligi98P; w135;ounC2W;c02e01h00iUkTlimQsItOรฉe d881;aOel6X7;fa kemal atatรผC54rd6QX;! Os;b9XWconquest of pOsaliA9MwC7P;ersA;et,ox,rBUP;cOkve586; Qal O;fiC4Ji8E5notOt88D;aC4Ke;ch9LDg4DMiA05of the harry pott0CEtOvAUL;h9RBo be murdered C41;isBWGoku L8roBO5;s,um of modern09W;at,le6R9;a0LdRmanA7YphyQray Oungakkai4AV;bOroth92Y;art1WM; b9C5'sATG;erPoch O;faB04m51T; oPs of O;abigail williams and liberty geAV9chris kyle and chad littlAJSwilliam and patricia wyche7J1;f On the orient8JQ;a09b08cassie jo stoddaC8Pd06elizabeth olt5g04jYkiWlaci peBN2mVrUsRtQxxxtPyO;etunde3OTingyingJA;entaci2;ori stNWravis4J9upac9UB;aPeOherri rasmu8TQkylar n8NFtephen la440ylvia li7GJ;leBTSth 9UI;muel paC20rah eve92L;uth pelB9Yyan poB5Y;eredith kerB92uriel mBQO;m 4JXtty gO;enoveC6O;amesRerry michaeQoPunO; l4ko furuC8L;hn le6Z8rd132;l 8TT; buO;lg0;abriel0G4eorgeO; f667;ee dee bOora b505;lancC5P;ianca de85Robbie jo stinBAB;hmaud arPnO;a kriรฉgIni de348;beL;d i3EImaBPE;awar faruqAEEgShwa b9O0iOmun d0NU;chOshk6V1;! O;aOm8VJโ€“ the edge 3T8;g3HZirBXI; BKPo j84O;bQmPtaz O;mahM;ers pa9R4y;aiPleO; rA6XcoB;! O;city BAOsaB4A;atBP6e,led 8UMshi4JOtiO; theft9FX-05c02l00meZnWplQtiePvO;ariate 092ers2VI;r 9ZC;ayer SeOication2BC; Q-cOx0;amera sO;etBOX;citizenBJDmye2TUsAMN;online battl6WRv01;ationalAPQomial O;d8Z5logisticO; reA08;dAt0;ayer percepOingualBT7;tr2;ast PulO;tu6YF;a3N0dN;armed6XHcore prBRfactor9AHlevelBIFpO;aradigm2T7lO;ayerO;! vO;ideo BQZ;ba8den7FQesh O;amADWbansM;ammadOteลŸem yรผzyฤฑl; O's w806;aliPiOnasiruddin al-alADTof ghC3Axii of g4WEzia-ul-h9HH;bn musa al-khwarizBYMnBVEqbM;! O;jinnBWPof52A;gRhal O;ar9YJempO;eOiB;roC4I;iNsy bo4LT;!dy waAE7;h ado about n0TOus;mmarOy thBUZ; gadda1QB;s ocePvO;! video music AVT;anBY0; Q-dBXZcPnOx;!bc; cru6F5iC4Q;achille lauBUFdhoBVTeO;stADC; Qap,bOna94Qs d7XQunal t9RZ; 9IZeastO;! 3ME;huBMXinbet2JT;emba 9ATho tutu van furBO0; 4Ya4Xb4Rc4Pd4Be49ff gide2g48h3Vi3Pja3Ok3Nl3Cm37n1Qo1Hr0Ps0Gt06uVvTzO;aRillaPzO;arC5F;! O;f1O3th448; bint3TSmb6SL;eAXHiOsar evloBXX;eV5ng9JN;lin r0X4nOssa sissoBE6;i9UNtO; QainObatte8QO;! Os of97A;dASCm5P8t7H8we9P7;aSeRfuB6HhoC5OkQmaunganAC6oly2QRrPsinBU7taOvesuviDwhi2X2;kaBU1m8EV;aiBK5uBYO;ai3C1ilimanjaBTS;lbrDtBQVveAR3;r9FUthBX7;hViRoPtOรถrh3BH; the hoBBTe-and-bailey995;maBXCrOwn;c7NJoC4W;on OvaC0X;capBS2picture O;association filmOcontentOproduct582; r793;!erOm1ra; tereBMQ'sAHMb89O; d77DaBQDcoSes QfC1Hhe day1inโ€“nagaBOUqueโ€“cathedral 7ULsC0Zt Oul;common words05NdOeligible b0SLlivableC01;angerou4SN;brings plenBYPinOma805; iBTTgrC1Y;viBPSwO;! O;kOm5T2theater h227;reBM8;a0Cd0Be09fydd08gZiXmonBH7occo9YRphWrisVsA7WtO;aPen h626gage lo1imer sO;ac2TW;lOr and peATW; PiO;ty AM2;kombatOs97R;! x; chestn9YTon2X2sE;eDi6;arty the pat9MLnga oleO;ifeG;anPeOoBML;lloNnthau 9HP; PaOe pola71M; 2DOtic6DW;britRfQle fKsOwaBBH;pOta9QH;eBR1urBMC;airc5O2reeB66;taAZJ; claC09;cambe andOna bacc8GX; wiC2O;echai haBI5rBZH;liBXUrji dPviaO;!n9VT;esBSR;d7miNnRrO;ePsO;! 2XY;'sAOSโ€“penros2J;! QbyA27dance dA5Xlite bunnyr0T4riseA07sO; of Ohi6t7JU;jup4BJsa85Y;blood4BRchae335embracing5O6ga73Nj15GknC0WlandingOr1B4z6QU;! conspiracy theoBV4;a0Yct2d0We0Sgo0Mi0Jk0Ho0Broe d0As04tPuOzaA0L;ment A2QriBMD; b1NT-saint-A7Sana01eUgomery cliA8Fhly girls' nozaki2K0pellierTrRserrBPGy O;hall8NOpythonO;! and the holy gA14's O;flying circDlife of bBMS;ealOรฉalโ€“trudeau BRE;! canadAH2;! hB70; Ql vontavious QEnPrrEsOvAPA;quAE4sori7FK;egBRU;caOki9N3mar8X3;rloOs94L;! O;meC28tree 87W;! C0R-8N0; pubFanBL4o2tO;aAMEerO; P's B61a delic497s OvBNV;aEAunAL4;gBKXhunterOmusuC37;! 8R8;octB6S; no aBVAamine oxidasScRlithQsPtO;hSQonic BO2reC33;odium glutaBIUpaced foBMU;! 9CA;lonal anti1KIyH;e 4OZ;!ey O;b1Y0ki8selfie copyright 0NF;ca Osm,tor liBMV;bellB25galAPGlewiAZ5poA40raOs948;mBH3y8BK;db,lOoC1B; QiaOoC0Bs;!n O;laBBCp5B2sc9YL;emBO4invasionO; of4QGs 28N;ro,tary6LOyO; ObaC;h4PWlaun3J3suO;ppBNC;aOelezAJO;y nightB58; RcoQrchOsBWD;! b1Z8i46PyO;! 2HW;! g9IG;lisaOs9QE;! s7C3;baBJYentRina mustehs1mie deaAO0oO; PlaBYHrdica charantAtaO;rล;challenge139hirBQX; of inertA-generating BN6um;aWchat doBUIdVecular b9NAiรจBlRnQoOten salt864ybdenBN1;ch,tovO; cocktaBF4โ€“ribbentrop 3M4;iya3JSupiravBYE;usAR2yO; O'4PO;ephraBG0go97Qpa8T1qB91ringAZXsOw3VWyAIL;ha6T4iC0A;avAoB0W;r Oss3;concentBXKmaC0X;a pC2BsAQP;ng9UIve9M8;rOssa8M6;aOรฉ4E3; QiO;!ne damoO;drBX1;kBFVmactag1U4st9RG;aQenjo-daBQ0iPs scale of mineral hO;ardC0M;nder0JAt raiBN2;mPnOwk B81; 1SIl18K;ed TmO;ad Red O;bin Ovi of morocBNQzeeshan ayy8Y9;rashi2Z9sO;a8NOulayATK;azharudd4hasna4reza p4BT;aOfarrah aidBYVh3GDmorBS4s115;l-f9V1tC1S;a4KFwBPZ; 7Y7bO;us s3MX; sC0NafinBE7bDeTok,uO;lOs ope4SJ;aOo 8HJ;r Oti2;a41RmultiplicativO;e invBLO;lโ€“viewโ€“Um,rnPst mO;ouBZIussorgsAZT; Pa,iO;sm,ty;ar9T0display of the confederate battle 8KSfPliberalism 6G9monetar8OIpOstandard 31Rt1L6;a3LAortfolio 9JD;aASFlat earth bel0Z7;co5VviewmAL8;edB0Qhi,kOtezuma BWW;ingjKuBS4;b7ALile Po AQDutu sese seB9AyO;!-AAK;aAW7de8ZPoQp44RsPtO;elep8K1;oALKuit gu3M6;per74K;!b,i;dao zu sBO8gi8LWha5ZH;emoOist1ZT;nC11sy6;orpg,r8Z7; 1P5รถlnBWR;a8Lc4Qd45e44g3Yh3XjB38k2Xl24m21n1Ap8Y1r0Ys0AtTui,xRyPzO;k9WUorBXErah9OH;aOuki sawas2N6;moto m1MKvi;aACAedO; ma71D-iBRX; l9YXanBQ0chZe,hXoUragyna spec467sOt romnEzi gaynBWY;ki,uO; RbishiO;! O;ecWGgBHYlancerOmo8E3out044pajeBOI;! e7IN;muSN;chondriOsFt3C7;al Oon;dBLHeBPB;raBM7un chakrabO;orBTO; Qell O;and weA9XtrubO;isAYO;gOhedBIMmcc6MA;l1SYrACB;an0Ac09e08ha899kel spil8M2o07sRtO;boBP9er OletAMJress of the rob3;carto2nOrogers'BZU;egaBFX; YiRouriPy O;elBQTperegrBKE;! O;compromiBY3rBUJ; py7ng TonRssO;auAWFippiO;! O;b5QUrBUFst9SF; maOary 6Z5;j8ODngM;square4VBwhite womNC;e06Afisher's murder4SLkobayashi's dragon RmQpoA0IsOuBJYwBY1;a4B4carlet and the duB11lO;oa6;aB91oneyp82V;maBWS;!gyAUIphA6J; enAN-en-scรจ6;ege6X3ha ba6P5;dLth65G;!aTcea Seille enBQYiam Rko cro0OKnalini9J2rorPtaO;zaAGM;'s edgeOless5EH;! cat74Z;hA4Vmargoly3riAO4;eliaAMOmo5Q0; RcQge,mBAWnda O;cosg8ARhOkeBS4lamBHHotBGQriA4Fw5OM;aBZ5o7O0;aBVPle o5YP;fu7YNnaBV5soO;rviB6E; 0Ca sund4AIced2K0d0Be06g05iZkYnSoPsOt 3O5;k,trel 6DE;an Pr OtaBF6xidBBQ;arQHleague bQEs8WF;c67FerupBUD;al muraBPIePie O;drBTKmBX3ripe6OL;apolisQsotaO;! O;north83Dtimber5YFvikBVFwiBX8;!โ€“saint paulBM9;!a1I9owski6SV; SclBAPmOstryBVT;aQum O;spanning BMJviable310wO;age6DO;liBOZx;displayBM9h9VD; d9A1-na w5ma gyabu sherB4Kw;craftQrO;alOva mcgonMZ;! oBB7;! O;dungeoNse9WY; m9XLanB63fulBX4geAV9y kaBQS;aung hlai8mO;inBV3;e,i O;k9LYndiOroBQS;weBNQ;a0Cdred giBW1e09f,gram54Witary04k03lSoQton PwaukeeO;! bACO;ber7f4PYke6IF; Orad dodAT4ลก foAKM;giBPJventimiA03yiannBAX;aWeRiOvina de1y sh8RQ; vanPcent simm92Be bOm2Ron dollar BIVpeALH;obby8ANraBGU;ilBOL;nPrOt; columN's cA4T;ar9CXniO;aBVNum O;actB8Lprize probleBVW; jovo8TJrd O;fillBQSmi55D; tBRMy9UP;! O;budget6ZShistory of Po8S7rankO;!s3I7;italyOthe united statesO; du1JS;s Ova marB1Yy cyrusAQM;davOjuASTm4GHteBOG;isAQK; kunA71nOp zaveBTE;! Oa vayntr8U1kovitch cy9ND;ca7J9kunOmalpensaBL3;deG;a0KeVhail Pi matsu7I7lรณs hoA8SoO;!y1;bQgorba1SUkalPpopkAVPtO;al,ukhacheA99;aA35in4;aPulgO;akAVL;kun4ryA32; Pl arteBXEy O;dKwK;and the me6OCb8Pc08d07ehrmant06fa05g04h02j6TDk01l00mYni82JoWpUro7L9sStQvPwO;ebBMSink40B;arshaASMogIr7NJ;he headless 3O3oOuB3Sys2;dd,ml4;hOi5FG;an7YNi2HP;aAZ9enBW0oO;mpAIFr5Q6;'hOl6OVst9X3;eaBM3;arBP6cOuA0AyeBUO;caA86ge9s25E;eiBQBin6RSoBLT;ri76Z;oOuckabBOB;lm9HLwe;le6NJunBFH;iBT7r892;ra9QK;!e8JKitB1C;aOoA2R;usE; PelO; pers6JOa shiffr4;hรคkkin5zibaOE;aly csikszentmihal9D0oB2B;hty Ros,raQuel O;car5CKdOf84herr7DYr3AXsapochnARCรกngel fรฉlix g0DL;e cervaAJ5รญaz-c6JZ;i6tion2MX;morphin power rOwBSW;anBOR;ruko-BLNsha 9EO;-06a05dleZf9E4ge uBiYlXnight Uori fr6BUriBE4sStowNZwO;ayPesteO;rnB4N; O-4ED;a8IWgAUX;omOuAIG;er 2PQm9;cowbAJGin PoB8QrBV6sO;oNun;pABIthe switchg08L;if60K;!an; P-earth46Em8YNsO;brB8Dex;ag3c41PeQkOnaBVJsc9B6;inO;gdom 4R8;aBSAngB67;s,zAK1;aOcentury mo1OS;tlantic acBF4utumn8N9;a3Hh0Ok0FroO; 6HJ-0Dc0Bm0An09or3FPp07sPwaveO;! SH;coBJJeAGVoftO;! O;a00bi8cADVeYflightAD7oWpUredmond ca2GGsSt40XvisPwOxBGO;indows5LJoBT0;io,ual O;cOstA65;++;pider solit8H3ql9TUtOur9S1;oBuBMU;aiBESowerOro282; 9PRpAVE;f2F0nenoHutO;loBLT;dBD5xcO;el,hange9TN;cOzuB;ad1X2cO;eBTTouBEK;enFho6rO;oc4S2; 5IZesA;etB;ephaBFFoO;ntroBLR;!starABQ; Uey Oy do8KX;c80Jd8VMhGWmProOspil95R;onEurAW7;a55RouseO;! O;clubhBSWfunhBSWmixed-upO; a3AA;fOja8ITmaBSHroBMWsc15Tta6RC;le0R4olE;a0DeViO;el huiAY7ganPo O;ka64G;! Oโ€“ohio stateAWW;staOwolverin9A8;diBF1te O;spartaOunAC1;nsAWU;lOรกl2SJ; 03angelo02e 01inZle Osonโ€“morley510;bXdockeLfWg1Q8ke7VYmUoTpSrRtPvi9O7wu,yeBA8zaO;un0;h9UErO;achtAUBiola m5XV;oAR4y1;f5J6h8H2;baBM7d3QQ;cOo7I6y1HT;coBT7nAHB;ai74Borb3;achelBQ6r0IY;! gO;uiAHE;baB8SlBLJmorASX;! antonioBJE;de montaTOfouc8L6goA0Qhouellebecq,nEperAQX;elOil CF; Ra Oisโ€“menten ki4F5;coPstraBJ8wO;at9ZE;el,nl4;a1Jb1Dc16d12eiBMJf0Yg0Th0Ri0Pj0Nk0Ml0Jm0Dn0Co0Ap04r01sUurBR7vRwPyO;ead2oBPG;al547eatherBE6hiteAMDiO;n9H5ttBBR;aOiJ;n geOrt1;rw5;arnTchuSe89ChQoPp1F1tO;iBHIr7V6uhlbaBC1;rrYP;a6KBeO;en,llen;maATYr;osBBP;apaBH0ed3X5i9MPoO;c5MEok0senO;!baBDV;aQePh1IYiBK6oO;ll1rt9KZ;nn,terson6Hรฑa;ge,l4rO;enAFHkO;iBLDs;'Oh0liBRBw5;d5A1k1HJ;esB1PouBOWyqviBPL;aRcQoO;orOriBME;coJe;elhaAV8i4XNke1;ds5liBRYnOsi;do,n;aPeOindsay-hoAG3;arnBNVwF;nd2udrBA9;am5eBK2oBQL;aOet0oBPW;ckson4JEi8AN; 7AHmperioBJ9n8BFrO;on8BEv4;aOutchBPY;neAU0;aRiaccQoO;lOve;dASLenieA30;hiAZS;mb5DGnd1HL;aQlPrO;anzeBQM;a5DSyBAI;radKssbendBAC;eQoOukA1Y;rOuglasAV4;m1n; luAGYll;ai5GXeGhSi41ClaRoPrO;awAI0ic6ZT;nOrl58A;nB61s12A;rke1NTyt2;aOe,iklF;b2nAM6;aSiRloomBAIoQuO;bOrL;lรฉ;lt2nd;e96Js78G;ll,y;lANSnO;ga9NNsaG;!h p49V; SmiOsma 99Y;! O;dolp4F0hPinternational aOm9B6viBQR;irBFCut904;eBD3urrican97E;and the white A6Hfa81ZgoB9GkOmal9X5saGtAWMwasikowsAWD;h7KXirs8CY; QmO; Ot;grand403resortsA8D;caBPBm7OL;doB6Jg76Z; 4Ia4Bc48d3Ue3Pg3Eh39i38ko8l2Im28n1Sphistoph8SIr0Zs0RtWxicQyer PzO;cMuzBHBzo-sop9N8;laAND;anQoO;! O;cityBERnaAKW; Pโ€“O;americ96I;ar9MBc1L8drugAKRre79Gw5XG; gaBQJa08eor06form4h00life7UBoZrPtO;a sandiford-arA8Ze frede6OO;e,ic VoO; T-goldwyn-mB6DidRnQpoliO;s,tan O;frA5Cmuseum ofRWpoBLGs6AX;id9K6oBQQ;! Ov78V;d1LRfuBCPp5U4;boom4ex80HmaniBQA;pOsy9S7;refB6W;clopra3GCny9LY;aRoOuselBGQylpheni1LL;dOtrexaH; OiBH4oAZLs of computing square3UG;acBQSm1of loAPR;do6m58OnOqua7LL;e,ol; 6SViHoO;id,loAZH;! 13P-6EUboliWcVdaBQSlRmPphOr,st27Ytr2vBAXwin opas-iamkajoBFT;or,y9B5;a9PIorphosO;es,is; PcoBlOo3NH;icaAJGurAZB;ch9HWgearO;! solid hd 31X;og0XIr57U;cB9Psm;caBDBhuggBG8oUsOtiBENut รถzB31;engeSiO;aPerO; ob230;hOn2J8;! in2LH;r rBBC;a9YOl6ZSpotKPthelioBI6zoBQD;c00edith ZgeYiXkWlTmaBNCoving7BIrQseOv g86Wyl streepARQ;nne Oy88T;p5T7twiBFP;ell6DHiO;ck gOFtt O;p621w8SF;e PinO;! o9DG;hag4V7ob5KO;aAOIle BDP;t99Qwether531; 2HDrs and acquisA8Y;ba5MWgrEha4EOsa509;a02ePia,kBOYuryO; p7A0sAJE;desOnaL; X-O;amgUbenzO;! O;aRcQeRgPiAJXsO;-c3VFlQpriAMCtaAFO;-c3VEleP;-c3VDlaO;-c3VC;! O;gt,o6;amg high performance pOma6F1;owertr9MK;doMSntiA8Ntor9A9; 01aXdWe1HQg'erViUnonAPYsRtO;al OhBODzBI9;d9PWheO;alB71;aA61h809truaOur suljATH;lOti2; c774;ng9VD; z02H;elian inheritA3Coza BC1;! QcO;e ii 875hem O;beg4mendel schneeB3B;mAWLsuvaBKS;aOgoing their own9LTin black BKP;t 9VG;ber stateTeSmingenBCGoPphis O;depKgrizz5NR;i8RGriO;alA10es of Ost;muA27the alhambG;!nto AONti9VG; 6HEs of O;naB66the O;commonwealOu2GD;thAZJ; 09a03bourne01chizedALFiTlon collie and the infinite s98SoRroseQtPunAVSvinO; c603s;ing2ZNy1TW; pB7L;dOra h854xicBL6;raBGHy thor9ZH;lBNRnda Ussa O;bSethRfu6YYgQjoan BH3lA9VmPo'neB13rOsue48YvillaseรฑBKS;auBCJi8ROox5E7;athAJNc603;e80NilB6K;erB5W;arA8IenoiBKS;di9MUfrench4BE;! O;cricket 5YThaCs7SQ;nPtO;on4;ch1P6esAiOoBG4;a3Z0e On;c,gr9XQham9TKlyn7VFma6DOp778sO;afASQcroAHTyk3;bQfPgiO;bs89Medroyc;err0;!la3FRrooksAPI;ji restoBJ8n ka0KIosFster eBGJ;diRmePranO; karimi nasseBJNga9O2;d Ot 5CS;iv,t0LYvAWR; h0MD; WaRhaOumi ogaBNVyn176;laAVAn O;mOt63;ark7c5RD; m1ciBH0de85AfauB8RloRmiPn Otr2uploBJ7;bN1e2ISfAOKga8DNis misBC1mull5OYrapinAA1thee stalA2E; Ond;tensAUM;d2p08W;foBD3jBFNrOt8H6w9W5;o0TZyBGM;k 2E3nakshi sundareshw9rRsAI9t O;joe8X1me at our2S6the O;f8CSpOrobin5MQspar85V;arBIK;kB8Put;al of h3LXd7e00gar e8QKiOuB4L;aWcReval warm2DTna,tOum-density fibreb7RI;aPerranean O;c574diBJAsBGZ;tion7IP;aBIIinO;al plQeO;! atO; m8JD;anBIJ; Oco9MIfiBtAJT;markt,playO;er5X4;a,llรญn2OQs;anum wB7Rca,haOklenburg-vorpommeBC2;! anime and0RYgOn871t8LE;odz8R6;dTgan 3UEnOt loAOAve le68U; Oing5ZT;absolute Pg7RFsOvalu3TG;quaredPtr72L;e7YLpercentageO; e7YK;!ow IV;at theOt7WB; zAP2;ma,ou moct9pi; 9DOafBE2cart00donZgYkVlarenSmO;aOurdoA2L;fArtin preschoolPstO;er 9F4; t7H0;! O;autOs8XZ;omoB28;aOennaBKB;meyOyla marA8Z; manBIM;!il7IA;ald3NRnell1SS;hOney 8VS;yiBCG; GZaGUcG0dF5eF1fia5JEgEDhDViDLjDBkD5lCKmC8nAToARpAPr3Qs2Mt12u0Ox02yPzO;da,zy 4YM; Ya UbaTdKeRfQim bi9LDnard james ke30OoOumi t0KCwand district 2FP; clinBM8nn04Zr of OtH;h3G9kings5W1loA12n7UJ;aBHYlB0Q; 0BErlO;ing6UM;ch,nk;anPc5UAerski6forstAAUhOjaBDVrud463;awAN7iAIE;d theOgelAD3; t8AG;bOdKfourth9AOpa8;riBCL; 01iSwelO; coAIAlO; P's Oโ€“boltzmann8DD;dAJZe4GPsilver 9CR;c23Yj8PPreBGL; rodrรญAIGmPne O;peaAMWst9AZ; gTa and miniBDIe vachier-la3P9iQum O;car621liOsubarr853;fe ANCkelihood0E1;liOnus thrAX1;an Oen robes337;i of6M5sc8O5;orAJTun;brBB0ernBHTgree2FHhUiroNju2O6lTmRpQriPstiARZthie931vOw5G7;e0QFon sydBIV;cAQXeme97T;ay6lanJur4UL;a9QKiOo9LK;nghBKGtte874;a7N8evAOK;eadB04ol7CJ; ma2KKde a0O8i,lana k0OZna kBEVrQsO;!er,oleum at halicO;arna82Y;a tieB6Geen WiSo PyO; chayk4a B61;cPf3E9icO;arB8L;ast9CL;cPtOzio2M9;ania9EGiD;e Oio po3GH;che3EOgi9UHr1J7w9TG;constance gAJGdo9QTm0DZo'Ostarkey tigA0N;haGsu4JK;a15ch12e0Zh0Silda 0Rl9B7pB63r0NtO; 06e04hOi nykรคn5y 8WP;ew Rias O;corvPschO;oenaADBweighรถf0;inD;bro8A3daYef8P5fALIgXh9Q2lVmRp7HArhACXsPt8O8vO;aug8Z3;he5CStO;afAA8;acfady5cQePoO;di6rrAFO;rc0;conaugh8E7g2AI;a3FNiO;bat66Tl5L1;ooA7Mray gu0JA;ddAFKvF;l,o berret41XrO; 9S3hoB9C;amodAI4b00cZdYfr1AFgXhaWlSmiAQXnaASYprA94rQsPtO;aib9EKol1QT;erGmiB1Vto6;eADAhu7idO;d7lE;aQePiOo8ucBJR;ebeA6E;b13PinaBJV;fleB01u0;ig,n72NrB2Nss5HO;aeBC5roeBA0;am85Hi9IF;orrMzuchL;eOom0;lOrL;la9ES;iOosAOEyoshka5G7;aB7Voshka bB4Dx O;c397multi598noB6BresO;urre8SK;ii,luBBVt84TzD7; B2NePiO;as ruBG1eu amalrBJQ;matical Pw O;bay9UHh8EE;an9XNi4D0l3LJmA3IopO;erators and symbols in uni9M7tO;imi8M0;o kovQBrO;a,ialO;iB9Ms7OW; Oa;gOpAJC;aBIWroB0N; Oram s571;haBEZ;a0Jc0Herati0Gha and the A2Ri oANUjid al-hANQked 0Flow's hierarchy of n0Eo0AsXtO;erOod2urbaBEH; T'8SVcRs O;of Ot3G2;sBI9the O;aBEZuB39;aBGHhefO;! QD;boot 66Yin theBH1of Op,sy9K6;arBEEb8SXf8SUno6pup5ASr8ZRs8ST; WacTiveOโ€“energy equivalBG5; Rly multiplayer online O;gaBIHrO;ole-O;playi6B2;a7SQopen online 92;husettsPreO; of the innocBDWs of poles in volhynia and eastern ga99X;! institute56K;effectQkillings under communist reg2SIm85ZpPsO;hooting3QRpectr4Y9;r96Jsychogenic iBH7;! legendary2DD;nOretic44V; Ory,โ€“dixo01P;gOm9L5ve8C4;ooAVYr7FX;eeB70;siB0PwoAND;! quattro8U2;arALDuO;li94M;bTda,kRla QmuneOshi kishi1CV;!-kunO;'s rev7WO;chB6J;i Oo no0GI;kBFXsuBFY;a gO;upBI7;-a-9CEa6Kb6Ic5Qd5Pe 5Of5Ng56i3Yjorie taylor gr95Nk2Rl2Lm2Kn2Jqu2Gr2Ds25t17uti16v0Sx0QyPziOรญa pedraAJ5;a kjellB0Gp1; S-Qada ram9HRlaBDUse O;mizOoue5N5;an4;kate Olouise 62U;and ashley42Do95D;a0Gb0Ec0Del08gaitsBBVh07i4EZjane51Nk04l03mZof YpWrVsRtPuBwO;ick3ollstonec3MO;oOyler72M;dd93Z;ePhe9GEim2teenbu748uO;e,r8AA;aOlwK;co7;ichardson 6YUoBFS;aOi0N1oppins4CF;ge keB8DreB10;g4REteJ;aQcOo63S;cOd63L;ar28Oor7TL;gda23Nll2rvI;e63Fynn rajsk8DV;aOom;tharine hBE0y O;b1IRletour2C0pB0D;arr2opk4;izabeth Qlen tO;raO;inBDK;e9M0mastrOwin9JS;antonAF4;elAV6hA94r81L;a9QWeOoleAFA;rLth huBGZ;liBG1nnOstBDE;e mOi8;acleod3RWo89I; 8N0's theory of alie6EJismO;!โ€“leniB5T; 00elRin O;ga8L5hOmiACTvettoBCO;aOeem9VG;mlisB4YrrAC3; R's Oous marvin ha7OK;guardians ofOmidnightBB6netflix tKC; theO; g9R9;animatRcQenterPgAFGone-shoBC6sOte77TuB0X;tuB84uperheroes secret 9Z6;pr5PCtAQD;i6P2o9B5;ed f3FOi2;f8FAle9TQ; suzuAYS;a ka3O0ha0IiRon csokBG8yO; Or;f5SDrob87LsO;chott0WBt95U; pe460a0AnO; Qa Pe mccutc19QiOs licF;qB4Eโ€“h7IA;hingFnavrati3E;a9J3b02c01eberBDQfZgYheXkoB58lVmUsQvan bur5รธdO;egO;aaBDP;corsesePensm3ALhOtaB91;aw,e5kreB6OoBG2;! O;and leonardo d2YWfB9B;cdonaB9JuC;aOorentz2uB1K;ndATYwrBDA;ide843n5G4;arrAVXoB;itzmOre9VV;au9ND;aAGMlA29ompAD8;aQorAXWrO;aiOyaAZ9;thw6OK;lsBCFyf9R9;l Pn O;c4Z5man7N5;artsOlB4F;! BAX; O's vineA15;arge91GfOmarcy may mar21Tpl0YXs7PB;ie99O;! UeAABhOupiM;aPmO;a454elB6L; thomBBOlOwn3UF; o2ZWl O;applew9O2fau77QiAD6mclOpl1;uh1;orbiter 8TLr7XO;akeB6MiO;ageOott9W3;! sBE6;esPisO; de 3HQe7RR; brownlB6Ps;i nAD5us labusch6N5;iHot;a SeQoO; 52Cn O;brandoB88veGw5FJ;e matl4ne Oy s7VP;diet90U;g385ma8U4; 01-paul gossela9doBBReWiUov RuPy mark and the funkO;y b4C8;p AN4s O;feehiAZAp872;chainOdecisionAV4;! montO;e carB5V;eOp38N; poBB7;lle f5FOtO; Qing OpAXP;mAULsO;trateANE;capita8H5segm511;a0Eb8Pcub1d0Bf09gatiBD8h07k06l04m01no00pZrVsStQwOz4M9;ahOoolhBCN;lbergB7O;h6W5wO;a4i4LX;aPchle2DNtO;ooAOMro8;lB6OnB6E;oQuPyO;lanceAFVpi5;f79RtH;b0ns2thAMF;h811roksB2Cu6BK;b7r718;aPckiA3MillOothersb7H1;ar,ey;doAVYns2rgZH;aOinn-b7DL;b2H2n7FM;elAYGnopfl0;aOenLoppDuAXF;mi0KArm2;e90HiOuhA0C;e980sh0;aPris0FTuO;d8E9p3JO;cascB5Bvid54Z;dAWJnO;toA8P; lw69Ua0Je0Ek5FHl0Bn03oSsPusz pudziano9O6yaO; takeAHT;a tomAKRha56Xka hPolO; ni7IZ;argitK; Pn O;cot0X6daAFKroBC9;anVbaUcTdr3I4kaBDGlRpPvaO;n37rgas lloAUT;artyOuB1R;! supers7HZ;emOopB61;ieA1R;hal9MSuo9P0;lot9PFtaB3V;dr9ZK; hUa ReO; Os,tte dupain-che8;le8KNpO;ol6VF;abramAHFbay sAAZdiama7F9oswald PpOsiAVU;ic9F6;poB5Y;ink7;li2u he7TYyn O;cham6XDmOvos sa187;aB57o53P; PlOtte har4YC; 0Ala fro7VO;aPc7G3fredrikA97k1MHoOthรฉrรจse6KK;f6UOs7SP;ntoinADWvgerAPM; Tdb,h car43Gm-uz-za8YSnO;a RnO;a 8EOe O;faithfuCwO;illiams2;iAAHtr6ZO;bQca7QEdoyle 6TWfa07Ag14UmontessoB8HrPshOtheresa3K2v2VQ;arapoAB9rB79;a2F9esATX;aOelB3P;kaOrtiro9O7;loAB5; helg0KTaTery mB8QinSoPrethe ii69Xuerite de O;c0W1thibouvA79; Pt O;ki7TNrobb9L0;harsAUDmartin8ZT; 551al843;rPux O;he3VQ;et Oi6;aUbrTcA73meB7Un0V3oSqRr3VNsQtPwO;hi736;h6TWudB8K;aAUIull3TP;ua9AT;'b5SWf anjA3E;e6A4oB8X;nn neB11tAIJ;anAVC;of east5M1tranquillitatFwi72W; ko dard nahi hoBC4i3AZuk; 0A-andrรฉ 09el03h00ia YoSus O;aure0V7cQfre9RVga5BOjunius brutDlPmOr9GMvipsanius agripAHV;arioBC1umA1O;icinius cra7TSu7E0;ho8; Ps O;rodrรญguez pantoA3Vs0M;asensA9QbeltraB3HpPrOvan ba0YZ;ubA9P;ierre7TLoloO;! bridge6KD;b9RIcOgay haAI3;laB7BroBAB; Oeline be12Y;comes in like OequinACJ;a 9QC; Qa vOlo mastroiA9Mo bielAST;alladO;olB8N;ducPmaOprouB7X;rceAPC;ha9H4;le6IUter steg5;anRb0U5cPdut0BFm94IrOwe9L0;and3VIuAQ2;hOlotB7CucurBAJ;agaC;dree7W9t7U8;elBAHle,urg O;f915v8OA; 6K9thO;a AW5i AJCon; p8VZleOpa,re595s to the7FKucAZA;! syrASGdu5KJsB9Y; OiB1B;an9EXze6C8; 10's search for meaB13-0Za0Wc0Rd0Je0Ifred 0Hg0Fh0Ci05j04k,moh95Sn01oZsWtTuPx Oy-worlds i5NJ;cAWBlaAJ7; b87Zal5OOel Ofacturing cAJYte bB9Y;fB0IlanziB0AnOpelleg04P;eu0orO;ieA7D;a541iOra; te6KcoBsO;! shri9GH;a muAS0lPoO;n A1Vor ali khan pat7Kur024;augAGB;j b8UNlo rOr9T7sp9ICw9;eiAVQ; villagePa,e98Ning A1Ry Oโ€“whitney u 9SC;jac38Pp7HA; t4FH;aAYIu wAFP; Ta,cQfOkka vinay4FNla,pAQKsha koirala,toARK;estOoB8S; destiA5C; PhaO;eiB0N;pixie dream 7KQstreet preac8GF;ra49K;attanOwa;! O;melod5TTp1MW;aOifer8LHo,roAZ5;!neB8B;maAS7von richth1I5;d55Ski-neAIA;aSelQip 10Yol4y O;m6UWpatiOroB87;nk4;a vanObrotAM5; peeAM2;eiB08lPrin Otory196;c26ZorAIJ;a,orAYO;aB95hO;esterPuO; AFXk4HPrA;! aO;irAXCrena7HK;!gementOtB18us;! O;con13Vi2T2;e9YLin-the-middle7JL;in the ironOwith no 4JP; ma98H;aYdouh elssbiKie XlukWmRoru Ota mohandB9A;hosoB7CmPoO;shB58;iyaAGP;aPoO;n,ottyB2L;l,ry iO;nterO;courB7H;! s4X4;eisenhAO0gu9VLvan d2NO;'7J0dy doumbouAGTmABPtaAYO; e7VEaZcolmVd72Fe ga861iTlRmQnutriB4KtPuOwaBรฉ;kuA6Xma,s;!a,esAHDhus8O3;edy7WNรถ; 7FPaB6Leus maleficOor9XR;arATL;! Ok b32Ln รฅ8WFque thompson-d4PY;emAU3naA2K; O-jamal waAFN;glaPin the mi0SZmOturn7DEx,y9G1;a7E5c9L6;d9ZHz0; zimet31QcVika aroGla yousafzAX8ng13OrAvika moh9KJwi92HyOzan book of the 9HX; AH3aRo-polynesi2ZKsiaO;! Pn O;movement controlGRunited democratic44A;aALEnaA2B;lB5En O;emeOt98F;rg9FZ;ca,hiH;aRePing a5YHoOro; komuAWMto shinkAWY; AGBmO;aA9Wy2TW;rOti; sankr64Eov 54;apahB4Kel9OAorO; Odo9K2;aTdepressSfilm90Qhistocompatibility42JlOnon-nato 59Rprofessional sports leagues in the united states and 7LVreligious grouAINs85S;az0eague O;bPsO;occ0;aseAAQ;ive98U;pp43RrO;caATC;a 02Fd iWka4YUlVmon9U8nSsie RtOze;land 77LreyO;a,i ramO;akrishn1;adB4Qwi9HD; batt7KTeOframe4RMichi bTZland7V3s electricity 8L2z;! O;co2;chi9DPlardA7I;n m4IQ;aYeViTjo8mOogaA2Uลtsukai no yo277;oud aQudO; of ghazAX9ul hasanO; j9V7;bbB7JhmadiO;nejB3C;-maAV2ma mak891rO;a 92X;rshala8JOsh O;bOja449manjr7VZ;abuB0ThaAYH;bhaTlSrQtPvOyaASQ;atar babaA87iG;hir mohamB34ma8TM;aOishi mahesh yoAN1ram mammady9JE;na prat96MshtG;anobisFOia4Y3;raB7K;adheeGda0Aeina tovAX9gi05hr8NTiZlAZAnOpB4T;a cXePolAuOรบs ver magnรบA3N;m93Ds car8UU;siumUtO;! urRiO;c Osm;fOmoAH0resonance ima19Z;ieB5Kl9VK;i O;scheB6T;! sulAVS;arB78;!cOnot AU0; Qal O;creaturesOgi89Imystery 9C0objectsO; in3CO;in3CNjAZ4k92XmikeOr9Ysq1G5;! xACA;!e O;aderin-po6PMb4KTch7I1gPlaA01q,sO;iAOPmiAOM;raB5TyO;llenRW; goe0BOlena a7YY; PrskO;! alabamaARL;ma9C1wO;eB35hi6DP; 0Fa09cap6NGd07eYhVison ToPrAJ6s O;mLProerslAYH;ff investmen85InnaO; Oโ€“whore40O;aAIWsO;eb263i72V;be0cawtAVLis9MEpe0KEsquarO;e ACU;aga9YHuOya9IP;baB5OrO;am,i dixB2G; Ta,iGlO;aine pe82Qeine Qine Pyn O;cAT7puAZQ;ka8KTmiAX1ziAY8;aOha6UXma9W1s20O;lbrB2WstB2J;in Om1;aOhe9XL;byB4S;en nfl,ie zO;ie7DT;gSlyn murray o'75TmOn lMra101;aQe O;bovaLdOtussauAUKw8MD;e pompadoAM1u b4W4; b12C;asc9;about9X3gB5Oli9ADmOtv;axOen;! beyond thund6WC; 0Ba08b05d,edon3NKg04h00intoshYkUosRroQuPyO; 4T2's;ahui8HSlar deg83H;e81Mp9IQss;! O;big sALQc5KHhigh si6SBmoOsi6SBve9G9;jaAUKnterE;eOleAYH;nzie OrI;a5T4bOc7C1dA8Jf9SWph7SCs8SY;ezAWZ;! oO;perating5YA; A3HeHinOu picc8CH;e OiAXD;co9SPgunO;! kAJ6;r76Gu8OLyv0;eAN1ookO;! O;aB16pAT8;dPqAT9r2uOw;!lay culk6BU;amA;a2KWdemarAR1ga5YWjB2QmQos xOpAT4;! snow lO;eo4XC;ccPiO;ll0ni;lu8;naa41JsQt,yaO; saO;ka0ZH;ai AAZtrichtO;! 40Q;anand sheeB43ba7VHdongO;-seAVB;'NT-doAAOaHWcd sound95YeCHgCBhaAM1i6Njubl8G9l6Io2Fp 2Esu t5USte frequency bA2Ju08v07yPรฉa seydo9T3รผO; 67VbeJ;c04dia 03e,ft,le 02mZnSoRre,sPtham 9XBudmila pO;avli9FFuAPR;eOo603;nkoiAUWrgic acid diethyla2U1;n,to macA8B;a khoudB0Cching5JIdTnPsey de2JFx,yrd skynyrdO;! 6TS; PdieAK8e O;ch9WGfre7U0;coOred386;l7DLmA75nwK;a 7J2on laroucASLsy fonse9T1;eALAphO; no9ROati9YoO;cyHma;and erik meneAWUlo4KXwagg9R9;cor6QTlitvyA08weB0Q;hAVQoris radN3;iv,mh; 1Sann de lesseAEEbunA2Nc12d0Xft0Tg0Rh0Pi0Lk09l08m06n00o84IpWsVtSuk2VHxOz2รญs fi9S4;embourgQoPury O;c9g4KKv7A7;r,t96I;! 9BAiAVC;ePherOz graf schwerin von krosigk; vandAK7aASV;!fi92V;ail iconic770it6LRt;e fi51LiOus;n tPta nyongO;'o;he thiB1B;-class ekrano8GPaPgOisolar2VD;! 5O8; Qr O;c2VBecOgat2IRne64EpA4L;lipB1U;blMLlove3B8; inv6W1en Oinar1VJ;f9F3t1VJ;ar9Q0ulemon athle960zs1SW;a Ye O;brWcVe7PPf41Kgr2DEhUmSnosA0BpeRrock06HsPthe evange5BSwiA6EyO;oungb28D;av9Y8kyOtol6AI;wa9SH;aAHPrL;aOe1UJ;cfar8E8;em9TJu87G;aAL7om97T;acEy1;donฤA7IgA4BmodrA7I;gi's m2AYsOz inรกcio lula daA1R; Oa5TQe ra94U;buรฑuIgOs5VC;ara514u0FJ;anskOn7XQ; p4B2;er Oh;pistB22;hansaPwO;afB2G;! O;fA8Zh3PV;acrFdiHovico einRwig O;ah8NOboltzAKWgรถr3XQii of bav9OXmies van der roAR2vOwittgeA33;an beethOon m5BJ;ov5;auAQF; 0Ca06ch2MGh03iVkUrezia Ty O;and ricky ric51Cboy9DPdQfLha7in the sky with diam86WlPmauOp401wor932;d mo7TQ;aw6J4iu;aOe50M;cDvF;b6D1millaWE;nB04y luc2OS;anTd SeRferQlPndSTus O;m48Dquinctius cincinn5HJ;e B2le A4W;!aB0L; 4M6n lavisc953;aAYCdAZ0mo7FZ; Oo pavar6L9;freAHP;a Pino viscO;on9OJ;libB; RsO; OfiAXH;bOcruikshaA1Jd1Vhe7ZNoil758tiCwo8;laJra94M;guadagniA9CzO;ida6;be9YBlon4YOmontagAGE;co9DHd61C;re96Ms5W2;-fi9MUb3Nc3Fd0E5fi 7CDg32h31is 30jb1k2Yl2Tmbard2Sn23o1Xpe1Wr18s0Xt0Uu03vSwOx; Q-pa88PeO;'s,r Ost temperature recorded on8KW;m4COpeAJYsaxo9WT;earth2J7ge9O9tier3FJ;ePiO;e9VGng0P4; RcraftianQrs Pstruck in thOyatAXK;e 98Z;of the r7HBroJ; ho7DK;aQb79IiPnwanOof AVOy4CR;ti9NW;n the moonlAYBt or list AXP;cOlaAO8;tu52W; 0Cd0BiPvreO;! pyramAYO;e3LZsO; Ua Se QianaO;! O;creol2YMpA28;brAR1erd8N7fOle5NDp74Lt8P1woodward6CU;l4JDoAYT;hOjASMma65S;arAU2;a7N1bra9W0de fun2J2farra8WGga41Jh2WYix68VkA3Ple5N9m706pYslXtVvUwa4xOzampeV2;iRvO;! o68UiO;! o68TiO; o68Si;ii,vO;! o68Q;an gaMuiA3A;heOo3VA; p5MMro9PC;ot4;aOhilippeA1UriASX;rOsteAH0;trAIG;on wainwright7TJspe70D;diamond7NMferrigA82gOh4UJlloA2Qpear7MRreAVT;ehr9WOra6Z0; polish627har matthรคDtery jackpot8TUus O;caAYIeO;liAYVmiGsprAWT; Qe493s ALBtO; OpropheAW5;cause of the confede8KIdecA07fiAVXg7YEin5UOjFH;angelesOzetB0C;! O-A3R;cSdRinAO0kAX3la9IPmeQpoliceOraAYIt2AF; deO;partAA9;morial coli70Ktro 8XK;odASV;harASUlip22C;az5PBd07eXiUnQrO;aine Oie0IF;br714gr8S0n02H;a Pe O;b6QDgr8NVmiA33;dOlu94Ls630;oo6; Os kaA99;gre91TlOp8QEsiAIH;i28Zo9X8;m ipsAKMnPtta O;deAI8lyAI5swAW6y975;e scaf9M4tz UzO;a So O;dQfertitB04insPlO;amAZP;ig6;e'6E6i bonav2Q1;izAO5;f8VWtAB1; P's Oe,i;prAF0resistance61Q;b6UPcha95Ghur2of OrHSvoldemoAZO;the f4YMw9; de aguirBra2P5;king for alSnQp Ose5J5ti8;heANOquantum gO;ra8OR;a,ey tunesO;! cartooN;asA48; horiA3Mdon02e 01gOi3K1nie don713sdaleiHzGK; T-time nuclear waste warning messA9MePiOs47Vyearby5;nDtu9MT;st Ovity claiAXE;common subsequence7J1fl8RNpalindromic subPrecorded sniper178wordO; inA9Q;stABO;beach ScovAWIislandPjohn Om821short-term 70L;baldLsi4O2;! O;iced40Jserial O;kiAQ0;aAMRpolytechnO;ic5GL;su8EPwolf and c7VL;! O;academy of music andUbTcSe83Cg5CYha983king's crosRpostalLRsPuO;nder59N;chool ofQRtOy909;anstedAMJo79V;s railway9F1;alAR9ityAMH;o3X6rAGH; dramaticO; aAYR;s,y;a QiO;c2ta O;ciAS4fashi2;glau1SUvan wagO;en5; Oi;sab9N4;ch8OLnettl7Z8; keA6ri; 6ZK-YaTiOmein ham3T9os;cQn,stic PtO;!eAMM;fuAJ4re8RB;! O;gaHpAMF;n PrithmO;!ic7VP;inALSlPmarshallOpa8W9;-gA13;e9KOuc9WQ;normO;al7PX;alSh nessRkPusO; ofA3Nt;doAUYed-inAHFheed Osmith94L;c9GFma93G;! m2XI; OhoAUJ;aOgAFE;rea8N2;b91WlawOo23Dst0; compaO;ni3; cool j,aReyton0F8iana 2YRoydOvm; O's 3YEs 6KN;au5LFbO;oc7J3ri7VA;ma,nfairpwllgwyn41D; 5Aa57b4Sc4Pd4Me4Hfe47g3Zjo3Yk3Vl3Fm37n1Zo1Vp1Squ1Prim hajrulla84Ts0Tt06u 03vXzOรจAFN; UaRzO;ie Po,y O;ca8AKpat82B;boA42mcg3FW; Ord;kosAQVmOt0AVweAA8;inn99M;a73RcOmi450p6XBtruAW7;aAQCh9PH; SePing O;in the materialAVQsi7OSwith45U; Ple9TErOs1BC;!poAWF;aAUJfree orAUSin front of a studio audiAUMlife 2N8;he9QHmo5R4tA29ullAFD;bA4Dcix4shaoPyO;ifA4C;qi;a 09e03hZre,tOurgic2Z2;le Poral O;c2PGzo6;b9KIcUfTice5GGmiRnightmares9YBrQsimz,wO;itchOom5; ac4UH;ed riding AWUicAUI;ss sOx;uns9TG;eAICoc9F4;aeOhAWN;saAUO;iumOogAQ5uan3EO;! P-iO;on9T;iron phosphate9Spolymer9S;co4rO;aOo8Z6;cQry Oture re55O;moderALKrO;ea9FX;y 5BM;foAU3grE;a 08b06dexamfe9D3kov substitut4HAsajous2DXtO;ed2XBs of O;a00boZcUdSearthqu9NTfRhighest-grossing5FRlegendar1NHmetro-goldwyn-mayQnetflix original5FRone piece475pPstate leaders by5FUtowns and cities in england by 3EDuniversalYv3XNwO;alt disney studios5FQorld heritage s9X3;aramountWeople who disappearARGokรฉmon473;er5FO;ilAUDooAL0;c comicsOeaths by 6OK; ch5XD;entenarAL4oO;lPuntries O;and6W7by gdp;oAU0umbiaO; pictures5FG;llywood5FFx office number-one5FF;ctive separatist movAJDnimOstronomical objAID;ated Oe;feature5FCtO;elevis2T5;eth saOon8DE;la9OC;aXbWdel gioc15JedeVgerrits5hartm4T4jane pers9UGkudrATKlTmRnQrPsOvanderpu91Q;ta0FXu;inAH2obin0FD;ieANM;arie pOcvEur96A;re8W7;isa and cultOop3; jASG;ls9W1;onARTrennan-6PM;nn,s63A;efied petroleum5D6idPorO;!iAUN;! nitrog5-crystal1NC; sync ba5LUiPschitzO; contin5MV;d,zz1; ti9Y9nOr r869;! d99Qel PsO; for lam8ZZgate0BV;b3CWl8HTmesALVri61Bs82B; biA31-manuel mirAT7a 0Tcoln0Pd08eZgXkTseed6HAuO;s QxO;! O;d7N2kernel4LCmiAER;pauANMro53VsOtorvalAJW;a8G2eb1UV; Q-PedOin park9O6trAMR; 53Hin4KI;b9IKlocal2AY;aggre84Jc41P;am,cAIGerASJuO;a fr6B1istic r2FL; SaOba89Un;geAMJr O;aPb,discriminaOeq8LBi7HMm8U5p4K6re8NV;nt 5J6;!l747;i2GOof O;duAOAsucceO;ssion to the britishO; th9TR;a Tbergh kidnSisf5WHsPt,y O;b1QGef7ZE;ay Pey O;buck6LNgr7NAmo5OJs13IvoACT;du8K8e8ZJh8KBl0JYmAD2wa3JK;ap6B6;bXcWeUfiorTgrKhSkRlQmcPpOronstaA0Vtri9PTu7D9;erLu7X4;c1LSm3TM;av4ee cAFoADL;asaRCoz8JE;a9QOuADY;en6RN;moAQBvanO;gel9UZs;ard329hu8;a938laAQC; Os6QG;cPh1UOmOr7GT;ot2SK;a6FZontinentM;esAG6meO;diAFC;aUbSeQiOmy,one6p bizkAQA;na8B1ted O;hango8O0liabilit17L;rOs9MGwiB;enAT2iJ;iOo;c 8V8;!ssAT1; X' WiTlQyO; O-rose de9P3ha9G9pic810;aA0Oc732gA1Jj9SOof the 8SJra8VJtoAAY;ePiOyANA; pa9G7an8YL;! o9WX; PbetBZth,um,รกnaO; szilรกg8AA;el8VDreinAMEta5QD;flA5MkA7D;bSdRj2lQnas9CGpPrel howeLuzi Ow67Nx1yachAN2;veATK;e635u8ZD;oadAOL;ic9S1uAP9;!aAOF;eOud; nastA12lihoodOrt7QU; AE3-ratio 9B8; jose pellisseLmol joARL;a mx,er,htOniHurA; T-RhouseQning Pstorm A32weightO;! directory0S3;m9P2n8ZT;! 8D8;emittingOye9; dio9GL;m6WOnA68raA5Vt6I5; P-cycleO; asse3JK;expect6MOiRoQpe0with O;eOlu90F;lizabeAAU;f 798n5DV;mpris15LnsuranceQs O;bOs7NT;eautif8QW;! c9B9; RcQutenant governorPv sO;chre48N; of pen188;hte9T2;gAA6to ASG;ar,en5C0iOl,oc9GZ;a ba04Rja bO;aฤ9WZ;ence to AMPhOorice5V4;!eO;n,ss;erRi9Z5orio bello948rOya;ary Oe1C9;gAHLof O;a8FDcA35;aSia,tO;arianQi6yO;! O;leading 2PMm7FRshA4Bun99Y; soc9AYiAIO;ce,lPtion O;of8IJtigers of tamil eelAOZ; OiAIL;arts63ZdemocraPparty of O;au64Bca75Q;cy,tic party9O9; mchuALNm Pngel98r O;gaARTli9;devl4g57Lhem9ICnees7DRo58Vp663;b32Qkeq1IKwenl1IK; SbtO;! O;c37Qdemographics5U0inAGIrights Osy8CR;b30in O;c7F1i9ZRj5LOru9O3tA0D;c9A9e7QF; 51'veo50a4Cb48c46d42e32ft30g2Bh7XWi25l24m20n1Mo15p13r11s0Kt09ukABAvZwis XxQyO; AETlahO; fAKE; luTicographRusO;! O;gs,is,lOrx;fa,s,x;icO; o953;g0thAO0;and clark2LNcaOgAQQha9NSnixon7KBt1;p8RAr91I; VaTenshteinSiPon Oy ro9OV;aro9M3heAMU; bel19WathanO;! O;f96Bw9IR; di5W3;nOr 1PB; saginaINt;kamenAJ8tahANPvygo1HDyaO;sh4; X's Vhal Uitia 904oStO;erOuAQ9; Pboxd,s fromO; iw7SG;caAPCf8YG;! ii atO;re9D6;i2HBwe44P;go bOmake6EG;ra963;him 9EZit bleAM0me be your5QWthem eat 3TQ; 00bZhy,lQot9LTsO;-1V9er aO;nti9SQ;eySie O;bQcPdavid6MReasteOgAOWho6QBjoANZmaA8Yniels3YIph7DPstefaAJ2uggaAOUv6A7;rb6XD;ar2h71Z;e1HYi90HricusAOY; Q-annO; 5DVe O;doANJ;ann3PSgoBma84Fs05N;i1os;clayQinval9COmisรฉraA2Qpa8OKstPtontons flinguOwexn0;euAOD;roA5Y;poAPL;naean hydGoy O;jethro g2JOsa3HE;idop10YrOtospir95P;echaAPJo9C7; 01nRpOs carA20;aANVold O;and lo86RiO; o9QHi9QF; VaQhard e3VJiO;dOe benesAEE; brezhnAI4as9R5; l4P9rdO; Qo dO;a vinciOicaprioAJC;!โ€“fiumicinoADO;b3H5c6VRfourn9R4la9RGnim9DHsuss5EX;czolgoOe9WEr7GLsp0BItro1G3;sz;sPtolst9DEvaraO;dk9;ay0tr9HZ; 00aXd-lA6XiUnPo8SFsOtA2Lz9AE;!kaAPT;a,oQy O;b2T0h6RTkO;ra8T9;nโ€“Ox42Y;mcc1GY; rPnO;'s mausoleAA8iAG0;iefensta8HRob4DU; Ope;du8VNhOkaAAQol4r9DU;eadEor6;blavatn9KHdeig5X5wis95I; b6OEmQonPurO;!ia;!y snicket's a serieAKN;i8y;and skl9e 2N6;bniz integral4XMcSf RghOla57Ipz9LAsure suit l4FL; P-anne pinOton meeAEZ;noJ;anne tuoAIMbardu9DAtaylor5OSwhan6BW;eri9R5g955;a44CeAEV;a03endWiToOuAOW;! OlAOY;dQmO;arvel super17Sodular buiO;ldALO;c super-vill8M9imA2B;a warsADTon of Pslative O;council1LUyu1;h575m7I8super-h17O; of the Sary Rre 5U7s of O;runet6BNtO;he Oo3N4;faC;crABDen9YLpi8TC;galactic17Hse2B9white sO;na9Q6; noAMAcy of ka4lPtum prospO;er9UH; Sity of Oly74M;bitcoin bQcOeuth344inceAL7;annabFhildO; po5QH;y country or84I;drinking57Xstatus of O;fictional pornography depicting mi5JJpsilocybin mushr2Q6;-Oโ€“right political 83D; and right-hand traffAOPwing5ZS; Och,ds,k,leeXProy5VQt,โ€“e1IN;b0Jc0Gd0Cg9JRh09i08j03k00mXpaANGrWsQtaePPvan cle5QFyoO;o-AG5ung-O;ae,ji;eRi5NUoo9C2trasA6TunO;-PgO;-k1YL;b4kyANE;-Oung-A3S;hAFRy8VB;adziwiCe4HO;aPeriweA9Pin-Oyung-b9K6;ho,ju8;ck,joALWrv4;ang-4uPwangO;-s9QJ;an y9AI;ae-m1YAe-342iRoPuO;ng01;ng00VonO;!-A3G;-ADRn02N;acoc9CJsaac c9KJ;aPi,sien loo8yO;e-AJMoAJM;nAFBrvey os9LD;aQix2oO;-9V6ng-O;hAAZwookAGW;-hAF7n5U9;hOor9LB;iALZoonO;-jA9D;oPyung-O;ch8LHhAMN;-y8ULyd mal8Q0; Oa and the sw1g0;la8T7zeppelinO;! O;diAF6i9WC;h waล‚ฤ™A4OiOlerc 706;th4;anPensOron6PS;boACGraA7T;ese Oon;c8UUpe9TE; 09d05gue of 02h re8QGmington s9T5n00p ZrnWst Tth8JTvO;eQing O;l2VPnO;ev9FX; it to beA2Ds of gO;raALR;common mult8OLdeveloped cPsO;qu2X1;ountADY;ed helplPing O;c6ENm50V;essALK;secoAIQye9; O-A4Bing tower of piA45n r1WQ;manufactu9Z5six s4S2;ireland premiPlegendsOnAFU;! w9YG;er 859; Qโ€“O;acidOcrime3J2; bAG6;bA0Hp66V;miche7salOth7EW;on9J4;n 9OG;corbu8MWmorte d'a7KRsamouraรฏ; 5Aal singh cha285b54c50d4Ef387g47hoBi44k3Vl3Tm3Hn2Ko2Ip2Dquon t2Br1Js14t0Xu08v05wWxVySzO;aOio,y4WH;da,rO; kagOus of betha9HC;ano7I0; O's,ne st6RFsla de o5TM;kay kAB2zO;ha8;aA25mAI0; Rless la435rence Os2OM;bittaker and roy no6AXkPsOta5IUwe6EJ;t8W3um8VL;asd1r9E6;aRenforcement Qof O;cosA8ZlO;arge num66E;ag8TCin5O2;biding4B7ndAGH;aPeOrentiy b5R5;rne9MWyan sataAAU;nduAL8r 9OD;danA6Fghing under t0ArOs0EFtaro m3BV;a ZePie Ous nob8P1yn 7NR;an4LZd69Hm3X8;l and hardyAF0nO; Qce Oe powell 6FO;fOha4LIluckin736oli3CI;ishbur4AEox;aSbRc0AYgQh779jaureg8S1lPsOtsAA2;chmidt hiss87Jhuler do72KoutheAAUwic18PรกnADQ;apkDo90P;e981r7E6;a4E9oeA3T;mb8SHsh;bWcVdUfr6OVhaRingQk6OSli9B0ma8HBnyA9KpPra7GHsan giaOvandervooALGwh09Jzi635;co8X5;endergest-ho881rep2;alls46Br7E0;dPrriO;er,ng;doJ;eAAIonn9Z7;a142urr1;a77Sen5H7ran98BuACL;heO; clouA9U;a mangeshk9eShe,iOrode12Bte,v330;nOtu98J;! Ox;aOch8CJemA67ho5G3la9TEp9SGsc8GN;l8GPme8TM; Ont 6H3ral flow 92Ux;bronze age7CUmi3M2regi7V5show with david l1YK; Yag6ca99DerXhana2ZZik,se hal1HHtO; OpaAJO;action48Obattle of the battleship b21TchAKOglacial UjTkn8D7lAANmeMnight in so9FSof the summer 77Vsu7OZtRwO;eek tonight with john olAFJill and testamentO; ofO; ad4BR;ango in Orain toAKJ;halif9WFp90B;udg9UK;maximA5Ap3LQ;!di9NU;menQpalmAKGvegasO;! O;r142s260;inAKD;a0Bce9FJd,ge06i05k voorhi3ry Qs Oy30V;mOul86Fvon triA2I;ikke881;bZd685e1FPfWhTkSlRmcmurtLnass9paA2FsPthe cablO;e g7AR;aA2StO;orA8K;a68Yi4FA;e34Qi8;aPoO;g1lm3ov0;gm1nAA0;iOlyA3Porte9G7;nOt6AH;e,k;iPlO;yd5;it6MZrd; w8SRan8CF; Qst O;aOorganisAI0;irlines9AQrtificial non-nuclear explosAD3;hadron coll8ZJmagellanicOultraviolet optical infrared surveyAGC; c9ZB; OineTCvI;croftPdOflynn b89Il6IFpu48O;utAK0;! and the temple of os22P;reO;ad9AD;is lazuAAAlaO;ceOnd9D8; P's O;d9I1eq89Z;op3DOt3WK;tiOzi;an8R6;a0Gc08dXe WgPiakea supercluA96tOzaroH;au tomorrow 823ern7B3;ston79AuageO; Ss O;of Owith official statu291;af8RYb9JMca6WXeu9RWi9R8pa3JWsOtA64;i45SoOw651;uth8RH;fa9AKiso7JH;a9Q3ki82M; U-granTed6VTfiCing SlRoPsO;kn79Tli96M; On do74L;calris8PIno67X;i6ocked9RO;at sa5KJpaA12;t 8BS;of QroverO;! dO;e724i9S1;nAIUthe lust7AA;as6F3eOia; OlAJ2;a74QbaShen5GEreQstO;eOroC;pheAB2;d8SCnO;tzI;nAFDrb0ss; Oi;cPdel rey9BOrho9IBtu9PEwO;acho8T5oAIJ;lZCo8V8;arXbQelPiaOonica g8YIprE;!ceA4E;o 9L1; and mu9KTdaTeRorghiniO;! O;avent8SNcountaA6Ndi4SRgOhurac601murciรฉ8CVurD;all4H4;au7KFrt wO; A32i9LB;! c27Y; Ocus al3PC;j9K6od9XD; bahadur sha9JQaO; amar1VP;eQhta 545ot1GHshO;adwe5RRmiO;! 28I;! Oith sta1CC;bRcQd4VerAFKg9Q4mPof the oz8A1supe90EtOv2GK;ah94Kitica96S;ich954;hADNo8TP;aikMeC;d-back 7YAka,la PnOssez-f73P;e5I8ie 3AM;aA8Hm3NQ;a1oTrangOuardiaA5H;e Pian O;me590p9HY;multip2BRpoO;iA19lynoO;miM;morp969s;a08baACMyO; O-in-waiAHP;a04bird6BGc02di00gZhyegy5H8jWlUmarSof the Qpamela h7EGrPsarah Ove3XW;ch4G4mccorquo852;andolph ch57S;bOla9IY;ed3MK;garet beau9PEmaO;la94V;eshuAACouiseO; mo8BY;ane2MEeOusABY;anne 597sO;si961;aga9AAo3LS;anOmitr0EY;a sA6H;hatterley'sOolin 592; l6ZK;!nd the tO;ra8MX;! ni9FRinian to3BFkh;ey cha9ZChlanQock3N8r6U8tO;icAE9ose inO;toler8VB; mu0DP;iaRours of herc902radoPyO;rin9YR;od7rO;! re1RM;! mO;ajoGinoG;bWcai92Jdolce viAGZg8REh952jet98KlTmarseillSni4GVpaRtPviO;e en 8NQolencA;oya47FravO;iaAGW;lA8Qz;aiAEV;a Pi9D8loO;roA1S;a5Z1laACH;ohรจAG9rea tar piAC3;hรดpital4ORo3CA;-G3aBJbs dBIc and the sunshine 4RMde,e87fc,gb,h7Ki44j a9MHl3Umart3Tn3Fo23pmg,r14s13t12u0Gv0Fw0CySรกrmรกRรถPลO;haku uta ga71Kki uchi9K5;nOppen climate6G6se0RQ;igs9YW;n A3D;iv,lTm ka80RoPrOshtymA5Yus7NHลiku kan9H1;a s3EDgyz9REie ir8W3sten s57M;go furuhA3NtoO;! O;animationOb28p9X3;! arson6Q8;eSiOo r5;an mbapQe O;je6X2minogueOsonique63K;! si6CJ;pรฉ; Or 6II;a9MUch5KWea984gUkuzA82lTmQpitABKri89DshPwO;a953hitt66Y;an6HM;acOo92O;lacO;hl1;owL;a308uy;aOon naG;k do1Q2me nkrumA5OnOzulu-natM;tung5HQz8F2;aAEGm47E; klux kl1ala lumpurA35b08ch07d8X0iper 6O6kABJllbackโ€“leibler div06m05n00omin343rQsOwaABU;ariOha8O3;gaA7O;dUil islandsSoko3JBsk submar30CtOukshetra995; OosFwood99A;a76Yc2BEgรถdIr764vonPwaO;ld5YTrn0; schlH4neg89F;! O;dispuH;istanOs;! O;re8YXworkers'A8Q;al nayy9chacko bJSda78Gg fu Rio0VBjPoOta kinH;icA2O;ali marOeld9A5;akk9;hu943pAD2;ail nanj8ZNi9A2kum bhag9MTquA0M;ergACH; kuch hot3U1isake-7XH;ern2DQla20Yo and the two strABP; tunstaCm;i,tp-90O;a0Hemlin wall necr0FiVoRs-o6uQyOzysztof kieล›83X;pt2stO;al 5OCen ri8FT;pp,skal3TV;g0nO; gPecker O;delAF1p5V6;racACA;egs9I4sQtO;a,hi2OSi O;kharbACLs72N; 02hna01s00tO; novosYaVen SiQofPy O;mcnichADRs4JB;er hiv93Ufer pola936; no96Han wil2Z2n O;chenowe9WEd9HNkre7LBne9HIscott 41W;beCh59Gj7BLsOwi9AH;cOte9HA;haM; Olln0XGnna l2BY;a9L9kosO;on5;elAEM; veA0S;!machari srikk51D;hu7IHje6V8kristoEIma6JKwuO;! sex A8E;opO;olF;ftRkQmpDsnoyar8D5ut9XBvOy51N; ma9ARenO; the 6LM's last 5AG;at8W1en,รณw; hei746on,weA9T;aADEb0Wch0Ud0Ne0Lfi 0Kh0Ii0Hj0Fl0Dm0Bn05o03pi luw9A3rVsRtPurtney59wloon walled 8LCyO;aanisqatA4Ioharu got57u9WC;aOori koiwA2E; 5KTk mahindra 60Tt8ZX;her0Z9ovoOtas tsimikADQ;! O;lOw9;ibera4Y5;eaOn;! under japanese4M2n O;aSbRc07SdQem9YWla9M3n5EHpeople's armyPreu1UEwaO;r,ve;! air and anti-a39Q;emil40TraA5Q;roadca0D8;ir,xe murder5MD; 828kaO;burG;aRda p91Vj8BNoPrad aden832stantin Otinental hoc8WC;chern99Hrokosso8PF;n moOsu9UN;lo9W9;miOrk sunEH;! 8G8;aram bhe959b91Wi Oodo 7O9;can't commun7ZRp7SJr91H;a OkaADImogorovโ€“smirnov 8V5;n878superdeep bore1PL;ak,iO; k0MUma 7M7;!ne g7DK;-i-noA9LlO;'s,berg kravis r80Ora87N;a5B7ki9AI;i tec8OSnigseggO;! jes9LB;aPiO; smit-m9Aa8WN;guQkPnshaO;! u9UB;! b7MN; dO;istri9O1; Oi;fa943i0N3m708;ayashi ma1C5e bOoAB7;e5ESryantO;! sexual assault5OA;apsack6WEe03WiToPuO;ckles the echid9XVts92I;ckin' on heaven's5M9ssA47wO; Oing brA46;nOthy3NSyour custOU;ot6RS;ghtOves7MX; R's cross of the iron71Qs O;hospiPof Otempl9;co58Usid8JHthe roundA7W;taA3A;and8ONbOof the order of the gaA5A;achO;elA8R;! 5OF; rah8AAaSeRiOm9IEondike g61PuH;ff kings8L2ment voroshilovPnO;efelt7YWgo8U5;! 6P2;in bo52Hpt7W3;rQus Oy74H;baOki591m9XGschw82Ovoor9U8;de7YPrbA9K;a Ona;and3W3hi90U;a31bbuA4Cck2Yd2Se2NgaA2Lji9CPk2Jl25m18n0Cp0ArZsWtPwiOzuna A0F; fA9Zf6G9; ScRsQtOzbรผhI;!y O;c773hawk-2U5pry8ZB;ch,u6;hen nightm2LX;cOha6WZk9X9;a9Q5u1F8;hore702sO; OaniABGxsF;diA3Jfrom a 8IOkiss5BQme A4Opr8DA;aXby Wchhoff's circuit53AiVk Sov-class battlec7BBstOti9LP;en QiOy macDN;e a8ACn maldoO;na9I7;dunA84gillib7NA;cPdo646fer5RZhOs76W;a47TerbstreA7O;am46Aou3YU; te ka7C7ba8XSll kapriz99S;howell-baptI8s6KS; buH7n9EY; Oo and the age of wonderbeasA6XpA1A;th76B;d0Ge0EgPm5sOtsu9QW;ey78Pha9SN; 04's 02dom Rfi8R3sO; Pley ben-adA79ton upon O;huCth9A1;isA41of 5KO;hearts48Hof O;aks9VPbWc4GWe9QYfr8PFgVhUiTjSkRna7QCp97Ar5SZsPthe Oy6F2;n78Stwo sici4A1;aOcZZerbAi90T;rd4VVxo961;on8Z1uA2D;e7ITudA0W;reA3Tta9VG;an6TBej7LQun7QE;alicia and lodom5G4re1TF;av8X0oh9UBu6JS;c0GLdiseasOf8MEindia5RZ;e A6M;a793cUdo6W7gTjames 2NRko8le9of QrPs650vO;on,ul9XC;an9YX;i68YmasPsA0PthO;e 7CMo9ZW;k 9SJ;eorge v9JNhidorA0J;a9C0obGrims1T7;ct,s7VEtic O;bombard9KDen6OP; ofPergartenOl0WZ; c9HV; bl9YL; Y's5R0bSc9XTiQoO;no,ra lee sO;im94M; Oko gle9SH;ni todo9BQrรคikkรถn5;al SerlOo sA4Pra;ey w3CCy O;guPwO;illiams-pai8AMyaA14;ilf7ZU;mu894;b08ca07d05f8KJgo04h01il-0L6joYkXmin-8ZCn6FBpWri83HsRtae-QwPyoO;-21Io-5JH;il8XHoo5K3;hA1Mri;eQoOung-cheA94;-Oo-9HH;hyA94ye2;-j59JoO;k9HCn-94S;etrA9OhilA4Toss77X;a13i-d7GLyu7VV;ng-Po-O;hA8Yry8GX;ch87Rhyun,il,nA6Hun;ee-5MyO;e-yo2o59Cun-jooO;!ng;-eA8Trd2;aOeMic5HJotc9OP;-A1De-5IZrA4J;rn3tt9QR;a9RFodnAum;lQoOroy was 8HAt;-9CQwatt-O;ho9PM; XeVing Oswitch enga9RE;e9YFin the 3JKjo9ATme softly with his so8of Othem soft9TW;breonSdaunte 8I9eric ga9G3gabby peDIjonbenรฉJUosamaRsophie toscan du plan8SEtOwalter5Y8;imothy russell and malissPrayvO;on8EP;a 6UR; bin l3Z6;na228;d in 9KFrO; 73Ks of the flower A3I;'em aClA37; 2LBai sentai zenka88WiPukoO; ino9X8; O's delivery77QmoG;cama4YFdA0M;fer suRrOvan rus';an Onan ship9DQsey cle938;cu1CEtO;ie9UFrippi0;th91R; Rada5YLnPs dianO;a 4N7;apping of Oey;elizabeth s6I5jaycee du3E4;aOcu9WHroJ;! mn8HX;assPboOstaA1L;xi8;torrA3X; spor9ABraO; ad36J;aUilafat7XJloรฉSmer QoPruOu9Z8y094;angb4shchyov9DA;is1pe9ZV;em9TMla9GTrO;ou9QF; kaO;rdas7JH;b00lTmzat chimaA0BnRrQtOzaA67;!ia buniatiO;shvi9YW;ij98Yk9HXto9SV; aO;ca4VL;ed hossTiO;d QfaOstan7X5; bin zayedO; al nahy1;ibn al-walA5Csheikh moO;hammA34;ei9XI;arPibOy laA7Q; nurmagomed96B;ov86X;a2Wb7YHdar4Re2Pf2Ohl2Ni2Bke 29l1Qm1Pn0Uon2IJp0Rr0Fs0Ct0Aurig dr 5L8vTyO; Rboard Qm67HnesianPsO;er sรถ74Rhawn61Ptroke log0AO; e73U;i6CSl3AD;sig3MYweA4C;in Ol9on 8UH;alejand9VTb23Ac01dZfei9PPgar99WhaA7PjYkXlo9WRmUna9Z3oTpRru7VDsOtancharo5;miPor6R6pacey99Cus9BCysO;tr9MR;thA0W;ai94FetOiet7XDoll93O;er 90A;'l75PweN;aPcki7V6iO;chael15Ot4TM;c925g6SKx8Y4;e693li6;am3onA78;e bruy6i861uranO;d,t;la9YPoO;nr8URstn9PB;a8NWch9ORoO;genic1J8ne,sF;hOsl7TW;a,u ee veedinte naO;dh1;aXbal space5UBeWguelen94YiVmitTnelQose6ry O;co8M8kOpa7LYw606;a2RRe5OK; O-based viRI;densityOmeA5M; esti9KS; tO;he fr9HJ; r6XIng;m bรผrs4n wo33T;laOt4;! blasters 99U;a arrizabala93FlerO; s0KJ's O;laws of planetary64Psuper6EW; 0Dan6Z2d09gan ashuGjiro t7YnYosha unrest5DAsWtOya; Uaro1Vo yaTuckyO;! O;dQwildcatO;s O;f992m3AA;erA1I;ma7OS;ho8VVstat54C;ho o9DSingtoO;n 6MV;eSy O;chesnEdalg9GVeQg,k4H0lPmOome930ro9YW;ccor3ZW;og8HB;ve8M9;dy Rth O;brana41DcoOfe8WKmoBtobEwi8FM;nnA2NpeO;!laA24;cOfa8XGspac4S3;enter ho516urA4D;all5WCo,rO;a Pick O;lamar8Z2sam7TU;s7TJwFO;bRcu9OQf6TjeQkesEl4TQm7W2no4VPsPth6YDwO;atana87O;ham9P3ta51ugi95W;nnA2Jo8;erLurN;a8P7ono jih5pegowd0ZH; 05e04is,lRow9R1pA3BseOvin gastel9QF;a ballePy O;asb90MchA3Fgra8S6;ri9V8;an lu9Y2en Yogg27CyO; O's0OEanneF3;b6C9cVgre6S6hu,lUmRosY1pQrOsta9HU;e6ZEi9BNoO;hr6E1w9YH;i71Qre930;aOcgi8AG;c8LArO;cIi2K;eb9OMyn9TO;larS8r99Nu9O6;go9NCmoO;nd,oB; okere96Sla;mi3CW;pa8RQrO;os9NS; c9ko nobuZXnYrWth O;brymer5UYcUd5SXeTf0QOhRjaQmo2rPsOu58E;ilve92Y;an4K4i7YJ;c972r8L3;a9HIunter jesO;pe9JG;me9JF;arra4U0hegw4; staOa knigh3QF;rm0;an2N4;a9UEsteinhaD;fiy8L7ir,lavรญk 9SE;chantTgan-michael kElRm3HGnQpOrthy su0UK;aA3Ling up O;appearaA3Nwith the kardash9TO;an wy9MXen ivory w45C;ey haOy shaye8YH;w3zeC; se8VC;la se4UZnu reevO;es9XW;rama 8TY;a46b41cey musgr997d40e3Zfka on the s57Fg3Xh3Wi3Qj3Pk3Nl3Am31n2Ip2Er1Hs1At04u9T0va,w00yVzO;aSimir male709uO;o ishigu9SMshiQyO;a nak9SXoshiO; miuG; sakura9LMge no75S;khOn; 9CPst1; QaPden k9KNfa862ky,lOvan n69K;a bra9N4eigh mcena8ZC; scodel8ZPk;ca4V5kOle6UEpa6V1;ay men2en3OM;aQhiO; lO;eo8E8;ii,saki9L5; 0Ra0Qe0FhXie Tniss everSrina RsuQt 6PLyO; Oa zamolodchi89Mn6ROusha rocket laun94N;m924pe4Z5w9K3;hiro oto8FQyuki konFU;b314ka806l9ST;de5;cQho5PUl6F6mPpO;av32Wip0o9WTriA2Z;cg7OBel9OJo4XR;a2J7ourA44;arine 03erXie lee gif8TOleen Vman30IoEryn Sy O;baQg6KMhOnaji7YX;i901oO;ch81R;k0t3;bigPcr6O8hOne5SBwa8ST;a7IBu90H;elA1A;h83GquiG9ro8ERsOtu9AC;toJ;ine Oyn win4PO;heRj8F0lanQmPpar8BWry1sc3WBwatO;er90X;cn8QPo8JA;a9KTg8TA;igl,l6JA;gA2Kh7KImOroA25v854;cph9UY; Pe sack3XEy sO;agM;a9W3bTcap7I1flRhu9K0j956mQo'f70SpPsOu963winsl9ZF;i5Y4nA0Wpa8QO;h6Q4ie9HL;aGcki4U2ic927oA1Yulgr8PQ;an4JIeO;et99O;ecPoOu9UH;sw9EIt3OI;kin70T;kana,lin karikรณ,mari da46Ana,wa shou69Z;de4FVgr6VMtiOvon3IM;mpf;aThQperO; schOsky l7TH;mei86P;i vishwaPmirO;! c7YB;nath3V;bi1;a0Ed0Ce05g8AGi03lWma,nVoUruechTst,tOushโ€“kuhnโ€“tucker cond8LXy mu87N;hiRikO; aa3SVeyaO;! gummO;ak64D;!ck n603;e tr1; parisy1lyn gr1CI;ata97Aรถ12H; O-anthony t4SIa homol979ie k110sru9QS;dรถni9UTglu964laSmaQne7TOpPu55Nvon hO;abs7JC;ilki8P0o76I;lOrx;d5o6;ger76Euter6AR; Ok4C8m benze9UDne van4YBsma6CI;b5XAla93P;eTlSn O;a992blQcarPdot89Re956gi68Jo,pO;a9K6e98Fit59B;nEpe8YZ;aJix5; lop1GJia;m abdul-jabb9na6CA;ashOeลŸler9FS;ev6ZGia6MU; Rc9PEite0XBkorPmo6EMn Oo93Fte;joh9kundrG;amOum;! h12C;h1XOsO;wi8HP;il QoOt2;o6BSsi's sarO;co9TU;d9TPsh9TS;a03e 01gViehtiio 9QXji,na9ZMpurUsaQtOye west9E5;ai 1D8ล O;re8L9;i QsO;! city chO;ie5Y2;re8L5tv;! m3PG; PaOchenjun8Y4xi136;l shepherd9C1na rana7VFr940;haQtO;he cO;onqu134;-ne7ZDn-9MK;b74LtO;ana962;! hanaPgawO;a p98B;za950;aSchatka7WXeQiOpaA0K;!ka6Y2la valO;ie8ZT;hameha923n riderO;! re6ZT; sutGlOru u94Pz; haPa O;ha5PSkh1;as1; ZashYeXiUkiSmQpanaPvin6NTyani priyadO;ar38A; chawA09;aOykA;n77Pr4TN;! koO;ec8XZ; Pko kaua9O5ningradO;! FO;l8P3uchFyu8XB;!ido2U4vaA01y cuo9MO; 96Unikov81T;ho naa 8VIpe9IR;ashi ha2F6egurui โ€“ compulsive gamOรก;bl0;al aggarwMilC6ol,sa ollon7LF; Sa Qju,r9S2sPtlOz5;an69Oin o93Fyn d72Y;er perman1UWt;geO;rb0;havOBkara-67T;aa9PTi,lil gibr1o shibu97Z;ami mOemus8OVg7;oc9NO; a5D3so8;aseela bir1OLokawa shot5;aRbQhi alvida naa keh9LEirPuOy 14Y;ki,l;! s9TN;al9Q1;d9NTneri of the iron f32K;ba,nekkaa6thu vaakula rendu kaadhM;class bli85Ud 9NWi9ZAlite codec 64Vmeans0MQnearest neighbors6UQp97F; T9-T8aJUbJQcpe8PJdJPeEVhEUiD0j fei9YFo3Kp3IqueLrue h76Cson3Gtbc9RHuWySรคgermei9POรฉrรดme boa5ACรณQรถPรผrgen O;habe8EPklo8V7;rmungandr,tu9I3;hann jรณhann8W9n pรกll sigmOzef piล‚suds9I9;ar8W8;otOp 99M;hi94LirO;aoOl08Y; phu7; ji-2FVan 32bin nautiyMc9O1d2Ii2Hju2Fl1Am17n0Spiter0Rr0JsPtOรกrez 5PA;e,la9VN; so9QAsi0EtO; 07-in-time compi8G6iO;ce 00nO; Pe Oian90L;bat8FLlu9NLmu7YK;bWchaVf89Zgaeth9G2hTjeSk1lRroi9SFsp8ZOtOve1ZIw5G9;hePimber14ArOu7ED;ude9DI;ro8NW;in,o8;ffe9DS;aOer9HO;r3KSw84Zy5YV;m5JQtw4;art8NVieb8SA;leagueQsO;mi9H3ocieO;ty 65W;! O;da9UXuO;nl6GD;bSeatRfQgo with 9VAinto4WRmPone of thO;e gu8RJ;er86G;or laughs ga9VOri7XB;! take9SW;eyo9UW; bjรถr9RCe smollettO;! assaultO; ho9AK;aQche8SCisPnee smO;olMJ; 2RQprud9W5; sud 7IJssicO;! O;park76LworldO;! O;camp cretaceoDdomi99A;! ascen9C8; ji-964ction 0EQeZgViQji itoPoO; te6E8;! 1A3;chi Qor PperO;! b5VB;dos s08Ufir7F8se9CH;maOsuwa805;su9WB; Oian arche5Q2ko9P0;chae4Y0hPsoOwoo-09Fyoo95T;-m4;ae-4; Oteen9G4;all6KRb71Icarter 7ACdiane rap0H3forKlo9QYstruOwh87O;gg7;an8YWia,pO; Oing the12R;f7U9poin62D;es 0QiPy O;cr5UEmo9MBre5GC;a06eUoSus O;and ethel r8RXbQc7K4ePh9PAstrO;ei8YK;r8DRvo9XC;ab95Nu9FB; O-claud5JC;cรฉsar c0B4i2K8j9VL; StO; Qte O;binOl3WX;oc9M2;m9G6ryl8C2st5UJ;andSbRc5ZHdOhag81Wkavn0lo8CUnewm9wal85B;el9X5rO;e8RRisO;coC;e6NQow5; the phanOre9OB;to9VL; ZnO; TaSe koepc8YXnO;a Qe O;h99Zm5IDnO;icho90D;margu3WCpe3XH; o6V0;ass961b3FNcaRdQe0LTfellPgl6FQle4O7mOnagels9FGs8V7;cm2WEo5M3;ow3;ay,enn8SL;l4YCsablanc9X1;a9FCc3GPdSgRhaa9X6j9UWlPmc6R3or6D2q93Yroberts9QGsOvol82Q;awal8LQt7N8;eOouis-d8R7;migo8VSnn2;a93Til3XW;avFucourn9B2;biOver6;anc9KE;be,tsuO;! ka1QI;ce wr0VIlliard6M3;a04d 02eZge WiRo,y O;cPd8ZYgOh37Umikovi9SFparfi9NSsheinJR;ar9PPe8U3re0;h444ol662; Rc8WKtO; polgรกr,h O;bOdu46Al9TI;ar9N7u8LI;d5JPlo9LP;dPju9FGreinOsteve ha3WG;ho9V1;re7K8; Oa;beOhiCl9LCt70A;ll5NH;aOhi8U0ne8ZF;pat9U3;ismPs O;and the black m2ZLisca7E6pr3X5;!'s view 4PJ;carlos i23Sguaidรณ,josรฉ esparragoza4WUmaPpO;ablo monto93Yer7PYonce de5BF;nuel Ota;albendea pab7PWfaO;ng8U9;! webO; t1TO;egOmorgan4Z5;!m8WM; 8Za8Ibb8R2ck8Fd89e71h39int 34j2Zko wido92Pl2Xn1Tols1Sr1BsWtaro ku631urney TyPรฃo Oรซl mat982;cance9N8f6OJ; Pce O;bulifa9FIcarol o9IWvan pa7ER;beh9cro51KdO;avi8RIi7EK;di9NRto the O;centerOsavage pl7MDwe9SG; of the7EX; ve11e0Fh00iYs XรฉO; Ophine jo9E3;al92Ecarr7VSde sUfeThuiz9mourSrRsO;aOรก;lvador alvOntacruz londo2QHrama8JR;aren8SB;aรบl capa5BNizM;in8QJ;lic1HXrr0;ou9CY;a1Ds8NZwh96Y;e tot9LGp broz O;ti9D1; Pua O;h5XHj8XC;bZdXgVhSkRl5MKo5C5peJrQsOwiddicom7X4;te8Y6wO;e9GTic0IG;adn9RRos5;e9MMlingho80H;aPer8QUoOutc2MW;l5MQm9UZ;rt8XEwlE;ad,o70NrO;ob1;a68XuO;gg9h74En;o803rol51U;f 08i07on,pO; tarradellas barcelonaโ€“el prat9INhO; Q-louis lagr93Pine PusO;! on4O6;b5UJea7UIl64W;b00cYducre8JCfXgoVhaydn,james de6K4kTlyoNmRradetzky von rade9N9sOts9JC;chPmi9CQtaO;l4t5;oo9N8ump9GR;azz9LYc46LerO;co9U5riJ;al4GEoO;ny,si4RN;eOrdon-levi9LM;bbe9SF;ie7OTou8ZY;a8VFoO;l6E1nr9Q8tt5;eu8N0onO;an91U; m752;f24Kmenge7s4LD;rsta2PM;dPge Oja f8VG;j5SMluis borg3masvidMsalcedo cab8EO;anRiPynO; w3AV; el niรฑo pOn sp7M9;ol9TN; PaO; brew9JW;belVcUfi8A1h1UEkyr8LJmTnRpOr9OV;ePiOoo7;ck8JZ;e7te98H;oOwoG;rmal 4V0;as98Dec6FE;am3OTlAQ;fo9TYl; h3C1' annual hootenan8OY; 0DaRes440i mitchell8MXjoe k5X8nOtr2;ie pea5CPy O;buOcla812gr5RFha5INk97Ll9KO;ck9MP;h 05s 03than O;b01c00dYfraXgWhaVkUlTmajo9RMnCOpry9SUrRsQtaylor 3H4vOw3L4;anOil9LT; 9SG-t9QG;p9R1wi7Y4;hys1NIoO;ss,um9R4;a97Zipn97V;e 0A1um02Q;i8ZUrrF;ottsc8M8ro9BG;k3nz5;aviOem9T7;d,s;a4re8QA;an9J6ra5VJ;br6ZIlรถsOsa5LR;sl;fQhOlot1;auer-9EAex,iO;ll9MI;alc2;an3TEbWcry0favreau9MGgrud5hVj9QWkUloTmo8S4oRpeQrPsOvo9PZwat9OR;e9R2paih9OQte8VY;i7YDo9LE;rtw9KPte9QY;ri9BHsO;so9AZ;rd,vi9LD;abat-zi9B5rak7IJ;amm9M8ed0ur8V0;aQerOon jo7CNrower min8MZ;nthO;al9M5;rZXtO;isH;ene bla9AKlO;ib9KDy rog0;oOu4AX; P's bizarreOli2; a38A;rOsi8WG;abb9OT;c52Edirect attack muRentrance examination โ€“ adva7MNprobability6KEsO;ecuritPpeO;cial operations5FN;y 7C4;ni9NX;an37nO; 03nPsO; hopkin5XYton a6F8;ie 00y O;apple4V4b57GcXdepp9LMenglishUf6PVgaTkSl3RHmQra3HAsPte9OXun2N3v52UwOyong0EY;eissmu9J7i8P5;equoy9I8iNo4DY;aOcda9PJ;nziIrr,thF;lim8P3noxv8N2;lDNrga8ZI;! O;re0M9strikesO; aga4;aOr5R6;rs2sh;co2QSwa8H5;a2Kb2Dc22d1Ve1Uf1Pg1Kh1Bi19ja18k15l0Wm0Ln0Ko0Jp0Equincy3NOr0As02tYupdi8TFvoXwO;aTesleySiPoo,yO;cl4PU;ck,lO;kesOl81A; b0NL;! fl39Y;ll,rn0te9PNyneO;! O;f9L1ga7Z5;lanth5n n99T;erLhOit9O4oCravolta9KYurtur9FSyl0;aw,e O;a6VGbapO;ti9O6;ax2chna7SGea7iTl9L6tO;aRein86ZoPuO;art 0I9rg3;cOn3;kt2;m9J0n951;mm,ngO;er s8EKl6S3;aPhys-8FVi7S8oOu591;b8K4me9FF;m6AStzOw9P2;en6KZ;aQePrO;i6ofu82X;e9P1tr8Q7;rt,ul O;getty6JWi906j9OUva99A;'hu51Dat3f gau9AMl9LS;et9AOob7;aVcTeSiPonEuO;ir,l4C9;chael PlO;iDls,t2;hig81X;ars6Xllen779;af9IHca4e3HNg9LKiOtieEQv9ODwho9JS;ntiB;dd5ga9EXh8DLj9N9lkovi3KFsefield48Ctusz8MWyO;aCer,nardO; ke4B1;aUeRiPoOucas 70Fyd2;c8S5ne,we;nOst,thg9OC;dsK; PgOnn199wF;e9MJuizamo9JV;car6H5mesu8VW;ndFrOss9CHyf824;ch,ro8LE;ePn8RJrO;asi4NEee9OPicfalu9GZ;a9M0rL;cob astor901y;iiOsn0; sobies98P;aUenryTiSoPuO;rt,st2;rtonOwa9NU; coO;nwK;lle8CO; ne7V6;i9JOn58YrO;b5T2vey kello8DD;ielg95Jle988oRrO;egory d2ZCiO;mshaw wOsh9MR;il7YD;o8LJt8CB;als4ZSet3JNie8K3oQrO;anOusci7HN;cis d5V1kl4;g7U1rOster du8RQ;d,syt9E4;dw8W8f8FNlwKntwi8EPverett millaF;aTeRiQoOrew b27Bu po99A;e,nO;ah8C8ne;l4BCma5A9; lanc9N5ac2bnEeOl313mjanj6WFnv0r8MJwE;!re;lt2vid5IN;aTena9IUhSl64EoQrOu7VR;av5eO;asE;lt8IJnsOr0SL;tan785;o,rysost94J;b9PLge,irnc95PlRn988rPsOza7;sav1O1;maJpe8M6rO;a4EBoll24D;e,v4;aSeQiPlu1K1oOr4LP;nh9LZo8BQye8LV;rch 67Esh8WM;l3LnnetOrc9MU;t ra6K6;rrOsi5K1;o7U4y9I3;braSda9N4lQm9GNnOst4;d lorena boOi8MH;bbi9FY;de4EPlen O;ch92Zmu6KI;ham9I7ms2; UnO; Ra elisabeth of holstein-gotto7OGesO; Obu97E;brah9MVgOhรธsflot klรฆ68Bke6WYr7CDverA6;ut8OW;ha9KNsOwolfgang von goet9D2;cho971ebastian 5X6trauss8EC;cruy96Nde 66; 02lQy O;bOdi6ZHfa8H3heathe4EDjord8K0ki8la1K2ra3DL;atEo960; Py O;c5XTfi84Fri7TT;do3KVeVgrEkinnUmSosRsOw0Z2;cPi3DDpoO;ls8N1;huma8P1;te5;a8EBcO;cr9I8ha7;am1;dOmbi9LL;ge4E0;a0Eb0Bc09d08e07f05g04h02j1IHke01lZmVnama964pTquesa9M6roSsRtQwO;al9FMilOr9L1;ki9GHloJ;a1XJessi89X;atr88Nim2tru8AK;g1ot;aOes8N5;ntol1AEt7PW;anQiOon56R;lOx2;lion69R;ch4gani9F4teg996;aGoOy1XV; trugl8LYuF;eLnnedy6GN;a9NUisaO;is9B8;al9EZel8U2ib7SE;l5ONraO;zi0;l9EMx7OU;anHima589on5JN;arn5PCoO;ck0muz7NK;aPid5onam1V3r8UAuO;ck,rr9L8;stia1WC;bercrOlw8LS;omb9KZ;elle f8GChRie Oorowsky's1IHy a8UB;cPfost95GsweOturn31Vwhitt5N1;et4;om0;aa akb9iO; mK;o wilPsOy 4WI;tr7MH;li8MP;chim 03nQquO;in phoenix9GGรญn "el chapo" guO;zm54R; VnO;a Qe O;frogga9E0wO;ha7LSo2JZ;ca22Dgos9FFjฤ™drzej3OVluQn18Mo3SSpaPscaO;nl1;cuล‚a,ge;mlE;a8TRbRcQdi4ZGfPhac5IQje9DUl42FmiOof a4UIplo7VTri6Q9si9KY;rรณ;ont8B5;h5l2CXol5W3r5LXu7T0;a9FHen8OZlon4HToocock5LU;m31Hpe84Nt8S3von ribbentr8U6;da8LDjPk8A7nesO;bรธ;o7VGungO;-s6TF; 1Eang1Bd19gme khesar namgyel wangchuJh17i8LBll13mWnSoQroPs8P6tOล™รญ prochรกz8RE;endra6AXt0; horik0IMemon 0JK;! O;platf2NR;gle Pn,uO; jo6PN;aOb7XO;ll the7JC; 05i hendrix8FEmO;i02y O;bZcXdVeat9KPfUgaroppo9DIhof8GNio94Kki25EpTsQtPwO;al3e7W2;ar4J6;avileOmi9HTom1GWwagY0;! sexual abusO;e 9GC;a945iersaC;a7KSloyd hasselbai8LL;oOur7DU;o4CDre;arOh4;r,t0;a5I2uO;f5YNtl0; s79Pe O;a8SRwa8B1;b07c04d03fa61Fga02h00jYk8ZTloXmVnabo9JQpUrSstPtOva97E;h2Goy;eOu7NZ;iOr9E7;nm1;a9D4oO;ge9JKhn,ss;ar3L4lun5HI;aOcm2KRo6E9;ttF;nd9D6veC;armOon3;us99R;aOe9DSu8NU;n9BArb5OG;ff88Krr8GT;a7o9A;aPla9H6orbett0RXroOu2UW;ce,w4D0;rr6FAviezI;aRelQoe54NrOuckMK;i2XHoO;adbe94Swn;us98N;ckDkk0; Pian O;beCmi8O2;b5CIclay3B0gascOhennes86Zi3V0lat17Gs78Nv5FAwa2A2;oi6;adOyo;!i 3DB;!du krishnamO;ur87C; PsO;hi,u;qi8zem4;changPhy4V7sO;oo,u8;-wo9BG;ark32Eenรฉ ai8T2o7UPumpa l6WM;an3Jb3Id3Ge3Dff2Phovah2Oju 791l2Mm2Ln1Qon1Kr0Ts01tUwOzebI;'s SelRish Os;autonomous Od8VHethnic divis9DVpopula60B;obO;la9H8; st4THleL;ha7K6; PbOhro tull 9CEst9;l98Pr7HS;e7YNfPha59Bli9DSsO;et86Ft9H7;ighter gOuI;enO;er9DJ;per c7WFsSt0us Oy6UVรบs vida3KH;christ suQiO;n Os 95C;c01Xi98W;per2WV; opp08e 03iOy schr9GZ; 02Eca Pe O;buc7NMca998ed5j,mei 9ASwaB;alZbYcWde gouw,hTjSlRmcnam9BRpQraPsOtZ6wa7QD;eA9im77X;bb9GAi6;a6ANlu86H;an921ow5HDuc9JV;on3u8;aPeOyn3;c9GSn4IS;hn,rp0;aOhastain8LK;b1p6YN;a8QDiIrown findlK;ba,v3;a65Oeis8JWjaRlQmPo56FpOs992tyler f8HHv1A0;a867le8E1;cc0B0etc59X;ee so7OWin2P2;c8LMm3ne;enO;he5WM;emy 06i05main04ome5J1ry RseyPusalemO;! articho8L0;! O;d68Jmike's su7O4;brXcant5VXfal8A5gWhVj9H7lTmag21UoSrRsPv6NHweOya8;intra6G0st;andOe9Kpri91Uti9AB;us8HY;e9EGi9IGub4;'c45Jr5RS;a4I8eO;e2WJwF;aCe9A5ol7OW;a8PTolds8RX;o9G4uO;ckheimerOd9AR;! f6HZ; def85Ne39U; 39Ac8E0;allen611bUcRda8L5irQkle7KTl4m1CQnorRBp6OHre601sPthO;or972;is90Kou7um716wi7NG;oNvi6;lPoO;rb8H7;ar8KU;enR4re99Tul2AU; QgO;jOye2;o 4N5;soOyeo-be5;-Omi;m4ye2; 0Ha ma5DLnRsO; stolt8IRenOon bu8KZ; O's4W8;a5NKh1PN; 5L2a 0Cette mccTYiRy O;agu7JFhar99LlPmc3UCry1sO;eag5U3laH;ewFi9EF; f38Fe g8SHferO; P's O;bo918;ani5F9b04c01doud93Le00fl3F8gYhXjWlRmPnet91Zp1ro7TJsOt6C5westf6II;aun7UJy9I3;eOo6AX;e,y0;aRoO;p9AXveO; heO;wi994;nd2wr9FI;ason4MDon3;a7ol9AZu8YU;a8OTrO;a91Key;h7s0XB;aPoO;nn8VWol8ZM;pria84Ar4Q4;ea9FOotte4ID;bush h4CTc3K0d0Z6el996f68Lha6ESjam8F5m2ANor84I;li7GLp70Ota4EK;aine c4MLima k2QXma5H9;ena mc63AlO;e klaas5o biafGy7Q0;!'s witneXM; Yerson XreO;e 2UAy O;ar8I8dRepsteinOj9FDkatz8HRtamb9E3wr9EG;! viO; fO;ounda9D0;aQeOo62Z;anOmu8ZO; mo4BD;hm0;airp6SEd8KJstDS;bYcon9BBdXfi7X9gWhVj7XCkUlTmaggioncal9FBpSrRst99SwayneO;!'s musical version of the war of the worldsO;! โ€“ the newO; g6F6;a8IQich5X6;or5KQrob9DU;ab9eb9C7yn6;a6U7i86RooN;ar900e5MC;a6RJoldbl91R;an4NSu7N8;ae92BeOha8H5ri6EOuc7KJ;ck,z98N;pOt kunU4zy;! O;cj,grand cherok98Lw5OT;dahOediah bi9GCi;! t8VR; bu98A; 04-Tette Rine QnOs;e Oie gaff83Y;cal8QOmo66Ltripple961;ann r544pir94W;m3F8nO;ol1;bรฉdel bok1O7cXjacques VlTmQpO;aul Oierre jeun9CU;belmQAm6QVsartB;arPichel O;basqui922jarB;c vall88Die le6O2;uc Oรฉon gรฉrรด9GA;bC8go8U1mรฉlen82Epi36L;dessal93GrousO;se8UH;hristophe bouv9CLlaude van dam9G6;a6EQbaudr03c02d00gZhaYlouisaXmarWpUre8NQsPto8MPvalO;je1;e8YVhQiOma9GCta4EM;beOm8AL;liD;e6VYrO;im8J2;asseparOiag9CD;to7A5;aFsh; k8U2;g5rl9DR;i05GrE;e cOuj5WQ;arroLG;hrรฉti5oc1YS;il3GS; 6BOownlo58F; Ol;bPhi-O;fi;la17Q; 90'marr4ITb8Yc6Sd6Ne6Lg69hang9BUi66k5Rl5Nm3Bn21p1Cr0Zs0Cthi ratnaWCu0Av04w03xon 536yRzO;minPz O;fu91Ije3SM; grace grUWe 1ZJ; U-z8S4aTcee 954lRmes6AMne mPson4ONwO;al90O;aOe6WQ;nsf7R6;en waOon89B;dd7; b94XpuGs4OP;and silent bob rebo9FObQcPdup1LEe7KEf4BMh984kKle8MTmo92Opa9B9roOseb8RW;a93Oc38K;h86Su849;!aOl8F2;kk0ru7J7;aharlal neh0EQed kar8T3;aPelin t17Xier O;bardem98Khe8FApe3FE;! Ones8NKsc7AV;development k9BFvO;e7PXiO;rtual6TL;me collet-s51XnO;di9E7;min08on Oprit bumr951;al06b05c04d02flemy8g01is00kYmVnewst9A5opp37QpUrTsQto72QvoorPwO;at7KOi6XT;he3;ang83KcPegIpOtaN8udeikF;e949is8B1;hwa8CAott5DZ;ei4M1i7FSob8LC;a2UXri30A;aOom7WTr6PO;nOr0V5;fo9CDtzouk9EM;eOi72F;l9DTn89R;aacs97ZbeC;ar7UNou9D4;erOo603;ek5R9u95T;l24Pon3UY;atem97Teg92Vig9B8l8Z6o6Z;de1e4RF; savoy5R5e O;cephas548g64U; jar bZeUno opToRrOvis co6TB;ePod bO;ow5;d gil23t s617;mรญr jรกOn varsa8LO;gr;me0;d Ot3QC;bu95Md5U3fY7go8W6ha531kQleto97IpO;adalOolF;ec8WJ;ee8BWus5ZJ;in93X;anOon8O8;! 05eseO; P-language proficiencO;y 7VV;aZbWcVdr6OXhoUiSla8MCm4QDnRoccupation of t75Kpe8K8rac3WTsQtelevision0F7verb conju6NGwOy5;aOrit7F7;r cr0NW;piderTPwo9BH;a9DMe4ENu79J;d9CZnO;vasion of manchKM;ldo77Rnorifi7KK;al4EWom4ETui7X7;attleship Or13O;mOnaga8V9y3H9;us912;ircraft carrier Osset price2KL;aka8T8hi0CRka8A9shiOtai223;na8KX;airRduQground Smaritime SnOself-d86;a876eO;ws72O;ring5O9; Ol90F;self-defense79J; 0U-0Sa 0Qe03gZhvi5NMiSnik sRuO;a533sO;!z kamO;iล„s8VO;chรผ8VFi5U9;cTnQsO; OsaL;i1jo67E;a Pe O;lindemu6V4tu8JW;gav7G4wรณjcicka hos7IR;e 5PGza47F; Oo 5PR;hPkiOna-Gseung-5K0won4CL;-yo8;ee8KGy6JR; T's add8Q3ane garo58JlSs iBTt O;jPl5P0mOs4JBwood4VRye8JS;cte0o641;acOon3;ks0VH; parri947le monรกe;a02bi958c01dig97ReyBfZgoYhXkVlTmcg6X8pSr63EsRthe viQwO;ieOym1;dl4;rg4;ey36W;aulEo83B;eOyn90U;ev3vy;aczmOra7N2;ar89F;aw8XJorr2HO;l882o2WV;a7B4oO;n9ACst0;am560u7HU;sh0uO;st5;gana Ok3MY;ma8XI;krzysztof du9A6michaelO; v16U;bล‚achPhOmay5van eyJ;oo91Zus;owicz;a1Wba5CCe04iPmu,setjiO; ta9CB; g01eOroqu90I; Q-lO;ee oOynn si5JV;'d3Y6;beCcVdSfRhyn7RZian7OPke4TGlQmu8VRol96Npa62QrPv4CBwayO;le92V;a4TLedk86N;ee cu8UMynn sp0MH;a94Soxx954;ePim2oO;rn1;metri834;aOhu8la7IY;mpbell7C3rra8IM;er941;ela jam8OEis w1Es O;a1Ab14c10d0Xe0Vf0Tg0Ph0Li0Fjo0El0Dm06ne05o'k04p03r00sYtXvTwO;aQebb space telescopePhOis7RMoo90A;it94K;! sun1NZ;de,n,tO;s2t;! 0DanQiO;! aO;nd8CE; der2J1d3PU;a482he8FW;p53TtO;a7IPe8E3;an8Z0em9ig4IXodO;ay Orรญ887;ro885;at8PJuref7YN;ee9AQ;sbi5HEwton 57T;aRcPiOo31Vu7U;chael8G2ln0;aOc02Bteig8Z7;rd7v7YH;ca69BdPn6XUrsOs2y;d5te98T;d86Ais2;ass1IBi8DQong970;seph dresn91Iy99Y;! RiPvO; QoL; of Oi P;e8QMscP;of scO;ot93L;aQePoOu8U7;ng,rn0;r6SFtf7M7wi91K;rd5v5;aOlai7QFu8SQ;nOrn0;dOg;olfi8ZZ;enimore co7MZle96Mox,rancO;is e4IBo93P;arl Ol3ANnnis636;j983rK;'1ZNa2BSePoOys2;oh1;an,en;aQh3IPlerk0PXoPrO;om80W;bu8ZGmEok,rd5;an,gnEl7M0m4GErv851y6;aSe96Qlu8TOoProOu28K;l4wn;l96UndOw97L;! O;in2B8m7V1;dge 6XIl8SX;ca8ZOnd oliver phPrOveL;ne98Qth8Q5;el8K9;in87C;icaOl6W0rcus38B;! 83Gn paO;toF;ape24KePiscoOlianwala bagh5XE;! new generation 4ZB;el5RPn O;g8CLhur95Ara64Q; and da36Uar99We SoO;bOv sedl9; Oi13H;dOfu5XS;yl1;ange905bUe30Df1TMgyllenhaalShN8j91SlPmcdo7W1pa77Kr6X3steOta6DN;in6DL;aOlo45O;cy,mO;ot99N;! O;f92Oo8B2;rPuO;sEtt;ew0; cour00Kde92DmOni8ZNp8PGr bolsona8XD;e Oie1JV;ki8lor13Omu8T0press8TQr65I;aVdTgeRuarO;! Oun8WW;ca96Zf-8X4landOxj; r5RI;d littlOry;e 2XR;pOt78T;an8UL;dish Qme thandhPpathi O;ba4C6;ir95N;chandra 72B; 7OYden marO;teC;a pinke1XJeOon sanc83P; Pn82Iveon cloO;wnE;carOthirl1K6;giC;ar96Jcard97Winda 1Rk05lyn82EoWqueO;line TsO; O-louis4LV;brIcQdePlOoffen5H0ta7UXv2UE;ac1e grF; molKr18Y;hir76Mous1RA;biOdu p5Z1f913kennedy 71J;ss94L; pasVbO; Pe257iO;an matrix and determi70Sn,ti8YQ;bQcPelor8W2fortune-l36BrOtremblKzu90E;a63Bees-mo7VK;ol129;atal2eO;rt6JY;to8HC; 04a01box7L1f5CGiSsO;eptice6CHonO; Oville jagua95Y;brOfa7ZDpol8PUwa8;ow6; Ve O;b6B9cPearle h5D5gle94Aro7C2sO;hro8PWte8AR;hanQoO;l5H6oO;g1p0;! O;a0NGf914;p7POwe8N5;lPsO;s f6A7;!o8VQ;a0Rb0Pc0Od0Jel94Ff0Ig0Hh0Dk0Bl08m07nic04os02p01q2T1rYsUtRwO;a8E6el8VVhitePilO;d,s7FF;!haC;at8S6he ripperO;! O;susp8TT;avQcPpa5HVwiO;ge97G;hloss8PY;or7TQ;ePuO;by,sse7PI;a87Wyn93R;al7LMosobiWP;boO;ur6;hoPkO;laD;ls5SV;a,cbr8MFu7AL;alPe6GLoO;nd2rd,wd5;an6;eOir91Zlu2HX;rou754vor33X;aOe1QGig7HYu84E;nPrOw7CK;k95Nl94K;dEna;le844rea8HC;aQDro93E;aReQoPu0XKylan grO;az0;rsE;mpsE;niel18Bven8UD;a1M0h3WWonH;en81Nla60ZrO;ooks4THu95O;l7HQnto7CKr875s4E8;arOb7MH;de8VR;bOoukie young-w7F8;a the hu8XEerw6UT;mo81Tru7;ho8UFp8DT;ba6BRd6AS; FA'm F8-8Z8aEPbEFcE0dDTfr92JgDHiDGkDAlCTmBTn43o3Vp3Iq3Hr2Js0Pt05u04vUwSxten8SDzQยฒc,ฬ‡Oโ€“vโ€“viโ€“iv p6Z9;lkay gรผnOzm92D;doฤŸ1;anaOumo-class multi-purpose6YH;gi,mi;an rOi t5BSo 67K;he2;aPermect4oryOy8HO;! coast6ZT;nOr the bone4MN; Qa Oh7SLka1H2;baque8U5miliฤOt2EA;ev8AD;kon8XYmQpavl84CrPtOvi824;he terr641onE;ai8XQei4D2;il8RDozgov81W; 8XPcn red 3E8; 02's ZaRcQer,il,un1RDzO;hak pOiar itu20Ly;er5RT; l5N0; a7WRchiUewon c1BNlOni8QC;iaPo-turkiOy6ZE;sh7Z9; r42On O;aPcOfas8DQla8DZna0XFr2IBsocial68Dwa93H;ui7P1;ir71Om8GHr70P; uchi7U4;aOokay to not be okK; wonderfu1IJlO;l coming back to me n934ways sunny in philadel044;cOfoZIhappened one4UHshould happen 5KU;hapterQoO;mes at4UFnO;sul95F; t2YP; 1Fa0Zco,ek8TQf56Zh0Wi0Vko45Tl08ma05oYraelRsPtOu7MN;anbul6MPhmian8GSrA;a r8R3ei sO;aga890;! QiO; Ot3โ€“palestini0D;a216new shekI;adesQdPkO;amakawiwoสปo7ey3;efense6HH;an8CO; RmPpropyl2QZroku yamaOto8T0;mo8MI;etrOo76G;ic6PV;metric screw thPweek O;daH;re90H;'i7O5el Pil sabri yaak6T6รฏlaO; sa8XP;"el mayo" zamba92Ncruz cรณrdo83F;aReO; of Os of sc5YG;manOsk690w91G;! 8VK; 1VEmOnd6XR;! 01ab908iOo8CK;c Osm;c0W7eWg278ne45AreTsO;chools and brRtateO;! of iraq and the lePโ€“talibO;an6ZW;va8NX;an92P;public of Pvolutionary guardO; c8EM;a2RAiranU4;mirate Oscha3Z0;ar6ZDoO;f a2R7;and Qby8CRin PmakhaO;ch8W4;eu8COi8C0;ca8ZO;ah 2RFng7O6s5PZ;aan kha74Xikawa1A8maItaPwar chandra vidyasO;ag9;r 8JQ; gu7SJac 01belQdoraPiah4X0mbard kingdom bOo taka6SL;runI; du6TI; Ua merc8YYlO;a Pe O;adja8TBfuh7QBhupSC;gQiPo4BJrO;oss1BP; o39Ii 6HL;om8WE;aPl4UUmaO;x7UBy;llO;en7R1;as81WhOne4S7;ay3erz8E5;it wrong to try to pick up girls in a dungeon?,tO;ank 7URhis 8ZO;a0Ce08i00kut72Gma gre91Pn-b02UoRrPving Oรจne j01L;be6DTthal8LY;ational Oe7MZfan8WMitable bow4KIum6HVรฉvers61H;g828nu8XE;nOquoF; Pclad wOman triat2T1y;ar8F9;a8L9bScQdo930gMFl8YXmaPoBpillar of del8QOsO;ky,p7IV;id50Nn;hefOro91Yur7B9;! a7BQ;utterf8NN;di8NPna sha84GsO; Sh O;am8DYc7AQf6LGla8BEmQpe89ArPtravel6FQwO;ar39Bolfh3DQ;epublican450;ob,yt8BS;flower data8F6muO;rdo8R4;landQnO;aeDe O;a7WZcaGd2C4pap92Nry1;! b81L;nQqO;! O;inquiLw9;! Qian Pโ€“O;contra5EBi4HH;calMUembassy5T1p6HUre4KW;hOna7W8;ostO;ag377; c52Balu8YPi6J4; YaTconf7YGhoneRodPsOtv; p3Q4ec,wi8QO;! O;c3COna89Qs149t6QB;! xO;!r,s; QdO;! Oos;a8YBmi8RRp8QD;pulmonic consonantOvowelO; chart with a7CZ;addressOco7PMm1;! 8LD; i76Ran gruffu6PSdi6nSsQwaO;! O-5LI;st6UR;! O;jailbrea8N1ve7CQ;! Oe sk66CiziUG;antonOthru8RN;es3EI; 71-70a6Yb6Xc6Pd4De4Bf3Hg3Ch3Bi37j36k34land 33n2Zo2Yput4A8q2Xs2Et03u01vOxs;aYePiO;ctDsib8WY;nting 71OrRstO;co71Dment O;bOma6ZH;an8MR;ar0YWne90HseQtO;eOi2J5;b7ISd question and exclamation m6TM; O-square7M7;fu8MCtrigonometric11Y;der z8FBsion of O;ku5DOpo8UFthe body snatc67Q;it,yashO;a,i8JU;eUoSrPuitO;!i2;aPoduction toOusion detec275; algorith8ZF;cranial8RNmuscular i0RNn8XIvenous 45V; the wOlerable cruel8US;hiHoo8PZ;g1Il1BrO; mi19-17active bro7JHc16f2W2governmental panel15ior 8GEm14nUpSquartile4H7racial marriag01QsOview with the v2T2;cope6UDeQpecies revie7OStO;ate highwa3UGellar trO;avI;cti35Gx;ersonal relat8D1lanetary f4VLolOun8CA;! no8VOa8WI;a04et Pment of japaneseLJshO;a90Eip;aZb916cWd0TOeVf5MiUmeSof8XLpPrelay Oservice prov7GMt7AZ;ch8MF;o42UrotocolO;! O;s8GAte4S3;me,ssageO; access8HO;nformation7M4;ngineering task6WVx280;ePoO;m1GJntrol message8HK;leb89Lnsorship 4CW;c8H3dult filmOr5FM; dO;ata8M0;l 0Dtional O;air transport41Rb0Ac06dat4IRenglish language te05la04m01nuclear event5XZo00pYrSsOunion for conservation of 2FQ;ociety for krishnaQpPtandard book 7YOystem ofO; u65;ace7GM; conscio3FS;eOough215;cognition of Ol8TI;is8O4kQthe state ofO; pO;alK0;oso72U;honetic alphabetOrognost0C4;! c8SY;lympicEXrganization for standardi62V;athematical olympi8VTilitary tribunal for the faPoO;bile equipment id1GNnetary 1EA;r 5XI;bour5UJw;st71A;ivil aviQoPriO;cket00Pminal c628;urt8UHvenant on civil and political1FZ;ation5UE;aOrotherhood of teams77I;ccalaureaHnk account 7Y1;coPen5E1mOrevenue5YJ;onol6MA;mbustion456nflict in myanm9;ittent f86Todal con4CK; on1WB;eptor14Lontinental ballistic857rural3TT;process Oservices6OY;co15M;ami 1U6l1;! TlO;ectual QiO;genceOj 7GK;! quot5K1;dOprop73O;ark45Bisa5YO;coBgraphic19management44Tquick syncLN;erTrO;aOi8SU;l,tO;ed Pion bO;y p69D;c6VUdevelopmentBV;! O;factoOo4UH;ri61V; 05ane clown p5CCcr1MTertio04ha7SIide 03omnia02pector01tRuO;l4rO;an8Y6gency in khyO;ber pakhtunkh82V;aUitutPruO;ction se4W0ment land709;e Pional revO;olutionary8SD;for advancedPof electrical and electronics engO;in2QR; s4ER;ca8YUgr8VLnt O;fa7Q4mO;essa1M; k81B;!c7BM;llewyn1GWm1;n QA;ari89Jvikramadit86B;ui3Y3;de,ri mina8WU;aQer Osb4E9;mongOproduct3SO;olA;! lillahi wa inna ilayhi raji'8XOte immun4T0;em8JMtaip1; Oiga84Cs18A;ma8O3;ective 8J3; Qtial O;d,public offeringOteaching 6TP;! 34S;fi7;erently funny 26Pu6T7; g8FOerRlourious baster8MWmar bQrid PushO;etA;bOol8SU;er291; s4CU;a0De0Ci06lXoRraO;r8T4sO;ou8TYtructureO;! investment and jobs895;rmation Os7QFwa8VT;aQretrievMsPtO;e67Uh6G5;e3F0y6Z7;ge,nd communicationO;s 2LU;aUectionTuenO;cer893zaO;! O;a1IWpOv5W7;andO;em8XX;! p7XS;mmatOti2;i2ory bowel8EL;mum and supr3STnitO;e Ri,yO;! O;ge8VIsOt8I8wa8V1;t8V5y7X6;fr7GFje8TZmonkey 5WNstrat8OZ;ctious mononucle7CPrnal36D;mous secoPntO;!ry f53G;ndO; s2;quality of arithmetic and geometric m5Y2rtiaO;!l naviga22Y;e1Ki0Ao04ra03uQyO;a4I2caO;r 6ZG;ctUlg8UGsO; StrO;ialOy 8HV; Oi4XI;mOre4F9workers1SD;etMus8X8;r8RMvalley civ23;an8VZiOor;on Qve O;charOr8N0;gi8;cOm4TX;oo8HS;! noo6DC;-QnesiaOre;! 7QAn O;la850nation0TBrupi8ML;aryan Peuropean Oirani0NFpakistani wars and conflic8S7;l86Sm1XR;l86Rm1XQp6BS;aYe XgSra Pt8VUvidualO; involvement in2MXi8MW;gandhiOv8OJ;! O;in8JZnational ope6DX;enous PoO;! c7NH;a8L7languages4WZpeoplesO;! O;in 59Uo4WY;fo4OOga8W0p83OroJ;! 0J's best da8LJnOโ€“pakistan368; WaO;! RpolisO;! O;col8RPmotorO; spee5X1;jonesPpaOuniversity bloomi7IO;ce8TW;! and the O;kingdom of the crystal skuClast c0SOtemple of do8B3;a08ba7VFc07e06in04n02o01pZrRsOt6BY;pace research4WDtPuO;bconti1PAp62H;andard 8VL;ailwayTeRhPupeeO;! 8B0;inocO;er8NC;moval86WsO;er281; Os;accounts5UCcatering and tourism7E1;a4VMe81VoliOre626;ce5UA;ce1il7DY;aOew year's6M3umber6WS;t866vy;dependence6KHstitutes of O;ma6T6te65E;l86Ang85X;l39Iui7EU;dministrative5U2ir6RHm86Arm4IL;ei6VSgaHnational Pox7VGpOsu7HR;ale a7o8RW;c6BFf7OY;cen8RMpendenYx O;ca8THfWlibrorum prohibitVof O;aRbranche50UeQlanguageTpPunderwaterOvatican cityโ€“S; di7AZ;oliticsRsychologyR;conomic1I9nvironmentalQ;ncient egyptโ€“Ortsakh-O;relatedO; arti6KX;or8FM;i8DEu8QX;ce-0NBt O;and identicPorder of odd feP0politOstate of cro2W1;ici1;ally distributed389;aUeRheon8IClusionโ€“eQome PrementaOubD;l 8ET;in82Ntax39U;xclus2FK;l,nPp8Q6stO;! in film and 4LW;di3se; 8FSndescent light bulb,rcer2QL;ar 14Ur3JA;n8FTri ลO5uguration ofO; j4LX;n-out 0AQplace5P9;another world with my smartp0YBbrYcoldXfl7TDliving78praise of p86Irainbo8L9search of lost 8U8tPuY1vitro fertO;ili4UZ;hPrO;eat84A;e Orough the out441;airRcourt of the crimsQe84Ehe6MPlPmoOrealm of the s4QY;od for4HTuth6EK;and of lea6HTo81Q;on 8FB; ton8R2; bZ7;ug3; 0La0Ebo5A9db0Delda 0Cg0Bh0Ai gal86Xl8ROm02o00pOran 6PH;!act YePostor8DJrO;actical jo7CDe8I2;achment of billFOrO;ative2JAialO; Oi8KF;cShouse Qjapanese PuO;ni8PK;ar6P3na778;ofO; j3NP;ollege 78Z;e4APfa8GBw7LC;genOv8RB; p0XJe co7IJ;aSigrationQortalPunO;e 6V1oglobulin g;i8N6s fenyx TA;! to O;me3UJt825;culate Pnuel O;ka8D4;con16Ore16O;ot435; mode8RAur;m53Mstau74K;! 7F4;c,gPn Ox;shumHXvel3LG;eQinO;ary 7RIe O;drago7M6en834; Ob4XMmo5WN;co6NWfi6AMre25Psensor6AN;si-w1yooO;n-8J5; 03aiyaraa7LCeana d'02ha00iWk30ElPovey7KJse Oya naishu8K2;hi7QPko8HD;aTeRiQm6DGumiPyrO;ia8F6;na7FF;noF;anaOgal drug6CC; do4LN;cme plen61Mn mes0MY;aOza shle8AU; topPd,s akhoO;ma8H3;urA;m aliy8KSn O;om9;cr7KR;di6VBvo8JX;ePig8H5oO; uwaFn; Pa,r caO;si56F;barOtu7ZC;inh2MD;hf world junior 84Ft kharagp88Q; Ybo 7YQgy XlVnRor QuaO;na,zuO; f77E;and grichka bogda6YFstravi7OG;!aOeous 8BK;tius of PzO; semmelweFio c6LG;antio8GJloyo8RP;esia niOoo; c5JC;azal8M3p7ZN;farb5nobel51M; 7CTaTeQiOl3ris elba8LG; 4W9na menzIoO;c6C3m,pathic pulmonary2URsyncra7DZ;alPmpot8PGntity Oo80Ys of5UV;docu81Xp43G; gas7CMi8IF; lupi7ZCho;a00c ZeShPici 4EVlo87GoO;!nocla8IC;igo kuro6ARthyO;oOs;sa882; P-t,berg 117landO;!a8NVi21L;a89Sbucket 56BcRhockeyQninePposeO;id2; k8A6;! world champ80W;re8OFu6TE;aw7Y3world tes83H;l3SRo a01rO;ly,us;erian WiVlFmUn RrahimPuprO;of5; ko8JLa konaO;tรฉ;aObattu8ROkhald8QNsa86Xtaymiyy8HE;l-hayOra6LY;th8O5;! personal2B1;bo,za;p6N3u81Y;go asp8R4i03mbic pentam8D8nRta Ou designated constell8KF;aOdelay c6P2;irporO;t 6U2; On di8NM;an2RDbWcUduLf7NKgThSliv2KTmPnepomniach3YFsOwr8NY;mi88Zomerha693;ax7HRcO;diarm8OCew1ke7XXsO;ha6;a8R0o8ME;i4XBou8PF;haOu89P;rl7O7;li8POoO;h5th8NM; kf8MWn O;armi7SJb623c6LWgl5mcgil89EsO;tir8J7;not Oquitting heroi8standing on a million2J0thinking of ending8ND;a rob8QXt6YJ;am 04c03d02give it a 4IZhave01know wh00lTmSori71PsRthink you should leave with tim QwO;ant to Oill always love7I0;eat your pancre8QHhold your 289;ro6UP;aw2I1exually identify as an attack h68Qpit on your 0UF;ay destroy7HWe 777;iQove O;lu6XXto sO;in7N4;terally just told7HSve in grosvenoO;r O;sqO;uaB;at you did last 2Y4y the caged bird s8MZ; a8N0;on't feel at home in this world any8JAream of jeann8NS;are a8QFhi8;g0ZTja2XPmo8BUnot okay with Qs8MZthO;at i 8MYe O;nightโ€”color me5ZWwalrD;thF;-P7aI9boI7clI4dI3eD3g7BSi96jalmar sch95m91o4Br49s48t41u18wa15ySรฉO;ctor PlO;mer h7ACรจne louva8Q2;beller48TelizOluis palm6PJ;on7WN;a0Yb0Wd0Me8B7g0Lks8HKmen0Jou7URpUsterTunPwelO; b5N4; Qa,dai O;ela0BEmotor Osanta 8PHtucs2;co7GDg87C;b4y6X0;esFia;atAerVh5ixInUoO;cRglyc898thO;al7Q4eOyV;rmAsFtical O;axis victory 50Fmoon of me0IX;alc894hondO;ri70;ag62WosF;-v,bo02dimension neptunAg01iXlWm2MPobjectUp7WZr66IsStOvTW;ePhyOrophic24G;roi8DC;n8B9xtO; t0U7;eOonic fl8M8;nsi5ZRx432; iO;ndust8GE;i7OSo7WQ;nflationPon cO;ant8GU;! in the weimO;ar5RY;a6KBeometric5GZ;lOr8J0;a,ic0PH;!opO;teG;ge,rom8AZ;erab8KOrO;aVoO;cTeSgenQl739poPthermal 45TxyO;chloroqui6zi6;ni6VOw0;! O;at83Ybo8KScyani7CApe4ETsulfi7CAv4V1;lectri6W5;a88Oeph7RIhlor4H4;ng8IMzi6;e774rid O;e88th66Yv4UWร— heart magias academy ataraxA;lur0OFttO;! regency walkway5GJ;ng Osa;chan-Odong5VCin-yo863;su8; 2Fa2Db25dson22e1Zffman 824g1Pi 7URl1Nm08nYon peninsula0CHrRsPttonO; gi8FY;ayn ibn60KsO;ar,ein8EK;dy-gTgha8MCli8rOt6FK;eQicane O;iOkat29Ws3E;da,r8GF;m O;sult1;ur873;an,dTgarSiep7VNky doLs,tO; for the wilder7UFerOington7B3sman4M9; O-gath3E5;b4FJrenfr8LTscOร— 4VO;haf0;ia761y;red Oun;daysOy1JC;! O;offensi8D1; 10a00ble ZidVko deewana karUmSoRpOv8FK;back 5IChOty dump8HE;rey boO;ga8NV;ri8E8ur;er,iOus;ng0OR; ga5S4; Oi8H7;continentOsubtropicO;alO; c27N;bu799p8L4; 0MnOy8MS; QiPโ€“computerO; i0D8;sm,ti3;b0Ec0Dd0Ce0Bgenome08h06impact on the03leukocyte ant3LHmi01na8A3over15FpYrWsQtOvaginal 4TV;a52SrO;affic88G;aSexPkO;el5O3in03; r61TualO; Oi8GS;ac5XN;cri72;esourceOights in nor32I; 6KWs;apillomavirusPenisO;! 4TJ; inf7FF;g8IIssionO; to37Z; eO;nvirO;on7WU;airOe8JRis8LY; c0ZN;! pO;roO;je7Y1;vo454x4Oye;evelopment8M1iges0U1;anniba764lo8CZ;odyOra4;! O;tOwe8JH;em37D;abed4qures8A1;do hamarOkahan ke sachay thK;e 7T7;kOu;! h4L4;hTinn and muni84No Oueno8I2;awardQbo8L8cPll3BLm22NwO;ea728;hรกv8F3;! O;for bestRO; Oie4TD;bonn7H4cap8IGdPgOhefn0j0F5la4PJmarlo4AF;la8L1raCK;an6TNe1B8i6KW;!l,y lO;ewisOo8;! and the0XT; P's baO;y 7CK;bKr8GR;bleRePie halloOrF;we5;i,rt hO;umphrE; O's76I;dPsOultra-dP;pac0YQ;eep5NW; Ow7SZ;guofe8mul1;jint7THyao3LU;cTmlStpO; Os;c5V4live sPstrict transport O;se32S;trea7NR;! e3QD;! vi8AM;bc,l and hsv,n;iOvy;day8I8sto stoichk7JUthik rosh8EQ; chi minh4Cagy ca4Ab48dge379fstede's cultural dimension4KDg42i41k3Yl2Zm2En1Qo1Np1Jr14s10t0Uu01wOyeon 3UV; Vard RiPlO;'s moving 7AAin'2H6;e Otz0;lo8ma044;cQdul85UhPkeImo4A4sOthe 2N8un72Yzi83H;ch2MDhoBte8AJ;aw8B2u5B5;a8E5o7IT;a realist hero rebuilt the6H8i met your Rnot to summon a demon Qto O;be si5CMget away with 6YNtrain your 5W3wiO;n friends and influenc0IHth john 3UD;lo8IP;fa86Pmo86P; yif1ghton 7DSn0EsOthi6A2;ePing affordabil7QUton O;r884texaN; Phold Os of the ho85I;h328incomLG;m75XoQpPspa4VBun-american activitiesO; committ8CI;ri3ZT;f On wGP;bo03commons 01gZhXlWmVnormUplantagen8GZroman7J6sQtPv3YZwiOyi;n6FEttels4T8;he 5VOud8H7;aOt6A9;ud,v786xO;e-coburg and O;got798;an83G;!e3YZ;an5X6e7P7or899;aOohenzo1XT;bs61Fn52X;lรผ5M3rOuc7JJ;im6K8;of O;ca4XZt39V;nOrgAu849;ap33G;dsOsfield5HR; of47R; S-air bal40Iel Pline mOst9;ia8C1;cSAdel lu85Fmumb88Nrw8I3traO;nsyO;lv422;d7UQfu2RLgirls want8F7in M8on3p8KBs3EAtub time5YJwFZ;ni mubar7G6pitalPtO;age rescue 7DSi82H;! Oity6B2;play2SD;atio horn01iXmo6nWo1DGrUsOtic7UIus; d'oeuvBeQtO; buchO-wessel-1CS;ho6V0;head n2SFp7YPraPshoeO; cr6AF;di8B7;ible boOor fi83W;ss3; of6RXet;-san to miyamuraQzon O;forbidden 8G8wOzero 0U2;orl88C;-k8IT;bl7YF;e OliHpin' 2BUs;dPsandOvan dy6;ovM;avFia4ZD;kPte8HBver O;d8G6i4HY;ah,e73Y;d03eYg Tky chรข126oPsO;hu,la ra0SL;luVrOur5T6; Oary 64Tific nicknames in popular749รฉ de balz6HF;bl0C4k2WZof1V6swinton bO;yr6;guk-y3IUkongPxiuO;qu1;! O;fOin86Onational securi4J9poli5Z1s4U2;lu;st tRyO; bPsuckleOweC; w0CO;a1V6ee;hi3L0;aOur8IR;! O;ac6NLb3O9cPd3O9f8F2hrQinOk3O9nsx,prelu76B; 7D9tegG;iPrO;-v;ty,vicO;! type r;e00iXm0PUoOunc4D1;! Tmorphic encr16Cph835sexualO; behavior inRityO;! in O;ancient Oj3CE;gr39Xro8IB; aVO;erePfloresi46RhOsap6VQ;ab6LQeidelberg46Q;ctD;ci75VnO;iOy;d848ni; RoPr663schOtown cha-cha-c76Xw8GR;oo8AQ;p4PLstO;asF;aPpa808sweet homeOvideo game cRJ; a4D4;lo6n0HUpp1DSsRWuO;to7VY;d0Ii0Hl00oVt mccalUy O;g6FAl6WFn0QLroman eRsO;ee,pirit inO; cO;hr25;mpO;er8EEiB;la7CY;cOdom8ECg8B9live 65X;aust deniMeneO;! O;c09IexO;ti82J;and02iday grai806ow00yO; Toa87JwoodO;! O;acco8HQblaQforever69QoPpi6M8r6EKsi7WWwalkO; of fa8HE;n 48T;ck2PY;hSj89TmaQroPvOw8CI;al6VV;binson peeHwe;d7CUrie O;com6M2;o8CTu7E9; O-point bu2MO;e7REkn8E6m1;! Oai4SJ;r5J1ta3E1;!daH; 30QenOi77P;! cO;auO;lf6SR;kOus85L;aidoOi5;! consadole sappo857;ch4PGsin 4SA;an'sRmanKwartsO;! O;leOs3QU;ga6OD; hO;ero3;a8GVbO;it,y;rmicO;haI;! 6O3; prison bel7I4ac,hs britann8H0onQs O;ho8GMvO;ic8FO;g 7MV;ac8DG;am ab1KYb3Jd3Der36g2Ej676k2Cl1Zm1Un1Mp1Gr16sUtPvO;!es;ac83YlerQman's wifeOtite5RS;'s bodygO;ua8E2;! O;fa77Qy7S1; 0Yashi 0Xen8ENpani0VtO;a6X0oPrionO;ic6GX;gr8D2rO;i0My of O;a0Jb0Ic0Ce0Af09g07i03j3A2k3IPl74Om00pXrWsUtOu67Tv1HHw2SKyou40I;a6YSe47Ghe O;au05Abritish faRca1VOeQi7CVjews in 7CEnational football leagu0MAoaklandOph835telep0K0un831; rO;ai6SC;lectric4MA;rt4VC;elf-driving Ola7P6ou2VCpa4yph6JB;ca8DW;ad7E2u7C8;alPersonal compu6NLhOiz7H6o88Vrogramming7Q5y5GZ;ot89A;es5YM;a6CCicrosoft Oobile ph8DMus8G6;ofO;fi8EX;ndArQsPtO;a80Bun3;l8CIraI;an,e88M;e75EoOr372;og7;a2M6i8B1r6TZ;ar7XHgy6B9nglOu7O6;a8BJi86Z;aRhOo2ZC;ePi80RrO;istia61X;mi66Kss;lOrt88S;enda8DA;a30Wit1PQ;maz2nOrtifici64Mu3RJ;cient israel and jud85Aglo-saxon7V6i8F3;cOog88O; 7V2al PiO;ty 38G;d2YXf7SDj4DHm1WLrankings of prO;esidents3HAime minister2OX;c and latinoOo8EK; am7Q2;eg7JB;dark mater3KFgirl fr5LH;aWoO; UhiTkazu kore-e8CYmu ara2GMnobu sak7J7o oSshiRyuki O;nisPsaO;na8CWwa7MB;hiBZ; ka8Ima;no8CT;ko ara7X8to;m4VFshimo7M6;ga801; hop5S2hop tamiz73DpO;ie,ocO;aQratO;es,icO; oa7WJ;mpD;dOes 4E5kley point c nuclear power6USterkaifeck 8C;enburg848i 7MXuO; RiQsOt7D9;!tanO; unil5H0i 7MU;sm7MA;aOc065d6RKku85U;st3FP;aPbo,esh Oi7MO;p6YUresham7Y;c635layaO;nOs; sa60X;arXbert38EdWfspoliz7LFlRma af kQton O;mOworldwi71O;cr802;li7XP; streetRaryQb57Xel sl4JDsO;borough Odale6VJong65L;d83Rs748; c3J0; b7VB;egard of bi1YLur guรฐnadรณtt8A2;iPy O;du7VWfa86Wha5SMswa7DF;a b7CQe BX;aruOiko7DV; nakaAW;e0Eg0DhPurashiO; when the1WF; 05-Tclere 72OePschool o265way O;of6A3t1JK;r Ost unclimbed 5FT;e3PJsecondary schoolO; cO;ertif603;bandwidth digital content prot75Xcontext and low-context cult6I7dTfrequency773intensity intervalSlevelRpQrise5D0speed railO;! in O;au3PQc50Qeu7M4;a5KEerformance liquid chro801; p0W1; tr1NW;ePynamic-rangeO; v6YX;finition Qnsity polyO;ethyO;le6;te44Jv6YT;dart5R0efficiency Rfa6Z4guardian spi8CDli6mi1EEno2plains dri4P2school O;dOm4YM;ipOxd;lo85A;imagOvi7QG;e 5UH; i8CEs bos2;hi817;archPonymusO; bos819;icalQyO;! of O;a3J9the cath64E; clusO;te7PB;den ReO;aki Pki Oo ko5E7takaLK;ka6Eto4JS;an7K4itsu7K4;fOmarkov6WV;e9ig6HB;atullah akhundza8AMiscD; never4M's al4L-man4Ka3Lb3HcaHd3Cge4N1i30l28m25n1Go1Fp1BrZsWtUuTwlett-pacSxPyOzbo761; ju703day2VZsel stadium82A; PaO;d4XBg2;ed2TT;ka8A4;rist8CS;eroOtienne 6SLz0;chromia irid7X2sI1;i8CCsPtO;ia,on blum075;e,i03;'s,a0Wb0Mcule0Kd im0S6e0Hgรฉ,i0GmZnYoQpes simplexPri8schel Otfords48Jvรฉ villechai599;space o667wa71G;! v5PI; S's jou7XSdPes of Oin,ku,n;might and magic5K4the s2EU; OotD;antOt7GP;ip8BZ;fiennesOmotoco6BPoWOs4TX; O-O;ti5VG;ia,รกn cort1WQ;aXeUiOรจs;one RtO;!agePiO;an7RX; mu4C3;badd6N3co6NFgO;ra7U9;neu68BsPticO; order of the golden 0M6i826;! trismegi0F;nPphroditO;e,us; R's herQn O;fege71Lgรถ7O2hO;es89V;mi876;ca4melv76F;cium erina42Etage2RR; comeP's lu6IXditary Oro and namaqua 353sy,tics06I;pe0; the 4T1s1VJ; poirotOs;! in li0Y8;! UertRiO;e Ovore89A;f4HVhO;an3U4; Os cuku894;ho4TNmarcu89HsOvon karaj1;obIpe80I;alPeO;de4X6;pe8B4;! hilm9clOk6PZldL;es,iO;tDus;aPburn roma55JhaeOta7ZA;stD;!r4titisO;! c; sung-t7WRnj3F7;an,drik verwoe88Gley passport8A4n0Bochโ€“schรถnlein purpuGrOt7ZB;i06y O;b0U5c03da02e7JXfo01g5XPhiCiXjaWkis7SQlVmUrTth6AZvQwO;adsworth longfe10IinO;kl0; 7QJiO; 7QIiO; 7QHi17X;if7ol4JXug87B;anQ2i81Io34I;au,ee41Q;c4X6m3; 7QCiOv P; Oi O;of O;e7QBfr6OS;n88Crd;ng0vid tho506;aOeju7H0lKzer75E;rlton c53HviC; Oetta l4OKk i466;bergs2charriรจBde toulouse-lautrPgiOmat2I5poinca50V;ra7PQ;ec;a,es6W2;aPoOp;gl0PUrrho87F; ma53AtiH;a,en04iZlQmutOsinki5RJve6CM; Oh weid82H;baka6GCko627sc0UA; Vb6XHeniToPra59PsOuva 4X1; a3GAi8; PfOwe5;re81B;kittyOneighb86C;! 6NC;cOstic0H; a15V;is oth5RHlet l3X4;anXYcoQgo82NoOum;cent67WsO;!p6HI;bacter pyOpt0;lo85J; Ra Oe f50C;bOc6LNmatt75Yze0KU;lavaOo16X;ts783;ch76Nge4LWhSke80EmQof tr6WZr623sO;haOke75R;pi7XKv0;ccOirren7B3;roL;ay3uO;nt82M;anYdWke maka55UlUnPr appa6X9sO;ei,man tr6NH;ek5rich PzO;! gude7S4;hOschlie7RC;eOimml0;i6r81I;ongjOu8;ia8;el7RLi O;fl5DWg5MJkl7TN; p1A2;geRoniPy laO;ma81W;c treadOsm;miC; 0N1h7JH;eQrO;ew Oid3;al64Hb56Vc00Hla7H5;i,p2L9;d0Glth0Dp0Cr07tTuxBCvO;enQiside step 7TFyO; Owe85H;d,met2MSra4w6XP; official's bl2EMlO;y cr07S; WhO; le1KQerOrow7W6; Os;gr514havriles771lock0N8mPo4YFrae53FsO;maC;ccPeOil867;nzi3;arO;tnE;cRdeath0LYePi87Lpu6E5si77StransferOw7CY;! MC;q5YNxcO;ha7QN;apa6FJ;d island and mcdonald760ing3O5st 6X2tO; Os of irQG;attack38Kfai1EOofPraHsO;ignMy77U; d7HG;so881;! OyK0;and appearance of mi1YOcare2N1insuranceO;! portability and accountability7J4; of R-upQac7W8ington hil69Vph85NquartersO; of the uO;nited7IV; dis7UI;gOs5QA;overn7HN;! and the masters0LE;i7WSlHN; di82S;fc 3UKmi,tv; tO;echnoloO;gi3;! O;go,m7J8n857; ji6Ka6Ib6Gc6Dd69emophilia68f67g65i5Xj5Vk5Sl5Am4Pn3Ip3Ar0Qs0Ht0Au09v05wXxe,ySzO;arQbinPelO;ight5ZVn61F; hotI;as,d1JV;aoG3den RlOreddin barb0DW;ey Oie du7PA;at6XZkiOm7PRwi6GP;yo7FK;c6JBpanett2M8;aiiTkO;!er PiOwi835;ng4OM;huPtO;em5FYyp0N9;nt0rrica6;!an O;a7JRi74Wk633la7FE;anaQeO; i Orsine500;been pwn611got news for6YA;! s7QC;m80Rs57te cou7TI;azล ad11Och5GIfieldโ€“mccoy fe7MChTsRtO;ie PoOu7O8;n garden safe deposit burg14Nri hanzล;jacqu3mcda4GF;heps60QuO;ne mi2GOyu86H;a yo73Cor; 6FTan Vb7USeen dillru7NVhRidQsO;anOie1OH;-i sabb7WKal bolki7WK;ic1X; QiOt7BO;mOsh;a 5USoto's thyroid6CT;fu7R8t81Z;minh7M3pik0;a23b22d1Te1Ql1Gm1Bnaaz5DKold 15p10r07shad06t01uWvOya7RN;ard Tey O;el7XAfie745guillRkPmi3YSno6SVva7weinsteinO;! s3KB;eOo6ST;itI;รฉn;business4VFcOlaw4VFun6NV;las5QTol6NO;hi suzuRkOn al-rash83G;a tom27Wi muO;raO;ka7XW;mi7DQ; Phacn600sfieldโ€“jackson atlantO;a 7TJ;boc4RDfOto 7YQ;amily O;mur6I4; meh864;dy5D0i06o05y O;an262belaf65Tchap4dean sta6GXe03gregson-4RCh01ka6l23Um00nilssOHosZpRreQsOtread7ZR;heOt7AJ;ar0;dk70Iid7T9;a6S6otterO;! O;and the Ov16W;cRdeathly haQgoblet3DWhalf-blood441order of the5XJpO;hilosopher'sOrisoner of azk4J0; s6Y1;llo7WB;hamber812ursed1P1;bo7UR;ag0NUo2ZD;a7MLouO;di7UX;nf6GZ;ds,w4UK;eTsO; Qon O;ash809fO;ord7YJ;d6DLjaO;yar7KU;r jump j81Ct O;beecher sPtuOwa6BD;bm1;to3T8;! RePo7DsiOy1BU;cho82M;j75QrO; l7WLc4E8;seM;aSb2X0goRhQl22Xmacmi4B9pOr55Lshi1W8wi77W;erriOi71Q;ne7IW;are5OMo5RH;dwi7X3u839;braha82Und mau6S8;onPy's despecializedO; eYV;icOy ko783; Oa;me1o29N;an VeO;mSqu4yO; P-daO;vi7LA;more74UquinnO;! s7D6;! O;globetrot6C1r1H4;cob5eO;ll6ZQ;!diOm,wood82J; jO;udai7UO; Tcore Riness3FQtaJware rO;andom numberO; gO;en0YA;h467pO;o361u73L;disk77IrockOscience79Dw6T5;! O;ca83Ms6U6;haj5YXin,orโ€“ucla medical 2PZ;ld PmO;!be;bluetOfair43Thard0NSqu2R6v2Y;oo7LR;pOtic 1RW;ieTy O;birthday 4J8c58FdRfeetQmadison 5CTplanPtree013wO;hee81K;et830;! t1X4;a6W6eath6FZ;r than 566st 30A; 0Pa0Ld0Ieda7RAf0Gg0Cja,k09lon08nXoWsRuQyO;a yanagi62Iu shuiping kaO;os7R0;kk7TIm1; R-ulrich rudIeQiO;e cron7K1ka motO;wa7SZ;atic7EZl and gretI;albert 46Hchristian and5T7f04Xholbein3H8is7WBre534zimm6WF;i,v0;aQibalO;! O;bu7E2le4A8mejb7Z7; aU-barbeGh O;arSeinRfLgQjohn-PmOsi1S7wadd3U9;ckKon3LYu7N1;kam5;ads7Y5ro81Y;bi6VK;en79Fte2SU;lstrรถm;'s raz7ZI; Oe bruins sl838;aOg75Wm26Op7NIvo7ZTwi6CE;ar2z6P5; Qing gardensPoOul,zh6UB;ut with y75Hv0; of babyl2;'em0CFse2NN;ord Ou;siH;bPe erรงIj5R6kerchief 65NoverOs36; of ho547;aCra746; PfOkoto7JW;i,u80L;kiO;muG;cRd5E3hyoQji-PsoO;-h7U6lo;e81Qm4;-j752;hi64R;a05burg02dan bin mohamme01iXl7YMmTpSsQzO;a chouO;dhuL;a,tO;er,ri8;i,s3YIton court 4IR;am,erPing Oond o2W6u2PQ;co6PPdi370; Ohead6U;and si6HDfilm 5B7;dQltonian Psh liO;nkl6R7;me2TCpa7JZ; karz7QJou dial7TA;d al makto7MO;!erO;! O;bu74Bsv;d Os;bin khalifaOin7PH; al t5P7; 03al,be7ZGey 01f-81FiZlRoPstonOting4LLva,yna hutc0P7;! 5VR; Og5;ef56Hi4LVo12Owa7ZN; effectUeSiRmarkQoweenPuciO;g5Z9na7X6;! k7K5; c1ES;bu2RD; bOy's c57J;a4O6erL;! sens7Y0;fax 3PZmah yO;ac5PW;b4YNjoel os7BCluO; ri66P;am6Q6h480lOm3MDsp5TEtej819wi0LV;a1JGind5;a7TGeem Pim ziye7PLkOone ek3SRuo7JQ;a 77K;jXBolajuw2;ime Oj;isa74Zno 5I0;er,fa,jby4CWku,lSn1r RtO;ham bin tariq,iO;!an O;re3JFvod6SI;lo7ZW; 5MHeO; sela2RTe steinfeOy bi1W1;ld6U2;fi7SEgFia soO;phA;ez54Eรพรณr jรบlรญus bjรถrn6XB;! in european royal7UE;doJePi7IRrianO;!'s 0CC;an,sO;!to7XQ;hikล,kO; and s74a51RerOsaw r7IF;!ra707;ane7OTeOsburg2FB;as corpDr7H2;kon viiOst's17F; of n1M8;-w2;class battleship proposa7YCi7ZU; PG-PFaLWb0C7daล„5ZJeGAf324g a6H9hG1iDWk2JVlC8mC6nBYo8Hr2Hs2Gtk,u05wYySz7CJรคvle go7M0รฉrard depaRรถPลjลซ-O;ryลซ;bekli te7OIdel's incompleteness theore7YJktรผr7QAtO;terdรคmmeru8z von berlichi1L1;rd6AS;aSeonggi prRlPms3UNnecomastApsOro0TV;um,ycrus3SV;es brandOfi sigurรฐ6WPlenha40A;re7I6;ov7ZC;ru;angRenOilym3ZAyneth paltr7XW; sOdoline0SNpo7ZC;hamblin6VItO;a67Kefa7PN;haegun 34HjO;u upO;ri7OL;a1Jcci1Hdrun bur723e1Eg1Ci0Vjarat0Tl0Nm0Kn09pt08r04sVtenberg38SyOz 5VC; O-manuel de homem-ch4R3a7L8;berr4BMdSfPlomb1YPpear7Z2rit35YsebO;as1E3;awkesOie7VT;! O;ma5YVn7WO;e mau0NMol6FV; Vset500taO;f TvO; Re Pus adolO;phD;courb7VVdo4QAeiOflau7I0;ffI;hol7W8klimt,ma7DPsc1SG;sk6V9v;f7C0gri33Kkenwo6AZvan 635;banQga2k6O5ren laPu O;gobind7T1nan6VMrandha73Csomasund747;ga7HO;guly berdimuhamed7X5i j2VQ;a 7KL; violencXbarrelUd7W6ma 6L3powderRsO; Ohot w2A4mo70U;akOn' ros4W6;im4IU;! O;milksOpl7ZH;ha70P; hO;igO;hwK;e 2E8; PbOmo,ro7UStr7QQ;o,y;arab7ZC;ag,f PlOs4NC;!ah,iver's tra2QGy39Q;cOof tonkin37Rst7VPw9;a5R3ooperationO; cO;ounc7BN;!i O;la777pe753;ana space03d02lVnQtarO;! O;he7MVtun7VE;ePnessO;! world5RV;aOveB;! O-bissau5SC;na6S9p6UL;dRlPty gearO;! st720;aOerm4RCo5H8;inโ€“barrรฉ7HWume c5P0;!fo7W2hall school of musicO; andO; d2I4; parti036o van ro0N4; centB;lielmo marOu mbatha-r7N6;co7NT;nther s05OrOss who's coming to di4F9;nsErilla O;g6X3wa7JY;! DRoO; g6X7;dYm,nOtema7XJva; Wch3gRtanamo bay QyO;in,uO; zh6PF;deten5EDnaval 7JG;do8xOzh6PD;i,uO; eO;mpO;er7UC;yu;alOel0Q8;ajaraPcanalO;! cLR;! 3NB;c game7W4m;a32e0Ji03oPuOyffi6AC;!mman tbf ave7G3n7FOyรจre 32S;cery4KPgu,ot,ss domestic00uSverQwPyOz6SO;pe7VH;ing p5UUn-i7OZth hor1MJ; O's4SA;cleve7QF;choTndRpO; Oon,thi6WY;b,of Os7WRth5FP;e7U8s301;eOhog69O;d 5FL; maO;rx; p3DN;dirGPffin01gorWmTnSselda Rts,zzlyO; Pโ€“polar bearO; hybr7UH;be9m1;bl4PEr5U1;ch,dr; 07Hgar of fantasy and a7OHms' faiOoiB;ryO; t2XF;i Py O;orl6VCp4WKzinovi7OY;pere4IZraO;spO;ut4;! O;d165gluJ;at12co-pers6FEe0Jg02mlin3SFn00tSville QCyO; P'29houndO;! l7JQ;aOde4RZ;li5;a Tchen PlO; b0C1;cPm7VRwhitmerO;! kidnapping pl7WS;ar6ZJorO;be7NH;gOscacc7JXthun7F1van f72O;ar4FZerw6SG;adOdIfell tower 7RGob7;a,e,ier2IU; Wg UorO; meF5ian cSy O;hQof nazianzDpPsO;car72Ci3J3;eJo7P7;in3ou7UI;al2XDha7FR;al4I8popo4RXsuO;lk4;ab1DKberl2S5chappeCdaUgTh2WIkRlPmce1WEod5sesOwi7UE;te7K8;a6XJiO;nd7ELpp7E7;iOur2JQ;nne9;er7E4ir22Sut502;n32Mvi3;ce5PMd05k 03nOr ga7AB; Y's XhouseTlandSpRsle6P7wichO;! O;mea7POvO;il1NX;ea7UV;! s3Q0;! O;ef50EgasO;! emiO;ss7OT;fu7GDth4UW;aQbPca7T6d2I1goOkn7SElan07Om1revolution73Et7PG;bl4;ay pac6DSoo7R4u47E;cr3nac3X9rr7T6;al5R6c636dark 75PfiBgOla73Um37Vnu5R5or27Xprimordial d68Lu53Hw21R;e5MTovernment-d0BB;faCy4Q5; YeO;rQst O;common divOg4T7;is7RR; Q-O;thaO;n 7AF;bo6SNeast asia co-prosperity 3FOloQm0M4toO;kyOrontO;o 5ER;nd2s4W7;a0Db0Achi09d08expect7O8fi06ga7UUh04l03molasses f02northern6OOoxida22QpZreWsTteacher oniSvowel sRwOzimbab3J8;allPhiteO; s3PA; of4I5;hi5ZF;zu6ZQ;alt PeOmog 0VKphinxU;al2WZ;la6WB;c5NTdPpla5VYsO;et,ig2SH; sp7UZ;acific garbage p5RKlaPow0ur7CRyramidO; of gi6VX;gue 0VCiN;lo7UL;ak3eap for3U6;eathen2WNornedO; o4ZE;lt0reO; 0V6waC;a6e1QP;cago 7PHnese fa6B4;arriPooksOri62J; of the western7ST;er re2WGngton524;mericanPtO;tra7GT; n77F;c22d1Veme 1Uf6D8ham1Pm1Dn0Ip08ss07teful d06uman's c05vWyOz; S'QsO;ca7on O;a712p3R1;s anaO;to5PA;asPbOco6HK;ox4BH;ex37Q;eUitO;ational RyO;! P's rO;ainb7RM;f68Vof5D0;accele7PBco56OsOwa7IY;ingu24N; Os'7AV;ac7DBof the firef1SS;hinese3SZ;ead6MS;ho4XUla7PO;eWhO; Ue6iO;cPteO;! o6H1; Qal us3ZFs O;cOdisplay re160pr6E9;a7R4ore ne0G0;de78Pn76M;colo75Wth5BQ;!f3XR; 0Fada0Dblue0CdRitPt O;gu2H3ima5SAmo4M0tiIF; xOe;ha6Y4; Pmaster fO;la7KO;admiral thra7Q6bl7HFc04duchZeXfunkVJmosque seizuBprix motorcycle ra582slamVtO;etonRheft autoOo555;! O;iOon7G7v;ii,v; nO;ationaO;l 696; ofO; d533;st,thiopian renaissanceO; d7PP;ess Qy of O;fOlithu3ATm7QJtusca6NX;in7LR;anastasiOolgO;a nikolaevna6OY;any2entral terOr6FC;minM; fa6EK;! O;cf,w9;cOto1SS;an6ESoO;lo3T6; p0AO-XmOโ€“schmidt78Y;aTy awardO;! Os;for Or5PD;album Osong O;of thO;e 3KO;rPtical O;ca7QLge6KR;!ly;negaOposiO;tive 1VI; O'0VN;c1JHe37Ngr5FWhQki8linPmctavi7JLnOpo5T3;a7JKo2HW;eh1;an3AYiC;ed7A3fo2R0sou7QU;iPuate O;aptitude test in4CBmanagement a2AZrecord examin7L6sc57F;entQng O;in33SsystemO;s 552;! O;boos7RZdY9;eQie O;a6YPfa6J5mO;an7DL; Ola7NQ;and frank7P9b4Z4de7BAgu6E6hOj7PHk75Ps0YEvanderwaM;ig6JCo4VU; 33a32b30chuja8d2Te2Sg2Riรขnia2Qjong1ESku,l24m23n1Wo0Qp0Pr0Es07tXuWvernOwtam tinnanu7NL;ment of UorO; O-general 5IL;general454of O;cOn7NBv2CF;alO;ifoO;rnA;c1E6i6ZDt2GY;ac7FRgh whitl7O7la7IUt;abaya rajapak78ThSla7NDtOye;friPhard baseO; tu3OQ;d svartOed wilhelm leibn1TP;ho7MP; sRam 5YMen587ic Os;ar5J3f74Ela6ZMrO;evivaOoJ;l 5J0;ubc71P;ford 679pOsip 41N;elOo7R4;! O;m6C2of O;jPlu6SHmaOth5R7;rk,tth6DK;o55Nud7QT;!an drag6VBdRe vQg2illaPr the god b5E8y6CHลO; miya597;!z6JX;erbi2NTidM;iTonO; Osto7Q0;b4U2liQmPrOstewart north5EB;amsK;ooBu7AJ;ght5AH;an kn7QVe ho3ET;n6LNro; 0Rd0FgPsebO;erLum70X;i0ClePolO;!pl7PU;! O+,pl7PT;a05b7G9c02d00e70IfYgWEhWim70Pke303lVmUne7H8pTsPtrOv52Rworks2KN;ans4QOen7F5;chol9earchPh36Dit3l6CKtO;adAoBr1ZF;! cO;on2N7;ay,hot7HWixIlKublic dN;a70Me7MG;eNlc,o6EB;aOo7PZ;c7B8ngou7LS;e75Nl5IIoO;n7LQr7O7;oOri7F6uo;cs,od7;al2R7hrome1G6lO;a5CDoudO; pl1VZ;cc5SRdsQnaly5MHsPuthentO;ic79J;sis52Q;!en7O5;e 5HO; S-bye to aQbye Pfe43Nhart6AEnight punp7P1rO;ea7EI;christopher r05Hyellow brick S4;llO; th7B7;bu4JGcount4X5fridayRking wencesl7PJluck charl7N7mQoPtOvibr7IUwill7PQ;im3;meNn p377;an2KKorning5Y6us7PW;! O;agO;ree6ZE;gooOhaG; d1H6;d4QUe baby go6g Rorrh7JBzO;alo higua387o O;jOpo2RB;our68P;hyo6WTli,mPseuOy6RW;ng2OZ;yu8;be chimpanzee6IUo1Z7; 6AWan08dQemPgi appar24DiathOl79Ushifteh fara5CJ;! tabu7EP;! cre7IB; 04a me7L7bach's2AYenTfi7GJiPman sO;ac55L;e Qlocks and the threO;e bO;ea7MW;ha7LX; PdOe4TC;ood7;age of Ue5U9fl2GAgSh564joystick 6EAkam4FAli2os7OArOstate 0QTte44L;aPeOi7NZu7;tri4RD;spberry awardOt6MW; for worst p7B5s;atOir7MKlobe award3KE;e 4P9;pOte3FY;i58Oo7DY;har2QMr1LXs726; he5GZ; ac2XF; and mag6Z7gleb6PNury6A4;bbels6FNthe's f3AP; Rad77DfaQwin693zillaO;! singularO; p6ON;ll,ther of harl6GD;c0IOemperorJFha7KDis6FEof war Psave theO; q6K9;ii6XFragnarรถk;i58HlinO;! 3JJ;!ts head so75S;aGmin-7ES;arlsUk dinamo zagr54QoTuO;! O;compiler QgOlesser gOpP;eneral pO;ublic l5MJ;coll6GE;cc7BHme,s6W5; bar5RH;aOm69O; n5UKil;a0Zen0Qioblasto7G1o02uVyO;cQnOpho3W9; j7Iis j7In O;e6UAtu6AD;ePi6oO;g5l624;mOr7MX;ic7N0;coTtO;aQenOto6IQ;!-freeO; di7JT;miOthio6;c7KUne;cortico7KUneog7CPse;b03ck,na7MBomh6F3rUsPttal st6UYucester183vOw 2;er teix6KKo;sary of Oter 2SC;bittorrentQc24TmPnauticalQpOvideo gameQ;okerProfessional wrestlingP;athematical sy588usic termi4XD; ter7LF;iPy O;ho7;a PouO;s 35I;estef1fo7CXgraRhQin excelsis d68Rmacapagal arro6T5sOv21O;tOwa7FH;ein6F3ua7N6;atrick mc6F3unni6D0;ha7MV;alOe3MA; Pfound7E4izationO;! and world cities research5C7;cRfinancial centr42Bhung7G1innovOEnorth and globaQpPterrorism7M9wO;ar6P4;ea31Wosition5O7;l s6YJ;atastrophic ri5LWi7GD; Vda1DLnO; Oe head77D;beJcSdFJfRgQhoPmOs4KYyoungk4;cg578i7DO;dd7we2CH;ou7L6r6KD;o7KArE;lo7KX;ca6NHd43Spo6DB;dWgolVi7BOm UnsE0sPucOxosmithk79Nzer ownership of manchester un43W;o7EOus atlant3W4;gowQsOtonbury4E7; aOdo7IZes;nima7KA;! O;coma4JWs2VY;m6E5roJ;itic 3SD;iPos,ys O;co5YVkn7J5;at7IRus;a1Cb18f,g10l0Jm0In0Ao05rXsTtRuseppe QvePzaO;! pyramid0GH;n 0WFon;garib5LZver79Y;!a gopiOh4IQl5CR;na740;ele Oh gall6TJ;bOyash9;arreto fOรผndXP;et1FR;af7LLlOolamo savona045; SfriendRsO; P' Odo4V0;front78Yg4JSlast 5R0;a71Cjust want to have f7L3und panz0;'s5Y5;from now5TNinOm3SKnamed t70Ywith a pearl ear6Y9; r7GW;achino rossi7BArPvanni O;ribi7CAs11Wvan bronck2O;dano bGWgio O;aOchiTNmor507;gamb5r57P;! Ua SgerQi Pkgo bilo72UnOo d'acam52Fse8;ifer goo74JyF8;co463;! O;b3L5ly73Pro7E2;cOgersh2lollobrigi7JFmck7D4ro6IGto5KZ;a5HColad4AP;and t60Grum5GLta7DJ;li gl612p; 02bertYdXes cWgVlPmoreO; g3Q4;es QiO;an Ogan'13W;an1LIf4ITjaco5PW;deOv173; Oleu4I5;raF;a06Oit-balti6WA;or5;a ra4YNed24J; Po rO;odrรญguez orej1S0;aOgottf67Co'04V;ren7KU;birm3BZced5CRge4F1kOscott-h1FT;en1; y5S3aQg4RPiOn; hO;ad7I5; QbitPnO;oto75Vto50D; ethe6HH;chikad4HOnOt6FC;eva7IN;bQrPson lesO; pa5IP;alt9;on,s free3YS; c02como 00da Zl7BSnO; lWcarlo esVluigi TniRtO; P's causO;ewK;p7IDs24Yt6JP; 6AHna fac6IIsO; antetokounm517;buff2donnarO;um7CG;po02E;orenzo berOuca passi de preposu7BI;ni79S;colagrEJd0YH;casa3SEpucO;ci79P;aran6ZSopFP;aVeUislaineTostO;! Pbusters6LEeOface ki6DHla7G2wrRJ;ma6;aPdo76Jin theOof tsu4K1pe4O6r5ZPto7GZwhisp2A1; s4MW;dvent5OL; max6AN;e,nt;na5DMriM;ar57c6S6ddy3IYe54f52g51i50l4Zm4Xn3Lo1Ar00sYtO; WafeVtO;ing Sr,yO; QsburgO; aO;dd6UI;fa6B1im6TY;over it with bennett fod72Jstra7GIthings O;do6;! 0E7;ha7H7rich or die try393s3T0;ine bullock-p3AJtaO;lt28Wpo;a0Nd 0Mhard schrรถd0i0LmYoni5V9ryRtrude Pvonta01QwynO; p5R2;beCpressOs6JU;bu4D7; PmanO;de6VT;aQgo52RmarPraO;ff5NJ;sd5;da7HCnd the paceO;ma61I; theory of709aO;ine 08nO; S-occupied06PiOy5CV;a,cOum; Ous;l6TApO;a37eo4YB;a00battleship XcUeTinstrument of surre6BGk0LLla6REnSoQpeasant0EDreOs4EFtanks 3TS;sistance to na01MuO;ni3IT;ccupation of OrVW;c0V8n14Jthe channel6GR;a5W6uclear weapons363;ast5R2m741;oPruiser O;admiral graf sp7AFprinz eug5;lAVn5MG;bPgneisen6WSscharnOtirpi7B4;hor7FB;ismarJ;irOm6TLr5DT; f5EScraft carrier graf zepp6GY;fr4AVg1KS; halli699t7HQ;mรผ79Gvon rundste6OV;lPrd O;butl70Jpiquรฉ,wK;dOt of rivA; Tine Oo 2IL;cRj6HAmcQsomD3viswO;anaO;th1;ew1;ha4CI;david las6K5fo7FVmcr23J;c1Xff1Sg1Klog1Jmetr1Gp2TNrgQstOthermal3WF;ationaryOo74Z; o0J3; 1AeZiPy O;malenk6GIzhuk6GI;aQe he540nOsm;a Oio wijnald72P;c19Cleonid7HW;! Pn O;eGla6QD;bulldogs6KGeT8gQoPst5AOteO;ch,n5AE;'keef7HI;roo7HNuideO;st7FL; Ss Otow4ZC;bata6COlemaรฎtBmรฉliQsO;e0WIt-O;pi2BF;รจs;a0Sb0Oc0Md0Le0Kf0Gg0Dha0Ai06j05ke2Z7l04m01or68DpYrXsUtTv6QRwOzimme647;aPeO;ah,n6NY;l70RshingtonO;! O;ca5G4un5Z7;ak6OPhoroP7;andPegMh1ILor793pa4W6tO;ephan6UBi671ra7DO;!e7FB;a5LVe6AQ;attPeO;ll,p19R;on 6R0;aOc09Hea64Richa42H;lOrt4so4YS;loL;azen7C7incoln ro18Mop79Xucas7AI;e5SEon3u8; of greQiOv; of great5P6iO;! 1QV;at5P4e7G6;l7GWrrO;isO;on6A1;al38HerPurdjO;ie6YW;shw4;loydPor5WXrideric haO;ndI;! O;prot0HT;li7GZng69FzG;icapr6ET;a4R4hakOloon4AOo2ERro7FIuk7D6;irF;eQlaPoo7uO;rNsh intercontinent749;ke,n7EJ;ns2rnard 4VDst;lagi76Irmstrong cu769;cant7CZstanford3T6vOwilhelm friedrich h3BF;on tO;ra6BQ;ic PyO;! da77T;d488me1p59Bse77G;ic time4DTy;raphPuesO;sr;ic RyO;! of O;associatiOi6O4;on6IO;c2WKiO;nforma0LW; Prey O;chaU1ru77H;cPjOmi76Y;ohN;ap3o76N;ac3V8entric603; 2W2a ro0Yd0UeXg0K5iWnVoQrikh ya75Sshin imPtO;i7l5Q8ri3FR;pa6R3;a,cidePme,vO;ese3QF;! ofOs17F; indigenousO; p4UZ;ady golovk4dy tarta5RN;tal pier4UIus; 0Galogy28Ulia0TXrWsis VticSvO;aPiO;eve l6E2รจve bujo7E2;! coO;nv1L7; Pally modified orO;ga74H;a4A8d5G6e6RV;di77Bflood nar2U0m3CLp-o1E3ro6CE;aOic14N;lStiO;on Pve aO;dversari54Hrt;aOiv3J0w9x,z;lp63V; Qized Oplan o7BU;aOlinear5ZC;nxie5FU;agreement on tariffs and4YIcertificate2QXdXeWhVmTofSrRsecretary of the cO;hinese com2G7ommunist partyO; oO;f t0RD;ela4PF; the armi3f2H8;an29Yil7CSotorsO;! ls-based sm2I7;osp4XP;ducationYMl0UY;ata protection re132y3MX;autLb155h7Qk6STrQsPtOwi4WU;h2JEie70D;a74Mim693;ay4VYoddenb3BM;arm2N5erO;! O;dysphXKeq2SDiOro7sy6EG;dV7nequality6KJ;wl6CJ;a64Dma Os672;arte24Bch1j7CB;at4i raubMlert grindel6C8;co,ger 3G1s634;ard mousa751e aku76A;fen57NorceO;! n7C4;k 1STly,naWMtha O;ar79ZgoviO;nd7B4;box 5YZing56Js O;of67W;b2Tc2Sd2Qel2Pgan b2Oi2Kl24m1Mn1Dr0Hs0Bt07uYvUwa4yRzO;a Opr6TD;ci77PsO;tr6Q7; P-friend6YPatri maOniggers from outer28B;ntG;m5nigger association 3KTsexual pract6RH;in Orilo princ6Q3;andres5bazu42Rleath2V2mPnOross51Kwo7DZ;ews6T5;acle7DXci587;g1KMl39LrVssRtO;amOe8; ada73Fa buO;dd62H;'s5YGian Oโ€“seidel 7CG;bPeli2BHfu6YLiOp6U9quad1YL;ntegrM;e7AJl6TZ;i 592;ePling3HCoOta62Hwick71D;-6GZra615;n matarPNs mc3FVway O;ar71Vof6LI; Ql37Mo70Npar noรฉ,troO;eOintestinal t2Ypo7BI;nter5JVsophageal reflux6UL;cPtO;ur3OV;ha77Io4Q9;a0Iden0He0Df5P1g535l7DQm4r08th 07uda06y O;b01coZdou7AMgYlWmUnToldm76Opayton6EPridWYsSvaPwO;ald72Me5N6ilm7DL;lenOyner3JO;cOti6;ia6KN;cott45Nini7BJ;ev684um1;ca67Yer2DPoO;oBrt2;a6RKinO;ek0;en228li5E0oet6AIyg6OT;leOop0;!m1;aQet2K6uO;rgOsE;e7BRho6UX;rl7AM;! indL0;br72Oje1PS;etQison kei5IOoHyO; O's m7CR;kasp5OSma3I4shand758; dilla295t O;hed65Emo31K;naPth baO;le,rL;! freO;e 77N; of 2JPi8;g0M9m2EY;bare dลki-720da6HNes615gQsu,tO;tOz; c759; Ses,nam s5B4re6sPubai kathiO;awa707; of784tO;aOer disci4RN; r5BL's paradi7AM;ba8of 522ra70D;al abdel04b01eSi3C5maO;! Q-O;aminoOhydroxyOray b013;butyr34K;co64Hd441fu6WYrK; R+,br6I3cu5DWm3BSr,sO; workPtopO;! short squee491;sh6JI;boyPchanger63Je5Q7fOjo4YPo79Rth4UB;re684;! O;advanceOcOP;! 5EM;iPlO;er's4FHi8;a 65Hno3MG; na36Z; gad7C0aYba,e XiVlPwKรกpagos O;i69Nt6B0;bla3T2eRiO;c 5UCpoliOum; cO;ampai6QW;on,ry of sovereign stateO; fla78A;cia5TJleO;e,o galil6IQ;anne hu794go4H0;ctRdQh776nPva6V1xyO;! q75V;thD;riI;ic 1XDus;aQji5WAnOus ma6KJ;-of-functionOax; re3FL;! h07S;iya70R; garcรญa be35Ds; elm5RIsdeO;n 3US; 62Fha 6V5;ape2SKby giff6ZSe ne61Sle stev68EoZrielOy hoff6T9; U'sTaRlO;a wPe O;anw9cartWNu6LO;il5YG; hO;ear77J; inf5CR;aubLbQgarcรญa mรกr31CiX9j395maO;c77PrtO;in5N0;arbo6S7or7B3yr6;n54Hurey sidi5CI;co5Y7dr4LPea6R4f56Wsp7AY;m32Dprotein-coupled6P9s1DC; is fo3KP-N6aJLbi JKc JDeGUfGTiC2jo78Aka twi77DlA3mA2n9Yo6Tps66Wr14tse all-world index 5D1uXxx,yVรกbio coentrUรฉRรผO;hrerOr eli78X;!buO;nk0;dรฉration internationale de l'auOlix auger-aliassi7AC;toO;mo4CV;รฃo;odor dostoOre424;e5MEye5ME; 0Tb0Re0Mg0Lji0Jku0Fl07mio kis6E9nZrXsion6P8tOzzyCK;ana76AsMurO;a72GeOi70R; Qs coO;ntO;ra6LH;combat aiG2d6A2nostaG4of O;an expanding6UJe6K9the O;indianOroyalO; na5NG;oseOry fand6P9;mi5XK;cTdamental Pgi49Bi6NWkO;!y1K6;iQrightPtheorem of cO;alc34C;s 6HT;nter6L7;hMtional O;g6RDp0Z5;a 6G3gencio bat6AIlO; Oe6U1metal aQ;brRh781metal O;aOja3HH;lcheO;mi76B;eakO;fa769;o6EFshima O;daiichi nuclear Onuclear6Z9;d6Z9pO;ower2RO; tOan,t5VJ;e30Qv;a59Fe3;l QrtevO;enO;tuG;ceCiOo6M4;nj61N;ini'Oo5UZu;s 48J;manc4GF;a2Xe0EiXoPuOรฉdรฉric chop4;cto77Gits bask75D;do bag5K6g,mRntPstOt,y gutierr71Vze6P2;biHpu68M;-end web6HAend and bacOier2AN;ke751; Oso5TQ;dusk till JFhere toOthe earth73Bup on poppy 4B0; eO;ter4VE;c74Eda02eTgSsiRtzO; Ol2KI;h46Qjoubert duOla8we6O9;ques6;an6J0;aHg;dQndsOs71O; withOh6KR; m5VI; Rrich O;e2EZhPnOpa330;ietz11T;ay65I;chiO;ck5; kah6ZQy night O;di3PHfunk2XZ;aks and g25d19e0Oi0Nm0MnUquencySsPyO;a a3ESja,r;h off the Pnel O;e03KleN;bo6TU; 5OU-sO;hift ke5CC;ch RkiePulum of prepuce ofO; penF; de O;jo8;a0Abulld6ISc07d2PDf01guia6TEho6XFin00la6GJmon2QWnXorL4pWrRsPtOwars of 293;hird4AWoa74Q;econd4AVouthern and antarctic l660te6AXubmarine surcO;ouf;eOivieG;publicanPsi2CSvolutionO;!ary 5QM; cO;al293;e6E6olyn5H5;aPewO; wa6WX;me,vy;doc3UZvasion63Y;iRoQrO;aOi3;nc;reign le5RBurP;fOr1A5;th4AE;ampaign in egypt and4LKoOui5R2;lOm28N;onial 6SP;cademy of6TPir and spa4NGlg2CSnd indi4MUrm2UR;anezum4Y3m multipurpose6N8;burg im breisg6LIda p5Qk6HS; 01b00cZdomSlanceQmOwaB;aOi6S1; agy5NFn d3TXsonL; mOr;arketp6QH; Q-O;class littoral cO;omba5RB;caQfront 6OKin5Y2ofOsh6J8wri5EU; sO;pee6VE;ucD;ad,ode4NH;sd;and open-sourcTcity of dSdRfQg3XFpapua4W2soPtOwill156;hr74P;ft6YXlo;aCr5LB;ownload man21W;anz62W;e 5RJ; 06d01ericRriO;c49Mk O;bOneij;ac3TE; WkO; Pa mandelO;ba6RB;dougCLf34At6B7wiO;lliam iPnslowO; ta23C; PiO; Oi O;of p62Q;for5RY;ie Py O;fazbear's pizzeria5O7kru2GP;fri5HIgPhigh6ZFmeOprin43Cstro6YI;rcuL;ib5AZ;aWbaCdV6gVhUmac38Uro6YVsRtPvanv6CIwO;a73We72Wil175;atascOh3YOru5C4;ioB;aPcOirie6MA;hne5LU;va6O6;am68Zechi6OK;wyn6;ga4nd georgePrmOst3RV;is5; wO;ea56G;ee6VS; f6XKct21g1Zkt6M5me 5N3nQsi0ternOud;al birth order and male se0SFities and soroO;ri70O; 1Uc12kXtz f3TTz WรงoisO; Q-henri pRe O;bettencourtOh266; me4D5;dPholl01leg3X2mitter4HIpOtruffa4ZQ;in3X1;a359uO;vaO;li0;beckenb4V6ha4NLjoseph i50Ek543liszt,sc57Zvon pap5; 04-walter steinm03a pot02enstein01furtZiRlinOs; 0ZJ's lostO; expeO;di70Y;e Onc53X;a58Db4V5edg9gPjOmun17Tv0TI;on759;oes toPrO;an5ST; hO;olO;ly6BU;! O;a6SWsc4KM;!'s4P;enH;ei0;abag1VWb0Ac08d07fa6O0g06h01lZmiYoXrUsRvQwPzaO;ne,p097;e5U7h3A8;in6OJ;er3GBhePinaZ2omO;erv5ZU;er1;ei6T5osO;enO;thM;ce1z;ll0r;aOloyd 5DPuc74M;m0X5ng744;am0erbertO;!'s O;childrenOdu6; ofO; du6;atli6MJehLif5UGoBr4WD;arabo6O3il4FJux;aOo6VO;li,pG;ru6BT; weer0Ee03his02iRk QoO; O-4JPist4IB;ne6SIzeffir5GK;kessiรฉ,ribรฉL;a,sO; Pco O;fr3WJgo6BYmacรญas ngue6WDpiz0ZM;bUcTd3U6fRgaPi2BGlaOm5YXngann5VMof as6URxaV3;wr71L;lt2ry O;po5RR;ord copOuku67V;po73I;ol3DDriJ;ac2;e t695i8;! XsO; TcO;a Qo O;barac5SOsOt2MX;chet315;aSVea5W0hOw3W3;ay33D;beanOconr5RAde la 58Wfi5JOha,mcdor2QYshand ky4RH; cO;oba4;in the mi04Una5XD;wi6ZN;dres649jOkra3TTlebo65Qtarke5ERw05S;eff6UP;gl0DAile O;stat3IWx6MZ;al,i2;c2Nggy4E1ie2Ml2Kn2Jo2Ar0Xs0Rtheringh0QuWxOyle's5X4;! QcPtO;el,r73O;at641o6LM;br5TUc5LUki6S4nRsO;earchlPpO;ir6ZK;ight0KW;e6U2fl52E;cault pendQNla,n0ErO; 04-01ier 00tO;eenYhO; Q-wO;aveO; femi6S4;cTgeYJinRrOwaC;utteO; cabO;in6Z7;dustriO;al 2L8;ru5K; w6RLth a83;se6TYt0FW;dPstOwheel66A;roke288;imensional1WY;asian ti6VBhQl2W3noble trut4J9sPtemperam6Y3weddings and a fuO;nerM;easons hotels and res3YIy4NK;illsRorsemen of theO; aO;poO;calyp70V; tO;ourna6CF;dOtain4A1;atOing fathers24L;io4K1;ay 5RC;silSterO; P's home for imaginaryO; fri50O;thO;e 68J;! fuI; 0Yb0Tce 0Sd0De08g00mVni61VrestTspStOward6VOza 33D; kn63Ah 42QnitePr1une favoursOy-seven rลn4; the MM;! O;battle4B3w19L;ok5; gOal-KD;ri4LGu57W;aldeRic6ZAula O;e,oneO;! O;c9eng6OX;hy5PD;eSotten O;rQwO;eaO;poN;eal6ZU;d iPtting sarahO; ma371;n 6WP;ign Pnsic37CplKsO;k4t wT6;directPexchange08Srelations of O;c3ORi69Hna6J5ta5K5; invest6BF; Oh04I;bron6NJcrown v00eZfYgt,mSpRra6JXsuper du6UZtOvNA;a6MKhPo11MraO;ns6XN;under2E;in6IY;oPustangO;! mach01F;dPnd5MUtO;or 5RR;elOular26N; t;-53Ji5BGocD;-53Icoboost26KsB1x08F;ictK0;i690majeuB;esPidden O;ci6UJpl4RK;!' list of the O;most valuable football clu55Mworld's highest-paid athlO;et3;a few dollars 6TYhOlo68Dwhom the bell t0SN;on6XD; fighte30Jb9dStO; QballOwe9;! O;i5FWleague first 4JFp6P0;bin6EEf34O; Op6YN;and Pdeli69Ui4RSp0G3sO;afety and standards authorit1FDe1HU;agriculture3V5drug4AT;d6OTt awe1W7z6Y5;aHie ร  de5P2kO; E5loB; gr70E;al lRus O;fPhomeO; i554;eat551;eng6IA; Oaf6YS;fPher3LYmOsc9;ag,ini6S5;al,ive-s22Xnc; 67Bo62D; 4N0a11cl,e0Vi0Qo03uUyO; me6UI-by-SdPTing PnO;n 44V;a6Z9dutc6I8l039spaghettiO; mO;on6PT;wiB;i1HIla 172oRsheQtOvoxa5GPx;e,tO;er 69S;d 6TW;rOxe4IN;escenPi6oantimO;on2S8;ce,tO; la55O; 09ating-point a08o04p03rTwPydO; p1BWโ€“warshall3UI;c6SIerO;ing2HUs O;for algeOin the att6ZZ;rn2; de la459enTiO;an RdaO;! O;ke5S1m1p2H5sO;chool for 3XIt4S8;munt0YBze6QE;ce Ot malou6XE;andPca2L9faivBhOn1IBpu6T0w2S3;en0ZN; the4DT;py di4YDs;d Qr O;and ceilingOja5BW; fun48B;my6H4;rithmet6ZI;ri6X4;ckr,ghtRntQpOx6OV; Oka6Z5;or fl66Jwi623;! water 2VEloJ; of the nav5J0pl1;ab645etPmi6QFschโ€“kincaid readability t001tcher4R8urO; 3WF-de-lF; fQwood O;mac5RZpark racetO;raJ;ox3;c,gYmWnVppTshRtPvOx,yi8;io bria5KLor fl62R; e68UironOli3V2ul6W6; bu3AN; Od5D3;go447me304th3R4;er,y O;bi6W9;de6WInery2B9;eOin5MO;n6KMthr6DF; Pel5F3s of O;eu673the confederate state357;c63Tof O;aTbr0L8c0L6eSfr5CTge5O6iRj1SAmissiQnaY3ru5UPsPthe O;n3W6ph6LEs1H1u2PR;o0KUpa4;ssip3EO;ndAta6IW;ng6R8u66W;fg69Du2AH;a4Ab44c3Yd3Se3Nf3Ag33ji,l2Ombul2Nn1Kon1Gr0As01t00veQxOzz bu15R;atO;ion6XH; R-Orr;pPstar Oyear planBJ;ra5XM;ercent 1VSointed 0AQ;bedrScharacters in search of an ex6UAey3fRgu5QKnights at freddyQpillars of6MOstaOws;ges of gOr4N2;ri203;'s;ami0WYeet6XYinger death pVE;oo6W0;b6U4girl rep3C6; VcUhPtO; of the north 0AHi8; andRerO; P's exact 5FOโ€“yates sO;huff7;inf692ki8s2CI; c66Y;al 2PZ;alpine ski30ski jumping30;!axis5AJe0Lm0KstO; T-O;fo6XSorderQpO;ast-the-post vo6XNeO;rson3FB; lO;og6XR;a2Mb06c01frenc1GQiYjewishโ€“rom4CRlaWmexica55Xn6QLoVpr4Z2reform6SJsiTtrPwO;orld5R0;anscontinentalOiumvi5EJ; rO;ailO;ro6SZ;no-jO;apan2LT;pium5QT;dy1ZAng65LwO; of thermo1EN;mOndochina5QQ;peachment ofO; d82;hRoPruO;sa5KH;nOuncil of nica6QVw;go5QK;echen5QJ;aQlo6WUoPulgarO;ia55D;er5QG;lk4C5ttle of O;buPeOthe m1YK;l alame4;ll43O;a66LwaB; Sa6JGbRfPhose of false6WLwO;at6KWor6MH;lyOox0MR;! 47L;a6UUiH;eOf4SPin the sCWm4LLos,pTZ;mblemOxtingui5CE;! f6JF;a On1GU;a6E5bPgubOsh6LA;el6EK;ru6VH;a08d01eZgerp2GRiWlandVnO; Sa6SEeRish Oo-ugr66Hs;aPc540defenOla64O;ce48Q;ir4SDr4RE;as o'c1IFgans 505;bรกl6SNco7j6TXwO;itt6FColf6TQ;! 36Wi3YUโ€“russia165;sterre2C3teO; O-state4AI;diff5FWelem1BWf57Nimpulse35; O-structure 48S;a6W0gaIyoung canniba6TS; Ring O;a6QEdoLne57OyourO; rO;oo6RH;a Pmy ipO;ho6;gra6KV;l Tncial Oste5CZ;and social rankings of sovereign statRendow65MsPtO;e45Oim3;eOtate65K;creSBrv691;esJ5;cut6ANdeYfantasyPgo6VJsO;o2DWpa6UO;! O;iUtTvQxO;!iOv64K;!i64Jv;!iO;!iO;! rema5WUi;ac4RV;i64Ev,x;sti1SZ;wi5S4;eYiUmO; Ofar11Pma6G9natio5G5;diRgQi4M9no6R9producPsO;coBe6M8;er,ti2;enB;re6HKs3MY;bu6KRpO;i281po iO;nzO;ag6IE; Oh4BPsystem hierarchy68Ft mi2MDz3ZD;allocaPex026sy4W9tO;ransfer6BR;tion6QC;htOure ska6UX; S-or-flight1WerPing O;de5P2ga6UJwith my 5M2; aO;ircO;ra4Z5;cl3R8for my4RM;aVe,tO;hPy shades ofO; grE; P-O;generation608;aOgePXh34U;menO;dment to the united states co2SZ;! O;clubQwoO;men'sPrld O;c6BUr1FX; w11R;ldOsta 1MV; P-Os2T0;effect3E3programmable gate6E0;goMof drO;ea6S8;dler on the 5TOeO;! RlOsz; caPity invesO;tm6PD;st6I5;ti6DMw0QN;k's laws of diffu6FRtional Pus religO;io6BC;planets of the solaQuniverseO; ofO; harry po4UR;r 4V5;erPonacci5RYromyaO;lgA;-optic cPgO;la6SI;ab7oO;mmuni5TA; world endurancQcre2F8nna fรก66EtO;! O;chrysler a2OOm5GDp6RH;e 65G;mp39Sp9A;a1Vbruary 2BRc3d18e15l0Sm0Mn0GrTsRtQuda5CVv0yO;en09VnmanO; d1KY;li6T0ty w4SN;s 1EFtO;ivDus eze6JZ;al0CUdinand 06enc pusk05guson20Oland men6C6m00nando YoXrQtilO;e crOiz0;es6CS;aRePis bueller's dayOomagne57W; o6B6;ro Ot;ro5TRs5Z7;n Pri testO;aros6AI;jutglร ,to4SK;cactus wislize6IKze4F8;aOto4SI;lon5QR;at's lQen596iO; pOon;arad5TZ;as24IittlO;e 3S4;รกs;de saus4BTiPmaOpor0LZvii 46O;ge2Z4rc6KD; of Oi of ar43P;a5IGbu31O;cingSder strato45BgQneOr6ORtan3M7ug3T3way sports6A5;c Ol;f5TPs0A9; sh4Z1hO;ua8; respon6QT;ale RinPke halGUmO;e fa6S5;a Oi6IV;ge34Umiss60B;ejaNFgenital muti58Yhyst1XOreproducO;tiv2MX;a ku5EQdsp9iPlOo5NE;at5QEow of the roya3AI;ciVd6E6foUn6E6pe Rs,x O;dzerzhi5OBlePmendels3M6sOyusup5QN;te4U0;it0;mPviO;! 461;as69J;rmA;a54Dty O;hOj6PSke6M9;uf6JC;dPling O;go6RW;baJforward156;eQorO; emelian5NWaO;! l5GA; 2E7rPxO;! e32Uf53E;aRico O;chie695fPgarcรญa O;lor5GH;el3KV;lStO;ed states of micrQionO;! of O;bosnia 2ZUma2RT;on50S; PisO;m,t6KX;bureau of inves1H1communicationsSdeposit insurance59Vemergency management 235governmRholidayQr0OQsO;ecurity3Q5ubjecO;ts5NK;s 16H;ent1TG; cO;om45N;r Tst of the RtureO; Ps of tO;he m1ZR;fi6MLsca6JM;a6PYcircumcision1LRholy nO;ame 1KC;and loathing inQfactor0P8of missPst6N9the walkO;ing5I2;ing41H; lO;as v21I;augs47WbaQda34SgPmidtjyl6JVpor68Jred bull salz47WsOzenit saint peters47W;hakhtar donet4PYpartak6OK;irondins de bord37Noa;rcelonaQsIyernO; muO;ni6F2;! b;i6Q2most wanted terror2QJten most wanted fugit2K3; c36b30c2Pfn6MThadh fa2Oi2Gke2Fl1Tm1In16q,r0Ls08tVuUvTwSyPzeO; cl1; riPe O;dun6KLwo8;plE;ad 4LXlty 5E6;e6PZic2;da,st,vi6GY; Zal Xboy WherTimQs doPty O;ac6NSliver67J;mi5XT;aOid6I5; sana shaiOh;kh; O's52N;christmas iOjohn mis6JTt6LF;s 3ZY;sl641;atOf7RinsomnA;tr61H;j5CQleonard 6KDm1;cZhionWtO; O-moving consumer06Oa36Fer-than-l6MYi8;c17HfQinverse square Ptimes at ridgemontO; hi6JN;ro6Q9;i6F3oO;odOu02Y;! reO;stau5LC;! O;accesOi4GY;soL;es,i6G8; 04-03aYeWhan66Iming57KnazVoTrah PsO;ca6DT;aQfO;awO;ce6GN;br3IB;e5NHkh engiOuk L5;ne0; sh4FX;ed z0BDs fO;ar3;dayRh O;kh1pO;ahO;la495; ca67E's law of iJ1;l20Pright20Q;cryPsO;ide of6JM;! new O;da6M6; XdangoWnTtasO;i1tic Py O;c014fi6KKis6I2liC0;beasts and where to find th5H2fOpl4FN;e6LPourO;! i6KF;ie fla5CCy O;andOb4WL; a21V; m3CF;bOf623s3NO;ing2WW;as,iOke jan3A1oti1DW;ly One;a30Jfe64Bg3F7mat4WGof StO;i3ree of O;british monarc459mu3KCthe O;british rOgreek2GW;oy2OO;bQdOj2G2;onaldO; tWW;arac3UC;a07con06kland05lRsOun 1OP;e Oifia3NS;fl5TNme2PXpositives and false neg0RPvacuum dO;ecK; Ra4VWen aQingOon sher67Nschirmjรคg0; Ow5DI;in rev68Sski3;ngI;gu5GUoO;f Out1Z2;constantin5UKsTthe O;berliQwesternO; rO;oma4WP;n O;waC;aOi0AM;ig2; i5LYs5HO;! hea51C; OfI;ch5; ne6EQ;lure mode and effectUrQsal o6DYthO; Ole6MP;e3A6hiCno 6GW; u6M4porQuza ba2GAyO;! taO;il,le;t con1ZS;s 1C1;as60H;eUial recogniTGtPundo campO;az6C1;ions of ha6EUorO; 1BWiQy methodO; patO;te6CT;al,o; with tears of joy emo5O8bookPit,punch4FXsOti6N9; 357it6NK;! Oโ€“cambridge analytica data 6HM;messe65U;a4LGergรฉ4WDiQle3G6rO;izio rOรญcio werd67Z;oma5UO;anPo O;cannava6BElanzo6CS; 35Go carua68H;ommunity Oup;sh4YS;nu6H7s4EBte6JR; OR-OPaN7bN4cMDdJVeJTfJEgJ1hlersโ€“danlos syndrJ0iI6jI3kI1lDQmAYn8To8Sp89qu84r63s4Xt44u2Lv1Ewan mcgreg1DxWyeSzO;ekielQra Otv;koOmi6DZp0XT;en5J1;! 08X; Os wide sh4GZ;cPmovement desensitization and rep02Cof O;h5WJproB5the35;ol6JD;c0Ye0Pf68Dhib6BTisten0Lo0Kp07tOxonmob5ZN;e03inct00or6IBrO;aTemeO; Qly largO;e tO;eleG8;j4B4p0BZultraviolet liO;th6G1;cellular62Oordinary5E0sensoryRtPversion and introO;ver68F;errestriaOor5AK;l 6M5; perO;cep6HZ; in tPionO;! e23C;he3KD;nded PrO;mina42Q;euclidean3H3plK;aYeVloTonentiaRressO; 4L5io6BAvPwayO;s 4D8;pn;l Oti2;d3E1fu66YgM0;itOratory data 1AG;atio6HHs of a young don ju1;ctPdia63Krimental O;m573roJ;ationโ€“maximization3GSed v6A7;nsionOtriaH; of669;!c6I5pl4CHr5U3tic s2LU;ce PtialO; 2I8i6CB;ofO; g6LS;cutOne cerven5QMt0;able and linkab436iO;on Rve O;c9d67IpO;rodO;uc0;by firing0R9of O;nguyแป…n vฤƒn lรฉm,saddamOthe romanov 5CX; husse4;aSess mortality in the soviet union under0CQhange-traded RlO;amPusive O;economic1X0or;ation 5GT;fu6HF;lib61Nv651;or6EP;a0EeUgenia medveTil QoO; m4AlutionO;!ary1AO;deadOe3PO;! O;ii,ri6JI;de5JX; 04l02n01rO; YcXgTnoHq6FKyO; breath you RbodyOday 6KPthing everywhere all at 0QBwhere at the end 6KU; O's talk2AL;hates chrFloves rOwants to rule5BX;ay30Y;ta5MH;lQrO;ande62FeenO;! a-class contai0Z5;ad3ow;le9;aOg3QA;ft0n0L2;-toed ungu3L1t 2LX; kni34Yyn O;g01Uw2NQ;a5R9babi6D3he5DZoOplu5AZ;f tOn67Q;he dale6AH; WnO; Qder hol3SUe5ZIgeliPnaO; l3HN;ca53Xne l3EC;al2IBgo36Sh1PGmRpe4S5rPsO;ha4K3pi2FE;achel 5R1odriO;gu3;cpC2o04L;aTbScaRgQlPmOper4E2;arie s19Je2HP;ee kunEong37;ab6GRre5;ssi634;ra6JG;mur6G4ndersson-d36W;c12daim4R9g0Uk0Tler0Nmill3SVn0Mph0LrQtO;hOrophi5JS;an650;asia0Eeka4YYip569oOyth4ER; 0Bc09d4YFfighter typ08le5VNmaYGn06pOst9tr5W3vision so51Xzo6;a universalis 5TQeOl3H0;!an O;b5FDcWdVeQfree trade1L8parlia5TVrPsOtheatre of2USu5UNwildc65H;ingleR5pa08Iup3QK;ob4;conomic PmissionO; stand5QC;ar6DQcO;omO;mu468;ebt 2G3;entrToO;lo2KCm3Y2nvention onQuO;nc5WGrtO; ofO; humanO; r4BY;al 26H;eOy5IZ;ws,xt;ho2;ha2GUopterO; t4J9;bankn4C8cOsi5YN;oiN;!n O;economic1C6lyPsO;tep67C;nx;emi69NorAr666;ice kennedy shr6DXu67G; R's PianOโ€“lagrangX9; pa611;f3C7idOtotient 63V;enti6CL;anOme6HP;gl3;aryoH;enQรจne O;delOiones650;acro5Z0;e PiO;a co55Ocs,o derb6BL;a5PQle4W5oPsO;led60U;'nHV;alyptDhQlidO;!ean O;a3DHdi1NHgeYHs1CWve657;a61Bre;a carin64Jernal 0EhTiRoQrPsy,ta Oy3Y;j5HIp61S;i6FLuscan c0R4;n500ro;had59Kka,qO;a,u5JN; zu44Ga03eWiopiaUnRylO; ace40YeneO;! gOdiaminetetraacet2AS;lyc6HK;ic groupOog6BR;!s in O;eu5QWru5EK;! 5BXn O;a5V0em63Gorthodox tewahedo49R;l SrO;!e62UnetO;! O;fOover twisted pa6E8;ra6HW;bOke1ZMme54M;arry6B3;nPrkkum thunindhO;av1; Ool;c45Whaw5JFlW0peJsO;an5C4upl69K;re2JRsO;epte6BXunshine of the spotless6DT;ai m0Sc0Kkimo0Jmรฉ creed-m47Yo0Cp09q08s01tPwaO;ti67C;anis pedYeUher TimateQonPrOuaL;adi6GXog5;ia2C6;d number of civilian guns per capita 3UUs of historical world O;poO;pu4Y7;ace315duf68UrHIwi4R1;ban oc2lle Pr expรณO;si5Z5;g47Wha26DpO;ar0GZ;ro6GW;ay,ePieO; d5KK;nRxO;!-O;class aO;ircraf02;!tial23A;uiB;er5YSio0XWnPor6CUrO;es5EZ;!+,cricin42C;m,phagTteric O;naRpO;rogrammO;inO;g 5PE;zi67F;e11Jus;! callb54G;ape QhPitalopr6DPorO;t c5M8;a1BNerichia 3MG;from Psequences2ZVto the chaOv4O6;te5UV;mogaPn6CJpretOspider6CGtark5F6;orA;dis3NX;or1H4;a1Le1Ifurt latr1Hgo pro4RDi09ling haa69LnZoUroTtuฤŸr4EQwin RyPรฉndira ibO;arG;kah baDCsipO;el6GG;roOschrรถdi5Z0;mmI;l f3E2r 619;geRs,tO;icOom1YE; Oa,i66U;a6GFh1RMlac4WM;!nous1RV;estSie Rst Oล‘ rub5BD;hae3AXjรผ5YRkaltenbPrรถ3B5stavro bO;lo3KE;ru2X9;b3RJhu5X0l2X2; Oo fonseca carr480;borg49ShePrOshackl3GX;uther561;minO;gwK;c00e cZkRnOtr69Y; Oy3;a0FYbroc3BQd65grKkell2ROmO;or1u4JH; Ra Pson's stages of psychosociO;al5O4;eleOharla5GI;ni5BZ;estQjan ha30Zkillmo5YAper PsO;at6DCom4PC;suEQ;ra6DP;anM; Va Uh Oss2;fShRludendor5XNmQraPvon O;dรคn167ma5G0;ed0;aria remarq63Suhsf3FR;art5XQone3UG;ro2DV;d3Nlind4UZ;a09b08c01dZes63QfeYgarc51Uharris and dylan kleXid7liWmVrSsPtNRwOyu1;ei5FTi5CB;cPtoOyk3;l67Sne6BJu68Z;hmi5LP;oPudO;ol3IK;b584th;c1TJorecam4H0;d1AAve5ZS;bo6DO;lln0;a6icO;ke5TJ;aRhOlapton5RK;asePristianO; o42N; an0F9;nPrO;m5r,tm1;to606;a605enรฉt,isc090lJRogo4LBrist6CLu3KE;da6CYnd35H;ine64I;bDctiPdiv2M8n O;ba65Fye19R;le dys5ZIon;g2sPtO;osth9F;er6ACmDuB;aOestr3TPin5FQ;lPtorO;!ial guinea48B; Os 5TS;rights amend5OFtempera5OF;c6EQhe04iRo4P7sOub,yc;il2on,teinO; didn't kill himPPโ€“barrO; v3RO;cTdemiSgeRlQphan1B0stePtheO;li5Z0t;mo5N8;ep507;ne4AT;c,o5N5; Qanthic 3REtPurO;ea637us;etD;fi69KgamPme0QYof gilgaOpoTYr4B2;me65J;esO;! s4ZU;b0QJd5HGmOsD;erF;n 3N0s; 1Rc1Jd19e12field polt10gl0Nhyp5i0Mk0Llargement of 0Kn0Jo0Hr08s06tYumclaw horse sex1PKvUya,zO;oQymeO;! O;inhib0V5; fO;erO;ra69P;er QironmentO; vOa1SO;ari698;hox52Apas52A;erQhPityโ€“relationship4XSrOwicklung 4G0;epreneurU4o6D4;al6D3ir1; the Rprise Qtainment O;o6software ratingO; b2HV;resource pl48Lso4Y6;dr3OFm5TIvo6AR;che50Wemble O;ca6A0le02V;iPonO;! 67J;cQque O;e5VHiOpeรฑa nie5UVt2SC;glesi6D4;hedPo O;colanto62Qfer651; teO;xt;cOla gK;h2CKk mwepu;eagram o0HEio morri377;na5UMth15U;a,i;ac,d bl4K8gma3RF;andYishO; P-speakiO;ng6BB;al48LcTelectricSfootball leagueRg0QVlPpOref5O7wikip30C;e5J4ho3MU;a5L7iO;te0XK;! 4E3; l3KE;ha2A3iv4KGountO;ry6AW;! O;c3SSna56A;ergO;ei696;dina351mRrgy dQs O;kanterOรผnM; freed5RM;en4U6;aPy at theO; g5ZC;! of the3UU; TangeredSer'Rian6B4oO;crin26Vmetri4ROplasmic reticPrpO;hiN;ul5WW;s 5W9; spe23B;of wOti6BY;at60Eorld war iiO; inO; eu5KO;an5TNeSlave and exc3TErRyclopO;ediaOรฆdia britanni50T;! draO;ma4EJ;yp67F;ladDphalitisO;! letharO;gi50N;pas4FF;a2Db27cure pharmaceutica69Mer21i18m0Go0EpSraanQuO;! w9lO;at688si2; haO;sh63J;a08eror01hy00irUloyRress Pty O;ne689;dowager ciOelisabeth46Fjosรฉp587matil69K;xi;ees' Ome5V4;provident fund2C0state insO;ur4PV;e QicO;al eOi61V;vid68T;of Pstate O;bu2N9of67B;brY4j156trebizo67B;se63F;! O;jim3N0mei5C0no110of Sp0ZPtaiOxuanzP;sQzO;ong of O;ta8;hล;c2YBj14Y;na691t64I;! r4ABji,ry 43UtiO;c2on40B;aWeTiSyO; PlouO; ha1ZS;aw5HEroO;ss5VJ;tt54N;line pankhPr3YDtt O;s4KWtiC;ur67E; UnuelO; Qle O;bรฉa6AQchr1K1seiO;gn0;adebPdeOm2BW;nnF;ay672;ap18Vbu4LOcXdVgUhemingTlOMmSpor2DJrRsQthomPwaO;lton2Lts2;as,pson5DE;am68Kto6;aduca2Z6ob53A;aNLo46B; wi4FC;ol55Z;'Ou1TF;ar4HR;hamberOo2MM;la4s;!lVnem5MPrO;ateOu; of Qs O;f5GCof the united arab eOs50B;mir5X2;abu dha44NdPgO;ra2NO;ub5YI; 07e 06iYy O;a4WYbUcompag5HCdShaRin40Bl080mort2N0os5JVrataj4KIsPvan3QDwO;a4L6ickerGF;waO;ll67L;mps263;eOic4I9;sch0XI;ePlu5TCroO;n4E4w600;ech66Itt rick5G7;aQe liPo O;aguin0GIest1SD;vi573; Q-romag5UVno O;buend4JGmOzapa69U;artรญn62A;clOf5AMj67A;ar5AZ;hi572smith 1XM;ci3EZnol4WX;aRg66TiQson O;c4QVfittip497rO;oyM;l lag15EtD;ld Oude toubA;fen1VZtabl65H;arReQraO;cer5QPerO;! e-jeDD;dde239th david61K;raO;ss5J0;ar proper63Wcs,il5KGnOs44;cipation procla5MWuel sweden0G3; 3Sa3Ob3Nche 3Mde3Je1Yf1Vgin m1Ui0Tk0Sl08mer b07o03r01sUton johnSviPyO;es g1ZIsi5TN;ra4VZs O;co604preslO;eyO;! O;a5LDsi25D;aQePie O;fi4OP;vi0; OgaH;lOpata57B;anO;che5YE;ic of melniboOo64M;nรฉ; r1CBhimPise mum4YHn muskO;!'s tesla road5YA;! pO;ran5WA;er58U;a 05eYiOor5D3;e WotTpOs 3WQ;sRticO; curveP-curveO; crypt61P;! digital signature332;e,is; 5KBt O;gOs5GYwave49U;ou66O;goul5LTke5Yrow55Sta14X; Sn O;bQdegenPhol2U6pomp4TOwO;hit27Q;er3;a60Iurst56C;f434ki8macpO;he5ME;baliOf1YAhu5RIpur1UN;ns5CQ;!an baggo5YVe so4UC; 0Na0Le w0Khu ka609jah 0In0Got 0Fs0Bte dange2Z9ud kipcho5PWzO;aPebeth smith fO;rie53F; 06bethO; Oan4N;b03c02deb5M1fr2B6gil01h00iZlYmWoUpeTsRtPwO;a96oodv52L;a14FulO;lo5VW;chuylerOpr02X; ha53V;r4D8รฑa;f Ols5;ru53Ryo63B;a2Y6cOiF3o2YN;go10K;a5K7ecompH;! 5N8i;o1TBu1HO;be67Dli3;hai vasarhel3NYoun54X;anks60Ler4ARowes-ly2รกthoL;cOdush0H8scanl5ta140;ou5VA;abeth PeOha cuth5PJ; c28Z;hass051mOsh5VC;ax4XTo65X;ne65Wsp579; norde3S0or doO;nah5V8;blue al2T2mOw0WC;iELu32K;iesI; Os kote66S;kaz1;a5OLc2CNm41Zro5ORwalla5V4;ar5J2;!eO;d0OCn O;li61V;anor 13ctWfa5QAktra3ZXmentary Vna UphantSusinianQvO;at636enth O;do5T6; mO;yste5XP;! O;bi646seM;ana5E8bashkiro559ferr3YBk3OFsa3P9;c3CJp4V7;ion0Soral count5HOrO;a0Pic0AoOum; h64Oc08encephal5ZSl04mYnPpO;la66Iop;! TicOvo3T1; Oa;ar61XcPdance4RBm4RCroJti2E1wO;asH;igar57EompoO;ne5PS;configu61NmOs393transport cha4;icroO;sco5U7;agnetOotive429;!iO;c Osm;f4HNiPpOr2NJsp3L0;ul64A;nd4YC;ux,yO;sisOte;! O;of1Q0;ardi5Z7onvulsive 1AE; Ral Pity O;g33Osector 5DN;discharge machi5W0e5I6imp1XQresistivity and condOwi5I7;uc3G4;b5ZCcVdipole mo5FLeIf4HBgTlRm22VpoPvehicleO;! b5ZB;t5PQwerO;! t3JY;ady5YIight orchesO;tra4YM;enOu38L;er5P4;arPhaOur4TG;ir,r5NH;! use 3IK; cO;om06K; commissOs 5D7;ion 3WA;mon3STof aquit4TMpRrPtoO;mli5XK;ig608oO;oseve3RV;a2VZo4VV;n Pr fO;ut1ZE;he5XEri8;cf;a,e;gab57Rine Om,stic29B;bPmKpOstr5T7;ai5MZ;en3;cRdo1VVgre5QYmariQniPrisOsalv4F5;it64Q;รฑo;ac5S9;apitanOid;! t240; villainOstrakla5M5ta2EZ; r375;aPner johO;an511;cu4L6;d0DffelN5gVichiro o62Jleen UnOza1NH;sOtracht frankfu64L;atzgruRtein fO;a4VUieldO; eO;qu5XM;pp5;at4A2b12Igu;en04htO; 00-Xeenth dynasty Vh Qy yO;earO;s'4XW;gePwonderO; of4V3;neO;ration of vO;ideo game consol3;ofO; egy3ZR;nationOthousa4WI; alO;li4ID;isPqueensO; puzz7; en5GI;decomposition of a5JXvalues and eigenv2HL; al-Qetic 259osO; i48I-montO;rรฉM;ad4SEfitr;om3;ali3IRgZoUyO; maulana vik5ZMptO;! 4XBianO; Pโ€“hittite peace O;trea5X4;aOhieroglyp3K3la5BZpyrami5SB;ir3ZP; Qn sO;chie7pO;en2BD;d3ZUnwO;od5H7; as15Tn5E1p1LKs beGY; english proficien01e ajag5KLfTi system parSl PrO;aim divero5TZen r2ZO;cPleague O;o6tWP;h5F7up;ti5YP;ectSiO;cient-marketOe QM; hO;ypoO;th5SA; 29Hive altr4QMs ofO; climatO;e 3IS;cy629; l2K8ga,l,naO;du; 1Rama62Od1Ie1Dg13i0Tm0Mna2FKo0Ls0Ju0Dvard 0BwOx;ardPin O;hu086van der s9; QiO;anO; eG;al5L2b03e32Sfur2F4h01iYjXno0SHsVtSvQwO;i3LIoO;od228; 5IHiO;! 5IGi5BP;e5TIhe O;black20ZconfOe3KKmartyr;ess5Z0;a5ZTcissorh50FnO;owd5;ames olm5U2e2JG;! 5I9iOvP;! 5I8iO;! 5I7;eOo36H;a5K7rr5KH;erna4USoOurN;nham 2H2;g2IHmO;un5QG;ardo savScationO; inPal O;s53Vte3C3; Od61F;e5HYge4RSi59Zj0VWpa2Ns0HCt5AL;er4;el,on O;barbo537st4C0;! p31ardo mapelli moz41Xm;ontonTund O;b4W2hQiPkeO;mp0;!r2KM;ilOusse34F;laL;! oi3EH; gathe5HDe TnPr6th O;pr3S2t0XLwha0RG; dลพe59ZburghPson caO;va5R6;! O;a5PAca4QJ;a44IbrQfPsO;edg10E;al5NK;ickeC;ar SeO; Orrin240;c0Q4of O;toO;mo2BR;allan p4NVbuRcay60Fd1BUrice burPthe peacef3ZDwO;i4Y5r5Y4;roO;ug3HQ;ch4CZ;ma,nO; Ps O;ze5P9;brOha5KU;ol4;a gรถ5DHie Oy4OY;alUb5K7cSgI4hRiz5KRmQnketi5QZredm1F3the7TvO;aOe2IB;n hal5;ars1ek55Qurphy5U8;aCo1P2;ib5JSoO;chr1;be60Uv1PX;aZb356ge4hYko5P1mWoUredTsPwO;est0ZMo60P;heer2E0kQuO;llO;iv1;re4;li5OV;'nOrgVG;eiC;cmOili0BQ;ah2;a1PBel5YK;nd lorraineOsn5II; wa1W;c0Ch0Bkhart t0Ama26EoOu4AN;lo59AnomOsy41Qtou3YK;i04y of O;au1CIb02cN1fr4EOge4Q1i00j0U5mZnXpWru4WKsVtQu3RWvO;ieO;tn5X1;a4IThe PorOuML;on5HS;e0T0ph5N5republicOs0ISu1RI; ofO; i0A1;iMLoMJ;a0No5SZ;aOor0FC;zi4NW;alaysA;ndOta5KI;ia,on496;aMPrMO;c Oes of2XC;freedom fPgOi1DI;row5HP;igh47F;ol7;el2id5KZl;hi,lesiaO;st3;ay,enPoOrahim rai5Q7;la,ny,ok; b36Zezer scroo5HM; 2VCgle12mon10r0DsQtPzyO;-e; pray1N0ing407on township weis markets164;e of doing busi09tRyO; PjetO;! 1L5;a,o4QVr4F2; VeOโ€“west sc40Y;n4BKrO;! Sn O;blQcatholic chur5XNeu57VgOnew england59Ror0BRprom084t1AR;oldf49Qray squiO;rrI;oc;is5S3ri5NQ;aVcUend Tge4OVindiSmiRof5F0pPsuOtim5VM;ss5YG;aOru4VC;ki5A7;dl4WY;a 4PI;of 4E4;oast112;fricaOsA;!n 42L;ne2AT;lSthPwigO;! and the w5N1; similar54M's Oa ki5PRb09Jqua509s5SOwo5LK;magnetic30UoOro4EZ;rb5UY; 00iest known life fZy O;ac5F5hUmOslavs,world ma591;iSodern Puslim conquO;es5U8;e593hPpO;eri5YI;um1;ddle 58R;istory ofPuman mO;igr5RM; vO;ideo4BB;or5WG;greyRsOwaT;cPweatsO;hi5YB;rug5UY; t5S4; faOn1K4;rr5;! Os 5Q0;e32IfiO;ghting 5A0;commS3girls and e-2W2heOleNJ;nt5MI;nu5S2pluribus un5INstreet 097;'007-s38PaQ2bs 1KWc PXdPWeFVhFLi9Nj9Ik m9Hm9Cn99o42r28s26u0Ov0Jw09xdi534yPzhokhar tsarna5PZรกil รฉirea5G6รฉjร  4BBรผsselO;do1W3;a06bb34Qing5UQlan00naRsO;autonomAcalcPen5RKlexAon 1IEtO;h4SFopA;ulA;miRstO;ies in chinese48KyO;! O;warr29S;cOte; O-link1PAa1KP;host configura5EIpMXrOty1E9;andom-O;access 1YZ; On 4X4;ar4V3b1X6mPo0EEpe5FQs0JWth3XQwO;al5OX;cdPiO;nn4YL;ermo5OE;n ca0OBtlov pass167;aSeezil z0K5ight PyaneO; wa4KT;ho1WVschPyoO;ak5U2;ruHul5PN;rfPyne O;has42Vjohns2IY; Oi5NL;fOpl3NO;ort57W;dQorak kO;eyboard lO;ayo3R1;! regO-v4IJ;ion 3ZV; pon14a0Zb0Yc0Vdley1HWe0Tff mck3EUg0Rke0Jl0Im0Fn01ol0I6p00quesne spy 59ErXstTtch Oลกan vlah51B;baby panRePgOla55Bov5pe537r4L4sY0;olden0GC;ast indiOm5I2;a 4NCes;ca4YA; 0PEin Py O;hiCspr1S8;d2CMh5O1lance36HmOpoi523rh3UK;i2HTosko409;anPb1ga,hOi1;am 3PF; dur29Wd 5JO;o5G5uytren's contrac5J8;bYcan WdeUeRgeon fighter 2EXia11ZkiPningโ€“kruge1C7s scO;otD;n' donu5S4rkO;! evac3MW;! Od4;ii,mO;essi5MD;e,r mifO;fl4;iOj5U2sand4OT;da4R8;ar'PlO;ane2JV;s 4UE;bPpO;ing in dix5TOli8; and du5Q6ledore's0Y6o;ce de l52le129o3ESquer salma1รฉ 2Y3;! Ps O;in05U;blue devils mRel2SOof Oun4DO;arPdevons1S7edOgraft2norfo1OFyo5RS;inLV;gyC;enO;'s ba0HE;a rOo8;ad9; di3L5lO;! at di064;kOti3CQ; Oduck4JSt0W4;d377ty1CA;ai5J6lin3D4rovn4QOst15A; liRlPne O;al2HNcMW;-clutch09GsO;hoJ;pa4OK;t 4MS;chingOhk,tv;his 3QR; 1Fa0Me02iZoVuPyO; i5UHad,waC;dgeSg Rid,mOze;! O;and Ok5RI;ba5U2;ca3NEenforcement35Eo30F; re5IX;it du seigne5BEme2K7pOug5S1; Ob4W8kick murph4NN;be9dead Osh0HU;di4TT;b00Ell4G2nking Pving O;miss dai4GXunder the influ5SF;the kool-a5SBw4K3;aWdd,sd5w Oyfus26O;bScarEgRloJmPpOs3II;e59Bi4QZ;a3AFciO;ntyB;od58E;arrymoPlOre3;eds4HC;re5O2; de matt4GAdVmO; RcaQworks O;animationOd5TCpi3Z9;! 1LV;st,t4V8;ch1Y1of the red Pp521s40GtO;he4JN;cha5OL;lPnoughtO;!-4XS;oc5KA;c0Cft0AgVkeRvidPwnOx the3MOymond1X8ลพen pe4SV; toge5G1;a munnetra kazhOi39K;ag5R4; QnPo the rO;ul0;ga5RV;beCdi5M4eq3KN; Yged acrossWoOunov sniper3VF;nOon,stea din t51D; O's dog5M9ball07Jf3QBh1YUl48Is' d5;a5C5ballQquestOsc39J;! O;i5PXv,x535;! O;fighteOgt,sWZz;rz; concO;reH;co2EFme tQq4PSreducO;tioO;n 3V6;o 2WP; hO;or5S1;oPulaO;! unto5S6; mO;alf4H5;congo 4N9disreOpe2XR;spe54T; 4Nb2N8c46d41g3Uha,ja cat4MMkos shipwreJl3Km2Kn14o0Xp0Vr0Ks,t0HuVveUwPxO;b4i8ycyc5GL; jones industrial379nOry,si8; s5CXloadable3WKtO;em3A9onO; aO;bbE; camO8;bleZgPjinOla;!s5GR; Thn3NAlas Oray1I7;a3W7bRfairb34KgPhOke4IUluVNmaca2RMpi5K8sbd daunt19U;ens4LZod5B9;reO;sh5PY;ad0oo5B1;co48BemN8fQhutch4OIl50ImOpeTD;ccO;luB;lK3o5QN; V-PcO;liJ;entry bookSheadedRprQslitO; exO;peri52S;ecision floating-point3AA; e3Y7;kee19F;asteroid redirect0BSba5RLenteOfa4ENindem3F8jeop0T6;ndB; p194-comPa,s per O;in5GY; buY0;aVemiUiRmam34EoOs5OUt215;hedoro,ro,thy O;danOkilga4ZHpa2JEstra3BEth2L0zbo21H;dr5A9;an Ps Ot5K5;dKl5K5r3G3;el1AYy5FF; mPM; Oem2;and the lost city of 3FAthe exO;plor0;a490pO;elgรค5ARle17Y;-w4ZQdle champion island457k5PTlittl8AmQrdaO;rOsh;sh1; Qer,g2ILsO;crQ4day O;c59Yru7;at your2QUete1MAm4JVpa4XS; 0O't 0Ha0Ab5RYca5HTda09e05g zh04key02nQovan mOtnod 51W;cna41ViO;tc2UX;a Ter paSie Qy O;ha3W8os27Wvan deO; be4OV;dar508m19Fwahl5AHyO;en5L7;r5LDss;brazi7dSmRre5MYsu4EAtQzO;uckO;er5AC;ar5IQr4F9;il5PJu3V8;ix2o1KE;! kongO;! c50A;uo;rQtskO;! pO;eople's2UB; keb3I4;! 5O2;lOtell4HH; l3DXd O;cer4QFdRfaQgPknu59Ao186pleas5OSrums2VIsutherland5KPtO;ru3X8;l29So5EC;g5is2;af4DUuJ;breat5FLlook TrepeatSsPworryO; dar5JO;ay a PtO;ar5G9op believ1GO;wo5OR; y2C;n5OSup;am01b00cZdel3IVfYgWhUjSkRl4PJmQqPri1W2shO;i11Cu5QG;uixoH;c4IYe1KH;i8n3UE;oOu1;h5J7n;eOuff5DV;ck,nlE;iOu4D9;ov4P0;e38Rr2V5;he15GoryeC;lu58Lra4MB;ec5F0; 0La0De09hnall g1U2iO;nOti1;a06iRoO; O's0T4es;haQEkO;ir4RZ;cRk Qon,que O;dStO;h2LGi2UK;myster4OH; SaQk O;cr4IDdOr2MO;un6;!n O;o43Sr4EG;cQh8Dmo1ECpOra3GUt2S5we5MU;errott5MEurO;ceC;alvert-lPhia3SGo42PuO;mm5MS;ew4;nce and sub34Ftr565; of thQnico de 0MXsO;day 09Ktic O;g0RKv5NC;e 595;inOntas sabonF; Q-O;driven 552specifiO;c 4Y7;nameOrQ;! O;rOsy3R4;egistr9;delOpรฉri1H5;ui5NY;by Wemite is my VlSoQphO; Oin;lu3AIzig1XH;m4QAres O;o'rio5MRum2Q2;arOfa5OMy pa0F9; 54PsO; t2LT;na5P7;atm5H0d7St1ONvi5B7; ReQgOv4K9;er5I9yO; s3NZs3NZ;co4;b3N2day afterno2me5ARtO;he boun1WRrO;ai5FG;ecaheRge Oi f3IOo;chaOv472;lOrg0;le57J;dr2; 01sFtorPumentO; object495ary 5KE; OaH;doXegWfaHmVoRstrangeQwhoO;! missingO; epis3MQ;! in the multiverse394;c239f O;mPosteopathicOph430; mO;edi4CM;anhatt1;gm1;li0F1om;aPhOma3U4;oll2V1;nt7;androids dream of electric sheep?,it Rnot go gentle into that good1DNtheOyou love your mom and her two-hit multi-target attackP; rightPy know it's christmaO;s?; t23R;to 5KOyO;ourO;se4TI;aOce,epropetrovsk man3V5iep0s over htt4YQyaneshwar agas5CP;! O;methy44VreE0sequen335;a5OBc delRitrOx;i Py O;mMLrybolovl5G8;mendele5G7shosta2JX;ore1;etca4T9; Rango PiO;!bou4AHmon houns4FH;rein4UDunchaO;in5J5;khal5J4po53Zqu42Z; bonaventura5Ka4Sc4Gd4Fe3Tff3Og30hydrogen monoxide paro56Ujkstra2Zl2Pm2Hn26o1Zp1Wr1Bs02t01vPwa5EMxie Oy3D6zzy gillesp5LI;ca5GWd0UX;erXiRoQya O;bhOkhosla2C9nare3MJ;ar4A9;ck ori53Hrce dem5H7;nOsionAX;a5J9e O;cQright O;ofO; k5KD;ome56J;genceOs4THticul3TZ;! 2MW;a von t22Gh0;a0Rc0Gguised t4ABh0Fjoint-set3E0k0Dney03pYruptive innoXsoTtO;ance0ZDil443rO;iOok5KT;buted Oct a590;c0C6leO;dg0;ciative identi3O2lution of O;cPtO;he s05Y;zechoslovakA;va5IR;ensa46LlayO; Opo5N9;aspectPreOsi2K5;so15I; r31N;! T's hollywS+QlandPtoO;on3FJ;! p42O;! hotO;st9;ood3FF;c03fa4EAjuQmedia and entertainment2ESpPrOtelevision3TJxd;enaiss41A;rin53D;ni5JC; uO;ti33T;a pa2V3onor5HW; joXoTrOw5L7;ete Oi0KE;cosinePfouOma3J6;rierO; tO;rans0NM;! elysi578gs,rd31NveryO; O+;cOfa4DV;ha1JW;ckE;bi33Gppearance of O;aeryn giQbrian sha3RNdonPmadeleine mcca54Mnatalee hOsusan1LW;ol1DX; lLJ;lle5BM;ac 06eWichlet2E5k Tty O;dQgPhOjo3QXw9;arLonE;rand4SA;an311eeds done dirt cO;he3LF;bOnowitz54J;eOlo310og0IY;nedi4XB; WctO; TedPor of Ov,x;nation3BAthe central iAJ; Q-energyO; weO;ap2;acyclic25Ug25V;c49Td35TmemoryO; ac52B;straits4EVwo4QX;delOeq3C7;ta 56I;hOlo,ole ant2XG;enhydra42DthO;erAo8; br0ONcleTde,gSmede4JInRphantinQrO;!a bO;ai5J7;e 3BY; dim4KLne war0KEysD;en3o jo5LR;ti1;aReshQgo,ner for4RHoO; dOsaur55F;e laurentiF; d'sou4ML; Rh O;ma3RCshO;erOoB;id1;ashPea4DEmeO;r0LPy0;erUK; s55Sash kudai17QeRitQple O;hay3KHkapO;adA;ar berbat4JGri van den 0SN;bag dQnsionOthyl sulfo48H;! f2JVality rO;ed4DC;ar1XF; chahtWaUdo,eepSip Qjit dosanjh,lPma rousse52Wopho560raba dilmOwale dulhania le jay1ZI;ur56E;!ian whyH;k388vengsO;ark9;! O;f5E3r4SI;n yeลŸilgรถz-zege4TXtedO; cardiomy1S0;a h595;'s2FE; a po4FOeorge541ga0AiO;mon06talO; O-to-analog 3YZis,o3EX;a02cZd2CEextrYimWmVobjectTrSsiPtw4visuO;al3H7;gPngle-lens reflexO; caY;na572;e12Pights 3I4; identiO;fi0;a4VPillennium copyright4VI;age pO;rocQA;em3;aPombat41ZuO;rr3RL;meG;rt,udio wO;orks40B;! O;aOghost 542;dven56N; d;'rent str0PLerential Pieโ€“hellman key2ZPr4V8usionO;! of innov5D3;eq3ABgeO;omO;etL; 03drich b1CCgXlVppTrks bSsQtO;ary fOhyl e55Frich bonhoe3P0;ib0; ir55Mel O;e3XVfuI;en55;e O;ra5GX;ecO;tr5JV;etic44Jo O;c4G4ga4Q4lu54RmQri48EsOvelรกz19Z;imO;eo6;araO;do54N;anRflederQhardOin a gunf5G7;! with a veO;nge3XO;maD;other3VKtwO;oo5GU;ier drog50Fo;e,hen l085kPlofen3HCtatorO;!sh4V6; Q's sportingO; gO;oo57S;butkDcRgLUpo49QsQturp4vOwo4O5yo5EU;an Oerme4VS;dy4KGpa31S;ar467traw2JH;aPh4B1larkO;!'s new year's rockin'51Z;ve59U; 0Eblo i4RWcr0Dg0Bh09l04mond 02nRrQs4TOtoOz07W;mOnic2GA;!aceous31W;rh5CNy of a wimpy23R; fo5FSa Ve QnO;a agr2e O;f1LRwJH;cil35Wdisney 59JgRkQlaPmo0CKsaO;wy0;dd,ne;e59Xrug0;uerre56O;ch08Sdo5GEgabaPhy5BFk4ZRm1ONrO;i45Soss4BJ;ld2;dOis unbreak5DY;allas 4UGo5F3; m for 3VVectO; conti13GicO;!al O;behavior 0MUmO;at40X;ann c1LMnne abO;bo596;eo,nostic and statistical manual of mental disor3UEonalizaO;ble4Y6;it5IF;mir4JB; pi3MN;aQiPl,o7yan cO;ha5DZ;bu ninan 5Drubhai am3OZ;ka,mp5E1nSrO; 503mO;aOe3GJ;! 2QWcO;hakG;iOush5B4; ha2AF; 9Ka83b7Jc6Vd6Re6Gf64gree 4HIhrad5GZi60jan kuluse4DCkal4SEl58m3Tn2Ro2Op2Er1Xs14t0Xu0Lv00wZxO;amethaXtO;erRroO;amPmethorO;ph1;phe3Y9; P's laO;bora5GL;flPhOis48Jmo0BG;ol5AF;et4I3;so6; p4HMey decimal1H8; 07a06elop03iToOs;!lver dRnOps; Oi1ta4B4;ao4ZPf3B3lOmu515sa4L5;ar29Z;ig301; sriWanta5H9ce 5BXlRn O;bo4QXhe56Xn43PratrKsiPtO;ownse5D5;ngle58A; maR'QmanPsO; t4VY;! cry51X;s 35C;y cL; pras5CO;ed4PKing4PKmentO; 2JTal O;coordination3HLps3V1;da57Fnaga5CS;a335p41C;s exXtO;erUschO;e RlandO;-Oli5BU;classO; c2GD;baOma5CGtelek4VSw4Q0;hn,nk;aOi518ocanonical b56E;go3J7;! O;mac23P;eQroitO;! O;l59Mmetropolitan543pis25Ure1BU;ctPrminO;a4ZXi56S;iOor1G4;ve4LM; o0X2ali0DZc0Cert08haun07i00ktopZmond YpWse5GBtO;inRroyO; allOer; mO;ons3NT; daniel cre4IIationQy'sO; cO;hi5EK; w0EE;aci4XMerate housew19DicablO;e 5FS;do5ESho1FJtu4EL; c3UF; TderSgnOlu 2OY; Oated marksman3H4ingZH;pattPtO;hin50W;erN;a5G1io alberto arnaz 5BN;arn2QM; wa3QY;! PiO;fi4FBon;cOe3L0;li4V6;endants ofPriptiveO; s2ER; theO; s5EQ; ring des nibelu03by02eUmToSrPvla kirw1yck whiO;blE;en1S3ick PyO;! g1K6;goBh1HGlEJro5DNth3FK;n 20V;at3LNot mu1HH;a2HZk O;and the domin56VcRdeQjPkol3IVmu566pri26QranOtr3TS;daC;aco39Ret0;a4ASlga3PZ;a584hO;auv4iO;soG;!s1BA;ng5;aVeRleted uraVKortivo Pp v news group newspapersOth1J9; ltd;alavOde la coruF3;รฉs;che mo38CndenOrsona2HL;cy inOt and independentSB;j476versO;ion3GF;rtmentOu1AY; s40Js0MI;do4A5ntO;ayOo4NL; wi2WO;a0Ng0Lholm 0Ki0Bmark09nVsitySverQzel O;c4SYv18TwashingtO;on4GA;! O;bronc565in524nug332;! O;funcOof5AJ;tional 2WP;is Qy O;dOl42Q;oh3IL;bergXfaWhUmi559ni31YprRqQrPwO;a82e4TPi4HB;ad0it0KAo49W;ua5BK;ag0iO;esO;tlE;aOo2IA;ste5E5ys4WG;ri4ZC;ka3JX;! 47Oโ€“nO;orwK; avdi466al-of-servi1AZm,sO; Re PoO;n 36Pv1;cOho,ri37Bvan 0XD;o50Tr1YG;didQl2C1o'08Wth0VNvPzO;ak400;illen0S5;er5DZ;el54O; xiao0UBueO; f2G7;li,turedOzi1DI; alcoh5CS;ar0Ye0Ui0RoO;cr0EgraphQnO;! O's sou5BCd 0MSo4MFym;coBda460;icRyO;! of O;au0PMthe O;n2B5u02X; tran0CVs of O;b03c02eu4LXf01g00h2SUiZj076me0E9n1LZpo569rYsRtOu34X;he PuO;rkE;un504w5BP;eRiQoOpa4w0KC;uth O;af3LTk0FN;ngapoB;xual oO;riO;en3TA;om0UZu49A;ndAs50Tta4XK;e42Pr04D;in55Vr3RB;a1QJhi4Y6;aPrOu1LV;az4PN;ngla3PA;aOitD;cyXticO; O-republican567;backsli4QDkampuch56MpSrepublic of PsocialisOunion0DU;m,t1JE;aPthO;e c284;fg4NP;aOrogressive561;rtyO; ofRV;! i5BT-dictatorship5BS; Pan maAlOur4UIรกn bich58K;itarized0NY;lova4U0m0XE;ntiaQtO;er,rO;ess 4EDious168;! with lewy bo2HA; deroz1ai Qcus couPyius O;th3CG;siN;grK;! 0Ea0Ae 09ft06hi02iYlWoVphiUroy StOu4XZ;aPoidO; musc7; Oru6;air 3W2b468f388goodr440;g47GlO;in4IO;! 5AL;itHnt58I;! Oa r1QS;c4Q8lat391optiD3;riumQverO;an5AYoo,yO; he4ZY;! tremeN;! Oโ€“mumbai expresswK;mPsO;ulta11S;et4ZT;! universityO; of O;te2LK;al527;unay trianQwareO;! confederate moO;nu4LD;gu3S0;in cylindrical and spherical coordin4YDm0WEs02B;dre 445nonyQonPsm,ty,veson figueiO;re4I1; s22A;chD; XaWc2enQinitePorestOt591; ke3A1a56Q; m4RAly may3CZ;ce Se2LFse O;iPof O;sihang14Vthe anci56H;ntelligenO;ce 0MS;m3C0research and development1BJ;ma56Iult mode308;jam Olep3F;record57N; Wbo samuIpOz0; RakQfa4CEika padukoPl transl4UJmi56Wwater horizon oil sO;piC;ne546; c4R3;insa2X9learningQpurple43Vrock gal0B2sOvein thromb3Q6w2RC;iOou4SO;lv0;! super samp536;bradley16Pdee raOsn3QD;mo6; morQeOuc50T; g2O5e pfO;ei3FT;oz;a09e02iWlaQoO;lo252mpressionOn37Kupl55M; sick599;n 3I1ratiO;on of the rights of man and of theQveO; pO;rogram4CJ; cO;itiz5;bImalSsionO; treeO-ma4VB;! O;leO;ar50F;! separ4TR;mbrist2FZntralO;a562izO;a55Jed O;aPex2PTfO;in3OD;pOutonomous24H;pli49L;pi3Q5tO;hl2;b02iWorQra Ot-trap diploD6ut31N;jo ru454mOwi4SA;es4YDo03Q;ah Ora-lee fur58K;ann woCch57GfRke52QmeQsPvan valkenO;bur53B;an0SGn8E;ad5;alc3WR; m397anRtO; Ps and creO;di556;ca575;! O;ve3K8;ie Py O;ry1;a4GAgi50VhPrO;e0CYo0XJ;arL;d0Ul with0Sn0Jr evan ha3LXthO; Rlo4GQsO; Otro4AQ;due toOof kris kremers and lisanne fro2; the chernobyl4YV;and state funeral of0Cb09cab for c08e3Y9gri4JJm07noHoRpQrow32DstOva37Yzo6;ar,rO;an4MR;a2SHro48O;f On the ni7;a00bZcYdavid b3HHelisa l55TjVkendrick12XmQsO;teve i1TOushaO;nt singh rajp32Z;arilynQiO;chaelO; j4AU; moO;nr3VE;amesPeffrey eO;ps496; co4ZF;aylee0R8hristine daceGleop2E4;enito21Grian w3JZ; sale4CDdOyr2KD;olf3XH;arch to the parallel world r1K7etM;ut564;ecomes h0y O;bOcocon32J;ur4YR; joseph stO;al4; S-charlesPa3DVdreO; h3E1; cO;haO;pm1;cQja1WIma3DRno0X4paul3DQstoPwO;in3FW;ck3YX;a4orC; theO; d1X7; SlPpoolOsh58Cwater feC;! and korg rea4JB;iOoJ;est pandemicsOft; in3IS;by dayl54TcRha53Yis50Wkenned40Hman'sQpoets 1Q7ri4WJseaO;! scrO;ol55Q; sw4W4;an d3M8el55O;bQhavilland Ola 1MAmorgan'sZIstijl;c2DRmosqui4PEvO;am4SZ;ee55N;r sdr54It;animated Rblack l0Y7co32DeQf26Kleague of super-Pm14VuniverseO;! animated original1WJ;pe539;n4HGx0G8;movie4RXu4RY; na8b9Oc9Ld9Ke9Jf9Hg9Eh9Di92k8Yl8Lm83n5Aphne 59r41s3Tt3Eu3Bv05w00x sheZyQzO;n,zle camoufO;la4PJ; oVbUlight savinTmond Ss O;go6of O;being25DoOt3SM;urO; l10P;jo2M1;g 572;rea3PK;f t1GS;pa54U;n Qood ibPsonO;'s27K;rah4KX;fr0U7oOw3IE;f20Bliv4OX;a2Re2BiPy O;croc12Wjones' 1XD;d Vesia TnQs O;c4OIen4GTguggOm4PG;en0QB;a mcPci resol4W0soO;n s41J;caC;de4YscO;hwarzene1V1;a1Xb1Oc1Dd19e18f13g0Xh0Ri0Qj0Pk0Kl0Em08n2C8o06p00rVsStQvise0O9wOy4TQ;aOe3CW;ll3G6y6;eOhewlFrezegu52W;n2Z5pp0;chwi3T3ePhu1TAiOo34Ppa3U4trathai4VXu2NE;l45Cm2ro56V;am1d3M7;aRe1JLiQoOu2PZyaC;bi4YUcO;kefe4XF;c58zz44K;sc4US;aRetr1P6oProO;d3YRw54O;l2G5rO;tn3TU;cko3YCrkerOsque4WV; rK;gden st4KZrt8NyeloO;wo;am52EccRiQoOu52A;rOy3;ri537se;scavi4O5;a3HHorO;miJ;eRiPloydO9u8FynO;ch4ZB;nd5vO;ings3YF;an,e ro4NTit4U6tO;te3SF;a35HoQrO;o54NumhO;ol4Y7;ch,eOre4X7;c1R6pp;as2us50D;c476r3LJ;aRe1HCil4O0oQu55Gyde O;piO;er54Q;cknEr136;r07JsselO;ho4NI;eSiQoPra0IuO;et55Qlpil4I9;g3GHw0;lOno54U;mo4LM;ff5st;iRosterPrOur4WQ;o51Xum;! O;wal4OF;lo,nch4NA;ig45Cll40L;astmalc2GBePin3AUobr407ra4CKuO;chov407ke; g4Z0nO;c404m1;aUhSoQroOu33U;n456sO;by,s;pOsta27Cult52Kver2SI;pe3GJ;aOoe;ng,se;ge,mQrPsO;si4NPtaรฑe52S;raTUu42L;er2;aUeSiRl3T3oQrOurt49Kyr6;om38CucO;kn0;hm,i3n0MGrean2FJwie3XQ;eb0;c1Y1nOrko46P;-gu48Vio4MK;ddiIilElOszuc4MY;dWEe;lQrPttenborouOy0;gh4XS;c4NHqu45L;a4LNlan c3QZ; QedOy boy3Y6; dO;ig511;aZbYcVfUgTlRmPnavOr1R0;ar4SF;atthewsOccaLust3SL;! FF;a3XHeO;e tr47Bge4BJ;ah1ro2WC;i007olEr1WE;alPhO;app4DFis036;ho539l1WP;aut44Oru3JH;nn4ZIr51W;nteOo 3BB; a36V;ghter Ophin0BN;from another2MSof theO; wo48Y;aUe PuraO;! stramoKC;aPforma2GVof birth WZpa4Z6withO; the0A1; 4SRnd time notO;atO;ion IR; QbO;ase Or20H;n268sche4VO;an3HUcQe4GZlink l4IVmi4TSsPty4RLvisOw0XA;ua267;ci50Vt2TZ;e40BomO;pr2WF; UhPsault O;av36Omirage1W6rafa7;!aQiO;!ell haO;mme4U9; nekra3YIvaO;taG;bo53FkET; es sala4ZYa0Uby 2JKi0Qjee4VMk08l06on mala05pa,rWtTumaSvaza gas 05GwinRyl O;dPhaOj209sa0NZ;ll,nn4T3;i44Kr2E2; nรบรฑ4VSi4TH; doC;h PitFmouth3KGs wO;orldOK;ma310v0VH;ePyl stinO;glE;ll bTnO; Ot 1OD;aronofs41Eba3ZJcQmcgPpa8sOtiC;h1WSt9;av4;ri51J;eveC;ki1;ene Oing in the franEL;c4PKlo4RP; X-sky prVeTly dreaming deSm1netQsO;e4ZVi3EStO;al3KT;! mO;ark4YO;xt0;r thOst d49O;an2C5;esO;er4RF;aSenRfa3O6horse co2WZma338sOtri4Y0w2IU;h2JFidePoulsO;! 2BZ; of the 4EO;er4B4l4B7;cPvO;en4UP;ad4LM;a sav3WZo QusOรฉn g31C; Oz wo0CA;ru2GXt46L;a2P8franchit3OE; khosrowsha4PFz;du mau47Bzuni3YM; 1Xa1Nc1Hdy,e1Fg1Ci07nRse macabBtOu33Oy ga48J;dm,e O;aligh4JPbOgabriel ross3O8;as4NW;i01y O;ai4SZboYcareXdVel4T4gl1K8hu3Z9in4YHjohn-j3KYkaUlTmSpRrQst3YBtPwO;el3H8;h31Xre18Q;ol4U5;hant4GTi491o4HZu4PG;as4G1cb3IV;loXU;meko4MUye;eOrinkw3QNy0;vi4J4;!y;naOy7;du50K;elynn biOi min2NX;rk4X2; a1H7ca 0QelRil Psh O;k40Dla49QrK2;kvy4MTmO;edved4TA; Ta melchi4XQlO;a2S2e O;br4R0cQdeadw469mPpanab10UroseOs0LE; r1RT;ac3GY;a41Zol4W4;b0Cc0Bd06e04g02he3QOinou25Hj1Y7ka00lYm2FMnegrXoWpeVrTsQwPzovO;at4IN;eb4QRu;nPtuOunja519;rr4IO;yd0;adcliffe42MicciO;ar47K;a0JQmbeQM;'dN2r3NI;ea1PJ;aOog1;rus3YJ;hn3GSluu48FwO;czyXO;ilO;li3;k,lls4J6spO;ino4I0;aPeOu3VZ;f3N3n42R;ePy-lO;ewF; k4E8;ormi0ra3WF;aPe1Roo6rO;a32Zรผ2SK;lOrenbo4E4;a412dw4;mcke2G6pO;at35V;anron46AerO; f2WDous liaiO;soN; Ol4P0;co4QSdeha1;eQing O;m0I0oOpallbeare4XY;n i4Z5; mP-p47GhaCrJHs with O;wo1FT;o4Y1us509; Oher3ICi guriG;aUbScaRdelQhiCpPrOter4Y1w38O;ee4OY;e00la4HF;a3UVoren4O7;rvE;aOrun3M4;rr2sh;ndO;re4QG;a03b02c00fogYgiXhUmaTnig4NSorlo3BMpeSqu4PrQsOw38F;chOeSQim3TXte26Z;ne3F9u1LN;a4L7eO;ev3yn035;รฑa;ri46U;a37TenPoO;ok0us0;de4DT;lr3MV;elOl0;be4HWm1;aOren2E3;mp41Arl4stellane4ZI;il4I4lo2E4on0IDro4W6u4OI;nd frankPyO;kroVE; ca4KP;!ascus03e01iSoOpi8;cl3n O;alba4OChPlindel3YNwO;ayaN;err46EiC;anQen O;chaz48BhO;a0NRir4VJ; Oo0C7;grammat0ZLhRlPprOw0CY;ie4VG;ewFilO;la4WE;a0NLu092;! commanderO; oHY;! O;go4K5s0IU;ai la4QQeXiWlasSmRton O;ga8sOtr25;chO;ul4QX;atA; Pโ€“fort worth metroO;pl4XS;buyers0U5cow1WFdupree1TEj22NmOs132;aver1VA; and cocky0WSa kadda,da,t; Ok;car3A5d22PeaO;rn44L; pres2LTarPota O;f2TCj4QI;! rO;al4IQ;hXk2lyUmTry SsOzen m40S;uke Py O;edgar0C5ri4RW;namiOo45F;ka41V;caODp0EEq3TW;ler 434yo; Omo4TF;bug7e18ZmO;a4AOi19W;at3JW;omEy4X2; hammarskjรถ4WAe48Ygubatiโ€“akkinen310marOon,uerreo4LU;a domiล„O;cz3Z5;fy One ke5t LY;duJ; jang ge4IBd40Fgu,mon t6Lnerys targary5;'sZPa,dy yank4PA;hPiaO;! du4NB;au2DWshu4TJ;a4SJbs gQneyOo swi3N4; cO;ol3DJ;re0;aOonta for3DH;ngeloPrcy wO;reUH;! r1NZ; 0OW++,-0OVa0ALb0AKc0AId0AEe07QhRPiPGkKlLKmLHnLFo61p5Xr25ss,t22u0Nvs phar0MyVzechQรกdPรฉOรบ chulai4FI;line sciam4PEsar azpilicue4XJ;iz; RoslovakOs; Oia;socialiO;st1ZX;koru4IDla45Ir3LB;an0Cb06c03d char4Zmbopog2n00pXrSsticRtoO;kineOmegalov2AB;! sO;to4JS; fibr3CC;ano de berger2V4ilOus41H; Plic O;alphabe4SIsc2SJ;abitebo2UXgOramapho4EA;ra1JE;herL1rO;essOus;! 1YR;di laPet3thia O;da16De2ZAleNMn3UTroth4FW;up0;ad,lO;e det3OYic redundancy cheJoO;benzap400ne,th3R5;eOill s1RZo4F5;le,rO;bull30KcQne2T1punkOsecurity 3H6;! derivO;at0PS;ri4W7;!i0GPoO;bact01N;ma33S;b0Vc0Tda,e0Sl0Em0Cn0Ap08rXsStO;ieQtO;ing Ole34J;cr3IT; h3J0s; d'Rco,hPtO;a4TRomer relationship 2TV; jOing's4FJ;um1FM;ama4DN;aรง43Sb your enthusia4MGc0PMiosity Xly 0SRrWsStO; Qis O;blayd3lemKma248sli3ZTyO;arv4;h3BSs44N;e Oi4KZ;and mark of Pof O;dimensi07h4SM;ca4;ency 3VJiculum vit4HOy0RF;st4SI;cak3X7he4RFidOping 00A;! and psyc4K1;arOeiWOni48At;d 4IP; OaNbrAin,ulative distributio4GC;sh4VTto4SJ;linan00tO;! UurO;al SeO; Pd O;me4GY;cl1S0of Ose4MI;i43BjP8t0MP;appropr2YOmarxism1IOre0DO;fQoO;f persO;ona2CA;i4QOolloO;wi8; d1B3; 1QYva4GF;koOu4P7;ld,o; sTaQiOo4SE;c Osm;crysta0I2eq2LGzirc324;!n O;missilOre0DA;e 0RA;wa4N8; sc1esiph2hulhuOvWJ;! mythosO;! d37Z;a2Xe2Ci18o0Iu07yO;e38Yo31JptVsOt3RP;is,talO; Odisk3Q2;cas4ECdy12RgRoQrPsO;kuCt2L6;ad3SQe4PR;scill4E8;ay7;analysis of the enXoO;currencRgraphOkit4PCp3HVzoo43F;ic Oy;hash 4F8nO;on4TK;i3yO;! O;buPex2A5waO;ll4QJ;bb7;ig4ME;cifixNFelUiseSnchyrollRsOx;adeOta2OL;r Os;kings1MZst4H4ta3TO;! anim0N; Or;m3ZNsh464; intQla de v46UtyO; sO;qu4PP;ent4N6;atia07c04hn3GVis2XJm03n02p4PYre,ssUwOyd2;!dSn O;heights 2BQjewel3NoPprince O;hyomyTJmunh3ZTsa40J;f cO;asti7;ed4S0fun47F; T-Pb4RGfiOing the rub2QNra46Jwo4RD;r4T2t;co28DdrQorigin resource sha465plPsite O;request forAQscrip4TS;atUN;es4I6;entOof saint p4FKp09Z;ro4T2;!us;weO3ฤ;h4POodilOs;eOia;! dund4L2;! 3N1n O;la41RwO;arO; ofO; iO;ndepend4QN;b01Bc0Mm0Aps,sXtiO;cOque of pure4PI;al Rism Ps' choice moviO;e 3IJ;of faO;ceCN;path 4ROrPthO;eoLin4E3;acOo7;e 2B8; cYis VpTtO;ero3MJiO;ano ronQnO; milio3F9a O;fernรกndez de kirc1E9v4KH;al3ZH;in gl1B8rO;! gene edi4SV;in venezPoO;f the third centuLn earth-x;ue4S3;a4LLollin3IZyO;bo4B7;eRinal QsonO;! O;d2CQpe3ON;l4HDmMU; RaOs0C5;!n O;kOta0X2w9;ha0IH;and 3Sbo4R6fi4CIin O;chPn10Zsan francOt40V;is4ED;ica3GD;buRketO;! O;b4DPwO;orld43V;zz;a01dit YeUma4NLole TtPuO;tzfeldtโ€“jakob495;aceousOe;!โ€“paleogeneO; extincO;ti08T;la40Cp277;! QdOpypas4S6; Oence clearwater revival3KY;bra3U8ii;su3EA;default sw2R2k4JWsO;coBuO;is4Q1;m WVtiO;ne,onX4vO;e Oi4L6;aPcommonsOde2OP;! l2Q2;rtists 03AsO;se0AW;b 03ck coc3FVdle of 01igWmerUnb0OEps,sh TySzy O;exQfr425hOrich as4GF;ea4RIorseO;! memo0M5;-gT0;fi4ITon shin-4GV;bandico4RLlanding on3IQ;'sO; ru7; PsO;li4NV;chPd0EZf3OYof the1RMsO;he2WFteveIZ;arl3;cOfil491;ivi1TT;ga4QVnO;ebu4QH;uOy1S2; O-z;cOso0YP;ac4FA;aEXbEVcEFdE4eDZffeDWgnDQhen'sDOiDIlB0m7Un3Zo3Pp37r1Rs1Bt13u05vVwSxPyoHzO;umIy0QD; enO;terprO;is3; tPboyOin;! beb3Y7;oo4OJ;aTeOfe4QBid;ntLrO;age of google strPtO; affai4OI;eet O;vi3D5;lent QriancePxO;!in;! m46J;bo4MF;gar0Jlomb3B0nYpWrQsO;coDinO; marria48E;age the cowardly40YseGtO; ReQney O;e4HNfo4NWhenggN5lo4FDsto3G8thorneO;-s3YZ;ney3RAs1;of ow4O0tv mys4JV; dOe de 0XO;'รฉt4BNe grรข4P9;cil o04tO; d01er-1ViXrQy dO;on0Y3uO;rh4MT;ieRyO; Ob34Y;code top-lOjoe277m3AZp3XEroJ;evel doma4;s O;ofO; tFC;es of Png cO;a4NOro4GK;e45NiO;re4IN;ooOracu4P4;ku;f Pn foreignO; rR3;chalc411eu3Y6tO;hIDre494;! O;to4MG;e de pUswT3tO;ageSonO; O-eyed2DC;bowlOg4; cO;lass4PN; UGcoB;ab4GI;i01mUplKs13JtOw40Q; of electricity by Ra Oco;concordOri3DZ;iaO;! d4EU;soO;ur4O7;e2LLic RoO; kPlogOs;ical 21Sy;ram0;microwave backOrKs4;grO;ou4KV;mo de'039ne simiO;la3XS;a10b0Zd0We0Sfu,i0Om0Jn0Dona09pXrTsi3DLtRuF7vQy O;bo3YImontOwo8;ei46N;etHid4AMus;a49YiO;co33As4NU;elationQie ten bo43SuptO;ed bloodXFionO;! perceptions4NV;! does not imply cau0P3;oraRse O;b35QhOp4HZro4K7;usO;ba4KF;lTtO;e PiO;on,sm;govern32PsocialOtS1; responO;si1NJ;! O;punish3Y4;ry arteJQtion PvO;ac,irD;oOst4KB;f elizabeth 4JZ; st1QXeRisQwallO;! cO;ap26T;h 3WD;d beQ2lO; 4KJius2El 2GQ;ac QoranO; Ot;stri3PC;mcO;ca2Z8;a3G8nOolis2JX;ne Oth;foO;xx;ldr4CJy O;fPhaOreR8s1AItaKE;im,rr3J0w2TA;el3J7;arrelleOed ware0AC; pO;at41W;ev3Z7in ber303;lOzon aqui3UT; Oi6;ca3CCrePH; 04a 03enhagen00pXrVsh3UTtSyO;le2RTrightPwO;ri4NF;! O;infrin2L1sy3N1term extensP4;ic Os;la3VLorO;thodox2EO;opO;hilA;a it3EYerOola family 4B0;! peptide ghk-O;cu;! O;a4AOiO;nterpre336;amรฉ2VKdel rElibertad3NK;la4IVu479;ber pe45QkTlQper Prdinated universO;al 4ML;h4E4ku3I3m2HX; Oio;hand lu3O8ruO;nn4JE; QiO;eOng ba2X4;! c21I;i3KIpartisan voti7F; a4IOan 3Ec38d31e30f2Mg2Ii2Hj2Dn27or 23quist2WUrad 22s0Ut02vSwayO; twKS's O;gameOl4BE; oO;f 4M2;eQolutionO;!alO; n2BJ;nience19GrOx 474;genPsion O;of paul1Q3thQW;ce ofPtO; e04K; randomO; varia3YF;a0De05iYrOumeliosus of ri4EW;aUoO;lQversial reddit cO;ommuO;ni4GV; Pled O;flight into ter46Tsubstances3X7;of fire by early2GYth249;ct Ol43Jpo0BOs;br43MkO;il4EC;guous3UFnO;ental SuO;a1SIity 2C7ousO; Ply variableO; t203;fu46Iinteg4H6uniform1DK;ar2GVdivide0MDph2ZW;mporary clTnt Pxt-free gO;ramm9;delivery2ATmO;anageO;menO;t 2MV;assicO;al36H;ctless pay3VCiO;ner 3XF;angui27Uc0Le0Figl0Eo0Cpiracy theor0BtXuO;eloTmerO;! Oi4BR;behavio41JelectronicsPprOs1K2;i009ot3DM;! O;sh4IX; vO;andO;erbi27T;anVellationUiOructed 3TH;pa4GKtuO;ent assemblRtionO;! of PalO; mo49A;i3SWt0CA;y 2BX;!-40N;ce wu,tinO; 4G9e Oop7;iOt3PExi palaiolog4CG; Oi O;ofO; grC5;ies about adolf hitler's2H3y;lidated pby cOna449;ata3EN;ieB;ns3D4rvatiO;on QsmOve party0Y4;! O;inMO;of0YPstO;atD;iTriptionO;! in O;sOt3SX;ouO;thO; kMS;enPoO;us4J1;ce,tiousO; obje46Pne4J0;hi3GHmu440vei3QI;gQlPmO;cgr1ER;esl4HM;al3QZ;ac4GWectSie Por O;be3XKjess41Jmcd07Rswind2VA;bPfrOn0L7sYR;ancF;oo41Tri3MA; 29Nic2DWu;oined7EuO;gate Onctiv2Q6;gradiOp326;ent 4IE;c0AHf0;eQo Press O;of vi1VFpo4CM;cr0G1f224;e,nital heart de1OD;eUiRuO;ciPsO;ion3ZL;a48Jus;dence Prmation O;bi4JC;intervMt2P2;ctioTderatPrenceO; u40T;e states Qion of O;african3LUtheO; r3FW;ar2EGof2RV;neL;y 27J;ensed mi0BNitionSoPรฉ O;na4FS;leezza 2QQmOr;!iO;ni43Q; 3H9al O;expec2Z9p1I9;acafSePhata fer0VHor36Hre4EHubiO;na410;ntrated solPrO;neda46Zt for15;ar3XQ;! 09G;ex28YgrKoPthe O;barba41Qd2B3;'bO;ri5;a2Sb2Lca4FCe2Cfort2Bi22m14or12pO;a0Petition between airbus and bo0Oil0Nle0Io0Fre0Aton09utO;ational 04erOi8; Q-O;aided 3XTgenerated imaO;geL;aZcYdata034e3UZgWhVkeyb0MXmSn2P6programRsPviO;rDsi2;ci4FWeOo337;cu3RF;!mi8;e0JUoO;nOu4GO;it4EU;ard4AA;rapO;hi2P3;he4H2;ni3W2r2A3;complexQfluiO;d O;dy0Q7;it15H; h17A;hensive and progressive agreement for trans-pPssed naturalO; g4HW;acifO;ic partnO;er3TY;sOund inte33E;er,ite O;index of national capa1H4m0CJ;mentQx O;conju3XLnu4BVpost-tOsystem0DG;raumatic stress2IH; 2J3ary coO;lo4FM;ation of final fantasy v4DKer;ei8;ct XnSrOss;ison of Otmental models in epidem22I;bittorrentPfileAKlinux distribOonline dating32YsshPtop chess players throughout2SDvirtual reality headse4D7;ut4AR; cli4CV;ion of Oy rule 3PD;hQthe order of sO;t michael and stO; ge0TU;ono3XM;c9di3KLexecutiveOsBK; c9;biOos2B1;di4AS;a0Fe0CoWuniO;ca3Y3sPtyO;! of20D;m,t O;i2Y3party Os1ZN;of Ou3YJ;cu3YBge36Ti3P0the O;r2KQsO;oviet9W;d02nO; Rwealth O;ba3GGg3FUof PrO;ea4CC;e3WSindependent43Tn4A2;aUco4FCeTgateway2DKl45QnRost22UraPsecurity and defenceO; poli2OA;cOv5;coon3RE;ightinO;ga7;ra,uropean framework of reference for3QW;dmissO;ioO;n 2YI;i4A3us;dia dell'Prcial O;bankV1so318v0MR;arH;!-separated3XRndO;-line2D5er O;ke5oO;f the order of the brO;itisO;h 41I;cUk4CIngPx waveO; f1F5; O-of-age4F7;homePofOto2OT; a3Y8; in O;the da4BY; Os;bo46R; wom5; VdPtO;! haleโ€“bo3BA;ians in cars getting coSyO;! P-dO;ra481;centralOfi4BBho0RW;! r32M;ff47H;and36Qfrom 49R;inOus4B9;atRed O;dPsO;tatistical 1ZC;na index 2H0rug i3FA;i2oO;ri2MF;!nc43X; nee2PHby covi327chi33Fd1Ze1Tg28Ai1Ll0Vm0QoZsonYtTumbO;iOo;aOd41Ene high school135;! O-3IS;pi2K1rOsportswe9un2X4;ec444iv0; Q's manufacturi35Von O;du3XKhaOuWD;yn3;mcc32Tsingle acO;tionHC; white4AX;gne010mb0Bn02rRssPurO; index2W4e43X;al sOe3ZTus of rh2D0;qu4CG; SadoQectO;al O;ca44E;! O-0YH;avalanc43Cr49Q;blind4DRcomment3YLdep3WVps2T4renderiSs96tOw3ZY;eOh1X8;le1XLmO;peO;ra41I;ng4E4;el UiQsay1WAy of vO;irgO;inA;aPzation ofO; ma4CL; dignid4ADlO; historyGRi452;r1V5s15Ktom O;pa15E;iaPoO;! c0P6;! 385n2A0; Qan O;domO;in32I;feoBmeO;anE;a04eOin ch35Qoqu2X1;ctive 01en YgeO; Ohum4AR;anTbaSfootballO;! O;national championships in ncaa division i f2IUplayoffO;! nationO;al 3Q2;sket3GO;d universityO; rO;ank4AP;balPca2JVo'shaughOwi8;ne4B1;li3WE;security treaty18FunconscO;ioD;g5pse of the wTtO;eralPzO; conj3KY; Oized debt obli1NA;beO;au478;orld tradO;e O;ce3AI;n Oseum alfonso pรฉr46C;dTfSh1OWjo4A7kaeperRleQmOpo34Asalm2trevo0O0;cr3ZGoO;c25Lrg1;akE;niJ;ar0PXir3VC;on004; QsO; superO;mar40I;haPpo469sOtu1S7;pr4BJ;us0; QplPstreamO; gu3JO;ay368;ca4BFfPpurO;su49C;e49Au3YW;lg4CAmba2YUnQtal alignment O;technO;iq417; flPba4B9s of the united statesOtelp414; do1SU;ipTJ; kO;ap3IX;ac,iO;tiOza3WD;on,ve O;bPdisOps2QWs1MS;son2R3;ehavioral H9i4CK;a arabi31GeO;! Oh4AW;be1la3E3stain 0RV;fficient of QlOn brothers45W;acOiac3TM;an3UF;deterA6pOvar2FT;erform2QU;!eRy O;garOko,rh2A9s208;brO;an3IP; ScQfo1OUi6mPxO;! gig4C6;as2JX;aOhEC;de27E;gea4B0of hammuOrefacto3ONve4;ra26Q;a01cinell00kWoPteauO; twiN; Ra 3OZmQnutO;! O;cr22No3OT;el2;auPchO;anI;st4; QatPnErOta3OO;oa404;iIoo;and ballCGri8;id3XO;!-co4B6ineO;! 2VG;a1YDie smul2NXol,raOy0TP;! k405;chQgu2S7tPxialO; c475; of 49Ni; 0QDella valley music and arts138; t3QEame Obc,id2XQn,ut3G2;re2G9; Pos,ykO; color2VL;pu3AX;a1Ve19i0HoWuOyde drexl0รฉmence poรฉ2XA;bQePj-napo305ster O;an2PN;do,le4A4; Pe O;atlรฉtico min35Ide regatas do flamen2ZC;atlรฉtico r1BFbrugge kv,pO;enO;gu4;juBmife6n05pidogrIris le04seWthing227udRvOwn;eOis3C5;!rO;f2MOw2VX; PfO;laB;cPsO;ee3OL;ompu4B1; RdO; P-circuiO;t 022;be4B2ci44B;enPquarters battle reO;ce45H;counters of the third Oou44B;ki46O;ac3SR;azPiO;di6;ep47D;c0Centโ€“server2UPff06mate YnSp studio pRtQve O;ba11CcusOd3DOow5;sl0;orF;ai3U0;icalStO; PonO; body c2D6โ€“lewinsky 44K;eastwOho09Wwa2ZI;ood43M; ps2OF;changeTof QpledgO;e aO;re3VG;auMDi3I3tO;he uO;nited266;! miO;ti1JK; Pord the big rO;ed3KM;buQcu3SRmaPrO;ichard330o2L5;rtin42N;rt2;hรฉ,kO;baOte46M;it,nk;a03f,mWopatraZKtus kaVveO;landOr haN;! O;brRcaval3OFgQtorsoO; murdO;er0;uard3YJ;owN;sa3SF;entQson O;tOun2R6;ige18K; attl413ineO;! O;barn255chO;urc1BD; dSnRr channel memoraQvon O;liO;tt7;nd3TW; baS7;uvaC;es 9Air14n12r0Rs05uRyO; OmoB;aOmatthews11X;ik5;dOs von stauff397;eViO;a Pne long457oOus; ran3QT;b1IQcardiRjeQk3MQschi2E6wO;el46QiO;nkl2OY;ss46E;na7; Otte col3R5;a2EGdebus2UOlรฉvi-sQmon44Zr262sO;haO;nn2;tr30U;h of c08sO; 05ful1XUiQless inter-domain rou48RroomO;! of the eO;liH;cQficationO; of Os of fai3ZM;de32Tindian43Asw3X7; Xal O;antiqVco3EKeD9grUhollywoodSlQmO;eOus48Q;cha2F5;ibeO;ra2RQ; cO;ine40E;ee47D;ui41Q;chinese noOmac 3ZT;ve45Z;c23OdO;ia25S;iviliz419laN;a Wence ViTkO; QeOson's fa3UT; pe2FN's threeO; la3YR;du39FgOjames g43HmiM7s3X9;ab7re2V8;n443ssa dicksoO;n 2GT;th281williams10N;b45Ios35IpetO;ac36V; Ocy0KFg;ca38L;e Oo,voy2M2;bSd20UfoQho1UCrOvan kamp5wi2H3;eOi212;df2J8;rOy;la3X3;lo3MO;ar1Tc1Qd0elab color1Ogar1Ll1Jn16p15r0Is0FtUudad jTvilO; PizationO;! v3GJ;e3JUrigh1WFserviceO;!sO; exa51;uรกr402;a07i00rVyO; Q-O;buildiOs1PR;ng 3R9;football3OOg0BZhu342index3OOof Op3EN;brusse44ZlPmanchester0ADwO;estmin3WV;i3o2MA;ic acidRoรซnQusO;! O;bo1BV;! 3VQ;! cP1;ba36Gg3OGzenO; 3NMshipO;! O;of thO;e eO;uropeanO; u3HG;del0MUt3CM;coPge2Z6sy hO;ou346; s3LO;cPque du sole3JFrh2M0yl O;ga6;a04e,le of fift1N3uO;it YlaUmPs taO;ve3VT;cisOf2QD;ionO;! O;ofO; j04O;rPtorO;y 27O; eO;co0LO;bRde O;mPspa-francorchO;am3GK;ona3S8;re05S;dian rhyt10YssiaO;!nO; Os;ge1XF;h0rofloxac4;cinnatiYdUemaQnaPque tO;erB;b9m2; Ot3Z9x;of Oparadi33N;i3DRjOt3ED;ap1;erellaQy O;cr04WmoOw07Q;rg1;! m1;! beO;arcats385nga43G;en3N7lO;a1FCian murphy38H;!etteO;!s afterO; s44U; sO;pa44K;a43DeO;lyOro; t0RX;aPรกn hO;in3U1; bKF;aAPe87h84i57l4Zm457o4Gr0Gth2KAuRvr43MyPรขteau pรฉtrDลซO;ichi nagu2GZnibyล;ler9HnO;a,na0S3;b0Bck01kotka autonomous okr124m00nYpacabGrO;chOu3VR; QesPiO;ll 0HZ; of 3NN;f126of O;e3KVsPthe O;ea41Kholy sepulchB;at1cO;ienOot3XT;to3DR; doo-hw1gO;ha,king0FU;bawam3M0l3WF; PleO; 1AWfi3W5;bTconSgras256j42GlQnoPpalahni1BIschum0yeO;ag0;ll,rrF;idOorB;deC;no42G;aTDeO;rry2XK;a hub0YJu-nipp3BI;is06oSysO;anthQlerO;! O;bu0G9hemi9S;em3OZ;mVnO;ic SoO; Plogy of Os;j02It3OJ;c3KJtO;ri0SE;fatigue3NKobstructive pulmonaOtraumatic0BFwasting3L7;ry3L6;aRePi3OQoO;so43U; Obo3UPca40N;os,remote deskt3BGweb0R3; kEtO;i2SQog3XC; 23ann b21hell st20s1WtO;a m1Tchurch1Ri0Kmas0EophPy O;maJtur10J; waltz3X5eO; 2JAr O;at29Gbr09c07d05ecc04g3Y7hi03j02lZmSnol3X2pRrQsPtOwalk5;olki5;ca22Btreet2G1;ee3SSobin mil6;ao0WVlu2Q4oo7;aRc2JGeQintz-plPoltisO;an2Q0;as41V;lo3T3;rOs3HX;kus and stephen mcfOloRO;ee3O1;aPee,loO;yd;m3LQng1;ud3LE;tc3NT;le30S;orner shootings and manOun0ZU;hu3MT;oOro421;lumbD;ow3TF;! Oti2QM;and holidaQe3S7iPm2O5trOwith the kr1EF;ee,u427;n 2ZAs3VZ;y O;se3ZC;a08e br07nO;aYe O;baraWcUeberTg02Ghร ,keSlaQmPtaO;yl3ZD;ax2TKcv40E;gOh2P8;ar2QA;el0;so7;hubOol0C1;buJ;ns3L2; O's412;aScr01Rgrimm405hRmi28Pon1VRpPrOto3T6;ic31O;azsiOer3YHi07K;tz314;aaJendr0ZE;guiOpple3I9;leG;in25W;an HQnO; RityOs;! O;by3AXin O;i3A7t3AT;a03b02c01dVeUhTixSka6l0XQmccafRpPsOwo427;ci3ZMl2RB;o2UNuO;lis42H;frE; of2XF;a2OJo38V;riks5;eOi3YI;mocratic unQnoO;miO;na3XF;ionO; of2PS;a3JWou34V;ale3V5r4U;ngelo3APpologe1YC;! mosquO;e shoot3YF;caulOi3SN;if41B;ie hyn2P5y O;coPme3U1teO;ig5;st0YD;au3ZU;reO;nn1;avelWFb0Mc0Id0He0Gf0Eg0Dh08isa2XLjeric2WFk06l04m01no3JDoZpXrVsRtQwOzyl36A;al3KMei2X2hOil3J9;it3UX;ar2WTu1GA;aQilvIEpPtaO;pl123;ed3EY;c2Q2ra2GG;eOoJ;a,df2CU;aOe3JEi6ra3S6;rNVtt5ul;'doOla3Q8;nNTwd;a26KccandHOeOu2HU;ledand3WZsOtz5;si3MA;a3THoweOy3J7;!ll;aOy7;maGtt1;aQePuO;gh3h6;dg3m2R6;df2CFns5rdO;wiJ;ar1EBo3JP;aB1oO;wl0;l3RMuNL;'347iamant3DIobE;hPlareJPoOuo2CD;lf0op0rNA;ibOr02E;naC;enoitOo3RXrown2TKum238;! double-murder an1M2; 03ct3PBe deok02i ZlSnRp suErPw Ozen tog34O;ch3Y4me4yun-f3LX;dOi3OS; p1TBaH;drichthy3gqi8;a1BTeOi6;ra,sO;kyOter3ZF; dO;ecomO;poO;si3VM;mi0ABsooPtaeOwoo-sh2V5ye-3LD;-jo2;-y279;-s4;kyu-37KmiPyeo-jO;eo8;-ye2;amydAoO;e SrQรฉ8Zรซ O;grace more3S9seO;vig2UW;i6oOpromaAA;fo3MKphyC;bOfin2FTti8;a0MCenn3VX; r2UN-squared 2Ja2Gba t36Pc1Yef 1Pgorin0EUl1Fm1En08p01rWtQvalryOwetel ejiof3W6yo miya380ศ™inฤƒu;! of a failedO; kn3WH;a Sin,on,rangada3T5tO;aQerl3W9y chittyO; bang O;ba8;go8;ri2OD;aQlane mccrKoO;n,prO;act3ZP;gOnjeevi3SO; pat3C4; k3DAko1OCotleRpendQsO; hO;ar3I4;al3;! mexicanO; gO;riC;a0Ich13Kese Pk,oOua ache20V; mo04E;a0Cba09c04d03e01folk 00guardian l3S9immigration toYla37GmWnUoTpe35CrSsRwaterPzO;odi1X7; tO;or3LM;up15K;emainder 0Y7o3E2;peG;a3YNeO;w R5;aOyt37O;rtial 18W; meO;xi3KS;re2IB;conomic reOxclus0J;fo3LF;em1ILr19L;alRhQiv26ComOui2I2;munO;ist3RZ;arac265;end9;skeO;tballO; assoc21P;ircraft carrier PstO;ro378;liao3OKshanO;do8;! Sโ€“O;pakistan economic corrQunited states O;rOtrade2RT;el3RC;id3UM;a3AVcSglobalRmiรฉv2T0na2RSrich gPsouthernO; a3AU;irlfO;rie3U0; television1N7;entral P7h3VO;amanda ngozi adi3Ypanz3PL;dQe1RNi O;con cOpe121;ar6; Rb0V4renO; of P's online privacy protectO;ion38Z;bod3CWdu6m5;a3L8d35Ygroo2ZWlaPpoOsexual3L7;rn3R2;bo3DW;executiveTjusticeRkeQoOtechnologyT;f staff of the united statesOperatingS; ar1SR;ef; ofO; t361; oO;ffO;ic0;agoWhen it2YMkPoLxulub O;cr2MG; cT-filSenOp3R8; Op2YE;asPr3WItikkaO; masa3WO; fo3X6;-a;or3R2;! R-O;styleO; pO;iz2YA;bRcQdi3OXfire 303mePoutf3T9sO;ev5;d,tr1GJ;anMu21L;ea3UTlackh1GLul3UQ; Png Op3WRroscu3L1;kai-sh2TSm3LC;se3RY;d0OOte3TF;atPichOor3SN;hoB;rapati shivaji maharaj 3KAtisga1X2; gue1A4a23byshev20c1Vddar 1Ue1Qgg,hBk1Pl1Jm17n14o10q3KWr0Ls07t04u35MvQyenne O;brOj2YM;an33B;roPyO; c2XL;letOn2EZ;! O;bigWcUimTmaliSsPtO;ah2J1;ilveNFmPubuO;rb1;allS;bu;pa3VR;aOorv2XG;ma3KFp23V;-block1O; Pan Oni3M2;bhag3HPsh3OA;at21UbVTh17H;aYhireXsStO;er On1Q4y pu3N1;benni2IQreOw6D;ynO;ol3KR;! O;ope3M8pQrPtO;it7;at1X7;ie3V0;! c3HD; boPpeake O;bKsh2WG;ud4;ami01enkov0D8iZnSok3NEryPub,yl O;h3IQla1JFya8;! O;bloOj3TF;ss3AS;i2GKobO;og,ylO;! O;d3L8exclusion71liquida099nO;ew safePuclear power plantO;! sarcophagD; confine35C; o0Xe O;b0JNcu1L3; l07H;ljOngs3S4;onO;g O;of jose2;gPnaiO;! e069; xi32Xdu;iTmRoPtrailO; c0IGs over the countryQU;thO;era3UK;y O;al1IK;calPstO; wOPry; Os;bo3QVca154ePi1LZre366subO;st298;le34Q;sea QyabinskO;! O;mete3R8;cPf26Cg2XNhOm1PUper2H3winA1;an2OW;li25S;a,hov'sYA;chQseOt3KL; sOca2W2;andML; m071;ch09D;hPkO; 2PSe3SC;enOn324; republic of ichkOs;erA; O's7Z;polynomO;ia3S3;p t1ZVtO; e28E; 4JceTBd4Be48gas3B9i3Zk3Yl3Sm3On35os 34p2YrVsStQuvi3J7v,zO; bo31Jz palminO;te3Q2;b3UCroOsworth3SCurbaH;ul2V8;e Otity02L;at0UEba2TJstO;ok3;acter2Gc2Dd,g2Ai24lTmRo000terO; Ped financial anO;aly3QJ;commun37K;ed,iO;an ca3MTn9;e0Ti01otteOton he2RAyne 1AG; P'sOsville car03V; w1AA;br1Y2cXdouglaWfVgaThorSkemp mu1LXof mecklenburg-stre0VYrO;aQiO;lEtO;ch3R6;e,mp3M2;ne3P7;insO;bou3C4;c,la3PL;s 3H1;h1KZordK; 0DePze thO;er0F5; Q'sO; aO;nge3R4;and the chocolate 07b04c00daYhUk230mSpQro3RKsPwO;at3OVeF;he5;aOlu2FNu3B3;rk0ti30J;c25IuO;ng0rp3MJ;eOunn3PV;at2bdoO; sO;hoo3T4;nOy;ie3QR;a1RIhPox,rO;ess2JLi3PI;aplOe0VE;in3M5;ak0rO;ew0oO;ok0wn;fac3RR;balti3LQdOxcx;'amel2QR;m0Rne ti2OYs O;aznavo38Ub0Nco19Td0Ke0Jfrancis swee2NOgr19Hh0Ii0Cko3GVl05m02n01o00pon1SLroYsVthe ba3R3viTwRxO;!ii oO;f swO;ed5;hiOoo39A;tm1; o08iO; o07i06;aaPchwab2ATobhr382pOta1EB;ur2ZN;tc3FS;bertOck3OIv5; j0WI;liv2PC;elson re0M1g,jonZ8;aOi34U;ns2rtO;el,in3OC;aSeQiO;ghto3J0ndO;ber3LN;cleO;rc;ugO;ht2; of SiQn1PLv 15TxO; oO;f ZD; of Oi 15Q;e37Ps15R;a2HJe37O;arre2URos206;dward st1HA;aPe gaulle196icOur3HY;keN;n3QRrw4;aOoy0ro3JXu225;bOr1V2udel0DE;ba39L;ag6;otRsOty wak22K;e castro2L9ma cOsa0JV;arO;pe2OA;!sO; of 3ME;eOรฉ d'affa09W; of the light briga2ES-coupledO; de0Q2;oPutO;er3OR;al,tโ€“marieโ€“tooth389; Wi0TWs O;in Sof the O;dc exQfinal fantasy vii 1THgrishav3BImO;arvel ciO;nematic3BE;tended3BD;romeo aOthe mario franchi3PA;ndO; juli3N5;en34J;elwSo trap3P4paquiddickPters and verses of theO; b0OZ; inO;ciO;de3AC;aiH;m3NWth190; sung 05a04ce02dVelUgRnOson de l'oiI5;el PingO; tat3BA;i2OIone 2MUtuO0;'1ePi3E9pengO; zh2YB;li8s in star wars re-rele0D1;! west2D8;igarhSler RraO; Pgupta maO;ur2Y4;wi2TE;bi8j3O4;! kare aashO;iq1WR; the ra0UFllor of O;ge2FZthe exchequ0;k2XXthip songkr2BY;ju8;ath palihapiti2XVeQoPpO;ag6ionnat 274s-รฉlysรฉ3;mi7;le2;cRd3JYking theQlengerO; deO;ep; do3MG;olO;ith3Q8;a 1L8ra;m UnSrO;man of the joint cOpe349;hiefsO; of sO;ta37Q; Osaw3KZ;ma32Hru7;tOwa17O;op3OT; sooPb3OSl sOy1WT;onn5;-b4; Owick bos25L;huTj3HSkroSloDOmRsPvO;ea3DQ;mi37CtaheO;ls37T;cq2LAichael RX;eg0;rlE;chaan PeO;un-w2RV;te8; mar3AAbu28cil26dr20e1Zl1Km1Jn0Co,phal0BrWsQtOu3PHvic3DK;ac3J3iriO;zi6;arPc fร brOs3AEto3N3;eg3OZ; Pe bO;orgA;c29EmiVEroO;me3D5;am3PAb01eVnUseiStifiOv352;cateQed O;loverOpublic accoun11R; b2CE; autho2XT; lanO;ni3EJ;!unn3GE;al,bOmonial 34K;e204rO;al PospinalO; flu3LZ;cOp0JT;ort3NY;erD;ic3NUop3OI;k uyg34Ro0Ts0OtO;aur0Me0Hi0Gos,rRurO;i2y O;e2BRof hO;umil1RQ;al Ue-QiOo3LP;fugOpetOsm;al1KH;baJlO;eftO; pO;oli1KR;a03bYc3FUeuropeXintelligenceVlimiUn129pQtO;imeO; zo6;arkOo2BQr28U;! O;joggerOt32X; ca3MB;t 0NA;! O;ag1VD;!a3HS;a2NEoardO; of secondO;aryO; eO;du2NF;frican republicOme1WEsA;! c1VG;pe2B6;lla asia1Q8nRrO; ofPs for disease control and preO;ven3J3; ma3ME;a36Hnial olympic parkVI;!w3LZ;orshipQus in O;auO;str2FB;! O;in0AK;zo3NO; yฤฑlm0Y7e36W;a1PMeXiVlRtO;ic Os;bri0COl2XHmOn3GFw0A1;yt2W3; Qo,ulO;ar OitFo3LG;autom3EIn1TRrespi3IL;memb2G7nucleD;a i1UBne O;di2;bPry,steO; o3S; jih3IOrO;atory gun3HZityO;! sex2B;dee la2D6loPP;ic Ous;aQdigPthe enterO;ta1OL;goL;leO;xa2F6; Oia payne-gaposc2IJy 2J7;kell3GMrh1KI; PaO;no 2UZ;ci3G3p19Q; O-r31Pawg2LA;projektPtO;eneri3M4;! r3HL;h pou2EWlO;ean0;c DMee0KPgb,s;bDIche replacement poliDHdD8esCZfCXg3MLhokAiCJjuNlB2m9Yn80o7Yp76r2Gs16t05uWvRyPzzieO; dA3;enne Om2K5;pe0QF;alReOi9; Oto3J6;paOs3L8;in3MA;ier king charles spaVTry;cPlifl30ZsO;a133es of world war2N4;asShyO; d0DWโ€“schwarzO; iO;neqO;ua12Y;ian 3K2usO;! 00J; 0M's cr0La0Hch me if you c1e0Efish0DhQn2XWoPskilOt7w08N;l 00H; the you349;a08erine Tie 2SDoOy2FK;de-ray 61lic O;b0JUchurchO;! O;by2UAsO;exual abuse084;ba39VdeYhoL6i2HSkeXmUoRpa3ELsc0OItQwPzetaO;-j3JC;ay6;aHhe2Q4;'1KFf Ox2LN;ar0WGvO;aloF;cPiO;ddl0M5;corXM;en0;'PnO;eu3AD; meO;di2KB;rOy p18C;i3BLsF;!i8; blanchett2MTgorOrpi110;ical impeOy 13C;ra312;comb1BClOn,ra2W9t1S4;an PonAyO;sFtic 1ZE;la2TCnu3F0;ad7;p2ZRsO;te0S8; anv9a0Vcad0Se0Lh0Ii0Gp0Cs03tQuO; mart227alties of the iO;raq2EE; ZawKeYile andXlTor SrO;atQoO;l performanO;ce3JY;i2o;and poll293o2XE;eOi8; Ov2I;bOin the00Arock 2UC;ra1N4; le1E6;! system 2SBllammar91;awKir2of 0; eVaTetteSiOowaL;niโ€“Pus O;sta169;huyO;geN; ta38B;ndra Ova;ha91pe2YL;lli3KE;ar david fried164er Pian O;s3E0t1JY;the friendly gOvan di5;ho3GO;miOno,o;r 0OP; Oew,mere wo3J5;a2F8tO;ruJ; Sin,mi381y Oโ€“shill3CY;affQdOkas2BTneist35Dwi2MV;esO;antF;leJ;bl37Yclos3EVsOwestern reserv1CI;tu32L;ePing style shO;ee3FA; r2SE;blO;an28D; 4Ca45b3Jc3Hd37e35g34har3AJi2Zl24m1Xn1Ko0Qp0Nr03son 01tRwood li2MFy O;elw3g2EYjoji O;fukO;una2G5;eShagRoonO;! O;network3AXsaO;lo2;e,o delenda e3FY;l,r Rsian O;cPpO;rodu2UH;oordinatDS;bur29Wre33U;k0V7pa25NwO;en3BJ;aJe18ViXoSy on O;at yourQcamPdiJgNVhL6regardO;le3HV;pi8; conveni3GE;ll Pm,tO;! t2QE;oPshO;el3DW;'conn3FC;a30VeRngtOon;onO; eO;ve32B; P-anneOr-grade n348; mo3HI;bQco2fi1YKha2EYj3AYl3FGsnodg2TGuO;ndO;er2P7;rad0XE;aOe di2AI;l tunnOthian X6;el31X;lRn kQโ€“kanO;n dO;ef3FT;ea3II; 04e 01inQyn O;bessette-Oj3G3;keU;a Ue QgiO;an O;d0TRem33F;f0RZkeQmPpolach2F4queO;nt4;un36A;nne30Z;gaitQhurric1B9pPreO;ap0;ant0O9;รกn;baPki8lO;aK5om0C0;sk4;bur2K4ch1D0dVii Rka6ly13Tof theQthPvorO;de24E;at2IG; b1T3;ofO; rO;omO;anA;an0L2weJ;ation Xegie mello0Z6ivQotO; cOa32Q;yc7;alRorO;a,ousO; pO;la311;! O;cruisOr3F4;e 34G;reO;voO;lu3CS;ePiO;l3GOne persi33B;loQn eO;jo25AlO;ectG; aO;nt009; 09a 07es puigde06i05oQy O;aquiOchaik4rae jeps5sim2;li2OE; 00s O;cXghoWhaTlehd0maRsPtO;ev39O;anOl2UP;ta325;c2BLrO;รญn;nkPthO;coJ; gonzรกl39H;sn;asta17KoO;nd3CW;ancelOgambi2O0;ot230;s7to's1DK;mo304;b2J7guOju3CG;gi2NV;"alfalfa" sw2GNbenVfriedrich g28Mgustaf emil mannerUica0V6ju8lSmccu2YOnass2Y5pRrQsPtanzl0von clause2IKwOxvi gust2I2;e0DMi2JG;ag1chmi37E;e1I6o38Y;er1M1;innZ3uO;mb30V;he2U2;jKEz;bbeanQce vOna l2UA;an hO;out5;! O;n0DVs3A0;iCoUL;less whisp0s2R9y O;lo26Qmu015; Wam2V5captor0S2iPsO; against huma12F; b,ac ar21FffTnalPoO;pulmonary resusci1W5vascular2WZ; Oi39E;dPrichel1Q9vO;irtu3;ir285;! b0I0;co3FUga3FJsecurity 1IN;assOiG8;on6;i6oOuret3C5;hyd1WTnPxO;yl7Z;! RaPiO;c3CUfe06Y;ra,tedO; w24L;c00dioxideYfVmonoxiSnPsO;teI;anoPeO;utra0WE;tu1H4;deO;! pO;oi35I;iPootpO;ri2YS;be3D3;! in earth's atmoO;sp1MZ;apture andOyc7; sto1AE; Rbin2WWcaPvaOwK;gg2D4;lOs;!la;dOg36L;eOu6;leving6;cEPseat head20C; 0E4acit0Ec2TZe0Age1I7i02o01p00riZsWtPu22PyO;baG;ain Oc23Eure of the dutch fleet at den he0WS;a1NDbSdisiRho35Fne1QItO;omOsuba2W5; mO;ooB;llu30G;eefhJBri1MQ;aic4icumO;! anO;nu2Z6;!corn2KJ;adocAucci2LU;col35OeiGre1RQ;llary 2PPtO;alPol O;hill occupied pro1W9r1BA; Oi34R;go3E9o6punishmentO;! O;by2MVinO; t5J; Pr,tO;ian0PO;breto12Fc3E3hOof good ho327to3B3verde17V;att1E6o33E;an3D7or; c2LTimhรญnO; kelleh0; 1J't 1Ga0Ub0Tc0Qd0Fe0Di0Cn01oVtOva;erburyRinfl3DUonO;e3C8s of O;swO;itz26T;! O;caO;thedrM;laSn O;eQof sherlockO; hoO;lm3;f lens1GGos; o2QF;abiVeTiOon,y edge dete304;balPng stock rO;ouH; Oi33Y;corp3BSholocO;au3A3;d 9LsO;! f052;di3CKsO;! sO;ati2C2;d2Z7s; cor2B2lo O;รกlv2D;ace ViSleRyO;! O;crushOpalm229; sa29T;!m3CZ;ce Ode;beO;rg5;bushPcameron buBoOpa03T;weN;neC;eOรบn;lOr; c2NF;erG;an07dRl+,rO;a Py O;i2ANwhaAW;ba2C8;aZian O;armXb0SQdo0SKenglishVfQindian residential schooPnationalQKpOtiB;acificQJre0J8;l 1DY;oPrO;en30T;o16Drces maritimeO; comO;ma38G;! language proficiency indexO; p1A2;ed0OVy;! Oโ€“united states bo1PW;gPmen's national O;ice hockey 262s0SG;oo3AK;! O;smith-njig2TG;help falling Otake my eyes off23K;inO; lo318;bDyO;am1ou ever forgive m165; 0Pb0Ee01iUorGpO; RaQbell sOeonato brasileiro sรฉrie07Hh38Iing worldF8;co32ZoO;up 22H;nAri;dOlaz335;av397;lOno de santia1ZY;a RlO;a Pe O;cott4kost28Ppa1DTraz2XAsaint-saรซN;b2L4luddi1YEp1N2;aRKcab32XmO;e92or2AQ;lXo WrO;aUoO;n Oon15C;boy3APcQdiaz34WmoPno11AwO;inklevo3AD;na1NF;roO;we;! obscuG;appear1PS;! Plia sinOot;ensF;ca39Mt1XW;odiaTriO;anQdgeO;! Os7H;analy1DSfi30B;! O;explo2WZ;!nO; Qโ€“vO;ietnamO;ese24O;c1IRge12F;neO;wt2;a12c0Re0Mgary0Ki04lWor38Htr2IEumVvO;aLinO; Oi31B;and hoRcQhaPj335kO;att9le4;rrF;ool2SH;bb3; s0YA; Pan rydz,ig343um O;hudson-odJ3tu2HG;me Sof Othe mid1TG;du344juQtO;heO; n37E;ar339;if you get21Qk2W0; 02a2Y9b0c00forniaTgu39WpQstO;a fOhe1H7o tan1AF;lo336;e38AhateO;! O;of cรณrdo2RK;! O;co1MYdreamSgRhigh-speed 17Iinstitute of tQpolytechnic state university football team O;plane cO;ra31N;e0K6h0KA;old 2QH;in';he,o O;c2VLjaJ;ca128;! O;fl28Win2XL;b landQndar ofO; saO;in35J;ryO; j37M;iumRulO;atorPusO;! of vari32Y;! sp326;! O;cQhOo1X5;ydO;ro1X3;aOh1QT;rboO;naH;bOis,mity ja6;arz2rA;l00nWrVtO;lPrรญona bO;al391;inPynO; jeQD; fO;itO;zgera37R;n4Wo;! O;and PvelasO;qu31W;abI;ee spae246l20I; Of2UH;ch2KK;arOi2TO; R's1GPeanQi2s supO;erO;do38Q; s219;anQciPsO;al34K;ph0;d 38L;av0buLdysVe cuSillacPmi2TFuO;ceD;! elO;doO;ra2FC;nnO;inO;gh35D;haJ;ci3; c00aZba2QJernet sauviYinet of Sle Qo sanO; lO;uc38B;teO;le0R2;jRtO;he uO;nited O;k14Dst2V8;oe bO;id5;gn2;l,r34D;alO;lowK;reactive pro28Hs0IT;dRmQstandardO; lO;ibraL;aj34Gin34G;ata Oynamic memory al1LI;typ3; 0IO-0ILa06Sb06Gc06Dd06AeWSflixWRhW6iQRjQJlLVmLUnLRoECr4Js4Gt4Bu03ySรกnh mรฌ,รฉO;chamel J4la bartQrรฉnice marlo2W7zierO; cO;ur2WW;รณk; Vford dolph4juTron RtQung-chul h1zantiO;ne Oum;em2SWfZ1;ed1M1;ho77leftO;wi2VV; raveeO's;ndr1;dawn's early34Cthe grace ofO; theO; go2W7;b3Qc3Id37en34f2Lg2Ai21k1Xl1Em1Bn15oy14pr12r0Cs00tSzzO; PfeedO;! unsolv32I;aldr4lightO;ye9; i'm a cheerleUch cassidyTtPyrO;ic34K; pl048-numb-a-08AerOoc2X3;fly PmiOs stot2VHworth0E5;lk;ef0BWkEE;! and the sundanceS5;ad0;an,hYinessTpi264tPyO; philip2HFb285;a rhym3er O;doPke2YDwO;el2V8;ugl36T;! P-to-O;busi35O;i0W7j332mOpl373;a14LodelO;! canv36O; 1Y3i2DG;a0Ab3Meauc0QRg07j 04kina faso10Hl02m01nSrRsa,tOun2UJz2RE; Oon upon t1UP;bachara2UYkwo0DIl0JBreOwa34By1DW;ynolds2ZZ;a36Wi2O8โ€“hamilton duI; UaTham-on-s30Iing OlE;mRofOsun 30S; wO;asO;hi1T5;an,o08M; b1TYby;afterOno312; rea2K1;aK9es2EP; Oe292;iv3;alPkhO;ali20M; ar0WU;eOun2P2;r 2R8ss meO;redi2O1;kPri dO;eat0ML;um4;enorp22MoO;pi2;an1DF;desSgQk'd,ningsOty aur bab2WL; wO;ar1LF;al33Kie,o strayO; do32J;li22Ht2AYwe2T1;blePpyO; j2Y1;!b2XD;g03im18Rk00lO;! Xd2GBetQfPi2WNp2N7shit O;jo1AA;igh35Q; Pin boarOproof ve327;d 16W;cl024for my vQjOti35B;ouO;rnM;alO;en0O5;sOt1NN;ha316; mO;odO;ulD;arOur;iaOs;!n 2DK; missPayo Oka26NoDH;sa29Y;ilO;e 16F;ckVldO; Ring O;information mode2XGmO;ateO;riM;back better PdiO;vi1SD;a2G3pl1;! rCV;attiTsO; Ry O;maPsiO;egI;lo6;bun1ZQ;! O;aQchPveO;yr2;ir2;utomob0UN;fPord puO;ss0;alo Ter oRy O;sainte-Pthe vampire O;sl2JQ;mar31W;verO;fl320;bTsQwiO;lOng;d w30W;abr3oPprO;ingf1FS;ldi0;illRuffalo buffalo buffalo buffalo buffalo buffaloO; bO;ufO;fa2V9;!s;a vista Oos aMJ;socialO; cl00I; Xa0CRdOgerig9we03M;aVhSy O;eQhOri2S3;acOol2OD;ke2UR;bs5;aOi2U5;ho33Ns of bamO;iy1; b3A;g1Z1s2SX;hUkO; 1HZet2Z8inghamRminster fu2UHnelQwPy baO;rn3;he2P0;l 0W9; JXsO;hiB;a1OVenwald0JQ;bleOonic pl2EY; Qgum O;crO;isF;guppi3so33At2X5; g2KQdi1QJrRsO;! O;a2FOin the so2AMsiO;ngle2FO;fs;-t17QdOe sens32F;! licO;ens3;a7Ee5Ui2Eno,o0UuYyOรผno;anQce Oson ti2TW;dallas OhaCpapenb9Ly1A5;ho2H; Ob1QE;adams1VXb066cRdanie25VfQgre230lOQsO;i2LAtO;eve2V4;erL;a29NranO;stOH;ce 04g3nWsRtO;alisPe-forO;ceCQ;t 0UG;hless dc electricQselsO;! O;a2Q8spro0WJ; mO;ot2YY;ei,hi30Xo O;delboTfernaSgRkQma30BsamO;marO;ti29Q;ir2XC;aSHuimarรฃ3;nd3;nnI;a00bYca233dXedwards iWfVgrUhSjeJ8l2TVmcQspringstePwO;el2QGill1BR;en1V8;giClO;ar5;arEKorO;ns2X2;een28M;orsy2JW;viN;av1XCe2R8ic1AD;oOuJ;udRPxlei4V;lOr2QS;migh2VC; dad2KOad10c0Zd0Tke0Pmi6n0Jok06theZwO;nQser O;exOga31J;ten2NJ; QiO;anOng hi-p2GJ; mo2X4;be9dQmarmorated stink bYLrOsug9un1JA;at,ecluseO; sp1H8;waO;rf;l,rO; 1L6s O;griRof O;iPjO;esD;ta2LW;mm; lZe WingsTlynO;! PnO; pr30B;bPde0G3nO;e2WSine-0US;ecUKr2IU; iO;nstiO;tu2WJ;b03IdPhOla1NOmue2RYsh1BI;og1;'orsK;op2TO; Rch179ny3Iski be2MFtQze O;a2IXstarO; m1B;o2LXรซ 1S5;breOs2SD;akk0;back 02Vn O;arrow kPf7BwindowO;s 0IY;ill2XC;erickRieQy O;dOjeHM;al7; l2S7; crO;aw1QE;co2R4k lesn9;ba2WFcRsQwayO; tO;heatB;he2WK;astOh0RV; syOi8;ndi1ZX;an26c25d1Ue1Rg1Fn1Ds1AtO; 17a16b21Bish Xney speaWp27OtO; Tany PneyO; po1QV;da9TfuQhoPmu13No'gOsn2XU;ra2IZ;wa2XP;rl1;bOek2SYro1B8;ak0;rs1T1;a0Pc0Idarts0Fe0Cfilm instituHho01Fi08m05n02overseas00pYrWsUtherm0KOunPvO;irgin1XS;dergraduate degreePion of fascO;is2VH; cO;lassiO;fi1ZF;hortO;ha2VT;aj,oyO;al 1QZ;aOe25X;ss2NC; tO;erri2QM;ationalOoYS; p2SZiO;ty1K3;aPuO;se2K2;la273;nPsO;l3rae1IQ;diaOva2L4;!n ocean0FA;mpireOng29S;! mO;edM; orgaO;niO;sa2UL;olOui1IK;oPuO;mbA;nizationO; oO;f the amerO;ic2YS;cademy film 1OAirways252mericaSnd american keybo25DrmO;ed0BCyO;! oO;fficer rank insiO;gnA;!n tobO;ac2KS;in's g1IWnnA;mOsc0E3;ar2R3il2OM;ba6k2UTtolO;! O;beauf24Bold vic theatreNSstoolW1;e,g me the O;horiz2;adeYette lundy-p1MThSitte O;aQbard2YOmPnO;ie0M1;acr2;ub0;am youngStO; P's2FDbu2NLli6onO;! and ho2ND;meO;moL;! 0QZ;! comba0ED;! Pf enO;cou1UZ;la2CI;eshead revisFDgO;eOit m12Q; of no reVrt2t Owater associ2KY;cSfRjones's Qk2BYmoynPrO;eg1;ah1;ba2SWd1XQ;on2VT;hrO;ist2VC;tu2N2;k,s; Ona hildeb09I;austin0Ib0Ec0Bd07e06fl1YCgr05h03j01kZliYmUoTtyQwO;ilO;l173s2;l0reeO; hO;enL;'coEJr1K7;ay,cQichael bePuO;lr1KA;ndF;fa1ND;tt9V;eOilmea1KU;i2F8mp;ag1KSoO;h2PLn3;aOoy0;llisKrt2KA;az0ee6;no,ps1XK;'arcyQePoyle-O;mu2GY; pal2P7nne2QI; j1VY;l29MoO;nlExO; f2QB;aumgQen1Z6lOo1NA;eOo2C2;ss2S0;arU; g1ZR;a0Nc0Le0Hm5nXsenham's lineRKtOx2T1; Uman 2FZon082tO; Oe harHZon wood0AU;favBgRhun2QJkavanQl2ODrOso169;aOypi5;tn0;au2Q8;eIOoUW;easton0D7ha2WMmi1ZJwO;ei1WX; light03dSnan lee muHNtOรฉ97; QfordOon thwa1X8;! communityO; s1MM;ri1LBsp0Y7vena28N;aPon O;ur2TW; Tn O;c0M1ei2KKfrRgQhu2FVo'cPpOschaSW;en1RC;ar16A;le1TJ;as0;bleth1UHfri0B2l2NTsPvacO;ca2KA;o8t1SN; mO;acO;hineO; g2V8; o1YZdOze1N0;erOon on the XY; rO;ea2IE; bas2DTkinO; m1AK;d00kRstO;! O;ca2L3fO;etis0XB;-up of tVbe2H7coBfast149ing Sthrough starRupO; of yO;ugoslO;avA;sh2VT;bOthe w208w2GJ;ad,enjO;am4;he bea2F4;bTfStO;hOu0X6;-firsO;t O;seY6;ru2RJ;oa2SW;! 1Oc1Nd1Bhm16i12m0Zn0Bs06t04un02veXwUxton berri2MVy wya2M8zOโ€“ketIN;en SilOze2T4;! nQian O;jiu-jitsuOportugue2TGreM;! rank0WF;a1OSut;buC;lOn gp; sO;ta2SW; PhOly defMB;ea2UZ;gPnO;ew2TB;ir2SO; stro0ZWschO;we1QT; Oisla1TI;paJ;sOรญlA; Oica olerac2OL;iPknuO;ckl3;nstru24I; 1JIch08dO; new cherry fl06e03iYoOy nor215;lini1F4n O;burl1KUflVl2M5mSnRr265sOtee2FR;andersonPtO;alE;! 23Z;ov1QI;aPoO;re21P;rs1N2;o1HWy2CH; Qn O;c2K1eO;cho2S0;cOlo2J9rh0S0;arli7yrD;iPnburgO;! 29V;s 0MU;av2QI; david2IXeO;s ofO; s03Z; Opt2;cOst23M;oh5;l7nO;!fuJly,stPwas93โ€“computO;er0QH;em,or1VX;aRiPosO;!-2PK; On;sc0PA;!n; Uford city stadium 2OMley O;beMco164fQj1SGwO;al2KYhO;it1JE;ightingO; vO;eh1I5;aRbi2R0dour0PMfalQg19DhaCpOrenf2HJ;ai0TUiO;tt2MN;ch004;ll1;hio2ECk2PG;siQ6; 6Za6Nb5Aca jun59d51eing4Yfu2P4g4Uh4Oiling 4Nja4Mk4Il4Amb3Wn32o2Er1Ls0Yt0Tu0Kvi0Gw08xZyQzOรถtes vo2QI; scag2PVo theO; clo2Q3; Sapati sriHUd hQle1DPs over fPz O;ii2R2n the 2T0;lo1GO;olbO;ro2JO;ba2OYeras2O3ge5EmQscoutO;s O;of11I;eets2RB; U-Rer17Qing O;career of mOdK;anny pOuhammad04X;acqui20J;drawingOoffice bo1J1; charaO;ct0;jelly10Yoffice moOpl2SW;jo; and a31en T3ie kUlQserO;!'sO; fuL; Oi8;chaOga2SA;llenge246mpionshiO;p 0UT;ni2S1;d2EAne spongiformO; encephalO;opO;at2LQ;di1H2gainvilleVnTrOvet 0GL;bon PgeoOn23V;is2PR;restoration in PwhiO;skE;fr16I;ty O;hu1OY; 0GDa;a1N3f2CLsTGtPuliO;num tox4sm;le Oom-tier character tomo0AA;roO;ck2O4;e08hin1LInia04on,p21Is02tonO;! O;brZcXdyWlVmaRred s1SXsOtea2LAun19I;co2IStO;ranO;gl0;rathonOsFF; bO;omO;bi8;egM;na0M9;el0O3oO;l191nsulting290;ahm4uiN; lBOa O;no1Q6; Pks,n O;ge0ISla1ZSw9;and herzegoO;vi2CL; c19Rโ€“einstein condenO;saH;a0Dde09ei-1UKg,i02nYoUschtSussia PzO;oi;dortPmรถnchengladO;ba2FF;mu2N4;! O;be0DR;bud27An,ughs ofO; nO;ew yO;ork 0YC; Oeo;to PwithO; horN;d2OEr2Q3;c2O4s O;iii of buSj2J3kQpastePsOyelts4;hcherbi2C1pass1PD;rn1MV;arOodj1DA;lo28O;lg1CV;a1F4rO; Oline0R8;coOgateway27H;ll2O3; PcKtOx;! subsequent movie2LW;boG;boo s0Ag07kUlean Smer esi2MStO;i8syO; cO;olO;liN;alOd2EBsatisfiabilityA2;gebG; QerPsO;ma2Q9; priN5;dWof O;bUdSeQg2FBisai2G4j0EKk11FlevitPmo0YIreve16PtO;he1H4;icD;no2EBxO;odD;aOeutero5E;niI;oba 2O;eposi2OY;alPiO;e n0I8;oo0EV;te1SN; 0Ga0Cd08e00gUham carteTnQoPs2E9uOzibud28N;s 1H2;!bo;!ie O;and cly1D5bed1T8hu298lOrai2GNt1UQwr2MI;ang1FJ;r 1GX; jooSbongQcloudO; aO;ttaJ; mO;arc2H3;n-1KE; PyO; k2ET;maStO;hugs-n-hPomaO;hawk;arO;mo1KB;rr2MX; Qage positions andO; mO;etho2DV;giRQ;iBnOr19P;noOza; cO;rim1GA;iv0jovi1I1s0CJ;aVeUing of O;dresden PtO;ok1UU;inO; wO;orld wO;ar 2KN;!rm1;rdier globalRyO;! sO;toO;ck04E; eO;xp1ZD; b2NQivAly1V5oQshPtzmann Oza1VXรฉ2CP;b29Cco01CdGE;evi2EC; yRgnO;a,eO;se O;sau2NI;eu8; ch1BUePo h1T1u no O;pi2AD;em woodOh;bi6;ck hors14Ana novak2OI;fr1YUp1OE;emiaOr18B;!nO; Oi2EJ;clKOgPrO;hapso26X;ro2D4;danovPeOotรก;ym1; aO;ffa2K0;! O;commercial airpl0H1dreamliO;ft0;hiUyO; PbuO;il21E;dysmorphic0OFfat percen1PHhPmaO;ss2MZ;e296oO;rr2K4;dh2FPsatt1MC;io2LH; 0B's bur2G4a09bRcatPslO;ei2H4;! goldthO;wa2JP;i02y O;b00cYdXfVgeUhop2BHjoe TkotiJlSmQro2EWsPvi0YJwoO;maJ;an2C3ea7hmur2LB;cfeOoynih1;rr4;as28Ree;lo8;or259;arOis1NTlK;reC;ar4;annava7hO;ar1JE;e2IVon3ro2K0; kristinaPeO; ge1VO; bQA; On mar1RA;fe2DW;b08c07d05ei1N9f04g02h00ig0ka6lZmVnew2FOodenkirk2G7ro2LPsQthPue01SwO;ei1N8i0RT;e bui04U;aReOtoo1X6;g0mpO;le O;ta1M8;g2IWpp;arleyQorOura0X8;lEtO;im0;! and the wailer1Z4;az9ea0HQ;earts abisho2LYoO;pe,s0S6;eOu0XL;ld1M1;os2KP;env0o7ylO;an1FF;hap1J9ou188ra6;aPiO;sw2M5tme2HZ;lOrk0;ab1;!rdOz and ja1PQ; TingBEsPwalO;k 27B; oO;f O;caO;na2JZ;ga2LSof O;control for crickeQdirO;ecO;to2JT;t 1TR;bur0S0dOj1NT;aOer1IRid2FN;ll2LO;p parib2LNsfO; rO;ailwK;aa,p 032w;a27e23i1Vo0RuOythe da2O; 0O-rKeQmhousPrredO; l28M;e UM; 01's c22V-YbeXgrass16KpVsTtoothO;! O;lowPspecial intereO;st22Y; enO;er1UC;! 24LtO;ac2B7;oiOri24W;nt0Y8;a2IWrL;collar woC2eyed Pfooted boo2G9ringed ocO;topD;so0J9;ar06b02ch01exorci2HSfug284iYjaXloJmVoUp275ridge TsSwhalePรถysterO; cu07T;! O;challO;en233;c2Rky0DH;mo0I9;rig4;an22FoO;untain03Ev2IG;s11Ky;s the warmestPvy O;ca2DS; colo211;ee2J2;aPeO;et7;l2IInO;is0SB;chi29Q;del bOhu246;arr1IO;c0Lemfon1KYg,nd0IoOw223;d00mQns towerOp; dO;ef0IY; V's taTberg RsburyO;! O;publisO;hi8;billionairOcommod1Q6us aggregate bond2JM;es2JL;xoO;no0FF;fi0QHinO;to1BK; QbF7houndOs,โ€“brain b1PI;! O;ga8;alcohol0N6dZe0PGin bloodUJlYmeri0S8of WpVrTsRtypePveO;ssI;! distribuO;tion X5;iOugar sex mag1F0;mp7;edO; s1IH;las2BZr02V;eOzeD;lv3;ibI;iaO;mo2FP;e onPiO;e 2BJ; bl02J; p2D3kO; QbusterOchain23L; lO;lc;cipher mode of Om1ZK;ope2EX;nSpRtzkPzzardO;! 1T8;riO;eg;pi;dOg 1VRk2FJ; Oing l0BN;fRTmen and an1U4;aQnOtchley 0ZD;d0heim O;pa22C;ch,k2HD;c05de02i01ke Wnche TstSxploi0ZCzO;bl27Aing saO;dPmO;ur27I;dl3; furna2I3;deverPgO;ard4;ea17D;bRe1PBgQjeVlPsO;he1F5;ive23D;ri027;eCor22E;re0Qse pa0YH; Oe;ii,ruO;nn0; chy23VkO; 05-YaXbeScRfa2HPjaJkklQlPpOroJs1RBโ€“scholes12Q;ink1BMo2HQ;e0JGig2FE;an1M7;ur1DW;a2G2rryO;! O;lOos;imO;it2DG;dd0;and-red broadTboOeyed p2C6i29P;dyQxO; tO;es2IB; rO;ad0LG;biC;a0Ob0Kc0Hd0Eeyed pe2HYfo13Kh0Dl08m05narci04or03pZrockWsRtQvOw0EX;eil Oul24P;br147;ea,ie;abbaRcPea,to6waO;n 007;reen O;of0E9;th1AX; sO;hoO;ot0;aPeOud1VE;op7pp0;int2EDntherO;! p2B5; w0QF;ssD;aPetMiO;di,rr2E1;fi16Rg2HUm1YRrk2DQ;aOives ma0IF;beOgo2;l O;soO;cie2AW;ebrew israel1I3o7;ahlAeO;a1Z7sert O;on24C;at,lPoO;me203u1PW;ov0;et2AOiPoOu161;dy,lt,x;llionaO;ir3;d2DUnd O;taN;arne strouUรถrOรธrnstjerne bjรธr29B;k,n O;andrรฉs5bo1ZJirQuO;lvO;aeD;onO;si14B;str1YC;a4Xb4Nc4Kd4Jg3Rh9j3Okini3Ml1On19o0Sp0Mr0Gs04tQzO; Oaardva2CK;mark2E9s197; 0XVcXdeWlVmap2FZtRwO;a1N8ise operationO;!sO; in c;erPorrentO;! traVG; sweet sympOs;ho1BK;oVDy;fe18W;hQoO;in SJnO;ne1RL;es br12XuH;exualXhVmPpectr2FKsagO;os1E5;aOu1Y5;ck biyQrck-O;class bO;attle1S6;omO;bo;k1D0opO;! of 1ZJ; Oi29J;fl1L5; taw1SRch,dSefring2DDkin b1L4minghamRthOya25I; c1LLdOs18F;ayO; pJH;! DV; of prEs aren't M7;aQin raw21Bolar O;d0GIjunctionO; transi0OU;rtiteOsha ba11R; gO;raIX;ch03di02infor0C5lZmVnte23WsPtOwaB;ePLin;!afetyRhockO;! iO;nfiO;niH; lO;evI;a2E8eO;!dO;icalO; e1RR;ogOumine1U8;icalOy; immortaW9;esIv0WX;emi06B; lade01aVdiSg crRomial Otu1BP;coOd70nomencla21SthEG;efficO;ie1YN;os2A2; iPng of iO;sa0D6;rw4;n2E2ryO; P-coded dO;ecimM;co12Che0E4nu28XsOtr26I;earch Ot9;a9Ltr26G;n 163;b1MId1Ie,i1FlOtmore esX9; 0Pboard chOUi0Iy O;b0Ec09d05eZgYherXid2DVjoWmSo092pre1C6rayQthePwOza6;e2BAiWO; k2BY; cO;yrD;agPiO;ll11O;nuO;ss5;el17I;ri112;ibboNr72;icSlliotO;! tO;heO; mO;usVX;hn0;ePoO;nov1;e O;wi0NJ;a1EYoQrO;ud1VLyO;stM;nnOrg1;ol1YJ;ea6ob thorO;ntO;on277;e PonO;aiB;eilish16VhK7jPlOp0VQ;ou2BE;eanPoe aO;rm1A8;! 1YR;ac0Bb07c02d00eZfi1W4gXhWken0MMlaimbe0mTnSpPr4Bsk19CwO;at1S1itJVym1;aPo21OulO;lm1;rc0OUxt2;e1GJig26Yye;aPe27BuO;my,rrK;cy,h0;ad0ic239wa8;at3oO;ld1VX;vaN;a1YKe blO;as1BD;a0J4li0ODoOu1K5;n0ZMsbyOwh0;! sexual assaultO; cO;as3;aQeliPix284loJrOu263;ys2;chiJ;ilE;km1;bi23Mnear iPrO;ub4;nterpo0TH;erberg mPungsrO;om1;ee2CY;! aO;toC;ec288ouO; phO;illi1N2; S-boxRfo2CWgOil; Pest ball of tO;wi6;bo2BE; s0YC;b05c04d03ey3fZhit0XJlYmac1IFn29DoXpharmaUsTtOw;eRime Qrouble in littleO; cO;hi1XP;adole1RCru23U;ch,n0W7;e1h2A2ur,wo7; cO;onspiracO;y UJ; no0SH;!ie,o21B;iQlPour accounting fir2AAreO;edA;op1I7;sh,ve personality trai27Q;a2CCiG8;at,ity grOG;aRen,ottomO; mO;asO;sacB;ng,sh1NH;et,s to college bowl0OT;e1M8hon fPycleO;! t155;ri2A3; forWiUlO;eRiO;cal Oog254;apocr09LcOma1RC;an2;! bO;eYAlaJ; a3Wmb0AUsara assaubaO;ye1AA;tu1WS;fGnca PsO; of an estim1V3โ€“variance tradeo1TG;bePjaO;gg0;la27H;aZeeXoUp,uO;miQsOt1;hanO; kYO; pednPbol adulyadO;ej;ek9;oOpal20U;l bhulaiy0AJtO; po25L;mOshma parv27V;ante vaz1YIla nay176;d bhab28KgSrO;atOti ai036; Oanaty27Riya janata24Fpe;ane neOrat1W7;nu;aPyasO;hr22I;t24Dvad O;gi2B2; mo1CW;a82b7Zc7Rd7Me77f6Zg6Uh6Oi6Dl56n2Uowu1FVr19s14t02ulah bon1YJverlVwitch25VyO;bladeTonO;cรฉ13RdO; Oer;good and Po0O6the bounO;daL;ev1ND;! burst quadd1E1;eyTy O;cl8Pd'Rhills Oj22S;c1HXhO;ighO; scPU;ange21M; c1QP;a0Lelgeu28Mfa26Fh0Co o0Bsy d0AtSwO;ay,een tO;he butPwo ferns with zach gaO;lifian0JY;toN;any03eWie 1M9y O;bScroP2d1DBfo27SgQwhiteO;! f23H's off their rO;oc0SE;iOr25M;lp4;o1HHrO;a1TKoO;de0FL; SrO; Oidge's law of headl1WX;businessOcall sa07YwatchKC; buO;re1NW;davisOmi140;! 64; huO;gh3;ra1B6;'ro13U; Uany RePlO;eh11K;nny fraZNsda O;game020sof0UE;ha15Tjoy O;leO;nz;beh27CharOp01E;m2t; O-methylamino-l-ala030;bPdOfu1U5is1X6;ecKis18;loO7;lan schoolQsPt bO;uy;a1ZBel 1TZ; sO;ie1R7;ber17et29Eg14ing13k0Wl0Nmuda0KnZry gor1S0sXtPylO;li1TR; Tie caSolt brRrand O;rPtraoO;rรฉ;us16M;ec25U;rvI;con0M8kreO;is19I;eOh1DO;rk0;!aUeseTie QoulliO; O's0AE;d0Mnu22T;eccles117maPsOtaYX;an0KX;c,do1QN; mountain1J9;dette ZrdO; Qine evaPo O;bertol17Ms179;ris1Q4;arnUbressl1XDcRhQkPl205moO;ntgomeL;ay,er13H;err1QLiCop0E3;oPribO;biN;rn0Z1;auUZ;pe0FXsoubiO;roD;! tO;riaO;ng7;anti H6inO;! O;bTco0RXiOwaC;nternationalO; fO;ilmO; festO;ivM;loc0SDrandenburg1VL;eley Plee college of0SWshireO;! ha0C4;balconyRsoftwareO; dO;isO;tribu238; collap260; stYFia;amotPenOha4maVY;!-belsenNZ; or1GD; l1HTs; 14a10d0Xe0Lford0S5gal0Gi0Aj00nRoit mandelbr27StleyQzO;e6odiazepineO;! withdrawal1QX;! continental gt;iTy O;aQblPgOhiC;oo130;an1TF;ndO;er13P;eOngton0OQ; thO;omV2;amOi ma0X5;in QรญnO; arellano fO;รฉl1N7;bSdisrCXf00VgrRhaQmPnO;etanyaE9;en1PWillepi225;rr12E;ah23R;ra1XX;ciRgno aquinoQk afo08On,toO; musO;so02; i22P;o del O;to1UX;! QiO; Os;al02Fla1F3;c1S6pOt06I;resid0E2; gessYathUdQil dariu1Y1l0V3ttonO; fO;ormu25Z;etta carQict O;ar142cOwo8xQ9;umberb03B;li1VZ; the pO;lanet oO;f the O;ap3;er22J; it like bOy and the inkKQ;ecO;kh230;drQy venu26GzirO; bhO;ut1NQ;yl;a0Gb0Cc09f07g04h03kingsl02mZnYpXrTsOwhiKW;chw1YFhRiPtO;e4ill1O3;lbOm10B;er1O5;api1U3;eQi0B7oethlisO;beO;rg0;il1QE;la1WS;evF;cPendelOi1WO;soKF;kenz238;ey1YZ;arp0;azzaGerPibOurion1TA;ba237;ra236;alOel115ol1U9;co6;a1JWhOro24A;aOil0W5;pl4;ernan16VrO;eretonOoDI;! O;dรญG6;ffleOskr5;ck1YK; po13Za0Qfa21Ug0Ji0GlXow deckWphVsniUtPuga Oรฉn cu0FI;wha7; and roadRrรกn-leyvaO; oO;rgaO;ni7T; initia1L2;ckI;eg21H;! mediterrane1; 05's 03aUe TmanO; VBโ€“fordO; aO;lgoO;ritO;hm;delp11Dkn15Vs04Iรฉpoq1SZ; RmyQtO;or m1WUrix lesO;tr1DG; y0BV;ci1CEhQpo7HraPthO;or6;msE;ad21VeathO;coH;pOth3T;al0QD;h1U9la093pe8L;al,nda cOsa1DMze;arO;lis7;iPraO;de,vA;an OumY0;cQfirst divisionPsO;heJY; a;on0S9; lugo1UPlPrusO;!ia0M3; muO;hamm1ZR;jingVnOrY1; Sg O;john malPtheO; ricard1VKre;koO;vi1S5;spO;or1ZG;! O;capital 1RCsO;ubwK;aPeO;mo1LL;n22Sti prinUGviorO;al Oi1U2;eOsi134;conoY9;gOinU;ars banQinO;',g theO; ques1YY;qu1ZN;a1OOoreO; PigO;ne219;mRsunQtPwe 0RFyour O;ey3;ri1C6;ri21Js1ZG;idn202;! 00chWf TlzebSrQtO;leOro23E;!jui229;! hall puOโ€“lambert0NQ;ts1RC;ub;stroga092wO;elO;li0PM;!craft O;bonPkOsuper kO;ing1YY;an143;and puppyc1OCgeOm20C;es0VV; Pe,iveBknobs and broomstOou4;ic1SL;bPsiO;ze;ug;ause this is my first 228hdel 0KJkO;! Ry O;g,haC4jPlO;yn1QT;ohn100;bPweO;at8P;en14O;e Oop;bueCneuwOrex0R0;ir1K9; 0Och20Kg7nie 0Lr0Est09tZuPvO;er,is and butt-1XZ; TfortRty andPx-artO;s U3; the bO;ea1YT; sO;ca7;bPfO;ly1KA;id5riO;dg3; Ules for Tn0X1rix Os0L;oOpo02W;f tO;he nO;ethO;erl0ZS;sa7;gPit,sO;ab0;ene1X7; Ra1ZMiPs of the southernO; wi206;e O;bo0U5;b0P4of gรฉvaud1; QdO;!more inflexO;ib7;br188gQin the big blue1ZQmccrPsO;tearN;eaL;ryl1Z8;baPfeO;lds11R;bi3;aObenader1XI;rth1HI; 06Oo worldOsm; dO;art1D3;gOryWUs national championship 1L7; vO;ac0OZ;cRkO; eO;lectO;ro07R;! O;fTi1G9ne1RQo6sStRworldO; sO;erO;vi1ZZ;hr1SHwo;po20Utu1SE;il1YV;'athisBEal,bB1c9Zd9Ne9HffiP1g9Eh9Ai96j91k8Tl7Wm7Un6Qp6Nr4Gs3Ot08u07v0MYyPzO; luhr1IWoo15J; 01eTlor PonetOwXJ;!ta;beaQuniversityO;! sexual assaulO;t 1US;rs132;r,sOux tapeRN;' Sian O;i0KBn073pPsO;tatisWZ;robaO;biHE;thO;eor0SA;city D0le11WoO;f OvM;bengMpigsO; inva1M1;douin10GhaDxiH; 31a2Xch 2Tgi2Shs2Rm2ItO;a0F2leO; Vbo1VQcTfieldSsO; of QhipOtar galac02N;! pO;otemk4;khalkhin g1Z6lexington and con04Rnarv0V1the ison1OE; v;ruO;is0;angel ali205hymn of the2OofQroyalPtO;end07Ahrough the hea78;e 1JV; Pf sO;am9;a1Yb1Qc1Hd1Ff1Cg1Bh17i13jut1SOk10l0Tm0Nn0Loki0Kp0Hrorke's dri048s07tQuh1F9vPwatO;erl12B;erd1YXiBF;ara13IheRippecan0M8ou1XKrPsuO;shi1RR;afaOe0AQ;lg9; Ormopyl1LG;aVbUcTfalkland0XEhydasp3little big1OSphilippine1DRrQsOteutoburg 0KZ;anta cruz0XDchOom1ZA;el15T;iverO; pO;laH;atalaunian plWNho17oral1DL;oy6ul1HD;la0B2ssunpinkPtO;lant1ZL; cO;re0W5;aVekY3hTtaPuiO;ya8;lPmford O;br1GT;inO;gr1UR;anOil1F0;gh1NH;ip1lOragar1MFvo NA;amF;asschendae7elePla1VZolta0XNrincO;et2;liu;na12O;ew orlO;eaN;aRiQoO;nte casOsc1WF;si162;dwK;da8nzike1YOraO;th2;eSoO;ngeQsO; angO;el3;wa1XW;iOp1G0yte gu13K;pz0UF;aPhe saOorega2urXF;nh;de1PRm0ASsserine 0P4;a dra8sandlQwO;o O;ji1QD;wa1JH;aQoOรผrtgen 0JN;ngO; ko8;st1US;augame1XIettysF1run0VS;ort sumt0rO;an1X5ederiO;cksEY;ien bien p56riniumorOunki1TS; r1SO;aThQoronIrPullO;od5;eHรฉ05B;ancellorsv0SQoO;sin reserO;vo1TV;nn1JNpOstle iYO;orO;et1FA;aUe83lair SoQriPunker O;hiC;sba6ta4;ro0D6sworthO; f096;moO;un05M;dr,nnockEO;cRgincQl06PnPp bVMusterO;li1PT;tiet1U6z0VH;ou1XE;ti1HZ;anPoO;bi7;! O;beSfQi1SLrO;etO;urN;orO;ev0;giNyo1T2;he1EA;rl;fi7nO;ormaO;liO;za1SE; c0FCan deathPvianO; r0L2; mO;ar1L2;mas1B6out of O;heC; ruFJal0De08f,h06iUketballTma1W5que80sQtO;et,iO; vaman shen0K6l7; Oo2;guOre0PY;it9;! p0FR;c VlO;! OiVJ;bSiRjoPof caesG4rathO;bo6;seO;ph;i,wan0XR;ro1TA;accessQfighter maneuPinstin17JreproducO;tion 0UH;ve1U5; authenti0VV;arOkorto17C; al-ass1RV; rateRbaClO;! O;i1RYpO;robl0O0; falla03H; Ot;ganY0metabolic 0D5; 1Ra1Mb11c0Zd0Yen0Vi0Tkhad ab1JQlEn0Mo0FrWtPuch spino0X6yO;ce0SSon; SholomewOon fi0VE; tO;heO; aO;po0KQ;e127sO;imJKta1OP;a04ele03i02on01yO; Omor0MY;bYc0AgXhuWjVkeo07JlTmanil1TCpeSsPvOw04F;an dy0X3;an07TeMonnO;enO;fe1U0;pp0;eOy0AN;vi1NR;en013;mph1MH;i056oldw0KG;on1K2; hi0RM;er transf9Pst0;ye;cu1T6nquO;il1UM;nRquePtrO;au1N9;! O;m0G4p12J;! Oet;cOfar016mor11Psame1IT;orb4; oTaSey Qum O;efO;fe165;mi1LTsO;ti1N6;c7rd0CA;wl;! wOto6;ei1TK;akedOts18Y; laO;di3;! c0C4;eOla0N4o0I3;lo1FU; and star go to vista del07aTec1IRiPra streiOu1SI;sa1QI; be05Me fQturateO;! oO;verdo1SQ;err0RI;d1M0rO;a Oi1y 09A;bWcorcVed5goUhTlu1FLnSorb0PQpaRsPwO;al01YinOY;inOtanwyJ;atG;lv4;iv5;a7ershEu0WJ;rd2;or1;aProcOu1LI;co1KP;ch,in; m9;cQgPngays of quezoO;n 01B;oo1TC;k oO;ba1LZ;and bat mitzv1JTkokhbaPrefO;ae1KG; revoGG;hPtisO;m,ts;om1PW; ki-1O2ana0Pco 0Nd0Ig05ished from the hero94jo04kQsh1LBtu 8Wy1zaiO; cO;har1BN; Ving 11GnoteUruptcyOsy;! of lehO;maO;n O;brO;otO;he1RB;!s of the pound0L6;for international settl1GPhRof O;a01Ybaro1RAe198mO;ontO;reM;olO;idK;!-kazoo1QQ; XaWk1JUladeshO;! O;liberaTnRpO;reO;miO;er14L;atO;ional c95;tion0MK;loBr0I6;br1KIsiO;-hyO;uk; on theR-Oai namco 12McaYO;ma1Q3paO;ssO; fiYZ; r1RX;de o1GTsanO;ta0L3;! Ora1KQ;fi1K0r0GSwa1QH; margeGbO;i,oo; gangadhar til0OMan0Hd0Be0Afour09i08kan07l00moral 0HFochi13Nr135tQwinderO; sandO;hu;hazar gISiPoO;!-slav12K;c SmoreO;! O;orioles minor league plaPraO;veN;ye1Q5;dPsO;ea,t1F5;ry1RG; lTad,eSistQon PpointO; p5;d'1OK;a,ic missileO;! s0VE;rs,t;ight1I8; 0ALs;!an of ib0Q9; decla1NC;aric0PQncia0OJ; Sr,ur's gateRwin O;fa0J5iv ofO; jeO;rusal0JP;! i1NL;and bankruNDeX2; woPce of O;na1EApaym1MZ;nderw1Q2;eShtiarp17TiPla0QBuO;!gan battle braw4A; the grapPng poO;wd0;pl0;liHr O;is1KCmaO;yf030;aPirao masOrangi bhaija1;ta1GV; californiaPjO; au18V;! s17H;du,konur cosmQlO;eOiwick of guer003;e mETys irish c1NX;od1AM;aPra4ujan samaj1KKรกสผรญ fO;ai18Z;dur shah zaf9mO;as,ut;el,hd1MPpPuO;a,etHio;ip3; PkO;hy1Q4sang arts 0GA;doo1C4sO;u178ystemsO;! temO;pe1NE; Oen-wรผrttem19Bfi197g0mi01Voo;and cra174bUco0H9luck banging or loony Tmo1OTrQs14FtO;ea0RBimes at the elO; roya7;e0A9obot O;produO;ct1JS;po1FU;oys PuO;d19Dn0LK;foOii;r 1Q1;ar1E7c0Oh08kTon,tO;eriRriaO;!nO; cO;amI;a,op03G; TgaSpropaRsOtr1BA;la1HNtreet O;bo0IPrO;ook1NP;ga1LM;mm2;inUto O;bUsc5Hthe O;futureQoO;utO;baJ;! part O;ii0Z0; bO;laJ;chan pandEelorPmanโ€“turner O;overd0TA; P'Oette1J8;s BB;of Op1J7;ar1LBbUe124fRla1GHsQteO;chO;no0YJ;ci1N0;inO;e O;ar1L5;usinessO; aO;dminiO;st1KV;ar1AW;a Ye Xi y9o2ur,yO; T's daySlonOm0H3;! beQ's ash3iaO;!n capO;tiEI;rl4; oJ7;booYPdr1JWfacePke0H4sharkO;! d03I; ne0S4;ru16Z;vOya0LQ;an0LP;m,t irO;aq;flatPsOtr1GL;eg0YT; maj1LD;ceCm1MDposi14VvitaO;miN; 1IL-1IIa1GUb1C0c184d11Me10Kf0YKg0WLh0W4i0TNj0T4k0S2l0BPm041nNSoNJpL0qKQrDDs94t6Gu2Fv1Cw15x0Zy09zPลŸk laftan anlamO;az;a03eYiUoTraItecSurO; Qe O;drO;ag2;la6; 19Ss;r3v batta03I;mQthromyc4z O;ansa1KGshaversO;hi1; prem0P8u16D;alia bRrO;baijanOty;!iO; 0WQs;an1E6;dPtOzI;ho166; kashm1KCirachtO;a indi0D0;a06e03m00n Zo dosunYrWuSyO;appanum koshiy18TubidO; dO;ynO;as1HL;mQrve1M0shmanO; bharat yoOn khurra19A;ja199;i hama6Uu mura1M9;ton sO;en196;mu;ra1JU;an al-zawPeric laO;porH;ahi1JP;let zPshaO; c122;ur0; Tan hirsiShuas0CGko kawasu1FInO; mQePna pO;resO3; sakuG;uker0OB; a1E6;ca1EX;el tuanzeP8iPl UIoloO;tl;e infi9VomPs O;ba0MWpo0B0;! of chO;oi1MG;aQkwafinaO;! is nora from quO;eeN;ken1JWrds and decorations of the united states arO;medO; foO;rc3;a0Be06g1MZiZl 1B1n 0CIoVrO; microcontSil lavigRo O;lOvulc1;anO;ca1CQ;ne0G1;rolO;le1KT;gadro OidantNI;coO;nsO;ta16D; SaPcOgn2;en180ii;n0BItionO;! O;accidents and incid1I0;ar1ICkaO;pl1;nged sevenRrO;age human heighOro3;t O;by0V4;fo1KY; YlTnQstOt9;! antivO;irD; jPt-gardeO;! m07D;ogA;ancheQoO;kiteล›On;vaG;! sO;o06Vtudios13N;duveQgOm0XV;arO;dn0;rnK;b3Jckland3Id32g2QkDl2Pm shinrik0RZn2Lr2Gs14tOvergne-rhรดne-alp3;ar0KLe128h10ism0XoPumnO;! rees0; 0P-0Oba0Nc0Ld0Ienc0Hfell0GhotkEimmune130m02nomRpQregressive OstereoJM;integrated movingOm063; aveH7;ha0USsy;iVous O;administration of north and eastScommunities Pregion of bougaiO;nv0GO;ofO; sO;pa4; sO;yrA;c nO;ervouO;s MW;atSoO;bilePtiveO;! industry0TB;! dO;acA;a 3Ned tellTiOon;c Oon;differeQtO;ransO;mis173;ntOK;erO; mO;ac0HR;at0J8;od0;eskOidac0T7;! O;ma0SQrev1H9;ad,la1A3oOraSG;rre01J;hn;tu6;cRrO;aPickO;sh19P;ci8;liO;ck0;! O;spO;ectr15B;entic brands124oriO;tarO;ia19L;chwitz0WtO;in0Ron matthe1BBrO;al02iaVoO;-Sa0UMnesiO;an O;l0UNpO;eoO;pl3;prussiO;an0DX;! 0DX-hSn O;em15Gfootball bundesQpeoplePscO;ho1JE;'s1DN;li0GU;unO;gaL;asAiaPoO;pithecD;! 04n O;arF6b02caZdVe0UIfDTgUlabor1DGop5rulTsO;ecuritiesQhePuO;rviv1GF;phe1HJ; exO;ch0SM;es0MC;rand pr0ZW;ePoO;ll9;fenO;ceFU;pitalOttle0UA; tO;erri1IN;roadcasting020;dKnational Oz0M5;cPsO;occer 0D9;rickeO;t 0D7; Osh1H4โ€“bergstrom 16Z;aPbu089powersOsto0A3;! in gold1DE;bra1HF; concentraO;tion O;caP4;angzRePBoO;cPraO;! tea0PP;hs;eb;g san suu kQjanuePt O;jemi1B6mK; eNZ;yi;d lang sy6iสปi craval0DX;mented rXsWustO; Ue Rine of hPo pinoO;ch1F3;ipO;po;cPrO;od4;omH;am3von mackeVC;bu11A;eaO;li1C5;iWrO;aUeO; lSy O;hPmeOtaut09X;ado19A;epO;bu17Q;or05W; mcY7;! Te muLVoOt; PsO;la17E;fiO;leO; form13Q;quatt16Ctt;! a15V;reyPurO;n AW; Pโ€“maturiO;n KF;anderson-em0CCpla0J9; 28a23e1AQh1Pif a16Nl15mospher0Yo0Kp 0Jr0Csumi tane0BtPx,ypO;icM;acVeTiPraction to transgendO;er 0O6;cOla;a prison PuO;s 0Y6;ri1I1;mpted assassination of ronald reOntion deficit hyperactiviIG;ag1;hmenYkO; Qing midfO;ieO;ld0;hSoO;f the dead1FKn O;mers-el-kรฉb1DNpearl hPrichard nixon's motorca051tO;it1;arb1DZ;elicoO;pt0;t O;thO;eoL;za0ZQ;angi Bial fibrilXVoO;cities in the congo fQpO;a belladOi6;on12H;reeO; sO;taH;c0YNto0XC;mPrvastO;at4;! heartYic SoQwaffen O;diO;vi12S;xeO;ti6;bQc0YPkiPnu1AYorbO;itM;tt5;lPombings of hiroshima and nagaO;sa0Z6;on048; mo12D;eRic O;prO;esO;suB;! O;ofO; e0QL;aPus,รฉticoO; madr1DS;ntQsO; Osi1;en0Q8moDNshrugg1BIv;aUiO;c Os;coaRoAOpuQrD8slaveO; tO;ra03Q;ff4;st000;! O;br0KTfalcoNhTmOunited 0J7;etrO;opO;olitaO;n O;ar19W;aw15T;anasius 00eTiSletQulyaO; raO;vi;e's Oic bilb0NM;fo1G2;na 8Xr1;i167nOrosV2;a karkSianOs13A; dO;emO;ocO;raN3;anF;of2J;camaQl bihari vPriOxA;! 1C5;ajpay175; dO;ese1FH;si0UOthe mountainsO; of mO;ad1E5; 3T-salamu alayk0ZZa3Obest16Yc3Id3He3Cg3Bh2Mi2Cking2Am26nawi mangku25obo 24p1Ws0PtUuQyO;lum8ImptomO;at1FL;nci8YraOs;!'sO; wO;ra0X2;a0Ger0Ch179igmaTTo07rPuO;ri1EZte-0IF;a02id li00oO; b02KbYlTnQpOworld festival crowd c0VD;hyO;siLT;a8ZomO;icOy;alZO;aGNogO;ical sPyO;! and the class124;i0U2yO;mbo1CL;io0NN;ndO;gr5;lOzene03G; pO;roj06Y;lRn martinOr 05W;! O;i08YvaO;lkyr1C1;fo;aCJiQoidO;! O;be12ci17Wimpact avoidSRmi14N;sk,x;rOti6;o0W7te;aZeWisteVociatQumption of PyriaO;!n 0KI;maL;ePion O;f0GPof tennis professio71; PdO; p0OW;de116;d sui5H;mbly 0MEtO;! BQto cO;or0VE;m,ssinQtaOultF6; sO;hak0U4;'s creed09ationO;! O;cla06of O;a01indiraZjWkim joVmahatmaZqasSreinhaQwilliam mcO;kiO;nlE;rd heydO;ri11X;emO; soleiO;ma134;ng-n1AC;amalPulius cO;aes9; k0T3; gO;and10V;brahamQrchduke franz fO;erdiO;na19B; li11W;ss0SE;! O;c34ii0MBoRrQsyndPuOvalhal1CN;ni16P;icaH;og11C;dy1A6riO5;arUeShQiO;c,rO;ated conso5Iin;aOyxA;lt;n 19rgO;er0WC;agDta1CO;stNO;al19M;l hQoOr;deDnO;go1B8;ol0QD; aO;lexandrA;aOcs;! T-pRn Otic RJ;am0NJel0NHfPgO;am3iant ho09A;ootball 1Z;acO;if1CS;aOcarWSkate diB5;rgO;en0TZ; vs evil03Da bhos7by-de-la-z0Ber12Cgab0XVi09kenaz08lSnik0KOokQraf gPton kOwini vaishn118;ut0CY;ha11U; kOa;um9;eOy b3R;eZigh b15Oy O;bXgrWha08GjUmToSrRsQtisPzuO;keYO;da7;co132;ob04W;ls5;ad07E;eOLuO;dd;ee6;e147id5; sO;imO;ps2;i je12K;sh vidyart0Z7ta noO; jYA;ou0ZY;a19Ahar farha0ZG;anRxualO; reOi154;prO;od03X;! football F8; rna mot7Qa;ePiiOleBL;! a1BH;nOti0JK;dance of a bookwo0Y6sioO;n O;is149; Rfoeti199p O;mPrO;oc09U;ob;akiGbutteMSh0I1;good as it Pmonaco 0E8saint-รฉtiOvMyou like 17E;en6;ge16Q;a6Gb6Dc5Cd58e4Ug4Ni3Qj3Lk3Fl2Zm1Zn1Qo1Np1MquebDr1Cs18tYuUvind Tw5yaO; RbQn O;bOra1A5;rother1AX;ha1B8;sta16R;kejriwMswa63;ba,nO;acPdhatiO; rYC;halN8; 0Te0Qh09iVp0I8s and crafSurO; Po gO;atX4;beterbi12PpawO;loL8;tsO; mO;ove0KH;cZe Yficial OlleL;gRiVnO;eurO;alO; nH2;enerPraO;vi13W;alO; iO;ntelO;lig17O;l0J0sh0Z4;ho0BPles of O;conDW;dal01r00ur O;aXbalWcTduSmi112rimRsO;chopenhPeyss-inqO;ua1A4;au0;ba0PJ;nc1;h19Tonan dPuO;rr17H;oy7;fo0Q4;ndOs0Y7;ers5;itFop19R; cO;hroniO;cl3;!misO;! p7Bia O;absinthi0UAgentilesc0X3;bPca0V6de0VOfi151garfuOnouve0NOp0H2roJ;nkI;eCrO;il3;eniQรจne O;lOwe0RX;up4;c,o 026;ayUd111ested0HLhenius SiRoO;ndissementOwv0TR;s ofO; pOX;et12S;eqO;ua14P; data O;stO;ruc0VS;an15B;n ral06Koj aftPund the world in eightyO; da01K;ab;elUis,oO;lOn mil0YG;d Pfini portO;ra155;ma0CFroths09AschPvoO;sl0BG;o08Zwarzenegg0QW; piO;ne16Q; 0La0Ee01iYorWsTy O;of Qranks aO;nd insignia O;of0GK;d0I2thO;eZMi01Y; iO;nduO;stL; R5ed O;coB;e PnO; meiw3iD;haUU;d forces of XniaO;!n O;aRgePkingdom of ciOla0GP;licA;noO;ciVP;l3XpostO;olicO; chO;ur0WD;tPuO;krWE;he ph0V0;dTgedd2nO;dOi; Po O;bro004iann06Z;assOhaUC;anH;il0Z2;arO;chit0EX;eVington nationalUo QynO; pO;hoen0NS;gPpO;ar0XH;utO;hr154; ceme118;igh burkeRne O;daPmaO;rtI;hl;-classO; dO;esO;troy0; of the coveSanPhangel6CnO;igh12W;!ePsasO;! razorbacks09Q; s0YR;na0QQ;en robb5unO; PaO;! phalgu0SC;k0WHrOsarZ9;ed0PW; a0WQa0Cel09hant-0ABjit10Jpipr08st01thmeticWzonaO;! O;cRstO;atO;e O;unOJ;ardiPoyO;ot3;na14L;! O;logicRHme1pO;roO;grO;es0SG;aToO;phRtleO;! O;onO;assF;an3; r3D;azo7; Ole kebbI;castro kidnapp131pi05VshOwi038;ar2;dnUnO; moSa Oi0WPna huffiSX;deQgranPriO;ch0CP;deZ9;bo14G;ay119;a g0IWe;entinQiPonO;!au11O;ni6;aQe primerO;a divisiO;รณn;! ZK; you Xa of a11WcRna fPpa,s,tha fO;rankl4;ooO;tball0HD;aRibo O;mesPoO;bserva14R;sa0NQ; nOce0RK;ut;afraid of the dark?,being servQexperiePthe onO;e?;nc10O;ed?;al o'hanl2eQuinoO;! O;iSXu0CT;nn3; 0N'0Made 0LhTtO;icOurD;! O;c11Cf06EmPoO;ce1;onkeXR; 0Ba04bishop02duYeXiO;e QmedesPpeOt0CCve of our124;laT9;!'6R;coSmPpanjaOrenaTLy0S2;bi;an0VBoO;untbatten-winO;ds11H;miBS;ry,ty0T0;chess Pke O;franz ferdinandPkarl ludwigP;giselaOmarie valerieO; of aUL;! of O;canterDNyo10L;eSicQnO;a purOgI;an0Y8; huO;maN;a,oO;lo0DIpT;ePlT0mO;an0US;neO;my;fiBga148;teryx;de triomp0SQsystem wP9;aaz PitO;ra0MD;kh1; general belg06bRchn11LgoQl0IImaicOny00Evinda sametha veera ragha030;! O;alY;n,rn; 01iQs,โ€“israeliO; cO;onfli0FC;anVcO;! O;alRla0CFnuQscO;riO;pt;mera11R;phO;ab103; pO;eninO;su138;le0FDsp0G8w128;ra0B4;ib tal0LEuO;aOiline no11Z; SmaO;nOti2;! and the lostO; kO;ingd0IP;regAteen hungerO; fO;or12L; dhi25a1Te1Ph1Ki1Ho0RpSriQsPulAรฉritif and digestO;if;-c,is;c13Ll O;as0OTbowl0YCfools'FN;a0Ee0Bian0AlQointment withOrentice0FB; dO;ea0L5;e00iO;cationRed maO;theO;maO;ti9X; R-specific integratedO; cO;irO;cu0Z8;binaryOl0IBprogrammingOsoNO; intO;erO;fa120;! O;c0D6dai0NEiSmNVnetwork1Epa0YNrRsilQtvPwO;at0R2;!+;ic2;ec0RF;!d,i; wK;ndic8Ztite forO; deO;strUY;lachiaQreO;l,nt magnO;ituPZ;!n O;moPtO;ra0F7;untO;aiN;c07lloXpVstOtheHP;asySlesOrop0QN; P'O; c02;in the new teO;sta0C3;! O;in0QR;hOtHH;enA;! Onian and diony8H;abort mVcUglobal RlunarQpO;roO;gr0YR; modu7;maO;naO;ge0BR;re0WY;od3;alypPrO;ypQD;sePtO;ic and post-apocalyptic070o;! nowO;! redQ4;!aPchatpong weerasethakOnk;ul;ce0NG;aRex tw4oQrodiO;siOte;ac;ri0RV;nt0MBsA;!p,r0O1t0XVx O;legPpO;red0KY;en0Q1; sYcheOrthe0YLt0UP;! O;cUhRkQlOsHDtomc0MQ;icO;en0ZG;af05Y;ado08KttpO; seO;rv0;assaO;ndG;ty7;ll2; haru I5i VkTlRmg,rtic Qsta Ou0YV;vaO;llE;a0R7dissT6;! O;ma0DK;igaO;haG;koXDyลซ0J3; FHaE1bariE0cDHdA0e9VfCAg7Sh7Qi71jelica huY5k6Yn3Wo3Ns3Ft04uUwar sad0M6xietyTyO; givenRa PdeOthing go3;sk;chalOtaylor-jO3;otG; suEJ;! d18; mWbFel Vnna0IVpamRrag kashyQsO;!hka shO;ar0SJet0TX;ap; Oaa;kh0tO;ripO;at0NQ;aa;alV9;! an2X-man2Va2Pe2Mh1Ni0Qje tra0OEoUweTz,รณnio O;de oliveirPguteO;rr3;a sO;alO;az9;rp;ine0EnO; 09iQy Oรญn dvoล™รกk;bli032sO;ta0SW; 04a 02nZo O;bWcVd'ami0LXgSlQrรผdPsal0HPvivO;al0NM;ig0;u0L1รณpez de santa O;an0L0;iovinOramsYT;azO;zi;onH;andOro0WK;er0ZG; scRFe Pus O;piD;pl0B3waC;kiV3thO;om0ZB;gaudรญ,poO;ro9Y;chOlavEyel02W;ePiguO;rh;khXO; PtteO; b0E3;de saint-exupรฉLfuq0JWgriez0HDlavoiPweO;slE;si0;-0Bb07ch06g04h03kythera m02m00nZoXpVsOvirus JS;emiDRociO;alO; pO;ersonaliO;tyO; dO;isoCG;oOsych02;d3pe;ch,xiO;da0ID;aCQoD;aOoTT;tt0;echa0NP;e0MTisFB;en,uaO;! and barbu0WK;olinerg0YWri0V7;iQodyO;!-dependent enhanO;ce08E;ot0YS;aUcoCCdefamation0A0lock brakQmaterielOven0DL; rO;if7;inO;g O;syO;stQ8;ircraft0JZmeO;rica0N8;oWrO;ax,opO;icRoO;ce6lo071moOsCC;rpO;hi0OH; prO;incO;ip7;ine 0Clog0Any O;a06b03c02d012ed5fauX0h00jZkiedFlapaYmVneWOof pad0IMpeUquTraT7sRtrolQwePzerO;be;in0;lo0LW;alOpilot0LY;er055;ay7i0FY;r3EttF;aPichaeO;l QF;ck0V6r0HR;glA;eselnSMosh0IA;e0T9oO;p37roZM;asVA;lu0H1oPuO;rge0W9;urda4y7;lbaPndO;e0BSre0O5;ne0VM;y O;se0OD;hu0FL; Oat0lo0LA;pavel01LsundaraO;ni0FK;goSl04UnanaQrO;cOes;tiLV;riO;vo;ni0TM;! and the waO;sp;ste0SM;chlu0VPel Ti QonOu faJA; mO;ou0GE;c,escapO;e O;coK8;aOelgo0WR;da0US;aUha0HXmalTnymousRrexQther th06PushkaO; shO;ank9;ia nervo0E0; conO;te0G3;i0DXocC4;'OสปO;i NR; 2F-margr0SMa0Xe02iTo RuO;ncPs horribO;ilF;ia0RT;doOmun0K3;mi0LT;-frid lyngVe O;beThaCleRmuQoaPpO;ot0RT;klE;rp0PK;iboOnnX7;vi0OH;sa0FM;st0RQ; Z-marieWliTtte Qxation of crimea by the rO;ussian O;fede0RE;bPfunic0N4oO;'too7;ad0OSe0M4;d,ese O;miO;chI;! O;du0DPmediO;waX6;arWAbZfranYhUmu0FIof TrRwO;ePith an e,oO;jc09X;yi8;i0UOoO;bi0NU;aL9clOUgreen ga07Qki0NI;aQeOidalJK;c0JSgO;er0OX;th0PC;cFk;aRoQrO;onO;tรซ;leTKnQB;nOxt0;croO;ft; 08-06att0JHbeZlVmarie tUpurnaOsophia ro4Y;! O;iRlaQpiO;ctO;ur3;bs;nterac0AZ;enP5;ePynne mcO;co0SI;igh Ona baerboJ;ashKQ;llPthO; gi0M7;a sciRe O;comePwaO;llF;s 0SZ;orG;louise ploOmaria sieklucZF;wm1;a0Hbary0Gc0Adi020f09gu0CRh07jKk02l0M7maYnWoQRpVrTsQtoPunC8winO;to0AR;dd,rv;aw0IYhOorok4;aOcherba01;ff0;iOudoZI;char0B5;aqu4oppleL1;eOicoleO3;ag7;d5IxwellPy O;wo8; maO;rt4;areni0FEendRoO;nk7urO;niO;koSS;riJ;opO;kiN;arFriI;aShO;aPluO;msSG;nceO;ll0QA;mp;shnikS5;ka0EZndO; thOe084;e 0EQ;cUdRjPsarOwiWN;no0BL;ilO;li1;oPuO;nh0QA;wd;leMSouPuO;saJ;lt0;aGh,leโ€“brachial pressure0SNylosO;a0EGing spondylO;itF;ka noni 0Bl08mTplSrudh ravichaLQsRta O;ek0BTmPpallTEraLGsarkeeO;si1;ui;e,h gi0P3;ex,us 0E1;aSeOi0JJ;! nP-influencedO; a06V;etO;wo0OT; and animDl TnRtPxO;! 0DU;i2roO;niP;iaO;cs;cQfa0FLhO;ou0R2usbaO;ndL;ros0HA; Oi05C;amOda0K3k0I3;ba0I6;ro0QW;edOui;onA; l0K6e10i0Ukor w0E1l0Bo02r00uO;il0RXlarSs O;deaQiPyO;ou8;mr0PY;yt2; Ojs;fQmoment0CZvO;eloO;ci0LS;requO;enO;cy;ezi meIDy bO;ir0GV;laSstura bQuO;lรช0RVrie O;ri0R6;itO;te0PW;!nO; cO;ivO;ilLI;e04ican01oO;-PspO;heB;inXsOzuluLE;axonPoviet invasionO; of ir1; Os;rE6settlemenO;t O;ofO; bO;riO;ta4;di1; cOi0HW;hurch of southernOommu024; af02;!rOs;fi0IS;e Ona;bRcepe0P9dPever0K3haO;rm2;icO;ki0JJ;ow0OQ; postecoglIKlPviO;n 0CB; 05's04aUina joSsO; inO; aO;meO;riFS;lOrd1;ie0K9; Oba0LX;baVcTdU1kiSlansRmeQraPwO;hiH;yn0;rkI;buL;nsE;artO;wr0NJ;sse0HN; eDY;f5LhQiO;nveO;st0N1;aOea0QK;s O;faXD;mQsOu0GU;thO;esA;ia,oO;i,m0CB; 32a30e2Sh2Pi2NorGr0Gy O;be0Cc0Ad09f06g01jasC6k00l04CmXrVsSwO;arh0PFe0MChQiO;llO;ia0OA;itf1S;am08PerkPumO;me0O0;is0JE;e0NDicVUodO;diJ;ilonPuO;rrKschiCC;akF;au0H9;aQiPrO;iffi07R;bb;rcOv4;รญa;airweatherPorO;dh0MI; l0NE;aLZe07YiJ;arOoh5;roC;rPsO;he9;na0N5;a1Te0Fiy s0Do03zej 00รฉO; Ss O;iniQmanuel lรณpez oO;brO;ad0LV;es0PM;ayBXde shTle nรดtBoSpRrQthOvillas-bo0P7;e gO;ia08U;ieu;rev4;na0AG;iel0DW;du0N3sapO;koO;ws07H;gWid SmedaO; gPโ€“milky way cO;olli0AT;alaO;xy;application packa06YstQtv,veO;rsionO; hCW;udMX;en,yJV;hevO;chKS; 0Za0Ressen horoQTi 0Nw O;breitba0OQc0Edice 0Df0Cg09j08koPGl06m01ng,p00rVsStaHuRKwOya8;akQiO;gOl3;giN;ef07;chuPtaO;nt2;lz;annRidgQoO;berO;ts2;elE;el0M6;arker b55;aRccO;aPoO;ll08W;rt0HN;do066;aQCi0CRloyd weOuJ;bb0;acQ3oh0GF;aOo0MK;rfO;ie0MI;linto05Zo0AS;clK;aRuO;nPoO;mo;an1;lPrO;neg0LC;laO;gh1;arloJBchikati0EYsakhQtarO;koO;vsM9;arM1; Rs O;cOwei05R;hrisO;te05;anQbOco0GHga00Ajeremi0DHpir0EQriseb002;a8ocO;el0E3;de0LB;agObrauUCiguo2S;as0DX; dK; osI9e macO;doDZ;adh0MHraO; praO;de0EM;anTrsOs; Qon O;coOsLT;op0;behring breivI3thomas jeO;ns5; coO;nd0JG;lusAman O;and nicobarKSiKT;gaHthen there were O;no6;ho05ienO; rรฉ03t O;aZcartYegyptTgreeQhATolOro0MK;ympicO; gLM;ce,kO;! O;ph0Ure69;!ian O;dQrO;aceOe66; controver8F;ei0HB;ha04I;lPstronO;au0I1;ieN;gi0M5;vy;vu; 0Zb0Vc0Ugr0J2heim d0Tl0Bn09phylaxFrch01staZtOรฏs n4;id085oO;lTmO;ical terms of RyO;! of a O;muO;rd0;loLQ;iPy O;dyatlKFkarpKF; bOa;oukre0DZugors04D;cAs mikO;oy1;i0CBo-Oy;cQprimitiPsyndO;ica58;vi0C8;aPoO;mmu0AR;piO;ta53;dabazar patriQHsi,ya paO;ndK; s0KYges0LXog00yO;sis UticO; phRal Os;ePpsO;ycUD;ngi6;ilosO;op0EU;of variRpO;arO;alO;ysF;an0KE; cQ-to-digital O;coO;nve0E5;omO;put0;uc0AY;hro0A3on0J1;apQolic O;steO;ro0IB;ti0BE;brnabPCde PgastOkaspa03V;ey0;aOla regueG;rm0KQ;aWeUinspectorSlushanPofficer and aOyuSC; gentl0V; rO;ebelO;li2; cO;al0IH;duKAvening with silk sO;on0KX;ffair0ELmerican O;piRtaXCwerewolf iO;n O;loO;nd2;ck7;a5Ob5Bc 57d4Ze1Yh1Ui1Rl1Om1Fnes1Bo15p0Vr0Qst0OtrGJu0JwKyOรฉl0HY; U's bakiAVbeth mcnTgSlPotrophic lateral sO;clerQ; and the sniffe0I8oO;idOse;osF;da0JO;ul0DQ;a0Ab08c04fi03gFMh02ir01jM5klobuch9l0BUmaZpXrWsRwPyasO;beJ;ax,inO;eh0ID;chQedPherman-pallaOma0K4pa02J;diRF;arF;neOum0;id0;ed9Uy1;aOoeY0;scM;cOd70;do0CO;vi8;ennFS;sh0;a0COoneyO; bO;arO;re0AM;el7rennO;em1;ck0da0HN;l,nPsement O;pa0FB;!dsenโ€“scott south poleO; sO;ta0EW;erdamOrad cpc;! airport schiph0IJ;apali g1iQullah sO;alO;eh;shNEtO;a0CRs9;erWhSliO;fi0tuO;de O;moduO;la0EK;ePibiO;an,o33;taO;mi6;e,sa0EX;e005l0E1nRr Ps tam0FPxiciO;ll4;fa59tO;owl3; Og D;amSUgรถ00O;ia,tyO; iO;nterO;nationM;an,onO;iPoO;id0CH;a,um O;chQnO;itO;raH;loO;ri5W; ame5e00AoO;diOg0IO;pi6; koshimiPga,no0FLsh,tO;abh bachch0BKripty05C;zu;ar0IJerstO; cO;olO;le006;deo modigl2Nesha2Llia 2Jnhotep i2IriOthy0EQ;caOgo vespH5; 2C's 26-23n Os;a1Sb1Pc1Hd1Ge1Bf12g0Yh0Si0Jje08Tm0Fn0Cp04re02sVtSunPwO;ire gau001omen's voluntary3D;ivO;erO;si0BF;op BNruckO; simO;ul01G;amTiRnQoOtaffordshire01;ng conO;te0ED;ip0;eZQgO;n Q1;oa;uSAvolutionO;!aryB7;iPsO;ycCH;cSt O;buO;llO; tO;erMR;ke0F9;azi0ASinja wO;arO;ri0DR;afAcgeeQotorsO; cO;orpo0CN;!'s0BM;dVmpTnO;dQstitute inO; taO;iw1;ian O;wa0EW;erO;ia0C;i0H5ol;istorySoOu5U;cQrror storPuseO;wi0GG;i3y;keySC; x;igo07YoQrO;afO;fi32;ds,th0GY;ilm instituteVootballQrO;onO;ti0;! O;co0CleS3pPrO;ul3;osO;it09M;! 5S;ngQWxO;cepOpR4;tioO;naO;li06O;ec03Are0D0;iRrPuiO;si6;ime0F3oO;codi7;nematographer manuMvil O;reOw9;liO;gi2;is2lacOr6Ful00J;k O;be9;irWllVnd british english spelling difUsStOuXH;hleticO; coO;nfO;er0D6;saO;ss4;fere0EL;igZA;linesLT;class amphibioO;us assaulO;t RK;gQnext topO; mO;odI;otO; taO;leYY;cQfO;erO;reG;hav080;!ii;ear080kinOwaM0;ka2O; pO;atI;ia04N; QahlO;'sO; l03W;accelerated prQradeon O;soO;ft06W;ocessingO; un0B4;nePtheaO;tr3;twO;or04M;erTiQliProsO;e,ia;n OI;entOgr0BG; mO;us0EX; OgrF;hSmidtRroseQtPvallO;et0ES;amblCT;! rev04G;hu6W;ea0C1;do c18im warrior at the border01Gl13n0Ir0Gte0Cury gui0BzO;ing 07onO;! Os;a02b01ec99fire 00gD7kiZluXmWprimeTrQs05VwebO; seO;rvRN;ainOiv0;foO;re0AS;! vO;idO;eo;echanical tu09Vus0ED;mberOna;ya0BM;nd7;tv;as4;ir,lePppsO;toB;xa;faOg0BY;ntaO;sy;ch2;raQurO; rO;adBQ;su;'e stoudemiBanVHetV6tyO;a s5;cio or07dRgkurat ii of matI8ita O;muscPphalloO;id3;arA;a Ola stDK;abbi01b00crZdonohYgoXhold5knEHnWow5pTrighRsO;chuCeO;al3yfO;ri08F;etO;ti;aPe09FluO;mm0;lm0;un3;rm1;oe;ew;laEIyn3;ngt2;te9N; cQa GXee,fiO; cO;oa09I;loO;onE;arrillo fueO;nt3; FJ-FDaDGbCMcC2dBMe78f6Kg66ham64i4Kjamain4Jka4Fl1Vm1Qnwick 1Oo1Kp14s10t0Aum04vin Yways on my08PyPzheimerO;'sTS; VsQvia aO;lynO; li08M;on Psa miO;laJY;hannPstO;on0;ig1;mH9raiG6;and the chipmSbraRkQsO;arO;geVY;amaG;gg;un025;!iniumO;! O;allQoO;xiO;de;oy;-r08Ya08erRon PrO;ui02I;toO;we09X; 02natO;e ZiO;ngVve O;forThip hJDmeRroJversions ofO; sO;piderO;-m1;diOtM;ci6; ge1H; cO;urO;reV8;hOreality VO;is0AN;brTAeO;go;iPmont freeO; conce0BJ; rOcLO;epO;ubl0BQ;aOtQJ;ceOgoff 2O;!โ€“lorrO;ai6; arsl1a02hSine PrazOs;ol081;lOskii8;inO;ux;aSonsO;e mPo O;daD7;ucO;ha;! Ob077go,zeZ5โ€“beta pru019;cenQpO;artO;ic7;tau06T;ca;e QisOk kanojAnzo g02Hpecia area0B3y; hiO;tl0;veG;caO;st7;aQoO;had02Dnd,stO; faA2; mOty;at0; 13-0Ya0Re0Di02m01o00sZuQy O;mcbeMsheeTDwaO;lk0; arRri sitarama Pโ€“konidelO;a 1Q;raO;ju;aRjunO;! filmography anO;d O;awGQ;vi067;pi09Bvensk1;saVAtropes ofU2;ov07Ous0AG;eQgTQson O;jaOmaJstokBK;nnE; sherRUdPs of world warO; iJ3; invasion of siS-occupied O;aPgeO;rma4Z;usO;trA;ciUE;gTn O;duBPginsSCiveO7kRlPstanO;fo07D;eeXZuO;dd5;le4;iant SoryQrO;a O;versa08P;! of theO; caYM;a05LsO;taO;diU3;hTn O;hPlaOsaint-maxim4;mb;ePoldO;swKS;inRU;!ab04Y;russia state television and radio brOtime olympic games medal04Q;oadcastiO;ng O;coO;mpa46;a0Pdogs go0Ne0Jgas no br0Ii0Amy07nippon04of us are03quiet on the wester01rights reserv047tQyouO; need is Or base are belong to D;kiCloY4;hRoO;morPo O;weC;roZP;e Pings must O;pa07O;bells sKlight we cannotRmoneyO; inO; tO;he076; s00D;n fO;roS8; de04C; aO;irO;wa12; cO;hilO;dr5; want for christmas isTnPsO; lo051; thOdia trinamoolJ4;e O;faO;miSV; yO;ou;ak3;litePyez oO;n 07Y; wO;rest00K; to heO;av5;boutR4long the watcO;htMV;lOne;iOo059;! mO;etM; ster00B; 12a10baba 0Zc08e02reza firouz01sQtPyXTzO;รฉe;alA;on TsRtair O;macPovereO;em;le1;a white-glOon;uz;br054dooQGeaRkrQloPOmoy03SpiCsO;tea36ud06QweO;enE;au06B;stE2;ja;nOxpI7; OwaB;abdQresuO;rrO;ec02S;uc02R;anHeSia O;keQnaYNsilversPvikaOwiY7;nd0;to6;ys; P's adventures inO; wond00;br06co02e00in XkriP3lePCroVsUtullSwO;alQeO;idItterO;lu02Y;k0t2;y O;haC;pr03J;bOosevelt longwIB;er02F;bordPchaiO;nsT;erZN;ngle06QvO;aNe;ltQopO;erO;! YG;ra6;a37ooWD;cLZgO0; Osi8;bhaXFshawkRY;baba and the forty tQeren demirez5fazMhePkhamenDMlaZDmacOwo8;grV9;ws2;hiO;ev3;bGduliO;llW8;arVBeSie044oO;nquiQrithmO;!icO; traJS;n CD;bGeVriaO;! PnO; w9;naO;tional fO;ooO;tball O;te02O; sEL;a06ie 04onso 02reO; wooJDdO; Po di stรฉO;faD4;aXbWdUeThitchcockRjoQmoPnobIpennywH7rOtAA;os5U;liQX;dl;! O;fYXpres00X;noTT;reO;yfD;ur6Y;dl0;cuarรณnYQribOxi01A;eiTJ;aC9soloO;moN; romeoPlO;fa;! iO;n O;formulaB8;!c 3Yister cro3Xjandr3Oksand3Fm3Ep3Bs34uti30xO; 1Ya08e04iO; lai02s PthO;ymA;arZbledIdVkUmRohaQsPtO;ex04W;รกnX6;ni1;acO; aO;lliUM;na05;eOzieQ3; tocquOnis4E;evO;il7;qu5V;ho;i navalQy O;oleynOpajitn31;ik;ny; 17ndO;er 01rO;a Qe Oia ocasio-cortX8รฉ pรถlPK;dOlacaz5MpaM2;esplPYum04B;bWdaddVelbaky1gUhedTmariaSofQpaNLshiPtruO;so34;pp; denO;ma004; laG;is2;raNS;ar2A;otWWreckenrLV;a0Mdreym2f0Lg0Hha0Fi08kere07l02m00ne2WovecZpWsSt8PvOzverW5;inQoO;lkanoOn humbolAF;vsMG;dm1;criQidd00kO;arsO;gรฅ01K;ab4;ay6oOusQ;pe,veO;tk4;hk4;cqO;ue5;itvinRuO;dwPkaO;shP;ig;enBX;ns26; oRiPsO;ak; oPiO; oO;f O;ruO;ssA;miO;lt2;odun1PrQustO;afO;ss2;aham 59othendieJ;le5D;cSlQrmO;stO;ro8;b2ekO;hi6;os03A;bli01TcSdRiPpenaveO;ga;nteO;rnZ4;avalUIem00F;hu8;alb2bo0Ncaru0Md0Lf0Kg0Hh0Cj00Lk07l04oYpeWrSsBKtQwO;iOolKS;nt0;rebOu9J;ek;aQid0oO;driO;guVD;mรญrVC;rOttyf0;eiG;'loRxlade-O;chO;amberO;la4;ugO;hl4;aPifO;es2;nQ3wNY;iQuO;rtO;zm1;ngO;st2;asRiQoO;nOr6;no00K;rsQB;seC;arUXrO;eenO;wa00F;ergus2;e minaI4imitri1L;so;rs28;anO; iO;slO;anQG;ha dTsO;andrOia caGo;a ambrosQo O;del piePRnivo011vO;ol01U;io;ix2;hOpo;! O;nuVI;anQY;ar Tr O;akQdug4karPsolzhenitsO;yn;el4;imO;ov;hPmiOrak5Mvuฤ5M;tr5K;em2;aTo O;cao de benRgonzรกlez iรฑรกrriQjodorO;owsO;ky;tu;รณs; sO;ilO;va;wlE;bPdouglas-Z6gO;uinZM;alJR;abra giant t01eXiWoPrich O;am3; gSsQusO; huO;xlE;teO;ro6;ucO;ci;!s hodIK;bQn ehrenrPrO;nEsh00P;eiOP;ar1;ortO;oiYN;atraz 05hem02ibi01oOubierre3S;holOn A4;! TiO;cOsm; dPs anonyO;moD;riO;nk;by voluZWflushSiQpO;roO;of;ntoxiO;caVH; reB9;ad3;ical Oy;syO;mbZ1;federal penitentOisSR;iaL;a09ePiOrecht dรผr0us dumbledoB;niQ6on;do,rtO; Ra,o fO;ePujiO;moVK;rnรกSB;anastKHb01c00eiYfiXiTkesselC1pierrepSsPweO;sk0;alRDchwePpe0tuivO;enI2;itz0;oiJ0; oPiO; oO;f bO;elgiJZ;nnEsh;nsO;te4;amD;litNJourYMrP0; RniaOtFI;!n O;la7ImO;afA;baptQflProhrwaO;ch0;or3;isZ8; vaikunthapurramul1Jbama1Dddin1Cin 18n02qua00ricZsQuddin khalPwO;it3;ji;kaRtair O;cOsCM;aOoPH;mp0T;! Pn O;bush 4ZmalamuH;aBGpO;urcO;haWX; i; cO;ox; Sa Pis morissOs;etH;de la gOhaC9;arO;za;a0Nb0Lc0Jd0Gedward 0Fgreen0Ej0Cla09m08p06r00sWtQwaO;keOtTZ;! U7;hRitchQuO;dOri8;yk;marPN;icO;ke;chaQhePilveOug9;stU1;ar0paVP;af;iOuJ;ckOtchs2;manO;! oO;n screen and sO;taFX;arOriWZ;k0soNtrFJ;e0XooB;dd,sO;ceO;ll3;acO;ks2;sp1;beC;aPershoO;wiPY;vi3;aQHumO;mi8;at3enO;neOE;lVCrk4;dePpO;roTY; boOl2;tt2;! sa6;! crimson tideQโ€“georgiaO; football rO;ivalL; fO;ootO;baC;oo;aQbiPghazaNOqO;aeUY;ruMI;ndPqsa moO;sqL4;alD;ahl02ca01d00fraZgYhilal sXjUmiTpacinoRsO;harPteO;waWU;pt2;! on stage and scO;re5;chaeUI;azeeraPoO;ls2;! e74;fc;oBre5;nk5;avF;po6;y O;sc;a0Eb9h0Ai02kZm,on,rotiri and dhekYsWuO;damaTla-O;classO; sO;ubO;maO;ri6; dO;riL9;ai Ohay0K;ch4;elA;adian Pineni nageswaraO; r3S;emH7la4E;hiDKnFLo ลtsu0Sra Pva goldO;sm1;isSkuPtoriO;yaO0;roOsQ;saO;wa;hiTQ;anTPenat5ilO; Pesh yadO;av;akkineL7;ike information crWnRri kiQsOthisA;aROhic recordsO;! of bastard magic instruI3;tล;e yPkshaO; puRF;amO;agO;ucIV;iteO;ri2; 02aSeeb daastaaNithRla tomlO;janO;ovO;iฤ‡; kumarOJ;gajanthWntUxQy O;devgnOHgO;hoMK; tO;heO; gO;reGJ;a cO;av3;arRQ;lMKmPstO;yl3;ichalO;ka; 1Zchi 1Sd1Iki1Hlee1Gme16n11rWsO;hPling O;bONfrancioLB;aRwarya raO;iOjeM4;! O;bK3fNZ; tO;yl0; 05-t02asAbYcraft Udr20fo7CpQsh6LtPwoO;lf;ag;laQoO;dsOrt;! pIK;ne,y;cPinO; f7I;arO;ri0;nb,orne early warning andVusO;! belugaO;! O;xl;o-airO; mO;issi7;aK5c05euro04f01gTAi1ZjoRAkor00new zZpollutXquVsupRtrafficO; cO;onO;trT5;eriorityOpEI; fO;igO;ht0;alO;ityT3;ionO;! iT2;eaMN;yo;orcePrO;anSRy0; o6;pa;anadaQhiEToO;nditO;ioJR;! fO;lePN;sley earQu O;peO;op7;harO;dt;eOr; R-ffionO; eO;dwO;arHW;gaRlou QmaBCteeO;gaO;rd5;woT0;rcA;!n wuornKM;do;an Py brO;yaCH;gRhQqPtuO;rn0;uiB1;utchiL4;alPiO;ll5;laO;gh0;pStO;elevisiO;on O;broadcO;asSO;refO;ecF5;dQkaPweiwO;ei;kuKJyaS;unO;ge2;eg03mXn RrQsoka Oura mazQA;taO;no;im1;bRePhyo-seO;op;unO;-j4;o-O;hyRB;adQeO;dOt ertegR9; i,abNP; shah mPiyO;ya;asso7F;ao;a15e0Bg05ile software02nXoVrO;aSicultureO;! O;inO; iO;ndA;! O;foRP;da,raO;phC4;eRosPรจs vO;arPI;tiO;ciHX;s mooreN5tha fรคltsk24; dO;evO;elop1A;lutinativPretsuO;ko;e O;laO;ngO;ua99; Zi8nt Ws of consent O;bySin O;asAeuQtO;heO; unDY;roF4; cO;ouO;ntL;orPsO;mi8T;an8X;disparity in sexual relat03of O;aqua01c00diYeTmOtB5;ajoRytO;hoO;loO;gy;riK7;ar8KmpiresPnlO;ighten0J;! iO;iOv;!i;scoO;veL;onseA1;riD;ionsO;hi0R; 00memn2pe,rYtO;e,hO;a Pe roussO;el7;christiePhO;arkP0;! R's O;maPpoO;irQD;rp7;bibliJG;!icus bispO;orD;coQkhanO;! O;iv;ok0;c 1Bf12g0Zi 0Yr00shanZterO; TlifeSmath O;enO;tertO;ainO;me9B;! of theJ6;eRthe Pwe O;collidKSfeC;daLGthO;inKV;ar7H; azL9;iToaO;siatO;icO; lO;anguO;ag3;caRkaO; kOaNneN8;orO;ps;! cup09nO; T-american O;cRvernacularO; eO;ngO;liGJ;ulBQ;am00bushXdVelYnatRuQwildO; dO;og;ni2;ionalO; cO;ongO;reNO;iasO;poG; elO;epO;ha8A;erO;icaN; ofO; nHS;feL7;haO;niO;st1; 0Eair of the diamond neck7NiQordable careO; aO;ct;liateRne tPrmative O;acJU;ransfO;or25; maO;rkeOD;aWbournUchQnPwimblO;ed2;or62;ampO;ionsO; leO;agC9;emO;ou5W;jPsianO; c5H;ax; dil hai mushk0Og0Lne0Kr07s01w OxN6;battle of the belJHdYramXtPwO;orld R;bPnO;t P;s O;chO;ampO;ionO;shO;ip;pa5M;ynaO;miH; instructionSchRopPpa,theticO;iDWs;!'s faO;bl3;ylD; sJK; Yith gainsbWoO;bic exerciLLflNJgIsO;mithRol,paceO;! eO;ngineeO;ri8;! aO;lbumO;s EZ;orO;ouGN;liO;ngD;as,id;ean Ois;aOsGT;irl9W;il; 63-61a48block46d3Ne3Di2Yj2Slai stevenso2Rmi2Jnan 2Fo1Hr0Pult0KvSwaBx flRzuki Qรจle O;exarchOhaenI;opoulEE;be1;orK4;aWeO;ntOrb;!ureO; Qs O;in babysOof huckleberry fi4S;itMO;fPgaMBnOtiMB;ovI;icHY;ita ved05nceO; publ03-fee scJ7d O;audiZeUmRvO;ector extPiO;deX;ensFI;essage queuPicro devO;ic3;ing34;ncryptO;ionO; sO;tanO;daJP;o O;coO;di8;icF5;anM7; OeL;aPswOtrainDJ;im;niO;maHA;en0BiO;aYenO; Ue misTne O;baPshO;el68;il2rO;beO;au;hl0;agrPbroO;dy,n0;esH; arjo6PnPticO; sFB; Ra liDIne O;cPpalO;ic3Q;urL;chSgreRleQnewEpeO;teO;rs2;st0wF;ni0;aJFil3;alQergicOoch4L; receO;ptHJ; gDYi6;beYlPnFrationO; of the ma0M;eVfPphe thO;ieIT; Oo suรกrez madridโ€“barajas8K;eiRhitlerO;!'s rise toO; pO;ow0;ch2X;scI4;! O;a07creative 03dream01flashYiUlightSpPsO;ysteIQ;hotoshopPremiereO; p8Q;! 7V;roO;om;llustr43nO;deO;siO;gn;! O;plO;ay0;weO;av0;cPsO;uiH;loO;ud;crob5Mfter6EniO;maH;januzQkO;hashogO;gi;aj;nistrative Rral gorshkov-O;classO; friO;gaH;counties O;ofO; eO;ngCO;n FL;acencyQecPoa andOugateQ;oh;ti8Q; mO;atrO;ix; shan01abaticYdasWn VpuUtO;i rao hySya O;cQroy kO;apO;ur;hopG;daFA;ruAR;roI4;! yeeO;zy; pO;roO;ceHZ;kaG; eVelUlRnPwale akinnuoye-agbaO;je;!osineO;! triphosAT;aide Pe O;diAVone night on3J;ka6; akht9;dmonO;ds2;ams family04e03iTress O;bRresoluO;tionO; pO;rotocHW;ar,o9D;cE5sO; aUonO; R'sO; dO;isO;eaGT;r4EtiO;ml4;baO;ba;raC; vaO;lu3;! O;plD; 1DbooEVmVnPsO;sa; cRa demirspEOiO; gO;roO;up;anO;to; S's O;aQbrPrO;ib;idZ;pp7;a0Vb0Pc0Nd0Kg0Eh0Dk09l05m04n01pa00ricZsRvinatQwOyau65;arOeEH;loJ;ieDQ;aSchPmiO;th;iPleO;si05;ff;ndlPvaO;ge;erAW;hm1;ge,scM;euO;maO;nn;ckK;aPeO;vi6;lla2LmO;beHC;inPownacO;ki;ziO;ng0;ilEZ;ilRoOranduciI;dlEldO;beO;rg;chO;riDM;ePrBPuO;ri9C;m8Jvi6;o7uO;rtF;alSea53ilQoh9AroPuO;xt2;dy;zeO;ri1;dw4;m4nQrO;cOk4;huleGV;dOt; e5N;loOwo8;veO;laFL;roJ;ck;blO;oc1F; 3Ga2Dc1Xe1Mf fioren1Kh16id 15kerman12ne,o0Xr0ItXuO;punc2Yra,te O;acTmyeloid leukSradiatiO;onO; sO;yndO;roFY;emA;ceO;nt;iQs of the aposPuO;atCI;tl3;nopterygBUonXvO;atTe QisionO;! blizO;zaDI;direcEWelectronically scannedO; aO;rrK;edOio0I; caO;rb2; O-adventureP;bro7ZfiTgaFGpQrole-playingO;! O;gaFE;aBEotO;enO;tiM;cAZlm;oQylonitrile butadiene sO;tyO;re6;megaYnXpTssO; tO;heO; uO;nivO;erDJ;hQolisO; of atO;heN;obA;ym;ly;nOrn;cPitO;um;agO;ua;n O;fuO;ncAC;ra4;aemeniYelouWilleQondroplPraf haki6Ntung O;ba9S;asA; lauroQsO;! and patroclD' O;heI; hijO;acO;ki8;saO;urD;d O;emO;piB;tiO;na; Sh,tO;icBMo6ylO;cOe6;ho1CystO;ei6;aRcombQfrePof O;baCH;hlE;at;ttoO;rnE;eZipitriXorWra,uO;racy PweaO;th0;and prRinternational aO;rcticOwm; waO;rfaB;eciO;si2;!di2;dOform3;ae;lerOn0D;ationPomO;et0;!i42;cAdPpulO;co;emPiaO;!ns;ic 09y O;awardPof motion picture arts andO; scieCC;! for best Os;aYcineXdUinternational feature 8Soriginal sSpRsupporting act04visualO; eO;ffO;ec8X;icX;cOo8;oBrW;iOocumentaryS;reO;ct9M;mat6H;ctTdapted scrRnimatedO; fO;eaO;tuB;eenO;plK;or,reBQ;dXgrading in tPranking of world universi7PteOye9;rm;he O;phSunO;itO;edO; stO;at3;ilippO;in3;ePiscipO;li6;gr47;cobGpower plugs and sO;ocO;ke83; inb4Ga4Db39c35d2Ce22hi1Ti1KkhazAle1Ho17r0Ts0AuPweO;hr; RgiACja,l a'la maudu06ndance of the chemO;ical O;elO;em7N;az03bakr01dhabiTghraib torture and prisonerRibrahim al-hashimi al-qurPmusab al-zarqaOsimbItahsin al-salQ;wi;asO;hi; aO;buAF;! O;inO;terO;nationO;alO; aO;irO;poBY;! al-baghdaO;di;raI;-cbn,int05oluteWtract PurO;di27;aBSdRexPsyntax O;tr3D;preO;ss0N;ata O;tyO;pe; Oly fabuloD;moTpRvPzeO;ro;alO;ue;itO;ch;naO;rc4R;he;aPuzO;zo;hamQj OxB3;al ba7FkudO;ai; Oic relig4C;aSbeaAWinQliPmasl8Tvan helO;si8;ncoln; iO;sl7S;ccO;orO;ds;lUrPut O;faH;iginal aQtionO;! lO;aw;ustralO;iaN;itO;ioO;ni12;i11ton O;liO;ve;dj1gail RogPyO; ahm5M;enO;esF;bresl4sQtO;hoO;rn;peO;nc0;jitUmanyu Sshek O;bPkO;apo6P;achO;ch1;dassaOmishGs3P;ni; banO;erj1P; viWbUl fSrO;de5fanO; dO;isaO;st0;erraG;ra;ooO;ks;go7Q;alla hamd0Fe08ication of edward07om01uO;cWlOwali mu80; hamid 5Klah Prazak gurnO;ah;iiSoO;f sO;audi aO;rabA;ia; of 6P;tive rO;eaO;soO;ni8;en,inal O;aorticOpa4; aO;neuO;ryO;sm; vi52; ezzalzSl fattah O;al-buQel-O;siO;si;rh1;ouO;li;ok; PdeO;fu;neOs0G;ws;!a0Iey 0Ci03ott Vy O;and brittany heTelRlO;ee O;miO;ll0;lioO;tt;nsI;and coSeleQlaboraO;toO;ri3;menO;taL;stO;elO;lo; jUe O;corReQhO;ofO;fm1;at2;niO;sh;acoO;bs2;lSroadO;! sO;tuO;diO;os;ee;! UsO; kiarosRidO; caO;liO;phaH;taO;mi;diO;sc14;cDdd2lo6ndonO;waB;ne;ev; b19ch5dha9kanksha15m0UrRsmah m3PyushO; shO;arO;ma;d0MhDneโ€“thompsonโ€“uth0Kon Pรณn sanO;ch07;a0Gbu0Fc0Cd09e07h04le02mcgrud0paul0RrZsStO;aOve3N;ylor-jO;ohO;ns2;oSpQwO;arO;tz;elO;li8;rk4;in;amsPodO;ge4Z;da7ey;nn2wF;is;ernaO;ndO;ez;ckO;ha6W;esPoO;na5A;sn0;aPopO;la2P;rt0;rr;shO;moB;er5V;us;maOva2C;n animO;atO;ioN; aadmiVirO; khO;anO;! fO;ilmO;ogO;rapO;hy; pO;arO;ty; sO;inO;gh;ar;atO;teL;ha,leO;ague3WvI;el;b5Ec4Ld41f3Ng3Ahistory of37is for35journal for 32k2Ul2Rm24ni1Zp1Rquiet place1Pr1Is0Pt04vYwPyear-end meO;dlE;alkThiQizard of earthsPrinkle iO;n 5J;ea;sker Oter shade of pa7;awK;ay; to reO;meO;mb0;ery british Riew to O;a O;kiC;ll;scaO;ndM;a02hWown likeUriO;be called qSpO; toO; thO;e O;mo2;ue1U; aO;li4A;eoryPousand splendidO; suN; ofO; jO;usO;ti44;le of twoRxi O;drO;iv0;er; ciO;ti3;aucerful0DeZiWong of ice and UtQunday afternoon on the island of la grande jO;atH;te;op at wPreetcar namedOudy in scarl0X; desiB;illoughO;by;fiB;re;ngPster's all you neO;ed;leR;at at theZpaXrO;biaTiO;ePousO; m1;s of unfortunateO; evO;enX;n O;fiO;lm;raO;ti2; tO;ab7; ofO; secreO;ts;ainy day inQoom of one's0Xush of blood to the O;heO;ad; nO;ewO; yoO;rk;! part O;ii;ail ofTerfectRiece of yourPriori and a posterioO;ri; miO;nd; cO;irc7; aO;ir;ce place to visRghtmare on elm O;stO;reO;et;it;an who defies the world of bl,emory of07iUoO;desRmentary lapse ofO; reO;as2;on;t proposM;al;dsummer night'sXllion PnO;or;littleSways to die inO; thO;e O;weO;st; thO;inO;gs; dO;reO;am; lO;igO;ht;eague of theirOittl1A; oO;wn;indTnight'SoreO;an oO;dyO;ssE;ey;s 27; of mO;ag2S;joO;rd1;an; acO;id; vO;iolO;en1D;ame oYentleman inVhost16ooO;d day toRfyO; mO;ovO;ie; die O;haO;rd; mO;oscO;ow;f thrO;on3;aWew goodUisPlock of seagulO;ls;h called wQtful of doO;llaO;rs;anO;da; m5;en;ll fromQrewell to O;arO;ms; gO;ra0M;aZiToO;g's way Rll'sO; hO;ouO;se;ho14;fferPscovery of witO;ch3;entO; wO;orO;ld;nPy in thO;e 0P;ce with dRgerouO;s O;meO;th0Y;ragoN;ns;a0Aertain 04hWinderellaVoRure for weO;llO;neO;ss;nfederacy of duPurt of thorns and rO;os3;nc3;es; sQ;arlie brown0Hristmas O;cSprQsO;toL;ry;inO;ce;arO;ol;magicPscientific railgO;un;alO; iO;ndO;ex;lQppOstle for03;elO;la;ifornia00l toO; sO;py;a03eautiful day in the00oy calledXrRugO;'s O;liO;fe;ief history Qonx O;ta7;le;of O;tiO;me; chO;ristmO;as; neighborO;hoO;od;bysitter's guide to monsterQndO; apaO;rt; hO;unO;ti8;ng;ndrangheQsalem'sO; lO;ot;ta;ovO;ic`; - // console.log('unpacking list..') - let list = Object.keys(unpack$1(model)); - // console.log(list.length.toLocaleString(), 'articles') - - // console.log('compiling lookup..') - let trie = nlp$1.compile(list); - const plugin = { api: function (View) { View.prototype.wikipedia = function () { - return this.lookup(trie) + return this.lookup(this.world.model.wpTree) }; + }, + mutate: (world, nlp) => { + // console.log('unpacking list..') + let list = Object.keys(unpack(model)); + // console.log(list.length.toLocaleString(), 'articles') + world.model.wpTree = nlp.buildTrie(list); } }; diff --git a/plugins/wikipedia/builds/compromise-wikipedia.min.js b/plugins/wikipedia/builds/compromise-wikipedia.min.js index f9ad4e126..0e9d4c686 100644 --- a/plugins/wikipedia/builds/compromise-wikipedia.min.js +++ b/plugins/wikipedia/builds/compromise-wikipedia.min.js @@ -1,2 +1 @@ -var e,a;e=this,a=function(){var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]},a={compute:function(e){const{world:a}=this,i=a.compute;return"string"==typeof e&&i.hasOwnProperty(e)?i[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach(e=>a.compute.hasOwnProperty(e)&&i[e](this)):"function"==typeof e?e(this):console.warn("no compute:",e),this}},i={forEach:function(e){return this.fullPointer.forEach((a,i)=>{let o=this.update([a]);e(o,i)}),this},map:function(e,a){let i=this.fullPointer.map((a,i)=>{let o=this.update([a]);return e(o,i)});if(0===i.length)return a||this.update([]);if(void 0!==i[0]){if("string"==typeof i[0])return i;if("object"==typeof i[0]&&(null===i[0]||!i[0].isView))return i}let o=[];return i.forEach(e=>{o=o.concat(e.fullPointer)}),this.toView(o)},filter:function(e){let a=this.fullPointer;return a=a.filter((a,i)=>{let o=this.update([a]);return e(o,i)}),this.update(a)},find:function(e){let a=this.fullPointer.find((a,i)=>{let o=this.update([a]);return e(o,i)});return this.update([a])},some:function(e){return this.fullPointer.some((a,i)=>{let o=this.update([a]);return e(o,i)})},random:function(e=1){let a=this.fullPointer,i=Math.floor(Math.random()*a.length);return i+e>this.length&&(i=this.length-e,i=i<0?0:i),a=a.slice(i,i+e),this.update(a)}};const o={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let a=[];this.docs.forEach(e=>{e.forEach(e=>{let[i,o]=e.index||[];a.push([i,o,o+1])})});let i=this.update(a);return"number"==typeof e?i.eq(e):i},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let a={};return Object.keys(this._groups).forEach(e=>{a[e]=this.update(this._groups[e])}),a},eq:function(e){let a=this.pointer,i=this._cache||[];if(a||(a=this.docs.map((e,a)=>[a])),a[e]){let o=this.update([a[e]]);return o._cache=i[e],o}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,a){let i=this.pointer||this.docs.map((e,a)=>[a]);return i=i.slice(e,a),this.update(i)},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 a=this.fullPointer,i=e.fullPointer;return!a.length!==i.length&&a.every((e,a)=>!!i[a]&&e[0]===i[a][0]&&e[1]===i[a][1]&&e[2]===i[a][2])},wordCount:function(){return this.docs.reduce((e,a)=>e+=a.filter(e=>""!==e.text).length,0)}};o.group=o.groups,o.fullSentence=o.fullSentences,o.sentence=o.fullSentences,o.lastTerm=o.lastTerms,o.firstTerm=o.firstTerms;var n=o;const r=Object.assign({},n,a,i);r.get=r.eq;var t=r;class View{constructor(a,i,o={}){[["document",a],["world",e],["_groups",o],["_cache",null],["viewType","View"]].forEach(e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})}),this.ptrs=i}get docs(){let a=this.document;return this.ptrs&&(a=e.methods.one.getDoc(this.ptrs,this.document)),a}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:a,document:i}=this;return(a||e.map((e,a)=>[a])).map(e=>{let[a,o,n,r,t]=e;return o=o||0,n=n||(i[a]||[]).length,i[a]&&i[a][o]&&(r=r||i[a][o].id,i[a][n-1]&&(t=t||i[a][n-1].id)),[a,o,n,r,t]})}update(e){let a=new View(this.document,e);if(a._cache&&e&&e.length>1){let i=[];e.forEach(e=>{1===e.length&&i.push(a._cache[e[0]])}),a._cache=i}return a.world=this.world,a}toView(e){return void 0===e&&(e=this.pointer),new View(this.document,e)}fromText(e){const{methods:a}=this;let i=a.one.tokenize.fromString(e,this.world),o=new View(i);return o.world=this.world,o.compute(["normal","lexicon","preTagger"]),o}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 a=this.update(this.pointer);return a.document=e,a._cache=this._cache,a}}Object.assign(View.prototype,t);var O=View;const s=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};var l=function(e,a,i,o){const{methods:n,model:r,compute:t,hooks:O}=a;e.methods&&function(e,a){for(const i in a)e[i]=e[i]||{},Object.assign(e[i],a[i])}(n,e.methods),e.model&&function e(a,i){if(s(i))for(const o in i)s(i[o])?(a[o]||Object.assign(a,{[o]:{}}),e(a[o],i[o])):Object.assign(a,{[o]:i[o]});return a}(r,e.model),e.compute&&Object.assign(t,e.compute),O&&(a.hooks=O.concat(e.hooks||[])),e.api&&e.api(i),e.lib&&Object.keys(e.lib).forEach(a=>o[a]=e.lib[a]),e.tags&&o.addTags(e.tags),e.words&&o.addWords(e.words),e.mutate&&e.mutate(a)};const c=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var h=function(e,a,i){const{methods:o}=i;let n=new a([]);return n.world=i,"number"==typeof e&&(e=String(e)),e?"string"==typeof e?new a(o.one.tokenize.fromString(e,i)):(r=e,"[object Object]"===Object.prototype.toString.call(r)&&e.isView?new a(e.document,e.ptrs):c(e)?c(e[0])?new a(e.map(e=>e.map(e=>({text:e,normal:e,pre:"",post:" ",tags:new Set})))):new a(function(e){return e.map(e=>e.terms.map(e=>(c(e.tags)&&(e.tags=new Set(e.tags)),e)))}(e)):n):n;var r};let u=Object.assign({},e);const d=function(e,a){a&&d.addWords(a);let i=h(e,O,u);return e&&i.compute(u.hooks),i};Object.defineProperty(d,"_world",{value:u,writable:!0}),d.tokenize=function(e,a){const{compute:i}=this._world;a&&d.addWords(a);let o=h(e,O,u);return i.contractions&&o.compute(["alias","normal","machine","contractions"]),o},d.plugin=function(e){return l(e,this._world,O,this),this},d.extend=d.plugin,d.world=function(){return this._world},d.model=function(){return this._world.model},d.methods=function(){return this._world.methods},d.hooks=function(){return this._world.hooks},d.verbose=function(e){const a="undefined"!=typeof process&&process.env?process.env:self.env||{};return a.DEBUG_TAGS="tagger"===e||!0===e||"",a.DEBUG_MATCH="match"===e||!0===e||"",a.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},d.version="14.2.0-rc2";var m=d;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 a=new Set;return e.forEach(e=>{""!==e.normal&&a.add(e.normal),e.switch&&a.add(`%${e.switch}%`),e.implicit&&a.add(e.implicit),e.machine&&a.add(e.machine),e.alias&&e.alias.forEach(e=>a.add(e));let i=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'โ€™]/u.test(e)||/^\p{Lu}$/u.test(e),b=(e,a,i)=>{if(i.forEach(e=>e.dirty=!0),e){let o=[a,0].concat(i);Array.prototype.splice.apply(e,o)}return e},A=function(e){let a=e[e.length-1];!a||/ $/.test(a.post)||/[-โ€“โ€”]/.test(a.post)||(a.post+=" ")},y=(e,a,i)=>{const o=/[-.?!,;:)โ€“โ€”'"]/g;let n=e[a-1];if(!n)return;let r=n.post;if(o.test(r)){let e=r.match(o).join(""),a=i[i.length-1];a.post=e+a.post,n.post=n.post.replace(o,"")}},C=function(e,a,i,o){let[n,r,t]=a;0===r||t===o[n].length?A(i):(A(i),A([e[a[1]]])),function(e,a,i){let o=e[a];if(0!==a||!P(o.text))return;i[0].text=i[0].text.replace(/^\p{Ll}/u,e=>e.toUpperCase());let n=e[a];n.tags.has("ProperNoun")||n.tags.has("Acronym")||P(n.text)&&n.text.length>1&&(n.text=n.text.replace(/^\p{Lu}/u,e=>e.toLowerCase()))}(e,r,i),b(e,r,i)},B=(new Date).getTime(),Q=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var E=function(e){let[a,i]=e.index||[0,0];var o=(new Date).getTime()-B;o=parseInt(o,10),a=a>46655?46655:a,i=i>1294?1294:i;let n=Q((o=o>46655?46655:o).toString(36));n+=Q(a.toString(36));let r=i.toString(36);return r=r.length<2?"0"+r:r,n+=r,n+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+n.toUpperCase()};const D=function(e){e.has("@hasContraction")&&e.grow("@hasContraction").contractions().expand()},F=e=>"[object Array]"===Object.prototype.toString.call(e),R=function(e,a,i){const{document:o,world:n}=a;let r=a.fullPointer,t=a.fullPointer;a.forEach((O,s)=>{let l=O.fullPointer[0],[c]=l,h=o[c],u=function(e,a){const{methods:i}=a;return"string"==typeof e?i.one.tokenize.fromString(e,a)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]:F(e)?F(e[0])?e[0]:e:[]}(e,n);u=function(e){return e.map(e=>(e.id=E(e),e))}(u),i?(D(a.update([l]).firstTerm()),C(h,l,u,o)):(D(a.update([l]).lastTerm()),function(e,a,i,o){let[n,,r]=a,t=(o[n]||[]).length;r{let i=a(e);e.replaceWith(i)}),e}(o,e);e=function(e,a){if("string"!=typeof e)return e;let i=a.groups();return e.replace(w,e=>{let a=e.replace(/\$/,"");return i.hasOwnProperty(a)?i[a].text():e})}(e,o);let n=this.update(i);i=i.map(e=>e.slice(0,3));let r=(n.docs[0]||[]).map(e=>Array.from(e.tags));o.insertAfter(e),n.has("@hasContraction")&&o.contractions&&o.grow("@hasContraction+").contractions().expand(),o.delete(n);let t=o.toView(i).compute(["index","lexicon","preTagger"]);return a.tags&&t.terms().forEach((e,a)=>{e.tagSafe(r[a])}),a.case&&t.docs[0]&&t.docs[0][0]&&0===t.docs[0][0].index[1]&&(t.docs[0][0].text=t.docs[0][0].text.replace(/\w\S*/g,e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase())),t},replace:function(e,a,i){if(e&&!a)return this.replaceWith(e,i);let o=this.match(e);return o.found?o.replaceWith(a,i):this}};var T=S,v=function(e,a){a.forEach(a=>{let[i,o,n]=a,r=n-o;e[i]&&(n===e[i].length&&n>1&&function(e,a){let i=e.length-1,o=e[i],n=e[i-a];n&&o&&(n.post+=o.post,n.post=n.post.replace(/ +([.?!,;:])/,"$1"),n.post=n.post.replace(/[,;:]+([.?!])/,"$1"))}(e[i],r),e[i].splice(o,r))});for(let a=e.length-1;a>=0;a-=1)if(0===e[a].length&&(e.splice(a,1),a===e.length&&e[a-1])){let i=e[a-1],o=i[i.length-1];o&&(o.post=o.post.trimEnd())}return e};const H={remove:function(e){const{indexN:a}=this.methods.one.pointer;let i=this.all(),o=this;e&&(i=this,o=this.match(e)),i.has("@hasContraction")&&i.contractions&&i.grow("@hasContraction").contractions().expand();let n=i.fullPointer,r=o.fullPointer.reverse(),t=v(this.document,r);return n=function(e,a){return(e=e.map(e=>{let[i]=e;return a[i]?(a[i].forEach(a=>{let i=a[2]-a[1];e[1]<=a[1]&&e[2]>=a[2]&&(e[2]-=i)}),e):e})).forEach((a,i)=>{if(0===a[1]&&0==a[2])for(let a=i+1;ae[2]-e[1]>0)).map(e=>(e[3]=null,e[4]=null,e))}(n,a(r)),i.ptrs=n,i.document=t,i.compute("index"),e?i.toView(n):(this.ptrs=[],i.none())}};H.delete=H.remove;var U=H;const V={pre:function(e,a){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach(i=>{let o=i[0];!0===a?o.pre+=e:o.pre=e}),this)},post:function(e,a){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach(i=>{let o=i[i.length-1];!0===a?o.post+=e:o.post=e}),this},trim:function(){if(!this.found)return this;let e=this.docs,a=e[0][0];a.pre=a.pre.trimStart();let i=e[e.length-1],o=i[i.length-1];return o.post=o.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach(e=>{e.forEach((a,i)=>{0!==i&&(a.pre=""),e[i+1]&&(a.post="-")})}),this},dehyphenate:function(){const e=/[-โ€“โ€”]/;return this.docs.forEach(a=>{a.forEach(a=>{e.test(a.post)&&(a.post=" ")})}),this},toQuotations:function(e,a){return e=e||'"',a=a||'"',this.docs.forEach(i=>{i[0].pre=e+i[0].pre;let o=i[i.length-1];o.post=a+o.post}),this},toParentheses:function(e,a){return e=e||"(",a=a||")",this.docs.forEach(i=>{i[0].pre=e+i[0].pre;let o=i[i.length-1];o.post=a+o.post}),this}};V.deHyphenate=V.dehyphenate,V.toQuotation=V.toQuotations;var W=V,Y={alpha:(e,a)=>e.normala.normal?1:0,length:(e,a)=>{let i=e.normal.trim().length,o=a.normal.trim().length;return io?-1:0},wordCount:(e,a)=>e.wordsa.words?-1:0,sequential:(e,a)=>e[0]a[0]?-1:e[1]>a[1]?1:-1,byFreq:function(e){let a={};return e.forEach(e=>{a[e.normal]=a[e.normal]||0,a[e.normal]+=1}),e.sort((e,i)=>{let o=a[e.normal],n=a[i.normal];return on?-1:0}),e}};const X=new Set(["index","sequence","seq","sequential","chron","chronological"]),J=new Set(["freq","frequency","topk","repeats"]),I=new Set(["alpha","alphabetical"]);var K={unique:function(){let e=new Set;return this.filter(a=>{let i=a.text("machine");return!e.has(i)&&(e.add(i),!0)})},reverse:function(){let e=this.pointer||this.docs.map((e,a)=>[a]);return e=[].concat(e),e=e.reverse(),this.update(e)},sort:function(e){let{docs:a,pointer:i}=this;if("function"==typeof e)return function(e,a){let i=e.fullPointer;return i=i.sort((i,o)=>(i=e.update([i]),o=e.update([o]),a(i,o))),e.ptrs=i,e}(this,e);e=e||"alpha";let o=i||a.map((e,a)=>[a]),n=a.map((e,a)=>({index:a,words:e.length,normal:e.map(e=>e.machine||e.normal||"").join(" "),pointer:o[a]}));return X.has(e)&&(e="sequential"),I.has(e)&&(e="alpha"),J.has(e)?(n=Y.byFreq(n),this.update(n.map(e=>e.pointer))):"function"==typeof Y[e]?(n=n.sort(Y[e]),this.update(n.map(e=>e.pointer))):this}};const N=function(e,a){let i=e[e.length-1],o=i[i.length-1];return!1===/ /.test(o.post)&&(o.post+=" "),e=e.concat(a)};var Z={concat:function(e){const{methods:a,document:i,world:o}=this;if("string"==typeof e){let n=a.one.tokenize.fromString(e,o),r=this.fullPointer,t=r[r.length-1][0];return b(i,t+1,n),this.compute("index")}if("object"==typeof e&&e.isView)return function(e,a){if(e.document===a.document){let i=e.fullPointer.concat(a.fullPointer);return e.toView(i).compute("index")}return a.fullPointer.forEach(a=>{a[0]+=e.document.length}),e.document=N(e.document,a.document),e.all()}(this,e);if(n=e,"[object Array]"===Object.prototype.toString.call(n)){let a=N(this.document,e);return this.document=a,this.all()}var n;return this}},L={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 M=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((a,i)=>{0!==i&&(a.text=a.text.replace(/^ *[a-z\u00C0-\u00FF]/,e=>e.toUpperCase())),i!==e.length-1&&(a.post="")})}),this}},G,T,U,W,K,Z,L);var j={api:function(e){Object.assign(e.prototype,M)},compute:{id:function(e){let a=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e)))[0]&&(i[0].pre=e[o][n].pre,i[i.length-1].post=e[o][n].post,i[0].text=e[o][n].text,i[0].normal=e[o][n].normal),e[o].splice(n,1,...i))};const q=/'/,_=new Set(["what","how","when","where","why"]),$=new Set(["be","go","start","think","need"]),ee=new Set(["been","gone"]);var ae=function(e,a){let i=e[a].normal.split(q)[0];if(_.has(i))return[i,"did"];if(e[a+1]){if(ee.has(e[a+1].normal))return[i,"had"];if($.has(e[a+1].normal))return[i,"would"]}return null},ie=function(e,a){return"ain't"===e[a].normal||"aint"===e[a].normal?null:[e[a].normal.replace(/n't/,""),"not"]};const oe=/'/;var ne=(e,a)=>["je",e[a].normal.split(oe)[1]],re=(e,a)=>{let i=e[a].normal.split(oe)[1];return i&&i.endsWith("e")?["la",i]:["le",i]},te=(e,a)=>{let i=e[a].normal.split(oe)[1];return i&&i.endsWith("e")?["du",i]:i&&i.endsWith("s")?["des",i]:["de",i]};const Oe=/^([0-9.]{1,3}[a-z]{0,2}) ?[-โ€“โ€”] ?([0-9]{1,3}[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;var le=function(e,a){let i=e[a];if(!0===i.tags.has("PhoneNumber"))return null;let o=i.text.match(Oe);return null!==o?[o[1],"to",o[2]]:(o=i.text.match(se),null!==o?[o[1],"to",o[4]]:null)};const ce=/'/,he=/^[0-9][^-โ€“โ€”]*[-โ€“โ€”].*?[0-9]/,ue=function(e,a,i,o){let n=a.update();n.document=[e];let r=i+o;i>0&&(i-=1),e[r]&&(r+=1),n.ptrs=[[0,i,r]],n.compute(["lexicon","preTagger","index"])},de={t:(e,a)=>ie(e,a),d:(e,a)=>ae(e,a)},me={j:(e,a)=>ne(e,a),l:(e,a)=>re(e,a),d:(e,a)=>te(e,a)},pe=function(e,a,i,o){for(let n=0;n{let{world:a,document:i}=e;const{model:o,methods:n}=a;let r=o.one.contractions||[];i.forEach((o,t)=>{for(let O=o.length-1;O>=0;O-=1){let s=null,l=null;!0===ce.test(o[O].normal)&&([s,l]=o[O].normal.split(ce));let c=pe(r,o[O],s,l);!c&&de.hasOwnProperty(l)&&(c=de[l](o,O,a)),!c&&me.hasOwnProperty(s)&&(c=me[s](o,O)),c?(c=ge(c,e),x(i,[t,O],c),ue(i[t],e,O,c.length)):he.test(o[O].normal)&&(c=le(o,O),c&&(c=ge(c,e),x(i,[t,O],c),n.one.setTag(c,"NumberRange",a),c[2]&&c[2].tags.has("Time")&&n.one.setTag([c[0]],"Time",a),ue(i[t],e,O,c.length)))}})}},hooks:["contractions"]},Pe=function(e,a,i){const{model:o,methods:n}=i,r=n.one.setTag,t=o.one._multiCache||{},O=o.one.lexicon||{};let s=e[a],l=s.machine||s.normal;return void 0!==e[a+1]&&!0===t[l]?function(e,a,i,o,n){let r=a+4>e.length?e.length-a:4,t=e[a].machine||e[a].normal;for(let O=1;Ot.hasOwnProperty(e));if(e)return r([O],t[e],i,!1,"1-lexicon-alias"),!0}if(!0===be.test(s)){let e=s.replace(be,"");if(t.hasOwnProperty(e)&&e.length>3&&Ae.has(t[e]))return r([O],t[e],i,!1,"1-lexicon-prefix"),!0}return null},Ce={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:function(e){let a={},i={};return Object.keys(e).forEach(o=>{let n=e[o],r=(o=o.toLowerCase().trim()).split(/ /);r.length>1&&(i[r[0]]=!0),a[o]=a[o]||n}),delete a[""],delete a.null,delete a[" "],{lex:a,_multi:i}}}},compute:{lexicon:function(e){const a=e.world;e.docs.forEach(e=>{for(let i=0;i{"string"==typeof e[a]&&e[a].startsWith("#")&&(e[a]=e[a].replace(/^#/,""))}),i.two.expandLexicon){let{lex:n,_multi:r}=i.two.expandLexicon(e,a);Object.assign(o.one.lexicon,n),Object.assign(o.one._multiCache,r)}else if(i.one.expandLexicon){let{lex:n,_multi:r}=i.one.expandLexicon(e,a);Object.assign(o.one.lexicon,n),Object.assign(o.one._multiCache,r)}else Object.assign(o.one.lexicon,e)}},hooks:["lexicon"]},Be=function(e,a){let i=[{}],o=[null],n=[0],r=[],t=0;e.forEach((function(e){let n=0,r=function(e,a){const{methods:i,model:o}=a;return i.one.tokenize.splitTerms(e,o).map(i.one.tokenize.splitWhitespace).map(e=>e.text.toLowerCase())}(e,a);for(let e=0;e0&&!i[t].hasOwnProperty(s);)t=n[t];if(i.hasOwnProperty(t)){let e=i[t][s];n[l]=e,o[e]&&(o[l]=o[l]||[],o[l]=o[l].concat(o[e]))}else n[l]=0}}return{goNext:i,endAs:o,failTo:n}};const Qe=function(e,a,i){let o=0,n=[];for(let r=0;r0&&(void 0===a.goNext[o]||!a.goNext[o].hasOwnProperty(t));)o=a.failTo[o]||0;if(a.goNext[o].hasOwnProperty(t)&&(o=a.goNext[o][t],a.endAs[o])){let i=a.endAs[o];for(let a=0;a0&&(o=o.concat(s))}return e.update(o)};const Fe=(e,a)=>{for(let i=e.length-1;i>=0;i-=1)if(e[i]!==a)return e=e.slice(0,i+1);return e};var Re=function(e){return e.goNext=e.goNext.map(e=>{if(0!==Object.keys(e).length)return e}),e.goNext=Fe(e.goNext,void 0),e.failTo=Fe(e.failTo,0),e.endAs=Fe(e.endAs,null),e},ke={api:function(e){e.prototype.lookup=function(e,a={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let i=(o=e,"[object Object]"===Object.prototype.toString.call(o)?e:Be(e,this.world));var o;let n=De(this,i,a);return n=n.settle(),n}},lib:{compile:function(e){const a=Be(e,this.world());return Re(a)}}};const Ge=function(e,a){return a?(e.forEach(e=>{let i=e[0];a[i]&&(e[0]=a[i][0],e[1]+=a[i][1],e[2]+=a[i][1])}),e):e},we=function(e,a){let{ptrs:i,byGroup:o}=e;return i=Ge(i,a),Object.keys(o).forEach(e=>{o[e]=Ge(o[e],a)}),{ptrs:i,byGroup:o}},Se=e=>"[object Object]"===Object.prototype.toString.call(e),Te=e=>e&&Se(e)&&!0===e.isView,ve=e=>e&&Se(e)&&!0===e.isNet;var He={matchOne:function(e,a,i){const o=this.methods.one;if(Te(e))return this.intersection(e).eq(0);if(ve(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;"string"==typeof e&&(e=o.killUnicode(e,this.world),e=o.parseMatch(e,i));let n={regs:e,group:a,justOne:!0},r=o.match(this.docs,n,this._cache),{ptrs:t,byGroup:O}=we(r,this.fullPointer),s=this.toView(t);return s._groups=O,s},match:function(e,a,i){const o=this.methods.one;if(Te(e))return this.intersection(e);if(ve(e))return this.sweep(e,{tagger:!1}).view.settle();"string"==typeof e&&(e=o.killUnicode(e,this.world),e=o.parseMatch(e,i));let n={regs:e,group:a},r=o.match(this.docs,n,this._cache),{ptrs:t,byGroup:O}=we(r,this.fullPointer),s=this.toView(t);return s._groups=O,s},has:function(e,a,i){const o=this.methods.one;if(Te(e))return e.fullPointer.length>0;if(ve(e))return this.sweep(e,{tagger:!1}).view.found;"string"==typeof e&&(e=o.killUnicode(e,this.world),e=o.parseMatch(e,i));let n={regs:e,group:a,justOne:!0};return o.match(this.docs,n,this._cache).ptrs.length>0},if:function(e,a,i){const o=this.methods.one;if(Te(e))return this.filter(a=>a.intersection(e).found);if(ve(e)){let a=this.sweep(e,{tagger:!1}).view.settle();return this.if(a)}"string"==typeof e&&(e=o.killUnicode(e,this.world),e=o.parseMatch(e,i));let n={regs:e,group:a,justOne:!0},r=this.fullPointer,t=this._cache||[];r=r.filter((e,a)=>{let i=this.update([e]);return o.match(i.docs,n,t[a]).ptrs.length>0});let O=this.update(r);return this._cache&&(O._cache=r.map(e=>t[e[0]])),O},ifNo:function(e,a,i){const{methods:o}=this,n=o.one;if(Te(e))return this.filter(a=>!a.intersection(e).found);if(ve(e)){let a=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(a)}"string"==typeof e&&(e=n.killUnicode(e,this.world),e=n.parseMatch(e,i));let r=this._cache||[],t=this.filter((i,o)=>{let t={regs:e,group:a,justOne:!0};return 0===n.match(i.docs,t,r[o]).ptrs.length});return this._cache&&(t._cache=t.ptrs.map(e=>r[e[0]])),t}},Ue={before:function(e,a,i){const{indexN:o}=this.methods.one.pointer;let n=[],r=o(this.fullPointer);Object.keys(r).forEach(e=>{let a=r[e].sort((e,a)=>e[1]>a[1]?1:-1)[0];a[1]>0&&n.push([a[0],0,a[1]])});let t=this.toView(n);return e?t.match(e,a,i):t},after:function(e,a,i){const{indexN:o}=this.methods.one.pointer;let n=[],r=o(this.fullPointer),t=this.document;Object.keys(r).forEach(e=>{let a=r[e].sort((e,a)=>e[1]>a[1]?-1:1)[0],[i,,o]=a;o{let r=i.before(e,a);if(r.found){let e=r.terms();o[n][1]-=e.length,o[n][3]=e.docs[0][0].id}}),this.update(o)},growRight:function(e,a,i){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,i)),e[0].start=!0;let o=this.fullPointer;return this.forEach((i,n)=>{let r=i.after(e,a);if(r.found){let e=r.terms();o[n][2]+=e.length,o[n][4]=null}}),this.update(o)},grow:function(e,a,i){return this.growRight(e,a,i).growLeft(e,a,i)}};const Ve=function(e,a){return[e[0],e[1],a[2]]},We=(e,a,i)=>{return"string"==typeof e||(o=e,"[object Array]"===Object.prototype.toString.call(o))?a.match(e,i):e||a.none();var o},Ye=function(e,a){let[i,o,n]=e;return a.document[i]&&a.document[i][o]&&(e[3]=e[3]||a.document[i][o].id,a.document[i][n-1]&&(e[4]=e[4]||a.document[i][n-1].id)),e},Xe={splitOn:function(e,a){const{splitAll:i}=this.methods.one.pointer;let o=We(e,this,a).fullPointer,n=i(this.fullPointer,o),r=[];return n.forEach(e=>{r.push(e.passthrough),r.push(e.before),r.push(e.match),r.push(e.after)}),r=r.filter(e=>e),r=r.map(e=>Ye(e,this)),this.update(r)},splitBefore:function(e,a){const{splitAll:i}=this.methods.one.pointer;let o=We(e,this,a).fullPointer,n=i(this.fullPointer,o),r=[];return n.forEach(e=>{r.push(e.passthrough),r.push(e.before),e.match&&e.after?r.push(Ve(e.match,e.after)):(r.push(e.match),r.push(e.after))}),r=r.filter(e=>e),r=r.map(e=>Ye(e,this)),this.update(r)},splitAfter:function(e,a){const{splitAll:i}=this.methods.one.pointer;let o=We(e,this,a).fullPointer,n=i(this.fullPointer,o),r=[];return n.forEach(e=>{r.push(e.passthrough),e.before&&e.match?r.push(Ve(e.before,e.match)):(r.push(e.before),r.push(e.match)),r.push(e.after)}),r=r.filter(e=>e),r=r.map(e=>Ye(e,this)),this.update(r)}};Xe.split=Xe.splitAfter;var Je=Xe;const Ie=Object.assign({},He,Ue,Je);Ie.lookBehind=Ie.before,Ie.lookBefore=Ie.before,Ie.lookAhead=Ie.after,Ie.lookAfter=Ie.after,Ie.notIf=Ie.ifNo;var Ke=function(e){Object.assign(e.prototype,Ie)};const Ne=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,Ze=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,Le=/ /g,Me=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),je=function(e){return e=(e=e.map(e=>e.trim())).filter(e=>e)};var ze=function(e){let a=e.split(Ne),i=[];a.forEach(e=>{Me(e)?i.push(e):i=i.concat(e.split(Ze))}),i=je(i);let o=[];return i.forEach(e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||Me(e)?o.push(e):o=o.concat(e.split(Le))}),o=je(o),o};const xe=/\{([0-9]+)?(, *[0-9]*)?\}/,qe=/&&/,_e=new RegExp(/^<\s*(\S+)\s*>/),$e=e=>e.charAt(0).toUpperCase()+e.substring(1),ea=e=>e.charAt(e.length-1),aa=e=>e.charAt(0),ia=e=>e.substring(1),oa=e=>e.substring(0,e.length-1),na=function(e){return e=ia(e),e=oa(e)},ra=function(e,a){let i={};for(let o=0;o<2;o+=1){if("$"===ea(e)&&(i.end=!0,e=oa(e)),"^"===aa(e)&&(i.start=!0,e=ia(e)),("["===aa(e)||"]"===ea(e))&&(i.group=null,"["===aa(e)&&(i.groupStart=!0),"]"===ea(e)&&(i.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===aa(e))){const a=_e.exec(e);a.length>=2&&(i.group=a[1],e=e.replace(a[0],""))}if("+"===ea(e)&&(i.greedy=!0,e=oa(e)),"*"!==e&&"*"===ea(e)&&"\\*"!==e&&(i.greedy=!0,e=oa(e)),"?"===ea(e)&&(i.optional=!0,e=oa(e)),"!"===aa(e)&&(i.negative=!0,e=ia(e)),"~"===aa(e)&&"~"===ea(e)&&e.length>2&&(e=na(e),i.fuzzy=!0,i.min=a.fuzzy||.85,!1===/\(/.test(e)))return i.word=e,i;if("("===aa(e)&&")"===ea(e)){qe.test(e)?(i.choices=e.split(qe),i.operator="and"):(i.choices=e.split("|"),i.operator="or"),i.choices[0]=ia(i.choices[0]);let o=i.choices.length-1;i.choices[o]=oa(i.choices[o]),i.choices=i.choices.map(e=>e.trim()),i.choices=i.choices.filter(e=>e),i.choices=i.choices.map(e=>e.split(/ /g).map(e=>ra(e,a))),e=""}if("/"===aa(e)&&"/"===ea(e))return e=na(e),a.caseSensitive&&(i.use="text"),i.regex=new RegExp(e),i;if("{"===aa(e)&&"}"===ea(e))return e=na(e),/\//.test(e)?(i.sense=e,i.greedy=!0):i.machine=e,i;if("<"===aa(e)&&">"===ea(e))return e=na(e),i.chunk=$e(e),i.greedy=!0,i;if("%"===aa(e)&&"%"===ea(e))return e=na(e),i.switch=e,i}return!0===xe.test(e)&&(e=e.replace(xe,(e,a,o)=>(void 0===o?(i.min=Number(a),i.max=Number(a)):(o=o.replace(/, */,""),void 0===a?(i.min=0,i.max=Number(o)):(i.min=Number(a),i.max=Number(o||999))),i.greedy=!0,i.min||(i.optional=!0),""))),"#"===aa(e)?(i.tag=ia(e),i.tag=$e(i.tag),i):"@"===aa(e)?(i.method=ia(e),i):"."===e?(i.anything=!0,i):"*"===e?(i.anything=!0,i.greedy=!0,i.optional=!0,i):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),a.caseSensitive?i.use="text":e=e.toLowerCase(),i.word=e),i)};var ta=ra,Oa=function(e){return e=function(e){return e.map(e=>(e.fuzzy&&e.choices&&e.choices.forEach(a=>{1===a.length&&a[0].word&&(a[0].fuzzy=!0,a[0].min=e.min)}),e))}(e=(e=function(e){let a=0,i=null;for(let o=0;o{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 a=e[0];return!0!==a.fuzzy&&!a.start&&!a.end&&void 0!==a.word&&!0!==a.negative&&!0!==a.optional&&!0!==a.method})&&(e.fastOr=new Set,e.choices.forEach(a=>{e.fastOr.add(a[0].word)}),delete e.choices)}return e}))},sa=function(e,a={}){if(null==e||""===e)return[];"number"==typeof e&&(e=String(e));let i=ze(e);return i=i.map(e=>ta(e,a)),i=Oa(i),i};const la=function(e,a){for(let i of a)if(e.has(i))return!0;return!1};var ca=function(e,a){for(let i=0;ii?o:i)+1;if(Math.abs(i-o)>(n||100))return n||100;let r,t,O,s,l,c,h=[];for(let e=0;e4)return i;O=a[r-1],s=t===O?0:1,l=h[n-1][r]+1,(c=h[n][r-1]+1)1&&r>1&&t===a[r-2]&&e[n-2]===O&&(c=h[n-2][r-2]+s)-1!==e.post.indexOf(a),fa=(e,a)=>-1!==e.pre.indexOf(a),Pa={hasQuote:e=>ua.test(e.pre)||da.test(e.post),hasComma:e=>ga(e,","),hasPeriod:e=>!0===ga(e,".")&&!1===ga(e,"..."),hasExclamation:e=>ga(e,"!"),hasQuestionMark:e=>ga(e,"?")||ga(e,"ยฟ"),hasEllipses:e=>ga(e,"..")||ga(e,"โ€ฆ")||fa(e,"..")||fa(e,"โ€ฆ"),hasSemicolon:e=>ga(e,";"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>ma.test(e.post)||ma.test(e.pre),hasDash:e=>pa.test(e.post)||pa.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)};Pa.hasQuotation=Pa.hasQuote;var ba=Pa;let Aa=function(){};Aa=function(e,a,i,o){let n=function(e,a,i,o){if(!0===a.anything)return!0;if(!0===a.start&&0!==i)return!1;if(!0===a.end&&i!==o-1)return!1;if(void 0!==a.word){if(a.use)return a.word===e[a.use];if(null!==e.machine&&e.machine===a.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(a.word))return!0;if(!0===a.fuzzy){if(a.word===e.root)return!0;if(ha(a.word,e.normal)>=a.min)return!0}return!(!e.alias||!e.alias.some(e=>e===a.word))||a.word===e.text||a.word===e.normal}if(void 0!==a.tag)return!0===e.tags.has(a.tag);if(void 0!==a.method)return"function"==typeof ba[a.method]&&!0===ba[a.method](e);if(void 0!==a.pre)return e.pre&&e.pre.includes(a.pre);if(void 0!==a.post)return e.post&&e.post.includes(a.post);if(void 0!==a.regex){let i=e.normal;return a.use&&(i=e[a.use]),a.regex.test(i)}return void 0!==a.chunk?e.chunk===a.chunk:void 0!==a.switch?e.switch===a.switch:void 0!==a.machine?e.normal===a.machine||e.machine===a.machine||e.root===a.machine:void 0!==a.sense?e.sense===a.sense:void 0!==a.fastOr?a.fastOr.has(e.implicit)||a.fastOr.has(e.normal)||a.fastOr.has(e.text)||a.fastOr.has(e.machine):void 0!==a.choices&&("and"===a.operator?a.choices.every(a=>Aa(e,a,i,o)):a.choices.some(a=>Aa(e,a,i,o)))}(e,a,i,o);return!0===a.negative?!n:n};var ya=Aa;const Ca=function(e,a){if(!0===e.end&&!0===e.greedy&&a.start_i+a.ti.max?(e.t=e.t+i.max,!0):(!0===e.hasGroup&&(Ba(e,e.t).length=o-e.t),e.t=o,!0)};const Ea=function(e,a=0){let i=e.regs[e.r],o=!1;for(let r=0;r{let n=0,r=e.t+o+a+n;if(void 0===e.terms[r])return!1;let t=ya(e.terms[r],i,r+e.start_i,e.phrase_length);if(!0===t&&!0===i.greedy)for(let a=1;a{let o=i.every((a,i)=>{let o=e.t+i;return void 0!==e.terms[o]&&ya(e.terms[o],a,o,e.phrase_length)});return!0===o&&i.length>a&&(a=i.length),o})&&a}(e);if(o){if(!0===i.negative)return null;if(!0===e.hasGroup&&(Ba(e,e.t).length+=o),!0===i.end){let a=e.phrase_length-1;if(e.t+e.start_i!==a)return null}return e.t+=o,!0}return!!i.optional||null},Ra=function(e){const{regs:a}=e;let i=a[e.r],o=Object.assign({},i);return o.negative=!1,!0!==ya(e.terms[e.t],o,e.start_i+e.t,e.phrase_length)||null},ka=function(e){const{regs:a}=e;let i=a[e.r],o=e.terms[e.t],n=ya(o,a[e.r+1],e.start_i+e.t,e.phrase_length);if(i.negative||n){let i=e.terms[e.t+1];i&&ya(i,a[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}},Ga=function(e){const{regs:a,phrase_length:i}=e;let o=a[e.r];return e.t=function(e,a){let i=Object.assign({},e.regs[e.r],{start:!1,end:!1}),o=e.t;for(;e.te.t?null:!0!==o.end||e.start_i+e.t===i||null},wa=function(e){let a=e.terms[e.t],i=e.regs[e.r];if(a.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;i.word===a.normal&&(e.t+=1),"hasContraction"===i.method&&(e.t+=1)}},Sa=function(e){const{regs:a}=e;let i=a[e.r],o=e.terms[e.t],n=e.t;return!!(i.optional&&a[e.r+1]&&i.negative)||(i.optional&&a[e.r+1]&&ka(e),o.implicit&&e.terms[e.t+1]&&wa(e),e.t+=1,!0===i.end&&e.t!==e.terms.length&&!0!==i.greedy?null:!0!==i.greedy||Ga(e)?(!0===e.hasGroup&&function(e,a){let i=e.regs[e.r];const o=Ba(e,a);e.t>1&&i.greedy?o.length+=e.t-a:o.length++}(e,n),!0):null)},Ta=function(e,a,i,o){if(0===e.length||0===a.length)return null;let n={t:0,terms:e,r:0,regs:a,groups:{},start_i:i,phrase_length:o,inGroup:null};for(;n.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!==Ca(e,n)){if(!0!==ya(n.terms[n.t],e,n.start_i+n.t,n.phrase_length)){if(e.negative&&!Ra(n))return null;if(!0!==e.optional)return null}else if(!Sa(n))return null}else if(!Sa(n))return null}else if(!Sa(n))return null}else if(!Fa(n))return null}else if(!Da(n))return null}else if(!Qa(n))return null}let r=[null,i,n.t+i];if(r[1]===r[2])return null;let t={};return Object.keys(n.groups).forEach(e=>{let a=n.groups[e],o=i+a.start;t[e]=[null,o,o+a.length]}),{pointer:r,groups:t}},va=function(e,a){let i=[],o={};return 0===e.length||("number"==typeof a&&(a=String(a)),a?e.forEach(e=>{e.groups[a]&&i.push(e.groups[a])}):e.forEach(e=>{i.push(e.pointer),Object.keys(e.groups).forEach(a=>{o[a]=o[a]||[],o[a].push(e.groups[a])})})),{ptrs:i,byGroup:o}};const Ha=function(e,a){return e.pointer[0]=a,Object.keys(e.groups).forEach(i=>{e.groups[i][0]=a}),e},Ua=function(e,a,i){let o=Ta(e,a,0,e.length);return o?(o=Ha(o,i),o):null};var Va={api:Ke,methods:{one:{termMethods:ba,parseMatch:sa,match:function(e,a,i){i=i||[];let{regs:o,group:n,justOne:r}=a,t=[];if(!o||0===o.length)return{ptrs:[],byGroup:{}};const O=o.filter(e=>!0!==e.optional&&!0!==e.negative).length;e:for(let a=0;ae&&(e=Math.abs(i-1))}}else{let e=Ua(n,o,a);e&&t.push(e)}}return!0===o[o.length-1].end&&(t=t.filter(a=>{let i=a.pointer[0];return e[i].length===a.pointer[2]})),t=va(t,n),t.ptrs.forEach(a=>{let[i,o,n]=a;a[3]=e[i][o].id,a[4]=e[i][n-1].id}),t}}},lib:{parseMatch:function(e,a){const i=this.world();let o=i.methods.one.killUnicode;return o&&(e=o(e,i)),i.methods.one.parseMatch(e,a)}}};const Wa=/^\../,Ya=/^#./,Xa=function(e,a){let i={},o={};return Object.keys(a).forEach(n=>{let r=a[n],t=function(e){let a="",i="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),Wa.test(e)?a=``),a+=">",{start:a,end:i}}(n);"string"==typeof r&&(r=e.match(r)),r.docs.forEach(e=>{if(e.every(e=>e.implicit))return;let a=e[0].id;i[a]=i[a]||[],i[a].push(t.start);let n=e[e.length-1].id;o[n]=o[n]||[],o[n].push(t.end)})}),{starts:i,ends:o}};var Ja={html:function(e){let{starts:a,ends:i}=Xa(this,e),o="";return this.docs.forEach(e=>{for(let n=0;n{let i=e.pre||"",n=e.post||"";"some"===a.punctuation&&(i=i.replace(Ka,""),Za.test(n)&&(n=" "),n=n.replace(Na,""),n=n.replace(/\?!+/,"?"),n=n.replace(/!+/,"!"),n=n.replace(/\?+/,"?"),n=n.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(n=n.replace(/\./,""))),"some"===a.whitespace&&(i=i.replace(/\s/,""),n=n.replace(/\s+/," ")),a.keepPunct||(i=i.replace(Ka,""),n="-"===n?" ":n.replace(Ia,""));let r=e[a.form||"text"]||e.normal||"";"implicit"===a.form&&(r=e.implicit||e.text),"root"===a.form&&e.implicit&&(r=e.root||e.implicit||e.normal),"machine"!==a.form&&"implicit"!==a.form&&"root"!==a.form||!e.implicit||n&&La.test(n)||(n+=" "),o+=i+r+n}),!1===i&&(o=o.trim()),!0===a.lowerCase&&(o=o.toLowerCase()),o},ja={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"}};ja.clean=ja.normal,ja.reduced=ja.root;var za=ja;const xa={text:!0,terms:!0};let qa={case:"none",unicode:"some",form:"machine",punctuation:"some"};const _a=function(e,a){return Object.assign({},e,a)},$a={text:e=>Ma(e,{keepPunct:!0},!1),normal:e=>Ma(e,_a(za.normal,{keepPunct:!0}),!1),implicit:e=>Ma(e,_a(za.implicit,{keepPunct:!0}),!1),machine:e=>Ma(e,qa,!1),root:e=>Ma(e,_a(qa,{form:"root"}),!1),offset:e=>{let a=$a.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:a}},terms:e=>e.map(e=>{let a=Object.assign({},e);return a.tags=Array.from(e.tags),a}),confidence:(e,a,i)=>a.eq(i).confidence(),syllables:(e,a,i)=>a.eq(i).syllables(),sentence:(e,a,i)=>a.eq(i).fullSentence().text(),dirty:e=>e.some(e=>!0===e.dirty)};$a.sentences=$a.sentence,$a.clean=$a.normal,$a.reduced=$a.root;const ei={json:function(e){let a=(i=this,"string"==typeof(o=(o=e)||{})&&(o={}),(o=Object.assign({},xa,o)).offset&&i.compute("offset"),i.docs.map((e,a)=>{let n={};return Object.keys(o).forEach(r=>{o[r]&&$a[r]&&(n[r]=$a[r](e,i,a))}),n}));var i,o;return"number"==typeof e?a[e]:a}};ei.data=ei.json;var ai=ei,ii=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach(e=>{console.groupCollapsed(e.text());let a=e.docs[0].map(e=>{let a=e.text||"-";return e.implicit&&(a="["+e.implicit+"]"),{text:a,tags:"["+Array.from(e.tags).join(", ")+"]"}});console.table(a,["text","tags"]),console.groupEnd()})};const oi="";var ni={green:e=>""+e+oi,red:e=>""+e+oi,blue:e=>""+e+oi,magenta:e=>""+e+oi,cyan:e=>""+e+oi,yellow:e=>""+e+oi,black:e=>""+e+oi,dim:e=>""+e+oi,i:e=>""+e+oi},ri=function(e){let{docs:a,model:i}=e;0===a.length&&console.log(ni.blue("\n โ”€โ”€โ”€โ”€โ”€โ”€")),a.forEach(e=>{console.log(ni.blue("\n โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€")),e.forEach(e=>{let a=[...e.tags||[]],o=e.text||"-";e.sense&&(o="{"+e.sense+"}"),e.implicit&&(o="["+e.implicit+"]"),o=ni.yellow(o);let n="'"+o+"'";n=n.padEnd(18);let r=ni.blue(" โ”‚ ")+ni.i(n)+" - "+function(e,a){return a.one.tagSet&&(e=e.map(e=>{if(!a.one.tagSet.hasOwnProperty(e))return e;const i=a.one.tagSet[e].color||"blue";return ni[i](e)})),e.join(", ")}(a,i);console.log(r)})})},ti=function(e){let{docs:a}=e;console.log(""),a.forEach(e=>{let a=[];e.forEach(e=>{"Noun"===e.chunk?a.push(ni.blue(e.implicit||e.normal)):"Verb"===e.chunk?a.push(ni.green(e.implicit||e.normal)):"Adjective"===e.chunk?a.push(ni.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?a.push(ni.red(e.implicit||e.normal)):a.push(e.implicit||e.normal)}),console.log(a.join(" "),"\n")})},Oi=function(e){if(!e.found)return;let a={};e.fullPointer.forEach(e=>{a[e[0]]=a[e[0]]||[],a[e[0]].push(e)}),Object.keys(a).forEach(i=>{let o=e.update([[Number(i)]]).text();e.update(a[i]).json({offset:!0}).forEach((e,a)=>{o=function(e,a,i){let o=((e,a,i)=>{let o=9*i,n=a.start+o,r=n+a.length;return[e.substring(0,n),e.substring(n,r),e.substring(r,e.length)]})(e,a,i);return`${o[0]}${ni.blue(o[1])}${o[2]}`}(o,e.offset,a)}),console.log(o)})};const si=function(e){let a=e.pre||"",i=e.post||"";return a+e.text+i};var li=function(e,a){let i=function(e,a){let i={};return Object.keys(a).forEach(o=>{e.match(o).fullPointer.forEach(e=>{i[e[3]]={fn:a[o],end:e[2]}})}),i}(e,a),o="";return e.docs.forEach((a,n)=>{for(let r=0;re.reduce((e,a)=>e+a.pre+a.text+a.post,"").trim()).filter(e=>e);if("freq"===e||"frequency"===e||"topk"===e)return function(e){let a={};return e.forEach(e=>{a[e]=a[e]||0,a[e]+=1}),Object.keys(a).map(e=>({normal:e,count:a[e]})).sort((e,a)=>e.count>a.count?-1:0)}(this.json({normal:!0}).map(e=>e.normal));if("terms"===e){let e=[];return this.docs.forEach(a=>{let i=a.terms.map(e=>e.text);i=i.filter(e=>e),e=e.concat(i)}),e}return"tags"===e?this.docs.map(e=>e.reduce((e,a)=>(e[a.implicit||a.normal]=Array.from(a.tags),e),{})):"debug"===e?this.debug():this.text()}},hi={text:function(e){let a={keepSpace:!0,keepPunct:!0};var i;if(e&&"string"==typeof e&&za.hasOwnProperty(e)?a=Object.assign({},za[e]):e&&(i=e,"[object Object]"===Object.prototype.toString.call(i))&&(a=Object.assign({},e,a)),this.pointer){a.keepSpace=!1;let e=this.pointer[0];e&&e[1]?a.keepPunct=!1:a.keepPunct=!0}else a.keepPunct=!0;return function(e,a){let i="";if(!e||!e[0]||!e[0][0])return i;for(let o=0;on||n<=i&&r>i},pi=function(e){let a={};return e.forEach(e=>{a[e[0]]=a[e[0]]||[],a[e[0]].push(e)}),a};var gi=function(e,a){let i=pi(a),o=[];return e.forEach(e=>{let[a]=e,n=i[a]||[];if(n=n.filter(a=>function(e,a){return e[1]<=a[1]&&a[2]<=e[2]}(e,a)),0===n.length)return void o.push({passthrough:e});n=n.sort((e,a)=>e[1]-a[1]);let r=e;n.forEach((e,a)=>{let i=function(e,a){let[i,o]=e,n=a[1],r=a[2],t={};if(or&&(t.after=[i,r,e[2]]),t}(r,e);n[a+1]?(o.push({before:i.before,match:i.match}),i.after&&(r=i.after)):o.push(i)})}),o},fi={one:{termList:function(e){let a=[];for(let i=0;i{if(!o)return;let[r,t,O,s,l]=o,c=a[r]||[];if(void 0===t&&(t=0),void 0===O&&(O=c.length),!s||c[t]&&c[t].id===s)c=c.slice(t,O);else{let i=function(e,a,i){for(let o=0;o<4;o+=1){if(a[i-o]){let n=a[i-o].findIndex(a=>a.id===e);if(-1!==n)return[i-o,n]}if(a[i+o]){let n=a[i+o].findIndex(a=>a.id===e);if(-1!==n)return[i+o,n]}}return null}(s,a,r);if(null!==i){let o=O-t;c=a[i[0]].slice(i[1],i[1]+o);let r=c[0]?c[0].id:null;e[n]=[i[0],i[1],i[1]+o,r]}}0!==c.length&&t!==O&&(l&&c[c.length-1].id!==l&&(c=function(e,a){let[i,o,,,n]=e,r=a[i],t=r.findIndex(e=>e.id===n);return-1===t?(e[2]=a[i].length,e[4]=r.length?r[r.length-1].id:null):e[2]=t,a[i].slice(o,e[2]+1)}(o,a)),i.push(c))}),i=i.filter(e=>e.length>0),i},pointer:{indexN:pi,splitAll:gi}}},Pi=function(e,a){let i=e.concat(a),o=pi(i),n=[];return i.forEach(e=>{let[a]=e;if(1===o[a].length)return void n.push(e);let i=o[a].filter(a=>mi(e,a));i.push(e);let r=function(e){let a=e[0][1],i=e[0][2];return e.forEach(e=>{e[1]i&&(i=e[2])}),[e[0][0],a,i]}(i);n.push(r)}),n=function(e){let a={};for(let i=0;i{e.passthrough&&i.push(e.passthrough),e.before&&i.push(e.before),e.after&&i.push(e.after)}),i},Ai=function(e,a){let i=pi(a),o=[];return e.forEach(e=>{let a=i[e[0]]||[];a=a.filter(a=>mi(e,a)),0!==a.length&&a.forEach(a=>{let i=function(e,a){let i=e[1]a[2]?a[2]:e[2];return i{return"string"==typeof e||(i=e,"[object Array]"===Object.prototype.toString.call(i))?a.match(e):e||a.none();var i},Ci=function(e,a){return e.map(e=>{let[i,o]=e;return a[i]&&a[i][o]&&(e[3]=a[i][o].id),e})},Bi={union:function(e){e=yi(e,this);let a=Pi(this.fullPointer,e.fullPointer);return a=Ci(a,this.document),this.toView(a)}};Bi.and=Bi.union,Bi.intersection=function(e){e=yi(e,this);let a=Ai(this.fullPointer,e.fullPointer);return a=Ci(a,this.document),this.toView(a)},Bi.not=function(e){e=yi(e,this);let a=bi(this.fullPointer,e.fullPointer);return a=Ci(a,this.document),this.toView(a)},Bi.difference=Bi.not,Bi.complement=function(){let e=this.all(),a=bi(e.fullPointer,this.fullPointer);return a=Ci(a,this.document),this.toView(a)},Bi.settle=function(){let e=this.fullPointer;return e.forEach(a=>{e=Pi(e,[a])}),e=Ci(e,this.document),this.update(e)};var Qi={methods:fi,api:function(e){Object.assign(e.prototype,Bi)}},Ei=function(e,a){const i=a.one.parseMatch;return e.forEach(e=>{e.regs=i(e.match),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo])}),e};function Di(e,a,i){return e.splice(a,1,...i),e}const Fi=function(e){return e.fastOr?Array.from(e.fastOr).map(e=>[{word:e}]):e.choices},Ri=function(e,a){let i=Object.assign({},e,a);return delete i.choices,delete i.fastOr,delete i.operator,i};var ki=function(e){let a=[];return e.forEach(e=>{for(let i=0;i{let n=Object.assign({},e);n.regs=n.regs.slice(0),o=o.map(a=>Ri(e.regs[i],a)),n.regs=Di(n.regs,i,o),a.push(n)})}a.push(e)}),a};const Gi=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var wi=function(e){return e.forEach(e=>{e.needs=Array.from(function(e){let a=new Set;return e.forEach(e=>{let i=Gi(e);i?a.add(i):"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{let i=Gi(e);i&&a.add(i)})})}),a}(e.regs)),e.minWords=e.regs.filter(e=>!e.optional).length}),e},Si=function(e){let a={};return e.forEach(e=>{e.needs.forEach(i=>{a[i]=a[i]||[],a[i].push(e)})}),a},Ti=function(e,a){return e.map(e=>{let i=[];return e.forEach(e=>{a.hasOwnProperty(e)&&(i=i.concat(a[e]))}),new Set(i)})},vi=function(e,a){for(let i=0;ie.needs.every(e=>o.has(e))),e[i]=e[i].filter(e=>void 0===e.ifNo||!0!==e.ifNo.some(e=>a[i].has(e)))}return e},Hi=function(e,a,i,o){let n=[];for(let r=0;r0&&(s.ptrs.forEach(e=>{e[0]=r;let a=Object.assign({},O,{pointer:e});void 0!==O.unTag&&(a.unTag=O.unTag),n.push(a)}),!0===o.matchOne))return[n[0]]}return n},Ui=function(e,a){let[i,o,n]=e.pointer,r=a[i],t=o>4?o-2:0,O=e.tag||"";var s;s=e.tag,"[object Array]"===Object.prototype.toString.call(s)&&(O=e.tag.join(" #"));let l=e.reason||e.match;l=l?`|${l}|`:"";let c=(" "+l).padEnd(20)+" - ";const h=e=>""+e+"";for(;tn+2);t+=1){let e=r[t].machine||r[t].normal;c+=t>o&&t{let a=e.pointer,i=o[a[0]][a[1]],n=a[2]-a[1];return i.index&&(e.pointer=[i.index[0],i.index[1],a[1]+n]),e});let t=r.map(e=>e.pointer);return r=r.map(e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e)),{view:this.update(t),found:r}}},methods:{one:{buildNet:function(e,a){e=Ei(e,a),e=ki(e);let i=(e=wi(e)).filter(e=>0===e.needs.length),o=Si(e);return delete o["#Noun"],delete o["#Verb"],{index:o,always:i}},bulkMatch:function(e,a,i,o={}){let n=i.one.cacheDoc(e),r=Ti(n,a.index);return r=vi(r,n),a.always.length>0&&(r=r.map(e=>e.concat(a.always))),r=function(e,a){return e.map((e,i)=>{let o=a[i].length;return e.filter(e=>o>=e.minWords)})}(r,e),Hi(r,e,i,o)},bulkTagger:function(e,a,i){const{model:o,methods:n}=i,{getDoc:r,setTag:t,unTag:O}=n.one;if(0===e.length)return e;const s="undefined"!=typeof process&&process.env?process.env:self.env||{};return s.DEBUG_TAGS&&console.log(`\n โ†’ ${e.length} corrections:`),e.map(e=>{if(!e.tag&&!e.chunk)return;let n=e.reason||e.match;s.DEBUG_TAGS&&Ui(e,a);let l=r([e.pointer],a)[0];if(!0===e.safe){if(!1===Vi(l,e.tag,o))return;if("-"===l[l.length-1].post)return}void 0!==e.tag&&(t(l,e.tag,i,e.safe,n),1===l.length&&"Noun"===e.tag&&l[0].text&&null!==l[0].text.match(/..s$/)&&t(l,"Plural",i,e.safe,"quick-plural")),void 0!==e.unTag&&O(l,e.unTag,i,e.safe,n),e.chunk&&l.forEach(a=>a.chunk=e.chunk)})}}}};const Yi=/ /,Xi=function(e,a){"Noun"===a&&(e.chunk=a),"Verb"===a&&(e.chunk=a)},Ji=function(e,a,i,o){if(!0===e.tags.has(a))return null;if("."===a)return null;let n=i[a];if(n){if(n.not&&n.not.length>0)for(let a=0;a0)for(let a=0;a{let o=e.text||"["+e.implicit+"]";var n;"string"!=typeof a&&a.length>2&&(a=a.slice(0,2).join(", #")+" +"),a="string"!=typeof a?a.join(", #"):a,console.log(` ${(n=o,""+n+"").padEnd(24)} โ†’ #${a.padEnd(25)} ${(e=>""+e+"")(i)}`)})(e[0],a,n),1!=(O=a,"[object Array]"===Object.prototype.toString.call(O)))if(a=a.trim(),Yi.test(a))!function(e,a,i,o){let n=a.split(Yi);e.forEach((e,a)=>{let r=n[a];r&&(r=r.replace(/^#/,""),Ji(e,r,i,o))})}(e,a,r,o);else{a=a.replace(/^#/,"");for(let i=0;iIi(e,a,i,o))};var Ki=Ii,Ni=function(e,a,i){a=a.trim().replace(/^#/,"");for(let o=0;o0)for(let e=0;e/),i=[];a.forEach(e=>{i=i.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let a=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return a=a.map(e=>e.trim()).filter(e=>e),a=a.map(e=>Zi({id:e})),a}return[Zi({id:e})]}(e))}),i=i.filter(e=>e);let o=i[0];for(let e=1;e{let i=[],o=[e];for(;o.length>0;){let e=o.pop();i.push(e),e.children&&e.children.forEach(i=>{a&&a(e,i),o.push(i)})}return i},zi=e=>"[object Array]"===Object.prototype.toString.call(e),xi=e=>(e=e||"").trim(),qi=function(e=[]){return"string"==typeof e?function(e){let a=e.split(/\r?\n/),i=[];a.forEach(e=>{if(!e.trim()||Li.test(e))return;let a=(e=>{const a=/^( {2}|\t)/;let i=0;for(;a.test(e);)e=e.replace(a,""),i+=1;return i})(e);i.push({indent:a,node:Mi(e)})});let o=function(e){let a={children:[]};return e.forEach((i,o)=>{0===i.indent?a.children=a.children.concat(i.node):e[o-1]&&function(e,a){let i=e[a].indent;for(;a>=0;a-=1)if(e[a].indent{a[e.id]=e});let i=Zi({});return e.forEach(e=>{if((e=Zi(e)).parent)if(a.hasOwnProperty(e.parent)){let i=a[e.parent];delete e.parent,i.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else i.children.push(e)}),i}(e):(ji(a=e).forEach(Zi),a);var a},_i=function(e,a){let i="-> ";a&&(i=(e=>""+e+"")("โ†’ "));let o="";return ji(e).forEach((e,n)=>{let r=e.id||"";if(a&&(r=(e=>""+e+"")(r)),0===n&&!e.id)return;let t=e._cache.parents.length;o+=" ".repeat(t)+i+r+"\n"}),o},$i=function(e){let a=ji(e);a.forEach(e=>{delete(e=Object.assign({},e)).children});let i=a[0];return i&&!i.id&&0===Object.keys(i.props).length&&a.shift(),a},eo={text:_i,txt:_i,array:$i,flat:$i},ao=function(e,a){return"nested"===a||"json"===a?e:"debug"===a?(console.log(_i(e,!0)),null):eo.hasOwnProperty(a)?eo[a](e):e},io=e=>{ji(e,(e,a)=>{e.id&&(e._cache.parents=e._cache.parents||[],a._cache.parents=e._cache.parents.concat([e.id]))})},oo=/\//;class g{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 a=this.json.props||{};return"string"==typeof e&&(a[e]=!0),this.json.props=Object.assign(a,e),this}get(e){if(e=xi(e),!oo.test(e)){let a=this.json.children.find(a=>a.id===e);return new g(a)}let a=((e,a)=>{let i=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(a=a||"");for(let a=0;ae.id===i[a]);if(!o)return null;e=o}return e})(this.json,e)||Zi({});return new g(a)}add(e,a={}){if(zi(e))return e.forEach(e=>this.add(xi(e),a)),this;e=xi(e);let i=Zi({id:e,props:a});return this.json.children.push(i),new g(i)}remove(e){return e=xi(e),this.json.children=this.json.children.filter(a=>a.id!==e),this}nodes(){return ji(this.json).map(e=>(delete(e=Object.assign({},e)).children,e))}cache(){return(e=>{let a=ji(e,(e,a)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],a._cache.parents=e._cache.parents.concat([e.id]))}),i={};a.forEach(e=>{e.id&&(i[e.id]=e)}),a.forEach(e=>{e._cache.parents.forEach(a=>{i.hasOwnProperty(a)&&i[a]._cache.children.push(e.id)})}),e._cache.children=Object.keys(i)})(this.json),this}list(){return ji(this.json)}fillDown(){var e;return e=this.json,ji(e,(e,a)=>{a.props=((e,a)=>(Object.keys(a).forEach(i=>{if(a[i]instanceof Set){let o=e[i]||new Set;e[i]=new Set([...o,...a[i]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(a[i])){let o=e[i]||{};e[i]=Object.assign({},a[i],o)}else zi(a[i])?e[i]=a[i].concat(e[i]||[]):void 0===e[i]&&(e[i]=a[i])}),e))(a.props,e.props)}),this}depth(){io(this.json);let e=ji(this.json),a=e.length>1?1:0;return e.forEach(e=>{if(0===e._cache.parents.length)return;let i=e._cache.parents.length+1;i>a&&(a=i)}),a}out(e){return io(this.json),ao(this.json,e)}debug(){return io(this.json),ao(this.json,"debug"),this}}const no=function(e){let a=qi(e);return new g(a)};no.prototype.plugin=function(e){e(this)};var ro={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const to=function(e){if(ro.hasOwnProperty(e.id))return ro[e.id];if(ro.hasOwnProperty(e.is))return ro[e.is];let a=e._cache.parents.find(e=>ro[e]);return ro[a]};var Oo=function(e){const a={};return e.forEach(e=>{let{not:i,also:o,is:n,novel:r}=e.props,t=e._cache.parents;o&&(t=t.concat(o)),a[e.id]={is:n,not:i,novel:r,also:o,parents:t,children:e._cache.children,color:to(e)}}),Object.keys(a).forEach(e=>{let i=new Set(a[e].not);a[e].not.forEach(e=>{a[e]&&a[e].children.forEach(e=>i.add(e))}),a[e].not=Array.from(i)}),a};const so=function(e){return e?"string"==typeof e?[e]:e:[]};var lo=function(e,a){return e=function(e,a){return Object.keys(e).forEach(i=>{e[i].isA&&(e[i].is=e[i].isA),e[i].notA&&(e[i].not=e[i].notA),e[i].is&&"string"==typeof e[i].is&&(a.hasOwnProperty(e[i].is)||e.hasOwnProperty(e[i].is)||(e[e[i].is]={})),e[i].not&&"string"==typeof e[i].not&&!e.hasOwnProperty(e[i].not)&&(a.hasOwnProperty(e[i].not)||e.hasOwnProperty(e[i].not)||(e[e[i].not]={}))}),e}(e,a),Object.keys(e).forEach(a=>{e[a].children=so(e[a].children),e[a].not=so(e[a].not)}),Object.keys(e).forEach(a=>{(e[a].not||[]).forEach(i=>{e[i]&&e[i].not&&e[i].not.push(a)})}),e},co={one:{setTag:Ki,unTag:Ni,addTags:function(e,a){Object.keys(a).length>0&&(e=function(e){return Object.keys(e).forEach(a=>{e[a]=Object.assign({},e[a]),e[a].novel=!0}),e}(e)),e=lo(e,a);const i=function(e){const a=Object.keys(e).map(a=>{let i=e[a];const o={not:new Set(i.not),also:i.also,is:i.is,novel:i.novel};return{id:a,parent:i.is,props:o,children:[]}});return no(a).cache().fillDown().out("array")}(Object.assign({},a,e));return Oo(i)}}};const ho=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var uo={tag:function(e,a="",i){if(!this.found||!e)return this;let o=this.termList();if(0===o.length)return this;const{methods:n,verbose:r,world:t}=this;return!0===r&&console.log(" + ",e,a||""),ho(e)?e.forEach(e=>n.one.setTag(o,e,t,i,a)):n.one.setTag(o,e,t,i,a),this.uncache(),this},tagSafe:function(e,a=""){return this.tag(e,a,!0)},unTag:function(e,a){if(!this.found||!e)return this;let i=this.termList();if(0===i.length)return this;const{methods:o,verbose:n,model:r}=this;!0===n&&console.log(" - ",e,a||"");let t=r.one.tagSet;return ho(e)?e.forEach(e=>o.one.unTag(i,e,t)):o.one.unTag(i,e,t),this.uncache(),this},canBe:function(e){let a=this.model.one.tagSet;if(!a.hasOwnProperty(e))return this;let i=a[e].not||[],o=[];this.document.forEach((e,a)=>{e.forEach((e,n)=>{i.find(a=>e.tags.has(a))&&o.push([a,n,n+1])})});let n=this.update(o);return this.difference(n)}},mo=function(e){Object.assign(e.prototype,uo)},po={addTags:function(e){const{model:a,methods:i}=this.world(),o=a.one.tagSet;let n=(0,i.one.addTags)(e,o);return a.one.tagSet=n,this}};const go=new Set(["Auxiliary","Possessive"]);var fo={model:{one:{tagSet:{}}},compute:{tagRank:function(e){const{document:a,world:i}=e,o=i.model.one.tagSet;a.forEach(e=>{e.forEach(e=>{let a=Array.from(e.tags);e.tagRank=function(e,a){return e.sort((e,i)=>{if(go.has(e)||!a.hasOwnProperty(i))return 1;if(go.has(i)||!a.hasOwnProperty(e))return-1;let o=a[e].children||[],n=o.length;return o=a[i].children||[],n-o.length})}(a,o)})})}},methods:co,api:mo,lib:po};const Po=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,bo=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex -var Ao=function(e){let a=[],i=e.split(bo);for(let e=0;e0&&(o.push(a),n[e]="")}if(0===o.length)return[e];for(let e=1;e(e[a]=!0,e),{});const Wo=/^[ \n\t.[\](){}โŸจโŸฉ:,ุŒใ€โ€’โ€“โ€”โ€•โ€ฆ!โ€นโ€บยซยปโ€\-?โ€˜โ€™;/โ„ยท&*โ€ข^โ€ โ€กยฐยกยฟโ€ปโ„–รทร—ยบยช%โ€ฐ+โˆ’=โ€ฑยถโ€ฒโ€ณโ€ดยง~|โ€–ยฆยฉโ„—ยฎโ„ โ„ขยคโ‚ณเธฟ\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,Yo=/[ \n\t.'[\](){}โŸจโŸฉ:,ุŒใ€โ€’โ€“โ€”โ€•โ€ฆ!โ€นโ€บยซยปโ€\-?โ€˜โ€™;/โ„ยท&*@โ€ข^โ€ โ€กยฐยกยฟโ€ป#โ„–รทร—ยบยชโ€ฐ+โˆ’=โ€ฑยถโ€ฒโ€ณโ€ดยง~|โ€–ยฆยฉโ„—ยฎโ„ โ„ขยคโ‚ณเธฟ\u0022\uFF02\u201D\u00B4\u301E]+$/,Xo=/['โ€™]/,Jo=/^[a-z]\.([a-z]\.)+/i,Io=/^[-+.][0-9]/,Ko=/^'[0-9]{2}/;var No=function(e){let a=e,i="",o="";return""===(e=(e=e.replace(Wo,a=>(i=a,"-"!==i&&"+"!==i&&"."!==i||!Io.test(e)?"'"===i&&Ko.test(e)?(i="",a):"":(i="",a)))).replace(Yo,n=>(o=n,Xo.test(n)&&/[sn]['โ€™]$/.test(a)&&!1===Xo.test(i)?(o=o.replace(Xo,""),"'"):!0===Jo.test(e)?(o=o.replace(/\./,""),"."):"")))&&(a=a.replace(/ *$/,e=>(o=e||"","")),e=a,i=""),{str:e,pre:i,post:o}},Zo=function(e){let a=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=a),e=e.replace(/([0-9]),([0-9])/g,"$1$2")};const Lo=/([A-Z]\.)+[A-Z]?,?$/,Mo=/^[A-Z]\.,?$/,jo=/[A-Z]{2,}('s|,)?$/,zo=/([a-z]\.)+[a-z]\.?$/;var xo=function(e){return function(e){return!0===Lo.test(e)||!0===zo.test(e)||!0===Mo.test(e)||!0===jo.test(e)}(e)&&(e=e.replace(/\./g,"")),e},qo=function(e,a){const i=a.methods.one.killUnicode;let o=e.text||"";o=Zo(o),o=i(o,a),o=xo(o),e.normal=o},_o={one:{killUnicode:function(e,a){const i=a.model.one.unicode||{};let o=(e=e||"").split("");return o.forEach((e,a)=>{i[e]&&(o[a]=i[e])}),o.join("")},tokenize:{splitSentences:Ro,splitTerms:function(e,a){let i=[],o=[];if("number"==typeof(e=e||"")&&(e=String(e)),function(e){return"[object Array]"===Object.prototype.toString.call(e)}(e))return e;const n=e.split(Uo);for(let e=0;e0?(i[i.length-1]+=r,i.push(a)):i.push(r+a),r=""):r+=a}return r&&(0===i.length&&(i[0]=""),i[i.length-1]+=r),i=To(i),i=wo(i),i=i.filter(e=>e),i},splitWhitespace:e=>{let{str:a,pre:i,post:o}=No(e);return{text:a,pre:i,post:o,tags:new Set}},fromString:function(e,a){const{methods:i,model:o}=a,{splitSentences:n,splitTerms:r,splitWhitespace:t}=i.one.tokenize;return e=n(e=e||"",o).map(e=>{let i=r(e,o);return i=i.map(t),i.forEach(e=>{qo(e,a)}),i})}}}},$o={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let en={},an={};[[["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(a=>{en[a]=!0,an[a]="Abbreviation",void 0!==e[1]&&(an[a]=[an[a],e[1]])})});var on=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mid","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce((e,a)=>(e[a]=!0,e),{});let nn={"!":"ยก","?":"ยฟษ",'"':'โ€œโ€"โโž',"'":"โ€˜โ€›โ›โœโ€™","-":"โ€”โ€“",a:"ยชร€รร‚รƒร„ร…ร รกรขรฃรครฅฤ€ฤฤ‚ฤƒฤ„ฤ…ววŽวžวŸว วกวบวปศ€ศศ‚ศƒศฆศงศบฮ†ฮ‘ฮ”ฮ›ฮฌฮฑฮปะะฐัฆังำำ‘ำ’ำ“ฦ›รฆ",b:"รŸรพฦ€ฦฦ‚ฦƒฦ„ฦ…ษƒฮ’ฮฒฯฯฆะ‘ะ’ะชะฌะฒัŠัŒัขัฃาŒา",c:"ยขยฉร‡รงฤ†ฤ‡ฤˆฤ‰ฤŠฤ‹ฤŒฤฦ†ฦ‡ฦˆศปศผอปอผฯฒฯนฯฝฯพะกัั”า€าาชาซ",d:"รฤŽฤฤฤ‘ฦ‰ฦŠศกฦ‹ฦŒ",e:"รˆร‰รŠร‹รจรฉรชรซฤ’ฤ“ฤ”ฤ•ฤ–ฤ—ฤ˜ฤ™ฤšฤ›ฦศ„ศ…ศ†ศ‡ศจศฉษ†ษ‡ฮˆฮ•ฮžฮฃฮญฮตฮพฯตะ€ะะ•ะตัั‘าผาฝาพาฟำ–ำ—",f:"ฦ‘ฦ’ฯœฯำบำปา’า“ลฟ",g:"ฤœฤฤžฤŸฤ ฤกฤขฤฃฦ“วควฅวฆวงวดวต",h:"ฤคฤฅฤฆฤงฦ•วถศžศŸฮ‰ฮ—ะ‚ะŠะ‹ะะฝั’ั›าขาฃาคาฅาบาปำ‰ำŠ",I:"รŒรรŽร",i:"รฌรญรฎรฏฤจฤฉฤชฤซฤฌฤญฤฎฤฏฤฐฤฑฦ–ฦ—ศˆศ‰ศŠศ‹ฮŠฮฮชฮฏฮนฯŠะ†ะ‡ั–ั—",j:"ฤดฤตวฐศทษˆษ‰ฯณะˆั˜",k:"ฤถฤทฤธฦ˜ฦ™วจวฉฮšฮบะŒะ–ะšะถะบัœาšา›าœาาžาŸา าก",l:"ฤนฤบฤปฤผฤฝฤพฤฟล€ลล‚ฦšฦชว€ววศดศฝฮ™ำ€ำ",m:"ฮœฯบฯปะœะผำำŽ",n:"ร‘รฑลƒล„ล…ล†ล‡ลˆล‰ลŠล‹ฦฦžวธวนศ ศตฮฮ ฮฎฮทฯžะะ˜ะ™ะ›ะŸะธะนะปะฟัาŠา‹ำ…ำ†ำขำฃำคำฅฯ€",o:"ร’ร“ร”ร•ร–ร˜รฐรฒรณรดรตรถรธลŒลลŽลลล‘ฦŸฦ ฦกว‘ว’วชวซวฌวญวพวฟศŒศศŽศศชศซศฌศญศฎศฏศฐศฑฮŒฮ˜ฮŸฮธฮฟฯƒฯŒฯ•ฯ˜ฯ™ฯฌฯดะžะคะพัฒัณำฆำงำจำฉำชำซ",p:"ฦคฮกฯฯทฯธฯผะ ั€าŽารž",q:"ษŠษ‹",r:"ล”ล•ล–ล—ล˜ล™ฦฆศศ‘ศ’ศ“ษŒษะƒะ“ะฏะณัั“าา‘",s:"ลšล›ลœลลžลŸล ลกฦงฦจศ˜ศ™ศฟะ…ั•",t:"ลขลฃลคลฅลฆลงฦซฦฌฦญฦฎศšศ›ศถศพฮ“ฮคฯ„ฯฎะขั‚",u:"ยตร™รšร›รœรนรบรปรผลจลฉลชลซลฌลญลฎลฏลฐลฑลฒลณฦฏฦฐฦฑฦฒว“ว”ว•ว–ว—ว˜ว™วšว›วœศ”ศ•ศ–ศ—ษ„ฮฐฮผฯ…ฯ‹ฯ",v:"ฮฝัดัตัถัท",w:"ลดลตฦœฯ‰ฯŽฯ–ฯขฯฃะจะฉัˆั‰ักัฟ",x:"ร—ฮงฯ‡ฯ—ฯฐะฅั…าฒาณำผำฝำพำฟ",y:"รรฝรฟลถลทลธฦณฦดศฒศณษŽษฮŽฮฅฮซฮณฯˆฯ’ฯ“ฯ”ะŽะฃัƒั‡ัžัฐัฑาฎาฏาฐาฑำฎำฏำฐำฑำฒำณ",z:"ลนลบลปลผลฝลพฦตฦถศคศฅษ€ฮ–"},rn={};Object.keys(nn).forEach((function(e){nn[e].split("").forEach((function(a){rn[a]=e}))}));const tn=/\//,On=/[a-z]\.[a-z]/i,sn=/[0-9]/;var ln=function(e,a){let i=e.normal||e.text;const o=a.model.one.aliases;if(o.hasOwnProperty(i)&&(e.alias=e.alias||[],e.alias.push(o[i])),tn.test(i)&&!On.test(i)&&!sn.test(i)){let a=i.split(tn);a.length<=2&&a.forEach(a=>{""!==(a=a.trim())&&(e.alias=e.alias||[],e.alias.push(a))})}return e};const cn=/^\p{Letter}+-\p{Letter}+$/u;var hn=function(e){let a=e.implicit||e.normal||e.text;a=a.replace(/['โ€™]s$/,""),a=a.replace(/s['โ€™]$/,"s"),a=a.replace(/([aeiou][ktrp])in'$/,"$1ing"),cn.test(a)&&(a=a.replace(/-/g,"")),a=a.replace(/^[#@]/,""),a!==e.normal&&(e.machine=a)},un=function(e){let a=0,i=0,o=e.document;for(let e=0;edn(e,ln),machine:e=>dn(e,hn),normal:e=>dn(e,qo),freq:function(e){let a=e.docs,i={};for(let e=0;e{let t=(e=e.toLowerCase().trim()).length;a.max&&t>a.max&&(t=a.max);for(let O=a.min;O{delete o[e]}),o};const fn={safe:!0,min:3};var Pn={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=pn},lib:{typeahead:function(e=[],a={}){let i=this.model();var o;a=Object.assign({},fn,a),o=e,"[object Object]"===Object.prototype.toString.call(o)&&(Object.assign(i.one.lexicon,e),e=Object.keys(e));let n=gn(e,a,this.world());return Object.keys(n).forEach(e=>{i.one.typeahead.hasOwnProperty(e)?delete i.one.typeahead[e]:i.one.typeahead[e]=n[e]}),this}},compute:{typeahead:function(e){const a=e.model.one.typeahead,i=e.docs;if(0===i.length||0===Object.keys(a).length)return;let o=i[i.length-1]||[],n=o[o.length-1];if(!n.post&&a.hasOwnProperty(n.normal)){let i=a[n.normal];n.implicit=i,n.machine=i,n.typeahead=!0,e.compute.preTagger&&e.last().unTag("*").compute(["lexicon","preTagger"])}}},hooks:["typeahead"]};m.extend(j),m.extend(di),m.extend(Va),m.extend(Qi),m.extend(fo),m.plugin(fe),m.extend(mn),m.plugin(f),m.extend(ke),m.extend(Pn),m.extend(Ce),m.extend(Wi);const bn=36,An="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",yn=An.split("").reduce((function(e,a,i){return e[a]=i,e}),{});var Cn=function(e){if(void 0!==yn[e])return yn[e];let a=0,i=1,o=bn,n=1;for(;i=0;i--,n*=bn){let o=e.charCodeAt(i)-48;o>10&&(o-=7),a+=o*n}return a},Bn=function(e){const a=new RegExp("([0-9A-Z]+):([0-9A-Z]+)");for(let i=0;i{let r=e.nodes[o];"!"===r[0]&&(a.push(n),r=r.slice(1));const t=r.split(/([A-Z0-9,]+)/g);for(let r=0;r{const i=a.split("ยฆ");return e[i[0]]=i[1],e},{}),i={};return Object.keys(a).forEach((function(e){const o=En(a[e]);"true"===e&&(e=!0);for(let a=0;a=0;O--,n*=a){let a=e.charCodeAt(O)-48;a>10&&(a-=7),i+=a*n}return i};const o=function(a,e,O){const o=i(e);return o{let n=a.nodes[i];"!"===n[0]&&(e.push(r),n=n.slice(1));const t=n.split(/([A-Z0-9,]+)/g);for(let n=0;n{let O=Object.keys(function(a){const e=a.split("|").reduce(((a,e)=>{const O=e.split("ยฆ");return a[O[0]]=O[1],a}),{}),O={};return Object.keys(e).forEach((function(a){const i=r(e[a]);"true"===a&&(a=!0);for(let e=0;e"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach(e=>a.compute.hasOwnProperty(e)&&i[e](this)):"function"==typeof e?e(this):console.warn("no compute:",e),this}};var i={forEach:function(e){return this.fullPointer.forEach((a,i)=>{let o=this.update([a]);e(o,i)}),this},map:function(e,a){let i=this.fullPointer.map((a,i)=>{let o=this.update([a]);return e(o,i)});if(0===i.length)return a||this.update([]);if(void 0!==i[0]){if("string"==typeof i[0])return i;if("object"==typeof i[0]&&(null===i[0]||!i[0].isView))return i}let o=[];return i.forEach(e=>{o=o.concat(e.fullPointer)}),this.toView(o)},filter:function(e){let a=this.fullPointer;return a=a.filter((a,i)=>{let o=this.update([a]);return e(o,i)}),this.update(a)},find:function(e){let a=this.fullPointer.find((a,i)=>{let o=this.update([a]);return e(o,i)});return this.update([a])},some:function(e){return this.fullPointer.some((a,i)=>{let o=this.update([a]);return e(o,i)})},random:function(e=1){let a=this.fullPointer,i=Math.floor(Math.random()*a.length);return i+e>this.length&&(i=this.length-e,i=i<0?0:i),a=a.slice(i,i+e),this.update(a)}};const o={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let a=[];this.docs.forEach(e=>{e.forEach(e=>{let[i,o]=e.index||[];a.push([i,o,o+1])})});let i=this.update(a);return"number"==typeof e?i.eq(e):i},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let a={};return Object.keys(this._groups).forEach(e=>{a[e]=this.update(this._groups[e])}),a},eq:function(e){let a=this.pointer,i=this._cache||[];if(a||(a=this.docs.map((e,a)=>[a])),a[e]){let o=this.update([a[e]]);return o._cache=i[e],o}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,a){let i=this.pointer||this.docs.map((e,a)=>[a]);return i=i.slice(e,a),this.update(i)},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 a=this.fullPointer,i=e.fullPointer;return!a.length!==i.length&&a.every((e,a)=>!!i[a]&&(e[0]===i[a][0]&&e[1]===i[a][1]&&e[2]===i[a][2]))},wordCount:function(){return this.docs.reduce((e,a)=>e+=a.filter(e=>""!==e.text).length,0)}};o.group=o.groups,o.fullSentence=o.fullSentences,o.sentence=o.fullSentences,o.lastTerm=o.lastTerms,o.firstTerm=o.firstTerms;var r=o;const n=Object.assign({},r,a,i);n.get=n.eq;var t=n;class View{constructor(a,i,o={}){[["document",a],["world",e],["_groups",o],["_cache",null],["viewType","View"]].forEach(e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})}),this.ptrs=i}get docs(){let a=this.document;return this.ptrs&&(a=e.methods.one.getDoc(this.ptrs,this.document)),a}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:a,document:i}=this;return(a||e.map((e,a)=>[a])).map(e=>{let[a,o,r,n,t]=e;return o=o||0,r=r||(i[a]||[]).length,i[a]&&i[a][o]&&(n=n||i[a][o].id,i[a][r-1]&&(t=t||i[a][r-1].id)),[a,o,r,n,t]})}update(e){let a=new View(this.document,e);if(a._cache&&e&&e.length>1){let i=[];e.forEach(e=>{1===e.length&&i.push(a._cache[e[0]])}),a._cache=i}return a.world=this.world,a}toView(e){return void 0===e&&(e=this.pointer),new View(this.document,e)}fromText(e){const{methods:a}=this;let i=a.one.tokenize.fromString(e,this.world),o=new View(i);return o.world=this.world,o.compute(["normal","lexicon","preTagger"]),o}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 a=this.update(this.pointer);return a.document=e,a._cache=this._cache,a}}Object.assign(View.prototype,t);var O=View;const s=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};var l=function(e,a,i,o){const{methods:r,model:n,compute:t,hooks:O}=a;e.methods&&function(e,a){for(const i in a)e[i]=e[i]||{},Object.assign(e[i],a[i])}(r,e.methods),e.model&&function e(a,i){if(s(i))for(const o in i)s(i[o])?(a[o]||Object.assign(a,{[o]:{}}),e(a[o],i[o])):Object.assign(a,{[o]:i[o]});return a}(n,e.model),e.compute&&Object.assign(t,e.compute),O&&(a.hooks=O.concat(e.hooks||[])),e.api&&e.api(i),e.lib&&Object.keys(e.lib).forEach(a=>o[a]=e.lib[a]),e.tags&&o.addTags(e.tags),e.words&&o.addWords(e.words),e.mutate&&e.mutate(a)};const c=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var h=function(e,a,i){const{methods:o}=i;let r=new a([]);if(r.world=i,"number"==typeof e&&(e=String(e)),!e)return r;if("string"==typeof e){return new a(o.one.tokenize.fromString(e,i))}if(n=e,"[object Object]"===Object.prototype.toString.call(n)&&e.isView)return new a(e.document,e.ptrs);var n;if(c(e)){if(c(e[0])){return new a(e.map(e=>e.map(e=>({text:e,normal:e,pre:"",post:" ",tags:new Set}))))}return new a(function(e){return e.map(e=>e.terms.map(e=>(c(e.tags)&&(e.tags=new Set(e.tags)),e)))}(e))}return r};let u=Object.assign({},e);const d=function(e,a){a&&d.addWords(a);let i=h(e,O,u);return e&&i.compute(u.hooks),i};Object.defineProperty(d,"_world",{value:u,writable:!0}),d.tokenize=function(e,a){const{compute:i}=this._world;a&&d.addWords(a);let o=h(e,O,u);return i.contractions&&o.compute(["alias","normal","machine","contractions"]),o},d.plugin=function(e){return l(e,this._world,O,this),this},d.extend=d.plugin,d.world=function(){return this._world},d.model=function(){return this._world.model},d.methods=function(){return this._world.methods},d.hooks=function(){return this._world.hooks},d.verbose=function(e){const a="undefined"!=typeof process&&process.env?process.env:self.env||{};return a.DEBUG_TAGS="tagger"===e||!0===e||"",a.DEBUG_MATCH="match"===e||!0===e||"",a.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},d.version="14.2.0-rc2";var m=d;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 a=new Set;return e.forEach(e=>{""!==e.normal&&a.add(e.normal),e.switch&&a.add(`%${e.switch}%`),e.implicit&&a.add(e.implicit),e.machine&&a.add(e.machine),e.alias&&e.alias.forEach(e=>a.add(e));let i=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'โ€™]/u.test(e)||/^\p{Lu}$/u.test(e),b=(e,a,i)=>{if(i.forEach(e=>e.dirty=!0),e){let o=[a,0].concat(i);Array.prototype.splice.apply(e,o)}return e},A=function(e){let a=e[e.length-1];!a||/ $/.test(a.post)||/[-โ€“โ€”]/.test(a.post)||(a.post+=" ")},y=(e,a,i)=>{const o=/[-.?!,;:)โ€“โ€”'"]/g;let r=e[a-1];if(!r)return;let n=r.post;if(o.test(n)){let e=n.match(o).join(""),a=i[i.length-1];a.post=e+a.post,r.post=r.post.replace(o,"")}},C=function(e,a,i,o){let[r,n,t]=a;0===n||t===o[r].length?A(i):(A(i),A([e[a[1]]])),function(e,a,i){let o=e[a];if(0!==a||!P(o.text))return;i[0].text=i[0].text.replace(/^\p{Ll}/u,e=>e.toUpperCase());let r=e[a];r.tags.has("ProperNoun")||r.tags.has("Acronym")||P(r.text)&&r.text.length>1&&(r.text=(n=r.text,n.replace(/^\p{Lu}/u,e=>e.toLowerCase())));var n}(e,n,i),b(e,n,i)},B=(new Date).getTime(),Q=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var E=function(e){let[a,i]=e.index||[0,0];var o=(new Date).getTime()-B;o=parseInt(o,10),a=a>46655?46655:a,i=i>1294?1294:i;let r=Q((o=o>46655?46655:o).toString(36));r+=Q(a.toString(36));let n=i.toString(36);return n=n.length<2?"0"+n:n,r+=n,r+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+r.toUpperCase()};const D=function(e){if(e.has("@hasContraction")){e.grow("@hasContraction").contractions().expand()}},F=e=>"[object Array]"===Object.prototype.toString.call(e),R=function(e,a,i){const{document:o,world:r}=a;let n=a.fullPointer,t=a.fullPointer;a.forEach((O,s)=>{let l=O.fullPointer[0],[c]=l,h=o[c],u=function(e,a){const{methods:i}=a;return"string"==typeof e?i.one.tokenize.fromString(e,a)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]:F(e)?F(e[0])?e[0]:e:[]}(e,r);u=function(e){return e.map(e=>(e.id=E(e),e))}(u),i?(D(a.update([l]).firstTerm()),C(h,l,u,o)):(D(a.update([l]).lastTerm()),function(e,a,i,o){let[r,,n]=a,t=(o[r]||[]).length;n{let i=a(e);e.replaceWith(i)}),e}(o,e);e=function(e,a){if("string"!=typeof e)return e;let i=a.groups();return e.replace(w,e=>{let a=e.replace(/\$/,"");return i.hasOwnProperty(a)?i[a].text():e})}(e,o);let r=this.update(i);i=i.map(e=>e.slice(0,3));let n=(r.docs[0]||[]).map(e=>Array.from(e.tags));if(o.insertAfter(e),r.has("@hasContraction")&&o.contractions){o.grow("@hasContraction+").contractions().expand()}o.delete(r);let t=o.toView(i).compute(["index","lexicon","preTagger"]);return a.tags&&t.terms().forEach((e,a)=>{e.tagSafe(n[a])}),a.case&&t.docs[0]&&t.docs[0][0]&&0===t.docs[0][0].index[1]&&(t.docs[0][0].text=t.docs[0][0].text.replace(/\w\S*/g,e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase())),t},S.replace=function(e,a,i){if(e&&!a)return this.replaceWith(e,i);let o=this.match(e);return o.found?o.replaceWith(a,i):this};var v=S;var T=function(e,a){a.forEach(a=>{let[i,o,r]=a,n=r-o;e[i]&&(r===e[i].length&&r>1&&function(e,a){let i=e.length-1,o=e[i],r=e[i-a];r&&o&&(r.post+=o.post,r.post=r.post.replace(/ +([.?!,;:])/,"$1"),r.post=r.post.replace(/[,;:]+([.?!])/,"$1"))}(e[i],n),e[i].splice(o,n))});for(let a=e.length-1;a>=0;a-=1)if(0===e[a].length&&(e.splice(a,1),a===e.length&&e[a-1])){let i=e[a-1],o=i[i.length-1];o&&(o.post=o.post.trimEnd())}return e};const H={remove:function(e){const{indexN:a}=this.methods.one.pointer;let i=this.all(),o=this;if(e&&(i=this,o=this.match(e)),i.has("@hasContraction")&&i.contractions){i.grow("@hasContraction").contractions().expand()}let r=i.fullPointer,n=o.fullPointer.reverse(),t=T(this.document,n);return r=function(e,a){return(e=e.map(e=>{let[i]=e;return a[i]?(a[i].forEach(a=>{let i=a[2]-a[1];e[1]<=a[1]&&e[2]>=a[2]&&(e[2]-=i)}),e):e})).forEach((a,i)=>{if(0===a[1]&&0==a[2])for(let a=i+1;ae[2]-e[1]>0)).map(e=>(e[3]=null,e[4]=null,e))}(r,a(n)),i.ptrs=r,i.document=t,i.compute("index"),e?i.toView(r):(this.ptrs=[],i.none())}};H.delete=H.remove;var U=H;const V={pre:function(e,a){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach(i=>{let o=i[0];!0===a?o.pre+=e:o.pre=e}),this)},post:function(e,a){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach(i=>{let o=i[i.length-1];!0===a?o.post+=e:o.post=e}),this},trim:function(){if(!this.found)return this;let e=this.docs,a=e[0][0];a.pre=a.pre.trimStart();let i=e[e.length-1],o=i[i.length-1];return o.post=o.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach(e=>{e.forEach((a,i)=>{0!==i&&(a.pre=""),e[i+1]&&(a.post="-")})}),this},dehyphenate:function(){const e=/[-โ€“โ€”]/;return this.docs.forEach(a=>{a.forEach(a=>{e.test(a.post)&&(a.post=" ")})}),this},toQuotations:function(e,a){return e=e||'"',a=a||'"',this.docs.forEach(i=>{i[0].pre=e+i[0].pre;let o=i[i.length-1];o.post=a+o.post}),this},toParentheses:function(e,a){return e=e||"(",a=a||")",this.docs.forEach(i=>{i[0].pre=e+i[0].pre;let o=i[i.length-1];o.post=a+o.post}),this}};V.deHyphenate=V.dehyphenate,V.toQuotation=V.toQuotations;var W=V;var Y={alpha:(e,a)=>e.normala.normal?1:0,length:(e,a)=>{let i=e.normal.trim().length,o=a.normal.trim().length;return io?-1:0},wordCount:(e,a)=>e.wordsa.words?-1:0,sequential:(e,a)=>e[0]a[0]?-1:e[1]>a[1]?1:-1,byFreq:function(e){let a={};return e.forEach(e=>{a[e.normal]=a[e.normal]||0,a[e.normal]+=1}),e.sort((e,i)=>{let o=a[e.normal],r=a[i.normal];return or?-1:0}),e}};const X=new Set(["index","sequence","seq","sequential","chron","chronological"]),J=new Set(["freq","frequency","topk","repeats"]),I=new Set(["alpha","alphabetical"]);var K={unique:function(){let e=new Set;return this.filter(a=>{let i=a.text("machine");return!e.has(i)&&(e.add(i),!0)})},reverse:function(){let e=this.pointer||this.docs.map((e,a)=>[a]);return e=[].concat(e),e=e.reverse(),this.update(e)},sort:function(e){let{docs:a,pointer:i}=this;if("function"==typeof e)return function(e,a){let i=e.fullPointer;return i=i.sort((i,o)=>(i=e.update([i]),o=e.update([o]),a(i,o))),e.ptrs=i,e}(this,e);e=e||"alpha";let o=i||a.map((e,a)=>[a]),r=a.map((e,a)=>({index:a,words:e.length,normal:e.map(e=>e.machine||e.normal||"").join(" "),pointer:o[a]}));return X.has(e)&&(e="sequential"),I.has(e)&&(e="alpha"),J.has(e)?(r=Y.byFreq(r),this.update(r.map(e=>e.pointer))):"function"==typeof Y[e]?(r=r.sort(Y[e]),this.update(r.map(e=>e.pointer))):this}};const N=function(e,a){let i=e[e.length-1],o=i[i.length-1];return!1===/ /.test(o.post)&&(o.post+=" "),e=e.concat(a)};var Z={concat:function(e){const{methods:a,document:i,world:o}=this;if("string"==typeof e){let r=a.one.tokenize.fromString(e,o),n=this.fullPointer,t=n[n.length-1][0];return b(i,t+1,r),this.compute("index")}if("object"==typeof e&&e.isView)return function(e,a){if(e.document===a.document){let i=e.fullPointer.concat(a.fullPointer);return e.toView(i).compute("index")}return a.fullPointer.forEach(a=>{a[0]+=e.document.length}),e.document=N(e.document,a.document),e.all()}(this,e);if(r=e,"[object Array]"===Object.prototype.toString.call(r)){let a=N(this.document,e);return this.document=a,this.all()}var r;return this}};var L={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 M=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((a,i)=>{0!==i&&(a.text=a.text.replace(/^ *[a-z\u00C0-\u00FF]/,e=>e.toUpperCase())),i!==e.length-1&&(a.post="")})}),this}},G,v,U,W,K,Z,L);var j={api:function(e){Object.assign(e.prototype,M)},compute:{id:function(e){let a=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e)))[0]&&(i[0].pre=e[o][r].pre,i[i.length-1].post=e[o][r].post,i[0].text=e[o][r].text,i[0].normal=e[o][r].normal),e[o].splice(r,1,...i))};const q=/'/,_=new Set(["what","how","when","where","why"]),$=new Set(["be","go","start","think","need"]),ee=new Set(["been","gone"]);var ae=function(e,a){let i=e[a].normal.split(q)[0];if(_.has(i))return[i,"did"];if(e[a+1]){if(ee.has(e[a+1].normal))return[i,"had"];if($.has(e[a+1].normal))return[i,"would"]}return null};var ie=function(e,a){if("ain't"===e[a].normal||"aint"===e[a].normal)return null;return[e[a].normal.replace(/n't/,""),"not"]};const oe=/'/;var re=(e,a)=>["je",e[a].normal.split(oe)[1]],ne=(e,a)=>{let i=e[a].normal.split(oe)[1];return i&&i.endsWith("e")?["la",i]:["le",i]},te=(e,a)=>{let i=e[a].normal.split(oe)[1];return i&&i.endsWith("e")?["du",i]:i&&i.endsWith("s")?["des",i]:["de",i]};const Oe=/^([0-9.]{1,3}[a-z]{0,2}) ?[-โ€“โ€”] ?([0-9]{1,3}[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;var le=function(e,a){let i=e[a];if(!0===i.tags.has("PhoneNumber"))return null;let o=i.text.match(Oe);return null!==o?[o[1],"to",o[2]]:(o=i.text.match(se),null!==o?[o[1],"to",o[4]]:null)};const ce=/'/,he=/^[0-9][^-โ€“โ€”]*[-โ€“โ€”].*?[0-9]/,ue=function(e,a,i,o){let r=a.update();r.document=[e];let n=i+o;i>0&&(i-=1),e[n]&&(n+=1),r.ptrs=[[0,i,n]],r.compute(["lexicon","preTagger","index"])},de={t:(e,a)=>ie(e,a),d:(e,a)=>ae(e,a)},me={j:(e,a)=>re(e,a),l:(e,a)=>ne(e,a),d:(e,a)=>te(e,a)},pe=function(e,a,i,o){for(let r=0;r{let{world:a,document:i}=e;const{model:o,methods:r}=a;let n=o.one.contractions||[];i.forEach((o,t)=>{for(let O=o.length-1;O>=0;O-=1){let s=null,l=null;!0===ce.test(o[O].normal)&&([s,l]=o[O].normal.split(ce));let c=pe(n,o[O],s,l);!c&&de.hasOwnProperty(l)&&(c=de[l](o,O,a)),!c&&me.hasOwnProperty(s)&&(c=me[s](o,O)),c?(c=ge(c,e),x(i,[t,O],c),ue(i[t],e,O,c.length)):he.test(o[O].normal)&&(c=le(o,O),c&&(c=ge(c,e),x(i,[t,O],c),r.one.setTag(c,"NumberRange",a),c[2]&&c[2].tags.has("Time")&&r.one.setTag([c[0]],"Time",a),ue(i[t],e,O,c.length)))}})}},hooks:["contractions"]};var Pe=function(e,a,i){const{model:o,methods:r}=i,n=r.one.setTag,t=o.one._multiCache||{},O=o.one.lexicon||{};let s=e[a],l=s.machine||s.normal;return void 0!==e[a+1]&&!0===t[l]?function(e,a,i,o,r){let n=a+4>e.length?e.length-a:4,t=e[a].machine||e[a].normal;for(let O=1;Ot.hasOwnProperty(e));if(e){return n([O],t[e],i,!1,"1-lexicon-alias"),!0}}if(!0===be.test(s)){let e=s.replace(be,"");if(t.hasOwnProperty(e)&&e.length>3&&Ae.has(t[e]))return n([O],t[e],i,!1,"1-lexicon-prefix"),!0}return null};var Ce={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:function(e){let a={},i={};return Object.keys(e).forEach(o=>{let r=e[o],n=(o=o.toLowerCase().trim()).split(/ /);n.length>1&&(i[n[0]]=!0),a[o]=a[o]||r}),delete a[""],delete a.null,delete a[" "],{lex:a,_multi:i}}}},compute:{lexicon:function(e){const a=e.world;e.docs.forEach(e=>{for(let i=0;i{"string"==typeof e[a]&&e[a].startsWith("#")&&(e[a]=e[a].replace(/^#/,""))}),i.two.expandLexicon){let{lex:r,_multi:n}=i.two.expandLexicon(e,a);Object.assign(o.one.lexicon,r),Object.assign(o.one._multiCache,n)}else if(i.one.expandLexicon){let{lex:r,_multi:n}=i.one.expandLexicon(e,a);Object.assign(o.one.lexicon,r),Object.assign(o.one._multiCache,n)}else Object.assign(o.one.lexicon,e)}},hooks:["lexicon"]};var Be=function(e,a){let i=[{}],o=[null],r=[0],n=[],t=0;e.forEach((function(e){let r=0,n=function(e,a){const{methods:i,model:o}=a;return i.one.tokenize.splitTerms(e,o).map(i.one.tokenize.splitWhitespace).map(e=>e.text.toLowerCase())}(e,a);for(let e=0;e0&&!i[t].hasOwnProperty(s);)t=r[t];if(i.hasOwnProperty(t)){let e=i[t][s];r[l]=e,o[e]&&(o[l]=o[l]||[],o[l]=o[l].concat(o[e]))}else r[l]=0}}return{goNext:i,endAs:o,failTo:r}};const Qe=function(e,a,i){let o=0,r=[];for(let n=0;n0&&(void 0===a.goNext[o]||!a.goNext[o].hasOwnProperty(t));)o=a.failTo[o]||0;if(a.goNext[o].hasOwnProperty(t)&&(o=a.goNext[o][t],a.endAs[o])){let i=a.endAs[o];for(let a=0;a0&&(o=o.concat(s))}return e.update(o)};const Fe=(e,a)=>{for(let i=e.length-1;i>=0;i-=1)if(e[i]!==a)return e=e.slice(0,i+1);return e};var Re=function(e){return e.goNext=e.goNext.map(e=>{if(0!==Object.keys(e).length)return e}),e.goNext=Fe(e.goNext,void 0),e.failTo=Fe(e.failTo,0),e.endAs=Fe(e.endAs,null),e};var ke={api:function(e){e.prototype.lookup=function(e,a={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let i=(o=e,"[object Object]"===Object.prototype.toString.call(o)?e:Be(e,this.world));var o;let r=De(this,i,a);return r=r.settle(),r}},lib:{compile:function(e){const a=Be(e,this.world());return Re(a)}}};const Ge=function(e,a){return a?(e.forEach(e=>{let i=e[0];a[i]&&(e[0]=a[i][0],e[1]+=a[i][1],e[2]+=a[i][1])}),e):e},we=function(e,a){let{ptrs:i,byGroup:o}=e;return i=Ge(i,a),Object.keys(o).forEach(e=>{o[e]=Ge(o[e],a)}),{ptrs:i,byGroup:o}},Se=e=>"[object Object]"===Object.prototype.toString.call(e),ve=e=>e&&Se(e)&&!0===e.isView,Te=e=>e&&Se(e)&&!0===e.isNet;var He={matchOne:function(e,a,i){const o=this.methods.one;if(ve(e))return this.intersection(e).eq(0);if(Te(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;"string"==typeof e&&(e=o.killUnicode(e,this.world),e=o.parseMatch(e,i));let r={regs:e,group:a,justOne:!0},n=o.match(this.docs,r,this._cache),{ptrs:t,byGroup:O}=we(n,this.fullPointer),s=this.toView(t);return s._groups=O,s},match:function(e,a,i){const o=this.methods.one;if(ve(e))return this.intersection(e);if(Te(e))return this.sweep(e,{tagger:!1}).view.settle();"string"==typeof e&&(e=o.killUnicode(e,this.world),e=o.parseMatch(e,i));let r={regs:e,group:a},n=o.match(this.docs,r,this._cache),{ptrs:t,byGroup:O}=we(n,this.fullPointer),s=this.toView(t);return s._groups=O,s},has:function(e,a,i){const o=this.methods.one;if(ve(e)){return e.fullPointer.length>0}if(Te(e))return this.sweep(e,{tagger:!1}).view.found;"string"==typeof e&&(e=o.killUnicode(e,this.world),e=o.parseMatch(e,i));let r={regs:e,group:a,justOne:!0};return o.match(this.docs,r,this._cache).ptrs.length>0},if:function(e,a,i){const o=this.methods.one;if(ve(e))return this.filter(a=>a.intersection(e).found);if(Te(e)){let a=this.sweep(e,{tagger:!1}).view.settle();return this.if(a)}"string"==typeof e&&(e=o.killUnicode(e,this.world),e=o.parseMatch(e,i));let r={regs:e,group:a,justOne:!0},n=this.fullPointer,t=this._cache||[];n=n.filter((e,a)=>{let i=this.update([e]);return o.match(i.docs,r,t[a]).ptrs.length>0});let O=this.update(n);return this._cache&&(O._cache=n.map(e=>t[e[0]])),O},ifNo:function(e,a,i){const{methods:o}=this,r=o.one;if(ve(e))return this.filter(a=>!a.intersection(e).found);if(Te(e)){let a=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(a)}"string"==typeof e&&(e=r.killUnicode(e,this.world),e=r.parseMatch(e,i));let n=this._cache||[],t=this.filter((i,o)=>{let t={regs:e,group:a,justOne:!0};return 0===r.match(i.docs,t,n[o]).ptrs.length});return this._cache&&(t._cache=t.ptrs.map(e=>n[e[0]])),t}};var Ue={before:function(e,a,i){const{indexN:o}=this.methods.one.pointer;let r=[],n=o(this.fullPointer);Object.keys(n).forEach(e=>{let a=n[e].sort((e,a)=>e[1]>a[1]?1:-1)[0];a[1]>0&&r.push([a[0],0,a[1]])});let t=this.toView(r);return e?t.match(e,a,i):t},after:function(e,a,i){const{indexN:o}=this.methods.one.pointer;let r=[],n=o(this.fullPointer),t=this.document;Object.keys(n).forEach(e=>{let a=n[e].sort((e,a)=>e[1]>a[1]?-1:1)[0],[i,,o]=a;o{let n=i.before(e,a);if(n.found){let e=n.terms();o[r][1]-=e.length,o[r][3]=e.docs[0][0].id}}),this.update(o)},growRight:function(e,a,i){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,i)),e[0].start=!0;let o=this.fullPointer;return this.forEach((i,r)=>{let n=i.after(e,a);if(n.found){let e=n.terms();o[r][2]+=e.length,o[r][4]=null}}),this.update(o)},grow:function(e,a,i){return this.growRight(e,a,i).growLeft(e,a,i)}};const Ve=function(e,a){return[e[0],e[1],a[2]]},We=(e,a,i)=>{return"string"==typeof e||(o=e,"[object Array]"===Object.prototype.toString.call(o))?a.match(e,i):e||a.none();var o},Ye=function(e,a){let[i,o,r]=e;return a.document[i]&&a.document[i][o]&&(e[3]=e[3]||a.document[i][o].id,a.document[i][r-1]&&(e[4]=e[4]||a.document[i][r-1].id)),e},Xe={splitOn:function(e,a){const{splitAll:i}=this.methods.one.pointer;let o=We(e,this,a).fullPointer,r=i(this.fullPointer,o),n=[];return r.forEach(e=>{n.push(e.passthrough),n.push(e.before),n.push(e.match),n.push(e.after)}),n=n.filter(e=>e),n=n.map(e=>Ye(e,this)),this.update(n)},splitBefore:function(e,a){const{splitAll:i}=this.methods.one.pointer;let o=We(e,this,a).fullPointer,r=i(this.fullPointer,o),n=[];return r.forEach(e=>{n.push(e.passthrough),n.push(e.before),e.match&&e.after?n.push(Ve(e.match,e.after)):(n.push(e.match),n.push(e.after))}),n=n.filter(e=>e),n=n.map(e=>Ye(e,this)),this.update(n)},splitAfter:function(e,a){const{splitAll:i}=this.methods.one.pointer;let o=We(e,this,a).fullPointer,r=i(this.fullPointer,o),n=[];return r.forEach(e=>{n.push(e.passthrough),e.before&&e.match?n.push(Ve(e.before,e.match)):(n.push(e.before),n.push(e.match)),n.push(e.after)}),n=n.filter(e=>e),n=n.map(e=>Ye(e,this)),this.update(n)}};Xe.split=Xe.splitAfter;var Je=Xe;const Ie=Object.assign({},He,Ue,Je);Ie.lookBehind=Ie.before,Ie.lookBefore=Ie.before,Ie.lookAhead=Ie.after,Ie.lookAfter=Ie.after,Ie.notIf=Ie.ifNo;var Ke=function(e){Object.assign(e.prototype,Ie)};const Ne=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,Ze=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,Le=/ /g,Me=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),je=function(e){return e=(e=e.map(e=>e.trim())).filter(e=>e)};var ze=function(e){let a=e.split(Ne),i=[];a.forEach(e=>{Me(e)?i.push(e):i=i.concat(e.split(Ze))}),i=je(i);let o=[];return i.forEach(e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||Me(e)?o.push(e):o=o.concat(e.split(Le))}),o=je(o),o};const xe=/\{([0-9]+)?(, *[0-9]*)?\}/,qe=/&&/,_e=new RegExp(/^<\s*(\S+)\s*>/),$e=e=>e.charAt(0).toUpperCase()+e.substring(1),ea=e=>e.charAt(e.length-1),aa=e=>e.charAt(0),ia=e=>e.substring(1),oa=e=>e.substring(0,e.length-1),ra=function(e){return e=ia(e),e=oa(e)},na=function(e,a){let i={};for(let o=0;o<2;o+=1){if("$"===ea(e)&&(i.end=!0,e=oa(e)),"^"===aa(e)&&(i.start=!0,e=ia(e)),("["===aa(e)||"]"===ea(e))&&(i.group=null,"["===aa(e)&&(i.groupStart=!0),"]"===ea(e)&&(i.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===aa(e))){const a=_e.exec(e);a.length>=2&&(i.group=a[1],e=e.replace(a[0],""))}if("+"===ea(e)&&(i.greedy=!0,e=oa(e)),"*"!==e&&"*"===ea(e)&&"\\*"!==e&&(i.greedy=!0,e=oa(e)),"?"===ea(e)&&(i.optional=!0,e=oa(e)),"!"===aa(e)&&(i.negative=!0,e=ia(e)),"~"===aa(e)&&"~"===ea(e)&&e.length>2&&(e=ra(e),i.fuzzy=!0,i.min=a.fuzzy||.85,!1===/\(/.test(e)))return i.word=e,i;if("("===aa(e)&&")"===ea(e)){qe.test(e)?(i.choices=e.split(qe),i.operator="and"):(i.choices=e.split("|"),i.operator="or"),i.choices[0]=ia(i.choices[0]);let o=i.choices.length-1;i.choices[o]=oa(i.choices[o]),i.choices=i.choices.map(e=>e.trim()),i.choices=i.choices.filter(e=>e),i.choices=i.choices.map(e=>e.split(/ /g).map(e=>na(e,a))),e=""}if("/"===aa(e)&&"/"===ea(e))return e=ra(e),a.caseSensitive&&(i.use="text"),i.regex=new RegExp(e),i;if("{"===aa(e)&&"}"===ea(e))return e=ra(e),/\//.test(e)?(i.sense=e,i.greedy=!0):i.machine=e,i;if("<"===aa(e)&&">"===ea(e))return e=ra(e),i.chunk=$e(e),i.greedy=!0,i;if("%"===aa(e)&&"%"===ea(e))return e=ra(e),i.switch=e,i}return!0===xe.test(e)&&(e=e.replace(xe,(e,a,o)=>(void 0===o?(i.min=Number(a),i.max=Number(a)):(o=o.replace(/, */,""),void 0===a?(i.min=0,i.max=Number(o)):(i.min=Number(a),i.max=Number(o||999))),i.greedy=!0,i.min||(i.optional=!0),""))),"#"===aa(e)?(i.tag=ia(e),i.tag=$e(i.tag),i):"@"===aa(e)?(i.method=ia(e),i):"."===e?(i.anything=!0,i):"*"===e?(i.anything=!0,i.greedy=!0,i.optional=!0,i):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),a.caseSensitive?i.use="text":e=e.toLowerCase(),i.word=e),i)};var ta=na;var Oa=function(e){return e=function(e){let a=0,i=null;for(let o=0;o(e.fuzzy&&e.choices&&e.choices.forEach(a=>{1===a.length&&a[0].word&&(a[0].fuzzy=!0,a[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 a=e[0];return!0!==a.fuzzy&&!a.start&&!a.end&&void 0!==a.word&&!0!==a.negative&&!0!==a.optional&&!0!==a.method})&&(e.fastOr=new Set,e.choices.forEach(a=>{e.fastOr.add(a[0].word)}),delete e.choices)}return e}))};var sa=function(e,a={}){if(null==e||""===e)return[];"number"==typeof e&&(e=String(e));let i=ze(e);return i=i.map(e=>ta(e,a)),i=Oa(i),i};const la=function(e,a){for(let i of a)if(e.has(i))return!0;return!1};var ca=function(e,a){for(let i=0;ii?o:i)+1;if(Math.abs(i-o)>(r||100))return r||100;let n,t,O,s,l,c,h=[];for(let e=0;e4)return i;O=a[n-1],s=t===O?0:1,l=h[r-1][n]+1,(c=h[r][n-1]+1)1&&n>1&&t===a[n-2]&&e[r-2]===O&&(c=h[r-2][n-2]+s)-1!==e.post.indexOf(a),fa=(e,a)=>-1!==e.pre.indexOf(a),Pa={hasQuote:e=>ua.test(e.pre)||da.test(e.post),hasComma:e=>ga(e,","),hasPeriod:e=>!0===ga(e,".")&&!1===ga(e,"..."),hasExclamation:e=>ga(e,"!"),hasQuestionMark:e=>ga(e,"?")||ga(e,"ยฟ"),hasEllipses:e=>ga(e,"..")||ga(e,"โ€ฆ")||fa(e,"..")||fa(e,"โ€ฆ"),hasSemicolon:e=>ga(e,";"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>ma.test(e.post)||ma.test(e.pre),hasDash:e=>pa.test(e.post)||pa.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)};Pa.hasQuotation=Pa.hasQuote;var ba=Pa;let Aa=function(){};Aa=function(e,a,i,o){let r=function(e,a,i,o){if(!0===a.anything)return!0;if(!0===a.start&&0!==i)return!1;if(!0===a.end&&i!==o-1)return!1;if(void 0!==a.word){if(a.use)return a.word===e[a.use];if(null!==e.machine&&e.machine===a.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(a.word))return!0;if(!0===a.fuzzy){if(a.word===e.root)return!0;if(ha(a.word,e.normal)>=a.min)return!0}return!(!e.alias||!e.alias.some(e=>e===a.word))||a.word===e.text||a.word===e.normal}if(void 0!==a.tag)return!0===e.tags.has(a.tag);if(void 0!==a.method)return"function"==typeof ba[a.method]&&!0===ba[a.method](e);if(void 0!==a.pre)return e.pre&&e.pre.includes(a.pre);if(void 0!==a.post)return e.post&&e.post.includes(a.post);if(void 0!==a.regex){let i=e.normal;return a.use&&(i=e[a.use]),a.regex.test(i)}return void 0!==a.chunk?e.chunk===a.chunk:void 0!==a.switch?e.switch===a.switch:void 0!==a.machine?e.normal===a.machine||e.machine===a.machine||e.root===a.machine:void 0!==a.sense?e.sense===a.sense:void 0!==a.fastOr?a.fastOr.has(e.implicit)||a.fastOr.has(e.normal)||a.fastOr.has(e.text)||a.fastOr.has(e.machine):void 0!==a.choices&&("and"===a.operator?a.choices.every(a=>Aa(e,a,i,o)):a.choices.some(a=>Aa(e,a,i,o)))}(e,a,i,o);return!0===a.negative?!r:r};var ya=Aa;const Ca=function(e,a){if(!0===e.end&&!0===e.greedy&&a.start_i+a.ti.max)return e.t=e.t+i.max,!0;if(!0===e.hasGroup){Ba(e,e.t).length=o-e.t}return e.t=o,!0};const Ea=function(e,a=0){let i=e.regs[e.r],o=!1;for(let n=0;n{let r=0,n=e.t+o+a+r;if(void 0===e.terms[n])return!1;let t=ya(e.terms[n],i,n+e.start_i,e.phrase_length);if(!0===t&&!0===i.greedy)for(let a=1;a{let o=i.every((a,i)=>{let o=e.t+i;return void 0!==e.terms[o]&&ya(e.terms[o],a,o,e.phrase_length)});return!0===o&&i.length>a&&(a=i.length),o})&&a}(e);if(o){if(!0===i.negative)return null;if(!0===e.hasGroup){Ba(e,e.t).length+=o}if(!0===i.end){let a=e.phrase_length-1;if(e.t+e.start_i!==a)return null}return e.t+=o,!0}return!!i.optional||null};var Ra=function(e){const{regs:a}=e;let i=a[e.r],o=Object.assign({},i);return o.negative=!1,!0!==ya(e.terms[e.t],o,e.start_i+e.t,e.phrase_length)||null};var ka=function(e){const{regs:a}=e;let i=a[e.r],o=e.terms[e.t],r=ya(o,a[e.r+1],e.start_i+e.t,e.phrase_length);if(i.negative||r){let i=e.terms[e.t+1];i&&ya(i,a[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}};var Ga=function(e){const{regs:a,phrase_length:i}=e;let o=a[e.r];return e.t=function(e,a){let i=Object.assign({},e.regs[e.r],{start:!1,end:!1}),o=e.t;for(;e.te.t?null:!0!==o.end||e.start_i+e.t===i||null};var wa=function(e){let a=e.terms[e.t],i=e.regs[e.r];if(a.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;i.word===a.normal&&(e.t+=1),"hasContraction"===i.method&&(e.t+=1)}};var Sa=function(e){const{regs:a}=e;let i=a[e.r],o=e.terms[e.t],r=e.t;if(i.optional&&a[e.r+1]&&i.negative)return!0;if(i.optional&&a[e.r+1]&&ka(e),o.implicit&&e.terms[e.t+1]&&wa(e),e.t+=1,!0===i.end&&e.t!==e.terms.length&&!0!==i.greedy)return null;if(!0===i.greedy){if(!Ga(e))return null}return!0===e.hasGroup&&function(e,a){let i=e.regs[e.r];const o=Ba(e,a);e.t>1&&i.greedy?o.length+=e.t-a:o.length++}(e,r),!0};var va=function(e,a,i,o){if(0===e.length||0===a.length)return null;let r={t:0,terms:e,r:0,regs:a,groups:{},start_i:i,phrase_length:o,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!==Ca(e,r))if(!0!==ya(r.terms[r.t],e,r.start_i+r.t,r.phrase_length)){if(e.negative){if(!Ra(r))return null}if(!0!==e.optional)return null}else{if(!Sa(r))return null}else{if(!Sa(r))return null}else{if(!Sa(r))return null}else{if(!Fa(r))return null}else{if(!Da(r))return null}else{if(!Qa(r))return null}}let n=[null,i,r.t+i];if(n[1]===n[2])return null;let t={};return Object.keys(r.groups).forEach(e=>{let a=r.groups[e],o=i+a.start;t[e]=[null,o,o+a.length]}),{pointer:n,groups:t}};var Ta=function(e,a){let i=[],o={};return 0===e.length||("number"==typeof a&&(a=String(a)),a?e.forEach(e=>{e.groups[a]&&i.push(e.groups[a])}):e.forEach(e=>{i.push(e.pointer),Object.keys(e.groups).forEach(a=>{o[a]=o[a]||[],o[a].push(e.groups[a])})})),{ptrs:i,byGroup:o}};const Ha=function(e,a){return e.pointer[0]=a,Object.keys(e.groups).forEach(i=>{e.groups[i][0]=a}),e},Ua=function(e,a,i){let o=va(e,a,0,e.length);return o?(o=Ha(o,i),o):null};var Va={api:Ke,methods:{one:{termMethods:ba,parseMatch:sa,match:function(e,a,i){i=i||[];let{regs:o,group:r,justOne:n}=a,t=[];if(!o||0===o.length)return{ptrs:[],byGroup:{}};const O=o.filter(e=>!0!==e.optional&&!0!==e.negative).length;e:for(let a=0;ae&&(e=Math.abs(i-1))}}else{let e=Ua(r,o,a);e&&t.push(e)}}return!0===o[o.length-1].end&&(t=t.filter(a=>{let i=a.pointer[0];return e[i].length===a.pointer[2]})),t=Ta(t,r),t.ptrs.forEach(a=>{let[i,o,r]=a;a[3]=e[i][o].id,a[4]=e[i][r-1].id}),t}}},lib:{parseMatch:function(e,a){const i=this.world();let o=i.methods.one.killUnicode;return o&&(e=o(e,i)),i.methods.one.parseMatch(e,a)}}};const Wa=/^\../,Ya=/^#./,Xa=function(e,a){let i={},o={};return Object.keys(a).forEach(r=>{let n=a[r],t=function(e){let a="",i="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),Wa.test(e)?a=``),a+=">",{start:a,end:i}}(r);"string"==typeof n&&(n=e.match(n)),n.docs.forEach(e=>{if(e.every(e=>e.implicit))return;let a=e[0].id;i[a]=i[a]||[],i[a].push(t.start);let r=e[e.length-1].id;o[r]=o[r]||[],o[r].push(t.end)})}),{starts:i,ends:o}};var Ja={html:function(e){let{starts:a,ends:i}=Xa(this,e),o="";return this.docs.forEach(e=>{for(let r=0;r{let i=e.pre||"",r=e.post||"";"some"===a.punctuation&&(i=i.replace(Ka,""),Za.test(r)&&(r=" "),r=r.replace(Na,""),r=r.replace(/\?!+/,"?"),r=r.replace(/!+/,"!"),r=r.replace(/\?+/,"?"),r=r.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(r=r.replace(/\./,""))),"some"===a.whitespace&&(i=i.replace(/\s/,""),r=r.replace(/\s+/," ")),a.keepPunct||(i=i.replace(Ka,""),r="-"===r?" ":r.replace(Ia,""));let n=e[a.form||"text"]||e.normal||"";"implicit"===a.form&&(n=e.implicit||e.text),"root"===a.form&&e.implicit&&(n=e.root||e.implicit||e.normal),"machine"!==a.form&&"implicit"!==a.form&&"root"!==a.form||!e.implicit||r&&La.test(r)||(r+=" "),o+=i+n+r}),!1===i&&(o=o.trim()),!0===a.lowerCase&&(o=o.toLowerCase()),o},ja={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"}};ja.clean=ja.normal,ja.reduced=ja.root;var za=ja;const xa={text:!0,terms:!0};let qa={case:"none",unicode:"some",form:"machine",punctuation:"some"};const _a=function(e,a){return Object.assign({},e,a)},$a={text:e=>Ma(e,{keepPunct:!0},!1),normal:e=>Ma(e,_a(za.normal,{keepPunct:!0}),!1),implicit:e=>Ma(e,_a(za.implicit,{keepPunct:!0}),!1),machine:e=>Ma(e,qa,!1),root:e=>Ma(e,_a(qa,{form:"root"}),!1),offset:e=>{let a=$a.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:a}},terms:e=>e.map(e=>{let a=Object.assign({},e);return a.tags=Array.from(e.tags),a}),confidence:(e,a,i)=>a.eq(i).confidence(),syllables:(e,a,i)=>a.eq(i).syllables(),sentence:(e,a,i)=>a.eq(i).fullSentence().text(),dirty:e=>e.some(e=>!0===e.dirty)};$a.sentences=$a.sentence,$a.clean=$a.normal,$a.reduced=$a.root;const ei={json:function(e){let a=(i=this,"string"==typeof(o=(o=e)||{})&&(o={}),(o=Object.assign({},xa,o)).offset&&i.compute("offset"),i.docs.map((e,a)=>{let r={};return Object.keys(o).forEach(n=>{o[n]&&$a[n]&&(r[n]=$a[n](e,i,a))}),r}));var i,o;return"number"==typeof e?a[e]:a}};ei.data=ei.json;var ai=ei;var ii=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach(e=>{console.groupCollapsed(e.text());let a=e.docs[0].map(e=>{let a=e.text||"-";return e.implicit&&(a="["+e.implicit+"]"),{text:a,tags:"["+Array.from(e.tags).join(", ")+"]"}});console.table(a,["text","tags"]),console.groupEnd()})};var oi={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 ri=function(e){let{docs:a,model:i}=e;0===a.length&&console.log(oi.blue("\n โ”€โ”€โ”€โ”€โ”€โ”€")),a.forEach(e=>{console.log(oi.blue("\n โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€")),e.forEach(e=>{let a=[...e.tags||[]],o=e.text||"-";e.sense&&(o="{"+e.sense+"}"),e.implicit&&(o="["+e.implicit+"]"),o=oi.yellow(o);let r="'"+o+"'";r=r.padEnd(18);let n=oi.blue(" โ”‚ ")+oi.i(r)+" - "+function(e,a){return a.one.tagSet&&(e=e.map(e=>{if(!a.one.tagSet.hasOwnProperty(e))return e;const i=a.one.tagSet[e].color||"blue";return oi[i](e)})),e.join(", ")}(a,i);console.log(n)})})};var ni=function(e){let{docs:a}=e;console.log(""),a.forEach(e=>{let a=[];e.forEach(e=>{"Noun"===e.chunk?a.push(oi.blue(e.implicit||e.normal)):"Verb"===e.chunk?a.push(oi.green(e.implicit||e.normal)):"Adjective"===e.chunk?a.push(oi.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?a.push(oi.red(e.implicit||e.normal)):a.push(e.implicit||e.normal)}),console.log(a.join(" "),"\n")})};var ti=function(e){if(!e.found)return;let a={};e.fullPointer.forEach(e=>{a[e[0]]=a[e[0]]||[],a[e[0]].push(e)}),Object.keys(a).forEach(i=>{let o=e.update([[Number(i)]]).text();e.update(a[i]).json({offset:!0}).forEach((e,a)=>{o=function(e,a,i){let o=((e,a,i)=>{let o=9*i,r=a.start+o,n=r+a.length;return[e.substring(0,r),e.substring(r,n),e.substring(n,e.length)]})(e,a,i);return`${o[0]}${oi.blue(o[1])}${o[2]}`}(o,e.offset,a)}),console.log(o)})};const Oi=function(e){let a=e.pre||"",i=e.post||"";return a+e.text+i};var si=function(e,a){let i=function(e,a){let i={};return Object.keys(a).forEach(o=>{e.match(o).fullPointer.forEach(e=>{i[e[3]]={fn:a[o],end:e[2]}})}),i}(e,a),o="";return e.docs.forEach((a,r)=>{for(let n=0;ne.reduce((e,a)=>e+a.pre+a.text+a.post,"").trim()).filter(e=>e)}if("freq"===e||"frequency"===e||"topk"===e)return function(e){let a={};return e.forEach(e=>{a[e]=a[e]||0,a[e]+=1}),Object.keys(a).map(e=>({normal:e,count:a[e]})).sort((e,a)=>e.count>a.count?-1:0)}(this.json({normal:!0}).map(e=>e.normal));if("terms"===e){let e=[];return this.docs.forEach(a=>{let i=a.terms.map(e=>e.text);i=i.filter(e=>e),e=e.concat(i)}),e}return"tags"===e?this.docs.map(e=>e.reduce((e,a)=>(e[a.implicit||a.normal]=Array.from(a.tags),e),{})):"debug"===e?this.debug():this.text()}};var ci={text:function(e){let a={keepSpace:!0,keepPunct:!0};var i;if(e&&"string"==typeof e&&za.hasOwnProperty(e)?a=Object.assign({},za[e]):e&&(i=e,"[object Object]"===Object.prototype.toString.call(i))&&(a=Object.assign({},e,a)),this.pointer){a.keepSpace=!1;let e=this.pointer[0];e&&e[1]?a.keepPunct=!1:a.keepPunct=!0}else a.keepPunct=!0;return function(e,a){let i="";if(!e||!e[0]||!e[0][0])return i;for(let o=0;or||r<=i&&n>i},mi=function(e){let a={};return e.forEach(e=>{a[e[0]]=a[e[0]]||[],a[e[0]].push(e)}),a};var pi=function(e,a){let i=mi(a),o=[];return e.forEach(e=>{let[a]=e,r=i[a]||[];if(r=r.filter(a=>function(e,a){return e[1]<=a[1]&&a[2]<=e[2]}(e,a)),0===r.length)return void o.push({passthrough:e});r=r.sort((e,a)=>e[1]-a[1]);let n=e;r.forEach((e,a)=>{let i=function(e,a){let[i,o]=e,r=a[1],n=a[2],t={};if(on&&(t.after=[i,n,e[2]]),t}(n,e);r[a+1]?(o.push({before:i.before,match:i.match}),i.after&&(n=i.after)):o.push(i)})}),o};var gi={one:{termList:function(e){let a=[];for(let i=0;i{if(!o)return;let[n,t,O,s,l]=o,c=a[n]||[];if(void 0===t&&(t=0),void 0===O&&(O=c.length),!s||c[t]&&c[t].id===s)c=c.slice(t,O);else{let i=function(e,a,i){for(let o=0;o<4;o+=1){if(a[i-o]){let r=a[i-o].findIndex(a=>a.id===e);if(-1!==r)return[i-o,r]}if(a[i+o]){let r=a[i+o].findIndex(a=>a.id===e);if(-1!==r)return[i+o,r]}}return null}(s,a,n);if(null!==i){let o=O-t;c=a[i[0]].slice(i[1],i[1]+o);let n=c[0]?c[0].id:null;e[r]=[i[0],i[1],i[1]+o,n]}}0!==c.length&&t!==O&&(l&&c[c.length-1].id!==l&&(c=function(e,a){let[i,o,,,r]=e,n=a[i],t=n.findIndex(e=>e.id===r);return-1===t?(e[2]=a[i].length,e[4]=n.length?n[n.length-1].id:null):e[2]=t,a[i].slice(o,e[2]+1)}(o,a)),i.push(c))}),i=i.filter(e=>e.length>0),i},pointer:{indexN:mi,splitAll:pi}}};var fi=function(e,a){let i=e.concat(a),o=mi(i),r=[];return i.forEach(e=>{let[a]=e;if(1===o[a].length)return void r.push(e);let i=o[a].filter(a=>di(e,a));i.push(e);let n=function(e){let a=e[0][1],i=e[0][2];return e.forEach(e=>{e[1]i&&(i=e[2])}),[e[0][0],a,i]}(i);r.push(n)}),r=function(e){let a={};for(let i=0;i{e.passthrough&&i.push(e.passthrough),e.before&&i.push(e.before),e.after&&i.push(e.after)}),i};var bi=function(e,a){let i=mi(a),o=[];return e.forEach(e=>{let a=i[e[0]]||[];a=a.filter(a=>di(e,a)),0!==a.length&&a.forEach(a=>{let i=function(e,a){let i=e[1]a[2]?a[2]:e[2];return i{return"string"==typeof e||(i=e,"[object Array]"===Object.prototype.toString.call(i))?a.match(e):e||a.none();var i},yi=function(e,a){return e.map(e=>{let[i,o]=e;return a[i]&&a[i][o]&&(e[3]=a[i][o].id),e})},Ci={union:function(e){e=Ai(e,this);let a=fi(this.fullPointer,e.fullPointer);return a=yi(a,this.document),this.toView(a)}};Ci.and=Ci.union,Ci.intersection=function(e){e=Ai(e,this);let a=bi(this.fullPointer,e.fullPointer);return a=yi(a,this.document),this.toView(a)},Ci.not=function(e){e=Ai(e,this);let a=Pi(this.fullPointer,e.fullPointer);return a=yi(a,this.document),this.toView(a)},Ci.difference=Ci.not,Ci.complement=function(){let e=this.all(),a=Pi(e.fullPointer,this.fullPointer);return a=yi(a,this.document),this.toView(a)},Ci.settle=function(){let e=this.fullPointer;return e.forEach(a=>{e=fi(e,[a])}),e=yi(e,this.document),this.update(e)};var Bi={methods:gi,api:function(e){Object.assign(e.prototype,Ci)}};var Qi=function(e,a){const i=a.one.parseMatch;return e.forEach(e=>{e.regs=i(e.match),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo])}),e};function Ei(e,a,i){return e.splice(a,1,...i),e}const Di=function(e){return e.fastOr?Array.from(e.fastOr).map(e=>[{word:e}]):e.choices},Fi=function(e,a){let i=Object.assign({},e,a);return delete i.choices,delete i.fastOr,delete i.operator,i};var Ri=function(e){let a=[];return e.forEach(e=>{for(let i=0;i{let r=Object.assign({},e);r.regs=r.regs.slice(0),o=o.map(a=>Fi(e.regs[i],a)),r.regs=Ei(r.regs,i,o),a.push(r)})}}a.push(e)}),a};const ki=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var Gi=function(e){return e.forEach(e=>{e.needs=Array.from(function(e){let a=new Set;return e.forEach(e=>{let i=ki(e);i?a.add(i):"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{let i=ki(e);i&&a.add(i)})})}),a}(e.regs)),e.minWords=e.regs.filter(e=>!e.optional).length}),e};var wi=function(e){let a={};return e.forEach(e=>{e.needs.forEach(i=>{a[i]=a[i]||[],a[i].push(e)})}),a};var Si=function(e,a){return e.map(e=>{let i=[];return e.forEach(e=>{a.hasOwnProperty(e)&&(i=i.concat(a[e]))}),new Set(i)})};var vi=function(e,a){for(let i=0;ie.needs.every(e=>o.has(e))),e[i]=e[i].filter(e=>void 0===e.ifNo||!0!==e.ifNo.some(e=>a[i].has(e)))}return e};var Ti=function(e,a,i,o){let r=[];for(let n=0;n0&&(s.ptrs.forEach(e=>{e[0]=n;let a=Object.assign({},O,{pointer:e});void 0!==O.unTag&&(a.unTag=O.unTag),r.push(a)}),!0===o.matchOne))return[r[0]]}return r};var Hi=function(e,a){let[i,o,r]=e.pointer,n=a[i],t=o>4?o-2:0,O=e.tag||"";var s;s=e.tag,"[object Array]"===Object.prototype.toString.call(s)&&(O=e.tag.join(" #"));let l=e.reason||e.match;l=l?`|${l}|`:"";let c=(" "+l).padEnd(20)+" - ";const h=e=>""+e+"";for(;tr+2);t+=1){let e=n[t].machine||n[t].normal;c+=t>o&&t{let a=e.pointer,i=o[a[0]][a[1]],r=a[2]-a[1];return i.index&&(e.pointer=[i.index[0],i.index[1],a[1]+r]),e});let t=n.map(e=>e.pointer);return n=n.map(e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e)),{view:this.update(t),found:n}}},methods:{one:{buildNet:function(e,a){e=Qi(e,a),e=Ri(e);let i=(e=Gi(e)).filter(e=>0===e.needs.length),o=wi(e);return delete o["#Noun"],delete o["#Verb"],{index:o,always:i}},bulkMatch:function(e,a,i,o={}){let r=i.one.cacheDoc(e),n=Si(r,a.index);return n=vi(n,r),a.always.length>0&&(n=n.map(e=>e.concat(a.always))),n=function(e,a){return e.map((e,i)=>{let o=a[i].length;return e.filter(e=>o>=e.minWords)})}(n,e),Ti(n,e,i,o)},bulkTagger:function(e,a,i){const{model:o,methods:r}=i,{getDoc:n,setTag:t,unTag:O}=r.one;if(0===e.length)return e;const s="undefined"!=typeof process&&process.env?process.env:self.env||{};return s.DEBUG_TAGS&&console.log(`\n โ†’ ${e.length} corrections:`),e.map(e=>{if(!e.tag&&!e.chunk)return;let r=e.reason||e.match;s.DEBUG_TAGS&&Hi(e,a);let l=n([e.pointer],a)[0];if(!0===e.safe){if(!1===Ui(l,e.tag,o))return;if("-"===l[l.length-1].post)return}void 0!==e.tag&&(t(l,e.tag,i,e.safe,r),1===l.length&&"Noun"===e.tag&&l[0].text&&null!==l[0].text.match(/..s$/)&&t(l,"Plural",i,e.safe,"quick-plural")),void 0!==e.unTag&&O(l,e.unTag,i,e.safe,r),e.chunk&&l.forEach(a=>a.chunk=e.chunk)})}}}};const Wi=/ /,Yi=function(e,a){"Noun"===a&&(e.chunk=a),"Verb"===a&&(e.chunk=a)},Xi=function(e,a,i,o){if(!0===e.tags.has(a))return null;if("."===a)return null;let r=i[a];if(r){if(r.not&&r.not.length>0)for(let a=0;a0)for(let a=0;a{let o=e.text||"["+e.implicit+"]";var r;"string"!=typeof a&&a.length>2&&(a=a.slice(0,2).join(", #")+" +"),a="string"!=typeof a?a.join(", #"):a,console.log(` ${(r=o,""+r+"").padEnd(24)} โ†’ #${a.padEnd(25)} ${(e=>""+e+"")(i)}`)})(e[0],a,r),!0!=(O=a,"[object Array]"===Object.prototype.toString.call(O)))if(a=a.trim(),Wi.test(a))!function(e,a,i,o){let r=a.split(Wi);e.forEach((e,a)=>{let n=r[a];n&&(n=n.replace(/^#/,""),Xi(e,n,i,o))})}(e,a,n,o);else{a=a.replace(/^#/,"");for(let i=0;iJi(e,a,i,o))};var Ii=Ji;var Ki=function(e,a,i){a=a.trim().replace(/^#/,"");for(let o=0;o0)for(let e=0;e/),i=[];a.forEach(e=>{i=i.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let a=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return a=a.map(e=>e.trim()).filter(e=>e),a=a.map(e=>Ni({id:e})),a}return[Ni({id:e})]}(e))}),i=i.filter(e=>e);let o=i[0];for(let e=1;e{let i=[],o=[e];for(;o.length>0;){let e=o.pop();i.push(e),e.children&&e.children.forEach(i=>{a&&a(e,i),o.push(i)})}return i},ji=e=>"[object Array]"===Object.prototype.toString.call(e),zi=e=>(e=e||"").trim(),xi=function(e=[]){return"string"==typeof e?function(e){let a=e.split(/\r?\n/),i=[];a.forEach(e=>{if(!e.trim()||Zi.test(e))return;let a=(e=>{const a=/^( {2}|\t)/;let i=0;for(;a.test(e);)e=e.replace(a,""),i+=1;return i})(e);i.push({indent:a,node:Li(e)})});let o=function(e){let a={children:[]};return e.forEach((i,o)=>{0===i.indent?a.children=a.children.concat(i.node):e[o-1]&&function(e,a){let i=e[a].indent;for(;a>=0;a-=1)if(e[a].indent{a[e.id]=e});let i=Ni({});return e.forEach(e=>{if((e=Ni(e)).parent)if(a.hasOwnProperty(e.parent)){let i=a[e.parent];delete e.parent,i.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else i.children.push(e)}),i}(e):(Mi(a=e).forEach(Ni),a);var a},qi=function(e,a){let i="-> ";a&&(i=(e=>""+e+"")("โ†’ "));let o="";return Mi(e).forEach((e,r)=>{let n=e.id||"";if(a&&(n=(e=>""+e+"")(n)),0===r&&!e.id)return;let t=e._cache.parents.length;o+=" ".repeat(t)+i+n+"\n"}),o},_i=function(e){let a=Mi(e);a.forEach(e=>{delete(e=Object.assign({},e)).children});let i=a[0];return i&&!i.id&&0===Object.keys(i.props).length&&a.shift(),a},$i={text:qi,txt:qi,array:_i,flat:_i},eo=function(e,a){return"nested"===a||"json"===a?e:"debug"===a?(console.log(qi(e,!0)),null):$i.hasOwnProperty(a)?$i[a](e):e},ao=e=>{Mi(e,(e,a)=>{e.id&&(e._cache.parents=e._cache.parents||[],a._cache.parents=e._cache.parents.concat([e.id]))})},io=/\//;class g{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 a=this.json.props||{};return"string"==typeof e&&(a[e]=!0),this.json.props=Object.assign(a,e),this}get(e){if(e=zi(e),!io.test(e)){let a=this.json.children.find(a=>a.id===e);return new g(a)}let a=((e,a)=>{let i=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(a=a||"");for(let a=0;ae.id===i[a]);if(!o)return null;e=o}return e})(this.json,e)||Ni({});return new g(a)}add(e,a={}){if(ji(e))return e.forEach(e=>this.add(zi(e),a)),this;e=zi(e);let i=Ni({id:e,props:a});return this.json.children.push(i),new g(i)}remove(e){return e=zi(e),this.json.children=this.json.children.filter(a=>a.id!==e),this}nodes(){return Mi(this.json).map(e=>(delete(e=Object.assign({},e)).children,e))}cache(){return(e=>{let a=Mi(e,(e,a)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],a._cache.parents=e._cache.parents.concat([e.id]))}),i={};a.forEach(e=>{e.id&&(i[e.id]=e)}),a.forEach(e=>{e._cache.parents.forEach(a=>{i.hasOwnProperty(a)&&i[a]._cache.children.push(e.id)})}),e._cache.children=Object.keys(i)})(this.json),this}list(){return Mi(this.json)}fillDown(){var e;return e=this.json,Mi(e,(e,a)=>{a.props=((e,a)=>(Object.keys(a).forEach(i=>{if(a[i]instanceof Set){let o=e[i]||new Set;e[i]=new Set([...o,...a[i]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(a[i])){let o=e[i]||{};e[i]=Object.assign({},a[i],o)}else ji(a[i])?e[i]=a[i].concat(e[i]||[]):void 0===e[i]&&(e[i]=a[i])}),e))(a.props,e.props)}),this}depth(){ao(this.json);let e=Mi(this.json),a=e.length>1?1:0;return e.forEach(e=>{if(0===e._cache.parents.length)return;let i=e._cache.parents.length+1;i>a&&(a=i)}),a}out(e){return ao(this.json),eo(this.json,e)}debug(){return ao(this.json),eo(this.json,"debug"),this}}const oo=function(e){let a=xi(e);return new g(a)};oo.prototype.plugin=function(e){e(this)};var ro={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const no=function(e){if(ro.hasOwnProperty(e.id))return ro[e.id];if(ro.hasOwnProperty(e.is))return ro[e.is];let a=e._cache.parents.find(e=>ro[e]);return ro[a]};var to=function(e){const a={};return e.forEach(e=>{let{not:i,also:o,is:r,novel:n}=e.props,t=e._cache.parents;o&&(t=t.concat(o)),a[e.id]={is:r,not:i,novel:n,also:o,parents:t,children:e._cache.children,color:no(e)}}),Object.keys(a).forEach(e=>{let i=new Set(a[e].not);a[e].not.forEach(e=>{a[e]&&a[e].children.forEach(e=>i.add(e))}),a[e].not=Array.from(i)}),a};const Oo=function(e){return e?"string"==typeof e?[e]:e:[]};var so=function(e,a){return e=function(e,a){return Object.keys(e).forEach(i=>{e[i].isA&&(e[i].is=e[i].isA),e[i].notA&&(e[i].not=e[i].notA),e[i].is&&"string"==typeof e[i].is&&(a.hasOwnProperty(e[i].is)||e.hasOwnProperty(e[i].is)||(e[e[i].is]={})),e[i].not&&"string"==typeof e[i].not&&!e.hasOwnProperty(e[i].not)&&(a.hasOwnProperty(e[i].not)||e.hasOwnProperty(e[i].not)||(e[e[i].not]={}))}),e}(e,a),Object.keys(e).forEach(a=>{e[a].children=Oo(e[a].children),e[a].not=Oo(e[a].not)}),Object.keys(e).forEach(a=>{(e[a].not||[]).forEach(i=>{e[i]&&e[i].not&&e[i].not.push(a)})}),e};var lo={one:{setTag:Ii,unTag:Ki,addTags:function(e,a){Object.keys(a).length>0&&(e=function(e){return Object.keys(e).forEach(a=>{e[a]=Object.assign({},e[a]),e[a].novel=!0}),e}(e)),e=so(e,a);const i=function(e){const a=Object.keys(e).map(a=>{let i=e[a];const o={not:new Set(i.not),also:i.also,is:i.is,novel:i.novel};return{id:a,parent:i.is,props:o,children:[]}});return oo(a).cache().fillDown().out("array")}(Object.assign({},a,e));return to(i)}}};const co=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var ho={tag:function(e,a="",i){if(!this.found||!e)return this;let o=this.termList();if(0===o.length)return this;const{methods:r,verbose:n,world:t}=this;return!0===n&&console.log(" + ",e,a||""),co(e)?e.forEach(e=>r.one.setTag(o,e,t,i,a)):r.one.setTag(o,e,t,i,a),this.uncache(),this},tagSafe:function(e,a=""){return this.tag(e,a,!0)},unTag:function(e,a){if(!this.found||!e)return this;let i=this.termList();if(0===i.length)return this;const{methods:o,verbose:r,model:n}=this;!0===r&&console.log(" - ",e,a||"");let t=n.one.tagSet;return co(e)?e.forEach(e=>o.one.unTag(i,e,t)):o.one.unTag(i,e,t),this.uncache(),this},canBe:function(e){let a=this.model.one.tagSet;if(!a.hasOwnProperty(e))return this;let i=a[e].not||[],o=[];this.document.forEach((e,a)=>{e.forEach((e,r)=>{i.find(a=>e.tags.has(a))&&o.push([a,r,r+1])})});let r=this.update(o);return this.difference(r)}};var uo=function(e){Object.assign(e.prototype,ho)};var mo={addTags:function(e){const{model:a,methods:i}=this.world(),o=a.one.tagSet;let r=(0,i.one.addTags)(e,o);return a.one.tagSet=r,this}};const po=new Set(["Auxiliary","Possessive"]);var go={model:{one:{tagSet:{}}},compute:{tagRank:function(e){const{document:a,world:i}=e,o=i.model.one.tagSet;a.forEach(e=>{e.forEach(e=>{let a=Array.from(e.tags);e.tagRank=function(e,a){return e.sort((e,i)=>{if(po.has(e)||!a.hasOwnProperty(i))return 1;if(po.has(i)||!a.hasOwnProperty(e))return-1;let o=a[e].children||[],r=o.length;return o=a[i].children||[],r-o.length})}(a,o)})})}},methods:lo,api:uo,lib:mo};const fo=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,Po=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex -var bo=function(e){let a=[],i=e.split(Po);for(let e=0;e0&&(o.push(a),r[e]="")}if(0===o.length)return[e];for(let e=1;e(e[a]=!0,e),{});const Vo=/^[ \n\t.[\](){}โŸจโŸฉ:,ุŒใ€โ€’โ€“โ€”โ€•โ€ฆ!โ€นโ€บยซยปโ€\-?โ€˜โ€™;/โ„ยท&*โ€ข^โ€ โ€กยฐยกยฟโ€ปโ„–รทร—ยบยช%โ€ฐ+โˆ’=โ€ฑยถโ€ฒโ€ณโ€ดยง~|โ€–ยฆยฉโ„—ยฎโ„ โ„ขยคโ‚ณเธฟ\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,Wo=/[ \n\t.'[\](){}โŸจโŸฉ:,ุŒใ€โ€’โ€“โ€”โ€•โ€ฆ!โ€นโ€บยซยปโ€\-?โ€˜โ€™;/โ„ยท&*@โ€ข^โ€ โ€กยฐยกยฟโ€ป#โ„–รทร—ยบยชโ€ฐ+โˆ’=โ€ฑยถโ€ฒโ€ณโ€ดยง~|โ€–ยฆยฉโ„—ยฎโ„ โ„ขยคโ‚ณเธฟ\u0022\uFF02\u201D\u00B4\u301E]+$/,Yo=/['โ€™]/,Xo=/^[a-z]\.([a-z]\.)+/i,Jo=/^[-+.][0-9]/,Io=/^'[0-9]{2}/;var Ko=function(e){let a=e,i="",o="";return""===(e=(e=e.replace(Vo,a=>(i=a,"-"!==i&&"+"!==i&&"."!==i||!Jo.test(e)?"'"===i&&Io.test(e)?(i="",a):"":(i="",a)))).replace(Wo,r=>(o=r,Yo.test(r)&&/[sn]['โ€™]$/.test(a)&&!1===Yo.test(i)?(o=o.replace(Yo,""),"'"):!0===Xo.test(e)?(o=o.replace(/\./,""),"."):"")))&&(a=a.replace(/ *$/,e=>(o=e||"","")),e=a,i=""),{str:e,pre:i,post:o}};var No=function(e){let a=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=a),e=e.replace(/([0-9]),([0-9])/g,"$1$2")};const Zo=/([A-Z]\.)+[A-Z]?,?$/,Lo=/^[A-Z]\.,?$/,Mo=/[A-Z]{2,}('s|,)?$/,jo=/([a-z]\.)+[a-z]\.?$/;var zo=function(e){return function(e){return!0===Zo.test(e)||!0===jo.test(e)||!0===Lo.test(e)||!0===Mo.test(e)}(e)&&(e=e.replace(/\./g,"")),e};var xo=function(e,a){const i=a.methods.one.killUnicode;let o=e.text||"";o=No(o),o=i(o,a),o=zo(o),e.normal=o};var qo={one:{killUnicode:function(e,a){const i=a.model.one.unicode||{};let o=(e=e||"").split("");return o.forEach((e,a)=>{i[e]&&(o[a]=i[e])}),o.join("")},tokenize:{splitSentences:Fo,splitTerms:function(e,a){let i=[],o=[];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(Ho);for(let e=0;e0?(i[i.length-1]+=n,i.push(a)):i.push(n+a),n=""):n+=a}return n&&(0===i.length&&(i[0]=""),i[i.length-1]+=n),i=So(i),i=Go(i),i=i.filter(e=>e),i},splitWhitespace:e=>{let{str:a,pre:i,post:o}=Ko(e);return{text:a,pre:i,post:o,tags:new Set}},fromString:function(e,a){const{methods:i,model:o}=a,{splitSentences:r,splitTerms:n,splitWhitespace:t}=i.one.tokenize;return e=r(e=e||"",o).map(e=>{let i=n(e,o);return i=i.map(t),i.forEach(e=>{xo(e,a)}),i})}}}};var _o={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let $o={},er={};[[["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(a=>{$o[a]=!0,er[a]="Abbreviation",void 0!==e[1]&&(er[a]=[er[a],e[1]])})});var ar=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mid","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce((e,a)=>(e[a]=!0,e),{});let ir={"!":"ยก","?":"ยฟษ",'"':'โ€œโ€"โโž',"'":"โ€˜โ€›โ›โœโ€™","-":"โ€”โ€“",a:"ยชร€รร‚รƒร„ร…ร รกรขรฃรครฅฤ€ฤฤ‚ฤƒฤ„ฤ…ววŽวžวŸว วกวบวปศ€ศศ‚ศƒศฆศงศบฮ†ฮ‘ฮ”ฮ›ฮฌฮฑฮปะะฐัฆังำำ‘ำ’ำ“ฦ›รฆ",b:"รŸรพฦ€ฦฦ‚ฦƒฦ„ฦ…ษƒฮ’ฮฒฯฯฆะ‘ะ’ะชะฌะฒัŠัŒัขัฃาŒา",c:"ยขยฉร‡รงฤ†ฤ‡ฤˆฤ‰ฤŠฤ‹ฤŒฤฦ†ฦ‡ฦˆศปศผอปอผฯฒฯนฯฝฯพะกัั”า€าาชาซ",d:"รฤŽฤฤฤ‘ฦ‰ฦŠศกฦ‹ฦŒ",e:"รˆร‰รŠร‹รจรฉรชรซฤ’ฤ“ฤ”ฤ•ฤ–ฤ—ฤ˜ฤ™ฤšฤ›ฦศ„ศ…ศ†ศ‡ศจศฉษ†ษ‡ฮˆฮ•ฮžฮฃฮญฮตฮพฯตะ€ะะ•ะตัั‘าผาฝาพาฟำ–ำ—",f:"ฦ‘ฦ’ฯœฯำบำปา’า“ลฟ",g:"ฤœฤฤžฤŸฤ ฤกฤขฤฃฦ“วควฅวฆวงวดวต",h:"ฤคฤฅฤฆฤงฦ•วถศžศŸฮ‰ฮ—ะ‚ะŠะ‹ะะฝั’ั›าขาฃาคาฅาบาปำ‰ำŠ",I:"รŒรรŽร",i:"รฌรญรฎรฏฤจฤฉฤชฤซฤฌฤญฤฎฤฏฤฐฤฑฦ–ฦ—ศˆศ‰ศŠศ‹ฮŠฮฮชฮฏฮนฯŠะ†ะ‡ั–ั—",j:"ฤดฤตวฐศทษˆษ‰ฯณะˆั˜",k:"ฤถฤทฤธฦ˜ฦ™วจวฉฮšฮบะŒะ–ะšะถะบัœาšา›าœาาžาŸา าก",l:"ฤนฤบฤปฤผฤฝฤพฤฟล€ลล‚ฦšฦชว€ววศดศฝฮ™ำ€ำ",m:"ฮœฯบฯปะœะผำำŽ",n:"ร‘รฑลƒล„ล…ล†ล‡ลˆล‰ลŠล‹ฦฦžวธวนศ ศตฮฮ ฮฎฮทฯžะะ˜ะ™ะ›ะŸะธะนะปะฟัาŠา‹ำ…ำ†ำขำฃำคำฅฯ€",o:"ร’ร“ร”ร•ร–ร˜รฐรฒรณรดรตรถรธลŒลลŽลลล‘ฦŸฦ ฦกว‘ว’วชวซวฌวญวพวฟศŒศศŽศศชศซศฌศญศฎศฏศฐศฑฮŒฮ˜ฮŸฮธฮฟฯƒฯŒฯ•ฯ˜ฯ™ฯฌฯดะžะคะพัฒัณำฆำงำจำฉำชำซ",p:"ฦคฮกฯฯทฯธฯผะ ั€าŽารž",q:"ษŠษ‹",r:"ล”ล•ล–ล—ล˜ล™ฦฆศศ‘ศ’ศ“ษŒษะƒะ“ะฏะณัั“าา‘",s:"ลšล›ลœลลžลŸล ลกฦงฦจศ˜ศ™ศฟะ…ั•",t:"ลขลฃลคลฅลฆลงฦซฦฌฦญฦฎศšศ›ศถศพฮ“ฮคฯ„ฯฎะขั‚",u:"ยตร™รšร›รœรนรบรปรผลจลฉลชลซลฌลญลฎลฏลฐลฑลฒลณฦฏฦฐฦฑฦฒว“ว”ว•ว–ว—ว˜ว™วšว›วœศ”ศ•ศ–ศ—ษ„ฮฐฮผฯ…ฯ‹ฯ",v:"ฮฝัดัตัถัท",w:"ลดลตฦœฯ‰ฯŽฯ–ฯขฯฃะจะฉัˆั‰ักัฟ",x:"ร—ฮงฯ‡ฯ—ฯฐะฅั…าฒาณำผำฝำพำฟ",y:"รรฝรฟลถลทลธฦณฦดศฒศณษŽษฮŽฮฅฮซฮณฯˆฯ’ฯ“ฯ”ะŽะฃัƒั‡ัžัฐัฑาฎาฏาฐาฑำฎำฏำฐำฑำฒำณ",z:"ลนลบลปลผลฝลพฦตฦถศคศฅษ€ฮ–"},or={};Object.keys(ir).forEach((function(e){ir[e].split("").forEach((function(a){or[a]=e}))}));const rr=/\//,nr=/[a-z]\.[a-z]/i,tr=/[0-9]/;var Or=function(e,a){let i=e.normal||e.text;const o=a.model.one.aliases;if(o.hasOwnProperty(i)&&(e.alias=e.alias||[],e.alias.push(o[i])),rr.test(i)&&!nr.test(i)&&!tr.test(i)){let a=i.split(rr);a.length<=2&&a.forEach(a=>{""!==(a=a.trim())&&(e.alias=e.alias||[],e.alias.push(a))})}return e};const sr=/^\p{Letter}+-\p{Letter}+$/u;var lr=function(e){let a=e.implicit||e.normal||e.text;a=a.replace(/['โ€™]s$/,""),a=a.replace(/s['โ€™]$/,"s"),a=a.replace(/([aeiou][ktrp])in'$/,"$1ing"),sr.test(a)&&(a=a.replace(/-/g,"")),a=a.replace(/^[#@]/,""),a!==e.normal&&(e.machine=a)};var cr=function(e){let a=0,i=0,o=e.document;for(let e=0;ehr(e,Or),machine:e=>hr(e,lr),normal:e=>hr(e,xo),freq:function(e){let a=e.docs,i={};for(let e=0;e{let t=(e=e.toLowerCase().trim()).length;a.max&&t>a.max&&(t=a.max);for(let O=a.min;O{delete o[e]}),o};const pr={safe:!0,min:3};var gr={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=dr},lib:{typeahead:function(e=[],a={}){let i=this.model();var o;a=Object.assign({},pr,a),o=e,"[object Object]"===Object.prototype.toString.call(o)&&(Object.assign(i.one.lexicon,e),e=Object.keys(e));let r=mr(e,a,this.world());return Object.keys(r).forEach(e=>{i.one.typeahead.hasOwnProperty(e)?delete i.one.typeahead[e]:i.one.typeahead[e]=r[e]}),this}},compute:{typeahead:function(e){const a=e.model.one.typeahead,i=e.docs;if(0===i.length||0===Object.keys(a).length)return;let o=i[i.length-1]||[],r=o[o.length-1];if(!r.post&&a.hasOwnProperty(r.normal)){let i=a[r.normal];r.implicit=i,r.machine=i,r.typeahead=!0,e.compute.preTagger&&e.last().unTag("*").compute(["lexicon","preTagger"])}}},hooks:["typeahead"]};m.extend(j),m.extend(ui),m.extend(Va),m.extend(Bi),m.extend(go),m.plugin(fe),m.extend(ur),m.plugin(f),m.extend(ke),m.extend(gr),m.extend(Ce),m.extend(Vi);const fr="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",Pr=fr.split("").reduce((function(e,a,i){return e[a]=i,e}),{});var br=function(e){if(void 0!==Pr[e])return Pr[e];let a=0,i=1,o=36,r=1;for(;i=0;i--,r*=36){let o=e.charCodeAt(i)-48;o>10&&(o-=7),a+=o*r}return a};var Ar=function(e){const a=new RegExp("([0-9A-Z]+):([0-9A-Z]+)");for(let i=0;i{let n=e.nodes[o];"!"===n[0]&&(a.push(r),n=n.slice(1));const t=n.split(/([A-Z0-9,]+)/g);for(let n=0;n{const i=a.split("ยฆ");return e[i[0]]=i[1],e},{}),i={};return Object.keys(a).forEach((function(e){const o=Cr(a[e]);"true"===e&&(e=!0);for(let a=0;a=0;O--,n*=a){let a=e.charCodeAt(O)-48;a>10&&(a-=7),i+=a*n}return i};const o=function(a,e,O){const o=i(e);return o{let n=a.nodes[i];"!"===n[0]&&(e.push(r),n=n.slice(1));const t=n.split(/([A-Z0-9,]+)/g);for(let n=0;n{let O=Object.keys(function(a){const e=a.split("|").reduce(((a,e)=>{const O=e.split("ยฆ");return a[O[0]]=O[1],a}),{}),O={};return Object.keys(e).forEach((function(a){const i=r(e[a]);"true"===a&&(a=!0);for(let e=0;e (http://spencermounta.in)", "main": "./src/plugin.js", "unpkg": "./builds/compromise-wikipedia.min.js", diff --git a/plugins/wikipedia/src/plugin.js b/plugins/wikipedia/src/plugin.js index 3e0c7bad8..fc6628292 100644 --- a/plugins/wikipedia/src/plugin.js +++ b/plugins/wikipedia/src/plugin.js @@ -1,19 +1,17 @@ -import nlp from '../../../src/one.js' //TODO: fix me import { unpack } from 'efrt' import model from './_model.js' -// console.log('unpacking list..') -let list = Object.keys(unpack(model)) -// console.log(list.length.toLocaleString(), 'articles') - -// console.log('compiling lookup..') -let trie = nlp.buildTrie(list) - const plugin = { api: function (View) { View.prototype.wikipedia = function () { - return this.lookup(trie) + return this.lookup(this.world.model.wpTree) } + }, + mutate: (world, nlp) => { + // console.log('unpacking list..') + let list = Object.keys(unpack(model)) + // console.log(list.length.toLocaleString(), 'articles') + world.model.wpTree = nlp.buildTrie(list) } } diff --git a/rollup.config.js b/rollup.config.js index 99c212b02..7ff5029a1 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -9,7 +9,7 @@ export default [ { input: 'src/three.js', output: [{ file: 'builds/compromise.js', format: 'umd', name: 'nlp' }], - plugins: [nodeResolve(), terser(opts), sizeCheck({ expect: 277, warn: 15 })], + plugins: [nodeResolve(), terser(opts), sizeCheck({ expect: 277, warn: 30 })], }, // === One == @@ -28,24 +28,24 @@ export default [ { input: 'src/two.js', output: [{ file: 'builds/two/compromise-two.cjs', format: 'umd', name: 'nlp' }], - plugins: [nodeResolve(), terser(opts), sizeCheck({ expect: 226, warn: 15 })], + plugins: [nodeResolve(), terser(opts), sizeCheck({ expect: 226, warn: 30 })], }, { input: 'src/two.js', output: [{ file: 'builds/two/compromise-two.mjs', format: 'esm' }], - plugins: [nodeResolve(), terser(opts), sizeCheck({ expect: 226, warn: 15 })], + plugins: [nodeResolve(), terser(opts), sizeCheck({ expect: 226, warn: 30 })], }, // === Three == { input: 'src/three.js', output: [{ file: 'builds/three/compromise-three.cjs', format: 'umd', name: 'nlp' }], - plugins: [nodeResolve(), terser(opts), sizeCheck({ expect: 277, warn: 15 })], + plugins: [nodeResolve(), terser(opts), sizeCheck({ expect: 277, warn: 30 })], }, { input: 'src/three.js', output: [{ file: 'builds/three/compromise-three.mjs', format: 'esm' }], - plugins: [nodeResolve(), terser(opts), sizeCheck({ expect: 277, warn: 15 })], + plugins: [nodeResolve(), terser(opts), sizeCheck({ expect: 277, warn: 30 })], }, ] diff --git a/scratch.js b/scratch.js index c7b67d412..a6b193e9d 100644 --- a/scratch.js +++ b/scratch.js @@ -2,11 +2,21 @@ import nlp from './src/three.js' // import plg from './plugins/dates/src/plugin.js' // nlp.plugin(plg) -// nlp.verbose('tagger') +nlp.verbose('tagger') +// +let doc = nlp(` Somebody's hat`) +doc.debug() -var doc = nlp('Poincare\u0301') -console.log(doc.docs[0]) -// console.log(nlp(`IEEE/WIC`).debug().docs[0][0]) + +// -bury +// -ford +// -ton +// -shire + +// Dundas Harbour +// hants county + +// console.log(nlp(`IEEE / WIC`).debug().docs[0][0]) // const prependingText = 'the patient will need an ' // let doc = nlp('ECG') @@ -15,7 +25,7 @@ console.log(doc.docs[0]) // nlp('i play dr who').debug() -// let doc = nlp(`john jacob and john. foobar`) +// let doc = nlp(`john jacob and john.foobar`) // let m = doc.split('.') // let res = m.joinIf('john', '.') // res.debug() diff --git a/scripts/debug.js b/scripts/debug.js index 4e9c07bf0..0695622a9 100644 --- a/scripts/debug.js +++ b/scripts/debug.js @@ -1,6 +1,7 @@ +/* eslint-disable no-console */ import nlp from '../src/three.js' const txt = process.argv.slice(2).join(' ') -console.log(`\n\n======== '${txt}' ======\n`) // eslint-disable-line +console.log(`\n\n======== '${txt}' ======\n`) nlp.verbose(true) nlp(txt).debug() diff --git a/src/1-one/cache/methods/cacheDoc.js b/src/1-one/cache/methods/cacheDoc.js index de52aa3d2..0c2c303ef 100644 --- a/src/1-one/cache/methods/cacheDoc.js +++ b/src/1-one/cache/methods/cacheDoc.js @@ -1,35 +1,35 @@ const createCache = function (document) { let cache = document.map(terms => { - let stuff = new Set() + let items = new Set() terms.forEach(term => { // add words if (term.normal !== '') { - stuff.add(term.normal) + items.add(term.normal) } // cache switch-status - '%Noun|Verb%' if (term.switch) { - stuff.add(`%${term.switch}%`) + items.add(`%${term.switch}%`) } // cache implicit words, too if (term.implicit) { - stuff.add(term.implicit) + items.add(term.implicit) } if (term.machine) { - stuff.add(term.machine) + items.add(term.machine) } if (term.root) { - stuff.add(term.root) + items.add(term.root) } // cache slashes words, etc if (term.alias) { - term.alias.forEach(str => stuff.add(str)) + term.alias.forEach(str => items.add(str)) } let tags = Array.from(term.tags) for (let t = 0; t < tags.length; t += 1) { - stuff.add('#' + tags[t]) + items.add('#' + tags[t]) } }) - return stuff + return items }) return cache } diff --git a/src/1-one/output/api/debug.js b/src/1-one/output/api/debug.js index a2221bb8c..659b3d4ef 100644 --- a/src/1-one/output/api/debug.js +++ b/src/1-one/output/api/debug.js @@ -1,4 +1,3 @@ -/* eslint-disable no-console */ const isClientSide = () => typeof window !== 'undefined' && window.document //output some helpful stuff to the console diff --git a/src/1-one/tokenize/methods/01-sentences/04-quote-merge.js b/src/1-one/tokenize/methods/01-sentences/04-quote-merge.js index 6b435dc69..75f13654d 100644 --- a/src/1-one/tokenize/methods/01-sentences/04-quote-merge.js +++ b/src/1-one/tokenize/methods/01-sentences/04-quote-merge.js @@ -1,7 +1,7 @@ /* eslint-disable regexp/no-dupe-characters-character-class */ // merge embedded quotes into 1 sentence -// like - 'he said "no!" and left.' +// like - 'he said "no!" and left.' const MAX_QUOTE = 280// ยฏ\_(ใƒ„)_/ยฏ // don't support single-quotes for multi-sentences @@ -75,4 +75,4 @@ const quoteMerge = function (splits) { } return arr } -export default quoteMerge \ No newline at end of file +export default quoteMerge diff --git a/src/2-two/contraction-two/compute/index.js b/src/2-two/contraction-two/compute/index.js index 17163991b..99a13e9d9 100644 --- a/src/2-two/contraction-two/compute/index.js +++ b/src/2-two/contraction-two/compute/index.js @@ -63,7 +63,7 @@ const contractionTwo = view => { for (let i = terms.length - 1; i >= 0; i -= 1) { // is it already a contraction if (terms[i].implicit) { - return + continue } let after = null if (byApostrophe.test(terms[i].normal) === true) { diff --git a/src/2-two/postTagger/model/nouns/organizations.js b/src/2-two/postTagger/model/nouns/organizations.js index c32c7f11e..6a0d69b32 100644 --- a/src/2-two/postTagger/model/nouns/organizations.js +++ b/src/2-two/postTagger/model/nouns/organizations.js @@ -69,4 +69,11 @@ export default [ }, // 'toronto fc' { match: '#Place+ fc', tag: 'SportsTeam', reason: 'fc-sportsteam' }, + + // baltimore quilting club + { + match: '#Place+ #Noun{0,2} (club|society|group|team|committee|commission|association|guild|crew)', + tag: 'Organization', + reason: 'place-noun-society', + }, ] diff --git a/src/2-two/postTagger/model/nouns/places.js b/src/2-two/postTagger/model/nouns/places.js index fb1ea8b4b..c32c49b49 100644 --- a/src/2-two/postTagger/model/nouns/places.js +++ b/src/2-two/postTagger/model/nouns/places.js @@ -25,6 +25,13 @@ export default [ tag: 'Address', reason: 'address-st', }, + // port dover + { match: '(port|mount|mt) #ProperName', tag: 'Place', reason: 'port-name' }, + // generic 'oak ridge' names + // { match: '(oak|maple|spruce|pine|cedar|willow|green|sunset|sunrise) #Place', tag: 'Place', reason: 'tree-name' }, + // generic 'sunset view' names + // { match: '() #Place', tag: 'Place', reason: 'tree-name' }, + // Sports Arenas and Complexs // { // match: diff --git a/src/2-two/postTagger/model/numbers/numbers.js b/src/2-two/postTagger/model/numbers/numbers.js index cd95fa162..c63148359 100644 --- a/src/2-two/postTagger/model/numbers/numbers.js +++ b/src/2-two/postTagger/model/numbers/numbers.js @@ -51,5 +51,5 @@ export default [ // 5 square miles { match: '#Value [(square|cubic)] #Unit', group: 0, tag: 'Unit', reason: 'square-miles' }, // 5) The expenses - { match: '^[#Value] (#Determiner|#Gerund)', group: 0, tag: 'Expression', unTag: 'Value', reason: 'numbered-list' }, + // { match: '^[#Value] (#Determiner|#Gerund)', group: 0, tag: 'Expression', unTag: 'Value', reason: 'numbered-list' }, ] diff --git a/src/2-two/preTagger/compute/tagger/3rd-pass/04-placeWords.js b/src/2-two/preTagger/compute/tagger/3rd-pass/04-placeWords.js index 41d77b8b1..01610dc59 100644 --- a/src/2-two/preTagger/compute/tagger/3rd-pass/04-placeWords.js +++ b/src/2-two/preTagger/compute/tagger/3rd-pass/04-placeWords.js @@ -21,6 +21,15 @@ const placeCont = new Set([ 'southern', 'state', 'western', + 'spring', + 'pine', + 'sunset', + 'view', + 'oak', + 'maple', + 'spruce', + 'cedar', + 'willow', ]) // center of... const noBefore = new Set(['center', 'centre', 'way', 'range', 'bar', 'bridge', 'field', 'pit']) diff --git a/src/2-two/preTagger/compute/tagger/3rd-pass/05-fallback.js b/src/2-two/preTagger/compute/tagger/3rd-pass/05-fallback.js index 677961305..ae75aa5f2 100644 --- a/src/2-two/preTagger/compute/tagger/3rd-pass/05-fallback.js +++ b/src/2-two/preTagger/compute/tagger/3rd-pass/05-fallback.js @@ -8,7 +8,7 @@ const nounFallback = function (terms, i, model) { isEmpty = true } else if (tags.size === 1) { // weaker tags to ignore - if (tags.has('Hyphenated') || tags.has('HashTag') || tags.has('Prefix')) { + if (tags.has('Hyphenated') || tags.has('HashTag') || tags.has('Prefix') || tags.has('SlashedTerm')) { isEmpty = true } } 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 5f9d0a3da..5ca942035 100644 --- a/src/2-two/preTagger/compute/tagger/3rd-pass/06-switches.js +++ b/src/2-two/preTagger/compute/tagger/3rd-pass/06-switches.js @@ -1,5 +1,6 @@ +/* eslint-disable no-console */ import fillTags from './_fillTags.js' -const env = typeof process === 'undefined' || !process.env ? self.env || {} : process.env // eslint-disable-line +const env = typeof process === 'undefined' || !process.env ? self.env || {} : process.env import adhoc from './_adhoc.js' const prefix = /^(under|over|mis|re|un|dis|semi)-?/ @@ -13,7 +14,7 @@ const checkWord = (term, obj) => { found = obj[str] } if (found && env.DEBUG_TAGS) { - console.log(`\n \x1b[2m\x1b[3m โ†“ - '${str}' \x1b[0m`) //eslint-disable-line + console.log(`\n \x1b[2m\x1b[3m โ†“ - '${str}' \x1b[0m`) } return found } @@ -30,7 +31,7 @@ const checkTag = (term, obj = {}, tagSet) => { }) let found = tags.find(tag => obj[tag]) if (found && env.DEBUG_TAGS) { - console.log(` \x1b[2m\x1b[3m โ†“ - '${term.normal || term.implicit}' (#${found}) \x1b[0m`) //eslint-disable-line + console.log(` \x1b[2m\x1b[3m โ†“ - '${term.normal || term.implicit}' (#${found}) \x1b[0m`) } found = obj[found] return found @@ -83,7 +84,7 @@ const doSwitches = function (terms, i, world) { // add plural/singular etc. fillTags(terms, i, model) } else if (env.DEBUG_TAGS) { - console.log(`\n -> X - '${str}' : (${form}) `) //eslint-disable-line + console.log(`\n -> X - '${str}' : (${form}) `) } } } diff --git a/src/2-two/preTagger/model/lexicon/_data.js b/src/2-two/preTagger/model/lexicon/_data.js index 9ad027d0f..44438e65d 100644 --- a/src/2-two/preTagger/model/lexicon/_data.js +++ b/src/2-two/preTagger/model/lexicon/_data.js @@ -23,7 +23,7 @@ export default { "Actor": "trueยฆ0:7B;1:7G;2:6A;3:7F;4:7O;5:7K;a6Nb62c4Ud4Be41f3Sg3Bh30i2Uj2Qkin2Pl2Km26n1Zo1Sp0Vqu0Tr0JsQtJuHvEw8yo6;gi,ut6;h,ub0;aAe9i8o7r6;estl0it0;m2rk0;fe,nn0t2Bza2H;atherm2ld0;ge earn0it0nder0rri1;eter7i6oyF;ll5Qp,s3Z;an,ina2U;n6s0;c6Uder03;aoisea23e9herapi5iktok0o8r6ut1yco6S;a6endseLo43;d0mp,nscri0Bvel0;ddl0u1G;a0Qchn7en6na4st0;ag0;i3Oo0D;aiXcUeRhPiMki0mu26oJpGquaFtBu7wee6;p0theart;lt2per7r6;f0ge6Iviv1;h6inten0Ist5Ivis1;ero,um2;a8ep7r6;ang0eam0;bro2Nc2Ofa2Nmo2Nsi20;ff0tesm2;tt0;ec7ir2Do6;kesp59u0M;ia5Jt3;l7me6An,rcere6ul;r,ss;di0oi5;n7s6;sy,t0;g0n0;am2ephe1Iow6;girl,m2r2Q;cretInior cit3Fr6;gea4v6;a4it1;hol4Xi7reen6ulpt1;wr2C;e01on;l1nt;aEe9o8u6;l0nn6;er up,ingE;g40le mod3Zof0;a4Zc8fug2Ppo32searQv6;ere4Uolution6;ary;e6luYru22;ptio3T;bbi,dic5Vpp0;arter6e2Z;back;aYeWhSiRlOoKr8sycho7u6;nk,p31;logi5;aGeDiBo6;d9fess1g7ph47s6;pe2Ktitu51;en6ramm0;it1y;igy,uc0;est4Nme mini0Unce6s3E;!ss;a7si6;de4;ch0;ctiti39nk0P;dca0Oet,li6pula50rnst42;c2Itic6;al scie6i2;nti5;a6umb0;nn0y6;er,ma4Lwright;lgrim,one0;a8iloso7otogra7ra6ysi1V;se;ph0;ntom,rmaci5;r6ssi1T;form0s4O;i3El,nel3Yr8st1tr6wn;i6on;arWot;ent4Wi42tn0;ccupa4ffBp8r7ut6;ca5l0B;ac4Iganiz0ig2Fph2;er3t6;i1Jomet6;ri5;ic0spring;aBe9ie4Xo7u6;n,rser3J;b6mad,vi4V;le2Vo4D;i6mesis,phew;ce,ghb1;nny,rr3t1X;aEeDiAo7u6yst1Y;m8si16;der3gul,m7n6th0;arDk;!my;ni7s6;f02s0Jt0;on,st0;chan1Qnt1rcha4;gi9k0n8rtyr,t6y1;e,riar6;ch;ag0iac;ci2stra3I;a7e2Aieutena4o6;rd,s0v0;bor0d7ndlo6ss,urea3Fwy0ym2;rd;!y;!s28;e8o7u6;ggl0;gg0urna2U;st0;c3Hdol,llu3Ummigra4n6; l9c1Qfa4habi42nov3s7ve6;nt1stig3;pe0Nt6;a1Fig3ru0M;aw;airFeBistoAo8u6ygie1K;man6sba2H;!ita8;bo,st6usekN;age,e3P;ri2;ir,r6;m7o6;!ine;it;dress0sty2C;aLeIhostGirl26ladi3oCrand7u6;e5ru;c9daug0Jfa8m7pa6s2Y;!re4;a,o6;th0;hi1B;al7d6lf0;!de3A;ie,k6te26;eep0;!wr6;it0;isha,n6;i6tl04;us;mbl0rden0;aDella,iAo7r6;eela2Nie1P;e,re6ster pare4;be1Hm2r6st0;unn0;an2ZgZlmm17nanci0r6tt0;e6st la2H; marsh2OfigXm2;rm0th0;conoEdDlectriCm8n7x6;amin0cellency,i2A;emy,trepreneur,vironmenta1J;c8p6;er1loye6;e,r;ee;ci2;it1;mi5;aKeBi8ork,ri7u6we02;de,tche2H;ft0v0;ct3eti7plom2Hre6va;ct1;ci2ti2;aDcor3fencCi0InAput9s7tectLvel6;op0;ce1Ge6ign0;rt0;ee,y;iz6;en;em2;c1Ml0;d8nc0redev7ug6;ht0;il;!dy;a06e04fo,hXitizenWlToBr9u6;r3stomer6;! representat6;ive;e3it6;ic;lJmGnAord9rpor1Nu7w6;boy,ork0;n6ri0;ciTte1Q;in3;fidantAgressSs9t6;e0Kr6;ibut1o6;ll0;tab13ul1O;!e;edi2m6pos0rade;a0EeQissi6;on0;leag8on7um6;ni5;el;ue;e6own;an0r6;ic,k;!s;a9e7i6um;ld;erle6f;ad0;ir7nce6plFract0;ll1;m2wI;lebri6o;ty;dBptAr6shi0;e7pe6;nt0;r,t6;ak0;ain;et;aMeLiJlogg0oErBu6;dd0Fild0rgl9siness6;m2p7w6;om2;ers05;ar;i7o6;!k0th0;cklay0de,gadi0;hemi2oge8y6;!frie6;nd;ym2;an;cyc6sR;li5;atbox0ings;by,nk0r6;b0on7te6;nd0;!e07;c04dWge4nQpLrHsFtAu7yatull6;ah;nt7t6;h1oG;!ie;h8t6;e6orney;nda4;ie5le6;te;sis00tron6;aut,om0;chbis8isto7tis6;an,t;crU;hop;ost9p6;ari6rentiS;ti6;on;le;a9cest1im3nou8y6;bo6;dy;nc0;ly5rc6;hi5;mi8v6;entur0is1;er;ni7r6;al;str3;at1;or;counBquaintanArob9t6;ivi5or,re6;ss;st;at;ce;ta4;nt", "Adj|Noun": "trueยฆ0:16;a1Db17c0Ud0Re0Mf0Dg0Ah08i06ju05l02mWnUoSpNrIsBt7u4v1watershed;a1ision0Z;gabo4nilla,ria1;b0Vnt;ndergr1pstairs;adua14ou1;nd;a3e1oken,ri0;en,r1;min0rori13;boo,n;age,e5ilv0Flack,o3quat,ta2u1well;bordina0Xper5;b0Lndard;ciali0Yl1vereign;e,ve16;cret,n1ri0;ior;a4e2ou1ubbiL;nd,tiY;ar,bBl0Wnt0p1side11;resent0Vublican;ci0Qsh;a4eriodic0last0Zotenti0r1;emi2incip0o1;!fession0;er,um;rall4st,tie0U;ff1pposi0Hv0;ens0Oi0C;agg01ov1uts;el;a5e3iniatJo1;bi01der07r1;al,t0;di1tr0N;an,um;le,riG;attOi2u1;sh;ber0ght,qC;stice,veniT;de0mpressioYn1;cumbe0Edividu0no0Dsta0Eterim;alf,o1umdrum;bby,melF;en2old,ra1;ph0Bve;er0ious;a7e5i4l3u1;git03t1;ure;uid;ne;llow,m1;aFiL;ir,t,vo1;riOuriO;l3p00x1;c1ecutUpeV;ess;d1iK;er;ar2e1;mographUrivO;k,l2;hiGlassSo2rude,unn1;ing;m5n1operK;creCstitueOte2vertab1;le;mpor1nt;ary;ic,m2p1;anion,lex;er2u1;ni8;ci0;al;e5lank,o4r1;i2u1;te;ef;ttom,urgeois;st;cadem9d6l2ntarct9r1;ab,ct8;e3tern1;at1;ive;rt;oles1ult;ce1;nt;ic", "Adj|Past": "trueยฆ0:4Q;1:4C;2:4H;3:4E;a44b3Tc36d2Je29f20g1Wh1Si1Jj1Gkno1Fl1Am15n12o0Xp0Mqu0Kr08sLtEuAv9w4yellow0;a7ea6o4rinkl0;r4u3Y;n,ri0;k31th3;rp0sh0tZ;ari0e1O;n5p4s0;d1li1Rset;cov3derstood,i4;fi0t0;a8e3Rhr7i6ouTr4urn0wi4C;a4imm0ou2G;ck0in0pp0;ed,r0;eat2Qi37;m0nn0r4;get0ni2T;aOcKeIhGimFm0Hoak0pDt7u4;bsid3Ogge44s4;pe4ta2Y;ct0nd0;a8e7i2Eok0r5u4;ff0mp0nn0;ength2Hip4;ed,p0;am0reotyp0;in0t0;eci4ik0oH;al3Efi0;pRul1;a4ock0ut;d0r0;a4c1Jle2t31;l0s3Ut0;a6or5r4;at4e25;ch0;r0tt3;t4ut0;is2Mur1;aEe5o4;tt0;cAdJf2Bg9je2l8m0Knew0p7qu6s4;eTpe2t4;or0ri2;e3Dir0;e1lac0;at0e2Q;i0Rul1;eiv0o4ycl0;mme2Lrd0v3;in0lli0ti2A;a4ot0;li28;aCer30iBlAo9r5u4;mp0zzl0;e6i2Oo4;ce2Fd4lo1Anou30pos0te2v0;uc0;fe1CocCp0Iss0;i2Kli1L;ann0e2CuS;ck0erc0ss0;ck0i2Hr4st0;allLk0;bse7c6pp13rgan2Dver4;lo4whelm0;ok0;cupi0;rv0;aJe5o4;t0uri1A;ed0gle2;a6e5ix0o4ut0ys1N;di1Nt15u26;as0Clt0;n4rk0;ag0ufact0A;e6i5o4;ad0ck0st,v0;cens0m04st0;ft,v4;el0;tt0wn;a5o15u4;dg0s1B;gg0;llumSmpAn4sol1;br0cre1Ldebt0f8jZspir0t5v4;it0olv0;e4ox0Y;gr1n4re23;d0si15;e2l1o1Wuri1;li0o01r4;ov0;a6e1o4um03;ok0r4;ri0Z;mm3rm0;i6r5u4;a1Bid0;a0Ui0Rown;ft0;aAe9i8l6oc0Ir4;a4i0oz0Y;ctHg19m0;avo0Ju4;st3;ni08tt0x0;ar0;d0il0sc4;in1;dCl1mBn9quipp0s8x4;agger1c6p4te0T;a0Se4os0;ct0rie1D;it0;cap0tabliZ;cha0XgFha1As4;ur0;a0Zbarra0N;i0Buc1;aMeDi5r4;a01i0;gni08miniSre2s4;a9c6grun0Ft4;o4re0Hu17;rt0;iplWou4;nt0r4;ag0;bl0;cBdRf9l8p7ra6t5v4;elop0ot0;ail0ermQ;ng0;re07;ay0ight0;e4in0o0M;rr0;ay0enTor1;m5t0z4;ed,zl0;ag0p4;en0;aPeLhIlHo9r6u4;lt4r0stom03;iv1;a5owd0u4;sh0;ck0mp0;d0loAm7n4ok0v3;centr1f5s4troC;id3olid1;us0;b5pl4;ic1;in0;r0ur0;assi9os0utt3;ar5i4;ll0;g0m0;lebr1n6r4;ti4;fi0;tralJ;g0lcul1;aDewild3iCl9o7r5urn4;ed,t;ok4uis0;en;il0r0t4und;tl0;e5i4;nd0;ss0;as0;ffl0k0laMs0tt3;bPcNdKfIg0lFmaz0nDppBrm0ss9u5wa4;rd0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;a5leg0t3;er0;rm0;fe2;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;and5so4;rb0;on0;ed", - "Singular": "trueยฆ0:5I;1:5G;2:4V;3:4R;4:51;5:56;6:5K;a4Zb4Ic3Ld33e2Vf2Mg2Hh26in22j21k20l1Sm1Jn1Fo19p0Pqu0Or0DsXtKuFvAw7x r55yo yo;a7ha3No3O;f3i4Ot0Ey7;! arou37;arAe8ideo ga2Oo7;cabu4Gl59;gMr7t;di4Wt1W;iety,ni4M;n9p2Yr8s 7;do41s5B;bani1in0;coordinat38der7;estima1to22we3Z; rex,aIeHhFiDoCr9u8v7;! show;m2Mn2rntJto1B;agedy,ib7o4B;e,u7;n0ta43;ni1p2rq3J;c,er,m7;etD;ing7ree24;!y;am,mp3D;ct2le6x return;aLcKeIhor4NiHkFoEpin off,tBu9y7;ll7ner4Jst4Q;ab2V;b7i1n26per bowl,rro1V;st3Jtot0;at8ipe2Eo1Jrate4Fudent7;! lo0G;i37u1;ft ser4Imeo1G;elet5i7;ll,r3S;b36gn2Rte;ab2Hc7min39;t,urity gua2L;e6ho2W;bbatic0la3Gndwi0Opi5;av5eBhetor2i8o7;de6om,w;t8v7;erb2A;e,u0;bBc9f7publ2r0Yspi1;er7orm3;e6r0;i7ord label;p2Ft0;a1u43;estion mark,ot2D;aNeKhoJiGlEoCr8u7yram1D;ddi3EpCrpo1Hs3G;e9o7;bl3Ws7;pe3Gta1;dic1Pmi1Dp1Oroga3Sss relea1D;p7rt0;py;a7ebisci1;q2Bte;cn2e8g7;!gy;!r;ne call,tocoI;anut,d8r7t0yo1;cen3Gsp3H;al,est0;nop4r8t7;e,hog5;adi0Zi2S;atme0bj3Cc9pia1rde0thers,utspok5ve7wn3;n,r7;ti0Nview;cu8e7;an;pi3;ar9it8ot7umb3;a2Chi2O;e,ra1;cot2ra34;aDeAi8o7ur0;nopo4p16rni2Ksq1Pti33uld;c,li0Zn08s7tt5;chief,si31;d8nu,t7;al,i3;al,ic;gna1mm0nd13rsupi0te7yf4;ri0;aBegAi9u7;ddi1n7;ch;me,p07; 9e0K;bor12y7; 7er;up;eyno1itt5;el4ourn0;c9dices,itia2Kni22s8tel0Jvert7;eb1H;e25titu1;en2Hi2Q;aGeCighBo8u7;man right,s1Z;me7rmoDsp1Dtb0I;! r7;un; scho0WriW;a7i1K;d7v5; start,pho7;ne;ndful,sh brown,v5ze;a9elat0Glaci3r7ul4yp1P;an7enadi3id;a19d slam,ny;df4r7;l2ni1F;aEeti1EiDlu1oAr8un7;er0;ee market,i7onti3;ga1;l4ur7;so7;me;eNref4;br2mi4;conoDffi1Mgg,lecto0Pmbas1BnApidem2s1Wth2ven9x8yel7;id;ampXempl0Lte6;i16t;er1Iterp7;ri7;se;my;eJiCo9r7ump tru0R;agonf4i7;er,ve thru;c8g1Bi4or,ssi3wn7;side;to0CumenC;aCgniBnn3s8vide7;nd;conte6incen1Bp7tri0Y;osi7;tion;ta0E;le0U;ath9c8f7ni0terre6;ault 03err0;al,im0;!b7;ed;aUeRhKiJlHoBr7;edit ca9uc7;ib7;le;rd;efficBke,lAmmuniqJns8pi3rr0t0Uus7yo1;in;erv7uG;atoZ;ic,lO;ie6;er0Li7oth;e6n2;ty,vil wK;aBeqAick5oco9r7;istmas car7ysanthemum;ol;la1;ue;ndeli3racteri7;st2;i8llCr7;e0tifica1;liW;hi3nDpCrAt7ucus;erpi7hedr0;ll7;ar;!bohyd7ri3;ra1;it0;a7e,nib0;l,ry;aKeJiop2leHoFrBu7;nny,r7tterf4;g7i0;la7;ry;eak8i7;ck;fa7thro9;st;dy,ro7wl;ugh;mi7;sh;an,l4;nki8rri3;er;ng;cQdKlGnDppeti1rBs9tt2utop7;sy;ic;ce6pe7;ct;r7sen0;ay;ec8oma4ti8;ly;do1;i5l7;er7y;gy;en; hominBj8van7;tage;ec7;ti7;ve;em;cAe8qui7;tt0;ta1;te;i8ru0;al;de6;nt", + "Singular": "trueยฆ0:5J;1:5H;2:4W;3:4S;4:52;5:57;6:5L;7:56;8:5B;a52b4Lc3Nd35e2Xf2Og2Jh28in24j23k22l1Um1Ln1Ho1Bp0Rqu0Qr0FsZtMuHvCw9x r58yo yo;a9ha3Po3Q;f3i4Rt0Gy9;! arou39;arCeAideo ga2Qo9;cabu4Jl5C;gOr9t;di4Zt1Y;iety,ni4P;nBp30rAs 9;do43s5E;bani1in0;coordinat3Ader9;estima1to24we41; rex,aKeJhHiFoErBuAv9;! show;m2On2rntLto1D;agedy,ib9o4E;e,u9;n0ta46;ni1p2rq3L;c,er,m9;etF;ing9ree26;!y;am,mp3F;ct2le6x return;aNcMeKhor4QiJkHoGpin off,tDuBy9;ll9ner7st4T;ab2X;b9i1n28per bowl,rro1X;st3Ltot0;atAipe2Go1Lrate7udent9;! lo0I;i39u1;ft ser4Lmeo1I;elet5i9;ll,r3V;b38gn2Tte;ab2Jc9min3B;t,urity gua2N;e6ho2Y;bbatic0la3Jndwi0Qpi5;av5eDhetor2iAo9;de6om,w;tAv9;erb2C;e,u0;bDcBf9publ2r10spi1;er9orm3;e6r0;i9ord label;p2Ht0;a1u46;estion mark,ot2F;aPeMhoLiIlGoErAu9yram1F;ddi3HpErpo1Js3J;eBo9;bl3Zs9;pe3Jta1;dic1Rmi1Fp1Qroga8ss relea1F;p9rt0;py;a9ebisci1;q2Dte;cn2eAg9;!gy;!r;ne call,tocoK;anut,dAr9t0yo1;cen3Jsp3K;al,est0;nop4rAt9;e,hog5;adi11i2V;atme0bj3FcBpia1rde0thers,utspok5ve9wn3;n,r9;ti0Pview;cuAe9;an;pi3;arBitAot9umb3;a2Fhi2R;e,ra1;cot2ra8;aFeCiAo9ur0;nopo4p18rni2Nsq1Rti36uld;c,li11n0As9tt5;chief,si34;dAnu,t9;al,i3;al,ic;gna1mm0nd15rsupi0te9yf4;ri0;aDegCiBu9;ddi1n9;ch;me,p09; Be0M;bor14y9; 9er;up;eyno1itt5;el4ourn0;cBdices,itia8ni25sAtel0Lvert9;eb1J;e28titu1;en8i2T;aIeEighDoAu9;man right,s22;me9rmoFsp1Ftb0K;! r9;un; scho0YriY;a9i1N;d9v5; start,pho9;ne;ndful,sh brown,v5ze;aBelat0Ilaci3r9ul4yp1S;an9enadi3id;a1Cd slam,ny;df4r9;l2ni1I;aGeti1HiFlu1oCrAun9;er0;ee market,i9onti3;ga1;l4ur9;so9;me;ePref4;br2mi4;conoFffi7gg,lecto0Rmbas1EnCpidem2s1Zth2venBxAyel9;id;ampZempl0Nte6;i19t;er7terp9;ri9;se;my;eLiEoBr9ump tru0U;agonf4i9;er,ve thru;cAg7i4or,ssi3wn9;side;to0EumenE;aEgniDnn3sAvide9;nd;conte6incen8p9tri11;osi9;ti0C;ta0H;le0X;athBcAf9ni0terre6;ault 05err0;al,im0;!b9;ed;aWeThMiLlJoDr9;edit caBuc9;ib9;le;rd;efficDke,lCmmuniqLnsApi3rr0t0Xus9yo1;in;erv9uI;ato02;ic,lQ;ie6;er7i9oth;e6n2;ty,vil wM;aDeqCick5ocoBr9;istmas car9ysanthemum;ol;la1;ue;ndeli3racteri9;st2;iAllEr9;e0tifica1;liZ;hi3nFpErCt9ucus;erpi9hedr0;ll9;ar;!bohyd9ri3;ra1;it0;aAe,nib0t9;on;l,ry;aMeLiop2leJoHrDu9;nny,r9tterf4;g9i0;la9;ry;eakAi9;ck;fa9throB;st;dy,ro9wl;ugh;mi9;sh;an,l4;nkiArri3;er;ng;cSdMlInFppeti1rDsBtt2utop9;sy;ic;ce6pe9;ct;r9sen0;ay;ecAoma4tiA;ly;do1;i5l9;er7y;gy;en; hominDjAvan9;tage;ec8;ti9;ve;em;cCeAqui9;tt0;ta1;te;iAru0;al;de6;nt", "Person|Noun": "trueยฆa0Eb07c03dWeUfQgOhLjHkiGlFmCnBolive,p7r4s3trini06v1wa0;ng,rd,tts;an,enus,iol0;a,et;ky,onPumm09;ay,e1o0uby;bin,d,se;ed,x;a2e1o0;l,tt04;aLnJ;dYge,tR;at,orm;a0eloW;t0x,ya;!s;a9eo,iH;ng,tP;a2e1o0;lGy;an,w3;de,smi4y;a0erb,iOolBuntR;ll,z0;el;ail,e0iLuy;ne;a1ern,i0lo;elds,nn;ith,n0;ny;a0dEmir,ula,ve;rl;a4e3i1j,ol0;ly;ck,x0;ie;an,ja;i0wn;sy;am,h0liff,rystal;a0in,ristian;mbers,ri0;ty;a4e3i2o,r0ud;an0ook;dy;ll;nedict,rg;k0nks;er;l0rt;fredo,ma", "Actor|Verb": "trueยฆaCb8c5doctor,engineAfool,g3host,judge,m2nerd,p1recruit,scout,ushAvolunteAwi0;mp,tneA;arent,ilot;an,ime;eek,oof,r0uide;adu8oom;ha1o0;ach,nscript,ok;mpion,uffeur;o2u0;lly,tch0;er;ss;ddi1ffili0rchite1;ate;ct", "MaleName": "trueยฆ0:H6;1:FZ;2:DS;3:GQ;4:CZ;5:FV;6:GM;7:FP;8:GW;9:ET;A:C2;B:GD;aF8bE1cCQdBMeASfA1g8Yh88i7Uj6Sk6Bl5Mm48n3So3Ip33qu31r26s1Et0Ru0Ov0CwTxSyHzC;aCor0;cChC1karia,nAT;!hDkC;!aF6;!ar7CeF5;aJevgenBSoEuC;en,rFVsCu3FvEF;if,uf;nDs6OusC;ouf,s6N;aCg;s,tC;an,h0;hli,nCrosE1ss09;is,nC;!iBU;avi2ho5;aPeNiDoCyaEL;jcieBJlfgang,odrFutR;lFnC;f8TsC;lCt1;ow;bGey,frEhe4QlC;aE5iCy;am,e,s;ed8iC;d,ed;eAur;i,ndeD2rn2sC;!l9t1;lDyC;l1ne;lDtC;!er;aCHy;aKernDAiFladDoC;jteB0lodymyr;!iC;mFQsDB;cFha0ktBZnceDrgCOvC;a0ek;!nC;t,zo;!e4StBV;lCnC7sily;!entC;in9J;ghE2lCm70nax,ri,sm0;riCyss87;ch,k;aWeRhNiLoGrEuDyC;!l2roEDs1;n6r6E;avD0eCist0oy,um0;ntCRvBKy;bFdAWmCny;!asDmCoharu;aFFie,y;!z;iA6y;mCt4;!my,othy;adEeoDia0SomC;!as;!dor91;!de4;dFrC;enBKrC;anBJeCy;ll,nBI;!dy;dgh,ha,iCnn2req,tsu5V;cDAka;aYcotWeThPiMlobod0oKpenc2tEurDvenAEyCzym1;ed,lvest2;aj,e9V;anFeDuC;!aA;fan17phEQvCwaA;e77ie;!islaCl9;v,w;lom1rBuC;leymaDHta;dDgmu9UlCm1yabonga;as,v8B;!dhart8Yn9;aEeClo75;lCrm0;d1t1;h9Jne,qu1Jun,wn,yne;aDbastiEDk2Yl5Mpp,rgCth,ymoCU;e1Dio;m4n;!tC;!ie,y;eDPlFmEnCq67tosCMul;dCj2UtiA5;e01ro;!iATkeB6mC4u5;!ik,vato9K;aZeUheC8iRoGuDyC;an,ou;b99dDf4peAssC;!elEG;ol00y;an,bLc7MdJel,geIh0lHmGnEry,sDyC;!ce;ar7Ocoe,s;!aCnBU;ld,n;an,eo;a7Ef;l7Jr;e3Eg2n9olfo,riC;go;bBNeDH;cCl9;ar87c86h54kCo;!ey,ie,y;cFeA3gDid,ubByCza;an8Ln06;g85iC;naC6s;ep;ch8Kfa5hHin2je8HlGmFndEoHpha5sDul,wi36yC;an,mo8O;h9Im4;alDSol3O;iD0on;f,ph;ul;e9CinC;cy,t1;aOeLhilJiFrCyoG;aDeC;m,st1;ka85v2O;eDoC;tr;r8GtC;er,ro;!ipCl6H;!p6U;dCLrcy,tC;ar,e9JrC;!o7;b9Udra8So9UscAHtri62ulCv8I;!ie,o7;ctav6Ji2lImHndrBRrGsDtCum6wB;is,to;aDc6k6m0vCwaBE;al79;ma;i,vR;ar,er;aDeksandr,ivC;er,i2;f,v;aNeLguyBiFoCu3O;aDel,j4l0ma0rC;beAm0;h,m;cFels,g5i9EkDlC;es,s;!au,h96l78olaC;!i,y;hCkCol76;ol75;al,d,il,ls1vC;ilAF;hom,tC;e,hC;anCy;!a5i5;aYeViLoGuDyC;l4Nr1;hamDr84staC;fa,p6E;ed,mG;di10e,hamEis4JntDritz,sCussa;es,he;e,y;ad,ed,mC;ad,ed;cGgu5hai,kFlEnDtchC;!e8O;a9Pik;house,o7t1;ae73eC3ha8Iolaj;ah,hDkC;!ey,y;aDeC;al,l;el,l;hDlv3rC;le,ri8Ev4T;di,met;ay0c00gn4hWjd,ks2NlTmadZnSrKsXtDuric7VxC;imilBKwe8B;eHhEi69tCus,y69;!eo,hCia7;ew,i67;eDiC;as,eu,s;us,w;j,o;cHiGkFlEqu8Qsha83tCv3;iCy;!m,n;in,on;el,o7us;a6Yo7us;!elCin,o7us;!l8o;frAEi5Zny,u5;achDcoCik;lm;ai,y;amDdi,e5VmC;oud;adCm6W;ou;aulCi9P;ay;aWeOiMloyd,oJuDyC;le,nd1;cFdEiDkCth2uk;a7e;gi,s,z;ov7Cv6Hw6H;!as,iC;a6Een;g0nn52renDuCvA4we7D;!iS;!zo;am,n4oC;n5r;a9Yevi,la5KnHoFst2thaEvC;eCi;nte;bo;nCpo8V;!a82el,id;!nC;aAy;mEnd1rDsz73urenCwr6K;ce,t;ry,s;ar,beAont;aOeIhalHiFla4onr63rDu5SylC;e,s;istCzysztof;i0oph2;er0ngsl9p,rC;ilA9k,ollos;ed,id;en0iGnDrmCv4Z;it;!dDnCt1;e2Ny;ri4Z;r,th;cp2j4mEna8BrDsp6them,uC;ri;im,l;al,il;a03eXiVoFuC;an,lCst3;en,iC;an,en,o,us;aQeOhKkub4AnIrGsDzC;ef;eDhCi9Wue;!ua;!f,ph;dCge;i,on;!aCny;h,s,th6J;anDnC;!ath6Hie,n72;!nC;!es;!l,sCy;ph;o,qu3;an,mC;!i,m6V;d,ffFns,rCs4;a7JemDmai7QoCry;me,ni1H;i9Dy;!e73rC;ey,y;cKdBkImHrEsDvi2yC;dBs1;on,p2;ed,oDrCv67;e6Qod;d,s61;al,es5Wis1;a,e,oCub;b,v;ob,qu13;aTbNchiMgLke53lija,nuKonut,rIsEtCv0;ai,suC;ki;aDha0i8XmaCsac;el,il;ac,iaC;h,s;a,vinCw3;!g;k,nngu6X;nac1Xor;ka;ai,rahC;im;aReLoIuCyd6;beAgGmFsC;eyDsC;a3e3;in,n;ber5W;h,o;m2raDsse3wC;a5Pie;c49t1K;a0Qct3XiGnDrC;beAman08;dr7VrC;iCy2N;!k,q1R;n0Tt3S;bKlJmza,nIo,rEsDyC;a5KdB;an,s0;lEo67r2IuCv9;hi5Hki,tC;a,o;an,ey;k,s;!im;ib;a08e00iUlenToQrMuCyorgy;iHnFsC;!taC;f,vC;!e,o;n6tC;er,h2;do,lC;herDlC;auCerQ;me;aEegCov2;!g,orC;!io,y;dy,h7C;dfr9nza3XrDttfC;ri6C;an,d47;!n;acoGlEno,oCuseppe;rgiCvan6O;!o,s;be6Ies,lC;es;mo;oFrC;aDha4HrC;it,y;ld,rd8;ffErgC;!e7iCy;!os;!r9;bElBrCv3;eCla1Nr4Hth,y;th;e,rC;e3YielC;!i4;aXeSiQlOorrest,rCyod2E;aHedFiC;edDtC;s,z;ri18;!d42eri11riC;ck,k;nCs2;cEkC;ie,lC;in,yn;esLisC;!co,z3M;etch2oC;ri0yd;d5lConn;ip;deriFliEng,rC;dinaCg4nan0B;nd8;pe,x;co;bCdi,hd;iEriC;ce,zC;io;an,en,o;benez2dZfrYit0lTmMnJo3rFsteb0th0ugenEvCymBzra;an,eCge4D;ns,re3K;!e;gi,iDnCrol,v3w3;est8ie,st;cCk;!h,k;o0DriCzo;co,qC;ue;aHerGiDmC;aGe3A;lCrh0;!iC;a10o,s;s1y;nu5;beAd1iEliDm2t1viCwood;n,s;ot28s;!as,j5Hot,sC;ha;a3en;!dGg6mFoDua2QwC;a2Pin;arC;do;oZuZ;ie;a04eTiOmitrNoFrag0uEwDylC;an,l0;ay3Hig4D;a3Gdl9nc0st3;minFnDri0ugCvydGy2S;!lF;!a36nCov0;e1Eie,y;go,iDykC;as;cCk;!k;i,y;armuFetDll1mitri7neCon,rk;sh;er,m6riC;ch;id;andLepak,j0lbeAmetri4nIon,rGsEvDwCxt2;ay30ey;en,in;hawn,moC;nd;ek,riC;ck;is,nC;is,y;rt;re;an,le,mKnIrEvC;e,iC;!d;en,iEne0PrCyl;eCin,yl;l45n;n,o,us;!iCny;el,lo;iCon;an,en,on;a0Fe0Ch03iar0lRoJrFuDyrC;il,us;rtC;!is;aEistC;iaCob12;no;ig;dy,lInErC;ey,neliCy;s,us;nEor,rDstaC;nt3;ad;or;by,e,in,l3t1;aHeEiCyde;fCnt,ve;fo0Xt1;menDt4;us;s,t;rFuDyC;!t1;dCs;e,io;enC;ce;aHeGrisC;!toC;phCs;!eC;!r;st2t;d,rCs;b5leC;s,y;cDdrCs6;ic;il;lHmFrC;ey,lDroCy;ll;!o7t1;er1iC;lo;!eb,v3;a09eZiVjorn,laUoSrEuCyr1;ddy,rtKst2;er;aKeFiEuDyC;an,ce,on;ce,no;an,ce;nDtC;!t;dDtC;!on;an,on;dFnC;dDisC;lav;en,on;!foOl9y;bby,gd0rCyd;is;i0Lke;bElDshC;al;al,lL;ek;nIrCshoi;at,nEtC;!raC;m,nd;aDhaCie;rd;rd8;!iDjam3nCs1;ie,y;to;kaMlazs,nHrC;n9rDtC;!holomew;eCy;tt;ey;dCeD;ar,iC;le;ar1Nb1Dd16fon15gust3hm12i0Zja0Yl0Bm07nTputsiSrGsaFugustEveDyCziz;a0kh0;ry;o,us;hi;aMchiKiJjun,mHnEon,tCy0;em,hCie,ur8;ur;aDoC;!ld;ud,v;aCin;an,nd8;!el,ki;baCe;ld;ta;aq;aMdHgel8tCw6;hoFoC;iDnC;!i8y;ne;ny;er7rCy;eDzC;ej;!as,i,j,s,w;!s;s,tolC;iCy;!y;ar,iEmaCos;nu5r;el;ne,r,t;aVbSdBeJfHiGl01onFphonsEt1vC;aPin;on;e,o;so,zo;!sR;!onZrC;ed;c,jaHksFssaHxC;!andC;er,rC;e,os,u;andCei;ar,er,r;ndC;ro;en;eDrecC;ht;rt8;dd3in,n,sC;taC;ir;ni;dDm6;ar;an,en;ad,eC;d,t;in;so;aGi,olErDvC;ik;ian8;f8ph;!o;mCn;!a;dGeFraDuC;!bakr,lfazl;hCm;am;!l;allFel,oulaye,ulC;!lDrahm0;an;ah,o;ah;av,on", @@ -37,16 +37,16 @@ export default { "Unit": "trueยฆa07b04cXdWexVfTgRhePinYjoule0BkMlJmDnan08oCp9quart0Bsq ft,t7volts,w6y2ze3ยฐ1ยต0;g,s;c,f,n;dVear1o0;ttR; 0s 0;old;att,b;erNon0;!ne02;ascals,e1i0;cXnt00;rcent,tJ;hms,unceY;/s,e4i0mยฒ,ยฒ,ยณ;/h,cro2l0;e0liK;!ยฒ;grLsR;gCtJ;it1u0;menQx;erPreP;b5elvins,ilo1m0notO;/h,ph,ยฒ;!byGgrEmCs;ct0rtzL;aJogrC;allonJb0ig3rB;ps;a0emtEl oz,t4;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;ยฒ,ยณ;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s", "Noun|Gerund": "trueยฆ0:3O;1:3M;2:3N;3:3D;4:32;5:2V;6:3E;7:3K;8:36;9:3J;A:3B;a3Pb37c2Jd27e23f1Vg1Sh1Mi1Ij1Gk1Dl18m13n11o0Wp0Pques0Sr0EsTtNunderMvKwFyDzB;eroi0oB;ni0o3P;aw2eB;ar2l3;aEed4hispe5i5oCrB;ap8est3i1;n0ErB;ki0r31;i1r2s9tc9;isualizi0oB;lunt1Vti0;stan4ta6;aFeDhin6iCraBy8;c6di0i2vel1M;mi0p8;aBs1;c9si0;l6n2s1;aUcReQhOiMkatKl2Wmo6nowJpeItFuCwB;ea5im37;b35f0FrB;fi0vB;e2Mi2J;aAoryt1KrCuB;d2KfS;etc9ugg3;l3n4;bCi0;ebBi0;oar4;gnBnAt1;a3i0;ip8oB;p8rte2u1;a1r27t1;hCo5reBulp1;a2Qe2;edu3oo3;i3yi0;aKeEi4oCuB;li0n2;oBwi0;fi0;aFcEhear7laxi0nDpor1sB;pon4tructB;r2Iu5;de5;or4yc3;di0so2;p8ti0;aFeacek20laEoCrBublis9;a1Teten4in1oces7;iso2siB;tio2;n2yi0;ckaAin1rB;ki0t1O;fEpeDrganiCvB;erco24ula1;si0zi0;ni0ra1;fe5;avi0QeBur7;gotia1twor6;aDeCi2oB;de3nito5;a2dita1e1ssaA;int0XnBrke1;ifUufactu5;aEeaDiBodAyi0;cen7f1mi1stB;e2i0;r2si0;n4ug9;iCnB;ea4it1;c6l3;ogAuB;dAgg3stif12;ci0llust0VmDnBro2;nova1sp0NterBven1;ac1vie02;agi2plo4;aDea1iCoBun1;l4w3;ki0ri0;nd3rB;roWvB;es1;aCene0Lli4rBui4;ee1ie0N;rde2the5;aHeGiDlCorBros1un4;e0Pmat1;ir1oo4;gh1lCnBs9;anZdi0;i0li0;e3nX;r0Zscina1;a1du01nCxB;erci7plo5;chan1di0ginB;ee5;aLeHiGoub1rCum8wB;el3;aDeCiB;bb3n6vi0;a0Qs7;wi0;rTscoDvi0;ba1coZlBvelo8;eCiB;ve5;ga1;nGti0;aVelebUhSlPoDrBur3yc3;aBos7yi0;f1w3;aLdi0lJmFnBo6pi0ve5;dDsCvinB;ci0;trBul1;uc1;muniDpB;lBo7;ai2;ca1;lBo5;ec1;c9ti0;ap8eaCimToBubT;ni0t9;ni0ri0;aBee5;n1t1;ra1;m8rCs1te5;ri0;vi0;aPeNitMlLoGrDuB;dge1il4llBr8;yi0;an4eat9oadB;cas1;di0;a1mEokB;i0kB;ee8;pi0;bi0;es7oa1;c9i0;gin2lonAt1;gi0;bysit1c6ki0tt3;li0;ki0;bando2cGdverti7gi0pproac9rgDssuCtB;trac1;mi0;ui0;hi0;si0;coun1ti0;ti0;ni0;ng", "PhrasalVerb": "trueยฆ0:92;1:96;2:8H;3:8V;4:8A;5:83;6:85;7:98;8:90;9:8G;A:8X;B:8R;C:8U;D:8S;E:70;F:97;G:8Y;H:81;I:7H;J:79;a9Fb7Uc6Rd6Le6Jf5Ig50h4Biron0j47k40l3Em31n2Yo2Wp2Cquiet Hr1Xs0KtZuXvacuu6QwNyammerBzK;ero Dip LonK;e0k0;by,ov9up;aQeMhLiKor0Mrit19;mp0n3Fpe0r5s5;ackAeel Di0S;aLiKn33;gh 3Wrd0;n Dr K;do1in,oJ;it 79k5lk Lrm 69sh Kt83v60;aw3do1o7up;aw3in,oC;rgeBsK;e 2herE;a00eYhViRoQrMuKypP;ckErn K;do1in,oJup;aLiKot0y 30;ckl7Zp F;ck HdK;e 5Y;n7Wp 3Es5K;ck MdLe Kghten 6me0p o0Rre0;aw3ba4do1in,up;e Iy 2;by,oG;ink Lrow K;aw3ba4in,up;ba4ov9up;aKe 77ll62;m 2r 5M;ckBke Llk K;ov9shit,u47;aKba4do1in,leave,o4Dup;ba4ft9pa69w3;a0Vc0Te0Mh0Ii0Fl09m08n07o06p01quar5GtQuOwK;earMiK;ngLtch K;aw3ba4o8K; by;cKi6Bm 2ss0;k 64;aReQiPoNrKud35;aigh2Det75iK;ke 7Sng K;al6Yup;p Krm2F;by,in,oG;c3Ln3Lr 2tc4O;p F;c3Jmp0nd LrKveAy 2O;e Ht 2L;ba4do1up;ar3GeNiMlLrKurB;ead0ingBuc5;a49it 6H;c5ll o3Cn 2;ak Fe1Xll0;a3Bber 2rt0und like;ap 5Vow Duggl5;ash 6Noke0;eep NiKow 6;cLp K;o6Dup;e 68;in,oK;ff,v9;de19gn 4NnKt 6Gz5;gKkE; al6Ale0;aMoKu5W;ot Kut0w 7M;aw3ba4f48oC;c2WdeEk6EveA;e Pll1Nnd Orv5tK; Ktl5J;do1foLin,o7upK;!on;ot,r5Z;aw3ba4do1in,o33up;oCto;al66out0rK;ap65ew 6J;ilAv5;aXeUiSoOuK;b 5Yle0n Kstl5;aLba4do1inKo2Ith4Nu5P;!to;c2Xr8w3;ll Mot LpeAuK;g3Ind17;a2Wf3Po7;ar8in,o7up;ng 68p oKs5;ff,p18;aKelAinEnt0;c6Hd K;o4Dup;c27t0;aZeYiWlToQrOsyc35uK;ll Mn5Kt K;aKba4do1in,oJto47up;pa4Dw3;a3Jdo1in,o21to45up;attleBess KiNop 2;ah2Fon;iLp Kr4Zu1Gwer 6N;do1in,o6Nup;nt0;aLuK;gEmp 6;ce u20y 6D;ck Kg0le 4An 6p5B;oJup;el 5NncilE;c53ir 39n0ss MtLy K;ba4oG; Hc2R;aw3ba4in,oJ;pKw4Y;e4Xt D;aLerd0oK;dAt53;il Hrrow H;aTeQiPoLuK;ddl5ll I;c1FnkeyMp 6uthAve K;aKdo1in,o4Lup;l4Nw3; wi4K;ss0x 2;asur5e3SlLss K;a21up;t 6;ke Ln 6rKs2Ax0;k 6ryA;do,fun,oCsure,up;a02eViQoLuK;ck0st I;aNc4Fg MoKse0;k Kse4D;aft9ba4do1forw37in56o0Zu46;in,oJ;d 6;e NghtMnLsKve 00;ten F;e 2k 2; 2e46;ar8do1in;aMt LvelK; oC;do1go,in,o7up;nEve K;in,oK;pKut;en;c5p 2sh LtchBughAy K;do1o59;in4Po7;eMick Lnock K;do1oCup;oCup;eLy K;in,up;l Ip K;aw3ba4do1f04in,oJto,up;aMoLuK;ic5mpE;ke3St H;c43zz 2;a01eWiToPuK;nLrrKsh 6;y 2;keLt K;ar8do1;r H;lKneErse3K;d Ke 2;ba4dKfast,o0Cup;ear,o1;de Lt K;ba4on,up;aw3o7;aKlp0;d Ml Ir Kt 2;fKof;rom;f11in,o03uW;cPm 2nLsh0ve Kz2P;at,it,to;d Lg KkerP;do1in,o2Tup;do1in,oK;ut,v9;k 2;aZeTive Rloss IoMrLunK; f0S;ab hold,in43ow 2U; Kof 2I;aMb1Mit,oLr8th1IuK;nd9;ff,n,v9;bo7ft9hQw3;aw3bKdo1in,oJrise,up,w3;a4ir2H;ar 6ek0t K;aLb1Fdo1in,oKr8up;ff,n,ut,v9;cLhKl2Fr8t,w3;ead;ross;d aKng 2;bo7;a0Ee07iYlUoQrMuK;ck Ke2N;ar8up;eLighten KownBy 2;aw3oG;eKshe27; 2z5;g 2lMol Krk I;aKwi20;bo7r8;d 6low 2;aLeKip0;sh0;g 6ke0mKrKtten H;e F;gRlPnNrLsKzzle0;h F;e Km 2;aw3ba4up;d0isK;h 2;e Kl 1T;aw3fPin,o7;ht ba4ure0;ePnLsK;s 2;cMd K;fKoG;or;e D;d04l 2;cNll Krm0t1G;aLbKdo1in,o09sho0Eth08victim;a4ehi2O;pa0C;e K;do1oGup;at Kdge0nd 12y5;in,o7up;aOi1HoNrK;aLess 6op KuN;aw3b03in,oC;gBwB; Ile0ubl1B;m 2;a0Ah05l02oOrLut K;aw3ba4do1oCup;ackBeep LoKy0;ss Dwd0;by,do1in,o0Uup;me NoLuntK; o2A;k 6l K;do1oG;aRbQforOin,oNtKu0O;hLoKrue;geth9;rough;ff,ut,v9;th,wK;ard;a4y;paKr8w3;rt;eaLose K;in,oCup;n 6r F;aNeLiK;ll0pE;ck Der Kw F;on,up;t 2;lRncel0rOsMtch LveE; in;o1Nup;h Dt K;doubt,oG;ry LvK;e 08;aw3oJ;l Km H;aLba4do1oJup;ff,n,ut;r8w3;a0Ve0MiteAl0Fo04rQuK;bblNckl05il0Dlk 6ndl05rLsKtMy FzzA;t 00;n 0HsK;t D;e I;ov9;anWeaUiLush K;oGup;ghQng K;aNba4do1forMin,oLuK;nd9p;n,ut;th;bo7lKr8w3;ong;teK;n 2;k K;do1in,o7up;ch0;arTg 6iRn5oPrNssMttlLunce Kx D;aw3ba4;e 6; ar8;e H;do1;k Dt 2;e 2;l 6;do1up;d 2;aPeed0oKurt0;cMw K;aw3ba4do1o7up;ck;k K;in,oC;ck0nk0stA; oQaNef 2lt0nd K;do1ov9up;er;up;r Lt K;do1in,oCup;do1o7;ff,nK;to;ck Pil0nMrgLsK;h D;ainBe D;g DkB; on;in,o7;aw3do1in,oCup;ff,ut;ay;ct FdQir0sk MuctionA; oG;ff;ar8o7;ouK;nd; o7;d K;do1oKup;ff,n;wn;o7up;ut", - "ProperNoun": "trueยฆabid,barbie,c3e2f1iron maiden,kirby,m0nis,riel;cgill,ercedes,issy;lorence,ranco;lmo,uro;atalina,hristi", + "ProperNoun": "trueยฆaIbDc8dalhousHe7f5gosford,h4iron maiden,kirby,landsdowne,m2nis,r1s0wembF;herwood,paldiB;iel,othwe1;cgi0ercedes,issy;ll;intBudsB;airview,lorence,ra0;mpt9nco;lmo,uro;a1h0;arlt6es5risti;rl0talina;et4i0;ng;arb3e0;et1nt0rke0;ley;on;ie;bid,jax", "Person|Place": "trueยฆa8d6h4jordan,k3orlando,s1vi0;ctor9rgin9;a0ydney;lvador,mara,ntia4;ent,obe;amil0ous0;ton;arw2ie0;go;lexandr1ust0;in;ia", "LastName": "trueยฆ0:BR;1:BF;2:B5;3:BH;4:AX;5:9Y;6:B6;7:BK;8:B0;9:AV;A:AL;B:8Q;C:8G;D:7K;E:BM;F:AH;aBDb9Zc8Wd88e81f7Kg6Wh64i60j5Lk4Vl4Dm39n2Wo2Op25quispe,r1Ls0Pt0Ev03wTxSyKzG;aIhGimmerm6A;aGou,u;ng,o;khar5ytsE;aKeun9BiHoGun;koya32shiBU;!lG;diGmaz;rim,z;maGng;da,g52mo83sGzaC;aChiBV;iao,u;aLeJiHoGright,u;jcA5lff,ng;lGmm0nkl0sniewsC;kiB1liams33s3;bGiss,lt0;b,er,st0;a6Vgn0lHtG;anabe,s3;k0sh,tG;e2Non;aLeKiHoGukD;gt,lk5roby5;dHllalGnogr3Kr1Css0val3S;ba,ob1W;al,ov4;lasHsel8W;lJn dIrgBEsHzG;qu7;ilyEqu7siljE;en b6Aijk,yk;enzueAIverde;aPeix1VhKi2j8ka43oJrIsui,uG;om5UrG;c2n0un1;an,emblA7ynisC;dorAMlst3Km4rrAth;atch0i8UoG;mHrG;are84laci79;ps3sG;en,on;hirDkah9Mnaka,te,varA;a06ch01eYhUiRmOoMtIuHvGzabo;en9Jobod3N;ar7bot4lliv2zuC;aIeHoG;i7Bj4AyanAB;ele,in2FpheBvens25;l8rm0;kol5lovy5re7Tsa,to,uG;ng,sa;iGy72;rn5tG;!h;l71mHnGrbu;at9cla9Egh;moBo7M;aIeGimizu;hu,vchG;en8Luk;la,r1G;gu9infe5YmGoh,pulveA7rra5P;jGyG;on5;evi6iltz,miHneid0roed0uGwarz;be3Elz;dHtG;!t,z;!t;ar4Th8ito,ka4OlJnGr4saCto,unde19v4;ch7dHtGz;a5Le,os;b53e16;as,ihDm4Po0Y;aVeSiPoJuHyG;a6oo,u;bio,iz,sG;so,u;bKc8Fdrigue67ge10j9YmJosevelt,sItHux,wG;e,li6;a9Ch;enb4Usi;a54e4L;erts15i93;bei4JcHes,vGzzo;as,e9;ci,hards12;ag2es,iHut0yG;es,nol5N;s,t0;dImHnGsmu97v6C;tan1;ir7os;ic,u;aUeOhMiJoHrGut8;asad,if6Zochazk27;lishc2GpGrti72u10we76;e3Aov51;cHe45nG;as,to;as70hl0;aGillips;k,m,n6I;a3Hde3Wete0Bna,rJtG;ersHrovGters54;!a,ic;!en,on;eGic,kiBss3;i9ra,tz,z;h86k,padopoulIrk0tHvG;ic,l4N;el,te39;os;bMconn2Ag2TlJnei6PrHsbor6XweBzG;dem7Rturk;ella4DtGwe6N;ega,iz;iGof7Hs8I;vGyn1R;ei9;aSri1;aPeNiJoGune50ym2;rHvGwak;ak4Qik5otn66;odahl,r4S;cholsZeHkolGls4Jx3;ic,ov84;ls1miG;!n1;ils3mG;co4Xec;gy,kaGray2sh,var38;jiGmu9shiG;ma;a07c04eZiWoMuHyeG;rs;lJnIrGssoli6S;atGp03r7C;i,ov4;oz,te58;d0l0;h2lOnNo0RrHsGza1A;er,s;aKeJiIoz5risHtG;e56on;!on;!n7K;au,i9no,t5J;!lA;r1Btgome59;i3El0;cracFhhail5kkeHlG;l0os64;ls1;hmeJiIj30lHn3Krci0ssiGyer2N;!er;n0Po;er,j0;dDti;cartHlG;aughl8e2;hy;dQe7Egnu68i0jer3TkPmNnMrItHyG;er,r;ei,ic,su21thews;iHkDquAroqu8tinG;ez,s;a5Xc,nG;!o;ci5Vn;a5UmG;ad5;ar5e6Kin1;rig77s1;aVeOiLoJuHyG;!nch;k4nGo;d,gu;mbarGpe3Fvr4we;di;!nGu,yana2B;coln,dG;b21holm,strom;bedEfeKhIitn0kaHn8rGw35;oy;!j;m11tG;in1on1;bvGvG;re;iGmmy,ng,rs2Qu,voie,ws3;ne,t1F;aZeYh2iWlUnez50oNrJuHvar2woG;k,n;cerGmar68znets5;a,o34;aHem0isGyeziu;h23t3O;m0sni4Fus3KvG;ch4O;bay57ch,rh0Usk16vaIwalGzl5;czGsC;yk;cIlG;!cGen4K;huk;!ev4ic,s;e8uiveG;rt;eff0kGl4mu9nnun1;ucF;ll0nnedy;hn,llKminsCne,pIrHstra3Qto,ur,yGzl5;a,s0;j0Rls22;l2oG;or;oe;aPenOha6im14oHuG;ng,r4;e32hInHrge32u6vG;anD;es,ss3;anHnsG;en,on,t3;nesGs1R;en,s1;kiBnings,s1;cJkob4EnGrv0E;kDsG;en,sG;en0Ion;ks3obs2A;brahimDglesi5Nke5Fl0Qno07oneIshikHto,vanoG;u,v54;awa;scu;aVeOiNjaltal8oIrist50uG;!aGb0ghAynh;m2ng;a6dz4fIjgaa3Hk,lHpUrGwe,x3X;ak1Gvat;mAt;er,fm3WmG;ann;ggiBtchcock;iJmingw4BnHrGss;nand7re9;deGriks1;rs3;kkiHnG;on1;la,n1;dz4g1lvoQmOns0ZqNrMsJuIwHyG;asFes;kiB;g1ng;anHhiG;mo14;i,ov0J;di6p0r10t;ue;alaG;in1;rs1;aVeorgUheorghe,iSjonRoLrJuGw3;errGnnar3Co,staf3Ctierr7zm2;a,eG;ro;ayli6ee2Lg4iffithGub0;!s;lIme0UnHodGrbachE;e,m2;calvAzale0S;dGubE;bGs0E;erg;aj,i;bs3l,mGordaO;en7;iev3U;gnMlJmaIndFo,rGsFuthi0;cGdn0za;ia;ge;eaHlG;agh0i,o;no;e,on;aVerQiLjeldsted,lKoIrHuG;chs,entAji41ll0;eem2iedm2;ntaGrt8urni0wl0;na;emi6orA;lipIsHtzgeraG;ld;ch0h0;ovG;!ic;hatDnanIrG;arGei9;a,i;deY;ov4;b0rre1D;dKinsJriksIsGvaB;cob3GpGtra3D;inoza,osiQ;en,s3;te8;er,is3warG;ds;aXePiNjurhuMoKrisco15uHvorakG;!oT;arte,boHmitru,nn,rGt3C;and,ic;is;g2he0Omingu7nErd1ItG;to;us;aGcki2Hmitr2Ossanayake,x3;s,z; JbnaIlHmirGrvisFvi,w2;!ov4;gado,ic;th;bo0groot,jo6lHsilGvriA;va;a cruz,e3uG;ca;hl,mcevsCnIt2WviG;dGes,s;ov,s3;ielsGku22;!en;ki;a0Be06hRiobQlarkPoIrGunningh1H;awfo0RivGuz;elli;h1lKntJoIrGs2Nx;byn,reG;a,ia;ke,p0;i,rer2K;em2liB;ns;!e;anu;aOeMiu,oIristGu6we;eGiaG;ns1;i,ng,p9uHwGy;!dH;dGng;huJ;!n,onGu6;!g;kJnIpm2ttHudhGv7;ry;erjee,o14;!d,g;ma,raboG;rty;bJl0Cng4rG;eghetHnG;a,y;ti;an,ota1C;cerAlder3mpbeLrIstGvadi0B;iGro;llo;doHl0Er,t0uGvalho;so;so,zo;ll;a0Fe01hYiXlUoNrKuIyG;rLtyG;qi;chan2rG;ke,ns;ank5iem,oGyant;oks,wG;ne;gdan5nIruya,su,uchaHyKziG;c,n5;rd;darGik;enG;ko;ov;aGond15;nco,zG;ev4;ancFshw16;a08oGuiy2;umGwmG;ik;ckRethov1gu,ktPnNrG;gJisInG;ascoGds1;ni;ha;er,mG;anG;!n;gtGit7nP;ss3;asF;hi;er,hG;am;b4ch,ez,hRiley,kk0ldw8nMrIshHtAu0;es;ir;bInHtlGua;ett;es,i0;ieYosa;dGik;a9yoG;padhyG;ay;ra;k,ng;ic;bb0Acos09d07g04kht05lZnPrLsl2tJyG;aHd8;in;la;chis3kiG;ns3;aImstro6sl2;an;ng;ujo,ya;dJgelHsaG;ri;ovG;!a;ersJov,reG;aGjEws;ss1;en;en,on,s3;on;eksejEiyEmeiIvG;ar7es;ez;da;ev;arwHuilG;ar;al;ams,l0;er;ta;as", "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:74;1:61;2:6G;3:6J;4:5S;a68b53c4Id48e44f3Wg3Hh39i31j2Wk2Fl23m1Mn1Co19p0Wq0Ur0Os05tRuQvLwDxiBy9z5;a7h5i4Muri4O;a5e5ongsh0;ng3H;greb,nzib5G;ang2e5okoha3Sunfu;katerin3Hrev0;a5n0Q;m5Hn;arsBeAi6roclBu5;h0xi,zh5P;c7n5;d5nipeg,terth4;hoek,s1L;hi5Zkl3A;l63xford;aw;a8e6i5ladivost5Molgogr6L;en3lni6S;ni22r5;o3saill4N;lenc4Wncouv3Sr3ughn;lan bat1Crumqi,trecht;aFbilisi,eEheDiBo9r7u5;l21n63r5;in,ku;i5ondh62;es51poli;kyo,m2Zron1Pulo5;n,uS;an5jua3l2Tmisoa6Bra3;j4Tshui; hag62ssaloni2H;gucigal26hr0l av1U;briz,i6llinn,mpe56ng5rtu,shk2R;i3Esh0;an,chu1n0p2Eyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4X;ba0Ht;aten is55ockholm,rasbou67uttga2V;an8e6i5;jiazhua1llo1m5Xy0;f50n5;ya1zh4H;gh3Kt4Q;att45o1Vv44;cramen16int ClBn5o paulo,ppo3Rrajevo; 7aa,t5;a 5o domin3E;a3fe,m1M;antonio,die3Cfrancisco,j5ped3Nsalvad0J;o5u0;se;em,t lake ci5Fz25;lou58peters24;a9e8i6o5;me,t59;ga,o5yadh;! de janei3F;cife,ims,nn3Jykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0Q;aFeEhDiCo9r7u6yong5;ya1;eb59ya1;a5etor3M;g52to;rt5zn0; 5la4Co;au prin0Melizabe24sa03;ls3Prae5Atts26;iladelph3Gnom pe1Aoenix;ki1r21tah tik3E;dua,lerYnaji,r4Ot5;na,r32;ak44des0Km1Mr6s5ttawa;a3Vlo;an,d06;a7ew5ing2Fovosibir1Jyc; 5cast36;del24orlea44taip14;g8iro4Wn5pl2Wshv33v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0W;aEeCi9o6u5;mb2Ani26sc3Y;gadishu,nt6s5;c13ul;evideo,pelli1Rre2Z;ami,l6n14s5;kolc,sissauga;an,waukee;cca,d5lbour2Mmph41ndo1Cssi3;an,ell2Xi3;cau,drAkass2Sl9n8r5shh4A;aca6ib5rakesh,se2L;or;i1Sy;a4EchFdal0Zi47;mo;id;aDeAi8o6u5vSy2;anMckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Lma5nz,sb2verpo28;!ss27; ma39i5;c5pzig;est16; p6g5ho2Wn0Cusan24;os;az,la33;aHharFiClaipeBo9rak0Du7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Hlka2Xpavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bHdu3llakuric0Qmpa3Fn6ohsiu1ra5un1Iwaguc0Q;c0Pj;d5o,p4;ah1Ty;a7e6i5ohannesV;l1Vn0;dd36rusalem;ip4k5;ar2H;bad0mph1OnArkutUs7taXz5;mir,tapala5;pa;fah0l6tanb5;ul;am2Zi2H;che2d5;ianap2Mo20;aAe7o5yder2W; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Oupe;ld coa1Bthen5;bu2S;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal29es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,nkirk,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Zr es sala1KugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1Q;lo7n6penhag0Ar5;do1Ok;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr14;ch8sha,zh07;gliari,i9lga8mayenJn6pe town,r5tanO;acCdiff;ber1Ac5;un;ry;ro;aWeNhKirmingh0WoJr9u5;chareTdapeTenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iCl9ng8r5;g6l5n;in;en;aluru,hazi;fa6grade,o horizon5;te;st;ji1rut;ghd0BkFn9ot8r7s6yan n4;ur;el,r07;celo3i,ranquil09;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a05b02cc01ddis aba00gartaZhmedXizawl,lSmPnHqa00rEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a8c5kaOtwerp;hora6o3;na;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 7buquerq6eppo,giers,ma5;ty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg", - "Region": "trueยฆ0:2K;1:2Q;2:2H;3:2B;a2Ob2Bc1Xd1Ses1Rf1Pg1Kh1Gi1Bj17k12l0Zm0On06o04pYqVrSsJtEuBverAw6y4zacatec2S;akut0o0Cu4;cat2k06;a5est 4isconsin,yomi1K;bengal,virgin0;rwick3shington4;! dc;acruz,mont;dmurt0t4;ah,tar4; 2La0Y;a6e5laxca1Rripu1Xu4;scaEva;langa1nnessee,x2F;bas0Wm4smOtar25;aulip2Dil nadu;a9i7o5taf12u4ylh1F;ffZrr05s1A;me1Cno1Quth 4;cWdV;ber0c4kkim,naloa;hu2ily;n5skatchew2xo4;ny; luis potosi,ta catari1;a4hodeA;j4ngp08;asth2shahi;ingh25u4;e4intana roo;bec,en6retaro;ara8e6rince edward4unjab; i4;sl0C;i,nnsylv4rnambu0C;an0;!na;axa0Ydisha,h4klaho20ntar4reg7ss0Cx0H;io;aKeEo6u4;evo le4nav0W;on;r4tt17va scot0;f9mandy,th4; 4ampton3;c6d5yo4;rk3;ako1N;aroli1;olk;bras1Mva0Cw4; 5foundland4;! and labrador;brunswick,hamp3jers5mexiTyork4;! state;ey;galPyarit;aAeghala0Mi6o4;nta1r4;dov0elos;ch6dlanDn5ss4zor11;issippi,ouri;as geraPneso18;ig2oac2;dhy12harasht0Gine,ni5r4ssachusetts;anhao,i el,ylG;p4toba;ur;anca3e4incoln3ouisI;e4iR;ds;a6e5h4omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr4;achay,el0nata0X;alis6har4iangxi;kh4;and;co;daho,llino7n4owa;d5gush4;et0;ia1;is;a6ert5i4un2;dalFm0D;ford3;mp3rya1waii;ansu,eorg0lou7oa,u4;an4izhou,jarat;ajuato,gdo4;ng;cester3;lori4uji2;da;sex;ageUe7o5uran4;go;rs4;et;lawaMrby3;aFeaEh9o4rim08umbr0;ahui7l6nnectic5rsi4ventry;ca;ut;i03orado;la;e5hattisgarh,i4uvash0;apRhuahua;chn5rke4;ss0;ya;ra;lGm4;bridge3peche;a9ihar,r8u4;ck4ryat0;ingham3;shi4;re;emen,itish columb0;h0ja cal8lk7s4v7;hkorto4que;st2;an;ar0;iforn0;ia;dygHguascalientes,lBndhr9r5ss4;am;izo1kans5un4;achal 7;as;na;a 4;pradesh;a6ber5t4;ai;ta;ba5s4;ka;ma;ea", + "City": "trueยฆ0:74;1:61;2:6G;3:6J;4:5S;a68b53c4Id48e44f3Wg3Hh39i31j2Wk2Fl23m1Mn1Co19p0Wq0Ur0Os05tRuQvLwDxiBy9z5;a7h5i4Muri4O;a5e5ongsh0;ng3H;greb,nzib5G;ang2e5okoha3Sunfu;katerin3Hrev0;a5n0Q;m5Hn;arsBeAi6roclBu5;h0xi,zh5P;c7n5;d5nipeg,terth4;hoek,s1L;hi5Zkl3A;l63xford;aw;a8e6i5ladivost5Molgogr6L;en3lni6S;ni22r5;o3saill4N;lenc4Wncouv3Sr3ughn;lan bat1Crumqi,trecht;aFbilisi,eEheDiBo9r7u5;l21n63r5;in,ku;i5ondh62;es51poli;kyo,m2Zron1Pulo5;n,uS;an5jua3l2Tmisoa6Bra3;j4Tshui; hag62ssaloni2H;gucigal26hr0l av1U;briz,i6llinn,mpe56ng5rtu,shk2R;i3Esh0;an,chu1n0p2Eyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4X;ba0Ht;aten is55ockholm,rasbou67uttga2V;an8e6i5;jiazhua1llo1m5Xy0;f50n5;ya1zh4H;gh3Kt4Q;att45o1Vv44;cramen16int ClBn5o paulo,ppo3Rrajevo; 7aa,t5;a 5o domin3E;a3fe,m1M;antonio,die3Cfrancisco,j5ped3Nsalvad0J;o5u0;se;em,t lake ci5Fz25;lou58peters24;a9e8i6o5;me,t59;ga,o5yadh;! de janei3F;cife,ims,nn3Jykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0Q;aFeEhDiCo9r7u6yong5;ya1;eb59ya1;a5etor3M;g52to;rt5zn0; 5la4Co;au prin0Melizabe24sa03;ls3Prae5Atts26;iladelph3Gnom pe1Aoenix;ki1tah tik3E;dua,lerYnaji,r4Ot5;na,r32;ak44des0Km1Mr6s5ttawa;a3Vlo;an,d06;a7ew5ing2Fovosibir1Jyc; 5cast36;del24orlea44taip14;g8iro4Wn5pl2Wshv33v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0W;aEeCi9o6u5;mb2Ani26sc3Y;gadishu,nt6s5;c13ul;evideo,pelli1Rre2Z;ami,l6n14s5;kolc,sissauga;an,waukee;cca,d5lbour2Mmph41ndo1Cssi3;an,ell2Xi3;cau,drAkass2Sl9n8r5shh4A;aca6ib5rakesh,se2L;or;i1Sy;a4EchFdal0Zi47;mo;id;aDeAi8o6u5vSy2;anMckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Lma5nz,sb2verpo28;!ss27; ma39i5;c5pzig;est16; p6g5ho2Wn0Cusan24;os;az,la33;aHharFiClaipeBo9rak0Du7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Hlka2Xpavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bHdu3llakuric0Qmpa3Fn6ohsiu1ra5un1Iwaguc0Q;c0Pj;d5o,p4;ah1Ty;a7e6i5ohannesV;l1Vn0;dd36rusalem;ip4k5;ar2H;bad0mph1OnArkutUs7taXz5;mir,tapala5;pa;fah0l6tanb5;ul;am2Zi2H;che2d5;ianap2Mo20;aAe7o5yder2W; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Oupe;ld coa1Bthen5;bu2S;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal29es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,nkirk,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Zr es sala1KugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1Q;lo7n6penhag0Ar5;do1Ok;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr14;ch8sha,zh07;gliari,i9lga8mayenJn6pe town,r5tanO;acCdiff;ber1Ac5;un;ry;ro;aWeNhKirmingh0WoJr9u5;chareTdapeTenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iCl9ng8r5;g6l5n;in;en;aluru,hazi;fa6grade,o horizon5;te;st;ji1rut;ghd0BkFn9ot8r7s6yan n4;ur;el,r07;celo3i,ranquil09;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a05b02cc01ddis aba00gartaZhmedXizawl,lSmPnHqa00rEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a8c5kaOtwerp;hora6o3;na;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 7buquerq6eppo,giers,ma5;ty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg", + "Region": "trueยฆ0:2O;1:2L;2:2U;3:2F;a2Sb2Fc21d1Wes1Vf1Tg1Oh1Ki1Fj1Bk16l13m0Sn09o07pYqVrSsJtEuBverAw6y4zacatec2W;akut0o0Fu4;cat1k09;a5est 4isconsin,yomi1O;bengal,virgin0;rwick3shington4;! dc;acruz,mont;dmurt0t4;ah,tar4; 2Pa12;a6e5laxca1Vripu21u4;scaEva;langa2nnessee,x2J;bas10m4smQtar29;aulip2Hil nadu;a9elang07i7o5taf16u4ylh1J;ff02rr09s1E;me1Gno1Uuth 4;cZdY;ber0c4kkim,naloa;hu1ily;n5rawak,skatchew1xo4;ny; luis potosi,ta catari2;a4hodeA;j4ngp0C;asth1shahi;ingh29u4;e4intana roo;bec,en6retaro;aAe6rince edward4unjab; i4;sl0G;i,n5r4;ak,nambu0F;a0Rnsylv4;an0;ha0Pra4;!na;axa0Zdisha,h4klaho21ntar4reg7ss0Dx0I;io;aLeEo6u4;evo le4nav0X;on;r4tt18va scot0;f9mandy,th4; 4ampton3;c6d5yo4;rk3;ako1O;aroli2;olk;bras1Nva0Dw4; 6foundland4;! and labrad4;or;brunswick,hamp3jers5mexiTyork4;! state;ey;galPyarit;aAeghala0Mi6o4;nta2r4;dov0elos;ch6dlanDn5ss4zor11;issippi,ouri;as geraPneso18;ig1oac1;dhy12harasht0Gine,lac07ni5r4ssachusetts;anhao,i el,ylG;p4toba;ur;anca3e4incoln3ouisI;e4iR;ds;a6e5h4omi;aka06ul2;dah,lant1ntucky,ra01;bardino,lmyk0ns0Qr4;achay,el0nata0X;alis6har4iangxi;kh4;and;co;daho,llino7n4owa;d5gush4;et0;ia2;is;a6ert5i4un1;dalFm0D;ford3;mp3rya2waii;ansu,eorg0lou7oa,u4;an4izhou,jarat;ajuato,gdo4;ng;cester3;lori4uji1;da;sex;ageUe7o5uran4;go;rs4;et;lawaMrby3;aFeaEh9o4rim08umbr0;ahui7l6nnectic5rsi4ventry;ca;ut;i03orado;la;e5hattisgarh,i4uvash0;apRhuahua;chn5rke4;ss0;ya;ra;lGm4;bridge3peche;a9ihar,r8u4;ck4ryat0;ingham3;shi4;re;emen,itish columb0;h0ja cal8lk7s4v7;hkorto4que;st1;an;ar0;iforn0;ia;dygHguascalientes,lBndhr9r5ss4;am;izo2kans5un4;achal 7;as;na;a 4;pradesh;a6ber5t4;ai;ta;ba5s4;ka;ma;ea", + "Place": "trueยฆ0:4T;1:4V;2:44;3:4B;4:3I;a4Eb3Gc2Td2Ge26f25g1Vh1Ji1Fk1Cl14m0Vn0No0Jp08r04sTtNuLvJw7y5;a5o0Syz;kut1Bngtze;aDeChitBi9o5upatki,ycom2P;ki26o5;d5l1B;b3Ps5;i4to3Y;c0SllowbroCn5;c2Qgh2;by,chur1P;ed0ntw3Gs22;ke6r3St5;erf1f1; is0Gf3V;auxha3Mirgin is0Jost5;ok;laanbaatar,pto5xb3E;n,wn;a9eotihuac43h7ive49o6ru2Nsarskoe selo,u5;l2Dzigo47;nto,rquay,tt2J;am3e 5orn3E;bronx,hamptons;hiti,j mah0Iu1N;aEcotts bluff,eCfo,herbroQoApring9t7u5yd2F;dbu1Wn5;der03set3B;aff1ock2Nr5;atf1oud;hi37w24;ho,uth5; 1Iam1Zwo3E;a5i2O;f2Tt0;int lawrence riv3Pkhal2D;ayleigh,ed7i5oc1Z;chmo1Eo gran4ver5;be1Dfr09si4; s39cliffe,hi2Y;aCe9h8i5ompeii,utn2;c6ne5tcai2T; 2Pc0G;keri13t0;l,x;k,lh2mbr6n5r2J;n1Hzance;oke;cif38pahanaumokuak30r5;k5then0;si4w1K;ak7r6x5;f1l2X;ange county,d,f1inoco;mTw1G;e8i1Uo5;r5tt2N;th5wi0E; 0Sam19;uschwanste1Pw5; eng6a5h2market,po36;rk;la0P;a8co,e6i5uc;dt1Yll0Z;adow5ko0H;lands;chu picchu,gad2Ridsto1Ql8n7ple6r5;kh2; g1Cw11;hatt2Osf2B;ibu,t0ve1Z;a8e7gw,hr,in5owlOynd02;coln memori5dl2C;al;asi4w3;kefr7mbe1On5s,x;ca2Ig5si05;f1l27t0;ont;azan kreml14e6itchen2Gosrae,rasnoyar5ul;sk;ns0Hs1U;ax,cn,lf1n6ps5st;wiN;d5glew0Lverness;ian27ochina;aDeBi6kg,nd,ov5unti2H;d,enweep;gh6llc5;reL;bu03l5;and5;!s;r5yw0C;ef1tf1;libu24mp6r5stings;f1lem,row;stead,t0;aDodavari,r5uelph;avenAe5imsS;at 8en5; 6f1Fwi5;ch;acr3vall1H;brita0Flak3;hur5;st;ng3y villa0W;airhavHco,ra;aAgli9nf17ppi8u7ver6x5;et1Lf1;glad3t0;rope,st0;ng;nt0;rls1Ls5;t 5;e5si4;nd;aCe9fw,ig8o7ryd6u5xb;mfri3nstab00rh2tt0;en;nca18rcKv19wnt0B;by;n6r5vonpo1D;ry;!h2;nu8r5;l6t5;f1moor;ingt0;be;aLdg,eIgk,hClBo5royd0;l6m5rnwa0B;pt0;c7lingw6osse5;um;ood;he0S;earwat0St;a8el6i5uuk;chen itza,mney ro07natSricahua;m0Zt5;enh2;mor5rlottetPth2;ro;dar 5ntervilA;breaks,faZg5;rove;ld9m8r5versh2;lis6rizo pla5;in;le;bLpbellf1;weQ;aZcn,eNingl01kk,lackLolt0r5uckV;aGiAo5;ckt0ok5wns cany0;lyn,s5;i4to5;ne;de;dge6gh5;am,t0;n6t5;own;or5;th;ceb6m5;lNpt0;rid5;ge;bu5pool,wa8;rn;aconsfEdf1lBr9verly7x5;hi5;ll; hi5;lls;wi5;ck; air,l5;ingh2;am;ie5;ld;ltimore,rnsl6tters5;ea;ey;bLct0driadic,frica,ginJlGmFn9rc8s7tl6yleOzor3;es;!ant8;hcroft,ia; de triomphe,t6;adyr,ca8dov9tarct5;ic5; oce5;an;st5;er;ericas,s;be6dersh5hambra,list0;ot;rt0;cou5;rt;bot7i5;ngd0;on;sf1;ord", "Country": "trueยฆ0:38;1:2L;2:3B;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om2pZqat1KrXsKtCu7v5wal4yemTz3;a25imbabwe;es,lis and futu2Y;a3enezue32ietnam;nuatu,tican city;gTk6nited 4ruXs3zbeE; 2Ca,sr;arab emirat0Kkingdom,states3;! of am2Y;!raiV;a8haCimor les0Co7rinidad 5u3;nis0rk3valu;ey,me2Zs and caic1V;and t3t3;oba1L;go,kel10nga;iw2ji3nz2T;ki2V;aDcotl1eCi9lov8o6pa2Dri lanka,u5w3yr0;az3edAitzerl1;il1;d2riname;lomon1Xmal0uth 3;afr2KkMsud2;ak0en0;erra leoFn3;gapo1Yt maart3;en;negLrb0ychellZ;int 3moa,n marino,udi arab0;hele26luc0mart21;epublic of ir0Eom2Euss0w3;an27;a4eIhilippinUitcairn1Mo3uerto riN;l1rtugF;ki2Dl4nama,pua new0Vra3;gu7;au,esti3;ne;aBe9i7or3;folk1Ith4w3;ay; k3ern mariana1D;or0O;caragua,ger3ue;!ia;p3ther1Aw zeal1;al;mib0u3;ru;a7exi6icro0Bo3yanm06;ldova,n3roc5zambA;a4gol0t3;enegro,serrat;co;cAdagasc01l7r5urit4yot3;te;an0i16;shall0Xtin3;ique;a4div3i,ta;es;wi,ys0;ao,ed02;a6e5i3uxembourg;b3echtenste12thu1G;er0ya;ban0Isotho;os,tv0;azakh1Fe4iriba04o3uwait,yrgyz1F;rXsovo;eling0Knya;a3erG;ma16p2;c7nd6r4s3taly,vory coast;le of m2rael;a3el1;n,q;ia,oJ;el1;aiTon3ungary;dur0Ng kong;aBermany,ha0QibraltAre8u3;a6ern5inea3ya0P;! biss3;au;sey;deloupe,m,tema0Q;e3na0N;ce,nl1;ar;bUmb0;a7i6r3;ance,ench 3;guia0Epoly3;nes0;ji,nl1;lklandUroeU;ast tim7cu6gypt,l salv6ngl1quatorial4ritr5st3thiop0;on0; guin3;ea;ad3;or;enmark,jibou5ominica4r con3;go;!n C;ti;aBentral african Ah8o5roat0u4yprRzech3; 9ia;ba,racao;c4lo3morQngo brazzaville,okGsta r04te de ivoiL;mb0;osE;i3ristmasG;le,na;republic;m3naUpe verde,ymanA;bod0ero3;on;aGeDhut2o9r5u3;lgar0r3;kina faso,ma,undi;azil,itish 3unei;virgin3; is3;lands;liv0nai5snia and herzegoviHtswaHuvet3; isl1;and;re;l3n8rmuG;ar3gium,ize;us;h4ngladesh,rbad3;os;am4ra3;in;as;fghaGlDmBn6r4ustr3zerbaij2;al0ia;genti3men0uba;na;dorra,g5t3;arct7igua and barbu3;da;o3uil3;la;er3;ica;b3ger0;an0;ia;ni3;st2;an", - "Place": "trueยฆa0Gb0Bc03d02e01f00gWhUiSkQlNmLnIorHpDrCsAt5u4v3w2y0;a0yz;kutPngtze;ake isHupatki;irgin islands,ostok;laanbaatar,p02;a3eotihuac0Hh1onto,sarskoe selo,u0;lXzigoot;am09e 0;bronx,hamptons;hiti,j mahE;a0cotts bluff,eine,fo,oho,under9;int lawrence river,khalY;ed s3io grande;a1ek,h0itcairn,ompeii;l,x;cif05pahanaumokuak0rthenX;ea;ange county,d,inoco;e0ile;uschwansteQw eng0;land;a0co,ekong,idLuc;chu picchu,gad00libu,nhatt00;a1gw,hr,incoln memori0;al;s,x;azan kremlJosrae,rasnoyar0ul;sk;ax,cn,nd0st;ianSochina;arlem,kg,nd,ov0;d,enweep;a2odavari,re0;at 0enwich;britaBlakI;ngHy village;co,ra;urope,vergladF;anube,en,fw,own4xb;arrizo pla6dg,edar 5gk,h1lt,olosse0;um;a2i0uuk;chen itza,mney rock,na0ricahua;town;morro,tham;breaks,fa5;in;cn,e2kk,ro0;oklyn,wns cany0;on;l air,verly hi0;lls;driadic,frica,lhambra,m7n3rc2sia,tl1zor0;es;!ant2; de triomphe,t1;adyr,tarct0;ic0; oce0;an;ericas,s", "FirstName": "trueยฆaTblair,cQdOfrancoZgabMhinaLilya,jHkClBm6ni4quinn,re3s0;h0umit,yd;ay,e0iloh;a,lby;g9ne;co,ko0;!s;a1el0ina,org6;!okuhF;ds,naia,r1tt0xiB;i,y;ion,lo;ashawn,eif,uca;a3e1ir0rM;an;lsFn0rry;dall,yat5;i,sD;a0essIie,ude;i1m0;ie,mG;me;ta;rie0y;le;arcy,ev0;an,on;as1h0;arl8eyenne;ey,sidy;drien,kira,l4nd1ubr0vi;ey;i,r0;a,e0;a,y;ex2f1o0;is;ie;ei,is", "WeekDay": "trueยฆfri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s", "Month": "trueยฆdec0february,july,nov0octo1sept0;em0;ber", diff --git a/src/2-two/preTagger/model/patterns/suffixes.js b/src/2-two/preTagger/model/patterns/suffixes.js index 17343d7b6..e942261f4 100644 --- a/src/2-two/preTagger/model/patterns/suffixes.js +++ b/src/2-two/preTagger/model/patterns/suffixes.js @@ -9,6 +9,7 @@ const Plrl = 'Plural' const Actor = 'Actor' const Vb = 'Verb' const Noun = 'Noun' +const Prop = 'ProperNoun' const Last = 'LastName' const Modal = 'Modal' const Place = 'Place' @@ -59,9 +60,9 @@ export default [ ian: Sing, zes: Pres, eld: Past, - ken: Prt,//awoken - ven: Prt,//woven - ten: Prt,//brighten + ken: Prt, //awoken + ven: Prt, //woven + ten: Prt, //brighten ect: Inf, ict: Inf, // ide: Inf, @@ -70,6 +71,7 @@ export default [ ful: Adj, bal: Adj, ton: Noun, + pur: Place, }, { //4-letter @@ -94,7 +96,7 @@ export default [ enko: Last, ette: Sing, iary: Sing, - wner: Sing,//owner + wner: Sing, //owner fies: Pres, fore: Avb, gate: Inf, @@ -146,11 +148,11 @@ export default [ uist: Actor, gist: Actor, note: Sing, - cide: Sing,//homicide - ence: Sing,//absence - wide: Adj,//nationwide + cide: Sing, //homicide + ence: Sing, //absence + wide: Adj, //nationwide // side: Adj,//alongside - vide: Inf,//provide + vide: Inf, //provide ract: Inf, duce: Inf, pose: Inf, @@ -161,13 +163,18 @@ export default [ nary: Adj, ghty: Adj, uent: Adj, - erer: Actor,//caterer + erer: Actor, //caterer bury: Place, dorf: Noun, esty: Noun, wych: Place, dale: Place, folk: Place, + vale: Place, + abad: Place, + sham: Place, + wick: Place, + view: Place, }, { //5-letter @@ -222,7 +229,14 @@ export default [ mouth: Place, ceter: Place, ville: Place, - worth: Noun + hurst: Place, + stead: Place, + endon: Place, + brook: Place, + shire: Place, + worth: Noun, + field: Prop, + ridge: Place, }, { //6-letter @@ -231,6 +245,7 @@ export default [ cedent: Sing, ionary: Sing, cklist: Sing, + brooke: Place, keeper: Actor, logist: Actor, teenth: 'Value', @@ -238,10 +253,14 @@ export default [ master: Actor, writer: Actor, brough: Place, - cester: Place + cester: Place, + ington: Place, + cliffe: Place, + ingham: Place, }, { //7-letter + chester: Place, logists: Actor, opoulos: Last, borough: Place, diff --git a/src/2-two/preTagger/model/placeWords.js b/src/2-two/preTagger/model/placeWords.js index 4d6dda9ce..dc4a35d20 100644 --- a/src/2-two/preTagger/model/placeWords.js +++ b/src/2-two/preTagger/model/placeWords.js @@ -18,10 +18,13 @@ export default [ 'cove', 'coves', 'crater', + 'crossing', 'creek', 'desert', 'dune', 'dunes', + 'downs', + 'estates', 'escarpment', 'estuary', 'falls', @@ -32,18 +35,23 @@ export default [ 'glacier', 'gorge', 'gorges', + 'grove', 'gulf', 'gully', 'highland', + 'heights', + 'hollow', 'hill', 'hills', 'inlet', 'island', 'islands', 'isthmus', + 'junction', 'knoll', 'lagoon', 'lake', + 'lakeshore', 'marsh', 'marshes', 'mount', @@ -69,6 +77,7 @@ export default [ 'shores', 'strait', 'straits', + 'springs', 'stream', 'swamp', 'tombolo', @@ -77,11 +86,13 @@ export default [ 'trench', 'valley', 'vallies', + 'village', 'volcano', 'waterfall', 'watershed', 'wetland', 'woods', + 'acres', // districts 'burough', @@ -142,6 +153,7 @@ export default [ 'house', 'levee', 'library', + 'manor', 'memorial', 'monument', 'museum', @@ -168,6 +180,7 @@ export default [ 'park', 'parks', 'site', + 'ranch', 'raceway', 'sportsplex', @@ -179,17 +192,19 @@ export default [ // 'civic centre', // roads + 'ave', 'st', 'street', 'rd', 'road', + 'lane', + 'landing', 'crescent', 'cr', 'way', 'tr', 'terrace', 'avenue', - 'ave', ].reduce((h, str) => { h[str] = true return h diff --git a/src/2-two/preTagger/model/regex/regex-normal.js b/src/2-two/preTagger/model/regex/regex-normal.js index 0171c1342..d268b236d 100644 --- a/src/2-two/preTagger/model/regex/regex-normal.js +++ b/src/2-two/preTagger/model/regex/regex-normal.js @@ -22,4 +22,7 @@ export default [ [/^(m|k|cm|km)\/(s|h|hr)$/, 'Unit', '5 k/m'], // ฮผg/g [/^(ug|ng|mg)\/(l|m3|ft3)$/, 'Unit', 'ug/L'], + + // love/hate + [/[^:/]\/\p{Letter}/u, 'SlashedTerm', 'love/hate'], ] diff --git a/src/2-two/preTagger/tagSet/misc.js b/src/2-two/preTagger/tagSet/misc.js index c9d64d0ac..01531916a 100644 --- a/src/2-two/preTagger/tagSet/misc.js +++ b/src/2-two/preTagger/tagSet/misc.js @@ -39,7 +39,7 @@ export default { }, Abbreviation: {}, Url: { - not: ['HashTag', 'PhoneNumber', 'Verb', 'Adjective', 'Value', 'AtMention', 'Email'], + not: ['HashTag', 'PhoneNumber', 'Verb', 'Adjective', 'Value', 'AtMention', 'Email', 'SlashedTerm'], }, PhoneNumber: { not: ['HashTag', 'Verb', 'Adjective', 'Value', 'AtMention', 'Email'], @@ -53,7 +53,10 @@ export default { not: ['HashTag', 'Verb', 'Adjective', 'Value', 'AtMention'], }, Emoticon: { - not: ['HashTag', 'Verb', 'Adjective', 'Value', 'AtMention'], + not: ['HashTag', 'Verb', 'Adjective', 'Value', 'AtMention', 'SlashedTerm'], + }, + SlashedTerm: { + not: ['Emoticon', 'Url', 'Value'] }, Email: { not: ['HashTag', 'Verb', 'Adjective', 'Value', 'AtMention'], diff --git a/src/3-three/misc/plugin.js b/src/3-three/misc/plugin.js index c8e269795..5251379c7 100644 --- a/src/3-three/misc/plugin.js +++ b/src/3-three/misc/plugin.js @@ -3,6 +3,7 @@ import addParentheses from './parentheses/index.js' import addPossessives from './possessives/index.js' import addQuotations from './quotations/index.js' import addSelections from './selections/index.js' +import addSlashes from './slashes/index.js' export default { api: function (View) { @@ -11,5 +12,6 @@ export default { addPossessives(View) addQuotations(View) addSelections(View) + addSlashes(View) } -} \ No newline at end of file +} diff --git a/src/3-three/misc/quotations/fns.js b/src/3-three/misc/quotations/fns.js index acf284369..78abf8254 100644 --- a/src/3-three/misc/quotations/fns.js +++ b/src/3-three/misc/quotations/fns.js @@ -1,4 +1,5 @@ /* eslint-disable regexp/no-dupe-characters-character-class */ + const pairs = { '\u0022': '\u0022', // 'StraightDoubleQuotes' '\uFF02': '\uFF02', // 'StraightDoubleQuotesWide' diff --git a/src/3-three/misc/slashes/index.js b/src/3-three/misc/slashes/index.js new file mode 100644 index 000000000..b11165907 --- /dev/null +++ b/src/3-three/misc/slashes/index.js @@ -0,0 +1,26 @@ +const hasSlash = /\// + +const api = function (View) { + + class Slashes extends View { + constructor(document, pointer, groups) { + super(document, pointer, groups) + this.viewType = 'Slashes' + } + split() { + return this.map((m) => { + let str = m.text() + let arr = str.split(hasSlash) + m = m.replaceWith(arr.join(' ')) + return m.growRight('(' + arr.join('|') + ')+') + }) + } + } + + View.prototype.slashes = function (n) { + let m = this.match('#SlashedTerm') + m = m.getNth(n) + return new Slashes(m.document, m.pointer) + } +} +export default api diff --git a/src/3-three/numbers/numbers/api.js b/src/3-three/numbers/numbers/api.js index 4801cf300..352fe621c 100644 --- a/src/3-three/numbers/numbers/api.js +++ b/src/3-three/numbers/numbers/api.js @@ -52,18 +52,20 @@ const addMethod = function (View) { /** convert to numeric form like '8' or '8th' */ toNumber() { - let m = this.if('#TextValue') - m.forEach(val => { + let res = this.map(val => { + if (!this.has('#TextValue')) { + return val + } let obj = parse(val) if (obj.num === null) { - return + return val } let fmt = val.has('#Ordinal') ? 'Ordinal' : 'Cardinal' let str = format(obj, fmt) val.replaceWith(str, { tags: true }) - val.tag('NumericValue') + return val.tag('NumericValue') }) - return this + return new Numbers(res.document, res.pointer) } /** add commas, or nicer formatting for numbers */ toLocaleString() { diff --git a/src/3-three/topics/people/find.js b/src/3-three/topics/people/find.js index 5cc991a13..2fae22039 100644 --- a/src/3-three/topics/people/find.js +++ b/src/3-three/topics/people/find.js @@ -1,5 +1,6 @@ const find = function (doc) { - let m = doc.match('#Honorific+? #Person+') + let m = doc.splitAfter('@hasComma') + m = m.match('#Honorific+? #Person+') // Spencer's King let poss = m.match('#Possessive').notIf('(his|her)') //her majesty ... m = m.splitAfter(poss) diff --git a/src/API/extend.js b/src/API/extend.js index d3bc4a36a..d33ce992e 100644 --- a/src/API/extend.js +++ b/src/API/extend.js @@ -112,7 +112,7 @@ const extend = function (plugin, world, View, nlp) { nlp.addWords(plugin.frozen, true) } if (plugin.mutate) { - plugin.mutate(world) + plugin.mutate(world, nlp) } } export default extend diff --git a/src/_version.js b/src/_version.js index 79e03983d..c9e8129f7 100644 --- a/src/_version.js +++ b/src/_version.js @@ -1 +1 @@ -export default '14.13.0' \ No newline at end of file +export default '14.14.0' \ No newline at end of file diff --git a/tests/one/misc/slash.test.js b/tests/one/misc/slash.test.js index dd4a0c083..ad8a4b8e9 100644 --- a/tests/one/misc/slash.test.js +++ b/tests/one/misc/slash.test.js @@ -41,6 +41,7 @@ test('slash match', function (t) { t.equal(doc.has('her'), true, here + 'three-slash - her') t.equal(doc.has('their'), true, here + 'three-slash - their') t.equal(doc.has('his/her/their'), true, here + 'three-slash - his/her/their ') + // t.equal(doc.has('#SlashedTerm'), true, here + 'SlashedTerm tag') t.end() }) diff --git a/tests/one/misc/unicode.test.js b/tests/one/misc/unicode.test.js index 86c159c95..790efcf7e 100644 --- a/tests/one/misc/unicode.test.js +++ b/tests/one/misc/unicode.test.js @@ -3,7 +3,7 @@ import nlp from '../_lib.js' const here = '[one/unicode] ' test('many-unicode', function (t) { - let str = `โœโœ โœฐโ€โโžโฐโž€โžโž โžฐโœโœ‘โœกโœฑโโ‘โกโฑโžโž‘โžกโžฑโœ‚โœ’โœขโœฒโ‚โ’โขโฒโž‚โž’โžขโžฒโœƒโœ“โœฃโœณโƒโ“โฃโณโžƒโž“โžฃโžณโœ„โœ”โœคโœดโ„โ”โคโดโž„โž”โžคโžดโœ…โœ•โœฅโœตโ…โ•โฅโตโž…โž•โžฅโžตโœ†โœ–โœฆโœถโ†โ–โฆโถโž†โž–โžฆโžถโœ‡โœ—โœงโœทโ‡โ—โงโทโž‡โž—โžงโžทโœˆโœ˜โœจโœธโˆโ˜โจโธโžˆโž˜โžจโžธโœ‰โœ™โœฉโœนโ‰โ™โฉโนโž‰โž™โžฉโžนโœŠโœšโœชโœบโŠโšโชโบโžŠโžšโžชโžบโœ‹โœ›โœซโœปโ‹โ›โซโปโž‹โž›โžซโžปโœŒโœœโœฌโœผโŒโœโฌโผโžŒโžœโžฌโžผโœโœโœญโœฝโโโญโฝโžโžโžญโžฝโœŽโœžโœฎโœพโŽโžโฎโพโžŽโžžโžฎโžพโœโœŸโœฏโœฟโโœโฏโฟโžโžŸโžฏโžฟ๐Ÿ˜€๐Ÿ˜๐Ÿ˜ ๐Ÿ˜ฐ๐Ÿ™€๐Ÿ˜๐Ÿ˜‘๐Ÿ˜ก๐Ÿ˜ฑ๐Ÿ™๐Ÿ˜‚๐Ÿ˜’๐Ÿ˜ข๐Ÿ˜ฒ๐Ÿ™‚๐Ÿ˜ƒ๐Ÿ˜“๐Ÿ˜ฃ๐Ÿ˜ณ๐Ÿ™ƒ๐Ÿ˜„๐Ÿ˜”๐Ÿ˜ค๐Ÿ˜ด๐Ÿ™„๐Ÿ˜…๐Ÿ˜•๐Ÿ˜ฅ๐Ÿ˜ต๐Ÿ™…๐Ÿ˜†๐Ÿ˜–๐Ÿ˜ฆ๐Ÿ˜ถ๐Ÿ™†๐Ÿ˜‡๐Ÿ˜—๐Ÿ˜ง๐Ÿ˜ท๐Ÿ™‡๐Ÿ˜ˆ๐Ÿ˜˜๐Ÿ˜จ๐Ÿ˜ธ๐Ÿ™ˆ๐Ÿ˜‰๐Ÿ˜™๐Ÿ˜ฉ๐Ÿ˜น๐Ÿ™‰๐Ÿ˜Š๐Ÿ˜š๐Ÿ˜ช๐Ÿ˜บ๐Ÿ™Š๐Ÿ˜‹๐Ÿ˜›๐Ÿ˜ซ๐Ÿ˜ป๐Ÿ™‹๐Ÿ˜Œ๐Ÿ˜œ๐Ÿ˜ฌ๐Ÿ˜ผ๐Ÿ™Œ๐Ÿ˜๐Ÿ˜๐Ÿ˜ญ๐Ÿ˜ฝ๐Ÿ™๐Ÿ˜Ž๐Ÿ˜ž๐Ÿ˜ฎ๐Ÿ˜พ๐Ÿ™Ž๐Ÿ˜๐Ÿ˜Ÿ๐Ÿ˜ฏ๐Ÿ˜ฟ๐Ÿ™,&ใ€*.+-;<:>?=!โ€”\($)%{@}ใ€”ใ€•โ‚ โ‚ฐโ‚กโ‚ฑโ‚ขโ‚ฒโ‚ฃโ‚ณโ‚คโ‚ดโ‚ฅโ‚ตโ‚ฆโ‚ถโ‚งโ‚ทโ‚ธโ‚ฉโ‚นโ‚ชโ‚บโ‚ซโ‚ปโ‚ฌโ‚ผโ‚ญโ‚ฝโ‚ฎโ‚พโ‚ฏโ‚ฟ` // eslint-disable-line + let str = `โœโœ โœฐโ€โโžโฐโž€โžโž โžฐโœโœ‘โœกโœฑโโ‘โกโฑโžโž‘โžกโžฑโœ‚โœ’โœขโœฒโ‚โ’โขโฒโž‚โž’โžขโžฒโœƒโœ“โœฃโœณโƒโ“โฃโณโžƒโž“โžฃโžณโœ„โœ”โœคโœดโ„โ”โคโดโž„โž”โžคโžดโœ…โœ•โœฅโœตโ…โ•โฅโตโž…โž•โžฅโžตโœ†โœ–โœฆโœถโ†โ–โฆโถโž†โž–โžฆโžถโœ‡โœ—โœงโœทโ‡โ—โงโทโž‡โž—โžงโžทโœˆโœ˜โœจโœธโˆโ˜โจโธโžˆโž˜โžจโžธโœ‰โœ™โœฉโœนโ‰โ™โฉโนโž‰โž™โžฉโžนโœŠโœšโœชโœบโŠโšโชโบโžŠโžšโžชโžบโœ‹โœ›โœซโœปโ‹โ›โซโปโž‹โž›โžซโžปโœŒโœœโœฌโœผโŒโœโฌโผโžŒโžœโžฌโžผโœโœโœญโœฝโโโญโฝโžโžโžญโžฝโœŽโœžโœฎโœพโŽโžโฎโพโžŽโžžโžฎโžพโœโœŸโœฏโœฟโโœโฏโฟโžโžŸโžฏโžฟ๐Ÿ˜€๐Ÿ˜๐Ÿ˜ ๐Ÿ˜ฐ๐Ÿ™€๐Ÿ˜๐Ÿ˜‘๐Ÿ˜ก๐Ÿ˜ฑ๐Ÿ™๐Ÿ˜‚๐Ÿ˜’๐Ÿ˜ข๐Ÿ˜ฒ๐Ÿ™‚๐Ÿ˜ƒ๐Ÿ˜“๐Ÿ˜ฃ๐Ÿ˜ณ๐Ÿ™ƒ๐Ÿ˜„๐Ÿ˜”๐Ÿ˜ค๐Ÿ˜ด๐Ÿ™„๐Ÿ˜…๐Ÿ˜•๐Ÿ˜ฅ๐Ÿ˜ต๐Ÿ™…๐Ÿ˜†๐Ÿ˜–๐Ÿ˜ฆ๐Ÿ˜ถ๐Ÿ™†๐Ÿ˜‡๐Ÿ˜—๐Ÿ˜ง๐Ÿ˜ท๐Ÿ™‡๐Ÿ˜ˆ๐Ÿ˜˜๐Ÿ˜จ๐Ÿ˜ธ๐Ÿ™ˆ๐Ÿ˜‰๐Ÿ˜™๐Ÿ˜ฉ๐Ÿ˜น๐Ÿ™‰๐Ÿ˜Š๐Ÿ˜š๐Ÿ˜ช๐Ÿ˜บ๐Ÿ™Š๐Ÿ˜‹๐Ÿ˜›๐Ÿ˜ซ๐Ÿ˜ป๐Ÿ™‹๐Ÿ˜Œ๐Ÿ˜œ๐Ÿ˜ฌ๐Ÿ˜ผ๐Ÿ™Œ๐Ÿ˜๐Ÿ˜๐Ÿ˜ญ๐Ÿ˜ฝ๐Ÿ™๐Ÿ˜Ž๐Ÿ˜ž๐Ÿ˜ฎ๐Ÿ˜พ๐Ÿ™Ž๐Ÿ˜๐Ÿ˜Ÿ๐Ÿ˜ฏ๐Ÿ˜ฟ๐Ÿ™,&ใ€*.+-;<:>?=!โ€”\($)%{@}ใ€”ใ€•โ‚ โ‚ฐโ‚กโ‚ฑโ‚ขโ‚ฒโ‚ฃโ‚ณโ‚คโ‚ดโ‚ฅโ‚ตโ‚ฆโ‚ถโ‚งโ‚ทโ‚ธโ‚ฉโ‚นโ‚ชโ‚บโ‚ซโ‚ปโ‚ฌโ‚ผโ‚ญโ‚ฝโ‚ฎโ‚พโ‚ฏโ‚ฟ` // eslint-dis let doc = nlp(str) t.equal(doc.text(), str, here + 'identical-text') t.equal(doc.length, 1, here + 'one-sentence') @@ -21,7 +21,7 @@ test('em-dashes', function (t) { // this section is very cursed test('zero-width-chars', function (t) { //this has a zero-width character - let str = `beforeโ€‹ after` // eslint-disable-line + let str = `beforeโ€‹ after` let doc = nlp(str) t.equal(doc.text(), str, here + 'zero-width passes-through') let json = doc.json({ terms: { normal: true } }) diff --git a/tests/three/chunker/chunks.ignore.js b/tests/three/chunker/chunks.ignore.js index 16e2fb098..76d5def55 100644 --- a/tests/three/chunker/chunks.ignore.js +++ b/tests/three/chunker/chunks.ignore.js @@ -40,7 +40,7 @@ test('chunker', function (t) { ] arr.forEach(a => { let doc = nlp(a[0]) - doc.chunks().forEach(chunk => { + doc.chunks().forEach(() => { }) }) diff --git a/tests/three/coreference/more.ignore.js b/tests/three/coreference/more.ignore.js index 3865fde41..babb5e5c1 100644 --- a/tests/three/coreference/more.ignore.js +++ b/tests/three/coreference/more.ignore.js @@ -219,16 +219,10 @@ test('more-coreference:', function (t) { arr.forEach(str => { let subj = str.match(/\(.*?\)/)[0].replace(/[()]/g, '').toLowerCase() let pronoun = str.match(/\[.*?\]/)[0].replace(/[[\]]/g, '').toLowerCase() - let msg = subj + ' โ†’ ' + pronoun + let msg = here + subj + ' โ†’ ' + pronoun let doc = nlp(str) let p = doc.pronouns().notIf('#Possessive').hasReference() t.equal(p.text('normal'), pronoun, msg) }) }) - - - - - - diff --git a/tests/three/full-api.test.js b/tests/three/full-api.test.js index fa142dc49..dabe8e68e 100644 --- a/tests/three/full-api.test.js +++ b/tests/three/full-api.test.js @@ -98,7 +98,7 @@ test('constructor api', function (t) { try { fns[k]() } catch (e) { - t.fail(here + k) + t.fail(here + k + e) } }, k) }) diff --git a/tests/three/people/people.test.js b/tests/three/people/people.test.js index 824b8d88b..f02d8598f 100644 --- a/tests/three/people/people.test.js +++ b/tests/three/people/people.test.js @@ -61,7 +61,6 @@ test('people positives:', function (t) { 'dmitry medvedev', 'ebenezer scrooge', 'emile zatopek', - 'emmeline pankhurst', 'florence nightingale', 'frรฉdรฉric chopin', 'haile selassie', @@ -115,7 +114,6 @@ test('people positives:', function (t) { 'Abie Malan', 'Christoph Zรผrcher', 'dmitry medvedev', - 'emmeline pankhurst', 'diego maradona', 'dmitry medvedev', 'ebenezer scrooge', diff --git a/tests/three/slashes.test.js b/tests/three/slashes.test.js new file mode 100644 index 000000000..d2d8365ab --- /dev/null +++ b/tests/three/slashes.test.js @@ -0,0 +1,31 @@ +import test from 'tape' +import nlp from './_lib.js' +const here = '[three/slashes] ' + +test('slashes.split', function (t) { + let doc = nlp(`i saw him/her yesterday at 2pm.`) + t.equal(doc.has('#SlashedTerm'), true, here + 'has slash-tag') + let m = doc.slashes() + t.equal(m.length, 1, here + '1 slash') + t.equal(m.text(), 'him/her', here + 'slash-text') + m = m.split() + t.equal(m.text(), 'him her', here + 'slash-text-after') + t.equal(m.terms().length, 2, here + 'slash-terms-after') + t.equal(doc.text(), 'i saw him her yesterday at 2pm.', here + 'doc-text-after') + t.equal(doc.has('#SlashedTerm'), false, here + 'has no slash-tag') + t.end() +}) + +test('three-slashes.split', function (t) { + let doc = nlp(`before. one two/three/four five. after`) + t.equal(doc.has('#SlashedTerm'), true, here + 'has slash-tag') + let m = doc.slashes() + t.equal(m.length, 1, here + '1 slash') + t.equal(m.text(), 'two/three/four', here + 'slash-text') + m = m.split() + t.equal(m.text(), 'two three four', here + 'slash-text-after') + t.equal(m.terms().length, 3, here + 'slash-terms-after') + t.equal(doc.text(), 'before. one two three four five. after', here + 'doc-text-after') + t.equal(doc.has('#SlashedTerm'), false, here + 'has no slash-tag') + t.end() +}) diff --git a/tests/two/contractions/contraction-match.test.js b/tests/two/contractions/contraction-match.test.js index c91989666..e91eec517 100644 --- a/tests/two/contractions/contraction-match.test.js +++ b/tests/two/contractions/contraction-match.test.js @@ -105,4 +105,18 @@ test('contraction-no-skip', function (t) { t.end() }) +test('multiple-contractions', function (t) { + let doc = nlp(`everybody's creating, and they're going`) + t.ok(doc.has('everybody is') && doc.has('they are'), `everybody's + they're`) + doc = nlp(`spencer's walking to the store and she's mad`) + t.ok(doc.has('spencer is') && doc.has('she is'), `spencer's + she's`) + + doc = nlp(`Somebody's going to see`) + t.equal(doc.has('somebody is'), true, `Somebody's going`) + + doc = nlp(`Somebody's hat`) + t.equal(doc.has('somebody is'), false, `Somebody's hat`) + + t.end() +}) diff --git a/tests/two/match.test.js b/tests/two/match.test.js index 8e1db993d..673afe451 100644 --- a/tests/two/match.test.js +++ b/tests/two/match.test.js @@ -1176,7 +1176,13 @@ let arr = [ ['opens early in the morning', '#PresentTense #Adjective in the #Noun'], ['ruins are enduring symbols of history', '#Plural are #Adjective #Plural of #Noun'], ['She has fair hair and blue eyes.', '#Pronoun #Verb #Adjective #Noun and #Adjective #Plural'], - // ['',''], + + ['a love/hate affair', '#Determiner #SlashedTerm #Noun'], + ['4/3', '!#SlashedTerm'], + ['http://cool.com', '!#SlashedTerm'], + ['love / hate', '!#SlashedTerm'], + ['his/her backpack', '(#Pronoun && #SlashedTerm) #Noun'], + // ['', ''], ] test('match:', function (t) { let res = [] diff --git a/tests/two/variables/person-match.test.js b/tests/two/variables/person-match.test.js index de62884a9..20c5d6f7f 100644 --- a/tests/two/variables/person-match.test.js +++ b/tests/two/variables/person-match.test.js @@ -52,7 +52,6 @@ let arr = [ ['Halle Berry', '#Person+'], ['Tom Brady', '#MaleName #LastName'], ['Matthew Broderick', '#MaleName #LastName'], - ['Nathan Lane', '#MaleName #LastName'], ['Mel Brooks', '#Person+'], ['Dan Brown', '#MaleName #LastName'], ['Jerry Bruckheimer', '#MaleName #LastName'], @@ -101,4 +100,4 @@ test('match:', function (t) { t.equal(m.text(), doc.text(), here + msg) }) t.end() -}) \ No newline at end of file +}) diff --git a/types/view/three.d.ts b/types/view/three.d.ts index afd0eeef3..439fea0d6 100644 --- a/types/view/three.d.ts +++ b/types/view/three.d.ts @@ -49,6 +49,8 @@ interface Three extends View { possessives: (n?: number) => Possessives /** return any terms inside 'quotation marks' */ quotations: (n?: number) => Quotations + /** return any slashed terms like 'love/hate' */ + slashes: (n?: number) => Slashes /** return words like "clean" */ adjectives: (n?: number) => Adjectives /** return words like "quickly" */ @@ -243,6 +245,10 @@ export interface Quotations extends View { /** remove leading and trailing quotation marks */ strip: () => View } +export interface Slashes extends View { + /** turn 'love/hate' into 'love hate' */ + split: () => View +} export interface Adjectives extends View { /** get the words describing this adjective */