From b61362116cc705d381edb47063168dcf5cb62569 Mon Sep 17 00:00:00 2001 From: Dominic Cassidy Date: Mon, 27 Apr 2020 09:27:57 +0100 Subject: [PATCH 01/17] Fix .out('debug') return value --- types/index.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/types/index.d.ts b/types/index.d.ts index 5b211b30d..5fe03fb1e 100644 --- a/types/index.d.ts +++ b/types/index.d.ts @@ -312,7 +312,7 @@ declare module nlp { out(format: 'array'): string[] out(format: 'tags' | 'terms'): Array<{ normal: string; text: string; tags: string[] }> out(format: 'json'): Array<{ normal: string; text: string; tags: () => void }>[] - out(format: 'debug'): Text + out(format: 'debug'): ExtendedDocument out(format: 'topk'): Array<{ normal: string; count: number; percent: number }> /** pretty-print the current document and its tags */ debug(): ExtendedDocument From 75b73515aa0cb456540fd032bb92c4817dbb2bf5 Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Thu, 28 May 2020 19:15:57 -0400 Subject: [PATCH 02/17] change punctuation for #754 --- plugins/sentences/src/methods/punct.js | 21 ++++++++++++--------- plugins/sentences/tests/toQuestion.test.js | 22 ++++++++++++++++++++++ scratch.js | 10 +++++----- 3 files changed, 39 insertions(+), 14 deletions(-) create mode 100644 plugins/sentences/tests/toQuestion.test.js diff --git a/plugins/sentences/src/methods/punct.js b/plugins/sentences/src/methods/punct.js index 824453f9d..652de5dcd 100644 --- a/plugins/sentences/src/methods/punct.js +++ b/plugins/sentences/src/methods/punct.js @@ -1,34 +1,37 @@ /** return sentences ending with '?' */ -exports.isQuestion = function() { - return this.filter(doc => { +exports.isQuestion = function () { + return this.filter((doc) => { let term = doc.lastTerm().termList(0) return term.hasPost('?') }) } /** return sentences ending with '!' */ -exports.isExclamation = function() { - return this.filter(doc => { +exports.isExclamation = function () { + return this.filter((doc) => { let term = doc.lastTerm().termList(0) return term.hasPost('!') }) } /** return sentences with neither a question or an exclamation */ -exports.isStatement = function() { - return this.filter(doc => { +exports.isStatement = function () { + return this.filter((doc) => { let term = doc.lastTerm().termList(0) return !term.hasPost('?') && !term.hasPost('!') }) } /** 'he is.' -> 'he is!' */ -exports.toExclamation = function() { +exports.toExclamation = function () { + this.post('!') return this } /** 'he is.' -> 'he is?' */ -exports.toQuestion = function() { +exports.toQuestion = function () { + this.post('?') return this } /** 'he is?' -> 'he is.' */ -exports.toStatement = function() { +exports.toStatement = function () { + this.post('.') return this } diff --git a/plugins/sentences/tests/toQuestion.test.js b/plugins/sentences/tests/toQuestion.test.js new file mode 100644 index 000000000..2afb6d672 --- /dev/null +++ b/plugins/sentences/tests/toQuestion.test.js @@ -0,0 +1,22 @@ +const test = require('tape') +const nlp = require('./_lib') + +test('simple chanage-punct', function (t) { + let statement = `I can't believe it's a law firm.` + let question = `I can't believe it's a law firm?` + let excl = `I can't believe it's a law firm!` + let doc = nlp(statement) + + doc.sentences().toExclamation().text() + t.equal(doc.text(), excl, 'statement -> excl') + doc.sentences().toStatement().text() + t.equal(doc.text(), statement, 'excl -> statement') + doc.sentences().toQuestion().text() + t.equal(doc.text(), question, 'statement -> question') + doc.sentences().toExclamation().text() + t.equal(doc.text(), excl, 'question -> excl') + doc.sentences().toQuestion().text() + t.equal(doc.text(), question, 'excl -> question') + + t.end() +}) diff --git a/scratch.js b/scratch.js index bdcced6c8..1c590b57b 100644 --- a/scratch.js +++ b/scratch.js @@ -1,8 +1,8 @@ const nlp = require('./src/index') -nlp.verbose(true) +// nlp.verbose(true) // let txt = require('./scripts/test/speed/_sotu-text.js') -// nlp.extend(require('./plugins/numbers/src')) +nlp.extend(require('./plugins/sentences/src')) -let doc = nlp(`he doesn't continue is because`) -doc.verbs().toPastTense() -doc.debug() +let doc = nlp(`I can't believe it's a law firm.`) +let str = doc.sentences().toExclamation().text() +console.log(str) From 93fe383991c6fa890626e44d305be8b9e0a25dc5 Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Thu, 28 May 2020 20:05:56 -0400 Subject: [PATCH 03/17] fix preposition which, add isQuestion from #754 --- plugins/sentences/src/index.js | 21 ++++--- plugins/sentences/src/methods/index.js | 2 +- .../src/methods/{punct.js => types/index.js} | 7 +-- .../sentences/src/methods/types/isQuestion.js | 59 +++++++++++++++++++ plugins/sentences/tests/isQuestion.test.js | 11 ++++ plugins/sentences/tests/toQuestion.test.js | 28 +++++++-- scratch.js | 8 ++- .../04-correction/matches/01-misc.js | 2 +- tests/_backlog/backlog.ignore.js | 12 ---- 9 files changed, 116 insertions(+), 34 deletions(-) rename plugins/sentences/src/methods/{punct.js => types/index.js} (88%) create mode 100644 plugins/sentences/src/methods/types/isQuestion.js create mode 100644 plugins/sentences/tests/isQuestion.test.js diff --git a/plugins/sentences/src/index.js b/plugins/sentences/src/index.js index 44958b25c..9114d4687 100644 --- a/plugins/sentences/src/index.js +++ b/plugins/sentences/src/index.js @@ -1,11 +1,11 @@ const parse = require('./parse') const methods = require('./methods') -const addMethod = function(Doc) { +const addMethod = function (Doc) { /** */ class Sentences extends Doc { constructor(list, from, world) { - list = list.map(p => p.clone(true)) + list = list.map((p) => p.clone(true)) super(list, from, world) } @@ -18,7 +18,7 @@ const addMethod = function(Doc) { } options = options || { text: true, normal: true, trim: true, terms: true } let res = [] - this.forEach(doc => { + this.forEach((doc) => { let json = doc.json(options)[0] let obj = parse(doc) json.subject = obj.subject.json(options)[0] @@ -34,7 +34,7 @@ const addMethod = function(Doc) { /** the main noun of the sentence */ subjects() { - return this.map(doc => { + return this.map((doc) => { let res = parse(doc) return res.subject }) @@ -47,7 +47,7 @@ const addMethod = function(Doc) { /** add a word to the start of this sentence */ prepend(str) { - this.forEach(doc => { + this.forEach((doc) => { // repair the titlecase let firstTerms = doc.match('^.') firstTerms.not('#ProperNoun').toLowerCase() @@ -62,7 +62,7 @@ const addMethod = function(Doc) { /** add a word to the end of this sentence */ append(str) { let hasEnd = /[.?!]\s*$/.test(str) - this.forEach(doc => { + this.forEach((doc) => { let end = doc.match('.$') let lastTerm = end.termList(0) let punct = lastTerm.post @@ -77,12 +77,17 @@ const addMethod = function(Doc) { return this } } + // add some aliases + methods.questions = methods.isQuestion + methods.exclamations = methods.isExclamation + methods.statements = methods.isStatement + Object.assign(Sentences.prototype, methods) /** overload original sentences() method and return Sentence class**/ - Doc.prototype.sentences = function(n) { + Doc.prototype.sentences = function (n) { let arr = [] - this.list.forEach(p => { + this.list.forEach((p) => { arr.push(p.fullSentence()) }) //grab (n)th result diff --git a/plugins/sentences/src/methods/index.js b/plugins/sentences/src/methods/index.js index 801cebefd..7e4cacea3 100644 --- a/plugins/sentences/src/methods/index.js +++ b/plugins/sentences/src/methods/index.js @@ -1 +1 @@ -module.exports = Object.assign({}, require('./negate'), require('./punct'), require('./tense')) +module.exports = Object.assign({}, require('./negate'), require('./types'), require('./tense')) diff --git a/plugins/sentences/src/methods/punct.js b/plugins/sentences/src/methods/types/index.js similarity index 88% rename from plugins/sentences/src/methods/punct.js rename to plugins/sentences/src/methods/types/index.js index 652de5dcd..70fd3c5ff 100644 --- a/plugins/sentences/src/methods/punct.js +++ b/plugins/sentences/src/methods/types/index.js @@ -1,9 +1,8 @@ +const isQuestion = require('./isQuestion') + /** return sentences ending with '?' */ exports.isQuestion = function () { - return this.filter((doc) => { - let term = doc.lastTerm().termList(0) - return term.hasPost('?') - }) + return this.filter((d) => isQuestion(d)) } /** return sentences ending with '!' */ exports.isExclamation = function () { diff --git a/plugins/sentences/src/methods/types/isQuestion.js b/plugins/sentences/src/methods/types/isQuestion.js new file mode 100644 index 000000000..dcbaa49cb --- /dev/null +++ b/plugins/sentences/src/methods/types/isQuestion.js @@ -0,0 +1,59 @@ +//is this sentence asking a question? +const isQuestion = function (doc) { + let endPunct = doc.post() + let clauses = doc.clauses() + + if (/\?/.test(endPunct) === true) { + return true + } + + // Has ellipsis at the end means it's probably not a question + // e.g., Is this just fantasy... + if (/\.\.$/.test(doc.out('text'))) { + return false + } + + // Starts with question word, but has a comma, so probably not a question + // e.g., Why are we caught in a land slide, no escape from reality + if (doc.has('^#QuestionWord') && doc.has('#Comma')) { + return false + } + + // Starts with a #QuestionWord + // e.g., What open your eyes look up to the skies and see + if (doc.has('^#QuestionWord')) { + return true + } + + // Second word is a #QuestionWord + // e.g., I'm what a poor boy + // case ts.has('^\w+\s#QuestionWord'): + // return true; + + // is it, do you - start of sentence + // e.g., Do I need no sympathy + if (doc.has('^(do|does|did|is|was|can|could|will|would|may) #Noun')) { + return true + } + + // these are a little more loose.. + // e.g., Must I be come easy come easy go + if (doc.has('^(have|must) you')) { + return true + } + + // Clause starts with a question word + // e.g., Anyway the wind blows, what doesn't really matter to me + if (clauses.has('^#QuestionWord')) { + return true + } + + //is wayne gretskzy alive + if (clauses.has('(do|does|is|was) #Noun+ #Adverb? (#Adjective|#Infinitive)$')) { + return true + } + + // Probably not a question + return false +} +module.exports = isQuestion diff --git a/plugins/sentences/tests/isQuestion.test.js b/plugins/sentences/tests/isQuestion.test.js new file mode 100644 index 000000000..eec703c6d --- /dev/null +++ b/plugins/sentences/tests/isQuestion.test.js @@ -0,0 +1,11 @@ +const test = require('tape') +const nlp = require('./_lib') + +test('false-positives', function (t) { + const txt = `Probably the renovation right away from the amount of work, which has been done to the property. + I have one two, three, four five six properties, which came on the market in the month. + I think that the number one quite comfortable looking at the two properties, which I'm working on now.` + const questions = nlp(txt).sentences().isQuestion() + t.equal(questions.length, 0, 'no questions here') + t.end() +}) diff --git a/plugins/sentences/tests/toQuestion.test.js b/plugins/sentences/tests/toQuestion.test.js index 2afb6d672..60a57dfa5 100644 --- a/plugins/sentences/tests/toQuestion.test.js +++ b/plugins/sentences/tests/toQuestion.test.js @@ -7,16 +7,34 @@ test('simple chanage-punct', function (t) { let excl = `I can't believe it's a law firm!` let doc = nlp(statement) - doc.sentences().toExclamation().text() + doc.sentences().toExclamation() t.equal(doc.text(), excl, 'statement -> excl') - doc.sentences().toStatement().text() + doc.sentences().toStatement() t.equal(doc.text(), statement, 'excl -> statement') - doc.sentences().toQuestion().text() + doc.sentences().toQuestion() t.equal(doc.text(), question, 'statement -> question') - doc.sentences().toExclamation().text() + doc.sentences().toExclamation() t.equal(doc.text(), excl, 'question -> excl') - doc.sentences().toQuestion().text() + doc.sentences().toQuestion() t.equal(doc.text(), question, 'excl -> question') t.end() }) + +test('toquestion edge-cases ', function (t) { + let doc = nlp('how do you do...') + doc = doc.sentences().toExclamation() + t.equal(doc.text(), 'how do you do!', 'elipses') + + // doc = nlp('how do you do (today)') + // doc = doc.sentences().toQuestion() + // t.equal(doc.text(), 'how do you do (today)?', 'elipses') + + // doc = nlp('how do you do ') + // doc = doc.sentences().toQuestion() + // t.equal(doc.text(), 'how do you do? ', 'after-whitespace') + + // let doc = nlp('Go out on a Tuesday? Who am I, Charlie Sheen?').sentences().toStatement() + // t.equal(doc.text(), 'Go out on a Tuesday. Who am I, Charlie Sheen.', 'awkward tostatement') + t.end() +}) diff --git a/scratch.js b/scratch.js index 1c590b57b..d8fedfcde 100644 --- a/scratch.js +++ b/scratch.js @@ -3,6 +3,8 @@ const nlp = require('./src/index') // let txt = require('./scripts/test/speed/_sotu-text.js') nlp.extend(require('./plugins/sentences/src')) -let doc = nlp(`I can't believe it's a law firm.`) -let str = doc.sentences().toExclamation().text() -console.log(str) +const txt = `Probably the renovation, which has been done to the property.` +let doc = nlp(txt) +// let doc = nlp('is wayne gretskzy alive') +doc.clauses().debug() +// doc.sentences().isQuestion().debug() diff --git a/src/02-tagger/04-correction/matches/01-misc.js b/src/02-tagger/04-correction/matches/01-misc.js index 5bc60206c..84b808c73 100644 --- a/src/02-tagger/04-correction/matches/01-misc.js +++ b/src/02-tagger/04-correction/matches/01-misc.js @@ -54,7 +54,7 @@ const list = [ // //the word 'which' { match: '^which', tag: 'QuestionWord', reason: 'which-question' }, { match: '[which] . (#Noun)+ #Pronoun', group: 0, tag: 'QuestionWord', reason: 'which-question2' }, - { match: 'which', tag: 'QuestionWord', reason: 'which-question3' }, + // { match: 'which', tag: 'QuestionWord', reason: 'which-question3' }, // ==== Conjunctions ==== { match: '[so] #Noun', group: 0, tag: 'Conjunction', reason: 'so-conj' }, diff --git a/tests/_backlog/backlog.ignore.js b/tests/_backlog/backlog.ignore.js index cd74e4ac5..224b13ea7 100644 --- a/tests/_backlog/backlog.ignore.js +++ b/tests/_backlog/backlog.ignore.js @@ -69,18 +69,6 @@ test('replace-capture-group', function(t) { // t.end() // }) -// test('false-positives', function(t) { -// const txt = `Probably the renovation right away from the amount of work, which has been done to the property. -// I have one two, three, four five six properties, which came on the market in the month. -// I think that the number one quite comfortable looking at the two properties, which I'm working on now.` -// const questions = nlp(txt) -// .sentences() -// .isQuestion() -// .out('array') -// t.equal(questions.length, 0, 'no questions here') -// t.end() -// }) - // let r = nlp('Homer, have you been eating that sandwich again?') // .terms() // .slice(0, 3) From cfb04b89ad504893f3a92ffd7b215945003ae620 Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Thu, 28 May 2020 20:22:05 -0400 Subject: [PATCH 04/17] add viktor for #652 --- data/people/maleNames.js | 1 + scratch.js | 11 ++++------- src/World/_data.js | 2 +- 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/data/people/maleNames.js b/data/people/maleNames.js index 9ed87fa97..a8b485540 100644 --- a/data/people/maleNames.js +++ b/data/people/maleNames.js @@ -904,6 +904,7 @@ module.exports = [ 'vernon', 'vicente', 'victor', + 'viktor', 'vihaan', 'vince', 'vincent', diff --git a/scratch.js b/scratch.js index d8fedfcde..b7bb06f57 100644 --- a/scratch.js +++ b/scratch.js @@ -1,10 +1,7 @@ const nlp = require('./src/index') -// nlp.verbose(true) +nlp.verbose(true) // let txt = require('./scripts/test/speed/_sotu-text.js') -nlp.extend(require('./plugins/sentences/src')) +// nlp.extend(require('./plugins/sentences/src')) -const txt = `Probably the renovation, which has been done to the property.` -let doc = nlp(txt) -// let doc = nlp('is wayne gretskzy alive') -doc.clauses().debug() -// doc.sentences().isQuestion().debug() +let res = nlp('am being driven').verbs().debug().conjugate()[0] +console.log(res) diff --git a/src/World/_data.js b/src/World/_data.js index 8fb7f9549..b792f7978 100644 --- a/src/World/_data.js +++ b/src/World/_data.js @@ -35,7 +35,7 @@ module.exports={ "Date": "true¦t0weekend,yesterd2;mr2o0;d0morrow;ay;!w", "FirstName": "true¦aEblair,cCdevBj8k6lashawn,m3nelly,quinn,re2sh0;ay,e0iloh;a,lby;g1ne;ar1el,org0;an;ion,lo;as8e0r9;ls7nyatta,rry;am0ess1ude;ie,m0;ie;an,on;as0heyenne;ey,sidy;lex1ndra,ubr0;ey;is", "LastName": "true¦0:34;1:39;2:3B;3:2Y;4:2E;5:30;a3Bb31c2Od2Ee2Bf25g1Zh1Pi1Kj1Ek17l0Zm0Nn0Jo0Gp05rYsMtHvFwCxBy8zh6;a6ou,u;ng,o;a6eun2Uoshi1Kun;ma6ng;da,guc1Zmo27sh21zaR;iao,u;a7eb0il6o3right,u;li3Bs1;gn0lk0ng,tanabe;a6ivaldi;ssilj37zqu2;a9h8i2Go7r6sui,urn0;an,ynisJ;lst0Prr1Uth;at1Uomps1;kah0Vnaka,ylor;aEchDeChimizu,iBmiAo9t7u6zabo;ar2lliv2AzuE;a6ein0;l23rm0;sa,u3;rn4th;lva,mmo24ngh;mjon4rrano;midt,neid0ulz;ito,n7sa6to;ki;ch2dLtos,z;amBeag1Zi9o7u6;bio,iz,sD;b6dri1MgIj0Tme24osevelt,ssi,ux;erts,ins1;c6ve0F;ci,hards1;ir2os;aEeAh8ic6ow20;as6hl0;so;a6illips;m,n1T;ders5et8r7t6;e0Nr4;ez,ry;ers;h21rk0t6vl4;el,te0J;baBg0Blivei01r6;t6w1O;ega,iz;a6eils1guy5ix1owak,ym1E;gy,ka6var1K;ji6muW;ma;aEeCiBo8u6;ll0n6rr0Bssolini,ñ6;oz;lina,oKr6zart;al0Me6r0U;au,no;hhail4ll0;rci0ssi6y0;!er;eWmmad4r6tsu07;in6tin2;!o;aCe8i6op2uo;!n6u;coln,dholm;fe7n0Qr6w0J;oy;bv6v6;re;mmy,rs5u;aBennedy,imuAle0Lo8u7wo6;k,n;mar,znets4;bay6vacs;asY;ra;hn,rl9to,ur,zl4;aAen9ha3imen2o6u3;h6nYu3;an6ns1;ss1;ki0Es5;cks1nsse0D;glesi9ke8noue,shik7to,vano6;u,v;awa;da;as;aBe8itchcock,o7u6;!a3b0ghNynh;a3ffmann,rvat;mingw7nde6rN;rs1;ay;ns5rrQs7y6;asDes;an4hi6;moJ;a9il,o8r7u6;o,tierr2;ayli3ub0;m2nzal2;nd6o,rcia;hi;erAis9lor8o7uj6;ita;st0urni0;es;ch0;nand2;d7insteHsposi6vaL;to;is1wards;aCeBi9omin8u6;bo6rand;is;gu2;az,mitr4;ov;lgado,vi;nkula,rw7vi6;es,s;in;aFhBlarkAo6;h5l6op0rbyn,x;em7li6;ns;an;!e;an8e7iu,o6ristens5u3we;i,ng,u3w,y;!n,on6u3;!g;mpb7rt0st6;ro;ell;aBe8ha3lanco,oyko,r6yrne;ooks,yant;ng;ck7ethov5nnett;en;er,ham;ch,h8iley,rn6;es,i0;er;k,ng;dDl9nd6;ers6rA;en,on,s1;on;eks7iy8var2;ez;ej6;ev;ams", - "MaleName": "true¦0:CE;1:BL;2:C2;3:BT;4:B5;5:9V;6:BZ;7:AT;8:BD;9:AX;A:AO;aB4bA8c97d87e7Gf6Yg6Gh5Wi5Ij4Lk4Bl3Rm2Pn2Eo28p22qu20r1As0Qt06u05v00wNxavi3yGzB;aBor0;cBh8Ine;hCkB;!aB1;ar51eB0;ass2i,oCuB;sDu25;nEsDusB;oBsC;uf;ef;at0g;aJeHiCoByaAP;lfgang,odrow;lBn1O;bDey,frBJlB;aA5iB;am,e,s;e89ur;i,nde5sB;!l7t1;de,lCrr6yB;l1ne;lBt3;a93y;aEern1iB;cCha0nceBrg9Bva0;!nt;ente,t5A;lentin49n8Yughn;lyss4Msm0;aTeOhKiIoErCyB;!l3ro8s1;av9QeBist0oy,um0;nt9Iv54y;bDd7XmBny;!as,mBoharu;aAYie,y;i83y;mBt9;!my,othy;adDeoCia7DomB;!as;!do7M;!de9;dErB;en8HrB;an8GeBy;ll,n8F;!dy;dgh,ic9Tnn3req,ts45;aRcotPeNhJiHoFpenc3tBur1Oylve8Hzym1;anDeBua7B;f0phAFvBwa7A;e57ie;!islaw,l7;lom1nA3uB;leyma8ta;dBl7Jm1;!n7;aDeB;lBrm0;d1t1;h6Sne,qu0Uun,wn,y8;aBbasti0k1Xl41rg40th,ymo9I;m9n;!tB;!ie,y;lCmBnti21q4Iul;!mAu4;ik,vato6V;aWeShe92iOoFuCyB;an,ou;b6LdCf9pe6QssB;!elAI;ol2Uy;an,bIcHdGel,geFh0landA9mEnDry,sCyB;!ce;coe,s;!a95nA;an,eo;l3Jr;e4Qg3n7olfo,ri68;co,ky;bAe9U;cBl7;ar5Oc5NhCkBo;!ey,ie,y;a85ie;gCid,ub6x,yBza;ansh,nS;g8WiB;na8Ss;ch5Yfa4lDmCndBpha4sh6Uul,ymo70;al9Yol2By;i9Ion;f,ph;ent2inB;cy,t1;aFeDhilCier62ol,reB;st1;!ip,lip;d9Brcy,tB;ar,e2V;b3Sdra6Ft44ul;ctav2Vliv3m96rFsCtBum8Uw6;is,to;aCc8SvB;al52;ma;i,l49vJ;athJeHiDoB;aBel,l0ma0r2X;h,m;cCg4i3IkB;h6Uola;hol5XkBol5X;!ol5W;al,d,il,ls1vB;il50;anBy;!a4i4;aWeTiKoFuCyB;l21r1;hamCr5ZstaB;fa,p4G;ed,mF;dibo,e,hamDis1XntCsBussa;es,he;e,y;ad,ed,mB;ad,ed;cGgu4kElDnCtchB;!e5;a78ik;house,o03t1;e,olB;aj;ah,hBk7;a4eB;al,l;hClv2rB;le,ri5v2;di,met;ck,hNlLmOnu4rHs1tDuricCxB;!imilian8Cwe5;e,io;eo,hCi52tB;!eo,hew,ia;eBis;us,w;cDio,k86lCqu6Gsha5tBv2;i2Hy;in,on;!el,oKus;achBcolm,ik;ai,y;amBdi,moud;adB;ou;aReNiMlo2RoIuCyB;le,nd1;cEiDkBth3;aBe;!s;gi,s;as,iaB;no;g0nn6RrenDuBwe5;!iB;e,s;!zo;am,on4;a7Bevi,la4SnDoBst3vi;!nB;!a60el;!ny;mCnBr67ur4Twr4T;ce,d1;ar,o4N;aIeDhaled,iBrist4Vu48y3B;er0p,rB;by,k,ollos;en0iEnBrmit,v2;!dCnBt5C;e0Yy;a5ri4N;r,th;na68rBthem;im,l;aYeQiOoDuB;an,liBst2;an,o,us;aqu2eJhnInGrEsB;eChBi7Bue;!ua;!ph;dBge;an,i,on;!aBny;h,s,th4X;!ath4Wie,nA;!l,sBy;ph;an,e,mB;!mA;d,ffGrDsB;sBus;!e;a5JemCmai8oBry;me,ni0O;i6Uy;!e58rB;ey,y;cHd6kGmFrDsCvi3yB;!d6s1;on,p3;ed,od,rBv4M;e4Zod;al,es,is1;e,ob,ub;k,ob,quB;es;aNbrahMchika,gKkeJlija,nuIrGsDtBv0;ai,sB;uki;aBha0i6Fma4sac;ac,iaB;h,s;a,vinBw2;!g;k,nngu52;!r;nacBor;io;im;in,n;aJeFina4VoDuByd56;be25gBmber4CsD;h,o;m3ra33sBwa3X;se2;aDctCitCn4ErB;be20m0;or;th;bKlJmza,nIo,rDsCyB;a43d6;an,s0;lEo4FrDuBv7;hi40ki,tB;a,o;is1y;an,ey;k,s;!im;ib;aQeMiLlenKoIrEuB;illerCsB;!tavo;mo;aDegBov3;!g,orB;io,y;dy,h57nt;nzaBrd1;lo;!n;lbe4Qno,ovan4R;ne,oDrB;aBry;ld,rd4U;ffr7rge;bri4l6rBv2;la1Zr3Eth,y;aReNiLlJorr0IrB;anDedBitz;!dAeBri24;ri23;cDkB;!ie,lB;in,yn;esJisB;!co,zek;etch3oB;yd;d4lBonn;ip;deriDliCng,rnB;an01;pe,x;co;bi0di;arZdUfrTit0lNmGnFo2rCsteb0th0uge8vBym6zra;an,ere2V;gi,iCnBrol,v2w2;est45ie;c07k;och,rique,zo;aGerFiCmB;aFe2P;lCrB;!h0;!io;s1y;nu4;be09d1iEliDmCt1viBwood;n,s;er,o;ot1Ts;!as,j43sB;ha;a2en;!dAg32mEuCwB;a25in;arB;do;o0Su0S;l,nB;est;aYeOiLoErDuCwByl0;ay8ight;a8dl7nc0st2;ag0ew;minFnDri0ugCyB;le;!l03;!a29nBov0;e5ie,y;go,icB;!k;armuCeBll1on,rk;go;id;anIj0lbeHmetri9nFon,rEsDvCwBxt3;ay8ey;en,in;hawn,mo08;ek,ri0F;is,nBv3;is,y;rt;!dB;re;lKmInHrDvB;e,iB;!d;en,iDne5rByl;eBin,yl;l2Vn;n,o,us;!e,i4ny;iBon;an,en,on;e,lB;as;a06e04hWiar0lLoGrEuCyrB;il,us;rtB;!is;aBistobal;ig;dy,lEnCrB;ey,neli9y;or,rB;ad;by,e,in,l2t1;aGeDiByI;fBnt;fo0Ct1;meCt9velaB;nd;nt;rDuCyB;!t1;de;enB;ce;aFeErisCuB;ck;!tB;i0oph3;st3;d,rlBs;eBie;s,y;cBdric,s11;il;lEmer1rB;ey,lCro5y;ll;!os,t1;eb,v2;ar02eUilTlaSoPrCuByr1;ddy,rtI;aJeEiDuCyB;an,ce,on;ce,no;an,ce;nCtB;!t;dCtB;!on;an,on;dCndB;en,on;!foBl7y;rd;bCrByd;is;!by;i8ke;al,lA;nFrBshoi;at,nCtB;!r10;aBie;rd0S;!edict,iCjam2nA;ie,y;to;n7rBt;eBy;tt;ey;ar0Xb0Nd0Jgust2hm0Gid6ja0ElZmXnPputsiOrFsaEuCveBya0ziz;ry;gust9st2;us;hi;aIchHi4jun,maFnDon,tBy0;hBu06;ur;av,oB;ld;an,nd0A;el;ie;ta;aq;dGgel05tB;hoEoB;i8nB;!i02y;ne;ny;reBy;!as,s,w;ir,mBos;ar;an,beOd6eIfFi,lEonDphonHt1vB;aMin;on;so,zo;an,en;onCrB;edP;so;c,jaEksandDssaExB;!and3;er;ar,er;ndB;ro;rtH;ni;en;ad,eB;d,t;in;aColfBri0vik;!o;mBn;!a;dFeEraCuB;!bakr,lfazl;hBm;am;!l;allEel,oulaye,ulB;!lCrahm0;an;ah,o;ah;av,on", + "MaleName": "true¦0:CE;1:BL;2:C2;3:BT;4:B5;5:9V;6:BZ;7:AT;8:BD;9:AX;A:AO;aB4bA8c97d87e7Gf6Yg6Gh5Wi5Ij4Lk4Bl3Rm2Pn2Eo28p22qu20r1As0Qt06u05v00wNxavi3yGzB;aBor0;cBh8Ine;hCkB;!aB1;ar51eB0;ass2i,oCuB;sDu25;nEsDusB;oBsC;uf;ef;at0g;aJeHiCoByaAP;lfgang,odrow;lBn1O;bDey,frBJlB;aA5iB;am,e,s;e89ur;i,nde5sB;!l7t1;de,lCrr6yB;l1ne;lBt3;a93y;aEern1iB;cCha0kt5CnceBrg9Bva0;!nt;ente,t5A;lentin49n8Yughn;lyss4Msm0;aTeOhKiIoErCyB;!l3ro8s1;av9QeBist0oy,um0;nt9Iv54y;bDd7XmBny;!as,mBoharu;aAYie,y;i83y;mBt9;!my,othy;adDeoCia7DomB;!as;!do7M;!de9;dErB;en8HrB;an8GeBy;ll,n8F;!dy;dgh,ic9Tnn3req,ts45;aRcotPeNhJiHoFpenc3tBur1Oylve8Hzym1;anDeBua7B;f0phAFvBwa7A;e57ie;!islaw,l7;lom1nA3uB;leyma8ta;dBl7Jm1;!n7;aDeB;lBrm0;d1t1;h6Sne,qu0Uun,wn,y8;aBbasti0k1Xl41rg40th,ymo9I;m9n;!tB;!ie,y;lCmBnti21q4Iul;!mAu4;ik,vato6V;aWeShe92iOoFuCyB;an,ou;b6LdCf9pe6QssB;!elAI;ol2Uy;an,bIcHdGel,geFh0landA9mEnDry,sCyB;!ce;coe,s;!a95nA;an,eo;l3Jr;e4Qg3n7olfo,ri68;co,ky;bAe9U;cBl7;ar5Oc5NhCkBo;!ey,ie,y;a85ie;gCid,ub6x,yBza;ansh,nS;g8WiB;na8Ss;ch5Yfa4lDmCndBpha4sh6Uul,ymo70;al9Yol2By;i9Ion;f,ph;ent2inB;cy,t1;aFeDhilCier62ol,reB;st1;!ip,lip;d9Brcy,tB;ar,e2V;b3Sdra6Ft44ul;ctav2Vliv3m96rFsCtBum8Uw6;is,to;aCc8SvB;al52;ma;i,l49vJ;athJeHiDoB;aBel,l0ma0r2X;h,m;cCg4i3IkB;h6Uola;hol5XkBol5X;!ol5W;al,d,il,ls1vB;il50;anBy;!a4i4;aWeTiKoFuCyB;l21r1;hamCr5ZstaB;fa,p4G;ed,mF;dibo,e,hamDis1XntCsBussa;es,he;e,y;ad,ed,mB;ad,ed;cGgu4kElDnCtchB;!e5;a78ik;house,o03t1;e,olB;aj;ah,hBk7;a4eB;al,l;hClv2rB;le,ri5v2;di,met;ck,hNlLmOnu4rHs1tDuricCxB;!imilian8Cwe5;e,io;eo,hCi52tB;!eo,hew,ia;eBis;us,w;cDio,k86lCqu6Gsha5tBv2;i2Hy;in,on;!el,oKus;achBcolm,ik;ai,y;amBdi,moud;adB;ou;aReNiMlo2RoIuCyB;le,nd1;cEiDkBth3;aBe;!s;gi,s;as,iaB;no;g0nn6RrenDuBwe5;!iB;e,s;!zo;am,on4;a7Bevi,la4SnDoBst3vi;!nB;!a60el;!ny;mCnBr67ur4Twr4T;ce,d1;ar,o4N;aIeDhaled,iBrist4Vu48y3B;er0p,rB;by,k,ollos;en0iEnBrmit,v2;!dCnBt5C;e0Yy;a5ri4N;r,th;na68rBthem;im,l;aYeQiOoDuB;an,liBst2;an,o,us;aqu2eJhnInGrEsB;eChBi7Bue;!ua;!ph;dBge;an,i,on;!aBny;h,s,th4X;!ath4Wie,nA;!l,sBy;ph;an,e,mB;!mA;d,ffGrDsB;sBus;!e;a5JemCmai8oBry;me,ni0O;i6Uy;!e58rB;ey,y;cHd6kGmFrDsCvi3yB;!d6s1;on,p3;ed,od,rBv4M;e4Zod;al,es,is1;e,ob,ub;k,ob,quB;es;aNbrahMchika,gKkeJlija,nuIrGsDtBv0;ai,sB;uki;aBha0i6Fma4sac;ac,iaB;h,s;a,vinBw2;!g;k,nngu52;!r;nacBor;io;im;in,n;aJeFina4VoDuByd56;be25gBmber4CsD;h,o;m3ra33sBwa3X;se2;aDctCitCn4ErB;be20m0;or;th;bKlJmza,nIo,rDsCyB;a43d6;an,s0;lEo4FrDuBv7;hi40ki,tB;a,o;is1y;an,ey;k,s;!im;ib;aQeMiLlenKoIrEuB;illerCsB;!tavo;mo;aDegBov3;!g,orB;io,y;dy,h57nt;nzaBrd1;lo;!n;lbe4Qno,ovan4R;ne,oDrB;aBry;ld,rd4U;ffr7rge;bri4l6rBv2;la1Zr3Eth,y;aReNiLlJorr0IrB;anDedBitz;!dAeBri24;ri23;cDkB;!ie,lB;in,yn;esJisB;!co,zek;etch3oB;yd;d4lBonn;ip;deriDliCng,rnB;an01;pe,x;co;bi0di;arZdUfrTit0lNmGnFo2rCsteb0th0uge8vBym6zra;an,ere2V;gi,iCnBrol,v2w2;est45ie;c07k;och,rique,zo;aGerFiCmB;aFe2P;lCrB;!h0;!io;s1y;nu4;be09d1iEliDmCt1viBwood;n,s;er,o;ot1Ts;!as,j43sB;ha;a2en;!dAg32mEuCwB;a25in;arB;do;o0Su0S;l,nB;est;aYeOiLoErDuCwByl0;ay8ight;a8dl7nc0st2;ag0ew;minFnDri0ugCyB;le;!l03;!a29nBov0;e5ie,y;go,icB;!k;armuCeBll1on,rk;go;id;anIj0lbeHmetri9nFon,rEsDvCwBxt3;ay8ey;en,in;hawn,mo08;ek,ri0F;is,nBv3;is,y;rt;!dB;re;lKmInHrDvB;e,iB;!d;en,iDne5rByl;eBin,yl;l2Vn;n,o,us;!e,i4ny;iBon;an,en,on;e,lB;as;a06e04hWiar0lLoGrEuCyrB;il,us;rtB;!is;aBistobal;ig;dy,lEnCrB;ey,neli9y;or,rB;ad;by,e,in,l2t1;aGeDiByI;fBnt;fo0Ct1;meCt9velaB;nd;nt;rDuCyB;!t1;de;enB;ce;aFeErisCuB;ck;!tB;i0oph3;st3;d,rlBs;eBie;s,y;cBdric,s11;il;lEmer1rB;ey,lCro5y;ll;!os,t1;eb,v2;ar02eUilTlaSoPrCuByr1;ddy,rtI;aJeEiDuCyB;an,ce,on;ce,no;an,ce;nCtB;!t;dCtB;!on;an,on;dCndB;en,on;!foBl7y;rd;bCrByd;is;!by;i8ke;al,lA;nFrBshoi;at,nCtB;!r10;aBie;rd0S;!edict,iCjam2nA;ie,y;to;n7rBt;eBy;tt;ey;ar0Xb0Nd0Jgust2hm0Gid6ja0ElZmXnPputsiOrFsaEuCveBya0ziz;ry;gust9st2;us;hi;aIchHi4jun,maFnDon,tBy0;hBu06;ur;av,oB;ld;an,nd0A;el;ie;ta;aq;dGgel05tB;hoEoB;i8nB;!i02y;ne;ny;reBy;!as,s,w;ir,mBos;ar;an,beOd6eIfFi,lEonDphonHt1vB;aMin;on;so,zo;an,en;onCrB;edP;so;c,jaEksandDssaExB;!and3;er;ar,er;ndB;ro;rtH;ni;en;ad,eB;d,t;in;aColfBri0vik;!o;mBn;!a;dFeEraCuB;!bakr,lfazl;hBm;am;!l;allEel,oulaye,ulB;!lCrahm0;an;ah,o;ah;av,on", "Person": "true¦ashton kutchSbRcMdKeIgastNhGinez,jEkDleCmBnettJoAp8r4s3t2v0;a0irgin maG;lentino rossi,n go3;heresa may,iger woods,yra banks;addam hussain,carlett johanssJlobodan milosevic,uB;ay romano,eese witherspoIo1ush limbau0;gh;d stewart,nald0;inho,o;a0ipJ;lmIris hiltD;prah winfrFra;essiaen,itt romnEubarek;bron james,e;anye west,iefer sutherland,obe bryant;aime,effers8k rowli0;ng;alle ber0itlBulk hogan;ry;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0ruz;on;dinal wols1son0;! palm2;ey;arack obama,rock;er", "Verb": "true¦awak9born,cannot,fr8g7h5k3le2m1s0wors9;e8h3;ake sure,sg;ngth6ss6;eep tabs,n0;own;as0e2;!t2;iv1onna;ight0;en", "PhrasalVerb": "true¦0:72;1:6Q;2:7E;3:74;4:6J;5:7H;6:76;7:6P;8:6C;9:6D;A:5I;B:71;C:70;a7Hb63c5Dd5Ae58f46g3Oh38iron0j34k2Zl2Km2Bn29o27p1Pr1Es09tQuOvacuum 1wGyammerCzD;eroAip EonD;e0k0;by,up;aJeGhFiEorDrit53;d 1k2R;mp0n4Ape0r8s8;eel Bip 7L;aEiD;gh 06rd0;n Br 3D;it 5Kk8lk6rm 0Qsh 74t67v4P;rgeCsD;e 9herA;aRePhNiJoHrFuDype 0N;ckArn D;d2in,o3Gup;ade YiDot0y 28;ckle68p 7A;ne67p Ds4D;d2o6Lup;ck FdEe Dgh5Tme0p o0Dre0;aw3ba4d2in,up;e5Ky 1;by,o6V;ink Drow 5V;ba4ov7up;aDe 4Ill4O;m 1r W;ckCke Elk D;ov7u4O;aDba4d2in,o31up;ba4ft7p4Tw3;a0Gc0Fe09h05i02lYmXnWoVpSquare RtJuHwD;earFiD;ngEtch D;aw3ba4o6P; by;ck Dit 1m 1ss0;in,up;aIe0RiHoFrD;aigh1MiD;ke 5Yn2Y;p Drm1P;by,in,o6B;n2Zr 1tc3I;c2Ymp0nd Dr6Hve6y 1;ba4d2up;d2o67up;ar2Vell0ill4UlErDurC;ingCuc8;a33it 3U;be4Crt0;ap 4Eow B;ash 4Zoke0;eep EiDow 9;c3Np 1;in,oD;ff,v7;gn Eng2Zt Dz8;d2o5up;in,o5up;aFoDu4F;ot Dut0w 5X;aw3ba4f37o5R;c2FdeAk4Sve6;e Hll0nd GtD; Dtl43;d2in,o5upD;!on;aw3ba4d2in,o1Yup;o5to;al4Lout0rap4L;il6v8;at0eKiJoGuD;b 4Ele0n Dstl8;aDba4d2in53o3Gt30u3E;c1Xw3;ot EuD;g2Knd6;a1Xf2Ro5;ng 4Op6;aDel6inAnt0;c4Yd D;o2Tu0C;aQePiOlMoKrHsyc2AuD;ll Ft D;aDba4d2in,o1Ht34up;p39w3;ap38d2in,o5t32up;attleCess EiGoD;p 1;ah1Hon;iDp 53re3Mur45wer 53;nt0;ay3ZuD;gAmp 9;ck 53g0leCn 9p3W;el 47ncilA;c3Pir 2In0ss FtEy D;ba4o4R; d2c1Y;aw3ba4o12;pDw3K;e3Jt B;arrow3Terd0oD;d6te3S;aJeHiGoEuD;ddl8ll37;c17p 1uth6ve D;al3Bd2in,o5up;ss0x 1;asur8lt 9ss D;a1Aup;ke Dn 9r30s1Lx0;do,o3Yup;aPeNiIoDuck0;a17c37g GoDse0;k Dse35;aft7ba4d2forw2Bin3Wov7uD;nd7p;in,o0J;e GghtFnEsDv1T;ten 4D;e 1k 1; 1e2Y;ar43d2;av1Ht 2YvelD; o3L;p 1sh DtchCugh6y1U;in3Lo5;eEick6nock D;d2o3H;eDyA;l2Hp D;aw3ba4d2fSin,o05to,up;aFoEuD;ic8mpA;ke2St2W;c31zz 1;aPeKiHoEuD;nker2Ts0U;lDneArse2O;d De 1;ba4d2fast,oZup;de Et D;ba4on,up;aw3o5;aDlp0;d Fl22r Dt 1;fDof;rom;in,oRu1A;cZm 1nDve it,ze1Y;d Dg 27kerF;d2in,o5;aReLive Jloss1VoFrEunD; f0M;in39ow 23; Dof 0U;aEb17it,oDr35t0Ou12;ff,n,v7;bo5ft7hJw3;aw3ba4d2in,oDup,w3;ff,n,ut;a17ek0t D;aEb11d2oDr2Zup;ff,n,ut,v7;cEhDl1Pr2Xt,w3;ead;ross;d aEnD;g 1;bo5;a08e01iRlNoJrFuD;cDel 1;k 1;eEighten DownCy 1;aw3o2L;eDshe1G; 1z8;lFol D;aDwi19;bo5r2I;d 9;aEeDip0;sh0;g 9ke0mDrD;e 2K;gLlJnHrFsEzzD;le0;h 2H;e Dm 1;aw3ba4up;d0isD;h 1;e Dl 11;aw3fI;ht ba4ure0;eInEsD;s 1;cFd D;fDo1X;or;e B;dQl 1;cHll Drm0t0O;apYbFd2in,oEtD;hrough;ff,ut,v7;a4ehi1S;e E;at0dge0nd Dy8;o1Mup;o09rD;ess 9op D;aw3bNin,o15;aShPlean 9oDross But 0T;me FoEuntD; o1M;k 1l6;aJbIforGin,oFtEuD;nd7;ogeth7;ut,v7;th,wD;ard;a4y;pDr19w3;art;eDipA;ck BeD;r 1;lJncel0rGsFtch EveA; in;o16up;h Bt6;ry EvD;e V;aw3o12;l Dm02;aDba4d2o10up;r0Vw3;a0He08l01oSrHuD;bbleFcklTilZlEndlTrn 05tDy 10zz6;t B;k 9; ov7;anMeaKiDush6;ghHng D;aEba4d2forDin,o5up;th;bo5lDr0Lw3;ong;teD;n 1;k D;d2in,o5up;ch0;arKgJil 9n8oGssFttlEunce Dx B;aw3ba4;e 9; ar0B;k Bt 1;e 1;d2up; d2;d 1;aIeed0oDurt0;cFw D;aw3ba4d2o5up;ck;k D;in,oK;ck0nk0st6; oJaGef 1nd D;d2ov7up;er;up;r0t D;d2in,oDup;ff,ut;ff,nD;to;ck Jil0nFrgEsD;h B;ainCe B;g BkC; on;in,o5; o5;aw3d2o5up;ay;cMdIsk Fuction6; oD;ff;arDo5;ouD;nd;d D;d2oDup;ff,n;own;t D;o5up;ut", From 5c8b42db31c29edfd46f4c1f340d282f78792bdd Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Thu, 28 May 2020 20:48:05 -0400 Subject: [PATCH 05/17] fix for #737 --- scratch.js | 18 +++++++++++++++--- .../04-correction/matches/07-verbs.js | 3 +++ src/Subset/Verbs/conjugate/index.js | 2 +- src/Subset/Verbs/parse.js | 2 +- src/Subset/Verbs/toInfinitive/index.js | 4 +++- 5 files changed, 23 insertions(+), 6 deletions(-) diff --git a/scratch.js b/scratch.js index b7bb06f57..b3b554e13 100644 --- a/scratch.js +++ b/scratch.js @@ -1,7 +1,19 @@ const nlp = require('./src/index') -nlp.verbose(true) +// nlp.verbose(true) // let txt = require('./scripts/test/speed/_sotu-text.js') -// nlp.extend(require('./plugins/sentences/src')) +nlp.extend(require('./plugins/sentences/src')) -let res = nlp('am being driven').verbs().debug().conjugate()[0] +// let doc = nlp('i am being driven') +// doc.debug() +// let doc = nlp('he has been stalking his prey') +// 'Our pet alligator' +let doc = nlp('he should have been eating Gator Chow') + +// let doc = nlp('Joelle bit her tongue instead of criticizing her prom date.') +// doc.sentences().toPastTense().debug() +// doc.sentences().toPresentTense().debug() +doc.sentences().toFutureTense().debug() + +doc = nlp('I am being driven to madness.') +let res = doc.verbs().debug().conjugate()[0] console.log(res) diff --git a/src/02-tagger/04-correction/matches/07-verbs.js b/src/02-tagger/04-correction/matches/07-verbs.js index b518e143a..cc8024229 100644 --- a/src/02-tagger/04-correction/matches/07-verbs.js +++ b/src/02-tagger/04-correction/matches/07-verbs.js @@ -57,6 +57,9 @@ let list = [ reason: 'had-been', }, + // was being driven + { match: '[being] #Participle', group: 0, tag: 'Auxiliary', reason: 'being-foo' }, + // ==== Phrasal ==== //'foo-up' { match: '(#Verb && @hasHyphen) up', group: 0, tag: 'PhrasalVerb', reason: 'foo-up' }, diff --git a/src/Subset/Verbs/conjugate/index.js b/src/Subset/Verbs/conjugate/index.js index 5766dc830..5a72be1a5 100644 --- a/src/Subset/Verbs/conjugate/index.js +++ b/src/Subset/Verbs/conjugate/index.js @@ -1,7 +1,7 @@ const toInfinitive = require('../toInfinitive') const toBe = require('./toBe') -const conjugate = function(parsed, world) { +const conjugate = function (parsed, world) { let verb = parsed.verb //special handling of 'is', 'will be', etc. diff --git a/src/Subset/Verbs/parse.js b/src/Subset/Verbs/parse.js index 8e0fc920c..cbedc1c50 100644 --- a/src/Subset/Verbs/parse.js +++ b/src/Subset/Verbs/parse.js @@ -1,5 +1,5 @@ // turn 'would not really walk up' into parts -const parseVerb = function(vb) { +const parseVerb = function (vb) { let parsed = { adverb: vb.match('#Adverb+'), // 'really' negative: vb.match('#Negative'), // 'not' diff --git a/src/Subset/Verbs/toInfinitive/index.js b/src/Subset/Verbs/toInfinitive/index.js index d9145c6db..ced7b6db2 100644 --- a/src/Subset/Verbs/toInfinitive/index.js +++ b/src/Subset/Verbs/toInfinitive/index.js @@ -1,6 +1,8 @@ // walked => walk - turn a verb into it's root form -const toInfinitive = function(parsed, world) { +const toInfinitive = function (parsed, world) { let verb = parsed.verb + // console.log(parsed) + // verb.debug() //1. if it's already infinitive let str = verb.text('normal') From f912dc8e4deaad22e367d3775cdb28db8ceecb2a Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Wed, 10 Jun 2020 12:34:43 -0400 Subject: [PATCH 06/17] phone number improvements #761 --- scratch.js | 21 +++++++-------------- src/02-tagger/01-init/data/startsWith.js | 2 +- tests/tagger/tagWord.test.js | 5 +++-- tests/verbs/auxiliary.test.js | 22 ++++++++++++++++++++++ tests/verbs/misc.test.js | 17 +++++------------ 5 files changed, 38 insertions(+), 29 deletions(-) create mode 100644 tests/verbs/auxiliary.test.js diff --git a/scratch.js b/scratch.js index b3b554e13..c6a5067ca 100644 --- a/scratch.js +++ b/scratch.js @@ -1,19 +1,12 @@ const nlp = require('./src/index') -// nlp.verbose(true) +nlp.verbose(true) // let txt = require('./scripts/test/speed/_sotu-text.js') nlp.extend(require('./plugins/sentences/src')) -// let doc = nlp('i am being driven') -// doc.debug() -// let doc = nlp('he has been stalking his prey') -// 'Our pet alligator' -let doc = nlp('he should have been eating Gator Chow') +// // let doc = nlp('i am being driven') +// let doc = nlp('i should be driven') +// // let doc = nlp('i should have been driven') +// doc.sentences().toFutureTense().debug() -// let doc = nlp('Joelle bit her tongue instead of criticizing her prom date.') -// doc.sentences().toPastTense().debug() -// doc.sentences().toPresentTense().debug() -doc.sentences().toFutureTense().debug() - -doc = nlp('I am being driven to madness.') -let res = doc.verbs().debug().conjugate()[0] -console.log(res) +let doc = nlp('+1-123-444-55555') +doc.debug() diff --git a/src/02-tagger/01-init/data/startsWith.js b/src/02-tagger/01-init/data/startsWith.js index 51fefeda8..8677084c8 100644 --- a/src/02-tagger/01-init/data/startsWith.js +++ b/src/02-tagger/01-init/data/startsWith.js @@ -32,7 +32,7 @@ module.exports = [ //phone numbers [/^[0-9]{3}-[0-9]{4}$/, 'PhoneNumber'], //589-3809 - [/^[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/, 'PhoneNumber'], //632-589-3809 + [/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/, 'PhoneNumber'], //632-589-3809 //money // currency regex diff --git a/tests/tagger/tagWord.test.js b/tests/tagger/tagWord.test.js index 4fbbe9735..93db486cc 100644 --- a/tests/tagger/tagWord.test.js +++ b/tests/tagger/tagWord.test.js @@ -2,7 +2,7 @@ const test = require('tape') const nlp = require('../_lib') //test a word from each file in ./data/** -test('pos from-lexicon', function(t) { +test('pos from-lexicon', function (t) { const arr = [ ['toronto', 'City'], ['mexico', 'Country'], @@ -52,6 +52,7 @@ test('pos from-lexicon', function(t) { ['823-425-1231', 'PhoneNumber'], ['823 425-1231', 'PhoneNumber'], ['(823) 425-1231', 'PhoneNumber'], + ['+1-123-444-5655', 'PhoneNumber'], ['invest', 'Verb'], ['investing', 'Verb'], [`wallys'`, 'Possessive'], @@ -67,7 +68,7 @@ test('pos from-lexicon', function(t) { ['MDMA', 'Acronym'], ['unless', 'Condition'], ] - arr.forEach(function(a) { + arr.forEach(function (a) { const term = nlp(a[0]).termList()[0] t.equal(term.tags[a[1]], true, a[0]) }) diff --git a/tests/verbs/auxiliary.test.js b/tests/verbs/auxiliary.test.js new file mode 100644 index 000000000..69070ce74 --- /dev/null +++ b/tests/verbs/auxiliary.test.js @@ -0,0 +1,22 @@ +const test = require('tape') +const nlp = require('../_lib') + +test('participle/auxiliary toPast', function (t) { + let doc = nlp('i am being driven') + doc.verbs().toPastTense() + t.equal(doc.text(), 'i was driven', 'to-past1') + + doc = nlp('he has been stalking his prey') + doc.verbs().toPastTense() + t.equal(doc.text(), 'he had been stalking his prey', 'to-past2') + + doc = nlp('she bit her tongue instead of criticizing her prom date') + doc.verbs().toPastTense() + t.equal(doc.text(), 'she bit her tongue instead of criticizing her prom date', 'to-past3') + + doc = nlp('he should have been eating') + doc.verbs().toPastTense() + t.equal(doc.text(), 'he should have been eating', 'to-past4') + + t.end() +}) diff --git a/tests/verbs/misc.test.js b/tests/verbs/misc.test.js index 2938979b2..680e8c124 100644 --- a/tests/verbs/misc.test.js +++ b/tests/verbs/misc.test.js @@ -1,10 +1,8 @@ const test = require('tape') const nlp = require('../_lib') -test('verbs.json', function(t) { - let json = nlp('She has called twice, not the tv') - .verbs() - .json() +test('verbs.json', function (t) { + let json = nlp('She has called twice, not the tv').verbs().json() t.equal(json.length, 1, 'one verb') t.equal(json[0].isNegative, false, 'not negative') t.equal(json[0].parts.verb, 'called', 'got main verb') @@ -12,17 +10,12 @@ test('verbs.json', function(t) { t.end() }) -test('verbs.adverbs', function(t) { +test('verbs.adverbs', function (t) { let doc = nlp('spencer is really great! Spencer really really was superb.') - doc - .verbs() - .adverbs() - .delete() + doc.verbs().adverbs().delete() t.equal(doc.out(), 'spencer is great! Spencer was superb.', 'no-adverbs') - doc = nlp('spencer truly would really run quickly') - .verbs() - .adverbs() + doc = nlp('spencer truly would really run quickly').verbs().adverbs() t.equal(doc.length, 3, 'found all three adverbs') t.equal(doc.text('reduced'), 'truly really quickly', 'found adverbs in order') From 913bee59ab0de4754d9ab35ee2846cdd9f26a16c Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Wed, 10 Jun 2020 13:41:28 -0400 Subject: [PATCH 07/17] fixes for #706 --- scratch.js | 15 +++++++++++---- src/World/data/conjugations.js | 1 + src/transforms/conjugate/01-suffixes.js | 4 ++-- src/transforms/conjugate/index.js | 2 +- src/transforms/toInfinitive/_transform.js | 4 ++++ src/transforms/toInfinitive/index.js | 4 ++-- 6 files changed, 21 insertions(+), 9 deletions(-) diff --git a/scratch.js b/scratch.js index c6a5067ca..67e28d52f 100644 --- a/scratch.js +++ b/scratch.js @@ -1,12 +1,19 @@ const nlp = require('./src/index') -nlp.verbose(true) +// nlp.verbose(true) // let txt = require('./scripts/test/speed/_sotu-text.js') -nlp.extend(require('./plugins/sentences/src')) +// nlp.extend(require('./plugins/sentences/src')) // // let doc = nlp('i am being driven') // let doc = nlp('i should be driven') // // let doc = nlp('i should have been driven') // doc.sentences().toFutureTense().debug() -let doc = nlp('+1-123-444-55555') -doc.debug() +// let doc = nlp('open').debug() + +let doc = nlp('added') +// let doc = nlp('edited') +// let doc = nlp('edit') +console.log(doc.verbs().conjugate()) + +// let doc = nlp('includes') +// console.log(doc.verbs().conjugate()) diff --git a/src/World/data/conjugations.js b/src/World/data/conjugations.js index 9ef1d30e3..da7e3c963 100644 --- a/src/World/data/conjugations.js +++ b/src/World/data/conjugations.js @@ -221,6 +221,7 @@ let conjugations = { pst: 'ate', }, edit: { + pst: '_ed', g: '_ing', }, egg: { diff --git a/src/transforms/conjugate/01-suffixes.js b/src/transforms/conjugate/01-suffixes.js index f869f87c4..a906b4a7c 100644 --- a/src/transforms/conjugate/01-suffixes.js +++ b/src/transforms/conjugate/01-suffixes.js @@ -7,7 +7,7 @@ const posMap = { ar: 'Actor', } -const doTransform = function(str, obj) { +const doTransform = function (str, obj) { let found = {} let keys = Object.keys(obj.repl) for (let i = 0; i < keys.length; i += 1) { @@ -18,7 +18,7 @@ const doTransform = function(str, obj) { } //look at the end of the word for clues -const checkSuffix = function(str = '') { +const checkSuffix = function (str = '') { let c = str[str.length - 1] if (suffixes.hasOwnProperty(c) === true) { for (let r = 0; r < suffixes[c].length; r += 1) { diff --git a/src/transforms/conjugate/index.js b/src/transforms/conjugate/index.js index 4a7326283..189150231 100644 --- a/src/transforms/conjugate/index.js +++ b/src/transforms/conjugate/index.js @@ -3,7 +3,7 @@ const genericFill = require('./02-generic') //we run this on every verb in the lexicon, so please keep it fast //we assume the input word is a proper infinitive -const conjugate = function(inf = '', world) { +const conjugate = function (inf = '', world) { let found = {} // 1. look at irregulars //the lexicon doesn't pass this in diff --git a/src/transforms/toInfinitive/_transform.js b/src/transforms/toInfinitive/_transform.js index d952f42cf..a5eec058e 100644 --- a/src/transforms/toInfinitive/_transform.js +++ b/src/transforms/toInfinitive/_transform.js @@ -219,6 +219,10 @@ let rules = { reg: /(us)ed$/i, to: '$1e', }, + { + reg: /(dd)ed$/i, + to: '$1', + }, { reg: /(..[^aeiouy])ed$/i, to: '$1e', diff --git a/src/transforms/toInfinitive/index.js b/src/transforms/toInfinitive/index.js index a9947c21c..67a10a150 100644 --- a/src/transforms/toInfinitive/index.js +++ b/src/transforms/toInfinitive/index.js @@ -2,7 +2,7 @@ const rules = require('./_transform') const guess = require('./_guess') /** it helps to know what we're conjugating from */ -const guessTense = function(str) { +const guessTense = function (str) { let three = str.substr(str.length - 3) if (guess.hasOwnProperty(three) === true) { return guess[three] @@ -18,7 +18,7 @@ const guessTense = function(str) { return null } -const toInfinitive = function(str, world, tense) { +const toInfinitive = function (str, world, tense) { if (!str) { return '' } From bef2dad0cd41d3f31f8f13c4cd26ccab05de1f05 Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Wed, 10 Jun 2020 13:47:30 -0400 Subject: [PATCH 08/17] open as verb --- scratch.js | 12 ++---------- src/02-tagger/04-correction/matches/07-verbs.js | 2 ++ 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/scratch.js b/scratch.js index 67e28d52f..dc7091781 100644 --- a/scratch.js +++ b/scratch.js @@ -1,5 +1,5 @@ const nlp = require('./src/index') -// nlp.verbose(true) +nlp.verbose(true) // let txt = require('./scripts/test/speed/_sotu-text.js') // nlp.extend(require('./plugins/sentences/src')) @@ -8,12 +8,4 @@ const nlp = require('./src/index') // // let doc = nlp('i should have been driven') // doc.sentences().toFutureTense().debug() -// let doc = nlp('open').debug() - -let doc = nlp('added') -// let doc = nlp('edited') -// let doc = nlp('edit') -console.log(doc.verbs().conjugate()) - -// let doc = nlp('includes') -// console.log(doc.verbs().conjugate()) +let doc = nlp('open the car door').debug() diff --git a/src/02-tagger/04-correction/matches/07-verbs.js b/src/02-tagger/04-correction/matches/07-verbs.js index cc8024229..7771ca0c1 100644 --- a/src/02-tagger/04-correction/matches/07-verbs.js +++ b/src/02-tagger/04-correction/matches/07-verbs.js @@ -97,6 +97,8 @@ let list = [ //is eager to go { match: '#Copula [#Adjective to] #Verb', group: 0, tag: 'Verb', reason: 'adj-to' }, + // open the door + { match: '[open] #Determiner', group: 0, tag: 'Infinitive', reason: 'open-the' }, // would wade { match: `#Modal [${verbs}]`, group: 0, tag: 'Verb', reason: 'would-mark' }, From 60553c51bb3c3aeeba1802c38a9f0d99056c3b14 Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Wed, 10 Jun 2020 13:52:06 -0400 Subject: [PATCH 09/17] fix for #758 --- scratch.js | 2 +- src/02-tagger/04-correction/matches/02-dates.js | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/scratch.js b/scratch.js index dc7091781..c072739c5 100644 --- a/scratch.js +++ b/scratch.js @@ -8,4 +8,4 @@ nlp.verbose(true) // // let doc = nlp('i should have been driven') // doc.sentences().toFutureTense().debug() -let doc = nlp('open the car door').debug() +let doc = nlp('in 1 second').debug() diff --git a/src/02-tagger/04-correction/matches/02-dates.js b/src/02-tagger/04-correction/matches/02-dates.js index eeb6f9eaf..c95dca563 100644 --- a/src/02-tagger/04-correction/matches/02-dates.js +++ b/src/02-tagger/04-correction/matches/02-dates.js @@ -66,6 +66,8 @@ let list = [ { match: `${dates} #ProperNoun`, tag: 'Person', reason: 'june-smith', safe: true }, // june m. Cooper { match: `${dates} #Acronym? (#ProperNoun && !#Month)`, tag: 'Person', reason: 'june-smith-jr' }, + // 'second' + { match: `#Cardinal [second]`, tag: 'Unit', reason: 'one-second' }, ] module.exports = list From 799e714cb05204276f4e5b0d9e8807b458facc08 Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Wed, 10 Jun 2020 13:55:48 -0400 Subject: [PATCH 10/17] fix for #755 --- scratch.js | 7 +++++-- src/transforms/toInfinitive/_transform.js | 2 +- src/transforms/toInfinitive/index.js | 1 + 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/scratch.js b/scratch.js index c072739c5..3509584ab 100644 --- a/scratch.js +++ b/scratch.js @@ -1,5 +1,5 @@ const nlp = require('./src/index') -nlp.verbose(true) +// nlp.verbose(true) // let txt = require('./scripts/test/speed/_sotu-text.js') // nlp.extend(require('./plugins/sentences/src')) @@ -8,4 +8,7 @@ nlp.verbose(true) // // let doc = nlp('i should have been driven') // doc.sentences().toFutureTense().debug() -let doc = nlp('in 1 second').debug() +// let doc = nlp('open').debug() + +let doc = nlp('purchasing') +console.log(doc.verbs().conjugate()) diff --git a/src/transforms/toInfinitive/_transform.js b/src/transforms/toInfinitive/_transform.js index a5eec058e..9cb6919a7 100644 --- a/src/transforms/toInfinitive/_transform.js +++ b/src/transforms/toInfinitive/_transform.js @@ -130,7 +130,7 @@ let rules = { }, { //cing : bouncing, denouncing - reg: /(c)ing$/i, //dp + reg: /(c|s)ing$/i, //dp to: '$1e', }, diff --git a/src/transforms/toInfinitive/index.js b/src/transforms/toInfinitive/index.js index 67a10a150..a279d7e54 100644 --- a/src/transforms/toInfinitive/index.js +++ b/src/transforms/toInfinitive/index.js @@ -42,6 +42,7 @@ const toInfinitive = function (str, world, tense) { for (let i = 0; i < rules[tense].length; i++) { const rule = rules[tense][i] if (rule.reg.test(str) === true) { + // console.log(rule.reg) return str.replace(rule.reg, rule.to) } } From 569ce079f8141209deb1d8f68f924d521cb2cbfe Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Wed, 10 Jun 2020 14:05:09 -0400 Subject: [PATCH 11/17] add support for billions for #748 --- data/numbers/cardinals.js | 5 +++++ scratch.js | 15 +++++++++++---- src/World/_data.js | 4 ++-- 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/data/numbers/cardinals.js b/data/numbers/cardinals.js index 5013e1d94..1a026c9e3 100644 --- a/data/numbers/cardinals.js +++ b/data/numbers/cardinals.js @@ -37,4 +37,9 @@ module.exports = [ 'quintillion', 'sextillion', 'septillion', + // plural-multiples + 'thousands', + 'millions', + 'billions', + 'trillions', ] diff --git a/scratch.js b/scratch.js index 3509584ab..cda8db4fc 100644 --- a/scratch.js +++ b/scratch.js @@ -1,7 +1,8 @@ const nlp = require('./src/index') -// nlp.verbose(true) +nlp.verbose(true) // let txt = require('./scripts/test/speed/_sotu-text.js') -// nlp.extend(require('./plugins/sentences/src')) +nlp.extend(require('./plugins/numbers/src')) +nlp.extend(require('./plugins/dates/src')) // // let doc = nlp('i am being driven') // let doc = nlp('i should be driven') @@ -10,5 +11,11 @@ const nlp = require('./src/index') // let doc = nlp('open').debug() -let doc = nlp('purchasing') -console.log(doc.verbs().conjugate()) +// console.log(nlp('i was born on august 11th 1998').dates().format('{date}-{month}-{year}').text()) +// console.log(nlp('i was born in august 11th 1998').dates().format('{date}-{month}-{year}').text()) +// console.log(nlp('i was born august 11th 1998').dates().format('{date}-{month}-{year}').text()) + +// let doc = nlp('i was born on august 11th 1998') +// doc.debug() +// doc.dates().debug() +nlp('i paid billions').debug() diff --git a/src/World/_data.js b/src/World/_data.js index b792f7978..c918985d3 100644 --- a/src/World/_data.js +++ b/src/World/_data.js @@ -42,9 +42,9 @@ module.exports={ "Modal": "true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to;ay,ight,ust;an,o0;uld", "Adjective": "true¦0:73;1:7I;2:7O;3:7H;4:7A;5:5B;6:4R;7:49;8:48;9:60;A:7F;a6Eb60c5Md52e4Pf45g3Xh3Mi31j2Zk2Yl2Nm2Cn23o1Np16quack,r0Ws0Ct05uMvJwByear5;arp0eFholeEiDoB;man5oBu67;d69zy;despr6Zs5B;!sa7;eClBste22;co1El o4H;!k5;aCiBola47;b7Nce versa,ol50;ca2gabo5Ynilla;ltSnFpCrb55su4tterB;!mo6U; f30b1KpCsBti1D;ca7et,ide dItairs;er,i3J;aLbeco6Lconvin23deIeHfair,ivers4knGprecedUrEsCwB;iel1Writt5U;i1RuB;pervis0specti3;eBu5;cognHgul6Bl6B;own;ndi3v5Oxpect0;cid0rB;!grou5JsB;iz0tood;b7ppeaHssu6AuthorB;iz0;i20ra;aFeDhough4KoCrB;i1oubl0;geth6p,rp6B;en5LlBm4Vrr2Q;li3;boo,lBn;ent0;aTcSeQhPiNmug,nobbi3AoLpKqueami3AtFuBymb5Y;bDi gener50pBrprisi3;erBre0H;! dup6b,i25;du0seq4P;anda6OeEi0LrBy34;aightBip0; fBfB;or56;adfa5Wreotyp0;a4Uec2Cir1Flend5Wot on; call0le,mb6phist1TrBu0Tvi3X;d5Ury;gnifica2nB;ce4Qg7;am2Le6ocki3ut;cBda1em5lfi2Uni1Spa63re8;o1Cr3R;at53ient24reec53;cr0me,ns serif;aIeEiCoB;bu5Ktt4PuOy4;ghtBv4;!-25f9;ar,bel,condi1du5Xfres4XlDpublic3RsBtard0;is43oB;lu1na2;e1Auc41;b5EciB;al,st;aMeKicayu8lac5Copuli5BrCuB;bl54mp0;eFiCoB;!b06fu5Cmi2Xp6;mCor,sBva1;ti8;a4Re;ci58mB;a0EiB;er,um;ac1WrBti1;feAma2Pplexi3v2Z;rBst;allelDtB;-tiBi4;me;!ed;bMffKkJld fashion0nIpHrg1Dth6utGvB;al,erB;!aDniCt,wB;eiBrouB;ght;ll;do0Rer,g2Hsi41;en,posi1; boa5Ag2Fli8;!ay; gua58bBli8;eat;eDsB;cBer0Dole1;e8u3F;d2Ose;ak0eIiHoBua4J;nFrCtB;ab7;thB;!eB;rn;chala2descri4Ustop;ght5;arby,cessa3Sighbor5xt;aJeHiEoBultip7;bi7derClBnth5ot,st;dy;a1n;nBx0;iaBor;tu2Y;di49naBre;ci3;cBgenta,in,jZkeshift,le,mmoth,ny,sculi8;ab2Uho;aKeFiCoBu0Z;uti0Yvi3;mCteraB;l,te;it0;ftEgBth4;al,eCitiB;ma1;nda38;!-08;ngu3Lst,tt6;ap1Oind5no06;agg0uB;niKstifi0veni7;de4gno46lleg4mOnDpso 1RrB;a1releB;va2; JaIbr0corHdFfluenPiPnEsDtB;aAen3GoxB;ic31;a8i2N;a1er,oce2;iCoB;or;reA;deq3Eppr2T;fBsitu,vitro;ro2;mFpB;arDerfeAoBrop6;li1rtB;a2ed;ti4;eBi0M;d2Ln30;aGelFiDoBumdr36;ne2Uok0rrBs03ur5;if2N;ghfalut1KspB;an2L;liVpf9;lEnDrB;d01roB;wi3;dy,gi3;f,low0;ainf9ener2Eiga1YlHoGraDuB;ilBng ho;ty;cCtB;ef9is;ef9;ne,od;ea28ob4;aQeKinJlIoDrB;a1PeBoz1G;e28q0Ytf9;oDrB; keeps,eBm6tuna1;g00ign;liB;sh;ag2Uue2;al,i1;dFmCrB;ti7;a7ini8;ne;le; up;bl0i2l20r Cux,voB;ri1uri1;oBreac1A;ff;aJfficie2lImiHnFreAthere4veExB;aAcess,pe1JtraCuB;be2Gl0D;!va19;n,ryday; Bcouragi3ti0M;rou1sui1;ne2;abo1YdMe14i1;g6sB;t,ygB;oi3;er;aReJiDoBrea11ue;mina2ne,ubB;le,tf9;dact16fficu1JsCvB;er1F;creDeas0gruntl0hone1AordCtB;a2ress0;er5;et; HadpGfFgene1KliDrang0spe1KtCvoB;ut;ail0ermin0;be1Hca1ghB;tf9;ia2;an;facto;i5magBngeroVs0E;ed,i3;ly;ertaNhief,ivil,oDrB;aBowd0u0D;mp0vYz0;loJmHnCoi3rrBve0K;eAu1D;cre1grEsDtB;emBra0B;po09;ta2;ue2;mer04pleB;te,x;ni4ss4;in;aLeHizarGlFoCrB;and new,isk,okL;gCna fiSttom,urgeoB;is;us;ank,iE;re;autif9hiClov0nBst,yoC;eRt;nd;ul;ckCnkru0SrrB;en;!wards; priori,b0Ic0Fd05fra04g00hZlUma01ntiquTppQrKsIttracti02utheHvEwB;aCkB;wa0P;ke,re;ant garCerB;age;de;ntQ;leep,tonisB;hi3;ab,bitEroDtiB;fiB;ci4;ga2;raB;ry;are2etiLrB;oprB;ia1;at0;arEcohCeBiIl,oof;rt;olB;ic;mi3;ead;ainDgressiConiB;zi3;ve;st;id; IeGuFvB;aCerB;se;nc0;ed;lt;pt,qB;ua1;hoc,infinitB;um;cuCtu4u1;al;ra1;erLlKoIruHsCuB;nda2;e2oCtraA;ct;lu1rbi3;ng;te;pt;aBve;rd;aze,e;ra2;nt", "Comparable": "true¦0:3Z;1:4G;2:43;3:2W;4:49;5:3V;a4Mb42c3Md3Be33f2Pg2Dh22i1Tj1Sk1Pl1Hm1Bn15o13p0Tqu0Rr0IsRtKuIvFw7y6za11;ell25ou4;aBe9hi1Wi7r6;o4y;ck0Mde,l6n1ry,se;d,y;a6i4Kt;k,ry;n1Rr6sI;m,y;a7e6ulgar;nge5rda2xi4;gue,in,st;g0n6pco3Kse5;like0ti1;aAen9hi8i7ough,r6;anqu2Oen1ue;dy,g3Sme0ny,r09;ck,n,rs2P;d40se;ll,me,rt,s6wd45;te5;aVcarUeThRiQkin0FlMmKoHpGqua1FtAu7w6;eet,ift;b7dd13per0Gr6;e,re2H;sta2Ft3;aAe9iff,r7u6;pXr1;a6ict,o4;ig3Fn0U;a1ep,rn;le,rk;e22i3Fright0;ci28ft,l7o6re,ur;n,thi4;emn,id;a6el0ooth;ll,rt;e8i6ow,y;ck,g35m6;!y;ek,nd3D;ck,l0mp3;a6iTort,rill,y;dy,ll0Xrp;cu0Rve0Rxy;ce,ed,y;d,fe,int0l1Vv14;aBe9i8o6ude;mantic,o1Isy,u6;gh,nd;ch,pe,tzy;a6d,mo0H;dy,l;gg7ndom,p6re,w;id;ed;ai2i6;ck,et;aEhoDi1QlCoBr8u6;ny,r6;e,p3;egna2ic7o6;fouYud;ey,k0;li04or,te1B;ain,easa2;ny;in5le;dd,f6i0ld,ranQ;fi10;aAe8i7o6;b3isy,rm15sy;ce,mb3;a6w;r,t;ive,rr01;aAe8ild,o7u6;nda19te;ist,o1;a6ek,llX;n,s0ty;d,tuQ;aBeAi9o6ucky;f0Un7o1Du6ve0w17y0T;d,sy;e0g;g1Tke0tt3ve0;an,wd;me,r6te;ge;e7i6;nd;en;ol0ui1P;cy,ll,n6;sBt6;e6ima8;llege2r6;es7media6;te;ti4;ecu6ta2;re;aEeBiAo8u6;ge,m6ng1R;b3id;ll6me0t;ow;gh,l0;a6f04sita2;dy,v6;en0y;nd1Hppy,r6te5;d,sh;aGenFhDiClBoofy,r6;a9e8is0o6ue1E;o6ss;vy;at,en,y;nd,y;ad,ib,ooI;a2d1;a6o6;st0;t3uiY;u1y;aIeeb3iDlat,oAr8u6;ll,n6r14;!ny;aHe6iend0;e,sh;a7r6ul;get5mG;my;erce8n6rm,t;an6e;ciC;! ;le;ir,ke,n0Fr,st,t,ulA;aAerie,mp9sse7v6xtre0Q;il;nti6;al;ty;r7s6;tern,y;ly,th0;aFeCi9r7u6;ll,mb;u6y;nk;r7vi6;ne;e,ty;a6ep,nD;d6f,r;!ly;mp,pp03rk;aHhDlAo8r7u6;dd0r0te;isp,uel;ar6ld,mmon,ol,st0ward0zy;se;e6ou1;a6vW;n,r;ar8e6il0;ap,e6;sy;mi4;gey,lm8r6;e5i4;ful;!i4;aNiLlIoEr8u6;r0sy;ly;aAi7o6;ad,wn;ef,g7llia2;nt;ht;sh,ve;ld,r7un6;cy;ed,i4;ng;a7o6ue;nd,o1;ck,nd;g,tt6;er;d,ld,w1;dy;bsu9ng8we6;so6;me;ry;rd", - "TextValue": "true¦bMeIfChundredNmMnin9one,qu8s6t0zeroN;enMh3rLw0;e0o;l0ntC;fGve;ir0ousandIree;d,t5;e0ix7;cond,ptEven6xtE;adrDintD;e0th;!t0;e9ie8y;i3o0;rt1ur0;!t2;ie4y;ft0rst,ve;e3h,ie2y;ight0lev2;!e1h,ie0y;th;en1;illion0;!th", + "TextValue": "true¦bOeJfDhundredNmOninAone,qu8s6t0zeroN;enMh3rNw0;e0o;l0ntD;fHve;ir0ousandKree;d,t6;e0ix8;cond,pt1ven7xt1;adr0int0;illionD;e0th;!t0;e9ie8y;i3o0;rt1ur0;!t2;ie4y;ft0rst,ve;e3h,ie2y;ight0lev2;!e1h,ie0y;th;en0;!th;illion0;!s,th", "Ordinal": "true¦bGeDf9hundredHmGnin7qu6s4t0zeroH;enGh1rFwe0;lfFn9;ir0ousandE;d,t4;e0ixt9;cond,ptAvent8xtA;adr9int9;et0th;e6ie8;i2o0;r0urt3;tie5;ft1rst;ight0lev1;e0h,ie2;en1;illion0;th", - "Cardinal": "true¦bGeDf7hundred,mGnine9one,qu6s4t0zero;en,h2rFw0;e0o;lve,n7;irt8ousand,ree;e0ix4;ptAven3xtA;adr9int9;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illion", + "Cardinal": "true¦bHeEf8hundred,mHnineAone,qu6s4t0zero;en,h2rGw0;e0o;lve,n8;irt9ousandEree;e0ix5;pt1ven4xt1;adr0int0;illion;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illion0;!s", "Expression": "true¦a02b01dXeVfuck,gShLlImHnGoDpBshAtsk,u7voi04w3y0;a1eLu0;ck,p;!a,hoo,y;h1ow,t0;af,f;e0oa;e,w;gh,h0;! 0h,m;huh,oh;eesh,hh,it;ff,hew,l0sst;ease,z;h1o0w,y;h,o,ps;!h;ah,ope;eh,mm;m1ol0;!s;ao,fao;a4e2i,mm,oly1urr0;ah;! mo6;e,ll0y;!o;ha0i;!ha;ah,ee,o0rr;l0odbye;ly;e0h,t cetera,ww;k,p;'oh,a0uh;m0ng;mit,n0;!it;ah,oo,ye; 1h0rgh;!em;la", "Adverb": "true¦a07by 05d01eYfShQinPjustOkinda,mMnJoEpCquite,r9s5t2up1very,w0Bye0;p,s; to,wards5;h1o0wiO;o,t6ward;en,us;everal,o0uch;!me1rt0; of;hXtimes,w07;a1e0;alS;ndomRthN;ar excellDer0oint blank; Mhaps;f3n0;ce0ly;! 0;ag00moU; courHten;ewJo0; longEt 0;onHwithstanding;aybe,eanwhiAore0;!ovB;! aboS;deed,steT;en0;ce;or2u0;l9rther0;!moH; 0ev3;examp0good,suF;le;n mas1v0;er;se;e0irect1; 1finite0;ly;ju7trop;far,n0;ow; CbroBd nauseam,gAl5ny2part,side,t 0w3;be5l0mo5wor5;arge,ea4;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori", "Preposition": "true¦'o,-,aKbHcGdFexcept,fEinDmidPnotwithstandiQoBpRqua,sAt6u3vi2w0;/o,hereMith0;!in,oQ;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oI;ans,ince,o that;',f0n1ut;!f;!to;or,rom;espite,own,u3;hez,irca;ar1e0oAy;low,sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut", From 004a12b60df0914a503225ee2519595758db034b Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Wed, 10 Jun 2020 14:09:39 -0400 Subject: [PATCH 12/17] support periods in emails for #743 --- scratch.js | 4 ++-- src/02-tagger/01-init/data/startsWith.js | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/scratch.js b/scratch.js index cda8db4fc..ee7e49d93 100644 --- a/scratch.js +++ b/scratch.js @@ -1,5 +1,5 @@ const nlp = require('./src/index') -nlp.verbose(true) +// nlp.verbose(true) // let txt = require('./scripts/test/speed/_sotu-text.js') nlp.extend(require('./plugins/numbers/src')) nlp.extend(require('./plugins/dates/src')) @@ -18,4 +18,4 @@ nlp.extend(require('./plugins/dates/src')) // let doc = nlp('i was born on august 11th 1998') // doc.debug() // doc.dates().debug() -nlp('i paid billions').debug() +nlp('message to mr.bob@host.co.uk today').debug() diff --git a/src/02-tagger/01-init/data/startsWith.js b/src/02-tagger/01-init/data/startsWith.js index 8677084c8..34667b6aa 100644 --- a/src/02-tagger/01-init/data/startsWith.js +++ b/src/02-tagger/01-init/data/startsWith.js @@ -2,7 +2,7 @@ // order matters. module.exports = [ //web tags - [/^\w+@\w+\.[a-z]{2,3}$/, 'Email'], //not fancy + [/^[\w\.]+@[\w\.]+\.[a-z]{2,3}$/, 'Email'], //not fancy [/^#[a-z0-9_\u00C0-\u00FF]{2,}$/, 'HashTag'], [/^@\w{2,}$/, 'AtMention'], [/^(https?:\/\/|www\.)\w+\.[a-z]{2,3}/, 'Url'], //with http/www From 83b14b2cffc71ba155e20aed35b9e56cca6be563 Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Wed, 10 Jun 2020 14:13:34 -0400 Subject: [PATCH 13/17] fix for #751 --- plugins/adjectives/src/toVerb.js | 6 +++--- scratch.js | 2 +- src/02-tagger/03-contractions/04-possessive.js | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/plugins/adjectives/src/toVerb.js b/plugins/adjectives/src/toVerb.js index eb78688cb..77e61602c 100644 --- a/plugins/adjectives/src/toVerb.js +++ b/plugins/adjectives/src/toVerb.js @@ -9,7 +9,7 @@ let dontDo = ['c', 'e', 'g', 'l', 'n', 'r', 'w', 'y'].reduce((h, c) => { const dontDoTwo = { ed: true, nt: true } -const blacklist = { +const banList = { random: true, wild: true, } @@ -24,7 +24,7 @@ const irregulars = { tired: 'tire', } -const toVerb = str => { +const toVerb = (str) => { if (irregulars.hasOwnProperty(str) === true) { return irregulars[str] } @@ -32,7 +32,7 @@ const toVerb = str => { if (str.length <= 3) { return null } - if (blacklist.hasOwnProperty(str) === true) { + if (banList.hasOwnProperty(str) === true) { return null } //suffixes to avoid diff --git a/scratch.js b/scratch.js index ee7e49d93..19c35275e 100644 --- a/scratch.js +++ b/scratch.js @@ -18,4 +18,4 @@ nlp.extend(require('./plugins/dates/src')) // let doc = nlp('i was born on august 11th 1998') // doc.debug() // doc.dates().debug() -nlp('message to mr.bob@host.co.uk today').debug() +nlp(`that's mine`).debug() diff --git a/src/02-tagger/03-contractions/04-possessive.js b/src/02-tagger/03-contractions/04-possessive.js index ada2ddfb3..1249882c1 100644 --- a/src/02-tagger/03-contractions/04-possessive.js +++ b/src/02-tagger/03-contractions/04-possessive.js @@ -1,6 +1,6 @@ const hasApostropheS = /([a-z\u00C0-\u00FF]+)[\u0027\u0060\u00B4\u2018\u2019\u201A\u201B\u2032\u2035\u2039\u203A]s$/i -const blacklist = { +const banList = { that: true, there: true, } @@ -13,7 +13,7 @@ const isPossessive = (term, pool) => { if (term.tags.Pronoun || term.tags.QuestionWord) { return false } - if (blacklist.hasOwnProperty(term.clean)) { + if (banList.hasOwnProperty(term.reduced)) { return false } //if end of sentence, it is possessive - "was spencer's" @@ -60,7 +60,7 @@ const isHas = (term, phrase) => { }) } -const checkPossessive = function(term, phrase, world) { +const checkPossessive = function (term, phrase, world) { //the rest of 's let found = term.text.match(hasApostropheS) if (found !== null) { From d17fffaed2ff8ccd3c0bdc2bc2d6dce788d1b9a2 Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Wed, 10 Jun 2020 14:28:15 -0400 Subject: [PATCH 14/17] support array-as-input for #725 --- scratch.js | 5 ++++- src/01-tokenizer/02-words.js | 15 +++++++++++---- src/01-tokenizer/index.js | 11 +++++++++-- src/index.js | 14 +++++++------- 4 files changed, 31 insertions(+), 14 deletions(-) diff --git a/scratch.js b/scratch.js index 19c35275e..fb32feed1 100644 --- a/scratch.js +++ b/scratch.js @@ -18,4 +18,7 @@ nlp.extend(require('./plugins/dates/src')) // let doc = nlp('i was born on august 11th 1998') // doc.debug() // doc.dates().debug() -nlp(`that's mine`).debug() +nlp(`what companies are doing is`).debug() + +const arr = [['some', 'array', 'of text and such']] +nlp(arr).debug() diff --git a/src/01-tokenizer/02-words.js b/src/01-tokenizer/02-words.js index 432b81bab..e32cbb53c 100644 --- a/src/01-tokenizer/02-words.js +++ b/src/01-tokenizer/02-words.js @@ -13,7 +13,7 @@ const notWord = { // '/': true, // 'one / two' } -const hasHyphen = function(str) { +const hasHyphen = function (str) { //dont split 're-do' if (/^(re|un)-?[^aeiou]./.test(str) === true) { return false @@ -32,7 +32,7 @@ const hasHyphen = function(str) { } // 'he / she' should be one word -const combineSlashes = function(arr) { +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] @@ -43,7 +43,7 @@ const combineSlashes = function(arr) { return arr } -const splitHyphens = function(word) { +const splitHyphens = function (word) { let arr = [] //support multiple-hyphenated-terms const hyphens = word.split(/[-–—]/) @@ -62,8 +62,12 @@ const splitHyphens = function(word) { return arr } +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) { +const splitWords = function (str) { let result = [] let arr = [] //start with a naiive split @@ -71,6 +75,9 @@ const splitWords = function(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++) { diff --git a/src/01-tokenizer/index.js b/src/01-tokenizer/index.js index f1b40bc24..5e8dddffc 100644 --- a/src/01-tokenizer/index.js +++ b/src/01-tokenizer/index.js @@ -5,16 +5,23 @@ const linkTerms = require('./_linkTerms') const splitSentences = require('./01-sentences') const splitTerms = require('./02-words') +const isArray = function (arr) { + return Object.prototype.toString.call(arr) === '[object Array]' +} + /** turn a string into an array of Phrase objects */ -const fromText = function(text = '', world, pool) { +const fromText = function (text = '', world, pool) { + let sentences = null //a bit of validation, first if (typeof text !== 'string') { if (typeof text === 'number') { text = String(text) + } else if (isArray(text)) { + sentences = text } } //tokenize into words - let sentences = splitSentences(text, world) + sentences = sentences || splitSentences(text, world) sentences = sentences.map(str => splitTerms(str)) //turn them into proper objects diff --git a/src/index.js b/src/index.js index 8d84a53dc..69a8ece8e 100644 --- a/src/index.js +++ b/src/index.js @@ -13,7 +13,7 @@ function instance(worldInstance) { let world = worldInstance /** parse and tag text into a compromise object */ - const nlp = function(text = '', lexicon) { + const nlp = function (text = '', lexicon) { if (lexicon) { world.addWords(lexicon) } @@ -24,7 +24,7 @@ function instance(worldInstance) { } /** parse text into a compromise object, without running POS-tagging */ - nlp.tokenize = function(text = '', lexicon) { + nlp.tokenize = function (text = '', lexicon) { let w = world if (lexicon) { w = w.clone() @@ -40,29 +40,29 @@ function instance(worldInstance) { } /** mix in a compromise-plugin */ - nlp.extend = function(fn) { + nlp.extend = function (fn) { fn(Doc, world, this, Phrase, Term, Pool) return this } /** create a compromise Doc object from .json() results */ - nlp.fromJSON = function(json) { + nlp.fromJSON = function (json) { let list = fromJSON(json, world) return new Doc(list, null, world) } /** make a deep-copy of the library state */ - nlp.clone = function() { + nlp.clone = function () { return instance(world.clone()) } /** log our decision-making for debugging */ - nlp.verbose = function(bool = true) { + nlp.verbose = function (bool = true) { world.verbose(bool) return this } /** grab currently-used World object */ - nlp.world = function() { + nlp.world = function () { return world } From b3eeac7626aac78eb1a10e5fa3e1c2ea38e7f034 Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Wed, 10 Jun 2020 14:43:23 -0400 Subject: [PATCH 15/17] punt #737 do another release --- scratch.js | 20 +++++++------------ ...{auxiliary.test.js => auxiliary.ignore.js} | 0 2 files changed, 7 insertions(+), 13 deletions(-) rename tests/verbs/{auxiliary.test.js => auxiliary.ignore.js} (100%) diff --git a/scratch.js b/scratch.js index fb32feed1..47c906b20 100644 --- a/scratch.js +++ b/scratch.js @@ -1,24 +1,18 @@ const nlp = require('./src/index') // nlp.verbose(true) // let txt = require('./scripts/test/speed/_sotu-text.js') -nlp.extend(require('./plugins/numbers/src')) -nlp.extend(require('./plugins/dates/src')) +// nlp.extend(require('./plugins/numbers/src')) +// nlp.extend(require('./plugins/dates/src')) +nlp.extend(require('./plugins/sentences/src')) // // let doc = nlp('i am being driven') // let doc = nlp('i should be driven') -// // let doc = nlp('i should have been driven') +// let doc = nlp('i should drive') +let doc = nlp('i should drive') +// let doc = nlp('i should have been driven') // doc.sentences().toFutureTense().debug() - -// let doc = nlp('open').debug() +doc.sentences().toPastTense().debug() // console.log(nlp('i was born on august 11th 1998').dates().format('{date}-{month}-{year}').text()) // console.log(nlp('i was born in august 11th 1998').dates().format('{date}-{month}-{year}').text()) // console.log(nlp('i was born august 11th 1998').dates().format('{date}-{month}-{year}').text()) - -// let doc = nlp('i was born on august 11th 1998') -// doc.debug() -// doc.dates().debug() -nlp(`what companies are doing is`).debug() - -const arr = [['some', 'array', 'of text and such']] -nlp(arr).debug() diff --git a/tests/verbs/auxiliary.test.js b/tests/verbs/auxiliary.ignore.js similarity index 100% rename from tests/verbs/auxiliary.test.js rename to tests/verbs/auxiliary.ignore.js From 33ed7c3c3fd1175f16d8fce56f5d8f61a78df634 Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Wed, 10 Jun 2020 14:49:42 -0400 Subject: [PATCH 16/17] fix for #752 --- plugins/dates/package.json | 2 +- .../dates/src/02-getDate/01-parse-range.js | 9 +++----- plugins/dates/src/methods.js | 21 +++++++++++-------- scratch.js | 15 +++++++------ 4 files changed, 23 insertions(+), 24 deletions(-) diff --git a/plugins/dates/package.json b/plugins/dates/package.json index b737a9b15..95fcfeb65 100644 --- a/plugins/dates/package.json +++ b/plugins/dates/package.json @@ -1,7 +1,7 @@ { "name": "compromise-dates", "description": "plugin for nlp-compromise", - "version": "0.0.5", + "version": "0.0.6", "author": "Spencer Kelly (http://spencermounta.in)", "main": "./builds/compromise-dates.js", "unpkg": "./builds/compromise-dates.min.js", diff --git a/plugins/dates/src/02-getDate/01-parse-range.js b/plugins/dates/src/02-getDate/01-parse-range.js index a56469f48..b099d3f63 100644 --- a/plugins/dates/src/02-getDate/01-parse-range.js +++ b/plugins/dates/src/02-getDate/01-parse-range.js @@ -1,14 +1,11 @@ const parseDate = require('../03-parseDate') // -const logic = function(doc, context) { +const logic = function (doc, context) { // two explicit dates - 'between friday and sunday' let m = doc.match('between * and *') if (m.found) { - let start = m - .match('between [.*] and', 0) - .not('^between') - .not('and$') + let start = m.match('between [.*] and', 0).not('^between').not('and$') start = parseDate(start, context) let end = m.match('and *').not('^and') end = parseDate(end, context) @@ -56,7 +53,7 @@ const logic = function(doc, context) { if (m.found) { } // 'in june' - m = doc.match('^(on|during|in) [*]') + m = doc.match('^(on|during|in) [*]', 0) if (m.found) { let d = parseDate(m, context) if (d) { diff --git a/plugins/dates/src/methods.js b/plugins/dates/src/methods.js index 1fca1d059..a25f353e8 100644 --- a/plugins/dates/src/methods.js +++ b/plugins/dates/src/methods.js @@ -3,7 +3,7 @@ const abbrevs = require('./data/_abbrevs') module.exports = { /** overload the original json with noun information */ - json: function(options) { + json: function (options) { let n = null if (typeof options === 'number') { n = options @@ -12,7 +12,7 @@ module.exports = { options = options || { terms: false } let res = [] let format = options.format || 'iso' - this.forEach(doc => { + this.forEach((doc) => { let json = doc.json(options)[0] let obj = parse(doc, this.context) let start = obj.start ? obj.start.format(format) : null @@ -38,14 +38,17 @@ module.exports = { }, /** render all dates according to a specific format */ - format: function(fmt) { - this.forEach(doc => { + format: function (fmt) { + this.forEach((doc) => { let obj = parse(doc, this.context) let str = '' if (obj.start) { str = obj.start.format(fmt) if (obj.end) { - str += ' to ' + obj.start.format(fmt) + let end = obj.start.format(fmt) + if (str !== end) { + str += ' to ' + end + } } doc.replaceWith(str, { keepTags: true, keepCase: false }) } @@ -53,15 +56,15 @@ module.exports = { return this }, /** replace 'Fri' with 'Friday', etc*/ - toLongForm: function() { - abbrevs.forEach(a => { + toLongForm: function () { + abbrevs.forEach((a) => { this.replace(a.short, a.long, true) }) return this }, /** replace 'Friday' with 'Fri', etc*/ - toShortForm: function() { - abbrevs.forEach(a => { + toShortForm: function () { + abbrevs.forEach((a) => { this.replace(a.long, a.short, true) }) return this diff --git a/scratch.js b/scratch.js index 47c906b20..384656591 100644 --- a/scratch.js +++ b/scratch.js @@ -1,18 +1,17 @@ const nlp = require('./src/index') // nlp.verbose(true) // let txt = require('./scripts/test/speed/_sotu-text.js') -// nlp.extend(require('./plugins/numbers/src')) -// nlp.extend(require('./plugins/dates/src')) -nlp.extend(require('./plugins/sentences/src')) +nlp.extend(require('./plugins/numbers/src')) +nlp.extend(require('./plugins/dates/src')) // // let doc = nlp('i am being driven') // let doc = nlp('i should be driven') // let doc = nlp('i should drive') -let doc = nlp('i should drive') +// let doc = nlp('i should drive') // let doc = nlp('i should have been driven') // doc.sentences().toFutureTense().debug() -doc.sentences().toPastTense().debug() +// doc.sentences().toPastTense().debug() -// console.log(nlp('i was born on august 11th 1998').dates().format('{date}-{month}-{year}').text()) -// console.log(nlp('i was born in august 11th 1998').dates().format('{date}-{month}-{year}').text()) -// console.log(nlp('i was born august 11th 1998').dates().format('{date}-{month}-{year}').text()) +console.log(nlp('i was born on august 11th 1998').dates().format('{date}-{month}-{year}').text()) +console.log(nlp('i was born in august 11th 1998').dates().format('{date}-{month}-{year}').text()) +console.log(nlp('i was born august 11th 1998').dates().format('{date}-{month}-{year}').text()) From 7b8848d757a05fc1efaa169666c5f8cc88360ee8 Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Wed, 10 Jun 2020 14:57:00 -0400 Subject: [PATCH 17/17] update date and sentences plugins --- builds/compromise-tokenize.js | 2 +- builds/compromise.js | 172 +- builds/compromise.min.js | 2 +- builds/compromise.mjs | 172 +- changelog.md | 7 + package-lock.json | 1506 +++++++++++------ package.json | 20 +- plugins/dates/builds/compromise-dates.js | 106 +- plugins/dates/builds/compromise-dates.js.map | 2 +- plugins/dates/builds/compromise-dates.min.js | 2 +- plugins/dates/builds/compromise-dates.mjs | 106 +- .../sentences/builds/compromise-sentences.js | 125 +- .../builds/compromise-sentences.js.map | 2 +- .../builds/compromise-sentences.min.js | 2 +- .../sentences/builds/compromise-sentences.mjs | 125 +- plugins/sentences/package.json | 2 +- src/_version.js | 2 +- 17 files changed, 1549 insertions(+), 806 deletions(-) diff --git a/builds/compromise-tokenize.js b/builds/compromise-tokenize.js index 8d31d7739..9fd948649 100644 --- a/builds/compromise-tokenize.js +++ b/builds/compromise-tokenize.js @@ -1 +1 @@ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t=t||self).nlp=e()}(this,(function(){"use strict";function t(e){return(t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(e)}function e(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function r(t,e){for(var r=0;rt.length)&&(e=t.length);for(var r=0,n=new Array(e);rn[e].lineage.length?1:n[t].isA.length>n[e].isA.length?-1:0:0:1}))},H={text:!0,tags:!0,implicit:!0,whitespace:!0,clean:!1,id:!1,index:!1,offset:!1,bestTag:!1},R={json:function(t,e){t=t||{};var r={};return(t=Object.assign({},H,t)).text&&(r.text=this.text),t.normal&&(r.normal=this.normal),t.tags&&(r.tags=Object.keys(this.tags)),t.clean&&(r.clean=this.clean),(t.id||t.offset)&&(r.id=this.id),t.implicit&&null!==this.implicit&&(r.implicit=this.implicit),t.whitespace&&(r.pre=this.pre,r.post=this.post),t.bestTag&&(r.bestTag=_(this,e)[0]),r}},G=Object.assign({},V,S,L,W,R);function Q(){return"undefined"!=typeof window&&window.document}var Z=function(t,e){for(t=t.toString();t.length0&&void 0!==arguments[0]?arguments[0]:"";e(this,t),r=String(r);var n=N(r);this.text=n.text||"",this.clean=n.clean,this.reduced=n.reduced,this.root=null,this.implicit=null,this.pre=n.pre||"",this.post=n.post||"",this.tags={},this.prev=null,this.next=null,this.id=p(n.clean),this.isA="Term",n.alias&&(this.alias=n.alias)}return n(t,[{key:"set",value:function(t){var e=N(t);return this.text=e.text,this.clean=e.clean,this}}]),t}();st.prototype.clone=function(){var t=new st(this.text);return t.pre=this.pre,t.post=this.post,t.tags=Object.assign({},this.tags),t},Object.assign(st.prototype,G),Object.assign(st.prototype,ot);var at=st,ut={terms:function(t){if(0===this.length)return[];if(this.cache.terms)return void 0!==t?this.cache.terms[t]:this.cache.terms;for(var e=[this.pool.get(this.start)],r=0;r0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1?arguments[1]:void 0,r=arguments.length>2?arguments[2]:void 0;"string"==typeof t&&(t="normal"===t?{whitespace:!0,unicode:!0,lowercase:!0,punctuation:!0,acronyms:!0,abbreviations:!0,implicit:!0,normal:!0}:"clean"===t?{titlecase:!1,lowercase:!0,punctuation:!0,whitespace:!0,unicode:!0,implicit:!0}:"reduced"===t?{titlecase:!1,lowercase:!0,punctuation:!1,whitespace:!0,unicode:!0,implicit:!0,reduced:!0}:"root"===t?{titlecase:!1,lowercase:!0,punctuation:!0,whitespace:!0,unicode:!0,implicit:!0,root:!0}:{});var n=this.terms(),i=!1;n[0]&&null===n[0].prev&&null===n[n.length-1].next&&(i=!0);var o=n.reduce((function(o,s,a){t.last=r&&a===n.length-1;var u=!0,c=!0;return!1===i&&(0===a&&e&&(u=!1),a===n.length-1&&r&&(c=!1)),o+s.textOut(t,u,c)}),"");return!0===i&&r&&(o=ct(o)),!0===t.trim&&(o=o.trim()),o}},lt={trim:function(){var t=this.terms();if(t.length>0){t[0].pre=t[0].pre.replace(/^\s+/,"");var e=t[t.length-1];e.post=e.post.replace(/\s+$/,"")}return this}},ft=/[.?!]\s*$/,pt=function(t,e){e[0].pre=t[0].pre;var r,n,i=t[t.length-1],o=e[e.length-1];o.post=(r=i.post,n=o.post,ft.test(n)?n+r.match(/\s*$/):r),i.post="",""===i.post&&(i.post+=" ")},dt=function(t,e,r){var n=t.terms(),i=e.terms();pt(n,i),function(t,e,r){var n=t[t.length-1],i=e[e.length-1],o=n.next;(n.next=e[0].id,i.next=o,o)&&(r.get(o).prev=i.id);var s=t[0].id;s&&(e[0].prev=s)}(n,i,t.pool);var o,s=[t],a=t.start,u=[r];return(u=u.concat(r.parents())).forEach((function(t){var e=t.list.filter((function(t){return t.hasId(a)}));s=s.concat(e)})),(s=(o=s).filter((function(t,e){return o.indexOf(t)===e}))).forEach((function(t){t.length+=e.length})),t.cache={},t},vt=/ /,mt=function(t,e,r){var n=t.start,i=e.terms();!function(t){var e=t[t.length-1];!1===vt.test(e.post)&&(e.post+=" ")}(i),function(t,e,r){var n=r[r.length-1];n.next=t.start;var i=t.pool,o=i.get(t.start);o.prev&&(i.get(o.prev).next=e.start);r[0].prev=t.terms(0).prev,t.terms(0).prev=n.id}(t,e,i);var o,s=[t],a=[r];return(a=a.concat(r.parents())).forEach((function(t){var r=t.list.filter((function(t){return t.hasId(n)||t.hasId(e.start)}));s=s.concat(r)})),(s=(o=s).filter((function(t,e){return o.indexOf(t)===e}))).forEach((function(t){t.length+=e.length,t.start===n&&(t.start=e.start),t.cache={}})),t},gt=function(t,e){var r=e.pool(),n=t.terms(),i=r.get(n[0].prev)||{},o=r.get(n[n.length-1].next)||{};n[0].implicit&&i.implicit&&(i.set(i.implicit),i.post+=" "),function(t,e,r,n){var i=t.parents();i.push(t),i.forEach((function(t){var i=t.list.find((function(t){return t.hasId(e)}));i&&(i.length-=r,i.start===e&&(i.start=n.id),i.cache={})})),t.list=t.list.filter((function(t){return!(!t.start||!t.length)}))}(e,t.start,t.length,o),i&&(i.next=o.id),o&&(o.prev=i.id)},bt={append:function(t,e){return dt(this,t,e),this},prepend:function(t,e){return mt(this,t,e),this},delete:function(t){return gt(this,t),this},replace:function(t,e){var r=this.length;dt(this,t,e);var n=this.buildFrom(this.start,this.length);n.length=r,gt(n,e)},splitOn:function(t){var e=this.terms(),r={before:null,match:null,after:null},n=e.findIndex((function(e){return e.id===t.start}));if(-1===n)return r;var i=e.slice(0,n);i.length>0&&(r.before=this.buildFrom(i[0].id,i.length));var o=e.slice(n,n+t.length);o.length>0&&(r.match=this.buildFrom(o[0].id,o.length));var s=e.slice(n+t.length,e.length);return s.length>0&&(r.after=this.buildFrom(s[0].id,s.length,this.pool)),r}},yt={json:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1?arguments[1]:void 0,r={};return t.text&&(r.text=this.text()),t.normal&&(r.normal=this.text("normal")),t.clean&&(r.clean=this.text("clean")),t.reduced&&(r.reduced=this.text("reduced")),t.root&&(r.root=this.text("root")),t.trim&&(r.text&&(r.text=r.text.trim()),r.normal&&(r.normal=r.normal.trim()),r.reduced&&(r.reduced=r.reduced.trim())),t.terms&&(!0===t.terms&&(t.terms={}),r.terms=this.terms().map((function(r){return r.json(t.terms,e)}))),r}},At={lookAhead:function(t){t||(t=".*");var e=this.pool,r=[],n=this.terms();return function t(n){var i=e.get(n);i&&(r.push(i),i.prev&&t(i.next))}(n[n.length-1].next),0===r.length?[]:this.buildFrom(r[0].id,r.length).match(t)},lookBehind:function(t){t||(t=".*");var e=this.pool,r=[];return function t(n){var i=e.get(n);i&&(r.push(i),i.prev&&t(i.prev))}(e.get(this.start).prev),0===r.length?[]:this.buildFrom(r[r.length-1].id,r.length).match(t)}},wt=Object.assign({},ut,ht,lt,bt,yt,At),Pt=function(t,e){if(0===e.length)return!0;for(var r=0;r0)return!0;if(!0===n.anything&&!0===n.negative)return!0}return!1},xt=function(t,e,r,n,i,o){for(var s=e;e1&&u.greedy?d.length+=s-f:d.length++}}else if(!0!==u.optional){if(!(t[s].isImplicit()&&e[a-1]&&t[s+1]&&t[s+1].doesMatch(u,r+s,n)))return[!1,null];s+=2}}else{var v=jt(t,s,e[a+1],u,r);if(void 0!==u.min&&v-su.max){s+=u.max;continue}if(null===v)return[!1,null];c&&(Et(i,h,t,s,u.named).length=v-s),s=v}}return[t.slice(0,s),i]},Ct=function(t,e,r){if(!r||0===r.length)return r;if(e.some((function(t){return t.end}))){var n=t[t.length-1];r=r.filter((function(t){return-1!==t.match.indexOf(n)}))}return r},kt=/\{([0-9]+,?[0-9]*)\}/,Ft=/&&/,Tt=new RegExp(/^<(\S+)>/),Nt=function(t){return t[t.length-1]},$t=function(t){return t[0]},Vt=function(t){return t.substr(1)},St=function(t){return t.substr(0,t.length-1)},Bt=function(t){return t=Vt(t),t=St(t)},It=function t(e){for(var r,n={},i=0;i<2;i+=1){if("$"===Nt(e)&&(n.end=!0,e=St(e)),"^"===$t(e)&&(n.start=!0,e=Vt(e)),("["===$t(e)||"]"===Nt(e))&&(n.named=!0,"["===$t(e)?n.groupType="]"===Nt(e)?"single":"start":n.groupType="end",e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===$t(e))){var o=Tt.exec(e);o.length>=2&&(n.named=o[1],e=e.replace(o[0],""))}if("+"===Nt(e)&&(n.greedy=!0,e=St(e)),"*"!==e&&"*"===Nt(e)&&"\\*"!==e&&(n.greedy=!0,e=St(e)),"?"===Nt(e)&&(n.optional=!0,e=St(e)),"!"===$t(e)&&(n.negative=!0,e=Vt(e)),"("===$t(e)&&")"===Nt(e)){Ft.test(e)?(n.choices=e.split(Ft),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=Vt(n.choices[0]);var s=n.choices.length-1;n.choices[s]=St(n.choices[s]),n.choices=n.choices.map((function(t){return t.trim()})),n.choices=n.choices.filter((function(t){return t})),n.choices=n.choices.map(t),e=""}if("/"===$t(e)&&"/"===Nt(e))return e=Bt(e),n.regex=new RegExp(e),n;if("~"===$t(e)&&"~"===Nt(e))return e=Bt(e),n.soft=!0,n.word=e,n}return!0===kt.test(e)&&(e=e.replace(kt,(function(t,e){var r=e.split(/,/g);return 1===r.length?(n.min=Number(r[0]),n.max=Number(r[0])):(n.min=Number(r[0]),n.max=Number(r[1]||999)),n.greedy=!0,""}))),"#"===$t(e)?(n.tag=Vt(e),n.tag=(r=n.tag).charAt(0).toUpperCase()+r.substr(1),n):"@"===$t(e)?(n.method=Vt(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),n.word=e.toLowerCase()),n)},Dt=function(t){return t.filter((function(t){return t.groupType})).length>0&&(t=function(t){for(var e,r,n=!1,i=-1,o=0;o)?\(.*?\)[?+*]*\]?\$?)/);return e=e.map((function(t){return t.trim()}))}(e);return r=(r=function(t){var e=[];return t.forEach((function(t){if(/^[[^_/]?\(/.test(t[0]))e.push(t);else{var r=t.split(" ");r=r.filter((function(t){return t})),e=e.concat(r)}})),e}(r)).map(It),r=Dt(r)},Lt=function(t,e){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if("string"==typeof e&&(e=qt(e)),!0===Pt(t,e))return[];var n=e.filter((function(t){return!0!==t.optional})).length,i=t.terms(),o=[];if(!0===e[0].start){var s=Ot(i,e,0,i.length),a=h(s,2),u=a[0],c=a[1];return!1!==u&&u.length>0&&(u=u.filter((function(t){return t})),o.push({match:u,groups:c})),Ct(i,e,o)}for(var l=0;li.length);l+=1){var f=Ot(i.slice(l),e,l,i.length),p=h(f,2),d=p[0],v=p[1];if(!1!==d&&d.length>0&&(l+=d.length-1,d=d.filter((function(t){return t})),o.push({match:d,groups:v}),!0===r))return Ct(i,e,o)}return Ct(i,e,o)},Mt=function(t,e){var r={};Lt(t,e).forEach((function(t){t.match.forEach((function(t){r[t.id]=!0}))}));var n=t.terms(),i=[],o=[];return n.forEach((function(t){!0!==r[t.id]?o.push(t):o.length>0&&(i.push(o),o=[])})),o.length>0&&i.push(o),i},zt={match:function(t){var e=this,r=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=Lt(this,t,r);return n=n.map((function(t){var r=t.match,n=t.groups,i=e.buildFrom(r[0].id,r.length,n);return i.cache.terms=r,i}))},has:function(t){return Lt(this,t,!0).length>0},not:function(t){var e=this,r=Mt(this,t);return r=r.map((function(t){return e.buildFrom(t[0].id,t.length)}))},canBe:function(t,e){for(var r=this,n=[],i=this.terms(),o=!1,s=0;s0})).map((function(t){return r.buildFrom(t[0].id,t.length)}))}},Wt=function t(r,n,i){e(this,t),this.start=r,this.length=n,this.isA="Phrase",Object.defineProperty(this,"pool",{enumerable:!1,writable:!0,value:i}),Object.defineProperty(this,"cache",{enumerable:!1,writable:!0,value:{}}),Object.defineProperty(this,"groups",{enumerable:!1,writable:!0,value:{}})};Wt.prototype.buildFrom=function(t,e,r){var n=new Wt(t,e,this.pool);return r&&Object.keys(r).length>0?n.groups=r:n.groups=this.groups,n},Object.assign(Wt.prototype,zt),Object.assign(Wt.prototype,wt);var Ut={term:"terms"};Object.keys(Ut).forEach((function(t){return Wt.prototype[t]=Wt.prototype[Ut[t]]}));var _t=Wt,Ht=function(){function t(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};e(this,t),Object.defineProperty(this,"words",{enumerable:!1,value:r})}return n(t,[{key:"add",value:function(t){return this.words[t.id]=t,this}},{key:"get",value:function(t){return this.words[t]}},{key:"remove",value:function(t){delete this.words[t]}},{key:"merge",value:function(t){return Object.assign(this.words,t.words),this}},{key:"stats",value:function(){return{words:Object.keys(this.words).length}}}]),t}();Ht.prototype.clone=function(){var t=this,e=Object.keys(this.words).reduce((function(e,r){var n=t.words[r].clone();return e[n.id]=n,e}),{});return new Ht(e)};var Rt=Ht,Gt=function(t){t.forEach((function(e,r){r>0&&(e.prev=t[r-1].id),t[r+1]&&(e.next=t[r+1].id)}))},Qt=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s+|$)/g,Zt=/\S/,Jt=/[ .][A-Z]\.? *$/i,Yt=/(?:\u2026|\.{2,}) *$/,Kt=/((?:\r?\n|\r)+)/,Xt=/[a-z0-9\u00C0-\u00FF\u00a9|\u00ae|[\u2000-\u3300]|\ud83c[\ud000-\udfff]|\ud83d[\ud000-\udfff]|\ud83e[\ud000-\udfff]/i,te=/^\s+/,ee=function(t,e){if(!0===Jt.test(t))return!1;if(!0===Yt.test(t))return!1;if(!1===Xt.test(t))return!1;var r=t.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),n=r[r.length-1].toLowerCase();return!e.hasOwnProperty(n)},re=function(t,e){var r=e.cache.abbreviations;t=t||"";var n=[],i=[];if(!(t=String(t))||"string"!=typeof t||!1===Zt.test(t))return n;for(var o=function(t){for(var e=[],r=t.split(Kt),n=0;n0&&(n.push(c),i[u]="")}if(0===n.length)return[t];for(var h=1;h0?(e[e.length-1]+=o,e.push(a)):e.push(o+a),o=""):o+=a}return o&&(0===e.length&&(e[0]=""),e[e.length-1]+=o),e=(e=function(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1?arguments[1]:void 0,r=arguments.length>2?arguments[2]:void 0;"string"!=typeof t&&"number"==typeof t&&(t=String(t));var n=re(t,e);n=n.map((function(t){return he(t)})),r=r||new Rt;var i=n.map((function(t){t=t.map((function(t){var e=new at(t);return r.add(e),e})),Gt(t);var e=new _t(t[0].id,t.length,r);return e.cache.terms=t,e}));return i},fe=function(t,e){var r=new Rt;return t.map((function(t,n){var i=t.terms.map((function(i,o){var s=new at(i.text);return s.pre=void 0!==i.pre?i.pre:"",void 0===i.post&&(i.post=" ",o>=t.terms.length-1&&(i.post=". ",n>=t.terms.length-1&&(i.post="."))),s.post=void 0!==i.post?i.post:" ",i.tags&&i.tags.forEach((function(t){return s.tag(t,"",e)})),r.add(s),s}));return Gt(i),new _t(i[0].id,i.length,r)}))},pe={},de=["Person","Place","Organization"],ve={Noun:{notA:["Verb","Adjective","Adverb"]},Singular:{isA:"Noun",notA:"Plural"},ProperNoun:{isA:"Noun"},Person:{isA:["ProperNoun","Singular"],notA:["Place","Organization","Date"]},FirstName:{isA:"Person"},MaleName:{isA:"FirstName",notA:["FemaleName","LastName"]},FemaleName:{isA:"FirstName",notA:["MaleName","LastName"]},LastName:{isA:"Person",notA:["FirstName"]},NickName:{isA:"Person",notA:["FirstName","LastName"]},Honorific:{isA:"Noun",notA:["FirstName","LastName","Value"]},Place:{isA:"Singular",notA:["Person","Organization"]},Country:{isA:["Place","ProperNoun"],notA:["City"]},City:{isA:["Place","ProperNoun"],notA:["Country"]},Region:{isA:["Place","ProperNoun"]},Address:{isA:"Place"},Organization:{isA:["Singular","ProperNoun"],notA:["Person","Place"]},SportsTeam:{isA:"Organization"},School:{isA:"Organization"},Company:{isA:"Organization"},Plural:{isA:"Noun",notA:["Singular"]},Uncountable:{isA:"Noun"},Pronoun:{isA:"Noun",notA:de},Actor:{isA:"Noun",notA:de},Activity:{isA:"Noun",notA:["Person","Place"]},Unit:{isA:"Noun",notA:de},Demonym:{isA:["Noun","ProperNoun"],notA:de},Possessive:{isA:"Noun"}},me={Verb:{notA:["Noun","Adjective","Adverb","Value"]},PresentTense:{isA:"Verb",notA:["PastTense","Copula","FutureTense"]},Infinitive:{isA:"PresentTense",notA:["PastTense","Gerund"]},Gerund:{isA:"PresentTense",notA:["PastTense","Copula","FutureTense"]},PastTense:{isA:"Verb",notA:["FutureTense"]},FutureTense:{isA:"Verb"},Copula:{isA:"Verb"},Modal:{isA:"Verb",notA:["Infinitive"]},PerfectTense:{isA:"Verb",notA:"Gerund"},Pluperfect:{isA:"Verb"},Participle:{isA:"Verb"},PhrasalVerb:{isA:"Verb"},Particle:{isA:"PhrasalVerb"}},ge={Value:{notA:["Verb","Adjective","Adverb"]},Ordinal:{isA:"Value",notA:["Cardinal"]},Cardinal:{isA:"Value",notA:["Ordinal"]},RomanNumeral:{isA:"Cardinal",notA:["Ordinal","TextValue"]},TextValue:{isA:"Value",notA:["NumericValue"]},NumericValue:{isA:"Value",notA:["TextValue"]},Money:{isA:"Cardinal"},Percent:{isA:"Value"}},be=["Noun","Verb","Adjective","Adverb","Value","QuestionWord"],ye={Adjective:{notA:["Noun","Verb","Adverb","Value"]},Comparable:{isA:["Adjective"]},Comparative:{isA:["Adjective"]},Superlative:{isA:["Adjective"],notA:["Comparative"]},NumberRange:{isA:["Contraction"]},Adverb:{notA:["Noun","Verb","Adjective","Value"]},Date:{notA:["Verb","Conjunction","Adverb","Preposition","Adjective"]},Month:{isA:["Date","Singular"],notA:["Year","WeekDay","Time"]},WeekDay:{isA:["Date","Noun"]},Time:{isA:["Date"],notA:["Value"]},Determiner:{notA:be},Conjunction:{notA:be},Preposition:{notA:be},QuestionWord:{notA:["Determiner"]},Currency:{},Expression:{notA:["Noun","Adjective","Verb","Adverb"]},Abbreviation:{},Url:{notA:["HashTag","PhoneNumber","Verb","Adjective","Value","AtMention","Email"]},PhoneNumber:{notA:["HashTag","Verb","Adjective","Value","AtMention","Email"]},HashTag:{},AtMention:{isA:["Noun"],notA:["HashTag","Verb","Adjective","Value","Email"]},Emoji:{notA:["HashTag","Verb","Adjective","Value","AtMention"]},Emoticon:{notA:["HashTag","Verb","Adjective","Value","AtMention"]},Email:{notA:["HashTag","Verb","Adjective","Value","AtMention"]},Auxiliary:{notA:["Noun","Adjective","Value"]},Acronym:{notA:["Plural","RomanNumeral"]},Negative:{notA:["Noun","Adjective","Value"]},Condition:{notA:["Verb","Adjective","Noun","Value"]}},Ae={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"},we=function(t){return Object.keys(t).forEach((function(e){t[e].color?t[e].color=t[e].color:Ae[e]?t[e].color=Ae[e]:t[e].isA.some((function(r){return!!Ae[r]&&(t[e].color=Ae[r],!0)}))})),t},Pe=function(t){return Object.keys(t).forEach((function(e){for(var r=t[e],n=r.isA.length,i=0;i1&&(r.hasCompound[o[0]]=!0),"Singular"===e){var s=i.toPlural(t,r);n[s]=n[s]||"Plural"}if("Infinitive"===e)for(var a=i.conjugate(t,r),u=Object.keys(a),c=0;c1?i[o]&&"."!==i[o]&&r.tag(i[o],n,e.world):r.tag(t,n,e.world)}))}))}),_e={tag:function(t,e){return t?(Ue(t,this,!1,e),this):this},tagSafe:function(t,e){return t?(Ue(t,this,!0,e),this):this},unTag:function(t,e){var r=this;return this.list.forEach((function(n){n.terms().forEach((function(n){return n.unTag(t,e,r.world)}))})),this},canBe:function(t){if(!t)return this;var e=this.world,r=this.list.reduce((function(r,n){return r.concat(n.canBe(t,e))}),[]);return this.buildFrom(r)}},He={map:function(e){var r=this;if(!e)return this;var n=this.list.map((function(t,n){var i=r.buildFrom([t]);i.from=null;var o=e(i,n);return o&&o.list&&o.list[0]?o.list[0]:o}));return 0===(n=n.filter((function(t){return t}))).length?this.buildFrom(n):"object"!==t(n[0])||"Phrase"!==n[0].isA?n:this.buildFrom(n)},forEach:function(t,e){var r=this;return t?(this.list.forEach((function(n,i){var o=r.buildFrom([n]);!0===e&&(o.from=null),t(o,i)})),this):this},filter:function(t){var e=this;if(!t)return this;var r=this.list.filter((function(r,n){var i=e.buildFrom([r]);return i.from=null,t(i,n)}));return this.buildFrom(r)},find:function(t){var e=this;if(!t)return this;var r=this.list.find((function(r,n){var i=e.buildFrom([r]);return i.from=null,t(i,n)}));return r?this.buildFrom([r]):void 0},some:function(t){var e=this;return t?this.list.some((function(r,n){var i=e.buildFrom([r]);return i.from=null,t(i,n)})):this},random:function(t){if(!this.found)return this;var e=Math.floor(Math.random()*this.list.length);if(void 0===t){var r=[this.list[e]];return this.buildFrom(r)}return e+t>this.length&&(e=(e=this.length-t)<0?0:e),this.slice(e,e+t)}},Re=function(t){return t.split(/[ -]/g)},Ge=function(t,e,r){for(var n=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r={};return t.forEach((function(t,n){var i=!0;void 0!==e[n]&&(i=e[n]),t=(t=(t||"").toLowerCase()).replace(/[,;.!?]+$/,"");var o=Re(t).map((function(t){return t.trim()}));r[o[0]]=r[o[0]]||{},1===o.length?r[o[0]].value=i:(r[o[0]].more=r[o[0]].more||[],r[o[0]].more.push({rest:o.slice(1),value:i}))})),r}(t,e),i=[],o=function(t){for(var e=r.list[t],o=e.terms().map((function(t){return t.reduced})),s=function(t){void 0!==n[o[t]]&&(void 0!==n[o[t]].more&&n[o[t]].more.forEach((function(r){void 0!==o[t+r.rest.length]&&(!0===r.rest.every((function(e,r){return e===o[t+r+1]}))&&i.push({id:e.terms()[t].id,value:r.value,length:r.rest.length+1}))})),void 0!==n[o[t]].value&&i.push({id:e.terms()[t].id,value:n[o[t]].value,length:1}))},a=0;a1&&void 0!==arguments[1]?arguments[1]:{};return e?(!0===n&&(n={keepTags:!0}),!1===n&&(n={keepTags:!1}),n=n||{},this.uncache(),this.list.forEach((function(i){var o,s=e;if("function"==typeof e&&(s=e(i)),s&&"object"===t(s)&&"Doc"===s.isA)o=s.list,r.pool().merge(s.pool());else{if("string"!=typeof s)return;!1!==n.keepCase&&i.terms(0).isTitleCase()&&(s=Je(s)),o=le(s,r.world,r.pool());var a=r.buildFrom(o);a.tagger(),o=a.list}if(!0===n.keepTags){var u=i.json({terms:{tags:!0}}).terms;o[0].terms().forEach((function(t,e){u[e]&&t.tagSafe(u[e].tags,"keptTag",r.world)}))}i.replace(o[0],r)})),this):this.delete()},replace:function(t,e,r){return void 0===e?this.replaceWith(t,r):(this.match(t).replaceWith(e,r),this)}},Ke=$((function(t,e){e.append=function(t){var e=this;return t?(this.uncache(),this.list.forEach((function(r){var n=le(t,e.world,e.pool())[0];e.buildFrom([n]).tagger(),r.append(n,e)})),this):this},e.insertAfter=e.append,e.insertAt=e.append,e.prepend=function(t){var e=this;return t?(this.uncache(),this.list.forEach((function(r){var n=le(t,e.world,e.pool())[0];e.buildFrom([n]).tagger(),r.prepend(n,e)})),this):this},e.insertBefore=e.prepend,e.concat=function(){this.uncache();for(var t=this.list.slice(0),e=0;e0&&void 0!==arguments[0]?arguments[0]:{};if("number"==typeof e&&this.list[e])return this.list[e].json(r);!0===(e=n(e)).root&&this.list.forEach((function(e){e.terms().forEach((function(e){null===e.root&&e.setRoot(t.world)}))}));var i=this.list.map((function(r){return r.json(e,t.world)}));if((e.terms.offset||e.offset||e.terms.index||e.index)&&er(this,i,e),e.frequency||e.freq||e.count){var o={};this.list.forEach((function(t){var e=t.text("reduced");o[e]=o[e]||0,o[e]+=1})),this.list.forEach((function(t,e){i[e].count=o[t.text("reduced")]}))}if(e.unique){var s={};i=i.filter((function(t){return!0!==s[t.reduced]&&(s[t.reduced]=!0,!0)}))}return i},e.data=e.json})),nr=(rr.json,rr.data,$((function(t){var e=function(t,e){for(t=t.toString();t.lengthe.count?-1:t.countn?1:0},length:function(t,e){var r=t.text().trim().length,n=e.text().trim().length;return rn?-1:0},wordCount:function(t,e){var r=t.wordCount(),n=e.wordCount();return rn?-1:0}};sr.alphabetical=sr.alpha,sr.wordcount=sr.wordCount;var ar={index:!0,sequence:!0,seq:!0,sequential:!0,chron:!0,chronological:!0},ur={sort:function(t){return"freq"===(t=t||"alpha")||"frequency"===t||"topk"===t?(r={},n={case:!0,punctuation:!1,whitespace:!0,unicode:!0},(e=this).list.forEach((function(t){var e=t.text(n);r[e]=r[e]||0,r[e]+=1})),e.list.sort((function(t,e){var i=r[t.text(n)],o=r[e.text(n)];return io?-1:0})),e):ar.hasOwnProperty(t)?function(t){var e={};return t.json({terms:{offset:!0}}).forEach((function(t){e[t.terms[0].id]=t.terms[0].offset.start})),t.list=t.list.sort((function(t,r){return e[t.start]>e[r.start]?1:e[t.start]0){i+=s;continue}}if(void 0===r[o]||!0!==r.hasOwnProperty(o))if(o===t[i].reduced||!0!==r.hasOwnProperty(t[i].reduced)){if(!0===Or.test(o)){var a=o.replace(Or,"");!0===r.hasOwnProperty(a)&&t[i].tag(r[a],"noprefix-lexicon",e)}}else t[i].tag(r[t[i].reduced],"lexicon",e);else t[i].tag(r[o],"lexicon",e)}return t},Fr=function(t){var e=t.termList();return kr(e,t.world),t},Tr=function(t){var r=function(t){i(o,t);var r=c(o);function o(){return e(this,o),r.apply(this,arguments)}return n(o,[{key:"stripPeriods",value:function(){return this.termList().forEach((function(t){!0===t.tags.Abbreviation&&t.next&&(t.post=t.post.replace(/^\./,""));var e=t.text.replace(/\./,"");t.set(e)})),this}},{key:"addPeriods",value:function(){return this.termList().forEach((function(t){t.post=t.post.replace(/^\./,""),t.post="."+t.post})),this}}]),o}(t);return r.prototype.unwrap=r.prototype.stripPeriods,t.prototype.abbreviations=function(t){var e=this.match("#Abbreviation");return"number"==typeof t&&(e=e.get(t)),new r(e.list,this,this.world)},t},Nr=/\./,$r=function(t){var r=function(t){i(o,t);var r=c(o);function o(){return e(this,o),r.apply(this,arguments)}return n(o,[{key:"stripPeriods",value:function(){return this.termList().forEach((function(t){var e=t.text.replace(/\./g,"");t.set(e)})),this}},{key:"addPeriods",value:function(){return this.termList().forEach((function(t){var e=t.text.replace(/\./g,"");e=e.split("").join("."),!1===Nr.test(t.post)&&(e+="."),t.set(e)})),this}}]),o}(t);return r.prototype.unwrap=r.prototype.stripPeriods,r.prototype.strip=r.prototype.stripPeriods,t.prototype.acronyms=function(t){var e=this.match("#Acronym");return"number"==typeof t&&(e=e.get(t)),new r(e.list,this,this.world)},t},Vr=function(t){return t.prototype.clauses=function(e){var r=this.if("@hasComma").notIf("@hasComma @hasComma").notIf("@hasComma . .? (and|or) .").notIf("(#City && @hasComma) #Country").notIf("(#Date && @hasComma) #Year").notIf("@hasComma (too|also)$").match("@hasComma"),n=this.splitAfter(r),i=n.quotations(),o=(n=n.splitOn(i)).parentheses(),s=(n=n.splitOn(o)).if("#Copula #Adjective #Conjunction (#Pronoun|#Determiner) #Verb").match("#Conjunction"),a=(n=n.splitBefore(s)).if("if .{2,9} then .").match("then"),u=(n=(n=(n=(n=(n=(n=n.splitBefore(a)).splitBefore("as well as .")).splitBefore("such as .")).splitBefore("in addition to .")).splitAfter("@hasSemicolon")).splitAfter("@hasDash")).filter((function(t){return t.wordCount()>5&&t.match("#Verb+").length>=2}));if(u.found){var c=u.splitAfter("#Noun .* #Verb .* #Noun+");n=n.splitOn(c.eq(0))}return"number"==typeof e&&(n=n.get(e)),new t(n.list,this,this.world)},t},Sr=function(t){var r=function(t){i(o,t);var r=c(o);function o(t,n,i){var s;return e(this,o),(s=r.call(this,t,n,i)).contracted=null,s}return n(o,[{key:"expand",value:function(){return this.list.forEach((function(t){var e=t.terms(),r=e[0].isTitleCase();e.forEach((function(t,r){t.set(t.implicit||t.text),t.implicit=void 0,r0}}),Object.defineProperty(this,"length",{get:function(){return o.list.length}}),Object.defineProperty(this,"isA",{get:function(){return"Doc"}})}return n(t,[{key:"tagger",value:function(){return Fr(this)}},{key:"pool",value:function(){return this.list.length>0?this.list[0].pool:this.all().list[0].pool}}]),t}();fn.prototype.buildFrom=function(t){return t=t.map((function(t){return t.clone(!0)})),new fn(t,this,this.world)},fn.prototype.fromText=function(t){var e=le(t,this.world,this.pool());return this.buildFrom(e)},Object.assign(fn.prototype,ln.misc),Object.assign(fn.prototype,ln.selections),hn(fn);var pn={untag:"unTag",and:"match",notIf:"ifNo",only:"if",onlyIf:"if"};Object.keys(pn).forEach((function(t){return fn.prototype[t]=fn.prototype[pn[t]]}));var dn=fn;return function t(e){var r=e,n=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1?arguments[1]:void 0;e&&r.addWords(e);var n=le(t,r),i=new dn(n,null,r);return i.tagger(),i};return n.tokenize=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1?arguments[1]:void 0,n=r;e&&((n=n.clone()).words={},n.addWords(e));var i=le(t,n),o=new dn(i,null,n);return e&&Fr(o),o},n.extend=function(t){return t(dn,r,this,_t,at,Rt),this},n.fromJSON=function(t){var e=fe(t,r);return new dn(e,null,r)},n.clone=function(){return t(r.clone())},n.verbose=function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return r.verbose(t),this},n.world=function(){return r},n.version="13.2.0",n.import=n.load,n}(new qe)})); +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t=t||self).nlp=e()}(this,(function(){"use strict";function t(e){return(t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(e)}function e(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function r(t,e){for(var r=0;rt.length)&&(e=t.length);for(var r=0,n=new Array(e);rn[e].lineage.length?1:n[t].isA.length>n[e].isA.length?-1:0:0:1}))},R={text:!0,tags:!0,implicit:!0,whitespace:!0,clean:!1,id:!1,index:!1,offset:!1,bestTag:!1},U={json:function(t,e){t=t||{};var r={};return(t=Object.assign({},R,t)).text&&(r.text=this.text),t.normal&&(r.normal=this.normal),t.tags&&(r.tags=Object.keys(this.tags)),t.clean&&(r.clean=this.clean),(t.id||t.offset)&&(r.id=this.id),t.implicit&&null!==this.implicit&&(r.implicit=this.implicit),t.whitespace&&(r.pre=this.pre,r.post=this.post),t.bestTag&&(r.bestTag=_(this,e)[0]),r}},H=Object.assign({},$,V,q,z,U);function G(){return"undefined"!=typeof window&&window.document}var Q=function(t,e){for(t=t.toString();t.length0&&void 0!==arguments[0]?arguments[0]:"";e(this,t),r=String(r);var n=T(r);this.text=n.text||"",this.clean=n.clean,this.reduced=n.reduced,this.root=null,this.implicit=null,this.pre=n.pre||"",this.post=n.post||"",this.tags={},this.prev=null,this.next=null,this.id=f(n.clean),this.isA="Term",n.alias&&(this.alias=n.alias)}return n(t,[{key:"set",value:function(t){var e=T(t);return this.text=e.text,this.clean=e.clean,this}}]),t}();ot.prototype.clone=function(){var t=new ot(this.text);return t.pre=this.pre,t.post=this.post,t.tags=Object.assign({},this.tags),t},Object.assign(ot.prototype,H),Object.assign(ot.prototype,it);var st=ot,at={terms:function(t){if(0===this.length)return[];if(this.cache.terms)return void 0!==t?this.cache.terms[t]:this.cache.terms;for(var e=[this.pool.get(this.start)],r=0;r0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1?arguments[1]:void 0,r=arguments.length>2?arguments[2]:void 0;"string"==typeof t&&(t="normal"===t?{whitespace:!0,unicode:!0,lowercase:!0,punctuation:!0,acronyms:!0,abbreviations:!0,implicit:!0,normal:!0}:"clean"===t?{titlecase:!1,lowercase:!0,punctuation:!0,whitespace:!0,unicode:!0,implicit:!0}:"reduced"===t?{titlecase:!1,lowercase:!0,punctuation:!1,whitespace:!0,unicode:!0,implicit:!0,reduced:!0}:"root"===t?{titlecase:!1,lowercase:!0,punctuation:!0,whitespace:!0,unicode:!0,implicit:!0,root:!0}:{});var n=this.terms(),i=!1;n[0]&&null===n[0].prev&&null===n[n.length-1].next&&(i=!0);var o=n.reduce((function(o,s,a){t.last=r&&a===n.length-1;var u=!0,c=!0;return!1===i&&(0===a&&e&&(u=!1),a===n.length-1&&r&&(c=!1)),o+s.textOut(t,u,c)}),"");return!0===i&&r&&(o=ut(o)),!0===t.trim&&(o=o.trim()),o}},ht={trim:function(){var t=this.terms();if(t.length>0){t[0].pre=t[0].pre.replace(/^\s+/,"");var e=t[t.length-1];e.post=e.post.replace(/\s+$/,"")}return this}},lt=/[.?!]\s*$/,ft=function(t,e){e[0].pre=t[0].pre;var r,n,i=t[t.length-1],o=e[e.length-1];o.post=(r=i.post,n=o.post,lt.test(n)?n+r.match(/\s*$/):r),i.post="",""===i.post&&(i.post+=" ")},pt=function(t,e,r){var n=t.terms(),i=e.terms();ft(n,i),function(t,e,r){var n=t[t.length-1],i=e[e.length-1],o=n.next;(n.next=e[0].id,i.next=o,o)&&(r.get(o).prev=i.id);var s=t[0].id;s&&(e[0].prev=s)}(n,i,t.pool);var o,s=[t],a=t.start,u=[r];return(u=u.concat(r.parents())).forEach((function(t){var e=t.list.filter((function(t){return t.hasId(a)}));s=s.concat(e)})),(s=(o=s).filter((function(t,e){return o.indexOf(t)===e}))).forEach((function(t){t.length+=e.length})),t.cache={},t},dt=/ /,vt=function(t,e,r){var n=t.start,i=e.terms();!function(t){var e=t[t.length-1];!1===dt.test(e.post)&&(e.post+=" ")}(i),function(t,e,r){var n=r[r.length-1];n.next=t.start;var i=t.pool,o=i.get(t.start);o.prev&&(i.get(o.prev).next=e.start);r[0].prev=t.terms(0).prev,t.terms(0).prev=n.id}(t,e,i);var o,s=[t],a=[r];return(a=a.concat(r.parents())).forEach((function(t){var r=t.list.filter((function(t){return t.hasId(n)||t.hasId(e.start)}));s=s.concat(r)})),(s=(o=s).filter((function(t,e){return o.indexOf(t)===e}))).forEach((function(t){t.length+=e.length,t.start===n&&(t.start=e.start),t.cache={}})),t},mt=function(t,e){var r=e.pool(),n=t.terms(),i=r.get(n[0].prev)||{},o=r.get(n[n.length-1].next)||{};n[0].implicit&&i.implicit&&(i.set(i.implicit),i.post+=" "),function(t,e,r,n){var i=t.parents();i.push(t),i.forEach((function(t){var i=t.list.find((function(t){return t.hasId(e)}));i&&(i.length-=r,i.start===e&&(i.start=n.id),i.cache={})})),t.list=t.list.filter((function(t){return!(!t.start||!t.length)}))}(e,t.start,t.length,o),i&&(i.next=o.id),o&&(o.prev=i.id)},gt={append:function(t,e){return pt(this,t,e),this},prepend:function(t,e){return vt(this,t,e),this},delete:function(t){return mt(this,t),this},replace:function(t,e){var r=this.length;pt(this,t,e);var n=this.buildFrom(this.start,this.length);n.length=r,mt(n,e)},splitOn:function(t){var e=this.terms(),r={before:null,match:null,after:null},n=e.findIndex((function(e){return e.id===t.start}));if(-1===n)return r;var i=e.slice(0,n);i.length>0&&(r.before=this.buildFrom(i[0].id,i.length));var o=e.slice(n,n+t.length);o.length>0&&(r.match=this.buildFrom(o[0].id,o.length));var s=e.slice(n+t.length,e.length);return s.length>0&&(r.after=this.buildFrom(s[0].id,s.length,this.pool)),r}},bt={json:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1?arguments[1]:void 0,r={};return t.text&&(r.text=this.text()),t.normal&&(r.normal=this.text("normal")),t.clean&&(r.clean=this.text("clean")),t.reduced&&(r.reduced=this.text("reduced")),t.root&&(r.root=this.text("root")),t.trim&&(r.text&&(r.text=r.text.trim()),r.normal&&(r.normal=r.normal.trim()),r.reduced&&(r.reduced=r.reduced.trim())),t.terms&&(!0===t.terms&&(t.terms={}),r.terms=this.terms().map((function(r){return r.json(t.terms,e)}))),r}},yt={lookAhead:function(t){t||(t=".*");var e=this.pool,r=[],n=this.terms();return function t(n){var i=e.get(n);i&&(r.push(i),i.prev&&t(i.next))}(n[n.length-1].next),0===r.length?[]:this.buildFrom(r[0].id,r.length).match(t)},lookBehind:function(t){t||(t=".*");var e=this.pool,r=[];return function t(n){var i=e.get(n);i&&(r.push(i),i.prev&&t(i.prev))}(e.get(this.start).prev),0===r.length?[]:this.buildFrom(r[r.length-1].id,r.length).match(t)}},At=Object.assign({},at,ct,ht,gt,bt,yt),wt=function(t,e){if(0===e.length)return!0;for(var r=0;r0)return!0;if(!0===n.anything&&!0===n.negative)return!0}return!1},xt=function(t,e,r,n,i,o){for(var s=e;e1&&u.greedy?d.length+=s-p:d.length++}}else if(!0!==u.optional){if(!(t[s].isImplicit()&&e[a-1]&&t[s+1]&&t[s+1].doesMatch(u,r+s,n)))return[!1,null];s+=2}}else{var v=Pt(t,s,e[a+1],u,r);if(void 0!==u.min&&v-su.max){s+=u.max;continue}if(null===v)return[!1,null];c&&(jt(i,h,t,s,u.named).length=v-s),s=v}}return[t.slice(0,s),i]},Ot=function(t,e,r){if(!r||0===r.length)return r;if(e.some((function(t){return t.end}))){var n=t[t.length-1];r=r.filter((function(t){return-1!==t.match.indexOf(n)}))}return r},Ct=/\{([0-9]+,?[0-9]*)\}/,kt=/&&/,Ft=new RegExp(/^<(\S+)>/),Tt=function(t){return t[t.length-1]},Nt=function(t){return t[0]},$t=function(t){return t.substr(1)},Vt=function(t){return t.substr(0,t.length-1)},St=function(t){return t=$t(t),t=Vt(t)},Bt=function t(e){for(var r,n={},i=0;i<2;i+=1){if("$"===Tt(e)&&(n.end=!0,e=Vt(e)),"^"===Nt(e)&&(n.start=!0,e=$t(e)),("["===Nt(e)||"]"===Tt(e))&&(n.named=!0,"["===Nt(e)?n.groupType="]"===Tt(e)?"single":"start":n.groupType="end",e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===Nt(e))){var o=Ft.exec(e);o.length>=2&&(n.named=o[1],e=e.replace(o[0],""))}if("+"===Tt(e)&&(n.greedy=!0,e=Vt(e)),"*"!==e&&"*"===Tt(e)&&"\\*"!==e&&(n.greedy=!0,e=Vt(e)),"?"===Tt(e)&&(n.optional=!0,e=Vt(e)),"!"===Nt(e)&&(n.negative=!0,e=$t(e)),"("===Nt(e)&&")"===Tt(e)){kt.test(e)?(n.choices=e.split(kt),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=$t(n.choices[0]);var s=n.choices.length-1;n.choices[s]=Vt(n.choices[s]),n.choices=n.choices.map((function(t){return t.trim()})),n.choices=n.choices.filter((function(t){return t})),n.choices=n.choices.map(t),e=""}if("/"===Nt(e)&&"/"===Tt(e))return e=St(e),n.regex=new RegExp(e),n;if("~"===Nt(e)&&"~"===Tt(e))return e=St(e),n.soft=!0,n.word=e,n}return!0===Ct.test(e)&&(e=e.replace(Ct,(function(t,e){var r=e.split(/,/g);return 1===r.length?(n.min=Number(r[0]),n.max=Number(r[0])):(n.min=Number(r[0]),n.max=Number(r[1]||999)),n.greedy=!0,""}))),"#"===Nt(e)?(n.tag=$t(e),n.tag=(r=n.tag).charAt(0).toUpperCase()+r.substr(1),n):"@"===Nt(e)?(n.method=$t(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),n.word=e.toLowerCase()),n)},It=function(t){return t.filter((function(t){return t.groupType})).length>0&&(t=function(t){for(var e,r,n=!1,i=-1,o=0;o)?\(.*?\)[?+*]*\]?\$?)/);return e=e.map((function(t){return t.trim()}))}(e);return r=(r=function(t){var e=[];return t.forEach((function(t){if(/^[[^_/]?\(/.test(t[0]))e.push(t);else{var r=t.split(" ");r=r.filter((function(t){return t})),e=e.concat(r)}})),e}(r)).map(Bt),r=It(r)},qt=function(t,e){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if("string"==typeof e&&(e=Dt(e)),!0===wt(t,e))return[];var n=e.filter((function(t){return!0!==t.optional})).length,i=t.terms(),o=[];if(!0===e[0].start){var s=Et(i,e,0,i.length),a=c(s,2),u=a[0],h=a[1];return!1!==u&&u.length>0&&(u=u.filter((function(t){return t})),o.push({match:u,groups:h})),Ot(i,e,o)}for(var l=0;li.length);l+=1){var f=Et(i.slice(l),e,l,i.length),p=c(f,2),d=p[0],v=p[1];if(!1!==d&&d.length>0&&(l+=d.length-1,d=d.filter((function(t){return t})),o.push({match:d,groups:v}),!0===r))return Ot(i,e,o)}return Ot(i,e,o)},Mt=function(t,e){var r={};qt(t,e).forEach((function(t){t.match.forEach((function(t){r[t.id]=!0}))}));var n=t.terms(),i=[],o=[];return n.forEach((function(t){!0!==r[t.id]?o.push(t):o.length>0&&(i.push(o),o=[])})),o.length>0&&i.push(o),i},Lt={match:function(t){var e=this,r=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=qt(this,t,r);return n=n.map((function(t){var r=t.match,n=t.groups,i=e.buildFrom(r[0].id,r.length,n);return i.cache.terms=r,i}))},has:function(t){return qt(this,t,!0).length>0},not:function(t){var e=this,r=Mt(this,t);return r=r.map((function(t){return e.buildFrom(t[0].id,t.length)}))},canBe:function(t,e){for(var r=this,n=[],i=this.terms(),o=!1,s=0;s0})).map((function(t){return r.buildFrom(t[0].id,t.length)}))}},zt=function t(r,n,i){e(this,t),this.start=r,this.length=n,this.isA="Phrase",Object.defineProperty(this,"pool",{enumerable:!1,writable:!0,value:i}),Object.defineProperty(this,"cache",{enumerable:!1,writable:!0,value:{}}),Object.defineProperty(this,"groups",{enumerable:!1,writable:!0,value:{}})};zt.prototype.buildFrom=function(t,e,r){var n=new zt(t,e,this.pool);return r&&Object.keys(r).length>0?n.groups=r:n.groups=this.groups,n},Object.assign(zt.prototype,Lt),Object.assign(zt.prototype,At);var Wt={term:"terms"};Object.keys(Wt).forEach((function(t){return zt.prototype[t]=zt.prototype[Wt[t]]}));var _t=zt,Rt=function(){function t(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};e(this,t),Object.defineProperty(this,"words",{enumerable:!1,value:r})}return n(t,[{key:"add",value:function(t){return this.words[t.id]=t,this}},{key:"get",value:function(t){return this.words[t]}},{key:"remove",value:function(t){delete this.words[t]}},{key:"merge",value:function(t){return Object.assign(this.words,t.words),this}},{key:"stats",value:function(){return{words:Object.keys(this.words).length}}}]),t}();Rt.prototype.clone=function(){var t=this,e=Object.keys(this.words).reduce((function(e,r){var n=t.words[r].clone();return e[n.id]=n,e}),{});return new Rt(e)};var Ut=Rt,Ht=function(t){t.forEach((function(e,r){r>0&&(e.prev=t[r-1].id),t[r+1]&&(e.next=t[r+1].id)}))},Gt=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s+|$)/g,Qt=/\S/,Zt=/[ .][A-Z]\.? *$/i,Jt=/(?:\u2026|\.{2,}) *$/,Yt=/((?:\r?\n|\r)+)/,Kt=/[a-z0-9\u00C0-\u00FF\u00a9|\u00ae|[\u2000-\u3300]|\ud83c[\ud000-\udfff]|\ud83d[\ud000-\udfff]|\ud83e[\ud000-\udfff]/i,Xt=/^\s+/,te=function(t,e){if(!0===Zt.test(t))return!1;if(!0===Jt.test(t))return!1;if(!1===Kt.test(t))return!1;var r=t.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),n=r[r.length-1].toLowerCase();return!e.hasOwnProperty(n)},ee=function(t,e){var r=e.cache.abbreviations;t=t||"";var n=[],i=[];if(!(t=String(t))||"string"!=typeof t||!1===Qt.test(t))return n;for(var o=function(t){for(var e=[],r=t.split(Yt),n=0;n0&&(n.push(c),i[u]="")}if(0===n.length)return[t];for(var h=1;h0?(e[e.length-1]+=o,e.push(a)):e.push(o+a),o=""):o+=a}return o&&(0===e.length&&(e[0]=""),e[e.length-1]+=o),e=(e=function(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1?arguments[1]:void 0,r=arguments.length>2?arguments[2]:void 0,n=null;"string"!=typeof t&&("number"==typeof t?t=String(t):he(t)&&(n=t)),n=(n=n||ee(t,e)).map((function(t){return ce(t)})),r=r||new Ut;var i=n.map((function(t){t=t.map((function(t){var e=new st(t);return r.add(e),e})),Ht(t);var e=new _t(t[0].id,t.length,r);return e.cache.terms=t,e}));return i},fe=function(t,e){var r=new Ut;return t.map((function(t,n){var i=t.terms.map((function(i,o){var s=new st(i.text);return s.pre=void 0!==i.pre?i.pre:"",void 0===i.post&&(i.post=" ",o>=t.terms.length-1&&(i.post=". ",n>=t.terms.length-1&&(i.post="."))),s.post=void 0!==i.post?i.post:" ",i.tags&&i.tags.forEach((function(t){return s.tag(t,"",e)})),r.add(s),s}));return Ht(i),new _t(i[0].id,i.length,r)}))},pe={},de=["Person","Place","Organization"],ve={Noun:{notA:["Verb","Adjective","Adverb"]},Singular:{isA:"Noun",notA:"Plural"},ProperNoun:{isA:"Noun"},Person:{isA:["ProperNoun","Singular"],notA:["Place","Organization","Date"]},FirstName:{isA:"Person"},MaleName:{isA:"FirstName",notA:["FemaleName","LastName"]},FemaleName:{isA:"FirstName",notA:["MaleName","LastName"]},LastName:{isA:"Person",notA:["FirstName"]},NickName:{isA:"Person",notA:["FirstName","LastName"]},Honorific:{isA:"Noun",notA:["FirstName","LastName","Value"]},Place:{isA:"Singular",notA:["Person","Organization"]},Country:{isA:["Place","ProperNoun"],notA:["City"]},City:{isA:["Place","ProperNoun"],notA:["Country"]},Region:{isA:["Place","ProperNoun"]},Address:{isA:"Place"},Organization:{isA:["Singular","ProperNoun"],notA:["Person","Place"]},SportsTeam:{isA:"Organization"},School:{isA:"Organization"},Company:{isA:"Organization"},Plural:{isA:"Noun",notA:["Singular"]},Uncountable:{isA:"Noun"},Pronoun:{isA:"Noun",notA:de},Actor:{isA:"Noun",notA:de},Activity:{isA:"Noun",notA:["Person","Place"]},Unit:{isA:"Noun",notA:de},Demonym:{isA:["Noun","ProperNoun"],notA:de},Possessive:{isA:"Noun"}},me={Verb:{notA:["Noun","Adjective","Adverb","Value"]},PresentTense:{isA:"Verb",notA:["PastTense","Copula","FutureTense"]},Infinitive:{isA:"PresentTense",notA:["PastTense","Gerund"]},Gerund:{isA:"PresentTense",notA:["PastTense","Copula","FutureTense"]},PastTense:{isA:"Verb",notA:["FutureTense"]},FutureTense:{isA:"Verb"},Copula:{isA:"Verb"},Modal:{isA:"Verb",notA:["Infinitive"]},PerfectTense:{isA:"Verb",notA:"Gerund"},Pluperfect:{isA:"Verb"},Participle:{isA:"Verb"},PhrasalVerb:{isA:"Verb"},Particle:{isA:"PhrasalVerb"}},ge={Value:{notA:["Verb","Adjective","Adverb"]},Ordinal:{isA:"Value",notA:["Cardinal"]},Cardinal:{isA:"Value",notA:["Ordinal"]},RomanNumeral:{isA:"Cardinal",notA:["Ordinal","TextValue"]},TextValue:{isA:"Value",notA:["NumericValue"]},NumericValue:{isA:"Value",notA:["TextValue"]},Money:{isA:"Cardinal"},Percent:{isA:"Value"}},be=["Noun","Verb","Adjective","Adverb","Value","QuestionWord"],ye={Adjective:{notA:["Noun","Verb","Adverb","Value"]},Comparable:{isA:["Adjective"]},Comparative:{isA:["Adjective"]},Superlative:{isA:["Adjective"],notA:["Comparative"]},NumberRange:{isA:["Contraction"]},Adverb:{notA:["Noun","Verb","Adjective","Value"]},Date:{notA:["Verb","Conjunction","Adverb","Preposition","Adjective"]},Month:{isA:["Date","Singular"],notA:["Year","WeekDay","Time"]},WeekDay:{isA:["Date","Noun"]},Time:{isA:["Date"],notA:["Value"]},Determiner:{notA:be},Conjunction:{notA:be},Preposition:{notA:be},QuestionWord:{notA:["Determiner"]},Currency:{},Expression:{notA:["Noun","Adjective","Verb","Adverb"]},Abbreviation:{},Url:{notA:["HashTag","PhoneNumber","Verb","Adjective","Value","AtMention","Email"]},PhoneNumber:{notA:["HashTag","Verb","Adjective","Value","AtMention","Email"]},HashTag:{},AtMention:{isA:["Noun"],notA:["HashTag","Verb","Adjective","Value","Email"]},Emoji:{notA:["HashTag","Verb","Adjective","Value","AtMention"]},Emoticon:{notA:["HashTag","Verb","Adjective","Value","AtMention"]},Email:{notA:["HashTag","Verb","Adjective","Value","AtMention"]},Auxiliary:{notA:["Noun","Adjective","Value"]},Acronym:{notA:["Plural","RomanNumeral"]},Negative:{notA:["Noun","Adjective","Value"]},Condition:{notA:["Verb","Adjective","Noun","Value"]}},Ae={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"},we=function(t){return Object.keys(t).forEach((function(e){t[e].color?t[e].color=t[e].color:Ae[e]?t[e].color=Ae[e]:t[e].isA.some((function(r){return!!Ae[r]&&(t[e].color=Ae[r],!0)}))})),t},xe=function(t){return Object.keys(t).forEach((function(e){for(var r=t[e],n=r.isA.length,i=0;i1&&(r.hasCompound[o[0]]=!0),"Singular"===e){var s=i.toPlural(t,r);n[s]=n[s]||"Plural"}if("Infinitive"===e)for(var a=i.conjugate(t,r),u=Object.keys(a),c=0;c1?i[o]&&"."!==i[o]&&r.tag(i[o],n,e.world):r.tag(t,n,e.world)}))}))},Re={tag:function(t,e){return t?(_e(t,this,!1,e),this):this},tagSafe:function(t,e){return t?(_e(t,this,!0,e),this):this},unTag:function(t,e){var r=this;return this.list.forEach((function(n){n.terms().forEach((function(n){return n.unTag(t,e,r.world)}))})),this},canBe:function(t){if(!t)return this;var e=this.world,r=this.list.reduce((function(r,n){return r.concat(n.canBe(t,e))}),[]);return this.buildFrom(r)}},Ue={map:function(e){var r=this;if(!e)return this;var n=this.list.map((function(t,n){var i=r.buildFrom([t]);i.from=null;var o=e(i,n);return o&&o.list&&o.list[0]?o.list[0]:o}));return 0===(n=n.filter((function(t){return t}))).length?this.buildFrom(n):"object"!==t(n[0])||"Phrase"!==n[0].isA?n:this.buildFrom(n)},forEach:function(t,e){var r=this;return t?(this.list.forEach((function(n,i){var o=r.buildFrom([n]);!0===e&&(o.from=null),t(o,i)})),this):this},filter:function(t){var e=this;if(!t)return this;var r=this.list.filter((function(r,n){var i=e.buildFrom([r]);return i.from=null,t(i,n)}));return this.buildFrom(r)},find:function(t){var e=this;if(!t)return this;var r=this.list.find((function(r,n){var i=e.buildFrom([r]);return i.from=null,t(i,n)}));return r?this.buildFrom([r]):void 0},some:function(t){var e=this;return t?this.list.some((function(r,n){var i=e.buildFrom([r]);return i.from=null,t(i,n)})):this},random:function(t){if(!this.found)return this;var e=Math.floor(Math.random()*this.list.length);if(void 0===t){var r=[this.list[e]];return this.buildFrom(r)}return e+t>this.length&&(e=(e=this.length-t)<0?0:e),this.slice(e,e+t)}},He=function(t){return t.split(/[ -]/g)},Ge=function(t,e,r){for(var n=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r={};return t.forEach((function(t,n){var i=!0;void 0!==e[n]&&(i=e[n]),t=(t=(t||"").toLowerCase()).replace(/[,;.!?]+$/,"");var o=He(t).map((function(t){return t.trim()}));r[o[0]]=r[o[0]]||{},1===o.length?r[o[0]].value=i:(r[o[0]].more=r[o[0]].more||[],r[o[0]].more.push({rest:o.slice(1),value:i}))})),r}(t,e),i=[],o=function(t){for(var e=r.list[t],o=e.terms().map((function(t){return t.reduced})),s=function(t){void 0!==n[o[t]]&&(void 0!==n[o[t]].more&&n[o[t]].more.forEach((function(r){void 0!==o[t+r.rest.length]&&(!0===r.rest.every((function(e,r){return e===o[t+r+1]}))&&i.push({id:e.terms()[t].id,value:r.value,length:r.rest.length+1}))})),void 0!==n[o[t]].value&&i.push({id:e.terms()[t].id,value:n[o[t]].value,length:1}))},a=0;a1&&void 0!==arguments[1]?arguments[1]:{};return e?(!0===n&&(n={keepTags:!0}),!1===n&&(n={keepTags:!1}),n=n||{},this.uncache(),this.list.forEach((function(i){var o,s=e;if("function"==typeof e&&(s=e(i)),s&&"object"===t(s)&&"Doc"===s.isA)o=s.list,r.pool().merge(s.pool());else{if("string"!=typeof s)return;!1!==n.keepCase&&i.terms(0).isTitleCase()&&(s=Je(s)),o=le(s,r.world,r.pool());var a=r.buildFrom(o);a.tagger(),o=a.list}if(!0===n.keepTags){var u=i.json({terms:{tags:!0}}).terms;o[0].terms().forEach((function(t,e){u[e]&&t.tagSafe(u[e].tags,"keptTag",r.world)}))}i.replace(o[0],r)})),this):this.delete()},replace:function(t,e,r){return void 0===e?this.replaceWith(t,r):(this.match(t).replaceWith(e,r),this)}},Ke=N((function(t,e){e.append=function(t){var e=this;return t?(this.uncache(),this.list.forEach((function(r){var n=le(t,e.world,e.pool())[0];e.buildFrom([n]).tagger(),r.append(n,e)})),this):this},e.insertAfter=e.append,e.insertAt=e.append,e.prepend=function(t){var e=this;return t?(this.uncache(),this.list.forEach((function(r){var n=le(t,e.world,e.pool())[0];e.buildFrom([n]).tagger(),r.prepend(n,e)})),this):this},e.insertBefore=e.prepend,e.concat=function(){this.uncache();for(var t=this.list.slice(0),e=0;e0&&void 0!==arguments[0]?arguments[0]:{};if("number"==typeof e&&this.list[e])return this.list[e].json(r);!0===(e=n(e)).root&&this.list.forEach((function(e){e.terms().forEach((function(e){null===e.root&&e.setRoot(t.world)}))}));var i=this.list.map((function(r){return r.json(e,t.world)}));if((e.terms.offset||e.offset||e.terms.index||e.index)&&er(this,i,e),e.frequency||e.freq||e.count){var o={};this.list.forEach((function(t){var e=t.text("reduced");o[e]=o[e]||0,o[e]+=1})),this.list.forEach((function(t,e){i[e].count=o[t.text("reduced")]}))}if(e.unique){var s={};i=i.filter((function(t){return!0!==s[t.reduced]&&(s[t.reduced]=!0,!0)}))}return i},e.data=e.json})),nr=N((function(t){var e=function(t,e){for(t=t.toString();t.lengthe.count?-1:t.countn?1:0},length:function(t,e){var r=t.text().trim().length,n=e.text().trim().length;return rn?-1:0},wordCount:function(t,e){var r=t.wordCount(),n=e.wordCount();return rn?-1:0}};sr.alphabetical=sr.alpha,sr.wordcount=sr.wordCount;var ar={index:!0,sequence:!0,seq:!0,sequential:!0,chron:!0,chronological:!0},ur={sort:function(t){return"freq"===(t=t||"alpha")||"frequency"===t||"topk"===t?(r={},n={case:!0,punctuation:!1,whitespace:!0,unicode:!0},(e=this).list.forEach((function(t){var e=t.text(n);r[e]=r[e]||0,r[e]+=1})),e.list.sort((function(t,e){var i=r[t.text(n)],o=r[e.text(n)];return io?-1:0})),e):ar.hasOwnProperty(t)?function(t){var e={};return t.json({terms:{offset:!0}}).forEach((function(t){e[t.terms[0].id]=t.terms[0].offset.start})),t.list=t.list.sort((function(t,r){return e[t.start]>e[r.start]?1:e[t.start]0){i+=s;continue}}if(void 0===r[o]||!0!==r.hasOwnProperty(o))if(o===t[i].reduced||!0!==r.hasOwnProperty(t[i].reduced)){if(!0===Or.test(o)){var a=o.replace(Or,"");!0===r.hasOwnProperty(a)&&t[i].tag(r[a],"noprefix-lexicon",e)}}else t[i].tag(r[t[i].reduced],"lexicon",e);else t[i].tag(r[o],"lexicon",e)}return t},Fr=function(t){var e=t.termList();return kr(e,t.world),t},Tr=function(t){var r=function(t){i(o,t);var r=u(o);function o(){return e(this,o),r.apply(this,arguments)}return n(o,[{key:"stripPeriods",value:function(){return this.termList().forEach((function(t){!0===t.tags.Abbreviation&&t.next&&(t.post=t.post.replace(/^\./,""));var e=t.text.replace(/\./,"");t.set(e)})),this}},{key:"addPeriods",value:function(){return this.termList().forEach((function(t){t.post=t.post.replace(/^\./,""),t.post="."+t.post})),this}}]),o}(t);return r.prototype.unwrap=r.prototype.stripPeriods,t.prototype.abbreviations=function(t){var e=this.match("#Abbreviation");return"number"==typeof t&&(e=e.get(t)),new r(e.list,this,this.world)},t},Nr=/\./,$r=function(t){var r=function(t){i(o,t);var r=u(o);function o(){return e(this,o),r.apply(this,arguments)}return n(o,[{key:"stripPeriods",value:function(){return this.termList().forEach((function(t){var e=t.text.replace(/\./g,"");t.set(e)})),this}},{key:"addPeriods",value:function(){return this.termList().forEach((function(t){var e=t.text.replace(/\./g,"");e=e.split("").join("."),!1===Nr.test(t.post)&&(e+="."),t.set(e)})),this}}]),o}(t);return r.prototype.unwrap=r.prototype.stripPeriods,r.prototype.strip=r.prototype.stripPeriods,t.prototype.acronyms=function(t){var e=this.match("#Acronym");return"number"==typeof t&&(e=e.get(t)),new r(e.list,this,this.world)},t},Vr=function(t){return t.prototype.clauses=function(e){var r=this.if("@hasComma").notIf("@hasComma @hasComma").notIf("@hasComma . .? (and|or) .").notIf("(#City && @hasComma) #Country").notIf("(#Date && @hasComma) #Year").notIf("@hasComma (too|also)$").match("@hasComma"),n=this.splitAfter(r),i=n.quotations(),o=(n=n.splitOn(i)).parentheses(),s=(n=n.splitOn(o)).if("#Copula #Adjective #Conjunction (#Pronoun|#Determiner) #Verb").match("#Conjunction"),a=(n=n.splitBefore(s)).if("if .{2,9} then .").match("then"),u=(n=(n=(n=(n=(n=(n=n.splitBefore(a)).splitBefore("as well as .")).splitBefore("such as .")).splitBefore("in addition to .")).splitAfter("@hasSemicolon")).splitAfter("@hasDash")).filter((function(t){return t.wordCount()>5&&t.match("#Verb+").length>=2}));if(u.found){var c=u.splitAfter("#Noun .* #Verb .* #Noun+");n=n.splitOn(c.eq(0))}return"number"==typeof e&&(n=n.get(e)),new t(n.list,this,this.world)},t},Sr=function(t){var r=function(t){i(o,t);var r=u(o);function o(t,n,i){var s;return e(this,o),(s=r.call(this,t,n,i)).contracted=null,s}return n(o,[{key:"expand",value:function(){return this.list.forEach((function(t){var e=t.terms(),r=e[0].isTitleCase();e.forEach((function(t,r){t.set(t.implicit||t.text),t.implicit=void 0,r0}}),Object.defineProperty(this,"length",{get:function(){return o.list.length}}),Object.defineProperty(this,"isA",{get:function(){return"Doc"}})}return n(t,[{key:"tagger",value:function(){return Fr(this)}},{key:"pool",value:function(){return this.list.length>0?this.list[0].pool:this.all().list[0].pool}}]),t}();fn.prototype.buildFrom=function(t){return t=t.map((function(t){return t.clone(!0)})),new fn(t,this,this.world)},fn.prototype.fromText=function(t){var e=le(t,this.world,this.pool());return this.buildFrom(e)},Object.assign(fn.prototype,ln.misc),Object.assign(fn.prototype,ln.selections),hn(fn);var pn={untag:"unTag",and:"match",notIf:"ifNo",only:"if",onlyIf:"if"};Object.keys(pn).forEach((function(t){return fn.prototype[t]=fn.prototype[pn[t]]}));var dn=fn;return function t(e){var r=e,n=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1?arguments[1]:void 0;e&&r.addWords(e);var n=le(t,r),i=new dn(n,null,r);return i.tagger(),i};return n.tokenize=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1?arguments[1]:void 0,n=r;e&&((n=n.clone()).words={},n.addWords(e));var i=le(t,n),o=new dn(i,null,n);return e&&Fr(o),o},n.extend=function(t){return t(dn,r,this,_t,st,Ut),this},n.fromJSON=function(t){var e=fe(t,r);return new dn(e,null,r)},n.clone=function(){return t(r.clone())},n.verbose=function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return r.verbose(t),this},n.world=function(){return r},n.version="13.3.0",n.import=n.load,n}(new qe)})); diff --git a/builds/compromise.js b/builds/compromise.js index 03eb0f21d..fa263cfe1 100644 --- a/builds/compromise.js +++ b/builds/compromise.js @@ -1,4 +1,4 @@ -/* compromise 13.2.0 MIT */ +/* compromise 13.3.0 MIT */ (function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : @@ -104,11 +104,13 @@ } function _createSuper(Derived) { - return function () { + var hasNativeReflectConstruct = _isNativeReflectConstruct(); + + return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; - if (_isNativeReflectConstruct()) { + if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); @@ -160,7 +162,7 @@ if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; - if (n === "Map" || n === "Set") return Array.from(n); + if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } @@ -429,8 +431,18 @@ var parse = parseTerm; - function createCommonjsModule(fn, module) { - return module = { exports: {} }, fn(module, module.exports), module.exports; + function createCommonjsModule(fn, basedir, module) { + return module = { + path: basedir, + exports: {}, + require: function (path, base) { + return commonjsRequire(path, (base === undefined || base === null) ? module.path : base); + } + }, fn(module, module.exports), module.exports; + } + + function commonjsRequire () { + throw new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs'); } var _01Case = createCommonjsModule(function (module, exports) { @@ -476,12 +488,6 @@ exports.titleCase = exports.isTitleCase; }); - var _01Case_1 = _01Case.toUpperCase; - var _01Case_2 = _01Case.toLowerCase; - var _01Case_3 = _01Case.toTitleCase; - var _01Case_4 = _01Case.isUpperCase; - var _01Case_5 = _01Case.isTitleCase; - var _01Case_6 = _01Case.titleCase; var _02Punctuation = createCommonjsModule(function (module, exports) { // these methods are called with '@hasComma' in the match syntax @@ -581,21 +587,6 @@ return this; }; }); - var _02Punctuation_1 = _02Punctuation.hasPost; - var _02Punctuation_2 = _02Punctuation.hasPre; - var _02Punctuation_3 = _02Punctuation.hasQuote; - var _02Punctuation_4 = _02Punctuation.hasQuotation; - var _02Punctuation_5 = _02Punctuation.hasComma; - var _02Punctuation_6 = _02Punctuation.hasPeriod; - var _02Punctuation_7 = _02Punctuation.hasExclamation; - var _02Punctuation_8 = _02Punctuation.hasQuestionMark; - var _02Punctuation_9 = _02Punctuation.hasEllipses; - var _02Punctuation_10 = _02Punctuation.hasSemicolon; - var _02Punctuation_11 = _02Punctuation.hasSlash; - var _02Punctuation_12 = _02Punctuation.hasHyphen; - var _02Punctuation_13 = _02Punctuation.hasDash; - var _02Punctuation_14 = _02Punctuation.hasContraction; - var _02Punctuation_15 = _02Punctuation.addPunctuation; //declare it up here var wrapMatch = function wrapMatch() {}; @@ -3277,6 +3268,10 @@ } return arr; + }; + + var isArray$2 = function isArray(arr) { + return Object.prototype.toString.call(arr) === '[object Array]'; }; //turn a string into an array of strings (naiive for now, lumped later) @@ -3290,6 +3285,10 @@ str = String(str); } + if (isArray$2(str)) { + return str; + } + var words = str.split(naiiveSplit); for (var i = 0; i < words.length; i++) { @@ -3344,22 +3343,28 @@ var _02Words = splitWords; + var isArray$3 = function isArray(arr) { + return Object.prototype.toString.call(arr) === '[object Array]'; + }; /** turn a string into an array of Phrase objects */ + var fromText = function fromText() { var text = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; var world = arguments.length > 1 ? arguments[1] : undefined; var pool = arguments.length > 2 ? arguments[2] : undefined; + var sentences = null; //a bit of validation, first - //a bit of validation, first if (typeof text !== 'string') { if (typeof text === 'number') { text = String(text); + } else if (isArray$3(text)) { + sentences = text; } } //tokenize into words - var sentences = _01Sentences(text, world); + sentences = sentences || _01Sentences(text, world); sentences = sentences.map(function (str) { return _02Words(str); }); //turn them into proper objects @@ -3424,7 +3429,7 @@ var fromJSON_1 = fromJSON; - var _version = '13.2.0'; + var _version = '13.3.0'; var _data = { "Comparative": "true¦better", @@ -3463,16 +3468,16 @@ "Date": "true¦t0weekend,yesterd2;mr2o0;d0morrow;ay;!w", "FirstName": "true¦aEblair,cCdevBj8k6lashawn,m3nelly,quinn,re2sh0;ay,e0iloh;a,lby;g1ne;ar1el,org0;an;ion,lo;as8e0r9;ls7nyatta,rry;am0ess1ude;ie,m0;ie;an,on;as0heyenne;ey,sidy;lex1ndra,ubr0;ey;is", "LastName": "true¦0:34;1:39;2:3B;3:2Y;4:2E;5:30;a3Bb31c2Od2Ee2Bf25g1Zh1Pi1Kj1Ek17l0Zm0Nn0Jo0Gp05rYsMtHvFwCxBy8zh6;a6ou,u;ng,o;a6eun2Uoshi1Kun;ma6ng;da,guc1Zmo27sh21zaR;iao,u;a7eb0il6o3right,u;li3Bs1;gn0lk0ng,tanabe;a6ivaldi;ssilj37zqu2;a9h8i2Go7r6sui,urn0;an,ynisJ;lst0Prr1Uth;at1Uomps1;kah0Vnaka,ylor;aEchDeChimizu,iBmiAo9t7u6zabo;ar2lliv2AzuE;a6ein0;l23rm0;sa,u3;rn4th;lva,mmo24ngh;mjon4rrano;midt,neid0ulz;ito,n7sa6to;ki;ch2dLtos,z;amBeag1Zi9o7u6;bio,iz,sD;b6dri1MgIj0Tme24osevelt,ssi,ux;erts,ins1;c6ve0F;ci,hards1;ir2os;aEeAh8ic6ow20;as6hl0;so;a6illips;m,n1T;ders5et8r7t6;e0Nr4;ez,ry;ers;h21rk0t6vl4;el,te0J;baBg0Blivei01r6;t6w1O;ega,iz;a6eils1guy5ix1owak,ym1E;gy,ka6var1K;ji6muW;ma;aEeCiBo8u6;ll0n6rr0Bssolini,ñ6;oz;lina,oKr6zart;al0Me6r0U;au,no;hhail4ll0;rci0ssi6y0;!er;eWmmad4r6tsu07;in6tin2;!o;aCe8i6op2uo;!n6u;coln,dholm;fe7n0Qr6w0J;oy;bv6v6;re;mmy,rs5u;aBennedy,imuAle0Lo8u7wo6;k,n;mar,znets4;bay6vacs;asY;ra;hn,rl9to,ur,zl4;aAen9ha3imen2o6u3;h6nYu3;an6ns1;ss1;ki0Es5;cks1nsse0D;glesi9ke8noue,shik7to,vano6;u,v;awa;da;as;aBe8itchcock,o7u6;!a3b0ghNynh;a3ffmann,rvat;mingw7nde6rN;rs1;ay;ns5rrQs7y6;asDes;an4hi6;moJ;a9il,o8r7u6;o,tierr2;ayli3ub0;m2nzal2;nd6o,rcia;hi;erAis9lor8o7uj6;ita;st0urni0;es;ch0;nand2;d7insteHsposi6vaL;to;is1wards;aCeBi9omin8u6;bo6rand;is;gu2;az,mitr4;ov;lgado,vi;nkula,rw7vi6;es,s;in;aFhBlarkAo6;h5l6op0rbyn,x;em7li6;ns;an;!e;an8e7iu,o6ristens5u3we;i,ng,u3w,y;!n,on6u3;!g;mpb7rt0st6;ro;ell;aBe8ha3lanco,oyko,r6yrne;ooks,yant;ng;ck7ethov5nnett;en;er,ham;ch,h8iley,rn6;es,i0;er;k,ng;dDl9nd6;ers6rA;en,on,s1;on;eks7iy8var2;ez;ej6;ev;ams", - "MaleName": "true¦0:CE;1:BL;2:C2;3:BT;4:B5;5:9V;6:BZ;7:AT;8:BD;9:AX;A:AO;aB4bA8c97d87e7Gf6Yg6Gh5Wi5Ij4Lk4Bl3Rm2Pn2Eo28p22qu20r1As0Qt06u05v00wNxavi3yGzB;aBor0;cBh8Ine;hCkB;!aB1;ar51eB0;ass2i,oCuB;sDu25;nEsDusB;oBsC;uf;ef;at0g;aJeHiCoByaAP;lfgang,odrow;lBn1O;bDey,frBJlB;aA5iB;am,e,s;e89ur;i,nde5sB;!l7t1;de,lCrr6yB;l1ne;lBt3;a93y;aEern1iB;cCha0nceBrg9Bva0;!nt;ente,t5A;lentin49n8Yughn;lyss4Msm0;aTeOhKiIoErCyB;!l3ro8s1;av9QeBist0oy,um0;nt9Iv54y;bDd7XmBny;!as,mBoharu;aAYie,y;i83y;mBt9;!my,othy;adDeoCia7DomB;!as;!do7M;!de9;dErB;en8HrB;an8GeBy;ll,n8F;!dy;dgh,ic9Tnn3req,ts45;aRcotPeNhJiHoFpenc3tBur1Oylve8Hzym1;anDeBua7B;f0phAFvBwa7A;e57ie;!islaw,l7;lom1nA3uB;leyma8ta;dBl7Jm1;!n7;aDeB;lBrm0;d1t1;h6Sne,qu0Uun,wn,y8;aBbasti0k1Xl41rg40th,ymo9I;m9n;!tB;!ie,y;lCmBnti21q4Iul;!mAu4;ik,vato6V;aWeShe92iOoFuCyB;an,ou;b6LdCf9pe6QssB;!elAI;ol2Uy;an,bIcHdGel,geFh0landA9mEnDry,sCyB;!ce;coe,s;!a95nA;an,eo;l3Jr;e4Qg3n7olfo,ri68;co,ky;bAe9U;cBl7;ar5Oc5NhCkBo;!ey,ie,y;a85ie;gCid,ub6x,yBza;ansh,nS;g8WiB;na8Ss;ch5Yfa4lDmCndBpha4sh6Uul,ymo70;al9Yol2By;i9Ion;f,ph;ent2inB;cy,t1;aFeDhilCier62ol,reB;st1;!ip,lip;d9Brcy,tB;ar,e2V;b3Sdra6Ft44ul;ctav2Vliv3m96rFsCtBum8Uw6;is,to;aCc8SvB;al52;ma;i,l49vJ;athJeHiDoB;aBel,l0ma0r2X;h,m;cCg4i3IkB;h6Uola;hol5XkBol5X;!ol5W;al,d,il,ls1vB;il50;anBy;!a4i4;aWeTiKoFuCyB;l21r1;hamCr5ZstaB;fa,p4G;ed,mF;dibo,e,hamDis1XntCsBussa;es,he;e,y;ad,ed,mB;ad,ed;cGgu4kElDnCtchB;!e5;a78ik;house,o03t1;e,olB;aj;ah,hBk7;a4eB;al,l;hClv2rB;le,ri5v2;di,met;ck,hNlLmOnu4rHs1tDuricCxB;!imilian8Cwe5;e,io;eo,hCi52tB;!eo,hew,ia;eBis;us,w;cDio,k86lCqu6Gsha5tBv2;i2Hy;in,on;!el,oKus;achBcolm,ik;ai,y;amBdi,moud;adB;ou;aReNiMlo2RoIuCyB;le,nd1;cEiDkBth3;aBe;!s;gi,s;as,iaB;no;g0nn6RrenDuBwe5;!iB;e,s;!zo;am,on4;a7Bevi,la4SnDoBst3vi;!nB;!a60el;!ny;mCnBr67ur4Twr4T;ce,d1;ar,o4N;aIeDhaled,iBrist4Vu48y3B;er0p,rB;by,k,ollos;en0iEnBrmit,v2;!dCnBt5C;e0Yy;a5ri4N;r,th;na68rBthem;im,l;aYeQiOoDuB;an,liBst2;an,o,us;aqu2eJhnInGrEsB;eChBi7Bue;!ua;!ph;dBge;an,i,on;!aBny;h,s,th4X;!ath4Wie,nA;!l,sBy;ph;an,e,mB;!mA;d,ffGrDsB;sBus;!e;a5JemCmai8oBry;me,ni0O;i6Uy;!e58rB;ey,y;cHd6kGmFrDsCvi3yB;!d6s1;on,p3;ed,od,rBv4M;e4Zod;al,es,is1;e,ob,ub;k,ob,quB;es;aNbrahMchika,gKkeJlija,nuIrGsDtBv0;ai,sB;uki;aBha0i6Fma4sac;ac,iaB;h,s;a,vinBw2;!g;k,nngu52;!r;nacBor;io;im;in,n;aJeFina4VoDuByd56;be25gBmber4CsD;h,o;m3ra33sBwa3X;se2;aDctCitCn4ErB;be20m0;or;th;bKlJmza,nIo,rDsCyB;a43d6;an,s0;lEo4FrDuBv7;hi40ki,tB;a,o;is1y;an,ey;k,s;!im;ib;aQeMiLlenKoIrEuB;illerCsB;!tavo;mo;aDegBov3;!g,orB;io,y;dy,h57nt;nzaBrd1;lo;!n;lbe4Qno,ovan4R;ne,oDrB;aBry;ld,rd4U;ffr7rge;bri4l6rBv2;la1Zr3Eth,y;aReNiLlJorr0IrB;anDedBitz;!dAeBri24;ri23;cDkB;!ie,lB;in,yn;esJisB;!co,zek;etch3oB;yd;d4lBonn;ip;deriDliCng,rnB;an01;pe,x;co;bi0di;arZdUfrTit0lNmGnFo2rCsteb0th0uge8vBym6zra;an,ere2V;gi,iCnBrol,v2w2;est45ie;c07k;och,rique,zo;aGerFiCmB;aFe2P;lCrB;!h0;!io;s1y;nu4;be09d1iEliDmCt1viBwood;n,s;er,o;ot1Ts;!as,j43sB;ha;a2en;!dAg32mEuCwB;a25in;arB;do;o0Su0S;l,nB;est;aYeOiLoErDuCwByl0;ay8ight;a8dl7nc0st2;ag0ew;minFnDri0ugCyB;le;!l03;!a29nBov0;e5ie,y;go,icB;!k;armuCeBll1on,rk;go;id;anIj0lbeHmetri9nFon,rEsDvCwBxt3;ay8ey;en,in;hawn,mo08;ek,ri0F;is,nBv3;is,y;rt;!dB;re;lKmInHrDvB;e,iB;!d;en,iDne5rByl;eBin,yl;l2Vn;n,o,us;!e,i4ny;iBon;an,en,on;e,lB;as;a06e04hWiar0lLoGrEuCyrB;il,us;rtB;!is;aBistobal;ig;dy,lEnCrB;ey,neli9y;or,rB;ad;by,e,in,l2t1;aGeDiByI;fBnt;fo0Ct1;meCt9velaB;nd;nt;rDuCyB;!t1;de;enB;ce;aFeErisCuB;ck;!tB;i0oph3;st3;d,rlBs;eBie;s,y;cBdric,s11;il;lEmer1rB;ey,lCro5y;ll;!os,t1;eb,v2;ar02eUilTlaSoPrCuByr1;ddy,rtI;aJeEiDuCyB;an,ce,on;ce,no;an,ce;nCtB;!t;dCtB;!on;an,on;dCndB;en,on;!foBl7y;rd;bCrByd;is;!by;i8ke;al,lA;nFrBshoi;at,nCtB;!r10;aBie;rd0S;!edict,iCjam2nA;ie,y;to;n7rBt;eBy;tt;ey;ar0Xb0Nd0Jgust2hm0Gid6ja0ElZmXnPputsiOrFsaEuCveBya0ziz;ry;gust9st2;us;hi;aIchHi4jun,maFnDon,tBy0;hBu06;ur;av,oB;ld;an,nd0A;el;ie;ta;aq;dGgel05tB;hoEoB;i8nB;!i02y;ne;ny;reBy;!as,s,w;ir,mBos;ar;an,beOd6eIfFi,lEonDphonHt1vB;aMin;on;so,zo;an,en;onCrB;edP;so;c,jaEksandDssaExB;!and3;er;ar,er;ndB;ro;rtH;ni;en;ad,eB;d,t;in;aColfBri0vik;!o;mBn;!a;dFeEraCuB;!bakr,lfazl;hBm;am;!l;allEel,oulaye,ulB;!lCrahm0;an;ah,o;ah;av,on", + "MaleName": "true¦0:CE;1:BL;2:C2;3:BT;4:B5;5:9V;6:BZ;7:AT;8:BD;9:AX;A:AO;aB4bA8c97d87e7Gf6Yg6Gh5Wi5Ij4Lk4Bl3Rm2Pn2Eo28p22qu20r1As0Qt06u05v00wNxavi3yGzB;aBor0;cBh8Ine;hCkB;!aB1;ar51eB0;ass2i,oCuB;sDu25;nEsDusB;oBsC;uf;ef;at0g;aJeHiCoByaAP;lfgang,odrow;lBn1O;bDey,frBJlB;aA5iB;am,e,s;e89ur;i,nde5sB;!l7t1;de,lCrr6yB;l1ne;lBt3;a93y;aEern1iB;cCha0kt5CnceBrg9Bva0;!nt;ente,t5A;lentin49n8Yughn;lyss4Msm0;aTeOhKiIoErCyB;!l3ro8s1;av9QeBist0oy,um0;nt9Iv54y;bDd7XmBny;!as,mBoharu;aAYie,y;i83y;mBt9;!my,othy;adDeoCia7DomB;!as;!do7M;!de9;dErB;en8HrB;an8GeBy;ll,n8F;!dy;dgh,ic9Tnn3req,ts45;aRcotPeNhJiHoFpenc3tBur1Oylve8Hzym1;anDeBua7B;f0phAFvBwa7A;e57ie;!islaw,l7;lom1nA3uB;leyma8ta;dBl7Jm1;!n7;aDeB;lBrm0;d1t1;h6Sne,qu0Uun,wn,y8;aBbasti0k1Xl41rg40th,ymo9I;m9n;!tB;!ie,y;lCmBnti21q4Iul;!mAu4;ik,vato6V;aWeShe92iOoFuCyB;an,ou;b6LdCf9pe6QssB;!elAI;ol2Uy;an,bIcHdGel,geFh0landA9mEnDry,sCyB;!ce;coe,s;!a95nA;an,eo;l3Jr;e4Qg3n7olfo,ri68;co,ky;bAe9U;cBl7;ar5Oc5NhCkBo;!ey,ie,y;a85ie;gCid,ub6x,yBza;ansh,nS;g8WiB;na8Ss;ch5Yfa4lDmCndBpha4sh6Uul,ymo70;al9Yol2By;i9Ion;f,ph;ent2inB;cy,t1;aFeDhilCier62ol,reB;st1;!ip,lip;d9Brcy,tB;ar,e2V;b3Sdra6Ft44ul;ctav2Vliv3m96rFsCtBum8Uw6;is,to;aCc8SvB;al52;ma;i,l49vJ;athJeHiDoB;aBel,l0ma0r2X;h,m;cCg4i3IkB;h6Uola;hol5XkBol5X;!ol5W;al,d,il,ls1vB;il50;anBy;!a4i4;aWeTiKoFuCyB;l21r1;hamCr5ZstaB;fa,p4G;ed,mF;dibo,e,hamDis1XntCsBussa;es,he;e,y;ad,ed,mB;ad,ed;cGgu4kElDnCtchB;!e5;a78ik;house,o03t1;e,olB;aj;ah,hBk7;a4eB;al,l;hClv2rB;le,ri5v2;di,met;ck,hNlLmOnu4rHs1tDuricCxB;!imilian8Cwe5;e,io;eo,hCi52tB;!eo,hew,ia;eBis;us,w;cDio,k86lCqu6Gsha5tBv2;i2Hy;in,on;!el,oKus;achBcolm,ik;ai,y;amBdi,moud;adB;ou;aReNiMlo2RoIuCyB;le,nd1;cEiDkBth3;aBe;!s;gi,s;as,iaB;no;g0nn6RrenDuBwe5;!iB;e,s;!zo;am,on4;a7Bevi,la4SnDoBst3vi;!nB;!a60el;!ny;mCnBr67ur4Twr4T;ce,d1;ar,o4N;aIeDhaled,iBrist4Vu48y3B;er0p,rB;by,k,ollos;en0iEnBrmit,v2;!dCnBt5C;e0Yy;a5ri4N;r,th;na68rBthem;im,l;aYeQiOoDuB;an,liBst2;an,o,us;aqu2eJhnInGrEsB;eChBi7Bue;!ua;!ph;dBge;an,i,on;!aBny;h,s,th4X;!ath4Wie,nA;!l,sBy;ph;an,e,mB;!mA;d,ffGrDsB;sBus;!e;a5JemCmai8oBry;me,ni0O;i6Uy;!e58rB;ey,y;cHd6kGmFrDsCvi3yB;!d6s1;on,p3;ed,od,rBv4M;e4Zod;al,es,is1;e,ob,ub;k,ob,quB;es;aNbrahMchika,gKkeJlija,nuIrGsDtBv0;ai,sB;uki;aBha0i6Fma4sac;ac,iaB;h,s;a,vinBw2;!g;k,nngu52;!r;nacBor;io;im;in,n;aJeFina4VoDuByd56;be25gBmber4CsD;h,o;m3ra33sBwa3X;se2;aDctCitCn4ErB;be20m0;or;th;bKlJmza,nIo,rDsCyB;a43d6;an,s0;lEo4FrDuBv7;hi40ki,tB;a,o;is1y;an,ey;k,s;!im;ib;aQeMiLlenKoIrEuB;illerCsB;!tavo;mo;aDegBov3;!g,orB;io,y;dy,h57nt;nzaBrd1;lo;!n;lbe4Qno,ovan4R;ne,oDrB;aBry;ld,rd4U;ffr7rge;bri4l6rBv2;la1Zr3Eth,y;aReNiLlJorr0IrB;anDedBitz;!dAeBri24;ri23;cDkB;!ie,lB;in,yn;esJisB;!co,zek;etch3oB;yd;d4lBonn;ip;deriDliCng,rnB;an01;pe,x;co;bi0di;arZdUfrTit0lNmGnFo2rCsteb0th0uge8vBym6zra;an,ere2V;gi,iCnBrol,v2w2;est45ie;c07k;och,rique,zo;aGerFiCmB;aFe2P;lCrB;!h0;!io;s1y;nu4;be09d1iEliDmCt1viBwood;n,s;er,o;ot1Ts;!as,j43sB;ha;a2en;!dAg32mEuCwB;a25in;arB;do;o0Su0S;l,nB;est;aYeOiLoErDuCwByl0;ay8ight;a8dl7nc0st2;ag0ew;minFnDri0ugCyB;le;!l03;!a29nBov0;e5ie,y;go,icB;!k;armuCeBll1on,rk;go;id;anIj0lbeHmetri9nFon,rEsDvCwBxt3;ay8ey;en,in;hawn,mo08;ek,ri0F;is,nBv3;is,y;rt;!dB;re;lKmInHrDvB;e,iB;!d;en,iDne5rByl;eBin,yl;l2Vn;n,o,us;!e,i4ny;iBon;an,en,on;e,lB;as;a06e04hWiar0lLoGrEuCyrB;il,us;rtB;!is;aBistobal;ig;dy,lEnCrB;ey,neli9y;or,rB;ad;by,e,in,l2t1;aGeDiByI;fBnt;fo0Ct1;meCt9velaB;nd;nt;rDuCyB;!t1;de;enB;ce;aFeErisCuB;ck;!tB;i0oph3;st3;d,rlBs;eBie;s,y;cBdric,s11;il;lEmer1rB;ey,lCro5y;ll;!os,t1;eb,v2;ar02eUilTlaSoPrCuByr1;ddy,rtI;aJeEiDuCyB;an,ce,on;ce,no;an,ce;nCtB;!t;dCtB;!on;an,on;dCndB;en,on;!foBl7y;rd;bCrByd;is;!by;i8ke;al,lA;nFrBshoi;at,nCtB;!r10;aBie;rd0S;!edict,iCjam2nA;ie,y;to;n7rBt;eBy;tt;ey;ar0Xb0Nd0Jgust2hm0Gid6ja0ElZmXnPputsiOrFsaEuCveBya0ziz;ry;gust9st2;us;hi;aIchHi4jun,maFnDon,tBy0;hBu06;ur;av,oB;ld;an,nd0A;el;ie;ta;aq;dGgel05tB;hoEoB;i8nB;!i02y;ne;ny;reBy;!as,s,w;ir,mBos;ar;an,beOd6eIfFi,lEonDphonHt1vB;aMin;on;so,zo;an,en;onCrB;edP;so;c,jaEksandDssaExB;!and3;er;ar,er;ndB;ro;rtH;ni;en;ad,eB;d,t;in;aColfBri0vik;!o;mBn;!a;dFeEraCuB;!bakr,lfazl;hBm;am;!l;allEel,oulaye,ulB;!lCrahm0;an;ah,o;ah;av,on", "Person": "true¦ashton kutchSbRcMdKeIgastNhGinez,jEkDleCmBnettJoAp8r4s3t2v0;a0irgin maG;lentino rossi,n go3;heresa may,iger woods,yra banks;addam hussain,carlett johanssJlobodan milosevic,uB;ay romano,eese witherspoIo1ush limbau0;gh;d stewart,nald0;inho,o;a0ipJ;lmIris hiltD;prah winfrFra;essiaen,itt romnEubarek;bron james,e;anye west,iefer sutherland,obe bryant;aime,effers8k rowli0;ng;alle ber0itlBulk hogan;ry;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0ruz;on;dinal wols1son0;! palm2;ey;arack obama,rock;er", "Verb": "true¦awak9born,cannot,fr8g7h5k3le2m1s0wors9;e8h3;ake sure,sg;ngth6ss6;eep tabs,n0;own;as0e2;!t2;iv1onna;ight0;en", "PhrasalVerb": "true¦0:72;1:6Q;2:7E;3:74;4:6J;5:7H;6:76;7:6P;8:6C;9:6D;A:5I;B:71;C:70;a7Hb63c5Dd5Ae58f46g3Oh38iron0j34k2Zl2Km2Bn29o27p1Pr1Es09tQuOvacuum 1wGyammerCzD;eroAip EonD;e0k0;by,up;aJeGhFiEorDrit53;d 1k2R;mp0n4Ape0r8s8;eel Bip 7L;aEiD;gh 06rd0;n Br 3D;it 5Kk8lk6rm 0Qsh 74t67v4P;rgeCsD;e 9herA;aRePhNiJoHrFuDype 0N;ckArn D;d2in,o3Gup;ade YiDot0y 28;ckle68p 7A;ne67p Ds4D;d2o6Lup;ck FdEe Dgh5Tme0p o0Dre0;aw3ba4d2in,up;e5Ky 1;by,o6V;ink Drow 5V;ba4ov7up;aDe 4Ill4O;m 1r W;ckCke Elk D;ov7u4O;aDba4d2in,o31up;ba4ft7p4Tw3;a0Gc0Fe09h05i02lYmXnWoVpSquare RtJuHwD;earFiD;ngEtch D;aw3ba4o6P; by;ck Dit 1m 1ss0;in,up;aIe0RiHoFrD;aigh1MiD;ke 5Yn2Y;p Drm1P;by,in,o6B;n2Zr 1tc3I;c2Ymp0nd Dr6Hve6y 1;ba4d2up;d2o67up;ar2Vell0ill4UlErDurC;ingCuc8;a33it 3U;be4Crt0;ap 4Eow B;ash 4Zoke0;eep EiDow 9;c3Np 1;in,oD;ff,v7;gn Eng2Zt Dz8;d2o5up;in,o5up;aFoDu4F;ot Dut0w 5X;aw3ba4f37o5R;c2FdeAk4Sve6;e Hll0nd GtD; Dtl43;d2in,o5upD;!on;aw3ba4d2in,o1Yup;o5to;al4Lout0rap4L;il6v8;at0eKiJoGuD;b 4Ele0n Dstl8;aDba4d2in53o3Gt30u3E;c1Xw3;ot EuD;g2Knd6;a1Xf2Ro5;ng 4Op6;aDel6inAnt0;c4Yd D;o2Tu0C;aQePiOlMoKrHsyc2AuD;ll Ft D;aDba4d2in,o1Ht34up;p39w3;ap38d2in,o5t32up;attleCess EiGoD;p 1;ah1Hon;iDp 53re3Mur45wer 53;nt0;ay3ZuD;gAmp 9;ck 53g0leCn 9p3W;el 47ncilA;c3Pir 2In0ss FtEy D;ba4o4R; d2c1Y;aw3ba4o12;pDw3K;e3Jt B;arrow3Terd0oD;d6te3S;aJeHiGoEuD;ddl8ll37;c17p 1uth6ve D;al3Bd2in,o5up;ss0x 1;asur8lt 9ss D;a1Aup;ke Dn 9r30s1Lx0;do,o3Yup;aPeNiIoDuck0;a17c37g GoDse0;k Dse35;aft7ba4d2forw2Bin3Wov7uD;nd7p;in,o0J;e GghtFnEsDv1T;ten 4D;e 1k 1; 1e2Y;ar43d2;av1Ht 2YvelD; o3L;p 1sh DtchCugh6y1U;in3Lo5;eEick6nock D;d2o3H;eDyA;l2Hp D;aw3ba4d2fSin,o05to,up;aFoEuD;ic8mpA;ke2St2W;c31zz 1;aPeKiHoEuD;nker2Ts0U;lDneArse2O;d De 1;ba4d2fast,oZup;de Et D;ba4on,up;aw3o5;aDlp0;d Fl22r Dt 1;fDof;rom;in,oRu1A;cZm 1nDve it,ze1Y;d Dg 27kerF;d2in,o5;aReLive Jloss1VoFrEunD; f0M;in39ow 23; Dof 0U;aEb17it,oDr35t0Ou12;ff,n,v7;bo5ft7hJw3;aw3ba4d2in,oDup,w3;ff,n,ut;a17ek0t D;aEb11d2oDr2Zup;ff,n,ut,v7;cEhDl1Pr2Xt,w3;ead;ross;d aEnD;g 1;bo5;a08e01iRlNoJrFuD;cDel 1;k 1;eEighten DownCy 1;aw3o2L;eDshe1G; 1z8;lFol D;aDwi19;bo5r2I;d 9;aEeDip0;sh0;g 9ke0mDrD;e 2K;gLlJnHrFsEzzD;le0;h 2H;e Dm 1;aw3ba4up;d0isD;h 1;e Dl 11;aw3fI;ht ba4ure0;eInEsD;s 1;cFd D;fDo1X;or;e B;dQl 1;cHll Drm0t0O;apYbFd2in,oEtD;hrough;ff,ut,v7;a4ehi1S;e E;at0dge0nd Dy8;o1Mup;o09rD;ess 9op D;aw3bNin,o15;aShPlean 9oDross But 0T;me FoEuntD; o1M;k 1l6;aJbIforGin,oFtEuD;nd7;ogeth7;ut,v7;th,wD;ard;a4y;pDr19w3;art;eDipA;ck BeD;r 1;lJncel0rGsFtch EveA; in;o16up;h Bt6;ry EvD;e V;aw3o12;l Dm02;aDba4d2o10up;r0Vw3;a0He08l01oSrHuD;bbleFcklTilZlEndlTrn 05tDy 10zz6;t B;k 9; ov7;anMeaKiDush6;ghHng D;aEba4d2forDin,o5up;th;bo5lDr0Lw3;ong;teD;n 1;k D;d2in,o5up;ch0;arKgJil 9n8oGssFttlEunce Dx B;aw3ba4;e 9; ar0B;k Bt 1;e 1;d2up; d2;d 1;aIeed0oDurt0;cFw D;aw3ba4d2o5up;ck;k D;in,oK;ck0nk0st6; oJaGef 1nd D;d2ov7up;er;up;r0t D;d2in,oDup;ff,ut;ff,nD;to;ck Jil0nFrgEsD;h B;ainCe B;g BkC; on;in,o5; o5;aw3d2o5up;ay;cMdIsk Fuction6; oD;ff;arDo5;ouD;nd;d D;d2oDup;ff,n;own;t D;o5up;ut", "Modal": "true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to;ay,ight,ust;an,o0;uld", "Adjective": "true¦0:73;1:7I;2:7O;3:7H;4:7A;5:5B;6:4R;7:49;8:48;9:60;A:7F;a6Eb60c5Md52e4Pf45g3Xh3Mi31j2Zk2Yl2Nm2Cn23o1Np16quack,r0Ws0Ct05uMvJwByear5;arp0eFholeEiDoB;man5oBu67;d69zy;despr6Zs5B;!sa7;eClBste22;co1El o4H;!k5;aCiBola47;b7Nce versa,ol50;ca2gabo5Ynilla;ltSnFpCrb55su4tterB;!mo6U; f30b1KpCsBti1D;ca7et,ide dItairs;er,i3J;aLbeco6Lconvin23deIeHfair,ivers4knGprecedUrEsCwB;iel1Writt5U;i1RuB;pervis0specti3;eBu5;cognHgul6Bl6B;own;ndi3v5Oxpect0;cid0rB;!grou5JsB;iz0tood;b7ppeaHssu6AuthorB;iz0;i20ra;aFeDhough4KoCrB;i1oubl0;geth6p,rp6B;en5LlBm4Vrr2Q;li3;boo,lBn;ent0;aTcSeQhPiNmug,nobbi3AoLpKqueami3AtFuBymb5Y;bDi gener50pBrprisi3;erBre0H;! dup6b,i25;du0seq4P;anda6OeEi0LrBy34;aightBip0; fBfB;or56;adfa5Wreotyp0;a4Uec2Cir1Flend5Wot on; call0le,mb6phist1TrBu0Tvi3X;d5Ury;gnifica2nB;ce4Qg7;am2Le6ocki3ut;cBda1em5lfi2Uni1Spa63re8;o1Cr3R;at53ient24reec53;cr0me,ns serif;aIeEiCoB;bu5Ktt4PuOy4;ghtBv4;!-25f9;ar,bel,condi1du5Xfres4XlDpublic3RsBtard0;is43oB;lu1na2;e1Auc41;b5EciB;al,st;aMeKicayu8lac5Copuli5BrCuB;bl54mp0;eFiCoB;!b06fu5Cmi2Xp6;mCor,sBva1;ti8;a4Re;ci58mB;a0EiB;er,um;ac1WrBti1;feAma2Pplexi3v2Z;rBst;allelDtB;-tiBi4;me;!ed;bMffKkJld fashion0nIpHrg1Dth6utGvB;al,erB;!aDniCt,wB;eiBrouB;ght;ll;do0Rer,g2Hsi41;en,posi1; boa5Ag2Fli8;!ay; gua58bBli8;eat;eDsB;cBer0Dole1;e8u3F;d2Ose;ak0eIiHoBua4J;nFrCtB;ab7;thB;!eB;rn;chala2descri4Ustop;ght5;arby,cessa3Sighbor5xt;aJeHiEoBultip7;bi7derClBnth5ot,st;dy;a1n;nBx0;iaBor;tu2Y;di49naBre;ci3;cBgenta,in,jZkeshift,le,mmoth,ny,sculi8;ab2Uho;aKeFiCoBu0Z;uti0Yvi3;mCteraB;l,te;it0;ftEgBth4;al,eCitiB;ma1;nda38;!-08;ngu3Lst,tt6;ap1Oind5no06;agg0uB;niKstifi0veni7;de4gno46lleg4mOnDpso 1RrB;a1releB;va2; JaIbr0corHdFfluenPiPnEsDtB;aAen3GoxB;ic31;a8i2N;a1er,oce2;iCoB;or;reA;deq3Eppr2T;fBsitu,vitro;ro2;mFpB;arDerfeAoBrop6;li1rtB;a2ed;ti4;eBi0M;d2Ln30;aGelFiDoBumdr36;ne2Uok0rrBs03ur5;if2N;ghfalut1KspB;an2L;liVpf9;lEnDrB;d01roB;wi3;dy,gi3;f,low0;ainf9ener2Eiga1YlHoGraDuB;ilBng ho;ty;cCtB;ef9is;ef9;ne,od;ea28ob4;aQeKinJlIoDrB;a1PeBoz1G;e28q0Ytf9;oDrB; keeps,eBm6tuna1;g00ign;liB;sh;ag2Uue2;al,i1;dFmCrB;ti7;a7ini8;ne;le; up;bl0i2l20r Cux,voB;ri1uri1;oBreac1A;ff;aJfficie2lImiHnFreAthere4veExB;aAcess,pe1JtraCuB;be2Gl0D;!va19;n,ryday; Bcouragi3ti0M;rou1sui1;ne2;abo1YdMe14i1;g6sB;t,ygB;oi3;er;aReJiDoBrea11ue;mina2ne,ubB;le,tf9;dact16fficu1JsCvB;er1F;creDeas0gruntl0hone1AordCtB;a2ress0;er5;et; HadpGfFgene1KliDrang0spe1KtCvoB;ut;ail0ermin0;be1Hca1ghB;tf9;ia2;an;facto;i5magBngeroVs0E;ed,i3;ly;ertaNhief,ivil,oDrB;aBowd0u0D;mp0vYz0;loJmHnCoi3rrBve0K;eAu1D;cre1grEsDtB;emBra0B;po09;ta2;ue2;mer04pleB;te,x;ni4ss4;in;aLeHizarGlFoCrB;and new,isk,okL;gCna fiSttom,urgeoB;is;us;ank,iE;re;autif9hiClov0nBst,yoC;eRt;nd;ul;ckCnkru0SrrB;en;!wards; priori,b0Ic0Fd05fra04g00hZlUma01ntiquTppQrKsIttracti02utheHvEwB;aCkB;wa0P;ke,re;ant garCerB;age;de;ntQ;leep,tonisB;hi3;ab,bitEroDtiB;fiB;ci4;ga2;raB;ry;are2etiLrB;oprB;ia1;at0;arEcohCeBiIl,oof;rt;olB;ic;mi3;ead;ainDgressiConiB;zi3;ve;st;id; IeGuFvB;aCerB;se;nc0;ed;lt;pt,qB;ua1;hoc,infinitB;um;cuCtu4u1;al;ra1;erLlKoIruHsCuB;nda2;e2oCtraA;ct;lu1rbi3;ng;te;pt;aBve;rd;aze,e;ra2;nt", "Comparable": "true¦0:3Z;1:4G;2:43;3:2W;4:49;5:3V;a4Mb42c3Md3Be33f2Pg2Dh22i1Tj1Sk1Pl1Hm1Bn15o13p0Tqu0Rr0IsRtKuIvFw7y6za11;ell25ou4;aBe9hi1Wi7r6;o4y;ck0Mde,l6n1ry,se;d,y;a6i4Kt;k,ry;n1Rr6sI;m,y;a7e6ulgar;nge5rda2xi4;gue,in,st;g0n6pco3Kse5;like0ti1;aAen9hi8i7ough,r6;anqu2Oen1ue;dy,g3Sme0ny,r09;ck,n,rs2P;d40se;ll,me,rt,s6wd45;te5;aVcarUeThRiQkin0FlMmKoHpGqua1FtAu7w6;eet,ift;b7dd13per0Gr6;e,re2H;sta2Ft3;aAe9iff,r7u6;pXr1;a6ict,o4;ig3Fn0U;a1ep,rn;le,rk;e22i3Fright0;ci28ft,l7o6re,ur;n,thi4;emn,id;a6el0ooth;ll,rt;e8i6ow,y;ck,g35m6;!y;ek,nd3D;ck,l0mp3;a6iTort,rill,y;dy,ll0Xrp;cu0Rve0Rxy;ce,ed,y;d,fe,int0l1Vv14;aBe9i8o6ude;mantic,o1Isy,u6;gh,nd;ch,pe,tzy;a6d,mo0H;dy,l;gg7ndom,p6re,w;id;ed;ai2i6;ck,et;aEhoDi1QlCoBr8u6;ny,r6;e,p3;egna2ic7o6;fouYud;ey,k0;li04or,te1B;ain,easa2;ny;in5le;dd,f6i0ld,ranQ;fi10;aAe8i7o6;b3isy,rm15sy;ce,mb3;a6w;r,t;ive,rr01;aAe8ild,o7u6;nda19te;ist,o1;a6ek,llX;n,s0ty;d,tuQ;aBeAi9o6ucky;f0Un7o1Du6ve0w17y0T;d,sy;e0g;g1Tke0tt3ve0;an,wd;me,r6te;ge;e7i6;nd;en;ol0ui1P;cy,ll,n6;sBt6;e6ima8;llege2r6;es7media6;te;ti4;ecu6ta2;re;aEeBiAo8u6;ge,m6ng1R;b3id;ll6me0t;ow;gh,l0;a6f04sita2;dy,v6;en0y;nd1Hppy,r6te5;d,sh;aGenFhDiClBoofy,r6;a9e8is0o6ue1E;o6ss;vy;at,en,y;nd,y;ad,ib,ooI;a2d1;a6o6;st0;t3uiY;u1y;aIeeb3iDlat,oAr8u6;ll,n6r14;!ny;aHe6iend0;e,sh;a7r6ul;get5mG;my;erce8n6rm,t;an6e;ciC;! ;le;ir,ke,n0Fr,st,t,ulA;aAerie,mp9sse7v6xtre0Q;il;nti6;al;ty;r7s6;tern,y;ly,th0;aFeCi9r7u6;ll,mb;u6y;nk;r7vi6;ne;e,ty;a6ep,nD;d6f,r;!ly;mp,pp03rk;aHhDlAo8r7u6;dd0r0te;isp,uel;ar6ld,mmon,ol,st0ward0zy;se;e6ou1;a6vW;n,r;ar8e6il0;ap,e6;sy;mi4;gey,lm8r6;e5i4;ful;!i4;aNiLlIoEr8u6;r0sy;ly;aAi7o6;ad,wn;ef,g7llia2;nt;ht;sh,ve;ld,r7un6;cy;ed,i4;ng;a7o6ue;nd,o1;ck,nd;g,tt6;er;d,ld,w1;dy;bsu9ng8we6;so6;me;ry;rd", - "TextValue": "true¦bMeIfChundredNmMnin9one,qu8s6t0zeroN;enMh3rLw0;e0o;l0ntC;fGve;ir0ousandIree;d,t5;e0ix7;cond,ptEven6xtE;adrDintD;e0th;!t0;e9ie8y;i3o0;rt1ur0;!t2;ie4y;ft0rst,ve;e3h,ie2y;ight0lev2;!e1h,ie0y;th;en1;illion0;!th", + "TextValue": "true¦bOeJfDhundredNmOninAone,qu8s6t0zeroN;enMh3rNw0;e0o;l0ntD;fHve;ir0ousandKree;d,t6;e0ix8;cond,pt1ven7xt1;adr0int0;illionD;e0th;!t0;e9ie8y;i3o0;rt1ur0;!t2;ie4y;ft0rst,ve;e3h,ie2y;ight0lev2;!e1h,ie0y;th;en0;!th;illion0;!s,th", "Ordinal": "true¦bGeDf9hundredHmGnin7qu6s4t0zeroH;enGh1rFwe0;lfFn9;ir0ousandE;d,t4;e0ixt9;cond,ptAvent8xtA;adr9int9;et0th;e6ie8;i2o0;r0urt3;tie5;ft1rst;ight0lev1;e0h,ie2;en1;illion0;th", - "Cardinal": "true¦bGeDf7hundred,mGnine9one,qu6s4t0zero;en,h2rFw0;e0o;lve,n7;irt8ousand,ree;e0ix4;ptAven3xtA;adr9int9;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illion", + "Cardinal": "true¦bHeEf8hundred,mHnineAone,qu6s4t0zero;en,h2rGw0;e0o;lve,n8;irt9ousandEree;e0ix5;pt1ven4xt1;adr0int0;illion;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illion0;!s", "Expression": "true¦a02b01dXeVfuck,gShLlImHnGoDpBshAtsk,u7voi04w3y0;a1eLu0;ck,p;!a,hoo,y;h1ow,t0;af,f;e0oa;e,w;gh,h0;! 0h,m;huh,oh;eesh,hh,it;ff,hew,l0sst;ease,z;h1o0w,y;h,o,ps;!h;ah,ope;eh,mm;m1ol0;!s;ao,fao;a4e2i,mm,oly1urr0;ah;! mo6;e,ll0y;!o;ha0i;!ha;ah,ee,o0rr;l0odbye;ly;e0h,t cetera,ww;k,p;'oh,a0uh;m0ng;mit,n0;!it;ah,oo,ye; 1h0rgh;!em;la", "Adverb": "true¦a07by 05d01eYfShQinPjustOkinda,mMnJoEpCquite,r9s5t2up1very,w0Bye0;p,s; to,wards5;h1o0wiO;o,t6ward;en,us;everal,o0uch;!me1rt0; of;hXtimes,w07;a1e0;alS;ndomRthN;ar excellDer0oint blank; Mhaps;f3n0;ce0ly;! 0;ag00moU; courHten;ewJo0; longEt 0;onHwithstanding;aybe,eanwhiAore0;!ovB;! aboS;deed,steT;en0;ce;or2u0;l9rther0;!moH; 0ev3;examp0good,suF;le;n mas1v0;er;se;e0irect1; 1finite0;ly;ju7trop;far,n0;ow; CbroBd nauseam,gAl5ny2part,side,t 0w3;be5l0mo5wor5;arge,ea4;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori", "Preposition": "true¦'o,-,aKbHcGdFexcept,fEinDmidPnotwithstandiQoBpRqua,sAt6u3vi2w0;/o,hereMith0;!in,oQ;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oI;ans,ince,o that;',f0n1ut;!f;!to;or,rom;espite,own,u3;hez,irca;ar1e0oAy;low,sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut", @@ -4542,6 +4547,7 @@ pst: 'ate' }, edit: { + pst: '_ed', g: '_ing' }, egg: { @@ -5759,7 +5765,7 @@ to: '$1e' }, { //cing : bouncing, denouncing - reg: /(c)ing$/i, + reg: /(c|s)ing$/i, //dp to: '$1e' }, // { @@ -5826,6 +5832,9 @@ }, { reg: /(us)ed$/i, to: '$1e' + }, { + reg: /(dd)ed$/i, + to: '$1' }, { reg: /(..[^aeiouy])ed$/i, to: '$1e' @@ -5924,6 +5933,7 @@ var rule = _transform[tense][_i]; if (rule.reg.test(str) === true) { + // console.log(rule.reg) return str.replace(rule.reg, rule.to); } } @@ -6197,12 +6207,6 @@ // this.world.verbose = bool // } }); - var _01Utils_1 = _01Utils$1.all; - var _01Utils_2 = _01Utils$1.parent; - var _01Utils_3 = _01Utils$1.parents; - var _01Utils_4 = _01Utils$1.clone; - var _01Utils_5 = _01Utils$1.wordCount; - var _01Utils_6 = _01Utils$1.wordcount; var _02Accessors = createCommonjsModule(function (module, exports) { /** use only the first result(s) */ @@ -6372,20 +6376,6 @@ exports.sentence = exports.sentences; }); - var _02Accessors_1 = _02Accessors.first; - var _02Accessors_2 = _02Accessors.last; - var _02Accessors_3 = _02Accessors.slice; - var _02Accessors_4 = _02Accessors.eq; - var _02Accessors_5 = _02Accessors.get; - var _02Accessors_6 = _02Accessors.firstTerms; - var _02Accessors_7 = _02Accessors.firstTerm; - var _02Accessors_8 = _02Accessors.lastTerms; - var _02Accessors_9 = _02Accessors.lastTerm; - var _02Accessors_10 = _02Accessors.termList; - var _02Accessors_11 = _02Accessors.groups; - var _02Accessors_12 = _02Accessors.group; - var _02Accessors_13 = _02Accessors.sentences; - var _02Accessors_14 = _02Accessors.sentence; // cache the easier conditions up-front var cacheRequired = function cacheRequired(reg) { @@ -6648,19 +6638,6 @@ }); }; }); - var _03Match_1 = _03Match.match; - var _03Match_2 = _03Match.not; - var _03Match_3 = _03Match.matchOne; - var _03Match_4 = _03Match.ifNo; - var _03Match_5 = _03Match.has; - var _03Match_6 = _03Match.lookAhead; - var _03Match_7 = _03Match.lookAfter; - var _03Match_8 = _03Match.lookBehind; - var _03Match_9 = _03Match.lookBefore; - var _03Match_10 = _03Match.before; - var _03Match_11 = _03Match.after; - var _03Match_12 = _03Match.hasAfter; - var _03Match_13 = _03Match.hasBefore; /** apply a tag, or tags to all terms */ var tagTerms = function tagTerms(tag, doc, safe, reason) { @@ -7080,8 +7057,6 @@ exports.lookUp = exports.lookup; }); - var _06Lookup_1 = _06Lookup.lookup; - var _06Lookup_2 = _06Lookup.lookUp; /** freeze the current state of the document, for speed-purposes*/ var cache$1 = function cache(options) { @@ -7339,13 +7314,6 @@ exports.remove = exports["delete"]; }); - var _02Insert_1 = _02Insert.append; - var _02Insert_2 = _02Insert.insertAfter; - var _02Insert_3 = _02Insert.insertAt; - var _02Insert_4 = _02Insert.prepend; - var _02Insert_5 = _02Insert.insertBefore; - var _02Insert_6 = _02Insert.concat; - var _02Insert_7 = _02Insert.remove; var shouldTrim = { clean: true, @@ -7540,8 +7508,6 @@ exports.data = exports.json; }); - var _02Json_1 = _02Json.json; - var _02Json_2 = _02Json.data; var _debug = createCommonjsModule(function (module) { // https://stackoverflow.com/questions/9781218/how-to-change-node-jss-console-font-color @@ -8358,11 +8324,6 @@ }); }; }); - var _03Split_1 = _03Split.splitOn; - var _03Split_2 = _03Split.splitAfter; - var _03Split_3 = _03Split.split; - var _03Split_4 = _03Split.splitBefore; - var _03Split_5 = _03Split.segment; var eachTerm = function eachTerm(doc, fn) { var world = doc.world; @@ -8538,15 +8499,6 @@ return this; }; }); - var _05Whitespace_1 = _05Whitespace.pre; - var _05Whitespace_2 = _05Whitespace.post; - var _05Whitespace_3 = _05Whitespace.trim; - var _05Whitespace_4 = _05Whitespace.hyphenate; - var _05Whitespace_5 = _05Whitespace.dehyphenate; - var _05Whitespace_6 = _05Whitespace.deHyphenate; - var _05Whitespace_7 = _05Whitespace.toQuotations; - var _05Whitespace_8 = _05Whitespace.toQuotation; - var _05Whitespace_9 = _05Whitespace.toParentheses; /** make all phrases into one phrase */ var join = function join(str) { @@ -8922,7 +8874,7 @@ //these are regexes applied to t.text, instead of t.clean // order matters. var startsWith = [//web tags - [/^\w+@\w+\.[a-z]{2,3}$/, 'Email'], //not fancy + [/^[\w\.]+@[\w\.]+\.[a-z]{2,3}$/, 'Email'], //not fancy [/^#[a-z0-9_\u00C0-\u00FF]{2,}$/, 'HashTag'], [/^@\w{2,}$/, 'AtMention'], [/^(https?:\/\/|www\.)\w+\.[a-z]{2,3}/, 'Url'], //with http/www [/^[\w./]+\.(com|net|gov|org|ly|edu|info|biz|ru|jp|de|in|uk|br)/, 'Url'], //http://mostpopularwebsites.net/top-level-domain //dates/times @@ -8945,7 +8897,7 @@ [/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/, 'Date'], // 03-02-89 //phone numbers [/^[0-9]{3}-[0-9]{4}$/, 'PhoneNumber'], //589-3809 - [/^[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/, 'PhoneNumber'], //632-589-3809 + [/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/, 'PhoneNumber'], //632-589-3809 //money // currency regex // /[\$\xA2-\xA5\u058F\u060B\u09F2\u09F3\u09FB\u0AF1\u0BF9\u0E3F\u17DB\u20A0-\u20BD\uA838\uFDFC\uFE69\uFF04\uFFE0\uFFE1\uFFE5\uFFE6] @@ -9985,7 +9937,7 @@ var _03Irregulars = checkIrregulars; var hasApostropheS = /([a-z\u00C0-\u00FF]+)[\u0027\u0060\u00B4\u2018\u2019\u201A\u201B\u2032\u2035\u2039\u203A]s$/i; - var blacklist = { + var banList = { that: true, there: true }; @@ -10001,7 +9953,7 @@ return false; } - if (blacklist.hasOwnProperty(term.clean)) { + if (banList.hasOwnProperty(term.reduced)) { return false; } //if end of sentence, it is possessive - "was spencer's" @@ -10446,11 +10398,8 @@ group: 0, tag: 'QuestionWord', reason: 'which-question2' - }, { - match: 'which', - tag: 'QuestionWord', - reason: 'which-question3' - }, // ==== Conjunctions ==== + }, // { match: 'which', tag: 'QuestionWord', reason: 'which-question3' }, + // ==== Conjunctions ==== { match: '[so] #Noun', group: 0, @@ -10653,6 +10602,11 @@ match: "".concat(dates, " #Acronym? (#ProperNoun && !#Month)"), tag: 'Person', reason: 'june-smith-jr' + }, // 'second' + { + match: "#Cardinal [second]", + tag: 'Unit', + reason: 'one-second' }]; var _02Dates = list$1; @@ -11215,6 +11169,12 @@ group: 0, tag: 'Auxiliary', reason: 'had-been' + }, // was being driven + { + match: '[being] #Participle', + group: 0, + tag: 'Auxiliary', + reason: 'being-foo' }, // ==== Phrasal ==== //'foo-up' { @@ -11299,6 +11259,12 @@ group: 0, tag: 'Verb', reason: 'adj-to' + }, // open the door + { + match: '[open] #Determiner', + group: 0, + tag: 'Infinitive', + reason: 'open-the' }, // would wade { match: "#Modal [".concat(verbs$1, "]"), @@ -12907,7 +12873,9 @@ // walked => walk - turn a verb into it's root form var toInfinitive$1 = function toInfinitive(parsed, world) { - var verb = parsed.verb; //1. if it's already infinitive + var verb = parsed.verb; // console.log(parsed) + // verb.debug() + //1. if it's already infinitive var str = verb.text('normal'); diff --git a/builds/compromise.min.js b/builds/compromise.min.js index 46783fa19..5aa02d62d 100644 --- a/builds/compromise.min.js +++ b/builds/compromise.min.js @@ -1 +1 @@ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).nlp=t()}(this,(function(){"use strict";function e(t){return(e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(t)}function t(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function r(e,t){for(var r=0;re.length)&&(t=e.length);for(var r=0,n=new Array(t);rn[t].lineage.length?1:n[e].isA.length>n[t].isA.length?-1:0:0:1}))},J={text:!0,tags:!0,implicit:!0,whitespace:!0,clean:!1,id:!1,index:!1,offset:!1,bestTag:!1},K={json:function(e,t){e=e||{};var r={};return(e=Object.assign({},J,e)).text&&(r.text=this.text),e.normal&&(r.normal=this.normal),e.tags&&(r.tags=Object.keys(this.tags)),e.clean&&(r.clean=this.clean),(e.id||e.offset)&&(r.id=this.id),e.implicit&&null!==this.implicit&&(r.implicit=this.implicit),e.whitespace&&(r.pre=this.pre,r.post=this.post),e.bestTag&&(r.bestTag=q(this,t)[0]),r}},R=Object.assign({},F,O,I,L,K);function W(){return"undefined"!=typeof window&&window.document}var U=function(e,t){for(e=e.toString();e.length0&&void 0!==arguments[0]?arguments[0]:"";t(this,e),r=String(r);var n=E(r);this.text=n.text||"",this.clean=n.clean,this.reduced=n.reduced,this.root=null,this.implicit=null,this.pre=n.pre||"",this.post=n.post||"",this.tags={},this.prev=null,this.next=null,this.id=p(n.clean),this.isA="Term",n.alias&&(this.alias=n.alias)}return n(e,[{key:"set",value:function(e){var t=E(e);return this.text=t.text,this.clean=t.clean,this}}]),e}();oe.prototype.clone=function(){var e=new oe(this.text);return e.pre=this.pre,e.post=this.post,e.tags=Object.assign({},this.tags),e},Object.assign(oe.prototype,R),Object.assign(oe.prototype,ie);var se=oe,ue={terms:function(e){if(0===this.length)return[];if(this.cache.terms)return void 0!==e?this.cache.terms[e]:this.cache.terms;for(var t=[this.pool.get(this.start)],r=0;r0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0,r=arguments.length>2?arguments[2]:void 0;"string"==typeof e&&(e="normal"===e?{whitespace:!0,unicode:!0,lowercase:!0,punctuation:!0,acronyms:!0,abbreviations:!0,implicit:!0,normal:!0}:"clean"===e?{titlecase:!1,lowercase:!0,punctuation:!0,whitespace:!0,unicode:!0,implicit:!0}:"reduced"===e?{titlecase:!1,lowercase:!0,punctuation:!1,whitespace:!0,unicode:!0,implicit:!0,reduced:!0}:"root"===e?{titlecase:!1,lowercase:!0,punctuation:!0,whitespace:!0,unicode:!0,implicit:!0,root:!0}:{});var n=this.terms(),a=!1;n[0]&&null===n[0].prev&&null===n[n.length-1].next&&(a=!0);var i=n.reduce((function(i,o,s){e.last=r&&s===n.length-1;var u=!0,l=!0;return!1===a&&(0===s&&t&&(u=!1),s===n.length-1&&r&&(l=!1)),i+o.textOut(e,u,l)}),"");return!0===a&&r&&(i=le(i)),!0===e.trim&&(i=i.trim()),i}},he={trim:function(){var e=this.terms();if(e.length>0){e[0].pre=e[0].pre.replace(/^\s+/,"");var t=e[e.length-1];t.post=t.post.replace(/\s+$/,"")}return this}},de=/[.?!]\s*$/,pe=function(e,t){t[0].pre=e[0].pre;var r,n,a=e[e.length-1],i=t[t.length-1];i.post=(r=a.post,n=i.post,de.test(n)?n+r.match(/\s*$/):r),a.post="",""===a.post&&(a.post+=" ")},ge=function(e,t,r){var n=e.terms(),a=t.terms();pe(n,a),function(e,t,r){var n=e[e.length-1],a=t[t.length-1],i=n.next;(n.next=t[0].id,a.next=i,i)&&(r.get(i).prev=a.id);var o=e[0].id;o&&(t[0].prev=o)}(n,a,e.pool);var i=[e],o=e.start,s=[r];return(s=s.concat(r.parents())).forEach((function(e){var t=e.list.filter((function(e){return e.hasId(o)}));i=i.concat(t)})),(i=function(e){return e.filter((function(t,r){return e.indexOf(t)===r}))}(i)).forEach((function(e){e.length+=t.length})),e.cache={},e},fe=/ /,me=function(e,t,r){var n=e.start,a=t.terms();!function(e){var t=e[e.length-1];!1===fe.test(t.post)&&(t.post+=" ")}(a),function(e,t,r){var n=r[r.length-1];n.next=e.start;var a=e.pool,i=a.get(e.start);i.prev&&(a.get(i.prev).next=t.start);r[0].prev=e.terms(0).prev,e.terms(0).prev=n.id}(e,t,a);var i=[e],o=[r];return(o=o.concat(r.parents())).forEach((function(e){var r=e.list.filter((function(e){return e.hasId(n)||e.hasId(t.start)}));i=i.concat(r)})),(i=function(e){return e.filter((function(t,r){return e.indexOf(t)===r}))}(i)).forEach((function(e){e.length+=t.length,e.start===n&&(e.start=t.start),e.cache={}})),e},ve=function(e,t){var r=t.pool(),n=e.terms(),a=r.get(n[0].prev)||{},i=r.get(n[n.length-1].next)||{};n[0].implicit&&a.implicit&&(a.set(a.implicit),a.post+=" "),function(e,t,r,n){var a=e.parents();a.push(e),a.forEach((function(e){var a=e.list.find((function(e){return e.hasId(t)}));a&&(a.length-=r,a.start===t&&(a.start=n.id),a.cache={})})),e.list=e.list.filter((function(e){return!(!e.start||!e.length)}))}(t,e.start,e.length,i),a&&(a.next=i.id),i&&(i.prev=a.id)},be={append:function(e,t){return ge(this,e,t),this},prepend:function(e,t){return me(this,e,t),this},delete:function(e){return ve(this,e),this},replace:function(e,t){var r=this.length;ge(this,e,t);var n=this.buildFrom(this.start,this.length);n.length=r,ve(n,t)},splitOn:function(e){var t=this.terms(),r={before:null,match:null,after:null},n=t.findIndex((function(t){return t.id===e.start}));if(-1===n)return r;var a=t.slice(0,n);a.length>0&&(r.before=this.buildFrom(a[0].id,a.length));var i=t.slice(n,n+e.length);i.length>0&&(r.match=this.buildFrom(i[0].id,i.length));var o=t.slice(n+e.length,t.length);return o.length>0&&(r.after=this.buildFrom(o[0].id,o.length,this.pool)),r}},ye={json:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0,r={};return e.text&&(r.text=this.text()),e.normal&&(r.normal=this.text("normal")),e.clean&&(r.clean=this.text("clean")),e.reduced&&(r.reduced=this.text("reduced")),e.root&&(r.root=this.text("root")),e.trim&&(r.text&&(r.text=r.text.trim()),r.normal&&(r.normal=r.normal.trim()),r.reduced&&(r.reduced=r.reduced.trim())),e.terms&&(!0===e.terms&&(e.terms={}),r.terms=this.terms().map((function(r){return r.json(e.terms,t)}))),r}},we={lookAhead:function(e){e||(e=".*");var t=this.pool,r=[],n=this.terms();return function e(n){var a=t.get(n);a&&(r.push(a),a.prev&&e(a.next))}(n[n.length-1].next),0===r.length?[]:this.buildFrom(r[0].id,r.length).match(e)},lookBehind:function(e){e||(e=".*");var t=this.pool,r=[];return function e(n){var a=t.get(n);a&&(r.push(a),a.prev&&e(a.prev))}(t.get(this.start).prev),0===r.length?[]:this.buildFrom(r[r.length-1].id,r.length).match(e)}},ke=Object.assign({},ue,ce,he,be,ye,we),Ae=function(e,t){if(0===t.length)return!0;for(var r=0;r0)return!0;if(!0===n.anything&&!0===n.negative)return!0}return!1},$e=function(e,t,r,n,a,i){for(var o=t;t1&&u.greedy?g.length+=o-d:g.length++}}else if(!0!==u.optional){if(!(e[o].isImplicit()&&t[s-1]&&e[o+1]&&e[o+1].doesMatch(u,r+o,n)))return[!1,null];o+=2}}else{var f=Be(e,o,t[s+1],u,r);if(void 0!==u.min&&f-ou.max){o+=u.max;continue}if(null===f)return[!1,null];l&&(Pe(a,c,e,o,u.named).length=f-o),o=f}}return[e.slice(0,o),a]},Ce=function(e,t,r){if(!r||0===r.length)return r;if(t.some((function(e){return e.end}))){var n=e[e.length-1];r=r.filter((function(e){return-1!==e.match.indexOf(n)}))}return r},De=/\{([0-9]+,?[0-9]*)\}/,je=/&&/,xe=new RegExp(/^<(\S+)>/),Ee=function(e){return e[e.length-1]},Ne=function(e){return e[0]},Fe=function(e){return e.substr(1)},Oe=function(e){return e.substr(0,e.length-1)},Te=function(e){return e=Fe(e),e=Oe(e)},ze=function e(t){for(var r,n={},a=0;a<2;a+=1){if("$"===Ee(t)&&(n.end=!0,t=Oe(t)),"^"===Ne(t)&&(n.start=!0,t=Fe(t)),("["===Ne(t)||"]"===Ee(t))&&(n.named=!0,"["===Ne(t)?n.groupType="]"===Ee(t)?"single":"start":n.groupType="end",t=(t=t.replace(/^\[/,"")).replace(/\]$/,""),"<"===Ne(t))){var i=xe.exec(t);i.length>=2&&(n.named=i[1],t=t.replace(i[0],""))}if("+"===Ee(t)&&(n.greedy=!0,t=Oe(t)),"*"!==t&&"*"===Ee(t)&&"\\*"!==t&&(n.greedy=!0,t=Oe(t)),"?"===Ee(t)&&(n.optional=!0,t=Oe(t)),"!"===Ne(t)&&(n.negative=!0,t=Fe(t)),"("===Ne(t)&&")"===Ee(t)){je.test(t)?(n.choices=t.split(je),n.operator="and"):(n.choices=t.split("|"),n.operator="or"),n.choices[0]=Fe(n.choices[0]);var o=n.choices.length-1;n.choices[o]=Oe(n.choices[o]),n.choices=n.choices.map((function(e){return e.trim()})),n.choices=n.choices.filter((function(e){return e})),n.choices=n.choices.map(e),t=""}if("/"===Ne(t)&&"/"===Ee(t))return t=Te(t),n.regex=new RegExp(t),n;if("~"===Ne(t)&&"~"===Ee(t))return t=Te(t),n.soft=!0,n.word=t,n}return!0===De.test(t)&&(t=t.replace(De,(function(e,t){var r=t.split(/,/g);return 1===r.length?(n.min=Number(r[0]),n.max=Number(r[0])):(n.min=Number(r[0]),n.max=Number(r[1]||999)),n.greedy=!0,""}))),"#"===Ne(t)?(n.tag=Fe(t),n.tag=(r=n.tag).charAt(0).toUpperCase()+r.substr(1),n):"@"===Ne(t)?(n.method=Fe(t),n):"."===t?(n.anything=!0,n):"*"===t?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(t&&(t=(t=t.replace("\\*","*")).replace("\\.","."),n.word=t.toLowerCase()),n)},He=function(e){return e.filter((function(e){return e.groupType})).length>0&&(e=function(e){for(var t,r,n=!1,a=-1,i=0;i)?\(.*?\)[?+*]*\]?\$?)/);return t=t.map((function(e){return e.trim()}))}(t);return r=(r=function(e){var t=[];return e.forEach((function(e){if(/^[[^_/]?\(/.test(e[0]))t.push(e);else{var r=e.split(" ");r=r.filter((function(e){return e})),t=t.concat(r)}})),t}(r)).map(ze),r=He(r)},Ie=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if("string"==typeof t&&(t=Ve(t)),!0===Ae(e,t))return[];var n=t.filter((function(e){return!0!==e.optional})).length,a=e.terms(),i=[];if(!0===t[0].start){var o=Ge(a,t,0,a.length),s=c(o,2),u=s[0],l=s[1];return!1!==u&&u.length>0&&(u=u.filter((function(e){return e})),i.push({match:u,groups:l})),Ce(a,t,i)}for(var h=0;ha.length);h+=1){var d=Ge(a.slice(h),t,h,a.length),p=c(d,2),g=p[0],f=p[1];if(!1!==g&&g.length>0&&(h+=g.length-1,g=g.filter((function(e){return e})),i.push({match:g,groups:f}),!0===r))return Ce(a,t,i)}return Ce(a,t,i)},Me=function(e,t){var r={};Ie(e,t).forEach((function(e){e.match.forEach((function(e){r[e.id]=!0}))}));var n=e.terms(),a=[],i=[];return n.forEach((function(e){!0!==r[e.id]?i.push(e):i.length>0&&(a.push(i),i=[])})),i.length>0&&a.push(i),a},Se={match:function(e){var t=this,r=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=Ie(this,e,r);return n=n.map((function(e){var r=e.match,n=e.groups,a=t.buildFrom(r[0].id,r.length,n);return a.cache.terms=r,a}))},has:function(e){return Ie(this,e,!0).length>0},not:function(e){var t=this,r=Me(this,e);return r=r.map((function(e){return t.buildFrom(e[0].id,e.length)}))},canBe:function(e,t){for(var r=this,n=[],a=this.terms(),i=!1,o=0;o0})).map((function(e){return r.buildFrom(e[0].id,e.length)}))}},Le=function e(r,n,a){t(this,e),this.start=r,this.length=n,this.isA="Phrase",Object.defineProperty(this,"pool",{enumerable:!1,writable:!0,value:a}),Object.defineProperty(this,"cache",{enumerable:!1,writable:!0,value:{}}),Object.defineProperty(this,"groups",{enumerable:!1,writable:!0,value:{}})};Le.prototype.buildFrom=function(e,t,r){var n=new Le(e,t,this.pool);return r&&Object.keys(r).length>0?n.groups=r:n.groups=this.groups,n},Object.assign(Le.prototype,Se),Object.assign(Le.prototype,ke);var _e={term:"terms"};Object.keys(_e).forEach((function(e){return Le.prototype[e]=Le.prototype[_e[e]]}));var qe=Le,Je=function(){function e(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};t(this,e),Object.defineProperty(this,"words",{enumerable:!1,value:r})}return n(e,[{key:"add",value:function(e){return this.words[e.id]=e,this}},{key:"get",value:function(e){return this.words[e]}},{key:"remove",value:function(e){delete this.words[e]}},{key:"merge",value:function(e){return Object.assign(this.words,e.words),this}},{key:"stats",value:function(){return{words:Object.keys(this.words).length}}}]),e}();Je.prototype.clone=function(){var e=this,t=Object.keys(this.words).reduce((function(t,r){var n=e.words[r].clone();return t[n.id]=n,t}),{});return new Je(t)};for(var Ke=Je,Re=function(e){e.forEach((function(t,r){r>0&&(t.prev=e[r-1].id),e[r+1]&&(t.next=e[r+1].id)}))},We=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s+|$)/g,Ue=/\S/,Qe=/[ .][A-Z]\.? *$/i,Ze=/(?:\u2026|\.{2,}) *$/,Xe=/((?:\r?\n|\r)+)/,Ye=/[a-z0-9\u00C0-\u00FF\u00a9|\u00ae|[\u2000-\u3300]|\ud83c[\ud000-\udfff]|\ud83d[\ud000-\udfff]|\ud83e[\ud000-\udfff]/i,et=/^\s+/,tt=function(e,t){if(!0===Qe.test(e))return!1;if(!0===Ze.test(e))return!1;if(!1===Ye.test(e))return!1;var r=e.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),n=r[r.length-1].toLowerCase();return!t.hasOwnProperty(n)},rt=function(e,t){var r=t.cache.abbreviations;e=e||"";var n=[],a=[];if(!(e=String(e))||"string"!=typeof e||!1===Ue.test(e))return n;for(var i=function(e){for(var t=[],r=e.split(Xe),n=0;n0&&(n.push(l),a[u]="")}if(0===n.length)return[e];for(var c=1;c0?(t[t.length-1]+=i,t.push(s)):t.push(i+s),i=""):i+=s}return i&&(0===t.length&&(t[0]=""),t[t.length-1]+=i),t=(t=function(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1?arguments[1]:void 0,r=arguments.length>2?arguments[2]:void 0;"string"!=typeof e&&"number"==typeof e&&(e=String(e));var n=rt(e,t);n=n.map((function(e){return ct(e)})),r=r||new Ke;var a=n.map((function(e){e=e.map((function(e){var t=new se(e);return r.add(t),t})),Re(e);var t=new qe(e[0].id,e.length,r);return t.cache.terms=e,t}));return a},dt=function(e,t){var r=new Ke;return e.map((function(e,n){var a=e.terms.map((function(a,i){var o=new se(a.text);return o.pre=void 0!==a.pre?a.pre:"",void 0===a.post&&(a.post=" ",i>=e.terms.length-1&&(a.post=". ",n>=e.terms.length-1&&(a.post="."))),o.post=void 0!==a.post?a.post:" ",a.tags&&a.tags.forEach((function(e){return o.tag(e,"",t)})),r.add(o),o}));return Re(a),new qe(a[0].id,a.length,r)}))},pt={Comparative:"true¦better",Superlative:"true¦earlier",PresentTense:"true¦is,sounds",Value:"true¦a few",Noun:"true¦a5b4c2f1here,ie,lit,m0no doubt,pd,tce;a,d;t,y;a,ca,o0;l,rp;a,l;d,l,rc",Copula:"true¦a1is,w0;as,ere;m,re",PastTense:"true¦be3came,d2had,lied,meant,sa2taken,w0;as,e0;nt,re;id;en,gan",Condition:"true¦if,unless",Gerund:"true¦accord0be0develop0go0result0stain0;ing",Negative:"true¦n0;ever,o0;!n,t",QuestionWord:"true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s",Plural:"true¦records",Conjunction:"true¦&,aEbAcuz,how8in caDno7o6p4supposing,t1vers5wh0yet;eth8ile;h0o;eref9o0;!uC;l0rovided that;us;r,therwi6; matt1r;!ev0;er;e0ut;cau1f0;ore;se;lthou1nd,s 0;far as,if;gh",Pronoun:"true¦'em,elle,h4i3me,ourselves,she5th1us,we,you0;!rself;e0ou;m,y;!l,t;e0im;!'s",Singular:"true¦0:0X;1:10;a0Wb0Kc0Bd04e02fXgShOici1jel0kitty,lNmJnIoHpDquestion mark,rBs7t4u2womW;nc0Rs 2;doll0Dst0F; rex,a3h2ic,ragedy,v show;ere,i1;l0x return;ist0Pky,omeone,t2uper bowl,yst0W;ep3ri1u2;de0Pff;faMmoM;al0i1o2;om,se;a4i0Jl05r3u2;dLrpoD;erogaVobl0O;rt,te0I;bjSceGthers;othi1umb0E;a4ee04o2;del,m2nopo0th0C;!my;n,yf0;i0unch;ead start,o2;l0me3u2;se;! run;adf0entlem5irlZlaci04od,rand3u2;l0y; slam,fa2mo2;th01;an;a5ella,ly,ol0r3un2;di1;iTo2;ntiWsN;mi0thV;conomy,gg,ner5veWx2;ampQecu7;ad7e4innSo2ragonf0ude;cumentFg2i0l0or;gy;ath,t2;ec2;tive;!dy;a8eili1h6i4o2redit card;ttage,u2;riJsin;ty,vil w2;ar;andeliGocol2;ate;n2rD;ary;aAel0lesHo6r4u2;n2tterf0;ti1;eakfast,o2;!th8;dy,tt4y2;!fri2;end;le;nki1r2;ri2;er;d4l0noma0u2;nt;ly; homin4verti2;si1;ng;em",Actor:"true¦aJbGcFdCengineIfAgardenIh9instructPjournalLlawyIm8nurse,opeOp5r3s1t0;echnCherapK;ailNcientJoldiGu0;pervKrgeon;e0oofE;ceptionGsearC;hotographClumbColi1r0sychologF;actitionBogrammB;cem6t5;echanic,inist9us4;airdress8ousekeep8;arm7ire0;fight6m2;eputy,iet0;ici0;an;arpent2lerk;ricklay1ut0;ch0;er;ccoun6d2ge7r0ssis6ttenda7;chitect,t0;ist;minist1v0;is1;rat0;or;ta0;nt",Honorific:"true¦a03b00cSdReQfiLgKhon,jr,king,lJmEoDp8queen,r4s0taoiseach,vice7;e1fc,gt,ir,r,u0;ltTpt,rg;c0nDrgeaL;ond liJretary;abbi,e0;ar1pAs,v0;!erend; admirY;astPhd,r0vt;esideEi1of0;!essN;me mini5nce0;!ss;fficOp,rd;a3essrs,i2lle,me,r1s0;!tr;!s;stK;gistrate,j,r6yF;i3lb,t;en,ov;eld mar3rst l0;ady,i0;eutena0;nt;shG;sq,xcellency;et,oct6r,utchess;apt6hance4mdr,o0pl;lonel,m2ngress0unci3;m0wom0;an;dr,mand5;ll0;or;!ain;ldg,rig0;!adi0;er;d0sst,tty,yatullah;j,m0v;!ir0;al",SportsTeam:"true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",Uncountable:"true¦a1Ib1Ac11d0Ye0Rf0Lg0Hh0Ci08j07knowled1Hl02mUnews,oTpQrLsAt5vi4w0;a2ea05i1oo0;d,l;ldlife,ne;rmth,t17;neg0Yol06tae;e3h2oothpaste,r0una;affPou0;ble,sers,t;ermod1Eund12;a,nnis;a8cene04eri0Oh7il6kittl0Onow,o5p3t1u0;g0Rnshi0H;ati1De0;am,el;ace16e0;ci0Jed;ap,cc0U;k,v0T;eep,ingl0G;d04fe10l0nd;m0St;a3e1ic0;e,ke0D;c0laxa09search;ogni08rea08;bi09in;aJe1hys10last5o0ressV;lit0Zrk,w0J;a0Vtrol;bstetr0Xil,xygen;a5e3ilk,o2u0;mps,s0;ic;nGo0A;a0chan0S;slZt;chine0il,themat0Q; learn05ry;aught08e2i1ogi0Nu0;ck,g0C;ce,ghtn02ngui0LteratH;a0isG;th04;ewel7usti0G;ce,mp0nformaOtself;a0ortan0E;ti0;en0C;a3isto2o0;ck0mework,n0spitali06;ey;ry;ir,libut,ppi7;en01o1r0um,ymna08;a6ound;l0ssip;d,f;i4lour,o1urnit0;ure;od,rgive0uriNwl;ne0;ss;c6sh;conomZduca5lectr4n2quip3thZvery0;body,o0thE;ne;joy0tertain0;ment;iciNonU;tiF;ar1iabet0raugh1;es;ts;a7elcius,h3ivPl2o0urrency;al,ld w0nfusiAttA;ar;assMoth2;aos,e0;e1w0;ing;se;r4sh;a4eef,i1lood,owls,read,utt0;er;lliar1s0;on;ds;g0ss;ga0;ge;c6dvi5ero3ir2mnes1rt,thl0;et7;ty;craft;b4d0naut4;ynam3;ce;id,ou0;st0;ics",Infinitive:"true¦0:6K;1:6Y;2:57;3:6V;4:6W;5:5Z;6:67;7:6Q;8:6I;9:6U;A:6P;B:6S;C:6D;D:6Z;E:56;F:5P;a6Cb61c52d4Ae3Uf3Hg3Bh34i2Rj2Pk2Nl2Fm25n22o1Xp1Iques3Ir0Qs05tXuSvOwHyG;awn,ield;aJe1Yhist6iIoGre65;nd0rG;k,ry;pe,sh,th0;lk,nHrGsh,tCve;n,raD;d0t;aIiGo9;eGsA;!w;l6Cry;nHpGr3se;gra4Mli3Z;dGi9lo5Spub3O;erGo;mi58w1I;aMeLhKoJrHuGwi7;ne,rn;aGe0Mi5Nu7y;de,in,nsf0p,v5F;r2XuC;ank,reat2N;nd,st;lk,rg1Ps9;aZcWeVhTi4Akip,lSmRnee3Jo4YpQtJuGwitC;bmAck,ff0gge7ppHrGspe5;ge,pri1rou4Vvi4;ly,o34;aLeKoJrHuG;dy,mb6;aEeGi4;ngth2Dss,tC;p,re;m,p;in,ke,r0Qy;laFoil,rink6;e1Xi6o3H;am,ip;a2iv0oG;ck,ut;arCem,le5n1r4tt6;aHo2rG;atCew;le,re;il,ve;a05eIisk,oHuG;in,le,sh;am,ll;a01cZdu8fYgXje5lUmTnt,pQquPsKtJvGwa5O;eGiew,o34;al,l,rG;se,t;aEi2u40;eJi7oItG;!o2rG;i5uc1Y;l4rt;mb6nt,r4;e7i2;air,eHlGo3ZreseD;a8y;at;aEemb0i3Vo4;aHeGi4y;a1nt;te,x;a56r0I;act1Wer,le5u1;a11ei4k5IoGyc6;gni2Anci6rd;ch,li29s5G;i1nG;ge,k;aTerSiRlOoMrIuG;b1Zll,mp,rGsh;cha1s4J;ai1eIiDoG;cGdu8greBhibAmi1te7vi2T;eBlaim;di5pa2ss,veD;iDp,rtr3ZsGur;e,t;aHuG;g,n3;n,y;ck,le;fo30mAsi7;ck,iDrt4Fss,u1;bJccur,ff0pera9utweIverGwe;co40lap,ta20u1wG;helm;igh;ser4taE;eHotG;e,i8;ed,gle5;aLeKiIoHuG;ltip3Crd0;nit11ve;nGrr10;d,g6us;asu2lt,n0Nr3;intaEna3rHtG;ch,t0;ch,kGry;et;aLeKiIoGu1B;aGck,ok,ve;d,n;ft,ke,mAnGst2Wve;e,k;a2Dc0Et;b0Nck,uG;gh,nC;iGno2Z;ck,ll,ss;am,oEuG;d3mp;gno2mQnGss3C;cOdica9flu0MhNsKtIvG;eGol4;nt,st;erGrodu8;a5fe2;i7tG;aGru5;ll;abAibA;lu1Er1C;agi22pG;lemeDo20ro4;aKeIi2oHuG;nt,rry;n02pe,st;aGlp;d,t;nd6ppGrm,te;en;aKloBove1MrIuG;arGeBi13;ant33d;aGip,umb6;b,sp;in,th0ze;aQeaPiNlLoIracHuncG;ti3D;tu2;cus,lHrG;ce,eca7m,s2V;d,l1Z;aFoG;at,od,w;gu2lGniFx;e,l;r,tu2;il,vG;or;a13cho,le5mSnPstNvalua9xG;a0AcLerKi7pGte17;a16eHi2laEoGreB;rt,se;ct,riG;en8;ci1t;el,han3;abGima9;liF;ab6couXdHfor8ga3han8j03riCsu2t0vG;isi2Qy;!u2;body,er3pG;hasiGow0;ze;a06eUiLoKrHuG;mp;aHeBiG;ft;g,in;d3ubt;ff0p,re5sHvG;iYor8;aKcHliGmiBpl16tinguiF;ke;oGuB;uGv0;ra3;gr1TppG;ear,ro4;cNem,fLliv0ma0Dny,pKsHterG;mi0E;cribe,er4iHtrG;oy;gn,re;a09e08i5osA;eGi09y;at,ct;iIlHrG;ea1;a2i05;de;ma3n8re,te;a0Ae09h06i9l04oJrG;aHeGoBuFy;a9dA;ck,ve;llZmSnHok,py,uGv0;gh,nt;cePdu5fMsKtIvG;eGin8;rt,y;aEin0SrG;a7ibu9ol;iGtitu9;d0st;iHoGroD;rm;gu2rm;rn;biLfoKmaJpG;a2laE;in;re;nd;rt;ne;ap1e5;aGip,o1;im,w;aHeG;at,ck,w;llen3n3r3se;a1nt0;ll,ncIrGt0u1;eGry;!en;el;aPeMloLoJruFuG;lGry;ly;sh;a7mb,o7rrGth0un8;ow;ck;ar,lHnefAtrG;ay;ie4ong;ng,se;band0Jc0Bd06ffo05gr04id,l01mu1nYppTrQsKttGvoid,waA;acIeHra5;ct;m0Fnd;h,k;k,sG;eIiHocia9uG;me;gn,st;mb6rt;le;chHgGri4;ue;!i4;eaJlIroG;aCve;ch;aud,y;l,r;noun8sw0tG;icipa9;ce;lHt0;er;e3ow;ee;rd;aRdIju7mAoR;it;st;!reB;ss;cJhie4knowled3tiva9;te;ge;ve;eIouDu1;se;nt;pt;on",Unit:"true¦0:19;a14b12c0Od0Ne0Lf0Gg0Ch09in0Hjoule0k02l00mNnMoLpIqHsqCt7volts,w6y4z3°2µ1;g,s;c,f,n;b,e2;a0Nb,d0Dears old,o1;tt0H;att0b;able4b3d,e2on1sp;!ne0;a2r0D;!l,sp;spo04; ft,uare 1;c0Id0Hf3i0Fkilo0Jm1ya0E;e0Mil1;e0li0H;eet0o0D;t,uart0;ascals,e2i1ou0Pt;c0Mnt0;rcent,t02;hms,uYz;an0JewtT;/s,b,e9g,i3l,m2p1²,³;h,s;!²;!/h,cro5l1;e1li08;! pFs1²;! 1;anEpD;g06s0B;gQter1;! 2s1;! 1;per second;b,i00m,u1x;men0x0;b,elvin0g,ilo2m1nR;!/h,ph,²;byZgXmeter1;! p2s1;! p1;er1; hour;e1g,r0z;ct1rtz0;aXogQ;al2b,igAra1;in0m0;!l1;on0;a4emtPl2t1;²,³; oz,uid ou1;nce0;hrenheit0rad0;b,x1;abyH;eciCg,l,mA;arat0eAg,m9oulomb0u1;bic 1p0;c5d4fo3i2meAya1;rd0;nch0;ot0;eci2;enti1;me4;!²,³;lsius0nti1;g2li1me1;ter0;ram0;bl,y1;te0;c4tt1;os1;eco1;nd0;re0;!s",Organization:"true¦0:46;a3Ab2Qc2Ad21e1Xf1Tg1Lh1Gi1Dj19k17l13m0Sn0Go0Dp07qu06rZsStFuBv8w3y1;amaha,m0Xou1w0X;gov,tu2S;a3e1orld trade organizati41;lls fargo,st1;fie22inghou16;l1rner br3D;-m11gree31l street journ25m11;an halNeriz3Wisa,o1;dafo2Gl1;kswagLvo;bs,kip,n2ps,s1;a tod2Rps;es35i1;lev2Xted natio2Uv; mobi2Kaco bePd bMeAgi frida9h3im horto2Tmz,o1witt2W;shiba,y1;ota,s r Y;e 1in lizzy;b3carpen33daily ma2Xguess w2holli0rolling st1Ms1w2;mashing pumpki2Ouprem0;ho;ea1lack eyed pe3Fyrds;ch bo1tl0;ys;l2s1;co,la m12;efoni07us;a6e4ieme2Gnp,o2pice gir5ta1ubaru;rbucks,to2N;ny,undgard1;en;a2Rx pisto1;ls;few25insbu26msu1X;.e.m.,adiohead,b6e3oyal 1yan2X;b1dutch she4;ank;/max,aders dige1Ed 1vl32;bu1c1Uhot chili peppe2Klobst28;ll;c,s;ant2Vizno2F;an5bs,e3fiz24hilip morrBi2r1;emier27octer & gamb1Rudenti14;nk floyd,zza hut;psi28tro1uge08;br2Qchina,n2Q; 2ason1Xda2G;ld navy,pec,range juli2xf1;am;us;a9b8e5fl,h4i3o1sa,wa;kia,tre dame,vart1;is;ke,ntendo,ss0K;l,s;c,st1Etflix,w1; 1sweek;kids on the block,york08;a,c;nd1Us2t1;ional aca2Fo,we0Q;a,cYd0O;aAcdonald9e5i3lb,o1tv,yspace;b1Nnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisO;dica3rcedes2talli1;ca;!-benz;id,re;'s,s;c's milk,tt13z1Y;'ore09a3e1g,ittle caesa1Ktd;novo,x1;is,mark; pres5-z-boy,bour party;atv,fc,kk,m1od1K;art;iffy lu0Lo3pmorgan1sa;! cha1;se;hnson & johns1Sy d1R;bm,hop,n1tv;c,g,te1;l,rpol; & m,asbro,ewlett-packaTi3o1sbc,yundai;me dep1n1J;ot;tac1zbollah;hi;eneral 6hq,l5mb,o2reen d0Iu1;cci,ns n ros0;ldman sachs,o1;dye1g0B;ar;axo smith kliZencore;electr0Im1;oto0V;a3bi,da,edex,i1leetwood mac,oGrito-l0A;at,nancial1restoV; tim0;cebook,nnie mae;b06sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Ae5isney,o3u1;nkin donuts,po0Wran dur1;an;j,w j1;on0;a,f leppa3ll,p2r spiegZstiny's chi1;ld;eche mode,t;rd;aEbc,hBi9nn,o3r1;aigsli5eedence clearwater reviv1ossra05;al;!ca c5l4m1o0Ast05;ca2p1;aq;st;dplMgate;ola;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r0Hy;dbury,pital o1rl's jr;ne;aGbc,eCfAl6mw,ni,o2p,r1;exiteeWos;ei3mbardiJston 1;glo1pizza;be;ng;ack & deckFo2ue c1;roX;ckbuster video,omingda1;le; g1g1;oodriN;cht3e ge0n & jer2rkshire hathaw1;ay;ryH;el;nana republ3s1xt5y5;f,kin robbi1;ns;ic;bXcSdidRerosmith,ig,lLmFnheuser-busEol,ppleAr7s3t&t,v2y1;er;is,on;hland2s1;n,ociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 4catel2t1;air;!-luce1;nt;jazeera,qae1;da;as;/dc,a3er,t1;ivisi1;on;demy of scienc0;es;ba,c",Demonym:"true¦0:16;1:13;a0Wb0Nc0Cd0Ae09f07g04h02iYjVkTlPmLnIomHpDqatari,rBs7t5u4v3wel0Rz2;am0Fimbabwe0;enezuel0ietnam0H;g9krai1;aiwThai,rinida0Iu2;ni0Qrkmen;a4cot0Ke3ingapoOlovak,oma0Tpa05udRw2y0X;edi0Kiss;negal0Br08;mo0uU;o6us0Lw2;and0;a3eru0Hhilipp0Po2;li0Ertugu06;kist3lesti1na2raguay0;ma1;ani;amiZi2orweP;caragu0geri2;an,en;a3ex0Mo2;ngo0Erocc0;cedo1la2;gasy,y08;a4eb9i2;b2thua1;e0Dy0;o,t02;azakh,eny0o2uwaiti;re0;a2orda1;ma0Bp2;anN;celandic,nd4r2sraeli,ta02vo06;a2iT;ni0qi;i0oneV;aiDin2ondur0unN;di;amDe2hanai0reek,uatemal0;or2rm0;gi0;i2ren7;lipino,n4;cuadoVgyp6ngliJsto1thiopi0urope0;a2ominXut4;niH;a9h6o4roa3ub0ze2;ch;ti0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el8o6r3ul2;gaG;aziBi2;ti2;sh;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;gent2me1;ine;ba1ge2;ri0;ni0;gh0r2;ic0;an",Possessive:"true¦anyAh5its,m3noCo1sometBthe0yo1;ir1mselves;ur0;!s;i8y0;!se4;er1i0;mse2s;!s0;!e0;lf;o1t0;hing;ne",Currency:"true¦$,aud,bScQdLeurKfJgbp,hkd,iIjpy,kGlEp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotySł;en,uanR;af,of;h0t5;e0il5;k0q0;elM;iel,oubleLp,upeeL;e2ound st0;er0;lingI;n0soH;ceGn0;ies,y;e0i8;i,mpi7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!o8;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;ad,e0ny;nt1;aht,itcoin0;!s",City:"true¦a2Wb26c1Wd1Re1Qf1Og1Ih1Ai18jakar2Hk0Zl0Tm0Gn0Co0ApZquiYrVsLtCuBv8w3y1z0;agreb,uri1Z;ang1Te0okohama;katerin1Hrev34;ars3e2i0rocl3;ckl0Vn0;nipeg,terth0W;llingt1Oxford;aw;a1i0;en2Hlni2Z;lenc2Uncouv0Gr2G;lan bat0Dtrecht;a6bilisi,e5he4i3o2rondheim,u0;nVr0;in,ku;kyo,ronIulouC;anj23l13miso2Jra2A; haJssaloni0X;gucigalpa,hr2Ol av0L;i0llinn,mpe2Bngi07rtu;chu22n2MpT;a3e2h1kopje,t0ydney;ockholm,uttga12;angh1Fenzh1X;o0KvZ;int peters0Ul3n0ppo1F; 0ti1B;jo0salv2;se;v0z0Q;adU;eykjavik,i1o0;me,sario,t25;ga,o de janei17;to;a8e6h5i4o2r0ueb1Qyongya1N;a0etor24;gue;rt0zn24; elizabe3o;ls1Grae24;iladelph1Znom pe07oenix;r0tah tik19;th;lerJr0tr10;is;dessa,s0ttawa;a1Hlo;a2ew 0is;delTtaip0york;ei;goya,nt0Upl0Uv1R;a5e4i3o1u0;mb0Lni0I;nt0scH;evideo,real;l1Mn01skolc;dellín,lbour0S;drid,l5n3r0;ib1se0;ille;or;chest0dalWi0Z;er;mo;a4i1o0vAy01;nd00s angel0F;ege,ma0nz,sbZverpo1;!ss0;ol; pla0Iusan0F;a5hark4i3laipeda,o1rak0uala lump2;ow;be,pavog0sice;ur;ev,ng8;iv;b3mpa0Kndy,ohsiu0Hra0un03;c0j;hi;ncheMstanb0̇zmir;ul;a5e3o0; chi mi1ms,u0;stI;nh;lsin0rakliG;ki;ifa,m0noi,va0A;bu0SiltD;alw4dan3en2hent,iza,othen1raz,ua0;dalaj0Gngzhou;bu0P;eUoa;sk;ay;es,rankfu0;rt;dmont4indhovU;a1ha01oha,u0;blRrb0Eshanbe;e0kar,masc0FugavpiJ;gu,je0;on;a7ebu,h2o0raioJuriti01;lo0nstanJpenhagNrk;gFmbo;enn3i1ristchur0;ch;ang m1c0ttagoL;ago;ai;i0lgary,pe town,rac4;ro;aHeBirminghWogoAr5u0;char3dap3enos air2r0sZ;g0sa;as;es;est;a2isba1usse0;ls;ne;silPtisla0;va;ta;i3lgrade,r0;g1l0n;in;en;ji0rut;ng;ku,n3r0sel;celo1ranquil0;la;na;g1ja lu0;ka;alo0kok;re;aBb9hmedabad,l7m4n2qa1sh0thens,uckland;dod,gabat;ba;k0twerp;ara;m5s0;terd0;am;exandr0maty;ia;idj0u dhabi;an;lbo1rh0;us;rg",Abbreviation:"true¦a0Tb0Qc0Kd0Ie0Ff0Cg0Ah08i06j04k02l00mRnOoNpIqHrFs9t6u5v2w0yb,µg;is0r,y0L;!c;a,b,e1i0ol,s,t;tro,vo;r,t;niv,safa,t;b1ce,d,e0sp;l,mp,nn,x;!l,sp;ask,e3fc,gt,i2q1r,s,t,u0;pt,rg;! ft;r,tu;c,nVp0;!t;b,d,e0;pSs,v;t,ue;a,d,enn3hd,l,p,r1s0t,vt;!a,eud;ef,o0;b,f,n;!a;ct,kla,nt,p,rd,z;e0ov;b0e;!r;a7b,d,essrs,g,i4l3m2p1rHs0t;!tr;h,s;!e;!le;!n1s0;c,ter;!n;!j,r,sc;at,b,it,lb,m,ng,t0x;!d;an6b,g,m0;!ph;an,d,r,u0;l,n;a,da,e,n0;c,f;g,on,r0wy,z;!s;a0b,en,ov;!l;e1ig,l0m,r,t,y;! oz,a;b,m;a,g,ng,s1tc,x0;!p;p,q,t;ak,e0g,ist,l,m,r;c,f,pt,t;a3ca,g,l,m2o0pl,res,t,yn;!l0mdr,nn,rp;!o;!dr;!l0pt;!if;a,c,l1r0;ig,os;!dg,vd;d4l3p2r1ss0tty,ug,ve;n,t;c,iz;prox,r,t;!ta;!j,m,v",Country:"true¦0:38;1:2L;a2Wb2Dc21d1Xe1Rf1Lg1Bh19i13j11k0Zl0Um0Gn05om3CpZqat1JrXsKtCu6v4wal3yemTz2;a24imbabwe;es,lis and futu2X;a2enezue31ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2X;k.,s.2; 27a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Xs and caic1T; and 2-2;toba1J;go,kel0Ynga;iw2Vji2nz2R;ki2T;aCcotl1eBi8lov7o5pa2Bri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Qriname;lomon1Vmal0uth 2;afr2IkLsud2O;ak0en0;erra leoEn2;gapo1Wt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele24luc0mart1Z;epublic of ir0Com2Cuss0w2;an25;a3eHhilippinTitcairn1Ko2uerto riM;l1rtugE;ki2Bl3nama,pua new0Tra2;gu6;au,esti2;ne;aAe8i6or2;folk1Gth3w2;ay; k2ern mariana1B;or0M;caragua,ger2ue;!ia;p2ther18w zeal1;al;mib0u2;ru;a6exi5icro09o2yanm04;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagascZl6r4urit3yot2;te;an0i14;shall0Vtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed00;a5e4i2uxembourg;b2echtenste10thu1E;er0ya;ban0Gsotho;os,tv0;azakh1De2iriba02osovo,uwait,yrgyz1D;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",Region:"true¦0:1U;a20b1Sc1Id1Des1Cf19g13h10i0Xj0Vk0Tl0Qm0FnZoXpSqPrMsDtAut9v6w3y1zacatec22;o05u1;cat18kZ;a1est vi4isconsin,yomi14;rwick0shington1;! dc;er2i1;rgin1S;acruz,mont;ah,tar pradesh;a2e1laxca1DuscaA;nnessee,x1R;bas0Kmaulip1QsmJ;a6i4o2taf0Ou1ylh13;ffVrr00s0Y;me10no1Auth 1;cSdR;ber1Ic1naloa;hu0Sily;n2skatchew0Rxo1;ny; luis potosi,ta catari1I;a1hode7;j1ngp02;asth0Mshahi;inghai,u1;e1intana roo;bec,ensWreta0E;ara4e2rince edward1; isU;i,nnsylv1rnambu02;an14;!na;axa0Ndisha,h1klaho1Bntar1reg4x04;io;ayarit,eBo3u1;evo le1nav0L;on;r1tt0Rva scot0X;f6mandy,th1; 1ampton0;c3d2yo1;rk0;ako0Y;aroli0V;olk;bras0Xva01w1; 2foundland1;! and labrador;brunswick,hamp0jers1mexiJyork state;ey;a6i2o1;nta0Nrelos;ch3dlanBn2ss1;issippi,ouri;as geraGneso0M;igQoacQ;dhya,harasht04ine,ni3r1ssachusetts;anhao,y1;land;p1toba;ur;anca0e1incoln0ouis8;e1iH;ds;a1entucky,hul0A;ns08rnata0Dshmir;alis1iangxi;co;daho,llino2nd1owa;ia05;is;a2ert1idalEunA;ford0;mp0waii;ansu,eorgWlou5u1;an2erre1izhou,jarat;ro;ajuato,gdo1;ng;cester0;lori2uji1;an;da;sex;e4o2uran1;go;rs1;et;lawaErby0;a8ea7hi6o1umbrH;ahui4l3nnectic2rsi1ventry;ca;ut;iMorado;la;apEhuahua;ra;l8m1;bridge0peche;a5r4uck1;ingham0;shi1;re;emen,itish columb3;h2ja cal1sque,var2;iforn1;ia;guascalientes,l4r1;izo2kans1;as;na;a2ber1;ta;ba2s1;ka;ma",FemaleName:"true¦0:FY;1:G2;2:FR;3:FD;4:FC;5:EP;6:ER;7:FS;8:GF;9:EZ;A:GB;B:E5;C:FO;D:FL;E:G8;F:EG;aE2bD4cB8dAIe9Gf91g8Hh83i7Sj6Uk60l4Om38n2To2Qp2Fqu2Er1Os0Qt04ursu6vUwOyLzG;aJeHoG;e,la,ra;lGna;da,ma;da,ra;as7EeHol1TvG;et5onB9;le0sen3;an9endBNhiB4iG;lInG;if3AniGo0;e,f39;a,helmi0lGma;a,ow;aMeJiG;cHviG;an9XenG1;kCZtor3;da,l8Vnus,rG;a,nGoniD2;a,iDC;leGnesEC;nDLrG;i1y;aSePhNiMoJrGu6y4;acG3iGu0E;c3na,sG;h9Mta;nHrG;a,i;i9Jya;a5IffaCGna,s7;al3eGomasi0;a,l8Go6Xres1;g7Uo6WrHssG;!a,ie;eFi,ri8;bNliMmKnIrHs7tGwa0;ia0um;a,yn;iGya;a,ka,s7;a4e4iGmCAra;!ka;a,t7;at7it7;a05carlet2Ye04hUiSkye,oQtMuHyG;bFJlvi1;e,sHzG;an2Tet5ie,y;anGi8;!a,e,nG;aDe;aIeG;fGl3DphG;an2;cF8r6;f3nGphi1;d4ia,ja,ya;er4lv3mon1nGobh75;dy;aKeGirlBLo0y6;ba,e0i6lIrG;iGrBPyl;!d70;ia,lBV;ki4nIrHu0w0yG;la,na;i,leAon,ron;a,da,ia,nGon;a,on;l5Yre0;bMdLi9lKmIndHrGs7vannaD;aDi0;ra,y;aGi4;nt7ra;lBNome;e,ie;in1ri0;a02eXhViToHuG;by,thBK;bQcPlOnNsHwe0xG;an94ie,y;aHeGie,lE;ann8ll1marBFtB;!lGnn1;iGyn;e,nG;a,d7W;da,i,na;an9;hel53io;bin,erByn;a,cGkki,na,ta;helBZki;ea,iannDXoG;da,n12;an0bIgi0i0nGta,y0;aGee;!e,ta;a,eG;cARkaD;chGe,i0mo0n5EquCDvCy0;aCCelGi9;!e,le;een2ia0;aMeLhJoIrG;iGudenAW;scil1Uyamva9;lly,rt3;ilome0oebe,ylG;is,lis;arl,ggy,nelope,r6t4;ige,m0Fn4Oo6rvaBBtHulG;a,et5in1;ricGsy,tA8;a,e,ia;ctav3deHfAWlGphAW;a,ga,iv3;l3t5;aQePiJoGy6;eHrG;aDeCma;ll1mi;aKcIkGla,na,s7ta;iGki;!ta;hoB2k8BolG;a,eBH;!mh;l7Tna,risF;dIi5PnHo23taG;li1s7;cy,et5;eAiCO;a01ckenz2eViLoIrignayani,uriBGyG;a,rG;a,na,tAS;i4ll9XnG;a,iG;ca,ka,qB4;a,chOkaNlJmi,nIrGtzi;aGiam;!n9;a,dy,erva,h,n2;a,dIi9JlG;iGy;cent,e;red;!e6;ae6el3G;ag4KgKi,lHrG;edi61isFyl;an2iGliF;nGsAM;a,da;!an,han;b08c9Ed06e,g04i03l01nZrKtJuHv6Sx87yGz2;a,bell,ra;de,rG;a,eC;h75il9t2;a,cSgOiJjor2l6In2s7tIyG;!aGbe5QjaAlou;m,n9S;a,ha,i0;!aIbALeHja,lEna,sGt53;!a,ol,sa;!l06;!h,m,nG;!a,e,n1;arIeHie,oGr3Kueri5;!t;!ry;et3IiB;elGi61y;a,l1;dGon,ue6;akranBy;iGlo36;a,ka,n9;a,re,s2;daGg2;!l2W;alEd2elGge,isBGon0;eiAin1yn;el,le;a0Ie08iWoQuKyG;d3la,nG;!a,dHe9SnGsAQ;!a,e9R;a,sAO;aB1cJelIiFlHna,pGz;e,iB;a,u;a,la;iGy;a2Ae,l25n9;is,l1GrHtt2uG;el6is1;aIeHi8na,rG;a6Zi8;lei,n1tB;!in1;aQbPd3lLnIsHv3zG;!a,be4Ket5z2;a,et5;a,dG;a,sGy;ay,ey,i,y;a,iaIlG;iGy;a8Ge;!n4F;b7Terty;!n5R;aNda,e0iLla,nKoIslARtGx2;iGt2;c3t3;la,nGra;a,ie,o4;a,or1;a,gh,laG;!ni;!h,nG;a,d4e,n4N;cNdon7Si6kes7na,rMtKurIvHxGy6;mi;ern1in3;a,eGie,yn;l,n;as7is7oG;nya,ya;a,isF;ey,ie,y;aZeUhadija,iMoLrIyG;lGra;a,ee,ie;istGy5B;a,en,iGy;!e,n48;ri,urtn9A;aMerLl99mIrGzzy;a,stG;en,in;!berlG;eGi,y;e,y;a,stC;!na,ra;el6PiJlInHrG;a,i,ri;d4na;ey,i,l9Qs2y;ra,s7;c8Wi5XlOma6nyakumari,rMss5LtJviByG;!e,lG;a,eG;e,i78;a5EeHhGi3PlEri0y;ar5Cer5Cie,leCr9Fy;!lyn73;a,en,iGl4Uyn;!ma,n31sF;ei72i,l2;a04eVilToMuG;anKdJliGst56;aHeGsF;!nAt0W;!n8X;i2Ry;a,iB;!anLcelEd5Vel71han6IlJni,sHva0yG;a,ce;eGie;fi0lEph4X;eGie;en,n1;!a,e,n36;!i10lG;!i0Z;anLle0nIrHsG;i5Qsi5Q;i,ri;!a,el6Pif1RnG;a,et5iGy;!e,f1P;a,e72iHnG;a,e71iG;e,n1;cLd1mi,nHqueliAsmin2Uvie4yAzG;min8;a8eHiG;ce,e,n1s;!lGsFt06;e,le;inHk2lEquelG;in1yn;da,ta;lPmNnMo0rLsHvaG;!na;aHiGob6U;do4;!belGdo4;!a,e,l2G;en1i0ma;a,di4es,gr5R;el9ogG;en1;a,eAia0o0se;aNeKilHoGyacin1N;ll2rten1H;aHdGlaH;a,egard;ry;ath0WiHlGnrietBrmiAst0W;en24ga;di;il75lKnJrGtt2yl75z6D;iGmo4Fri4G;etG;!te;aDnaD;ey,l2;aYeTiOlMold12rIwG;enGyne18;!dolE;acHetGisel9;a,chC;e,ieG;!la;adys,enGor3yn1Y;a,da,na;aJgi,lHna,ov71selG;a,e,le;da,liG;an;!n0;mYnIorgHrG;ald35i,m2Stru73;et5i5T;a,eGna;s1Nvieve;briel3Fil,le,rnet,yle;aReOio0loMrG;anHe9iG;da,e9;!cG;esHiGoi0G;n1s3V;!ca;!rG;a,en43;lHrnG;!an9;ec3ic3;rHtiGy8;ma;ah,rah;d0FileCkBl00mUn4ArRsMtLuKvG;aIelHiG;e,ta;in0Ayn;!ngel2H;geni1la,ni3R;h52ta;meral9peranJtG;eHhGrel6;er;l2Pr;za;iGma,nest29yn;cGka,n;a,ka;eJilImG;aGie,y;!liA;ee,i1y;lGrald;da,y;aTeRiMlLma,no4oJsIvG;a,iG;na,ra;a,ie;iGuiG;se;a,en,ie,y;a0c3da,nJsGzaH;aGe;!beG;th;!a,or;anor,nG;!a;in1na;en,iGna,wi0;e,th;aWeKiJoGul2U;lor51miniq3Yn30rGtt2;a,eCis,la,othGthy;ea,y;an09naDonAx2;anPbOde,eNiLja,lImetr3nGsir4U;a,iG;ce,se;a,iHla,orGphiA;es,is;a,l5J;dGrdG;re;!d4Mna;!b2CoraDra;a,d4nG;!a,e;hl3i0mMnKphn1rHvi1WyG;le,na;a,by,cHia,lG;a,en1;ey,ie;a,et5iG;!ca,el1Aka;arGia;is;a0Qe0Mh04i02lUoJrHynG;di,th3;istGy04;al,i0;lOnLrHurG;tn1D;aId28iGn28riA;!nG;a,e,n1;!l1S;n2sG;tanGuelo;ce,za;eGleC;en,t5;aIeoHotG;il4B;!pat4;ir8rIudG;et5iG;a,ne;a,e,iG;ce,sX;a4er4ndG;i,y;aPeMloe,rG;isHyG;stal;sy,tG;aHen,iGy;!an1e,n1;!l;lseHrG;!i8yl;a,y;nLrG;isJlHmG;aiA;a,eGot5;n1t5;!sa;d4el1PtG;al,el1O;cHlG;es5i3F;el3ilG;e,ia,y;iYlXmilWndVrNsLtGy6;aJeIhGri0;erGleCrEy;in1;ri0;li0ri0;a2GsG;a2Fie;a,iMlKmeIolHrG;ie,ol;!e,in1yn;lGn;!a,la;a,eGie,y;ne,y;na,sF;a0Di0D;a,e,l1;isBl2;tlG;in,yn;arb0CeYianXlVoTrG;andRePiIoHyG;an0nn;nwEok8;an2NdgKg0ItG;n27tG;!aHnG;ey,i,y;ny;etG;!t8;an0e,nG;da,na;i8y;bbi8nG;iBn2;ancGossom,ythe;a,he;ca;aRcky,lin9niBrNssMtIulaDvG;!erlG;ey,y;hHsy,tG;e,i0Zy8;!anG;ie,y;!ie;nGt7yl;adHiG;ce;et5iA;!triG;ce,z;a4ie,ra;aliy29b24d1Lg1Hi19l0Sm0Nn01rWsNthe0uJvIyG;anGes7;a,na;a,r25;drIgusHrG;el3;ti0;a,ey,i,y;hHtrG;id;aKlGt1P;eHi8yG;!n;e,iGy;gh;!nG;ti;iIleHpiB;ta;en,n1t5;an19elG;le;aYdWeUgQiOja,nHtoGya;inet5n3;!aJeHiGmI;e,ka;!mGt5;ar2;!belHliFmT;sa;!le;ka,sGta;a,sa;elGie;a,iG;a,ca,n1qG;ue;!t5;te;je6rea;la;!bHmGstas3;ar3;el;aIberHel3iGy;e,na;!ly;l3n9;da;aTba,eNiKlIma,yG;a,c3sG;a,on,sa;iGys0J;e,s0I;a,cHna,sGza;a,ha,on,sa;e,ia;c3is7jaIna,ssaIxG;aGia;!nd4;nd4;ra;ia;i0nHyG;ah,na;a,is,naD;c7da,leCmLnslKsG;haDlG;inGyW;g,n;!h;ey;ee;en;at7g2nG;es;ie;ha;aVdiSelLrG;eIiG;anLenG;a,e,ne;an0;na;aKeJiHyG;nn;a,n1;a,e;!ne;!iG;de;e,lEsG;on;yn;!lG;iAyn;ne;agaJbHiG;!gaI;ey,i8y;!e;il;ah",Place:"true¦a07b05cZdYeXfVgRhQiOjfk,kMlKmHneEoDp9que,rd,s8t5u4v3w0yyz;is1y0;!o;!c;a,t;pYsafa,t;e1he 0;bronx,hamptons;nn,x;ask,fo,oho,t,under6yd;a2e1h0;l,x;k,nnK;!cifX;kla,nt;b1w eng0;land;!r;a1co,i0t,uc;dKnn;libu,nhattS;a0gw,hr;s,x;an0ul;!s;a0cn,da,ndianMst;!x;arlem,kg,nd,wy;a2re0;at 0enwich;britain,lak6;!y village;co,l0ra;!a;urope,verglad2;ak,en,fw,ist,own4xb;al4dg,gk,hina3l2o1r0t;es;lo,nn;!t;town;!if;cn,e0kk,lvd,rooklyn;l air,verly hills;frica,lta,m5ntarct2r1sia,tl0ve;!ant1;ct0iz;ic0; oce0;an;ericas,s",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦aBdec9feb7j2mar,nov9oct1sep0;!t8;!o8;an3u0;l1n0;!e;!y;!u1;!ru0;ary;!em0;ber;pr1ug0;!ust;!il",Date:"true¦t0weekend,yesterd2;mr2o0;d0morrow;ay;!w",FirstName:"true¦aEblair,cCdevBj8k6lashawn,m3nelly,quinn,re2sh0;ay,e0iloh;a,lby;g1ne;ar1el,org0;an;ion,lo;as8e0r9;ls7nyatta,rry;am0ess1ude;ie,m0;ie;an,on;as0heyenne;ey,sidy;lex1ndra,ubr0;ey;is",LastName:"true¦0:34;1:39;2:3B;3:2Y;4:2E;5:30;a3Bb31c2Od2Ee2Bf25g1Zh1Pi1Kj1Ek17l0Zm0Nn0Jo0Gp05rYsMtHvFwCxBy8zh6;a6ou,u;ng,o;a6eun2Uoshi1Kun;ma6ng;da,guc1Zmo27sh21zaR;iao,u;a7eb0il6o3right,u;li3Bs1;gn0lk0ng,tanabe;a6ivaldi;ssilj37zqu2;a9h8i2Go7r6sui,urn0;an,ynisJ;lst0Prr1Uth;at1Uomps1;kah0Vnaka,ylor;aEchDeChimizu,iBmiAo9t7u6zabo;ar2lliv2AzuE;a6ein0;l23rm0;sa,u3;rn4th;lva,mmo24ngh;mjon4rrano;midt,neid0ulz;ito,n7sa6to;ki;ch2dLtos,z;amBeag1Zi9o7u6;bio,iz,sD;b6dri1MgIj0Tme24osevelt,ssi,ux;erts,ins1;c6ve0F;ci,hards1;ir2os;aEeAh8ic6ow20;as6hl0;so;a6illips;m,n1T;ders5et8r7t6;e0Nr4;ez,ry;ers;h21rk0t6vl4;el,te0J;baBg0Blivei01r6;t6w1O;ega,iz;a6eils1guy5ix1owak,ym1E;gy,ka6var1K;ji6muW;ma;aEeCiBo8u6;ll0n6rr0Bssolini,ñ6;oz;lina,oKr6zart;al0Me6r0U;au,no;hhail4ll0;rci0ssi6y0;!er;eWmmad4r6tsu07;in6tin2;!o;aCe8i6op2uo;!n6u;coln,dholm;fe7n0Qr6w0J;oy;bv6v6;re;mmy,rs5u;aBennedy,imuAle0Lo8u7wo6;k,n;mar,znets4;bay6vacs;asY;ra;hn,rl9to,ur,zl4;aAen9ha3imen2o6u3;h6nYu3;an6ns1;ss1;ki0Es5;cks1nsse0D;glesi9ke8noue,shik7to,vano6;u,v;awa;da;as;aBe8itchcock,o7u6;!a3b0ghNynh;a3ffmann,rvat;mingw7nde6rN;rs1;ay;ns5rrQs7y6;asDes;an4hi6;moJ;a9il,o8r7u6;o,tierr2;ayli3ub0;m2nzal2;nd6o,rcia;hi;erAis9lor8o7uj6;ita;st0urni0;es;ch0;nand2;d7insteHsposi6vaL;to;is1wards;aCeBi9omin8u6;bo6rand;is;gu2;az,mitr4;ov;lgado,vi;nkula,rw7vi6;es,s;in;aFhBlarkAo6;h5l6op0rbyn,x;em7li6;ns;an;!e;an8e7iu,o6ristens5u3we;i,ng,u3w,y;!n,on6u3;!g;mpb7rt0st6;ro;ell;aBe8ha3lanco,oyko,r6yrne;ooks,yant;ng;ck7ethov5nnett;en;er,ham;ch,h8iley,rn6;es,i0;er;k,ng;dDl9nd6;ers6rA;en,on,s1;on;eks7iy8var2;ez;ej6;ev;ams",MaleName:"true¦0:CE;1:BL;2:C2;3:BT;4:B5;5:9V;6:BZ;7:AT;8:BD;9:AX;A:AO;aB4bA8c97d87e7Gf6Yg6Gh5Wi5Ij4Lk4Bl3Rm2Pn2Eo28p22qu20r1As0Qt06u05v00wNxavi3yGzB;aBor0;cBh8Ine;hCkB;!aB1;ar51eB0;ass2i,oCuB;sDu25;nEsDusB;oBsC;uf;ef;at0g;aJeHiCoByaAP;lfgang,odrow;lBn1O;bDey,frBJlB;aA5iB;am,e,s;e89ur;i,nde5sB;!l7t1;de,lCrr6yB;l1ne;lBt3;a93y;aEern1iB;cCha0nceBrg9Bva0;!nt;ente,t5A;lentin49n8Yughn;lyss4Msm0;aTeOhKiIoErCyB;!l3ro8s1;av9QeBist0oy,um0;nt9Iv54y;bDd7XmBny;!as,mBoharu;aAYie,y;i83y;mBt9;!my,othy;adDeoCia7DomB;!as;!do7M;!de9;dErB;en8HrB;an8GeBy;ll,n8F;!dy;dgh,ic9Tnn3req,ts45;aRcotPeNhJiHoFpenc3tBur1Oylve8Hzym1;anDeBua7B;f0phAFvBwa7A;e57ie;!islaw,l7;lom1nA3uB;leyma8ta;dBl7Jm1;!n7;aDeB;lBrm0;d1t1;h6Sne,qu0Uun,wn,y8;aBbasti0k1Xl41rg40th,ymo9I;m9n;!tB;!ie,y;lCmBnti21q4Iul;!mAu4;ik,vato6V;aWeShe92iOoFuCyB;an,ou;b6LdCf9pe6QssB;!elAI;ol2Uy;an,bIcHdGel,geFh0landA9mEnDry,sCyB;!ce;coe,s;!a95nA;an,eo;l3Jr;e4Qg3n7olfo,ri68;co,ky;bAe9U;cBl7;ar5Oc5NhCkBo;!ey,ie,y;a85ie;gCid,ub6x,yBza;ansh,nS;g8WiB;na8Ss;ch5Yfa4lDmCndBpha4sh6Uul,ymo70;al9Yol2By;i9Ion;f,ph;ent2inB;cy,t1;aFeDhilCier62ol,reB;st1;!ip,lip;d9Brcy,tB;ar,e2V;b3Sdra6Ft44ul;ctav2Vliv3m96rFsCtBum8Uw6;is,to;aCc8SvB;al52;ma;i,l49vJ;athJeHiDoB;aBel,l0ma0r2X;h,m;cCg4i3IkB;h6Uola;hol5XkBol5X;!ol5W;al,d,il,ls1vB;il50;anBy;!a4i4;aWeTiKoFuCyB;l21r1;hamCr5ZstaB;fa,p4G;ed,mF;dibo,e,hamDis1XntCsBussa;es,he;e,y;ad,ed,mB;ad,ed;cGgu4kElDnCtchB;!e5;a78ik;house,o03t1;e,olB;aj;ah,hBk7;a4eB;al,l;hClv2rB;le,ri5v2;di,met;ck,hNlLmOnu4rHs1tDuricCxB;!imilian8Cwe5;e,io;eo,hCi52tB;!eo,hew,ia;eBis;us,w;cDio,k86lCqu6Gsha5tBv2;i2Hy;in,on;!el,oKus;achBcolm,ik;ai,y;amBdi,moud;adB;ou;aReNiMlo2RoIuCyB;le,nd1;cEiDkBth3;aBe;!s;gi,s;as,iaB;no;g0nn6RrenDuBwe5;!iB;e,s;!zo;am,on4;a7Bevi,la4SnDoBst3vi;!nB;!a60el;!ny;mCnBr67ur4Twr4T;ce,d1;ar,o4N;aIeDhaled,iBrist4Vu48y3B;er0p,rB;by,k,ollos;en0iEnBrmit,v2;!dCnBt5C;e0Yy;a5ri4N;r,th;na68rBthem;im,l;aYeQiOoDuB;an,liBst2;an,o,us;aqu2eJhnInGrEsB;eChBi7Bue;!ua;!ph;dBge;an,i,on;!aBny;h,s,th4X;!ath4Wie,nA;!l,sBy;ph;an,e,mB;!mA;d,ffGrDsB;sBus;!e;a5JemCmai8oBry;me,ni0O;i6Uy;!e58rB;ey,y;cHd6kGmFrDsCvi3yB;!d6s1;on,p3;ed,od,rBv4M;e4Zod;al,es,is1;e,ob,ub;k,ob,quB;es;aNbrahMchika,gKkeJlija,nuIrGsDtBv0;ai,sB;uki;aBha0i6Fma4sac;ac,iaB;h,s;a,vinBw2;!g;k,nngu52;!r;nacBor;io;im;in,n;aJeFina4VoDuByd56;be25gBmber4CsD;h,o;m3ra33sBwa3X;se2;aDctCitCn4ErB;be20m0;or;th;bKlJmza,nIo,rDsCyB;a43d6;an,s0;lEo4FrDuBv7;hi40ki,tB;a,o;is1y;an,ey;k,s;!im;ib;aQeMiLlenKoIrEuB;illerCsB;!tavo;mo;aDegBov3;!g,orB;io,y;dy,h57nt;nzaBrd1;lo;!n;lbe4Qno,ovan4R;ne,oDrB;aBry;ld,rd4U;ffr7rge;bri4l6rBv2;la1Zr3Eth,y;aReNiLlJorr0IrB;anDedBitz;!dAeBri24;ri23;cDkB;!ie,lB;in,yn;esJisB;!co,zek;etch3oB;yd;d4lBonn;ip;deriDliCng,rnB;an01;pe,x;co;bi0di;arZdUfrTit0lNmGnFo2rCsteb0th0uge8vBym6zra;an,ere2V;gi,iCnBrol,v2w2;est45ie;c07k;och,rique,zo;aGerFiCmB;aFe2P;lCrB;!h0;!io;s1y;nu4;be09d1iEliDmCt1viBwood;n,s;er,o;ot1Ts;!as,j43sB;ha;a2en;!dAg32mEuCwB;a25in;arB;do;o0Su0S;l,nB;est;aYeOiLoErDuCwByl0;ay8ight;a8dl7nc0st2;ag0ew;minFnDri0ugCyB;le;!l03;!a29nBov0;e5ie,y;go,icB;!k;armuCeBll1on,rk;go;id;anIj0lbeHmetri9nFon,rEsDvCwBxt3;ay8ey;en,in;hawn,mo08;ek,ri0F;is,nBv3;is,y;rt;!dB;re;lKmInHrDvB;e,iB;!d;en,iDne5rByl;eBin,yl;l2Vn;n,o,us;!e,i4ny;iBon;an,en,on;e,lB;as;a06e04hWiar0lLoGrEuCyrB;il,us;rtB;!is;aBistobal;ig;dy,lEnCrB;ey,neli9y;or,rB;ad;by,e,in,l2t1;aGeDiByI;fBnt;fo0Ct1;meCt9velaB;nd;nt;rDuCyB;!t1;de;enB;ce;aFeErisCuB;ck;!tB;i0oph3;st3;d,rlBs;eBie;s,y;cBdric,s11;il;lEmer1rB;ey,lCro5y;ll;!os,t1;eb,v2;ar02eUilTlaSoPrCuByr1;ddy,rtI;aJeEiDuCyB;an,ce,on;ce,no;an,ce;nCtB;!t;dCtB;!on;an,on;dCndB;en,on;!foBl7y;rd;bCrByd;is;!by;i8ke;al,lA;nFrBshoi;at,nCtB;!r10;aBie;rd0S;!edict,iCjam2nA;ie,y;to;n7rBt;eBy;tt;ey;ar0Xb0Nd0Jgust2hm0Gid6ja0ElZmXnPputsiOrFsaEuCveBya0ziz;ry;gust9st2;us;hi;aIchHi4jun,maFnDon,tBy0;hBu06;ur;av,oB;ld;an,nd0A;el;ie;ta;aq;dGgel05tB;hoEoB;i8nB;!i02y;ne;ny;reBy;!as,s,w;ir,mBos;ar;an,beOd6eIfFi,lEonDphonHt1vB;aMin;on;so,zo;an,en;onCrB;edP;so;c,jaEksandDssaExB;!and3;er;ar,er;ndB;ro;rtH;ni;en;ad,eB;d,t;in;aColfBri0vik;!o;mBn;!a;dFeEraCuB;!bakr,lfazl;hBm;am;!l;allEel,oulaye,ulB;!lCrahm0;an;ah,o;ah;av,on",Person:"true¦ashton kutchSbRcMdKeIgastNhGinez,jEkDleCmBnettJoAp8r4s3t2v0;a0irgin maG;lentino rossi,n go3;heresa may,iger woods,yra banks;addam hussain,carlett johanssJlobodan milosevic,uB;ay romano,eese witherspoIo1ush limbau0;gh;d stewart,nald0;inho,o;a0ipJ;lmIris hiltD;prah winfrFra;essiaen,itt romnEubarek;bron james,e;anye west,iefer sutherland,obe bryant;aime,effers8k rowli0;ng;alle ber0itlBulk hogan;ry;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0ruz;on;dinal wols1son0;! palm2;ey;arack obama,rock;er",Verb:"true¦awak9born,cannot,fr8g7h5k3le2m1s0wors9;e8h3;ake sure,sg;ngth6ss6;eep tabs,n0;own;as0e2;!t2;iv1onna;ight0;en",PhrasalVerb:"true¦0:72;1:6Q;2:7E;3:74;4:6J;5:7H;6:76;7:6P;8:6C;9:6D;A:5I;B:71;C:70;a7Hb63c5Dd5Ae58f46g3Oh38iron0j34k2Zl2Km2Bn29o27p1Pr1Es09tQuOvacuum 1wGyammerCzD;eroAip EonD;e0k0;by,up;aJeGhFiEorDrit53;d 1k2R;mp0n4Ape0r8s8;eel Bip 7L;aEiD;gh 06rd0;n Br 3D;it 5Kk8lk6rm 0Qsh 74t67v4P;rgeCsD;e 9herA;aRePhNiJoHrFuDype 0N;ckArn D;d2in,o3Gup;ade YiDot0y 28;ckle68p 7A;ne67p Ds4D;d2o6Lup;ck FdEe Dgh5Tme0p o0Dre0;aw3ba4d2in,up;e5Ky 1;by,o6V;ink Drow 5V;ba4ov7up;aDe 4Ill4O;m 1r W;ckCke Elk D;ov7u4O;aDba4d2in,o31up;ba4ft7p4Tw3;a0Gc0Fe09h05i02lYmXnWoVpSquare RtJuHwD;earFiD;ngEtch D;aw3ba4o6P; by;ck Dit 1m 1ss0;in,up;aIe0RiHoFrD;aigh1MiD;ke 5Yn2Y;p Drm1P;by,in,o6B;n2Zr 1tc3I;c2Ymp0nd Dr6Hve6y 1;ba4d2up;d2o67up;ar2Vell0ill4UlErDurC;ingCuc8;a33it 3U;be4Crt0;ap 4Eow B;ash 4Zoke0;eep EiDow 9;c3Np 1;in,oD;ff,v7;gn Eng2Zt Dz8;d2o5up;in,o5up;aFoDu4F;ot Dut0w 5X;aw3ba4f37o5R;c2FdeAk4Sve6;e Hll0nd GtD; Dtl43;d2in,o5upD;!on;aw3ba4d2in,o1Yup;o5to;al4Lout0rap4L;il6v8;at0eKiJoGuD;b 4Ele0n Dstl8;aDba4d2in53o3Gt30u3E;c1Xw3;ot EuD;g2Knd6;a1Xf2Ro5;ng 4Op6;aDel6inAnt0;c4Yd D;o2Tu0C;aQePiOlMoKrHsyc2AuD;ll Ft D;aDba4d2in,o1Ht34up;p39w3;ap38d2in,o5t32up;attleCess EiGoD;p 1;ah1Hon;iDp 53re3Mur45wer 53;nt0;ay3ZuD;gAmp 9;ck 53g0leCn 9p3W;el 47ncilA;c3Pir 2In0ss FtEy D;ba4o4R; d2c1Y;aw3ba4o12;pDw3K;e3Jt B;arrow3Terd0oD;d6te3S;aJeHiGoEuD;ddl8ll37;c17p 1uth6ve D;al3Bd2in,o5up;ss0x 1;asur8lt 9ss D;a1Aup;ke Dn 9r30s1Lx0;do,o3Yup;aPeNiIoDuck0;a17c37g GoDse0;k Dse35;aft7ba4d2forw2Bin3Wov7uD;nd7p;in,o0J;e GghtFnEsDv1T;ten 4D;e 1k 1; 1e2Y;ar43d2;av1Ht 2YvelD; o3L;p 1sh DtchCugh6y1U;in3Lo5;eEick6nock D;d2o3H;eDyA;l2Hp D;aw3ba4d2fSin,o05to,up;aFoEuD;ic8mpA;ke2St2W;c31zz 1;aPeKiHoEuD;nker2Ts0U;lDneArse2O;d De 1;ba4d2fast,oZup;de Et D;ba4on,up;aw3o5;aDlp0;d Fl22r Dt 1;fDof;rom;in,oRu1A;cZm 1nDve it,ze1Y;d Dg 27kerF;d2in,o5;aReLive Jloss1VoFrEunD; f0M;in39ow 23; Dof 0U;aEb17it,oDr35t0Ou12;ff,n,v7;bo5ft7hJw3;aw3ba4d2in,oDup,w3;ff,n,ut;a17ek0t D;aEb11d2oDr2Zup;ff,n,ut,v7;cEhDl1Pr2Xt,w3;ead;ross;d aEnD;g 1;bo5;a08e01iRlNoJrFuD;cDel 1;k 1;eEighten DownCy 1;aw3o2L;eDshe1G; 1z8;lFol D;aDwi19;bo5r2I;d 9;aEeDip0;sh0;g 9ke0mDrD;e 2K;gLlJnHrFsEzzD;le0;h 2H;e Dm 1;aw3ba4up;d0isD;h 1;e Dl 11;aw3fI;ht ba4ure0;eInEsD;s 1;cFd D;fDo1X;or;e B;dQl 1;cHll Drm0t0O;apYbFd2in,oEtD;hrough;ff,ut,v7;a4ehi1S;e E;at0dge0nd Dy8;o1Mup;o09rD;ess 9op D;aw3bNin,o15;aShPlean 9oDross But 0T;me FoEuntD; o1M;k 1l6;aJbIforGin,oFtEuD;nd7;ogeth7;ut,v7;th,wD;ard;a4y;pDr19w3;art;eDipA;ck BeD;r 1;lJncel0rGsFtch EveA; in;o16up;h Bt6;ry EvD;e V;aw3o12;l Dm02;aDba4d2o10up;r0Vw3;a0He08l01oSrHuD;bbleFcklTilZlEndlTrn 05tDy 10zz6;t B;k 9; ov7;anMeaKiDush6;ghHng D;aEba4d2forDin,o5up;th;bo5lDr0Lw3;ong;teD;n 1;k D;d2in,o5up;ch0;arKgJil 9n8oGssFttlEunce Dx B;aw3ba4;e 9; ar0B;k Bt 1;e 1;d2up; d2;d 1;aIeed0oDurt0;cFw D;aw3ba4d2o5up;ck;k D;in,oK;ck0nk0st6; oJaGef 1nd D;d2ov7up;er;up;r0t D;d2in,oDup;ff,ut;ff,nD;to;ck Jil0nFrgEsD;h B;ainCe B;g BkC; on;in,o5; o5;aw3d2o5up;ay;cMdIsk Fuction6; oD;ff;arDo5;ouD;nd;d D;d2oDup;ff,n;own;t D;o5up;ut",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to;ay,ight,ust;an,o0;uld",Adjective:"true¦0:73;1:7I;2:7O;3:7H;4:7A;5:5B;6:4R;7:49;8:48;9:60;A:7F;a6Eb60c5Md52e4Pf45g3Xh3Mi31j2Zk2Yl2Nm2Cn23o1Np16quack,r0Ws0Ct05uMvJwByear5;arp0eFholeEiDoB;man5oBu67;d69zy;despr6Zs5B;!sa7;eClBste22;co1El o4H;!k5;aCiBola47;b7Nce versa,ol50;ca2gabo5Ynilla;ltSnFpCrb55su4tterB;!mo6U; f30b1KpCsBti1D;ca7et,ide dItairs;er,i3J;aLbeco6Lconvin23deIeHfair,ivers4knGprecedUrEsCwB;iel1Writt5U;i1RuB;pervis0specti3;eBu5;cognHgul6Bl6B;own;ndi3v5Oxpect0;cid0rB;!grou5JsB;iz0tood;b7ppeaHssu6AuthorB;iz0;i20ra;aFeDhough4KoCrB;i1oubl0;geth6p,rp6B;en5LlBm4Vrr2Q;li3;boo,lBn;ent0;aTcSeQhPiNmug,nobbi3AoLpKqueami3AtFuBymb5Y;bDi gener50pBrprisi3;erBre0H;! dup6b,i25;du0seq4P;anda6OeEi0LrBy34;aightBip0; fBfB;or56;adfa5Wreotyp0;a4Uec2Cir1Flend5Wot on; call0le,mb6phist1TrBu0Tvi3X;d5Ury;gnifica2nB;ce4Qg7;am2Le6ocki3ut;cBda1em5lfi2Uni1Spa63re8;o1Cr3R;at53ient24reec53;cr0me,ns serif;aIeEiCoB;bu5Ktt4PuOy4;ghtBv4;!-25f9;ar,bel,condi1du5Xfres4XlDpublic3RsBtard0;is43oB;lu1na2;e1Auc41;b5EciB;al,st;aMeKicayu8lac5Copuli5BrCuB;bl54mp0;eFiCoB;!b06fu5Cmi2Xp6;mCor,sBva1;ti8;a4Re;ci58mB;a0EiB;er,um;ac1WrBti1;feAma2Pplexi3v2Z;rBst;allelDtB;-tiBi4;me;!ed;bMffKkJld fashion0nIpHrg1Dth6utGvB;al,erB;!aDniCt,wB;eiBrouB;ght;ll;do0Rer,g2Hsi41;en,posi1; boa5Ag2Fli8;!ay; gua58bBli8;eat;eDsB;cBer0Dole1;e8u3F;d2Ose;ak0eIiHoBua4J;nFrCtB;ab7;thB;!eB;rn;chala2descri4Ustop;ght5;arby,cessa3Sighbor5xt;aJeHiEoBultip7;bi7derClBnth5ot,st;dy;a1n;nBx0;iaBor;tu2Y;di49naBre;ci3;cBgenta,in,jZkeshift,le,mmoth,ny,sculi8;ab2Uho;aKeFiCoBu0Z;uti0Yvi3;mCteraB;l,te;it0;ftEgBth4;al,eCitiB;ma1;nda38;!-08;ngu3Lst,tt6;ap1Oind5no06;agg0uB;niKstifi0veni7;de4gno46lleg4mOnDpso 1RrB;a1releB;va2; JaIbr0corHdFfluenPiPnEsDtB;aAen3GoxB;ic31;a8i2N;a1er,oce2;iCoB;or;reA;deq3Eppr2T;fBsitu,vitro;ro2;mFpB;arDerfeAoBrop6;li1rtB;a2ed;ti4;eBi0M;d2Ln30;aGelFiDoBumdr36;ne2Uok0rrBs03ur5;if2N;ghfalut1KspB;an2L;liVpf9;lEnDrB;d01roB;wi3;dy,gi3;f,low0;ainf9ener2Eiga1YlHoGraDuB;ilBng ho;ty;cCtB;ef9is;ef9;ne,od;ea28ob4;aQeKinJlIoDrB;a1PeBoz1G;e28q0Ytf9;oDrB; keeps,eBm6tuna1;g00ign;liB;sh;ag2Uue2;al,i1;dFmCrB;ti7;a7ini8;ne;le; up;bl0i2l20r Cux,voB;ri1uri1;oBreac1A;ff;aJfficie2lImiHnFreAthere4veExB;aAcess,pe1JtraCuB;be2Gl0D;!va19;n,ryday; Bcouragi3ti0M;rou1sui1;ne2;abo1YdMe14i1;g6sB;t,ygB;oi3;er;aReJiDoBrea11ue;mina2ne,ubB;le,tf9;dact16fficu1JsCvB;er1F;creDeas0gruntl0hone1AordCtB;a2ress0;er5;et; HadpGfFgene1KliDrang0spe1KtCvoB;ut;ail0ermin0;be1Hca1ghB;tf9;ia2;an;facto;i5magBngeroVs0E;ed,i3;ly;ertaNhief,ivil,oDrB;aBowd0u0D;mp0vYz0;loJmHnCoi3rrBve0K;eAu1D;cre1grEsDtB;emBra0B;po09;ta2;ue2;mer04pleB;te,x;ni4ss4;in;aLeHizarGlFoCrB;and new,isk,okL;gCna fiSttom,urgeoB;is;us;ank,iE;re;autif9hiClov0nBst,yoC;eRt;nd;ul;ckCnkru0SrrB;en;!wards; priori,b0Ic0Fd05fra04g00hZlUma01ntiquTppQrKsIttracti02utheHvEwB;aCkB;wa0P;ke,re;ant garCerB;age;de;ntQ;leep,tonisB;hi3;ab,bitEroDtiB;fiB;ci4;ga2;raB;ry;are2etiLrB;oprB;ia1;at0;arEcohCeBiIl,oof;rt;olB;ic;mi3;ead;ainDgressiConiB;zi3;ve;st;id; IeGuFvB;aCerB;se;nc0;ed;lt;pt,qB;ua1;hoc,infinitB;um;cuCtu4u1;al;ra1;erLlKoIruHsCuB;nda2;e2oCtraA;ct;lu1rbi3;ng;te;pt;aBve;rd;aze,e;ra2;nt",Comparable:"true¦0:3Z;1:4G;2:43;3:2W;4:49;5:3V;a4Mb42c3Md3Be33f2Pg2Dh22i1Tj1Sk1Pl1Hm1Bn15o13p0Tqu0Rr0IsRtKuIvFw7y6za11;ell25ou4;aBe9hi1Wi7r6;o4y;ck0Mde,l6n1ry,se;d,y;a6i4Kt;k,ry;n1Rr6sI;m,y;a7e6ulgar;nge5rda2xi4;gue,in,st;g0n6pco3Kse5;like0ti1;aAen9hi8i7ough,r6;anqu2Oen1ue;dy,g3Sme0ny,r09;ck,n,rs2P;d40se;ll,me,rt,s6wd45;te5;aVcarUeThRiQkin0FlMmKoHpGqua1FtAu7w6;eet,ift;b7dd13per0Gr6;e,re2H;sta2Ft3;aAe9iff,r7u6;pXr1;a6ict,o4;ig3Fn0U;a1ep,rn;le,rk;e22i3Fright0;ci28ft,l7o6re,ur;n,thi4;emn,id;a6el0ooth;ll,rt;e8i6ow,y;ck,g35m6;!y;ek,nd3D;ck,l0mp3;a6iTort,rill,y;dy,ll0Xrp;cu0Rve0Rxy;ce,ed,y;d,fe,int0l1Vv14;aBe9i8o6ude;mantic,o1Isy,u6;gh,nd;ch,pe,tzy;a6d,mo0H;dy,l;gg7ndom,p6re,w;id;ed;ai2i6;ck,et;aEhoDi1QlCoBr8u6;ny,r6;e,p3;egna2ic7o6;fouYud;ey,k0;li04or,te1B;ain,easa2;ny;in5le;dd,f6i0ld,ranQ;fi10;aAe8i7o6;b3isy,rm15sy;ce,mb3;a6w;r,t;ive,rr01;aAe8ild,o7u6;nda19te;ist,o1;a6ek,llX;n,s0ty;d,tuQ;aBeAi9o6ucky;f0Un7o1Du6ve0w17y0T;d,sy;e0g;g1Tke0tt3ve0;an,wd;me,r6te;ge;e7i6;nd;en;ol0ui1P;cy,ll,n6;sBt6;e6ima8;llege2r6;es7media6;te;ti4;ecu6ta2;re;aEeBiAo8u6;ge,m6ng1R;b3id;ll6me0t;ow;gh,l0;a6f04sita2;dy,v6;en0y;nd1Hppy,r6te5;d,sh;aGenFhDiClBoofy,r6;a9e8is0o6ue1E;o6ss;vy;at,en,y;nd,y;ad,ib,ooI;a2d1;a6o6;st0;t3uiY;u1y;aIeeb3iDlat,oAr8u6;ll,n6r14;!ny;aHe6iend0;e,sh;a7r6ul;get5mG;my;erce8n6rm,t;an6e;ciC;! ;le;ir,ke,n0Fr,st,t,ulA;aAerie,mp9sse7v6xtre0Q;il;nti6;al;ty;r7s6;tern,y;ly,th0;aFeCi9r7u6;ll,mb;u6y;nk;r7vi6;ne;e,ty;a6ep,nD;d6f,r;!ly;mp,pp03rk;aHhDlAo8r7u6;dd0r0te;isp,uel;ar6ld,mmon,ol,st0ward0zy;se;e6ou1;a6vW;n,r;ar8e6il0;ap,e6;sy;mi4;gey,lm8r6;e5i4;ful;!i4;aNiLlIoEr8u6;r0sy;ly;aAi7o6;ad,wn;ef,g7llia2;nt;ht;sh,ve;ld,r7un6;cy;ed,i4;ng;a7o6ue;nd,o1;ck,nd;g,tt6;er;d,ld,w1;dy;bsu9ng8we6;so6;me;ry;rd",TextValue:"true¦bMeIfChundredNmMnin9one,qu8s6t0zeroN;enMh3rLw0;e0o;l0ntC;fGve;ir0ousandIree;d,t5;e0ix7;cond,ptEven6xtE;adrDintD;e0th;!t0;e9ie8y;i3o0;rt1ur0;!t2;ie4y;ft0rst,ve;e3h,ie2y;ight0lev2;!e1h,ie0y;th;en1;illion0;!th",Ordinal:"true¦bGeDf9hundredHmGnin7qu6s4t0zeroH;enGh1rFwe0;lfFn9;ir0ousandE;d,t4;e0ixt9;cond,ptAvent8xtA;adr9int9;et0th;e6ie8;i2o0;r0urt3;tie5;ft1rst;ight0lev1;e0h,ie2;en1;illion0;th",Cardinal:"true¦bGeDf7hundred,mGnine9one,qu6s4t0zero;en,h2rFw0;e0o;lve,n7;irt8ousand,ree;e0ix4;ptAven3xtA;adr9int9;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illion",Expression:"true¦a02b01dXeVfuck,gShLlImHnGoDpBshAtsk,u7voi04w3y0;a1eLu0;ck,p;!a,hoo,y;h1ow,t0;af,f;e0oa;e,w;gh,h0;! 0h,m;huh,oh;eesh,hh,it;ff,hew,l0sst;ease,z;h1o0w,y;h,o,ps;!h;ah,ope;eh,mm;m1ol0;!s;ao,fao;a4e2i,mm,oly1urr0;ah;! mo6;e,ll0y;!o;ha0i;!ha;ah,ee,o0rr;l0odbye;ly;e0h,t cetera,ww;k,p;'oh,a0uh;m0ng;mit,n0;!it;ah,oo,ye; 1h0rgh;!em;la",Adverb:"true¦a07by 05d01eYfShQinPjustOkinda,mMnJoEpCquite,r9s5t2up1very,w0Bye0;p,s; to,wards5;h1o0wiO;o,t6ward;en,us;everal,o0uch;!me1rt0; of;hXtimes,w07;a1e0;alS;ndomRthN;ar excellDer0oint blank; Mhaps;f3n0;ce0ly;! 0;ag00moU; courHten;ewJo0; longEt 0;onHwithstanding;aybe,eanwhiAore0;!ovB;! aboS;deed,steT;en0;ce;or2u0;l9rther0;!moH; 0ev3;examp0good,suF;le;n mas1v0;er;se;e0irect1; 1finite0;ly;ju7trop;far,n0;ow; CbroBd nauseam,gAl5ny2part,side,t 0w3;be5l0mo5wor5;arge,ea4;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori",Preposition:"true¦'o,-,aKbHcGdFexcept,fEinDmidPnotwithstandiQoBpRqua,sAt6u3vi2w0;/o,hereMith0;!in,oQ;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oI;ans,ince,o that;',f0n1ut;!f;!to;or,rom;espite,own,u3;hez,irca;ar1e0oAy;low,sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut",Determiner:"true¦aAboth,d8e5few,l3mu7neiCown,plenty,some,th2various,wh0;at0ich0;evB;at,e3is,ose;a,e0;!ast,s;a1i6l0nough,very;!se;ch;e0u;!s;!n0;!o0y;th0;er"},gt=["Person","Place","Organization"],ft={Noun:{notA:["Verb","Adjective","Adverb"]},Singular:{isA:"Noun",notA:"Plural"},ProperNoun:{isA:"Noun"},Person:{isA:["ProperNoun","Singular"],notA:["Place","Organization","Date"]},FirstName:{isA:"Person"},MaleName:{isA:"FirstName",notA:["FemaleName","LastName"]},FemaleName:{isA:"FirstName",notA:["MaleName","LastName"]},LastName:{isA:"Person",notA:["FirstName"]},NickName:{isA:"Person",notA:["FirstName","LastName"]},Honorific:{isA:"Noun",notA:["FirstName","LastName","Value"]},Place:{isA:"Singular",notA:["Person","Organization"]},Country:{isA:["Place","ProperNoun"],notA:["City"]},City:{isA:["Place","ProperNoun"],notA:["Country"]},Region:{isA:["Place","ProperNoun"]},Address:{isA:"Place"},Organization:{isA:["Singular","ProperNoun"],notA:["Person","Place"]},SportsTeam:{isA:"Organization"},School:{isA:"Organization"},Company:{isA:"Organization"},Plural:{isA:"Noun",notA:["Singular"]},Uncountable:{isA:"Noun"},Pronoun:{isA:"Noun",notA:gt},Actor:{isA:"Noun",notA:gt},Activity:{isA:"Noun",notA:["Person","Place"]},Unit:{isA:"Noun",notA:gt},Demonym:{isA:["Noun","ProperNoun"],notA:gt},Possessive:{isA:"Noun"}},mt={Verb:{notA:["Noun","Adjective","Adverb","Value"]},PresentTense:{isA:"Verb",notA:["PastTense","Copula","FutureTense"]},Infinitive:{isA:"PresentTense",notA:["PastTense","Gerund"]},Gerund:{isA:"PresentTense",notA:["PastTense","Copula","FutureTense"]},PastTense:{isA:"Verb",notA:["FutureTense"]},FutureTense:{isA:"Verb"},Copula:{isA:"Verb"},Modal:{isA:"Verb",notA:["Infinitive"]},PerfectTense:{isA:"Verb",notA:"Gerund"},Pluperfect:{isA:"Verb"},Participle:{isA:"Verb"},PhrasalVerb:{isA:"Verb"},Particle:{isA:"PhrasalVerb"}},vt={Value:{notA:["Verb","Adjective","Adverb"]},Ordinal:{isA:"Value",notA:["Cardinal"]},Cardinal:{isA:"Value",notA:["Ordinal"]},RomanNumeral:{isA:"Cardinal",notA:["Ordinal","TextValue"]},TextValue:{isA:"Value",notA:["NumericValue"]},NumericValue:{isA:"Value",notA:["TextValue"]},Money:{isA:"Cardinal"},Percent:{isA:"Value"}},bt=["Noun","Verb","Adjective","Adverb","Value","QuestionWord"],yt={Adjective:{notA:["Noun","Verb","Adverb","Value"]},Comparable:{isA:["Adjective"]},Comparative:{isA:["Adjective"]},Superlative:{isA:["Adjective"],notA:["Comparative"]},NumberRange:{isA:["Contraction"]},Adverb:{notA:["Noun","Verb","Adjective","Value"]},Date:{notA:["Verb","Conjunction","Adverb","Preposition","Adjective"]},Month:{isA:["Date","Singular"],notA:["Year","WeekDay","Time"]},WeekDay:{isA:["Date","Noun"]},Time:{isA:["Date"],notA:["Value"]},Determiner:{notA:bt},Conjunction:{notA:bt},Preposition:{notA:bt},QuestionWord:{notA:["Determiner"]},Currency:{},Expression:{notA:["Noun","Adjective","Verb","Adverb"]},Abbreviation:{},Url:{notA:["HashTag","PhoneNumber","Verb","Adjective","Value","AtMention","Email"]},PhoneNumber:{notA:["HashTag","Verb","Adjective","Value","AtMention","Email"]},HashTag:{},AtMention:{isA:["Noun"],notA:["HashTag","Verb","Adjective","Value","Email"]},Emoji:{notA:["HashTag","Verb","Adjective","Value","AtMention"]},Emoticon:{notA:["HashTag","Verb","Adjective","Value","AtMention"]},Email:{notA:["HashTag","Verb","Adjective","Value","AtMention"]},Auxiliary:{notA:["Noun","Adjective","Value"]},Acronym:{notA:["Plural","RomanNumeral"]},Negative:{notA:["Noun","Adjective","Value"]},Condition:{notA:["Verb","Adjective","Noun","Value"]}},wt={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"},kt=function(e){return Object.keys(e).forEach((function(t){e[t].color?e[t].color=e[t].color:wt[t]?e[t].color=wt[t]:e[t].isA.some((function(r){return!!wt[r]&&(e[t].color=wt[r],!0)}))})),e},At=function(e){return Object.keys(e).forEach((function(t){for(var r=e[t],n=r.isA.length,a=0;a=0;i--,a*=36){var o=e.charCodeAt(i)-48;o>10&&(o-=7),t+=o*a}return t},Et=function(e,t,r){var n=xt(t);return n1&&(r.hasCompound[i[0]]=!0),"Singular"===t){var o=a.toPlural(e,r);n[o]=n[o]||"Plural"}if("Infinitive"===t)for(var s=a.conjugate(e,r),u=Object.keys(s),l=0;l0&&void 0!==arguments[0]?arguments[0]:"",t=e[e.length-1];if(!0===Jt.hasOwnProperty(t))for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1?arguments[1]:void 0,r={};return t&&t.irregulars&&!0===t.irregulars.verbs.hasOwnProperty(e)&&(r=Object.assign({},t.irregulars.verbs[e])),void 0===(r=Object.assign({},Wt(e),r)).Gerund&&(r.Gerund=Qt.Gerund(e)),void 0===r.PastTense&&(r.PastTense=Qt.PastTense(e)),void 0===r.PresentTense&&(r.PresentTense=Qt.PresentTense(e)),r},Xt=[/ght$/,/nge$/,/ough$/,/ain$/,/uel$/,/[au]ll$/,/ow$/,/oud$/,/...p$/],Yt=[/ary$/],er={nice:"nicest",late:"latest",hard:"hardest",inner:"innermost",outer:"outermost",far:"furthest",worse:"worst",bad:"worst",good:"best",big:"biggest",large:"largest"},tr=[{reg:/y$/i,repl:"iest"},{reg:/([aeiou])t$/i,repl:"$1ttest"},{reg:/([aeou])de$/i,repl:"$1dest"},{reg:/nge$/i,repl:"ngest"},{reg:/([aeiou])te$/i,repl:"$1test"}],rr=[/ght$/,/nge$/,/ough$/,/ain$/,/uel$/,/[au]ll$/,/ow$/,/old$/,/oud$/,/e[ae]p$/],nr=[/ary$/,/ous$/],ar={grey:"greyer",gray:"grayer",green:"greener",yellow:"yellower",red:"redder",good:"better",well:"better",bad:"worse",sad:"sadder",big:"bigger"},ir=[{reg:/y$/i,repl:"ier"},{reg:/([aeiou])t$/i,repl:"$1tter"},{reg:/([aeou])de$/i,repl:"$1der"},{reg:/nge$/i,repl:"nger"}],or={toSuperlative:function(e){if(er.hasOwnProperty(e))return er[e];for(var t=0;t0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1?arguments[1]:void 0,r=t.irregulars.nouns;if(r.hasOwnProperty(e))return r[e];var n=cr(e);return null!==n?n:lr.test(e)?e+"es":e+"s"},dr=[[/([^v])ies$/i,"$1y"],[/ises$/i,"isis"],[/(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"],[/(eas)es$/i,"$1e"],[/(..[aeiou]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/(x|ch|ss|sh|z|o)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"],[/([m|l])ice$/i,"$1ouse"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ics)$/i,"$1"],[/s$/i,""]],pr=function(e,t){var r,n=t.irregulars.nouns,a=(r=n,Object.keys(r).reduce((function(e,t){return e[r[t]]=t,e}),{}));if(a.hasOwnProperty(e))return a[e];for(var i=0;i1?a[i]&&"."!==a[i]&&r.tag(a[i],n,t.world):r.tag(e,n,t.world)}))}))}),Dr={tag:function(e,t){return e?(Cr(e,this,!1,t),this):this},tagSafe:function(e,t){return e?(Cr(e,this,!0,t),this):this},unTag:function(e,t){var r=this;return this.list.forEach((function(n){n.terms().forEach((function(n){return n.unTag(e,t,r.world)}))})),this},canBe:function(e){if(!e)return this;var t=this.world,r=this.list.reduce((function(r,n){return r.concat(n.canBe(e,t))}),[]);return this.buildFrom(r)}},jr={map:function(t){var r=this;if(!t)return this;var n=this.list.map((function(e,n){var a=r.buildFrom([e]);a.from=null;var i=t(a,n);return i&&i.list&&i.list[0]?i.list[0]:i}));return 0===(n=n.filter((function(e){return e}))).length?this.buildFrom(n):"object"!==e(n[0])||"Phrase"!==n[0].isA?n:this.buildFrom(n)},forEach:function(e,t){var r=this;return e?(this.list.forEach((function(n,a){var i=r.buildFrom([n]);!0===t&&(i.from=null),e(i,a)})),this):this},filter:function(e){var t=this;if(!e)return this;var r=this.list.filter((function(r,n){var a=t.buildFrom([r]);return a.from=null,e(a,n)}));return this.buildFrom(r)},find:function(e){var t=this;if(!e)return this;var r=this.list.find((function(r,n){var a=t.buildFrom([r]);return a.from=null,e(a,n)}));return r?this.buildFrom([r]):void 0},some:function(e){var t=this;return e?this.list.some((function(r,n){var a=t.buildFrom([r]);return a.from=null,e(a,n)})):this},random:function(e){if(!this.found)return this;var t=Math.floor(Math.random()*this.list.length);if(void 0===e){var r=[this.list[t]];return this.buildFrom(r)}return t+e>this.length&&(t=(t=this.length-e)<0?0:t),this.slice(t,t+e)}},xr=function(e){return e.split(/[ -]/g)},Er=function(e,t,r){for(var n=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r={};return e.forEach((function(e,n){var a=!0;void 0!==t[n]&&(a=t[n]),e=(e=(e||"").toLowerCase()).replace(/[,;.!?]+$/,"");var i=xr(e).map((function(e){return e.trim()}));r[i[0]]=r[i[0]]||{},1===i.length?r[i[0]].value=a:(r[i[0]].more=r[i[0]].more||[],r[i[0]].more.push({rest:i.slice(1),value:a}))})),r}(e,t),a=[],i=function(e){for(var t=r.list[e],i=t.terms().map((function(e){return e.reduced})),o=function(e){void 0!==n[i[e]]&&(void 0!==n[i[e]].more&&n[i[e]].more.forEach((function(r){void 0!==i[e+r.rest.length]&&(!0===r.rest.every((function(t,r){return t===i[e+r+1]}))&&a.push({id:t.terms()[e].id,value:r.value,length:r.rest.length+1}))})),void 0!==n[i[e]].value&&a.push({id:t.terms()[e].id,value:n[i[e]].value,length:1}))},s=0;s1&&void 0!==arguments[1]?arguments[1]:{};return t?(!0===n&&(n={keepTags:!0}),!1===n&&(n={keepTags:!1}),n=n||{},this.uncache(),this.list.forEach((function(a){var i,o=t;if("function"==typeof t&&(o=t(a)),o&&"object"===e(o)&&"Doc"===o.isA)i=o.list,r.pool().merge(o.pool());else{if("string"!=typeof o)return;!1!==n.keepCase&&a.terms(0).isTitleCase()&&(o=Or(o)),i=ht(o,r.world,r.pool());var s=r.buildFrom(i);s.tagger(),i=s.list}if(!0===n.keepTags){var u=a.json({terms:{tags:!0}}).terms;i[0].terms().forEach((function(e,t){u[t]&&e.tagSafe(u[t].tags,"keptTag",r.world)}))}a.replace(i[0],r)})),this):this.delete()},replace:function(e,t,r){return void 0===t?this.replaceWith(e,r):(this.match(e).replaceWith(t,r),this)}},zr=N((function(e,t){t.append=function(e){var t=this;return e?(this.uncache(),this.list.forEach((function(r){var n=ht(e,t.world,t.pool())[0];t.buildFrom([n]).tagger(),r.append(n,t)})),this):this},t.insertAfter=t.append,t.insertAt=t.append,t.prepend=function(e){var t=this;return e?(this.uncache(),this.list.forEach((function(r){var n=ht(e,t.world,t.pool())[0];t.buildFrom([n]).tagger(),r.prepend(n,t)})),this):this},t.insertBefore=t.prepend,t.concat=function(){this.uncache();for(var e=this.list.slice(0),t=0;t0&&void 0!==arguments[0]?arguments[0]:{};if("number"==typeof t&&this.list[t])return this.list[t].json(r);!0===(t=n(t)).root&&this.list.forEach((function(t){t.terms().forEach((function(t){null===t.root&&t.setRoot(e.world)}))}));var a=this.list.map((function(r){return r.json(t,e.world)}));if((t.terms.offset||t.offset||t.terms.index||t.index)&&Ir(this,a,t),t.frequency||t.freq||t.count){var i={};this.list.forEach((function(e){var t=e.text("reduced");i[t]=i[t]||0,i[t]+=1})),this.list.forEach((function(e,t){a[t].count=i[e.text("reduced")]}))}if(t.unique){var o={};a=a.filter((function(e){return!0!==o[e.reduced]&&(o[e.reduced]=!0,!0)}))}return a},t.data=t.json})),Sr=(Mr.json,Mr.data,N((function(e){var t=function(e,t){for(e=e.toString();e.lengtht.count?-1:e.countn?1:0},length:function(e,t){var r=e.text().trim().length,n=t.text().trim().length;return rn?-1:0},wordCount:function(e,t){var r=e.wordCount(),n=t.wordCount();return rn?-1:0}};qr.alphabetical=qr.alpha,qr.wordcount=qr.wordCount;var Jr={index:!0,sequence:!0,seq:!0,sequential:!0,chron:!0,chronological:!0},Kr={sort:function(e){return"freq"===(e=e||"alpha")||"frequency"===e||"topk"===e?(r={},n={case:!0,punctuation:!1,whitespace:!0,unicode:!0},(t=this).list.forEach((function(e){var t=e.text(n);r[t]=r[t]||0,r[t]+=1})),t.list.sort((function(e,t){var a=r[e.text(n)],i=r[t.text(n)];return ai?-1:0})),t):Jr.hasOwnProperty(e)?function(e){var t={};return e.json({terms:{offset:!0}}).forEach((function(e){t[e.terms[0].id]=e.terms[0].offset.start})),e.list=e.list.sort((function(e,r){return t[e.start]>t[r.start]?1:t[e.start]0){a+=o;continue}}if(void 0===r[i]||!0!==r.hasOwnProperty(i))if(i===e[a].reduced||!0!==r.hasOwnProperty(e[a].reduced)){if(!0===hn.test(i)){var s=i.replace(hn,"");!0===r.hasOwnProperty(s)&&e[a].tag(r[s],"noprefix-lexicon",t)}}else e[a].tag(r[e[a].reduced],"lexicon",t);else e[a].tag(r[i],"lexicon",t)}return e},gn=/[\'‘’‛‵′`´]$/,fn=/^(m|k|cm|km|m)\/(s|h|hr)$/,mn=[[/^\w+@\w+\.[a-z]{2,3}$/,"Email"],[/^#[a-z0-9_\u00C0-\u00FF]{2,}$/,"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^(https?:\/\/|www\.)\w+\.[a-z]{2,3}/,"Url"],[/^[\w./]+\.(com|net|gov|org|ly|edu|info|biz|ru|jp|de|in|uk|br)/,"Url"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/,"Time"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/,"Time"],[/^[PMCE]ST$/,"Time"],[/^utc ?[+-]?[0-9]+?$/,"Time"],[/^[a-z0-9]*? o\'?clock$/,"Time"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date"],[/^[0-9]{1,4}\/[0-9]{1,2}\/[0-9]{1,4}$/,"Date"],[/^ma?c\'.*/,"LastName"],[/^o\'[drlkn].*/,"LastName"],[/^ma?cd[aeiou]/,"LastName"],[/^(lol)+[sz]$/,"Expression"],[/^woo+a*?h?$/,"Expression"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber"],[/^[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber"],[/^[-+]?[\$\xA2-\xA5\u058F\u060B\u09F2\u09F3\u09FB\u0AF1\u0BF9\u0E3F\u17DB\u20A0-\u20BD\uA838\uFDFC\uFE69\uFF04\uFFE0\uFFE1\uFFE5\uFFE6][-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(k|m|b|bn)?\+?$/,["Money","Value"]],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?[\$\xA2-\xA5\u058F\u060B\u09F2\u09F3\u09FB\u0AF1\u0BF9\u0E3F\u17DB\u20A0-\u20BD\uA838\uFDFC\uFE69\uFF04\uFFE0\uFFE1\uFFE5\uFFE6]\+?$/,["Money","Value"]],[/^[-+]?[0-9]([0-9,.])+?(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"]],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"]],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|th)$/,["Ordinal","NumericValue"]],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"]],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"]],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"]],[/^[0-9]{1,4}\/[0-9]{1,4}$/,"Fraction"],[/^[0-9.]{1,2}[-–][0-9]{1,2}$/,["Value","NumberRange"]],[/^[0-9.]{1,4}(st|nd|rd|th)?[-–][0-9\.]{1,4}(st|nd|rd|th)?$/,"NumberRange"],[/^[0-9.]+([a-z]{1,4})$/,"Value"]],vn=/^[IVXLCDM]{2,}$/,bn=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,yn="Adjective",wn="Infinitive",kn="PresentTense",An="Singular",$n="PastTense",Bn="Expression",Pn="LastName",Gn={a:[[/.[aeiou]na$/,"Noun"],[/.[oau][wvl]ska$/,Pn],[/.[^aeiou]ica$/,An],[/^([hyj]a)+$/,Bn]],c:[[/.[^aeiou]ic$/,yn]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,$n],[/.[aeo]{2}[bdgmnprvz]ed$/,$n],[/.[aeiou][sg]hed$/,$n],[/.[aeiou]red$/,$n],[/.[aeiou]r?ried$/,$n],[/.[bcdgtr]led$/,$n],[/.[aoui]f?led$/,$n],[/.[iao]sed$/,$n],[/[aeiou]n?[cs]ed$/,$n],[/[aeiou][rl]?[mnf]ed$/,$n],[/[aeiou][ns]?c?ked$/,$n],[/[aeiou][nl]?ged$/,$n],[/.[tdbwxz]ed$/,$n],[/[^aeiou][aeiou][tvx]ed$/,$n],[/.[cdlmnprstv]ied$/,$n],[/[^aeiou]ard$/,An],[/[aeiou][^aeiou]id$/,yn],[/.[vrl]id$/,yn]],e:[[/.[lnr]ize$/,wn],[/.[^aeiou]ise$/,wn],[/.[aeiou]te$/,wn],[/.[^aeiou][ai]ble$/,yn],[/.[^aeiou]eable$/,yn],[/.[ts]ive$/,yn]],h:[[/.[^aeiouf]ish$/,yn],[/.v[iy]ch$/,Pn],[/^ug?h+$/,Bn],[/^uh[ -]?oh$/,Bn]],i:[[/.[oau][wvl]ski$/,Pn]],k:[[/^(k){2}$/,Bn]],l:[[/.[gl]ial$/,yn],[/.[^aeiou]ful$/,yn],[/.[nrtumcd]al$/,yn],[/.[^aeiou][ei]al$/,yn]],m:[[/.[^aeiou]ium$/,An],[/[^aeiou]ism$/,An],[/^h*u*m+$/,Bn],[/^\d+ ?[ap]m$/,"Date"]],n:[[/.[lsrnpb]ian$/,yn],[/[^aeiou]ician$/,"Actor"],[/[aeiou][ktrp]in$/,"Gerund"]],o:[[/^no+$/,Bn],[/^(yo)+$/,Bn],[/^woo+[pt]?$/,Bn]],r:[[/.[bdfklmst]ler$/,"Noun"],[/.[ilk]er$/,"Comparative"],[/[aeiou][pns]er$/,An],[/[^i]fer$/,wn],[/.[^aeiou][ao]pher$/,"Actor"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,yn],[/[aeiou].*ist$/,yn],[/^[a-z]et$/,"Verb"]],s:[[/.[rln]ates$/,kn],[/.[^z]ens$/,"Verb"],[/.[lstrn]us$/,An],[/.[aeiou]sks$/,kn],[/.[aeiou]kes$/,kn],[/[aeiou][^aeiou]is$/,An],[/[a-z]\'s$/,"Noun"],[/^yes+$/,Bn]],v:[[/.[^aeiou][ai][kln]ov$/,Pn]],y:[[/.[cts]hy$/,yn],[/.[st]ty$/,yn],[/.[gk]y$/,yn],[/.[tnl]ary$/,yn],[/.[oe]ry$/,An],[/[rdntkbhs]ly$/,"Adverb"],[/...lly$/,"Adverb"],[/[bszmp]{2}y$/,yn],[/.(gg|bb|zz)ly$/,yn],[/.[aeiou]my$/,yn],[/[ea]{2}zy$/,yn],[/.[^aeiou]ity$/,An]]},Cn="Adjective",Dn="Infinitive",jn="PresentTense",xn="Singular",En="PastTense",Nn="Adverb",Fn="Plural",On="Verb",Tn="LastName",zn=[null,null,{ea:xn,ia:"Noun",ic:Cn,ly:Nn,"'n":On,"'t":On},{oed:En,ued:En,xed:En," so":Nn,"'ll":"Modal","'re":"Copula",azy:Cn,end:On,ped:En,ffy:Cn,ify:Dn,ing:"Gerund",ize:Dn,lar:Cn,mum:Cn,nes:jn,nny:Cn,oid:Cn,ous:Cn,que:Cn,rmy:Cn,rol:xn,sis:xn,zes:jn},{amed:En,aped:En,ched:En,lked:En,nded:En,cted:En,dged:En,akis:Tn,cede:Dn,chuk:Tn,czyk:Tn,ects:jn,ends:On,enko:Tn,ette:xn,fies:jn,fore:Nn,gate:Dn,gone:Cn,ices:Fn,ints:Fn,ions:Fn,less:Nn,llen:Cn,made:Cn,nsen:Tn,oses:jn,ould:"Modal",some:Cn,sson:Tn,tage:Dn,teen:"Value",tion:xn,tive:Cn,tors:"Noun",vice:xn},{tized:En,urned:En,eased:En,ances:Fn,bound:Cn,ettes:Fn,fully:Nn,ishes:jn,ities:Fn,marek:Tn,nssen:Tn,ology:"Noun",ports:Fn,rough:Cn,tches:jn,tieth:"Ordinal",tures:Fn,wards:Nn,where:Nn},{auskas:Tn,keeper:"Actor",logist:"Actor",teenth:"Value"},{opoulos:Tn,borough:"Place",sdottir:Tn}],Hn={":(":!0,":)":!0,":P":!0,":p":!0,":O":!0,":3":!0,":|":!0,":/":!0,":\\":!0,":$":!0,":*":!0,":@":!0,":-(":!0,":-)":!0,":-P":!0,":-p":!0,":-O":!0,":-3":!0,":-|":!0,":-/":!0,":-\\":!0,":-$":!0,":-*":!0,":-@":!0,":^(":!0,":^)":!0,":^P":!0,":^p":!0,":^O":!0,":^3":!0,":^|":!0,":^/":!0,":^\\":!0,":^$":!0,":^*":!0,":^@":!0,"):":!0,"(:":!0,"$:":!0,"*:":!0,")-:":!0,"(-:":!0,"$-:":!0,"*-:":!0,")^:":!0,"(^:":!0,"$^:":!0,"*^:":!0,"<3":!0,"2){var a=n.clean[n.clean.length-2];if("s"===a)return void n.tag(["Possessive","Noun"],"end-tick",r);"n"===a&&n.tag(["Gerund"],"chillin",r)}fn.test(n.text)&&n.tag("Unit","per-sec",r)},regex:function(e,t){for(var r=e.text,n=0;n=2&&vn.test(r)&&bn.test(r)&&e.tag("RomanNumeral","xvii",t)},suffix:function(e,t){!function(e,t){var r=e.clean.length,n=7;r<=n&&(n=r-1);for(var a=n;a>1;a-=1){var i=e.clean.substr(r-a,r);if(!0===zn[i.length].hasOwnProperty(i)){var o=zn[i.length][i];e.tagSafe(o,"suffix -"+i,t);break}}}(e,t),function(e,t){var r=e.clean,n=r[r.length-1];if(!0===Gn.hasOwnProperty(n))for(var a=Gn[n],i=0;i35)))}(n=(n=n.trim()).replace(/[.!?,]$/,""))&&(e.tag("Emoji","comma-emoji",t),e.text=n,e.pre=e.pre.replace(":",""),e.post=e.post.replace(":","")),e.text.match(Vn)&&(e.tag("Emoji","unicode-emoji",t),e.text=n),!0===(r=(r=n).replace(/^[:;]/,":"),Hn.hasOwnProperty(r))&&(e.tag("Emoticon","emoticon-emoji",t),e.text=n)}},Mn=function(e,t){var r=e.world;In.lexicon(t,r);for(var n=0;n3&&void 0!==r[n]&&!0===r.hasOwnProperty(n)&&e.tag(r[n],"stem-"+n,t)}}))},Zn={isSingular:[/(ax|test)is$/i,/(octop|vir|radi|nucle|fung|cact|stimul)us$/i,/(octop|vir)i$/i,/(rl)f$/i,/(alias|status)$/i,/(bu)s$/i,/(al|ad|at|er|et|ed|ad)o$/i,/(ti)um$/i,/(ti)a$/i,/sis$/i,/(?:(^f)fe|(lr)f)$/i,/hive$/i,/s[aeiou]+ns$/i,/(^aeiouy|qu)y$/i,/(x|ch|ss|sh|z)$/i,/(matr|vert|ind|cort)(ix|ex)$/i,/(m|l)ouse$/i,/(m|l)ice$/i,/(antenn|formul|nebul|vertebr|vit)a$/i,/.sis$/i,/^(?!talis|.*hu)(.*)man$/i],isPlural:[/(^v)ies$/i,/ises$/i,/ives$/i,/(antenn|formul|nebul|vertebr|vit)ae$/i,/(octop|vir|radi|nucle|fung|cact|stimul)i$/i,/(buffal|tomat|tornad)oes$/i,/(analy|ba|diagno|parenthe|progno|synop|the)ses$/i,/(vert|ind|cort)ices$/i,/(matr|append)ices$/i,/(x|ch|ss|sh|s|z|o)es$/i,/is$/i,/men$/i,/news$/i,/.tia$/i,/(^f)ves$/i,/(lr)ves$/i,/(^aeiouy|qu)ies$/i,/(m|l)ice$/i,/(cris|ax|test)es$/i,/(alias|status)es$/i,/ics$/i]},Xn=["Uncountable","Pronoun","Place","Value","Person","Month","WeekDay","Holiday"],Yn=[/ss$/,/sis$/,/[^aeiou][uo]s$/,/'s$/],ea=[/i$/,/ae$/],ta=function(e,t){if(e.tags.Noun&&!e.tags.Acronym){var r=e.clean;if(e.tags.Singular||e.tags.Plural)return;if(r.length<=3)return void e.tag("Singular","short-singular",t);if(Xn.find((function(t){return e.tags[t]})))return;if(Zn.isPlural.find((function(e){return e.test(r)})))return void e.tag("Plural","plural-rules",t);if(Zn.isSingular.find((function(e){return e.test(r)})))return void e.tag("Singular","singular-rules",t);if(!0===/s$/.test(r)){if(Yn.find((function(e){return e.test(r)})))return;return void e.tag("Plural","plural-fallback",t)}if(ea.find((function(e){return e.test(r)})))return;e.tag("Singular","singular-fallback",t)}},ra=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","building society","bureau","cafe","caisse","capital","care","cathedral","center","central bank","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","daily news","data","departement","department","department store","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","evening news","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","health authority","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institute of technology","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","liberation army","limited","local authority","local health authority","machines","magazine","management","marine","marketing","markets","media","memorial","mercantile exchange","ministere","ministry","military","mobile","motor","motors","musee","museum","news","news service","observatory","office","oil","optical","orchestra","organization","partners","partnership","people's party","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","regional authority","regional health authority","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","social club","societe","society","sons","standard","state police","state university","stock exchange","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce((function(e,t){return e[t]="Noun",e}),{}),na=function(e){return!!e.tags.Noun&&(!(e.tags.Pronoun||e.tags.Comma||e.tags.Possessive)&&!!(e.tags.Organization||e.tags.Acronym||e.tags.Place||e.titleCase()))},aa=/^[A-Z]('s|,)?$/,ia=/([A-Z]\.){2}[A-Z]?/i,oa={I:!0,A:!0},sa={neighbours:qn,case:Rn,stem:Qn,plural:ta,organizations:function(e,t){for(var r=0;r0?Ra=Ra.concat(t):Ra.push(e)})),Ra.forEach((function(e){var t,r,n;return e.required=(t=e.reg,r=[],n=[],t.forEach((function(e){!0!==e.optional&&!0!==e.negative&&(void 0!==e.tag&&r.push(e.tag),void 0!==e.word&&n.push(e.word))})),{tags:Fa(r),words:Fa(n)}),e}));var Wa=Ra,Ua=function(e){Wa.forEach((function(t){var r=[];t.required.words.forEach((function(t){r.push(e._cache.words[t]||[])})),t.required.tags.forEach((function(t){r.push(e._cache.tags[t]||[])}));var n=function(e){if(0===e.length)return[];var t={};e.forEach((function(e){e=Fa(e);for(var r=0;r5&&e.match("#Verb+").length>=2}));if(u.found){var l=u.splitAfter("#Noun .* #Verb .* #Noun+");n=n.splitOn(l.eq(0))}return"number"==typeof t&&(n=n.get(t)),new e(n.list,this,this.world)},e},ri=function(e){var r=function(e){a(i,e);var r=l(i);function i(e,n,a){var o;return t(this,i),(o=r.call(this,e,n,a)).contracted=null,o}return n(i,[{key:"expand",value:function(){return this.list.forEach((function(e){var t=e.terms(),r=t[0].isTitleCase();t.forEach((function(e,r){e.set(e.implicit||e.text),e.implicit=void 0,r0}}),Object.defineProperty(this,"length",{get:function(){return i.list.length}}),Object.defineProperty(this,"isA",{get:function(){return"Doc"}})}return n(e,[{key:"tagger",value:function(){return Za(this)}},{key:"pool",value:function(){return this.list.length>0?this.list[0].pool:this.all().list[0].pool}}]),e}();Fi.prototype.buildFrom=function(e){return e=e.map((function(e){return e.clone(!0)})),new Fi(e,this,this.world)},Fi.prototype.fromText=function(e){var t=ht(e,this.world,this.pool());return this.buildFrom(t)},Object.assign(Fi.prototype,Ni.misc),Object.assign(Fi.prototype,Ni.selections),Ei(Fi);var Oi={untag:"unTag",and:"match",notIf:"ifNo",only:"if",onlyIf:"if"};Object.keys(Oi).forEach((function(e){return Fi.prototype[e]=Fi.prototype[Oi[e]]}));var Ti=Fi,zi=function(e){var t=e.termList();return pn(t,e.world),e};return function e(t){var r=t,n=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1?arguments[1]:void 0;t&&r.addWords(t);var n=ht(e,r),a=new Ti(n,null,r);return a.tagger(),a};return n.tokenize=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1?arguments[1]:void 0,n=r;t&&((n=n.clone()).words={},n.addWords(t));var a=ht(e,n),i=new Ti(a,null,n);return t&&zi(i),i},n.extend=function(e){return e(Ti,r,this,qe,se,Ke),this},n.fromJSON=function(e){var t=dt(e,r);return new Ti(t,null,r)},n.clone=function(){return e(r.clone())},n.verbose=function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return r.verbose(e),this},n.world=function(){return r},n.version="13.2.0",n.import=n.load,n}(new Ar)})); +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).nlp=t()}(this,(function(){"use strict";function e(t){return(e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(t)}function t(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function r(e,t){for(var r=0;re.length)&&(t=e.length);for(var r=0,n=new Array(t);rn[t].lineage.length?1:n[e].isA.length>n[t].isA.length?-1:0:0:1}))},J={text:!0,tags:!0,implicit:!0,whitespace:!0,clean:!1,id:!1,index:!1,offset:!1,bestTag:!1},q={json:function(e,t){e=e||{};var r={};return(e=Object.assign({},J,e)).text&&(r.text=this.text),e.normal&&(r.normal=this.normal),e.tags&&(r.tags=Object.keys(this.tags)),e.clean&&(r.clean=this.clean),(e.id||e.offset)&&(r.id=this.id),e.implicit&&null!==this.implicit&&(r.implicit=this.implicit),e.whitespace&&(r.pre=this.pre,r.post=this.post),e.bestTag&&(r.bestTag=_(this,t)[0]),r}},K=Object.assign({},N,F,V,S,q);function R(){return"undefined"!=typeof window&&window.document}var W=function(e,t){for(e=e.toString();e.length0&&void 0!==arguments[0]?arguments[0]:"";t(this,e),r=String(r);var n=x(r);this.text=n.text||"",this.clean=n.clean,this.reduced=n.reduced,this.root=null,this.implicit=null,this.pre=n.pre||"",this.post=n.post||"",this.tags={},this.prev=null,this.next=null,this.id=d(n.clean),this.isA="Term",n.alias&&(this.alias=n.alias)}return n(e,[{key:"set",value:function(e){var t=x(e);return this.text=t.text,this.clean=t.clean,this}}]),e}();ie.prototype.clone=function(){var e=new ie(this.text);return e.pre=this.pre,e.post=this.post,e.tags=Object.assign({},this.tags),e},Object.assign(ie.prototype,K),Object.assign(ie.prototype,ae);var oe=ie,se={terms:function(e){if(0===this.length)return[];if(this.cache.terms)return void 0!==e?this.cache.terms[e]:this.cache.terms;for(var t=[this.pool.get(this.start)],r=0;r0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0,r=arguments.length>2?arguments[2]:void 0;"string"==typeof e&&(e="normal"===e?{whitespace:!0,unicode:!0,lowercase:!0,punctuation:!0,acronyms:!0,abbreviations:!0,implicit:!0,normal:!0}:"clean"===e?{titlecase:!1,lowercase:!0,punctuation:!0,whitespace:!0,unicode:!0,implicit:!0}:"reduced"===e?{titlecase:!1,lowercase:!0,punctuation:!1,whitespace:!0,unicode:!0,implicit:!0,reduced:!0}:"root"===e?{titlecase:!1,lowercase:!0,punctuation:!0,whitespace:!0,unicode:!0,implicit:!0,root:!0}:{});var n=this.terms(),a=!1;n[0]&&null===n[0].prev&&null===n[n.length-1].next&&(a=!0);var i=n.reduce((function(i,o,s){e.last=r&&s===n.length-1;var u=!0,l=!0;return!1===a&&(0===s&&t&&(u=!1),s===n.length-1&&r&&(l=!1)),i+o.textOut(e,u,l)}),"");return!0===a&&r&&(i=ue(i)),!0===e.trim&&(i=i.trim()),i}},ce={trim:function(){var e=this.terms();if(e.length>0){e[0].pre=e[0].pre.replace(/^\s+/,"");var t=e[e.length-1];t.post=t.post.replace(/\s+$/,"")}return this}},he=/[.?!]\s*$/,de=function(e,t){t[0].pre=e[0].pre;var r,n,a=e[e.length-1],i=t[t.length-1];i.post=(r=a.post,n=i.post,he.test(n)?n+r.match(/\s*$/):r),a.post="",""===a.post&&(a.post+=" ")},pe=function(e,t,r){var n=e.terms(),a=t.terms();de(n,a),function(e,t,r){var n=e[e.length-1],a=t[t.length-1],i=n.next;(n.next=t[0].id,a.next=i,i)&&(r.get(i).prev=a.id);var o=e[0].id;o&&(t[0].prev=o)}(n,a,e.pool);var i=[e],o=e.start,s=[r];return(s=s.concat(r.parents())).forEach((function(e){var t=e.list.filter((function(e){return e.hasId(o)}));i=i.concat(t)})),(i=function(e){return e.filter((function(t,r){return e.indexOf(t)===r}))}(i)).forEach((function(e){e.length+=t.length})),e.cache={},e},ge=/ /,fe=function(e,t,r){var n=e.start,a=t.terms();!function(e){var t=e[e.length-1];!1===ge.test(t.post)&&(t.post+=" ")}(a),function(e,t,r){var n=r[r.length-1];n.next=e.start;var a=e.pool,i=a.get(e.start);i.prev&&(a.get(i.prev).next=t.start);r[0].prev=e.terms(0).prev,e.terms(0).prev=n.id}(e,t,a);var i=[e],o=[r];return(o=o.concat(r.parents())).forEach((function(e){var r=e.list.filter((function(e){return e.hasId(n)||e.hasId(t.start)}));i=i.concat(r)})),(i=function(e){return e.filter((function(t,r){return e.indexOf(t)===r}))}(i)).forEach((function(e){e.length+=t.length,e.start===n&&(e.start=t.start),e.cache={}})),e},me=function(e,t){var r=t.pool(),n=e.terms(),a=r.get(n[0].prev)||{},i=r.get(n[n.length-1].next)||{};n[0].implicit&&a.implicit&&(a.set(a.implicit),a.post+=" "),function(e,t,r,n){var a=e.parents();a.push(e),a.forEach((function(e){var a=e.list.find((function(e){return e.hasId(t)}));a&&(a.length-=r,a.start===t&&(a.start=n.id),a.cache={})})),e.list=e.list.filter((function(e){return!(!e.start||!e.length)}))}(t,e.start,e.length,i),a&&(a.next=i.id),i&&(i.prev=a.id)},ve={append:function(e,t){return pe(this,e,t),this},prepend:function(e,t){return fe(this,e,t),this},delete:function(e){return me(this,e),this},replace:function(e,t){var r=this.length;pe(this,e,t);var n=this.buildFrom(this.start,this.length);n.length=r,me(n,t)},splitOn:function(e){var t=this.terms(),r={before:null,match:null,after:null},n=t.findIndex((function(t){return t.id===e.start}));if(-1===n)return r;var a=t.slice(0,n);a.length>0&&(r.before=this.buildFrom(a[0].id,a.length));var i=t.slice(n,n+e.length);i.length>0&&(r.match=this.buildFrom(i[0].id,i.length));var o=t.slice(n+e.length,t.length);return o.length>0&&(r.after=this.buildFrom(o[0].id,o.length,this.pool)),r}},be={json:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0,r={};return e.text&&(r.text=this.text()),e.normal&&(r.normal=this.text("normal")),e.clean&&(r.clean=this.text("clean")),e.reduced&&(r.reduced=this.text("reduced")),e.root&&(r.root=this.text("root")),e.trim&&(r.text&&(r.text=r.text.trim()),r.normal&&(r.normal=r.normal.trim()),r.reduced&&(r.reduced=r.reduced.trim())),e.terms&&(!0===e.terms&&(e.terms={}),r.terms=this.terms().map((function(r){return r.json(e.terms,t)}))),r}},ye={lookAhead:function(e){e||(e=".*");var t=this.pool,r=[],n=this.terms();return function e(n){var a=t.get(n);a&&(r.push(a),a.prev&&e(a.next))}(n[n.length-1].next),0===r.length?[]:this.buildFrom(r[0].id,r.length).match(e)},lookBehind:function(e){e||(e=".*");var t=this.pool,r=[];return function e(n){var a=t.get(n);a&&(r.push(a),a.prev&&e(a.prev))}(t.get(this.start).prev),0===r.length?[]:this.buildFrom(r[r.length-1].id,r.length).match(e)}},we=Object.assign({},se,le,ce,ve,be,ye),ke=function(e,t){if(0===t.length)return!0;for(var r=0;r0)return!0;if(!0===n.anything&&!0===n.negative)return!0}return!1},Ae=function(e,t,r,n,a,i){for(var o=t;t1&&u.greedy?g.length+=o-p:g.length++}}else if(!0!==u.optional){if(!(e[o].isImplicit()&&t[s-1]&&e[o+1]&&e[o+1].doesMatch(u,r+o,n)))return[!1,null];o+=2}}else{var f=$e(e,o,t[s+1],u,r);if(void 0!==u.min&&f-ou.max){o+=u.max;continue}if(null===f)return[!1,null];l&&(Be(a,c,e,o,u.named).length=f-o),o=f}}return[e.slice(0,o),a]},Ge=function(e,t,r){if(!r||0===r.length)return r;if(t.some((function(e){return e.end}))){var n=e[e.length-1];r=r.filter((function(e){return-1!==e.match.indexOf(n)}))}return r},Ce=/\{([0-9]+,?[0-9]*)\}/,De=/&&/,je=new RegExp(/^<(\S+)>/),xe=function(e){return e[e.length-1]},Ee=function(e){return e[0]},Ne=function(e){return e.substr(1)},Fe=function(e){return e.substr(0,e.length-1)},Oe=function(e){return e=Ne(e),e=Fe(e)},ze=function e(t){for(var r,n={},a=0;a<2;a+=1){if("$"===xe(t)&&(n.end=!0,t=Fe(t)),"^"===Ee(t)&&(n.start=!0,t=Ne(t)),("["===Ee(t)||"]"===xe(t))&&(n.named=!0,"["===Ee(t)?n.groupType="]"===xe(t)?"single":"start":n.groupType="end",t=(t=t.replace(/^\[/,"")).replace(/\]$/,""),"<"===Ee(t))){var i=je.exec(t);i.length>=2&&(n.named=i[1],t=t.replace(i[0],""))}if("+"===xe(t)&&(n.greedy=!0,t=Fe(t)),"*"!==t&&"*"===xe(t)&&"\\*"!==t&&(n.greedy=!0,t=Fe(t)),"?"===xe(t)&&(n.optional=!0,t=Fe(t)),"!"===Ee(t)&&(n.negative=!0,t=Ne(t)),"("===Ee(t)&&")"===xe(t)){De.test(t)?(n.choices=t.split(De),n.operator="and"):(n.choices=t.split("|"),n.operator="or"),n.choices[0]=Ne(n.choices[0]);var o=n.choices.length-1;n.choices[o]=Fe(n.choices[o]),n.choices=n.choices.map((function(e){return e.trim()})),n.choices=n.choices.filter((function(e){return e})),n.choices=n.choices.map(e),t=""}if("/"===Ee(t)&&"/"===xe(t))return t=Oe(t),n.regex=new RegExp(t),n;if("~"===Ee(t)&&"~"===xe(t))return t=Oe(t),n.soft=!0,n.word=t,n}return!0===Ce.test(t)&&(t=t.replace(Ce,(function(e,t){var r=t.split(/,/g);return 1===r.length?(n.min=Number(r[0]),n.max=Number(r[0])):(n.min=Number(r[0]),n.max=Number(r[1]||999)),n.greedy=!0,""}))),"#"===Ee(t)?(n.tag=Ne(t),n.tag=(r=n.tag).charAt(0).toUpperCase()+r.substr(1),n):"@"===Ee(t)?(n.method=Ne(t),n):"."===t?(n.anything=!0,n):"*"===t?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(t&&(t=(t=t.replace("\\*","*")).replace("\\.","."),n.word=t.toLowerCase()),n)},Te=function(e){return e.filter((function(e){return e.groupType})).length>0&&(e=function(e){for(var t,r,n=!1,a=-1,i=0;i)?\(.*?\)[?+*]*\]?\$?)/);return t=t.map((function(e){return e.trim()}))}(t);return r=(r=function(e){var t=[];return e.forEach((function(e){if(/^[[^_/]?\(/.test(e[0]))t.push(e);else{var r=e.split(" ");r=r.filter((function(e){return e})),t=t.concat(r)}})),t}(r)).map(ze),r=Te(r)},Ve=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if("string"==typeof t&&(t=He(t)),!0===ke(e,t))return[];var n=t.filter((function(e){return!0!==e.optional})).length,a=e.terms(),i=[];if(!0===t[0].start){var o=Pe(a,t,0,a.length),s=l(o,2),u=s[0],c=s[1];return!1!==u&&u.length>0&&(u=u.filter((function(e){return e})),i.push({match:u,groups:c})),Ge(a,t,i)}for(var h=0;ha.length);h+=1){var d=Pe(a.slice(h),t,h,a.length),p=l(d,2),g=p[0],f=p[1];if(!1!==g&&g.length>0&&(h+=g.length-1,g=g.filter((function(e){return e})),i.push({match:g,groups:f}),!0===r))return Ge(a,t,i)}return Ge(a,t,i)},Ie=function(e,t){var r={};Ve(e,t).forEach((function(e){e.match.forEach((function(e){r[e.id]=!0}))}));var n=e.terms(),a=[],i=[];return n.forEach((function(e){!0!==r[e.id]?i.push(e):i.length>0&&(a.push(i),i=[])})),i.length>0&&a.push(i),a},Me={match:function(e){var t=this,r=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=Ve(this,e,r);return n=n.map((function(e){var r=e.match,n=e.groups,a=t.buildFrom(r[0].id,r.length,n);return a.cache.terms=r,a}))},has:function(e){return Ve(this,e,!0).length>0},not:function(e){var t=this,r=Ie(this,e);return r=r.map((function(e){return t.buildFrom(e[0].id,e.length)}))},canBe:function(e,t){for(var r=this,n=[],a=this.terms(),i=!1,o=0;o0})).map((function(e){return r.buildFrom(e[0].id,e.length)}))}},Se=function e(r,n,a){t(this,e),this.start=r,this.length=n,this.isA="Phrase",Object.defineProperty(this,"pool",{enumerable:!1,writable:!0,value:a}),Object.defineProperty(this,"cache",{enumerable:!1,writable:!0,value:{}}),Object.defineProperty(this,"groups",{enumerable:!1,writable:!0,value:{}})};Se.prototype.buildFrom=function(e,t,r){var n=new Se(e,t,this.pool);return r&&Object.keys(r).length>0?n.groups=r:n.groups=this.groups,n},Object.assign(Se.prototype,Me),Object.assign(Se.prototype,we);var Le={term:"terms"};Object.keys(Le).forEach((function(e){return Se.prototype[e]=Se.prototype[Le[e]]}));var _e=Se,Je=function(){function e(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};t(this,e),Object.defineProperty(this,"words",{enumerable:!1,value:r})}return n(e,[{key:"add",value:function(e){return this.words[e.id]=e,this}},{key:"get",value:function(e){return this.words[e]}},{key:"remove",value:function(e){delete this.words[e]}},{key:"merge",value:function(e){return Object.assign(this.words,e.words),this}},{key:"stats",value:function(){return{words:Object.keys(this.words).length}}}]),e}();Je.prototype.clone=function(){var e=this,t=Object.keys(this.words).reduce((function(t,r){var n=e.words[r].clone();return t[n.id]=n,t}),{});return new Je(t)};for(var qe=Je,Ke=function(e){e.forEach((function(t,r){r>0&&(t.prev=e[r-1].id),e[r+1]&&(t.next=e[r+1].id)}))},Re=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s+|$)/g,We=/\S/,Ue=/[ .][A-Z]\.? *$/i,Qe=/(?:\u2026|\.{2,}) *$/,Ze=/((?:\r?\n|\r)+)/,Xe=/[a-z0-9\u00C0-\u00FF\u00a9|\u00ae|[\u2000-\u3300]|\ud83c[\ud000-\udfff]|\ud83d[\ud000-\udfff]|\ud83e[\ud000-\udfff]/i,Ye=/^\s+/,et=function(e,t){if(!0===Ue.test(e))return!1;if(!0===Qe.test(e))return!1;if(!1===Xe.test(e))return!1;var r=e.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),n=r[r.length-1].toLowerCase();return!t.hasOwnProperty(n)},tt=function(e,t){var r=t.cache.abbreviations;e=e||"";var n=[],a=[];if(!(e=String(e))||"string"!=typeof e||!1===We.test(e))return n;for(var i=function(e){for(var t=[],r=e.split(Ze),n=0;n0&&(n.push(l),a[u]="")}if(0===n.length)return[e];for(var c=1;c0?(t[t.length-1]+=i,t.push(s)):t.push(i+s),i=""):i+=s}return i&&(0===t.length&&(t[0]=""),t[t.length-1]+=i),t=(t=function(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1?arguments[1]:void 0,r=arguments.length>2?arguments[2]:void 0,n=null;"string"!=typeof e&&("number"==typeof e?e=String(e):ct(e)&&(n=e)),n=(n=n||tt(e,t)).map((function(e){return lt(e)})),r=r||new qe;var a=n.map((function(e){e=e.map((function(e){var t=new oe(e);return r.add(t),t})),Ke(e);var t=new _e(e[0].id,e.length,r);return t.cache.terms=e,t}));return a},dt=function(e,t){var r=new qe;return e.map((function(e,n){var a=e.terms.map((function(a,i){var o=new oe(a.text);return o.pre=void 0!==a.pre?a.pre:"",void 0===a.post&&(a.post=" ",i>=e.terms.length-1&&(a.post=". ",n>=e.terms.length-1&&(a.post="."))),o.post=void 0!==a.post?a.post:" ",a.tags&&a.tags.forEach((function(e){return o.tag(e,"",t)})),r.add(o),o}));return Ke(a),new _e(a[0].id,a.length,r)}))},pt={Comparative:"true¦better",Superlative:"true¦earlier",PresentTense:"true¦is,sounds",Value:"true¦a few",Noun:"true¦a5b4c2f1here,ie,lit,m0no doubt,pd,tce;a,d;t,y;a,ca,o0;l,rp;a,l;d,l,rc",Copula:"true¦a1is,w0;as,ere;m,re",PastTense:"true¦be3came,d2had,lied,meant,sa2taken,w0;as,e0;nt,re;id;en,gan",Condition:"true¦if,unless",Gerund:"true¦accord0be0develop0go0result0stain0;ing",Negative:"true¦n0;ever,o0;!n,t",QuestionWord:"true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s",Plural:"true¦records",Conjunction:"true¦&,aEbAcuz,how8in caDno7o6p4supposing,t1vers5wh0yet;eth8ile;h0o;eref9o0;!uC;l0rovided that;us;r,therwi6; matt1r;!ev0;er;e0ut;cau1f0;ore;se;lthou1nd,s 0;far as,if;gh",Pronoun:"true¦'em,elle,h4i3me,ourselves,she5th1us,we,you0;!rself;e0ou;m,y;!l,t;e0im;!'s",Singular:"true¦0:0X;1:10;a0Wb0Kc0Bd04e02fXgShOici1jel0kitty,lNmJnIoHpDquestion mark,rBs7t4u2womW;nc0Rs 2;doll0Dst0F; rex,a3h2ic,ragedy,v show;ere,i1;l0x return;ist0Pky,omeone,t2uper bowl,yst0W;ep3ri1u2;de0Pff;faMmoM;al0i1o2;om,se;a4i0Jl05r3u2;dLrpoD;erogaVobl0O;rt,te0I;bjSceGthers;othi1umb0E;a4ee04o2;del,m2nopo0th0C;!my;n,yf0;i0unch;ead start,o2;l0me3u2;se;! run;adf0entlem5irlZlaci04od,rand3u2;l0y; slam,fa2mo2;th01;an;a5ella,ly,ol0r3un2;di1;iTo2;ntiWsN;mi0thV;conomy,gg,ner5veWx2;ampQecu7;ad7e4innSo2ragonf0ude;cumentFg2i0l0or;gy;ath,t2;ec2;tive;!dy;a8eili1h6i4o2redit card;ttage,u2;riJsin;ty,vil w2;ar;andeliGocol2;ate;n2rD;ary;aAel0lesHo6r4u2;n2tterf0;ti1;eakfast,o2;!th8;dy,tt4y2;!fri2;end;le;nki1r2;ri2;er;d4l0noma0u2;nt;ly; homin4verti2;si1;ng;em",Actor:"true¦aJbGcFdCengineIfAgardenIh9instructPjournalLlawyIm8nurse,opeOp5r3s1t0;echnCherapK;ailNcientJoldiGu0;pervKrgeon;e0oofE;ceptionGsearC;hotographClumbColi1r0sychologF;actitionBogrammB;cem6t5;echanic,inist9us4;airdress8ousekeep8;arm7ire0;fight6m2;eputy,iet0;ici0;an;arpent2lerk;ricklay1ut0;ch0;er;ccoun6d2ge7r0ssis6ttenda7;chitect,t0;ist;minist1v0;is1;rat0;or;ta0;nt",Honorific:"true¦a03b00cSdReQfiLgKhon,jr,king,lJmEoDp8queen,r4s0taoiseach,vice7;e1fc,gt,ir,r,u0;ltTpt,rg;c0nDrgeaL;ond liJretary;abbi,e0;ar1pAs,v0;!erend; admirY;astPhd,r0vt;esideEi1of0;!essN;me mini5nce0;!ss;fficOp,rd;a3essrs,i2lle,me,r1s0;!tr;!s;stK;gistrate,j,r6yF;i3lb,t;en,ov;eld mar3rst l0;ady,i0;eutena0;nt;shG;sq,xcellency;et,oct6r,utchess;apt6hance4mdr,o0pl;lonel,m2ngress0unci3;m0wom0;an;dr,mand5;ll0;or;!ain;ldg,rig0;!adi0;er;d0sst,tty,yatullah;j,m0v;!ir0;al",SportsTeam:"true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",Uncountable:"true¦a1Ib1Ac11d0Ye0Rf0Lg0Hh0Ci08j07knowled1Hl02mUnews,oTpQrLsAt5vi4w0;a2ea05i1oo0;d,l;ldlife,ne;rmth,t17;neg0Yol06tae;e3h2oothpaste,r0una;affPou0;ble,sers,t;ermod1Eund12;a,nnis;a8cene04eri0Oh7il6kittl0Onow,o5p3t1u0;g0Rnshi0H;ati1De0;am,el;ace16e0;ci0Jed;ap,cc0U;k,v0T;eep,ingl0G;d04fe10l0nd;m0St;a3e1ic0;e,ke0D;c0laxa09search;ogni08rea08;bi09in;aJe1hys10last5o0ressV;lit0Zrk,w0J;a0Vtrol;bstetr0Xil,xygen;a5e3ilk,o2u0;mps,s0;ic;nGo0A;a0chan0S;slZt;chine0il,themat0Q; learn05ry;aught08e2i1ogi0Nu0;ck,g0C;ce,ghtn02ngui0LteratH;a0isG;th04;ewel7usti0G;ce,mp0nformaOtself;a0ortan0E;ti0;en0C;a3isto2o0;ck0mework,n0spitali06;ey;ry;ir,libut,ppi7;en01o1r0um,ymna08;a6ound;l0ssip;d,f;i4lour,o1urnit0;ure;od,rgive0uriNwl;ne0;ss;c6sh;conomZduca5lectr4n2quip3thZvery0;body,o0thE;ne;joy0tertain0;ment;iciNonU;tiF;ar1iabet0raugh1;es;ts;a7elcius,h3ivPl2o0urrency;al,ld w0nfusiAttA;ar;assMoth2;aos,e0;e1w0;ing;se;r4sh;a4eef,i1lood,owls,read,utt0;er;lliar1s0;on;ds;g0ss;ga0;ge;c6dvi5ero3ir2mnes1rt,thl0;et7;ty;craft;b4d0naut4;ynam3;ce;id,ou0;st0;ics",Infinitive:"true¦0:6K;1:6Y;2:57;3:6V;4:6W;5:5Z;6:67;7:6Q;8:6I;9:6U;A:6P;B:6S;C:6D;D:6Z;E:56;F:5P;a6Cb61c52d4Ae3Uf3Hg3Bh34i2Rj2Pk2Nl2Fm25n22o1Xp1Iques3Ir0Qs05tXuSvOwHyG;awn,ield;aJe1Yhist6iIoGre65;nd0rG;k,ry;pe,sh,th0;lk,nHrGsh,tCve;n,raD;d0t;aIiGo9;eGsA;!w;l6Cry;nHpGr3se;gra4Mli3Z;dGi9lo5Spub3O;erGo;mi58w1I;aMeLhKoJrHuGwi7;ne,rn;aGe0Mi5Nu7y;de,in,nsf0p,v5F;r2XuC;ank,reat2N;nd,st;lk,rg1Ps9;aZcWeVhTi4Akip,lSmRnee3Jo4YpQtJuGwitC;bmAck,ff0gge7ppHrGspe5;ge,pri1rou4Vvi4;ly,o34;aLeKoJrHuG;dy,mb6;aEeGi4;ngth2Dss,tC;p,re;m,p;in,ke,r0Qy;laFoil,rink6;e1Xi6o3H;am,ip;a2iv0oG;ck,ut;arCem,le5n1r4tt6;aHo2rG;atCew;le,re;il,ve;a05eIisk,oHuG;in,le,sh;am,ll;a01cZdu8fYgXje5lUmTnt,pQquPsKtJvGwa5O;eGiew,o34;al,l,rG;se,t;aEi2u40;eJi7oItG;!o2rG;i5uc1Y;l4rt;mb6nt,r4;e7i2;air,eHlGo3ZreseD;a8y;at;aEemb0i3Vo4;aHeGi4y;a1nt;te,x;a56r0I;act1Wer,le5u1;a11ei4k5IoGyc6;gni2Anci6rd;ch,li29s5G;i1nG;ge,k;aTerSiRlOoMrIuG;b1Zll,mp,rGsh;cha1s4J;ai1eIiDoG;cGdu8greBhibAmi1te7vi2T;eBlaim;di5pa2ss,veD;iDp,rtr3ZsGur;e,t;aHuG;g,n3;n,y;ck,le;fo30mAsi7;ck,iDrt4Fss,u1;bJccur,ff0pera9utweIverGwe;co40lap,ta20u1wG;helm;igh;ser4taE;eHotG;e,i8;ed,gle5;aLeKiIoHuG;ltip3Crd0;nit11ve;nGrr10;d,g6us;asu2lt,n0Nr3;intaEna3rHtG;ch,t0;ch,kGry;et;aLeKiIoGu1B;aGck,ok,ve;d,n;ft,ke,mAnGst2Wve;e,k;a2Dc0Et;b0Nck,uG;gh,nC;iGno2Z;ck,ll,ss;am,oEuG;d3mp;gno2mQnGss3C;cOdica9flu0MhNsKtIvG;eGol4;nt,st;erGrodu8;a5fe2;i7tG;aGru5;ll;abAibA;lu1Er1C;agi22pG;lemeDo20ro4;aKeIi2oHuG;nt,rry;n02pe,st;aGlp;d,t;nd6ppGrm,te;en;aKloBove1MrIuG;arGeBi13;ant33d;aGip,umb6;b,sp;in,th0ze;aQeaPiNlLoIracHuncG;ti3D;tu2;cus,lHrG;ce,eca7m,s2V;d,l1Z;aFoG;at,od,w;gu2lGniFx;e,l;r,tu2;il,vG;or;a13cho,le5mSnPstNvalua9xG;a0AcLerKi7pGte17;a16eHi2laEoGreB;rt,se;ct,riG;en8;ci1t;el,han3;abGima9;liF;ab6couXdHfor8ga3han8j03riCsu2t0vG;isi2Qy;!u2;body,er3pG;hasiGow0;ze;a06eUiLoKrHuG;mp;aHeBiG;ft;g,in;d3ubt;ff0p,re5sHvG;iYor8;aKcHliGmiBpl16tinguiF;ke;oGuB;uGv0;ra3;gr1TppG;ear,ro4;cNem,fLliv0ma0Dny,pKsHterG;mi0E;cribe,er4iHtrG;oy;gn,re;a09e08i5osA;eGi09y;at,ct;iIlHrG;ea1;a2i05;de;ma3n8re,te;a0Ae09h06i9l04oJrG;aHeGoBuFy;a9dA;ck,ve;llZmSnHok,py,uGv0;gh,nt;cePdu5fMsKtIvG;eGin8;rt,y;aEin0SrG;a7ibu9ol;iGtitu9;d0st;iHoGroD;rm;gu2rm;rn;biLfoKmaJpG;a2laE;in;re;nd;rt;ne;ap1e5;aGip,o1;im,w;aHeG;at,ck,w;llen3n3r3se;a1nt0;ll,ncIrGt0u1;eGry;!en;el;aPeMloLoJruFuG;lGry;ly;sh;a7mb,o7rrGth0un8;ow;ck;ar,lHnefAtrG;ay;ie4ong;ng,se;band0Jc0Bd06ffo05gr04id,l01mu1nYppTrQsKttGvoid,waA;acIeHra5;ct;m0Fnd;h,k;k,sG;eIiHocia9uG;me;gn,st;mb6rt;le;chHgGri4;ue;!i4;eaJlIroG;aCve;ch;aud,y;l,r;noun8sw0tG;icipa9;ce;lHt0;er;e3ow;ee;rd;aRdIju7mAoR;it;st;!reB;ss;cJhie4knowled3tiva9;te;ge;ve;eIouDu1;se;nt;pt;on",Unit:"true¦0:19;a14b12c0Od0Ne0Lf0Gg0Ch09in0Hjoule0k02l00mNnMoLpIqHsqCt7volts,w6y4z3°2µ1;g,s;c,f,n;b,e2;a0Nb,d0Dears old,o1;tt0H;att0b;able4b3d,e2on1sp;!ne0;a2r0D;!l,sp;spo04; ft,uare 1;c0Id0Hf3i0Fkilo0Jm1ya0E;e0Mil1;e0li0H;eet0o0D;t,uart0;ascals,e2i1ou0Pt;c0Mnt0;rcent,t02;hms,uYz;an0JewtT;/s,b,e9g,i3l,m2p1²,³;h,s;!²;!/h,cro5l1;e1li08;! pFs1²;! 1;anEpD;g06s0B;gQter1;! 2s1;! 1;per second;b,i00m,u1x;men0x0;b,elvin0g,ilo2m1nR;!/h,ph,²;byZgXmeter1;! p2s1;! p1;er1; hour;e1g,r0z;ct1rtz0;aXogQ;al2b,igAra1;in0m0;!l1;on0;a4emtPl2t1;²,³; oz,uid ou1;nce0;hrenheit0rad0;b,x1;abyH;eciCg,l,mA;arat0eAg,m9oulomb0u1;bic 1p0;c5d4fo3i2meAya1;rd0;nch0;ot0;eci2;enti1;me4;!²,³;lsius0nti1;g2li1me1;ter0;ram0;bl,y1;te0;c4tt1;os1;eco1;nd0;re0;!s",Organization:"true¦0:46;a3Ab2Qc2Ad21e1Xf1Tg1Lh1Gi1Dj19k17l13m0Sn0Go0Dp07qu06rZsStFuBv8w3y1;amaha,m0Xou1w0X;gov,tu2S;a3e1orld trade organizati41;lls fargo,st1;fie22inghou16;l1rner br3D;-m11gree31l street journ25m11;an halNeriz3Wisa,o1;dafo2Gl1;kswagLvo;bs,kip,n2ps,s1;a tod2Rps;es35i1;lev2Xted natio2Uv; mobi2Kaco bePd bMeAgi frida9h3im horto2Tmz,o1witt2W;shiba,y1;ota,s r Y;e 1in lizzy;b3carpen33daily ma2Xguess w2holli0rolling st1Ms1w2;mashing pumpki2Ouprem0;ho;ea1lack eyed pe3Fyrds;ch bo1tl0;ys;l2s1;co,la m12;efoni07us;a6e4ieme2Gnp,o2pice gir5ta1ubaru;rbucks,to2N;ny,undgard1;en;a2Rx pisto1;ls;few25insbu26msu1X;.e.m.,adiohead,b6e3oyal 1yan2X;b1dutch she4;ank;/max,aders dige1Ed 1vl32;bu1c1Uhot chili peppe2Klobst28;ll;c,s;ant2Vizno2F;an5bs,e3fiz24hilip morrBi2r1;emier27octer & gamb1Rudenti14;nk floyd,zza hut;psi28tro1uge08;br2Qchina,n2Q; 2ason1Xda2G;ld navy,pec,range juli2xf1;am;us;a9b8e5fl,h4i3o1sa,wa;kia,tre dame,vart1;is;ke,ntendo,ss0K;l,s;c,st1Etflix,w1; 1sweek;kids on the block,york08;a,c;nd1Us2t1;ional aca2Fo,we0Q;a,cYd0O;aAcdonald9e5i3lb,o1tv,yspace;b1Nnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisO;dica3rcedes2talli1;ca;!-benz;id,re;'s,s;c's milk,tt13z1Y;'ore09a3e1g,ittle caesa1Ktd;novo,x1;is,mark; pres5-z-boy,bour party;atv,fc,kk,m1od1K;art;iffy lu0Lo3pmorgan1sa;! cha1;se;hnson & johns1Sy d1R;bm,hop,n1tv;c,g,te1;l,rpol; & m,asbro,ewlett-packaTi3o1sbc,yundai;me dep1n1J;ot;tac1zbollah;hi;eneral 6hq,l5mb,o2reen d0Iu1;cci,ns n ros0;ldman sachs,o1;dye1g0B;ar;axo smith kliZencore;electr0Im1;oto0V;a3bi,da,edex,i1leetwood mac,oGrito-l0A;at,nancial1restoV; tim0;cebook,nnie mae;b06sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Ae5isney,o3u1;nkin donuts,po0Wran dur1;an;j,w j1;on0;a,f leppa3ll,p2r spiegZstiny's chi1;ld;eche mode,t;rd;aEbc,hBi9nn,o3r1;aigsli5eedence clearwater reviv1ossra05;al;!ca c5l4m1o0Ast05;ca2p1;aq;st;dplMgate;ola;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r0Hy;dbury,pital o1rl's jr;ne;aGbc,eCfAl6mw,ni,o2p,r1;exiteeWos;ei3mbardiJston 1;glo1pizza;be;ng;ack & deckFo2ue c1;roX;ckbuster video,omingda1;le; g1g1;oodriN;cht3e ge0n & jer2rkshire hathaw1;ay;ryH;el;nana republ3s1xt5y5;f,kin robbi1;ns;ic;bXcSdidRerosmith,ig,lLmFnheuser-busEol,ppleAr7s3t&t,v2y1;er;is,on;hland2s1;n,ociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 4catel2t1;air;!-luce1;nt;jazeera,qae1;da;as;/dc,a3er,t1;ivisi1;on;demy of scienc0;es;ba,c",Demonym:"true¦0:16;1:13;a0Wb0Nc0Cd0Ae09f07g04h02iYjVkTlPmLnIomHpDqatari,rBs7t5u4v3wel0Rz2;am0Fimbabwe0;enezuel0ietnam0H;g9krai1;aiwThai,rinida0Iu2;ni0Qrkmen;a4cot0Ke3ingapoOlovak,oma0Tpa05udRw2y0X;edi0Kiss;negal0Br08;mo0uU;o6us0Lw2;and0;a3eru0Hhilipp0Po2;li0Ertugu06;kist3lesti1na2raguay0;ma1;ani;amiZi2orweP;caragu0geri2;an,en;a3ex0Mo2;ngo0Erocc0;cedo1la2;gasy,y08;a4eb9i2;b2thua1;e0Dy0;o,t02;azakh,eny0o2uwaiti;re0;a2orda1;ma0Bp2;anN;celandic,nd4r2sraeli,ta02vo06;a2iT;ni0qi;i0oneV;aiDin2ondur0unN;di;amDe2hanai0reek,uatemal0;or2rm0;gi0;i2ren7;lipino,n4;cuadoVgyp6ngliJsto1thiopi0urope0;a2ominXut4;niH;a9h6o4roa3ub0ze2;ch;ti0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el8o6r3ul2;gaG;aziBi2;ti2;sh;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;gent2me1;ine;ba1ge2;ri0;ni0;gh0r2;ic0;an",Possessive:"true¦anyAh5its,m3noCo1sometBthe0yo1;ir1mselves;ur0;!s;i8y0;!se4;er1i0;mse2s;!s0;!e0;lf;o1t0;hing;ne",Currency:"true¦$,aud,bScQdLeurKfJgbp,hkd,iIjpy,kGlEp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotySł;en,uanR;af,of;h0t5;e0il5;k0q0;elM;iel,oubleLp,upeeL;e2ound st0;er0;lingI;n0soH;ceGn0;ies,y;e0i8;i,mpi7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!o8;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;ad,e0ny;nt1;aht,itcoin0;!s",City:"true¦a2Wb26c1Wd1Re1Qf1Og1Ih1Ai18jakar2Hk0Zl0Tm0Gn0Co0ApZquiYrVsLtCuBv8w3y1z0;agreb,uri1Z;ang1Te0okohama;katerin1Hrev34;ars3e2i0rocl3;ckl0Vn0;nipeg,terth0W;llingt1Oxford;aw;a1i0;en2Hlni2Z;lenc2Uncouv0Gr2G;lan bat0Dtrecht;a6bilisi,e5he4i3o2rondheim,u0;nVr0;in,ku;kyo,ronIulouC;anj23l13miso2Jra2A; haJssaloni0X;gucigalpa,hr2Ol av0L;i0llinn,mpe2Bngi07rtu;chu22n2MpT;a3e2h1kopje,t0ydney;ockholm,uttga12;angh1Fenzh1X;o0KvZ;int peters0Ul3n0ppo1F; 0ti1B;jo0salv2;se;v0z0Q;adU;eykjavik,i1o0;me,sario,t25;ga,o de janei17;to;a8e6h5i4o2r0ueb1Qyongya1N;a0etor24;gue;rt0zn24; elizabe3o;ls1Grae24;iladelph1Znom pe07oenix;r0tah tik19;th;lerJr0tr10;is;dessa,s0ttawa;a1Hlo;a2ew 0is;delTtaip0york;ei;goya,nt0Upl0Uv1R;a5e4i3o1u0;mb0Lni0I;nt0scH;evideo,real;l1Mn01skolc;dellín,lbour0S;drid,l5n3r0;ib1se0;ille;or;chest0dalWi0Z;er;mo;a4i1o0vAy01;nd00s angel0F;ege,ma0nz,sbZverpo1;!ss0;ol; pla0Iusan0F;a5hark4i3laipeda,o1rak0uala lump2;ow;be,pavog0sice;ur;ev,ng8;iv;b3mpa0Kndy,ohsiu0Hra0un03;c0j;hi;ncheMstanb0̇zmir;ul;a5e3o0; chi mi1ms,u0;stI;nh;lsin0rakliG;ki;ifa,m0noi,va0A;bu0SiltD;alw4dan3en2hent,iza,othen1raz,ua0;dalaj0Gngzhou;bu0P;eUoa;sk;ay;es,rankfu0;rt;dmont4indhovU;a1ha01oha,u0;blRrb0Eshanbe;e0kar,masc0FugavpiJ;gu,je0;on;a7ebu,h2o0raioJuriti01;lo0nstanJpenhagNrk;gFmbo;enn3i1ristchur0;ch;ang m1c0ttagoL;ago;ai;i0lgary,pe town,rac4;ro;aHeBirminghWogoAr5u0;char3dap3enos air2r0sZ;g0sa;as;es;est;a2isba1usse0;ls;ne;silPtisla0;va;ta;i3lgrade,r0;g1l0n;in;en;ji0rut;ng;ku,n3r0sel;celo1ranquil0;la;na;g1ja lu0;ka;alo0kok;re;aBb9hmedabad,l7m4n2qa1sh0thens,uckland;dod,gabat;ba;k0twerp;ara;m5s0;terd0;am;exandr0maty;ia;idj0u dhabi;an;lbo1rh0;us;rg",Abbreviation:"true¦a0Tb0Qc0Kd0Ie0Ff0Cg0Ah08i06j04k02l00mRnOoNpIqHrFs9t6u5v2w0yb,µg;is0r,y0L;!c;a,b,e1i0ol,s,t;tro,vo;r,t;niv,safa,t;b1ce,d,e0sp;l,mp,nn,x;!l,sp;ask,e3fc,gt,i2q1r,s,t,u0;pt,rg;! ft;r,tu;c,nVp0;!t;b,d,e0;pSs,v;t,ue;a,d,enn3hd,l,p,r1s0t,vt;!a,eud;ef,o0;b,f,n;!a;ct,kla,nt,p,rd,z;e0ov;b0e;!r;a7b,d,essrs,g,i4l3m2p1rHs0t;!tr;h,s;!e;!le;!n1s0;c,ter;!n;!j,r,sc;at,b,it,lb,m,ng,t0x;!d;an6b,g,m0;!ph;an,d,r,u0;l,n;a,da,e,n0;c,f;g,on,r0wy,z;!s;a0b,en,ov;!l;e1ig,l0m,r,t,y;! oz,a;b,m;a,g,ng,s1tc,x0;!p;p,q,t;ak,e0g,ist,l,m,r;c,f,pt,t;a3ca,g,l,m2o0pl,res,t,yn;!l0mdr,nn,rp;!o;!dr;!l0pt;!if;a,c,l1r0;ig,os;!dg,vd;d4l3p2r1ss0tty,ug,ve;n,t;c,iz;prox,r,t;!ta;!j,m,v",Country:"true¦0:38;1:2L;a2Wb2Dc21d1Xe1Rf1Lg1Bh19i13j11k0Zl0Um0Gn05om3CpZqat1JrXsKtCu6v4wal3yemTz2;a24imbabwe;es,lis and futu2X;a2enezue31ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2X;k.,s.2; 27a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Xs and caic1T; and 2-2;toba1J;go,kel0Ynga;iw2Vji2nz2R;ki2T;aCcotl1eBi8lov7o5pa2Bri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Qriname;lomon1Vmal0uth 2;afr2IkLsud2O;ak0en0;erra leoEn2;gapo1Wt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele24luc0mart1Z;epublic of ir0Com2Cuss0w2;an25;a3eHhilippinTitcairn1Ko2uerto riM;l1rtugE;ki2Bl3nama,pua new0Tra2;gu6;au,esti2;ne;aAe8i6or2;folk1Gth3w2;ay; k2ern mariana1B;or0M;caragua,ger2ue;!ia;p2ther18w zeal1;al;mib0u2;ru;a6exi5icro09o2yanm04;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagascZl6r4urit3yot2;te;an0i14;shall0Vtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed00;a5e4i2uxembourg;b2echtenste10thu1E;er0ya;ban0Gsotho;os,tv0;azakh1De2iriba02osovo,uwait,yrgyz1D;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",Region:"true¦0:1U;a20b1Sc1Id1Des1Cf19g13h10i0Xj0Vk0Tl0Qm0FnZoXpSqPrMsDtAut9v6w3y1zacatec22;o05u1;cat18kZ;a1est vi4isconsin,yomi14;rwick0shington1;! dc;er2i1;rgin1S;acruz,mont;ah,tar pradesh;a2e1laxca1DuscaA;nnessee,x1R;bas0Kmaulip1QsmJ;a6i4o2taf0Ou1ylh13;ffVrr00s0Y;me10no1Auth 1;cSdR;ber1Ic1naloa;hu0Sily;n2skatchew0Rxo1;ny; luis potosi,ta catari1I;a1hode7;j1ngp02;asth0Mshahi;inghai,u1;e1intana roo;bec,ensWreta0E;ara4e2rince edward1; isU;i,nnsylv1rnambu02;an14;!na;axa0Ndisha,h1klaho1Bntar1reg4x04;io;ayarit,eBo3u1;evo le1nav0L;on;r1tt0Rva scot0X;f6mandy,th1; 1ampton0;c3d2yo1;rk0;ako0Y;aroli0V;olk;bras0Xva01w1; 2foundland1;! and labrador;brunswick,hamp0jers1mexiJyork state;ey;a6i2o1;nta0Nrelos;ch3dlanBn2ss1;issippi,ouri;as geraGneso0M;igQoacQ;dhya,harasht04ine,ni3r1ssachusetts;anhao,y1;land;p1toba;ur;anca0e1incoln0ouis8;e1iH;ds;a1entucky,hul0A;ns08rnata0Dshmir;alis1iangxi;co;daho,llino2nd1owa;ia05;is;a2ert1idalEunA;ford0;mp0waii;ansu,eorgWlou5u1;an2erre1izhou,jarat;ro;ajuato,gdo1;ng;cester0;lori2uji1;an;da;sex;e4o2uran1;go;rs1;et;lawaErby0;a8ea7hi6o1umbrH;ahui4l3nnectic2rsi1ventry;ca;ut;iMorado;la;apEhuahua;ra;l8m1;bridge0peche;a5r4uck1;ingham0;shi1;re;emen,itish columb3;h2ja cal1sque,var2;iforn1;ia;guascalientes,l4r1;izo2kans1;as;na;a2ber1;ta;ba2s1;ka;ma",FemaleName:"true¦0:FY;1:G2;2:FR;3:FD;4:FC;5:EP;6:ER;7:FS;8:GF;9:EZ;A:GB;B:E5;C:FO;D:FL;E:G8;F:EG;aE2bD4cB8dAIe9Gf91g8Hh83i7Sj6Uk60l4Om38n2To2Qp2Fqu2Er1Os0Qt04ursu6vUwOyLzG;aJeHoG;e,la,ra;lGna;da,ma;da,ra;as7EeHol1TvG;et5onB9;le0sen3;an9endBNhiB4iG;lInG;if3AniGo0;e,f39;a,helmi0lGma;a,ow;aMeJiG;cHviG;an9XenG1;kCZtor3;da,l8Vnus,rG;a,nGoniD2;a,iDC;leGnesEC;nDLrG;i1y;aSePhNiMoJrGu6y4;acG3iGu0E;c3na,sG;h9Mta;nHrG;a,i;i9Jya;a5IffaCGna,s7;al3eGomasi0;a,l8Go6Xres1;g7Uo6WrHssG;!a,ie;eFi,ri8;bNliMmKnIrHs7tGwa0;ia0um;a,yn;iGya;a,ka,s7;a4e4iGmCAra;!ka;a,t7;at7it7;a05carlet2Ye04hUiSkye,oQtMuHyG;bFJlvi1;e,sHzG;an2Tet5ie,y;anGi8;!a,e,nG;aDe;aIeG;fGl3DphG;an2;cF8r6;f3nGphi1;d4ia,ja,ya;er4lv3mon1nGobh75;dy;aKeGirlBLo0y6;ba,e0i6lIrG;iGrBPyl;!d70;ia,lBV;ki4nIrHu0w0yG;la,na;i,leAon,ron;a,da,ia,nGon;a,on;l5Yre0;bMdLi9lKmIndHrGs7vannaD;aDi0;ra,y;aGi4;nt7ra;lBNome;e,ie;in1ri0;a02eXhViToHuG;by,thBK;bQcPlOnNsHwe0xG;an94ie,y;aHeGie,lE;ann8ll1marBFtB;!lGnn1;iGyn;e,nG;a,d7W;da,i,na;an9;hel53io;bin,erByn;a,cGkki,na,ta;helBZki;ea,iannDXoG;da,n12;an0bIgi0i0nGta,y0;aGee;!e,ta;a,eG;cARkaD;chGe,i0mo0n5EquCDvCy0;aCCelGi9;!e,le;een2ia0;aMeLhJoIrG;iGudenAW;scil1Uyamva9;lly,rt3;ilome0oebe,ylG;is,lis;arl,ggy,nelope,r6t4;ige,m0Fn4Oo6rvaBBtHulG;a,et5in1;ricGsy,tA8;a,e,ia;ctav3deHfAWlGphAW;a,ga,iv3;l3t5;aQePiJoGy6;eHrG;aDeCma;ll1mi;aKcIkGla,na,s7ta;iGki;!ta;hoB2k8BolG;a,eBH;!mh;l7Tna,risF;dIi5PnHo23taG;li1s7;cy,et5;eAiCO;a01ckenz2eViLoIrignayani,uriBGyG;a,rG;a,na,tAS;i4ll9XnG;a,iG;ca,ka,qB4;a,chOkaNlJmi,nIrGtzi;aGiam;!n9;a,dy,erva,h,n2;a,dIi9JlG;iGy;cent,e;red;!e6;ae6el3G;ag4KgKi,lHrG;edi61isFyl;an2iGliF;nGsAM;a,da;!an,han;b08c9Ed06e,g04i03l01nZrKtJuHv6Sx87yGz2;a,bell,ra;de,rG;a,eC;h75il9t2;a,cSgOiJjor2l6In2s7tIyG;!aGbe5QjaAlou;m,n9S;a,ha,i0;!aIbALeHja,lEna,sGt53;!a,ol,sa;!l06;!h,m,nG;!a,e,n1;arIeHie,oGr3Kueri5;!t;!ry;et3IiB;elGi61y;a,l1;dGon,ue6;akranBy;iGlo36;a,ka,n9;a,re,s2;daGg2;!l2W;alEd2elGge,isBGon0;eiAin1yn;el,le;a0Ie08iWoQuKyG;d3la,nG;!a,dHe9SnGsAQ;!a,e9R;a,sAO;aB1cJelIiFlHna,pGz;e,iB;a,u;a,la;iGy;a2Ae,l25n9;is,l1GrHtt2uG;el6is1;aIeHi8na,rG;a6Zi8;lei,n1tB;!in1;aQbPd3lLnIsHv3zG;!a,be4Ket5z2;a,et5;a,dG;a,sGy;ay,ey,i,y;a,iaIlG;iGy;a8Ge;!n4F;b7Terty;!n5R;aNda,e0iLla,nKoIslARtGx2;iGt2;c3t3;la,nGra;a,ie,o4;a,or1;a,gh,laG;!ni;!h,nG;a,d4e,n4N;cNdon7Si6kes7na,rMtKurIvHxGy6;mi;ern1in3;a,eGie,yn;l,n;as7is7oG;nya,ya;a,isF;ey,ie,y;aZeUhadija,iMoLrIyG;lGra;a,ee,ie;istGy5B;a,en,iGy;!e,n48;ri,urtn9A;aMerLl99mIrGzzy;a,stG;en,in;!berlG;eGi,y;e,y;a,stC;!na,ra;el6PiJlInHrG;a,i,ri;d4na;ey,i,l9Qs2y;ra,s7;c8Wi5XlOma6nyakumari,rMss5LtJviByG;!e,lG;a,eG;e,i78;a5EeHhGi3PlEri0y;ar5Cer5Cie,leCr9Fy;!lyn73;a,en,iGl4Uyn;!ma,n31sF;ei72i,l2;a04eVilToMuG;anKdJliGst56;aHeGsF;!nAt0W;!n8X;i2Ry;a,iB;!anLcelEd5Vel71han6IlJni,sHva0yG;a,ce;eGie;fi0lEph4X;eGie;en,n1;!a,e,n36;!i10lG;!i0Z;anLle0nIrHsG;i5Qsi5Q;i,ri;!a,el6Pif1RnG;a,et5iGy;!e,f1P;a,e72iHnG;a,e71iG;e,n1;cLd1mi,nHqueliAsmin2Uvie4yAzG;min8;a8eHiG;ce,e,n1s;!lGsFt06;e,le;inHk2lEquelG;in1yn;da,ta;lPmNnMo0rLsHvaG;!na;aHiGob6U;do4;!belGdo4;!a,e,l2G;en1i0ma;a,di4es,gr5R;el9ogG;en1;a,eAia0o0se;aNeKilHoGyacin1N;ll2rten1H;aHdGlaH;a,egard;ry;ath0WiHlGnrietBrmiAst0W;en24ga;di;il75lKnJrGtt2yl75z6D;iGmo4Fri4G;etG;!te;aDnaD;ey,l2;aYeTiOlMold12rIwG;enGyne18;!dolE;acHetGisel9;a,chC;e,ieG;!la;adys,enGor3yn1Y;a,da,na;aJgi,lHna,ov71selG;a,e,le;da,liG;an;!n0;mYnIorgHrG;ald35i,m2Stru73;et5i5T;a,eGna;s1Nvieve;briel3Fil,le,rnet,yle;aReOio0loMrG;anHe9iG;da,e9;!cG;esHiGoi0G;n1s3V;!ca;!rG;a,en43;lHrnG;!an9;ec3ic3;rHtiGy8;ma;ah,rah;d0FileCkBl00mUn4ArRsMtLuKvG;aIelHiG;e,ta;in0Ayn;!ngel2H;geni1la,ni3R;h52ta;meral9peranJtG;eHhGrel6;er;l2Pr;za;iGma,nest29yn;cGka,n;a,ka;eJilImG;aGie,y;!liA;ee,i1y;lGrald;da,y;aTeRiMlLma,no4oJsIvG;a,iG;na,ra;a,ie;iGuiG;se;a,en,ie,y;a0c3da,nJsGzaH;aGe;!beG;th;!a,or;anor,nG;!a;in1na;en,iGna,wi0;e,th;aWeKiJoGul2U;lor51miniq3Yn30rGtt2;a,eCis,la,othGthy;ea,y;an09naDonAx2;anPbOde,eNiLja,lImetr3nGsir4U;a,iG;ce,se;a,iHla,orGphiA;es,is;a,l5J;dGrdG;re;!d4Mna;!b2CoraDra;a,d4nG;!a,e;hl3i0mMnKphn1rHvi1WyG;le,na;a,by,cHia,lG;a,en1;ey,ie;a,et5iG;!ca,el1Aka;arGia;is;a0Qe0Mh04i02lUoJrHynG;di,th3;istGy04;al,i0;lOnLrHurG;tn1D;aId28iGn28riA;!nG;a,e,n1;!l1S;n2sG;tanGuelo;ce,za;eGleC;en,t5;aIeoHotG;il4B;!pat4;ir8rIudG;et5iG;a,ne;a,e,iG;ce,sX;a4er4ndG;i,y;aPeMloe,rG;isHyG;stal;sy,tG;aHen,iGy;!an1e,n1;!l;lseHrG;!i8yl;a,y;nLrG;isJlHmG;aiA;a,eGot5;n1t5;!sa;d4el1PtG;al,el1O;cHlG;es5i3F;el3ilG;e,ia,y;iYlXmilWndVrNsLtGy6;aJeIhGri0;erGleCrEy;in1;ri0;li0ri0;a2GsG;a2Fie;a,iMlKmeIolHrG;ie,ol;!e,in1yn;lGn;!a,la;a,eGie,y;ne,y;na,sF;a0Di0D;a,e,l1;isBl2;tlG;in,yn;arb0CeYianXlVoTrG;andRePiIoHyG;an0nn;nwEok8;an2NdgKg0ItG;n27tG;!aHnG;ey,i,y;ny;etG;!t8;an0e,nG;da,na;i8y;bbi8nG;iBn2;ancGossom,ythe;a,he;ca;aRcky,lin9niBrNssMtIulaDvG;!erlG;ey,y;hHsy,tG;e,i0Zy8;!anG;ie,y;!ie;nGt7yl;adHiG;ce;et5iA;!triG;ce,z;a4ie,ra;aliy29b24d1Lg1Hi19l0Sm0Nn01rWsNthe0uJvIyG;anGes7;a,na;a,r25;drIgusHrG;el3;ti0;a,ey,i,y;hHtrG;id;aKlGt1P;eHi8yG;!n;e,iGy;gh;!nG;ti;iIleHpiB;ta;en,n1t5;an19elG;le;aYdWeUgQiOja,nHtoGya;inet5n3;!aJeHiGmI;e,ka;!mGt5;ar2;!belHliFmT;sa;!le;ka,sGta;a,sa;elGie;a,iG;a,ca,n1qG;ue;!t5;te;je6rea;la;!bHmGstas3;ar3;el;aIberHel3iGy;e,na;!ly;l3n9;da;aTba,eNiKlIma,yG;a,c3sG;a,on,sa;iGys0J;e,s0I;a,cHna,sGza;a,ha,on,sa;e,ia;c3is7jaIna,ssaIxG;aGia;!nd4;nd4;ra;ia;i0nHyG;ah,na;a,is,naD;c7da,leCmLnslKsG;haDlG;inGyW;g,n;!h;ey;ee;en;at7g2nG;es;ie;ha;aVdiSelLrG;eIiG;anLenG;a,e,ne;an0;na;aKeJiHyG;nn;a,n1;a,e;!ne;!iG;de;e,lEsG;on;yn;!lG;iAyn;ne;agaJbHiG;!gaI;ey,i8y;!e;il;ah",Place:"true¦a07b05cZdYeXfVgRhQiOjfk,kMlKmHneEoDp9que,rd,s8t5u4v3w0yyz;is1y0;!o;!c;a,t;pYsafa,t;e1he 0;bronx,hamptons;nn,x;ask,fo,oho,t,under6yd;a2e1h0;l,x;k,nnK;!cifX;kla,nt;b1w eng0;land;!r;a1co,i0t,uc;dKnn;libu,nhattS;a0gw,hr;s,x;an0ul;!s;a0cn,da,ndianMst;!x;arlem,kg,nd,wy;a2re0;at 0enwich;britain,lak6;!y village;co,l0ra;!a;urope,verglad2;ak,en,fw,ist,own4xb;al4dg,gk,hina3l2o1r0t;es;lo,nn;!t;town;!if;cn,e0kk,lvd,rooklyn;l air,verly hills;frica,lta,m5ntarct2r1sia,tl0ve;!ant1;ct0iz;ic0; oce0;an;ericas,s",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦aBdec9feb7j2mar,nov9oct1sep0;!t8;!o8;an3u0;l1n0;!e;!y;!u1;!ru0;ary;!em0;ber;pr1ug0;!ust;!il",Date:"true¦t0weekend,yesterd2;mr2o0;d0morrow;ay;!w",FirstName:"true¦aEblair,cCdevBj8k6lashawn,m3nelly,quinn,re2sh0;ay,e0iloh;a,lby;g1ne;ar1el,org0;an;ion,lo;as8e0r9;ls7nyatta,rry;am0ess1ude;ie,m0;ie;an,on;as0heyenne;ey,sidy;lex1ndra,ubr0;ey;is",LastName:"true¦0:34;1:39;2:3B;3:2Y;4:2E;5:30;a3Bb31c2Od2Ee2Bf25g1Zh1Pi1Kj1Ek17l0Zm0Nn0Jo0Gp05rYsMtHvFwCxBy8zh6;a6ou,u;ng,o;a6eun2Uoshi1Kun;ma6ng;da,guc1Zmo27sh21zaR;iao,u;a7eb0il6o3right,u;li3Bs1;gn0lk0ng,tanabe;a6ivaldi;ssilj37zqu2;a9h8i2Go7r6sui,urn0;an,ynisJ;lst0Prr1Uth;at1Uomps1;kah0Vnaka,ylor;aEchDeChimizu,iBmiAo9t7u6zabo;ar2lliv2AzuE;a6ein0;l23rm0;sa,u3;rn4th;lva,mmo24ngh;mjon4rrano;midt,neid0ulz;ito,n7sa6to;ki;ch2dLtos,z;amBeag1Zi9o7u6;bio,iz,sD;b6dri1MgIj0Tme24osevelt,ssi,ux;erts,ins1;c6ve0F;ci,hards1;ir2os;aEeAh8ic6ow20;as6hl0;so;a6illips;m,n1T;ders5et8r7t6;e0Nr4;ez,ry;ers;h21rk0t6vl4;el,te0J;baBg0Blivei01r6;t6w1O;ega,iz;a6eils1guy5ix1owak,ym1E;gy,ka6var1K;ji6muW;ma;aEeCiBo8u6;ll0n6rr0Bssolini,ñ6;oz;lina,oKr6zart;al0Me6r0U;au,no;hhail4ll0;rci0ssi6y0;!er;eWmmad4r6tsu07;in6tin2;!o;aCe8i6op2uo;!n6u;coln,dholm;fe7n0Qr6w0J;oy;bv6v6;re;mmy,rs5u;aBennedy,imuAle0Lo8u7wo6;k,n;mar,znets4;bay6vacs;asY;ra;hn,rl9to,ur,zl4;aAen9ha3imen2o6u3;h6nYu3;an6ns1;ss1;ki0Es5;cks1nsse0D;glesi9ke8noue,shik7to,vano6;u,v;awa;da;as;aBe8itchcock,o7u6;!a3b0ghNynh;a3ffmann,rvat;mingw7nde6rN;rs1;ay;ns5rrQs7y6;asDes;an4hi6;moJ;a9il,o8r7u6;o,tierr2;ayli3ub0;m2nzal2;nd6o,rcia;hi;erAis9lor8o7uj6;ita;st0urni0;es;ch0;nand2;d7insteHsposi6vaL;to;is1wards;aCeBi9omin8u6;bo6rand;is;gu2;az,mitr4;ov;lgado,vi;nkula,rw7vi6;es,s;in;aFhBlarkAo6;h5l6op0rbyn,x;em7li6;ns;an;!e;an8e7iu,o6ristens5u3we;i,ng,u3w,y;!n,on6u3;!g;mpb7rt0st6;ro;ell;aBe8ha3lanco,oyko,r6yrne;ooks,yant;ng;ck7ethov5nnett;en;er,ham;ch,h8iley,rn6;es,i0;er;k,ng;dDl9nd6;ers6rA;en,on,s1;on;eks7iy8var2;ez;ej6;ev;ams",MaleName:"true¦0:CE;1:BL;2:C2;3:BT;4:B5;5:9V;6:BZ;7:AT;8:BD;9:AX;A:AO;aB4bA8c97d87e7Gf6Yg6Gh5Wi5Ij4Lk4Bl3Rm2Pn2Eo28p22qu20r1As0Qt06u05v00wNxavi3yGzB;aBor0;cBh8Ine;hCkB;!aB1;ar51eB0;ass2i,oCuB;sDu25;nEsDusB;oBsC;uf;ef;at0g;aJeHiCoByaAP;lfgang,odrow;lBn1O;bDey,frBJlB;aA5iB;am,e,s;e89ur;i,nde5sB;!l7t1;de,lCrr6yB;l1ne;lBt3;a93y;aEern1iB;cCha0kt5CnceBrg9Bva0;!nt;ente,t5A;lentin49n8Yughn;lyss4Msm0;aTeOhKiIoErCyB;!l3ro8s1;av9QeBist0oy,um0;nt9Iv54y;bDd7XmBny;!as,mBoharu;aAYie,y;i83y;mBt9;!my,othy;adDeoCia7DomB;!as;!do7M;!de9;dErB;en8HrB;an8GeBy;ll,n8F;!dy;dgh,ic9Tnn3req,ts45;aRcotPeNhJiHoFpenc3tBur1Oylve8Hzym1;anDeBua7B;f0phAFvBwa7A;e57ie;!islaw,l7;lom1nA3uB;leyma8ta;dBl7Jm1;!n7;aDeB;lBrm0;d1t1;h6Sne,qu0Uun,wn,y8;aBbasti0k1Xl41rg40th,ymo9I;m9n;!tB;!ie,y;lCmBnti21q4Iul;!mAu4;ik,vato6V;aWeShe92iOoFuCyB;an,ou;b6LdCf9pe6QssB;!elAI;ol2Uy;an,bIcHdGel,geFh0landA9mEnDry,sCyB;!ce;coe,s;!a95nA;an,eo;l3Jr;e4Qg3n7olfo,ri68;co,ky;bAe9U;cBl7;ar5Oc5NhCkBo;!ey,ie,y;a85ie;gCid,ub6x,yBza;ansh,nS;g8WiB;na8Ss;ch5Yfa4lDmCndBpha4sh6Uul,ymo70;al9Yol2By;i9Ion;f,ph;ent2inB;cy,t1;aFeDhilCier62ol,reB;st1;!ip,lip;d9Brcy,tB;ar,e2V;b3Sdra6Ft44ul;ctav2Vliv3m96rFsCtBum8Uw6;is,to;aCc8SvB;al52;ma;i,l49vJ;athJeHiDoB;aBel,l0ma0r2X;h,m;cCg4i3IkB;h6Uola;hol5XkBol5X;!ol5W;al,d,il,ls1vB;il50;anBy;!a4i4;aWeTiKoFuCyB;l21r1;hamCr5ZstaB;fa,p4G;ed,mF;dibo,e,hamDis1XntCsBussa;es,he;e,y;ad,ed,mB;ad,ed;cGgu4kElDnCtchB;!e5;a78ik;house,o03t1;e,olB;aj;ah,hBk7;a4eB;al,l;hClv2rB;le,ri5v2;di,met;ck,hNlLmOnu4rHs1tDuricCxB;!imilian8Cwe5;e,io;eo,hCi52tB;!eo,hew,ia;eBis;us,w;cDio,k86lCqu6Gsha5tBv2;i2Hy;in,on;!el,oKus;achBcolm,ik;ai,y;amBdi,moud;adB;ou;aReNiMlo2RoIuCyB;le,nd1;cEiDkBth3;aBe;!s;gi,s;as,iaB;no;g0nn6RrenDuBwe5;!iB;e,s;!zo;am,on4;a7Bevi,la4SnDoBst3vi;!nB;!a60el;!ny;mCnBr67ur4Twr4T;ce,d1;ar,o4N;aIeDhaled,iBrist4Vu48y3B;er0p,rB;by,k,ollos;en0iEnBrmit,v2;!dCnBt5C;e0Yy;a5ri4N;r,th;na68rBthem;im,l;aYeQiOoDuB;an,liBst2;an,o,us;aqu2eJhnInGrEsB;eChBi7Bue;!ua;!ph;dBge;an,i,on;!aBny;h,s,th4X;!ath4Wie,nA;!l,sBy;ph;an,e,mB;!mA;d,ffGrDsB;sBus;!e;a5JemCmai8oBry;me,ni0O;i6Uy;!e58rB;ey,y;cHd6kGmFrDsCvi3yB;!d6s1;on,p3;ed,od,rBv4M;e4Zod;al,es,is1;e,ob,ub;k,ob,quB;es;aNbrahMchika,gKkeJlija,nuIrGsDtBv0;ai,sB;uki;aBha0i6Fma4sac;ac,iaB;h,s;a,vinBw2;!g;k,nngu52;!r;nacBor;io;im;in,n;aJeFina4VoDuByd56;be25gBmber4CsD;h,o;m3ra33sBwa3X;se2;aDctCitCn4ErB;be20m0;or;th;bKlJmza,nIo,rDsCyB;a43d6;an,s0;lEo4FrDuBv7;hi40ki,tB;a,o;is1y;an,ey;k,s;!im;ib;aQeMiLlenKoIrEuB;illerCsB;!tavo;mo;aDegBov3;!g,orB;io,y;dy,h57nt;nzaBrd1;lo;!n;lbe4Qno,ovan4R;ne,oDrB;aBry;ld,rd4U;ffr7rge;bri4l6rBv2;la1Zr3Eth,y;aReNiLlJorr0IrB;anDedBitz;!dAeBri24;ri23;cDkB;!ie,lB;in,yn;esJisB;!co,zek;etch3oB;yd;d4lBonn;ip;deriDliCng,rnB;an01;pe,x;co;bi0di;arZdUfrTit0lNmGnFo2rCsteb0th0uge8vBym6zra;an,ere2V;gi,iCnBrol,v2w2;est45ie;c07k;och,rique,zo;aGerFiCmB;aFe2P;lCrB;!h0;!io;s1y;nu4;be09d1iEliDmCt1viBwood;n,s;er,o;ot1Ts;!as,j43sB;ha;a2en;!dAg32mEuCwB;a25in;arB;do;o0Su0S;l,nB;est;aYeOiLoErDuCwByl0;ay8ight;a8dl7nc0st2;ag0ew;minFnDri0ugCyB;le;!l03;!a29nBov0;e5ie,y;go,icB;!k;armuCeBll1on,rk;go;id;anIj0lbeHmetri9nFon,rEsDvCwBxt3;ay8ey;en,in;hawn,mo08;ek,ri0F;is,nBv3;is,y;rt;!dB;re;lKmInHrDvB;e,iB;!d;en,iDne5rByl;eBin,yl;l2Vn;n,o,us;!e,i4ny;iBon;an,en,on;e,lB;as;a06e04hWiar0lLoGrEuCyrB;il,us;rtB;!is;aBistobal;ig;dy,lEnCrB;ey,neli9y;or,rB;ad;by,e,in,l2t1;aGeDiByI;fBnt;fo0Ct1;meCt9velaB;nd;nt;rDuCyB;!t1;de;enB;ce;aFeErisCuB;ck;!tB;i0oph3;st3;d,rlBs;eBie;s,y;cBdric,s11;il;lEmer1rB;ey,lCro5y;ll;!os,t1;eb,v2;ar02eUilTlaSoPrCuByr1;ddy,rtI;aJeEiDuCyB;an,ce,on;ce,no;an,ce;nCtB;!t;dCtB;!on;an,on;dCndB;en,on;!foBl7y;rd;bCrByd;is;!by;i8ke;al,lA;nFrBshoi;at,nCtB;!r10;aBie;rd0S;!edict,iCjam2nA;ie,y;to;n7rBt;eBy;tt;ey;ar0Xb0Nd0Jgust2hm0Gid6ja0ElZmXnPputsiOrFsaEuCveBya0ziz;ry;gust9st2;us;hi;aIchHi4jun,maFnDon,tBy0;hBu06;ur;av,oB;ld;an,nd0A;el;ie;ta;aq;dGgel05tB;hoEoB;i8nB;!i02y;ne;ny;reBy;!as,s,w;ir,mBos;ar;an,beOd6eIfFi,lEonDphonHt1vB;aMin;on;so,zo;an,en;onCrB;edP;so;c,jaEksandDssaExB;!and3;er;ar,er;ndB;ro;rtH;ni;en;ad,eB;d,t;in;aColfBri0vik;!o;mBn;!a;dFeEraCuB;!bakr,lfazl;hBm;am;!l;allEel,oulaye,ulB;!lCrahm0;an;ah,o;ah;av,on",Person:"true¦ashton kutchSbRcMdKeIgastNhGinez,jEkDleCmBnettJoAp8r4s3t2v0;a0irgin maG;lentino rossi,n go3;heresa may,iger woods,yra banks;addam hussain,carlett johanssJlobodan milosevic,uB;ay romano,eese witherspoIo1ush limbau0;gh;d stewart,nald0;inho,o;a0ipJ;lmIris hiltD;prah winfrFra;essiaen,itt romnEubarek;bron james,e;anye west,iefer sutherland,obe bryant;aime,effers8k rowli0;ng;alle ber0itlBulk hogan;ry;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0ruz;on;dinal wols1son0;! palm2;ey;arack obama,rock;er",Verb:"true¦awak9born,cannot,fr8g7h5k3le2m1s0wors9;e8h3;ake sure,sg;ngth6ss6;eep tabs,n0;own;as0e2;!t2;iv1onna;ight0;en",PhrasalVerb:"true¦0:72;1:6Q;2:7E;3:74;4:6J;5:7H;6:76;7:6P;8:6C;9:6D;A:5I;B:71;C:70;a7Hb63c5Dd5Ae58f46g3Oh38iron0j34k2Zl2Km2Bn29o27p1Pr1Es09tQuOvacuum 1wGyammerCzD;eroAip EonD;e0k0;by,up;aJeGhFiEorDrit53;d 1k2R;mp0n4Ape0r8s8;eel Bip 7L;aEiD;gh 06rd0;n Br 3D;it 5Kk8lk6rm 0Qsh 74t67v4P;rgeCsD;e 9herA;aRePhNiJoHrFuDype 0N;ckArn D;d2in,o3Gup;ade YiDot0y 28;ckle68p 7A;ne67p Ds4D;d2o6Lup;ck FdEe Dgh5Tme0p o0Dre0;aw3ba4d2in,up;e5Ky 1;by,o6V;ink Drow 5V;ba4ov7up;aDe 4Ill4O;m 1r W;ckCke Elk D;ov7u4O;aDba4d2in,o31up;ba4ft7p4Tw3;a0Gc0Fe09h05i02lYmXnWoVpSquare RtJuHwD;earFiD;ngEtch D;aw3ba4o6P; by;ck Dit 1m 1ss0;in,up;aIe0RiHoFrD;aigh1MiD;ke 5Yn2Y;p Drm1P;by,in,o6B;n2Zr 1tc3I;c2Ymp0nd Dr6Hve6y 1;ba4d2up;d2o67up;ar2Vell0ill4UlErDurC;ingCuc8;a33it 3U;be4Crt0;ap 4Eow B;ash 4Zoke0;eep EiDow 9;c3Np 1;in,oD;ff,v7;gn Eng2Zt Dz8;d2o5up;in,o5up;aFoDu4F;ot Dut0w 5X;aw3ba4f37o5R;c2FdeAk4Sve6;e Hll0nd GtD; Dtl43;d2in,o5upD;!on;aw3ba4d2in,o1Yup;o5to;al4Lout0rap4L;il6v8;at0eKiJoGuD;b 4Ele0n Dstl8;aDba4d2in53o3Gt30u3E;c1Xw3;ot EuD;g2Knd6;a1Xf2Ro5;ng 4Op6;aDel6inAnt0;c4Yd D;o2Tu0C;aQePiOlMoKrHsyc2AuD;ll Ft D;aDba4d2in,o1Ht34up;p39w3;ap38d2in,o5t32up;attleCess EiGoD;p 1;ah1Hon;iDp 53re3Mur45wer 53;nt0;ay3ZuD;gAmp 9;ck 53g0leCn 9p3W;el 47ncilA;c3Pir 2In0ss FtEy D;ba4o4R; d2c1Y;aw3ba4o12;pDw3K;e3Jt B;arrow3Terd0oD;d6te3S;aJeHiGoEuD;ddl8ll37;c17p 1uth6ve D;al3Bd2in,o5up;ss0x 1;asur8lt 9ss D;a1Aup;ke Dn 9r30s1Lx0;do,o3Yup;aPeNiIoDuck0;a17c37g GoDse0;k Dse35;aft7ba4d2forw2Bin3Wov7uD;nd7p;in,o0J;e GghtFnEsDv1T;ten 4D;e 1k 1; 1e2Y;ar43d2;av1Ht 2YvelD; o3L;p 1sh DtchCugh6y1U;in3Lo5;eEick6nock D;d2o3H;eDyA;l2Hp D;aw3ba4d2fSin,o05to,up;aFoEuD;ic8mpA;ke2St2W;c31zz 1;aPeKiHoEuD;nker2Ts0U;lDneArse2O;d De 1;ba4d2fast,oZup;de Et D;ba4on,up;aw3o5;aDlp0;d Fl22r Dt 1;fDof;rom;in,oRu1A;cZm 1nDve it,ze1Y;d Dg 27kerF;d2in,o5;aReLive Jloss1VoFrEunD; f0M;in39ow 23; Dof 0U;aEb17it,oDr35t0Ou12;ff,n,v7;bo5ft7hJw3;aw3ba4d2in,oDup,w3;ff,n,ut;a17ek0t D;aEb11d2oDr2Zup;ff,n,ut,v7;cEhDl1Pr2Xt,w3;ead;ross;d aEnD;g 1;bo5;a08e01iRlNoJrFuD;cDel 1;k 1;eEighten DownCy 1;aw3o2L;eDshe1G; 1z8;lFol D;aDwi19;bo5r2I;d 9;aEeDip0;sh0;g 9ke0mDrD;e 2K;gLlJnHrFsEzzD;le0;h 2H;e Dm 1;aw3ba4up;d0isD;h 1;e Dl 11;aw3fI;ht ba4ure0;eInEsD;s 1;cFd D;fDo1X;or;e B;dQl 1;cHll Drm0t0O;apYbFd2in,oEtD;hrough;ff,ut,v7;a4ehi1S;e E;at0dge0nd Dy8;o1Mup;o09rD;ess 9op D;aw3bNin,o15;aShPlean 9oDross But 0T;me FoEuntD; o1M;k 1l6;aJbIforGin,oFtEuD;nd7;ogeth7;ut,v7;th,wD;ard;a4y;pDr19w3;art;eDipA;ck BeD;r 1;lJncel0rGsFtch EveA; in;o16up;h Bt6;ry EvD;e V;aw3o12;l Dm02;aDba4d2o10up;r0Vw3;a0He08l01oSrHuD;bbleFcklTilZlEndlTrn 05tDy 10zz6;t B;k 9; ov7;anMeaKiDush6;ghHng D;aEba4d2forDin,o5up;th;bo5lDr0Lw3;ong;teD;n 1;k D;d2in,o5up;ch0;arKgJil 9n8oGssFttlEunce Dx B;aw3ba4;e 9; ar0B;k Bt 1;e 1;d2up; d2;d 1;aIeed0oDurt0;cFw D;aw3ba4d2o5up;ck;k D;in,oK;ck0nk0st6; oJaGef 1nd D;d2ov7up;er;up;r0t D;d2in,oDup;ff,ut;ff,nD;to;ck Jil0nFrgEsD;h B;ainCe B;g BkC; on;in,o5; o5;aw3d2o5up;ay;cMdIsk Fuction6; oD;ff;arDo5;ouD;nd;d D;d2oDup;ff,n;own;t D;o5up;ut",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to;ay,ight,ust;an,o0;uld",Adjective:"true¦0:73;1:7I;2:7O;3:7H;4:7A;5:5B;6:4R;7:49;8:48;9:60;A:7F;a6Eb60c5Md52e4Pf45g3Xh3Mi31j2Zk2Yl2Nm2Cn23o1Np16quack,r0Ws0Ct05uMvJwByear5;arp0eFholeEiDoB;man5oBu67;d69zy;despr6Zs5B;!sa7;eClBste22;co1El o4H;!k5;aCiBola47;b7Nce versa,ol50;ca2gabo5Ynilla;ltSnFpCrb55su4tterB;!mo6U; f30b1KpCsBti1D;ca7et,ide dItairs;er,i3J;aLbeco6Lconvin23deIeHfair,ivers4knGprecedUrEsCwB;iel1Writt5U;i1RuB;pervis0specti3;eBu5;cognHgul6Bl6B;own;ndi3v5Oxpect0;cid0rB;!grou5JsB;iz0tood;b7ppeaHssu6AuthorB;iz0;i20ra;aFeDhough4KoCrB;i1oubl0;geth6p,rp6B;en5LlBm4Vrr2Q;li3;boo,lBn;ent0;aTcSeQhPiNmug,nobbi3AoLpKqueami3AtFuBymb5Y;bDi gener50pBrprisi3;erBre0H;! dup6b,i25;du0seq4P;anda6OeEi0LrBy34;aightBip0; fBfB;or56;adfa5Wreotyp0;a4Uec2Cir1Flend5Wot on; call0le,mb6phist1TrBu0Tvi3X;d5Ury;gnifica2nB;ce4Qg7;am2Le6ocki3ut;cBda1em5lfi2Uni1Spa63re8;o1Cr3R;at53ient24reec53;cr0me,ns serif;aIeEiCoB;bu5Ktt4PuOy4;ghtBv4;!-25f9;ar,bel,condi1du5Xfres4XlDpublic3RsBtard0;is43oB;lu1na2;e1Auc41;b5EciB;al,st;aMeKicayu8lac5Copuli5BrCuB;bl54mp0;eFiCoB;!b06fu5Cmi2Xp6;mCor,sBva1;ti8;a4Re;ci58mB;a0EiB;er,um;ac1WrBti1;feAma2Pplexi3v2Z;rBst;allelDtB;-tiBi4;me;!ed;bMffKkJld fashion0nIpHrg1Dth6utGvB;al,erB;!aDniCt,wB;eiBrouB;ght;ll;do0Rer,g2Hsi41;en,posi1; boa5Ag2Fli8;!ay; gua58bBli8;eat;eDsB;cBer0Dole1;e8u3F;d2Ose;ak0eIiHoBua4J;nFrCtB;ab7;thB;!eB;rn;chala2descri4Ustop;ght5;arby,cessa3Sighbor5xt;aJeHiEoBultip7;bi7derClBnth5ot,st;dy;a1n;nBx0;iaBor;tu2Y;di49naBre;ci3;cBgenta,in,jZkeshift,le,mmoth,ny,sculi8;ab2Uho;aKeFiCoBu0Z;uti0Yvi3;mCteraB;l,te;it0;ftEgBth4;al,eCitiB;ma1;nda38;!-08;ngu3Lst,tt6;ap1Oind5no06;agg0uB;niKstifi0veni7;de4gno46lleg4mOnDpso 1RrB;a1releB;va2; JaIbr0corHdFfluenPiPnEsDtB;aAen3GoxB;ic31;a8i2N;a1er,oce2;iCoB;or;reA;deq3Eppr2T;fBsitu,vitro;ro2;mFpB;arDerfeAoBrop6;li1rtB;a2ed;ti4;eBi0M;d2Ln30;aGelFiDoBumdr36;ne2Uok0rrBs03ur5;if2N;ghfalut1KspB;an2L;liVpf9;lEnDrB;d01roB;wi3;dy,gi3;f,low0;ainf9ener2Eiga1YlHoGraDuB;ilBng ho;ty;cCtB;ef9is;ef9;ne,od;ea28ob4;aQeKinJlIoDrB;a1PeBoz1G;e28q0Ytf9;oDrB; keeps,eBm6tuna1;g00ign;liB;sh;ag2Uue2;al,i1;dFmCrB;ti7;a7ini8;ne;le; up;bl0i2l20r Cux,voB;ri1uri1;oBreac1A;ff;aJfficie2lImiHnFreAthere4veExB;aAcess,pe1JtraCuB;be2Gl0D;!va19;n,ryday; Bcouragi3ti0M;rou1sui1;ne2;abo1YdMe14i1;g6sB;t,ygB;oi3;er;aReJiDoBrea11ue;mina2ne,ubB;le,tf9;dact16fficu1JsCvB;er1F;creDeas0gruntl0hone1AordCtB;a2ress0;er5;et; HadpGfFgene1KliDrang0spe1KtCvoB;ut;ail0ermin0;be1Hca1ghB;tf9;ia2;an;facto;i5magBngeroVs0E;ed,i3;ly;ertaNhief,ivil,oDrB;aBowd0u0D;mp0vYz0;loJmHnCoi3rrBve0K;eAu1D;cre1grEsDtB;emBra0B;po09;ta2;ue2;mer04pleB;te,x;ni4ss4;in;aLeHizarGlFoCrB;and new,isk,okL;gCna fiSttom,urgeoB;is;us;ank,iE;re;autif9hiClov0nBst,yoC;eRt;nd;ul;ckCnkru0SrrB;en;!wards; priori,b0Ic0Fd05fra04g00hZlUma01ntiquTppQrKsIttracti02utheHvEwB;aCkB;wa0P;ke,re;ant garCerB;age;de;ntQ;leep,tonisB;hi3;ab,bitEroDtiB;fiB;ci4;ga2;raB;ry;are2etiLrB;oprB;ia1;at0;arEcohCeBiIl,oof;rt;olB;ic;mi3;ead;ainDgressiConiB;zi3;ve;st;id; IeGuFvB;aCerB;se;nc0;ed;lt;pt,qB;ua1;hoc,infinitB;um;cuCtu4u1;al;ra1;erLlKoIruHsCuB;nda2;e2oCtraA;ct;lu1rbi3;ng;te;pt;aBve;rd;aze,e;ra2;nt",Comparable:"true¦0:3Z;1:4G;2:43;3:2W;4:49;5:3V;a4Mb42c3Md3Be33f2Pg2Dh22i1Tj1Sk1Pl1Hm1Bn15o13p0Tqu0Rr0IsRtKuIvFw7y6za11;ell25ou4;aBe9hi1Wi7r6;o4y;ck0Mde,l6n1ry,se;d,y;a6i4Kt;k,ry;n1Rr6sI;m,y;a7e6ulgar;nge5rda2xi4;gue,in,st;g0n6pco3Kse5;like0ti1;aAen9hi8i7ough,r6;anqu2Oen1ue;dy,g3Sme0ny,r09;ck,n,rs2P;d40se;ll,me,rt,s6wd45;te5;aVcarUeThRiQkin0FlMmKoHpGqua1FtAu7w6;eet,ift;b7dd13per0Gr6;e,re2H;sta2Ft3;aAe9iff,r7u6;pXr1;a6ict,o4;ig3Fn0U;a1ep,rn;le,rk;e22i3Fright0;ci28ft,l7o6re,ur;n,thi4;emn,id;a6el0ooth;ll,rt;e8i6ow,y;ck,g35m6;!y;ek,nd3D;ck,l0mp3;a6iTort,rill,y;dy,ll0Xrp;cu0Rve0Rxy;ce,ed,y;d,fe,int0l1Vv14;aBe9i8o6ude;mantic,o1Isy,u6;gh,nd;ch,pe,tzy;a6d,mo0H;dy,l;gg7ndom,p6re,w;id;ed;ai2i6;ck,et;aEhoDi1QlCoBr8u6;ny,r6;e,p3;egna2ic7o6;fouYud;ey,k0;li04or,te1B;ain,easa2;ny;in5le;dd,f6i0ld,ranQ;fi10;aAe8i7o6;b3isy,rm15sy;ce,mb3;a6w;r,t;ive,rr01;aAe8ild,o7u6;nda19te;ist,o1;a6ek,llX;n,s0ty;d,tuQ;aBeAi9o6ucky;f0Un7o1Du6ve0w17y0T;d,sy;e0g;g1Tke0tt3ve0;an,wd;me,r6te;ge;e7i6;nd;en;ol0ui1P;cy,ll,n6;sBt6;e6ima8;llege2r6;es7media6;te;ti4;ecu6ta2;re;aEeBiAo8u6;ge,m6ng1R;b3id;ll6me0t;ow;gh,l0;a6f04sita2;dy,v6;en0y;nd1Hppy,r6te5;d,sh;aGenFhDiClBoofy,r6;a9e8is0o6ue1E;o6ss;vy;at,en,y;nd,y;ad,ib,ooI;a2d1;a6o6;st0;t3uiY;u1y;aIeeb3iDlat,oAr8u6;ll,n6r14;!ny;aHe6iend0;e,sh;a7r6ul;get5mG;my;erce8n6rm,t;an6e;ciC;! ;le;ir,ke,n0Fr,st,t,ulA;aAerie,mp9sse7v6xtre0Q;il;nti6;al;ty;r7s6;tern,y;ly,th0;aFeCi9r7u6;ll,mb;u6y;nk;r7vi6;ne;e,ty;a6ep,nD;d6f,r;!ly;mp,pp03rk;aHhDlAo8r7u6;dd0r0te;isp,uel;ar6ld,mmon,ol,st0ward0zy;se;e6ou1;a6vW;n,r;ar8e6il0;ap,e6;sy;mi4;gey,lm8r6;e5i4;ful;!i4;aNiLlIoEr8u6;r0sy;ly;aAi7o6;ad,wn;ef,g7llia2;nt;ht;sh,ve;ld,r7un6;cy;ed,i4;ng;a7o6ue;nd,o1;ck,nd;g,tt6;er;d,ld,w1;dy;bsu9ng8we6;so6;me;ry;rd",TextValue:"true¦bOeJfDhundredNmOninAone,qu8s6t0zeroN;enMh3rNw0;e0o;l0ntD;fHve;ir0ousandKree;d,t6;e0ix8;cond,pt1ven7xt1;adr0int0;illionD;e0th;!t0;e9ie8y;i3o0;rt1ur0;!t2;ie4y;ft0rst,ve;e3h,ie2y;ight0lev2;!e1h,ie0y;th;en0;!th;illion0;!s,th",Ordinal:"true¦bGeDf9hundredHmGnin7qu6s4t0zeroH;enGh1rFwe0;lfFn9;ir0ousandE;d,t4;e0ixt9;cond,ptAvent8xtA;adr9int9;et0th;e6ie8;i2o0;r0urt3;tie5;ft1rst;ight0lev1;e0h,ie2;en1;illion0;th",Cardinal:"true¦bHeEf8hundred,mHnineAone,qu6s4t0zero;en,h2rGw0;e0o;lve,n8;irt9ousandEree;e0ix5;pt1ven4xt1;adr0int0;illion;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illion0;!s",Expression:"true¦a02b01dXeVfuck,gShLlImHnGoDpBshAtsk,u7voi04w3y0;a1eLu0;ck,p;!a,hoo,y;h1ow,t0;af,f;e0oa;e,w;gh,h0;! 0h,m;huh,oh;eesh,hh,it;ff,hew,l0sst;ease,z;h1o0w,y;h,o,ps;!h;ah,ope;eh,mm;m1ol0;!s;ao,fao;a4e2i,mm,oly1urr0;ah;! mo6;e,ll0y;!o;ha0i;!ha;ah,ee,o0rr;l0odbye;ly;e0h,t cetera,ww;k,p;'oh,a0uh;m0ng;mit,n0;!it;ah,oo,ye; 1h0rgh;!em;la",Adverb:"true¦a07by 05d01eYfShQinPjustOkinda,mMnJoEpCquite,r9s5t2up1very,w0Bye0;p,s; to,wards5;h1o0wiO;o,t6ward;en,us;everal,o0uch;!me1rt0; of;hXtimes,w07;a1e0;alS;ndomRthN;ar excellDer0oint blank; Mhaps;f3n0;ce0ly;! 0;ag00moU; courHten;ewJo0; longEt 0;onHwithstanding;aybe,eanwhiAore0;!ovB;! aboS;deed,steT;en0;ce;or2u0;l9rther0;!moH; 0ev3;examp0good,suF;le;n mas1v0;er;se;e0irect1; 1finite0;ly;ju7trop;far,n0;ow; CbroBd nauseam,gAl5ny2part,side,t 0w3;be5l0mo5wor5;arge,ea4;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori",Preposition:"true¦'o,-,aKbHcGdFexcept,fEinDmidPnotwithstandiQoBpRqua,sAt6u3vi2w0;/o,hereMith0;!in,oQ;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oI;ans,ince,o that;',f0n1ut;!f;!to;or,rom;espite,own,u3;hez,irca;ar1e0oAy;low,sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut",Determiner:"true¦aAboth,d8e5few,l3mu7neiCown,plenty,some,th2various,wh0;at0ich0;evB;at,e3is,ose;a,e0;!ast,s;a1i6l0nough,very;!se;ch;e0u;!s;!n0;!o0y;th0;er"},gt=["Person","Place","Organization"],ft={Noun:{notA:["Verb","Adjective","Adverb"]},Singular:{isA:"Noun",notA:"Plural"},ProperNoun:{isA:"Noun"},Person:{isA:["ProperNoun","Singular"],notA:["Place","Organization","Date"]},FirstName:{isA:"Person"},MaleName:{isA:"FirstName",notA:["FemaleName","LastName"]},FemaleName:{isA:"FirstName",notA:["MaleName","LastName"]},LastName:{isA:"Person",notA:["FirstName"]},NickName:{isA:"Person",notA:["FirstName","LastName"]},Honorific:{isA:"Noun",notA:["FirstName","LastName","Value"]},Place:{isA:"Singular",notA:["Person","Organization"]},Country:{isA:["Place","ProperNoun"],notA:["City"]},City:{isA:["Place","ProperNoun"],notA:["Country"]},Region:{isA:["Place","ProperNoun"]},Address:{isA:"Place"},Organization:{isA:["Singular","ProperNoun"],notA:["Person","Place"]},SportsTeam:{isA:"Organization"},School:{isA:"Organization"},Company:{isA:"Organization"},Plural:{isA:"Noun",notA:["Singular"]},Uncountable:{isA:"Noun"},Pronoun:{isA:"Noun",notA:gt},Actor:{isA:"Noun",notA:gt},Activity:{isA:"Noun",notA:["Person","Place"]},Unit:{isA:"Noun",notA:gt},Demonym:{isA:["Noun","ProperNoun"],notA:gt},Possessive:{isA:"Noun"}},mt={Verb:{notA:["Noun","Adjective","Adverb","Value"]},PresentTense:{isA:"Verb",notA:["PastTense","Copula","FutureTense"]},Infinitive:{isA:"PresentTense",notA:["PastTense","Gerund"]},Gerund:{isA:"PresentTense",notA:["PastTense","Copula","FutureTense"]},PastTense:{isA:"Verb",notA:["FutureTense"]},FutureTense:{isA:"Verb"},Copula:{isA:"Verb"},Modal:{isA:"Verb",notA:["Infinitive"]},PerfectTense:{isA:"Verb",notA:"Gerund"},Pluperfect:{isA:"Verb"},Participle:{isA:"Verb"},PhrasalVerb:{isA:"Verb"},Particle:{isA:"PhrasalVerb"}},vt={Value:{notA:["Verb","Adjective","Adverb"]},Ordinal:{isA:"Value",notA:["Cardinal"]},Cardinal:{isA:"Value",notA:["Ordinal"]},RomanNumeral:{isA:"Cardinal",notA:["Ordinal","TextValue"]},TextValue:{isA:"Value",notA:["NumericValue"]},NumericValue:{isA:"Value",notA:["TextValue"]},Money:{isA:"Cardinal"},Percent:{isA:"Value"}},bt=["Noun","Verb","Adjective","Adverb","Value","QuestionWord"],yt={Adjective:{notA:["Noun","Verb","Adverb","Value"]},Comparable:{isA:["Adjective"]},Comparative:{isA:["Adjective"]},Superlative:{isA:["Adjective"],notA:["Comparative"]},NumberRange:{isA:["Contraction"]},Adverb:{notA:["Noun","Verb","Adjective","Value"]},Date:{notA:["Verb","Conjunction","Adverb","Preposition","Adjective"]},Month:{isA:["Date","Singular"],notA:["Year","WeekDay","Time"]},WeekDay:{isA:["Date","Noun"]},Time:{isA:["Date"],notA:["Value"]},Determiner:{notA:bt},Conjunction:{notA:bt},Preposition:{notA:bt},QuestionWord:{notA:["Determiner"]},Currency:{},Expression:{notA:["Noun","Adjective","Verb","Adverb"]},Abbreviation:{},Url:{notA:["HashTag","PhoneNumber","Verb","Adjective","Value","AtMention","Email"]},PhoneNumber:{notA:["HashTag","Verb","Adjective","Value","AtMention","Email"]},HashTag:{},AtMention:{isA:["Noun"],notA:["HashTag","Verb","Adjective","Value","Email"]},Emoji:{notA:["HashTag","Verb","Adjective","Value","AtMention"]},Emoticon:{notA:["HashTag","Verb","Adjective","Value","AtMention"]},Email:{notA:["HashTag","Verb","Adjective","Value","AtMention"]},Auxiliary:{notA:["Noun","Adjective","Value"]},Acronym:{notA:["Plural","RomanNumeral"]},Negative:{notA:["Noun","Adjective","Value"]},Condition:{notA:["Verb","Adjective","Noun","Value"]}},wt={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"},kt=function(e){return Object.keys(e).forEach((function(t){e[t].color?e[t].color=e[t].color:wt[t]?e[t].color=wt[t]:e[t].isA.some((function(r){return!!wt[r]&&(e[t].color=wt[r],!0)}))})),e},At=function(e){return Object.keys(e).forEach((function(t){for(var r=e[t],n=r.isA.length,a=0;a=0;i--,a*=36){var o=e.charCodeAt(i)-48;o>10&&(o-=7),t+=o*a}return t},Et=function(e,t,r){var n=xt(t);return n1&&(r.hasCompound[i[0]]=!0),"Singular"===t){var o=a.toPlural(e,r);n[o]=n[o]||"Plural"}if("Infinitive"===t)for(var s=a.conjugate(e,r),u=Object.keys(s),l=0;l0&&void 0!==arguments[0]?arguments[0]:"",t=e[e.length-1];if(!0===qt.hasOwnProperty(t))for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1?arguments[1]:void 0,r={};return t&&t.irregulars&&!0===t.irregulars.verbs.hasOwnProperty(e)&&(r=Object.assign({},t.irregulars.verbs[e])),void 0===(r=Object.assign({},Wt(e),r)).Gerund&&(r.Gerund=Qt.Gerund(e)),void 0===r.PastTense&&(r.PastTense=Qt.PastTense(e)),void 0===r.PresentTense&&(r.PresentTense=Qt.PresentTense(e)),r},Xt=[/ght$/,/nge$/,/ough$/,/ain$/,/uel$/,/[au]ll$/,/ow$/,/oud$/,/...p$/],Yt=[/ary$/],er={nice:"nicest",late:"latest",hard:"hardest",inner:"innermost",outer:"outermost",far:"furthest",worse:"worst",bad:"worst",good:"best",big:"biggest",large:"largest"},tr=[{reg:/y$/i,repl:"iest"},{reg:/([aeiou])t$/i,repl:"$1ttest"},{reg:/([aeou])de$/i,repl:"$1dest"},{reg:/nge$/i,repl:"ngest"},{reg:/([aeiou])te$/i,repl:"$1test"}],rr=[/ght$/,/nge$/,/ough$/,/ain$/,/uel$/,/[au]ll$/,/ow$/,/old$/,/oud$/,/e[ae]p$/],nr=[/ary$/,/ous$/],ar={grey:"greyer",gray:"grayer",green:"greener",yellow:"yellower",red:"redder",good:"better",well:"better",bad:"worse",sad:"sadder",big:"bigger"},ir=[{reg:/y$/i,repl:"ier"},{reg:/([aeiou])t$/i,repl:"$1tter"},{reg:/([aeou])de$/i,repl:"$1der"},{reg:/nge$/i,repl:"nger"}],or={toSuperlative:function(e){if(er.hasOwnProperty(e))return er[e];for(var t=0;t0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1?arguments[1]:void 0,r=t.irregulars.nouns;if(r.hasOwnProperty(e))return r[e];var n=cr(e);return null!==n?n:lr.test(e)?e+"es":e+"s"},dr=[[/([^v])ies$/i,"$1y"],[/ises$/i,"isis"],[/(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"],[/(eas)es$/i,"$1e"],[/(..[aeiou]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/(x|ch|ss|sh|z|o)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"],[/([m|l])ice$/i,"$1ouse"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ics)$/i,"$1"],[/s$/i,""]],pr=function(e,t){var r,n=t.irregulars.nouns,a=(r=n,Object.keys(r).reduce((function(e,t){return e[r[t]]=t,e}),{}));if(a.hasOwnProperty(e))return a[e];for(var i=0;i1?a[i]&&"."!==a[i]&&r.tag(a[i],n,t.world):r.tag(e,n,t.world)}))}))},Dr={tag:function(e,t){return e?(Cr(e,this,!1,t),this):this},tagSafe:function(e,t){return e?(Cr(e,this,!0,t),this):this},unTag:function(e,t){var r=this;return this.list.forEach((function(n){n.terms().forEach((function(n){return n.unTag(e,t,r.world)}))})),this},canBe:function(e){if(!e)return this;var t=this.world,r=this.list.reduce((function(r,n){return r.concat(n.canBe(e,t))}),[]);return this.buildFrom(r)}},jr={map:function(t){var r=this;if(!t)return this;var n=this.list.map((function(e,n){var a=r.buildFrom([e]);a.from=null;var i=t(a,n);return i&&i.list&&i.list[0]?i.list[0]:i}));return 0===(n=n.filter((function(e){return e}))).length?this.buildFrom(n):"object"!==e(n[0])||"Phrase"!==n[0].isA?n:this.buildFrom(n)},forEach:function(e,t){var r=this;return e?(this.list.forEach((function(n,a){var i=r.buildFrom([n]);!0===t&&(i.from=null),e(i,a)})),this):this},filter:function(e){var t=this;if(!e)return this;var r=this.list.filter((function(r,n){var a=t.buildFrom([r]);return a.from=null,e(a,n)}));return this.buildFrom(r)},find:function(e){var t=this;if(!e)return this;var r=this.list.find((function(r,n){var a=t.buildFrom([r]);return a.from=null,e(a,n)}));return r?this.buildFrom([r]):void 0},some:function(e){var t=this;return e?this.list.some((function(r,n){var a=t.buildFrom([r]);return a.from=null,e(a,n)})):this},random:function(e){if(!this.found)return this;var t=Math.floor(Math.random()*this.list.length);if(void 0===e){var r=[this.list[t]];return this.buildFrom(r)}return t+e>this.length&&(t=(t=this.length-e)<0?0:t),this.slice(t,t+e)}},xr=function(e){return e.split(/[ -]/g)},Er=function(e,t,r){for(var n=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r={};return e.forEach((function(e,n){var a=!0;void 0!==t[n]&&(a=t[n]),e=(e=(e||"").toLowerCase()).replace(/[,;.!?]+$/,"");var i=xr(e).map((function(e){return e.trim()}));r[i[0]]=r[i[0]]||{},1===i.length?r[i[0]].value=a:(r[i[0]].more=r[i[0]].more||[],r[i[0]].more.push({rest:i.slice(1),value:a}))})),r}(e,t),a=[],i=function(e){for(var t=r.list[e],i=t.terms().map((function(e){return e.reduced})),o=function(e){void 0!==n[i[e]]&&(void 0!==n[i[e]].more&&n[i[e]].more.forEach((function(r){void 0!==i[e+r.rest.length]&&(!0===r.rest.every((function(t,r){return t===i[e+r+1]}))&&a.push({id:t.terms()[e].id,value:r.value,length:r.rest.length+1}))})),void 0!==n[i[e]].value&&a.push({id:t.terms()[e].id,value:n[i[e]].value,length:1}))},s=0;s1&&void 0!==arguments[1]?arguments[1]:{};return t?(!0===n&&(n={keepTags:!0}),!1===n&&(n={keepTags:!1}),n=n||{},this.uncache(),this.list.forEach((function(a){var i,o=t;if("function"==typeof t&&(o=t(a)),o&&"object"===e(o)&&"Doc"===o.isA)i=o.list,r.pool().merge(o.pool());else{if("string"!=typeof o)return;!1!==n.keepCase&&a.terms(0).isTitleCase()&&(o=Or(o)),i=ht(o,r.world,r.pool());var s=r.buildFrom(i);s.tagger(),i=s.list}if(!0===n.keepTags){var u=a.json({terms:{tags:!0}}).terms;i[0].terms().forEach((function(e,t){u[t]&&e.tagSafe(u[t].tags,"keptTag",r.world)}))}a.replace(i[0],r)})),this):this.delete()},replace:function(e,t,r){return void 0===t?this.replaceWith(e,r):(this.match(e).replaceWith(t,r),this)}},Tr=E((function(e,t){t.append=function(e){var t=this;return e?(this.uncache(),this.list.forEach((function(r){var n=ht(e,t.world,t.pool())[0];t.buildFrom([n]).tagger(),r.append(n,t)})),this):this},t.insertAfter=t.append,t.insertAt=t.append,t.prepend=function(e){var t=this;return e?(this.uncache(),this.list.forEach((function(r){var n=ht(e,t.world,t.pool())[0];t.buildFrom([n]).tagger(),r.prepend(n,t)})),this):this},t.insertBefore=t.prepend,t.concat=function(){this.uncache();for(var e=this.list.slice(0),t=0;t0&&void 0!==arguments[0]?arguments[0]:{};if("number"==typeof t&&this.list[t])return this.list[t].json(r);!0===(t=n(t)).root&&this.list.forEach((function(t){t.terms().forEach((function(t){null===t.root&&t.setRoot(e.world)}))}));var a=this.list.map((function(r){return r.json(t,e.world)}));if((t.terms.offset||t.offset||t.terms.index||t.index)&&Ir(this,a,t),t.frequency||t.freq||t.count){var i={};this.list.forEach((function(e){var t=e.text("reduced");i[t]=i[t]||0,i[t]+=1})),this.list.forEach((function(e,t){a[t].count=i[e.text("reduced")]}))}if(t.unique){var o={};a=a.filter((function(e){return!0!==o[e.reduced]&&(o[e.reduced]=!0,!0)}))}return a},t.data=t.json})),Sr=E((function(e){var t=function(e,t){for(e=e.toString();e.lengtht.count?-1:e.countn?1:0},length:function(e,t){var r=e.text().trim().length,n=t.text().trim().length;return rn?-1:0},wordCount:function(e,t){var r=e.wordCount(),n=t.wordCount();return rn?-1:0}};Jr.alphabetical=Jr.alpha,Jr.wordcount=Jr.wordCount;var qr={index:!0,sequence:!0,seq:!0,sequential:!0,chron:!0,chronological:!0},Kr={sort:function(e){return"freq"===(e=e||"alpha")||"frequency"===e||"topk"===e?(r={},n={case:!0,punctuation:!1,whitespace:!0,unicode:!0},(t=this).list.forEach((function(e){var t=e.text(n);r[t]=r[t]||0,r[t]+=1})),t.list.sort((function(e,t){var a=r[e.text(n)],i=r[t.text(n)];return ai?-1:0})),t):qr.hasOwnProperty(e)?function(e){var t={};return e.json({terms:{offset:!0}}).forEach((function(e){t[e.terms[0].id]=e.terms[0].offset.start})),e.list=e.list.sort((function(e,r){return t[e.start]>t[r.start]?1:t[e.start]0){a+=o;continue}}if(void 0===r[i]||!0!==r.hasOwnProperty(i))if(i===e[a].reduced||!0!==r.hasOwnProperty(e[a].reduced)){if(!0===hn.test(i)){var s=i.replace(hn,"");!0===r.hasOwnProperty(s)&&e[a].tag(r[s],"noprefix-lexicon",t)}}else e[a].tag(r[e[a].reduced],"lexicon",t);else e[a].tag(r[i],"lexicon",t)}return e},gn=/[\'‘’‛‵′`´]$/,fn=/^(m|k|cm|km|m)\/(s|h|hr)$/,mn=[[/^[\w\.]+@[\w\.]+\.[a-z]{2,3}$/,"Email"],[/^#[a-z0-9_\u00C0-\u00FF]{2,}$/,"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^(https?:\/\/|www\.)\w+\.[a-z]{2,3}/,"Url"],[/^[\w./]+\.(com|net|gov|org|ly|edu|info|biz|ru|jp|de|in|uk|br)/,"Url"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/,"Time"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/,"Time"],[/^[PMCE]ST$/,"Time"],[/^utc ?[+-]?[0-9]+?$/,"Time"],[/^[a-z0-9]*? o\'?clock$/,"Time"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date"],[/^[0-9]{1,4}\/[0-9]{1,2}\/[0-9]{1,4}$/,"Date"],[/^ma?c\'.*/,"LastName"],[/^o\'[drlkn].*/,"LastName"],[/^ma?cd[aeiou]/,"LastName"],[/^(lol)+[sz]$/,"Expression"],[/^woo+a*?h?$/,"Expression"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber"],[/^[-+]?[\$\xA2-\xA5\u058F\u060B\u09F2\u09F3\u09FB\u0AF1\u0BF9\u0E3F\u17DB\u20A0-\u20BD\uA838\uFDFC\uFE69\uFF04\uFFE0\uFFE1\uFFE5\uFFE6][-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(k|m|b|bn)?\+?$/,["Money","Value"]],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?[\$\xA2-\xA5\u058F\u060B\u09F2\u09F3\u09FB\u0AF1\u0BF9\u0E3F\u17DB\u20A0-\u20BD\uA838\uFDFC\uFE69\uFF04\uFFE0\uFFE1\uFFE5\uFFE6]\+?$/,["Money","Value"]],[/^[-+]?[0-9]([0-9,.])+?(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"]],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"]],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|th)$/,["Ordinal","NumericValue"]],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"]],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"]],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"]],[/^[0-9]{1,4}\/[0-9]{1,4}$/,"Fraction"],[/^[0-9.]{1,2}[-–][0-9]{1,2}$/,["Value","NumberRange"]],[/^[0-9.]{1,4}(st|nd|rd|th)?[-–][0-9\.]{1,4}(st|nd|rd|th)?$/,"NumberRange"],[/^[0-9.]+([a-z]{1,4})$/,"Value"]],vn=/^[IVXLCDM]{2,}$/,bn=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,yn="Adjective",wn="Infinitive",kn="PresentTense",An="Singular",$n="PastTense",Bn="Expression",Pn="LastName",Gn={a:[[/.[aeiou]na$/,"Noun"],[/.[oau][wvl]ska$/,Pn],[/.[^aeiou]ica$/,An],[/^([hyj]a)+$/,Bn]],c:[[/.[^aeiou]ic$/,yn]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,$n],[/.[aeo]{2}[bdgmnprvz]ed$/,$n],[/.[aeiou][sg]hed$/,$n],[/.[aeiou]red$/,$n],[/.[aeiou]r?ried$/,$n],[/.[bcdgtr]led$/,$n],[/.[aoui]f?led$/,$n],[/.[iao]sed$/,$n],[/[aeiou]n?[cs]ed$/,$n],[/[aeiou][rl]?[mnf]ed$/,$n],[/[aeiou][ns]?c?ked$/,$n],[/[aeiou][nl]?ged$/,$n],[/.[tdbwxz]ed$/,$n],[/[^aeiou][aeiou][tvx]ed$/,$n],[/.[cdlmnprstv]ied$/,$n],[/[^aeiou]ard$/,An],[/[aeiou][^aeiou]id$/,yn],[/.[vrl]id$/,yn]],e:[[/.[lnr]ize$/,wn],[/.[^aeiou]ise$/,wn],[/.[aeiou]te$/,wn],[/.[^aeiou][ai]ble$/,yn],[/.[^aeiou]eable$/,yn],[/.[ts]ive$/,yn]],h:[[/.[^aeiouf]ish$/,yn],[/.v[iy]ch$/,Pn],[/^ug?h+$/,Bn],[/^uh[ -]?oh$/,Bn]],i:[[/.[oau][wvl]ski$/,Pn]],k:[[/^(k){2}$/,Bn]],l:[[/.[gl]ial$/,yn],[/.[^aeiou]ful$/,yn],[/.[nrtumcd]al$/,yn],[/.[^aeiou][ei]al$/,yn]],m:[[/.[^aeiou]ium$/,An],[/[^aeiou]ism$/,An],[/^h*u*m+$/,Bn],[/^\d+ ?[ap]m$/,"Date"]],n:[[/.[lsrnpb]ian$/,yn],[/[^aeiou]ician$/,"Actor"],[/[aeiou][ktrp]in$/,"Gerund"]],o:[[/^no+$/,Bn],[/^(yo)+$/,Bn],[/^woo+[pt]?$/,Bn]],r:[[/.[bdfklmst]ler$/,"Noun"],[/.[ilk]er$/,"Comparative"],[/[aeiou][pns]er$/,An],[/[^i]fer$/,wn],[/.[^aeiou][ao]pher$/,"Actor"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,yn],[/[aeiou].*ist$/,yn],[/^[a-z]et$/,"Verb"]],s:[[/.[rln]ates$/,kn],[/.[^z]ens$/,"Verb"],[/.[lstrn]us$/,An],[/.[aeiou]sks$/,kn],[/.[aeiou]kes$/,kn],[/[aeiou][^aeiou]is$/,An],[/[a-z]\'s$/,"Noun"],[/^yes+$/,Bn]],v:[[/.[^aeiou][ai][kln]ov$/,Pn]],y:[[/.[cts]hy$/,yn],[/.[st]ty$/,yn],[/.[gk]y$/,yn],[/.[tnl]ary$/,yn],[/.[oe]ry$/,An],[/[rdntkbhs]ly$/,"Adverb"],[/...lly$/,"Adverb"],[/[bszmp]{2}y$/,yn],[/.(gg|bb|zz)ly$/,yn],[/.[aeiou]my$/,yn],[/[ea]{2}zy$/,yn],[/.[^aeiou]ity$/,An]]},Cn="Adjective",Dn="Infinitive",jn="PresentTense",xn="Singular",En="PastTense",Nn="Adverb",Fn="Plural",On="Verb",zn="LastName",Tn=[null,null,{ea:xn,ia:"Noun",ic:Cn,ly:Nn,"'n":On,"'t":On},{oed:En,ued:En,xed:En," so":Nn,"'ll":"Modal","'re":"Copula",azy:Cn,end:On,ped:En,ffy:Cn,ify:Dn,ing:"Gerund",ize:Dn,lar:Cn,mum:Cn,nes:jn,nny:Cn,oid:Cn,ous:Cn,que:Cn,rmy:Cn,rol:xn,sis:xn,zes:jn},{amed:En,aped:En,ched:En,lked:En,nded:En,cted:En,dged:En,akis:zn,cede:Dn,chuk:zn,czyk:zn,ects:jn,ends:On,enko:zn,ette:xn,fies:jn,fore:Nn,gate:Dn,gone:Cn,ices:Fn,ints:Fn,ions:Fn,less:Nn,llen:Cn,made:Cn,nsen:zn,oses:jn,ould:"Modal",some:Cn,sson:zn,tage:Dn,teen:"Value",tion:xn,tive:Cn,tors:"Noun",vice:xn},{tized:En,urned:En,eased:En,ances:Fn,bound:Cn,ettes:Fn,fully:Nn,ishes:jn,ities:Fn,marek:zn,nssen:zn,ology:"Noun",ports:Fn,rough:Cn,tches:jn,tieth:"Ordinal",tures:Fn,wards:Nn,where:Nn},{auskas:zn,keeper:"Actor",logist:"Actor",teenth:"Value"},{opoulos:zn,borough:"Place",sdottir:zn}],Hn={":(":!0,":)":!0,":P":!0,":p":!0,":O":!0,":3":!0,":|":!0,":/":!0,":\\":!0,":$":!0,":*":!0,":@":!0,":-(":!0,":-)":!0,":-P":!0,":-p":!0,":-O":!0,":-3":!0,":-|":!0,":-/":!0,":-\\":!0,":-$":!0,":-*":!0,":-@":!0,":^(":!0,":^)":!0,":^P":!0,":^p":!0,":^O":!0,":^3":!0,":^|":!0,":^/":!0,":^\\":!0,":^$":!0,":^*":!0,":^@":!0,"):":!0,"(:":!0,"$:":!0,"*:":!0,")-:":!0,"(-:":!0,"$-:":!0,"*-:":!0,")^:":!0,"(^:":!0,"$^:":!0,"*^:":!0,"<3":!0,"2){var a=n.clean[n.clean.length-2];if("s"===a)return void n.tag(["Possessive","Noun"],"end-tick",r);"n"===a&&n.tag(["Gerund"],"chillin",r)}fn.test(n.text)&&n.tag("Unit","per-sec",r)},regex:function(e,t){for(var r=e.text,n=0;n=2&&vn.test(r)&&bn.test(r)&&e.tag("RomanNumeral","xvii",t)},suffix:function(e,t){!function(e,t){var r=e.clean.length,n=7;r<=n&&(n=r-1);for(var a=n;a>1;a-=1){var i=e.clean.substr(r-a,r);if(!0===Tn[i.length].hasOwnProperty(i)){var o=Tn[i.length][i];e.tagSafe(o,"suffix -"+i,t);break}}}(e,t),function(e,t){var r=e.clean,n=r[r.length-1];if(!0===Gn.hasOwnProperty(n))for(var a=Gn[n],i=0;i35)))}(n=(n=n.trim()).replace(/[.!?,]$/,""))&&(e.tag("Emoji","comma-emoji",t),e.text=n,e.pre=e.pre.replace(":",""),e.post=e.post.replace(":","")),e.text.match(Vn)&&(e.tag("Emoji","unicode-emoji",t),e.text=n),!0===(r=(r=n).replace(/^[:;]/,":"),Hn.hasOwnProperty(r))&&(e.tag("Emoticon","emoticon-emoji",t),e.text=n)}},Mn=function(e,t){var r=e.world;In.lexicon(t,r);for(var n=0;n3&&void 0!==r[n]&&!0===r.hasOwnProperty(n)&&e.tag(r[n],"stem-"+n,t)}}))},Zn={isSingular:[/(ax|test)is$/i,/(octop|vir|radi|nucle|fung|cact|stimul)us$/i,/(octop|vir)i$/i,/(rl)f$/i,/(alias|status)$/i,/(bu)s$/i,/(al|ad|at|er|et|ed|ad)o$/i,/(ti)um$/i,/(ti)a$/i,/sis$/i,/(?:(^f)fe|(lr)f)$/i,/hive$/i,/s[aeiou]+ns$/i,/(^aeiouy|qu)y$/i,/(x|ch|ss|sh|z)$/i,/(matr|vert|ind|cort)(ix|ex)$/i,/(m|l)ouse$/i,/(m|l)ice$/i,/(antenn|formul|nebul|vertebr|vit)a$/i,/.sis$/i,/^(?!talis|.*hu)(.*)man$/i],isPlural:[/(^v)ies$/i,/ises$/i,/ives$/i,/(antenn|formul|nebul|vertebr|vit)ae$/i,/(octop|vir|radi|nucle|fung|cact|stimul)i$/i,/(buffal|tomat|tornad)oes$/i,/(analy|ba|diagno|parenthe|progno|synop|the)ses$/i,/(vert|ind|cort)ices$/i,/(matr|append)ices$/i,/(x|ch|ss|sh|s|z|o)es$/i,/is$/i,/men$/i,/news$/i,/.tia$/i,/(^f)ves$/i,/(lr)ves$/i,/(^aeiouy|qu)ies$/i,/(m|l)ice$/i,/(cris|ax|test)es$/i,/(alias|status)es$/i,/ics$/i]},Xn=["Uncountable","Pronoun","Place","Value","Person","Month","WeekDay","Holiday"],Yn=[/ss$/,/sis$/,/[^aeiou][uo]s$/,/'s$/],ea=[/i$/,/ae$/],ta=function(e,t){if(e.tags.Noun&&!e.tags.Acronym){var r=e.clean;if(e.tags.Singular||e.tags.Plural)return;if(r.length<=3)return void e.tag("Singular","short-singular",t);if(Xn.find((function(t){return e.tags[t]})))return;if(Zn.isPlural.find((function(e){return e.test(r)})))return void e.tag("Plural","plural-rules",t);if(Zn.isSingular.find((function(e){return e.test(r)})))return void e.tag("Singular","singular-rules",t);if(!0===/s$/.test(r)){if(Yn.find((function(e){return e.test(r)})))return;return void e.tag("Plural","plural-fallback",t)}if(ea.find((function(e){return e.test(r)})))return;e.tag("Singular","singular-fallback",t)}},ra=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","building society","bureau","cafe","caisse","capital","care","cathedral","center","central bank","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","daily news","data","departement","department","department store","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","evening news","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","health authority","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institute of technology","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","liberation army","limited","local authority","local health authority","machines","magazine","management","marine","marketing","markets","media","memorial","mercantile exchange","ministere","ministry","military","mobile","motor","motors","musee","museum","news","news service","observatory","office","oil","optical","orchestra","organization","partners","partnership","people's party","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","regional authority","regional health authority","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","social club","societe","society","sons","standard","state police","state university","stock exchange","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce((function(e,t){return e[t]="Noun",e}),{}),na=function(e){return!!e.tags.Noun&&(!(e.tags.Pronoun||e.tags.Comma||e.tags.Possessive)&&!!(e.tags.Organization||e.tags.Acronym||e.tags.Place||e.titleCase()))},aa=/^[A-Z]('s|,)?$/,ia=/([A-Z]\.){2}[A-Z]?/i,oa={I:!0,A:!0},sa={neighbours:Jn,case:Rn,stem:Qn,plural:ta,organizations:function(e,t){for(var r=0;r0?Ra=Ra.concat(t):Ra.push(e)})),Ra.forEach((function(e){var t,r,n;return e.required=(t=e.reg,r=[],n=[],t.forEach((function(e){!0!==e.optional&&!0!==e.negative&&(void 0!==e.tag&&r.push(e.tag),void 0!==e.word&&n.push(e.word))})),{tags:Fa(r),words:Fa(n)}),e}));var Wa=Ra,Ua=function(e){Wa.forEach((function(t){var r=[];t.required.words.forEach((function(t){r.push(e._cache.words[t]||[])})),t.required.tags.forEach((function(t){r.push(e._cache.tags[t]||[])}));var n=function(e){if(0===e.length)return[];var t={};e.forEach((function(e){e=Fa(e);for(var r=0;r5&&e.match("#Verb+").length>=2}));if(u.found){var l=u.splitAfter("#Noun .* #Verb .* #Noun+");n=n.splitOn(l.eq(0))}return"number"==typeof t&&(n=n.get(t)),new e(n.list,this,this.world)},e},ri=function(e){var r=function(e){a(i,e);var r=u(i);function i(e,n,a){var o;return t(this,i),(o=r.call(this,e,n,a)).contracted=null,o}return n(i,[{key:"expand",value:function(){return this.list.forEach((function(e){var t=e.terms(),r=t[0].isTitleCase();t.forEach((function(e,r){e.set(e.implicit||e.text),e.implicit=void 0,r0}}),Object.defineProperty(this,"length",{get:function(){return i.list.length}}),Object.defineProperty(this,"isA",{get:function(){return"Doc"}})}return n(e,[{key:"tagger",value:function(){return Za(this)}},{key:"pool",value:function(){return this.list.length>0?this.list[0].pool:this.all().list[0].pool}}]),e}();Fi.prototype.buildFrom=function(e){return e=e.map((function(e){return e.clone(!0)})),new Fi(e,this,this.world)},Fi.prototype.fromText=function(e){var t=ht(e,this.world,this.pool());return this.buildFrom(t)},Object.assign(Fi.prototype,Ni.misc),Object.assign(Fi.prototype,Ni.selections),Ei(Fi);var Oi={untag:"unTag",and:"match",notIf:"ifNo",only:"if",onlyIf:"if"};Object.keys(Oi).forEach((function(e){return Fi.prototype[e]=Fi.prototype[Oi[e]]}));var zi=Fi,Ti=function(e){var t=e.termList();return pn(t,e.world),e};return function e(t){var r=t,n=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1?arguments[1]:void 0;t&&r.addWords(t);var n=ht(e,r),a=new zi(n,null,r);return a.tagger(),a};return n.tokenize=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1?arguments[1]:void 0,n=r;t&&((n=n.clone()).words={},n.addWords(t));var a=ht(e,n),i=new zi(a,null,n);return t&&Ti(i),i},n.extend=function(e){return e(zi,r,this,_e,oe,qe),this},n.fromJSON=function(e){var t=dt(e,r);return new zi(t,null,r)},n.clone=function(){return e(r.clone())},n.verbose=function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return r.verbose(e),this},n.world=function(){return r},n.version="13.3.0",n.import=n.load,n}(new Ar)})); diff --git a/builds/compromise.mjs b/builds/compromise.mjs index f0b9d6cbb..1b8afad37 100644 --- a/builds/compromise.mjs +++ b/builds/compromise.mjs @@ -1,4 +1,4 @@ -/* compromise 13.2.0 MIT */ +/* compromise 13.3.0 MIT */ function _typeof(obj) { "@babel/helpers - typeof"; @@ -98,11 +98,13 @@ function _possibleConstructorReturn(self, call) { } function _createSuper(Derived) { - return function () { + var hasNativeReflectConstruct = _isNativeReflectConstruct(); + + return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; - if (_isNativeReflectConstruct()) { + if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); @@ -154,7 +156,7 @@ function _unsupportedIterableToArray(o, minLen) { if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; - if (n === "Map" || n === "Set") return Array.from(n); + if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } @@ -423,8 +425,18 @@ var parseTerm = function parseTerm(str) { var parse = parseTerm; -function createCommonjsModule(fn, module) { - return module = { exports: {} }, fn(module, module.exports), module.exports; +function createCommonjsModule(fn, basedir, module) { + return module = { + path: basedir, + exports: {}, + require: function (path, base) { + return commonjsRequire(path, (base === undefined || base === null) ? module.path : base); + } + }, fn(module, module.exports), module.exports; +} + +function commonjsRequire () { + throw new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs'); } var _01Case = createCommonjsModule(function (module, exports) { @@ -470,12 +482,6 @@ var _01Case = createCommonjsModule(function (module, exports) { exports.titleCase = exports.isTitleCase; }); -var _01Case_1 = _01Case.toUpperCase; -var _01Case_2 = _01Case.toLowerCase; -var _01Case_3 = _01Case.toTitleCase; -var _01Case_4 = _01Case.isUpperCase; -var _01Case_5 = _01Case.isTitleCase; -var _01Case_6 = _01Case.titleCase; var _02Punctuation = createCommonjsModule(function (module, exports) { // these methods are called with '@hasComma' in the match syntax @@ -575,21 +581,6 @@ var _02Punctuation = createCommonjsModule(function (module, exports) { return this; }; }); -var _02Punctuation_1 = _02Punctuation.hasPost; -var _02Punctuation_2 = _02Punctuation.hasPre; -var _02Punctuation_3 = _02Punctuation.hasQuote; -var _02Punctuation_4 = _02Punctuation.hasQuotation; -var _02Punctuation_5 = _02Punctuation.hasComma; -var _02Punctuation_6 = _02Punctuation.hasPeriod; -var _02Punctuation_7 = _02Punctuation.hasExclamation; -var _02Punctuation_8 = _02Punctuation.hasQuestionMark; -var _02Punctuation_9 = _02Punctuation.hasEllipses; -var _02Punctuation_10 = _02Punctuation.hasSemicolon; -var _02Punctuation_11 = _02Punctuation.hasSlash; -var _02Punctuation_12 = _02Punctuation.hasHyphen; -var _02Punctuation_13 = _02Punctuation.hasDash; -var _02Punctuation_14 = _02Punctuation.hasContraction; -var _02Punctuation_15 = _02Punctuation.addPunctuation; //declare it up here var wrapMatch = function wrapMatch() {}; @@ -3271,6 +3262,10 @@ var splitHyphens = function splitHyphens(word) { } return arr; +}; + +var isArray$2 = function isArray(arr) { + return Object.prototype.toString.call(arr) === '[object Array]'; }; //turn a string into an array of strings (naiive for now, lumped later) @@ -3284,6 +3279,10 @@ var splitWords = function splitWords(str) { str = String(str); } + if (isArray$2(str)) { + return str; + } + var words = str.split(naiiveSplit); for (var i = 0; i < words.length; i++) { @@ -3338,22 +3337,28 @@ var splitWords = function splitWords(str) { var _02Words = splitWords; +var isArray$3 = function isArray(arr) { + return Object.prototype.toString.call(arr) === '[object Array]'; +}; /** turn a string into an array of Phrase objects */ + var fromText = function fromText() { var text = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; var world = arguments.length > 1 ? arguments[1] : undefined; var pool = arguments.length > 2 ? arguments[2] : undefined; + var sentences = null; //a bit of validation, first - //a bit of validation, first if (typeof text !== 'string') { if (typeof text === 'number') { text = String(text); + } else if (isArray$3(text)) { + sentences = text; } } //tokenize into words - var sentences = _01Sentences(text, world); + sentences = sentences || _01Sentences(text, world); sentences = sentences.map(function (str) { return _02Words(str); }); //turn them into proper objects @@ -3418,7 +3423,7 @@ var fromJSON = function fromJSON(json, world) { var fromJSON_1 = fromJSON; -var _version = '13.2.0'; +var _version = '13.3.0'; var _data = { "Comparative": "true¦better", @@ -3457,16 +3462,16 @@ var _data = { "Date": "true¦t0weekend,yesterd2;mr2o0;d0morrow;ay;!w", "FirstName": "true¦aEblair,cCdevBj8k6lashawn,m3nelly,quinn,re2sh0;ay,e0iloh;a,lby;g1ne;ar1el,org0;an;ion,lo;as8e0r9;ls7nyatta,rry;am0ess1ude;ie,m0;ie;an,on;as0heyenne;ey,sidy;lex1ndra,ubr0;ey;is", "LastName": "true¦0:34;1:39;2:3B;3:2Y;4:2E;5:30;a3Bb31c2Od2Ee2Bf25g1Zh1Pi1Kj1Ek17l0Zm0Nn0Jo0Gp05rYsMtHvFwCxBy8zh6;a6ou,u;ng,o;a6eun2Uoshi1Kun;ma6ng;da,guc1Zmo27sh21zaR;iao,u;a7eb0il6o3right,u;li3Bs1;gn0lk0ng,tanabe;a6ivaldi;ssilj37zqu2;a9h8i2Go7r6sui,urn0;an,ynisJ;lst0Prr1Uth;at1Uomps1;kah0Vnaka,ylor;aEchDeChimizu,iBmiAo9t7u6zabo;ar2lliv2AzuE;a6ein0;l23rm0;sa,u3;rn4th;lva,mmo24ngh;mjon4rrano;midt,neid0ulz;ito,n7sa6to;ki;ch2dLtos,z;amBeag1Zi9o7u6;bio,iz,sD;b6dri1MgIj0Tme24osevelt,ssi,ux;erts,ins1;c6ve0F;ci,hards1;ir2os;aEeAh8ic6ow20;as6hl0;so;a6illips;m,n1T;ders5et8r7t6;e0Nr4;ez,ry;ers;h21rk0t6vl4;el,te0J;baBg0Blivei01r6;t6w1O;ega,iz;a6eils1guy5ix1owak,ym1E;gy,ka6var1K;ji6muW;ma;aEeCiBo8u6;ll0n6rr0Bssolini,ñ6;oz;lina,oKr6zart;al0Me6r0U;au,no;hhail4ll0;rci0ssi6y0;!er;eWmmad4r6tsu07;in6tin2;!o;aCe8i6op2uo;!n6u;coln,dholm;fe7n0Qr6w0J;oy;bv6v6;re;mmy,rs5u;aBennedy,imuAle0Lo8u7wo6;k,n;mar,znets4;bay6vacs;asY;ra;hn,rl9to,ur,zl4;aAen9ha3imen2o6u3;h6nYu3;an6ns1;ss1;ki0Es5;cks1nsse0D;glesi9ke8noue,shik7to,vano6;u,v;awa;da;as;aBe8itchcock,o7u6;!a3b0ghNynh;a3ffmann,rvat;mingw7nde6rN;rs1;ay;ns5rrQs7y6;asDes;an4hi6;moJ;a9il,o8r7u6;o,tierr2;ayli3ub0;m2nzal2;nd6o,rcia;hi;erAis9lor8o7uj6;ita;st0urni0;es;ch0;nand2;d7insteHsposi6vaL;to;is1wards;aCeBi9omin8u6;bo6rand;is;gu2;az,mitr4;ov;lgado,vi;nkula,rw7vi6;es,s;in;aFhBlarkAo6;h5l6op0rbyn,x;em7li6;ns;an;!e;an8e7iu,o6ristens5u3we;i,ng,u3w,y;!n,on6u3;!g;mpb7rt0st6;ro;ell;aBe8ha3lanco,oyko,r6yrne;ooks,yant;ng;ck7ethov5nnett;en;er,ham;ch,h8iley,rn6;es,i0;er;k,ng;dDl9nd6;ers6rA;en,on,s1;on;eks7iy8var2;ez;ej6;ev;ams", - "MaleName": "true¦0:CE;1:BL;2:C2;3:BT;4:B5;5:9V;6:BZ;7:AT;8:BD;9:AX;A:AO;aB4bA8c97d87e7Gf6Yg6Gh5Wi5Ij4Lk4Bl3Rm2Pn2Eo28p22qu20r1As0Qt06u05v00wNxavi3yGzB;aBor0;cBh8Ine;hCkB;!aB1;ar51eB0;ass2i,oCuB;sDu25;nEsDusB;oBsC;uf;ef;at0g;aJeHiCoByaAP;lfgang,odrow;lBn1O;bDey,frBJlB;aA5iB;am,e,s;e89ur;i,nde5sB;!l7t1;de,lCrr6yB;l1ne;lBt3;a93y;aEern1iB;cCha0nceBrg9Bva0;!nt;ente,t5A;lentin49n8Yughn;lyss4Msm0;aTeOhKiIoErCyB;!l3ro8s1;av9QeBist0oy,um0;nt9Iv54y;bDd7XmBny;!as,mBoharu;aAYie,y;i83y;mBt9;!my,othy;adDeoCia7DomB;!as;!do7M;!de9;dErB;en8HrB;an8GeBy;ll,n8F;!dy;dgh,ic9Tnn3req,ts45;aRcotPeNhJiHoFpenc3tBur1Oylve8Hzym1;anDeBua7B;f0phAFvBwa7A;e57ie;!islaw,l7;lom1nA3uB;leyma8ta;dBl7Jm1;!n7;aDeB;lBrm0;d1t1;h6Sne,qu0Uun,wn,y8;aBbasti0k1Xl41rg40th,ymo9I;m9n;!tB;!ie,y;lCmBnti21q4Iul;!mAu4;ik,vato6V;aWeShe92iOoFuCyB;an,ou;b6LdCf9pe6QssB;!elAI;ol2Uy;an,bIcHdGel,geFh0landA9mEnDry,sCyB;!ce;coe,s;!a95nA;an,eo;l3Jr;e4Qg3n7olfo,ri68;co,ky;bAe9U;cBl7;ar5Oc5NhCkBo;!ey,ie,y;a85ie;gCid,ub6x,yBza;ansh,nS;g8WiB;na8Ss;ch5Yfa4lDmCndBpha4sh6Uul,ymo70;al9Yol2By;i9Ion;f,ph;ent2inB;cy,t1;aFeDhilCier62ol,reB;st1;!ip,lip;d9Brcy,tB;ar,e2V;b3Sdra6Ft44ul;ctav2Vliv3m96rFsCtBum8Uw6;is,to;aCc8SvB;al52;ma;i,l49vJ;athJeHiDoB;aBel,l0ma0r2X;h,m;cCg4i3IkB;h6Uola;hol5XkBol5X;!ol5W;al,d,il,ls1vB;il50;anBy;!a4i4;aWeTiKoFuCyB;l21r1;hamCr5ZstaB;fa,p4G;ed,mF;dibo,e,hamDis1XntCsBussa;es,he;e,y;ad,ed,mB;ad,ed;cGgu4kElDnCtchB;!e5;a78ik;house,o03t1;e,olB;aj;ah,hBk7;a4eB;al,l;hClv2rB;le,ri5v2;di,met;ck,hNlLmOnu4rHs1tDuricCxB;!imilian8Cwe5;e,io;eo,hCi52tB;!eo,hew,ia;eBis;us,w;cDio,k86lCqu6Gsha5tBv2;i2Hy;in,on;!el,oKus;achBcolm,ik;ai,y;amBdi,moud;adB;ou;aReNiMlo2RoIuCyB;le,nd1;cEiDkBth3;aBe;!s;gi,s;as,iaB;no;g0nn6RrenDuBwe5;!iB;e,s;!zo;am,on4;a7Bevi,la4SnDoBst3vi;!nB;!a60el;!ny;mCnBr67ur4Twr4T;ce,d1;ar,o4N;aIeDhaled,iBrist4Vu48y3B;er0p,rB;by,k,ollos;en0iEnBrmit,v2;!dCnBt5C;e0Yy;a5ri4N;r,th;na68rBthem;im,l;aYeQiOoDuB;an,liBst2;an,o,us;aqu2eJhnInGrEsB;eChBi7Bue;!ua;!ph;dBge;an,i,on;!aBny;h,s,th4X;!ath4Wie,nA;!l,sBy;ph;an,e,mB;!mA;d,ffGrDsB;sBus;!e;a5JemCmai8oBry;me,ni0O;i6Uy;!e58rB;ey,y;cHd6kGmFrDsCvi3yB;!d6s1;on,p3;ed,od,rBv4M;e4Zod;al,es,is1;e,ob,ub;k,ob,quB;es;aNbrahMchika,gKkeJlija,nuIrGsDtBv0;ai,sB;uki;aBha0i6Fma4sac;ac,iaB;h,s;a,vinBw2;!g;k,nngu52;!r;nacBor;io;im;in,n;aJeFina4VoDuByd56;be25gBmber4CsD;h,o;m3ra33sBwa3X;se2;aDctCitCn4ErB;be20m0;or;th;bKlJmza,nIo,rDsCyB;a43d6;an,s0;lEo4FrDuBv7;hi40ki,tB;a,o;is1y;an,ey;k,s;!im;ib;aQeMiLlenKoIrEuB;illerCsB;!tavo;mo;aDegBov3;!g,orB;io,y;dy,h57nt;nzaBrd1;lo;!n;lbe4Qno,ovan4R;ne,oDrB;aBry;ld,rd4U;ffr7rge;bri4l6rBv2;la1Zr3Eth,y;aReNiLlJorr0IrB;anDedBitz;!dAeBri24;ri23;cDkB;!ie,lB;in,yn;esJisB;!co,zek;etch3oB;yd;d4lBonn;ip;deriDliCng,rnB;an01;pe,x;co;bi0di;arZdUfrTit0lNmGnFo2rCsteb0th0uge8vBym6zra;an,ere2V;gi,iCnBrol,v2w2;est45ie;c07k;och,rique,zo;aGerFiCmB;aFe2P;lCrB;!h0;!io;s1y;nu4;be09d1iEliDmCt1viBwood;n,s;er,o;ot1Ts;!as,j43sB;ha;a2en;!dAg32mEuCwB;a25in;arB;do;o0Su0S;l,nB;est;aYeOiLoErDuCwByl0;ay8ight;a8dl7nc0st2;ag0ew;minFnDri0ugCyB;le;!l03;!a29nBov0;e5ie,y;go,icB;!k;armuCeBll1on,rk;go;id;anIj0lbeHmetri9nFon,rEsDvCwBxt3;ay8ey;en,in;hawn,mo08;ek,ri0F;is,nBv3;is,y;rt;!dB;re;lKmInHrDvB;e,iB;!d;en,iDne5rByl;eBin,yl;l2Vn;n,o,us;!e,i4ny;iBon;an,en,on;e,lB;as;a06e04hWiar0lLoGrEuCyrB;il,us;rtB;!is;aBistobal;ig;dy,lEnCrB;ey,neli9y;or,rB;ad;by,e,in,l2t1;aGeDiByI;fBnt;fo0Ct1;meCt9velaB;nd;nt;rDuCyB;!t1;de;enB;ce;aFeErisCuB;ck;!tB;i0oph3;st3;d,rlBs;eBie;s,y;cBdric,s11;il;lEmer1rB;ey,lCro5y;ll;!os,t1;eb,v2;ar02eUilTlaSoPrCuByr1;ddy,rtI;aJeEiDuCyB;an,ce,on;ce,no;an,ce;nCtB;!t;dCtB;!on;an,on;dCndB;en,on;!foBl7y;rd;bCrByd;is;!by;i8ke;al,lA;nFrBshoi;at,nCtB;!r10;aBie;rd0S;!edict,iCjam2nA;ie,y;to;n7rBt;eBy;tt;ey;ar0Xb0Nd0Jgust2hm0Gid6ja0ElZmXnPputsiOrFsaEuCveBya0ziz;ry;gust9st2;us;hi;aIchHi4jun,maFnDon,tBy0;hBu06;ur;av,oB;ld;an,nd0A;el;ie;ta;aq;dGgel05tB;hoEoB;i8nB;!i02y;ne;ny;reBy;!as,s,w;ir,mBos;ar;an,beOd6eIfFi,lEonDphonHt1vB;aMin;on;so,zo;an,en;onCrB;edP;so;c,jaEksandDssaExB;!and3;er;ar,er;ndB;ro;rtH;ni;en;ad,eB;d,t;in;aColfBri0vik;!o;mBn;!a;dFeEraCuB;!bakr,lfazl;hBm;am;!l;allEel,oulaye,ulB;!lCrahm0;an;ah,o;ah;av,on", + "MaleName": "true¦0:CE;1:BL;2:C2;3:BT;4:B5;5:9V;6:BZ;7:AT;8:BD;9:AX;A:AO;aB4bA8c97d87e7Gf6Yg6Gh5Wi5Ij4Lk4Bl3Rm2Pn2Eo28p22qu20r1As0Qt06u05v00wNxavi3yGzB;aBor0;cBh8Ine;hCkB;!aB1;ar51eB0;ass2i,oCuB;sDu25;nEsDusB;oBsC;uf;ef;at0g;aJeHiCoByaAP;lfgang,odrow;lBn1O;bDey,frBJlB;aA5iB;am,e,s;e89ur;i,nde5sB;!l7t1;de,lCrr6yB;l1ne;lBt3;a93y;aEern1iB;cCha0kt5CnceBrg9Bva0;!nt;ente,t5A;lentin49n8Yughn;lyss4Msm0;aTeOhKiIoErCyB;!l3ro8s1;av9QeBist0oy,um0;nt9Iv54y;bDd7XmBny;!as,mBoharu;aAYie,y;i83y;mBt9;!my,othy;adDeoCia7DomB;!as;!do7M;!de9;dErB;en8HrB;an8GeBy;ll,n8F;!dy;dgh,ic9Tnn3req,ts45;aRcotPeNhJiHoFpenc3tBur1Oylve8Hzym1;anDeBua7B;f0phAFvBwa7A;e57ie;!islaw,l7;lom1nA3uB;leyma8ta;dBl7Jm1;!n7;aDeB;lBrm0;d1t1;h6Sne,qu0Uun,wn,y8;aBbasti0k1Xl41rg40th,ymo9I;m9n;!tB;!ie,y;lCmBnti21q4Iul;!mAu4;ik,vato6V;aWeShe92iOoFuCyB;an,ou;b6LdCf9pe6QssB;!elAI;ol2Uy;an,bIcHdGel,geFh0landA9mEnDry,sCyB;!ce;coe,s;!a95nA;an,eo;l3Jr;e4Qg3n7olfo,ri68;co,ky;bAe9U;cBl7;ar5Oc5NhCkBo;!ey,ie,y;a85ie;gCid,ub6x,yBza;ansh,nS;g8WiB;na8Ss;ch5Yfa4lDmCndBpha4sh6Uul,ymo70;al9Yol2By;i9Ion;f,ph;ent2inB;cy,t1;aFeDhilCier62ol,reB;st1;!ip,lip;d9Brcy,tB;ar,e2V;b3Sdra6Ft44ul;ctav2Vliv3m96rFsCtBum8Uw6;is,to;aCc8SvB;al52;ma;i,l49vJ;athJeHiDoB;aBel,l0ma0r2X;h,m;cCg4i3IkB;h6Uola;hol5XkBol5X;!ol5W;al,d,il,ls1vB;il50;anBy;!a4i4;aWeTiKoFuCyB;l21r1;hamCr5ZstaB;fa,p4G;ed,mF;dibo,e,hamDis1XntCsBussa;es,he;e,y;ad,ed,mB;ad,ed;cGgu4kElDnCtchB;!e5;a78ik;house,o03t1;e,olB;aj;ah,hBk7;a4eB;al,l;hClv2rB;le,ri5v2;di,met;ck,hNlLmOnu4rHs1tDuricCxB;!imilian8Cwe5;e,io;eo,hCi52tB;!eo,hew,ia;eBis;us,w;cDio,k86lCqu6Gsha5tBv2;i2Hy;in,on;!el,oKus;achBcolm,ik;ai,y;amBdi,moud;adB;ou;aReNiMlo2RoIuCyB;le,nd1;cEiDkBth3;aBe;!s;gi,s;as,iaB;no;g0nn6RrenDuBwe5;!iB;e,s;!zo;am,on4;a7Bevi,la4SnDoBst3vi;!nB;!a60el;!ny;mCnBr67ur4Twr4T;ce,d1;ar,o4N;aIeDhaled,iBrist4Vu48y3B;er0p,rB;by,k,ollos;en0iEnBrmit,v2;!dCnBt5C;e0Yy;a5ri4N;r,th;na68rBthem;im,l;aYeQiOoDuB;an,liBst2;an,o,us;aqu2eJhnInGrEsB;eChBi7Bue;!ua;!ph;dBge;an,i,on;!aBny;h,s,th4X;!ath4Wie,nA;!l,sBy;ph;an,e,mB;!mA;d,ffGrDsB;sBus;!e;a5JemCmai8oBry;me,ni0O;i6Uy;!e58rB;ey,y;cHd6kGmFrDsCvi3yB;!d6s1;on,p3;ed,od,rBv4M;e4Zod;al,es,is1;e,ob,ub;k,ob,quB;es;aNbrahMchika,gKkeJlija,nuIrGsDtBv0;ai,sB;uki;aBha0i6Fma4sac;ac,iaB;h,s;a,vinBw2;!g;k,nngu52;!r;nacBor;io;im;in,n;aJeFina4VoDuByd56;be25gBmber4CsD;h,o;m3ra33sBwa3X;se2;aDctCitCn4ErB;be20m0;or;th;bKlJmza,nIo,rDsCyB;a43d6;an,s0;lEo4FrDuBv7;hi40ki,tB;a,o;is1y;an,ey;k,s;!im;ib;aQeMiLlenKoIrEuB;illerCsB;!tavo;mo;aDegBov3;!g,orB;io,y;dy,h57nt;nzaBrd1;lo;!n;lbe4Qno,ovan4R;ne,oDrB;aBry;ld,rd4U;ffr7rge;bri4l6rBv2;la1Zr3Eth,y;aReNiLlJorr0IrB;anDedBitz;!dAeBri24;ri23;cDkB;!ie,lB;in,yn;esJisB;!co,zek;etch3oB;yd;d4lBonn;ip;deriDliCng,rnB;an01;pe,x;co;bi0di;arZdUfrTit0lNmGnFo2rCsteb0th0uge8vBym6zra;an,ere2V;gi,iCnBrol,v2w2;est45ie;c07k;och,rique,zo;aGerFiCmB;aFe2P;lCrB;!h0;!io;s1y;nu4;be09d1iEliDmCt1viBwood;n,s;er,o;ot1Ts;!as,j43sB;ha;a2en;!dAg32mEuCwB;a25in;arB;do;o0Su0S;l,nB;est;aYeOiLoErDuCwByl0;ay8ight;a8dl7nc0st2;ag0ew;minFnDri0ugCyB;le;!l03;!a29nBov0;e5ie,y;go,icB;!k;armuCeBll1on,rk;go;id;anIj0lbeHmetri9nFon,rEsDvCwBxt3;ay8ey;en,in;hawn,mo08;ek,ri0F;is,nBv3;is,y;rt;!dB;re;lKmInHrDvB;e,iB;!d;en,iDne5rByl;eBin,yl;l2Vn;n,o,us;!e,i4ny;iBon;an,en,on;e,lB;as;a06e04hWiar0lLoGrEuCyrB;il,us;rtB;!is;aBistobal;ig;dy,lEnCrB;ey,neli9y;or,rB;ad;by,e,in,l2t1;aGeDiByI;fBnt;fo0Ct1;meCt9velaB;nd;nt;rDuCyB;!t1;de;enB;ce;aFeErisCuB;ck;!tB;i0oph3;st3;d,rlBs;eBie;s,y;cBdric,s11;il;lEmer1rB;ey,lCro5y;ll;!os,t1;eb,v2;ar02eUilTlaSoPrCuByr1;ddy,rtI;aJeEiDuCyB;an,ce,on;ce,no;an,ce;nCtB;!t;dCtB;!on;an,on;dCndB;en,on;!foBl7y;rd;bCrByd;is;!by;i8ke;al,lA;nFrBshoi;at,nCtB;!r10;aBie;rd0S;!edict,iCjam2nA;ie,y;to;n7rBt;eBy;tt;ey;ar0Xb0Nd0Jgust2hm0Gid6ja0ElZmXnPputsiOrFsaEuCveBya0ziz;ry;gust9st2;us;hi;aIchHi4jun,maFnDon,tBy0;hBu06;ur;av,oB;ld;an,nd0A;el;ie;ta;aq;dGgel05tB;hoEoB;i8nB;!i02y;ne;ny;reBy;!as,s,w;ir,mBos;ar;an,beOd6eIfFi,lEonDphonHt1vB;aMin;on;so,zo;an,en;onCrB;edP;so;c,jaEksandDssaExB;!and3;er;ar,er;ndB;ro;rtH;ni;en;ad,eB;d,t;in;aColfBri0vik;!o;mBn;!a;dFeEraCuB;!bakr,lfazl;hBm;am;!l;allEel,oulaye,ulB;!lCrahm0;an;ah,o;ah;av,on", "Person": "true¦ashton kutchSbRcMdKeIgastNhGinez,jEkDleCmBnettJoAp8r4s3t2v0;a0irgin maG;lentino rossi,n go3;heresa may,iger woods,yra banks;addam hussain,carlett johanssJlobodan milosevic,uB;ay romano,eese witherspoIo1ush limbau0;gh;d stewart,nald0;inho,o;a0ipJ;lmIris hiltD;prah winfrFra;essiaen,itt romnEubarek;bron james,e;anye west,iefer sutherland,obe bryant;aime,effers8k rowli0;ng;alle ber0itlBulk hogan;ry;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0ruz;on;dinal wols1son0;! palm2;ey;arack obama,rock;er", "Verb": "true¦awak9born,cannot,fr8g7h5k3le2m1s0wors9;e8h3;ake sure,sg;ngth6ss6;eep tabs,n0;own;as0e2;!t2;iv1onna;ight0;en", "PhrasalVerb": "true¦0:72;1:6Q;2:7E;3:74;4:6J;5:7H;6:76;7:6P;8:6C;9:6D;A:5I;B:71;C:70;a7Hb63c5Dd5Ae58f46g3Oh38iron0j34k2Zl2Km2Bn29o27p1Pr1Es09tQuOvacuum 1wGyammerCzD;eroAip EonD;e0k0;by,up;aJeGhFiEorDrit53;d 1k2R;mp0n4Ape0r8s8;eel Bip 7L;aEiD;gh 06rd0;n Br 3D;it 5Kk8lk6rm 0Qsh 74t67v4P;rgeCsD;e 9herA;aRePhNiJoHrFuDype 0N;ckArn D;d2in,o3Gup;ade YiDot0y 28;ckle68p 7A;ne67p Ds4D;d2o6Lup;ck FdEe Dgh5Tme0p o0Dre0;aw3ba4d2in,up;e5Ky 1;by,o6V;ink Drow 5V;ba4ov7up;aDe 4Ill4O;m 1r W;ckCke Elk D;ov7u4O;aDba4d2in,o31up;ba4ft7p4Tw3;a0Gc0Fe09h05i02lYmXnWoVpSquare RtJuHwD;earFiD;ngEtch D;aw3ba4o6P; by;ck Dit 1m 1ss0;in,up;aIe0RiHoFrD;aigh1MiD;ke 5Yn2Y;p Drm1P;by,in,o6B;n2Zr 1tc3I;c2Ymp0nd Dr6Hve6y 1;ba4d2up;d2o67up;ar2Vell0ill4UlErDurC;ingCuc8;a33it 3U;be4Crt0;ap 4Eow B;ash 4Zoke0;eep EiDow 9;c3Np 1;in,oD;ff,v7;gn Eng2Zt Dz8;d2o5up;in,o5up;aFoDu4F;ot Dut0w 5X;aw3ba4f37o5R;c2FdeAk4Sve6;e Hll0nd GtD; Dtl43;d2in,o5upD;!on;aw3ba4d2in,o1Yup;o5to;al4Lout0rap4L;il6v8;at0eKiJoGuD;b 4Ele0n Dstl8;aDba4d2in53o3Gt30u3E;c1Xw3;ot EuD;g2Knd6;a1Xf2Ro5;ng 4Op6;aDel6inAnt0;c4Yd D;o2Tu0C;aQePiOlMoKrHsyc2AuD;ll Ft D;aDba4d2in,o1Ht34up;p39w3;ap38d2in,o5t32up;attleCess EiGoD;p 1;ah1Hon;iDp 53re3Mur45wer 53;nt0;ay3ZuD;gAmp 9;ck 53g0leCn 9p3W;el 47ncilA;c3Pir 2In0ss FtEy D;ba4o4R; d2c1Y;aw3ba4o12;pDw3K;e3Jt B;arrow3Terd0oD;d6te3S;aJeHiGoEuD;ddl8ll37;c17p 1uth6ve D;al3Bd2in,o5up;ss0x 1;asur8lt 9ss D;a1Aup;ke Dn 9r30s1Lx0;do,o3Yup;aPeNiIoDuck0;a17c37g GoDse0;k Dse35;aft7ba4d2forw2Bin3Wov7uD;nd7p;in,o0J;e GghtFnEsDv1T;ten 4D;e 1k 1; 1e2Y;ar43d2;av1Ht 2YvelD; o3L;p 1sh DtchCugh6y1U;in3Lo5;eEick6nock D;d2o3H;eDyA;l2Hp D;aw3ba4d2fSin,o05to,up;aFoEuD;ic8mpA;ke2St2W;c31zz 1;aPeKiHoEuD;nker2Ts0U;lDneArse2O;d De 1;ba4d2fast,oZup;de Et D;ba4on,up;aw3o5;aDlp0;d Fl22r Dt 1;fDof;rom;in,oRu1A;cZm 1nDve it,ze1Y;d Dg 27kerF;d2in,o5;aReLive Jloss1VoFrEunD; f0M;in39ow 23; Dof 0U;aEb17it,oDr35t0Ou12;ff,n,v7;bo5ft7hJw3;aw3ba4d2in,oDup,w3;ff,n,ut;a17ek0t D;aEb11d2oDr2Zup;ff,n,ut,v7;cEhDl1Pr2Xt,w3;ead;ross;d aEnD;g 1;bo5;a08e01iRlNoJrFuD;cDel 1;k 1;eEighten DownCy 1;aw3o2L;eDshe1G; 1z8;lFol D;aDwi19;bo5r2I;d 9;aEeDip0;sh0;g 9ke0mDrD;e 2K;gLlJnHrFsEzzD;le0;h 2H;e Dm 1;aw3ba4up;d0isD;h 1;e Dl 11;aw3fI;ht ba4ure0;eInEsD;s 1;cFd D;fDo1X;or;e B;dQl 1;cHll Drm0t0O;apYbFd2in,oEtD;hrough;ff,ut,v7;a4ehi1S;e E;at0dge0nd Dy8;o1Mup;o09rD;ess 9op D;aw3bNin,o15;aShPlean 9oDross But 0T;me FoEuntD; o1M;k 1l6;aJbIforGin,oFtEuD;nd7;ogeth7;ut,v7;th,wD;ard;a4y;pDr19w3;art;eDipA;ck BeD;r 1;lJncel0rGsFtch EveA; in;o16up;h Bt6;ry EvD;e V;aw3o12;l Dm02;aDba4d2o10up;r0Vw3;a0He08l01oSrHuD;bbleFcklTilZlEndlTrn 05tDy 10zz6;t B;k 9; ov7;anMeaKiDush6;ghHng D;aEba4d2forDin,o5up;th;bo5lDr0Lw3;ong;teD;n 1;k D;d2in,o5up;ch0;arKgJil 9n8oGssFttlEunce Dx B;aw3ba4;e 9; ar0B;k Bt 1;e 1;d2up; d2;d 1;aIeed0oDurt0;cFw D;aw3ba4d2o5up;ck;k D;in,oK;ck0nk0st6; oJaGef 1nd D;d2ov7up;er;up;r0t D;d2in,oDup;ff,ut;ff,nD;to;ck Jil0nFrgEsD;h B;ainCe B;g BkC; on;in,o5; o5;aw3d2o5up;ay;cMdIsk Fuction6; oD;ff;arDo5;ouD;nd;d D;d2oDup;ff,n;own;t D;o5up;ut", "Modal": "true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to;ay,ight,ust;an,o0;uld", "Adjective": "true¦0:73;1:7I;2:7O;3:7H;4:7A;5:5B;6:4R;7:49;8:48;9:60;A:7F;a6Eb60c5Md52e4Pf45g3Xh3Mi31j2Zk2Yl2Nm2Cn23o1Np16quack,r0Ws0Ct05uMvJwByear5;arp0eFholeEiDoB;man5oBu67;d69zy;despr6Zs5B;!sa7;eClBste22;co1El o4H;!k5;aCiBola47;b7Nce versa,ol50;ca2gabo5Ynilla;ltSnFpCrb55su4tterB;!mo6U; f30b1KpCsBti1D;ca7et,ide dItairs;er,i3J;aLbeco6Lconvin23deIeHfair,ivers4knGprecedUrEsCwB;iel1Writt5U;i1RuB;pervis0specti3;eBu5;cognHgul6Bl6B;own;ndi3v5Oxpect0;cid0rB;!grou5JsB;iz0tood;b7ppeaHssu6AuthorB;iz0;i20ra;aFeDhough4KoCrB;i1oubl0;geth6p,rp6B;en5LlBm4Vrr2Q;li3;boo,lBn;ent0;aTcSeQhPiNmug,nobbi3AoLpKqueami3AtFuBymb5Y;bDi gener50pBrprisi3;erBre0H;! dup6b,i25;du0seq4P;anda6OeEi0LrBy34;aightBip0; fBfB;or56;adfa5Wreotyp0;a4Uec2Cir1Flend5Wot on; call0le,mb6phist1TrBu0Tvi3X;d5Ury;gnifica2nB;ce4Qg7;am2Le6ocki3ut;cBda1em5lfi2Uni1Spa63re8;o1Cr3R;at53ient24reec53;cr0me,ns serif;aIeEiCoB;bu5Ktt4PuOy4;ghtBv4;!-25f9;ar,bel,condi1du5Xfres4XlDpublic3RsBtard0;is43oB;lu1na2;e1Auc41;b5EciB;al,st;aMeKicayu8lac5Copuli5BrCuB;bl54mp0;eFiCoB;!b06fu5Cmi2Xp6;mCor,sBva1;ti8;a4Re;ci58mB;a0EiB;er,um;ac1WrBti1;feAma2Pplexi3v2Z;rBst;allelDtB;-tiBi4;me;!ed;bMffKkJld fashion0nIpHrg1Dth6utGvB;al,erB;!aDniCt,wB;eiBrouB;ght;ll;do0Rer,g2Hsi41;en,posi1; boa5Ag2Fli8;!ay; gua58bBli8;eat;eDsB;cBer0Dole1;e8u3F;d2Ose;ak0eIiHoBua4J;nFrCtB;ab7;thB;!eB;rn;chala2descri4Ustop;ght5;arby,cessa3Sighbor5xt;aJeHiEoBultip7;bi7derClBnth5ot,st;dy;a1n;nBx0;iaBor;tu2Y;di49naBre;ci3;cBgenta,in,jZkeshift,le,mmoth,ny,sculi8;ab2Uho;aKeFiCoBu0Z;uti0Yvi3;mCteraB;l,te;it0;ftEgBth4;al,eCitiB;ma1;nda38;!-08;ngu3Lst,tt6;ap1Oind5no06;agg0uB;niKstifi0veni7;de4gno46lleg4mOnDpso 1RrB;a1releB;va2; JaIbr0corHdFfluenPiPnEsDtB;aAen3GoxB;ic31;a8i2N;a1er,oce2;iCoB;or;reA;deq3Eppr2T;fBsitu,vitro;ro2;mFpB;arDerfeAoBrop6;li1rtB;a2ed;ti4;eBi0M;d2Ln30;aGelFiDoBumdr36;ne2Uok0rrBs03ur5;if2N;ghfalut1KspB;an2L;liVpf9;lEnDrB;d01roB;wi3;dy,gi3;f,low0;ainf9ener2Eiga1YlHoGraDuB;ilBng ho;ty;cCtB;ef9is;ef9;ne,od;ea28ob4;aQeKinJlIoDrB;a1PeBoz1G;e28q0Ytf9;oDrB; keeps,eBm6tuna1;g00ign;liB;sh;ag2Uue2;al,i1;dFmCrB;ti7;a7ini8;ne;le; up;bl0i2l20r Cux,voB;ri1uri1;oBreac1A;ff;aJfficie2lImiHnFreAthere4veExB;aAcess,pe1JtraCuB;be2Gl0D;!va19;n,ryday; Bcouragi3ti0M;rou1sui1;ne2;abo1YdMe14i1;g6sB;t,ygB;oi3;er;aReJiDoBrea11ue;mina2ne,ubB;le,tf9;dact16fficu1JsCvB;er1F;creDeas0gruntl0hone1AordCtB;a2ress0;er5;et; HadpGfFgene1KliDrang0spe1KtCvoB;ut;ail0ermin0;be1Hca1ghB;tf9;ia2;an;facto;i5magBngeroVs0E;ed,i3;ly;ertaNhief,ivil,oDrB;aBowd0u0D;mp0vYz0;loJmHnCoi3rrBve0K;eAu1D;cre1grEsDtB;emBra0B;po09;ta2;ue2;mer04pleB;te,x;ni4ss4;in;aLeHizarGlFoCrB;and new,isk,okL;gCna fiSttom,urgeoB;is;us;ank,iE;re;autif9hiClov0nBst,yoC;eRt;nd;ul;ckCnkru0SrrB;en;!wards; priori,b0Ic0Fd05fra04g00hZlUma01ntiquTppQrKsIttracti02utheHvEwB;aCkB;wa0P;ke,re;ant garCerB;age;de;ntQ;leep,tonisB;hi3;ab,bitEroDtiB;fiB;ci4;ga2;raB;ry;are2etiLrB;oprB;ia1;at0;arEcohCeBiIl,oof;rt;olB;ic;mi3;ead;ainDgressiConiB;zi3;ve;st;id; IeGuFvB;aCerB;se;nc0;ed;lt;pt,qB;ua1;hoc,infinitB;um;cuCtu4u1;al;ra1;erLlKoIruHsCuB;nda2;e2oCtraA;ct;lu1rbi3;ng;te;pt;aBve;rd;aze,e;ra2;nt", "Comparable": "true¦0:3Z;1:4G;2:43;3:2W;4:49;5:3V;a4Mb42c3Md3Be33f2Pg2Dh22i1Tj1Sk1Pl1Hm1Bn15o13p0Tqu0Rr0IsRtKuIvFw7y6za11;ell25ou4;aBe9hi1Wi7r6;o4y;ck0Mde,l6n1ry,se;d,y;a6i4Kt;k,ry;n1Rr6sI;m,y;a7e6ulgar;nge5rda2xi4;gue,in,st;g0n6pco3Kse5;like0ti1;aAen9hi8i7ough,r6;anqu2Oen1ue;dy,g3Sme0ny,r09;ck,n,rs2P;d40se;ll,me,rt,s6wd45;te5;aVcarUeThRiQkin0FlMmKoHpGqua1FtAu7w6;eet,ift;b7dd13per0Gr6;e,re2H;sta2Ft3;aAe9iff,r7u6;pXr1;a6ict,o4;ig3Fn0U;a1ep,rn;le,rk;e22i3Fright0;ci28ft,l7o6re,ur;n,thi4;emn,id;a6el0ooth;ll,rt;e8i6ow,y;ck,g35m6;!y;ek,nd3D;ck,l0mp3;a6iTort,rill,y;dy,ll0Xrp;cu0Rve0Rxy;ce,ed,y;d,fe,int0l1Vv14;aBe9i8o6ude;mantic,o1Isy,u6;gh,nd;ch,pe,tzy;a6d,mo0H;dy,l;gg7ndom,p6re,w;id;ed;ai2i6;ck,et;aEhoDi1QlCoBr8u6;ny,r6;e,p3;egna2ic7o6;fouYud;ey,k0;li04or,te1B;ain,easa2;ny;in5le;dd,f6i0ld,ranQ;fi10;aAe8i7o6;b3isy,rm15sy;ce,mb3;a6w;r,t;ive,rr01;aAe8ild,o7u6;nda19te;ist,o1;a6ek,llX;n,s0ty;d,tuQ;aBeAi9o6ucky;f0Un7o1Du6ve0w17y0T;d,sy;e0g;g1Tke0tt3ve0;an,wd;me,r6te;ge;e7i6;nd;en;ol0ui1P;cy,ll,n6;sBt6;e6ima8;llege2r6;es7media6;te;ti4;ecu6ta2;re;aEeBiAo8u6;ge,m6ng1R;b3id;ll6me0t;ow;gh,l0;a6f04sita2;dy,v6;en0y;nd1Hppy,r6te5;d,sh;aGenFhDiClBoofy,r6;a9e8is0o6ue1E;o6ss;vy;at,en,y;nd,y;ad,ib,ooI;a2d1;a6o6;st0;t3uiY;u1y;aIeeb3iDlat,oAr8u6;ll,n6r14;!ny;aHe6iend0;e,sh;a7r6ul;get5mG;my;erce8n6rm,t;an6e;ciC;! ;le;ir,ke,n0Fr,st,t,ulA;aAerie,mp9sse7v6xtre0Q;il;nti6;al;ty;r7s6;tern,y;ly,th0;aFeCi9r7u6;ll,mb;u6y;nk;r7vi6;ne;e,ty;a6ep,nD;d6f,r;!ly;mp,pp03rk;aHhDlAo8r7u6;dd0r0te;isp,uel;ar6ld,mmon,ol,st0ward0zy;se;e6ou1;a6vW;n,r;ar8e6il0;ap,e6;sy;mi4;gey,lm8r6;e5i4;ful;!i4;aNiLlIoEr8u6;r0sy;ly;aAi7o6;ad,wn;ef,g7llia2;nt;ht;sh,ve;ld,r7un6;cy;ed,i4;ng;a7o6ue;nd,o1;ck,nd;g,tt6;er;d,ld,w1;dy;bsu9ng8we6;so6;me;ry;rd", - "TextValue": "true¦bMeIfChundredNmMnin9one,qu8s6t0zeroN;enMh3rLw0;e0o;l0ntC;fGve;ir0ousandIree;d,t5;e0ix7;cond,ptEven6xtE;adrDintD;e0th;!t0;e9ie8y;i3o0;rt1ur0;!t2;ie4y;ft0rst,ve;e3h,ie2y;ight0lev2;!e1h,ie0y;th;en1;illion0;!th", + "TextValue": "true¦bOeJfDhundredNmOninAone,qu8s6t0zeroN;enMh3rNw0;e0o;l0ntD;fHve;ir0ousandKree;d,t6;e0ix8;cond,pt1ven7xt1;adr0int0;illionD;e0th;!t0;e9ie8y;i3o0;rt1ur0;!t2;ie4y;ft0rst,ve;e3h,ie2y;ight0lev2;!e1h,ie0y;th;en0;!th;illion0;!s,th", "Ordinal": "true¦bGeDf9hundredHmGnin7qu6s4t0zeroH;enGh1rFwe0;lfFn9;ir0ousandE;d,t4;e0ixt9;cond,ptAvent8xtA;adr9int9;et0th;e6ie8;i2o0;r0urt3;tie5;ft1rst;ight0lev1;e0h,ie2;en1;illion0;th", - "Cardinal": "true¦bGeDf7hundred,mGnine9one,qu6s4t0zero;en,h2rFw0;e0o;lve,n7;irt8ousand,ree;e0ix4;ptAven3xtA;adr9int9;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illion", + "Cardinal": "true¦bHeEf8hundred,mHnineAone,qu6s4t0zero;en,h2rGw0;e0o;lve,n8;irt9ousandEree;e0ix5;pt1ven4xt1;adr0int0;illion;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illion0;!s", "Expression": "true¦a02b01dXeVfuck,gShLlImHnGoDpBshAtsk,u7voi04w3y0;a1eLu0;ck,p;!a,hoo,y;h1ow,t0;af,f;e0oa;e,w;gh,h0;! 0h,m;huh,oh;eesh,hh,it;ff,hew,l0sst;ease,z;h1o0w,y;h,o,ps;!h;ah,ope;eh,mm;m1ol0;!s;ao,fao;a4e2i,mm,oly1urr0;ah;! mo6;e,ll0y;!o;ha0i;!ha;ah,ee,o0rr;l0odbye;ly;e0h,t cetera,ww;k,p;'oh,a0uh;m0ng;mit,n0;!it;ah,oo,ye; 1h0rgh;!em;la", "Adverb": "true¦a07by 05d01eYfShQinPjustOkinda,mMnJoEpCquite,r9s5t2up1very,w0Bye0;p,s; to,wards5;h1o0wiO;o,t6ward;en,us;everal,o0uch;!me1rt0; of;hXtimes,w07;a1e0;alS;ndomRthN;ar excellDer0oint blank; Mhaps;f3n0;ce0ly;! 0;ag00moU; courHten;ewJo0; longEt 0;onHwithstanding;aybe,eanwhiAore0;!ovB;! aboS;deed,steT;en0;ce;or2u0;l9rther0;!moH; 0ev3;examp0good,suF;le;n mas1v0;er;se;e0irect1; 1finite0;ly;ju7trop;far,n0;ow; CbroBd nauseam,gAl5ny2part,side,t 0w3;be5l0mo5wor5;arge,ea4;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori", "Preposition": "true¦'o,-,aKbHcGdFexcept,fEinDmidPnotwithstandiQoBpRqua,sAt6u3vi2w0;/o,hereMith0;!in,oQ;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oI;ans,ince,o that;',f0n1ut;!f;!to;or,rom;espite,own,u3;hez,irca;ar1e0oAy;low,sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut", @@ -4536,6 +4541,7 @@ var conjugations = { pst: 'ate' }, edit: { + pst: '_ed', g: '_ing' }, egg: { @@ -5753,7 +5759,7 @@ var rules = { to: '$1e' }, { //cing : bouncing, denouncing - reg: /(c)ing$/i, + reg: /(c|s)ing$/i, //dp to: '$1e' }, // { @@ -5820,6 +5826,9 @@ var rules = { }, { reg: /(us)ed$/i, to: '$1e' + }, { + reg: /(dd)ed$/i, + to: '$1' }, { reg: /(..[^aeiouy])ed$/i, to: '$1e' @@ -5918,6 +5927,7 @@ var toInfinitive = function toInfinitive(str, world, tense) { var rule = _transform[tense][_i]; if (rule.reg.test(str) === true) { + // console.log(rule.reg) return str.replace(rule.reg, rule.to); } } @@ -6191,12 +6201,6 @@ var _01Utils$1 = createCommonjsModule(function (module, exports) { // this.world.verbose = bool // } }); -var _01Utils_1 = _01Utils$1.all; -var _01Utils_2 = _01Utils$1.parent; -var _01Utils_3 = _01Utils$1.parents; -var _01Utils_4 = _01Utils$1.clone; -var _01Utils_5 = _01Utils$1.wordCount; -var _01Utils_6 = _01Utils$1.wordcount; var _02Accessors = createCommonjsModule(function (module, exports) { /** use only the first result(s) */ @@ -6366,20 +6370,6 @@ var _02Accessors = createCommonjsModule(function (module, exports) { exports.sentence = exports.sentences; }); -var _02Accessors_1 = _02Accessors.first; -var _02Accessors_2 = _02Accessors.last; -var _02Accessors_3 = _02Accessors.slice; -var _02Accessors_4 = _02Accessors.eq; -var _02Accessors_5 = _02Accessors.get; -var _02Accessors_6 = _02Accessors.firstTerms; -var _02Accessors_7 = _02Accessors.firstTerm; -var _02Accessors_8 = _02Accessors.lastTerms; -var _02Accessors_9 = _02Accessors.lastTerm; -var _02Accessors_10 = _02Accessors.termList; -var _02Accessors_11 = _02Accessors.groups; -var _02Accessors_12 = _02Accessors.group; -var _02Accessors_13 = _02Accessors.sentences; -var _02Accessors_14 = _02Accessors.sentence; // cache the easier conditions up-front var cacheRequired = function cacheRequired(reg) { @@ -6642,19 +6632,6 @@ var _03Match = createCommonjsModule(function (module, exports) { }); }; }); -var _03Match_1 = _03Match.match; -var _03Match_2 = _03Match.not; -var _03Match_3 = _03Match.matchOne; -var _03Match_4 = _03Match.ifNo; -var _03Match_5 = _03Match.has; -var _03Match_6 = _03Match.lookAhead; -var _03Match_7 = _03Match.lookAfter; -var _03Match_8 = _03Match.lookBehind; -var _03Match_9 = _03Match.lookBefore; -var _03Match_10 = _03Match.before; -var _03Match_11 = _03Match.after; -var _03Match_12 = _03Match.hasAfter; -var _03Match_13 = _03Match.hasBefore; /** apply a tag, or tags to all terms */ var tagTerms = function tagTerms(tag, doc, safe, reason) { @@ -7074,8 +7051,6 @@ var _06Lookup = createCommonjsModule(function (module, exports) { exports.lookUp = exports.lookup; }); -var _06Lookup_1 = _06Lookup.lookup; -var _06Lookup_2 = _06Lookup.lookUp; /** freeze the current state of the document, for speed-purposes*/ var cache$1 = function cache(options) { @@ -7333,13 +7308,6 @@ var _02Insert = createCommonjsModule(function (module, exports) { exports.remove = exports["delete"]; }); -var _02Insert_1 = _02Insert.append; -var _02Insert_2 = _02Insert.insertAfter; -var _02Insert_3 = _02Insert.insertAt; -var _02Insert_4 = _02Insert.prepend; -var _02Insert_5 = _02Insert.insertBefore; -var _02Insert_6 = _02Insert.concat; -var _02Insert_7 = _02Insert.remove; var shouldTrim = { clean: true, @@ -7534,8 +7502,6 @@ var _02Json = createCommonjsModule(function (module, exports) { exports.data = exports.json; }); -var _02Json_1 = _02Json.json; -var _02Json_2 = _02Json.data; var _debug = createCommonjsModule(function (module) { // https://stackoverflow.com/questions/9781218/how-to-change-node-jss-console-font-color @@ -8352,11 +8318,6 @@ var _03Split = createCommonjsModule(function (module, exports) { }); }; }); -var _03Split_1 = _03Split.splitOn; -var _03Split_2 = _03Split.splitAfter; -var _03Split_3 = _03Split.split; -var _03Split_4 = _03Split.splitBefore; -var _03Split_5 = _03Split.segment; var eachTerm = function eachTerm(doc, fn) { var world = doc.world; @@ -8532,15 +8493,6 @@ var _05Whitespace = createCommonjsModule(function (module, exports) { return this; }; }); -var _05Whitespace_1 = _05Whitespace.pre; -var _05Whitespace_2 = _05Whitespace.post; -var _05Whitespace_3 = _05Whitespace.trim; -var _05Whitespace_4 = _05Whitespace.hyphenate; -var _05Whitespace_5 = _05Whitespace.dehyphenate; -var _05Whitespace_6 = _05Whitespace.deHyphenate; -var _05Whitespace_7 = _05Whitespace.toQuotations; -var _05Whitespace_8 = _05Whitespace.toQuotation; -var _05Whitespace_9 = _05Whitespace.toParentheses; /** make all phrases into one phrase */ var join = function join(str) { @@ -8916,7 +8868,7 @@ var _02Punctuation$1 = checkPunctuation; //these are regexes applied to t.text, instead of t.clean // order matters. var startsWith = [//web tags -[/^\w+@\w+\.[a-z]{2,3}$/, 'Email'], //not fancy +[/^[\w\.]+@[\w\.]+\.[a-z]{2,3}$/, 'Email'], //not fancy [/^#[a-z0-9_\u00C0-\u00FF]{2,}$/, 'HashTag'], [/^@\w{2,}$/, 'AtMention'], [/^(https?:\/\/|www\.)\w+\.[a-z]{2,3}/, 'Url'], //with http/www [/^[\w./]+\.(com|net|gov|org|ly|edu|info|biz|ru|jp|de|in|uk|br)/, 'Url'], //http://mostpopularwebsites.net/top-level-domain //dates/times @@ -8939,7 +8891,7 @@ var startsWith = [//web tags [/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/, 'Date'], // 03-02-89 //phone numbers [/^[0-9]{3}-[0-9]{4}$/, 'PhoneNumber'], //589-3809 -[/^[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/, 'PhoneNumber'], //632-589-3809 +[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/, 'PhoneNumber'], //632-589-3809 //money // currency regex // /[\$\xA2-\xA5\u058F\u060B\u09F2\u09F3\u09FB\u0AF1\u0BF9\u0E3F\u17DB\u20A0-\u20BD\uA838\uFDFC\uFE69\uFF04\uFFE0\uFFE1\uFFE5\uFFE6] @@ -9979,7 +9931,7 @@ var checkIrregulars = function checkIrregulars(term) { var _03Irregulars = checkIrregulars; var hasApostropheS = /([a-z\u00C0-\u00FF]+)[\u0027\u0060\u00B4\u2018\u2019\u201A\u201B\u2032\u2035\u2039\u203A]s$/i; -var blacklist = { +var banList = { that: true, there: true }; @@ -9995,7 +9947,7 @@ var isPossessive = function isPossessive(term, pool) { return false; } - if (blacklist.hasOwnProperty(term.clean)) { + if (banList.hasOwnProperty(term.reduced)) { return false; } //if end of sentence, it is possessive - "was spencer's" @@ -10440,11 +10392,8 @@ var list = [// ==== Mutliple tags ==== group: 0, tag: 'QuestionWord', reason: 'which-question2' -}, { - match: 'which', - tag: 'QuestionWord', - reason: 'which-question3' -}, // ==== Conjunctions ==== +}, // { match: 'which', tag: 'QuestionWord', reason: 'which-question3' }, +// ==== Conjunctions ==== { match: '[so] #Noun', group: 0, @@ -10647,6 +10596,11 @@ var list$1 = [// ==== Holiday ==== match: "".concat(dates, " #Acronym? (#ProperNoun && !#Month)"), tag: 'Person', reason: 'june-smith-jr' +}, // 'second' +{ + match: "#Cardinal [second]", + tag: 'Unit', + reason: 'one-second' }]; var _02Dates = list$1; @@ -11209,6 +11163,12 @@ var list$3 = [// ==== Tense ==== group: 0, tag: 'Auxiliary', reason: 'had-been' +}, // was being driven +{ + match: '[being] #Participle', + group: 0, + tag: 'Auxiliary', + reason: 'being-foo' }, // ==== Phrasal ==== //'foo-up' { @@ -11293,6 +11253,12 @@ var list$3 = [// ==== Tense ==== group: 0, tag: 'Verb', reason: 'adj-to' +}, // open the door +{ + match: '[open] #Determiner', + group: 0, + tag: 'Infinitive', + reason: 'open-the' }, // would wade { match: "#Modal [".concat(verbs$1, "]"), @@ -12901,7 +12867,9 @@ var Quotations = addMethod$8; // walked => walk - turn a verb into it's root form var toInfinitive$1 = function toInfinitive(parsed, world) { - var verb = parsed.verb; //1. if it's already infinitive + var verb = parsed.verb; // console.log(parsed) + // verb.debug() + //1. if it's already infinitive var str = verb.text('normal'); diff --git a/changelog.md b/changelog.md index 9d71c0749..a265bae4b 100644 --- a/changelog.md +++ b/changelog.md @@ -12,6 +12,13 @@ While all _Major_ releases should be reviewed, our only two _large_ releases are -move (some) contractions into tokenizer? +#### 13.3.0 + +- bugfixes (conjugation and tagging) 752, 737, 725, 751, 743 748, 755, 758, 706, 761 +- support tokenized array as input +- update deps +- bugfix updates to `plugin-sentences`, and `plugin-dates` + #### 13.2.0 - deprecate `.money()` and favour overloaded method in compromise-numbers plugin diff --git a/package-lock.json b/package-lock.json index 8c944bb6e..6bc1ee7e6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,43 +1,43 @@ { "name": "compromise", - "version": "13.2.0", + "version": "13.3.0", "lockfileVersion": 1, "requires": true, "dependencies": { "@babel/code-frame": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", - "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.1.tgz", + "integrity": "sha512-IGhtTmpjGbYzcEDOw7DcQtbQSXcG9ftmAXtWTu9V936vDye4xjjekktFAtgZsWpzTj/X01jocB46mTywm/4SZw==", "dev": true, "requires": { - "@babel/highlight": "^7.8.3" + "@babel/highlight": "^7.10.1" } }, "@babel/compat-data": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.9.0.tgz", - "integrity": "sha512-zeFQrr+284Ekvd9e7KAX954LkapWiOmQtsfHirhxqfdlX6MEC32iRE+pqUGlYIBchdevaCwvzxWGSy/YBNI85g==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.10.1.tgz", + "integrity": "sha512-CHvCj7So7iCkGKPRFUfryXIkU2gSBw7VSZFYLsqVhrS47269VK2Hfi9S/YcublPMW8k1u2bQBlbDruoQEm4fgw==", "dev": true, "requires": { - "browserslist": "^4.9.1", + "browserslist": "^4.12.0", "invariant": "^2.2.4", "semver": "^5.5.0" } }, "@babel/core": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.9.0.tgz", - "integrity": "sha512-kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.9.0", - "@babel/helper-module-transforms": "^7.9.0", - "@babel/helpers": "^7.9.0", - "@babel/parser": "^7.9.0", - "@babel/template": "^7.8.6", - "@babel/traverse": "^7.9.0", - "@babel/types": "^7.9.0", + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.10.2.tgz", + "integrity": "sha512-KQmV9yguEjQsXqyOUGKjS4+3K8/DlOCE2pZcq4augdQmtTy5iv5EHtmMSJ7V4c1BIPjuwtZYqYLCq9Ga+hGBRQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.1", + "@babel/generator": "^7.10.2", + "@babel/helper-module-transforms": "^7.10.1", + "@babel/helpers": "^7.10.1", + "@babel/parser": "^7.10.2", + "@babel/template": "^7.10.1", + "@babel/traverse": "^7.10.1", + "@babel/types": "^7.10.2", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.1", @@ -46,120 +46,324 @@ "resolve": "^1.3.2", "semver": "^5.4.1", "source-map": "^0.5.0" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz", + "integrity": "sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw==", + "dev": true + }, + "@babel/types": { + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.2.tgz", + "integrity": "sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/generator": { - "version": "7.9.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.5.tgz", - "integrity": "sha512-GbNIxVB3ZJe3tLeDm1HSn2AhuD/mVcyLDpgtLXa5tplmWrJdF/elxB56XNqCuD6szyNkDi6wuoKXln3QeBmCHQ==", + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.2.tgz", + "integrity": "sha512-AxfBNHNu99DTMvlUPlt1h2+Hn7knPpH5ayJ8OqDWSeLld+Fi2AYBTC/IejWDM9Edcii4UzZRCsbUt0WlSDsDsA==", "dev": true, "requires": { - "@babel/types": "^7.9.5", + "@babel/types": "^7.10.2", "jsesc": "^2.5.1", "lodash": "^4.17.13", "source-map": "^0.5.0" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz", + "integrity": "sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw==", + "dev": true + }, + "@babel/types": { + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.2.tgz", + "integrity": "sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-annotate-as-pure": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz", - "integrity": "sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.1.tgz", + "integrity": "sha512-ewp3rvJEwLaHgyWGe4wQssC2vjks3E80WiUe2BpMb0KhreTjMROCbxXcEovTrbeGVdQct5VjQfrv9EgC+xMzCw==", "dev": true, "requires": { - "@babel/types": "^7.8.3" + "@babel/types": "^7.10.1" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz", + "integrity": "sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw==", + "dev": true + }, + "@babel/types": { + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.2.tgz", + "integrity": "sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.8.3.tgz", - "integrity": "sha512-5eFOm2SyFPK4Rh3XMMRDjN7lBH0orh3ss0g3rTYZnBQ+r6YPj7lgDyCvPphynHvUrobJmeMignBr6Acw9mAPlw==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.1.tgz", + "integrity": "sha512-cQpVq48EkYxUU0xozpGCLla3wlkdRRqLWu1ksFMXA9CM5KQmyyRpSEsYXbao7JUkOw/tAaYKCaYyZq6HOFYtyw==", "dev": true, "requires": { - "@babel/helper-explode-assignable-expression": "^7.8.3", - "@babel/types": "^7.8.3" + "@babel/helper-explode-assignable-expression": "^7.10.1", + "@babel/types": "^7.10.1" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz", + "integrity": "sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw==", + "dev": true + }, + "@babel/types": { + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.2.tgz", + "integrity": "sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-compilation-targets": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.8.7.tgz", - "integrity": "sha512-4mWm8DCK2LugIS+p1yArqvG1Pf162upsIsjE7cNBjez+NjliQpVhj20obE520nao0o14DaTnFJv+Fw5a0JpoUw==", + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.2.tgz", + "integrity": "sha512-hYgOhF4To2UTB4LTaZepN/4Pl9LD4gfbJx8A34mqoluT8TLbof1mhUlYuNWTEebONa8+UlCC4X0TEXu7AOUyGA==", "dev": true, "requires": { - "@babel/compat-data": "^7.8.6", - "browserslist": "^4.9.1", + "@babel/compat-data": "^7.10.1", + "browserslist": "^4.12.0", "invariant": "^2.2.4", "levenary": "^1.1.1", "semver": "^5.5.0" } }, + "@babel/helper-create-class-features-plugin": { + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.2.tgz", + "integrity": "sha512-5C/QhkGFh1vqcziq1vAL6SI9ymzUp8BCYjFpvYVhWP4DlATIb3u5q3iUd35mvlyGs8fO7hckkW7i0tmH+5+bvQ==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.10.1", + "@babel/helper-member-expression-to-functions": "^7.10.1", + "@babel/helper-optimise-call-expression": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1", + "@babel/helper-replace-supers": "^7.10.1", + "@babel/helper-split-export-declaration": "^7.10.1" + } + }, "@babel/helper-create-regexp-features-plugin": { - "version": "7.8.8", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.8.tgz", - "integrity": "sha512-LYVPdwkrQEiX9+1R29Ld/wTrmQu1SSKYnuOk3g0CkcZMA1p0gsNxJFj/3gBdaJ7Cg0Fnek5z0DsMULePP7Lrqg==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.1.tgz", + "integrity": "sha512-Rx4rHS0pVuJn5pJOqaqcZR4XSgeF9G/pO/79t+4r7380tXFJdzImFnxMU19f83wjSrmKHq6myrM10pFHTGzkUA==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.8.3", - "@babel/helper-regex": "^7.8.3", + "@babel/helper-annotate-as-pure": "^7.10.1", + "@babel/helper-regex": "^7.10.1", "regexpu-core": "^4.7.0" } }, "@babel/helper-define-map": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.8.3.tgz", - "integrity": "sha512-PoeBYtxoZGtct3md6xZOCWPcKuMuk3IHhgxsRRNtnNShebf4C8YonTSblsK4tvDbm+eJAw2HAPOfCr+Q/YRG/g==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.1.tgz", + "integrity": "sha512-+5odWpX+OnvkD0Zmq7panrMuAGQBu6aPUgvMzuMGo4R+jUOvealEj2hiqI6WhxgKrTpFoFj0+VdsuA8KDxHBDg==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.8.3", - "@babel/types": "^7.8.3", + "@babel/helper-function-name": "^7.10.1", + "@babel/types": "^7.10.1", "lodash": "^4.17.13" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz", + "integrity": "sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw==", + "dev": true + }, + "@babel/types": { + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.2.tgz", + "integrity": "sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-explode-assignable-expression": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.8.3.tgz", - "integrity": "sha512-N+8eW86/Kj147bO9G2uclsg5pwfs/fqqY5rwgIL7eTBklgXjcOJ3btzS5iM6AitJcftnY7pm2lGsrJVYLGjzIw==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.10.1.tgz", + "integrity": "sha512-vcUJ3cDjLjvkKzt6rHrl767FeE7pMEYfPanq5L16GRtrXIoznc0HykNW2aEYkcnP76P0isoqJ34dDMFZwzEpJg==", "dev": true, "requires": { - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" + "@babel/traverse": "^7.10.1", + "@babel/types": "^7.10.1" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz", + "integrity": "sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw==", + "dev": true + }, + "@babel/types": { + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.2.tgz", + "integrity": "sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-function-name": { - "version": "7.9.5", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz", - "integrity": "sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.1.tgz", + "integrity": "sha512-fcpumwhs3YyZ/ttd5Rz0xn0TpIwVkN7X0V38B9TWNfVF42KEkhkAAuPCQ3oXmtTRtiPJrmZ0TrfS0GKF0eMaRQ==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/types": "^7.9.5" + "@babel/helper-get-function-arity": "^7.10.1", + "@babel/template": "^7.10.1", + "@babel/types": "^7.10.1" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz", + "integrity": "sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw==", + "dev": true + }, + "@babel/types": { + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.2.tgz", + "integrity": "sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-get-function-arity": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", - "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.1.tgz", + "integrity": "sha512-F5qdXkYGOQUb0hpRaPoetF9AnsXknKjWMZ+wmsIRsp5ge5sFh4c3h1eH2pRTTuy9KKAA2+TTYomGXAtEL2fQEw==", "dev": true, "requires": { - "@babel/types": "^7.8.3" + "@babel/types": "^7.10.1" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz", + "integrity": "sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw==", + "dev": true + }, + "@babel/types": { + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.2.tgz", + "integrity": "sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-hoist-variables": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.8.3.tgz", - "integrity": "sha512-ky1JLOjcDUtSc+xkt0xhYff7Z6ILTAHKmZLHPxAhOP0Nd77O+3nCsd6uSVYur6nJnCI029CrNbYlc0LoPfAPQg==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.1.tgz", + "integrity": "sha512-vLm5srkU8rI6X3+aQ1rQJyfjvCBLXP8cAGeuw04zeAM2ItKb1e7pmVmLyHb4sDaAYnLL13RHOZPLEtcGZ5xvjg==", "dev": true, "requires": { - "@babel/types": "^7.8.3" + "@babel/types": "^7.10.1" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz", + "integrity": "sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw==", + "dev": true + }, + "@babel/types": { + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.2.tgz", + "integrity": "sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-member-expression-to-functions": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz", - "integrity": "sha512-fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.10.1.tgz", + "integrity": "sha512-u7XLXeM2n50gb6PWJ9hoO5oO7JFPaZtrh35t8RqKLT1jFKj9IWeD1zrcrYp1q1qiZTdEarfDWfTIP8nGsu0h5g==", "dev": true, "requires": { - "@babel/types": "^7.8.3" + "@babel/types": "^7.10.1" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz", + "integrity": "sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw==", + "dev": true + }, + "@babel/types": { + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.2.tgz", + "integrity": "sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-module-imports": { @@ -172,86 +376,209 @@ } }, "@babel/helper-module-transforms": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz", - "integrity": "sha512-0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.10.1.tgz", + "integrity": "sha512-RLHRCAzyJe7Q7sF4oy2cB+kRnU4wDZY/H2xJFGof+M+SJEGhZsb+GFj5j1AD8NiSaVBJ+Pf0/WObiXu/zxWpFg==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.8.3", - "@babel/helper-replace-supers": "^7.8.6", - "@babel/helper-simple-access": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/template": "^7.8.6", - "@babel/types": "^7.9.0", + "@babel/helper-module-imports": "^7.10.1", + "@babel/helper-replace-supers": "^7.10.1", + "@babel/helper-simple-access": "^7.10.1", + "@babel/helper-split-export-declaration": "^7.10.1", + "@babel/template": "^7.10.1", + "@babel/types": "^7.10.1", "lodash": "^4.17.13" + }, + "dependencies": { + "@babel/helper-module-imports": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.1.tgz", + "integrity": "sha512-SFxgwYmZ3HZPyZwJRiVNLRHWuW2OgE5k2nrVs6D9Iv4PPnXVffuEHy83Sfx/l4SqF+5kyJXjAyUmrG7tNm+qVg==", + "dev": true, + "requires": { + "@babel/types": "^7.10.1" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz", + "integrity": "sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw==", + "dev": true + }, + "@babel/types": { + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.2.tgz", + "integrity": "sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-optimise-call-expression": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz", - "integrity": "sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.1.tgz", + "integrity": "sha512-a0DjNS1prnBsoKx83dP2falChcs7p3i8VMzdrSbfLhuQra/2ENC4sbri34dz/rWmDADsmF1q5GbfaXydh0Jbjg==", "dev": true, "requires": { - "@babel/types": "^7.8.3" + "@babel/types": "^7.10.1" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz", + "integrity": "sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw==", + "dev": true + }, + "@babel/types": { + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.2.tgz", + "integrity": "sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.1.tgz", + "integrity": "sha512-fvoGeXt0bJc7VMWZGCAEBEMo/HAjW2mP8apF5eXK0wSqwLAVHAISCWRoLMBMUs2kqeaG77jltVqu4Hn8Egl3nA==", "dev": true }, "@babel/helper-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.8.3.tgz", - "integrity": "sha512-BWt0QtYv/cg/NecOAZMdcn/waj/5P26DR4mVLXfFtDokSR6fyuG0Pj+e2FqtSME+MqED1khnSMulkmGl8qWiUQ==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.1.tgz", + "integrity": "sha512-7isHr19RsIJWWLLFn21ubFt223PjQyg1HY7CZEMRr820HttHPpVvrsIN3bUOo44DEfFV4kBXO7Abbn9KTUZV7g==", "dev": true, "requires": { "lodash": "^4.17.13" } }, "@babel/helper-remap-async-to-generator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.8.3.tgz", - "integrity": "sha512-kgwDmw4fCg7AVgS4DukQR/roGp+jP+XluJE5hsRZwxCYGg+Rv9wSGErDWhlI90FODdYfd4xG4AQRiMDjjN0GzA==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.10.1.tgz", + "integrity": "sha512-RfX1P8HqsfgmJ6CwaXGKMAqbYdlleqglvVtht0HGPMSsy2V6MqLlOJVF/0Qyb/m2ZCi2z3q3+s6Pv7R/dQuZ6A==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.8.3", - "@babel/helper-wrap-function": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" + "@babel/helper-annotate-as-pure": "^7.10.1", + "@babel/helper-wrap-function": "^7.10.1", + "@babel/template": "^7.10.1", + "@babel/traverse": "^7.10.1", + "@babel/types": "^7.10.1" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz", + "integrity": "sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw==", + "dev": true + }, + "@babel/types": { + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.2.tgz", + "integrity": "sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-replace-supers": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.8.6.tgz", - "integrity": "sha512-PeMArdA4Sv/Wf4zXwBKPqVj7n9UF/xg6slNRtZW84FM7JpE1CbG8B612FyM4cxrf4fMAMGO0kR7voy1ForHHFA==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.1.tgz", + "integrity": "sha512-SOwJzEfpuQwInzzQJGjGaiG578UYmyi2Xw668klPWV5n07B73S0a9btjLk/52Mlcxa+5AdIYqws1KyXRfMoB7A==", "dev": true, "requires": { - "@babel/helper-member-expression-to-functions": "^7.8.3", - "@babel/helper-optimise-call-expression": "^7.8.3", - "@babel/traverse": "^7.8.6", - "@babel/types": "^7.8.6" + "@babel/helper-member-expression-to-functions": "^7.10.1", + "@babel/helper-optimise-call-expression": "^7.10.1", + "@babel/traverse": "^7.10.1", + "@babel/types": "^7.10.1" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz", + "integrity": "sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw==", + "dev": true + }, + "@babel/types": { + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.2.tgz", + "integrity": "sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-simple-access": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz", - "integrity": "sha512-VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.1.tgz", + "integrity": "sha512-VSWpWzRzn9VtgMJBIWTZ+GP107kZdQ4YplJlCmIrjoLVSi/0upixezHCDG8kpPVTBJpKfxTH01wDhh+jS2zKbw==", "dev": true, "requires": { - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3" + "@babel/template": "^7.10.1", + "@babel/types": "^7.10.1" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz", + "integrity": "sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw==", + "dev": true + }, + "@babel/types": { + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.2.tgz", + "integrity": "sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-split-export-declaration": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", - "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.1.tgz", + "integrity": "sha512-UQ1LVBPrYdbchNhLwj6fetj46BcFwfS4NllJo/1aJsT+1dLTEnXJL0qHqtY7gPzF8S2fXBJamf1biAXV3X077g==", "dev": true, "requires": { - "@babel/types": "^7.8.3" + "@babel/types": "^7.10.1" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz", + "integrity": "sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw==", + "dev": true + }, + "@babel/types": { + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.2.tgz", + "integrity": "sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-validator-identifier": { @@ -261,135 +588,201 @@ "dev": true }, "@babel/helper-wrap-function": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz", - "integrity": "sha512-LACJrbUET9cQDzb6kG7EeD7+7doC3JNvUgTEQOx2qaO1fKlzE/Bf05qs9w1oXQMmXlPO65lC3Tq9S6gZpTErEQ==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.10.1.tgz", + "integrity": "sha512-C0MzRGteVDn+H32/ZgbAv5r56f2o1fZSA/rj/TYo8JEJNHg+9BdSmKBUND0shxWRztWhjlT2cvHYuynpPsVJwQ==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" + "@babel/helper-function-name": "^7.10.1", + "@babel/template": "^7.10.1", + "@babel/traverse": "^7.10.1", + "@babel/types": "^7.10.1" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz", + "integrity": "sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw==", + "dev": true + }, + "@babel/types": { + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.2.tgz", + "integrity": "sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helpers": { - "version": "7.9.2", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.9.2.tgz", - "integrity": "sha512-JwLvzlXVPjO8eU9c/wF9/zOIN7X6h8DYf7mG4CiFRZRvZNKEF5dQ3H3V+ASkHoIB3mWhatgl5ONhyqHRI6MppA==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.10.1.tgz", + "integrity": "sha512-muQNHF+IdU6wGgkaJyhhEmI54MOZBKsFfsXFhboz1ybwJ1Kl7IHlbm2a++4jwrmY5UYsgitt5lfqo1wMFcHmyw==", "dev": true, "requires": { - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.9.0", - "@babel/types": "^7.9.0" + "@babel/template": "^7.10.1", + "@babel/traverse": "^7.10.1", + "@babel/types": "^7.10.1" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz", + "integrity": "sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw==", + "dev": true + }, + "@babel/types": { + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.2.tgz", + "integrity": "sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/highlight": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", - "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.1.tgz", + "integrity": "sha512-8rMof+gVP8mxYZApLF/JgNDAkdKa+aJt3ZYxF8z6+j/hpeXL7iMsKCPHa2jNMHu/qqBwzQF4OHNoYi8dMA/rYg==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.9.0", + "@babel/helper-validator-identifier": "^7.10.1", "chalk": "^2.0.0", "js-tokens": "^4.0.0" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz", + "integrity": "sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw==", + "dev": true + } } }, "@babel/parser": { - "version": "7.9.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz", - "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==", + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.2.tgz", + "integrity": "sha512-PApSXlNMJyB4JiGVhCOlzKIif+TKFTvu0aQAhnTvfP/z3vVSN6ZypH5bfUNwFXXjRQtUEBNFd2PtmCmG2Py3qQ==", "dev": true }, "@babel/plugin-proposal-async-generator-functions": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.8.3.tgz", - "integrity": "sha512-NZ9zLv848JsV3hs8ryEh7Uaz/0KsmPLqv0+PdkDJL1cJy0K4kOCFa8zc1E3mp+RHPQcpdfb/6GovEsW4VDrOMw==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.1.tgz", + "integrity": "sha512-vzZE12ZTdB336POZjmpblWfNNRpMSua45EYnRigE2XsZxcXcIyly2ixnTJasJE4Zq3U7t2d8rRF7XRUuzHxbOw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-remap-async-to-generator": "^7.8.3", + "@babel/helper-plugin-utils": "^7.10.1", + "@babel/helper-remap-async-to-generator": "^7.10.1", "@babel/plugin-syntax-async-generators": "^7.8.0" } }, + "@babel/plugin-proposal-class-properties": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.10.1.tgz", + "integrity": "sha512-sqdGWgoXlnOdgMXU+9MbhzwFRgxVLeiGBqTrnuS7LC2IBU31wSsESbTUreT2O418obpfPdGUR2GbEufZF1bpqw==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1" + } + }, "@babel/plugin-proposal-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.8.3.tgz", - "integrity": "sha512-NyaBbyLFXFLT9FP+zk0kYlUlA8XtCUbehs67F0nnEg7KICgMc2mNkIeu9TYhKzyXMkrapZFwAhXLdnt4IYHy1w==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.1.tgz", + "integrity": "sha512-Cpc2yUVHTEGPlmiQzXj026kqwjEQAD9I4ZC16uzdbgWgitg/UHKHLffKNCQZ5+y8jpIZPJcKcwsr2HwPh+w3XA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-plugin-utils": "^7.10.1", "@babel/plugin-syntax-dynamic-import": "^7.8.0" } }, "@babel/plugin-proposal-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.8.3.tgz", - "integrity": "sha512-KGhQNZ3TVCQG/MjRbAUwuH+14y9q0tpxs1nWWs3pbSleRdDro9SAMMDyye8HhY1gqZ7/NqIc8SKhya0wRDgP1Q==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.1.tgz", + "integrity": "sha512-m8r5BmV+ZLpWPtMY2mOKN7wre6HIO4gfIiV+eOmsnZABNenrt/kzYBwrh+KOfgumSWpnlGs5F70J8afYMSJMBg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-plugin-utils": "^7.10.1", "@babel/plugin-syntax-json-strings": "^7.8.0" } }, "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-TS9MlfzXpXKt6YYomudb/KU7nQI6/xnapG6in1uZxoxDghuSMZsPb6D2fyUwNYSAp4l1iR7QtFOjkqcRYcUsfw==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.1.tgz", + "integrity": "sha512-56cI/uHYgL2C8HVuHOuvVowihhX0sxb3nnfVRzUeVHTWmRHTZrKuAh/OBIMggGU/S1g/1D2CRCXqP+3u7vX7iA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-plugin-utils": "^7.10.1", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" } }, "@babel/plugin-proposal-numeric-separator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.8.3.tgz", - "integrity": "sha512-jWioO1s6R/R+wEHizfaScNsAx+xKgwTLNXSh7tTC4Usj3ItsPEhYkEpU4h+lpnBwq7NBVOJXfO6cRFYcX69JUQ==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.1.tgz", + "integrity": "sha512-jjfym4N9HtCiNfyyLAVD8WqPYeHUrw4ihxuAynWj6zzp2gf9Ey2f7ImhFm6ikB3CLf5Z/zmcJDri6B4+9j9RsA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.1", + "@babel/plugin-syntax-numeric-separator": "^7.10.1" } }, "@babel/plugin-proposal-object-rest-spread": { - "version": "7.9.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.9.5.tgz", - "integrity": "sha512-VP2oXvAf7KCYTthbUHwBlewbl1Iq059f6seJGsxMizaCdgHIeczOr7FBqELhSqfkIl04Fi8okzWzl63UKbQmmg==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.10.1.tgz", + "integrity": "sha512-Z+Qri55KiQkHh7Fc4BW6o+QBuTagbOp9txE+4U1i79u9oWlf2npkiDx+Rf3iK3lbcHBuNy9UOkwuR5wOMH3LIQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-plugin-utils": "^7.10.1", "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-transform-parameters": "^7.9.5" + "@babel/plugin-transform-parameters": "^7.10.1" } }, "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-0gkX7J7E+AtAw9fcwlVQj8peP61qhdg/89D5swOkjYbkboA2CVckn3kiyum1DE0wskGb7KJJxBdyEBApDLLVdw==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.1.tgz", + "integrity": "sha512-VqExgeE62YBqI3ogkGoOJp1R6u12DFZjqwJhqtKc2o5m1YTUuUWnos7bZQFBhwkxIFpWYJ7uB75U7VAPPiKETA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-plugin-utils": "^7.10.1", "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" } }, "@babel/plugin-proposal-optional-chaining": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.9.0.tgz", - "integrity": "sha512-NDn5tu3tcv4W30jNhmc2hyD5c56G6cXx4TesJubhxrJeCvuuMpttxr0OnNCqbZGhFjLrg+NIhxxC+BK5F6yS3w==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.10.1.tgz", + "integrity": "sha512-dqQj475q8+/avvok72CF3AOSV/SGEcH29zT5hhohqqvvZ2+boQoOr7iGldBG5YXTO2qgCgc2B3WvVLUdbeMlGA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-plugin-utils": "^7.10.1", "@babel/plugin-syntax-optional-chaining": "^7.8.0" } }, + "@babel/plugin-proposal-private-methods": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.10.1.tgz", + "integrity": "sha512-RZecFFJjDiQ2z6maFprLgrdnm0OzoC23Mx89xf1CcEsxmHuzuXOdniEuI+S3v7vjQG4F5sa6YtUp+19sZuSxHg==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1" + } + }, "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.8.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.8.tgz", - "integrity": "sha512-EVhjVsMpbhLw9ZfHWSx2iy13Q8Z/eg8e8ccVWt23sWQK5l1UdkoLJPN5w69UA4uITGBnEZD2JOe4QOHycYKv8A==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.1.tgz", + "integrity": "sha512-JjfngYRvwmPwmnbRZyNiPFI8zxCZb8euzbCG/LxyKdeTb59tVciKo9GK9bi6JYKInk1H11Dq9j/zRqIH4KigfQ==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.8.8", - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-create-regexp-features-plugin": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1" } }, "@babel/plugin-syntax-async-generators": { @@ -401,6 +794,15 @@ "@babel/helper-plugin-utils": "^7.8.0" } }, + "@babel/plugin-syntax-class-properties": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.1.tgz", + "integrity": "sha512-Gf2Yx/iRs1JREDtVZ56OrjjgFHCaldpTnuy9BHla10qyVT3YkIIGEtoDWhyop0ksu1GvNjHIoYRBqm3zoR1jyQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.1" + } + }, "@babel/plugin-syntax-dynamic-import": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", @@ -429,12 +831,12 @@ } }, "@babel/plugin-syntax-numeric-separator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.8.3.tgz", - "integrity": "sha512-H7dCMAdN83PcCmqmkHB5dtp+Xa9a6LKSvA2hiFBC/5alSHxM5VgWZXFqDi0YFe8XNGT6iCa+z4V4zSt/PdZ7Dw==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.1.tgz", + "integrity": "sha512-uTd0OsHrpe3tH5gRPTxG8Voh99/WCU78vIm5NMRYPAqC8lR4vajt6KkCAknCHrx24vkPdd/05yfdGSB4EIY2mg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.1" } }, "@babel/plugin-syntax-object-rest-spread": { @@ -465,196 +867,224 @@ } }, "@babel/plugin-syntax-top-level-await": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.8.3.tgz", - "integrity": "sha512-kwj1j9lL/6Wd0hROD3b/OZZ7MSrZLqqn9RAZ5+cYYsflQ9HZBIKCUkr3+uL1MEJ1NePiUbf98jjiMQSv0NMR9g==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.1.tgz", + "integrity": "sha512-hgA5RYkmZm8FTFT3yu2N9Bx7yVVOKYT6yEdXXo6j2JTm0wNxgqaGeQVaSHRjhfnQbX91DtjFB6McRFSlcJH3xQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.1" } }, "@babel/plugin-transform-arrow-functions": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.8.3.tgz", - "integrity": "sha512-0MRF+KC8EqH4dbuITCWwPSzsyO3HIWWlm30v8BbbpOrS1B++isGxPnnuq/IZvOX5J2D/p7DQalQm+/2PnlKGxg==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.1.tgz", + "integrity": "sha512-6AZHgFJKP3DJX0eCNJj01RpytUa3SOGawIxweHkNX2L6PYikOZmoh5B0d7hIHaIgveMjX990IAa/xK7jRTN8OA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.1" } }, "@babel/plugin-transform-async-to-generator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.8.3.tgz", - "integrity": "sha512-imt9tFLD9ogt56Dd5CI/6XgpukMwd/fLGSrix2httihVe7LOGVPhyhMh1BU5kDM7iHD08i8uUtmV2sWaBFlHVQ==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.1.tgz", + "integrity": "sha512-XCgYjJ8TY2slj6SReBUyamJn3k2JLUIiiR5b6t1mNCMSvv7yx+jJpaewakikp0uWFQSF7ChPPoe3dHmXLpISkg==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-remap-async-to-generator": "^7.8.3" + "@babel/helper-module-imports": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1", + "@babel/helper-remap-async-to-generator": "^7.10.1" + }, + "dependencies": { + "@babel/helper-module-imports": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.1.tgz", + "integrity": "sha512-SFxgwYmZ3HZPyZwJRiVNLRHWuW2OgE5k2nrVs6D9Iv4PPnXVffuEHy83Sfx/l4SqF+5kyJXjAyUmrG7tNm+qVg==", + "dev": true, + "requires": { + "@babel/types": "^7.10.1" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz", + "integrity": "sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw==", + "dev": true + }, + "@babel/types": { + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.2.tgz", + "integrity": "sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/plugin-transform-block-scoped-functions": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.8.3.tgz", - "integrity": "sha512-vo4F2OewqjbB1+yaJ7k2EJFHlTP3jR634Z9Cj9itpqNjuLXvhlVxgnjsHsdRgASR8xYDrx6onw4vW5H6We0Jmg==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.1.tgz", + "integrity": "sha512-B7K15Xp8lv0sOJrdVAoukKlxP9N59HS48V1J3U/JGj+Ad+MHq+am6xJVs85AgXrQn4LV8vaYFOB+pr/yIuzW8Q==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.1" } }, "@babel/plugin-transform-block-scoping": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.8.3.tgz", - "integrity": "sha512-pGnYfm7RNRgYRi7bids5bHluENHqJhrV4bCZRwc5GamaWIIs07N4rZECcmJL6ZClwjDz1GbdMZFtPs27hTB06w==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.10.1.tgz", + "integrity": "sha512-8bpWG6TtF5akdhIm/uWTyjHqENpy13Fx8chg7pFH875aNLwX8JxIxqm08gmAT+Whe6AOmaTeLPe7dpLbXt+xUw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-plugin-utils": "^7.10.1", "lodash": "^4.17.13" } }, "@babel/plugin-transform-classes": { - "version": "7.9.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.9.5.tgz", - "integrity": "sha512-x2kZoIuLC//O5iA7PEvecB105o7TLzZo8ofBVhP79N+DO3jaX+KYfww9TQcfBEZD0nikNyYcGB1IKtRq36rdmg==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.8.3", - "@babel/helper-define-map": "^7.8.3", - "@babel/helper-function-name": "^7.9.5", - "@babel/helper-optimise-call-expression": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-replace-supers": "^7.8.6", - "@babel/helper-split-export-declaration": "^7.8.3", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.1.tgz", + "integrity": "sha512-P9V0YIh+ln/B3RStPoXpEQ/CoAxQIhRSUn7aXqQ+FZJ2u8+oCtjIXR3+X0vsSD8zv+mb56K7wZW1XiDTDGiDRQ==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.1", + "@babel/helper-define-map": "^7.10.1", + "@babel/helper-function-name": "^7.10.1", + "@babel/helper-optimise-call-expression": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1", + "@babel/helper-replace-supers": "^7.10.1", + "@babel/helper-split-export-declaration": "^7.10.1", "globals": "^11.1.0" } }, "@babel/plugin-transform-computed-properties": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.8.3.tgz", - "integrity": "sha512-O5hiIpSyOGdrQZRQ2ccwtTVkgUDBBiCuK//4RJ6UfePllUTCENOzKxfh6ulckXKc0DixTFLCfb2HVkNA7aDpzA==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.1.tgz", + "integrity": "sha512-mqSrGjp3IefMsXIenBfGcPXxJxweQe2hEIwMQvjtiDQ9b1IBvDUjkAtV/HMXX47/vXf14qDNedXsIiNd1FmkaQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.1" } }, "@babel/plugin-transform-destructuring": { - "version": "7.9.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.9.5.tgz", - "integrity": "sha512-j3OEsGel8nHL/iusv/mRd5fYZ3DrOxWC82x0ogmdN/vHfAP4MYw+AFKYanzWlktNwikKvlzUV//afBW5FTp17Q==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.1.tgz", + "integrity": "sha512-V/nUc4yGWG71OhaTH705pU8ZSdM6c1KmmLP8ys59oOYbT7RpMYAR3MsVOt6OHL0WzG7BlTU076va9fjJyYzJMA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.1" } }, "@babel/plugin-transform-dotall-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.8.3.tgz", - "integrity": "sha512-kLs1j9Nn4MQoBYdRXH6AeaXMbEJFaFu/v1nQkvib6QzTj8MZI5OQzqmD83/2jEM1z0DLilra5aWO5YpyC0ALIw==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.1.tgz", + "integrity": "sha512-19VIMsD1dp02RvduFUmfzj8uknaO3uiHHF0s3E1OHnVsNj8oge8EQ5RzHRbJjGSetRnkEuBYO7TG1M5kKjGLOA==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-create-regexp-features-plugin": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1" } }, "@babel/plugin-transform-duplicate-keys": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.8.3.tgz", - "integrity": "sha512-s8dHiBUbcbSgipS4SMFuWGqCvyge5V2ZeAWzR6INTVC3Ltjig/Vw1G2Gztv0vU/hRG9X8IvKvYdoksnUfgXOEQ==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.1.tgz", + "integrity": "sha512-wIEpkX4QvX8Mo9W6XF3EdGttrIPZWozHfEaDTU0WJD/TDnXMvdDh30mzUl/9qWhnf7naicYartcEfUghTCSNpA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.1" } }, "@babel/plugin-transform-exponentiation-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.8.3.tgz", - "integrity": "sha512-zwIpuIymb3ACcInbksHaNcR12S++0MDLKkiqXHl3AzpgdKlFNhog+z/K0+TGW+b0w5pgTq4H6IwV/WhxbGYSjQ==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.1.tgz", + "integrity": "sha512-lr/przdAbpEA2BUzRvjXdEDLrArGRRPwbaF9rvayuHRvdQ7lUTTkZnhZrJ4LE2jvgMRFF4f0YuPQ20vhiPYxtA==", "dev": true, "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1" } }, "@babel/plugin-transform-for-of": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.9.0.tgz", - "integrity": "sha512-lTAnWOpMwOXpyDx06N+ywmF3jNbafZEqZ96CGYabxHrxNX8l5ny7dt4bK/rGwAh9utyP2b2Hv7PlZh1AAS54FQ==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.1.tgz", + "integrity": "sha512-US8KCuxfQcn0LwSCMWMma8M2R5mAjJGsmoCBVwlMygvmDUMkTCykc84IqN1M7t+agSfOmLYTInLCHJM+RUoz+w==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.1" } }, "@babel/plugin-transform-function-name": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.8.3.tgz", - "integrity": "sha512-rO/OnDS78Eifbjn5Py9v8y0aR+aSYhDhqAwVfsTl0ERuMZyr05L1aFSCJnbv2mmsLkit/4ReeQ9N2BgLnOcPCQ==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.1.tgz", + "integrity": "sha512-//bsKsKFBJfGd65qSNNh1exBy5Y9gD9ZN+DvrJ8f7HXr4avE5POW6zB7Rj6VnqHV33+0vXWUwJT0wSHubiAQkw==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-function-name": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1" } }, "@babel/plugin-transform-literals": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.8.3.tgz", - "integrity": "sha512-3Tqf8JJ/qB7TeldGl+TT55+uQei9JfYaregDcEAyBZ7akutriFrt6C/wLYIer6OYhleVQvH/ntEhjE/xMmy10A==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.1.tgz", + "integrity": "sha512-qi0+5qgevz1NHLZroObRm5A+8JJtibb7vdcPQF1KQE12+Y/xxl8coJ+TpPW9iRq+Mhw/NKLjm+5SHtAHCC7lAw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.1" } }, "@babel/plugin-transform-member-expression-literals": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.8.3.tgz", - "integrity": "sha512-3Wk2EXhnw+rP+IDkK6BdtPKsUE5IeZ6QOGrPYvw52NwBStw9V1ZVzxgK6fSKSxqUvH9eQPR3tm3cOq79HlsKYA==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.1.tgz", + "integrity": "sha512-UmaWhDokOFT2GcgU6MkHC11i0NQcL63iqeufXWfRy6pUOGYeCGEKhvfFO6Vz70UfYJYHwveg62GS83Rvpxn+NA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.1" } }, "@babel/plugin-transform-modules-amd": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.9.0.tgz", - "integrity": "sha512-vZgDDF003B14O8zJy0XXLnPH4sg+9X5hFBBGN1V+B2rgrB+J2xIypSN6Rk9imB2hSTHQi5OHLrFWsZab1GMk+Q==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.1.tgz", + "integrity": "sha512-31+hnWSFRI4/ACFr1qkboBbrTxoBIzj7qA69qlq8HY8p7+YCzkCT6/TvQ1a4B0z27VeWtAeJd6pr5G04dc1iHw==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.9.0", - "@babel/helper-plugin-utils": "^7.8.3", - "babel-plugin-dynamic-import-node": "^2.3.0" + "@babel/helper-module-transforms": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1", + "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.9.0.tgz", - "integrity": "sha512-qzlCrLnKqio4SlgJ6FMMLBe4bySNis8DFn1VkGmOcxG9gqEyPIOzeQrA//u0HAKrWpJlpZbZMPB1n/OPa4+n8g==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.1.tgz", + "integrity": "sha512-AQG4fc3KOah0vdITwt7Gi6hD9BtQP/8bhem7OjbaMoRNCH5Djx42O2vYMfau7QnAzQCa+RJnhJBmFFMGpQEzrg==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.9.0", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-simple-access": "^7.8.3", - "babel-plugin-dynamic-import-node": "^2.3.0" + "@babel/helper-module-transforms": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1", + "@babel/helper-simple-access": "^7.10.1", + "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-systemjs": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.9.0.tgz", - "integrity": "sha512-FsiAv/nao/ud2ZWy4wFacoLOm5uxl0ExSQ7ErvP7jpoihLR6Cq90ilOFyX9UXct3rbtKsAiZ9kFt5XGfPe/5SQ==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.1.tgz", + "integrity": "sha512-ewNKcj1TQZDL3YnO85qh9zo1YF1CHgmSTlRQgHqe63oTrMI85cthKtZjAiZSsSNjPQ5NCaYo5QkbYqEw1ZBgZA==", "dev": true, "requires": { - "@babel/helper-hoist-variables": "^7.8.3", - "@babel/helper-module-transforms": "^7.9.0", - "@babel/helper-plugin-utils": "^7.8.3", - "babel-plugin-dynamic-import-node": "^2.3.0" + "@babel/helper-hoist-variables": "^7.10.1", + "@babel/helper-module-transforms": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1", + "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-umd": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.9.0.tgz", - "integrity": "sha512-uTWkXkIVtg/JGRSIABdBoMsoIeoHQHPTL0Y2E7xf5Oj7sLqwVsNXOkNk0VJc7vF0IMBsPeikHxFjGe+qmwPtTQ==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.1.tgz", + "integrity": "sha512-EIuiRNMd6GB6ulcYlETnYYfgv4AxqrswghmBRQbWLHZxN4s7mupxzglnHqk9ZiUpDI4eRWewedJJNj67PWOXKA==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.9.0", - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-module-transforms": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1" } }, "@babel/plugin-transform-named-capturing-groups-regex": { @@ -667,184 +1097,225 @@ } }, "@babel/plugin-transform-new-target": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.8.3.tgz", - "integrity": "sha512-QuSGysibQpyxexRyui2vca+Cmbljo8bcRckgzYV4kRIsHpVeyeC3JDO63pY+xFZ6bWOBn7pfKZTqV4o/ix9sFw==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.1.tgz", + "integrity": "sha512-MBlzPc1nJvbmO9rPr1fQwXOM2iGut+JC92ku6PbiJMMK7SnQc1rytgpopveE3Evn47gzvGYeCdgfCDbZo0ecUw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.1" } }, "@babel/plugin-transform-object-super": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.8.3.tgz", - "integrity": "sha512-57FXk+gItG/GejofIyLIgBKTas4+pEU47IXKDBWFTxdPd7F80H8zybyAY7UoblVfBhBGs2EKM+bJUu2+iUYPDQ==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.1.tgz", + "integrity": "sha512-WnnStUDN5GL+wGQrJylrnnVlFhFmeArINIR9gjhSeYyvroGhBrSAXYg/RHsnfzmsa+onJrTJrEClPzgNmmQ4Gw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-replace-supers": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.1", + "@babel/helper-replace-supers": "^7.10.1" } }, "@babel/plugin-transform-parameters": { - "version": "7.9.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.9.5.tgz", - "integrity": "sha512-0+1FhHnMfj6lIIhVvS4KGQJeuhe1GI//h5uptK4PvLt+BGBxsoUJbd3/IW002yk//6sZPlFgsG1hY6OHLcy6kA==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.1.tgz", + "integrity": "sha512-tJ1T0n6g4dXMsL45YsSzzSDZCxiHXAQp/qHrucOq5gEHncTA3xDxnd5+sZcoQp+N1ZbieAaB8r/VUCG0gqseOg==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-get-function-arity": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1" } }, "@babel/plugin-transform-property-literals": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.8.3.tgz", - "integrity": "sha512-uGiiXAZMqEoQhRWMK17VospMZh5sXWg+dlh2soffpkAl96KAm+WZuJfa6lcELotSRmooLqg0MWdH6UUq85nmmg==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.1.tgz", + "integrity": "sha512-Kr6+mgag8auNrgEpbfIWzdXYOvqDHZOF0+Bx2xh4H2EDNwcbRb9lY6nkZg8oSjsX+DH9Ebxm9hOqtKW+gRDeNA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.1" } }, "@babel/plugin-transform-regenerator": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.7.tgz", - "integrity": "sha512-TIg+gAl4Z0a3WmD3mbYSk+J9ZUH6n/Yc57rtKRnlA/7rcCvpekHXe0CMZHP1gYp7/KLe9GHTuIba0vXmls6drA==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.1.tgz", + "integrity": "sha512-B3+Y2prScgJ2Bh/2l9LJxKbb8C8kRfsG4AdPT+n7ixBHIxJaIG8bi8tgjxUMege1+WqSJ+7gu1YeoMVO3gPWzw==", "dev": true, "requires": { "regenerator-transform": "^0.14.2" } }, "@babel/plugin-transform-reserved-words": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.8.3.tgz", - "integrity": "sha512-mwMxcycN3omKFDjDQUl+8zyMsBfjRFr0Zn/64I41pmjv4NJuqcYlEtezwYtw9TFd9WR1vN5kiM+O0gMZzO6L0A==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.1.tgz", + "integrity": "sha512-qN1OMoE2nuqSPmpTqEM7OvJ1FkMEV+BjVeZZm9V9mq/x1JLKQ4pcv8riZJMNN3u2AUGl0ouOMjRr2siecvHqUQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.1" } }, "@babel/plugin-transform-shorthand-properties": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.8.3.tgz", - "integrity": "sha512-I9DI6Odg0JJwxCHzbzW08ggMdCezoWcuQRz3ptdudgwaHxTjxw5HgdFJmZIkIMlRymL6YiZcped4TTCB0JcC8w==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.1.tgz", + "integrity": "sha512-AR0E/lZMfLstScFwztApGeyTHJ5u3JUKMjneqRItWeEqDdHWZwAOKycvQNCasCK/3r5YXsuNG25funcJDu7Y2g==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.1" } }, "@babel/plugin-transform-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.8.3.tgz", - "integrity": "sha512-CkuTU9mbmAoFOI1tklFWYYbzX5qCIZVXPVy0jpXgGwkplCndQAa58s2jr66fTeQnA64bDox0HL4U56CFYoyC7g==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.10.1.tgz", + "integrity": "sha512-8wTPym6edIrClW8FI2IoaePB91ETOtg36dOkj3bYcNe7aDMN2FXEoUa+WrmPc4xa1u2PQK46fUX2aCb+zo9rfw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.1" } }, "@babel/plugin-transform-sticky-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.8.3.tgz", - "integrity": "sha512-9Spq0vGCD5Bb4Z/ZXXSK5wbbLFMG085qd2vhL1JYu1WcQ5bXqZBAYRzU1d+p79GcHs2szYv5pVQCX13QgldaWw==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.1.tgz", + "integrity": "sha512-j17ojftKjrL7ufX8ajKvwRilwqTok4q+BjkknmQw9VNHnItTyMP5anPFzxFJdCQs7clLcWpCV3ma+6qZWLnGMA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-regex": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.1", + "@babel/helper-regex": "^7.10.1" } }, "@babel/plugin-transform-template-literals": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.8.3.tgz", - "integrity": "sha512-820QBtykIQOLFT8NZOcTRJ1UNuztIELe4p9DCgvj4NK+PwluSJ49we7s9FB1HIGNIYT7wFUJ0ar2QpCDj0escQ==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.1.tgz", + "integrity": "sha512-t7B/3MQf5M1T9hPCRG28DNGZUuxAuDqLYS03rJrIk2prj/UV7Z6FOneijhQhnv/Xa039vidXeVbvjK2SK5f7Gg==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-annotate-as-pure": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1" } }, "@babel/plugin-transform-typeof-symbol": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.8.4.tgz", - "integrity": "sha512-2QKyfjGdvuNfHsb7qnBBlKclbD4CfshH2KvDabiijLMGXPHJXGxtDzwIF7bQP+T0ysw8fYTtxPafgfs/c1Lrqg==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.1.tgz", + "integrity": "sha512-qX8KZcmbvA23zDi+lk9s6hC1FM7jgLHYIjuLgULgc8QtYnmB3tAVIYkNoKRQ75qWBeyzcoMoK8ZQmogGtC/w0g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.1" + } + }, + "@babel/plugin-transform-unicode-escapes": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.10.1.tgz", + "integrity": "sha512-zZ0Poh/yy1d4jeDWpx/mNwbKJVwUYJX73q+gyh4bwtG0/iUlzdEu0sLMda8yuDFS6LBQlT/ST1SJAR6zYwXWgw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.1" } }, "@babel/plugin-transform-unicode-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.8.3.tgz", - "integrity": "sha512-+ufgJjYdmWfSQ+6NS9VGUR2ns8cjJjYbrbi11mZBTaWm+Fui/ncTLFF28Ei1okavY+xkojGr1eJxNsWYeA5aZw==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.1.tgz", + "integrity": "sha512-Y/2a2W299k0VIUdbqYm9X2qS6fE0CUBhhiPpimK6byy7OJ/kORLlIX+J6UrjgNu5awvs62k+6RSslxhcvVw2Tw==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-create-regexp-features-plugin": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1" } }, "@babel/preset-env": { - "version": "7.9.5", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.9.5.tgz", - "integrity": "sha512-eWGYeADTlPJH+wq1F0wNfPbVS1w1wtmMJiYk55Td5Yu28AsdR9AsC97sZ0Qq8fHqQuslVSIYSGJMcblr345GfQ==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.9.0", - "@babel/helper-compilation-targets": "^7.8.7", - "@babel/helper-module-imports": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-proposal-async-generator-functions": "^7.8.3", - "@babel/plugin-proposal-dynamic-import": "^7.8.3", - "@babel/plugin-proposal-json-strings": "^7.8.3", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-proposal-numeric-separator": "^7.8.3", - "@babel/plugin-proposal-object-rest-spread": "^7.9.5", - "@babel/plugin-proposal-optional-catch-binding": "^7.8.3", - "@babel/plugin-proposal-optional-chaining": "^7.9.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.8.3", + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.10.2.tgz", + "integrity": "sha512-MjqhX0RZaEgK/KueRzh+3yPSk30oqDKJ5HP5tqTSB1e2gzGS3PLy7K0BIpnp78+0anFuSwOeuCf1zZO7RzRvEA==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.10.1", + "@babel/helper-compilation-targets": "^7.10.2", + "@babel/helper-module-imports": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1", + "@babel/plugin-proposal-async-generator-functions": "^7.10.1", + "@babel/plugin-proposal-class-properties": "^7.10.1", + "@babel/plugin-proposal-dynamic-import": "^7.10.1", + "@babel/plugin-proposal-json-strings": "^7.10.1", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.10.1", + "@babel/plugin-proposal-numeric-separator": "^7.10.1", + "@babel/plugin-proposal-object-rest-spread": "^7.10.1", + "@babel/plugin-proposal-optional-catch-binding": "^7.10.1", + "@babel/plugin-proposal-optional-chaining": "^7.10.1", + "@babel/plugin-proposal-private-methods": "^7.10.1", + "@babel/plugin-proposal-unicode-property-regex": "^7.10.1", "@babel/plugin-syntax-async-generators": "^7.8.0", + "@babel/plugin-syntax-class-properties": "^7.10.1", "@babel/plugin-syntax-dynamic-import": "^7.8.0", "@babel/plugin-syntax-json-strings": "^7.8.0", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", - "@babel/plugin-syntax-numeric-separator": "^7.8.0", + "@babel/plugin-syntax-numeric-separator": "^7.10.1", "@babel/plugin-syntax-object-rest-spread": "^7.8.0", "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", "@babel/plugin-syntax-optional-chaining": "^7.8.0", - "@babel/plugin-syntax-top-level-await": "^7.8.3", - "@babel/plugin-transform-arrow-functions": "^7.8.3", - "@babel/plugin-transform-async-to-generator": "^7.8.3", - "@babel/plugin-transform-block-scoped-functions": "^7.8.3", - "@babel/plugin-transform-block-scoping": "^7.8.3", - "@babel/plugin-transform-classes": "^7.9.5", - "@babel/plugin-transform-computed-properties": "^7.8.3", - "@babel/plugin-transform-destructuring": "^7.9.5", - "@babel/plugin-transform-dotall-regex": "^7.8.3", - "@babel/plugin-transform-duplicate-keys": "^7.8.3", - "@babel/plugin-transform-exponentiation-operator": "^7.8.3", - "@babel/plugin-transform-for-of": "^7.9.0", - "@babel/plugin-transform-function-name": "^7.8.3", - "@babel/plugin-transform-literals": "^7.8.3", - "@babel/plugin-transform-member-expression-literals": "^7.8.3", - "@babel/plugin-transform-modules-amd": "^7.9.0", - "@babel/plugin-transform-modules-commonjs": "^7.9.0", - "@babel/plugin-transform-modules-systemjs": "^7.9.0", - "@babel/plugin-transform-modules-umd": "^7.9.0", + "@babel/plugin-syntax-top-level-await": "^7.10.1", + "@babel/plugin-transform-arrow-functions": "^7.10.1", + "@babel/plugin-transform-async-to-generator": "^7.10.1", + "@babel/plugin-transform-block-scoped-functions": "^7.10.1", + "@babel/plugin-transform-block-scoping": "^7.10.1", + "@babel/plugin-transform-classes": "^7.10.1", + "@babel/plugin-transform-computed-properties": "^7.10.1", + "@babel/plugin-transform-destructuring": "^7.10.1", + "@babel/plugin-transform-dotall-regex": "^7.10.1", + "@babel/plugin-transform-duplicate-keys": "^7.10.1", + "@babel/plugin-transform-exponentiation-operator": "^7.10.1", + "@babel/plugin-transform-for-of": "^7.10.1", + "@babel/plugin-transform-function-name": "^7.10.1", + "@babel/plugin-transform-literals": "^7.10.1", + "@babel/plugin-transform-member-expression-literals": "^7.10.1", + "@babel/plugin-transform-modules-amd": "^7.10.1", + "@babel/plugin-transform-modules-commonjs": "^7.10.1", + "@babel/plugin-transform-modules-systemjs": "^7.10.1", + "@babel/plugin-transform-modules-umd": "^7.10.1", "@babel/plugin-transform-named-capturing-groups-regex": "^7.8.3", - "@babel/plugin-transform-new-target": "^7.8.3", - "@babel/plugin-transform-object-super": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.9.5", - "@babel/plugin-transform-property-literals": "^7.8.3", - "@babel/plugin-transform-regenerator": "^7.8.7", - "@babel/plugin-transform-reserved-words": "^7.8.3", - "@babel/plugin-transform-shorthand-properties": "^7.8.3", - "@babel/plugin-transform-spread": "^7.8.3", - "@babel/plugin-transform-sticky-regex": "^7.8.3", - "@babel/plugin-transform-template-literals": "^7.8.3", - "@babel/plugin-transform-typeof-symbol": "^7.8.4", - "@babel/plugin-transform-unicode-regex": "^7.8.3", + "@babel/plugin-transform-new-target": "^7.10.1", + "@babel/plugin-transform-object-super": "^7.10.1", + "@babel/plugin-transform-parameters": "^7.10.1", + "@babel/plugin-transform-property-literals": "^7.10.1", + "@babel/plugin-transform-regenerator": "^7.10.1", + "@babel/plugin-transform-reserved-words": "^7.10.1", + "@babel/plugin-transform-shorthand-properties": "^7.10.1", + "@babel/plugin-transform-spread": "^7.10.1", + "@babel/plugin-transform-sticky-regex": "^7.10.1", + "@babel/plugin-transform-template-literals": "^7.10.1", + "@babel/plugin-transform-typeof-symbol": "^7.10.1", + "@babel/plugin-transform-unicode-escapes": "^7.10.1", + "@babel/plugin-transform-unicode-regex": "^7.10.1", "@babel/preset-modules": "^0.1.3", - "@babel/types": "^7.9.5", - "browserslist": "^4.9.1", + "@babel/types": "^7.10.2", + "browserslist": "^4.12.0", "core-js-compat": "^3.6.2", "invariant": "^2.2.2", "levenary": "^1.1.1", "semver": "^5.5.0" + }, + "dependencies": { + "@babel/helper-module-imports": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.1.tgz", + "integrity": "sha512-SFxgwYmZ3HZPyZwJRiVNLRHWuW2OgE5k2nrVs6D9Iv4PPnXVffuEHy83Sfx/l4SqF+5kyJXjAyUmrG7tNm+qVg==", + "dev": true, + "requires": { + "@babel/types": "^7.10.1" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz", + "integrity": "sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw==", + "dev": true + }, + "@babel/types": { + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.2.tgz", + "integrity": "sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/preset-modules": { @@ -861,40 +1332,78 @@ } }, "@babel/runtime": { - "version": "7.9.2", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.2.tgz", - "integrity": "sha512-NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q==", + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.2.tgz", + "integrity": "sha512-6sF3uQw2ivImfVIl62RZ7MXhO2tap69WeWK57vAaimT6AZbE4FbqjdEJIN1UqoD6wI6B+1n9UiagafH1sxjOtg==", "dev": true, "requires": { "regenerator-runtime": "^0.13.4" } }, "@babel/template": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", - "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.1.tgz", + "integrity": "sha512-OQDg6SqvFSsc9A0ej6SKINWrpJiNonRIniYondK2ViKhB06i3c0s+76XUft71iqBEe9S1OKsHwPAjfHnuvnCig==", "dev": true, "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.6", - "@babel/types": "^7.8.6" + "@babel/code-frame": "^7.10.1", + "@babel/parser": "^7.10.1", + "@babel/types": "^7.10.1" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz", + "integrity": "sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw==", + "dev": true + }, + "@babel/types": { + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.2.tgz", + "integrity": "sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/traverse": { - "version": "7.9.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.5.tgz", - "integrity": "sha512-c4gH3jsvSuGUezlP6rzSJ6jf8fYjLj3hsMZRx/nX0h+fmHN0w+ekubRrHPqnMec0meycA2nwCsJ7dC8IPem2FQ==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.1.tgz", + "integrity": "sha512-C/cTuXeKt85K+p08jN6vMDz8vSV0vZcI0wmQ36o6mjbuo++kPMdpOYw23W2XH04dbRt9/nMEfA4W3eR21CD+TQ==", "dev": true, "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.9.5", - "@babel/helper-function-name": "^7.9.5", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.9.0", - "@babel/types": "^7.9.5", + "@babel/code-frame": "^7.10.1", + "@babel/generator": "^7.10.1", + "@babel/helper-function-name": "^7.10.1", + "@babel/helper-split-export-declaration": "^7.10.1", + "@babel/parser": "^7.10.1", + "@babel/types": "^7.10.1", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.13" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz", + "integrity": "sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw==", + "dev": true + }, + "@babel/types": { + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.2.tgz", + "integrity": "sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/types": { @@ -909,18 +1418,18 @@ } }, "@rollup/plugin-alias": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-alias/-/plugin-alias-3.1.0.tgz", - "integrity": "sha512-IzoejtAqdfwAvx4D0bztAJFoL5Js36kJgnbO00zfI1B9jf9G80vWysyG0C4+E6w5uG5hz0EeetPpoBWKdNktCQ==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-alias/-/plugin-alias-3.1.1.tgz", + "integrity": "sha512-hNcQY4bpBUIvxekd26DBPgF7BT4mKVNDF5tBG4Zi+3IgwLxGYRY0itHs9D0oLVwXM5pvJDWJlBQro+au8WaUWw==", "dev": true, "requires": { "slash": "^3.0.0" } }, "@rollup/plugin-commonjs": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-11.1.0.tgz", - "integrity": "sha512-Ycr12N3ZPN96Fw2STurD21jMqzKwL9QuFhms3SD7KKRK7oaXUsBU9Zt0jL/rOPHiPYisI21/rXGO3jr9BnLHUA==", + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-13.0.0.tgz", + "integrity": "sha512-Anxc3qgkAi7peAyesTqGYidG5GRim9jtg8xhmykNaZkImtvjA7Wsqep08D2mYsqw1IF7rA3lYfciLgzUSgRoqw==", "dev": true, "requires": { "@rollup/pluginutils": "^3.0.8", @@ -933,36 +1442,38 @@ } }, "@rollup/plugin-json": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-4.0.3.tgz", - "integrity": "sha512-QMUT0HZNf4CX17LMdwaslzlYHUKTYGuuk34yYIgZrNdu+pMEfqMS55gck7HEeHBKXHM4cz5Dg1OVwythDdbbuQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-4.1.0.tgz", + "integrity": "sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw==", "dev": true, "requires": { "@rollup/pluginutils": "^3.0.8" } }, "@rollup/plugin-node-resolve": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-7.1.3.tgz", - "integrity": "sha512-RxtSL3XmdTAE2byxekYLnx+98kEUOrPHF/KRVjLH+DEIHy6kjIw7YINQzn+NXiH/NTrQLAwYs0GWB+csWygA9Q==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-8.0.1.tgz", + "integrity": "sha512-KIeAmueDDaYMqMBnUngLVVZhURwxA12nq/YB6nGm5/JpVyOMwI1fCVU3oL/dAnnLBG7oiPXntO5LHOiMrfNXCA==", "dev": true, "requires": { "@rollup/pluginutils": "^3.0.8", "@types/resolve": "0.0.8", "builtin-modules": "^3.1.0", + "deep-freeze": "^0.0.1", + "deepmerge": "^4.2.2", "is-module": "^1.0.0", "resolve": "^1.14.2" } }, "@rollup/pluginutils": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.0.9.tgz", - "integrity": "sha512-TLZavlfPAZYI7v33wQh4mTP6zojne14yok3DNSLcjoG/Hirxfkonn6icP5rrNWRn8nZsirJBFFpijVOJzkUHDg==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", "dev": true, "requires": { "@types/estree": "0.0.39", "estree-walker": "^1.0.1", - "micromatch": "^4.0.2" + "picomatch": "^2.2.2" } }, "@types/estree": { @@ -972,9 +1483,9 @@ "dev": true }, "@types/node": { - "version": "13.13.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-13.13.2.tgz", - "integrity": "sha512-LB2R1Oyhpg8gu4SON/mfforE525+Hi/M1ineICEDftqNVTyFg1aRIeGuTvXAoWHc4nbrFncWtJgMmoyRvuGh7A==", + "version": "14.0.13", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.13.tgz", + "integrity": "sha512-rouEWBImiRaSJsVA+ITTFM6ZxibuAlTuNOCyxVbwreu6k6+ujs7DfnU9o+PShFhET78pMBl3eH+AGSI5eOTkPA==", "dev": true }, "@types/resolve": { @@ -1101,9 +1612,9 @@ "dev": true }, "caniuse-lite": { - "version": "1.0.30001046", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001046.tgz", - "integrity": "sha512-CsGjBRYWG6FvgbyGy+hBbaezpwiqIOLkxQPY4A4Ea49g1eNsnQuESB+n4QM0BKii1j80MyJ26Ir5ywTQkbRE4g==", + "version": "1.0.30001081", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001081.tgz", + "integrity": "sha512-iZdh3lu09jsUtLE6Bp8NAbJskco4Y3UDtkR3GTCJGsbMowBU5IWDFF79sV2ws7lSqTzWyKazxam2thasHymENQ==", "dev": true }, "chalk": { @@ -1244,6 +1755,18 @@ } } }, + "deep-freeze": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/deep-freeze/-/deep-freeze-0.0.1.tgz", + "integrity": "sha1-OgsABd4YZygZ39OM0x+RF5yJPoQ=", + "dev": true + }, + "deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "dev": true + }, "define-properties": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", @@ -1280,9 +1803,9 @@ "integrity": "sha512-9xUSSj7qcUxz+0r4X3+bwUNttEfGfK5AH+LVa1aTpqdAfrN5VhROYCfcF+up4hp5OL7IUKcZJJrzAGipQRDoiQ==" }, "electron-to-chromium": { - "version": "1.3.418", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.418.tgz", - "integrity": "sha512-i2QrQtHes5fK/F9QGG5XacM5WKEuR322fxTYF9e8O9Gu0mc0WmjjwGpV8c7Htso6Zf2Di18lc3SIPxmMeRFBug==", + "version": "1.3.466", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.466.tgz", + "integrity": "sha512-eieqkoM2hCkZZRhETKyCouMziDV3l4XEKHRLuzcHG+HV+P7PeODU/z9HAmBgMQkzvHg2DoyQhfIDmmeguLZT/Q==", "dev": true }, "es-abstract": { @@ -1523,9 +2046,9 @@ "dev": true }, "is-callable": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", - "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", + "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==", "dev": true }, "is-date-object": { @@ -1574,21 +2097,29 @@ "dev": true }, "is-reference": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.1.4.tgz", - "integrity": "sha512-uJA/CDPO3Tao3GTrxYn6AwkM4nUPJiGGYu5+cB8qbC7WGFlrKZbiRo7SFKxUAEpFUfiHofWCXBUNhvYJMh+6zw==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.0.tgz", + "integrity": "sha512-ZVxq+5TkOx6GQdnoMm2aRdCKADdcrOWXLGzGT+vIA8DMpqEJaRk5AL1bS80zJ2bjHunVmjdzfCt0e4BymIEqKQ==", "dev": true, "requires": { - "@types/estree": "0.0.39" + "@types/estree": "0.0.44" + }, + "dependencies": { + "@types/estree": { + "version": "0.0.44", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.44.tgz", + "integrity": "sha512-iaIVzr+w2ZJ5HkidlZ3EJM8VTZb2MJLCjw3V+505yVts0gRC4UMvjw0d1HPtGqI/HQC/KdsYtayfzl+AXY2R8g==", + "dev": true + } } }, "is-regex": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", - "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz", + "integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==", "dev": true, "requires": { - "has": "^1.0.3" + "has-symbols": "^1.0.1" } }, "is-set": { @@ -1643,22 +2174,28 @@ "dev": true }, "jest-worker": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz", - "integrity": "sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==", + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.0.0.tgz", + "integrity": "sha512-pPaYa2+JnwmiZjK9x7p9BoZht+47ecFCDFA/CJxspHzeDvQcfVBLWzCiWyo+EGrSiQMWZtCFo9iSvMZnAAo8vw==", "dev": true, "requires": { "merge-stream": "^2.0.0", - "supports-color": "^6.1.0" + "supports-color": "^7.0.0" }, "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "has-flag": "^4.0.0" } } } @@ -1739,16 +2276,6 @@ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", "dev": true }, - "micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.0.5" - } - }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", @@ -1771,9 +2298,9 @@ "dev": true }, "node-releases": { - "version": "1.1.53", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.53.tgz", - "integrity": "sha512-wp8zyQVwef2hpZ/dJH7SfSrIPD6YoJz6BDQDpGEkcA0s3LpAQoxBIYmfIq6QAhC1DhwsyCgTaTTcONwX8qzCuQ==", + "version": "1.1.58", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.58.tgz", + "integrity": "sha512-NxBudgVKiRh/2aPWMgPR7bPTX0VPmGx5QBwCtdHitnqFE5/O8DeBXuIMH1nwNnw/aMo6AjOrpsHzfY3UbUJ7yg==", "dev": true }, "normalize-path": { @@ -1888,6 +2415,15 @@ "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", "dev": true }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, "re-emitter": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/re-emitter/-/re-emitter-1.1.3.tgz", @@ -1913,9 +2449,9 @@ } }, "regenerate": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", - "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.1.tgz", + "integrity": "sha512-j2+C8+NtXQgEKWk49MMP5P/u2GhnahTtVkRIHr5R5lVRlbKvmQ+oS+A5aLKWp2ma5VkT8sh6v+v4hbH0YHR66A==", "dev": true }, "regenerate-unicode-properties": { @@ -1968,9 +2504,9 @@ } }, "regjsgen": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.1.tgz", - "integrity": "sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg==", + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", + "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==", "dev": true }, "regjsparser": { @@ -2009,9 +2545,9 @@ } }, "rollup": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.7.2.tgz", - "integrity": "sha512-SdtTZVMMVSPe7SNv4exUyPXARe5v/p3TeeG3LRA5WabLPJt4Usi3wVrvVlyAUTG40JJmqS6zbIHt2vWTss2prw==", + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.15.0.tgz", + "integrity": "sha512-HAk4kyXiV5sdNDnbKWk5zBPnkX/DAgx09Kbp8rRIRDVsTUVN3vnSowR7ZHkV6/lAiE6c2TQ8HtYb72aCPGW4Jw==", "dev": true, "requires": { "fsevents": "~2.1.2" @@ -2034,16 +2570,15 @@ "dev": true }, "rollup-plugin-terser": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-5.3.0.tgz", - "integrity": "sha512-XGMJihTIO3eIBsVGq7jiNYOdDMb3pVxuzY0uhOE/FM4x/u9nQgr3+McsjzqBn3QfHIpNSZmFnpoKAwHBEcsT7g==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-6.1.0.tgz", + "integrity": "sha512-4fB3M9nuoWxrwm39habpd4hvrbrde2W2GG4zEGPQg1YITNkM3Tqur5jSuXlWNzbv/2aMLJ+dZJaySc3GCD8oDw==", "dev": true, "requires": { - "@babel/code-frame": "^7.5.5", - "jest-worker": "^24.9.0", - "rollup-pluginutils": "^2.8.2", - "serialize-javascript": "^2.1.2", - "terser": "^4.6.2" + "@babel/code-frame": "^7.8.3", + "jest-worker": "^26.0.0", + "serialize-javascript": "^3.0.0", + "terser": "^4.7.0" } }, "rollup-pluginutils": { @@ -2076,10 +2611,13 @@ "dev": true }, "serialize-javascript": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-2.1.2.tgz", - "integrity": "sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ==", - "dev": true + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-3.1.0.tgz", + "integrity": "sha512-JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } }, "shelljs": { "version": "0.8.4", @@ -2264,9 +2802,9 @@ } }, "tape": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/tape/-/tape-5.0.0.tgz", - "integrity": "sha512-+fi4WiHuvxpKL6GpcvnG5PXfzopgw9h1JM9CJdpEPAbyU3r3VjRgt059fD6Up2/u6BQXmmxKmUMm6mXQP+HS3w==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/tape/-/tape-5.0.1.tgz", + "integrity": "sha512-wVsOl2shKPcjdJdc8a+PwacvrOdJZJ57cLUXlxW4TQ2R6aihXwG0m0bKm4mA4wjtQNTaLMCrYNEb4f9fjHKUYQ==", "dev": true, "requires": { "deep-equal": "^2.0.3", @@ -2297,9 +2835,9 @@ } }, "terser": { - "version": "4.6.12", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.6.12.tgz", - "integrity": "sha512-fnIwuaKjFPANG6MAixC/k1TDtnl1YlPLUlLVIxxGZUn1gfUx2+l3/zGNB72wya+lgsb50QBi2tUV75RiODwnww==", + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.7.0.tgz", + "integrity": "sha512-Lfb0RiZcjRDXCC3OSHJpEkxJ9Qeqs6mp2v4jf2MHfy8vGERmVDuvjXdd/EnP5Deme5F2yBRBymKmKHCBg2echw==", "dev": true, "requires": { "commander": "^2.20.0", diff --git a/package.json b/package.json index ac4a0c92a..296c53ca2 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": "13.2.0", + "version": "13.3.0", "main": "./builds/compromise.js", "unpkg": "./builds/compromise.min.js", "module": "./builds/compromise.mjs", @@ -54,21 +54,21 @@ "efrt-unpack": "2.2.0" }, "devDependencies": { - "@babel/core": "7.9.0", - "@babel/preset-env": "7.9.5", - "@rollup/plugin-alias": "3.1.0", - "@rollup/plugin-commonjs": "11.1.0", - "@rollup/plugin-json": "4.0.3", - "@rollup/plugin-node-resolve": "7.1.3", + "@babel/core": "7.10.2", + "@babel/preset-env": "7.10.2", + "@rollup/plugin-alias": "3.1.1", + "@rollup/plugin-commonjs": "13.0.0", + "@rollup/plugin-json": "4.1.0", + "@rollup/plugin-node-resolve": "8.0.1", "amble": "1.0.0", "efrt": "2.2.2", - "rollup": "2.7.2", + "rollup": "2.15.0", "rollup-plugin-babel": "4.4.0", "rollup-plugin-filesize-check": "0.0.1", - "rollup-plugin-terser": "5.3.0", + "rollup-plugin-terser": "6.1.0", "shelljs": "0.8.4", "tap-dancer": "0.2.0", - "tape": "5.0.0" + "tape": "5.0.1" }, "eslintIgnore": [ "builds/*.js", diff --git a/plugins/dates/builds/compromise-dates.js b/plugins/dates/builds/compromise-dates.js index adba954c2..d30782341 100644 --- a/plugins/dates/builds/compromise-dates.js +++ b/plugins/dates/builds/compromise-dates.js @@ -1,4 +1,4 @@ -/* compromise-dates 0.0.5 MIT */ +/* compromise-dates 0.0.6 MIT */ (function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : @@ -74,6 +74,19 @@ return _setPrototypeOf(o, p); } + function _isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + + try { + Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); + return true; + } catch (e) { + return false; + } + } + function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); @@ -90,6 +103,25 @@ return _assertThisInitialized(self); } + function _createSuper(Derived) { + var hasNativeReflectConstruct = _isNativeReflectConstruct(); + + return function _createSuperInternal() { + var Super = _getPrototypeOf(Derived), + result; + + if (hasNativeReflectConstruct) { + var NewTarget = _getPrototypeOf(this).constructor; + + result = Reflect.construct(Super, arguments, NewTarget); + } else { + result = Super.apply(this, arguments); + } + + return _possibleConstructorReturn(this, result); + }; + } + //ambiguous 'may' and 'march' var preps = '(in|by|before|during|on|until|after|of|within|all)'; //6 @@ -803,9 +835,7 @@ "-10|n": "11/honolulu,11/johnston,11/rarotonga,11/tahiti" }; - var _build$1 = - /*#__PURE__*/ - Object.freeze({ + var _build$1 = /*#__PURE__*/Object.freeze({ 'default': _build }); //prefixes for iana names.. @@ -4984,9 +5014,7 @@ var _04Timezone = parseTimezone; - var Unit = - /*#__PURE__*/ - function () { + var Unit = /*#__PURE__*/function () { function Unit(input, unit, context) { _classCallCheck(this, Unit); @@ -5103,17 +5131,17 @@ var Unit_1 = Unit; - var Day = - /*#__PURE__*/ - function (_Unit) { + var Day = /*#__PURE__*/function (_Unit) { _inherits(Day, _Unit); + var _super = _createSuper(Day); + function Day(input, unit, context) { var _this; _classCallCheck(this, Day); - _this = _possibleConstructorReturn(this, _getPrototypeOf(Day).call(this, input, unit, context)); + _this = _super.call(this, input, unit, context); _this.unit = 'day'; return _this; } @@ -5121,17 +5149,17 @@ return Day; }(Unit_1); - var Month = - /*#__PURE__*/ - function (_Unit2) { + var Month = /*#__PURE__*/function (_Unit2) { _inherits(Month, _Unit2); + var _super2 = _createSuper(Month); + function Month(input, unit, context) { var _this2; _classCallCheck(this, Month); - _this2 = _possibleConstructorReturn(this, _getPrototypeOf(Month).call(this, input, unit, context)); + _this2 = _super2.call(this, input, unit, context); _this2.unit = 'month'; return _this2; } @@ -5139,17 +5167,17 @@ return Month; }(Unit_1); - var Quarter = - /*#__PURE__*/ - function (_Unit3) { + var Quarter = /*#__PURE__*/function (_Unit3) { _inherits(Quarter, _Unit3); + var _super3 = _createSuper(Quarter); + function Quarter(input, unit, context) { var _this3; _classCallCheck(this, Quarter); - _this3 = _possibleConstructorReturn(this, _getPrototypeOf(Quarter).call(this, input, unit, context)); + _this3 = _super3.call(this, input, unit, context); _this3.unit = 'quarter'; return _this3; } @@ -5157,17 +5185,17 @@ return Quarter; }(Unit_1); - var Year = - /*#__PURE__*/ - function (_Unit4) { + var Year = /*#__PURE__*/function (_Unit4) { _inherits(Year, _Unit4); + var _super4 = _createSuper(Year); + function Year(input, unit, context) { var _this4; _classCallCheck(this, Year); - _this4 = _possibleConstructorReturn(this, _getPrototypeOf(Year).call(this, input, unit, context)); + _this4 = _super4.call(this, input, unit, context); _this4.unit = 'year'; return _this4; } @@ -5175,17 +5203,17 @@ return Year; }(Unit_1); - var WeekDay = - /*#__PURE__*/ - function (_Unit5) { + var WeekDay = /*#__PURE__*/function (_Unit5) { _inherits(WeekDay, _Unit5); + var _super5 = _createSuper(WeekDay); + function WeekDay(input, unit, context) { var _this5; _classCallCheck(this, WeekDay); - _this5 = _possibleConstructorReturn(this, _getPrototypeOf(WeekDay).call(this, input, unit, context)); + _this5 = _super5.call(this, input, unit, context); _this5.unit = 'week'; _this5.d = _this5.d.day(input); _this5.weekDay = _this5.d.dayName(); //assume a wednesday in the future @@ -5217,17 +5245,17 @@ }(Unit_1); // like 'feb 2' - var CalendarDate = - /*#__PURE__*/ - function (_Unit6) { + var CalendarDate = /*#__PURE__*/function (_Unit6) { _inherits(CalendarDate, _Unit6); + var _super6 = _createSuper(CalendarDate); + function CalendarDate(input, unit, context) { var _this6; _classCallCheck(this, CalendarDate); - _this6 = _possibleConstructorReturn(this, _getPrototypeOf(CalendarDate).call(this, input, unit, context)); + _this6 = _super6.call(this, input, unit, context); _this6.unit = 'day'; return _this6; } @@ -6002,7 +6030,7 @@ if (m.found) ; // 'in june' - m = doc.match('^(on|during|in) [*]'); + m = doc.match('^(on|during|in) [*]', 0); if (m.found) { var _d = _03ParseDate(m, context); @@ -6104,7 +6132,11 @@ str = obj.start.format(fmt); if (obj.end) { - str += ' to ' + obj.start.format(fmt); + var end = obj.start.format(fmt); + + if (str !== end) { + str += ' to ' + end; + } } doc.replaceWith(str, { @@ -6146,17 +6178,17 @@ world.postProcess(_01Tag); /** */ - var Dates = - /*#__PURE__*/ - function (_Doc) { + var Dates = /*#__PURE__*/function (_Doc) { _inherits(Dates, _Doc); + var _super = _createSuper(Dates); + function Dates(list, from, w) { var _this; _classCallCheck(this, Dates); - _this = _possibleConstructorReturn(this, _getPrototypeOf(Dates).call(this, list, from, w)); + _this = _super.call(this, list, from, w); _this.context = {}; return _this; } diff --git a/plugins/dates/builds/compromise-dates.js.map b/plugins/dates/builds/compromise-dates.js.map index 71aab8092..e66eb37df 100644 --- a/plugins/dates/builds/compromise-dates.js.map +++ b/plugins/dates/builds/compromise-dates.js.map @@ -1 +1 @@ -{"version":3,"file":"compromise-dates.js","sources":["../src/01-tag/00-basic.js","../src/01-tag/01-values.js","../src/01-tag/02-dates.js","../src/01-tag/03-sections.js","../src/01-tag/04-time.js","../src/01-tag/05-shifts.js","../src/01-tag/06-fixup.js","../src/01-tag/index.js","../src/data/_tags.js","../node_modules/spacetime/builds/spacetime.mjs","../src/data/_timezones.js","../src/data/words/dates.js","../src/data/words/durations.js","../src/data/words/holidays.js","../src/data/words/times.js","../src/data/words/index.js","../src/02-getDate/00-normalize.js","../src/03-parseDate/sections/01-shift.js","../src/03-parseDate/sections/02-time.js","../src/03-parseDate/sections/03-relative.js","../src/03-parseDate/sections/04-timezone.js","../src/03-parseDate/Unit.js","../src/03-parseDate/_units.js","../src/03-parseDate/steps/00-implied.js","../src/03-parseDate/steps/01-duration.js","../node_modules/spacetime-holiday/builds/spacetime-holiday.js","../src/03-parseDate/steps/02-holidays.js","../src/03-parseDate/steps/03-explicit.js","../src/03-parseDate/index.js","../src/02-getDate/01-parse-range.js","../src/02-getDate/index.js","../src/data/_abbrevs.js","../src/methods.js","../src/index.js"],"sourcesContent":["//ambiguous 'may' and 'march'\nconst preps = '(in|by|before|during|on|until|after|of|within|all)' //6\nconst thisNext = '(last|next|this|previous|current|upcoming|coming)' //2\nconst sections = '(start|end|middle|starting|ending|midpoint|beginning)' //2\nconst seasons = '(spring|summer|winter|fall|autumn)'\n\n//ensure a year is approximately typical for common years\n//please change in one thousand years\nconst tagYear = (m, reason) => {\n if (m.found !== true) {\n return\n }\n let term = m.termList()[0]\n if (term) {\n let num = parseInt(term.clean, 10)\n if (num && num > 1000 && num < 3000) {\n m.tag('Year', reason)\n }\n }\n}\n//same, but for less-confident values\nconst tagYearSafe = (m, reason) => {\n if (m.found !== true) {\n return\n }\n let term = m.termList()[0]\n if (term) {\n let num = parseInt(term.clean, 10)\n if (num && num > 1900 && num < 2030) {\n m.tag('Year', reason)\n }\n }\n}\n\nconst fixDates = function(doc) {\n doc.match('in the (night|evening|morning|afternoon|day|daytime)').tag('Time', 'in-the-night')\n doc.match('(#Value|#Time) (am|pm)').tag('Time', 'value-ampm')\n\n //months:\n let month = doc.if('#Month')\n if (month.found === true) {\n //June 5-7th\n month.match(`#Month #Date+`).tag('Date', 'correction-numberRange')\n //5th of March\n month.match('#Value of #Month').tag('Date', 'value-of-month')\n //5 March\n month.match('#Cardinal #Month').tag('Date', 'cardinal-month')\n //march 5 to 7\n month.match('#Month #Value to #Value').tag('Date', 'value-to-value')\n //march the 12th\n month.match('#Month the #Value').tag('Date', 'month-the-value')\n }\n\n //months:\n let val = doc.if('#Value')\n if (val.found === true) {\n //june 7\n val\n .match('(#WeekDay|#Month) #Value')\n .ifNo('#Money')\n .tag('Date', 'date-value')\n\n //7 june\n val\n .match('#Value (#WeekDay|#Month)')\n .ifNo('#Money')\n .tag('Date', 'value-date')\n\n //may twenty five\n val\n .match('#TextValue #TextValue')\n .if('#Date')\n .tag('#Date', 'textvalue-date')\n\n //eg 'year'\n let duration = val.if('#Duration')\n if (duration.found === true) {\n //for 4 months\n duration.match('for #Value #Duration').tag('Date', 'for-x-duration')\n //two days before\n duration.match('#Value #Duration #Conjunction').tag('Date', 'val-duration-conjunction')\n //for four days\n duration.match(`${preps}? #Value #Duration`).tag('Date', 'value-duration')\n //two years old\n duration.match('#Value #Duration old').unTag('Date', 'val-years-old')\n }\n }\n\n //seasons\n let season = doc.if(seasons)\n if (season.found === true) {\n season.match(`${preps}? ${thisNext} ${seasons}`).tag('Date', 'thisNext-season')\n season.match(`the? ${sections} of ${seasons}`).tag('Date', 'section-season')\n season.match(`${seasons} ${preps}? #Cardinal`).tag('Date', 'season-year')\n }\n\n //rest-dates\n let date = doc.if('#Date')\n if (date.found === true) {\n //june the 5th\n date.match('#Date the? #Ordinal').tag('Date', 'correction')\n //last month\n date.match(`${thisNext} #Date`).tag('Date', 'thisNext')\n //by 5 March\n date.match('due? (by|before|after|until) #Date').tag('Date', 'by')\n //next feb\n date.match('(last|next|this|previous|current|upcoming|coming|the) #Date').tag('Date', 'next-feb')\n //start of june\n date.match(`the? ${sections} of #Date`).tag('Date', 'section-of')\n //fifth week in 1998\n date.match('#Ordinal #Duration in #Date').tag('Date', 'duration-in')\n //early in june\n date.match('(early|late) (at|in)? the? #Date').tag('Time', 'early-evening')\n //tomorrow before 3\n date\n .match('#Date (by|before|after|at|@|about) #Cardinal')\n .not('^#Date')\n .tag('Time', 'date-before-Cardinal')\n //saturday am\n date\n .match('#Date [(am|pm)]', 0)\n .unTag('Verb')\n .unTag('Copula')\n .tag('Time', 'date-am')\n //feb to june\n date\n .match('#Date (#Preposition|to) #Date')\n .ifNo('#Duration')\n .tag('Date', 'date-prep-date')\n }\n\n //year/cardinal tagging\n let cardinal = doc.if('#Cardinal')\n if (cardinal.found === true) {\n let v = cardinal.match(`#Date #Value [#Cardinal]`, 0)\n tagYear(v, 'date-value-year')\n //scoops up a bunch\n v = cardinal.match(`#Date+ [#Cardinal]`, 0)\n tagYear(v, 'date-year')\n //feb 8 2018\n v = cardinal.match(`#Month #Value [#Cardinal]`, 0)\n tagYear(v, 'month-value-year')\n //feb 8 to 10th 2018\n v = cardinal.match(`#Month #Value to #Value [#Cardinal]`, 0)\n tagYear(v, 'month-range-year')\n //in 1998\n v = cardinal.match(`(in|of|by|during|before|starting|ending|for|year) [#Cardinal]`, 0)\n tagYear(v, 'in-year')\n //q2 2009\n v = cardinal.match('(q1|q2|q3|q4) [#Cardinal]', 0)\n tagYear(v, 'in-year')\n //2nd quarter 2009\n v = cardinal.match('#Ordinal quarter [#Cardinal]', 0)\n tagYear(v, 'in-year')\n //in the year 1998\n v = cardinal.match('the year [#Cardinal]', 0)\n tagYear(v, 'in-year')\n //it was 1998\n v = cardinal.match('it (is|was) [#Cardinal]', 0)\n tagYearSafe(v, 'in-year')\n }\n\n let time = doc.if('#Time')\n if (time.found === true) {\n //by 6pm\n time.match('(by|before|after|at|@|about) #Time').tag('Time', 'preposition-time')\n //7 7pm\n time\n .match('#Cardinal #Time')\n .not('#Year')\n .tag('Time', 'value-time')\n //2pm est\n time.match('#Time [(eastern|pacific|central|mountain)]', 0).tag('Date', 'timezone')\n //6pm est\n time.match('#Time [(est|pst|gmt)]', 0).tag('Date', 'timezone abbr')\n }\n\n return doc\n}\nmodule.exports = fixDates\n","const here = 'date-values'\n//\nconst values = function(doc) {\n if (doc.has('#Value')) {\n //june 5 to 7th\n doc.match('#Month #Value to #Value of? #Year?').tag('Date', here);\n //5 to 7th june\n doc.match('#Value to #Value of? #Month #Year?').tag('Date', here);\n //third week of may\n doc.match('#Value #Duration of #Date').tag('Date', here);\n //two days after\n doc.match('#Value+ #Duration (after|before|into|later|afterwards|ago)?').tag('Date', here);\n //two days\n doc.match('#Value #Date').tag('Date', here);\n //june 5th\n doc.match('#Date #Value').tag('Date', here);\n //tuesday at 5\n doc.match('#Date #Preposition #Value').tag('Date', here);\n //tomorrow before 3\n doc.match('#Date (after|before|during|on|in) #Value').tag('Date', here);\n //a year and a half\n doc.match('#Value (year|month|week|day) and a half').tag('Date', here);\n //5 and a half years\n doc.match('#Value and a half (years|months|weeks|days)').tag('Date', here);\n //on the fifth\n doc.match('on the #Ordinal').tag('Date', here);\n }\n return doc\n}\nmodule.exports = values\n","const here = 'date-tagger'\n//\nconst dateTagger = function(doc) {\n\n doc.match('(spring|summer|winter|fall|autumn|springtime|wintertime|summertime)').match('#Noun').tag('Season', here)\n doc.match('(q1|q2|q3|q4)').tag('FinancialQuarter', here)\n doc.match('(this|next|last|current) quarter').tag('FinancialQuarter', here)\n doc.match('(this|next|last|current) season').tag('Season', here)\n\n if (doc.has('#Date')) {\n //friday to sunday\n doc.match('#Date #Preposition #Date').tag('Date', here);\n //once a day..\n doc.match('(once|twice) (a|an|each) #Date').tag('Date', here);\n //TODO:fixme\n doc.match('(by|until|on|in|at|during|over|every|each|due) the? #Date').tag('Date', here);\n //tuesday\n doc.match('#Date+').tag('Date', here);\n //by June\n doc.match('(by|until|on|in|at|during|over|every|each|due) the? #Date').tag('Date', here);\n //a year after..\n doc.match('a #Duration').tag('Date', here);\n //between x and y\n doc.match('(between|from) #Date').tag('Date', here);\n doc.match('(to|until|upto) #Date').tag('Date', here);\n doc.match('#Date and #Date').tag('Date', here);\n //during this june\n doc.match('(by|until|after|before|during|on|in|following) (next|this|last)? (#Date|#Date)').tag('Date', here);\n //day after next\n doc.match('the? #Date after next one?').tag('Date', here);\n //approximately...\n doc.match('(about|approx|approximately|around) #Date').tag('Date', here);\n }\n return doc\n}\nmodule.exports = dateTagger\n","const here = 'section-tagger'\n//\nconst sectionTagger = function(doc) {\n if (doc.has('#Date')) {\n // //next september\n doc.match('this? (last|next|past|this|previous|current|upcoming|coming|the) #Date').tag('Date', here);\n //starting this june\n doc.match('(starting|beginning|ending) #Date').tag('Date', here);\n //start of june\n doc.match('the? (start|end|middle|beginning) of (last|next|this|the) (#Date|#Date)').tag('Date', here);\n //this coming june\n doc.match('(the|this) #Date').tag('Date', here);\n }\n return doc\n}\nmodule.exports = sectionTagger\n","const here = 'time-tagger'\n\n//\nconst timeTagger = function(doc) {\n // quarter to seven\n if (doc.has('#Cardinal')) {\n doc.match('(half|quarter|25|15|10|5) (past|after|to) #Cardinal').tag('Time', here)\n }\n //timezone\n if (doc.has('#Date')) {\n //eastern daylight time\n doc.match('#Noun (standard|daylight|central|mountain)? time').tag('Timezone', here)\n //utc+5\n doc.match('/^utc[+-][0-9]/').tag('Timezone', here)\n doc.match('/^gmt[+-][0-9]/').tag('Timezone', here)\n\n doc.match('(in|for|by|near|at) #Timezone').tag('Timezone', here)\n\n // https://raw.githubusercontent.com/davispuh/TimezoneParser/master/data/abbreviations.yml\n // let abbr =\n // '(acdt|acst|ace|dmt|ist|tse|addt|adt|aedt|aest|ahdt|ahst|akdt|akst|amt|nst|apt|awt|gmt|awdt|awst|bdst|bst|bdt|nwt|bmt|wet|bost|cddt|cdt|cet|cmt|cpt|cst|cwt|chst|gst|eat|eddt|edt|eest|eet|emt|ept|ewt|est|ffmt|fmt|hdt|hst|hkst|hkt|hmt|iddt|idt|jmt|imt|jdt|jst|kdt|kst|kmt|lst|mddt|mdst|msd|msk|mdt|mmt|mpt|pdt|pst|mst|mwt|nddt|ndt|npt|nzdt|nzmt|nzst|pddt|pkst|pkt|plmt|pmmt|pmt|ppmt|ppt|pwt|qmt|rmt|sast|sdmt|set|sjmt|smt|sst|tbmt|tmt|utc|wast|wemt|wib|wit|wita|wmt|yddt|ydt|ypt|ywt|yst)'\n // doc.match(abbr).tag('Timezone', here)\n }\n return doc\n}\nmodule.exports = timeTagger\n","const here = 'shift-tagger'\n//\nconst shiftTagger = function(doc) {\n if (doc.has('#Date')) {\n //two weeks before\n doc.match('#Cardinal #Duration (before|after)').tag('#DateShift', here)\n // in two weeks\n doc.match('in #Cardinal #Duration').tag('#DateShift', here)\n //two weeks and three days before\n doc.match('#Cardinal #Duration and? #DateShift').tag('#DateShift', here)\n doc.match('#DateShift and #Cardinal #Duration').tag('#DateShift', here)\n // doc.match('#Cardinal #Duration and? #DateShift').tag('#DateShift', here)\n }\n return doc\n}\nmodule.exports = shiftTagger\n","const here = 'fix-tagger'\n//\nconst fixUp = function(doc) {\n //fixups\n if (doc.has('#Date')) {\n //first day by monday\n let oops = doc.match('#Date+ by #Date+')\n if (oops.found && !oops.has('^due')) {\n oops.match('^#Date+').unTag('Date', 'by-monday')\n }\n\n let d = doc.match('#Date+')\n //'spa day'\n d.match('^day$').unTag('Date', 'spa-day')\n\n let knownDate = '(yesterday|today|tomorrow)'\n if (d.has(knownDate)) {\n //yesterday 7\n d.match(`${knownDate} [#Value]$`).unTag('Date', 'yesterday-7')\n //7 yesterday\n d.match(`^[#Value] ${knownDate}$`, 0).unTag('Date', '7 yesterday')\n //friday yesterday\n d.match(`#WeekDay+ ${knownDate}$`)\n .unTag('Date')\n .lastTerm()\n .tag('Date', 'fri-yesterday')\n\n // yesterday yesterday\n // d.match(`${knownDate}+ ${knownDate}$`)\n // .unTag('Date')\n // .lastTerm()\n // .tag('Date', here)\n d.match(`(this|last|next) #Date ${knownDate}$`)\n .unTag('Date')\n .lastTerm()\n .tag('Date', 'this month yesterday')\n }\n //tomorrow on 5\n d.match(`on #Cardinal$`).unTag('Date', here)\n //this tomorrow\n d.match(`this tomorrow`)\n .terms(0)\n .unTag('Date', 'this-tomorrow')\n //q2 2019\n d.match(`(q1|q2|q3|q4) #Year`).tag('Date', here)\n //5 tuesday\n // d.match(`^#Value #WeekDay`).terms(0).unTag('Date');\n //5 next week\n d.match(`^#Value (this|next|last)`)\n .terms(0)\n .unTag('Date', here)\n\n if (d.has('(last|this|next)')) {\n //this month 7\n d.match(`(last|this|next) #Duration #Value`)\n .terms(2)\n .unTag('Date', here)\n //7 this month\n d.match(`!#Month #Value (last|this|next) #Date`)\n .terms(0)\n .unTag('Date', here)\n }\n //january 5 5\n if (d.has('(#Year|#Time|#TextValue|#NumberRange)') === false) {\n d.match('(#Month|#WeekDay) #Value #Value')\n .terms(2)\n .unTag('Date', here)\n }\n //between june\n if (d.has('^between') && !d.has('and .')) {\n d.unTag('Date', here)\n }\n //june june\n if (d.has('#Month #Month') && !d.has('@hasHyphen') && !d.has('@hasComma')) {\n d.match('#Month')\n .lastTerm()\n .unTag('Date', 'month-month')\n }\n }\n return doc\n}\nmodule.exports = fixUp\n","const methods = [\n require('./00-basic'),\n require('./01-values'),\n require('./02-dates'),\n require('./03-sections'),\n require('./04-time'),\n require('./05-shifts'),\n require('./06-fixup'),\n]\n// run each of the taggers\nconst tagDate = function(doc) {\n methods.forEach(fn => fn(doc))\n return doc\n}\nmodule.exports = tagDate\n","module.exports = {\n FinancialQuarter: {\n isA: 'Date',\n },\n // 'summer'\n Season: {\n isA: 'Date',\n },\n // '1982'\n Year: {\n isA: ['Date'],\n notA: 'RomanNumeral',\n },\n // 'months'\n Duration: {\n isA: ['Date', 'Noun'],\n },\n // 'easter'\n Holiday: {\n isA: ['Date', 'Noun'],\n },\n // 'PST'\n Timezone: {\n isA: ['Date', 'Noun'],\n },\n // 'two weeks before'\n DateShift: {\n isA: ['Date'],\n },\n}\n","function createCommonjsModule(fn, module) {\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n}\n\nfunction getCjsExportFromNamespace (n) {\n\treturn n && n['default'] || n;\n}\n\nvar fns = createCommonjsModule(function (module, exports) {\n//git:blame @JuliasCaesar https://www.timeanddate.com/date/leapyear.html\nexports.isLeapYear = year => (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n// unsurprisingly-nasty `typeof date` call\nexports.isDate = d => Object.prototype.toString.call(d) === '[object Date]' && !isNaN(d.valueOf());\nexports.isArray = input => Object.prototype.toString.call(input) === '[object Array]';\nexports.isObject = input => Object.prototype.toString.call(input) === '[object Object]';\n\nexports.zeroPad = (str, len = 2) => {\n let pad = '0';\n str = str + '';\n return str.length >= len ? str : new Array(len - str.length + 1).join(pad) + str\n};\n\nexports.titleCase = str => {\n if (!str) {\n return ''\n }\n return str[0].toUpperCase() + str.substr(1)\n};\n\nexports.ordinal = i => {\n let j = i % 10;\n let k = i % 100;\n if (j === 1 && k !== 11) {\n return i + 'st'\n }\n if (j === 2 && k !== 12) {\n return i + 'nd'\n }\n if (j === 3 && k !== 13) {\n return i + 'rd'\n }\n return i + 'th'\n};\n\n//strip 'st' off '1st'..\nexports.toCardinal = str => {\n str = String(str);\n str = str.replace(/([0-9])(st|nd|rd|th)$/i, '$1');\n return parseInt(str, 10)\n};\n\n//used mostly for cleanup of unit names, like 'months'\nexports.normalize = (str = '') => {\n str = str.toLowerCase().trim();\n str = str.replace(/ies$/, 'y'); //'centuries'\n str = str.replace(/s$/, '');\n str = str.replace(/-/g, '');\n if (str === 'day') {\n return 'date'\n }\n return str\n};\n\nexports.getEpoch = tmp => {\n //support epoch\n if (typeof tmp === 'number') {\n return tmp\n }\n //suport date objects\n if (exports.isDate(tmp)) {\n return tmp.getTime()\n }\n if (tmp.epoch) {\n return tmp.epoch\n }\n return null\n};\n\n//make sure this input is a spacetime obj\nexports.beADate = (d, s) => {\n if (exports.isObject(d) === false) {\n return s.clone().set(d)\n }\n return d\n};\n\nexports.formatTimezone = (offset, delimiter = '') => {\n const absOffset = Math.abs(offset);\n const sign = offset > 0 ? '+' : '-';\n return `${sign}${exports.zeroPad(absOffset)}${delimiter}00`\n};\n});\nvar fns_1 = fns.isLeapYear;\nvar fns_2 = fns.isDate;\nvar fns_3 = fns.isArray;\nvar fns_4 = fns.isObject;\nvar fns_5 = fns.zeroPad;\nvar fns_6 = fns.titleCase;\nvar fns_7 = fns.ordinal;\nvar fns_8 = fns.toCardinal;\nvar fns_9 = fns.normalize;\nvar fns_10 = fns.getEpoch;\nvar fns_11 = fns.beADate;\nvar fns_12 = fns.formatTimezone;\n\nconst zeroPad = fns.zeroPad;\n\nconst toString = d =>\n zeroPad(d.getMonth() + 1) + '/' + zeroPad(d.getDate()) + ':' + zeroPad(d.getHours());\n\n// a timezone will begin with a specific offset in january\n// then some will switch to something else between november-march\nconst shouldChange = (epoch, start, end, defaultOffset) => {\n //note: this has a cray order-of-operations issue\n //we can't get the date, without knowing the timezone, and vice-versa\n //it's possible that we can miss a dst-change by a few hours.\n let d = new Date(epoch);\n //(try to mediate this a little?)\n let bias = d.getTimezoneOffset() || 0;\n let shift = bias + defaultOffset * 60; //in minutes\n shift = shift * 60 * 1000; //in ms\n d = new Date(epoch + shift);\n\n let current = toString(d);\n //eg. is it after ~november?\n if (current >= start) {\n //eg. is it before ~march~ too?\n if (current < end) {\n return true\n }\n }\n return false\n};\nvar summerTime = shouldChange;\n\n// this method avoids having to do a full dst-calculation on every operation\n// it reproduces some things in ./index.js, but speeds up spacetime considerably\nconst quickOffset = s => {\n let zones = s.timezones;\n let obj = zones[s.tz];\n if (obj === undefined) {\n console.warn(\"Warning: couldn't find timezone \" + s.tz);\n return 0\n }\n if (obj.dst === undefined) {\n return obj.offset\n }\n\n //get our two possible offsets\n let jul = obj.offset;\n let dec = obj.offset + 1; // assume it's the same for now\n if (obj.hem === 'n') {\n dec = jul - 1;\n }\n let split = obj.dst.split('->');\n let inSummer = summerTime(s.epoch, split[0], split[1], jul);\n if (inSummer === true) {\n return jul\n }\n return dec\n};\nvar quick = quickOffset;\n\nvar _build = {\n\t\"9|s\": \"2/dili,2/jayapura\",\n\t\"9|n\": \"2/chita,2/khandyga,2/pyongyang,2/seoul,2/tokyo,11/palau\",\n\t\"9.5|s|04/07:03->10/06:02\": \"4/adelaide,4/broken_hill,4/south,4/yancowinna\",\n\t\"9.5|s\": \"4/darwin,4/north\",\n\t\"8|s\": \"12/casey,2/kuala_lumpur,2/makassar,2/singapore,4/perth,4/west\",\n\t\"8|n|03/25:03->09/29:23\": \"2/ulan_bator\",\n\t\"8|n\": \"2/brunei,2/choibalsan,2/chongqing,2/chungking,2/harbin,2/hong_kong,2/irkutsk,2/kuching,2/macao,2/macau,2/manila,2/shanghai,2/taipei,2/ujung_pandang,2/ulaanbaatar\",\n\t\"8.75|s\": \"4/eucla\",\n\t\"7|s\": \"12/davis,2/jakarta,9/christmas\",\n\t\"7|n\": \"2/bangkok,2/barnaul,2/ho_chi_minh,2/hovd,2/krasnoyarsk,2/novokuznetsk,2/novosibirsk,2/phnom_penh,2/pontianak,2/saigon,2/tomsk,2/vientiane\",\n\t\"6|s\": \"12/vostok\",\n\t\"6|n\": \"2/almaty,2/bishkek,2/dacca,2/dhaka,2/kashgar,2/omsk,2/qyzylorda,2/thimbu,2/thimphu,2/urumqi,9/chagos\",\n\t\"6.5|n\": \"2/rangoon,9/cocos\",\n\t\"5|s\": \"12/mawson,9/kerguelen\",\n\t\"5|n\": \"2/aqtau,2/aqtobe,2/ashgabat,2/ashkhabad,2/atyrau,2/baku,2/dushanbe,2/karachi,2/oral,2/samarkand,2/tashkent,2/yekaterinburg,9/maldives\",\n\t\"5.75|n\": \"2/kathmandu,2/katmandu\",\n\t\"5.5|n\": \"2/calcutta,2/colombo,2/kolkata\",\n\t\"4|s\": \"9/reunion\",\n\t\"4|n\": \"2/dubai,2/muscat,2/tbilisi,2/yerevan,8/astrakhan,8/samara,8/saratov,8/ulyanovsk,8/volgograd,2/volgograd,9/mahe,9/mauritius\",\n\t\"4.5|n|03/22:00->09/21:24\": \"2/tehran\",\n\t\"4.5|n\": \"2/kabul\",\n\t\"3|s\": \"12/syowa,9/antananarivo\",\n\t\"3|n|03/31:03->10/27:04\": \"2/nicosia,8/athens,8/bucharest,8/helsinki,8/kiev,8/mariehamn,8/nicosia,8/riga,8/sofia,8/tallinn,8/uzhgorod,8/vilnius,8/zaporozhye\",\n\t\"3|n|03/31:02->10/27:03\": \"8/chisinau,8/tiraspol\",\n\t\"3|n|03/31:00->10/26:24\": \"2/beirut\",\n\t\"3|n|03/29:02->10/27:02\": \"2/jerusalem,2/tel_aviv\",\n\t\"3|n|03/29:00->10/26:01\": \"2/gaza,2/hebron\",\n\t\"3|n|03/29:00->10/25:01\": \"2/amman\",\n\t\"3|n|03/29:00->10/24:24\": \"2/damascus\",\n\t\"3|n\": \"0/addis_ababa,0/asmara,0/asmera,0/dar_es_salaam,0/djibouti,0/juba,0/kampala,0/mogadishu,0/nairobi,2/aden,2/baghdad,2/bahrain,2/istanbul,2/kuwait,2/qatar,2/riyadh,8/istanbul,8/kirov,8/minsk,8/moscow,8/simferopol,9/comoro,9/mayotte\",\n\t\"2|s|03/31:02->10/27:02\": \"12/troll\",\n\t\"2|s\": \"0/gaborone,0/harare,0/johannesburg,0/lubumbashi,0/lusaka,0/maputo,0/maseru,0/mbabane\",\n\t\"2|n|03/31:02->10/27:03\": \"0/ceuta,arctic/longyearbyen,3/jan_mayen,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\",\n\t\"2|n\": \"0/blantyre,0/bujumbura,0/cairo,0/khartoum,0/kigali,0/tripoli,8/kaliningrad\",\n\t\"1|s|04/02:01->09/03:03\": \"0/windhoek\",\n\t\"1|s\": \"0/kinshasa,0/luanda\",\n\t\"1|n|05/05:03->06/09:02\": \"0/casablanca,0/el_aaiun\",\n\t\"1|n|03/31:01->10/27:02\": \"3/canary,3/faeroe,3/faroe,3/madeira,8/belfast,8/dublin,8/guernsey,8/isle_of_man,8/jersey,8/lisbon,8/london\",\n\t\"1|n\": \"0/algiers,0/bangui,0/brazzaville,0/douala,0/lagos,0/libreville,0/malabo,0/ndjamena,0/niamey,0/porto-novo,0/tunis\",\n\t\"14|n\": \"11/kiritimati\",\n\t\"13|s|04/07:04->09/29:03\": \"11/apia\",\n\t\"13|s|01/15:02->11/05:03\": \"11/tongatapu\",\n\t\"13|n\": \"11/enderbury,11/fakaofo\",\n\t\"12|s|04/07:03->09/29:02\": \"12/mcmurdo,12/south_pole,11/auckland\",\n\t\"12|s|01/13:03->11/10:02\": \"11/fiji\",\n\t\"12|n\": \"2/anadyr,2/kamchatka,2/srednekolymsk,11/funafuti,11/kwajalein,11/majuro,11/nauru,11/tarawa,11/wake,11/wallis\",\n\t\"12.75|s|04/07:03->09/29:02\": \"11/chatham\",\n\t\"11|s\": \"12/macquarie,11/bougainville\",\n\t\"11|n\": \"2/magadan,2/sakhalin,11/efate,11/guadalcanal,11/kosrae,11/noumea,11/pohnpei,11/ponape\",\n\t\"11.5|n\": \"11/norfolk\",\n\t\"10|s|04/07:03->10/06:02\": \"4/act,4/canberra,4/currie,4/hobart,4/melbourne,4/nsw,4/sydney,4/tasmania,4/victoria\",\n\t\"10|s\": \"12/dumontdurville,4/brisbane,4/lindeman,4/queensland\",\n\t\"10|n\": \"2/ust-nera,2/vladivostok,2/yakutsk,11/chuuk,11/guam,11/port_moresby,11/saipan,11/truk,11/yap\",\n\t\"10.5|s|04/07:01->10/06:02\": \"4/lhi,4/lord_howe\",\n\t\"0|n|03/31:00->10/27:01\": \"1/scoresbysund,3/azores\",\n\t\"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,0/timbuktu,1/danmarkshavn,3/reykjavik,3/st_helena,13/gmt,13/gmt+0,13/gmt-0,13/gmt0,13/greenwich,13/utc,13/universal,13/zulu\",\n\t\"-9|n|03/10:02->11/03:02\": \"1/adak,1/atka\",\n\t\"-9|n\": \"11/gambier\",\n\t\"-9.5|n\": \"11/marquesas\",\n\t\"-8|n|03/10:02->11/03:02\": \"1/anchorage,1/juneau,1/metlakatla,1/nome,1/sitka,1/yakutat\",\n\t\"-8|n\": \"11/pitcairn\",\n\t\"-7|n|03/10:02->11/03:02\": \"1/dawson,1/ensenada,1/los_angeles,1/santa_isabel,1/tijuana,1/vancouver,1/whitehorse,6/pacific,6/yukon,10/bajanorte\",\n\t\"-7|n\": \"1/creston,1/dawson_creek,1/hermosillo,1/phoenix\",\n\t\"-6|s|04/06:22->09/07:22\": \"7/easterisland,11/easter\",\n\t\"-6|n|04/07:02->10/27:02\": \"1/chihuahua,1/mazatlan,10/bajasur\",\n\t\"-6|n|03/10:02->11/03:02\": \"1/boise,1/cambridge_bay,1/denver,1/edmonton,1/inuvik,1/ojinaga,1/shiprock,1/yellowknife,6/mountain\",\n\t\"-6|n\": \"1/belize,1/costa_rica,1/el_salvador,1/guatemala,1/managua,1/regina,1/swift_current,1/tegucigalpa,6/east-saskatchewan,6/saskatchewan,11/galapagos\",\n\t\"-5|s\": \"1/lima,1/rio_branco,5/acre\",\n\t\"-5|n|04/07:02->10/27:02\": \"1/bahia_banderas,1/merida,1/mexico_city,1/monterrey,10/general\",\n\t\"-5|n|03/12:03->11/05:01\": \"1/north_dakota\",\n\t\"-5|n|03/10:02->11/03:02\": \"1/chicago,1/knox_in,1/matamoros,1/menominee,1/rainy_river,1/rankin_inlet,1/resolute,1/winnipeg,6/central\",\n\t\"-5|n\": \"1/atikokan,1/bogota,1/cancun,1/cayman,1/coral_harbour,1/eirunepe,1/guayaquil,1/jamaica,1/panama,1/porto_acre\",\n\t\"-4|s|05/13:23->08/13:01\": \"12/palmer\",\n\t\"-4|s|04/06:24->09/08:00\": \"1/santiago,7/continental\",\n\t\"-4|s|03/23:24->10/06:00\": \"1/asuncion\",\n\t\"-4|s|02/16:24->11/03:00\": \"1/campo_grande,1/cuiaba\",\n\t\"-4|s\": \"1/la_paz,1/manaus,5/west\",\n\t\"-4|n|03/12:03->11/05:01\": \"1/indiana,1/kentucky\",\n\t\"-4|n|03/10:02->11/03:02\": \"1/detroit,1/fort_wayne,1/grand_turk,1/indianapolis,1/iqaluit,1/louisville,1/montreal,1/nassau,1/new_york,1/nipigon,1/pangnirtung,1/port-au-prince,1/thunder_bay,1/toronto,6/eastern\",\n\t\"-4|n|03/10:00->11/03:01\": \"1/havana\",\n\t\"-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\",\n\t\"-3|s\": \"1/argentina,1/buenos_aires,1/cordoba,1/fortaleza,1/montevideo,1/punta_arenas,1/sao_paulo,12/rothera,3/stanley,5/east\",\n\t\"-3|n|03/10:02->11/03:02\": \"1/glace_bay,1/goose_bay,1/halifax,1/moncton,1/thule,3/bermuda,6/atlantic\",\n\t\"-3|n\": \"1/araguaina,1/bahia,1/belem,1/catamarca,1/cayenne,1/jujuy,1/maceio,1/mendoza,1/paramaribo,1/recife,1/rosario,1/santarem\",\n\t\"-2|s\": \"5/denoronha\",\n\t\"-2|n|03/30:22->10/26:23\": \"1/godthab\",\n\t\"-2|n|03/10:02->11/03:02\": \"1/miquelon\",\n\t\"-2|n\": \"1/noronha,3/south_georgia\",\n\t\"-2.5|n|03/10:02->11/03:02\": \"1/st_johns,6/newfoundland\",\n\t\"-1|n\": \"3/cape_verde\",\n\t\"-11|n\": \"11/midway,11/niue,11/pago_pago,11/samoa\",\n\t\"-10|n\": \"11/honolulu,11/johnston,11/rarotonga,11/tahiti\"\n};\n\nvar _build$1 = /*#__PURE__*/Object.freeze({\n\t'default': _build\n});\n\n//prefixes for iana names..\nvar _prefixes = [\n 'africa',\n 'america',\n 'asia',\n 'atlantic',\n 'australia',\n 'brazil',\n 'canada',\n 'chile',\n 'europe',\n 'indian',\n 'mexico',\n 'pacific',\n 'antarctica',\n 'etc'\n];\n\nvar data = getCjsExportFromNamespace(_build$1);\n\nlet all = {};\nObject.keys(data).forEach(k => {\n let split = k.split('|');\n let obj = {\n offset: Number(split[0]),\n hem: split[1]\n };\n if (split[2]) {\n obj.dst = split[2];\n }\n let names = data[k].split(',');\n names.forEach(str => {\n str = str.replace(/(^[0-9]+)\\//, (before, num) => {\n num = Number(num);\n return _prefixes[num] + '/'\n });\n all[str] = obj;\n });\n});\n\nall['utc'] = {\n offset: 0,\n hem: 'n' //(sorry)\n};\n\n//add etc/gmt+n\nfor (let i = -14; i <= 14; i += 0.5) {\n let num = i;\n if (num > 0) {\n num = '+' + num;\n }\n let name = 'etc/gmt' + num;\n all[name] = {\n offset: i * -1, //they're negative!\n hem: 'n' //(sorry)\n };\n name = 'utc/gmt' + num; //this one too, why not.\n all[name] = {\n offset: i * -1,\n hem: 'n'\n };\n}\n// console.log(all)\n\n// console.log(Object.keys(all).length)\nvar unpack = all;\n\n//find the implicit iana code for this machine.\n//safely query the Intl object\n//based on - https://bitbucket.org/pellepim/jstimezonedetect/src\nconst fallbackTZ = 'utc'; //\n\n//this Intl object is not supported often, yet\nconst safeIntl = () => {\n if (typeof Intl === 'undefined' || typeof Intl.DateTimeFormat === 'undefined') {\n return null\n }\n let format = Intl.DateTimeFormat();\n if (typeof format === 'undefined' || typeof format.resolvedOptions === 'undefined') {\n return null\n }\n let timezone = format.resolvedOptions().timeZone;\n if (!timezone) {\n return null\n }\n return timezone.toLowerCase()\n};\n\nconst guessTz = () => {\n let timezone = safeIntl();\n if (timezone === null) {\n return fallbackTZ\n }\n return timezone\n};\n//do it once per computer\nvar guessTz_1 = guessTz;\n\nconst isOffset = /(\\-?[0-9]+)h(rs)?/i;\nconst isNumber = /(\\-?[0-9]+)/;\nconst utcOffset = /utc([\\-+]?[0-9]+)/i;\nconst gmtOffset = /gmt([\\-+]?[0-9]+)/i;\n\nconst toIana = function(num) {\n num = Number(num);\n if (num > -13 && num < 13) {\n num = num * -1; //it's opposite!\n num = (num > 0 ? '+' : '') + num; //add plus sign\n return 'etc/gmt' + num\n }\n return null\n};\n\nconst parseOffset = function(tz) {\n // '+5hrs'\n let m = tz.match(isOffset);\n if (m !== null) {\n return toIana(m[1])\n }\n // 'utc+5'\n m = tz.match(utcOffset);\n if (m !== null) {\n return toIana(m[1])\n }\n // 'GMT-5' (not opposite)\n m = tz.match(gmtOffset);\n if (m !== null) {\n let num = Number(m[1]) * -1;\n return toIana(num)\n }\n // '+5'\n m = tz.match(isNumber);\n if (m !== null) {\n return toIana(m[1])\n }\n return null\n};\nvar parseOffset_1 = parseOffset;\n\nconst local = guessTz_1();\n\n//add all the city names by themselves\nconst cities = Object.keys(unpack).reduce((h, k) => {\n let city = k.split('/')[1] || '';\n city = city.replace(/_/g, ' ');\n h[city] = k;\n return h\n}, {});\n\n//try to match these against iana form\nconst normalize = tz => {\n tz = tz.replace(/ time/g, '');\n tz = tz.replace(/ (standard|daylight|summer)/g, '');\n tz = tz.replace(/\\b(east|west|north|south)ern/g, '$1');\n tz = tz.replace(/\\b(africa|america|australia)n/g, '$1');\n tz = tz.replace(/\\beuropean/g, 'europe');\n tz = tz.replace(/\\islands/g, 'island');\n return tz\n};\n\n// try our best to reconcile the timzone to this given string\nconst lookupTz = (str, zones) => {\n if (!str) {\n return local\n }\n let tz = str.trim();\n let split = str.split('/');\n //support long timezones like 'America/Argentina/Rio_Gallegos'\n if (split.length > 2 && zones.hasOwnProperty(tz) === false) {\n tz = split[0] + '/' + split[1];\n }\n tz = tz.toLowerCase();\n if (zones.hasOwnProperty(tz) === true) {\n return tz\n }\n //lookup more loosely..\n tz = normalize(tz);\n if (zones.hasOwnProperty(tz) === true) {\n return tz\n }\n //try city-names\n if (cities.hasOwnProperty(tz) === true) {\n return cities[tz]\n }\n // //try to parse '-5h'\n if (/[0-9]/.test(tz) === true) {\n let id = parseOffset_1(tz);\n if (id) {\n return id\n }\n }\n\n throw new Error(\n \"Spacetime: Cannot find timezone named: '\" + str + \"'. Please enter an IANA timezone id.\"\n )\n};\nvar find = lookupTz;\n\nlet o = {\n millisecond: 1\n};\no.second = 1000;\no.minute = 60000;\no.hour = 3.6e6; // dst is supported post-hoc\no.day = 8.64e7; //\no.date = o.day;\no.month = 8.64e7 * 29.5; //(average)\no.week = 6.048e8;\no.year = 3.154e10; // leap-years are supported post-hoc\n//add plurals\nObject.keys(o).forEach(k => {\n o[k + 's'] = o[k];\n});\nvar milliseconds = o;\n\n//basically, step-forward/backward until js Date object says we're there.\nconst walk = (s, n, fn, unit, previous) => {\n let current = s.d[fn]();\n if (current === n) {\n return //already there\n }\n let startUnit = previous === null ? null : s.d[previous]();\n let original = s.epoch;\n //try to get it as close as we can\n let diff = n - current;\n s.epoch += milliseconds[unit] * diff;\n\n //DST edge-case: if we are going many days, be a little conservative\n if (unit === 'day' && Math.abs(diff) > 28) {\n //but don't push it over a month\n if (n < 28) {\n s.epoch += milliseconds.hour;\n }\n }\n //repair it if we've gone too far or something\n //(go by half-steps, just in case)\n const halfStep = milliseconds[unit] / 2;\n while (s.d[fn]() < n) {\n s.epoch += halfStep;\n }\n while (s.d[fn]() > n) {\n s.epoch -= halfStep;\n }\n //oops, did we change previous unit? revert it.\n if (previous !== null && startUnit !== s.d[previous]()) {\n // console.warn('spacetime warning: missed setting ' + unit)\n s.epoch = original;\n // i mean, but make it close...\n s.epoch += milliseconds[unit] * diff * 0.89; // i guess?\n }\n};\n//find the desired date by a increment/check while loop\nconst units = {\n year: {\n valid: n => n > -4000 && n < 4000,\n walkTo: (s, n) => walk(s, n, 'getFullYear', 'year', null)\n },\n month: {\n valid: n => n >= 0 && n <= 11,\n walkTo: (s, n) => {\n let d = s.d;\n let current = d.getMonth();\n let original = s.epoch;\n let startUnit = d.getFullYear();\n if (current === n) {\n return\n }\n //try to get it as close as we can..\n let diff = n - current;\n s.epoch += milliseconds.day * (diff * 28); //special case\n //oops, did we change the year? revert it.\n if (startUnit !== s.d.getFullYear()) {\n s.epoch = original;\n }\n //incriment by day\n while (s.d.getMonth() < n) {\n s.epoch += milliseconds.day;\n }\n while (s.d.getMonth() > n) {\n s.epoch -= milliseconds.day;\n }\n }\n },\n date: {\n valid: n => n > 0 && n <= 31,\n walkTo: (s, n) => walk(s, n, 'getDate', 'day', 'getMonth')\n },\n hour: {\n valid: n => n >= 0 && n < 24,\n walkTo: (s, n) => walk(s, n, 'getHours', 'hour', 'getDate')\n },\n minute: {\n valid: n => n >= 0 && n < 60,\n walkTo: (s, n) => walk(s, n, 'getMinutes', 'minute', 'getHours')\n },\n second: {\n valid: n => n >= 0 && n < 60,\n walkTo: (s, n) => {\n //do this one directly\n s.epoch = s.seconds(n).epoch;\n }\n },\n millisecond: {\n valid: n => n >= 0 && n < 1000,\n walkTo: (s, n) => {\n //do this one directly\n s.epoch = s.milliseconds(n).epoch;\n }\n }\n};\n\nconst walkTo = (s, wants) => {\n let keys = Object.keys(units);\n let old = s.clone();\n for (let i = 0; i < keys.length; i++) {\n let k = keys[i];\n let n = wants[k];\n if (n === undefined) {\n n = old[k]();\n }\n if (typeof n === 'string') {\n n = parseInt(n, 10);\n }\n //make-sure it's valid\n if (!units[k].valid(n)) {\n s.epoch = null;\n if (s.silent === false) {\n console.warn('invalid ' + k + ': ' + n);\n }\n return\n }\n // console.log(k, n)\n units[k].walkTo(s, n);\n }\n return\n};\n\nvar walk_1 = walkTo;\n\nlet shortMonths = [\n 'jan',\n 'feb',\n 'mar',\n 'apr',\n 'may',\n 'jun',\n 'jul',\n 'aug',\n 'sept',\n 'oct',\n 'nov',\n 'dec'\n];\nlet longMonths = [\n 'january',\n 'february',\n 'march',\n 'april',\n 'may',\n 'june',\n 'july',\n 'august',\n 'september',\n 'october',\n 'november',\n 'december'\n];\n\nfunction buildMapping() {\n const obj = {\n sep: 8 //support this format\n };\n for (let i = 0; i < shortMonths.length; i++) {\n obj[shortMonths[i]] = i;\n }\n for (let i = 0; i < longMonths.length; i++) {\n obj[longMonths[i]] = i;\n }\n return obj\n}\n\nvar months = {\n short: () => shortMonths,\n long: () => longMonths,\n mapping: () => buildMapping(),\n set: i18n => {\n shortMonths = i18n.short || shortMonths;\n longMonths = i18n.long || longMonths;\n }\n};\n\n//pull-apart ISO offsets, like \"+0100\"\nconst parseOffset$1 = (s, offset) => {\n if (!offset) {\n return s\n }\n //this is a fancy-move\n if (offset === 'Z') {\n offset = '+0000';\n }\n\n // according to ISO8601, tz could be hh:mm, hhmm or hh\n // so need few more steps before the calculation.\n let num = 0;\n\n // for (+-)hh:mm\n if (/^[\\+-]?[0-9]{2}:[0-9]{2}$/.test(offset)) {\n //support \"+01:00\"\n if (/:00/.test(offset) === true) {\n offset = offset.replace(/:00/, '');\n }\n //support \"+01:30\"\n if (/:30/.test(offset) === true) {\n offset = offset.replace(/:30/, '.5');\n }\n }\n\n // for (+-)hhmm\n if (/^[\\+-]?[0-9]{4}$/.test(offset)) {\n offset = offset.replace(/30$/, '.5');\n }\n\n num = parseFloat(offset);\n\n //divide by 100 or 10 - , \"+0100\", \"+01\"\n if (Math.abs(num) > 100) {\n num = num / 100;\n }\n //okay, try to match it to a utc timezone\n //remember - this is opposite! a -5 offset maps to Etc/GMT+5 ¯\\_(:/)_/¯\n //https://askubuntu.com/questions/519550/why-is-the-8-timezone-called-gmt-8-in-the-filesystem\n num *= -1;\n\n if (num >= 0) {\n num = '+' + num;\n }\n let tz = 'etc/gmt' + num;\n let zones = s.timezones;\n\n if (zones[tz]) {\n // log a warning if we're over-writing a given timezone?\n // console.log('changing timezone to: ' + tz)\n s.tz = tz;\n }\n return s\n};\nvar parseOffset_1$1 = parseOffset$1;\n\nconst parseTime = (s, str = '') => {\n str = str.replace(/^\\s+/, '').toLowerCase(); //trim\n //formal time formats - 04:30.23\n let arr = str.match(/([0-9]{1,2}):([0-9]{1,2}):?([0-9]{1,2})?[:\\.]?([0-9]{1,4})?/);\n if (arr !== null) {\n //validate it a little\n let h = Number(arr[1]);\n if (h < 0 || h > 24) {\n return s.startOf('day')\n }\n let m = Number(arr[2]); //don't accept '5:3pm'\n if (arr[2].length < 2 || m < 0 || m > 59) {\n return s.startOf('day')\n }\n s = s.hour(h);\n s = s.minute(m);\n s = s.seconds(arr[3] || 0);\n s = s.millisecond(arr[4] || 0);\n //parse-out am/pm\n let ampm = str.match(/[\\b0-9](am|pm)\\b/);\n if (ampm !== null && ampm[1]) {\n s = s.ampm(ampm[1]);\n }\n return s\n }\n //try an informal form - 5pm (no minutes)\n arr = str.match(/([0-9]+) ?(am|pm)/);\n if (arr !== null && arr[1]) {\n let h = Number(arr[1]);\n //validate it a little..\n if (h > 12 || h < 1) {\n return s.startOf('day')\n }\n s = s.hour(arr[1] || 0);\n s = s.ampm(arr[2]);\n s = s.startOf('hour');\n return s\n }\n //no time info found, use start-of-day\n s = s.startOf('day');\n return s\n};\nvar parseTime_1 = parseTime;\n\nconst monthLengths = [\n 31, // January - 31 days\n 28, // February - 28 days in a common year and 29 days in leap years\n 31, // March - 31 days\n 30, // April - 30 days\n 31, // May - 31 days\n 30, // June - 30 days\n 31, // July - 31 days\n 31, // August - 31 days\n 30, // September - 30 days\n 31, // October - 31 days\n 30, // November - 30 days\n 31 // December - 31 days\n];\nvar monthLengths_1 = monthLengths;\n\nconst isLeapYear = fns.isLeapYear;\n\n//given a month, return whether day number exists in it\nconst hasDate = obj => {\n //invalid values\n if (monthLengths_1.hasOwnProperty(obj.month) !== true) {\n return false\n }\n //support leap-year in february\n if (obj.month === 1) {\n if (isLeapYear(obj.year) && obj.date <= 29) {\n return true\n } else {\n return obj.date <= 28\n }\n }\n //is this date too-big for this month?\n let max = monthLengths_1[obj.month] || 0;\n if (obj.date <= max) {\n return true\n }\n return false\n};\nvar hasDate_1 = hasDate;\n\nconst months$1 = months.mapping();\n\n\n\n\n\nconst parseYear = (str = '') => {\n //support '18 -> 2018\n // str = str.replace(/^'([0-9]{2})/, '20$1')\n // str = str.replace('([0-9]+) ?b\\.?c\\.?$', '-$1')\n let year = parseInt(str.trim(), 10);\n year = year || new Date().getFullYear();\n return year\n};\n\nconst strFmt = [\n //iso-this 1998-05-30T22:00:00:000Z, iso-that 2017-04-03T08:00:00-0700\n {\n reg: /^(\\-?0?0?[0-9]{3,4})-([0-9]{1,2})-([0-9]{1,2})[T| ]([0-9.:]+)(Z|[0-9\\-\\+:]+)?$/,\n parse: (s, arr, givenTz, options) => {\n let month = parseInt(arr[2], 10) - 1;\n let obj = {\n year: arr[1],\n month,\n date: arr[3]\n };\n if (hasDate_1(obj) === false) {\n s.epoch = null;\n return s\n }\n parseOffset_1$1(s, arr[5]);\n walk_1(s, obj);\n s = parseTime_1(s, arr[4]);\n return s\n }\n },\n //iso \"2015-03-25\" or \"2015/03/25\" or \"2015/03/25 12:26:14 PM\"\n {\n reg: /^([0-9]{4})[\\-\\/]([0-9]{1,2})[\\-\\/]([0-9]{1,2}),?( [0-9]{1,2}:[0-9]{2}:?[0-9]{0,2}? ?(am|pm|gmt))?$/i,\n parse: (s, arr) => {\n let obj = {\n year: arr[1],\n month: parseInt(arr[2], 10) - 1,\n date: parseInt(arr[3], 10)\n };\n if (obj.month >= 12) {\n //support yyyy/dd/mm (weird, but ok)\n obj.date = parseInt(arr[2], 10);\n obj.month = parseInt(arr[3], 10) - 1;\n }\n if (hasDate_1(obj) === false) {\n s.epoch = null;\n return s\n }\n walk_1(s, obj);\n s = parseTime_1(s, arr[4]);\n return s\n }\n },\n //mm/dd/yyyy - uk/canada \"6/28/2019, 12:26:14 PM\"\n {\n 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,\n parse: (s, arr) => {\n let month = parseInt(arr[1], 10) - 1;\n let date = parseInt(arr[2], 10);\n //support dd/mm/yyy\n if (s.british || month >= 12) {\n date = parseInt(arr[1], 10);\n month = parseInt(arr[2], 10) - 1;\n }\n let year = arr[3] || new Date().getFullYear();\n let obj = {\n year,\n month,\n date\n };\n if (hasDate_1(obj) === false) {\n s.epoch = null;\n return s\n }\n walk_1(s, obj);\n s = parseTime_1(s, arr[4]);\n return s\n }\n },\n //common british format - \"25-feb-2015\"\n {\n reg: /^([0-9]{1,2})[\\-\\/]([a-z]+)[\\-\\/]?([0-9]{4})?$/i,\n parse: (s, arr) => {\n let month = months$1[arr[2].toLowerCase()];\n let year = parseYear(arr[3]);\n let obj = {\n year,\n month,\n date: fns.toCardinal(arr[1] || '')\n };\n if (hasDate_1(obj) === false) {\n s.epoch = null;\n return s\n }\n walk_1(s, obj);\n s = parseTime_1(s, arr[4]);\n return s\n }\n },\n\n //Long \"Mar 25 2015\"\n //February 22, 2017 15:30:00\n {\n reg: /^([a-z]+) ([0-9]{1,2}(?:st|nd|rd|th)?),?( [0-9]{4})?( ([0-9:]+( ?am| ?pm| ?gmt)?))?$/i,\n parse: (s, arr) => {\n let month = months$1[arr[1].toLowerCase()];\n let year = parseYear(arr[3]);\n let obj = {\n year,\n month,\n date: fns.toCardinal(arr[2] || '')\n };\n if (hasDate_1(obj) === false) {\n s.epoch = null;\n return s\n }\n walk_1(s, obj);\n s = parseTime_1(s, arr[4]);\n return s\n }\n },\n //February 2017 (implied date)\n {\n reg: /^([a-z]+) ([0-9]{4})$/i,\n parse: (s, arr) => {\n let month = months$1[arr[1].toLowerCase()];\n let year = parseYear(arr[2]);\n let obj = {\n year,\n month,\n date: 1\n };\n if (hasDate_1(obj) === false) {\n s.epoch = null;\n return s\n }\n walk_1(s, obj);\n s = parseTime_1(s, arr[4]);\n return s\n }\n },\n //Long \"25 Mar 2015\"\n {\n reg: /^([0-9]{1,2}(?:st|nd|rd|th)?) ([a-z]+),?( [0-9]{4})?,? ?([0-9]{1,2}:[0-9]{2}:?[0-9]{0,2}? ?(am|pm|gmt))?$/i,\n parse: (s, arr) => {\n let month = months$1[arr[2].toLowerCase()];\n if (!month) {\n return null\n }\n let year = parseYear(arr[3]);\n let obj = {\n year,\n month,\n date: fns.toCardinal(arr[1])\n };\n if (hasDate_1(obj) === false) {\n s.epoch = null;\n return s\n }\n walk_1(s, obj);\n s = parseTime_1(s, arr[4]);\n return s\n }\n },\n {\n // '200bc'\n reg: /^[0-9,]+ ?b\\.?c\\.?$/i,\n parse: (s, arr) => {\n let str = arr[0] || '';\n //make negative-year\n str = str.replace(/^([0-9,]+) ?b\\.?c\\.?$/i, '-$1');\n //remove commas\n str = str.replace(/,/g, '');\n let year = parseInt(str.trim(), 10);\n let d = new Date();\n let obj = {\n year,\n month: d.getMonth(),\n date: d.getDate()\n };\n if (hasDate_1(obj) === false) {\n s.epoch = null;\n return s\n }\n walk_1(s, obj);\n s = parseTime_1(s);\n return s\n }\n },\n {\n // '200ad'\n reg: /^[0-9,]+ ?(a\\.?d\\.?|c\\.?e\\.?)$/i,\n parse: (s, arr) => {\n let str = arr[0] || '';\n //remove commas\n str = str.replace(/,/g, '');\n let year = parseInt(str.trim(), 10);\n let d = new Date();\n let obj = {\n year,\n month: d.getMonth(),\n date: d.getDate()\n };\n if (hasDate_1(obj) === false) {\n s.epoch = null;\n return s\n }\n walk_1(s, obj);\n s = parseTime_1(s);\n return s\n }\n },\n {\n // '1992'\n reg: /^[0-9]{4}( ?a\\.?d\\.?)?$/i,\n parse: (s, arr) => {\n let year = parseYear(arr[0]);\n let d = new Date();\n let obj = {\n year,\n month: d.getMonth(),\n date: d.getDate()\n };\n if (hasDate_1(obj) === false) {\n s.epoch = null;\n return s\n }\n walk_1(s, obj);\n s = parseTime_1(s);\n return s\n }\n }\n];\n\nvar strParse = strFmt;\n\nconst dates = {\n now: s => {\n s.epoch = Date.now();\n return s\n },\n tonight: s => {\n s.epoch = Date.now();\n s = s.hour(18);\n return s\n },\n today: s => {\n s.epoch = Date.now();\n return s\n },\n tomorrow: s => {\n s.epoch = Date.now();\n s = s.add(1, 'day');\n s = s.startOf('day');\n return s\n },\n yesterday: s => {\n s.epoch = Date.now();\n s = s.subtract(1, 'day');\n s = s.startOf('day');\n return s\n },\n christmas: s => {\n let year = new Date().getFullYear();\n s = s.set([year, 11, 25, 18, 0, 0]); // Dec 25\n return s\n },\n 'new years': s => {\n let year = new Date().getFullYear();\n s = s.set([year, 11, 31, 18, 0, 0]); // Dec 31\n return s\n }\n};\ndates['new years eve'] = dates['new years'];\nvar namedDates = dates;\n\n//we have to actually parse these inputs ourselves\n// - can't use built-in js parser ;(\n//=========================================\n// ISO Date\t \"2015-03-25\"\n// Short Date\t\"03/25/2015\" or \"2015/03/25\"\n// Long Date\t\"Mar 25 2015\" or \"25 Mar 2015\"\n// Full Date\t\"Wednesday March 25 2015\"\n//=========================================\n\n//-- also -\n// if the given epoch is really small, they've probably given seconds and not milliseconds\n// anything below this number is likely (but not necessarily) a mistaken input.\n// this may seem like an arbitrary number, but it's 'within jan 1970'\n// this is only really ambiguous until 2054 or so\nconst minimumEpoch = 2500000000;\n\nconst defaults = {\n year: new Date().getFullYear(),\n month: 0,\n date: 1\n};\n\n//support [2016, 03, 01] format\nconst handleArray = (s, arr) => {\n let order = ['year', 'month', 'date', 'hour', 'minute', 'second', 'millisecond'];\n for (let i = 0; i < order.length; i++) {\n let num = arr[i] || defaults[order[i]] || 0;\n s = s[order[i]](num);\n }\n return s\n};\n//support {year:2016, month:3} format\nconst handleObject = (s, obj) => {\n obj = Object.assign({}, defaults, obj);\n let keys = Object.keys(obj);\n for (let i = 0; i < keys.length; i++) {\n let unit = keys[i];\n //make sure we have this method\n if (s[unit] === undefined || typeof s[unit] !== 'function') {\n continue\n }\n //make sure the value is a number\n if (obj[unit] === null || obj[unit] === undefined || obj[unit] === '') {\n continue\n }\n let num = obj[unit] || defaults[unit] || 0;\n s = s[unit](num);\n }\n return s\n};\n\n//find the epoch from different input styles\nconst parseInput = (s, input, givenTz) => {\n //if we've been given a epoch number, it's easy\n if (typeof input === 'number') {\n if (input > 0 && input < minimumEpoch && s.silent === false) {\n console.warn(' - Warning: You are setting the date to January 1970.');\n console.warn(' - did input seconds instead of milliseconds?');\n }\n s.epoch = input;\n return s\n }\n //set tmp time\n s.epoch = Date.now();\n if (input === null || input === undefined) {\n return s //k, we're good.\n }\n //support input of Date() object\n if (fns.isDate(input) === true) {\n s.epoch = input.getTime();\n return s\n }\n //support [2016, 03, 01] format\n if (fns.isArray(input) === true) {\n s = handleArray(s, input);\n return s\n }\n //support {year:2016, month:3} format\n if (fns.isObject(input) === true) {\n //support spacetime object as input\n if (input.epoch) {\n s.epoch = input.epoch;\n s.tz = input.tz;\n return s\n }\n s = handleObject(s, input);\n return s\n }\n //input as a string..\n if (typeof input !== 'string') {\n return s\n }\n //little cleanup..\n input = input.replace(/\\b(mon|tues|wed|wednes|thu|thurs|fri|sat|satur|sun)(day)?\\b/i, '');\n input = input.replace(/,/g, '');\n input = input.replace(/ +/g, ' ').trim();\n //try some known-words, like 'now'\n if (namedDates.hasOwnProperty(input) === true) {\n s = namedDates[input](s);\n return s\n }\n //try each text-parse template, use the first good result\n for (let i = 0; i < strParse.length; i++) {\n let m = input.match(strParse[i].reg);\n if (m) {\n let res = strParse[i].parse(s, m, givenTz);\n if (res !== null) {\n return res\n }\n }\n }\n if (s.silent === false) {\n console.warn(\"Warning: couldn't parse date-string: '\" + input + \"'\");\n }\n s.epoch = null;\n return s\n};\nvar input = parseInput;\n\nlet shortDays = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'];\nlet longDays = ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday'];\n\nvar days = {\n short: () => shortDays,\n long: () => longDays,\n set: i18n => {\n shortDays = i18n.short || shortDays;\n longDays = i18n.long || longDays;\n }\n};\n\n// create the timezone offset part of an iso timestamp\n// it's kind of nuts how involved this is\n// \"+01:00\", \"+0100\", or simply \"+01\"\nconst isoOffset = s => {\n let offset = s.timezone().current.offset;\n const isNegative = offset < 0;\n let minute = '00';\n //handle 5.5 → '5:30'\n if (Math.abs(offset % 1) === 0.5) {\n minute = '30';\n if (offset >= 0) {\n offset = Math.floor(offset);\n } else {\n offset = Math.ceil(offset);\n }\n }\n if (isNegative) {\n //handle negative sign\n offset *= -1;\n offset = fns.zeroPad(offset, 2);\n offset = '-' + offset;\n } else {\n offset = fns.zeroPad(offset, 2);\n offset = '+' + offset;\n }\n offset = offset + ':' + minute;\n //'Z' means 00\n if (offset === '+00:00') {\n offset = 'Z';\n }\n return offset\n};\n\nvar _offset = isoOffset;\n\nconst format = {\n day: s => fns.titleCase(s.dayName()),\n 'day-short': s => fns.titleCase(days.short()[s.day()]),\n 'day-number': s => s.day(),\n 'day-ordinal': s => fns.ordinal(s.day()),\n 'day-pad': s => fns.zeroPad(s.day()),\n\n date: s => s.date(),\n 'date-ordinal': s => fns.ordinal(s.date()),\n 'date-pad': s => fns.zeroPad(s.date()),\n\n month: s => fns.titleCase(s.monthName()),\n 'month-short': s => fns.titleCase(months.short()[s.month()]),\n 'month-number': s => s.month(),\n 'month-ordinal': s => fns.ordinal(s.month()),\n 'month-pad': s => fns.zeroPad(s.month()),\n 'iso-month': s => fns.zeroPad(s.month() + 1), //1-based months\n\n year: s => {\n let year = s.year();\n if (year > 0) {\n return year\n }\n year = Math.abs(year);\n return year + ' BC'\n },\n 'year-short': s => {\n let year = s.year();\n if (year > 0) {\n return `'${String(s.year()).substr(2, 4)}`\n }\n year = Math.abs(year);\n return year + ' BC'\n },\n 'iso-year': s => {\n let year = s.year();\n let isNegative = year < 0;\n let str = fns.zeroPad(Math.abs(year), 4); //0-padded\n if (isNegative) {\n //negative years are for some reason 6-digits ('-00008')\n str = fns.zeroPad(str, 6);\n str = '-' + str;\n }\n return str\n },\n\n time: s => s.time(),\n 'time-24': s => `${s.hour24()}:${fns.zeroPad(s.minute())}`,\n hour: s => s.hour12(),\n 'hour-pad': s => fns.zeroPad(s.hour12()),\n 'hour-24': s => s.hour24(),\n 'hour-24-pad': s => fns.zeroPad(s.hour24()),\n\n minute: s => s.minute(),\n 'minute-pad': s => fns.zeroPad(s.minute()),\n second: s => s.second(),\n 'second-pad': s => fns.zeroPad(s.second()),\n\n ampm: s => s.ampm(),\n quarter: s => 'Q' + s.quarter(),\n season: s => s.season(),\n era: s => s.era(),\n json: s => s.json(),\n timezone: s => s.timezone().name,\n offset: s => _offset(s),\n\n numeric: s => `${s.year()}/${fns.zeroPad(s.month() + 1)}/${fns.zeroPad(s.date())}`, // yyyy/mm/dd\n 'numeric-us': s => `${fns.zeroPad(s.month() + 1)}/${fns.zeroPad(s.date())}/${s.year()}`, // mm/dd/yyyy\n 'numeric-uk': s => `${fns.zeroPad(s.date())}/${fns.zeroPad(s.month() + 1)}/${s.year()}`, //dd/mm/yyyy\n 'mm/dd': s => `${fns.zeroPad(s.month() + 1)}/${fns.zeroPad(s.date())}`, //mm/dd\n\n // ... https://en.wikipedia.org/wiki/ISO_8601 ;(((\n iso: s => {\n let year = s.format('iso-year');\n let month = fns.zeroPad(s.month() + 1); //1-based months\n let date = fns.zeroPad(s.date());\n let hour = fns.zeroPad(s.h24());\n let minute = fns.zeroPad(s.minute());\n let second = fns.zeroPad(s.second());\n let ms = fns.zeroPad(s.millisecond(), 3);\n let offset = _offset(s);\n return `${year}-${month}-${date}T${hour}:${minute}:${second}.${ms}${offset}` //2018-03-09T08:50:00.000-05:00\n },\n 'iso-short': s => {\n let month = fns.zeroPad(s.month() + 1); //1-based months\n let date = fns.zeroPad(s.date());\n return `${s.year()}-${month}-${date}` //2017-02-15\n },\n 'iso-utc': s => {\n return new Date(s.epoch).toISOString() //2017-03-08T19:45:28.367Z\n },\n\n //i made these up\n nice: s => `${months.short()[s.month()]} ${fns.ordinal(s.date())}, ${s.time()}`,\n 'nice-year': s => `${months.short()[s.month()]} ${fns.ordinal(s.date())}, ${s.year()}`,\n 'nice-day': s =>\n `${days.short()[s.day()]} ${fns.titleCase(months.short()[s.month()])} ${fns.ordinal(s.date())}`,\n 'nice-full': s =>\n `${s.dayName()} ${fns.titleCase(s.monthName())} ${fns.ordinal(s.date())}, ${s.time()}`\n};\n//aliases\nconst aliases = {\n 'day-name': 'day',\n 'month-name': 'month',\n 'iso 8601': 'iso',\n 'time-h24': 'time-24',\n 'time-12': 'time',\n 'time-h12': 'time',\n tz: 'timezone',\n 'day-num': 'day-number',\n 'month-num': 'month-number',\n 'month-iso': 'iso-month',\n 'year-iso': 'iso-year',\n 'nice-short': 'nice',\n mdy: 'numeric-us',\n dmy: 'numeric-uk',\n ymd: 'numeric',\n 'yyyy/mm/dd': 'numeric',\n 'mm/dd/yyyy': 'numeric-us',\n 'dd/mm/yyyy': 'numeric-us',\n 'little-endian': 'numeric-uk',\n 'big-endian': 'numeric',\n 'day-nice': 'nice-day'\n};\nObject.keys(aliases).forEach(k => (format[k] = format[aliases[k]]));\n\nconst printFormat = (s, str = '') => {\n //don't print anything if it's an invalid date\n if (s.isValid() !== true) {\n return ''\n }\n //support .format('month')\n if (format.hasOwnProperty(str)) {\n let out = format[str](s) || '';\n if (str !== 'json') {\n out = String(out);\n if (str !== 'ampm') {\n out = fns.titleCase(out);\n }\n }\n return out\n }\n //support '{hour}:{minute}' notation\n if (str.indexOf('{') !== -1) {\n let sections = /\\{(.+?)\\}/g;\n str = str.replace(sections, (_, fmt) => {\n fmt = fmt.toLowerCase().trim();\n if (format.hasOwnProperty(fmt)) {\n return String(format[fmt](s) || '')\n }\n return ''\n });\n return str\n }\n\n return s.format('iso-short')\n};\nvar format_1 = printFormat;\n\nconst pad = fns.zeroPad;\nconst formatTimezone = fns.formatTimezone;\n//parse this insane unix-time-templating thing, from the 19th century\n//http://unicode.org/reports/tr35/tr35-25.html#Date_Format_Patterns\n\n//time-symbols we support\nconst mapping = {\n G: s => s.era(),\n GG: s => s.era(),\n GGG: s => s.era(),\n GGGG: s => (s.era() === 'AD' ? 'Anno Domini' : 'Before Christ'),\n //year\n y: s => s.year(),\n yy: s => {\n //last two chars\n return parseInt(String(s.year()).substr(2, 4), 10)\n },\n yyy: s => s.year(),\n yyyy: s => s.year(),\n yyyyy: s => '0' + s.year(),\n // u: (s) => {},//extended non-gregorian years\n\n //quarter\n Q: s => s.quarter(),\n QQ: s => s.quarter(),\n QQQ: s => s.quarter(),\n QQQQ: s => s.quarter(),\n\n //month\n M: s => s.month() + 1,\n MM: s => pad(s.month() + 1),\n MMM: s => s.format('month-short'),\n MMMM: s => s.format('month'),\n\n //week\n w: s => s.week(),\n ww: s => pad(s.week()),\n //week of month\n // W: (s) => s.week(),\n\n //date of month\n d: s => s.date(),\n dd: s => pad(s.date()),\n //date of year\n D: s => s.dayOfYear(),\n DD: s => pad(s.dayOfYear()),\n DDD: s => pad(s.dayOfYear(), 3),\n\n // F: (s) => {},//date of week in month\n // g: (s) => {},//modified julian day\n\n //day\n E: s => s.format('day-short'),\n EE: s => s.format('day-short'),\n EEE: s => s.format('day-short'),\n EEEE: s => s.format('day'),\n EEEEE: s => s.format('day')[0],\n e: s => s.day(),\n ee: s => s.day(),\n eee: s => s.format('day-short'),\n eeee: s => s.format('day'),\n eeeee: s => s.format('day')[0],\n\n //am/pm\n a: s => s.ampm().toUpperCase(),\n aa: s => s.ampm().toUpperCase(),\n aaa: s => s.ampm().toUpperCase(),\n aaaa: s => s.ampm().toUpperCase(),\n\n //hour\n h: s => s.h12(),\n hh: s => pad(s.h12()),\n H: s => s.hour(),\n HH: s => pad(s.hour()),\n // j: (s) => {},//weird hour format\n\n m: s => s.minute(),\n mm: s => pad(s.minute()),\n s: s => s.second(),\n ss: s => pad(s.second()),\n //milliseconds in the day\n A: s => s.epoch - s.startOf('day').epoch,\n //timezone\n z: s => s.timezone().name,\n zz: s => s.timezone().name,\n zzz: s => s.timezone().name,\n zzzz: s => s.timezone().name,\n Z: s => formatTimezone(s.timezone().current.offset),\n ZZ: s => formatTimezone(s.timezone().current.offset),\n ZZZ: s => formatTimezone(s.timezone().current.offset),\n ZZZZ: s => formatTimezone(s.timezone().current.offset, ':')\n};\n\nconst addAlias = (char, to, n) => {\n let name = char;\n let toName = to;\n for (let i = 0; i < n; i += 1) {\n mapping[name] = mapping[toName];\n name += char;\n toName += to;\n }\n};\naddAlias('q', 'Q', 4);\naddAlias('L', 'M', 4);\naddAlias('Y', 'y', 4);\naddAlias('c', 'e', 4);\naddAlias('k', 'H', 2);\naddAlias('K', 'h', 2);\naddAlias('S', 's', 2);\naddAlias('v', 'z', 4);\naddAlias('V', 'Z', 4);\n\nconst unixFmt = (s, str) => {\n let chars = str.split('');\n //combine consecutive chars, like 'yyyy' as one.\n let arr = [chars[0]];\n let quoteOn = false;\n for (let i = 1; i < chars.length; i += 1) {\n //support quoted substrings\n if (chars[i] === `'`) {\n quoteOn = !quoteOn;\n //support '', meaning one tick\n if (quoteOn === true && chars[i + 1] && chars[i + 1] === \"'\") {\n quoteOn = true;\n } else {\n continue\n }\n }\n //merge it with the last one\n if (quoteOn === true || chars[i] === arr[arr.length - 1][0]) {\n arr[arr.length - 1] += chars[i];\n } else {\n arr.push(chars[i]);\n }\n }\n return arr.reduce((txt, c) => {\n if (mapping[c] !== undefined) {\n txt += mapping[c](s) || '';\n } else {\n txt += c;\n }\n return txt\n }, '')\n};\nvar unixFmt_1 = unixFmt;\n\nconst units$1 = ['year', 'season', 'quarter', 'month', 'week', 'day', 'quarterHour', 'hour', 'minute'];\n\nconst doUnit = function(s, k) {\n let start = s.clone().startOf(k);\n let end = s.clone().endOf(k);\n let duration = end.epoch - start.epoch;\n let percent = (s.epoch - start.epoch) / duration;\n return parseFloat(percent.toFixed(2))\n};\n\n//how far it is along, from 0-1\nconst progress = (s, unit) => {\n if (unit) {\n unit = fns.normalize(unit);\n return doUnit(s, unit)\n }\n let obj = {};\n units$1.forEach(k => {\n obj[k] = doUnit(s, k);\n });\n return obj\n};\n\nvar progress_1 = progress;\n\n//round to either current, or +1 of this unit\nconst nearest = (s, unit) => {\n //how far have we gone?\n let prog = s.progress();\n unit = fns.normalize(unit);\n //fix camel-case for this one\n if (unit === 'quarterhour') {\n unit = 'quarterHour';\n }\n if (prog[unit] !== undefined) {\n // go forward one?\n if (prog[unit] > 0.5) {\n s = s.add(1, unit);\n }\n // go to start\n s = s.startOf(unit);\n } else if (s.silent === false) {\n console.warn(\"no known unit '\" + unit + \"'\");\n }\n return s\n};\nvar nearest_1 = nearest;\n\n//increment until dates are the same\nconst climb = (a, b, unit) => {\n let i = 0;\n a = a.clone();\n while (a.isBefore(b)) {\n //do proper, expensive increment to catch all-the-tricks\n a = a.add(1, unit);\n i += 1;\n }\n //oops, we went too-far..\n if (a.isAfter(b, unit)) {\n i -= 1;\n }\n return i\n};\n\n// do a thurough +=1 on the unit, until they match\n// for speed-reasons, only used on day, month, week.\nconst diffOne = (a, b, unit) => {\n if (a.isBefore(b)) {\n return climb(a, b, unit)\n } else {\n return climb(b, a, unit) * -1 //reverse it\n }\n};\n\nvar one = diffOne;\n\n// don't do anything too fancy here.\n// 2020 - 2019 may be 1 year, or 0 years\n// - '1 year difference' means 366 days during a leap year\nconst fastYear = (a, b) => {\n let years = b.year() - a.year();\n // should we decrement it by 1?\n a = a.year(b.year());\n if (a.isAfter(b)) {\n years -= 1;\n }\n return years\n};\n\n// use a waterfall-method for computing a diff of any 'pre-knowable' units\n// compute years, then compute months, etc..\n// ... then ms-math for any very-small units\nconst diff = function(a, b) {\n // an hour is always the same # of milliseconds\n // so these units can be 'pre-calculated'\n let msDiff = b.epoch - a.epoch;\n let obj = {\n milliseconds: msDiff,\n seconds: parseInt(msDiff / 1000, 10)\n };\n obj.minutes = parseInt(obj.seconds / 60, 10);\n obj.hours = parseInt(obj.minutes / 60, 10);\n\n //do the year\n let tmp = a.clone();\n obj.years = fastYear(tmp, b);\n tmp = a.add(obj.years, 'year');\n\n //there's always 12 months in a year...\n obj.months = obj.years * 12;\n tmp = a.add(obj.months, 'month');\n obj.months += one(tmp, b, 'month');\n\n // there's always atleast 52 weeks in a year..\n // (month * 4) isn't as close\n obj.weeks = obj.years * 52;\n tmp = a.add(obj.weeks, 'week');\n obj.weeks += one(tmp, b, 'week');\n\n // there's always atleast 7 days in a week\n obj.days = obj.weeks * 7;\n tmp = a.add(obj.days, 'day');\n obj.days += one(tmp, b, 'day');\n\n return obj\n};\nvar waterfall = diff;\n\nconst reverseDiff = function(obj) {\n Object.keys(obj).forEach(k => {\n obj[k] *= -1;\n });\n return obj\n};\n\n// this method counts a total # of each unit, between a, b.\n// '1 month' means 28 days in february\n// '1 year' means 366 days in a leap year\nconst main = function(a, b, unit) {\n b = fns.beADate(b, a);\n //reverse values, if necessary\n let reversed = false;\n if (a.isAfter(b)) {\n let tmp = a;\n a = b;\n b = tmp;\n reversed = true;\n }\n //compute them all (i know!)\n let obj = waterfall(a, b);\n if (reversed) {\n obj = reverseDiff(obj);\n }\n //return just the requested unit\n if (unit) {\n //make sure it's plural-form\n unit = fns.normalize(unit);\n if (/s$/.test(unit) !== true) {\n unit += 's';\n }\n if (unit === 'dates') {\n unit = 'days';\n }\n return obj[unit]\n }\n return obj\n};\n\nvar diff$1 = main;\n\n//by spencermountain + Shaun Grady\n\n//our conceptual 'break-points' for each unit\nconst qualifiers = {\n months: {\n almost: 10,\n over: 4\n },\n days: {\n almost: 25,\n over: 10\n },\n hours: {\n almost: 20,\n over: 8\n },\n minutes: {\n almost: 50,\n over: 20\n },\n seconds: {\n almost: 50,\n over: 20\n }\n};\n\n//get number of hours/minutes... between the two dates\nfunction getDiff(a, b) {\n const isBefore = a.isBefore(b);\n const later = isBefore ? b : a;\n let earlier = isBefore ? a : b;\n earlier = earlier.clone();\n const diff = {\n years: 0,\n months: 0,\n days: 0,\n hours: 0,\n minutes: 0,\n seconds: 0\n };\n Object.keys(diff).forEach(unit => {\n if (earlier.isSame(later, unit)) {\n return\n }\n let max = earlier.diff(later, unit);\n earlier = earlier.add(max, unit);\n diff[unit] = max;\n });\n\n //reverse it, if necessary\n if (isBefore) {\n Object.keys(diff).forEach(u => {\n if (diff[u] !== 0) {\n diff[u] *= -1;\n }\n });\n }\n return diff\n}\n\n// Expects a plural unit arg\nfunction pluralize(value, unit) {\n if (value === 1) {\n unit = unit.slice(0, -1);\n }\n return value + ' ' + unit\n}\n\n//create the human-readable diff between the two dates\nconst since = (start, end) => {\n end = fns.beADate(end, start);\n const diff = getDiff(start, end);\n const isNow = Object.keys(diff).every(u => !diff[u]);\n if (isNow === true) {\n return {\n diff,\n rounded: 'now',\n qualified: 'now',\n precise: 'now'\n }\n }\n let rounded;\n let qualified;\n let precise;\n let englishValues = [];\n\n //go through each value and create its text-representation\n Object.keys(diff).forEach((unit, i, units) => {\n const value = Math.abs(diff[unit]);\n if (value === 0) {\n return\n }\n const englishValue = pluralize(value, unit);\n englishValues.push(englishValue);\n if (!rounded) {\n rounded = qualified = englishValue;\n if (i > 4) {\n return\n }\n //is it a 'almost' something, etc?\n const nextUnit = units[i + 1];\n const nextValue = Math.abs(diff[nextUnit]);\n if (nextValue > qualifiers[nextUnit].almost) {\n rounded = pluralize(value + 1, unit);\n qualified = 'almost ' + rounded;\n } else if (nextValue > qualifiers[nextUnit].over) qualified = 'over ' + englishValue;\n }\n });\n //make them into a string\n precise = englishValues.splice(0, 2).join(', ');\n //handle before/after logic\n if (start.isAfter(end) === true) {\n rounded += ' ago';\n qualified += ' ago';\n precise += ' ago';\n } else {\n rounded = 'in ' + rounded;\n qualified = 'in ' + qualified;\n precise = 'in ' + precise;\n }\n return {\n diff,\n rounded,\n qualified,\n precise\n }\n};\n\nvar since_1 = since;\n\n//https://www.timeanddate.com/calendar/aboutseasons.html\n// Spring - from March 1 to May 31;\n// Summer - from June 1 to August 31;\n// Fall (autumn) - from September 1 to November 30; and,\n// Winter - from December 1 to February 28 (February 29 in a leap year).\nvar seasons = {\n north: [\n ['spring', 2, 1], //spring march 1\n ['summer', 5, 1], //june 1\n ['fall', 8, 1], //sept 1\n ['autumn', 8, 1], //sept 1\n ['winter', 11, 1] //dec 1\n ],\n south: [\n ['fall', 2, 1], //march 1\n ['autumn', 2, 1], //march 1\n ['winter', 5, 1], //june 1\n ['spring', 8, 1], //sept 1\n ['summer', 11, 1] //dec 1\n ]\n};\n\nvar quarters = [\n null,\n [0, 1], //jan 1\n [3, 1], //apr 1\n [6, 1], //july 1\n [9, 1] //oct 1\n];\n\nconst units$2 = {\n minute: s => {\n walk_1(s, {\n second: 0,\n millisecond: 0\n });\n return s\n },\n quarterhour: s => {\n let minute = s.minutes();\n if (minute >= 45) {\n s = s.minutes(45);\n } else if (minute >= 30) {\n s = s.minutes(30);\n } else if (minute >= 15) {\n s = s.minutes(15);\n } else {\n s = s.minutes(0);\n }\n walk_1(s, {\n second: 0,\n millisecond: 0\n });\n return s\n },\n hour: s => {\n walk_1(s, {\n minute: 0,\n second: 0,\n millisecond: 0\n });\n return s\n },\n day: s => {\n walk_1(s, {\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0\n });\n return s\n },\n week: s => {\n let original = s.clone();\n s = s.day(s._weekStart); //monday\n if (s.isAfter(original)) {\n s = s.subtract(1, 'week');\n }\n walk_1(s, {\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0\n });\n return s\n },\n month: s => {\n walk_1(s, {\n date: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0\n });\n return s\n },\n quarter: s => {\n let q = s.quarter();\n if (quarters[q]) {\n walk_1(s, {\n month: quarters[q][0],\n date: quarters[q][1],\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0\n });\n }\n return s\n },\n season: s => {\n let current = s.season();\n let hem = 'north';\n if (s.hemisphere() === 'South') {\n hem = 'south';\n }\n for (let i = 0; i < seasons[hem].length; i++) {\n if (seasons[hem][i][0] === current) {\n //winter goes between years\n let year = s.year();\n if (current === 'winter' && s.month() < 3) {\n year -= 1;\n }\n walk_1(s, {\n year,\n month: seasons[hem][i][1],\n date: seasons[hem][i][2],\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0\n });\n return s\n }\n }\n return s\n },\n year: s => {\n walk_1(s, {\n month: 0,\n date: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0\n });\n return s\n },\n decade: s => {\n s = s.startOf('year');\n let year = s.year();\n let decade = parseInt(year / 10, 10) * 10;\n s = s.year(decade);\n return s\n },\n century: s => {\n s = s.startOf('year');\n let year = s.year();\n // near 0AD goes '-1 | +1'\n let decade = parseInt(year / 100, 10) * 100;\n s = s.year(decade);\n return s\n }\n};\nunits$2.date = units$2.day;\n\nconst startOf = (a, unit) => {\n let s = a.clone();\n unit = fns.normalize(unit);\n if (units$2[unit]) {\n return units$2[unit](s)\n }\n if (unit === 'summer' || unit === 'winter') {\n s = s.season(unit);\n return units$2.season(s)\n }\n return s\n};\n\n//piggy-backs off startOf\nconst endOf = (a, unit) => {\n let s = a.clone();\n unit = fns.normalize(unit);\n if (units$2[unit]) {\n s = units$2[unit](s);\n s = s.add(1, unit);\n s = s.subtract(1, 'milliseconds');\n return s\n }\n return s\n};\nvar startOf_1 = {\n startOf,\n endOf\n};\n\n//is it 'wednesday'?\nconst isDay = function(unit) {\n if (days.short().find(s => s === unit)) {\n return true\n }\n if (days.long().find(s => s === unit)) {\n return true\n }\n return false\n};\n\n// return a list of the weeks/months/days between a -> b\n// returns spacetime objects in the timezone of the input\nconst every = function(start, unit = '', end) {\n if (!unit || !end) {\n return []\n }\n //cleanup unit param\n unit = fns.normalize(unit);\n //cleanup to param\n end = start.clone().set(end);\n //swap them, if they're backwards\n if (start.isAfter(end)) {\n let tmp = start;\n start = end;\n end = tmp;\n }\n\n //support 'every wednesday'\n let d = start.clone();\n if (isDay(unit)) {\n d = d.next(unit);\n unit = 'week';\n } else {\n d = d.next(unit);\n }\n //okay, actually start doing it\n let result = [];\n while (d.isBefore(end)) {\n result.push(d);\n d = d.add(1, unit);\n }\n return result\n};\nvar every_1 = every;\n\nconst parseDst = dst => {\n if (!dst) {\n return []\n }\n return dst.split('->')\n};\n\nconst titleCase = str => {\n str = str[0].toUpperCase() + str.substr(1);\n str = str.replace(/\\/gmt/, '/GMT');\n str = str.replace(/[\\/_]([a-z])/gi, s => {\n return s.toUpperCase()\n });\n return str\n};\n\n//get metadata about this timezone\nconst timezone = s => {\n let zones = s.timezones;\n let tz = s.tz;\n if (zones.hasOwnProperty(tz) === false) {\n tz = find(s.tz, zones);\n }\n if (tz === null) {\n if (s.silent === false) {\n console.warn(\"Warn: could not find given or local timezone - '\" + s.tz + \"'\");\n }\n return {\n current: {\n epochShift: 0\n }\n }\n }\n let found = zones[tz];\n let result = {\n name: titleCase(tz),\n hasDst: Boolean(found.dst),\n default_offset: found.offset,\n //do north-hemisphere version as default (sorry!)\n hemisphere: found.hem === 's' ? 'South' : 'North',\n current: {}\n };\n\n if (result.hasDst) {\n let arr = parseDst(found.dst);\n result.change = {\n start: arr[0],\n back: arr[1]\n };\n }\n //find the offsets for summer/winter times\n //(these variable names are north-centric)\n let summer = found.offset; // (july)\n let winter = summer; // (january) assume it's the same for now\n if (result.hasDst === true) {\n if (result.hemisphere === 'North') {\n winter = summer - 1;\n } else {\n //southern hemisphere\n winter = found.offset + 1;\n }\n }\n\n //find out which offset to use right now\n //use 'summer' time july-time\n if (result.hasDst === false) {\n result.current.offset = summer;\n result.current.isDST = false;\n } else if (summerTime(s.epoch, result.change.start, result.change.back, summer) === true) {\n result.current.offset = summer;\n result.current.isDST = result.hemisphere === 'North'; //dst 'on' in winter in north\n } else {\n //use 'winter' january-time\n result.current.offset = winter;\n result.current.isDST = result.hemisphere === 'South'; //dst 'on' in summer in south\n }\n return result\n};\nvar timezone_1 = timezone;\n\nconst units$3 = [\n 'century',\n 'decade',\n 'year',\n 'month',\n 'date',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond'\n];\n\n//the spacetime instance methods (also, the API)\nconst methods = {\n set: function(input$1, tz) {\n let s = this.clone();\n s = input(s, input$1);\n if (tz) {\n this.tz = find(tz);\n }\n return s\n },\n timezone: function() {\n return timezone_1(this)\n },\n isDST: function() {\n return timezone_1(this).current.isDST\n },\n hasDST: function() {\n return timezone_1(this).hasDst\n },\n offset: function() {\n return timezone_1(this).current.offset * 60\n },\n hemisphere: function() {\n return timezone_1(this).hemisphere\n },\n format: function(fmt) {\n return format_1(this, fmt)\n },\n unixFmt: function(fmt) {\n return unixFmt_1(this, fmt)\n },\n startOf: function(unit) {\n return startOf_1.startOf(this, unit)\n },\n endOf: function(unit) {\n return startOf_1.endOf(this, unit)\n },\n leapYear: function() {\n let year = this.year();\n return fns.isLeapYear(year)\n },\n progress: function(unit) {\n return progress_1(this, unit)\n },\n nearest: function(unit) {\n return nearest_1(this, unit)\n },\n diff: function(d, unit) {\n return diff$1(this, d, unit)\n },\n since: function(d) {\n if (!d) {\n d = this.clone().set();\n }\n return since_1(this, d)\n },\n next: function(unit) {\n let s = this.add(1, unit);\n return s.startOf(unit)\n },\n //the start of the previous year/week/century\n last: function(unit) {\n let s = this.subtract(1, unit);\n return s.startOf(unit)\n },\n isValid: function() {\n //null/undefined epochs\n if (!this.epoch && this.epoch !== 0) {\n return false\n }\n return !isNaN(this.d.getTime())\n },\n //travel to this timezone\n goto: function(tz) {\n let s = this.clone();\n s.tz = find(tz, s.timezones); //science!\n return s\n },\n //get each week/month/day between a -> b\n every: function(unit, to) {\n return every_1(this, unit, to)\n },\n isAwake: function() {\n let hour = this.hour();\n //10pm -> 8am\n if (hour < 8 || hour > 22) {\n return false\n }\n return true\n },\n isAsleep: function() {\n return !this.isAwake()\n },\n //pretty-printing\n log: function() {\n console.log('');\n console.log(format_1(this, 'nice-short'));\n return this\n },\n logYear: function() {\n console.log('');\n console.log(format_1(this, 'full-short'));\n return this\n },\n json: function() {\n return units$3.reduce((h, unit) => {\n h[unit] = this[unit]();\n return h\n }, {})\n },\n debug: function() {\n let tz = this.timezone();\n let date = this.format('MM') + ' ' + this.format('date-ordinal') + ' ' + this.year();\n date += '\\n - ' + this.format('time');\n console.log('\\n\\n', date + '\\n - ' + tz.name + ' (' + tz.current.offset + ')');\n return this\n },\n //alias of 'since' but opposite - like moment.js\n from: function(d) {\n d = this.clone().set(d);\n return d.since(this)\n },\n fromNow: function() {\n let d = this.clone().set(Date.now());\n return d.since(this)\n },\n weekStart: function(input) {\n //accept a number directly\n if (typeof input === 'number') {\n this._weekStart = input;\n return this\n }\n if (typeof input === 'string') {\n // accept 'wednesday'\n input = input.toLowerCase().trim();\n let num = days.short().indexOf(input);\n if (num === -1) {\n num = days.long().indexOf(input);\n }\n if (num === -1) {\n num = 1; //go back to default\n }\n this._weekStart = num;\n } else {\n console.warn('Spacetime Error: Cannot understand .weekStart() input:', input);\n }\n return this\n }\n};\n// aliases\nmethods.inDST = methods.isDST;\nmethods.round = methods.nearest;\nmethods.each = methods.every;\nvar methods_1 = methods;\n\n// javascript setX methods like setDate() can't be used because of the local bias\n//these methods wrap around them.\n\n\n\n\n\nconst validate = n => {\n //handle number as a string\n if (typeof n === 'string') {\n n = parseInt(n, 10);\n }\n return n\n};\n\nconst order = ['year', 'month', 'date', 'hour', 'minute', 'second', 'millisecond'];\n\n//reduce hostile micro-changes when moving dates by millisecond\nconst confirm = (s, tmp, unit) => {\n let n = order.indexOf(unit);\n let arr = order.slice(n, order.length);\n for (let i = 0; i < arr.length; i++) {\n let want = tmp[arr[i]]();\n s[arr[i]](want);\n }\n return s\n};\n\nvar set = {\n milliseconds: (s, n) => {\n n = validate(n);\n let current = s.millisecond();\n let diff = current - n; //milliseconds to shift by\n return s.epoch - diff\n },\n\n seconds: (s, n) => {\n n = validate(n);\n let diff = s.second() - n;\n let shift = diff * milliseconds.second;\n return s.epoch - shift\n },\n\n minutes: (s, n) => {\n n = validate(n);\n let old = s.clone();\n let diff = s.minute() - n;\n let shift = diff * milliseconds.minute;\n s.epoch -= shift;\n confirm(s, old, 'second');\n return s.epoch\n },\n\n hours: (s, n) => {\n n = validate(n);\n if (n >= 24) {\n n = 24;\n } else if (n < 0) {\n n = 0;\n }\n let old = s.clone();\n let diff = s.hour() - n;\n let shift = diff * milliseconds.hour;\n s.epoch -= shift;\n walk_1(s, {\n hour: n\n });\n confirm(s, old, 'minute');\n return s.epoch\n },\n\n //support setting time by '4:25pm' - this isn't very-well developed..\n time: (s, str) => {\n let m = str.match(/([0-9]{1,2}):([0-9]{1,2})(am|pm)?/);\n if (!m) {\n //fallback to support just '2am'\n m = str.match(/([0-9]{1,2})(am|pm)/);\n if (!m) {\n return s.epoch\n }\n m.splice(2, 0, '0'); //add implicit 0 minutes\n }\n let h24 = false;\n let hour = parseInt(m[1], 10);\n let minute = parseInt(m[2], 10);\n if (hour > 12) {\n h24 = true;\n }\n //make the hour into proper 24h time\n if (h24 === false) {\n if (m[3] === 'am' && hour === 12) {\n //12am is midnight\n hour = 0;\n }\n if (m[3] === 'pm' && hour < 12) {\n //12pm is noon\n hour += 12;\n }\n }\n s = s.hour(hour);\n s = s.minute(minute);\n s = s.second(0);\n s = s.millisecond(0);\n return s.epoch\n },\n\n date: (s, n) => {\n n = validate(n);\n //avoid setting february 31st\n if (n > 28) {\n const max = monthLengths_1[s.month()];\n if (n > max) {\n n = max;\n }\n }\n //avoid setting < 0\n if (n <= 0) {\n n = 1;\n }\n walk_1(s, {\n date: n\n });\n return s.epoch\n },\n\n //this one's tricky\n month: (s, n) => {\n if (typeof n === 'string') {\n n = months.mapping()[n.toLowerCase()];\n }\n n = validate(n);\n //don't go past december\n if (n >= 12) {\n n = 11;\n }\n if (n <= 0) {\n n = 0;\n }\n\n let date = s.date();\n //there's no 30th of february, etc.\n if (date > monthLengths_1[n]) {\n //make it as close as we can..\n date = monthLengths_1[n];\n }\n walk_1(s, {\n month: n,\n date\n });\n return s.epoch\n },\n\n year: (s, n) => {\n n = validate(n);\n walk_1(s, {\n year: n\n });\n return s.epoch\n },\n\n dayOfYear: (s, n) => {\n n = validate(n);\n let old = s.clone();\n n -= 1; //days are 1-based\n if (n <= 0) {\n n = 0;\n } else if (n >= 365) {\n n = 364;\n }\n s = s.startOf('year');\n s = s.add(n, 'day');\n confirm(s, old, 'hour');\n return s.epoch\n }\n};\n\nconst methods$1 = {\n millisecond: function(num) {\n if (num !== undefined) {\n let s = this.clone();\n s.epoch = set.milliseconds(s, num);\n return s\n }\n return this.d.getMilliseconds()\n },\n second: function(num) {\n if (num !== undefined) {\n let s = this.clone();\n s.epoch = set.seconds(s, num);\n return s\n }\n return this.d.getSeconds()\n },\n minute: function(num) {\n if (num !== undefined) {\n let s = this.clone();\n s.epoch = set.minutes(s, num);\n return s\n }\n return this.d.getMinutes()\n },\n hour: function(num) {\n let d = this.d;\n if (num !== undefined) {\n let s = this.clone();\n s.epoch = set.hours(s, num);\n return s\n }\n return d.getHours()\n },\n\n //'3:30' is 3.5\n hourFloat: function(num) {\n if (num !== undefined) {\n let s = this.clone();\n let minute = num % 1;\n minute = minute * 60;\n let hour = parseInt(num, 10);\n s.epoch = set.hours(s, hour);\n s.epoch = set.minutes(s, minute);\n return s\n }\n let d = this.d;\n let hour = d.getHours();\n let minute = d.getMinutes();\n minute = minute / 60;\n return hour + minute\n },\n\n // hour in 12h format\n hour12: function(str) {\n let d = this.d;\n if (str !== undefined) {\n let s = this.clone();\n str = '' + str;\n let m = str.match(/^([0-9]+)(am|pm)$/);\n if (m) {\n let hour = parseInt(m[1], 10);\n if (m[2] === 'pm') {\n hour += 12;\n }\n s.epoch = set.hours(s, hour);\n }\n return s\n }\n //get the hour\n let hour12 = d.getHours();\n if (hour12 > 12) {\n hour12 = hour12 - 12;\n }\n if (hour12 === 0) {\n hour12 = 12;\n }\n return hour12\n },\n\n //some ambiguity here with 12/24h\n time: function(str) {\n if (str !== undefined) {\n let s = this.clone();\n s.epoch = set.time(s, str);\n return s\n }\n return `${this.h12()}:${fns.zeroPad(this.minute())}${this.ampm()}`\n },\n\n // either 'am' or 'pm'\n ampm: function(input) {\n let which = 'am';\n let hour = this.hour();\n if (hour >= 12) {\n which = 'pm';\n }\n if (typeof input !== 'string') {\n return which\n }\n //okay, we're doing a setter\n let s = this.clone();\n input = input.toLowerCase().trim();\n //ampm should never change the day\n // - so use `.hour(n)` instead of `.minus(12,'hour')`\n if (hour >= 12 && input === 'am') {\n //noon is 12pm\n hour -= 12;\n return s.hour(hour)\n }\n if (hour < 12 && input === 'pm') {\n hour += 12;\n return s.hour(hour)\n }\n return s\n },\n\n //some hard-coded times of day, like 'noon'\n dayTime: function(str) {\n if (str !== undefined) {\n const times = {\n morning: '7:00am',\n breakfast: '7:00am',\n noon: '12:00am',\n lunch: '12:00pm',\n afternoon: '2:00pm',\n evening: '6:00pm',\n dinner: '6:00pm',\n night: '11:00pm',\n midnight: '23:59pm'\n };\n let s = this.clone();\n str = str || '';\n str = str.toLowerCase();\n if (times.hasOwnProperty(str) === true) {\n s = s.time(times[str]);\n }\n return s\n }\n let h = this.hour();\n if (h < 6) {\n return 'night'\n }\n if (h < 12) {\n //until noon\n return 'morning'\n }\n if (h < 17) {\n //until 5pm\n return 'afternoon'\n }\n if (h < 22) {\n //until 10pm\n return 'evening'\n }\n return 'night'\n },\n\n //parse a proper iso string\n iso: function(num) {\n if (num !== undefined) {\n return this.set(num)\n }\n return this.format('iso')\n }\n};\nvar _01Time = methods$1;\n\nconst methods$2 = {\n // # day in the month\n date: function(num) {\n if (num !== undefined) {\n let s = this.clone();\n s.epoch = set.date(s, num);\n return s\n }\n return this.d.getDate()\n },\n\n //like 'wednesday' (hard!)\n day: function(input) {\n if (input === undefined) {\n return this.d.getDay()\n }\n let original = this.clone();\n let want = input;\n // accept 'wednesday'\n if (typeof input === 'string') {\n input = input.toLowerCase();\n want = days.short().indexOf(input);\n if (want === -1) {\n want = days.long().indexOf(input);\n }\n }\n //move approx\n let day = this.d.getDay();\n let diff = day - want;\n let s = this.subtract(diff * 24, 'hours');\n //tighten it back up\n walk_1(s, {\n hour: original.hour(),\n minute: original.minute(),\n second: original.second()\n });\n return s\n },\n\n //these are helpful name-wrappers\n dayName: function(input) {\n if (input === undefined) {\n return days.long()[this.day()]\n }\n let s = this.clone();\n s = s.day(input);\n return s\n },\n\n //either name or number\n month: function(input) {\n if (input !== undefined) {\n let s = this.clone();\n s.epoch = set.month(s, input);\n return s\n }\n return this.d.getMonth()\n }\n};\nvar _02Date = methods$2;\n\nconst clearMinutes = s => {\n s = s.minute(0);\n s = s.second(0);\n s = s.millisecond(1);\n return s\n};\n\nconst methods$3 = {\n // day 0-366\n dayOfYear: function(num) {\n if (num !== undefined) {\n let s = this.clone();\n s.epoch = set.dayOfYear(s, num);\n return s\n }\n //days since newyears - jan 1st is 1, jan 2nd is 2...\n let sum = 0;\n let month = this.d.getMonth();\n let tmp;\n //count the num days in each month\n for (let i = 1; i <= month; i++) {\n tmp = new Date();\n tmp.setDate(1);\n tmp.setFullYear(this.d.getFullYear()); //the year matters, because leap-years\n tmp.setHours(1);\n tmp.setMinutes(1);\n tmp.setMonth(i);\n tmp.setHours(-2); //the last day of the month\n sum += tmp.getDate();\n }\n return sum + this.d.getDate()\n },\n\n //since the start of the year\n week: function(num) {\n // week-setter\n if (num !== undefined) {\n let s = this.clone();\n s = s.month(0);\n s = s.date(1);\n s = s.day('monday');\n s = clearMinutes(s);\n //don't go into last-year\n if (s.monthName() === 'december') {\n s = s.add(1, 'week');\n }\n num -= 1; //1-based\n s = s.add(num, 'weeks');\n return s\n }\n //find-out which week it is\n let tmp = this.clone();\n tmp = tmp.month(0);\n tmp = tmp.date(1);\n tmp = clearMinutes(tmp);\n tmp = tmp.day('monday');\n //don't go into last-year\n if (tmp.monthName() === 'december') {\n tmp = tmp.add(1, 'week');\n }\n // is first monday the 1st?\n let toAdd = 1;\n if (tmp.date() === 1) {\n toAdd = 0;\n }\n tmp = tmp.minus(1, 'second');\n const thisOne = this.epoch;\n //if the week technically hasn't started yet\n if (tmp.epoch > thisOne) {\n return 1\n }\n //speed it up, if we can\n let i = 0;\n let skipWeeks = this.month() * 4;\n tmp.epoch += milliseconds.week * skipWeeks;\n i += skipWeeks;\n for (; i < 52; i++) {\n if (tmp.epoch > thisOne) {\n return i + toAdd\n }\n tmp = tmp.add(1, 'week');\n }\n return 52\n },\n\n //'january'\n monthName: function(input) {\n if (input === undefined) {\n return months.long()[this.month()]\n }\n let s = this.clone();\n s = s.month(input);\n return s\n },\n\n //q1, q2, q3, q4\n quarter: function(num) {\n if (num !== undefined) {\n if (typeof num === 'string') {\n num = num.replace(/^q/i, '');\n num = parseInt(num, 10);\n }\n if (quarters[num]) {\n let s = this.clone();\n let month = quarters[num][0];\n s = s.month(month);\n s = s.date(1);\n s = s.startOf('day');\n return s\n }\n }\n let month = this.d.getMonth();\n for (let i = 1; i < quarters.length; i++) {\n if (month < quarters[i][0]) {\n return i - 1\n }\n }\n return 4\n },\n\n //spring, summer, winter, fall\n season: function(input) {\n let hem = 'north';\n if (this.hemisphere() === 'South') {\n hem = 'south';\n }\n if (input !== undefined) {\n let s = this.clone();\n for (let i = 0; i < seasons[hem].length; i++) {\n if (input === seasons[hem][i][0]) {\n s = s.month(seasons[hem][i][1]);\n s = s.date(1);\n s = s.startOf('day');\n }\n }\n return s\n }\n let month = this.d.getMonth();\n for (let i = 0; i < seasons[hem].length - 1; i++) {\n if (month >= seasons[hem][i][1] && month < seasons[hem][i + 1][1]) {\n return seasons[hem][i][0]\n }\n }\n return 'winter'\n },\n\n //the year number\n year: function(num) {\n if (num !== undefined) {\n let s = this.clone();\n s.epoch = set.year(s, num);\n return s\n }\n return this.d.getFullYear()\n },\n\n //bc/ad years\n era: function(str) {\n if (str !== undefined) {\n let s = this.clone();\n str = str.toLowerCase();\n //TODO: there is no year-0AD i think. may have off-by-1 error here\n let year = s.d.getFullYear();\n //make '1992' into 1992bc..\n if (str === 'bc' && year > 0) {\n s.epoch = set.year(s, year * -1);\n }\n //make '1992bc' into '1992'\n if (str === 'ad' && year < 0) {\n s.epoch = set.year(s, year * -1);\n }\n return s\n }\n if (this.d.getFullYear() < 0) {\n return 'BC'\n }\n return 'AD'\n },\n\n // 2019 -> 2010\n decade: function(input) {\n if (input !== undefined) {\n input = String(input);\n input = input.replace(/([0-9])'?s$/, '$1'); //1950's\n input = input.replace(/([0-9])(th|rd|st|nd)/, '$1'); //fix ordinals\n if (!input) {\n console.warn('Spacetime: Invalid decade input');\n return this\n }\n // assume 20th century?? for '70s'.\n if (input.length === 2 && /[0-9][0-9]/.test(input)) {\n input = '19' + input;\n }\n let year = Number(input);\n if (isNaN(year)) {\n return this\n }\n // round it down to the decade\n year = Math.floor(year / 10) * 10;\n return this.year(year) //.startOf('decade')\n }\n return this.startOf('decade').year()\n },\n // 1950 -> 19+1\n century: function(input) {\n if (input !== undefined) {\n if (typeof input === 'string') {\n input = input.replace(/([0-9])(th|rd|st|nd)/, '$1'); //fix ordinals\n input = input.replace(/([0-9]+) ?(b\\.?c\\.?|a\\.?d\\.?)/i, (a, b, c) => {\n if (c.match(/b\\.?c\\.?/i)) {\n b = '-' + b;\n }\n return b\n });\n input = input.replace(/c$/, ''); //20thC\n }\n let year = Number(input);\n if (isNaN(input)) {\n console.warn('Spacetime: Invalid century input');\n return this\n }\n // there is no century 0\n if (year === 0) {\n year = 1;\n }\n if (year >= 0) {\n year = (year - 1) * 100;\n } else {\n year = (year + 1) * 100;\n }\n return this.year(year)\n }\n // century getter\n let num = this.startOf('century').year();\n num = Math.floor(num / 100);\n if (num < 0) {\n return num - 1\n }\n return num + 1\n },\n // 2019 -> 2+1\n millenium: function(input) {\n if (input !== undefined) {\n if (typeof input === 'string') {\n input = input.replace(/([0-9])(th|rd|st|nd)/, '$1'); //fix ordinals\n input = Number(input);\n if (isNaN(input)) {\n console.warn('Spacetime: Invalid millenium input');\n return this\n }\n }\n if (input > 0) {\n input -= 1;\n }\n let year = input * 1000;\n // there is no year 0\n if (year === 0) {\n year = 1;\n }\n return this.year(year)\n }\n // get the current millenium\n let num = Math.floor(this.year() / 1000);\n if (num >= 0) {\n num += 1;\n }\n return num\n }\n};\nvar _03Year = methods$3;\n\nconst methods$4 = Object.assign({}, _01Time, _02Date, _03Year);\n\n//aliases\nmethods$4.milliseconds = methods$4.millisecond;\nmethods$4.seconds = methods$4.second;\nmethods$4.minutes = methods$4.minute;\nmethods$4.hours = methods$4.hour;\nmethods$4.hour24 = methods$4.hour;\nmethods$4.h12 = methods$4.hour12;\nmethods$4.h24 = methods$4.hour24;\nmethods$4.days = methods$4.day;\n\nconst addMethods = Space => {\n //hook the methods into prototype\n Object.keys(methods$4).forEach(k => {\n Space.prototype[k] = methods$4[k];\n });\n};\n\nvar query = addMethods;\n\nconst order$1 = ['millisecond', 'second', 'minute', 'hour', 'date', 'month'];\nlet keep = {\n second: order$1.slice(0, 1),\n minute: order$1.slice(0, 2),\n quarterhour: order$1.slice(0, 2),\n hour: order$1.slice(0, 3),\n date: order$1.slice(0, 4),\n month: order$1.slice(0, 4),\n quarter: order$1.slice(0, 4),\n season: order$1.slice(0, 4),\n year: order$1,\n decade: order$1,\n century: order$1\n};\nkeep.week = keep.hour;\nkeep.season = keep.date;\nkeep.quarter = keep.date;\n\n// Units need to be dst adjuested\nconst dstAwareUnits = {\n year: true,\n quarter: true,\n season: true,\n month: true,\n week: true,\n day: true\n};\n\nconst keepDate = {\n month: true,\n quarter: true,\n season: true,\n year: true\n};\n//month is the only thing we 'model/compute'\n//- because ms-shifting can be off by enough\nconst rollMonth = (want, old) => {\n //increment year\n if (want.month > 0) {\n let years = parseInt(want.month / 12, 10);\n want.year = old.year() + years;\n want.month = want.month % 12;\n } else if (want.month < 0) {\n //decrement year\n let years = Math.floor(Math.abs(want.month) / 13, 10);\n years = Math.abs(years) + 1;\n want.year = old.year() - years;\n //ignore extras\n want.month = want.month % 12;\n want.month = want.month + 12;\n if (want.month === 12) {\n want.month = 0;\n }\n }\n return want\n};\n\nconst addMethods$1 = SpaceTime => {\n SpaceTime.prototype.add = function(num, unit) {\n let s = this.clone();\n if (!unit || num === 0) {\n return s //don't bother\n }\n let old = this.clone();\n unit = fns.normalize(unit);\n //move forward by the estimated milliseconds (rough)\n if (milliseconds[unit]) {\n s.epoch += milliseconds[unit] * num;\n } else if (unit === 'week') {\n s.epoch += milliseconds.day * (num * 7);\n } else if (unit === 'quarter' || unit === 'season') {\n s.epoch += milliseconds.month * (num * 4);\n } else if (unit === 'season') {\n s.epoch += milliseconds.month * (num * 4);\n } else if (unit === 'quarterhour') {\n s.epoch += milliseconds.minute * 15 * num;\n }\n //now ensure our milliseconds/etc are in-line\n let want = {};\n if (keep[unit]) {\n keep[unit].forEach(u => {\n want[u] = old[u]();\n });\n }\n\n if (dstAwareUnits[unit]) {\n const diff = old.timezone().current.offset - s.timezone().current.offset;\n s.epoch += diff * 3600 * 1000;\n }\n\n //ensure month/year has ticked-over\n if (unit === 'month') {\n want.month = old.month() + num;\n //month is the one unit we 'model' directly\n want = rollMonth(want, old);\n }\n //support coercing a week, too\n if (unit === 'week') {\n let sum = old.date() + num * 7;\n if (sum <= 28 && sum > 1) {\n want.date = sum;\n }\n }\n //support 25-hour day-changes on dst-changes\n else if (unit === 'date') {\n //specify a naive date number, if it's easy to do...\n let sum = old.date() + num;\n if (sum <= 28 && sum > 1) {\n want.date = sum;\n }\n //or if we haven't moved at all..\n else if (num !== 0 && old.isSame(s, 'day')) {\n want.date = old.date() + num;\n }\n }\n //ensure year has changed (leap-years)\n else if (unit === 'year' && s.year() === old.year()) {\n s.epoch += milliseconds.week;\n }\n //these are easier\n else if (unit === 'decade') {\n want.year = s.year() + 10;\n } else if (unit === 'century') {\n want.year = s.year() + 100;\n }\n //keep current date, unless the month doesn't have it.\n if (keepDate[unit]) {\n let max = monthLengths_1[want.month];\n want.date = old.date();\n if (want.date > max) {\n want.date = max;\n }\n }\n walk_1(s, want);\n return s\n };\n\n //subtract is only add *-1\n SpaceTime.prototype.subtract = function(num, unit) {\n let s = this.clone();\n return s.add(num * -1, unit)\n };\n //add aliases\n SpaceTime.prototype.minus = SpaceTime.prototype.subtract;\n SpaceTime.prototype.plus = SpaceTime.prototype.add;\n};\n\nvar add = addMethods$1;\n\n//make a string, for easy comparison between dates\nconst print = {\n millisecond: s => {\n return s.epoch\n },\n second: s => {\n return [s.year(), s.month(), s.date(), s.hour(), s.minute(), s.second()].join('-')\n },\n minute: s => {\n return [s.year(), s.month(), s.date(), s.hour(), s.minute()].join('-')\n },\n hour: s => {\n return [s.year(), s.month(), s.date(), s.hour()].join('-')\n },\n day: s => {\n return [s.year(), s.month(), s.date()].join('-')\n },\n week: s => {\n return [s.year(), s.week()].join('-')\n },\n month: s => {\n return [s.year(), s.month()].join('-')\n },\n quarter: s => {\n return [s.year(), s.quarter()].join('-')\n },\n year: s => {\n return s.year()\n }\n};\nprint.date = print.day;\n\nconst addMethods$2 = SpaceTime => {\n SpaceTime.prototype.isSame = function(b, unit) {\n let a = this;\n if (!unit) {\n return null\n }\n if (typeof b === 'string' || typeof b === 'number') {\n b = new SpaceTime(b, this.timezone.name);\n }\n //support 'seconds' aswell as 'second'\n unit = unit.replace(/s$/, '');\n\n if (print[unit]) {\n return print[unit](a) === print[unit](b)\n }\n return null\n };\n};\n\nvar same = addMethods$2;\n\nconst addMethods$3 = SpaceTime => {\n const methods = {\n isAfter: function(d) {\n d = fns.beADate(d, this);\n let epoch = fns.getEpoch(d);\n if (epoch === null) {\n return null\n }\n return this.epoch > epoch\n },\n isBefore: function(d) {\n d = fns.beADate(d, this);\n let epoch = fns.getEpoch(d);\n if (epoch === null) {\n return null\n }\n return this.epoch < epoch\n },\n isEqual: function(d) {\n d = fns.beADate(d, this);\n let epoch = fns.getEpoch(d);\n if (epoch === null) {\n return null\n }\n return this.epoch === epoch\n },\n isBetween: function(start, end) {\n start = fns.beADate(start, this);\n end = fns.beADate(end, this);\n let startEpoch = fns.getEpoch(start);\n if (startEpoch === null) {\n return null\n }\n let endEpoch = fns.getEpoch(end);\n if (endEpoch === null) {\n return null\n }\n return startEpoch < this.epoch && this.epoch < endEpoch\n }\n };\n\n //hook them into proto\n Object.keys(methods).forEach(k => {\n SpaceTime.prototype[k] = methods[k];\n });\n};\n\nvar compare = addMethods$3;\n\nconst addMethods$4 = SpaceTime => {\n const methods = {\n i18n: data => {\n //change the day names\n if (fns.isObject(data.days)) {\n days.set(data.days);\n }\n //change the month names\n if (fns.isObject(data.months)) {\n months.set(data.months);\n }\n }\n };\n\n //hook them into proto\n Object.keys(methods).forEach(k => {\n SpaceTime.prototype[k] = methods[k];\n });\n};\n\nvar i18n = addMethods$4;\n\nlet timezones = unpack;\n\n//fake timezone-support, for fakers (es5 class)\nconst SpaceTime = function(input$1, tz, options = {}) {\n //the holy moment\n this.epoch = null;\n //the shift for the given timezone\n this.tz = find(tz, timezones);\n //whether to output warnings to console\n this.silent = options.silent || true;\n // favour british interpretation of 02/02/2018, etc\n this.british = options.dmy || options.british;\n\n //does the week start on sunday, or monday:\n this._weekStart = 1; //default to monday\n if (options.weekStart !== undefined) {\n this._weekStart = options.weekStart;\n }\n //add getter/setters\n Object.defineProperty(this, 'd', {\n //return a js date object\n get: function() {\n let offset = quick(this);\n //every computer is somewhere- get this computer's built-in offset\n let bias = new Date(this.epoch).getTimezoneOffset() || 0;\n //movement\n let shift = bias + offset * 60; //in minutes\n shift = shift * 60 * 1000; //in ms\n //remove this computer's offset\n let epoch = this.epoch + shift;\n let d = new Date(epoch);\n return d\n }\n });\n //add this data on the object, to allow adding new timezones\n Object.defineProperty(this, 'timezones', {\n get: () => timezones,\n set: obj => {\n timezones = obj;\n return obj\n }\n });\n //parse the various formats\n if (input$1 !== undefined || input$1 === null) {\n let tmp = input(this, input$1, tz);\n this.epoch = tmp.epoch;\n }\n};\n\n//(add instance methods to prototype)\nObject.keys(methods_1).forEach(k => {\n SpaceTime.prototype[k] = methods_1[k];\n});\n\n// ¯\\_(ツ)_/¯\nSpaceTime.prototype.clone = function() {\n return new SpaceTime(this.epoch, this.tz, {\n silent: this.silent,\n weekStart: this._weekStart\n })\n};\n\n//append more methods\nquery(SpaceTime);\nadd(SpaceTime);\nsame(SpaceTime);\ncompare(SpaceTime);\ni18n(SpaceTime);\n\nvar spacetime = SpaceTime;\n\n// const timezones = require('../data');\n\nconst whereIts = (a, b) => {\n let start = new spacetime(null);\n let end = new spacetime(null);\n start = start.time(a);\n //if b is undefined, use as 'within one hour'\n if (b) {\n end = end.time(b);\n } else {\n end = start.add(59, 'minutes');\n }\n\n let startHour = start.hour();\n let endHour = end.hour();\n let tzs = Object.keys(start.timezones).filter(tz => {\n if (tz.indexOf('/') === -1) {\n return false\n }\n let m = new spacetime(null, tz);\n let hour = m.hour();\n //do 'calendar-compare' not real-time-compare\n if (hour >= startHour && hour <= endHour) {\n //test minutes too, if applicable\n if (hour === startHour && m.minute() < start.minute()) {\n return false\n }\n if (hour === endHour && m.minute() > end.minute()) {\n return false\n }\n return true\n }\n return false\n });\n return tzs\n};\nvar whereIts_1 = whereIts;\n\nvar _version = '6.3.0';\n\nconst main$1 = (input, tz, options) => new spacetime(input, tz, options);\n\n//some helper functions on the main method\nmain$1.now = (tz, options) => new spacetime(new Date().getTime(), tz, options);\nmain$1.today = (tz, options) => {\n let s = new spacetime(new Date().getTime(), tz, options);\n return s.startOf('day')\n};\nmain$1.tomorrow = (tz, options) => {\n let s = new spacetime(new Date().getTime(), tz, options);\n return s.add(1, 'day').startOf('day')\n};\nmain$1.yesterday = (tz, options) => {\n let s = new spacetime(new Date().getTime(), tz, options);\n return s.subtract(1, 'day').startOf('day')\n};\nmain$1.extend = function(obj) {\n Object.keys(obj).forEach(k => {\n spacetime.prototype[k] = obj[k];\n });\n return this\n};\n//find tz by time\nmain$1.whereIts = whereIts_1;\nmain$1.version = _version;\n\n//aliases:\nmain$1.plugin = main$1.extend;\nvar src = main$1;\n\nexport default src;\n","// some opinionated-but-common-sense timezone abbreviations\n// these timezone abbreviations are wholly made-up by me, Spencer Kelly, with no expertise in geography\n// generated humbly from https://github.com/spencermountain/spacetime-informal\nconst spacetime = require('spacetime')\n\nconst america = 'America/'\nconst asia = 'Asia/'\nconst europe = 'Europe/'\nconst africa = 'Africa/'\nconst aus = 'Australia/'\nconst pac = 'Pacific/'\n\nconst informal = {\n //europe\n 'british summer time': europe + 'London',\n bst: europe + 'London',\n 'british time': europe + 'London',\n 'britain time': europe + 'London',\n 'irish summer time': europe + 'Dublin',\n 'irish time': europe + 'Dublin',\n ireland: europe + 'Dublin',\n 'central european time': europe + 'Berlin',\n cet: europe + 'Berlin',\n 'central european summer time': europe + 'Berlin',\n cest: europe + 'Berlin',\n 'central europe': europe + 'Berlin',\n 'eastern european time': europe + 'Riga',\n eet: europe + 'Riga',\n 'eastern european summer time': europe + 'Riga',\n eest: europe + 'Riga',\n 'eastern europe time': europe + 'Riga',\n 'western european time': europe + 'Lisbon',\n // wet: europe+'Lisbon',\n 'western european summer time': europe + 'Lisbon',\n // west: europe+'Lisbon',\n 'western europe': europe + 'Lisbon',\n 'turkey standard time': europe + 'Istanbul',\n trt: europe + 'Istanbul',\n 'turkish time': europe + 'Istanbul',\n\n //africa\n etc: africa + 'Freetown',\n utc: africa + 'Freetown',\n 'greenwich standard time': africa + 'Freetown',\n gmt: africa + 'Freetown',\n 'east africa time': africa + 'Nairobi',\n // eat: africa+'Nairobi',\n 'east african time': africa + 'Nairobi',\n 'eastern africa time': africa + 'Nairobi',\n 'central africa time': africa + 'Khartoum',\n // cat: africa+'Khartoum',\n 'central african time': africa + 'Khartoum',\n 'south africa standard time': africa + 'Johannesburg',\n sast: africa + 'Johannesburg',\n 'southern africa': africa + 'Johannesburg',\n 'south african': africa + 'Johannesburg',\n 'west africa standard time': africa + 'Lagos',\n // wat: africa+'Lagos',\n 'western africa time': africa + 'Lagos',\n 'west african time': africa + 'Lagos',\n\n 'australian central standard time': aus + 'Adelaide',\n acst: aus + 'Adelaide',\n 'australian central daylight time': aus + 'Adelaide',\n acdt: aus + 'Adelaide',\n 'australia central': aus + 'Adelaide',\n 'australian eastern standard time': aus + 'Brisbane',\n aest: aus + 'Brisbane',\n 'australian eastern daylight time': aus + 'Brisbane',\n aedt: aus + 'Brisbane',\n 'australia east': aus + 'Brisbane',\n 'australian western standard time': aus + 'Perth',\n awst: aus + 'Perth',\n 'australian western daylight time': aus + 'Perth',\n awdt: aus + 'Perth',\n 'australia west': aus + 'Perth',\n 'australian central western standard time': aus + 'Eucla',\n acwst: aus + 'Eucla',\n 'australia central west': aus + 'Eucla',\n 'lord howe standard time': aus + 'Lord_Howe',\n lhst: aus + 'Lord_Howe',\n 'lord howe daylight time': aus + 'Lord_Howe',\n lhdt: aus + 'Lord_Howe',\n 'russian standard time': europe + 'Moscow',\n msk: europe + 'Moscow',\n russian: europe + 'Moscow',\n\n //america\n 'central standard time': america + 'Chicago',\n 'central time': america + 'Chicago',\n cst: america + 'Havana',\n 'central daylight time': america + 'Chicago',\n cdt: america + 'Havana',\n 'mountain standard time': america + 'Denver',\n 'mountain time': america + 'Denver',\n mst: america + 'Denver',\n 'mountain daylight time': america + 'Denver',\n mdt: america + 'Denver',\n 'atlantic standard time': america + 'Halifax',\n 'atlantic time': america + 'Halifax',\n ast: asia + 'Baghdad',\n 'atlantic daylight time': america + 'Halifax',\n adt: america + 'Halifax',\n 'eastern standard time': america + 'New_York',\n 'eastern time': america + 'New_York',\n est: america + 'New_York',\n 'eastern daylight time': america + 'New_York',\n edt: america + 'New_York',\n 'pacific time': america + 'Los_Angeles',\n 'pacific standard time': america + 'Los_Angeles',\n pst: america + 'Los_Angeles',\n 'pacific daylight time': america + 'Los_Angeles',\n pdt: america + 'Los_Angeles',\n 'alaskan standard time': america + 'Anchorage',\n 'alaskan time': america + 'Anchorage',\n ahst: america + 'Anchorage',\n 'alaskan daylight time': america + 'Anchorage',\n ahdt: america + 'Anchorage',\n 'hawaiian standard time': pac + 'Honolulu',\n 'hawaiian time': pac + 'Honolulu',\n hst: pac + 'Honolulu',\n 'aleutian time': pac + 'Honolulu',\n 'hawaii time': pac + 'Honolulu',\n 'newfoundland standard time': america + 'St_Johns',\n 'newfoundland time': america + 'St_Johns',\n nst: america + 'St_Johns',\n 'newfoundland daylight time': america + 'St_Johns',\n ndt: america + 'St_Johns',\n 'brazil time': america + 'Sao_Paulo',\n brt: america + 'Sao_Paulo',\n brasília: america + 'Sao_Paulo',\n brasilia: america + 'Sao_Paulo',\n 'brazilian time': america + 'Sao_Paulo',\n 'argentina time': america + 'Buenos_Aires',\n // art: a+'Buenos_Aires',\n 'argentinian time': america + 'Buenos_Aires',\n 'amazon time': america + 'Manaus',\n amt: america + 'Manaus',\n 'amazonian time': america + 'Manaus',\n 'easter island standard time': 'Chile/Easterisland',\n east: 'Chile/Easterisland',\n 'easter island summer time': 'Chile/Easterisland',\n easst: 'Chile/Easterisland',\n 'venezuelan standard time': america + 'Caracas',\n 'venezuelan time': america + 'Caracas',\n vet: america + 'Caracas',\n 'venezuela time': america + 'Caracas',\n 'paraguay time': america + 'Asuncion',\n pyt: america + 'Asuncion',\n 'paraguay summer time': america + 'Asuncion',\n pyst: america + 'Asuncion',\n 'cuba standard time': america + 'Havana',\n 'cuba time': america + 'Havana',\n 'cuba daylight time': america + 'Havana',\n 'cuban time': america + 'Havana',\n 'bolivia time': america + 'La_Paz',\n // bot: a+'La_Paz',\n 'bolivian time': america + 'La_Paz',\n 'colombia time': america + 'Bogota',\n cot: america + 'Bogota',\n 'colombian time': america + 'Bogota',\n 'acre time': america + 'Eirunepe',\n // act: a+'Eirunepe',\n 'peru time': america + 'Lima',\n // pet: a+'Lima',\n 'chile standard time': america + 'Punta_Arenas',\n 'chile time': america + 'Punta_Arenas',\n clst: america + 'Punta_Arenas',\n 'chile summer time': america + 'Punta_Arenas',\n cldt: america + 'Punta_Arenas',\n 'uruguay time': america + 'Montevideo',\n uyt: america + 'Montevideo',\n\n //asia\n ist: asia + 'Jerusalem',\n 'arabic standard time': asia + 'Baghdad',\n 'arabic time': asia + 'Baghdad',\n 'arab time': asia + 'Baghdad',\n 'iran standard time': asia + 'Tehran',\n 'iran time': asia + 'Tehran',\n irst: asia + 'Tehran',\n 'iran daylight time': asia + 'Tehran',\n irdt: asia + 'Tehran',\n iranian: asia + 'Tehran',\n 'pakistan standard time': asia + 'Karachi',\n 'pakistan time': asia + 'Karachi',\n pkt: asia + 'Karachi',\n 'india standard time': asia + 'Kolkata',\n 'indian time': asia + 'Kolkata',\n 'indochina time': asia + 'Bangkok',\n ict: asia + 'Bangkok',\n 'south east asia': asia + 'Bangkok',\n 'china standard time': asia + 'Shanghai',\n ct: asia + 'Shanghai',\n 'chinese time': asia + 'Shanghai',\n 'alma-ata time': asia + 'Almaty',\n almt: asia + 'Almaty',\n 'oral time': asia + 'Oral',\n 'orat time': asia + 'Oral',\n 'yakutsk time': asia + 'Yakutsk',\n yakt: asia + 'Yakutsk',\n 'gulf standard time': asia + 'Dubai',\n 'gulf time': asia + 'Dubai',\n gst: asia + 'Dubai',\n uae: asia + 'Dubai',\n 'hong kong time': asia + 'Hong_Kong',\n hkt: asia + 'Hong_Kong',\n 'western indonesian time': asia + 'Jakarta',\n wib: asia + 'Jakarta',\n 'indonesia time': asia + 'Jakarta',\n 'central indonesian time': asia + 'Makassar',\n wita: asia + 'Makassar',\n 'israel daylight time': asia + 'Jerusalem',\n idt: asia + 'Jerusalem',\n 'israel standard time': asia + 'Jerusalem',\n 'israel time': asia + 'Jerusalem',\n israeli: asia + 'Jerusalem',\n 'krasnoyarsk time': asia + 'Krasnoyarsk',\n krat: asia + 'Krasnoyarsk',\n 'malaysia time': asia + 'Kuala_Lumpur',\n myt: asia + 'Kuala_Lumpur',\n 'singapore time': asia + 'Singapore',\n sgt: asia + 'Singapore',\n 'korea standard time': asia + 'Seoul',\n 'korea time': asia + 'Seoul',\n kst: asia + 'Seoul',\n 'korean time': asia + 'Seoul',\n 'uzbekistan time': asia + 'Samarkand',\n uzt: asia + 'Samarkand',\n 'vladivostok time': asia + 'Vladivostok',\n vlat: asia + 'Vladivostok',\n\n //indian\n 'maldives time': 'Indian/Maldives',\n mvt: 'Indian/Maldives',\n 'mauritius time': 'Indian/Mauritius',\n mut: 'Indian/Mauritius',\n\n // pacific\n 'marshall islands time': pac + 'Kwajalein',\n mht: pac + 'Kwajalein',\n 'samoa standard time': pac + 'Midway',\n sst: pac + 'Midway',\n 'somoan time': pac + 'Midway',\n 'chamorro standard time': pac + 'Guam',\n chst: pac + 'Guam',\n 'papua new guinea time': pac + 'Bougainville',\n pgt: pac + 'Bougainville',\n}\n\n//add the official iana zonefile names\nlet iana = spacetime().timezones\nlet formal = Object.keys(iana).reduce((h, k) => {\n h[k] = k\n return h\n}, {})\nmodule.exports = Object.assign({}, informal, formal)\n","module.exports = [\n 'weekday',\n\n 'summer',\n 'winter',\n 'autumn',\n\n 'some day',\n 'one day',\n 'all day',\n 'some point',\n\n 'eod',\n 'eom',\n 'standard time',\n 'daylight time',\n]\n","module.exports = [\n 'centuries',\n 'century',\n 'day',\n 'days',\n 'decade',\n 'decades',\n 'hour',\n 'hours',\n 'millisecond',\n 'milliseconds',\n 'minute',\n 'minutes',\n 'month',\n 'months',\n 'seconds',\n 'week',\n 'weeks',\n 'year',\n 'years',\n]\n","module.exports = [\n 'all hallows eve',\n 'all saints day',\n 'all sts day',\n 'april fools',\n 'armistice day',\n 'australia day',\n 'bastille day',\n 'boxing day',\n 'canada day',\n 'christmas eve',\n 'christmas',\n 'cinco de mayo',\n 'day of the dead',\n 'dia de muertos',\n 'dieciseis de septiembre',\n 'emancipation day',\n 'grito de dolores',\n 'groundhog day',\n 'halloween',\n 'harvey milk day',\n 'inauguration day',\n 'independence day',\n 'independents day',\n 'juneteenth',\n 'labour day',\n 'national freedom day',\n 'national nurses day',\n 'new years eve',\n 'new years',\n 'purple heart day',\n 'rememberance day',\n 'rosa parks day',\n 'saint andrews day',\n 'saint patricks day',\n 'saint stephens day',\n 'saint valentines day',\n 'st andrews day',\n 'st patricks day',\n 'st stephens day',\n 'st valentines day ',\n 'valentines day',\n 'valentines',\n 'veterans day',\n 'victoria day',\n 'womens equality day',\n 'xmas',\n // Fixed religious and cultural holidays\n // Catholic + Christian\n 'epiphany',\n 'orthodox christmas day',\n 'orthodox new year',\n 'assumption of mary',\n 'all souls day',\n 'feast of the immaculate conception',\n 'feast of our lady of guadalupe',\n\n // Kwanzaa\n 'kwanzaa',\n // Pagan / metal 🤘\n 'imbolc',\n 'beltaine',\n 'lughnassadh',\n 'samhain',\n 'martin luther king day',\n 'mlk day',\n 'presidents day',\n 'mardi gras',\n 'tax day',\n 'commonwealth day',\n 'mothers day',\n 'memorial day',\n 'fathers day',\n 'columbus day',\n 'indigenous peoples day',\n 'canadian thanksgiving',\n 'election day',\n 'thanksgiving',\n 't-day',\n 'turkey day',\n 'black friday',\n 'cyber monday',\n // Astronomical religious and cultural holidays\n 'ash wednesday',\n 'palm sunday',\n 'maundy thursday',\n 'good friday',\n 'holy saturday',\n 'easter',\n 'easter sunday',\n 'easter monday',\n 'orthodox good friday',\n 'orthodox holy saturday',\n 'orthodox easter',\n 'orthodox easter monday',\n 'ascension day',\n 'pentecost',\n 'whitsunday',\n 'whit sunday',\n 'whit monday',\n 'trinity sunday',\n 'corpus christi',\n 'advent',\n // Jewish\n 'tu bishvat',\n 'tu bshevat',\n 'purim',\n 'passover',\n 'yom hashoah',\n 'lag baomer',\n 'shavuot',\n 'tisha bav',\n 'rosh hashana',\n 'yom kippur',\n 'sukkot',\n 'shmini atzeret',\n 'simchat torah',\n 'chanukah',\n 'hanukkah',\n // Muslim\n 'isra and miraj',\n 'lailat al-qadr',\n 'eid al-fitr',\n 'id al-Fitr',\n 'eid ul-Fitr',\n 'ramadan',\n 'eid al-adha',\n 'muharram',\n 'the prophets birthday',\n 'ostara',\n 'march equinox',\n 'vernal equinox',\n 'litha',\n 'june solistice',\n 'summer solistice',\n 'mabon',\n 'september equinox',\n 'fall equinox',\n 'autumnal equinox',\n 'yule',\n 'december solstice',\n 'winter solstice',\n // Additional important holidays\n 'chinese new year',\n 'diwali',\n]\n","module.exports = [\n 'noon',\n 'midnight',\n 'now',\n 'morning',\n 'tonight',\n 'evening',\n 'afternoon',\n 'night',\n 'breakfast time',\n 'lunchtime',\n 'dinnertime',\n 'ago',\n 'sometime',\n 'eod',\n 'oclock',\n 'oclock',\n 'all day',\n 'at night',\n]\n","let lex = {}\nconst timezones = require('../_timezones')\n\nconst data = [\n [require('./dates'), '#Date'],\n [require('./durations'), '#Duration'],\n [require('./holidays'), '#Holiday'],\n [require('./times'), '#Time'],\n [Object.keys(timezones), '#Timezone'],\n]\ndata.forEach(a => {\n for (let i = 0; i < a[0].length; i++) {\n lex[a[0][i]] = a[1]\n }\n})\n\nmodule.exports = lex\n","const normalize = function(doc) {\n doc = doc.clone()\n\n if (!doc.numbers) {\n console.warn(\"Compromise: compromise-dates cannot find plugin dependency 'compromise-number'\")\n } else {\n // convert 'two' to 2\n let num = doc.numbers()\n num.toNumber()\n num.toCardinal()\n }\n // remove adverbs\n doc.adverbs().remove()\n return doc\n}\nmodule.exports = normalize\n","const knownUnits = {\n second: true,\n minute: true,\n hour: true,\n day: true,\n week: true,\n month: true,\n season: true,\n quarter: true,\n year: true,\n}\n\n//turn '5 weeks before' to {weeks:5}\nconst parseShift = function(doc) {\n let result = {}\n let m = doc.match('#DateShift+')\n if (m.found === false) {\n return result\n }\n m.match('#Cardinal #Duration').forEach(ts => {\n let num = ts.match('#Cardinal').text('normal')\n num = parseFloat(num)\n if (num && typeof num === 'number') {\n let unit = ts.match('#Duration').text('normal')\n unit = unit.replace(/s$/, '')\n if (unit && knownUnits.hasOwnProperty(unit)) {\n result[unit] = num\n }\n }\n })\n //is it 2 weeks before? → -2\n if (m.has('before$') === true) {\n Object.keys(result).forEach(k => (result[k] *= -1))\n }\n // finally, remove it from our text\n doc.remove('#DateShift')\n return result\n}\nmodule.exports = parseShift\n","const spacetime = require('spacetime')\n//hmmm: 'june 5th between 9 and 10am'\n\nconst halfPast = function(m, s) {\n let hour = m.match('#Cardinal$').text('reduced')\n\n let term = m.match('(half|quarter|25|15|10|5)')\n let mins = term.text('reduced')\n if (term.has('half')) {\n mins = '30'\n }\n if (term.has('quarter')) {\n mins = '15'\n }\n let behind = m.has('to')\n // apply it\n s = s.hour(hour)\n s = s.startOf('hour')\n if (behind) {\n s = s.subtract(mins, 'minutes')\n } else {\n s = s.add(mins, 'minutes')\n }\n return s\n}\n\nconst parseTime = function(doc, context) {\n let time = doc.match('(at|by|for|before)? #Time+')\n if (time.found) {\n doc.remove(time)\n }\n // get the main part of the time\n time = time.not('(at|by|for|before|sharp)')\n time = time.not('on the dot')\n let s = spacetime.now(context.timezone)\n let now = s.clone()\n\n // '5 oclock'\n let m = time.match('^#Cardinal oclock (am|pm)?')\n if (m.found) {\n m = m.not('oclock')\n s = s.hour(m.text('reduced'))\n if (s.isValid() && !s.isEqual(now)) {\n return s.time()\n }\n }\n\n // 'quarter to two'\n m = time.match('(half|quarter|25|15|10|5) (past|after|to) #Cardinal')\n if (m.found) {\n s = halfPast(m, s)\n if (s.isValid() && !s.isEqual(now)) {\n return s.time()\n }\n }\n // parse random a time like '4:54pm'\n let str = time.text('reduced')\n s = s.time(str)\n if (s.isValid() && !s.isEqual(now)) {\n return s.time()\n }\n return null\n}\nmodule.exports = parseTime\n","// interpret 'this halloween' or 'next june'\nconst parseRelative = function(doc) {\n let rel = null\n if (doc.has('^this? (next|upcoming)')) {\n rel = 'next'\n }\n if (doc.has('^this? (last|previous)')) {\n rel = 'last'\n }\n if (doc.has('^(this|current)')) {\n rel = 'this'\n }\n // finally, remove it from our text\n doc.remove('^(this|current|next|upcoming|last|previous)')\n return rel\n}\nmodule.exports = parseRelative\n","const informal = require('../../data/_timezones')\n\nconst isOffset = /(\\-?[0-9]+)h(rs)?/i\nconst isNumber = /(\\-?[0-9]+)/\nconst utcOffset = /utc([\\-+]?[0-9]+)/i\nconst gmtOffset = /gmt([\\-+]?[0-9]+)/i\n\nconst toIana = function(num) {\n num = Number(num)\n if (num > -13 && num < 13) {\n num = num * -1 //it's opposite!\n num = (num > 0 ? '+' : '') + num //add plus sign\n return 'Etc/GMT' + num\n }\n return null\n}\n\nconst parseOffset = function(tz) {\n // '+5hrs'\n let m = tz.match(isOffset)\n if (m !== null) {\n return toIana(m[1])\n }\n // 'utc+5'\n m = tz.match(utcOffset)\n if (m !== null) {\n return toIana(m[1])\n }\n // 'GMT-5' (not opposite)\n m = tz.match(gmtOffset)\n if (m !== null) {\n let num = Number(m[1]) * -1\n return toIana(num)\n }\n // '+5'\n m = tz.match(isNumber)\n if (m !== null) {\n return toIana(m[1])\n }\n return null\n}\n\nconst parseTimezone = function(doc) {\n let m = doc.match('#Timezone+')\n //remove prepositions\n m = m.remove('(in|for|by|near|at)')\n let str = m.text('reduced')\n\n // remove it from our doc, either way\n doc.remove('#Timezone+')\n\n // check our list of informal tz names\n if (informal.hasOwnProperty(str)) {\n return informal[str]\n }\n let tz = parseOffset(str)\n if (tz) {\n return tz\n }\n\n return null\n}\nmodule.exports = parseTimezone\n","const spacetime = require('spacetime')\n\nclass Unit {\n constructor(input, unit, context) {\n this.unit = unit || 'day'\n context = context || {}\n // set it to the beginning of the given unit\n let d = spacetime(input, context.timezone)\n\n // set to beginning\n if (d.isValid()) {\n d = d.startOf(this.unit)\n }\n Object.defineProperty(this, 'd', {\n enumerable: false,\n writable: true,\n value: d,\n })\n Object.defineProperty(this, 'context', {\n enumerable: false,\n writable: true,\n value: context,\n })\n }\n // make a new one\n clone() {\n let d = new Unit(this.d, this.unit, this.context)\n return d\n }\n log() {\n console.log('--')\n this.d.log()\n console.log('\\n')\n return this\n }\n applyShift(obj) {\n Object.keys(obj).forEach(k => {\n this.d = this.d.add(obj[k], k)\n })\n return this\n }\n applyTime(str) {\n if (str) {\n this.d = this.d.time(str)\n } else {\n this.d = this.d.startOf('day') //zero-out time\n }\n return this\n }\n format(fmt) {\n return this.d.format(fmt)\n }\n start() {\n this.d = this.d.startOf(this.unit)\n return this\n }\n end() {\n this.d = this.d.endOf(this.unit)\n return this\n }\n // 'before 2019'\n before() {\n this.d = spacetime.now(this.context.timezone) // ???\n return this\n }\n // 'after 2019'\n after() {\n this.d = this.d.add(1, this.unit)\n this.d = this.d.startOf(this.unit)\n return this\n }\n // tricky: 'next june' 'next tuesday'\n next() {\n this.d = this.d.add(1, this.unit)\n this.d = this.d.startOf(this.unit)\n return this\n }\n // tricky: 'last june' 'last tuesday'\n last() {\n this.d = this.d.minus(1, this.unit)\n this.d = this.d.startOf(this.unit)\n return this\n }\n}\nmodule.exports = Unit\n","const spacetime = require('spacetime')\nconst Unit = require('./Unit')\n\nclass Day extends Unit {\n constructor(input, unit, context) {\n super(input, unit, context)\n this.unit = 'day'\n }\n}\nclass Month extends Unit {\n constructor(input, unit, context) {\n super(input, unit, context)\n this.unit = 'month'\n }\n}\nclass Quarter extends Unit {\n constructor(input, unit, context) {\n super(input, unit, context)\n this.unit = 'quarter'\n }\n}\nclass Year extends Unit {\n constructor(input, unit, context) {\n super(input, unit, context)\n this.unit = 'year'\n }\n}\nclass WeekDay extends Unit {\n constructor(input, unit, context) {\n super(input, unit, context)\n this.unit = 'week'\n this.d = this.d.day(input)\n this.weekDay = this.d.dayName()\n //assume a wednesday in the future\n if (this.d.date() < spacetime.now(context.timezone).date()) {\n this.d = this.d.add(7, 'days')\n }\n }\n next() {\n this.d = this.d.add(7, 'days')\n this.d = this.d.day(this.weekDay)\n return this\n }\n last() {\n this.d = this.d.minus(7, 'days')\n this.d = this.d.day(this.weekDay)\n return this\n }\n}\n// like 'feb 2'\nclass CalendarDate extends Unit {\n constructor(input, unit, context) {\n super(input, unit, context)\n this.unit = 'day'\n }\n next() {\n this.d = this.d.add(1, 'year')\n return this\n }\n last() {\n this.d = this.d.minus(1, 'year')\n return this\n }\n}\n\nmodule.exports = {\n Unit: Unit,\n Day: Day,\n Month: Month,\n Quarter: Quarter,\n Year: Year,\n WeekDay: WeekDay,\n CalendarDate: CalendarDate,\n}\n","const { Unit } = require('../_units')\n\nconst onlySection = function(doc, context, section) {\n let d = null\n if (doc.found === false) {\n // do we have just a time?\n if (section.time !== null) {\n d = new Unit(context.today, null, context) // choose today\n }\n //do we just have a shift?\n if (Object.keys(section.shift).length > 0) {\n d = new Unit(context.today, null, context) // choose today\n }\n }\n return d\n}\nmodule.exports = onlySection\n","const units = require('../_units')\nconst mapping = {\n week: units.Week,\n month: units.Month,\n quarter: units.Quarter,\n year: units.Year,\n season: units.Season,\n}\n\n// when a unit of time is spoken of as 'this month' - instead of 'february'\nconst namedUnit = function(doc, context) {\n //this month, last quarter, next year\n let m = doc.match('(weekday|week|month|quarter|season|year)')\n if (m.found === true) {\n let str = m.lastTerm().text('reduced')\n if (mapping.hasOwnProperty(str)) {\n let Model = mapping[str]\n if (!Model) {\n return null\n }\n let unit = new Model(null, str, context)\n return unit\n }\n }\n\n //try this version - 'next friday, last thursday'\n m = doc.match('(monday|tuesday|wednesday|thursday|friday|saturday|sunday)')\n if (m.found === true) {\n let str = m.lastTerm().text('reduced')\n let unit = new units.WeekDay(str, null, context)\n return unit\n }\n return null\n}\nmodule.exports = namedUnit\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('spacetime')) :\n typeof define === 'function' && define.amd ? define(['spacetime'], factory) :\n (global = global || self, global.spacetimeHoliday = factory(global.spacetime));\n}(this, function (spacetime) { 'use strict';\n\n spacetime = spacetime && spacetime.hasOwnProperty('default') ? spacetime['default'] : spacetime;\n\n //yep,\n var jan = 'january';\n var feb = 'february';\n var mar = 'march';\n var apr = 'april';\n var may = 'may';\n var jun = 'june';\n var jul = 'july';\n var aug = 'august';\n var sep = 'september';\n var oct = 'october';\n var nov = 'november';\n var dec = 'december';\n var fixedHolidays = {\n 'new years eve': [dec, 31],\n 'new years': [jan, 1],\n 'new years day': [jan, 1],\n 'inauguration day': [jan, 20],\n 'australia day': [jan, 26],\n 'national freedom day': [feb, 1],\n 'groundhog day': [feb, 2],\n 'rosa parks day': [feb, 4],\n 'valentines day': [feb, 14],\n 'saint valentines day': [feb, 14],\n 'st valentines day ': [feb, 14],\n 'saint patricks day': [mar, 17],\n 'st patricks day': [mar, 17],\n 'april fools': [apr, 1],\n 'april fools day': [apr, 1],\n 'emancipation day': [apr, 16],\n 'tax day': [apr, 15],\n //US\n 'labour day': [may, 1],\n 'cinco de mayo': [may, 5],\n 'national nurses day': [may, 6],\n 'harvey milk day': [may, 22],\n 'victoria day': [may, 24],\n juneteenth: [jun, 19],\n 'canada day': [jul, 1],\n 'independence day': [jul, 4],\n 'independents day': [jul, 4],\n 'bastille day': [jul, 14],\n 'purple heart day': [aug, 7],\n 'womens equality day': [aug, 26],\n '16 de septiembre': [sep, 16],\n 'dieciseis de septiembre': [sep, 16],\n 'grito de dolores': [sep, 16],\n halloween: [oct, 31],\n 'all hallows eve': [oct, 31],\n 'day of the dead': [oct, 31],\n // Ranged holiday [nov, 2],\n 'dia de muertos': [oct, 31],\n // Ranged holiday [nov, 2],\n 'veterans day': [nov, 11],\n 'st andrews day': [nov, 30],\n 'saint andrews day': [nov, 30],\n 'all saints day': [nov, 1],\n 'all sts day': [nov, 1],\n 'armistice day': [nov, 11],\n 'rememberance day': [nov, 11],\n 'christmas eve': [dec, 24],\n christmas: [dec, 25],\n xmas: [dec, 25],\n 'boxing day': [dec, 26],\n 'st stephens day': [dec, 26],\n 'saint stephens day': [dec, 26],\n // Fixed religious and cultural holidays\n // Catholic + Christian\n epiphany: [jan, 6],\n 'orthodox christmas day': [jan, 7],\n 'orthodox new year': [jan, 14],\n 'assumption of mary': [aug, 15],\n 'all souls day': [nov, 2],\n 'feast of the immaculate conception': [dec, 8],\n 'feast of our lady of guadalupe': [dec, 12],\n // Kwanzaa\n kwanzaa: [dec, 26],\n // Ranged holiday [jan, 1],\n // Pagan / metal 🤘\n imbolc: [feb, 2],\n beltaine: [may, 1],\n lughnassadh: [aug, 1],\n samhain: [oct, 31]\n };\n\n var fixedDates = function fixedDates(str, normal, year) {\n if (fixedHolidays.hasOwnProperty(str) || fixedHolidays.hasOwnProperty(normal)) {\n var arr = fixedHolidays[str] || fixedHolidays[normal] || [];\n var s = spacetime.now();\n s = s.year(year);\n s = s.startOf('year');\n s = s.month(arr[0]);\n s = s.date(arr[1]);\n\n if (s.isValid()) {\n return s;\n }\n }\n\n return null;\n };\n\n var _01FixedDates = fixedDates;\n\n //these are holidays on the 'nth weekday of month'\n var jan$1 = 'january';\n var feb$1 = 'february';\n var mar$1 = 'march'; // const apr = 'april'\n\n var may$1 = 'may';\n var jun$1 = 'june'; // const jul = 'july'\n // const aug = 'august'\n\n var sep$1 = 'september';\n var oct$1 = 'october';\n var nov$1 = 'november'; // const dec = 'december'\n\n var mon = 'monday'; // const tues = 'tuesday'\n // const wed = 'wednesday'\n\n var thurs = 'thursday';\n var fri = 'friday'; // const sat = 'saturday'\n\n var sun = 'sunday';\n var holidays = {\n 'martin luther king day': [3, mon, jan$1],\n //[third monday in january],\n 'presidents day': [3, mon, feb$1],\n //[third monday in february],\n 'commonwealth day': [2, mon, mar$1],\n //[second monday in march],\n 'mothers day': [2, sun, may$1],\n //[second Sunday in May],\n 'fathers day': [3, sun, jun$1],\n //[third Sunday in June],\n 'labor day': [1, mon, sep$1],\n //[first monday in september],\n 'columbus day': [2, mon, oct$1],\n //[second monday in october],\n 'canadian thanksgiving': [2, mon, oct$1],\n //[second monday in october],\n thanksgiving: [4, thurs, nov$1],\n // [fourth Thursday in November],\n 'black friday': [4, fri, nov$1] //[fourth friday in november],\n // 'memorial day': [may], //[last monday in may],\n // 'us election': [nov], // [Tuesday following the first Monday in November],\n // 'cyber monday': [nov]\n // 'advent': [] // fourth Sunday before Christmas\n\n }; // add aliases\n\n holidays['turday day'] = holidays.thanksgiving;\n holidays['indigenous peoples day'] = holidays['columbus day'];\n holidays['mlk day'] = holidays['martin luther king day'];\n var calendarHolidays = holidays;\n\n var fixedDates$1 = function fixedDates(str, normal, year) {\n if (calendarHolidays.hasOwnProperty(str) || calendarHolidays.hasOwnProperty(normal)) {\n var arr = calendarHolidays[str] || calendarHolidays[normal] || [];\n var s = spacetime.now();\n s = s.year(year); // [3rd, 'monday', 'january']\n\n s = s.month(arr[2]);\n s = s.startOf('month'); // make it january\n\n var month = s.month(); // make it the 1st monday\n\n s = s.day(arr[1]);\n\n if (s.month() !== month) {\n s = s.add(1, 'week');\n } // make it nth monday\n\n\n if (arr[0] > 1) {\n s = s.add(arr[0] - 1, 'week');\n }\n\n if (s.isValid()) {\n return s;\n }\n }\n\n return null;\n };\n\n var _02NthWeekday = fixedDates$1;\n\n // https://www.timeanddate.com/calendar/determining-easter-date.html\n var dates = {\n easter: 0,\n 'ash wednesday': -46,\n // (46 days before easter)\n 'palm sunday': 7,\n // (1 week before easter)\n 'maundy thursday': -3,\n // (3 days before easter)\n 'good friday': -2,\n // (2 days before easter)\n 'holy saturday': -1,\n // (1 days before easter)\n 'easter saturday': -1,\n // (1 day before easter)\n 'easter monday': 1,\n // (1 day after easter)\n 'ascension day': 39,\n // (39 days after easter)\n 'whit sunday': 49,\n // / pentecost (49 days after easter)\n 'whit monday': 50,\n // (50 days after easter)\n 'trinity sunday': 65,\n // (56 days after easter)\n 'corpus christi': 60,\n // (60 days after easter)\n 'mardi gras': -47 //(47 days before easter)\n\n };\n dates['easter sunday'] = dates.easter;\n dates['pentecost'] = dates['whit sunday'];\n dates['whitsun'] = dates['whit sunday'];\n var easterHolidays = dates;\n\n // by John Dyer\n // based on the algorithm by Oudin (1940) from http://www.tondering.dk/claus/cal/easter.php\n var calcEaster = function calcEaster(year) {\n var f = Math.floor,\n // Golden Number - 1\n G = year % 19,\n C = f(year / 100),\n // related to Epact\n H = (C - f(C / 4) - f((8 * C + 13) / 25) + 19 * G + 15) % 30,\n // number of days from 21 March to the Paschal full moon\n I = H - f(H / 28) * (1 - f(29 / (H + 1)) * f((21 - G) / 11)),\n // weekday for the Paschal full moon\n J = (year + f(year / 4) + I + 2 - C + f(C / 4)) % 7,\n // number of days from 21 March to the Sunday on or before the Paschal full moon\n L = I - J,\n month = 3 + f((L + 40) / 44),\n date = L + 28 - 31 * f(month / 4);\n month = month === 4 ? 'April' : 'March';\n return month + ' ' + date;\n };\n\n var calcEaster_1 = calcEaster;\n\n var easterDates = function easterDates(str, normal, year) {\n if (easterHolidays.hasOwnProperty(str) || easterHolidays.hasOwnProperty(normal)) {\n var days = easterHolidays[str] || easterHolidays[normal] || [];\n var date = calcEaster_1(year);\n\n if (!date) {\n return null; //no easter for this year\n }\n\n var e = spacetime(date);\n e = e.year(year);\n var s = e.add(days, 'day');\n\n if (s.isValid()) {\n return s;\n }\n }\n\n return null;\n };\n\n var _03EasterDates = easterDates;\n\n // http://www.astropixels.com/ephemeris/soleq2001.html\n // years 2000-2100\n var exceptions = {\n spring: [2003, 2007, 2044, 2048, 2052, 2056, 2060, 2064, 2068, 2072, 2076, 2077, 2080, 2081, 2084, 2085, 2088, 2089, 2092, 2093, 2096, 2097],\n 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],\n 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],\n winter: [2002, 2003, 2006, 2007, 2011, 2015, 2019, 2023, 2027, 2031, 2035, 2039, 2043, 2080, 2084, 2088, 2092, 2096]\n };\n var winter20th = [2080, 2084, 2088, 2092, 2096];\n\n var calcSeasons = function calcSeasons(year) {\n // most common defaults\n var res = {\n spring: 'March 20 ' + year,\n summer: 'June 21 ' + year,\n fall: 'Sept 22 ' + year,\n winter: 'Dec 21 ' + year\n };\n\n if (exceptions.spring.indexOf(year) !== -1) {\n res.spring = 'March 19 ' + year;\n }\n\n if (exceptions.summer.indexOf(year) !== -1) {\n res.summer = 'June 20 ' + year;\n }\n\n if (exceptions.fall.indexOf(year) !== -1) {\n res.fall = 'Sept 21 ' + year;\n } // winter can be 20th, 21st, or 22nd\n\n\n if (exceptions.winter.indexOf(year) !== -1) {\n res.winter = 'Dec 22 ' + year;\n }\n\n if (winter20th.indexOf(year) !== -1) {\n res.winter = 'Dec 20 ' + year;\n }\n\n return res;\n };\n\n var seasons = calcSeasons;\n\n // these are properly calculated in ./lib/seasons\n var dates$1 = {\n 'spring equinox': 'spring',\n 'summer solistice': 'summer',\n 'fall equinox': 'fall',\n 'winter solstice': 'winter'\n }; // aliases\n\n dates$1['march equinox'] = dates$1['spring equinox'];\n dates$1['vernal equinox'] = dates$1['spring equinox'];\n dates$1['ostara'] = dates$1['spring equinox'];\n dates$1['june solstice'] = dates$1['summer solistice'];\n dates$1['litha'] = dates$1['summer solistice'];\n dates$1['autumn equinox'] = dates$1['fall equinox'];\n dates$1['autumnal equinox'] = dates$1['fall equinox'];\n dates$1['september equinox'] = dates$1['fall equinox'];\n dates$1['sept equinox'] = dates$1['fall equinox'];\n dates$1['mabon'] = dates$1['fall equinox'];\n dates$1['december solstice'] = dates$1['winter solistice'];\n dates$1['dec solstice'] = dates$1['winter solistice'];\n dates$1['yule'] = dates$1['winter solistice'];\n var astroHolidays = dates$1;\n\n var astroDates = function astroDates(str, normal, year) {\n if (astroHolidays.hasOwnProperty(str) || astroHolidays.hasOwnProperty(normal)) {\n var season = astroHolidays[str] || astroHolidays[normal];\n var seasons$1 = seasons(year);\n\n if (!season || !seasons$1 || !seasons$1[season]) {\n return null; // couldn't figure it out\n }\n\n var s = spacetime(seasons$1[season]);\n\n if (s.isValid()) {\n return s;\n }\n }\n\n return null;\n };\n\n var _04Astronomical = astroDates;\n\n var dates$2 = {\n // Muslim holidays\n 'isra and miraj': 'april 13',\n 'lailat al-qadr': 'june 10',\n 'eid al-fitr': 'june 15',\n 'id al-Fitr': 'june 15',\n 'eid ul-Fitr': 'june 15',\n ramadan: 'may 16',\n // Range holiday\n 'eid al-adha': 'sep 22',\n muharram: 'sep 12',\n 'prophets birthday': 'nov 21'\n };\n var lunarHolidays = dates$2;\n\n var dayDiff = -10.64;\n\n var lunarDates = function lunarDates(str, normal, year) {\n if (lunarHolidays.hasOwnProperty(str) || lunarHolidays.hasOwnProperty(normal)) {\n var date = lunarHolidays[str] || lunarHolidays[normal] || [];\n\n if (!date) {\n return null;\n } // start at 2018\n\n\n var s = spacetime(date + ' 2018');\n var diff = year - 2018;\n var toAdd = diff * dayDiff;\n s = s.add(toAdd, 'day');\n s = s.startOf('day'); // now set the correct year\n\n s = s.year(year);\n\n if (s.isValid()) {\n return s;\n }\n }\n\n return null;\n };\n\n var _05LunarDates = lunarDates;\n\n var nowYear = spacetime.now().year();\n\n var spacetimeHoliday = function spacetimeHoliday(str, year) {\n year = year || nowYear;\n str = str || '';\n str = String(str);\n str = str.trim().toLowerCase();\n str = str.replace(/'s/, 's'); // 'mother's day'\n\n var normal = str.replace(/ day$/, '');\n normal = normal.replace(/^the /, '');\n normal = normal.replace(/^orthodox /, ''); //orthodox good friday\n // try easier, unmoving holidays\n\n var s = _01FixedDates(str, normal, year);\n\n if (s !== null) {\n return s;\n } // try 'nth monday' holidays\n\n\n s = _02NthWeekday(str, normal, year);\n\n if (s !== null) {\n return s;\n } // easter-based holidays\n\n\n s = _03EasterDates(str, normal, year);\n\n if (s !== null) {\n return s;\n } // solar-based holidays\n\n\n s = _04Astronomical(str, normal, year);\n\n if (s !== null) {\n return s;\n } // mostly muslim holidays\n\n\n s = _05LunarDates(str, normal, year);\n\n if (s !== null) {\n return s;\n }\n\n return null;\n };\n\n var src = spacetimeHoliday;\n\n return src;\n\n}));\n//# sourceMappingURL=spacetime-holiday.js.map\n","const { CalendarDate } = require('../_units')\nconst spacetimeHoliday = require('spacetime-holiday')\n\nconst parseHoliday = function(doc, context) {\n let d = null\n let str = doc.match('#Holiday+').text('reduced')\n let year = 2020 //change me!\n let s = spacetimeHoliday(str, year)\n if (s !== null) {\n d = new CalendarDate(s, null, context)\n }\n return d\n}\nmodule.exports = parseHoliday\n","const { Unit, Day, CalendarDate } = require('../_units')\n\nconst knownWord = {\n today: context => new Day(context.today, null, context),\n yesterday: context => {\n new Day(context.today.minus(1, 'day'), null, context)\n },\n tomorrow: context => {\n new Day(context.today.plus(1, 'day'), null, context)\n },\n}\n\n// parse things like 'june 5th 2019'\nconst parseExplicit = function(doc, context) {\n // 'fifth of june'\n let m = doc.match('[#Value] of [#Month]')\n if (!m.found) {\n // 'june the fifth'\n m = doc.match('[#Month] the [#Value]')\n }\n if (m.found) {\n let obj = {\n month: m.groups('month').text(),\n date: m.groups('date').text(),\n year: context.today.year(),\n }\n let d = new CalendarDate(obj, null, context)\n if (d.d.isValid() === true) {\n return d\n }\n }\n\n if (m.found) {\n let obj = {\n month: m.groups('month').text(),\n date: m.groups('date').text(),\n year: context.today.year(),\n }\n let d = new CalendarDate(obj, null, context)\n if (d.d.isValid() === true) {\n return d\n }\n }\n\n let str = doc.text('reduced')\n // today, yesterday, tomorrow\n if (knownWord.hasOwnProperty(str) === true) {\n let d = knownWord[str](context)\n return d\n }\n\n // punt it to spacetime, for the heavy-lifting\n let d = new Unit(str, null, context)\n // console.log(context.d.format('nice-year'))\n // did we find a date?\n if (d.d.isValid() === false) {\n return null\n }\n return d\n}\nmodule.exports = parseExplicit\n","const section = {\n shift: require('./sections/01-shift'),\n time: require('./sections/02-time'),\n relative: require('./sections/03-relative'),\n timezone: require('./sections/04-timezone'),\n}\n\nconst steps = {\n implied: require('./steps/00-implied'),\n duration: require('./steps/01-duration'),\n holiday: require('./steps/02-holidays'),\n explicit: require('./steps/03-explicit'),\n}\n\nconst parseDate = function(doc, context) {\n //parse-out any sections\n let shift = section.shift(doc)\n let tz = section.timezone(doc)\n let time = section.time(doc, context)\n let rel = section.relative(doc)\n //set our new timezone\n if (tz) {\n context = Object.assign({}, context, { timezone: tz })\n let iso = context.today.format('iso-short')\n context.today = context.today.goto(context.timezone).set(iso)\n }\n let d = null\n\n //'in two days'\n d = d || steps.implied(doc, context, { shift, time, rel })\n // 'this month'\n d = d || steps.duration(doc, context)\n // 'this haloween'\n d = d || steps.holiday(doc, context)\n // 'this june 2nd'\n d = d || steps.explicit(doc, context)\n if (!d) {\n return null\n }\n\n // // apply relative\n if (rel === 'last') {\n d.last()\n }\n if (rel === 'next') {\n d.next()\n }\n // apply shift\n if (shift) {\n d.applyShift(shift)\n }\n\n // apply time\n d.applyTime(time)\n\n return d\n}\nmodule.exports = parseDate\n","const parseDate = require('../03-parseDate')\n\n//\nconst logic = function(doc, context) {\n // two explicit dates - 'between friday and sunday'\n let m = doc.match('between * and *')\n if (m.found) {\n let start = m\n .match('between [.*] and', 0)\n .not('^between')\n .not('and$')\n start = parseDate(start, context)\n let end = m.match('and *').not('^and')\n end = parseDate(end, context)\n if (start) {\n return {\n start: start,\n end: end,\n }\n }\n }\n // two months, one year - 'june 5 to june 7 1998'\n m = doc.match('#Month #Value to #Month #Value of? #Year')\n if (m.found) {\n }\n // two months, no year - 'june 5 to june 7'\n m = doc.match('#Month #Value to #Month #Value')\n if (m.found) {\n }\n // one month, one year, first form - 'january 5 to 7 1998'\n m = doc.match('#Month #Value to #Value of? #Year')\n if (m.found) {\n }\n // one month, one year, second form - '5 to 7 of january 1998'\n m = doc.match('#Value to #Value of? #Month of? #Year')\n if (m.found) {\n }\n // one month, no year - '5 to 7 of january'\n m = doc.match('#Value to #Value of? #Month')\n if (m.found) {\n }\n // one month, no year - 'january 5 to 7'\n m = doc.match('#Month #Value to #Value')\n if (m.found) {\n }\n // 'from A to B'\n m = doc.match('from? * (to|@hasHyphen|until|upto) [*]')\n if (m.found) {\n }\n // 'before june'\n m = doc.match('^due (by|before|on|in)? [*]')\n if (m.found) {\n }\n // 'after june'\n m = doc.match('^(after|following|from) [*]')\n if (m.found) {\n }\n // 'in june'\n m = doc.match('^(on|during|in) [*]')\n if (m.found) {\n let d = parseDate(m, context)\n if (d) {\n return {\n start: d,\n end: d.clone().end(),\n }\n }\n }\n //else, try whole thing\n let d = parseDate(doc, context)\n return {\n start: d,\n end: null,\n }\n}\nmodule.exports = logic\n","const spacetime = require('spacetime')\nconst normalize = require('./00-normalize')\nconst parseRanges = require('./01-parse-range')\n\nconst getDate = function(doc, context) {\n // validate context a bit\n context = context || {}\n\n context.timezone = context.timezone || 'ETC/UTC'\n context.today = spacetime(context.today, context.timezone)\n //turn 'five' into 5..\n doc = normalize(doc)\n //interpret 'between [A] and [B]'...\n return parseRanges(doc, context)\n}\nmodule.exports = getDate\n","let arr = [\n ['mon', 'monday'],\n ['tue', 'tuesday'],\n ['tues', 'tuesday'],\n ['wed', 'wednesday'],\n ['thu', 'thursday'],\n ['thurs', 'thursday'],\n ['fri', 'friday'],\n ['sat', 'saturday'],\n ['sun', 'sunday'],\n\n ['jan', 'january'],\n ['feb', 'february'],\n ['mar', 'march'],\n ['apr', 'april'],\n ['jun', 'june'],\n ['jul', 'july'],\n ['aug', 'august'],\n ['sep', 'september'],\n ['sept', 'september'],\n ['oct', 'october'],\n ['nov', 'november'],\n ['dec', 'december'],\n]\n\narr = arr.map(a => {\n return { short: a[0], long: a[1] }\n})\n\nmodule.exports = arr\n","const parse = require('./02-getDate')\nconst abbrevs = require('./data/_abbrevs')\n\nmodule.exports = {\n /** overload the original json with noun information */\n json: function(options) {\n let n = null\n if (typeof options === 'number') {\n n = options\n options = null\n }\n options = options || { terms: false }\n let res = []\n let format = options.format || 'iso'\n this.forEach(doc => {\n let json = doc.json(options)[0]\n let obj = parse(doc, this.context)\n let start = obj.start ? obj.start.format(format) : null\n let end = obj.end ? obj.end.format(format) : null\n // set iso strings to json result\n json.date = {\n start: start,\n end: end,\n }\n // add duration\n if (start && end) {\n json.date.duration = obj.start.d.diff(obj.end.d)\n // we don't need these\n delete json.date.duration.milliseconds\n delete json.date.duration.seconds\n }\n res.push(json)\n })\n if (n !== null) {\n return res[n]\n }\n return res\n },\n\n /** render all dates according to a specific format */\n format: function(fmt) {\n this.forEach(doc => {\n let obj = parse(doc, this.context)\n let str = ''\n if (obj.start) {\n str = obj.start.format(fmt)\n if (obj.end) {\n str += ' to ' + obj.start.format(fmt)\n }\n doc.replaceWith(str, { keepTags: true, keepCase: false })\n }\n })\n return this\n },\n /** replace 'Fri' with 'Friday', etc*/\n toLongForm: function() {\n abbrevs.forEach(a => {\n this.replace(a.short, a.long, true)\n })\n return this\n },\n /** replace 'Friday' with 'Fri', etc*/\n toShortForm: function() {\n abbrevs.forEach(a => {\n this.replace(a.long, a.short, true)\n })\n return this\n },\n}\n","const tagger = require('./01-tag')\nconst tags = require('./data/_tags')\nconst words = require('./data/words')\nconst methods = require('./methods')\n\nconst addMethods = function(Doc, world) {\n // our new tags\n world.addTags(tags)\n // add info for the date plugin\n world.addWords(words)\n // run our tagger\n world.postProcess(tagger)\n\n /** */\n class Dates extends Doc {\n constructor(list, from, w) {\n super(list, from, w)\n this.context = {}\n }\n }\n //add-in methods\n Object.assign(Dates.prototype, methods)\n\n Doc.prototype.dates = function(n) {\n let context = {}\n if (n && typeof n === 'object') {\n context = n\n n = null\n }\n let r = this.clauses()\n let dates = r.match('#Date+')\n if (typeof n === 'number') {\n dates = dates.get(n)\n }\n if (typeof n === 'number') {\n dates = dates.get(n)\n }\n let d = new Dates(dates.list, this, this.world)\n d.context = context\n return d\n }\n}\n\nmodule.exports = addMethods\n"],"names":["preps","thisNext","sections","seasons","tagYear","m","reason","found","term","termList","num","parseInt","clean","tag","tagYearSafe","fixDates","doc","match","month","val","ifNo","duration","unTag","season","date","not","cardinal","v","time","here","values","has","dateTagger","sectionTagger","timeTagger","shiftTagger","fixUp","oops","d","knownDate","lastTerm","terms","methods","require$$0","require$$1","require$$2","require$$3","require$$4","require$$5","require$$6","tagDate","forEach","fn","FinancialQuarter","isA","Season","Year","notA","Duration","Holiday","Timezone","DateShift","createCommonjsModule","module","exports","getCjsExportFromNamespace","n","fns","isLeapYear","year","isDate","Object","prototype","toString","call","isNaN","valueOf","isArray","input","isObject","zeroPad","str","len","pad","length","Array","join","titleCase","toUpperCase","substr","ordinal","i","j","k","toCardinal","String","replace","normalize","toLowerCase","trim","getEpoch","tmp","getTime","epoch","beADate","s","clone","set","formatTimezone","offset","delimiter","absOffset","Math","abs","sign","fns_1","fns_2","fns_3","fns_4","fns_5","fns_6","fns_7","fns_8","fns_9","fns_10","fns_11","fns_12","getMonth","getDate","getHours","shouldChange","start","end","defaultOffset","Date","bias","getTimezoneOffset","shift","current","summerTime","quickOffset","zones","timezones","obj","tz","undefined","console","warn","dst","jul","dec","hem","split","inSummer","quick","_build","_build$1","freeze","_prefixes","data","all","keys","Number","names","before","name","unpack","fallbackTZ","safeIntl","Intl","DateTimeFormat","format","resolvedOptions","timezone","timeZone","guessTz","guessTz_1","isOffset","isNumber","utcOffset","gmtOffset","toIana","parseOffset","parseOffset_1","local","cities","reduce","h","city","lookupTz","hasOwnProperty","test","id","Error","find","o","millisecond","second","minute","hour","day","week","milliseconds","walk","unit","previous","startUnit","original","diff","halfStep","units","valid","walkTo","getFullYear","seconds","wants","old","silent","walk_1","shortMonths","longMonths","buildMapping","sep","months","mapping","i18n","parseOffset$1","parseFloat","parseOffset_1$1","parseTime","arr","startOf","ampm","parseTime_1","monthLengths","monthLengths_1","hasDate","max","hasDate_1","months$1","parseYear","strFmt","reg","parse","givenTz","options","british","strParse","dates","now","tonight","today","tomorrow","add","yesterday","subtract","christmas","namedDates","minimumEpoch","defaults","handleArray","order","handleObject","assign","parseInput","res","shortDays","longDays","days","isoOffset","isNegative","floor","ceil","_offset","dayName","monthName","hour24","hour12","quarter","era","json","numeric","iso","h24","ms","toISOString","nice","aliases","mdy","dmy","ymd","printFormat","isValid","out","indexOf","_","fmt","format_1","G","GG","GGG","GGGG","y","yy","yyy","yyyy","yyyyy","Q","QQ","QQQ","QQQQ","M","MM","MMM","MMMM","w","ww","dd","D","dayOfYear","DD","DDD","E","EE","EEE","EEEE","EEEEE","e","ee","eee","eeee","eeeee","a","aa","aaa","aaaa","h12","hh","H","HH","mm","ss","A","z","zz","zzz","zzzz","Z","ZZ","ZZZ","ZZZZ","addAlias","char","to","toName","unixFmt","chars","quoteOn","push","txt","c","unixFmt_1","units$1","doUnit","endOf","percent","toFixed","progress","progress_1","nearest","prog","nearest_1","climb","b","isBefore","isAfter","diffOne","one","fastYear","years","msDiff","minutes","hours","weeks","waterfall","reverseDiff","main","reversed","diff$1","qualifiers","almost","over","getDiff","later","earlier","isSame","u","pluralize","value","slice","since","isNow","every","rounded","qualified","precise","englishValues","englishValue","nextUnit","nextValue","splice","since_1","north","south","quarters","units$2","quarterhour","_weekStart","q","hemisphere","decade","century","startOf_1","isDay","next","result","every_1","parseDst","epochShift","hasDst","Boolean","default_offset","change","back","summer","winter","isDST","timezone_1","units$3","input$1","hasDST","leapYear","last","isAwake","isAsleep","log","logYear","debug","from","fromNow","weekStart","inDST","round","each","methods_1","validate","confirm","want","methods$1","getMilliseconds","getSeconds","getMinutes","hourFloat","which","dayTime","times","morning","breakfast","noon","lunch","afternoon","evening","dinner","night","midnight","_01Time","methods$2","getDay","_02Date","clearMinutes","methods$3","sum","setDate","setFullYear","setHours","setMinutes","setMonth","toAdd","minus","thisOne","skipWeeks","millenium","_03Year","methods$4","addMethods","Space","query","order$1","keep","dstAwareUnits","keepDate","rollMonth","addMethods$1","SpaceTime","plus","print","addMethods$2","same","addMethods$3","isEqual","isBetween","startEpoch","endEpoch","compare","addMethods$4","defineProperty","get","spacetime","whereIts","startHour","endHour","tzs","filter","whereIts_1","_version","main$1","extend","version","plugin","src","america","asia","europe","africa","aus","pac","informal","bst","ireland","cet","cest","eet","eest","trt","etc","utc","gmt","sast","acst","acdt","aest","aedt","awst","awdt","acwst","lhst","lhdt","msk","russian","cst","cdt","mst","mdt","ast","adt","est","edt","pst","pdt","ahst","ahdt","hst","nst","ndt","brt","brasília","brasilia","amt","east","easst","vet","pyt","pyst","cot","clst","cldt","uyt","ist","irst","irdt","iranian","pkt","ict","ct","almt","yakt","gst","uae","hkt","wib","wita","idt","israeli","krat","myt","sgt","kst","uzt","vlat","mvt","mut","mht","sst","chst","pgt","iana","formal","lex","numbers","toNumber","adverbs","remove","knownUnits","parseShift","ts","text","halfPast","mins","behind","context","parseRelative","rel","parseTimezone","Unit","enumerable","writable","Day","Month","Quarter","WeekDay","weekDay","CalendarDate","onlySection","section","Week","namedUnit","Model","define","feb","apr","nov","parseHoliday","spacetimeHoliday","knownWord","parseExplicit","groups","relative","steps","implied","holiday","explicit","require$$7","parseDate","applyShift","applyTime","logic","parseRanges","map","replaceWith","keepTags","keepCase","toLongForm","abbrevs","toShortForm","Doc","world","addTags","tags","addWords","words","postProcess","tagger","Dates","list","r","clauses"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"compromise-dates.js","sources":["../src/01-tag/00-basic.js","../src/01-tag/01-values.js","../src/01-tag/02-dates.js","../src/01-tag/03-sections.js","../src/01-tag/04-time.js","../src/01-tag/05-shifts.js","../src/01-tag/06-fixup.js","../src/01-tag/index.js","../src/data/_tags.js","../node_modules/spacetime/builds/spacetime.mjs","../src/data/_timezones.js","../src/data/words/dates.js","../src/data/words/durations.js","../src/data/words/holidays.js","../src/data/words/times.js","../src/data/words/index.js","../src/02-getDate/00-normalize.js","../src/03-parseDate/sections/01-shift.js","../src/03-parseDate/sections/02-time.js","../src/03-parseDate/sections/03-relative.js","../src/03-parseDate/sections/04-timezone.js","../src/03-parseDate/Unit.js","../src/03-parseDate/_units.js","../src/03-parseDate/steps/00-implied.js","../src/03-parseDate/steps/01-duration.js","../node_modules/spacetime-holiday/builds/spacetime-holiday.js","../src/03-parseDate/steps/02-holidays.js","../src/03-parseDate/steps/03-explicit.js","../src/03-parseDate/index.js","../src/02-getDate/01-parse-range.js","../src/02-getDate/index.js","../src/data/_abbrevs.js","../src/methods.js","../src/index.js"],"sourcesContent":["//ambiguous 'may' and 'march'\nconst preps = '(in|by|before|during|on|until|after|of|within|all)' //6\nconst thisNext = '(last|next|this|previous|current|upcoming|coming)' //2\nconst sections = '(start|end|middle|starting|ending|midpoint|beginning)' //2\nconst seasons = '(spring|summer|winter|fall|autumn)'\n\n//ensure a year is approximately typical for common years\n//please change in one thousand years\nconst tagYear = (m, reason) => {\n if (m.found !== true) {\n return\n }\n let term = m.termList()[0]\n if (term) {\n let num = parseInt(term.clean, 10)\n if (num && num > 1000 && num < 3000) {\n m.tag('Year', reason)\n }\n }\n}\n//same, but for less-confident values\nconst tagYearSafe = (m, reason) => {\n if (m.found !== true) {\n return\n }\n let term = m.termList()[0]\n if (term) {\n let num = parseInt(term.clean, 10)\n if (num && num > 1900 && num < 2030) {\n m.tag('Year', reason)\n }\n }\n}\n\nconst fixDates = function(doc) {\n doc.match('in the (night|evening|morning|afternoon|day|daytime)').tag('Time', 'in-the-night')\n doc.match('(#Value|#Time) (am|pm)').tag('Time', 'value-ampm')\n\n //months:\n let month = doc.if('#Month')\n if (month.found === true) {\n //June 5-7th\n month.match(`#Month #Date+`).tag('Date', 'correction-numberRange')\n //5th of March\n month.match('#Value of #Month').tag('Date', 'value-of-month')\n //5 March\n month.match('#Cardinal #Month').tag('Date', 'cardinal-month')\n //march 5 to 7\n month.match('#Month #Value to #Value').tag('Date', 'value-to-value')\n //march the 12th\n month.match('#Month the #Value').tag('Date', 'month-the-value')\n }\n\n //months:\n let val = doc.if('#Value')\n if (val.found === true) {\n //june 7\n val\n .match('(#WeekDay|#Month) #Value')\n .ifNo('#Money')\n .tag('Date', 'date-value')\n\n //7 june\n val\n .match('#Value (#WeekDay|#Month)')\n .ifNo('#Money')\n .tag('Date', 'value-date')\n\n //may twenty five\n val\n .match('#TextValue #TextValue')\n .if('#Date')\n .tag('#Date', 'textvalue-date')\n\n //eg 'year'\n let duration = val.if('#Duration')\n if (duration.found === true) {\n //for 4 months\n duration.match('for #Value #Duration').tag('Date', 'for-x-duration')\n //two days before\n duration.match('#Value #Duration #Conjunction').tag('Date', 'val-duration-conjunction')\n //for four days\n duration.match(`${preps}? #Value #Duration`).tag('Date', 'value-duration')\n //two years old\n duration.match('#Value #Duration old').unTag('Date', 'val-years-old')\n }\n }\n\n //seasons\n let season = doc.if(seasons)\n if (season.found === true) {\n season.match(`${preps}? ${thisNext} ${seasons}`).tag('Date', 'thisNext-season')\n season.match(`the? ${sections} of ${seasons}`).tag('Date', 'section-season')\n season.match(`${seasons} ${preps}? #Cardinal`).tag('Date', 'season-year')\n }\n\n //rest-dates\n let date = doc.if('#Date')\n if (date.found === true) {\n //june the 5th\n date.match('#Date the? #Ordinal').tag('Date', 'correction')\n //last month\n date.match(`${thisNext} #Date`).tag('Date', 'thisNext')\n //by 5 March\n date.match('due? (by|before|after|until) #Date').tag('Date', 'by')\n //next feb\n date.match('(last|next|this|previous|current|upcoming|coming|the) #Date').tag('Date', 'next-feb')\n //start of june\n date.match(`the? ${sections} of #Date`).tag('Date', 'section-of')\n //fifth week in 1998\n date.match('#Ordinal #Duration in #Date').tag('Date', 'duration-in')\n //early in june\n date.match('(early|late) (at|in)? the? #Date').tag('Time', 'early-evening')\n //tomorrow before 3\n date\n .match('#Date (by|before|after|at|@|about) #Cardinal')\n .not('^#Date')\n .tag('Time', 'date-before-Cardinal')\n //saturday am\n date\n .match('#Date [(am|pm)]', 0)\n .unTag('Verb')\n .unTag('Copula')\n .tag('Time', 'date-am')\n //feb to june\n date\n .match('#Date (#Preposition|to) #Date')\n .ifNo('#Duration')\n .tag('Date', 'date-prep-date')\n }\n\n //year/cardinal tagging\n let cardinal = doc.if('#Cardinal')\n if (cardinal.found === true) {\n let v = cardinal.match(`#Date #Value [#Cardinal]`, 0)\n tagYear(v, 'date-value-year')\n //scoops up a bunch\n v = cardinal.match(`#Date+ [#Cardinal]`, 0)\n tagYear(v, 'date-year')\n //feb 8 2018\n v = cardinal.match(`#Month #Value [#Cardinal]`, 0)\n tagYear(v, 'month-value-year')\n //feb 8 to 10th 2018\n v = cardinal.match(`#Month #Value to #Value [#Cardinal]`, 0)\n tagYear(v, 'month-range-year')\n //in 1998\n v = cardinal.match(`(in|of|by|during|before|starting|ending|for|year) [#Cardinal]`, 0)\n tagYear(v, 'in-year')\n //q2 2009\n v = cardinal.match('(q1|q2|q3|q4) [#Cardinal]', 0)\n tagYear(v, 'in-year')\n //2nd quarter 2009\n v = cardinal.match('#Ordinal quarter [#Cardinal]', 0)\n tagYear(v, 'in-year')\n //in the year 1998\n v = cardinal.match('the year [#Cardinal]', 0)\n tagYear(v, 'in-year')\n //it was 1998\n v = cardinal.match('it (is|was) [#Cardinal]', 0)\n tagYearSafe(v, 'in-year')\n }\n\n let time = doc.if('#Time')\n if (time.found === true) {\n //by 6pm\n time.match('(by|before|after|at|@|about) #Time').tag('Time', 'preposition-time')\n //7 7pm\n time\n .match('#Cardinal #Time')\n .not('#Year')\n .tag('Time', 'value-time')\n //2pm est\n time.match('#Time [(eastern|pacific|central|mountain)]', 0).tag('Date', 'timezone')\n //6pm est\n time.match('#Time [(est|pst|gmt)]', 0).tag('Date', 'timezone abbr')\n }\n\n return doc\n}\nmodule.exports = fixDates\n","const here = 'date-values'\n//\nconst values = function(doc) {\n if (doc.has('#Value')) {\n //june 5 to 7th\n doc.match('#Month #Value to #Value of? #Year?').tag('Date', here);\n //5 to 7th june\n doc.match('#Value to #Value of? #Month #Year?').tag('Date', here);\n //third week of may\n doc.match('#Value #Duration of #Date').tag('Date', here);\n //two days after\n doc.match('#Value+ #Duration (after|before|into|later|afterwards|ago)?').tag('Date', here);\n //two days\n doc.match('#Value #Date').tag('Date', here);\n //june 5th\n doc.match('#Date #Value').tag('Date', here);\n //tuesday at 5\n doc.match('#Date #Preposition #Value').tag('Date', here);\n //tomorrow before 3\n doc.match('#Date (after|before|during|on|in) #Value').tag('Date', here);\n //a year and a half\n doc.match('#Value (year|month|week|day) and a half').tag('Date', here);\n //5 and a half years\n doc.match('#Value and a half (years|months|weeks|days)').tag('Date', here);\n //on the fifth\n doc.match('on the #Ordinal').tag('Date', here);\n }\n return doc\n}\nmodule.exports = values\n","const here = 'date-tagger'\n//\nconst dateTagger = function(doc) {\n\n doc.match('(spring|summer|winter|fall|autumn|springtime|wintertime|summertime)').match('#Noun').tag('Season', here)\n doc.match('(q1|q2|q3|q4)').tag('FinancialQuarter', here)\n doc.match('(this|next|last|current) quarter').tag('FinancialQuarter', here)\n doc.match('(this|next|last|current) season').tag('Season', here)\n\n if (doc.has('#Date')) {\n //friday to sunday\n doc.match('#Date #Preposition #Date').tag('Date', here);\n //once a day..\n doc.match('(once|twice) (a|an|each) #Date').tag('Date', here);\n //TODO:fixme\n doc.match('(by|until|on|in|at|during|over|every|each|due) the? #Date').tag('Date', here);\n //tuesday\n doc.match('#Date+').tag('Date', here);\n //by June\n doc.match('(by|until|on|in|at|during|over|every|each|due) the? #Date').tag('Date', here);\n //a year after..\n doc.match('a #Duration').tag('Date', here);\n //between x and y\n doc.match('(between|from) #Date').tag('Date', here);\n doc.match('(to|until|upto) #Date').tag('Date', here);\n doc.match('#Date and #Date').tag('Date', here);\n //during this june\n doc.match('(by|until|after|before|during|on|in|following) (next|this|last)? (#Date|#Date)').tag('Date', here);\n //day after next\n doc.match('the? #Date after next one?').tag('Date', here);\n //approximately...\n doc.match('(about|approx|approximately|around) #Date').tag('Date', here);\n }\n return doc\n}\nmodule.exports = dateTagger\n","const here = 'section-tagger'\n//\nconst sectionTagger = function(doc) {\n if (doc.has('#Date')) {\n // //next september\n doc.match('this? (last|next|past|this|previous|current|upcoming|coming|the) #Date').tag('Date', here);\n //starting this june\n doc.match('(starting|beginning|ending) #Date').tag('Date', here);\n //start of june\n doc.match('the? (start|end|middle|beginning) of (last|next|this|the) (#Date|#Date)').tag('Date', here);\n //this coming june\n doc.match('(the|this) #Date').tag('Date', here);\n }\n return doc\n}\nmodule.exports = sectionTagger\n","const here = 'time-tagger'\n\n//\nconst timeTagger = function(doc) {\n // quarter to seven\n if (doc.has('#Cardinal')) {\n doc.match('(half|quarter|25|15|10|5) (past|after|to) #Cardinal').tag('Time', here)\n }\n //timezone\n if (doc.has('#Date')) {\n //eastern daylight time\n doc.match('#Noun (standard|daylight|central|mountain)? time').tag('Timezone', here)\n //utc+5\n doc.match('/^utc[+-][0-9]/').tag('Timezone', here)\n doc.match('/^gmt[+-][0-9]/').tag('Timezone', here)\n\n doc.match('(in|for|by|near|at) #Timezone').tag('Timezone', here)\n\n // https://raw.githubusercontent.com/davispuh/TimezoneParser/master/data/abbreviations.yml\n // let abbr =\n // '(acdt|acst|ace|dmt|ist|tse|addt|adt|aedt|aest|ahdt|ahst|akdt|akst|amt|nst|apt|awt|gmt|awdt|awst|bdst|bst|bdt|nwt|bmt|wet|bost|cddt|cdt|cet|cmt|cpt|cst|cwt|chst|gst|eat|eddt|edt|eest|eet|emt|ept|ewt|est|ffmt|fmt|hdt|hst|hkst|hkt|hmt|iddt|idt|jmt|imt|jdt|jst|kdt|kst|kmt|lst|mddt|mdst|msd|msk|mdt|mmt|mpt|pdt|pst|mst|mwt|nddt|ndt|npt|nzdt|nzmt|nzst|pddt|pkst|pkt|plmt|pmmt|pmt|ppmt|ppt|pwt|qmt|rmt|sast|sdmt|set|sjmt|smt|sst|tbmt|tmt|utc|wast|wemt|wib|wit|wita|wmt|yddt|ydt|ypt|ywt|yst)'\n // doc.match(abbr).tag('Timezone', here)\n }\n return doc\n}\nmodule.exports = timeTagger\n","const here = 'shift-tagger'\n//\nconst shiftTagger = function(doc) {\n if (doc.has('#Date')) {\n //two weeks before\n doc.match('#Cardinal #Duration (before|after)').tag('#DateShift', here)\n // in two weeks\n doc.match('in #Cardinal #Duration').tag('#DateShift', here)\n //two weeks and three days before\n doc.match('#Cardinal #Duration and? #DateShift').tag('#DateShift', here)\n doc.match('#DateShift and #Cardinal #Duration').tag('#DateShift', here)\n // doc.match('#Cardinal #Duration and? #DateShift').tag('#DateShift', here)\n }\n return doc\n}\nmodule.exports = shiftTagger\n","const here = 'fix-tagger'\n//\nconst fixUp = function(doc) {\n //fixups\n if (doc.has('#Date')) {\n //first day by monday\n let oops = doc.match('#Date+ by #Date+')\n if (oops.found && !oops.has('^due')) {\n oops.match('^#Date+').unTag('Date', 'by-monday')\n }\n\n let d = doc.match('#Date+')\n //'spa day'\n d.match('^day$').unTag('Date', 'spa-day')\n\n let knownDate = '(yesterday|today|tomorrow)'\n if (d.has(knownDate)) {\n //yesterday 7\n d.match(`${knownDate} [#Value]$`).unTag('Date', 'yesterday-7')\n //7 yesterday\n d.match(`^[#Value] ${knownDate}$`, 0).unTag('Date', '7 yesterday')\n //friday yesterday\n d.match(`#WeekDay+ ${knownDate}$`)\n .unTag('Date')\n .lastTerm()\n .tag('Date', 'fri-yesterday')\n\n // yesterday yesterday\n // d.match(`${knownDate}+ ${knownDate}$`)\n // .unTag('Date')\n // .lastTerm()\n // .tag('Date', here)\n d.match(`(this|last|next) #Date ${knownDate}$`)\n .unTag('Date')\n .lastTerm()\n .tag('Date', 'this month yesterday')\n }\n //tomorrow on 5\n d.match(`on #Cardinal$`).unTag('Date', here)\n //this tomorrow\n d.match(`this tomorrow`)\n .terms(0)\n .unTag('Date', 'this-tomorrow')\n //q2 2019\n d.match(`(q1|q2|q3|q4) #Year`).tag('Date', here)\n //5 tuesday\n // d.match(`^#Value #WeekDay`).terms(0).unTag('Date');\n //5 next week\n d.match(`^#Value (this|next|last)`)\n .terms(0)\n .unTag('Date', here)\n\n if (d.has('(last|this|next)')) {\n //this month 7\n d.match(`(last|this|next) #Duration #Value`)\n .terms(2)\n .unTag('Date', here)\n //7 this month\n d.match(`!#Month #Value (last|this|next) #Date`)\n .terms(0)\n .unTag('Date', here)\n }\n //january 5 5\n if (d.has('(#Year|#Time|#TextValue|#NumberRange)') === false) {\n d.match('(#Month|#WeekDay) #Value #Value')\n .terms(2)\n .unTag('Date', here)\n }\n //between june\n if (d.has('^between') && !d.has('and .')) {\n d.unTag('Date', here)\n }\n //june june\n if (d.has('#Month #Month') && !d.has('@hasHyphen') && !d.has('@hasComma')) {\n d.match('#Month')\n .lastTerm()\n .unTag('Date', 'month-month')\n }\n }\n return doc\n}\nmodule.exports = fixUp\n","const methods = [\n require('./00-basic'),\n require('./01-values'),\n require('./02-dates'),\n require('./03-sections'),\n require('./04-time'),\n require('./05-shifts'),\n require('./06-fixup'),\n]\n// run each of the taggers\nconst tagDate = function(doc) {\n methods.forEach(fn => fn(doc))\n return doc\n}\nmodule.exports = tagDate\n","module.exports = {\n FinancialQuarter: {\n isA: 'Date',\n },\n // 'summer'\n Season: {\n isA: 'Date',\n },\n // '1982'\n Year: {\n isA: ['Date'],\n notA: 'RomanNumeral',\n },\n // 'months'\n Duration: {\n isA: ['Date', 'Noun'],\n },\n // 'easter'\n Holiday: {\n isA: ['Date', 'Noun'],\n },\n // 'PST'\n Timezone: {\n isA: ['Date', 'Noun'],\n },\n // 'two weeks before'\n DateShift: {\n isA: ['Date'],\n },\n}\n","function createCommonjsModule(fn, module) {\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n}\n\nfunction getCjsExportFromNamespace (n) {\n\treturn n && n['default'] || n;\n}\n\nvar fns = createCommonjsModule(function (module, exports) {\n//git:blame @JuliasCaesar https://www.timeanddate.com/date/leapyear.html\nexports.isLeapYear = year => (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n// unsurprisingly-nasty `typeof date` call\nexports.isDate = d => Object.prototype.toString.call(d) === '[object Date]' && !isNaN(d.valueOf());\nexports.isArray = input => Object.prototype.toString.call(input) === '[object Array]';\nexports.isObject = input => Object.prototype.toString.call(input) === '[object Object]';\n\nexports.zeroPad = (str, len = 2) => {\n let pad = '0';\n str = str + '';\n return str.length >= len ? str : new Array(len - str.length + 1).join(pad) + str\n};\n\nexports.titleCase = str => {\n if (!str) {\n return ''\n }\n return str[0].toUpperCase() + str.substr(1)\n};\n\nexports.ordinal = i => {\n let j = i % 10;\n let k = i % 100;\n if (j === 1 && k !== 11) {\n return i + 'st'\n }\n if (j === 2 && k !== 12) {\n return i + 'nd'\n }\n if (j === 3 && k !== 13) {\n return i + 'rd'\n }\n return i + 'th'\n};\n\n//strip 'st' off '1st'..\nexports.toCardinal = str => {\n str = String(str);\n str = str.replace(/([0-9])(st|nd|rd|th)$/i, '$1');\n return parseInt(str, 10)\n};\n\n//used mostly for cleanup of unit names, like 'months'\nexports.normalize = (str = '') => {\n str = str.toLowerCase().trim();\n str = str.replace(/ies$/, 'y'); //'centuries'\n str = str.replace(/s$/, '');\n str = str.replace(/-/g, '');\n if (str === 'day') {\n return 'date'\n }\n return str\n};\n\nexports.getEpoch = tmp => {\n //support epoch\n if (typeof tmp === 'number') {\n return tmp\n }\n //suport date objects\n if (exports.isDate(tmp)) {\n return tmp.getTime()\n }\n if (tmp.epoch) {\n return tmp.epoch\n }\n return null\n};\n\n//make sure this input is a spacetime obj\nexports.beADate = (d, s) => {\n if (exports.isObject(d) === false) {\n return s.clone().set(d)\n }\n return d\n};\n\nexports.formatTimezone = (offset, delimiter = '') => {\n const absOffset = Math.abs(offset);\n const sign = offset > 0 ? '+' : '-';\n return `${sign}${exports.zeroPad(absOffset)}${delimiter}00`\n};\n});\nvar fns_1 = fns.isLeapYear;\nvar fns_2 = fns.isDate;\nvar fns_3 = fns.isArray;\nvar fns_4 = fns.isObject;\nvar fns_5 = fns.zeroPad;\nvar fns_6 = fns.titleCase;\nvar fns_7 = fns.ordinal;\nvar fns_8 = fns.toCardinal;\nvar fns_9 = fns.normalize;\nvar fns_10 = fns.getEpoch;\nvar fns_11 = fns.beADate;\nvar fns_12 = fns.formatTimezone;\n\nconst zeroPad = fns.zeroPad;\n\nconst toString = d =>\n zeroPad(d.getMonth() + 1) + '/' + zeroPad(d.getDate()) + ':' + zeroPad(d.getHours());\n\n// a timezone will begin with a specific offset in january\n// then some will switch to something else between november-march\nconst shouldChange = (epoch, start, end, defaultOffset) => {\n //note: this has a cray order-of-operations issue\n //we can't get the date, without knowing the timezone, and vice-versa\n //it's possible that we can miss a dst-change by a few hours.\n let d = new Date(epoch);\n //(try to mediate this a little?)\n let bias = d.getTimezoneOffset() || 0;\n let shift = bias + defaultOffset * 60; //in minutes\n shift = shift * 60 * 1000; //in ms\n d = new Date(epoch + shift);\n\n let current = toString(d);\n //eg. is it after ~november?\n if (current >= start) {\n //eg. is it before ~march~ too?\n if (current < end) {\n return true\n }\n }\n return false\n};\nvar summerTime = shouldChange;\n\n// this method avoids having to do a full dst-calculation on every operation\n// it reproduces some things in ./index.js, but speeds up spacetime considerably\nconst quickOffset = s => {\n let zones = s.timezones;\n let obj = zones[s.tz];\n if (obj === undefined) {\n console.warn(\"Warning: couldn't find timezone \" + s.tz);\n return 0\n }\n if (obj.dst === undefined) {\n return obj.offset\n }\n\n //get our two possible offsets\n let jul = obj.offset;\n let dec = obj.offset + 1; // assume it's the same for now\n if (obj.hem === 'n') {\n dec = jul - 1;\n }\n let split = obj.dst.split('->');\n let inSummer = summerTime(s.epoch, split[0], split[1], jul);\n if (inSummer === true) {\n return jul\n }\n return dec\n};\nvar quick = quickOffset;\n\nvar _build = {\n\t\"9|s\": \"2/dili,2/jayapura\",\n\t\"9|n\": \"2/chita,2/khandyga,2/pyongyang,2/seoul,2/tokyo,11/palau\",\n\t\"9.5|s|04/07:03->10/06:02\": \"4/adelaide,4/broken_hill,4/south,4/yancowinna\",\n\t\"9.5|s\": \"4/darwin,4/north\",\n\t\"8|s\": \"12/casey,2/kuala_lumpur,2/makassar,2/singapore,4/perth,4/west\",\n\t\"8|n|03/25:03->09/29:23\": \"2/ulan_bator\",\n\t\"8|n\": \"2/brunei,2/choibalsan,2/chongqing,2/chungking,2/harbin,2/hong_kong,2/irkutsk,2/kuching,2/macao,2/macau,2/manila,2/shanghai,2/taipei,2/ujung_pandang,2/ulaanbaatar\",\n\t\"8.75|s\": \"4/eucla\",\n\t\"7|s\": \"12/davis,2/jakarta,9/christmas\",\n\t\"7|n\": \"2/bangkok,2/barnaul,2/ho_chi_minh,2/hovd,2/krasnoyarsk,2/novokuznetsk,2/novosibirsk,2/phnom_penh,2/pontianak,2/saigon,2/tomsk,2/vientiane\",\n\t\"6|s\": \"12/vostok\",\n\t\"6|n\": \"2/almaty,2/bishkek,2/dacca,2/dhaka,2/kashgar,2/omsk,2/qyzylorda,2/thimbu,2/thimphu,2/urumqi,9/chagos\",\n\t\"6.5|n\": \"2/rangoon,9/cocos\",\n\t\"5|s\": \"12/mawson,9/kerguelen\",\n\t\"5|n\": \"2/aqtau,2/aqtobe,2/ashgabat,2/ashkhabad,2/atyrau,2/baku,2/dushanbe,2/karachi,2/oral,2/samarkand,2/tashkent,2/yekaterinburg,9/maldives\",\n\t\"5.75|n\": \"2/kathmandu,2/katmandu\",\n\t\"5.5|n\": \"2/calcutta,2/colombo,2/kolkata\",\n\t\"4|s\": \"9/reunion\",\n\t\"4|n\": \"2/dubai,2/muscat,2/tbilisi,2/yerevan,8/astrakhan,8/samara,8/saratov,8/ulyanovsk,8/volgograd,2/volgograd,9/mahe,9/mauritius\",\n\t\"4.5|n|03/22:00->09/21:24\": \"2/tehran\",\n\t\"4.5|n\": \"2/kabul\",\n\t\"3|s\": \"12/syowa,9/antananarivo\",\n\t\"3|n|03/31:03->10/27:04\": \"2/nicosia,8/athens,8/bucharest,8/helsinki,8/kiev,8/mariehamn,8/nicosia,8/riga,8/sofia,8/tallinn,8/uzhgorod,8/vilnius,8/zaporozhye\",\n\t\"3|n|03/31:02->10/27:03\": \"8/chisinau,8/tiraspol\",\n\t\"3|n|03/31:00->10/26:24\": \"2/beirut\",\n\t\"3|n|03/29:02->10/27:02\": \"2/jerusalem,2/tel_aviv\",\n\t\"3|n|03/29:00->10/26:01\": \"2/gaza,2/hebron\",\n\t\"3|n|03/29:00->10/25:01\": \"2/amman\",\n\t\"3|n|03/29:00->10/24:24\": \"2/damascus\",\n\t\"3|n\": \"0/addis_ababa,0/asmara,0/asmera,0/dar_es_salaam,0/djibouti,0/juba,0/kampala,0/mogadishu,0/nairobi,2/aden,2/baghdad,2/bahrain,2/istanbul,2/kuwait,2/qatar,2/riyadh,8/istanbul,8/kirov,8/minsk,8/moscow,8/simferopol,9/comoro,9/mayotte\",\n\t\"2|s|03/31:02->10/27:02\": \"12/troll\",\n\t\"2|s\": \"0/gaborone,0/harare,0/johannesburg,0/lubumbashi,0/lusaka,0/maputo,0/maseru,0/mbabane\",\n\t\"2|n|03/31:02->10/27:03\": \"0/ceuta,arctic/longyearbyen,3/jan_mayen,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\",\n\t\"2|n\": \"0/blantyre,0/bujumbura,0/cairo,0/khartoum,0/kigali,0/tripoli,8/kaliningrad\",\n\t\"1|s|04/02:01->09/03:03\": \"0/windhoek\",\n\t\"1|s\": \"0/kinshasa,0/luanda\",\n\t\"1|n|05/05:03->06/09:02\": \"0/casablanca,0/el_aaiun\",\n\t\"1|n|03/31:01->10/27:02\": \"3/canary,3/faeroe,3/faroe,3/madeira,8/belfast,8/dublin,8/guernsey,8/isle_of_man,8/jersey,8/lisbon,8/london\",\n\t\"1|n\": \"0/algiers,0/bangui,0/brazzaville,0/douala,0/lagos,0/libreville,0/malabo,0/ndjamena,0/niamey,0/porto-novo,0/tunis\",\n\t\"14|n\": \"11/kiritimati\",\n\t\"13|s|04/07:04->09/29:03\": \"11/apia\",\n\t\"13|s|01/15:02->11/05:03\": \"11/tongatapu\",\n\t\"13|n\": \"11/enderbury,11/fakaofo\",\n\t\"12|s|04/07:03->09/29:02\": \"12/mcmurdo,12/south_pole,11/auckland\",\n\t\"12|s|01/13:03->11/10:02\": \"11/fiji\",\n\t\"12|n\": \"2/anadyr,2/kamchatka,2/srednekolymsk,11/funafuti,11/kwajalein,11/majuro,11/nauru,11/tarawa,11/wake,11/wallis\",\n\t\"12.75|s|04/07:03->09/29:02\": \"11/chatham\",\n\t\"11|s\": \"12/macquarie,11/bougainville\",\n\t\"11|n\": \"2/magadan,2/sakhalin,11/efate,11/guadalcanal,11/kosrae,11/noumea,11/pohnpei,11/ponape\",\n\t\"11.5|n\": \"11/norfolk\",\n\t\"10|s|04/07:03->10/06:02\": \"4/act,4/canberra,4/currie,4/hobart,4/melbourne,4/nsw,4/sydney,4/tasmania,4/victoria\",\n\t\"10|s\": \"12/dumontdurville,4/brisbane,4/lindeman,4/queensland\",\n\t\"10|n\": \"2/ust-nera,2/vladivostok,2/yakutsk,11/chuuk,11/guam,11/port_moresby,11/saipan,11/truk,11/yap\",\n\t\"10.5|s|04/07:01->10/06:02\": \"4/lhi,4/lord_howe\",\n\t\"0|n|03/31:00->10/27:01\": \"1/scoresbysund,3/azores\",\n\t\"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,0/timbuktu,1/danmarkshavn,3/reykjavik,3/st_helena,13/gmt,13/gmt+0,13/gmt-0,13/gmt0,13/greenwich,13/utc,13/universal,13/zulu\",\n\t\"-9|n|03/10:02->11/03:02\": \"1/adak,1/atka\",\n\t\"-9|n\": \"11/gambier\",\n\t\"-9.5|n\": \"11/marquesas\",\n\t\"-8|n|03/10:02->11/03:02\": \"1/anchorage,1/juneau,1/metlakatla,1/nome,1/sitka,1/yakutat\",\n\t\"-8|n\": \"11/pitcairn\",\n\t\"-7|n|03/10:02->11/03:02\": \"1/dawson,1/ensenada,1/los_angeles,1/santa_isabel,1/tijuana,1/vancouver,1/whitehorse,6/pacific,6/yukon,10/bajanorte\",\n\t\"-7|n\": \"1/creston,1/dawson_creek,1/hermosillo,1/phoenix\",\n\t\"-6|s|04/06:22->09/07:22\": \"7/easterisland,11/easter\",\n\t\"-6|n|04/07:02->10/27:02\": \"1/chihuahua,1/mazatlan,10/bajasur\",\n\t\"-6|n|03/10:02->11/03:02\": \"1/boise,1/cambridge_bay,1/denver,1/edmonton,1/inuvik,1/ojinaga,1/shiprock,1/yellowknife,6/mountain\",\n\t\"-6|n\": \"1/belize,1/costa_rica,1/el_salvador,1/guatemala,1/managua,1/regina,1/swift_current,1/tegucigalpa,6/east-saskatchewan,6/saskatchewan,11/galapagos\",\n\t\"-5|s\": \"1/lima,1/rio_branco,5/acre\",\n\t\"-5|n|04/07:02->10/27:02\": \"1/bahia_banderas,1/merida,1/mexico_city,1/monterrey,10/general\",\n\t\"-5|n|03/12:03->11/05:01\": \"1/north_dakota\",\n\t\"-5|n|03/10:02->11/03:02\": \"1/chicago,1/knox_in,1/matamoros,1/menominee,1/rainy_river,1/rankin_inlet,1/resolute,1/winnipeg,6/central\",\n\t\"-5|n\": \"1/atikokan,1/bogota,1/cancun,1/cayman,1/coral_harbour,1/eirunepe,1/guayaquil,1/jamaica,1/panama,1/porto_acre\",\n\t\"-4|s|05/13:23->08/13:01\": \"12/palmer\",\n\t\"-4|s|04/06:24->09/08:00\": \"1/santiago,7/continental\",\n\t\"-4|s|03/23:24->10/06:00\": \"1/asuncion\",\n\t\"-4|s|02/16:24->11/03:00\": \"1/campo_grande,1/cuiaba\",\n\t\"-4|s\": \"1/la_paz,1/manaus,5/west\",\n\t\"-4|n|03/12:03->11/05:01\": \"1/indiana,1/kentucky\",\n\t\"-4|n|03/10:02->11/03:02\": \"1/detroit,1/fort_wayne,1/grand_turk,1/indianapolis,1/iqaluit,1/louisville,1/montreal,1/nassau,1/new_york,1/nipigon,1/pangnirtung,1/port-au-prince,1/thunder_bay,1/toronto,6/eastern\",\n\t\"-4|n|03/10:00->11/03:01\": \"1/havana\",\n\t\"-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\",\n\t\"-3|s\": \"1/argentina,1/buenos_aires,1/cordoba,1/fortaleza,1/montevideo,1/punta_arenas,1/sao_paulo,12/rothera,3/stanley,5/east\",\n\t\"-3|n|03/10:02->11/03:02\": \"1/glace_bay,1/goose_bay,1/halifax,1/moncton,1/thule,3/bermuda,6/atlantic\",\n\t\"-3|n\": \"1/araguaina,1/bahia,1/belem,1/catamarca,1/cayenne,1/jujuy,1/maceio,1/mendoza,1/paramaribo,1/recife,1/rosario,1/santarem\",\n\t\"-2|s\": \"5/denoronha\",\n\t\"-2|n|03/30:22->10/26:23\": \"1/godthab\",\n\t\"-2|n|03/10:02->11/03:02\": \"1/miquelon\",\n\t\"-2|n\": \"1/noronha,3/south_georgia\",\n\t\"-2.5|n|03/10:02->11/03:02\": \"1/st_johns,6/newfoundland\",\n\t\"-1|n\": \"3/cape_verde\",\n\t\"-11|n\": \"11/midway,11/niue,11/pago_pago,11/samoa\",\n\t\"-10|n\": \"11/honolulu,11/johnston,11/rarotonga,11/tahiti\"\n};\n\nvar _build$1 = /*#__PURE__*/Object.freeze({\n\t'default': _build\n});\n\n//prefixes for iana names..\nvar _prefixes = [\n 'africa',\n 'america',\n 'asia',\n 'atlantic',\n 'australia',\n 'brazil',\n 'canada',\n 'chile',\n 'europe',\n 'indian',\n 'mexico',\n 'pacific',\n 'antarctica',\n 'etc'\n];\n\nvar data = getCjsExportFromNamespace(_build$1);\n\nlet all = {};\nObject.keys(data).forEach(k => {\n let split = k.split('|');\n let obj = {\n offset: Number(split[0]),\n hem: split[1]\n };\n if (split[2]) {\n obj.dst = split[2];\n }\n let names = data[k].split(',');\n names.forEach(str => {\n str = str.replace(/(^[0-9]+)\\//, (before, num) => {\n num = Number(num);\n return _prefixes[num] + '/'\n });\n all[str] = obj;\n });\n});\n\nall['utc'] = {\n offset: 0,\n hem: 'n' //(sorry)\n};\n\n//add etc/gmt+n\nfor (let i = -14; i <= 14; i += 0.5) {\n let num = i;\n if (num > 0) {\n num = '+' + num;\n }\n let name = 'etc/gmt' + num;\n all[name] = {\n offset: i * -1, //they're negative!\n hem: 'n' //(sorry)\n };\n name = 'utc/gmt' + num; //this one too, why not.\n all[name] = {\n offset: i * -1,\n hem: 'n'\n };\n}\n// console.log(all)\n\n// console.log(Object.keys(all).length)\nvar unpack = all;\n\n//find the implicit iana code for this machine.\n//safely query the Intl object\n//based on - https://bitbucket.org/pellepim/jstimezonedetect/src\nconst fallbackTZ = 'utc'; //\n\n//this Intl object is not supported often, yet\nconst safeIntl = () => {\n if (typeof Intl === 'undefined' || typeof Intl.DateTimeFormat === 'undefined') {\n return null\n }\n let format = Intl.DateTimeFormat();\n if (typeof format === 'undefined' || typeof format.resolvedOptions === 'undefined') {\n return null\n }\n let timezone = format.resolvedOptions().timeZone;\n if (!timezone) {\n return null\n }\n return timezone.toLowerCase()\n};\n\nconst guessTz = () => {\n let timezone = safeIntl();\n if (timezone === null) {\n return fallbackTZ\n }\n return timezone\n};\n//do it once per computer\nvar guessTz_1 = guessTz;\n\nconst isOffset = /(\\-?[0-9]+)h(rs)?/i;\nconst isNumber = /(\\-?[0-9]+)/;\nconst utcOffset = /utc([\\-+]?[0-9]+)/i;\nconst gmtOffset = /gmt([\\-+]?[0-9]+)/i;\n\nconst toIana = function(num) {\n num = Number(num);\n if (num > -13 && num < 13) {\n num = num * -1; //it's opposite!\n num = (num > 0 ? '+' : '') + num; //add plus sign\n return 'etc/gmt' + num\n }\n return null\n};\n\nconst parseOffset = function(tz) {\n // '+5hrs'\n let m = tz.match(isOffset);\n if (m !== null) {\n return toIana(m[1])\n }\n // 'utc+5'\n m = tz.match(utcOffset);\n if (m !== null) {\n return toIana(m[1])\n }\n // 'GMT-5' (not opposite)\n m = tz.match(gmtOffset);\n if (m !== null) {\n let num = Number(m[1]) * -1;\n return toIana(num)\n }\n // '+5'\n m = tz.match(isNumber);\n if (m !== null) {\n return toIana(m[1])\n }\n return null\n};\nvar parseOffset_1 = parseOffset;\n\nconst local = guessTz_1();\n\n//add all the city names by themselves\nconst cities = Object.keys(unpack).reduce((h, k) => {\n let city = k.split('/')[1] || '';\n city = city.replace(/_/g, ' ');\n h[city] = k;\n return h\n}, {});\n\n//try to match these against iana form\nconst normalize = tz => {\n tz = tz.replace(/ time/g, '');\n tz = tz.replace(/ (standard|daylight|summer)/g, '');\n tz = tz.replace(/\\b(east|west|north|south)ern/g, '$1');\n tz = tz.replace(/\\b(africa|america|australia)n/g, '$1');\n tz = tz.replace(/\\beuropean/g, 'europe');\n tz = tz.replace(/\\islands/g, 'island');\n return tz\n};\n\n// try our best to reconcile the timzone to this given string\nconst lookupTz = (str, zones) => {\n if (!str) {\n return local\n }\n let tz = str.trim();\n let split = str.split('/');\n //support long timezones like 'America/Argentina/Rio_Gallegos'\n if (split.length > 2 && zones.hasOwnProperty(tz) === false) {\n tz = split[0] + '/' + split[1];\n }\n tz = tz.toLowerCase();\n if (zones.hasOwnProperty(tz) === true) {\n return tz\n }\n //lookup more loosely..\n tz = normalize(tz);\n if (zones.hasOwnProperty(tz) === true) {\n return tz\n }\n //try city-names\n if (cities.hasOwnProperty(tz) === true) {\n return cities[tz]\n }\n // //try to parse '-5h'\n if (/[0-9]/.test(tz) === true) {\n let id = parseOffset_1(tz);\n if (id) {\n return id\n }\n }\n\n throw new Error(\n \"Spacetime: Cannot find timezone named: '\" + str + \"'. Please enter an IANA timezone id.\"\n )\n};\nvar find = lookupTz;\n\nlet o = {\n millisecond: 1\n};\no.second = 1000;\no.minute = 60000;\no.hour = 3.6e6; // dst is supported post-hoc\no.day = 8.64e7; //\no.date = o.day;\no.month = 8.64e7 * 29.5; //(average)\no.week = 6.048e8;\no.year = 3.154e10; // leap-years are supported post-hoc\n//add plurals\nObject.keys(o).forEach(k => {\n o[k + 's'] = o[k];\n});\nvar milliseconds = o;\n\n//basically, step-forward/backward until js Date object says we're there.\nconst walk = (s, n, fn, unit, previous) => {\n let current = s.d[fn]();\n if (current === n) {\n return //already there\n }\n let startUnit = previous === null ? null : s.d[previous]();\n let original = s.epoch;\n //try to get it as close as we can\n let diff = n - current;\n s.epoch += milliseconds[unit] * diff;\n\n //DST edge-case: if we are going many days, be a little conservative\n if (unit === 'day' && Math.abs(diff) > 28) {\n //but don't push it over a month\n if (n < 28) {\n s.epoch += milliseconds.hour;\n }\n }\n //repair it if we've gone too far or something\n //(go by half-steps, just in case)\n const halfStep = milliseconds[unit] / 2;\n while (s.d[fn]() < n) {\n s.epoch += halfStep;\n }\n while (s.d[fn]() > n) {\n s.epoch -= halfStep;\n }\n //oops, did we change previous unit? revert it.\n if (previous !== null && startUnit !== s.d[previous]()) {\n // console.warn('spacetime warning: missed setting ' + unit)\n s.epoch = original;\n // i mean, but make it close...\n s.epoch += milliseconds[unit] * diff * 0.89; // i guess?\n }\n};\n//find the desired date by a increment/check while loop\nconst units = {\n year: {\n valid: n => n > -4000 && n < 4000,\n walkTo: (s, n) => walk(s, n, 'getFullYear', 'year', null)\n },\n month: {\n valid: n => n >= 0 && n <= 11,\n walkTo: (s, n) => {\n let d = s.d;\n let current = d.getMonth();\n let original = s.epoch;\n let startUnit = d.getFullYear();\n if (current === n) {\n return\n }\n //try to get it as close as we can..\n let diff = n - current;\n s.epoch += milliseconds.day * (diff * 28); //special case\n //oops, did we change the year? revert it.\n if (startUnit !== s.d.getFullYear()) {\n s.epoch = original;\n }\n //incriment by day\n while (s.d.getMonth() < n) {\n s.epoch += milliseconds.day;\n }\n while (s.d.getMonth() > n) {\n s.epoch -= milliseconds.day;\n }\n }\n },\n date: {\n valid: n => n > 0 && n <= 31,\n walkTo: (s, n) => walk(s, n, 'getDate', 'day', 'getMonth')\n },\n hour: {\n valid: n => n >= 0 && n < 24,\n walkTo: (s, n) => walk(s, n, 'getHours', 'hour', 'getDate')\n },\n minute: {\n valid: n => n >= 0 && n < 60,\n walkTo: (s, n) => walk(s, n, 'getMinutes', 'minute', 'getHours')\n },\n second: {\n valid: n => n >= 0 && n < 60,\n walkTo: (s, n) => {\n //do this one directly\n s.epoch = s.seconds(n).epoch;\n }\n },\n millisecond: {\n valid: n => n >= 0 && n < 1000,\n walkTo: (s, n) => {\n //do this one directly\n s.epoch = s.milliseconds(n).epoch;\n }\n }\n};\n\nconst walkTo = (s, wants) => {\n let keys = Object.keys(units);\n let old = s.clone();\n for (let i = 0; i < keys.length; i++) {\n let k = keys[i];\n let n = wants[k];\n if (n === undefined) {\n n = old[k]();\n }\n if (typeof n === 'string') {\n n = parseInt(n, 10);\n }\n //make-sure it's valid\n if (!units[k].valid(n)) {\n s.epoch = null;\n if (s.silent === false) {\n console.warn('invalid ' + k + ': ' + n);\n }\n return\n }\n // console.log(k, n)\n units[k].walkTo(s, n);\n }\n return\n};\n\nvar walk_1 = walkTo;\n\nlet shortMonths = [\n 'jan',\n 'feb',\n 'mar',\n 'apr',\n 'may',\n 'jun',\n 'jul',\n 'aug',\n 'sept',\n 'oct',\n 'nov',\n 'dec'\n];\nlet longMonths = [\n 'january',\n 'february',\n 'march',\n 'april',\n 'may',\n 'june',\n 'july',\n 'august',\n 'september',\n 'october',\n 'november',\n 'december'\n];\n\nfunction buildMapping() {\n const obj = {\n sep: 8 //support this format\n };\n for (let i = 0; i < shortMonths.length; i++) {\n obj[shortMonths[i]] = i;\n }\n for (let i = 0; i < longMonths.length; i++) {\n obj[longMonths[i]] = i;\n }\n return obj\n}\n\nvar months = {\n short: () => shortMonths,\n long: () => longMonths,\n mapping: () => buildMapping(),\n set: i18n => {\n shortMonths = i18n.short || shortMonths;\n longMonths = i18n.long || longMonths;\n }\n};\n\n//pull-apart ISO offsets, like \"+0100\"\nconst parseOffset$1 = (s, offset) => {\n if (!offset) {\n return s\n }\n //this is a fancy-move\n if (offset === 'Z') {\n offset = '+0000';\n }\n\n // according to ISO8601, tz could be hh:mm, hhmm or hh\n // so need few more steps before the calculation.\n let num = 0;\n\n // for (+-)hh:mm\n if (/^[\\+-]?[0-9]{2}:[0-9]{2}$/.test(offset)) {\n //support \"+01:00\"\n if (/:00/.test(offset) === true) {\n offset = offset.replace(/:00/, '');\n }\n //support \"+01:30\"\n if (/:30/.test(offset) === true) {\n offset = offset.replace(/:30/, '.5');\n }\n }\n\n // for (+-)hhmm\n if (/^[\\+-]?[0-9]{4}$/.test(offset)) {\n offset = offset.replace(/30$/, '.5');\n }\n\n num = parseFloat(offset);\n\n //divide by 100 or 10 - , \"+0100\", \"+01\"\n if (Math.abs(num) > 100) {\n num = num / 100;\n }\n //okay, try to match it to a utc timezone\n //remember - this is opposite! a -5 offset maps to Etc/GMT+5 ¯\\_(:/)_/¯\n //https://askubuntu.com/questions/519550/why-is-the-8-timezone-called-gmt-8-in-the-filesystem\n num *= -1;\n\n if (num >= 0) {\n num = '+' + num;\n }\n let tz = 'etc/gmt' + num;\n let zones = s.timezones;\n\n if (zones[tz]) {\n // log a warning if we're over-writing a given timezone?\n // console.log('changing timezone to: ' + tz)\n s.tz = tz;\n }\n return s\n};\nvar parseOffset_1$1 = parseOffset$1;\n\nconst parseTime = (s, str = '') => {\n str = str.replace(/^\\s+/, '').toLowerCase(); //trim\n //formal time formats - 04:30.23\n let arr = str.match(/([0-9]{1,2}):([0-9]{1,2}):?([0-9]{1,2})?[:\\.]?([0-9]{1,4})?/);\n if (arr !== null) {\n //validate it a little\n let h = Number(arr[1]);\n if (h < 0 || h > 24) {\n return s.startOf('day')\n }\n let m = Number(arr[2]); //don't accept '5:3pm'\n if (arr[2].length < 2 || m < 0 || m > 59) {\n return s.startOf('day')\n }\n s = s.hour(h);\n s = s.minute(m);\n s = s.seconds(arr[3] || 0);\n s = s.millisecond(arr[4] || 0);\n //parse-out am/pm\n let ampm = str.match(/[\\b0-9](am|pm)\\b/);\n if (ampm !== null && ampm[1]) {\n s = s.ampm(ampm[1]);\n }\n return s\n }\n //try an informal form - 5pm (no minutes)\n arr = str.match(/([0-9]+) ?(am|pm)/);\n if (arr !== null && arr[1]) {\n let h = Number(arr[1]);\n //validate it a little..\n if (h > 12 || h < 1) {\n return s.startOf('day')\n }\n s = s.hour(arr[1] || 0);\n s = s.ampm(arr[2]);\n s = s.startOf('hour');\n return s\n }\n //no time info found, use start-of-day\n s = s.startOf('day');\n return s\n};\nvar parseTime_1 = parseTime;\n\nconst monthLengths = [\n 31, // January - 31 days\n 28, // February - 28 days in a common year and 29 days in leap years\n 31, // March - 31 days\n 30, // April - 30 days\n 31, // May - 31 days\n 30, // June - 30 days\n 31, // July - 31 days\n 31, // August - 31 days\n 30, // September - 30 days\n 31, // October - 31 days\n 30, // November - 30 days\n 31 // December - 31 days\n];\nvar monthLengths_1 = monthLengths;\n\nconst isLeapYear = fns.isLeapYear;\n\n//given a month, return whether day number exists in it\nconst hasDate = obj => {\n //invalid values\n if (monthLengths_1.hasOwnProperty(obj.month) !== true) {\n return false\n }\n //support leap-year in february\n if (obj.month === 1) {\n if (isLeapYear(obj.year) && obj.date <= 29) {\n return true\n } else {\n return obj.date <= 28\n }\n }\n //is this date too-big for this month?\n let max = monthLengths_1[obj.month] || 0;\n if (obj.date <= max) {\n return true\n }\n return false\n};\nvar hasDate_1 = hasDate;\n\nconst months$1 = months.mapping();\n\n\n\n\n\nconst parseYear = (str = '') => {\n //support '18 -> 2018\n // str = str.replace(/^'([0-9]{2})/, '20$1')\n // str = str.replace('([0-9]+) ?b\\.?c\\.?$', '-$1')\n let year = parseInt(str.trim(), 10);\n year = year || new Date().getFullYear();\n return year\n};\n\nconst strFmt = [\n //iso-this 1998-05-30T22:00:00:000Z, iso-that 2017-04-03T08:00:00-0700\n {\n reg: /^(\\-?0?0?[0-9]{3,4})-([0-9]{1,2})-([0-9]{1,2})[T| ]([0-9.:]+)(Z|[0-9\\-\\+:]+)?$/,\n parse: (s, arr, givenTz, options) => {\n let month = parseInt(arr[2], 10) - 1;\n let obj = {\n year: arr[1],\n month,\n date: arr[3]\n };\n if (hasDate_1(obj) === false) {\n s.epoch = null;\n return s\n }\n parseOffset_1$1(s, arr[5]);\n walk_1(s, obj);\n s = parseTime_1(s, arr[4]);\n return s\n }\n },\n //iso \"2015-03-25\" or \"2015/03/25\" or \"2015/03/25 12:26:14 PM\"\n {\n reg: /^([0-9]{4})[\\-\\/]([0-9]{1,2})[\\-\\/]([0-9]{1,2}),?( [0-9]{1,2}:[0-9]{2}:?[0-9]{0,2}? ?(am|pm|gmt))?$/i,\n parse: (s, arr) => {\n let obj = {\n year: arr[1],\n month: parseInt(arr[2], 10) - 1,\n date: parseInt(arr[3], 10)\n };\n if (obj.month >= 12) {\n //support yyyy/dd/mm (weird, but ok)\n obj.date = parseInt(arr[2], 10);\n obj.month = parseInt(arr[3], 10) - 1;\n }\n if (hasDate_1(obj) === false) {\n s.epoch = null;\n return s\n }\n walk_1(s, obj);\n s = parseTime_1(s, arr[4]);\n return s\n }\n },\n //mm/dd/yyyy - uk/canada \"6/28/2019, 12:26:14 PM\"\n {\n 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,\n parse: (s, arr) => {\n let month = parseInt(arr[1], 10) - 1;\n let date = parseInt(arr[2], 10);\n //support dd/mm/yyy\n if (s.british || month >= 12) {\n date = parseInt(arr[1], 10);\n month = parseInt(arr[2], 10) - 1;\n }\n let year = arr[3] || new Date().getFullYear();\n let obj = {\n year,\n month,\n date\n };\n if (hasDate_1(obj) === false) {\n s.epoch = null;\n return s\n }\n walk_1(s, obj);\n s = parseTime_1(s, arr[4]);\n return s\n }\n },\n //common british format - \"25-feb-2015\"\n {\n reg: /^([0-9]{1,2})[\\-\\/]([a-z]+)[\\-\\/]?([0-9]{4})?$/i,\n parse: (s, arr) => {\n let month = months$1[arr[2].toLowerCase()];\n let year = parseYear(arr[3]);\n let obj = {\n year,\n month,\n date: fns.toCardinal(arr[1] || '')\n };\n if (hasDate_1(obj) === false) {\n s.epoch = null;\n return s\n }\n walk_1(s, obj);\n s = parseTime_1(s, arr[4]);\n return s\n }\n },\n\n //Long \"Mar 25 2015\"\n //February 22, 2017 15:30:00\n {\n reg: /^([a-z]+) ([0-9]{1,2}(?:st|nd|rd|th)?),?( [0-9]{4})?( ([0-9:]+( ?am| ?pm| ?gmt)?))?$/i,\n parse: (s, arr) => {\n let month = months$1[arr[1].toLowerCase()];\n let year = parseYear(arr[3]);\n let obj = {\n year,\n month,\n date: fns.toCardinal(arr[2] || '')\n };\n if (hasDate_1(obj) === false) {\n s.epoch = null;\n return s\n }\n walk_1(s, obj);\n s = parseTime_1(s, arr[4]);\n return s\n }\n },\n //February 2017 (implied date)\n {\n reg: /^([a-z]+) ([0-9]{4})$/i,\n parse: (s, arr) => {\n let month = months$1[arr[1].toLowerCase()];\n let year = parseYear(arr[2]);\n let obj = {\n year,\n month,\n date: 1\n };\n if (hasDate_1(obj) === false) {\n s.epoch = null;\n return s\n }\n walk_1(s, obj);\n s = parseTime_1(s, arr[4]);\n return s\n }\n },\n //Long \"25 Mar 2015\"\n {\n reg: /^([0-9]{1,2}(?:st|nd|rd|th)?) ([a-z]+),?( [0-9]{4})?,? ?([0-9]{1,2}:[0-9]{2}:?[0-9]{0,2}? ?(am|pm|gmt))?$/i,\n parse: (s, arr) => {\n let month = months$1[arr[2].toLowerCase()];\n if (!month) {\n return null\n }\n let year = parseYear(arr[3]);\n let obj = {\n year,\n month,\n date: fns.toCardinal(arr[1])\n };\n if (hasDate_1(obj) === false) {\n s.epoch = null;\n return s\n }\n walk_1(s, obj);\n s = parseTime_1(s, arr[4]);\n return s\n }\n },\n {\n // '200bc'\n reg: /^[0-9,]+ ?b\\.?c\\.?$/i,\n parse: (s, arr) => {\n let str = arr[0] || '';\n //make negative-year\n str = str.replace(/^([0-9,]+) ?b\\.?c\\.?$/i, '-$1');\n //remove commas\n str = str.replace(/,/g, '');\n let year = parseInt(str.trim(), 10);\n let d = new Date();\n let obj = {\n year,\n month: d.getMonth(),\n date: d.getDate()\n };\n if (hasDate_1(obj) === false) {\n s.epoch = null;\n return s\n }\n walk_1(s, obj);\n s = parseTime_1(s);\n return s\n }\n },\n {\n // '200ad'\n reg: /^[0-9,]+ ?(a\\.?d\\.?|c\\.?e\\.?)$/i,\n parse: (s, arr) => {\n let str = arr[0] || '';\n //remove commas\n str = str.replace(/,/g, '');\n let year = parseInt(str.trim(), 10);\n let d = new Date();\n let obj = {\n year,\n month: d.getMonth(),\n date: d.getDate()\n };\n if (hasDate_1(obj) === false) {\n s.epoch = null;\n return s\n }\n walk_1(s, obj);\n s = parseTime_1(s);\n return s\n }\n },\n {\n // '1992'\n reg: /^[0-9]{4}( ?a\\.?d\\.?)?$/i,\n parse: (s, arr) => {\n let year = parseYear(arr[0]);\n let d = new Date();\n let obj = {\n year,\n month: d.getMonth(),\n date: d.getDate()\n };\n if (hasDate_1(obj) === false) {\n s.epoch = null;\n return s\n }\n walk_1(s, obj);\n s = parseTime_1(s);\n return s\n }\n }\n];\n\nvar strParse = strFmt;\n\nconst dates = {\n now: s => {\n s.epoch = Date.now();\n return s\n },\n tonight: s => {\n s.epoch = Date.now();\n s = s.hour(18);\n return s\n },\n today: s => {\n s.epoch = Date.now();\n return s\n },\n tomorrow: s => {\n s.epoch = Date.now();\n s = s.add(1, 'day');\n s = s.startOf('day');\n return s\n },\n yesterday: s => {\n s.epoch = Date.now();\n s = s.subtract(1, 'day');\n s = s.startOf('day');\n return s\n },\n christmas: s => {\n let year = new Date().getFullYear();\n s = s.set([year, 11, 25, 18, 0, 0]); // Dec 25\n return s\n },\n 'new years': s => {\n let year = new Date().getFullYear();\n s = s.set([year, 11, 31, 18, 0, 0]); // Dec 31\n return s\n }\n};\ndates['new years eve'] = dates['new years'];\nvar namedDates = dates;\n\n//we have to actually parse these inputs ourselves\n// - can't use built-in js parser ;(\n//=========================================\n// ISO Date\t \"2015-03-25\"\n// Short Date\t\"03/25/2015\" or \"2015/03/25\"\n// Long Date\t\"Mar 25 2015\" or \"25 Mar 2015\"\n// Full Date\t\"Wednesday March 25 2015\"\n//=========================================\n\n//-- also -\n// if the given epoch is really small, they've probably given seconds and not milliseconds\n// anything below this number is likely (but not necessarily) a mistaken input.\n// this may seem like an arbitrary number, but it's 'within jan 1970'\n// this is only really ambiguous until 2054 or so\nconst minimumEpoch = 2500000000;\n\nconst defaults = {\n year: new Date().getFullYear(),\n month: 0,\n date: 1\n};\n\n//support [2016, 03, 01] format\nconst handleArray = (s, arr) => {\n let order = ['year', 'month', 'date', 'hour', 'minute', 'second', 'millisecond'];\n for (let i = 0; i < order.length; i++) {\n let num = arr[i] || defaults[order[i]] || 0;\n s = s[order[i]](num);\n }\n return s\n};\n//support {year:2016, month:3} format\nconst handleObject = (s, obj) => {\n obj = Object.assign({}, defaults, obj);\n let keys = Object.keys(obj);\n for (let i = 0; i < keys.length; i++) {\n let unit = keys[i];\n //make sure we have this method\n if (s[unit] === undefined || typeof s[unit] !== 'function') {\n continue\n }\n //make sure the value is a number\n if (obj[unit] === null || obj[unit] === undefined || obj[unit] === '') {\n continue\n }\n let num = obj[unit] || defaults[unit] || 0;\n s = s[unit](num);\n }\n return s\n};\n\n//find the epoch from different input styles\nconst parseInput = (s, input, givenTz) => {\n //if we've been given a epoch number, it's easy\n if (typeof input === 'number') {\n if (input > 0 && input < minimumEpoch && s.silent === false) {\n console.warn(' - Warning: You are setting the date to January 1970.');\n console.warn(' - did input seconds instead of milliseconds?');\n }\n s.epoch = input;\n return s\n }\n //set tmp time\n s.epoch = Date.now();\n if (input === null || input === undefined) {\n return s //k, we're good.\n }\n //support input of Date() object\n if (fns.isDate(input) === true) {\n s.epoch = input.getTime();\n return s\n }\n //support [2016, 03, 01] format\n if (fns.isArray(input) === true) {\n s = handleArray(s, input);\n return s\n }\n //support {year:2016, month:3} format\n if (fns.isObject(input) === true) {\n //support spacetime object as input\n if (input.epoch) {\n s.epoch = input.epoch;\n s.tz = input.tz;\n return s\n }\n s = handleObject(s, input);\n return s\n }\n //input as a string..\n if (typeof input !== 'string') {\n return s\n }\n //little cleanup..\n input = input.replace(/\\b(mon|tues|wed|wednes|thu|thurs|fri|sat|satur|sun)(day)?\\b/i, '');\n input = input.replace(/,/g, '');\n input = input.replace(/ +/g, ' ').trim();\n //try some known-words, like 'now'\n if (namedDates.hasOwnProperty(input) === true) {\n s = namedDates[input](s);\n return s\n }\n //try each text-parse template, use the first good result\n for (let i = 0; i < strParse.length; i++) {\n let m = input.match(strParse[i].reg);\n if (m) {\n let res = strParse[i].parse(s, m, givenTz);\n if (res !== null) {\n return res\n }\n }\n }\n if (s.silent === false) {\n console.warn(\"Warning: couldn't parse date-string: '\" + input + \"'\");\n }\n s.epoch = null;\n return s\n};\nvar input = parseInput;\n\nlet shortDays = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'];\nlet longDays = ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday'];\n\nvar days = {\n short: () => shortDays,\n long: () => longDays,\n set: i18n => {\n shortDays = i18n.short || shortDays;\n longDays = i18n.long || longDays;\n }\n};\n\n// create the timezone offset part of an iso timestamp\n// it's kind of nuts how involved this is\n// \"+01:00\", \"+0100\", or simply \"+01\"\nconst isoOffset = s => {\n let offset = s.timezone().current.offset;\n const isNegative = offset < 0;\n let minute = '00';\n //handle 5.5 → '5:30'\n if (Math.abs(offset % 1) === 0.5) {\n minute = '30';\n if (offset >= 0) {\n offset = Math.floor(offset);\n } else {\n offset = Math.ceil(offset);\n }\n }\n if (isNegative) {\n //handle negative sign\n offset *= -1;\n offset = fns.zeroPad(offset, 2);\n offset = '-' + offset;\n } else {\n offset = fns.zeroPad(offset, 2);\n offset = '+' + offset;\n }\n offset = offset + ':' + minute;\n //'Z' means 00\n if (offset === '+00:00') {\n offset = 'Z';\n }\n return offset\n};\n\nvar _offset = isoOffset;\n\nconst format = {\n day: s => fns.titleCase(s.dayName()),\n 'day-short': s => fns.titleCase(days.short()[s.day()]),\n 'day-number': s => s.day(),\n 'day-ordinal': s => fns.ordinal(s.day()),\n 'day-pad': s => fns.zeroPad(s.day()),\n\n date: s => s.date(),\n 'date-ordinal': s => fns.ordinal(s.date()),\n 'date-pad': s => fns.zeroPad(s.date()),\n\n month: s => fns.titleCase(s.monthName()),\n 'month-short': s => fns.titleCase(months.short()[s.month()]),\n 'month-number': s => s.month(),\n 'month-ordinal': s => fns.ordinal(s.month()),\n 'month-pad': s => fns.zeroPad(s.month()),\n 'iso-month': s => fns.zeroPad(s.month() + 1), //1-based months\n\n year: s => {\n let year = s.year();\n if (year > 0) {\n return year\n }\n year = Math.abs(year);\n return year + ' BC'\n },\n 'year-short': s => {\n let year = s.year();\n if (year > 0) {\n return `'${String(s.year()).substr(2, 4)}`\n }\n year = Math.abs(year);\n return year + ' BC'\n },\n 'iso-year': s => {\n let year = s.year();\n let isNegative = year < 0;\n let str = fns.zeroPad(Math.abs(year), 4); //0-padded\n if (isNegative) {\n //negative years are for some reason 6-digits ('-00008')\n str = fns.zeroPad(str, 6);\n str = '-' + str;\n }\n return str\n },\n\n time: s => s.time(),\n 'time-24': s => `${s.hour24()}:${fns.zeroPad(s.minute())}`,\n hour: s => s.hour12(),\n 'hour-pad': s => fns.zeroPad(s.hour12()),\n 'hour-24': s => s.hour24(),\n 'hour-24-pad': s => fns.zeroPad(s.hour24()),\n\n minute: s => s.minute(),\n 'minute-pad': s => fns.zeroPad(s.minute()),\n second: s => s.second(),\n 'second-pad': s => fns.zeroPad(s.second()),\n\n ampm: s => s.ampm(),\n quarter: s => 'Q' + s.quarter(),\n season: s => s.season(),\n era: s => s.era(),\n json: s => s.json(),\n timezone: s => s.timezone().name,\n offset: s => _offset(s),\n\n numeric: s => `${s.year()}/${fns.zeroPad(s.month() + 1)}/${fns.zeroPad(s.date())}`, // yyyy/mm/dd\n 'numeric-us': s => `${fns.zeroPad(s.month() + 1)}/${fns.zeroPad(s.date())}/${s.year()}`, // mm/dd/yyyy\n 'numeric-uk': s => `${fns.zeroPad(s.date())}/${fns.zeroPad(s.month() + 1)}/${s.year()}`, //dd/mm/yyyy\n 'mm/dd': s => `${fns.zeroPad(s.month() + 1)}/${fns.zeroPad(s.date())}`, //mm/dd\n\n // ... https://en.wikipedia.org/wiki/ISO_8601 ;(((\n iso: s => {\n let year = s.format('iso-year');\n let month = fns.zeroPad(s.month() + 1); //1-based months\n let date = fns.zeroPad(s.date());\n let hour = fns.zeroPad(s.h24());\n let minute = fns.zeroPad(s.minute());\n let second = fns.zeroPad(s.second());\n let ms = fns.zeroPad(s.millisecond(), 3);\n let offset = _offset(s);\n return `${year}-${month}-${date}T${hour}:${minute}:${second}.${ms}${offset}` //2018-03-09T08:50:00.000-05:00\n },\n 'iso-short': s => {\n let month = fns.zeroPad(s.month() + 1); //1-based months\n let date = fns.zeroPad(s.date());\n return `${s.year()}-${month}-${date}` //2017-02-15\n },\n 'iso-utc': s => {\n return new Date(s.epoch).toISOString() //2017-03-08T19:45:28.367Z\n },\n\n //i made these up\n nice: s => `${months.short()[s.month()]} ${fns.ordinal(s.date())}, ${s.time()}`,\n 'nice-year': s => `${months.short()[s.month()]} ${fns.ordinal(s.date())}, ${s.year()}`,\n 'nice-day': s =>\n `${days.short()[s.day()]} ${fns.titleCase(months.short()[s.month()])} ${fns.ordinal(s.date())}`,\n 'nice-full': s =>\n `${s.dayName()} ${fns.titleCase(s.monthName())} ${fns.ordinal(s.date())}, ${s.time()}`\n};\n//aliases\nconst aliases = {\n 'day-name': 'day',\n 'month-name': 'month',\n 'iso 8601': 'iso',\n 'time-h24': 'time-24',\n 'time-12': 'time',\n 'time-h12': 'time',\n tz: 'timezone',\n 'day-num': 'day-number',\n 'month-num': 'month-number',\n 'month-iso': 'iso-month',\n 'year-iso': 'iso-year',\n 'nice-short': 'nice',\n mdy: 'numeric-us',\n dmy: 'numeric-uk',\n ymd: 'numeric',\n 'yyyy/mm/dd': 'numeric',\n 'mm/dd/yyyy': 'numeric-us',\n 'dd/mm/yyyy': 'numeric-us',\n 'little-endian': 'numeric-uk',\n 'big-endian': 'numeric',\n 'day-nice': 'nice-day'\n};\nObject.keys(aliases).forEach(k => (format[k] = format[aliases[k]]));\n\nconst printFormat = (s, str = '') => {\n //don't print anything if it's an invalid date\n if (s.isValid() !== true) {\n return ''\n }\n //support .format('month')\n if (format.hasOwnProperty(str)) {\n let out = format[str](s) || '';\n if (str !== 'json') {\n out = String(out);\n if (str !== 'ampm') {\n out = fns.titleCase(out);\n }\n }\n return out\n }\n //support '{hour}:{minute}' notation\n if (str.indexOf('{') !== -1) {\n let sections = /\\{(.+?)\\}/g;\n str = str.replace(sections, (_, fmt) => {\n fmt = fmt.toLowerCase().trim();\n if (format.hasOwnProperty(fmt)) {\n return String(format[fmt](s) || '')\n }\n return ''\n });\n return str\n }\n\n return s.format('iso-short')\n};\nvar format_1 = printFormat;\n\nconst pad = fns.zeroPad;\nconst formatTimezone = fns.formatTimezone;\n//parse this insane unix-time-templating thing, from the 19th century\n//http://unicode.org/reports/tr35/tr35-25.html#Date_Format_Patterns\n\n//time-symbols we support\nconst mapping = {\n G: s => s.era(),\n GG: s => s.era(),\n GGG: s => s.era(),\n GGGG: s => (s.era() === 'AD' ? 'Anno Domini' : 'Before Christ'),\n //year\n y: s => s.year(),\n yy: s => {\n //last two chars\n return parseInt(String(s.year()).substr(2, 4), 10)\n },\n yyy: s => s.year(),\n yyyy: s => s.year(),\n yyyyy: s => '0' + s.year(),\n // u: (s) => {},//extended non-gregorian years\n\n //quarter\n Q: s => s.quarter(),\n QQ: s => s.quarter(),\n QQQ: s => s.quarter(),\n QQQQ: s => s.quarter(),\n\n //month\n M: s => s.month() + 1,\n MM: s => pad(s.month() + 1),\n MMM: s => s.format('month-short'),\n MMMM: s => s.format('month'),\n\n //week\n w: s => s.week(),\n ww: s => pad(s.week()),\n //week of month\n // W: (s) => s.week(),\n\n //date of month\n d: s => s.date(),\n dd: s => pad(s.date()),\n //date of year\n D: s => s.dayOfYear(),\n DD: s => pad(s.dayOfYear()),\n DDD: s => pad(s.dayOfYear(), 3),\n\n // F: (s) => {},//date of week in month\n // g: (s) => {},//modified julian day\n\n //day\n E: s => s.format('day-short'),\n EE: s => s.format('day-short'),\n EEE: s => s.format('day-short'),\n EEEE: s => s.format('day'),\n EEEEE: s => s.format('day')[0],\n e: s => s.day(),\n ee: s => s.day(),\n eee: s => s.format('day-short'),\n eeee: s => s.format('day'),\n eeeee: s => s.format('day')[0],\n\n //am/pm\n a: s => s.ampm().toUpperCase(),\n aa: s => s.ampm().toUpperCase(),\n aaa: s => s.ampm().toUpperCase(),\n aaaa: s => s.ampm().toUpperCase(),\n\n //hour\n h: s => s.h12(),\n hh: s => pad(s.h12()),\n H: s => s.hour(),\n HH: s => pad(s.hour()),\n // j: (s) => {},//weird hour format\n\n m: s => s.minute(),\n mm: s => pad(s.minute()),\n s: s => s.second(),\n ss: s => pad(s.second()),\n //milliseconds in the day\n A: s => s.epoch - s.startOf('day').epoch,\n //timezone\n z: s => s.timezone().name,\n zz: s => s.timezone().name,\n zzz: s => s.timezone().name,\n zzzz: s => s.timezone().name,\n Z: s => formatTimezone(s.timezone().current.offset),\n ZZ: s => formatTimezone(s.timezone().current.offset),\n ZZZ: s => formatTimezone(s.timezone().current.offset),\n ZZZZ: s => formatTimezone(s.timezone().current.offset, ':')\n};\n\nconst addAlias = (char, to, n) => {\n let name = char;\n let toName = to;\n for (let i = 0; i < n; i += 1) {\n mapping[name] = mapping[toName];\n name += char;\n toName += to;\n }\n};\naddAlias('q', 'Q', 4);\naddAlias('L', 'M', 4);\naddAlias('Y', 'y', 4);\naddAlias('c', 'e', 4);\naddAlias('k', 'H', 2);\naddAlias('K', 'h', 2);\naddAlias('S', 's', 2);\naddAlias('v', 'z', 4);\naddAlias('V', 'Z', 4);\n\nconst unixFmt = (s, str) => {\n let chars = str.split('');\n //combine consecutive chars, like 'yyyy' as one.\n let arr = [chars[0]];\n let quoteOn = false;\n for (let i = 1; i < chars.length; i += 1) {\n //support quoted substrings\n if (chars[i] === `'`) {\n quoteOn = !quoteOn;\n //support '', meaning one tick\n if (quoteOn === true && chars[i + 1] && chars[i + 1] === \"'\") {\n quoteOn = true;\n } else {\n continue\n }\n }\n //merge it with the last one\n if (quoteOn === true || chars[i] === arr[arr.length - 1][0]) {\n arr[arr.length - 1] += chars[i];\n } else {\n arr.push(chars[i]);\n }\n }\n return arr.reduce((txt, c) => {\n if (mapping[c] !== undefined) {\n txt += mapping[c](s) || '';\n } else {\n txt += c;\n }\n return txt\n }, '')\n};\nvar unixFmt_1 = unixFmt;\n\nconst units$1 = ['year', 'season', 'quarter', 'month', 'week', 'day', 'quarterHour', 'hour', 'minute'];\n\nconst doUnit = function(s, k) {\n let start = s.clone().startOf(k);\n let end = s.clone().endOf(k);\n let duration = end.epoch - start.epoch;\n let percent = (s.epoch - start.epoch) / duration;\n return parseFloat(percent.toFixed(2))\n};\n\n//how far it is along, from 0-1\nconst progress = (s, unit) => {\n if (unit) {\n unit = fns.normalize(unit);\n return doUnit(s, unit)\n }\n let obj = {};\n units$1.forEach(k => {\n obj[k] = doUnit(s, k);\n });\n return obj\n};\n\nvar progress_1 = progress;\n\n//round to either current, or +1 of this unit\nconst nearest = (s, unit) => {\n //how far have we gone?\n let prog = s.progress();\n unit = fns.normalize(unit);\n //fix camel-case for this one\n if (unit === 'quarterhour') {\n unit = 'quarterHour';\n }\n if (prog[unit] !== undefined) {\n // go forward one?\n if (prog[unit] > 0.5) {\n s = s.add(1, unit);\n }\n // go to start\n s = s.startOf(unit);\n } else if (s.silent === false) {\n console.warn(\"no known unit '\" + unit + \"'\");\n }\n return s\n};\nvar nearest_1 = nearest;\n\n//increment until dates are the same\nconst climb = (a, b, unit) => {\n let i = 0;\n a = a.clone();\n while (a.isBefore(b)) {\n //do proper, expensive increment to catch all-the-tricks\n a = a.add(1, unit);\n i += 1;\n }\n //oops, we went too-far..\n if (a.isAfter(b, unit)) {\n i -= 1;\n }\n return i\n};\n\n// do a thurough +=1 on the unit, until they match\n// for speed-reasons, only used on day, month, week.\nconst diffOne = (a, b, unit) => {\n if (a.isBefore(b)) {\n return climb(a, b, unit)\n } else {\n return climb(b, a, unit) * -1 //reverse it\n }\n};\n\nvar one = diffOne;\n\n// don't do anything too fancy here.\n// 2020 - 2019 may be 1 year, or 0 years\n// - '1 year difference' means 366 days during a leap year\nconst fastYear = (a, b) => {\n let years = b.year() - a.year();\n // should we decrement it by 1?\n a = a.year(b.year());\n if (a.isAfter(b)) {\n years -= 1;\n }\n return years\n};\n\n// use a waterfall-method for computing a diff of any 'pre-knowable' units\n// compute years, then compute months, etc..\n// ... then ms-math for any very-small units\nconst diff = function(a, b) {\n // an hour is always the same # of milliseconds\n // so these units can be 'pre-calculated'\n let msDiff = b.epoch - a.epoch;\n let obj = {\n milliseconds: msDiff,\n seconds: parseInt(msDiff / 1000, 10)\n };\n obj.minutes = parseInt(obj.seconds / 60, 10);\n obj.hours = parseInt(obj.minutes / 60, 10);\n\n //do the year\n let tmp = a.clone();\n obj.years = fastYear(tmp, b);\n tmp = a.add(obj.years, 'year');\n\n //there's always 12 months in a year...\n obj.months = obj.years * 12;\n tmp = a.add(obj.months, 'month');\n obj.months += one(tmp, b, 'month');\n\n // there's always atleast 52 weeks in a year..\n // (month * 4) isn't as close\n obj.weeks = obj.years * 52;\n tmp = a.add(obj.weeks, 'week');\n obj.weeks += one(tmp, b, 'week');\n\n // there's always atleast 7 days in a week\n obj.days = obj.weeks * 7;\n tmp = a.add(obj.days, 'day');\n obj.days += one(tmp, b, 'day');\n\n return obj\n};\nvar waterfall = diff;\n\nconst reverseDiff = function(obj) {\n Object.keys(obj).forEach(k => {\n obj[k] *= -1;\n });\n return obj\n};\n\n// this method counts a total # of each unit, between a, b.\n// '1 month' means 28 days in february\n// '1 year' means 366 days in a leap year\nconst main = function(a, b, unit) {\n b = fns.beADate(b, a);\n //reverse values, if necessary\n let reversed = false;\n if (a.isAfter(b)) {\n let tmp = a;\n a = b;\n b = tmp;\n reversed = true;\n }\n //compute them all (i know!)\n let obj = waterfall(a, b);\n if (reversed) {\n obj = reverseDiff(obj);\n }\n //return just the requested unit\n if (unit) {\n //make sure it's plural-form\n unit = fns.normalize(unit);\n if (/s$/.test(unit) !== true) {\n unit += 's';\n }\n if (unit === 'dates') {\n unit = 'days';\n }\n return obj[unit]\n }\n return obj\n};\n\nvar diff$1 = main;\n\n//by spencermountain + Shaun Grady\n\n//our conceptual 'break-points' for each unit\nconst qualifiers = {\n months: {\n almost: 10,\n over: 4\n },\n days: {\n almost: 25,\n over: 10\n },\n hours: {\n almost: 20,\n over: 8\n },\n minutes: {\n almost: 50,\n over: 20\n },\n seconds: {\n almost: 50,\n over: 20\n }\n};\n\n//get number of hours/minutes... between the two dates\nfunction getDiff(a, b) {\n const isBefore = a.isBefore(b);\n const later = isBefore ? b : a;\n let earlier = isBefore ? a : b;\n earlier = earlier.clone();\n const diff = {\n years: 0,\n months: 0,\n days: 0,\n hours: 0,\n minutes: 0,\n seconds: 0\n };\n Object.keys(diff).forEach(unit => {\n if (earlier.isSame(later, unit)) {\n return\n }\n let max = earlier.diff(later, unit);\n earlier = earlier.add(max, unit);\n diff[unit] = max;\n });\n\n //reverse it, if necessary\n if (isBefore) {\n Object.keys(diff).forEach(u => {\n if (diff[u] !== 0) {\n diff[u] *= -1;\n }\n });\n }\n return diff\n}\n\n// Expects a plural unit arg\nfunction pluralize(value, unit) {\n if (value === 1) {\n unit = unit.slice(0, -1);\n }\n return value + ' ' + unit\n}\n\n//create the human-readable diff between the two dates\nconst since = (start, end) => {\n end = fns.beADate(end, start);\n const diff = getDiff(start, end);\n const isNow = Object.keys(diff).every(u => !diff[u]);\n if (isNow === true) {\n return {\n diff,\n rounded: 'now',\n qualified: 'now',\n precise: 'now'\n }\n }\n let rounded;\n let qualified;\n let precise;\n let englishValues = [];\n\n //go through each value and create its text-representation\n Object.keys(diff).forEach((unit, i, units) => {\n const value = Math.abs(diff[unit]);\n if (value === 0) {\n return\n }\n const englishValue = pluralize(value, unit);\n englishValues.push(englishValue);\n if (!rounded) {\n rounded = qualified = englishValue;\n if (i > 4) {\n return\n }\n //is it a 'almost' something, etc?\n const nextUnit = units[i + 1];\n const nextValue = Math.abs(diff[nextUnit]);\n if (nextValue > qualifiers[nextUnit].almost) {\n rounded = pluralize(value + 1, unit);\n qualified = 'almost ' + rounded;\n } else if (nextValue > qualifiers[nextUnit].over) qualified = 'over ' + englishValue;\n }\n });\n //make them into a string\n precise = englishValues.splice(0, 2).join(', ');\n //handle before/after logic\n if (start.isAfter(end) === true) {\n rounded += ' ago';\n qualified += ' ago';\n precise += ' ago';\n } else {\n rounded = 'in ' + rounded;\n qualified = 'in ' + qualified;\n precise = 'in ' + precise;\n }\n return {\n diff,\n rounded,\n qualified,\n precise\n }\n};\n\nvar since_1 = since;\n\n//https://www.timeanddate.com/calendar/aboutseasons.html\n// Spring - from March 1 to May 31;\n// Summer - from June 1 to August 31;\n// Fall (autumn) - from September 1 to November 30; and,\n// Winter - from December 1 to February 28 (February 29 in a leap year).\nvar seasons = {\n north: [\n ['spring', 2, 1], //spring march 1\n ['summer', 5, 1], //june 1\n ['fall', 8, 1], //sept 1\n ['autumn', 8, 1], //sept 1\n ['winter', 11, 1] //dec 1\n ],\n south: [\n ['fall', 2, 1], //march 1\n ['autumn', 2, 1], //march 1\n ['winter', 5, 1], //june 1\n ['spring', 8, 1], //sept 1\n ['summer', 11, 1] //dec 1\n ]\n};\n\nvar quarters = [\n null,\n [0, 1], //jan 1\n [3, 1], //apr 1\n [6, 1], //july 1\n [9, 1] //oct 1\n];\n\nconst units$2 = {\n minute: s => {\n walk_1(s, {\n second: 0,\n millisecond: 0\n });\n return s\n },\n quarterhour: s => {\n let minute = s.minutes();\n if (minute >= 45) {\n s = s.minutes(45);\n } else if (minute >= 30) {\n s = s.minutes(30);\n } else if (minute >= 15) {\n s = s.minutes(15);\n } else {\n s = s.minutes(0);\n }\n walk_1(s, {\n second: 0,\n millisecond: 0\n });\n return s\n },\n hour: s => {\n walk_1(s, {\n minute: 0,\n second: 0,\n millisecond: 0\n });\n return s\n },\n day: s => {\n walk_1(s, {\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0\n });\n return s\n },\n week: s => {\n let original = s.clone();\n s = s.day(s._weekStart); //monday\n if (s.isAfter(original)) {\n s = s.subtract(1, 'week');\n }\n walk_1(s, {\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0\n });\n return s\n },\n month: s => {\n walk_1(s, {\n date: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0\n });\n return s\n },\n quarter: s => {\n let q = s.quarter();\n if (quarters[q]) {\n walk_1(s, {\n month: quarters[q][0],\n date: quarters[q][1],\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0\n });\n }\n return s\n },\n season: s => {\n let current = s.season();\n let hem = 'north';\n if (s.hemisphere() === 'South') {\n hem = 'south';\n }\n for (let i = 0; i < seasons[hem].length; i++) {\n if (seasons[hem][i][0] === current) {\n //winter goes between years\n let year = s.year();\n if (current === 'winter' && s.month() < 3) {\n year -= 1;\n }\n walk_1(s, {\n year,\n month: seasons[hem][i][1],\n date: seasons[hem][i][2],\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0\n });\n return s\n }\n }\n return s\n },\n year: s => {\n walk_1(s, {\n month: 0,\n date: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0\n });\n return s\n },\n decade: s => {\n s = s.startOf('year');\n let year = s.year();\n let decade = parseInt(year / 10, 10) * 10;\n s = s.year(decade);\n return s\n },\n century: s => {\n s = s.startOf('year');\n let year = s.year();\n // near 0AD goes '-1 | +1'\n let decade = parseInt(year / 100, 10) * 100;\n s = s.year(decade);\n return s\n }\n};\nunits$2.date = units$2.day;\n\nconst startOf = (a, unit) => {\n let s = a.clone();\n unit = fns.normalize(unit);\n if (units$2[unit]) {\n return units$2[unit](s)\n }\n if (unit === 'summer' || unit === 'winter') {\n s = s.season(unit);\n return units$2.season(s)\n }\n return s\n};\n\n//piggy-backs off startOf\nconst endOf = (a, unit) => {\n let s = a.clone();\n unit = fns.normalize(unit);\n if (units$2[unit]) {\n s = units$2[unit](s);\n s = s.add(1, unit);\n s = s.subtract(1, 'milliseconds');\n return s\n }\n return s\n};\nvar startOf_1 = {\n startOf,\n endOf\n};\n\n//is it 'wednesday'?\nconst isDay = function(unit) {\n if (days.short().find(s => s === unit)) {\n return true\n }\n if (days.long().find(s => s === unit)) {\n return true\n }\n return false\n};\n\n// return a list of the weeks/months/days between a -> b\n// returns spacetime objects in the timezone of the input\nconst every = function(start, unit = '', end) {\n if (!unit || !end) {\n return []\n }\n //cleanup unit param\n unit = fns.normalize(unit);\n //cleanup to param\n end = start.clone().set(end);\n //swap them, if they're backwards\n if (start.isAfter(end)) {\n let tmp = start;\n start = end;\n end = tmp;\n }\n\n //support 'every wednesday'\n let d = start.clone();\n if (isDay(unit)) {\n d = d.next(unit);\n unit = 'week';\n } else {\n d = d.next(unit);\n }\n //okay, actually start doing it\n let result = [];\n while (d.isBefore(end)) {\n result.push(d);\n d = d.add(1, unit);\n }\n return result\n};\nvar every_1 = every;\n\nconst parseDst = dst => {\n if (!dst) {\n return []\n }\n return dst.split('->')\n};\n\nconst titleCase = str => {\n str = str[0].toUpperCase() + str.substr(1);\n str = str.replace(/\\/gmt/, '/GMT');\n str = str.replace(/[\\/_]([a-z])/gi, s => {\n return s.toUpperCase()\n });\n return str\n};\n\n//get metadata about this timezone\nconst timezone = s => {\n let zones = s.timezones;\n let tz = s.tz;\n if (zones.hasOwnProperty(tz) === false) {\n tz = find(s.tz, zones);\n }\n if (tz === null) {\n if (s.silent === false) {\n console.warn(\"Warn: could not find given or local timezone - '\" + s.tz + \"'\");\n }\n return {\n current: {\n epochShift: 0\n }\n }\n }\n let found = zones[tz];\n let result = {\n name: titleCase(tz),\n hasDst: Boolean(found.dst),\n default_offset: found.offset,\n //do north-hemisphere version as default (sorry!)\n hemisphere: found.hem === 's' ? 'South' : 'North',\n current: {}\n };\n\n if (result.hasDst) {\n let arr = parseDst(found.dst);\n result.change = {\n start: arr[0],\n back: arr[1]\n };\n }\n //find the offsets for summer/winter times\n //(these variable names are north-centric)\n let summer = found.offset; // (july)\n let winter = summer; // (january) assume it's the same for now\n if (result.hasDst === true) {\n if (result.hemisphere === 'North') {\n winter = summer - 1;\n } else {\n //southern hemisphere\n winter = found.offset + 1;\n }\n }\n\n //find out which offset to use right now\n //use 'summer' time july-time\n if (result.hasDst === false) {\n result.current.offset = summer;\n result.current.isDST = false;\n } else if (summerTime(s.epoch, result.change.start, result.change.back, summer) === true) {\n result.current.offset = summer;\n result.current.isDST = result.hemisphere === 'North'; //dst 'on' in winter in north\n } else {\n //use 'winter' january-time\n result.current.offset = winter;\n result.current.isDST = result.hemisphere === 'South'; //dst 'on' in summer in south\n }\n return result\n};\nvar timezone_1 = timezone;\n\nconst units$3 = [\n 'century',\n 'decade',\n 'year',\n 'month',\n 'date',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond'\n];\n\n//the spacetime instance methods (also, the API)\nconst methods = {\n set: function(input$1, tz) {\n let s = this.clone();\n s = input(s, input$1);\n if (tz) {\n this.tz = find(tz);\n }\n return s\n },\n timezone: function() {\n return timezone_1(this)\n },\n isDST: function() {\n return timezone_1(this).current.isDST\n },\n hasDST: function() {\n return timezone_1(this).hasDst\n },\n offset: function() {\n return timezone_1(this).current.offset * 60\n },\n hemisphere: function() {\n return timezone_1(this).hemisphere\n },\n format: function(fmt) {\n return format_1(this, fmt)\n },\n unixFmt: function(fmt) {\n return unixFmt_1(this, fmt)\n },\n startOf: function(unit) {\n return startOf_1.startOf(this, unit)\n },\n endOf: function(unit) {\n return startOf_1.endOf(this, unit)\n },\n leapYear: function() {\n let year = this.year();\n return fns.isLeapYear(year)\n },\n progress: function(unit) {\n return progress_1(this, unit)\n },\n nearest: function(unit) {\n return nearest_1(this, unit)\n },\n diff: function(d, unit) {\n return diff$1(this, d, unit)\n },\n since: function(d) {\n if (!d) {\n d = this.clone().set();\n }\n return since_1(this, d)\n },\n next: function(unit) {\n let s = this.add(1, unit);\n return s.startOf(unit)\n },\n //the start of the previous year/week/century\n last: function(unit) {\n let s = this.subtract(1, unit);\n return s.startOf(unit)\n },\n isValid: function() {\n //null/undefined epochs\n if (!this.epoch && this.epoch !== 0) {\n return false\n }\n return !isNaN(this.d.getTime())\n },\n //travel to this timezone\n goto: function(tz) {\n let s = this.clone();\n s.tz = find(tz, s.timezones); //science!\n return s\n },\n //get each week/month/day between a -> b\n every: function(unit, to) {\n return every_1(this, unit, to)\n },\n isAwake: function() {\n let hour = this.hour();\n //10pm -> 8am\n if (hour < 8 || hour > 22) {\n return false\n }\n return true\n },\n isAsleep: function() {\n return !this.isAwake()\n },\n //pretty-printing\n log: function() {\n console.log('');\n console.log(format_1(this, 'nice-short'));\n return this\n },\n logYear: function() {\n console.log('');\n console.log(format_1(this, 'full-short'));\n return this\n },\n json: function() {\n return units$3.reduce((h, unit) => {\n h[unit] = this[unit]();\n return h\n }, {})\n },\n debug: function() {\n let tz = this.timezone();\n let date = this.format('MM') + ' ' + this.format('date-ordinal') + ' ' + this.year();\n date += '\\n - ' + this.format('time');\n console.log('\\n\\n', date + '\\n - ' + tz.name + ' (' + tz.current.offset + ')');\n return this\n },\n //alias of 'since' but opposite - like moment.js\n from: function(d) {\n d = this.clone().set(d);\n return d.since(this)\n },\n fromNow: function() {\n let d = this.clone().set(Date.now());\n return d.since(this)\n },\n weekStart: function(input) {\n //accept a number directly\n if (typeof input === 'number') {\n this._weekStart = input;\n return this\n }\n if (typeof input === 'string') {\n // accept 'wednesday'\n input = input.toLowerCase().trim();\n let num = days.short().indexOf(input);\n if (num === -1) {\n num = days.long().indexOf(input);\n }\n if (num === -1) {\n num = 1; //go back to default\n }\n this._weekStart = num;\n } else {\n console.warn('Spacetime Error: Cannot understand .weekStart() input:', input);\n }\n return this\n }\n};\n// aliases\nmethods.inDST = methods.isDST;\nmethods.round = methods.nearest;\nmethods.each = methods.every;\nvar methods_1 = methods;\n\n// javascript setX methods like setDate() can't be used because of the local bias\n//these methods wrap around them.\n\n\n\n\n\nconst validate = n => {\n //handle number as a string\n if (typeof n === 'string') {\n n = parseInt(n, 10);\n }\n return n\n};\n\nconst order = ['year', 'month', 'date', 'hour', 'minute', 'second', 'millisecond'];\n\n//reduce hostile micro-changes when moving dates by millisecond\nconst confirm = (s, tmp, unit) => {\n let n = order.indexOf(unit);\n let arr = order.slice(n, order.length);\n for (let i = 0; i < arr.length; i++) {\n let want = tmp[arr[i]]();\n s[arr[i]](want);\n }\n return s\n};\n\nvar set = {\n milliseconds: (s, n) => {\n n = validate(n);\n let current = s.millisecond();\n let diff = current - n; //milliseconds to shift by\n return s.epoch - diff\n },\n\n seconds: (s, n) => {\n n = validate(n);\n let diff = s.second() - n;\n let shift = diff * milliseconds.second;\n return s.epoch - shift\n },\n\n minutes: (s, n) => {\n n = validate(n);\n let old = s.clone();\n let diff = s.minute() - n;\n let shift = diff * milliseconds.minute;\n s.epoch -= shift;\n confirm(s, old, 'second');\n return s.epoch\n },\n\n hours: (s, n) => {\n n = validate(n);\n if (n >= 24) {\n n = 24;\n } else if (n < 0) {\n n = 0;\n }\n let old = s.clone();\n let diff = s.hour() - n;\n let shift = diff * milliseconds.hour;\n s.epoch -= shift;\n walk_1(s, {\n hour: n\n });\n confirm(s, old, 'minute');\n return s.epoch\n },\n\n //support setting time by '4:25pm' - this isn't very-well developed..\n time: (s, str) => {\n let m = str.match(/([0-9]{1,2}):([0-9]{1,2})(am|pm)?/);\n if (!m) {\n //fallback to support just '2am'\n m = str.match(/([0-9]{1,2})(am|pm)/);\n if (!m) {\n return s.epoch\n }\n m.splice(2, 0, '0'); //add implicit 0 minutes\n }\n let h24 = false;\n let hour = parseInt(m[1], 10);\n let minute = parseInt(m[2], 10);\n if (hour > 12) {\n h24 = true;\n }\n //make the hour into proper 24h time\n if (h24 === false) {\n if (m[3] === 'am' && hour === 12) {\n //12am is midnight\n hour = 0;\n }\n if (m[3] === 'pm' && hour < 12) {\n //12pm is noon\n hour += 12;\n }\n }\n s = s.hour(hour);\n s = s.minute(minute);\n s = s.second(0);\n s = s.millisecond(0);\n return s.epoch\n },\n\n date: (s, n) => {\n n = validate(n);\n //avoid setting february 31st\n if (n > 28) {\n const max = monthLengths_1[s.month()];\n if (n > max) {\n n = max;\n }\n }\n //avoid setting < 0\n if (n <= 0) {\n n = 1;\n }\n walk_1(s, {\n date: n\n });\n return s.epoch\n },\n\n //this one's tricky\n month: (s, n) => {\n if (typeof n === 'string') {\n n = months.mapping()[n.toLowerCase()];\n }\n n = validate(n);\n //don't go past december\n if (n >= 12) {\n n = 11;\n }\n if (n <= 0) {\n n = 0;\n }\n\n let date = s.date();\n //there's no 30th of february, etc.\n if (date > monthLengths_1[n]) {\n //make it as close as we can..\n date = monthLengths_1[n];\n }\n walk_1(s, {\n month: n,\n date\n });\n return s.epoch\n },\n\n year: (s, n) => {\n n = validate(n);\n walk_1(s, {\n year: n\n });\n return s.epoch\n },\n\n dayOfYear: (s, n) => {\n n = validate(n);\n let old = s.clone();\n n -= 1; //days are 1-based\n if (n <= 0) {\n n = 0;\n } else if (n >= 365) {\n n = 364;\n }\n s = s.startOf('year');\n s = s.add(n, 'day');\n confirm(s, old, 'hour');\n return s.epoch\n }\n};\n\nconst methods$1 = {\n millisecond: function(num) {\n if (num !== undefined) {\n let s = this.clone();\n s.epoch = set.milliseconds(s, num);\n return s\n }\n return this.d.getMilliseconds()\n },\n second: function(num) {\n if (num !== undefined) {\n let s = this.clone();\n s.epoch = set.seconds(s, num);\n return s\n }\n return this.d.getSeconds()\n },\n minute: function(num) {\n if (num !== undefined) {\n let s = this.clone();\n s.epoch = set.minutes(s, num);\n return s\n }\n return this.d.getMinutes()\n },\n hour: function(num) {\n let d = this.d;\n if (num !== undefined) {\n let s = this.clone();\n s.epoch = set.hours(s, num);\n return s\n }\n return d.getHours()\n },\n\n //'3:30' is 3.5\n hourFloat: function(num) {\n if (num !== undefined) {\n let s = this.clone();\n let minute = num % 1;\n minute = minute * 60;\n let hour = parseInt(num, 10);\n s.epoch = set.hours(s, hour);\n s.epoch = set.minutes(s, minute);\n return s\n }\n let d = this.d;\n let hour = d.getHours();\n let minute = d.getMinutes();\n minute = minute / 60;\n return hour + minute\n },\n\n // hour in 12h format\n hour12: function(str) {\n let d = this.d;\n if (str !== undefined) {\n let s = this.clone();\n str = '' + str;\n let m = str.match(/^([0-9]+)(am|pm)$/);\n if (m) {\n let hour = parseInt(m[1], 10);\n if (m[2] === 'pm') {\n hour += 12;\n }\n s.epoch = set.hours(s, hour);\n }\n return s\n }\n //get the hour\n let hour12 = d.getHours();\n if (hour12 > 12) {\n hour12 = hour12 - 12;\n }\n if (hour12 === 0) {\n hour12 = 12;\n }\n return hour12\n },\n\n //some ambiguity here with 12/24h\n time: function(str) {\n if (str !== undefined) {\n let s = this.clone();\n s.epoch = set.time(s, str);\n return s\n }\n return `${this.h12()}:${fns.zeroPad(this.minute())}${this.ampm()}`\n },\n\n // either 'am' or 'pm'\n ampm: function(input) {\n let which = 'am';\n let hour = this.hour();\n if (hour >= 12) {\n which = 'pm';\n }\n if (typeof input !== 'string') {\n return which\n }\n //okay, we're doing a setter\n let s = this.clone();\n input = input.toLowerCase().trim();\n //ampm should never change the day\n // - so use `.hour(n)` instead of `.minus(12,'hour')`\n if (hour >= 12 && input === 'am') {\n //noon is 12pm\n hour -= 12;\n return s.hour(hour)\n }\n if (hour < 12 && input === 'pm') {\n hour += 12;\n return s.hour(hour)\n }\n return s\n },\n\n //some hard-coded times of day, like 'noon'\n dayTime: function(str) {\n if (str !== undefined) {\n const times = {\n morning: '7:00am',\n breakfast: '7:00am',\n noon: '12:00am',\n lunch: '12:00pm',\n afternoon: '2:00pm',\n evening: '6:00pm',\n dinner: '6:00pm',\n night: '11:00pm',\n midnight: '23:59pm'\n };\n let s = this.clone();\n str = str || '';\n str = str.toLowerCase();\n if (times.hasOwnProperty(str) === true) {\n s = s.time(times[str]);\n }\n return s\n }\n let h = this.hour();\n if (h < 6) {\n return 'night'\n }\n if (h < 12) {\n //until noon\n return 'morning'\n }\n if (h < 17) {\n //until 5pm\n return 'afternoon'\n }\n if (h < 22) {\n //until 10pm\n return 'evening'\n }\n return 'night'\n },\n\n //parse a proper iso string\n iso: function(num) {\n if (num !== undefined) {\n return this.set(num)\n }\n return this.format('iso')\n }\n};\nvar _01Time = methods$1;\n\nconst methods$2 = {\n // # day in the month\n date: function(num) {\n if (num !== undefined) {\n let s = this.clone();\n s.epoch = set.date(s, num);\n return s\n }\n return this.d.getDate()\n },\n\n //like 'wednesday' (hard!)\n day: function(input) {\n if (input === undefined) {\n return this.d.getDay()\n }\n let original = this.clone();\n let want = input;\n // accept 'wednesday'\n if (typeof input === 'string') {\n input = input.toLowerCase();\n want = days.short().indexOf(input);\n if (want === -1) {\n want = days.long().indexOf(input);\n }\n }\n //move approx\n let day = this.d.getDay();\n let diff = day - want;\n let s = this.subtract(diff * 24, 'hours');\n //tighten it back up\n walk_1(s, {\n hour: original.hour(),\n minute: original.minute(),\n second: original.second()\n });\n return s\n },\n\n //these are helpful name-wrappers\n dayName: function(input) {\n if (input === undefined) {\n return days.long()[this.day()]\n }\n let s = this.clone();\n s = s.day(input);\n return s\n },\n\n //either name or number\n month: function(input) {\n if (input !== undefined) {\n let s = this.clone();\n s.epoch = set.month(s, input);\n return s\n }\n return this.d.getMonth()\n }\n};\nvar _02Date = methods$2;\n\nconst clearMinutes = s => {\n s = s.minute(0);\n s = s.second(0);\n s = s.millisecond(1);\n return s\n};\n\nconst methods$3 = {\n // day 0-366\n dayOfYear: function(num) {\n if (num !== undefined) {\n let s = this.clone();\n s.epoch = set.dayOfYear(s, num);\n return s\n }\n //days since newyears - jan 1st is 1, jan 2nd is 2...\n let sum = 0;\n let month = this.d.getMonth();\n let tmp;\n //count the num days in each month\n for (let i = 1; i <= month; i++) {\n tmp = new Date();\n tmp.setDate(1);\n tmp.setFullYear(this.d.getFullYear()); //the year matters, because leap-years\n tmp.setHours(1);\n tmp.setMinutes(1);\n tmp.setMonth(i);\n tmp.setHours(-2); //the last day of the month\n sum += tmp.getDate();\n }\n return sum + this.d.getDate()\n },\n\n //since the start of the year\n week: function(num) {\n // week-setter\n if (num !== undefined) {\n let s = this.clone();\n s = s.month(0);\n s = s.date(1);\n s = s.day('monday');\n s = clearMinutes(s);\n //don't go into last-year\n if (s.monthName() === 'december') {\n s = s.add(1, 'week');\n }\n num -= 1; //1-based\n s = s.add(num, 'weeks');\n return s\n }\n //find-out which week it is\n let tmp = this.clone();\n tmp = tmp.month(0);\n tmp = tmp.date(1);\n tmp = clearMinutes(tmp);\n tmp = tmp.day('monday');\n //don't go into last-year\n if (tmp.monthName() === 'december') {\n tmp = tmp.add(1, 'week');\n }\n // is first monday the 1st?\n let toAdd = 1;\n if (tmp.date() === 1) {\n toAdd = 0;\n }\n tmp = tmp.minus(1, 'second');\n const thisOne = this.epoch;\n //if the week technically hasn't started yet\n if (tmp.epoch > thisOne) {\n return 1\n }\n //speed it up, if we can\n let i = 0;\n let skipWeeks = this.month() * 4;\n tmp.epoch += milliseconds.week * skipWeeks;\n i += skipWeeks;\n for (; i < 52; i++) {\n if (tmp.epoch > thisOne) {\n return i + toAdd\n }\n tmp = tmp.add(1, 'week');\n }\n return 52\n },\n\n //'january'\n monthName: function(input) {\n if (input === undefined) {\n return months.long()[this.month()]\n }\n let s = this.clone();\n s = s.month(input);\n return s\n },\n\n //q1, q2, q3, q4\n quarter: function(num) {\n if (num !== undefined) {\n if (typeof num === 'string') {\n num = num.replace(/^q/i, '');\n num = parseInt(num, 10);\n }\n if (quarters[num]) {\n let s = this.clone();\n let month = quarters[num][0];\n s = s.month(month);\n s = s.date(1);\n s = s.startOf('day');\n return s\n }\n }\n let month = this.d.getMonth();\n for (let i = 1; i < quarters.length; i++) {\n if (month < quarters[i][0]) {\n return i - 1\n }\n }\n return 4\n },\n\n //spring, summer, winter, fall\n season: function(input) {\n let hem = 'north';\n if (this.hemisphere() === 'South') {\n hem = 'south';\n }\n if (input !== undefined) {\n let s = this.clone();\n for (let i = 0; i < seasons[hem].length; i++) {\n if (input === seasons[hem][i][0]) {\n s = s.month(seasons[hem][i][1]);\n s = s.date(1);\n s = s.startOf('day');\n }\n }\n return s\n }\n let month = this.d.getMonth();\n for (let i = 0; i < seasons[hem].length - 1; i++) {\n if (month >= seasons[hem][i][1] && month < seasons[hem][i + 1][1]) {\n return seasons[hem][i][0]\n }\n }\n return 'winter'\n },\n\n //the year number\n year: function(num) {\n if (num !== undefined) {\n let s = this.clone();\n s.epoch = set.year(s, num);\n return s\n }\n return this.d.getFullYear()\n },\n\n //bc/ad years\n era: function(str) {\n if (str !== undefined) {\n let s = this.clone();\n str = str.toLowerCase();\n //TODO: there is no year-0AD i think. may have off-by-1 error here\n let year = s.d.getFullYear();\n //make '1992' into 1992bc..\n if (str === 'bc' && year > 0) {\n s.epoch = set.year(s, year * -1);\n }\n //make '1992bc' into '1992'\n if (str === 'ad' && year < 0) {\n s.epoch = set.year(s, year * -1);\n }\n return s\n }\n if (this.d.getFullYear() < 0) {\n return 'BC'\n }\n return 'AD'\n },\n\n // 2019 -> 2010\n decade: function(input) {\n if (input !== undefined) {\n input = String(input);\n input = input.replace(/([0-9])'?s$/, '$1'); //1950's\n input = input.replace(/([0-9])(th|rd|st|nd)/, '$1'); //fix ordinals\n if (!input) {\n console.warn('Spacetime: Invalid decade input');\n return this\n }\n // assume 20th century?? for '70s'.\n if (input.length === 2 && /[0-9][0-9]/.test(input)) {\n input = '19' + input;\n }\n let year = Number(input);\n if (isNaN(year)) {\n return this\n }\n // round it down to the decade\n year = Math.floor(year / 10) * 10;\n return this.year(year) //.startOf('decade')\n }\n return this.startOf('decade').year()\n },\n // 1950 -> 19+1\n century: function(input) {\n if (input !== undefined) {\n if (typeof input === 'string') {\n input = input.replace(/([0-9])(th|rd|st|nd)/, '$1'); //fix ordinals\n input = input.replace(/([0-9]+) ?(b\\.?c\\.?|a\\.?d\\.?)/i, (a, b, c) => {\n if (c.match(/b\\.?c\\.?/i)) {\n b = '-' + b;\n }\n return b\n });\n input = input.replace(/c$/, ''); //20thC\n }\n let year = Number(input);\n if (isNaN(input)) {\n console.warn('Spacetime: Invalid century input');\n return this\n }\n // there is no century 0\n if (year === 0) {\n year = 1;\n }\n if (year >= 0) {\n year = (year - 1) * 100;\n } else {\n year = (year + 1) * 100;\n }\n return this.year(year)\n }\n // century getter\n let num = this.startOf('century').year();\n num = Math.floor(num / 100);\n if (num < 0) {\n return num - 1\n }\n return num + 1\n },\n // 2019 -> 2+1\n millenium: function(input) {\n if (input !== undefined) {\n if (typeof input === 'string') {\n input = input.replace(/([0-9])(th|rd|st|nd)/, '$1'); //fix ordinals\n input = Number(input);\n if (isNaN(input)) {\n console.warn('Spacetime: Invalid millenium input');\n return this\n }\n }\n if (input > 0) {\n input -= 1;\n }\n let year = input * 1000;\n // there is no year 0\n if (year === 0) {\n year = 1;\n }\n return this.year(year)\n }\n // get the current millenium\n let num = Math.floor(this.year() / 1000);\n if (num >= 0) {\n num += 1;\n }\n return num\n }\n};\nvar _03Year = methods$3;\n\nconst methods$4 = Object.assign({}, _01Time, _02Date, _03Year);\n\n//aliases\nmethods$4.milliseconds = methods$4.millisecond;\nmethods$4.seconds = methods$4.second;\nmethods$4.minutes = methods$4.minute;\nmethods$4.hours = methods$4.hour;\nmethods$4.hour24 = methods$4.hour;\nmethods$4.h12 = methods$4.hour12;\nmethods$4.h24 = methods$4.hour24;\nmethods$4.days = methods$4.day;\n\nconst addMethods = Space => {\n //hook the methods into prototype\n Object.keys(methods$4).forEach(k => {\n Space.prototype[k] = methods$4[k];\n });\n};\n\nvar query = addMethods;\n\nconst order$1 = ['millisecond', 'second', 'minute', 'hour', 'date', 'month'];\nlet keep = {\n second: order$1.slice(0, 1),\n minute: order$1.slice(0, 2),\n quarterhour: order$1.slice(0, 2),\n hour: order$1.slice(0, 3),\n date: order$1.slice(0, 4),\n month: order$1.slice(0, 4),\n quarter: order$1.slice(0, 4),\n season: order$1.slice(0, 4),\n year: order$1,\n decade: order$1,\n century: order$1\n};\nkeep.week = keep.hour;\nkeep.season = keep.date;\nkeep.quarter = keep.date;\n\n// Units need to be dst adjuested\nconst dstAwareUnits = {\n year: true,\n quarter: true,\n season: true,\n month: true,\n week: true,\n day: true\n};\n\nconst keepDate = {\n month: true,\n quarter: true,\n season: true,\n year: true\n};\n//month is the only thing we 'model/compute'\n//- because ms-shifting can be off by enough\nconst rollMonth = (want, old) => {\n //increment year\n if (want.month > 0) {\n let years = parseInt(want.month / 12, 10);\n want.year = old.year() + years;\n want.month = want.month % 12;\n } else if (want.month < 0) {\n //decrement year\n let years = Math.floor(Math.abs(want.month) / 13, 10);\n years = Math.abs(years) + 1;\n want.year = old.year() - years;\n //ignore extras\n want.month = want.month % 12;\n want.month = want.month + 12;\n if (want.month === 12) {\n want.month = 0;\n }\n }\n return want\n};\n\nconst addMethods$1 = SpaceTime => {\n SpaceTime.prototype.add = function(num, unit) {\n let s = this.clone();\n if (!unit || num === 0) {\n return s //don't bother\n }\n let old = this.clone();\n unit = fns.normalize(unit);\n //move forward by the estimated milliseconds (rough)\n if (milliseconds[unit]) {\n s.epoch += milliseconds[unit] * num;\n } else if (unit === 'week') {\n s.epoch += milliseconds.day * (num * 7);\n } else if (unit === 'quarter' || unit === 'season') {\n s.epoch += milliseconds.month * (num * 4);\n } else if (unit === 'season') {\n s.epoch += milliseconds.month * (num * 4);\n } else if (unit === 'quarterhour') {\n s.epoch += milliseconds.minute * 15 * num;\n }\n //now ensure our milliseconds/etc are in-line\n let want = {};\n if (keep[unit]) {\n keep[unit].forEach(u => {\n want[u] = old[u]();\n });\n }\n\n if (dstAwareUnits[unit]) {\n const diff = old.timezone().current.offset - s.timezone().current.offset;\n s.epoch += diff * 3600 * 1000;\n }\n\n //ensure month/year has ticked-over\n if (unit === 'month') {\n want.month = old.month() + num;\n //month is the one unit we 'model' directly\n want = rollMonth(want, old);\n }\n //support coercing a week, too\n if (unit === 'week') {\n let sum = old.date() + num * 7;\n if (sum <= 28 && sum > 1) {\n want.date = sum;\n }\n }\n //support 25-hour day-changes on dst-changes\n else if (unit === 'date') {\n //specify a naive date number, if it's easy to do...\n let sum = old.date() + num;\n if (sum <= 28 && sum > 1) {\n want.date = sum;\n }\n //or if we haven't moved at all..\n else if (num !== 0 && old.isSame(s, 'day')) {\n want.date = old.date() + num;\n }\n }\n //ensure year has changed (leap-years)\n else if (unit === 'year' && s.year() === old.year()) {\n s.epoch += milliseconds.week;\n }\n //these are easier\n else if (unit === 'decade') {\n want.year = s.year() + 10;\n } else if (unit === 'century') {\n want.year = s.year() + 100;\n }\n //keep current date, unless the month doesn't have it.\n if (keepDate[unit]) {\n let max = monthLengths_1[want.month];\n want.date = old.date();\n if (want.date > max) {\n want.date = max;\n }\n }\n walk_1(s, want);\n return s\n };\n\n //subtract is only add *-1\n SpaceTime.prototype.subtract = function(num, unit) {\n let s = this.clone();\n return s.add(num * -1, unit)\n };\n //add aliases\n SpaceTime.prototype.minus = SpaceTime.prototype.subtract;\n SpaceTime.prototype.plus = SpaceTime.prototype.add;\n};\n\nvar add = addMethods$1;\n\n//make a string, for easy comparison between dates\nconst print = {\n millisecond: s => {\n return s.epoch\n },\n second: s => {\n return [s.year(), s.month(), s.date(), s.hour(), s.minute(), s.second()].join('-')\n },\n minute: s => {\n return [s.year(), s.month(), s.date(), s.hour(), s.minute()].join('-')\n },\n hour: s => {\n return [s.year(), s.month(), s.date(), s.hour()].join('-')\n },\n day: s => {\n return [s.year(), s.month(), s.date()].join('-')\n },\n week: s => {\n return [s.year(), s.week()].join('-')\n },\n month: s => {\n return [s.year(), s.month()].join('-')\n },\n quarter: s => {\n return [s.year(), s.quarter()].join('-')\n },\n year: s => {\n return s.year()\n }\n};\nprint.date = print.day;\n\nconst addMethods$2 = SpaceTime => {\n SpaceTime.prototype.isSame = function(b, unit) {\n let a = this;\n if (!unit) {\n return null\n }\n if (typeof b === 'string' || typeof b === 'number') {\n b = new SpaceTime(b, this.timezone.name);\n }\n //support 'seconds' aswell as 'second'\n unit = unit.replace(/s$/, '');\n\n if (print[unit]) {\n return print[unit](a) === print[unit](b)\n }\n return null\n };\n};\n\nvar same = addMethods$2;\n\nconst addMethods$3 = SpaceTime => {\n const methods = {\n isAfter: function(d) {\n d = fns.beADate(d, this);\n let epoch = fns.getEpoch(d);\n if (epoch === null) {\n return null\n }\n return this.epoch > epoch\n },\n isBefore: function(d) {\n d = fns.beADate(d, this);\n let epoch = fns.getEpoch(d);\n if (epoch === null) {\n return null\n }\n return this.epoch < epoch\n },\n isEqual: function(d) {\n d = fns.beADate(d, this);\n let epoch = fns.getEpoch(d);\n if (epoch === null) {\n return null\n }\n return this.epoch === epoch\n },\n isBetween: function(start, end) {\n start = fns.beADate(start, this);\n end = fns.beADate(end, this);\n let startEpoch = fns.getEpoch(start);\n if (startEpoch === null) {\n return null\n }\n let endEpoch = fns.getEpoch(end);\n if (endEpoch === null) {\n return null\n }\n return startEpoch < this.epoch && this.epoch < endEpoch\n }\n };\n\n //hook them into proto\n Object.keys(methods).forEach(k => {\n SpaceTime.prototype[k] = methods[k];\n });\n};\n\nvar compare = addMethods$3;\n\nconst addMethods$4 = SpaceTime => {\n const methods = {\n i18n: data => {\n //change the day names\n if (fns.isObject(data.days)) {\n days.set(data.days);\n }\n //change the month names\n if (fns.isObject(data.months)) {\n months.set(data.months);\n }\n }\n };\n\n //hook them into proto\n Object.keys(methods).forEach(k => {\n SpaceTime.prototype[k] = methods[k];\n });\n};\n\nvar i18n = addMethods$4;\n\nlet timezones = unpack;\n\n//fake timezone-support, for fakers (es5 class)\nconst SpaceTime = function(input$1, tz, options = {}) {\n //the holy moment\n this.epoch = null;\n //the shift for the given timezone\n this.tz = find(tz, timezones);\n //whether to output warnings to console\n this.silent = options.silent || true;\n // favour british interpretation of 02/02/2018, etc\n this.british = options.dmy || options.british;\n\n //does the week start on sunday, or monday:\n this._weekStart = 1; //default to monday\n if (options.weekStart !== undefined) {\n this._weekStart = options.weekStart;\n }\n //add getter/setters\n Object.defineProperty(this, 'd', {\n //return a js date object\n get: function() {\n let offset = quick(this);\n //every computer is somewhere- get this computer's built-in offset\n let bias = new Date(this.epoch).getTimezoneOffset() || 0;\n //movement\n let shift = bias + offset * 60; //in minutes\n shift = shift * 60 * 1000; //in ms\n //remove this computer's offset\n let epoch = this.epoch + shift;\n let d = new Date(epoch);\n return d\n }\n });\n //add this data on the object, to allow adding new timezones\n Object.defineProperty(this, 'timezones', {\n get: () => timezones,\n set: obj => {\n timezones = obj;\n return obj\n }\n });\n //parse the various formats\n if (input$1 !== undefined || input$1 === null) {\n let tmp = input(this, input$1, tz);\n this.epoch = tmp.epoch;\n }\n};\n\n//(add instance methods to prototype)\nObject.keys(methods_1).forEach(k => {\n SpaceTime.prototype[k] = methods_1[k];\n});\n\n// ¯\\_(ツ)_/¯\nSpaceTime.prototype.clone = function() {\n return new SpaceTime(this.epoch, this.tz, {\n silent: this.silent,\n weekStart: this._weekStart\n })\n};\n\n//append more methods\nquery(SpaceTime);\nadd(SpaceTime);\nsame(SpaceTime);\ncompare(SpaceTime);\ni18n(SpaceTime);\n\nvar spacetime = SpaceTime;\n\n// const timezones = require('../data');\n\nconst whereIts = (a, b) => {\n let start = new spacetime(null);\n let end = new spacetime(null);\n start = start.time(a);\n //if b is undefined, use as 'within one hour'\n if (b) {\n end = end.time(b);\n } else {\n end = start.add(59, 'minutes');\n }\n\n let startHour = start.hour();\n let endHour = end.hour();\n let tzs = Object.keys(start.timezones).filter(tz => {\n if (tz.indexOf('/') === -1) {\n return false\n }\n let m = new spacetime(null, tz);\n let hour = m.hour();\n //do 'calendar-compare' not real-time-compare\n if (hour >= startHour && hour <= endHour) {\n //test minutes too, if applicable\n if (hour === startHour && m.minute() < start.minute()) {\n return false\n }\n if (hour === endHour && m.minute() > end.minute()) {\n return false\n }\n return true\n }\n return false\n });\n return tzs\n};\nvar whereIts_1 = whereIts;\n\nvar _version = '6.3.0';\n\nconst main$1 = (input, tz, options) => new spacetime(input, tz, options);\n\n//some helper functions on the main method\nmain$1.now = (tz, options) => new spacetime(new Date().getTime(), tz, options);\nmain$1.today = (tz, options) => {\n let s = new spacetime(new Date().getTime(), tz, options);\n return s.startOf('day')\n};\nmain$1.tomorrow = (tz, options) => {\n let s = new spacetime(new Date().getTime(), tz, options);\n return s.add(1, 'day').startOf('day')\n};\nmain$1.yesterday = (tz, options) => {\n let s = new spacetime(new Date().getTime(), tz, options);\n return s.subtract(1, 'day').startOf('day')\n};\nmain$1.extend = function(obj) {\n Object.keys(obj).forEach(k => {\n spacetime.prototype[k] = obj[k];\n });\n return this\n};\n//find tz by time\nmain$1.whereIts = whereIts_1;\nmain$1.version = _version;\n\n//aliases:\nmain$1.plugin = main$1.extend;\nvar src = main$1;\n\nexport default src;\n","// some opinionated-but-common-sense timezone abbreviations\n// these timezone abbreviations are wholly made-up by me, Spencer Kelly, with no expertise in geography\n// generated humbly from https://github.com/spencermountain/spacetime-informal\nconst spacetime = require('spacetime')\n\nconst america = 'America/'\nconst asia = 'Asia/'\nconst europe = 'Europe/'\nconst africa = 'Africa/'\nconst aus = 'Australia/'\nconst pac = 'Pacific/'\n\nconst informal = {\n //europe\n 'british summer time': europe + 'London',\n bst: europe + 'London',\n 'british time': europe + 'London',\n 'britain time': europe + 'London',\n 'irish summer time': europe + 'Dublin',\n 'irish time': europe + 'Dublin',\n ireland: europe + 'Dublin',\n 'central european time': europe + 'Berlin',\n cet: europe + 'Berlin',\n 'central european summer time': europe + 'Berlin',\n cest: europe + 'Berlin',\n 'central europe': europe + 'Berlin',\n 'eastern european time': europe + 'Riga',\n eet: europe + 'Riga',\n 'eastern european summer time': europe + 'Riga',\n eest: europe + 'Riga',\n 'eastern europe time': europe + 'Riga',\n 'western european time': europe + 'Lisbon',\n // wet: europe+'Lisbon',\n 'western european summer time': europe + 'Lisbon',\n // west: europe+'Lisbon',\n 'western europe': europe + 'Lisbon',\n 'turkey standard time': europe + 'Istanbul',\n trt: europe + 'Istanbul',\n 'turkish time': europe + 'Istanbul',\n\n //africa\n etc: africa + 'Freetown',\n utc: africa + 'Freetown',\n 'greenwich standard time': africa + 'Freetown',\n gmt: africa + 'Freetown',\n 'east africa time': africa + 'Nairobi',\n // eat: africa+'Nairobi',\n 'east african time': africa + 'Nairobi',\n 'eastern africa time': africa + 'Nairobi',\n 'central africa time': africa + 'Khartoum',\n // cat: africa+'Khartoum',\n 'central african time': africa + 'Khartoum',\n 'south africa standard time': africa + 'Johannesburg',\n sast: africa + 'Johannesburg',\n 'southern africa': africa + 'Johannesburg',\n 'south african': africa + 'Johannesburg',\n 'west africa standard time': africa + 'Lagos',\n // wat: africa+'Lagos',\n 'western africa time': africa + 'Lagos',\n 'west african time': africa + 'Lagos',\n\n 'australian central standard time': aus + 'Adelaide',\n acst: aus + 'Adelaide',\n 'australian central daylight time': aus + 'Adelaide',\n acdt: aus + 'Adelaide',\n 'australia central': aus + 'Adelaide',\n 'australian eastern standard time': aus + 'Brisbane',\n aest: aus + 'Brisbane',\n 'australian eastern daylight time': aus + 'Brisbane',\n aedt: aus + 'Brisbane',\n 'australia east': aus + 'Brisbane',\n 'australian western standard time': aus + 'Perth',\n awst: aus + 'Perth',\n 'australian western daylight time': aus + 'Perth',\n awdt: aus + 'Perth',\n 'australia west': aus + 'Perth',\n 'australian central western standard time': aus + 'Eucla',\n acwst: aus + 'Eucla',\n 'australia central west': aus + 'Eucla',\n 'lord howe standard time': aus + 'Lord_Howe',\n lhst: aus + 'Lord_Howe',\n 'lord howe daylight time': aus + 'Lord_Howe',\n lhdt: aus + 'Lord_Howe',\n 'russian standard time': europe + 'Moscow',\n msk: europe + 'Moscow',\n russian: europe + 'Moscow',\n\n //america\n 'central standard time': america + 'Chicago',\n 'central time': america + 'Chicago',\n cst: america + 'Havana',\n 'central daylight time': america + 'Chicago',\n cdt: america + 'Havana',\n 'mountain standard time': america + 'Denver',\n 'mountain time': america + 'Denver',\n mst: america + 'Denver',\n 'mountain daylight time': america + 'Denver',\n mdt: america + 'Denver',\n 'atlantic standard time': america + 'Halifax',\n 'atlantic time': america + 'Halifax',\n ast: asia + 'Baghdad',\n 'atlantic daylight time': america + 'Halifax',\n adt: america + 'Halifax',\n 'eastern standard time': america + 'New_York',\n 'eastern time': america + 'New_York',\n est: america + 'New_York',\n 'eastern daylight time': america + 'New_York',\n edt: america + 'New_York',\n 'pacific time': america + 'Los_Angeles',\n 'pacific standard time': america + 'Los_Angeles',\n pst: america + 'Los_Angeles',\n 'pacific daylight time': america + 'Los_Angeles',\n pdt: america + 'Los_Angeles',\n 'alaskan standard time': america + 'Anchorage',\n 'alaskan time': america + 'Anchorage',\n ahst: america + 'Anchorage',\n 'alaskan daylight time': america + 'Anchorage',\n ahdt: america + 'Anchorage',\n 'hawaiian standard time': pac + 'Honolulu',\n 'hawaiian time': pac + 'Honolulu',\n hst: pac + 'Honolulu',\n 'aleutian time': pac + 'Honolulu',\n 'hawaii time': pac + 'Honolulu',\n 'newfoundland standard time': america + 'St_Johns',\n 'newfoundland time': america + 'St_Johns',\n nst: america + 'St_Johns',\n 'newfoundland daylight time': america + 'St_Johns',\n ndt: america + 'St_Johns',\n 'brazil time': america + 'Sao_Paulo',\n brt: america + 'Sao_Paulo',\n brasília: america + 'Sao_Paulo',\n brasilia: america + 'Sao_Paulo',\n 'brazilian time': america + 'Sao_Paulo',\n 'argentina time': america + 'Buenos_Aires',\n // art: a+'Buenos_Aires',\n 'argentinian time': america + 'Buenos_Aires',\n 'amazon time': america + 'Manaus',\n amt: america + 'Manaus',\n 'amazonian time': america + 'Manaus',\n 'easter island standard time': 'Chile/Easterisland',\n east: 'Chile/Easterisland',\n 'easter island summer time': 'Chile/Easterisland',\n easst: 'Chile/Easterisland',\n 'venezuelan standard time': america + 'Caracas',\n 'venezuelan time': america + 'Caracas',\n vet: america + 'Caracas',\n 'venezuela time': america + 'Caracas',\n 'paraguay time': america + 'Asuncion',\n pyt: america + 'Asuncion',\n 'paraguay summer time': america + 'Asuncion',\n pyst: america + 'Asuncion',\n 'cuba standard time': america + 'Havana',\n 'cuba time': america + 'Havana',\n 'cuba daylight time': america + 'Havana',\n 'cuban time': america + 'Havana',\n 'bolivia time': america + 'La_Paz',\n // bot: a+'La_Paz',\n 'bolivian time': america + 'La_Paz',\n 'colombia time': america + 'Bogota',\n cot: america + 'Bogota',\n 'colombian time': america + 'Bogota',\n 'acre time': america + 'Eirunepe',\n // act: a+'Eirunepe',\n 'peru time': america + 'Lima',\n // pet: a+'Lima',\n 'chile standard time': america + 'Punta_Arenas',\n 'chile time': america + 'Punta_Arenas',\n clst: america + 'Punta_Arenas',\n 'chile summer time': america + 'Punta_Arenas',\n cldt: america + 'Punta_Arenas',\n 'uruguay time': america + 'Montevideo',\n uyt: america + 'Montevideo',\n\n //asia\n ist: asia + 'Jerusalem',\n 'arabic standard time': asia + 'Baghdad',\n 'arabic time': asia + 'Baghdad',\n 'arab time': asia + 'Baghdad',\n 'iran standard time': asia + 'Tehran',\n 'iran time': asia + 'Tehran',\n irst: asia + 'Tehran',\n 'iran daylight time': asia + 'Tehran',\n irdt: asia + 'Tehran',\n iranian: asia + 'Tehran',\n 'pakistan standard time': asia + 'Karachi',\n 'pakistan time': asia + 'Karachi',\n pkt: asia + 'Karachi',\n 'india standard time': asia + 'Kolkata',\n 'indian time': asia + 'Kolkata',\n 'indochina time': asia + 'Bangkok',\n ict: asia + 'Bangkok',\n 'south east asia': asia + 'Bangkok',\n 'china standard time': asia + 'Shanghai',\n ct: asia + 'Shanghai',\n 'chinese time': asia + 'Shanghai',\n 'alma-ata time': asia + 'Almaty',\n almt: asia + 'Almaty',\n 'oral time': asia + 'Oral',\n 'orat time': asia + 'Oral',\n 'yakutsk time': asia + 'Yakutsk',\n yakt: asia + 'Yakutsk',\n 'gulf standard time': asia + 'Dubai',\n 'gulf time': asia + 'Dubai',\n gst: asia + 'Dubai',\n uae: asia + 'Dubai',\n 'hong kong time': asia + 'Hong_Kong',\n hkt: asia + 'Hong_Kong',\n 'western indonesian time': asia + 'Jakarta',\n wib: asia + 'Jakarta',\n 'indonesia time': asia + 'Jakarta',\n 'central indonesian time': asia + 'Makassar',\n wita: asia + 'Makassar',\n 'israel daylight time': asia + 'Jerusalem',\n idt: asia + 'Jerusalem',\n 'israel standard time': asia + 'Jerusalem',\n 'israel time': asia + 'Jerusalem',\n israeli: asia + 'Jerusalem',\n 'krasnoyarsk time': asia + 'Krasnoyarsk',\n krat: asia + 'Krasnoyarsk',\n 'malaysia time': asia + 'Kuala_Lumpur',\n myt: asia + 'Kuala_Lumpur',\n 'singapore time': asia + 'Singapore',\n sgt: asia + 'Singapore',\n 'korea standard time': asia + 'Seoul',\n 'korea time': asia + 'Seoul',\n kst: asia + 'Seoul',\n 'korean time': asia + 'Seoul',\n 'uzbekistan time': asia + 'Samarkand',\n uzt: asia + 'Samarkand',\n 'vladivostok time': asia + 'Vladivostok',\n vlat: asia + 'Vladivostok',\n\n //indian\n 'maldives time': 'Indian/Maldives',\n mvt: 'Indian/Maldives',\n 'mauritius time': 'Indian/Mauritius',\n mut: 'Indian/Mauritius',\n\n // pacific\n 'marshall islands time': pac + 'Kwajalein',\n mht: pac + 'Kwajalein',\n 'samoa standard time': pac + 'Midway',\n sst: pac + 'Midway',\n 'somoan time': pac + 'Midway',\n 'chamorro standard time': pac + 'Guam',\n chst: pac + 'Guam',\n 'papua new guinea time': pac + 'Bougainville',\n pgt: pac + 'Bougainville',\n}\n\n//add the official iana zonefile names\nlet iana = spacetime().timezones\nlet formal = Object.keys(iana).reduce((h, k) => {\n h[k] = k\n return h\n}, {})\nmodule.exports = Object.assign({}, informal, formal)\n","module.exports = [\n 'weekday',\n\n 'summer',\n 'winter',\n 'autumn',\n\n 'some day',\n 'one day',\n 'all day',\n 'some point',\n\n 'eod',\n 'eom',\n 'standard time',\n 'daylight time',\n]\n","module.exports = [\n 'centuries',\n 'century',\n 'day',\n 'days',\n 'decade',\n 'decades',\n 'hour',\n 'hours',\n 'millisecond',\n 'milliseconds',\n 'minute',\n 'minutes',\n 'month',\n 'months',\n 'seconds',\n 'week',\n 'weeks',\n 'year',\n 'years',\n]\n","module.exports = [\n 'all hallows eve',\n 'all saints day',\n 'all sts day',\n 'april fools',\n 'armistice day',\n 'australia day',\n 'bastille day',\n 'boxing day',\n 'canada day',\n 'christmas eve',\n 'christmas',\n 'cinco de mayo',\n 'day of the dead',\n 'dia de muertos',\n 'dieciseis de septiembre',\n 'emancipation day',\n 'grito de dolores',\n 'groundhog day',\n 'halloween',\n 'harvey milk day',\n 'inauguration day',\n 'independence day',\n 'independents day',\n 'juneteenth',\n 'labour day',\n 'national freedom day',\n 'national nurses day',\n 'new years eve',\n 'new years',\n 'purple heart day',\n 'rememberance day',\n 'rosa parks day',\n 'saint andrews day',\n 'saint patricks day',\n 'saint stephens day',\n 'saint valentines day',\n 'st andrews day',\n 'st patricks day',\n 'st stephens day',\n 'st valentines day ',\n 'valentines day',\n 'valentines',\n 'veterans day',\n 'victoria day',\n 'womens equality day',\n 'xmas',\n // Fixed religious and cultural holidays\n // Catholic + Christian\n 'epiphany',\n 'orthodox christmas day',\n 'orthodox new year',\n 'assumption of mary',\n 'all souls day',\n 'feast of the immaculate conception',\n 'feast of our lady of guadalupe',\n\n // Kwanzaa\n 'kwanzaa',\n // Pagan / metal 🤘\n 'imbolc',\n 'beltaine',\n 'lughnassadh',\n 'samhain',\n 'martin luther king day',\n 'mlk day',\n 'presidents day',\n 'mardi gras',\n 'tax day',\n 'commonwealth day',\n 'mothers day',\n 'memorial day',\n 'fathers day',\n 'columbus day',\n 'indigenous peoples day',\n 'canadian thanksgiving',\n 'election day',\n 'thanksgiving',\n 't-day',\n 'turkey day',\n 'black friday',\n 'cyber monday',\n // Astronomical religious and cultural holidays\n 'ash wednesday',\n 'palm sunday',\n 'maundy thursday',\n 'good friday',\n 'holy saturday',\n 'easter',\n 'easter sunday',\n 'easter monday',\n 'orthodox good friday',\n 'orthodox holy saturday',\n 'orthodox easter',\n 'orthodox easter monday',\n 'ascension day',\n 'pentecost',\n 'whitsunday',\n 'whit sunday',\n 'whit monday',\n 'trinity sunday',\n 'corpus christi',\n 'advent',\n // Jewish\n 'tu bishvat',\n 'tu bshevat',\n 'purim',\n 'passover',\n 'yom hashoah',\n 'lag baomer',\n 'shavuot',\n 'tisha bav',\n 'rosh hashana',\n 'yom kippur',\n 'sukkot',\n 'shmini atzeret',\n 'simchat torah',\n 'chanukah',\n 'hanukkah',\n // Muslim\n 'isra and miraj',\n 'lailat al-qadr',\n 'eid al-fitr',\n 'id al-Fitr',\n 'eid ul-Fitr',\n 'ramadan',\n 'eid al-adha',\n 'muharram',\n 'the prophets birthday',\n 'ostara',\n 'march equinox',\n 'vernal equinox',\n 'litha',\n 'june solistice',\n 'summer solistice',\n 'mabon',\n 'september equinox',\n 'fall equinox',\n 'autumnal equinox',\n 'yule',\n 'december solstice',\n 'winter solstice',\n // Additional important holidays\n 'chinese new year',\n 'diwali',\n]\n","module.exports = [\n 'noon',\n 'midnight',\n 'now',\n 'morning',\n 'tonight',\n 'evening',\n 'afternoon',\n 'night',\n 'breakfast time',\n 'lunchtime',\n 'dinnertime',\n 'ago',\n 'sometime',\n 'eod',\n 'oclock',\n 'oclock',\n 'all day',\n 'at night',\n]\n","let lex = {}\nconst timezones = require('../_timezones')\n\nconst data = [\n [require('./dates'), '#Date'],\n [require('./durations'), '#Duration'],\n [require('./holidays'), '#Holiday'],\n [require('./times'), '#Time'],\n [Object.keys(timezones), '#Timezone'],\n]\ndata.forEach(a => {\n for (let i = 0; i < a[0].length; i++) {\n lex[a[0][i]] = a[1]\n }\n})\n\nmodule.exports = lex\n","const normalize = function(doc) {\n doc = doc.clone()\n\n if (!doc.numbers) {\n console.warn(\"Compromise: compromise-dates cannot find plugin dependency 'compromise-number'\")\n } else {\n // convert 'two' to 2\n let num = doc.numbers()\n num.toNumber()\n num.toCardinal()\n }\n // remove adverbs\n doc.adverbs().remove()\n return doc\n}\nmodule.exports = normalize\n","const knownUnits = {\n second: true,\n minute: true,\n hour: true,\n day: true,\n week: true,\n month: true,\n season: true,\n quarter: true,\n year: true,\n}\n\n//turn '5 weeks before' to {weeks:5}\nconst parseShift = function(doc) {\n let result = {}\n let m = doc.match('#DateShift+')\n if (m.found === false) {\n return result\n }\n m.match('#Cardinal #Duration').forEach(ts => {\n let num = ts.match('#Cardinal').text('normal')\n num = parseFloat(num)\n if (num && typeof num === 'number') {\n let unit = ts.match('#Duration').text('normal')\n unit = unit.replace(/s$/, '')\n if (unit && knownUnits.hasOwnProperty(unit)) {\n result[unit] = num\n }\n }\n })\n //is it 2 weeks before? → -2\n if (m.has('before$') === true) {\n Object.keys(result).forEach(k => (result[k] *= -1))\n }\n // finally, remove it from our text\n doc.remove('#DateShift')\n return result\n}\nmodule.exports = parseShift\n","const spacetime = require('spacetime')\n//hmmm: 'june 5th between 9 and 10am'\n\nconst halfPast = function(m, s) {\n let hour = m.match('#Cardinal$').text('reduced')\n\n let term = m.match('(half|quarter|25|15|10|5)')\n let mins = term.text('reduced')\n if (term.has('half')) {\n mins = '30'\n }\n if (term.has('quarter')) {\n mins = '15'\n }\n let behind = m.has('to')\n // apply it\n s = s.hour(hour)\n s = s.startOf('hour')\n if (behind) {\n s = s.subtract(mins, 'minutes')\n } else {\n s = s.add(mins, 'minutes')\n }\n return s\n}\n\nconst parseTime = function(doc, context) {\n let time = doc.match('(at|by|for|before)? #Time+')\n if (time.found) {\n doc.remove(time)\n }\n // get the main part of the time\n time = time.not('(at|by|for|before|sharp)')\n time = time.not('on the dot')\n let s = spacetime.now(context.timezone)\n let now = s.clone()\n\n // '5 oclock'\n let m = time.match('^#Cardinal oclock (am|pm)?')\n if (m.found) {\n m = m.not('oclock')\n s = s.hour(m.text('reduced'))\n if (s.isValid() && !s.isEqual(now)) {\n return s.time()\n }\n }\n\n // 'quarter to two'\n m = time.match('(half|quarter|25|15|10|5) (past|after|to) #Cardinal')\n if (m.found) {\n s = halfPast(m, s)\n if (s.isValid() && !s.isEqual(now)) {\n return s.time()\n }\n }\n // parse random a time like '4:54pm'\n let str = time.text('reduced')\n s = s.time(str)\n if (s.isValid() && !s.isEqual(now)) {\n return s.time()\n }\n return null\n}\nmodule.exports = parseTime\n","// interpret 'this halloween' or 'next june'\nconst parseRelative = function(doc) {\n let rel = null\n if (doc.has('^this? (next|upcoming)')) {\n rel = 'next'\n }\n if (doc.has('^this? (last|previous)')) {\n rel = 'last'\n }\n if (doc.has('^(this|current)')) {\n rel = 'this'\n }\n // finally, remove it from our text\n doc.remove('^(this|current|next|upcoming|last|previous)')\n return rel\n}\nmodule.exports = parseRelative\n","const informal = require('../../data/_timezones')\n\nconst isOffset = /(\\-?[0-9]+)h(rs)?/i\nconst isNumber = /(\\-?[0-9]+)/\nconst utcOffset = /utc([\\-+]?[0-9]+)/i\nconst gmtOffset = /gmt([\\-+]?[0-9]+)/i\n\nconst toIana = function(num) {\n num = Number(num)\n if (num > -13 && num < 13) {\n num = num * -1 //it's opposite!\n num = (num > 0 ? '+' : '') + num //add plus sign\n return 'Etc/GMT' + num\n }\n return null\n}\n\nconst parseOffset = function(tz) {\n // '+5hrs'\n let m = tz.match(isOffset)\n if (m !== null) {\n return toIana(m[1])\n }\n // 'utc+5'\n m = tz.match(utcOffset)\n if (m !== null) {\n return toIana(m[1])\n }\n // 'GMT-5' (not opposite)\n m = tz.match(gmtOffset)\n if (m !== null) {\n let num = Number(m[1]) * -1\n return toIana(num)\n }\n // '+5'\n m = tz.match(isNumber)\n if (m !== null) {\n return toIana(m[1])\n }\n return null\n}\n\nconst parseTimezone = function(doc) {\n let m = doc.match('#Timezone+')\n //remove prepositions\n m = m.remove('(in|for|by|near|at)')\n let str = m.text('reduced')\n\n // remove it from our doc, either way\n doc.remove('#Timezone+')\n\n // check our list of informal tz names\n if (informal.hasOwnProperty(str)) {\n return informal[str]\n }\n let tz = parseOffset(str)\n if (tz) {\n return tz\n }\n\n return null\n}\nmodule.exports = parseTimezone\n","const spacetime = require('spacetime')\n\nclass Unit {\n constructor(input, unit, context) {\n this.unit = unit || 'day'\n context = context || {}\n // set it to the beginning of the given unit\n let d = spacetime(input, context.timezone)\n\n // set to beginning\n if (d.isValid()) {\n d = d.startOf(this.unit)\n }\n Object.defineProperty(this, 'd', {\n enumerable: false,\n writable: true,\n value: d,\n })\n Object.defineProperty(this, 'context', {\n enumerable: false,\n writable: true,\n value: context,\n })\n }\n // make a new one\n clone() {\n let d = new Unit(this.d, this.unit, this.context)\n return d\n }\n log() {\n console.log('--')\n this.d.log()\n console.log('\\n')\n return this\n }\n applyShift(obj) {\n Object.keys(obj).forEach(k => {\n this.d = this.d.add(obj[k], k)\n })\n return this\n }\n applyTime(str) {\n if (str) {\n this.d = this.d.time(str)\n } else {\n this.d = this.d.startOf('day') //zero-out time\n }\n return this\n }\n format(fmt) {\n return this.d.format(fmt)\n }\n start() {\n this.d = this.d.startOf(this.unit)\n return this\n }\n end() {\n this.d = this.d.endOf(this.unit)\n return this\n }\n // 'before 2019'\n before() {\n this.d = spacetime.now(this.context.timezone) // ???\n return this\n }\n // 'after 2019'\n after() {\n this.d = this.d.add(1, this.unit)\n this.d = this.d.startOf(this.unit)\n return this\n }\n // tricky: 'next june' 'next tuesday'\n next() {\n this.d = this.d.add(1, this.unit)\n this.d = this.d.startOf(this.unit)\n return this\n }\n // tricky: 'last june' 'last tuesday'\n last() {\n this.d = this.d.minus(1, this.unit)\n this.d = this.d.startOf(this.unit)\n return this\n }\n}\nmodule.exports = Unit\n","const spacetime = require('spacetime')\nconst Unit = require('./Unit')\n\nclass Day extends Unit {\n constructor(input, unit, context) {\n super(input, unit, context)\n this.unit = 'day'\n }\n}\nclass Month extends Unit {\n constructor(input, unit, context) {\n super(input, unit, context)\n this.unit = 'month'\n }\n}\nclass Quarter extends Unit {\n constructor(input, unit, context) {\n super(input, unit, context)\n this.unit = 'quarter'\n }\n}\nclass Year extends Unit {\n constructor(input, unit, context) {\n super(input, unit, context)\n this.unit = 'year'\n }\n}\nclass WeekDay extends Unit {\n constructor(input, unit, context) {\n super(input, unit, context)\n this.unit = 'week'\n this.d = this.d.day(input)\n this.weekDay = this.d.dayName()\n //assume a wednesday in the future\n if (this.d.date() < spacetime.now(context.timezone).date()) {\n this.d = this.d.add(7, 'days')\n }\n }\n next() {\n this.d = this.d.add(7, 'days')\n this.d = this.d.day(this.weekDay)\n return this\n }\n last() {\n this.d = this.d.minus(7, 'days')\n this.d = this.d.day(this.weekDay)\n return this\n }\n}\n// like 'feb 2'\nclass CalendarDate extends Unit {\n constructor(input, unit, context) {\n super(input, unit, context)\n this.unit = 'day'\n }\n next() {\n this.d = this.d.add(1, 'year')\n return this\n }\n last() {\n this.d = this.d.minus(1, 'year')\n return this\n }\n}\n\nmodule.exports = {\n Unit: Unit,\n Day: Day,\n Month: Month,\n Quarter: Quarter,\n Year: Year,\n WeekDay: WeekDay,\n CalendarDate: CalendarDate,\n}\n","const { Unit } = require('../_units')\n\nconst onlySection = function(doc, context, section) {\n let d = null\n if (doc.found === false) {\n // do we have just a time?\n if (section.time !== null) {\n d = new Unit(context.today, null, context) // choose today\n }\n //do we just have a shift?\n if (Object.keys(section.shift).length > 0) {\n d = new Unit(context.today, null, context) // choose today\n }\n }\n return d\n}\nmodule.exports = onlySection\n","const units = require('../_units')\nconst mapping = {\n week: units.Week,\n month: units.Month,\n quarter: units.Quarter,\n year: units.Year,\n season: units.Season,\n}\n\n// when a unit of time is spoken of as 'this month' - instead of 'february'\nconst namedUnit = function(doc, context) {\n //this month, last quarter, next year\n let m = doc.match('(weekday|week|month|quarter|season|year)')\n if (m.found === true) {\n let str = m.lastTerm().text('reduced')\n if (mapping.hasOwnProperty(str)) {\n let Model = mapping[str]\n if (!Model) {\n return null\n }\n let unit = new Model(null, str, context)\n return unit\n }\n }\n\n //try this version - 'next friday, last thursday'\n m = doc.match('(monday|tuesday|wednesday|thursday|friday|saturday|sunday)')\n if (m.found === true) {\n let str = m.lastTerm().text('reduced')\n let unit = new units.WeekDay(str, null, context)\n return unit\n }\n return null\n}\nmodule.exports = namedUnit\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('spacetime')) :\n typeof define === 'function' && define.amd ? define(['spacetime'], factory) :\n (global = global || self, global.spacetimeHoliday = factory(global.spacetime));\n}(this, function (spacetime) { 'use strict';\n\n spacetime = spacetime && spacetime.hasOwnProperty('default') ? spacetime['default'] : spacetime;\n\n //yep,\n var jan = 'january';\n var feb = 'february';\n var mar = 'march';\n var apr = 'april';\n var may = 'may';\n var jun = 'june';\n var jul = 'july';\n var aug = 'august';\n var sep = 'september';\n var oct = 'october';\n var nov = 'november';\n var dec = 'december';\n var fixedHolidays = {\n 'new years eve': [dec, 31],\n 'new years': [jan, 1],\n 'new years day': [jan, 1],\n 'inauguration day': [jan, 20],\n 'australia day': [jan, 26],\n 'national freedom day': [feb, 1],\n 'groundhog day': [feb, 2],\n 'rosa parks day': [feb, 4],\n 'valentines day': [feb, 14],\n 'saint valentines day': [feb, 14],\n 'st valentines day ': [feb, 14],\n 'saint patricks day': [mar, 17],\n 'st patricks day': [mar, 17],\n 'april fools': [apr, 1],\n 'april fools day': [apr, 1],\n 'emancipation day': [apr, 16],\n 'tax day': [apr, 15],\n //US\n 'labour day': [may, 1],\n 'cinco de mayo': [may, 5],\n 'national nurses day': [may, 6],\n 'harvey milk day': [may, 22],\n 'victoria day': [may, 24],\n juneteenth: [jun, 19],\n 'canada day': [jul, 1],\n 'independence day': [jul, 4],\n 'independents day': [jul, 4],\n 'bastille day': [jul, 14],\n 'purple heart day': [aug, 7],\n 'womens equality day': [aug, 26],\n '16 de septiembre': [sep, 16],\n 'dieciseis de septiembre': [sep, 16],\n 'grito de dolores': [sep, 16],\n halloween: [oct, 31],\n 'all hallows eve': [oct, 31],\n 'day of the dead': [oct, 31],\n // Ranged holiday [nov, 2],\n 'dia de muertos': [oct, 31],\n // Ranged holiday [nov, 2],\n 'veterans day': [nov, 11],\n 'st andrews day': [nov, 30],\n 'saint andrews day': [nov, 30],\n 'all saints day': [nov, 1],\n 'all sts day': [nov, 1],\n 'armistice day': [nov, 11],\n 'rememberance day': [nov, 11],\n 'christmas eve': [dec, 24],\n christmas: [dec, 25],\n xmas: [dec, 25],\n 'boxing day': [dec, 26],\n 'st stephens day': [dec, 26],\n 'saint stephens day': [dec, 26],\n // Fixed religious and cultural holidays\n // Catholic + Christian\n epiphany: [jan, 6],\n 'orthodox christmas day': [jan, 7],\n 'orthodox new year': [jan, 14],\n 'assumption of mary': [aug, 15],\n 'all souls day': [nov, 2],\n 'feast of the immaculate conception': [dec, 8],\n 'feast of our lady of guadalupe': [dec, 12],\n // Kwanzaa\n kwanzaa: [dec, 26],\n // Ranged holiday [jan, 1],\n // Pagan / metal 🤘\n imbolc: [feb, 2],\n beltaine: [may, 1],\n lughnassadh: [aug, 1],\n samhain: [oct, 31]\n };\n\n var fixedDates = function fixedDates(str, normal, year) {\n if (fixedHolidays.hasOwnProperty(str) || fixedHolidays.hasOwnProperty(normal)) {\n var arr = fixedHolidays[str] || fixedHolidays[normal] || [];\n var s = spacetime.now();\n s = s.year(year);\n s = s.startOf('year');\n s = s.month(arr[0]);\n s = s.date(arr[1]);\n\n if (s.isValid()) {\n return s;\n }\n }\n\n return null;\n };\n\n var _01FixedDates = fixedDates;\n\n //these are holidays on the 'nth weekday of month'\n var jan$1 = 'january';\n var feb$1 = 'february';\n var mar$1 = 'march'; // const apr = 'april'\n\n var may$1 = 'may';\n var jun$1 = 'june'; // const jul = 'july'\n // const aug = 'august'\n\n var sep$1 = 'september';\n var oct$1 = 'october';\n var nov$1 = 'november'; // const dec = 'december'\n\n var mon = 'monday'; // const tues = 'tuesday'\n // const wed = 'wednesday'\n\n var thurs = 'thursday';\n var fri = 'friday'; // const sat = 'saturday'\n\n var sun = 'sunday';\n var holidays = {\n 'martin luther king day': [3, mon, jan$1],\n //[third monday in january],\n 'presidents day': [3, mon, feb$1],\n //[third monday in february],\n 'commonwealth day': [2, mon, mar$1],\n //[second monday in march],\n 'mothers day': [2, sun, may$1],\n //[second Sunday in May],\n 'fathers day': [3, sun, jun$1],\n //[third Sunday in June],\n 'labor day': [1, mon, sep$1],\n //[first monday in september],\n 'columbus day': [2, mon, oct$1],\n //[second monday in october],\n 'canadian thanksgiving': [2, mon, oct$1],\n //[second monday in october],\n thanksgiving: [4, thurs, nov$1],\n // [fourth Thursday in November],\n 'black friday': [4, fri, nov$1] //[fourth friday in november],\n // 'memorial day': [may], //[last monday in may],\n // 'us election': [nov], // [Tuesday following the first Monday in November],\n // 'cyber monday': [nov]\n // 'advent': [] // fourth Sunday before Christmas\n\n }; // add aliases\n\n holidays['turday day'] = holidays.thanksgiving;\n holidays['indigenous peoples day'] = holidays['columbus day'];\n holidays['mlk day'] = holidays['martin luther king day'];\n var calendarHolidays = holidays;\n\n var fixedDates$1 = function fixedDates(str, normal, year) {\n if (calendarHolidays.hasOwnProperty(str) || calendarHolidays.hasOwnProperty(normal)) {\n var arr = calendarHolidays[str] || calendarHolidays[normal] || [];\n var s = spacetime.now();\n s = s.year(year); // [3rd, 'monday', 'january']\n\n s = s.month(arr[2]);\n s = s.startOf('month'); // make it january\n\n var month = s.month(); // make it the 1st monday\n\n s = s.day(arr[1]);\n\n if (s.month() !== month) {\n s = s.add(1, 'week');\n } // make it nth monday\n\n\n if (arr[0] > 1) {\n s = s.add(arr[0] - 1, 'week');\n }\n\n if (s.isValid()) {\n return s;\n }\n }\n\n return null;\n };\n\n var _02NthWeekday = fixedDates$1;\n\n // https://www.timeanddate.com/calendar/determining-easter-date.html\n var dates = {\n easter: 0,\n 'ash wednesday': -46,\n // (46 days before easter)\n 'palm sunday': 7,\n // (1 week before easter)\n 'maundy thursday': -3,\n // (3 days before easter)\n 'good friday': -2,\n // (2 days before easter)\n 'holy saturday': -1,\n // (1 days before easter)\n 'easter saturday': -1,\n // (1 day before easter)\n 'easter monday': 1,\n // (1 day after easter)\n 'ascension day': 39,\n // (39 days after easter)\n 'whit sunday': 49,\n // / pentecost (49 days after easter)\n 'whit monday': 50,\n // (50 days after easter)\n 'trinity sunday': 65,\n // (56 days after easter)\n 'corpus christi': 60,\n // (60 days after easter)\n 'mardi gras': -47 //(47 days before easter)\n\n };\n dates['easter sunday'] = dates.easter;\n dates['pentecost'] = dates['whit sunday'];\n dates['whitsun'] = dates['whit sunday'];\n var easterHolidays = dates;\n\n // by John Dyer\n // based on the algorithm by Oudin (1940) from http://www.tondering.dk/claus/cal/easter.php\n var calcEaster = function calcEaster(year) {\n var f = Math.floor,\n // Golden Number - 1\n G = year % 19,\n C = f(year / 100),\n // related to Epact\n H = (C - f(C / 4) - f((8 * C + 13) / 25) + 19 * G + 15) % 30,\n // number of days from 21 March to the Paschal full moon\n I = H - f(H / 28) * (1 - f(29 / (H + 1)) * f((21 - G) / 11)),\n // weekday for the Paschal full moon\n J = (year + f(year / 4) + I + 2 - C + f(C / 4)) % 7,\n // number of days from 21 March to the Sunday on or before the Paschal full moon\n L = I - J,\n month = 3 + f((L + 40) / 44),\n date = L + 28 - 31 * f(month / 4);\n month = month === 4 ? 'April' : 'March';\n return month + ' ' + date;\n };\n\n var calcEaster_1 = calcEaster;\n\n var easterDates = function easterDates(str, normal, year) {\n if (easterHolidays.hasOwnProperty(str) || easterHolidays.hasOwnProperty(normal)) {\n var days = easterHolidays[str] || easterHolidays[normal] || [];\n var date = calcEaster_1(year);\n\n if (!date) {\n return null; //no easter for this year\n }\n\n var e = spacetime(date);\n e = e.year(year);\n var s = e.add(days, 'day');\n\n if (s.isValid()) {\n return s;\n }\n }\n\n return null;\n };\n\n var _03EasterDates = easterDates;\n\n // http://www.astropixels.com/ephemeris/soleq2001.html\n // years 2000-2100\n var exceptions = {\n spring: [2003, 2007, 2044, 2048, 2052, 2056, 2060, 2064, 2068, 2072, 2076, 2077, 2080, 2081, 2084, 2085, 2088, 2089, 2092, 2093, 2096, 2097],\n 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],\n 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],\n winter: [2002, 2003, 2006, 2007, 2011, 2015, 2019, 2023, 2027, 2031, 2035, 2039, 2043, 2080, 2084, 2088, 2092, 2096]\n };\n var winter20th = [2080, 2084, 2088, 2092, 2096];\n\n var calcSeasons = function calcSeasons(year) {\n // most common defaults\n var res = {\n spring: 'March 20 ' + year,\n summer: 'June 21 ' + year,\n fall: 'Sept 22 ' + year,\n winter: 'Dec 21 ' + year\n };\n\n if (exceptions.spring.indexOf(year) !== -1) {\n res.spring = 'March 19 ' + year;\n }\n\n if (exceptions.summer.indexOf(year) !== -1) {\n res.summer = 'June 20 ' + year;\n }\n\n if (exceptions.fall.indexOf(year) !== -1) {\n res.fall = 'Sept 21 ' + year;\n } // winter can be 20th, 21st, or 22nd\n\n\n if (exceptions.winter.indexOf(year) !== -1) {\n res.winter = 'Dec 22 ' + year;\n }\n\n if (winter20th.indexOf(year) !== -1) {\n res.winter = 'Dec 20 ' + year;\n }\n\n return res;\n };\n\n var seasons = calcSeasons;\n\n // these are properly calculated in ./lib/seasons\n var dates$1 = {\n 'spring equinox': 'spring',\n 'summer solistice': 'summer',\n 'fall equinox': 'fall',\n 'winter solstice': 'winter'\n }; // aliases\n\n dates$1['march equinox'] = dates$1['spring equinox'];\n dates$1['vernal equinox'] = dates$1['spring equinox'];\n dates$1['ostara'] = dates$1['spring equinox'];\n dates$1['june solstice'] = dates$1['summer solistice'];\n dates$1['litha'] = dates$1['summer solistice'];\n dates$1['autumn equinox'] = dates$1['fall equinox'];\n dates$1['autumnal equinox'] = dates$1['fall equinox'];\n dates$1['september equinox'] = dates$1['fall equinox'];\n dates$1['sept equinox'] = dates$1['fall equinox'];\n dates$1['mabon'] = dates$1['fall equinox'];\n dates$1['december solstice'] = dates$1['winter solistice'];\n dates$1['dec solstice'] = dates$1['winter solistice'];\n dates$1['yule'] = dates$1['winter solistice'];\n var astroHolidays = dates$1;\n\n var astroDates = function astroDates(str, normal, year) {\n if (astroHolidays.hasOwnProperty(str) || astroHolidays.hasOwnProperty(normal)) {\n var season = astroHolidays[str] || astroHolidays[normal];\n var seasons$1 = seasons(year);\n\n if (!season || !seasons$1 || !seasons$1[season]) {\n return null; // couldn't figure it out\n }\n\n var s = spacetime(seasons$1[season]);\n\n if (s.isValid()) {\n return s;\n }\n }\n\n return null;\n };\n\n var _04Astronomical = astroDates;\n\n var dates$2 = {\n // Muslim holidays\n 'isra and miraj': 'april 13',\n 'lailat al-qadr': 'june 10',\n 'eid al-fitr': 'june 15',\n 'id al-Fitr': 'june 15',\n 'eid ul-Fitr': 'june 15',\n ramadan: 'may 16',\n // Range holiday\n 'eid al-adha': 'sep 22',\n muharram: 'sep 12',\n 'prophets birthday': 'nov 21'\n };\n var lunarHolidays = dates$2;\n\n var dayDiff = -10.64;\n\n var lunarDates = function lunarDates(str, normal, year) {\n if (lunarHolidays.hasOwnProperty(str) || lunarHolidays.hasOwnProperty(normal)) {\n var date = lunarHolidays[str] || lunarHolidays[normal] || [];\n\n if (!date) {\n return null;\n } // start at 2018\n\n\n var s = spacetime(date + ' 2018');\n var diff = year - 2018;\n var toAdd = diff * dayDiff;\n s = s.add(toAdd, 'day');\n s = s.startOf('day'); // now set the correct year\n\n s = s.year(year);\n\n if (s.isValid()) {\n return s;\n }\n }\n\n return null;\n };\n\n var _05LunarDates = lunarDates;\n\n var nowYear = spacetime.now().year();\n\n var spacetimeHoliday = function spacetimeHoliday(str, year) {\n year = year || nowYear;\n str = str || '';\n str = String(str);\n str = str.trim().toLowerCase();\n str = str.replace(/'s/, 's'); // 'mother's day'\n\n var normal = str.replace(/ day$/, '');\n normal = normal.replace(/^the /, '');\n normal = normal.replace(/^orthodox /, ''); //orthodox good friday\n // try easier, unmoving holidays\n\n var s = _01FixedDates(str, normal, year);\n\n if (s !== null) {\n return s;\n } // try 'nth monday' holidays\n\n\n s = _02NthWeekday(str, normal, year);\n\n if (s !== null) {\n return s;\n } // easter-based holidays\n\n\n s = _03EasterDates(str, normal, year);\n\n if (s !== null) {\n return s;\n } // solar-based holidays\n\n\n s = _04Astronomical(str, normal, year);\n\n if (s !== null) {\n return s;\n } // mostly muslim holidays\n\n\n s = _05LunarDates(str, normal, year);\n\n if (s !== null) {\n return s;\n }\n\n return null;\n };\n\n var src = spacetimeHoliday;\n\n return src;\n\n}));\n//# sourceMappingURL=spacetime-holiday.js.map\n","const { CalendarDate } = require('../_units')\nconst spacetimeHoliday = require('spacetime-holiday')\n\nconst parseHoliday = function(doc, context) {\n let d = null\n let str = doc.match('#Holiday+').text('reduced')\n let year = 2020 //change me!\n let s = spacetimeHoliday(str, year)\n if (s !== null) {\n d = new CalendarDate(s, null, context)\n }\n return d\n}\nmodule.exports = parseHoliday\n","const { Unit, Day, CalendarDate } = require('../_units')\n\nconst knownWord = {\n today: context => new Day(context.today, null, context),\n yesterday: context => {\n new Day(context.today.minus(1, 'day'), null, context)\n },\n tomorrow: context => {\n new Day(context.today.plus(1, 'day'), null, context)\n },\n}\n\n// parse things like 'june 5th 2019'\nconst parseExplicit = function(doc, context) {\n // 'fifth of june'\n let m = doc.match('[#Value] of [#Month]')\n if (!m.found) {\n // 'june the fifth'\n m = doc.match('[#Month] the [#Value]')\n }\n if (m.found) {\n let obj = {\n month: m.groups('month').text(),\n date: m.groups('date').text(),\n year: context.today.year(),\n }\n let d = new CalendarDate(obj, null, context)\n if (d.d.isValid() === true) {\n return d\n }\n }\n\n if (m.found) {\n let obj = {\n month: m.groups('month').text(),\n date: m.groups('date').text(),\n year: context.today.year(),\n }\n let d = new CalendarDate(obj, null, context)\n if (d.d.isValid() === true) {\n return d\n }\n }\n\n let str = doc.text('reduced')\n // today, yesterday, tomorrow\n if (knownWord.hasOwnProperty(str) === true) {\n let d = knownWord[str](context)\n return d\n }\n\n // punt it to spacetime, for the heavy-lifting\n let d = new Unit(str, null, context)\n // console.log(context.d.format('nice-year'))\n // did we find a date?\n if (d.d.isValid() === false) {\n return null\n }\n return d\n}\nmodule.exports = parseExplicit\n","const section = {\n shift: require('./sections/01-shift'),\n time: require('./sections/02-time'),\n relative: require('./sections/03-relative'),\n timezone: require('./sections/04-timezone'),\n}\n\nconst steps = {\n implied: require('./steps/00-implied'),\n duration: require('./steps/01-duration'),\n holiday: require('./steps/02-holidays'),\n explicit: require('./steps/03-explicit'),\n}\n\nconst parseDate = function(doc, context) {\n //parse-out any sections\n let shift = section.shift(doc)\n let tz = section.timezone(doc)\n let time = section.time(doc, context)\n let rel = section.relative(doc)\n //set our new timezone\n if (tz) {\n context = Object.assign({}, context, { timezone: tz })\n let iso = context.today.format('iso-short')\n context.today = context.today.goto(context.timezone).set(iso)\n }\n let d = null\n\n //'in two days'\n d = d || steps.implied(doc, context, { shift, time, rel })\n // 'this month'\n d = d || steps.duration(doc, context)\n // 'this haloween'\n d = d || steps.holiday(doc, context)\n // 'this june 2nd'\n d = d || steps.explicit(doc, context)\n if (!d) {\n return null\n }\n\n // // apply relative\n if (rel === 'last') {\n d.last()\n }\n if (rel === 'next') {\n d.next()\n }\n // apply shift\n if (shift) {\n d.applyShift(shift)\n }\n\n // apply time\n d.applyTime(time)\n\n return d\n}\nmodule.exports = parseDate\n","const parseDate = require('../03-parseDate')\n\n//\nconst logic = function (doc, context) {\n // two explicit dates - 'between friday and sunday'\n let m = doc.match('between * and *')\n if (m.found) {\n let start = m.match('between [.*] and', 0).not('^between').not('and$')\n start = parseDate(start, context)\n let end = m.match('and *').not('^and')\n end = parseDate(end, context)\n if (start) {\n return {\n start: start,\n end: end,\n }\n }\n }\n // two months, one year - 'june 5 to june 7 1998'\n m = doc.match('#Month #Value to #Month #Value of? #Year')\n if (m.found) {\n }\n // two months, no year - 'june 5 to june 7'\n m = doc.match('#Month #Value to #Month #Value')\n if (m.found) {\n }\n // one month, one year, first form - 'january 5 to 7 1998'\n m = doc.match('#Month #Value to #Value of? #Year')\n if (m.found) {\n }\n // one month, one year, second form - '5 to 7 of january 1998'\n m = doc.match('#Value to #Value of? #Month of? #Year')\n if (m.found) {\n }\n // one month, no year - '5 to 7 of january'\n m = doc.match('#Value to #Value of? #Month')\n if (m.found) {\n }\n // one month, no year - 'january 5 to 7'\n m = doc.match('#Month #Value to #Value')\n if (m.found) {\n }\n // 'from A to B'\n m = doc.match('from? * (to|@hasHyphen|until|upto) [*]')\n if (m.found) {\n }\n // 'before june'\n m = doc.match('^due (by|before|on|in)? [*]')\n if (m.found) {\n }\n // 'after june'\n m = doc.match('^(after|following|from) [*]')\n if (m.found) {\n }\n // 'in june'\n m = doc.match('^(on|during|in) [*]', 0)\n if (m.found) {\n let d = parseDate(m, context)\n if (d) {\n return {\n start: d,\n end: d.clone().end(),\n }\n }\n }\n //else, try whole thing\n let d = parseDate(doc, context)\n return {\n start: d,\n end: null,\n }\n}\nmodule.exports = logic\n","const spacetime = require('spacetime')\nconst normalize = require('./00-normalize')\nconst parseRanges = require('./01-parse-range')\n\nconst getDate = function(doc, context) {\n // validate context a bit\n context = context || {}\n\n context.timezone = context.timezone || 'ETC/UTC'\n context.today = spacetime(context.today, context.timezone)\n //turn 'five' into 5..\n doc = normalize(doc)\n //interpret 'between [A] and [B]'...\n return parseRanges(doc, context)\n}\nmodule.exports = getDate\n","let arr = [\n ['mon', 'monday'],\n ['tue', 'tuesday'],\n ['tues', 'tuesday'],\n ['wed', 'wednesday'],\n ['thu', 'thursday'],\n ['thurs', 'thursday'],\n ['fri', 'friday'],\n ['sat', 'saturday'],\n ['sun', 'sunday'],\n\n ['jan', 'january'],\n ['feb', 'february'],\n ['mar', 'march'],\n ['apr', 'april'],\n ['jun', 'june'],\n ['jul', 'july'],\n ['aug', 'august'],\n ['sep', 'september'],\n ['sept', 'september'],\n ['oct', 'october'],\n ['nov', 'november'],\n ['dec', 'december'],\n]\n\narr = arr.map(a => {\n return { short: a[0], long: a[1] }\n})\n\nmodule.exports = arr\n","const parse = require('./02-getDate')\nconst abbrevs = require('./data/_abbrevs')\n\nmodule.exports = {\n /** overload the original json with noun information */\n json: function (options) {\n let n = null\n if (typeof options === 'number') {\n n = options\n options = null\n }\n options = options || { terms: false }\n let res = []\n let format = options.format || 'iso'\n this.forEach((doc) => {\n let json = doc.json(options)[0]\n let obj = parse(doc, this.context)\n let start = obj.start ? obj.start.format(format) : null\n let end = obj.end ? obj.end.format(format) : null\n // set iso strings to json result\n json.date = {\n start: start,\n end: end,\n }\n // add duration\n if (start && end) {\n json.date.duration = obj.start.d.diff(obj.end.d)\n // we don't need these\n delete json.date.duration.milliseconds\n delete json.date.duration.seconds\n }\n res.push(json)\n })\n if (n !== null) {\n return res[n]\n }\n return res\n },\n\n /** render all dates according to a specific format */\n format: function (fmt) {\n this.forEach((doc) => {\n let obj = parse(doc, this.context)\n let str = ''\n if (obj.start) {\n str = obj.start.format(fmt)\n if (obj.end) {\n let end = obj.start.format(fmt)\n if (str !== end) {\n str += ' to ' + end\n }\n }\n doc.replaceWith(str, { keepTags: true, keepCase: false })\n }\n })\n return this\n },\n /** replace 'Fri' with 'Friday', etc*/\n toLongForm: function () {\n abbrevs.forEach((a) => {\n this.replace(a.short, a.long, true)\n })\n return this\n },\n /** replace 'Friday' with 'Fri', etc*/\n toShortForm: function () {\n abbrevs.forEach((a) => {\n this.replace(a.long, a.short, true)\n })\n return this\n },\n}\n","const tagger = require('./01-tag')\nconst tags = require('./data/_tags')\nconst words = require('./data/words')\nconst methods = require('./methods')\n\nconst addMethods = function(Doc, world) {\n // our new tags\n world.addTags(tags)\n // add info for the date plugin\n world.addWords(words)\n // run our tagger\n world.postProcess(tagger)\n\n /** */\n class Dates extends Doc {\n constructor(list, from, w) {\n super(list, from, w)\n this.context = {}\n }\n }\n //add-in methods\n Object.assign(Dates.prototype, methods)\n\n Doc.prototype.dates = function(n) {\n let context = {}\n if (n && typeof n === 'object') {\n context = n\n n = null\n }\n let r = this.clauses()\n let dates = r.match('#Date+')\n if (typeof n === 'number') {\n dates = dates.get(n)\n }\n if (typeof n === 'number') {\n dates = dates.get(n)\n }\n let d = new Dates(dates.list, this, this.world)\n d.context = context\n return d\n }\n}\n\nmodule.exports = addMethods\n"],"names":["preps","thisNext","sections","seasons","tagYear","m","reason","found","term","termList","num","parseInt","clean","tag","tagYearSafe","fixDates","doc","match","month","val","ifNo","duration","unTag","season","date","not","cardinal","v","time","here","values","has","dateTagger","sectionTagger","timeTagger","shiftTagger","fixUp","oops","d","knownDate","lastTerm","terms","methods","require$$0","require$$1","require$$2","require$$3","require$$4","require$$5","require$$6","tagDate","forEach","fn","FinancialQuarter","isA","Season","Year","notA","Duration","Holiday","Timezone","DateShift","createCommonjsModule","module","exports","getCjsExportFromNamespace","n","fns","isLeapYear","year","isDate","Object","prototype","toString","call","isNaN","valueOf","isArray","input","isObject","zeroPad","str","len","pad","length","Array","join","titleCase","toUpperCase","substr","ordinal","i","j","k","toCardinal","String","replace","normalize","toLowerCase","trim","getEpoch","tmp","getTime","epoch","beADate","s","clone","set","formatTimezone","offset","delimiter","absOffset","Math","abs","sign","fns_1","fns_2","fns_3","fns_4","fns_5","fns_6","fns_7","fns_8","fns_9","fns_10","fns_11","fns_12","getMonth","getDate","getHours","shouldChange","start","end","defaultOffset","Date","bias","getTimezoneOffset","shift","current","summerTime","quickOffset","zones","timezones","obj","tz","undefined","console","warn","dst","jul","dec","hem","split","inSummer","quick","_build","_build$1","freeze","_prefixes","data","all","keys","Number","names","before","name","unpack","fallbackTZ","safeIntl","Intl","DateTimeFormat","format","resolvedOptions","timezone","timeZone","guessTz","guessTz_1","isOffset","isNumber","utcOffset","gmtOffset","toIana","parseOffset","parseOffset_1","local","cities","reduce","h","city","lookupTz","hasOwnProperty","test","id","Error","find","o","millisecond","second","minute","hour","day","week","milliseconds","walk","unit","previous","startUnit","original","diff","halfStep","units","valid","walkTo","getFullYear","seconds","wants","old","silent","walk_1","shortMonths","longMonths","buildMapping","sep","months","mapping","i18n","parseOffset$1","parseFloat","parseOffset_1$1","parseTime","arr","startOf","ampm","parseTime_1","monthLengths","monthLengths_1","hasDate","max","hasDate_1","months$1","parseYear","strFmt","reg","parse","givenTz","options","british","strParse","dates","now","tonight","today","tomorrow","add","yesterday","subtract","christmas","namedDates","minimumEpoch","defaults","handleArray","order","handleObject","assign","parseInput","res","shortDays","longDays","days","isoOffset","isNegative","floor","ceil","_offset","dayName","monthName","hour24","hour12","quarter","era","json","numeric","iso","h24","ms","toISOString","nice","aliases","mdy","dmy","ymd","printFormat","isValid","out","indexOf","_","fmt","format_1","G","GG","GGG","GGGG","y","yy","yyy","yyyy","yyyyy","Q","QQ","QQQ","QQQQ","M","MM","MMM","MMMM","w","ww","dd","D","dayOfYear","DD","DDD","E","EE","EEE","EEEE","EEEEE","e","ee","eee","eeee","eeeee","a","aa","aaa","aaaa","h12","hh","H","HH","mm","ss","A","z","zz","zzz","zzzz","Z","ZZ","ZZZ","ZZZZ","addAlias","char","to","toName","unixFmt","chars","quoteOn","push","txt","c","unixFmt_1","units$1","doUnit","endOf","percent","toFixed","progress","progress_1","nearest","prog","nearest_1","climb","b","isBefore","isAfter","diffOne","one","fastYear","years","msDiff","minutes","hours","weeks","waterfall","reverseDiff","main","reversed","diff$1","qualifiers","almost","over","getDiff","later","earlier","isSame","u","pluralize","value","slice","since","isNow","every","rounded","qualified","precise","englishValues","englishValue","nextUnit","nextValue","splice","since_1","north","south","quarters","units$2","quarterhour","_weekStart","q","hemisphere","decade","century","startOf_1","isDay","next","result","every_1","parseDst","epochShift","hasDst","Boolean","default_offset","change","back","summer","winter","isDST","timezone_1","units$3","input$1","hasDST","leapYear","last","isAwake","isAsleep","log","logYear","debug","from","fromNow","weekStart","inDST","round","each","methods_1","validate","confirm","want","methods$1","getMilliseconds","getSeconds","getMinutes","hourFloat","which","dayTime","times","morning","breakfast","noon","lunch","afternoon","evening","dinner","night","midnight","_01Time","methods$2","getDay","_02Date","clearMinutes","methods$3","sum","setDate","setFullYear","setHours","setMinutes","setMonth","toAdd","minus","thisOne","skipWeeks","millenium","_03Year","methods$4","addMethods","Space","query","order$1","keep","dstAwareUnits","keepDate","rollMonth","addMethods$1","SpaceTime","plus","print","addMethods$2","same","addMethods$3","isEqual","isBetween","startEpoch","endEpoch","compare","addMethods$4","defineProperty","get","spacetime","whereIts","startHour","endHour","tzs","filter","whereIts_1","_version","main$1","extend","version","plugin","src","america","asia","europe","africa","aus","pac","informal","bst","ireland","cet","cest","eet","eest","trt","etc","utc","gmt","sast","acst","acdt","aest","aedt","awst","awdt","acwst","lhst","lhdt","msk","russian","cst","cdt","mst","mdt","ast","adt","est","edt","pst","pdt","ahst","ahdt","hst","nst","ndt","brt","brasília","brasilia","amt","east","easst","vet","pyt","pyst","cot","clst","cldt","uyt","ist","irst","irdt","iranian","pkt","ict","ct","almt","yakt","gst","uae","hkt","wib","wita","idt","israeli","krat","myt","sgt","kst","uzt","vlat","mvt","mut","mht","sst","chst","pgt","iana","formal","lex","numbers","toNumber","adverbs","remove","knownUnits","parseShift","ts","text","halfPast","mins","behind","context","parseRelative","rel","parseTimezone","Unit","enumerable","writable","Day","Month","Quarter","WeekDay","weekDay","CalendarDate","onlySection","section","Week","namedUnit","Model","define","feb","apr","nov","parseHoliday","spacetimeHoliday","knownWord","parseExplicit","groups","relative","steps","implied","holiday","explicit","require$$7","parseDate","applyShift","applyTime","logic","parseRanges","map","replaceWith","keepTags","keepCase","toLongForm","abbrevs","toShortForm","Doc","world","addTags","tags","addWords","words","postProcess","tagger","Dates","list","r","clauses"],"mappings":"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"} \ No newline at end of file diff --git a/plugins/dates/builds/compromise-dates.min.js b/plugins/dates/builds/compromise-dates.min.js index 16fc54c2a..af6f3b4e9 100644 --- a/plugins/dates/builds/compromise-dates.min.js +++ b/plugins/dates/builds/compromise-dates.min.js @@ -1 +1 @@ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).compromiseDates=t()}(this,(function(){"use strict";function e(t){return(e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(t)}function t(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){for(var a=0;a1e3&&n<3e3&&e.tag("Year",t)}}},m="date-values",f="date-tagger",y="section-tagger",p="time-tagger",g="shift-tagger",v="fix-tagger",b=[function(e){e.match("in the (night|evening|morning|afternoon|day|daytime)").tag("Time","in-the-night"),e.match("(#Value|#Time) (am|pm)").tag("Time","value-ampm");var t=e.if("#Month");!0===t.found&&(t.match("#Month #Date+").tag("Date","correction-numberRange"),t.match("#Value of #Month").tag("Date","value-of-month"),t.match("#Cardinal #Month").tag("Date","cardinal-month"),t.match("#Month #Value to #Value").tag("Date","value-to-value"),t.match("#Month the #Value").tag("Date","month-the-value"));var a=e.if("#Value");if(!0===a.found){a.match("(#WeekDay|#Month) #Value").ifNo("#Money").tag("Date","date-value"),a.match("#Value (#WeekDay|#Month)").ifNo("#Money").tag("Date","value-date"),a.match("#TextValue #TextValue").if("#Date").tag("#Date","textvalue-date");var n=a.if("#Duration");!0===n.found&&(n.match("for #Value #Duration").tag("Date","for-x-duration"),n.match("#Value #Duration #Conjunction").tag("Date","val-duration-conjunction"),n.match("".concat(s,"? #Value #Duration")).tag("Date","value-duration"),n.match("#Value #Duration old").unTag("Date","val-years-old"))}var r=e.if(l);!0===r.found&&(r.match("".concat(s,"? ").concat(c," ").concat(l)).tag("Date","thisNext-season"),r.match("the? ".concat(d," of ").concat(l)).tag("Date","section-season"),r.match("".concat(l," ").concat(s,"? #Cardinal")).tag("Date","season-year"));var i=e.if("#Date");!0===i.found&&(i.match("#Date the? #Ordinal").tag("Date","correction"),i.match("".concat(c," #Date")).tag("Date","thisNext"),i.match("due? (by|before|after|until) #Date").tag("Date","by"),i.match("(last|next|this|previous|current|upcoming|coming|the) #Date").tag("Date","next-feb"),i.match("the? ".concat(d," of #Date")).tag("Date","section-of"),i.match("#Ordinal #Duration in #Date").tag("Date","duration-in"),i.match("(early|late) (at|in)? the? #Date").tag("Time","early-evening"),i.match("#Date (by|before|after|at|@|about) #Cardinal").not("^#Date").tag("Time","date-before-Cardinal"),i.match("#Date [(am|pm)]",0).unTag("Verb").unTag("Copula").tag("Time","date-am"),i.match("#Date (#Preposition|to) #Date").ifNo("#Duration").tag("Date","date-prep-date"));var o=e.if("#Cardinal");if(!0===o.found){var u=o.match("#Date #Value [#Cardinal]",0);h(u,"date-value-year"),u=o.match("#Date+ [#Cardinal]",0),h(u,"date-year"),u=o.match("#Month #Value [#Cardinal]",0),h(u,"month-value-year"),u=o.match("#Month #Value to #Value [#Cardinal]",0),h(u,"month-range-year"),u=o.match("(in|of|by|during|before|starting|ending|for|year) [#Cardinal]",0),h(u,"in-year"),u=o.match("(q1|q2|q3|q4) [#Cardinal]",0),h(u,"in-year"),u=o.match("#Ordinal quarter [#Cardinal]",0),h(u,"in-year"),u=o.match("the year [#Cardinal]",0),h(u,"in-year"),function(e,t){if(!0===e.found){var a=e.termList()[0];if(a){var n=parseInt(a.clean,10);n&&n>1900&&n<2030&&e.tag("Year",t)}}}(u=o.match("it (is|was) [#Cardinal]",0),"in-year")}var m=e.if("#Time");return!0===m.found&&(m.match("(by|before|after|at|@|about) #Time").tag("Time","preposition-time"),m.match("#Cardinal #Time").not("#Year").tag("Time","value-time"),m.match("#Time [(eastern|pacific|central|mountain)]",0).tag("Date","timezone"),m.match("#Time [(est|pst|gmt)]",0).tag("Date","timezone abbr")),e},function(e){return e.has("#Value")&&(e.match("#Month #Value to #Value of? #Year?").tag("Date",m),e.match("#Value to #Value of? #Month #Year?").tag("Date",m),e.match("#Value #Duration of #Date").tag("Date",m),e.match("#Value+ #Duration (after|before|into|later|afterwards|ago)?").tag("Date",m),e.match("#Value #Date").tag("Date",m),e.match("#Date #Value").tag("Date",m),e.match("#Date #Preposition #Value").tag("Date",m),e.match("#Date (after|before|during|on|in) #Value").tag("Date",m),e.match("#Value (year|month|week|day) and a half").tag("Date",m),e.match("#Value and a half (years|months|weeks|days)").tag("Date",m),e.match("on the #Ordinal").tag("Date",m)),e},function(e){return e.match("(spring|summer|winter|fall|autumn|springtime|wintertime|summertime)").match("#Noun").tag("Season",f),e.match("(q1|q2|q3|q4)").tag("FinancialQuarter",f),e.match("(this|next|last|current) quarter").tag("FinancialQuarter",f),e.match("(this|next|last|current) season").tag("Season",f),e.has("#Date")&&(e.match("#Date #Preposition #Date").tag("Date",f),e.match("(once|twice) (a|an|each) #Date").tag("Date",f),e.match("(by|until|on|in|at|during|over|every|each|due) the? #Date").tag("Date",f),e.match("#Date+").tag("Date",f),e.match("(by|until|on|in|at|during|over|every|each|due) the? #Date").tag("Date",f),e.match("a #Duration").tag("Date",f),e.match("(between|from) #Date").tag("Date",f),e.match("(to|until|upto) #Date").tag("Date",f),e.match("#Date and #Date").tag("Date",f),e.match("(by|until|after|before|during|on|in|following) (next|this|last)? (#Date|#Date)").tag("Date",f),e.match("the? #Date after next one?").tag("Date",f),e.match("(about|approx|approximately|around) #Date").tag("Date",f)),e},function(e){return e.has("#Date")&&(e.match("this? (last|next|past|this|previous|current|upcoming|coming|the) #Date").tag("Date",y),e.match("(starting|beginning|ending) #Date").tag("Date",y),e.match("the? (start|end|middle|beginning) of (last|next|this|the) (#Date|#Date)").tag("Date",y),e.match("(the|this) #Date").tag("Date",y)),e},function(e){return e.has("#Cardinal")&&e.match("(half|quarter|25|15|10|5) (past|after|to) #Cardinal").tag("Time",p),e.has("#Date")&&(e.match("#Noun (standard|daylight|central|mountain)? time").tag("Timezone",p),e.match("/^utc[+-][0-9]/").tag("Timezone",p),e.match("/^gmt[+-][0-9]/").tag("Timezone",p),e.match("(in|for|by|near|at) #Timezone").tag("Timezone",p)),e},function(e){return e.has("#Date")&&(e.match("#Cardinal #Duration (before|after)").tag("#DateShift",g),e.match("in #Cardinal #Duration").tag("#DateShift",g),e.match("#Cardinal #Duration and? #DateShift").tag("#DateShift",g),e.match("#DateShift and #Cardinal #Duration").tag("#DateShift",g)),e},function(e){if(e.has("#Date")){var t=e.match("#Date+ by #Date+");t.found&&!t.has("^due")&&t.match("^#Date+").unTag("Date","by-monday");var a=e.match("#Date+");a.match("^day$").unTag("Date","spa-day");var n="(yesterday|today|tomorrow)";a.has(n)&&(a.match("".concat(n," [#Value]$")).unTag("Date","yesterday-7"),a.match("^[#Value] ".concat(n,"$"),0).unTag("Date","7 yesterday"),a.match("#WeekDay+ ".concat(n,"$")).unTag("Date").lastTerm().tag("Date","fri-yesterday"),a.match("(this|last|next) #Date ".concat(n,"$")).unTag("Date").lastTerm().tag("Date","this month yesterday")),a.match("on #Cardinal$").unTag("Date",v),a.match("this tomorrow").terms(0).unTag("Date","this-tomorrow"),a.match("(q1|q2|q3|q4) #Year").tag("Date",v),a.match("^#Value (this|next|last)").terms(0).unTag("Date",v),a.has("(last|this|next)")&&(a.match("(last|this|next) #Duration #Value").terms(2).unTag("Date",v),a.match("!#Month #Value (last|this|next) #Date").terms(0).unTag("Date",v)),!1===a.has("(#Year|#Time|#TextValue|#NumberRange)")&&a.match("(#Month|#WeekDay) #Value #Value").terms(2).unTag("Date",v),a.has("^between")&&!a.has("and .")&&a.unTag("Date",v),!a.has("#Month #Month")||a.has("@hasHyphen")||a.has("@hasComma")||a.match("#Month").lastTerm().unTag("Date","month-month")}return e}],w=function(e){return b.forEach((function(t){return t(e)})),e},k={FinancialQuarter:{isA:"Date"},Season:{isA:"Date"},Year:{isA:["Date"],notA:"RomanNumeral"},Duration:{isA:["Date","Noun"]},Holiday:{isA:["Date","Noun"]},Timezone:{isA:["Date","Noun"]},DateShift:{isA:["Date"]}};var D,A=function(e,t){return e(t={exports:{}},t.exports),t.exports}((function(e,t){t.isLeapYear=function(e){return e%4==0&&e%100!=0||e%400==0},t.isDate=function(e){return"[object Date]"===Object.prototype.toString.call(e)&&!isNaN(e.valueOf())},t.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)},t.isObject=function(e){return"[object Object]"===Object.prototype.toString.call(e)},t.zeroPad=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2,a="0";return(e+="").length>=t?e:new Array(t-e.length+1).join(a)+e},t.titleCase=function(e){return e?e[0].toUpperCase()+e.substr(1):""},t.ordinal=function(e){var 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"},t.toCardinal=function(e){return e=(e=String(e)).replace(/([0-9])(st|nd|rd|th)$/i,"$1"),parseInt(e,10)},t.normalize=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return"day"===(e=(e=(e=(e=e.toLowerCase().trim()).replace(/ies$/,"y")).replace(/s$/,"")).replace(/-/g,""))?"date":e},t.getEpoch=function(e){return"number"==typeof e?e:t.isDate(e)?e.getTime():e.epoch?e.epoch:null},t.beADate=function(e,a){return!1===t.isObject(e)?a.clone().set(e):e},t.formatTimezone=function(e){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=Math.abs(e),r=e>0?"+":"-";return"".concat(r).concat(t.zeroPad(n)).concat(a,"00")}})),z=(A.isLeapYear,A.isDate,A.isArray,A.isObject,A.zeroPad,A.titleCase,A.ordinal,A.toCardinal,A.normalize,A.getEpoch,A.beADate,A.formatTimezone,A.zeroPad),O=function(e,t,a,n){var r=new Date(e),i=(r.getTimezoneOffset()||0)+60*n;i=60*i*1e3;var o=function(e){return z(e.getMonth()+1)+"/"+z(e.getDate())+":"+z(e.getHours())}(r=new Date(e+i));return o>=t&&o");return!0===O(e.epoch,r[0],r[1],a)?a:n},x=["africa","america","asia","atlantic","australia","brazil","canada","chile","europe","indian","mexico","pacific","antarctica","etc"],_=(D=Object.freeze({default:{"9|s":"2/dili,2/jayapura","9|n":"2/chita,2/khandyga,2/pyongyang,2/seoul,2/tokyo,11/palau","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":"12/casey,2/kuala_lumpur,2/makassar,2/singapore,4/perth,4/west","8|n|03/25:03->09/29:23":"2/ulan_bator","8|n":"2/brunei,2/choibalsan,2/chongqing,2/chungking,2/harbin,2/hong_kong,2/irkutsk,2/kuching,2/macao,2/macau,2/manila,2/shanghai,2/taipei,2/ujung_pandang,2/ulaanbaatar","8.75|s":"4/eucla","7|s":"12/davis,2/jakarta,9/christmas","7|n":"2/bangkok,2/barnaul,2/ho_chi_minh,2/hovd,2/krasnoyarsk,2/novokuznetsk,2/novosibirsk,2/phnom_penh,2/pontianak,2/saigon,2/tomsk,2/vientiane","6|s":"12/vostok","6|n":"2/almaty,2/bishkek,2/dacca,2/dhaka,2/kashgar,2/omsk,2/qyzylorda,2/thimbu,2/thimphu,2/urumqi,9/chagos","6.5|n":"2/rangoon,9/cocos","5|s":"12/mawson,9/kerguelen","5|n":"2/aqtau,2/aqtobe,2/ashgabat,2/ashkhabad,2/atyrau,2/baku,2/dushanbe,2/karachi,2/oral,2/samarkand,2/tashkent,2/yekaterinburg,9/maldives","5.75|n":"2/kathmandu,2/katmandu","5.5|n":"2/calcutta,2/colombo,2/kolkata","4|s":"9/reunion","4|n":"2/dubai,2/muscat,2/tbilisi,2/yerevan,8/astrakhan,8/samara,8/saratov,8/ulyanovsk,8/volgograd,2/volgograd,9/mahe,9/mauritius","4.5|n|03/22:00->09/21:24":"2/tehran","4.5|n":"2/kabul","3|s":"12/syowa,9/antananarivo","3|n|03/31:03->10/27:04":"2/nicosia,8/athens,8/bucharest,8/helsinki,8/kiev,8/mariehamn,8/nicosia,8/riga,8/sofia,8/tallinn,8/uzhgorod,8/vilnius,8/zaporozhye","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","3|n|03/29:00->10/26:01":"2/gaza,2/hebron","3|n|03/29:00->10/25:01":"2/amman","3|n|03/29:00->10/24:24":"2/damascus","3|n":"0/addis_ababa,0/asmara,0/asmera,0/dar_es_salaam,0/djibouti,0/juba,0/kampala,0/mogadishu,0/nairobi,2/aden,2/baghdad,2/bahrain,2/istanbul,2/kuwait,2/qatar,2/riyadh,8/istanbul,8/kirov,8/minsk,8/moscow,8/simferopol,9/comoro,9/mayotte","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,3/jan_mayen,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","2|n":"0/blantyre,0/bujumbura,0/cairo,0/khartoum,0/kigali,0/tripoli,8/kaliningrad","1|s|04/02:01->09/03:03":"0/windhoek","1|s":"0/kinshasa,0/luanda","1|n|05/05:03->06/09:02":"0/casablanca,0/el_aaiun","1|n|03/31:01->10/27:02":"3/canary,3/faeroe,3/faroe,3/madeira,8/belfast,8/dublin,8/guernsey,8/isle_of_man,8/jersey,8/lisbon,8/london","1|n":"0/algiers,0/bangui,0/brazzaville,0/douala,0/lagos,0/libreville,0/malabo,0/ndjamena,0/niamey,0/porto-novo,0/tunis","14|n":"11/kiritimati","13|s|04/07:04->09/29:03":"11/apia","13|s|01/15:02->11/05:03":"11/tongatapu","13|n":"11/enderbury,11/fakaofo","12|s|04/07:03->09/29:02":"12/mcmurdo,12/south_pole,11/auckland","12|s|01/13:03->11/10:02":"11/fiji","12|n":"2/anadyr,2/kamchatka,2/srednekolymsk,11/funafuti,11/kwajalein,11/majuro,11/nauru,11/tarawa,11/wake,11/wallis","12.75|s|04/07:03->09/29:02":"11/chatham","11|s":"12/macquarie,11/bougainville","11|n":"2/magadan,2/sakhalin,11/efate,11/guadalcanal,11/kosrae,11/noumea,11/pohnpei,11/ponape","11.5|n":"11/norfolk","10|s|04/07:03->10/06:02":"4/act,4/canberra,4/currie,4/hobart,4/melbourne,4/nsw,4/sydney,4/tasmania,4/victoria","10|s":"12/dumontdurville,4/brisbane,4/lindeman,4/queensland","10|n":"2/ust-nera,2/vladivostok,2/yakutsk,11/chuuk,11/guam,11/port_moresby,11/saipan,11/truk,11/yap","10.5|s|04/07:01->10/06:02":"4/lhi,4/lord_howe","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,0/timbuktu,1/danmarkshavn,3/reykjavik,3/st_helena,13/gmt,13/gmt+0,13/gmt-0,13/gmt0,13/greenwich,13/utc,13/universal,13/zulu","-9|n|03/10:02->11/03:02":"1/adak,1/atka","-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","-8|n":"11/pitcairn","-7|n|03/10:02->11/03:02":"1/dawson,1/ensenada,1/los_angeles,1/santa_isabel,1/tijuana,1/vancouver,1/whitehorse,6/pacific,6/yukon,10/bajanorte","-7|n":"1/creston,1/dawson_creek,1/hermosillo,1/phoenix","-6|s|04/06:22->09/07:22":"7/easterisland,11/easter","-6|n|04/07:02->10/27:02":"1/chihuahua,1/mazatlan,10/bajasur","-6|n|03/10:02->11/03:02":"1/boise,1/cambridge_bay,1/denver,1/edmonton,1/inuvik,1/ojinaga,1/shiprock,1/yellowknife,6/mountain","-6|n":"1/belize,1/costa_rica,1/el_salvador,1/guatemala,1/managua,1/regina,1/swift_current,1/tegucigalpa,6/east-saskatchewan,6/saskatchewan,11/galapagos","-5|s":"1/lima,1/rio_branco,5/acre","-5|n|04/07:02->10/27:02":"1/bahia_banderas,1/merida,1/mexico_city,1/monterrey,10/general","-5|n|03/12:03->11/05:01":"1/north_dakota","-5|n|03/10:02->11/03:02":"1/chicago,1/knox_in,1/matamoros,1/menominee,1/rainy_river,1/rankin_inlet,1/resolute,1/winnipeg,6/central","-5|n":"1/atikokan,1/bogota,1/cancun,1/cayman,1/coral_harbour,1/eirunepe,1/guayaquil,1/jamaica,1/panama,1/porto_acre","-4|s|05/13:23->08/13:01":"12/palmer","-4|s|04/06:24->09/08:00":"1/santiago,7/continental","-4|s|03/23:24->10/06:00":"1/asuncion","-4|s|02/16:24->11/03:00":"1/campo_grande,1/cuiaba","-4|s":"1/la_paz,1/manaus,5/west","-4|n|03/12:03->11/05:01":"1/indiana,1/kentucky","-4|n|03/10:02->11/03:02":"1/detroit,1/fort_wayne,1/grand_turk,1/indianapolis,1/iqaluit,1/louisville,1/montreal,1/nassau,1/new_york,1/nipigon,1/pangnirtung,1/port-au-prince,1/thunder_bay,1/toronto,6/eastern","-4|n|03/10:00->11/03:01":"1/havana","-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/cordoba,1/fortaleza,1/montevideo,1/punta_arenas,1/sao_paulo,12/rothera,3/stanley,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/catamarca,1/cayenne,1/jujuy,1/maceio,1/mendoza,1/paramaribo,1/recife,1/rosario,1/santarem","-2|s":"5/denoronha","-2|n|03/30:22->10/26:23":"1/godthab","-2|n|03/10:02->11/03:02":"1/miquelon","-2|n":"1/noronha,3/south_georgia","-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","-10|n":"11/honolulu,11/johnston,11/rarotonga,11/tahiti"}}))&&D.default||D,M={};Object.keys(_).forEach((function(e){var t=e.split("|"),a={offset:Number(t[0]),hem:t[1]};t[2]&&(a.dst=t[2]),_[e].split(",").forEach((function(e){e=e.replace(/(^[0-9]+)\//,(function(e,t){return t=Number(t),x[t]+"/"})),M[e]=a}))})),M.utc={offset:0,hem:"n"};for(var T=-14;T<=14;T+=.5){var C=T;C>0&&(C="+"+C);var P="etc/gmt"+C;M[P]={offset:-1*T,hem:"n"},M[P="utc/gmt"+C]={offset:-1*T,hem:"n"}}var q=M,E=/(\-?[0-9]+)h(rs)?/i,S=/(\-?[0-9]+)/,V=/utc([\-+]?[0-9]+)/i,N=/gmt([\-+]?[0-9]+)/i,L=function(e){return(e=Number(e))>-13&&e<13?"etc/gmt"+(e=((e*=-1)>0?"+":"")+e):null},I=function(e){var t=e.match(E);if(null!==t)return L(t[1]);if(null!==(t=e.match(V)))return L(t[1]);if(null!==(t=e.match(N))){var a=-1*Number(t[1]);return L(a)}return null!==(t=e.match(S))?L(t[1]):null},Y=function(){var e=function(){if("undefined"==typeof Intl||void 0===Intl.DateTimeFormat)return null;var e=Intl.DateTimeFormat();if(void 0===e||void 0===e.resolvedOptions)return null;var t=e.resolvedOptions().timeZone;return t?t.toLowerCase():null}();return null===e?"utc":e}(),$=Object.keys(q).reduce((function(e,t){var a=t.split("/")[1]||"";return e[a=a.replace(/_/g," ")]=t,e}),{}),H=function(e,t){if(!e)return Y;var a=e.trim(),n=e.split("/");if(n.length>2&&!1===t.hasOwnProperty(a)&&(a=n[0]+"/"+n[1]),a=a.toLowerCase(),!0===t.hasOwnProperty(a))return a;if(a=function(e){return 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===$.hasOwnProperty(a))return $[a];if(!0===/[0-9]/.test(a)){var r=I(a);if(r)return r}throw new Error("Spacetime: Cannot find timezone named: '"+e+"'. Please enter an IANA timezone id.")},B={millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5};B.date=B.day,B.month=25488e5,B.week=6048e5,B.year=3154e7,Object.keys(B).forEach((function(e){B[e+"s"]=B[e]}));var F=B,J=function(e,t,a,n,r){var i=e.d[a]();if(i!==t){var o=null===r?null:e.d[r](),u=e.epoch,s=t-i;e.epoch+=F[n]*s,"day"===n&&Math.abs(s)>28&&t<28&&(e.epoch+=F.hour);for(var c=F[n]/2;e.d[a]()t;)e.epoch-=c;null!==r&&o!==e.d[r]()&&(e.epoch=u,e.epoch+=F[n]*s*.89)}},Q={year:{valid:function(e){return e>-4e3&&e<4e3},walkTo:function(e,t){return J(e,t,"getFullYear","year",null)}},month:{valid:function(e){return e>=0&&e<=11},walkTo:function(e,t){var a=e.d,n=a.getMonth(),r=e.epoch,i=a.getFullYear();if(n!==t){var o=t-n;for(e.epoch+=F.day*(28*o),i!==e.d.getFullYear()&&(e.epoch=r);e.d.getMonth()t;)e.epoch-=F.day}}},date:{valid:function(e){return e>0&&e<=31},walkTo:function(e,t){return J(e,t,"getDate","day","getMonth")}},hour:{valid:function(e){return e>=0&&e<24},walkTo:function(e,t){return J(e,t,"getHours","hour","getDate")}},minute:{valid:function(e){return e>=0&&e<60},walkTo:function(e,t){return J(e,t,"getMinutes","minute","getHours")}},second:{valid:function(e){return e>=0&&e<60},walkTo:function(e,t){e.epoch=e.seconds(t).epoch}},millisecond:{valid:function(e){return e>=0&&e<1e3},walkTo:function(e,t){e.epoch=e.milliseconds(t).epoch}}},K=function(e,t){for(var a=Object.keys(Q),n=e.clone(),r=0;r100&&(a/=100),(a*=-1)>=0&&(a="+"+a);var n="etc/gmt"+a;return e.timezones[n]&&(e.tz=n),e},te=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",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){var n=Number(a[1]);if(n<0||n>24)return e.startOf("day");var r=Number(a[2]);if(a[2].length<2||r<0||r>59)return e.startOf("day");e=(e=(e=(e=e.hour(n)).minute(r)).seconds(a[3]||0)).millisecond(a[4]||0);var i=t.match(/[\b0-9](am|pm)\b/);return null!==i&&i[1]&&(e=e.ampm(i[1])),e}if(null!==(a=t.match(/([0-9]+) ?(am|pm)/))&&a[1]){var o=Number(a[1]);return o>12||o<1?e.startOf("day"):e=(e=(e=e.hour(a[1]||0)).ampm(a[2])).startOf("hour")}return e=e.startOf("day")},ae=[31,28,31,30,31,30,31,31,30,31,30,31],ne=A.isLeapYear,re=function(e){if(!0!==ae.hasOwnProperty(e.month))return!1;if(1===e.month)return!!(ne(e.year)&&e.date<=29)||e.date<=28;var t=ae[e.month]||0;return e.date<=t},ie=R(),oe=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=parseInt(e.trim(),10);return t=t||(new Date).getFullYear()},ue=[{reg:/^(\-?0?0?[0-9]{3,4})-([0-9]{1,2})-([0-9]{1,2})[T| ]([0-9.:]+)(Z|[0-9\-\+:]+)?$/,parse:function(e,t,a,n){var r=parseInt(t[2],10)-1,i={year:t[1],month:r,date:t[3]};return!1===re(i)?(e.epoch=null,e):(ee(e,t[5]),K(e,i),e=te(e,t[4]))}},{reg:/^([0-9]{4})[\-\/]([0-9]{1,2})[\-\/]([0-9]{1,2}),?( [0-9]{1,2}:[0-9]{2}:?[0-9]{0,2}? ?(am|pm|gmt))?$/i,parse:function(e,t){var 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===re(a)?(e.epoch=null,e):(K(e,a),e=te(e,t[4]))}},{reg:/^([0-9]{1,2})[\-\/]([0-9]{1,2})[\-\/]?([0-9]{4})?,?( [0-9]{1,2}:[0-9]{2}:?[0-9]{0,2}? ?(am|pm|gmt))?$/i,parse:function(e,t){var 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);var r={year:t[3]||(new Date).getFullYear(),month:a,date:n};return!1===re(r)?(e.epoch=null,e):(K(e,r),e=te(e,t[4]))}},{reg:/^([0-9]{1,2})[\-\/]([a-z]+)[\-\/]?([0-9]{4})?$/i,parse:function(e,t){var a=ie[t[2].toLowerCase()],n={year:oe(t[3]),month:a,date:A.toCardinal(t[1]||"")};return!1===re(n)?(e.epoch=null,e):(K(e,n),e=te(e,t[4]))}},{reg:/^([a-z]+) ([0-9]{1,2}(?:st|nd|rd|th)?),?( [0-9]{4})?( ([0-9:]+( ?am| ?pm| ?gmt)?))?$/i,parse:function(e,t){var a=ie[t[1].toLowerCase()],n={year:oe(t[3]),month:a,date:A.toCardinal(t[2]||"")};return!1===re(n)?(e.epoch=null,e):(K(e,n),e=te(e,t[4]))}},{reg:/^([a-z]+) ([0-9]{4})$/i,parse:function(e,t){var a=ie[t[1].toLowerCase()],n={year:oe(t[2]),month:a,date:1};return!1===re(n)?(e.epoch=null,e):(K(e,n),e=te(e,t[4]))}},{reg:/^([0-9]{1,2}(?:st|nd|rd|th)?) ([a-z]+),?( [0-9]{4})?,? ?([0-9]{1,2}:[0-9]{2}:?[0-9]{0,2}? ?(am|pm|gmt))?$/i,parse:function(e,t){var a=ie[t[2].toLowerCase()];if(!a)return null;var n={year:oe(t[3]),month:a,date:A.toCardinal(t[1])};return!1===re(n)?(e.epoch=null,e):(K(e,n),e=te(e,t[4]))}},{reg:/^[0-9,]+ ?b\.?c\.?$/i,parse:function(e,t){var a=t[0]||"";a=(a=a.replace(/^([0-9,]+) ?b\.?c\.?$/i,"-$1")).replace(/,/g,"");var n=parseInt(a.trim(),10),r=new Date,i={year:n,month:r.getMonth(),date:r.getDate()};return!1===re(i)?(e.epoch=null,e):(K(e,i),e=te(e))}},{reg:/^[0-9,]+ ?(a\.?d\.?|c\.?e\.?)$/i,parse:function(e,t){var a=t[0]||"";a=a.replace(/,/g,"");var n=parseInt(a.trim(),10),r=new Date,i={year:n,month:r.getMonth(),date:r.getDate()};return!1===re(i)?(e.epoch=null,e):(K(e,i),e=te(e))}},{reg:/^[0-9]{4}( ?a\.?d\.?)?$/i,parse:function(e,t){var a=oe(t[0]),n=new Date,r={year:a,month:n.getMonth(),date:n.getDate()};return!1===re(r)?(e.epoch=null,e):(K(e,r),e=te(e))}}],se={now:function(e){return e.epoch=Date.now(),e},tonight:function(e){return e.epoch=Date.now(),e=e.hour(18)},today:function(e){return e.epoch=Date.now(),e},tomorrow:function(e){return e.epoch=Date.now(),e=(e=e.add(1,"day")).startOf("day")},yesterday:function(e){return e.epoch=Date.now(),e=(e=e.subtract(1,"day")).startOf("day")},christmas:function(e){var t=(new Date).getFullYear();return e=e.set([t,11,25,18,0,0])},"new years":function(e){var t=(new Date).getFullYear();return e=e.set([t,11,31,18,0,0])}};se["new years eve"]=se["new years"];var ce=se,de={year:(new Date).getFullYear(),month:0,date:1},le=function(e,t,a){if("number"==typeof t)return t>0&&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;if(e.epoch=Date.now(),null==t)return e;if(!0===A.isDate(t))return e.epoch=t.getTime(),e;if(!0===A.isArray(t))return e=function(e,t){for(var a=["year","month","date","hour","minute","second","millisecond"],n=0;n=0?Math.floor(t):Math.ceil(t)),a?(t*=-1,t="-"+(t=A.zeroPad(t,2))):t="+"+(t=A.zeroPad(t,2)),"+00:00"===(t=t+":"+n)&&(t="Z"),t},ve={day:function(e){return A.titleCase(e.dayName())},"day-short":function(e){return A.titleCase(fe()[e.day()])},"day-number":function(e){return e.day()},"day-ordinal":function(e){return A.ordinal(e.day())},"day-pad":function(e){return A.zeroPad(e.day())},date:function(e){return e.date()},"date-ordinal":function(e){return A.ordinal(e.date())},"date-pad":function(e){return A.zeroPad(e.date())},month:function(e){return A.titleCase(e.monthName())},"month-short":function(e){return A.titleCase(W()[e.month()])},"month-number":function(e){return e.month()},"month-ordinal":function(e){return A.ordinal(e.month())},"month-pad":function(e){return A.zeroPad(e.month())},"iso-month":function(e){return A.zeroPad(e.month()+1)},year:function(e){var t=e.year();return t>0?t:(t=Math.abs(t),t+" BC")},"year-short":function(e){var t=e.year();return t>0?"'".concat(String(e.year()).substr(2,4)):(t=Math.abs(t))+" BC"},"iso-year":function(e){var t=e.year(),a=t<0,n=A.zeroPad(Math.abs(t),4);return a&&(n="-"+(n=A.zeroPad(n,6))),n},time:function(e){return e.time()},"time-24":function(e){return"".concat(e.hour24(),":").concat(A.zeroPad(e.minute()))},hour:function(e){return e.hour12()},"hour-pad":function(e){return A.zeroPad(e.hour12())},"hour-24":function(e){return e.hour24()},"hour-24-pad":function(e){return A.zeroPad(e.hour24())},minute:function(e){return e.minute()},"minute-pad":function(e){return A.zeroPad(e.minute())},second:function(e){return e.second()},"second-pad":function(e){return A.zeroPad(e.second())},ampm:function(e){return e.ampm()},quarter:function(e){return"Q"+e.quarter()},season:function(e){return e.season()},era:function(e){return e.era()},json:function(e){return e.json()},timezone:function(e){return e.timezone().name},offset:function(e){return ge(e)},numeric:function(e){return"".concat(e.year(),"/").concat(A.zeroPad(e.month()+1),"/").concat(A.zeroPad(e.date()))},"numeric-us":function(e){return"".concat(A.zeroPad(e.month()+1),"/").concat(A.zeroPad(e.date()),"/").concat(e.year())},"numeric-uk":function(e){return"".concat(A.zeroPad(e.date()),"/").concat(A.zeroPad(e.month()+1),"/").concat(e.year())},"mm/dd":function(e){return"".concat(A.zeroPad(e.month()+1),"/").concat(A.zeroPad(e.date()))},iso:function(e){var t=e.format("iso-year"),a=A.zeroPad(e.month()+1),n=A.zeroPad(e.date()),r=A.zeroPad(e.h24()),i=A.zeroPad(e.minute()),o=A.zeroPad(e.second()),u=A.zeroPad(e.millisecond(),3),s=ge(e);return"".concat(t,"-").concat(a,"-").concat(n,"T").concat(r,":").concat(i,":").concat(o,".").concat(u).concat(s)},"iso-short":function(e){var t=A.zeroPad(e.month()+1),a=A.zeroPad(e.date());return"".concat(e.year(),"-").concat(t,"-").concat(a)},"iso-utc":function(e){return new Date(e.epoch).toISOString()},nice:function(e){return"".concat(W()[e.month()]," ").concat(A.ordinal(e.date()),", ").concat(e.time())},"nice-year":function(e){return"".concat(W()[e.month()]," ").concat(A.ordinal(e.date()),", ").concat(e.year())},"nice-day":function(e){return"".concat(fe()[e.day()]," ").concat(A.titleCase(W()[e.month()])," ").concat(A.ordinal(e.date()))},"nice-full":function(e){return"".concat(e.dayName()," ").concat(A.titleCase(e.monthName())," ").concat(A.ordinal(e.date()),", ").concat(e.time())}},be={"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",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(be).forEach((function(e){return ve[e]=ve[be[e]]}));var we=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";if(!0!==e.isValid())return"";if(ve.hasOwnProperty(t)){var a=ve[t](e)||"";return"json"!==t&&(a=String(a),"ampm"!==t&&(a=A.titleCase(a))),a}if(-1!==t.indexOf("{")){var n=/\{(.+?)\}/g;return t=t.replace(n,(function(t,a){return a=a.toLowerCase().trim(),ve.hasOwnProperty(a)?String(ve[a](e)||""):""}))}return e.format("iso-short")},ke=A.zeroPad,De=A.formatTimezone,Ae={G:function(e){return e.era()},GG:function(e){return e.era()},GGG:function(e){return e.era()},GGGG:function(e){return"AD"===e.era()?"Anno Domini":"Before Christ"},y:function(e){return e.year()},yy:function(e){return parseInt(String(e.year()).substr(2,4),10)},yyy:function(e){return e.year()},yyyy:function(e){return e.year()},yyyyy:function(e){return"0"+e.year()},Q:function(e){return e.quarter()},QQ:function(e){return e.quarter()},QQQ:function(e){return e.quarter()},QQQQ:function(e){return e.quarter()},M:function(e){return e.month()+1},MM:function(e){return ke(e.month()+1)},MMM:function(e){return e.format("month-short")},MMMM:function(e){return e.format("month")},w:function(e){return e.week()},ww:function(e){return ke(e.week())},d:function(e){return e.date()},dd:function(e){return ke(e.date())},D:function(e){return e.dayOfYear()},DD:function(e){return ke(e.dayOfYear())},DDD:function(e){return ke(e.dayOfYear(),3)},E:function(e){return e.format("day-short")},EE:function(e){return e.format("day-short")},EEE:function(e){return e.format("day-short")},EEEE:function(e){return e.format("day")},EEEEE:function(e){return e.format("day")[0]},e:function(e){return e.day()},ee:function(e){return e.day()},eee:function(e){return e.format("day-short")},eeee:function(e){return e.format("day")},eeeee:function(e){return e.format("day")[0]},a:function(e){return e.ampm().toUpperCase()},aa:function(e){return e.ampm().toUpperCase()},aaa:function(e){return e.ampm().toUpperCase()},aaaa:function(e){return e.ampm().toUpperCase()},h:function(e){return e.h12()},hh:function(e){return ke(e.h12())},H:function(e){return e.hour()},HH:function(e){return ke(e.hour())},m:function(e){return e.minute()},mm:function(e){return ke(e.minute())},s:function(e){return e.second()},ss:function(e){return ke(e.second())},A:function(e){return e.epoch-e.startOf("day").epoch},z:function(e){return e.timezone().name},zz:function(e){return e.timezone().name},zzz:function(e){return e.timezone().name},zzzz:function(e){return e.timezone().name},Z:function(e){return De(e.timezone().current.offset)},ZZ:function(e){return De(e.timezone().current.offset)},ZZZ:function(e){return De(e.timezone().current.offset)},ZZZZ:function(e){return De(e.timezone().current.offset,":")}},ze=function(e,t,a){for(var n=e,r=t,i=0;i.5&&(e=e.add(1,t)),e=e.startOf(t)):!1===e.silent&&console.warn("no known unit '"+t+"'"),e},Te=function(e,t,a){var n=0;for(e=e.clone();e.isBefore(t);)e=e.add(1,a),n+=1;return e.isAfter(t,a)&&(n-=1),n},Ce=function(e,t,a){return e.isBefore(t)?Te(e,t,a):-1*Te(t,e,a)},Pe=function(e,t){var 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);var r=e.clone();return n.years=function(e,t){var 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+=Ce(r,t,"month"),n.weeks=52*n.years,r=e.add(n.weeks,"week"),n.weeks+=Ce(r,t,"week"),n.days=7*n.weeks,r=e.add(n.days,"day"),n.days+=Ce(r,t,"day"),n},qe=function(e,t,a){t=A.beADate(t,e);var n=!1;if(e.isAfter(t)){var r=e;e=t,t=r,n=!0}var i=Pe(e,t);return n&&(i=function(e){return Object.keys(e).forEach((function(t){e[t]*=-1})),e}(i)),a?(a=A.normalize(a),!0!==/s$/.test(a)&&(a+="s"),"dates"===a&&(a="days"),i[a]):i},Ee={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 Se(e,t){return 1===e&&(t=t.slice(0,-1)),e+" "+t}var Ve=function(e,t){var a,n,r,i=function(e,t){var a=e.isBefore(t),n=a?t:e,r=a?e:t;r=r.clone();var i={years:0,months:0,days:0,hours:0,minutes:0,seconds:0};return Object.keys(i).forEach((function(e){if(!r.isSame(n,e)){var t=r.diff(n,e);r=r.add(t,e),i[e]=t}})),a&&Object.keys(i).forEach((function(e){0!==i[e]&&(i[e]*=-1)})),i}(e,t=A.beADate(t,e));if(!0===Object.keys(i).every((function(e){return!i[e]})))return{diff:i,rounded:"now",qualified:"now",precise:"now"};var o=[];return Object.keys(i).forEach((function(e,t,r){var u=Math.abs(i[e]);if(0!==u){var s=Se(u,e);if(o.push(s),!a){if(a=n=s,t>4)return;var c=r[t+1],d=Math.abs(i[c]);d>Ee[c].almost?(a=Se(u+1,e),n="almost "+a):d>Ee[c].over&&(n="over "+s)}}})),r=o.splice(0,2).join(", "),!0===e.isAfter(t)?(a+=" ago",n+=" ago",r+=" ago"):(a="in "+a,n="in "+n,r="in "+r),{diff:i,rounded:a,qualified:n,precise:r}},Ne={north:[["spring",2,1],["summer",5,1],["fall",8,1],["autumn",8,1],["winter",11,1]],south:[["fall",2,1],["autumn",2,1],["winter",5,1],["spring",8,1],["summer",11,1]]},Le=[null,[0,1],[3,1],[6,1],[9,1]],Ie={minute:function(e){return K(e,{second:0,millisecond:0}),e},quarterhour:function(e){var t=e.minutes();return e=t>=45?e.minutes(45):t>=30?e.minutes(30):t>=15?e.minutes(15):e.minutes(0),K(e,{second:0,millisecond:0}),e},hour:function(e){return K(e,{minute:0,second:0,millisecond:0}),e},day:function(e){return K(e,{hour:0,minute:0,second:0,millisecond:0}),e},week:function(e){var t=e.clone();return(e=e.day(e._weekStart)).isAfter(t)&&(e=e.subtract(1,"week")),K(e,{hour:0,minute:0,second:0,millisecond:0}),e},month:function(e){return K(e,{date:1,hour:0,minute:0,second:0,millisecond:0}),e},quarter:function(e){var t=e.quarter();return Le[t]&&K(e,{month:Le[t][0],date:Le[t][1],hour:0,minute:0,second:0,millisecond:0}),e},season:function(e){var t=e.season(),a="north";"South"===e.hemisphere()&&(a="south");for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:"",a=arguments.length>2?arguments[2]:void 0;if(!t||!a)return[];if(t=A.normalize(t),a=e.clone().set(a),e.isAfter(a)){var n=e;e=a,a=n}var r=e.clone();He(t)?(r=r.next(t),t="week"):r=r.next(t);for(var i=[];r.isBefore(a);)i.push(r),r=r.add(1,t);return i},Fe=function(e){var t=e.timezones,a=e.tz;if(!1===t.hasOwnProperty(a)&&(a=H(e.tz,t)),null===a)return!1===e.silent&&console.warn("Warn: could not find given or local timezone - '"+e.tz+"'"),{current:{epochShift:0}};var n,r,i=t[a],o={name:(n=a,n=(n=(n=n[0].toUpperCase()+n.substr(1)).replace(/\/gmt/,"/GMT")).replace(/[\/_]([a-z])/gi,(function(e){return e.toUpperCase()}))),hasDst:Boolean(i.dst),default_offset:i.offset,hemisphere:"s"===i.hem?"South":"North",current:{}};if(o.hasDst){var u=(r=i.dst)?r.split("->"):[];o.change={start:u[0],back:u[1]}}var s=i.offset,c=s;return!0===o.hasDst&&(c="North"===o.hemisphere?s-1:i.offset+1),!1===o.hasDst?(o.current.offset=s,o.current.isDST=!1):!0===O(e.epoch,o.change.start,o.change.back,s)?(o.current.offset=s,o.current.isDST="North"===o.hemisphere):(o.current.offset=c,o.current.isDST="South"===o.hemisphere),o},Je=["century","decade","year","month","date","day","hour","minute","second","millisecond"],Qe={set:function(e,t){var a=this.clone();return a=le(a,e),t&&(this.tz=H(t)),a},timezone:function(){return Fe(this)},isDST:function(){return Fe(this).current.isDST},hasDST:function(){return Fe(this).hasDst},offset:function(){return 60*Fe(this).current.offset},hemisphere:function(){return Fe(this).hemisphere},format:function(e){return we(this,e)},unixFmt:function(e){return Oe(this,e)},startOf:function(e){return Ye(this,e)},endOf:function(e){return $e(this,e)},leapYear:function(){var e=this.year();return A.isLeapYear(e)},progress:function(e){return _e(this,e)},nearest:function(e){return Me(this,e)},diff:function(e,t){return qe(this,e,t)},since:function(e){return e||(e=this.clone().set()),Ve(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){var t=this.clone();return t.tz=H(e,t.timezones),t},every:function(e,t){return Be(this,e,t)},isAwake:function(){var e=this.hour();return!(e<8||e>22)},isAsleep:function(){return!this.isAwake()},log:function(){return console.log(""),console.log(we(this,"nice-short")),this},logYear:function(){return console.log(""),console.log(we(this,"full-short")),this},json:function(){var e=this;return Je.reduce((function(t,a){return t[a]=e[a](),t}),{})},debug:function(){var 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();var 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}};Qe.inDST=Qe.isDST,Qe.round=Qe.nearest,Qe.each=Qe.every;var Ke=Qe,Ze=function(e){return"string"==typeof e&&(e=parseInt(e,10)),e},Ge=["year","month","date","hour","minute","second","millisecond"],We=function(e,t,a){for(var n=Ge.indexOf(a),r=Ge.slice(n,Ge.length),i=0;i=24?t=24:t<0&&(t=0);var a=e.clone(),n=(e.hour()-t)*F.hour;return e.epoch-=n,K(e,{hour:t}),We(e,a,"minute"),e.epoch},tt=function(e,t){var a=t.match(/([0-9]{1,2}):([0-9]{1,2})(am|pm)?/);if(!a){if(!(a=t.match(/([0-9]{1,2})(am|pm)/)))return e.epoch;a.splice(2,0,"0")}var n=!1,r=parseInt(a[1],10),i=parseInt(a[2],10);return r>12&&(n=!0),!1===n&&("am"===a[3]&&12===r&&(r=0),"pm"===a[3]&&r<12&&(r+=12)),(e=(e=(e=(e=e.hour(r)).minute(i)).second(0)).millisecond(0)).epoch},at=function(e,t){if((t=Ze(t))>28){var a=ae[e.month()];t>a&&(t=a)}return t<=0&&(t=1),K(e,{date:t}),e.epoch},nt=function(e,t){"string"==typeof t&&(t=R()[t.toLowerCase()]),(t=Ze(t))>=12&&(t=11),t<=0&&(t=0);var a=e.date();return a>ae[t]&&(a=ae[t]),K(e,{month:t,date:a}),e.epoch},rt=function(e,t){return t=Ze(t),K(e,{year:t}),e.epoch},it=function(e,t){t=Ze(t);var a=e.clone();return(t-=1)<=0?t=0:t>=365&&(t=364),e=(e=e.startOf("year")).add(t,"day"),We(e,a,"hour"),e.epoch},ot={millisecond:function(e){if(void 0!==e){var t=this.clone();return t.epoch=Ue(t,e),t}return this.d.getMilliseconds()},second:function(e){if(void 0!==e){var t=this.clone();return t.epoch=Re(t,e),t}return this.d.getSeconds()},minute:function(e){if(void 0!==e){var t=this.clone();return t.epoch=Xe(t,e),t}return this.d.getMinutes()},hour:function(e){var t=this.d;if(void 0!==e){var a=this.clone();return a.epoch=et(a,e),a}return t.getHours()},hourFloat:function(e){if(void 0!==e){var t=this.clone(),a=e%1;a*=60;var n=parseInt(e,10);return t.epoch=et(t,n),t.epoch=Xe(t,a),t}var r=this.d,i=r.getHours(),o=r.getMinutes();return i+(o/=60)},hour12:function(e){var t=this.d;if(void 0!==e){var a=this.clone(),n=(e=""+e).match(/^([0-9]+)(am|pm)$/);if(n){var r=parseInt(n[1],10);"pm"===n[2]&&(r+=12),a.epoch=et(a,r)}return a}var i=t.getHours();return i>12&&(i-=12),0===i&&(i=12),i},time:function(e){if(void 0!==e){var t=this.clone();return t.epoch=tt(t,e),t}return"".concat(this.h12(),":").concat(A.zeroPad(this.minute())).concat(this.ampm())},ampm:function(e){var t="am",a=this.hour();if(a>=12&&(t="pm"),"string"!=typeof e)return t;var n=this.clone();return e=e.toLowerCase().trim(),a>=12&&"am"===e?(a-=12,n.hour(a)):a<12&&"pm"===e?(a+=12,n.hour(a)):n},dayTime:function(e){if(void 0!==e){var t={morning:"7:00am",breakfast:"7:00am",noon:"12:00am",lunch:"12:00pm",afternoon:"2:00pm",evening:"6:00pm",dinner:"6:00pm",night:"11:00pm",midnight:"23:59pm"},a=this.clone();return e=(e=e||"").toLowerCase(),!0===t.hasOwnProperty(e)&&(a=a.time(t[e])),a}var n=this.hour();return n<6?"night":n<12?"morning":n<17?"afternoon":n<22?"evening":"night"},iso:function(e){return void 0!==e?this.set(e):this.format("iso")}},ut={date:function(e){if(void 0!==e){var t=this.clone();return t.epoch=at(t,e),t}return this.d.getDate()},day:function(e){if(void 0===e)return this.d.getDay();var t=this.clone(),a=e;"string"==typeof e&&(e=e.toLowerCase(),-1===(a=fe().indexOf(e))&&(a=ye().indexOf(e)));var n=this.d.getDay(),r=n-a,i=this.subtract(24*r,"hours");return K(i,{hour:t.hour(),minute:t.minute(),second:t.second()}),i},dayName:function(e){if(void 0===e)return ye()[this.day()];var t=this.clone();return t=t.day(e)},month:function(e){if(void 0!==e){var t=this.clone();return t.epoch=nt(t,e),t}return this.d.getMonth()}},st=function(e){return e=(e=(e=e.minute(0)).second(0)).millisecond(1)},ct={dayOfYear:function(e){if(void 0!==e){var t=this.clone();return t.epoch=it(t,e),t}for(var a,n=0,r=this.d.getMonth(),i=1;i<=r;i++)(a=new Date).setDate(1),a.setFullYear(this.d.getFullYear()),a.setHours(1),a.setMinutes(1),a.setMonth(i),a.setHours(-2),n+=a.getDate();return n+this.d.getDate()},week:function(e){if(void 0!==e){var t=this.clone();return t=(t=(t=t.month(0)).date(1)).day("monday"),"december"===(t=st(t)).monthName()&&(t=t.add(1,"week")),e-=1,t=t.add(e,"weeks")}var a=this.clone();a=(a=a.month(0)).date(1),"december"===(a=(a=st(a)).day("monday")).monthName()&&(a=a.add(1,"week"));var n=1;1===a.date()&&(n=0),a=a.minus(1,"second");var r=this.epoch;if(a.epoch>r)return 1;var i=0,o=4*this.month();for(a.epoch+=F.week*o,i+=o;i<52;i++){if(a.epoch>r)return i+n;a=a.add(1,"week")}return 52},monthName:function(e){if(void 0===e)return U()[this.month()];var t=this.clone();return t=t.month(e)},quarter:function(e){if(void 0!==e&&("string"==typeof e&&(e=e.replace(/^q/i,""),e=parseInt(e,10)),Le[e])){var t=this.clone(),a=Le[e][0];return t=(t=(t=t.month(a)).date(1)).startOf("day")}for(var n=this.d.getMonth(),r=1;r=Ne[t][i][1]&&r0&&(t.epoch=rt(t,-1*a)),"ad"===e&&a<0&&(t.epoch=rt(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);var 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,(function(e,t,a){return a.match(/b\.?c\.?/i)&&(t="-"+t),t}))).replace(/c$/,""));var 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))}var a=this.startOf("century").year();return(a=Math.floor(a/100))<0?a-1:a+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);var t=1e3*e;return 0===t&&(t=1),this.year(t)}var a=Math.floor(this.year()/1e3);return a>=0&&(a+=1),a}},dt=Object.assign({},ot,ut,ct);dt.milliseconds=dt.millisecond,dt.seconds=dt.second,dt.minutes=dt.minute,dt.hours=dt.hour,dt.hour24=dt.hour,dt.h12=dt.hour12,dt.h24=dt.hour24,dt.days=dt.day;var lt=function(e){Object.keys(dt).forEach((function(t){e.prototype[t]=dt[t]}))},ht=["millisecond","second","minute","hour","date","month"],mt={second:ht.slice(0,1),minute:ht.slice(0,2),quarterhour:ht.slice(0,2),hour:ht.slice(0,3),date:ht.slice(0,4),month:ht.slice(0,4),quarter:ht.slice(0,4),season:ht.slice(0,4),year:ht,decade:ht,century:ht};mt.week=mt.hour,mt.season=mt.date,mt.quarter=mt.date;var ft={year:!0,quarter:!0,season:!0,month:!0,week:!0,day:!0},yt={month:!0,quarter:!0,season:!0,year:!0},pt=function(e){e.prototype.add=function(e,t){var a=this.clone();if(!t||0===e)return a;var n=this.clone();t=A.normalize(t),F[t]?a.epoch+=F[t]*e:"week"===t?a.epoch+=F.day*(7*e):"quarter"===t||"season"===t?a.epoch+=F.month*(4*e):"season"===t?a.epoch+=F.month*(4*e):"quarterhour"===t&&(a.epoch+=15*F.minute*e);var r={};if(mt[t]&&mt[t].forEach((function(e){r[e]=n[e]()})),ft[t]){var i=n.timezone().current.offset-a.timezone().current.offset;a.epoch+=3600*i*1e3}if("month"===t&&(r.month=n.month()+e,r=function(e,t){if(e.month>0){var a=parseInt(e.month/12,10);e.year=t.year()+a,e.month=e.month%12}else if(e.month<0){var n=Math.floor(Math.abs(e.month)/13,10);n=Math.abs(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}(r,n)),"week"===t){var o=n.date()+7*e;o<=28&&o>1&&(r.date=o)}else if("date"===t){var u=n.date()+e;u<=28&&u>1?r.date=u:0!==e&&n.isSame(a,"day")&&(r.date=n.date()+e)}else"year"===t&&a.year()===n.year()?a.epoch+=F.week:"decade"===t?r.year=a.year()+10:"century"===t&&(r.year=a.year()+100);if(yt[t]){var s=ae[r.month];r.date=n.date(),r.date>s&&(r.date=s)}return K(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},gt={millisecond:function(e){return e.epoch},second:function(e){return[e.year(),e.month(),e.date(),e.hour(),e.minute(),e.second()].join("-")},minute:function(e){return[e.year(),e.month(),e.date(),e.hour(),e.minute()].join("-")},hour:function(e){return[e.year(),e.month(),e.date(),e.hour()].join("-")},day:function(e){return[e.year(),e.month(),e.date()].join("-")},week:function(e){return[e.year(),e.week()].join("-")},month:function(e){return[e.year(),e.month()].join("-")},quarter:function(e){return[e.year(),e.quarter()].join("-")},year:function(e){return e.year()}};gt.date=gt.day;var vt=function(e){e.prototype.isSame=function(t,a){return a?("string"!=typeof t&&"number"!=typeof t||(t=new e(t,this.timezone.name)),a=a.replace(/s$/,""),gt[a]?gt[a](this)===gt[a](t):null):null}},bt=function(e){var t={isAfter:function(e){e=A.beADate(e,this);var t=A.getEpoch(e);return null===t?null:this.epoch>t},isBefore:function(e){e=A.beADate(e,this);var t=A.getEpoch(e);return null===t?null:this.epoch2&&void 0!==arguments[2]?arguments[2]:{};if(this.epoch=null,this.tz=H(t,kt),this.silent=a.silent||!0,this.british=a.dmy||a.british,this._weekStart=1,void 0!==a.weekStart&&(this._weekStart=a.weekStart),Object.defineProperty(this,"d",{get:function(){var e=j(this),t=(new Date(this.epoch).getTimezoneOffset()||0)+60*e;t=60*t*1e3;var a=this.epoch+t;return new Date(a)}}),Object.defineProperty(this,"timezones",{get:function(){return kt},set:function(e){return kt=e,e}}),void 0!==e||null===e){var n=le(this,e,t);this.epoch=n.epoch}};Object.keys(Ke).forEach((function(e){Dt.prototype[e]=Ke[e]})),Dt.prototype.clone=function(){return new Dt(this.epoch,this.tz,{silent:this.silent,weekStart:this._weekStart})},lt(Dt),pt(Dt),vt(Dt),bt(Dt),wt(Dt);var At=Dt,zt=function(e,t){var a=new At(null),n=new At(null);a=a.time(e),n=t?n.time(t):a.add(59,"minutes");var r=a.hour(),i=n.hour();return Object.keys(a.timezones).filter((function(e){if(-1===e.indexOf("/"))return!1;var t=new At(null,e),o=t.hour();return o>=r&&o<=i&&(!(o===r&&t.minute()n.minute()))}))},Ot=function(e,t,a){return new At(e,t,a)};Ot.now=function(e,t){return new At((new Date).getTime(),e,t)},Ot.today=function(e,t){return new At((new Date).getTime(),e,t).startOf("day")},Ot.tomorrow=function(e,t){return new At((new Date).getTime(),e,t).add(1,"day").startOf("day")},Ot.yesterday=function(e,t){return new At((new Date).getTime(),e,t).subtract(1,"day").startOf("day")},Ot.extend=function(e){return Object.keys(e).forEach((function(t){At.prototype[t]=e[t]})),this},Ot.whereIts=zt,Ot.version="6.3.0",Ot.plugin=Ot.extend;var jt=Ot;"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;var xt=function(e){return e&&e.default||e}(Object.freeze({__proto__:null,default:jt})),_t="Australia/",Mt="Pacific/",Tt={"british summer time":"Europe/London",bst:"Europe/London","british time":"Europe/London","britain time":"Europe/London","irish summer time":"Europe/Dublin","irish time":"Europe/Dublin",ireland:"Europe/Dublin","central european time":"Europe/Berlin",cet:"Europe/Berlin","central european summer time":"Europe/Berlin",cest:"Europe/Berlin","central europe":"Europe/Berlin","eastern european time":"Europe/Riga",eet:"Europe/Riga","eastern european summer time":"Europe/Riga",eest:"Europe/Riga","eastern europe time":"Europe/Riga","western european time":"Europe/Lisbon","western european summer time":"Europe/Lisbon","western europe":"Europe/Lisbon","turkey standard time":"Europe/Istanbul",trt:"Europe/Istanbul","turkish time":"Europe/Istanbul",etc:"Africa/Freetown",utc:"Africa/Freetown","greenwich standard time":"Africa/Freetown",gmt:"Africa/Freetown","east africa time":"Africa/Nairobi","east african time":"Africa/Nairobi","eastern africa time":"Africa/Nairobi","central africa time":"Africa/Khartoum","central african time":"Africa/Khartoum","south africa standard time":"Africa/Johannesburg",sast:"Africa/Johannesburg","southern africa":"Africa/Johannesburg","south african":"Africa/Johannesburg","west africa standard time":"Africa/Lagos","western africa time":"Africa/Lagos","west african time":"Africa/Lagos","australian central standard time":_t+"Adelaide",acst:_t+"Adelaide","australian central daylight time":_t+"Adelaide",acdt:_t+"Adelaide","australia central":_t+"Adelaide","australian eastern standard time":_t+"Brisbane",aest:_t+"Brisbane","australian eastern daylight time":_t+"Brisbane",aedt:_t+"Brisbane","australia east":_t+"Brisbane","australian western standard time":_t+"Perth",awst:_t+"Perth","australian western daylight time":_t+"Perth",awdt:_t+"Perth","australia west":_t+"Perth","australian central western standard time":_t+"Eucla",acwst:_t+"Eucla","australia central west":_t+"Eucla","lord howe standard time":_t+"Lord_Howe",lhst:_t+"Lord_Howe","lord howe daylight time":_t+"Lord_Howe",lhdt:_t+"Lord_Howe","russian standard time":"Europe/Moscow",msk:"Europe/Moscow",russian:"Europe/Moscow","central standard time":"America/Chicago","central time":"America/Chicago",cst:"America/Havana","central daylight time":"America/Chicago",cdt:"America/Havana","mountain standard time":"America/Denver","mountain time":"America/Denver",mst:"America/Denver","mountain daylight time":"America/Denver",mdt:"America/Denver","atlantic standard time":"America/Halifax","atlantic time":"America/Halifax",ast:"Asia/Baghdad","atlantic daylight time":"America/Halifax",adt:"America/Halifax","eastern standard time":"America/New_York","eastern time":"America/New_York",est:"America/New_York","eastern daylight time":"America/New_York",edt:"America/New_York","pacific time":"America/Los_Angeles","pacific standard time":"America/Los_Angeles",pst:"America/Los_Angeles","pacific daylight time":"America/Los_Angeles",pdt:"America/Los_Angeles","alaskan standard time":"America/Anchorage","alaskan time":"America/Anchorage",ahst:"America/Anchorage","alaskan daylight time":"America/Anchorage",ahdt:"America/Anchorage","hawaiian standard time":Mt+"Honolulu","hawaiian time":Mt+"Honolulu",hst:Mt+"Honolulu","aleutian time":Mt+"Honolulu","hawaii time":Mt+"Honolulu","newfoundland standard time":"America/St_Johns","newfoundland time":"America/St_Johns",nst:"America/St_Johns","newfoundland daylight time":"America/St_Johns",ndt:"America/St_Johns","brazil time":"America/Sao_Paulo",brt:"America/Sao_Paulo","brasília":"America/Sao_Paulo",brasilia:"America/Sao_Paulo","brazilian time":"America/Sao_Paulo","argentina time":"America/Buenos_Aires","argentinian time":"America/Buenos_Aires","amazon time":"America/Manaus",amt:"America/Manaus","amazonian time":"America/Manaus","easter island standard time":"Chile/Easterisland",east:"Chile/Easterisland","easter island summer time":"Chile/Easterisland",easst:"Chile/Easterisland","venezuelan standard time":"America/Caracas","venezuelan time":"America/Caracas",vet:"America/Caracas","venezuela time":"America/Caracas","paraguay time":"America/Asuncion",pyt:"America/Asuncion","paraguay summer time":"America/Asuncion",pyst:"America/Asuncion","cuba standard time":"America/Havana","cuba time":"America/Havana","cuba daylight time":"America/Havana","cuban time":"America/Havana","bolivia time":"America/La_Paz","bolivian time":"America/La_Paz","colombia time":"America/Bogota",cot:"America/Bogota","colombian time":"America/Bogota","acre time":"America/Eirunepe","peru time":"America/Lima","chile standard time":"America/Punta_Arenas","chile time":"America/Punta_Arenas",clst:"America/Punta_Arenas","chile summer time":"America/Punta_Arenas",cldt:"America/Punta_Arenas","uruguay time":"America/Montevideo",uyt:"America/Montevideo",ist:"Asia/Jerusalem","arabic standard time":"Asia/Baghdad","arabic time":"Asia/Baghdad","arab time":"Asia/Baghdad","iran standard time":"Asia/Tehran","iran time":"Asia/Tehran",irst:"Asia/Tehran","iran daylight time":"Asia/Tehran",irdt:"Asia/Tehran",iranian:"Asia/Tehran","pakistan standard time":"Asia/Karachi","pakistan time":"Asia/Karachi",pkt:"Asia/Karachi","india standard time":"Asia/Kolkata","indian time":"Asia/Kolkata","indochina time":"Asia/Bangkok",ict:"Asia/Bangkok","south east asia":"Asia/Bangkok","china standard time":"Asia/Shanghai",ct:"Asia/Shanghai","chinese time":"Asia/Shanghai","alma-ata time":"Asia/Almaty",almt:"Asia/Almaty","oral time":"Asia/Oral","orat time":"Asia/Oral","yakutsk time":"Asia/Yakutsk",yakt:"Asia/Yakutsk","gulf standard time":"Asia/Dubai","gulf time":"Asia/Dubai",gst:"Asia/Dubai",uae:"Asia/Dubai","hong kong time":"Asia/Hong_Kong",hkt:"Asia/Hong_Kong","western indonesian time":"Asia/Jakarta",wib:"Asia/Jakarta","indonesia time":"Asia/Jakarta","central indonesian time":"Asia/Makassar",wita:"Asia/Makassar","israel daylight time":"Asia/Jerusalem",idt:"Asia/Jerusalem","israel standard time":"Asia/Jerusalem","israel time":"Asia/Jerusalem",israeli:"Asia/Jerusalem","krasnoyarsk time":"Asia/Krasnoyarsk",krat:"Asia/Krasnoyarsk","malaysia time":"Asia/Kuala_Lumpur",myt:"Asia/Kuala_Lumpur","singapore time":"Asia/Singapore",sgt:"Asia/Singapore","korea standard time":"Asia/Seoul","korea time":"Asia/Seoul",kst:"Asia/Seoul","korean time":"Asia/Seoul","uzbekistan time":"Asia/Samarkand",uzt:"Asia/Samarkand","vladivostok time":"Asia/Vladivostok",vlat:"Asia/Vladivostok","maldives time":"Indian/Maldives",mvt:"Indian/Maldives","mauritius time":"Indian/Mauritius",mut:"Indian/Mauritius","marshall islands time":Mt+"Kwajalein",mht:Mt+"Kwajalein","samoa standard time":Mt+"Midway",sst:Mt+"Midway","somoan time":Mt+"Midway","chamorro standard time":Mt+"Guam",chst:Mt+"Guam","papua new guinea time":Mt+"Bougainville",pgt:Mt+"Bougainville"},Ct=xt().timezones,Pt=Object.keys(Ct).reduce((function(e,t){return e[t]=t,e}),{}),qt=Object.assign({},Tt,Pt),Et={};[[["weekday","summer","winter","autumn","some day","one day","all day","some point","eod","eom","standard time","daylight time"],"#Date"],[["centuries","century","day","days","decade","decades","hour","hours","millisecond","milliseconds","minute","minutes","month","months","seconds","week","weeks","year","years"],"#Duration"],[["all hallows eve","all saints day","all sts day","april fools","armistice day","australia day","bastille day","boxing day","canada day","christmas eve","christmas","cinco de mayo","day of the dead","dia de muertos","dieciseis de septiembre","emancipation day","grito de dolores","groundhog day","halloween","harvey milk day","inauguration day","independence day","independents day","juneteenth","labour day","national freedom day","national nurses day","new years eve","new years","purple heart day","rememberance day","rosa parks day","saint andrews day","saint patricks day","saint stephens day","saint valentines day","st andrews day","st patricks day","st stephens day","st valentines day ","valentines day","valentines","veterans day","victoria day","womens equality day","xmas","epiphany","orthodox christmas day","orthodox new year","assumption of mary","all souls day","feast of the immaculate conception","feast of our lady of guadalupe","kwanzaa","imbolc","beltaine","lughnassadh","samhain","martin luther king day","mlk day","presidents day","mardi gras","tax day","commonwealth day","mothers day","memorial day","fathers day","columbus day","indigenous peoples day","canadian thanksgiving","election day","thanksgiving","t-day","turkey day","black friday","cyber monday","ash wednesday","palm sunday","maundy thursday","good friday","holy saturday","easter","easter sunday","easter monday","orthodox good friday","orthodox holy saturday","orthodox easter","orthodox easter monday","ascension day","pentecost","whitsunday","whit sunday","whit monday","trinity sunday","corpus christi","advent","tu bishvat","tu bshevat","purim","passover","yom hashoah","lag baomer","shavuot","tisha bav","rosh hashana","yom kippur","sukkot","shmini atzeret","simchat torah","chanukah","hanukkah","isra and miraj","lailat al-qadr","eid al-fitr","id al-Fitr","eid ul-Fitr","ramadan","eid al-adha","muharram","the prophets birthday","ostara","march equinox","vernal equinox","litha","june solistice","summer solistice","mabon","september equinox","fall equinox","autumnal equinox","yule","december solstice","winter solstice","chinese new year","diwali"],"#Holiday"],[["noon","midnight","now","morning","tonight","evening","afternoon","night","breakfast time","lunchtime","dinnertime","ago","sometime","eod","oclock","oclock","all day","at night"],"#Time"],[Object.keys(qt),"#Timezone"]].forEach((function(e){for(var t=0;t-13&&e<13?"Etc/GMT"+(e=((e*=-1)>0?"+":"")+e):null},Qt=function(e){var t=e.match("#Timezone+"),a=(t=t.remove("(in|for|by|near|at)")).text("reduced");if(e.remove("#Timezone+"),qt.hasOwnProperty(a))return qt[a];var n=function(e){var t=e.match($t);if(null!==t)return Jt(t[1]);if(null!==(t=e.match(Bt)))return Jt(t[1]);if(null!==(t=e.match(Ft))){var a=-1*Number(t[1]);return Jt(a)}return null!==(t=e.match(Ht))?Jt(t[1]):null}(a);return n||null},Kt=function(){function e(a,n,r){t(this,e),this.unit=n||"day";var i=xt(a,(r=r||{}).timezone);i.isValid()&&(i=i.startOf(this.unit)),Object.defineProperty(this,"d",{enumerable:!1,writable:!0,value:i}),Object.defineProperty(this,"context",{enumerable:!1,writable:!0,value:r})}return n(e,[{key:"clone",value:function(){return new e(this.d,this.unit,this.context)}},{key:"log",value:function(){return console.log("--"),this.d.log(),console.log("\n"),this}},{key:"applyShift",value:function(e){var t=this;return Object.keys(e).forEach((function(a){t.d=t.d.add(e[a],a)})),this}},{key:"applyTime",value:function(e){return this.d=e?this.d.time(e):this.d.startOf("day"),this}},{key:"format",value:function(e){return this.d.format(e)}},{key:"start",value:function(){return this.d=this.d.startOf(this.unit),this}},{key:"end",value:function(){return this.d=this.d.endOf(this.unit),this}},{key:"before",value:function(){return this.d=xt.now(this.context.timezone),this}},{key:"after",value:function(){return this.d=this.d.add(1,this.unit),this.d=this.d.startOf(this.unit),this}},{key:"next",value:function(){return this.d=this.d.add(1,this.unit),this.d=this.d.startOf(this.unit),this}},{key:"last",value:function(){return this.d=this.d.minus(1,this.unit),this.d=this.d.startOf(this.unit),this}}]),e}(),Zt={Unit:Kt,Day:function(e){function a(e,n,r){var o;return t(this,a),(o=u(this,i(a).call(this,e,n,r))).unit="day",o}return r(a,e),a}(Kt),Month:function(e){function a(e,n,r){var o;return t(this,a),(o=u(this,i(a).call(this,e,n,r))).unit="month",o}return r(a,e),a}(Kt),Quarter:function(e){function a(e,n,r){var o;return t(this,a),(o=u(this,i(a).call(this,e,n,r))).unit="quarter",o}return r(a,e),a}(Kt),Year:function(e){function a(e,n,r){var o;return t(this,a),(o=u(this,i(a).call(this,e,n,r))).unit="year",o}return r(a,e),a}(Kt),WeekDay:function(e){function a(e,n,r){var o;return t(this,a),(o=u(this,i(a).call(this,e,n,r))).unit="week",o.d=o.d.day(e),o.weekDay=o.d.dayName(),o.d.date()0&&(n=new Gt(t.today,null,t))),n},Ut={week:Zt.Week,month:Zt.Month,quarter:Zt.Quarter,year:Zt.Year,season:Zt.Season},Rt=function(e,t){var a=e.match("(weekday|week|month|quarter|season|year)");if(!0===a.found){var n=a.lastTerm().text("reduced");if(Ut.hasOwnProperty(n)){var r=Ut[n];return r?new r(null,n,t):null}}if(!0===(a=e.match("(monday|tuesday|wednesday|thursday|friday|saturday|sunday)")).found){var i=a.lastTerm().text("reduced");return new Zt.WeekDay(i,null,t)}return null},Xt=function(e,t){return e(t={exports:{}},t.exports),t.exports}((function(e,t){e.exports=function(e){e=e&&e.hasOwnProperty("default")?e.default:e;var t="january",a="february",n="april",r="may",i="july",o="august",u="september",s="october",c="november",d="december",l={"new years eve":[d,31],"new years":[t,1],"new years day":[t,1],"inauguration day":[t,20],"australia day":[t,26],"national freedom day":[a,1],"groundhog day":[a,2],"rosa parks day":[a,4],"valentines day":[a,14],"saint valentines day":[a,14],"st valentines day ":[a,14],"saint patricks day":["march",17],"st patricks day":["march",17],"april fools":[n,1],"april fools day":[n,1],"emancipation day":[n,16],"tax day":[n,15],"labour day":[r,1],"cinco de mayo":[r,5],"national nurses day":[r,6],"harvey milk day":[r,22],"victoria day":[r,24],juneteenth:["june",19],"canada day":[i,1],"independence day":[i,4],"independents day":[i,4],"bastille day":[i,14],"purple heart day":[o,7],"womens equality day":[o,26],"16 de septiembre":[u,16],"dieciseis de septiembre":[u,16],"grito de dolores":[u,16],halloween:[s,31],"all hallows eve":[s,31],"day of the dead":[s,31],"dia de muertos":[s,31],"veterans day":[c,11],"st andrews day":[c,30],"saint andrews day":[c,30],"all saints day":[c,1],"all sts day":[c,1],"armistice day":[c,11],"rememberance day":[c,11],"christmas eve":[d,24],christmas:[d,25],xmas:[d,25],"boxing day":[d,26],"st stephens day":[d,26],"saint stephens day":[d,26],epiphany:[t,6],"orthodox christmas day":[t,7],"orthodox new year":[t,14],"assumption of mary":[o,15],"all souls day":[c,2],"feast of the immaculate conception":[d,8],"feast of our lady of guadalupe":[d,12],kwanzaa:[d,26],imbolc:[a,2],beltaine:[r,1],lughnassadh:[o,1],samhain:[s,31]},h=function(t,a,n){if(l.hasOwnProperty(t)||l.hasOwnProperty(a)){var r=l[t]||l[a]||[],i=e.now();if((i=(i=(i=(i=i.year(n)).startOf("year")).month(r[0])).date(r[1])).isValid())return i}return null},m="monday",f={"martin luther king day":[3,m,"january"],"presidents day":[3,m,"february"],"commonwealth day":[2,m,"march"],"mothers day":[2,"sunday","may"],"fathers day":[3,"sunday","june"],"labor day":[1,m,"september"],"columbus day":[2,m,"october"],"canadian thanksgiving":[2,m,"october"],thanksgiving:[4,"thursday","november"],"black friday":[4,"friday","november"]};f["turday day"]=f.thanksgiving,f["indigenous peoples day"]=f["columbus day"],f["mlk day"]=f["martin luther king day"];var y=f,p=function(t,a,n){if(y.hasOwnProperty(t)||y.hasOwnProperty(a)){var r=y[t]||y[a]||[],i=e.now(),o=(i=(i=(i=i.year(n)).month(r[2])).startOf("month")).month();if((i=i.day(r[1])).month()!==o&&(i=i.add(1,"week")),r[0]>1&&(i=i.add(r[0]-1,"week")),i.isValid())return i}return null},g={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};g["easter sunday"]=g.easter,g.pentecost=g["whit sunday"],g.whitsun=g["whit sunday"];var v=g,b=function(e){var 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,u=3+t((o+40)/44),s=o+28-31*t(u/4);return(u=4===u?"April":"March")+" "+s},w=function(t,a,n){if(v.hasOwnProperty(t)||v.hasOwnProperty(a)){var r=v[t]||v[a]||[],i=b(n);if(!i)return null;var o=e(i),u=(o=o.year(n)).add(r,"day");if(u.isValid())return u}return null},k={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]},D=[2080,2084,2088,2092,2096],A=function(e){var t={spring:"March 20 "+e,summer:"June 21 "+e,fall:"Sept 22 "+e,winter:"Dec 21 "+e};return-1!==k.spring.indexOf(e)&&(t.spring="March 19 "+e),-1!==k.summer.indexOf(e)&&(t.summer="June 20 "+e),-1!==k.fall.indexOf(e)&&(t.fall="Sept 21 "+e),-1!==k.winter.indexOf(e)&&(t.winter="Dec 22 "+e),-1!==D.indexOf(e)&&(t.winter="Dec 20 "+e),t},z={"spring equinox":"spring","summer solistice":"summer","fall equinox":"fall","winter solstice":"winter"};z["march equinox"]=z["spring equinox"],z["vernal equinox"]=z["spring equinox"],z.ostara=z["spring equinox"],z["june solstice"]=z["summer solistice"],z.litha=z["summer solistice"],z["autumn equinox"]=z["fall equinox"],z["autumnal equinox"]=z["fall equinox"],z["september equinox"]=z["fall equinox"],z["sept equinox"]=z["fall equinox"],z.mabon=z["fall equinox"],z["december solstice"]=z["winter solistice"],z["dec solstice"]=z["winter solistice"],z.yule=z["winter solistice"];var O=z,j=function(t,a,n){if(O.hasOwnProperty(t)||O.hasOwnProperty(a)){var r=O[t]||O[a],i=A(n);if(!r||!i||!i[r])return null;var o=e(i[r]);if(o.isValid())return o}return null},x={"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"},_=function(t,a,n){if(x.hasOwnProperty(t)||x.hasOwnProperty(a)){var r=x[t]||x[a]||[];if(!r)return null;var i=e(r+" 2018"),o=-10.64*(n-2018);if((i=(i=(i=i.add(o,"day")).startOf("day")).year(n)).isValid())return i}return null},M=e.now().year();return function(e,t){t=t||M,e=e||"";var a=(e=(e=(e=String(e)).trim().toLowerCase()).replace(/'s/,"s")).replace(/ day$/,"");a=(a=a.replace(/^the /,"")).replace(/^orthodox /,"");var n=h(e,a,t);return null!==n?n:null!==(n=p(e,a,t))?n:null!==(n=w(e,a,t))?n:null!==(n=j(e,a,t))?n:null!==(n=_(e,a,t))?n:null}}(xt)})),ea=Zt.CalendarDate,ta=function(e,t){var a=null,n=e.match("#Holiday+").text("reduced"),r=Xt(n,2020);return null!==r&&(a=new ea(r,null,t)),a},aa=Zt.Unit,na=Zt.Day,ra=Zt.CalendarDate,ia={today:function(e){return new na(e.today,null,e)},yesterday:function(e){new na(e.today.minus(1,"day"),null,e)},tomorrow:function(e){new na(e.today.plus(1,"day"),null,e)}},oa={shift:Lt,time:It,relative:Yt,timezone:Qt},ua={implied:Wt,duration:Rt,holiday:ta,explicit:function(e,t){var a=e.match("[#Value] of [#Month]");if(a.found||(a=e.match("[#Month] the [#Value]")),a.found){var n={month:a.groups("month").text(),date:a.groups("date").text(),year:t.today.year()},r=new ra(n,null,t);if(!0===r.d.isValid())return r}if(a.found){var i={month:a.groups("month").text(),date:a.groups("date").text(),year:t.today.year()},o=new ra(i,null,t);if(!0===o.d.isValid())return o}var u=e.text("reduced");if(!0===ia.hasOwnProperty(u))return ia[u](t);var s=new aa(u,null,t);return!1===s.d.isValid()?null:s}},sa=function(e,t){var a=oa.shift(e),n=oa.timezone(e),r=oa.time(e,t),i=oa.relative(e);if(n){var o=(t=Object.assign({},t,{timezone:n})).today.format("iso-short");t.today=t.today.goto(t.timezone).set(o)}var u=null;return(u=(u=(u=(u=u||ua.implied(e,t,{shift:a,time:r,rel:i}))||ua.duration(e,t))||ua.holiday(e,t))||ua.explicit(e,t))?("last"===i&&u.last(),"next"===i&&u.next(),a&&u.applyShift(a),u.applyTime(r),u):null},ca=function(e,t){var a=e.match("between * and *");if(a.found){var n=a.match("between [.*] and",0).not("^between").not("and$");n=sa(n,t);var r=a.match("and *").not("^and");if(r=sa(r,t),n)return{start:n,end:r}}if((a=e.match("#Month #Value to #Month #Value of? #Year")).found,(a=e.match("#Month #Value to #Month #Value")).found,(a=e.match("#Month #Value to #Value of? #Year")).found,(a=e.match("#Value to #Value of? #Month of? #Year")).found,(a=e.match("#Value to #Value of? #Month")).found,(a=e.match("#Month #Value to #Value")).found,(a=e.match("from? * (to|@hasHyphen|until|upto) [*]")).found,(a=e.match("^due (by|before|on|in)? [*]")).found,(a=e.match("^(after|following|from) [*]")).found,(a=e.match("^(on|during|in) [*]")).found){var i=sa(a,t);if(i)return{start:i,end:i.clone().end()}}return{start:sa(e,t),end:null}},da=function(e,t){return(t=t||{}).timezone=t.timezone||"ETC/UTC",t.today=xt(t.today,t.timezone),e=Vt(e),ca(e,t)},la=[["mon","monday"],["tue","tuesday"],["tues","tuesday"],["wed","wednesday"],["thu","thursday"],["thurs","thursday"],["fri","friday"],["sat","saturday"],["sun","sunday"],["jan","january"],["feb","february"],["mar","march"],["apr","april"],["jun","june"],["jul","july"],["aug","august"],["sep","september"],["sept","september"],["oct","october"],["nov","november"],["dec","december"]],ha=la=la.map((function(e){return{short:e[0],long:e[1]}})),ma={json:function(e){var t=this,a=null;"number"==typeof e&&(a=e,e=null);var n=[],r=(e=e||{terms:!1}).format||"iso";return this.forEach((function(a){var i=a.json(e)[0],o=da(a,t.context),u=o.start?o.start.format(r):null,s=o.end?o.end.format(r):null;i.date={start:u,end:s},u&&s&&(i.date.duration=o.start.d.diff(o.end.d),delete i.date.duration.milliseconds,delete i.date.duration.seconds),n.push(i)})),null!==a?n[a]:n},format:function(e){var t=this;return this.forEach((function(a){var n=da(a,t.context),r="";n.start&&(r=n.start.format(e),n.end&&(r+=" to "+n.start.format(e)),a.replaceWith(r,{keepTags:!0,keepCase:!1}))})),this},toLongForm:function(){var e=this;return ha.forEach((function(t){e.replace(t.short,t.long,!0)})),this},toShortForm:function(){var e=this;return ha.forEach((function(t){e.replace(t.long,t.short,!0)})),this}};return function(a,n){n.addTags(k),n.addWords(St),n.postProcess(w);var o=function(e){function a(e,n,r){var o;return t(this,a),(o=u(this,i(a).call(this,e,n,r))).context={},o}return r(a,e),a}(a);Object.assign(o.prototype,ma),a.prototype.dates=function(t){var a={};t&&"object"===e(t)&&(a=t,t=null);var n=this.clauses().match("#Date+");"number"==typeof t&&(n=n.get(t)),"number"==typeof t&&(n=n.get(t));var r=new o(n.list,this,this.world);return r.context=a,r}}})); +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).compromiseDates=t()}(this,(function(){"use strict";function e(t){return(e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(t)}function t(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){for(var a=0;a1e3&&n<3e3&&e.tag("Year",t)}}},f="date-values",y="date-tagger",p="section-tagger",g="time-tagger",v="shift-tagger",b="fix-tagger",w=[function(e){e.match("in the (night|evening|morning|afternoon|day|daytime)").tag("Time","in-the-night"),e.match("(#Value|#Time) (am|pm)").tag("Time","value-ampm");var t=e.if("#Month");!0===t.found&&(t.match("#Month #Date+").tag("Date","correction-numberRange"),t.match("#Value of #Month").tag("Date","value-of-month"),t.match("#Cardinal #Month").tag("Date","cardinal-month"),t.match("#Month #Value to #Value").tag("Date","value-to-value"),t.match("#Month the #Value").tag("Date","month-the-value"));var a=e.if("#Value");if(!0===a.found){a.match("(#WeekDay|#Month) #Value").ifNo("#Money").tag("Date","date-value"),a.match("#Value (#WeekDay|#Month)").ifNo("#Money").tag("Date","value-date"),a.match("#TextValue #TextValue").if("#Date").tag("#Date","textvalue-date");var n=a.if("#Duration");!0===n.found&&(n.match("for #Value #Duration").tag("Date","for-x-duration"),n.match("#Value #Duration #Conjunction").tag("Date","val-duration-conjunction"),n.match("".concat(c,"? #Value #Duration")).tag("Date","value-duration"),n.match("#Value #Duration old").unTag("Date","val-years-old"))}var r=e.if(h);!0===r.found&&(r.match("".concat(c,"? ").concat(d," ").concat(h)).tag("Date","thisNext-season"),r.match("the? ".concat(l," of ").concat(h)).tag("Date","section-season"),r.match("".concat(h," ").concat(c,"? #Cardinal")).tag("Date","season-year"));var i=e.if("#Date");!0===i.found&&(i.match("#Date the? #Ordinal").tag("Date","correction"),i.match("".concat(d," #Date")).tag("Date","thisNext"),i.match("due? (by|before|after|until) #Date").tag("Date","by"),i.match("(last|next|this|previous|current|upcoming|coming|the) #Date").tag("Date","next-feb"),i.match("the? ".concat(l," of #Date")).tag("Date","section-of"),i.match("#Ordinal #Duration in #Date").tag("Date","duration-in"),i.match("(early|late) (at|in)? the? #Date").tag("Time","early-evening"),i.match("#Date (by|before|after|at|@|about) #Cardinal").not("^#Date").tag("Time","date-before-Cardinal"),i.match("#Date [(am|pm)]",0).unTag("Verb").unTag("Copula").tag("Time","date-am"),i.match("#Date (#Preposition|to) #Date").ifNo("#Duration").tag("Date","date-prep-date"));var o=e.if("#Cardinal");if(!0===o.found){var u=o.match("#Date #Value [#Cardinal]",0);m(u,"date-value-year"),u=o.match("#Date+ [#Cardinal]",0),m(u,"date-year"),u=o.match("#Month #Value [#Cardinal]",0),m(u,"month-value-year"),u=o.match("#Month #Value to #Value [#Cardinal]",0),m(u,"month-range-year"),u=o.match("(in|of|by|during|before|starting|ending|for|year) [#Cardinal]",0),m(u,"in-year"),u=o.match("(q1|q2|q3|q4) [#Cardinal]",0),m(u,"in-year"),u=o.match("#Ordinal quarter [#Cardinal]",0),m(u,"in-year"),u=o.match("the year [#Cardinal]",0),m(u,"in-year"),function(e,t){if(!0===e.found){var a=e.termList()[0];if(a){var n=parseInt(a.clean,10);n&&n>1900&&n<2030&&e.tag("Year",t)}}}(u=o.match("it (is|was) [#Cardinal]",0),"in-year")}var s=e.if("#Time");return!0===s.found&&(s.match("(by|before|after|at|@|about) #Time").tag("Time","preposition-time"),s.match("#Cardinal #Time").not("#Year").tag("Time","value-time"),s.match("#Time [(eastern|pacific|central|mountain)]",0).tag("Date","timezone"),s.match("#Time [(est|pst|gmt)]",0).tag("Date","timezone abbr")),e},function(e){return e.has("#Value")&&(e.match("#Month #Value to #Value of? #Year?").tag("Date",f),e.match("#Value to #Value of? #Month #Year?").tag("Date",f),e.match("#Value #Duration of #Date").tag("Date",f),e.match("#Value+ #Duration (after|before|into|later|afterwards|ago)?").tag("Date",f),e.match("#Value #Date").tag("Date",f),e.match("#Date #Value").tag("Date",f),e.match("#Date #Preposition #Value").tag("Date",f),e.match("#Date (after|before|during|on|in) #Value").tag("Date",f),e.match("#Value (year|month|week|day) and a half").tag("Date",f),e.match("#Value and a half (years|months|weeks|days)").tag("Date",f),e.match("on the #Ordinal").tag("Date",f)),e},function(e){return e.match("(spring|summer|winter|fall|autumn|springtime|wintertime|summertime)").match("#Noun").tag("Season",y),e.match("(q1|q2|q3|q4)").tag("FinancialQuarter",y),e.match("(this|next|last|current) quarter").tag("FinancialQuarter",y),e.match("(this|next|last|current) season").tag("Season",y),e.has("#Date")&&(e.match("#Date #Preposition #Date").tag("Date",y),e.match("(once|twice) (a|an|each) #Date").tag("Date",y),e.match("(by|until|on|in|at|during|over|every|each|due) the? #Date").tag("Date",y),e.match("#Date+").tag("Date",y),e.match("(by|until|on|in|at|during|over|every|each|due) the? #Date").tag("Date",y),e.match("a #Duration").tag("Date",y),e.match("(between|from) #Date").tag("Date",y),e.match("(to|until|upto) #Date").tag("Date",y),e.match("#Date and #Date").tag("Date",y),e.match("(by|until|after|before|during|on|in|following) (next|this|last)? (#Date|#Date)").tag("Date",y),e.match("the? #Date after next one?").tag("Date",y),e.match("(about|approx|approximately|around) #Date").tag("Date",y)),e},function(e){return e.has("#Date")&&(e.match("this? (last|next|past|this|previous|current|upcoming|coming|the) #Date").tag("Date",p),e.match("(starting|beginning|ending) #Date").tag("Date",p),e.match("the? (start|end|middle|beginning) of (last|next|this|the) (#Date|#Date)").tag("Date",p),e.match("(the|this) #Date").tag("Date",p)),e},function(e){return e.has("#Cardinal")&&e.match("(half|quarter|25|15|10|5) (past|after|to) #Cardinal").tag("Time",g),e.has("#Date")&&(e.match("#Noun (standard|daylight|central|mountain)? time").tag("Timezone",g),e.match("/^utc[+-][0-9]/").tag("Timezone",g),e.match("/^gmt[+-][0-9]/").tag("Timezone",g),e.match("(in|for|by|near|at) #Timezone").tag("Timezone",g)),e},function(e){return e.has("#Date")&&(e.match("#Cardinal #Duration (before|after)").tag("#DateShift",v),e.match("in #Cardinal #Duration").tag("#DateShift",v),e.match("#Cardinal #Duration and? #DateShift").tag("#DateShift",v),e.match("#DateShift and #Cardinal #Duration").tag("#DateShift",v)),e},function(e){if(e.has("#Date")){var t=e.match("#Date+ by #Date+");t.found&&!t.has("^due")&&t.match("^#Date+").unTag("Date","by-monday");var a=e.match("#Date+");a.match("^day$").unTag("Date","spa-day");var n="(yesterday|today|tomorrow)";a.has(n)&&(a.match("".concat(n," [#Value]$")).unTag("Date","yesterday-7"),a.match("^[#Value] ".concat(n,"$"),0).unTag("Date","7 yesterday"),a.match("#WeekDay+ ".concat(n,"$")).unTag("Date").lastTerm().tag("Date","fri-yesterday"),a.match("(this|last|next) #Date ".concat(n,"$")).unTag("Date").lastTerm().tag("Date","this month yesterday")),a.match("on #Cardinal$").unTag("Date",b),a.match("this tomorrow").terms(0).unTag("Date","this-tomorrow"),a.match("(q1|q2|q3|q4) #Year").tag("Date",b),a.match("^#Value (this|next|last)").terms(0).unTag("Date",b),a.has("(last|this|next)")&&(a.match("(last|this|next) #Duration #Value").terms(2).unTag("Date",b),a.match("!#Month #Value (last|this|next) #Date").terms(0).unTag("Date",b)),!1===a.has("(#Year|#Time|#TextValue|#NumberRange)")&&a.match("(#Month|#WeekDay) #Value #Value").terms(2).unTag("Date",b),a.has("^between")&&!a.has("and .")&&a.unTag("Date",b),!a.has("#Month #Month")||a.has("@hasHyphen")||a.has("@hasComma")||a.match("#Month").lastTerm().unTag("Date","month-month")}return e}],k=function(e){return w.forEach((function(t){return t(e)})),e},D={FinancialQuarter:{isA:"Date"},Season:{isA:"Date"},Year:{isA:["Date"],notA:"RomanNumeral"},Duration:{isA:["Date","Noun"]},Holiday:{isA:["Date","Noun"]},Timezone:{isA:["Date","Noun"]},DateShift:{isA:["Date"]}};var A,z=function(e,t){return e(t={exports:{}},t.exports),t.exports}((function(e,t){t.isLeapYear=function(e){return e%4==0&&e%100!=0||e%400==0},t.isDate=function(e){return"[object Date]"===Object.prototype.toString.call(e)&&!isNaN(e.valueOf())},t.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)},t.isObject=function(e){return"[object Object]"===Object.prototype.toString.call(e)},t.zeroPad=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2,a="0";return(e+="").length>=t?e:new Array(t-e.length+1).join(a)+e},t.titleCase=function(e){return e?e[0].toUpperCase()+e.substr(1):""},t.ordinal=function(e){var 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"},t.toCardinal=function(e){return e=(e=String(e)).replace(/([0-9])(st|nd|rd|th)$/i,"$1"),parseInt(e,10)},t.normalize=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return"day"===(e=(e=(e=(e=e.toLowerCase().trim()).replace(/ies$/,"y")).replace(/s$/,"")).replace(/-/g,""))?"date":e},t.getEpoch=function(e){return"number"==typeof e?e:t.isDate(e)?e.getTime():e.epoch?e.epoch:null},t.beADate=function(e,a){return!1===t.isObject(e)?a.clone().set(e):e},t.formatTimezone=function(e){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=Math.abs(e),r=e>0?"+":"-";return"".concat(r).concat(t.zeroPad(n)).concat(a,"00")}})),O=(z.isLeapYear,z.isDate,z.isArray,z.isObject,z.zeroPad,z.titleCase,z.ordinal,z.toCardinal,z.normalize,z.getEpoch,z.beADate,z.formatTimezone,z.zeroPad),j=function(e,t,a,n){var r=new Date(e),i=(r.getTimezoneOffset()||0)+60*n;i=60*i*1e3;var o=function(e){return O(e.getMonth()+1)+"/"+O(e.getDate())+":"+O(e.getHours())}(r=new Date(e+i));return o>=t&&o");return!0===j(e.epoch,r[0],r[1],a)?a:n},_=["africa","america","asia","atlantic","australia","brazil","canada","chile","europe","indian","mexico","pacific","antarctica","etc"],M=(A=Object.freeze({default:{"9|s":"2/dili,2/jayapura","9|n":"2/chita,2/khandyga,2/pyongyang,2/seoul,2/tokyo,11/palau","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":"12/casey,2/kuala_lumpur,2/makassar,2/singapore,4/perth,4/west","8|n|03/25:03->09/29:23":"2/ulan_bator","8|n":"2/brunei,2/choibalsan,2/chongqing,2/chungking,2/harbin,2/hong_kong,2/irkutsk,2/kuching,2/macao,2/macau,2/manila,2/shanghai,2/taipei,2/ujung_pandang,2/ulaanbaatar","8.75|s":"4/eucla","7|s":"12/davis,2/jakarta,9/christmas","7|n":"2/bangkok,2/barnaul,2/ho_chi_minh,2/hovd,2/krasnoyarsk,2/novokuznetsk,2/novosibirsk,2/phnom_penh,2/pontianak,2/saigon,2/tomsk,2/vientiane","6|s":"12/vostok","6|n":"2/almaty,2/bishkek,2/dacca,2/dhaka,2/kashgar,2/omsk,2/qyzylorda,2/thimbu,2/thimphu,2/urumqi,9/chagos","6.5|n":"2/rangoon,9/cocos","5|s":"12/mawson,9/kerguelen","5|n":"2/aqtau,2/aqtobe,2/ashgabat,2/ashkhabad,2/atyrau,2/baku,2/dushanbe,2/karachi,2/oral,2/samarkand,2/tashkent,2/yekaterinburg,9/maldives","5.75|n":"2/kathmandu,2/katmandu","5.5|n":"2/calcutta,2/colombo,2/kolkata","4|s":"9/reunion","4|n":"2/dubai,2/muscat,2/tbilisi,2/yerevan,8/astrakhan,8/samara,8/saratov,8/ulyanovsk,8/volgograd,2/volgograd,9/mahe,9/mauritius","4.5|n|03/22:00->09/21:24":"2/tehran","4.5|n":"2/kabul","3|s":"12/syowa,9/antananarivo","3|n|03/31:03->10/27:04":"2/nicosia,8/athens,8/bucharest,8/helsinki,8/kiev,8/mariehamn,8/nicosia,8/riga,8/sofia,8/tallinn,8/uzhgorod,8/vilnius,8/zaporozhye","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","3|n|03/29:00->10/26:01":"2/gaza,2/hebron","3|n|03/29:00->10/25:01":"2/amman","3|n|03/29:00->10/24:24":"2/damascus","3|n":"0/addis_ababa,0/asmara,0/asmera,0/dar_es_salaam,0/djibouti,0/juba,0/kampala,0/mogadishu,0/nairobi,2/aden,2/baghdad,2/bahrain,2/istanbul,2/kuwait,2/qatar,2/riyadh,8/istanbul,8/kirov,8/minsk,8/moscow,8/simferopol,9/comoro,9/mayotte","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,3/jan_mayen,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","2|n":"0/blantyre,0/bujumbura,0/cairo,0/khartoum,0/kigali,0/tripoli,8/kaliningrad","1|s|04/02:01->09/03:03":"0/windhoek","1|s":"0/kinshasa,0/luanda","1|n|05/05:03->06/09:02":"0/casablanca,0/el_aaiun","1|n|03/31:01->10/27:02":"3/canary,3/faeroe,3/faroe,3/madeira,8/belfast,8/dublin,8/guernsey,8/isle_of_man,8/jersey,8/lisbon,8/london","1|n":"0/algiers,0/bangui,0/brazzaville,0/douala,0/lagos,0/libreville,0/malabo,0/ndjamena,0/niamey,0/porto-novo,0/tunis","14|n":"11/kiritimati","13|s|04/07:04->09/29:03":"11/apia","13|s|01/15:02->11/05:03":"11/tongatapu","13|n":"11/enderbury,11/fakaofo","12|s|04/07:03->09/29:02":"12/mcmurdo,12/south_pole,11/auckland","12|s|01/13:03->11/10:02":"11/fiji","12|n":"2/anadyr,2/kamchatka,2/srednekolymsk,11/funafuti,11/kwajalein,11/majuro,11/nauru,11/tarawa,11/wake,11/wallis","12.75|s|04/07:03->09/29:02":"11/chatham","11|s":"12/macquarie,11/bougainville","11|n":"2/magadan,2/sakhalin,11/efate,11/guadalcanal,11/kosrae,11/noumea,11/pohnpei,11/ponape","11.5|n":"11/norfolk","10|s|04/07:03->10/06:02":"4/act,4/canberra,4/currie,4/hobart,4/melbourne,4/nsw,4/sydney,4/tasmania,4/victoria","10|s":"12/dumontdurville,4/brisbane,4/lindeman,4/queensland","10|n":"2/ust-nera,2/vladivostok,2/yakutsk,11/chuuk,11/guam,11/port_moresby,11/saipan,11/truk,11/yap","10.5|s|04/07:01->10/06:02":"4/lhi,4/lord_howe","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,0/timbuktu,1/danmarkshavn,3/reykjavik,3/st_helena,13/gmt,13/gmt+0,13/gmt-0,13/gmt0,13/greenwich,13/utc,13/universal,13/zulu","-9|n|03/10:02->11/03:02":"1/adak,1/atka","-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","-8|n":"11/pitcairn","-7|n|03/10:02->11/03:02":"1/dawson,1/ensenada,1/los_angeles,1/santa_isabel,1/tijuana,1/vancouver,1/whitehorse,6/pacific,6/yukon,10/bajanorte","-7|n":"1/creston,1/dawson_creek,1/hermosillo,1/phoenix","-6|s|04/06:22->09/07:22":"7/easterisland,11/easter","-6|n|04/07:02->10/27:02":"1/chihuahua,1/mazatlan,10/bajasur","-6|n|03/10:02->11/03:02":"1/boise,1/cambridge_bay,1/denver,1/edmonton,1/inuvik,1/ojinaga,1/shiprock,1/yellowknife,6/mountain","-6|n":"1/belize,1/costa_rica,1/el_salvador,1/guatemala,1/managua,1/regina,1/swift_current,1/tegucigalpa,6/east-saskatchewan,6/saskatchewan,11/galapagos","-5|s":"1/lima,1/rio_branco,5/acre","-5|n|04/07:02->10/27:02":"1/bahia_banderas,1/merida,1/mexico_city,1/monterrey,10/general","-5|n|03/12:03->11/05:01":"1/north_dakota","-5|n|03/10:02->11/03:02":"1/chicago,1/knox_in,1/matamoros,1/menominee,1/rainy_river,1/rankin_inlet,1/resolute,1/winnipeg,6/central","-5|n":"1/atikokan,1/bogota,1/cancun,1/cayman,1/coral_harbour,1/eirunepe,1/guayaquil,1/jamaica,1/panama,1/porto_acre","-4|s|05/13:23->08/13:01":"12/palmer","-4|s|04/06:24->09/08:00":"1/santiago,7/continental","-4|s|03/23:24->10/06:00":"1/asuncion","-4|s|02/16:24->11/03:00":"1/campo_grande,1/cuiaba","-4|s":"1/la_paz,1/manaus,5/west","-4|n|03/12:03->11/05:01":"1/indiana,1/kentucky","-4|n|03/10:02->11/03:02":"1/detroit,1/fort_wayne,1/grand_turk,1/indianapolis,1/iqaluit,1/louisville,1/montreal,1/nassau,1/new_york,1/nipigon,1/pangnirtung,1/port-au-prince,1/thunder_bay,1/toronto,6/eastern","-4|n|03/10:00->11/03:01":"1/havana","-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/cordoba,1/fortaleza,1/montevideo,1/punta_arenas,1/sao_paulo,12/rothera,3/stanley,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/catamarca,1/cayenne,1/jujuy,1/maceio,1/mendoza,1/paramaribo,1/recife,1/rosario,1/santarem","-2|s":"5/denoronha","-2|n|03/30:22->10/26:23":"1/godthab","-2|n|03/10:02->11/03:02":"1/miquelon","-2|n":"1/noronha,3/south_georgia","-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","-10|n":"11/honolulu,11/johnston,11/rarotonga,11/tahiti"}}))&&A.default||A,T={};Object.keys(M).forEach((function(e){var t=e.split("|"),a={offset:Number(t[0]),hem:t[1]};t[2]&&(a.dst=t[2]),M[e].split(",").forEach((function(e){e=e.replace(/(^[0-9]+)\//,(function(e,t){return t=Number(t),_[t]+"/"})),T[e]=a}))})),T.utc={offset:0,hem:"n"};for(var C=-14;C<=14;C+=.5){var P=C;P>0&&(P="+"+P);var S="etc/gmt"+P;T[S]={offset:-1*C,hem:"n"},T[S="utc/gmt"+P]={offset:-1*C,hem:"n"}}var q=T,E=/(\-?[0-9]+)h(rs)?/i,V=/(\-?[0-9]+)/,N=/utc([\-+]?[0-9]+)/i,L=/gmt([\-+]?[0-9]+)/i,I=function(e){return(e=Number(e))>-13&&e<13?"etc/gmt"+(e=((e*=-1)>0?"+":"")+e):null},Y=function(e){var t=e.match(E);if(null!==t)return I(t[1]);if(null!==(t=e.match(N)))return I(t[1]);if(null!==(t=e.match(L))){var a=-1*Number(t[1]);return I(a)}return null!==(t=e.match(V))?I(t[1]):null},$=function(){var e=function(){if("undefined"==typeof Intl||void 0===Intl.DateTimeFormat)return null;var e=Intl.DateTimeFormat();if(void 0===e||void 0===e.resolvedOptions)return null;var t=e.resolvedOptions().timeZone;return t?t.toLowerCase():null}();return null===e?"utc":e}(),H=Object.keys(q).reduce((function(e,t){var a=t.split("/")[1]||"";return e[a=a.replace(/_/g," ")]=t,e}),{}),B=function(e,t){if(!e)return $;var a=e.trim(),n=e.split("/");if(n.length>2&&!1===t.hasOwnProperty(a)&&(a=n[0]+"/"+n[1]),a=a.toLowerCase(),!0===t.hasOwnProperty(a))return a;if(a=function(e){return 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===H.hasOwnProperty(a))return H[a];if(!0===/[0-9]/.test(a)){var r=Y(a);if(r)return r}throw new Error("Spacetime: Cannot find timezone named: '"+e+"'. Please enter an IANA timezone id.")},F={millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5};F.date=F.day,F.month=25488e5,F.week=6048e5,F.year=3154e7,Object.keys(F).forEach((function(e){F[e+"s"]=F[e]}));var J=F,Q=function(e,t,a,n,r){var i=e.d[a]();if(i!==t){var o=null===r?null:e.d[r](),u=e.epoch,s=t-i;e.epoch+=J[n]*s,"day"===n&&Math.abs(s)>28&&t<28&&(e.epoch+=J.hour);for(var c=J[n]/2;e.d[a]()t;)e.epoch-=c;null!==r&&o!==e.d[r]()&&(e.epoch=u,e.epoch+=J[n]*s*.89)}},K={year:{valid:function(e){return e>-4e3&&e<4e3},walkTo:function(e,t){return Q(e,t,"getFullYear","year",null)}},month:{valid:function(e){return e>=0&&e<=11},walkTo:function(e,t){var a=e.d,n=a.getMonth(),r=e.epoch,i=a.getFullYear();if(n!==t){var o=t-n;for(e.epoch+=J.day*(28*o),i!==e.d.getFullYear()&&(e.epoch=r);e.d.getMonth()t;)e.epoch-=J.day}}},date:{valid:function(e){return e>0&&e<=31},walkTo:function(e,t){return Q(e,t,"getDate","day","getMonth")}},hour:{valid:function(e){return e>=0&&e<24},walkTo:function(e,t){return Q(e,t,"getHours","hour","getDate")}},minute:{valid:function(e){return e>=0&&e<60},walkTo:function(e,t){return Q(e,t,"getMinutes","minute","getHours")}},second:{valid:function(e){return e>=0&&e<60},walkTo:function(e,t){e.epoch=e.seconds(t).epoch}},millisecond:{valid:function(e){return e>=0&&e<1e3},walkTo:function(e,t){e.epoch=e.milliseconds(t).epoch}}},Z=function(e,t){for(var a=Object.keys(K),n=e.clone(),r=0;r100&&(a/=100),(a*=-1)>=0&&(a="+"+a);var n="etc/gmt"+a;return e.timezones[n]&&(e.tz=n),e},ae=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",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){var n=Number(a[1]);if(n<0||n>24)return e.startOf("day");var r=Number(a[2]);if(a[2].length<2||r<0||r>59)return e.startOf("day");e=(e=(e=(e=e.hour(n)).minute(r)).seconds(a[3]||0)).millisecond(a[4]||0);var i=t.match(/[\b0-9](am|pm)\b/);return null!==i&&i[1]&&(e=e.ampm(i[1])),e}if(null!==(a=t.match(/([0-9]+) ?(am|pm)/))&&a[1]){var o=Number(a[1]);return o>12||o<1?e.startOf("day"):e=(e=(e=e.hour(a[1]||0)).ampm(a[2])).startOf("hour")}return e=e.startOf("day")},ne=[31,28,31,30,31,30,31,31,30,31,30,31],re=z.isLeapYear,ie=function(e){if(!0!==ne.hasOwnProperty(e.month))return!1;if(1===e.month)return!!(re(e.year)&&e.date<=29)||e.date<=28;var t=ne[e.month]||0;return e.date<=t},oe=X(),ue=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=parseInt(e.trim(),10);return t=t||(new Date).getFullYear()},se=[{reg:/^(\-?0?0?[0-9]{3,4})-([0-9]{1,2})-([0-9]{1,2})[T| ]([0-9.:]+)(Z|[0-9\-\+:]+)?$/,parse:function(e,t,a,n){var r=parseInt(t[2],10)-1,i={year:t[1],month:r,date:t[3]};return!1===ie(i)?(e.epoch=null,e):(te(e,t[5]),Z(e,i),e=ae(e,t[4]))}},{reg:/^([0-9]{4})[\-\/]([0-9]{1,2})[\-\/]([0-9]{1,2}),?( [0-9]{1,2}:[0-9]{2}:?[0-9]{0,2}? ?(am|pm|gmt))?$/i,parse:function(e,t){var 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===ie(a)?(e.epoch=null,e):(Z(e,a),e=ae(e,t[4]))}},{reg:/^([0-9]{1,2})[\-\/]([0-9]{1,2})[\-\/]?([0-9]{4})?,?( [0-9]{1,2}:[0-9]{2}:?[0-9]{0,2}? ?(am|pm|gmt))?$/i,parse:function(e,t){var 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);var r={year:t[3]||(new Date).getFullYear(),month:a,date:n};return!1===ie(r)?(e.epoch=null,e):(Z(e,r),e=ae(e,t[4]))}},{reg:/^([0-9]{1,2})[\-\/]([a-z]+)[\-\/]?([0-9]{4})?$/i,parse:function(e,t){var a=oe[t[2].toLowerCase()],n={year:ue(t[3]),month:a,date:z.toCardinal(t[1]||"")};return!1===ie(n)?(e.epoch=null,e):(Z(e,n),e=ae(e,t[4]))}},{reg:/^([a-z]+) ([0-9]{1,2}(?:st|nd|rd|th)?),?( [0-9]{4})?( ([0-9:]+( ?am| ?pm| ?gmt)?))?$/i,parse:function(e,t){var a=oe[t[1].toLowerCase()],n={year:ue(t[3]),month:a,date:z.toCardinal(t[2]||"")};return!1===ie(n)?(e.epoch=null,e):(Z(e,n),e=ae(e,t[4]))}},{reg:/^([a-z]+) ([0-9]{4})$/i,parse:function(e,t){var a=oe[t[1].toLowerCase()],n={year:ue(t[2]),month:a,date:1};return!1===ie(n)?(e.epoch=null,e):(Z(e,n),e=ae(e,t[4]))}},{reg:/^([0-9]{1,2}(?:st|nd|rd|th)?) ([a-z]+),?( [0-9]{4})?,? ?([0-9]{1,2}:[0-9]{2}:?[0-9]{0,2}? ?(am|pm|gmt))?$/i,parse:function(e,t){var a=oe[t[2].toLowerCase()];if(!a)return null;var n={year:ue(t[3]),month:a,date:z.toCardinal(t[1])};return!1===ie(n)?(e.epoch=null,e):(Z(e,n),e=ae(e,t[4]))}},{reg:/^[0-9,]+ ?b\.?c\.?$/i,parse:function(e,t){var a=t[0]||"";a=(a=a.replace(/^([0-9,]+) ?b\.?c\.?$/i,"-$1")).replace(/,/g,"");var n=parseInt(a.trim(),10),r=new Date,i={year:n,month:r.getMonth(),date:r.getDate()};return!1===ie(i)?(e.epoch=null,e):(Z(e,i),e=ae(e))}},{reg:/^[0-9,]+ ?(a\.?d\.?|c\.?e\.?)$/i,parse:function(e,t){var a=t[0]||"";a=a.replace(/,/g,"");var n=parseInt(a.trim(),10),r=new Date,i={year:n,month:r.getMonth(),date:r.getDate()};return!1===ie(i)?(e.epoch=null,e):(Z(e,i),e=ae(e))}},{reg:/^[0-9]{4}( ?a\.?d\.?)?$/i,parse:function(e,t){var a=ue(t[0]),n=new Date,r={year:a,month:n.getMonth(),date:n.getDate()};return!1===ie(r)?(e.epoch=null,e):(Z(e,r),e=ae(e))}}],ce={now:function(e){return e.epoch=Date.now(),e},tonight:function(e){return e.epoch=Date.now(),e=e.hour(18)},today:function(e){return e.epoch=Date.now(),e},tomorrow:function(e){return e.epoch=Date.now(),e=(e=e.add(1,"day")).startOf("day")},yesterday:function(e){return e.epoch=Date.now(),e=(e=e.subtract(1,"day")).startOf("day")},christmas:function(e){var t=(new Date).getFullYear();return e=e.set([t,11,25,18,0,0])},"new years":function(e){var t=(new Date).getFullYear();return e=e.set([t,11,31,18,0,0])}};ce["new years eve"]=ce["new years"];var de=ce,le={year:(new Date).getFullYear(),month:0,date:1},he=function(e,t,a){if("number"==typeof t)return t>0&&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;if(e.epoch=Date.now(),null==t)return e;if(!0===z.isDate(t))return e.epoch=t.getTime(),e;if(!0===z.isArray(t))return e=function(e,t){for(var a=["year","month","date","hour","minute","second","millisecond"],n=0;n=0?Math.floor(t):Math.ceil(t)),a?(t*=-1,t="-"+(t=z.zeroPad(t,2))):t="+"+(t=z.zeroPad(t,2)),"+00:00"===(t=t+":"+n)&&(t="Z"),t},be={day:function(e){return z.titleCase(e.dayName())},"day-short":function(e){return z.titleCase(ye()[e.day()])},"day-number":function(e){return e.day()},"day-ordinal":function(e){return z.ordinal(e.day())},"day-pad":function(e){return z.zeroPad(e.day())},date:function(e){return e.date()},"date-ordinal":function(e){return z.ordinal(e.date())},"date-pad":function(e){return z.zeroPad(e.date())},month:function(e){return z.titleCase(e.monthName())},"month-short":function(e){return z.titleCase(W()[e.month()])},"month-number":function(e){return e.month()},"month-ordinal":function(e){return z.ordinal(e.month())},"month-pad":function(e){return z.zeroPad(e.month())},"iso-month":function(e){return z.zeroPad(e.month()+1)},year:function(e){var t=e.year();return t>0?t:(t=Math.abs(t),t+" BC")},"year-short":function(e){var t=e.year();return t>0?"'".concat(String(e.year()).substr(2,4)):(t=Math.abs(t))+" BC"},"iso-year":function(e){var t=e.year(),a=t<0,n=z.zeroPad(Math.abs(t),4);return a&&(n="-"+(n=z.zeroPad(n,6))),n},time:function(e){return e.time()},"time-24":function(e){return"".concat(e.hour24(),":").concat(z.zeroPad(e.minute()))},hour:function(e){return e.hour12()},"hour-pad":function(e){return z.zeroPad(e.hour12())},"hour-24":function(e){return e.hour24()},"hour-24-pad":function(e){return z.zeroPad(e.hour24())},minute:function(e){return e.minute()},"minute-pad":function(e){return z.zeroPad(e.minute())},second:function(e){return e.second()},"second-pad":function(e){return z.zeroPad(e.second())},ampm:function(e){return e.ampm()},quarter:function(e){return"Q"+e.quarter()},season:function(e){return e.season()},era:function(e){return e.era()},json:function(e){return e.json()},timezone:function(e){return e.timezone().name},offset:function(e){return ve(e)},numeric:function(e){return"".concat(e.year(),"/").concat(z.zeroPad(e.month()+1),"/").concat(z.zeroPad(e.date()))},"numeric-us":function(e){return"".concat(z.zeroPad(e.month()+1),"/").concat(z.zeroPad(e.date()),"/").concat(e.year())},"numeric-uk":function(e){return"".concat(z.zeroPad(e.date()),"/").concat(z.zeroPad(e.month()+1),"/").concat(e.year())},"mm/dd":function(e){return"".concat(z.zeroPad(e.month()+1),"/").concat(z.zeroPad(e.date()))},iso:function(e){var t=e.format("iso-year"),a=z.zeroPad(e.month()+1),n=z.zeroPad(e.date()),r=z.zeroPad(e.h24()),i=z.zeroPad(e.minute()),o=z.zeroPad(e.second()),u=z.zeroPad(e.millisecond(),3),s=ve(e);return"".concat(t,"-").concat(a,"-").concat(n,"T").concat(r,":").concat(i,":").concat(o,".").concat(u).concat(s)},"iso-short":function(e){var t=z.zeroPad(e.month()+1),a=z.zeroPad(e.date());return"".concat(e.year(),"-").concat(t,"-").concat(a)},"iso-utc":function(e){return new Date(e.epoch).toISOString()},nice:function(e){return"".concat(W()[e.month()]," ").concat(z.ordinal(e.date()),", ").concat(e.time())},"nice-year":function(e){return"".concat(W()[e.month()]," ").concat(z.ordinal(e.date()),", ").concat(e.year())},"nice-day":function(e){return"".concat(ye()[e.day()]," ").concat(z.titleCase(W()[e.month()])," ").concat(z.ordinal(e.date()))},"nice-full":function(e){return"".concat(e.dayName()," ").concat(z.titleCase(e.monthName())," ").concat(z.ordinal(e.date()),", ").concat(e.time())}},we={"day-name":"day","month-name":"month","iso 8601":"iso","time-h24":"time-24","time-12":"time","time-h12":"time",tz:"timezone","day-num":"day-number","month-num":"month-number","month-iso":"iso-month","year-iso":"iso-year","nice-short":"nice",mdy:"numeric-us",dmy:"numeric-uk",ymd:"numeric","yyyy/mm/dd":"numeric","mm/dd/yyyy":"numeric-us","dd/mm/yyyy":"numeric-us","little-endian":"numeric-uk","big-endian":"numeric","day-nice":"nice-day"};Object.keys(we).forEach((function(e){return be[e]=be[we[e]]}));var ke=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";if(!0!==e.isValid())return"";if(be.hasOwnProperty(t)){var a=be[t](e)||"";return"json"!==t&&(a=String(a),"ampm"!==t&&(a=z.titleCase(a))),a}if(-1!==t.indexOf("{")){var n=/\{(.+?)\}/g;return t=t.replace(n,(function(t,a){return a=a.toLowerCase().trim(),be.hasOwnProperty(a)?String(be[a](e)||""):""}))}return e.format("iso-short")},De=z.zeroPad,Ae=z.formatTimezone,ze={G:function(e){return e.era()},GG:function(e){return e.era()},GGG:function(e){return e.era()},GGGG:function(e){return"AD"===e.era()?"Anno Domini":"Before Christ"},y:function(e){return e.year()},yy:function(e){return parseInt(String(e.year()).substr(2,4),10)},yyy:function(e){return e.year()},yyyy:function(e){return e.year()},yyyyy:function(e){return"0"+e.year()},Q:function(e){return e.quarter()},QQ:function(e){return e.quarter()},QQQ:function(e){return e.quarter()},QQQQ:function(e){return e.quarter()},M:function(e){return e.month()+1},MM:function(e){return De(e.month()+1)},MMM:function(e){return e.format("month-short")},MMMM:function(e){return e.format("month")},w:function(e){return e.week()},ww:function(e){return De(e.week())},d:function(e){return e.date()},dd:function(e){return De(e.date())},D:function(e){return e.dayOfYear()},DD:function(e){return De(e.dayOfYear())},DDD:function(e){return De(e.dayOfYear(),3)},E:function(e){return e.format("day-short")},EE:function(e){return e.format("day-short")},EEE:function(e){return e.format("day-short")},EEEE:function(e){return e.format("day")},EEEEE:function(e){return e.format("day")[0]},e:function(e){return e.day()},ee:function(e){return e.day()},eee:function(e){return e.format("day-short")},eeee:function(e){return e.format("day")},eeeee:function(e){return e.format("day")[0]},a:function(e){return e.ampm().toUpperCase()},aa:function(e){return e.ampm().toUpperCase()},aaa:function(e){return e.ampm().toUpperCase()},aaaa:function(e){return e.ampm().toUpperCase()},h:function(e){return e.h12()},hh:function(e){return De(e.h12())},H:function(e){return e.hour()},HH:function(e){return De(e.hour())},m:function(e){return e.minute()},mm:function(e){return De(e.minute())},s:function(e){return e.second()},ss:function(e){return De(e.second())},A:function(e){return e.epoch-e.startOf("day").epoch},z:function(e){return e.timezone().name},zz:function(e){return e.timezone().name},zzz:function(e){return e.timezone().name},zzzz:function(e){return e.timezone().name},Z:function(e){return Ae(e.timezone().current.offset)},ZZ:function(e){return Ae(e.timezone().current.offset)},ZZZ:function(e){return Ae(e.timezone().current.offset)},ZZZZ:function(e){return Ae(e.timezone().current.offset,":")}},Oe=function(e,t,a){for(var n=e,r=t,i=0;i.5&&(e=e.add(1,t)),e=e.startOf(t)):!1===e.silent&&console.warn("no known unit '"+t+"'"),e},Ce=function(e,t,a){var n=0;for(e=e.clone();e.isBefore(t);)e=e.add(1,a),n+=1;return e.isAfter(t,a)&&(n-=1),n},Pe=function(e,t,a){return e.isBefore(t)?Ce(e,t,a):-1*Ce(t,e,a)},Se=function(e,t){var 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);var r=e.clone();return n.years=function(e,t){var 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+=Pe(r,t,"month"),n.weeks=52*n.years,r=e.add(n.weeks,"week"),n.weeks+=Pe(r,t,"week"),n.days=7*n.weeks,r=e.add(n.days,"day"),n.days+=Pe(r,t,"day"),n},qe=function(e,t,a){t=z.beADate(t,e);var n=!1;if(e.isAfter(t)){var r=e;e=t,t=r,n=!0}var i=Se(e,t);return n&&(i=function(e){return Object.keys(e).forEach((function(t){e[t]*=-1})),e}(i)),a?(a=z.normalize(a),!0!==/s$/.test(a)&&(a+="s"),"dates"===a&&(a="days"),i[a]):i},Ee={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 Ve(e,t){return 1===e&&(t=t.slice(0,-1)),e+" "+t}var Ne=function(e,t){var a,n,r,i=function(e,t){var a=e.isBefore(t),n=a?t:e,r=a?e:t;r=r.clone();var i={years:0,months:0,days:0,hours:0,minutes:0,seconds:0};return Object.keys(i).forEach((function(e){if(!r.isSame(n,e)){var t=r.diff(n,e);r=r.add(t,e),i[e]=t}})),a&&Object.keys(i).forEach((function(e){0!==i[e]&&(i[e]*=-1)})),i}(e,t=z.beADate(t,e));if(!0===Object.keys(i).every((function(e){return!i[e]})))return{diff:i,rounded:"now",qualified:"now",precise:"now"};var o=[];return Object.keys(i).forEach((function(e,t,r){var u=Math.abs(i[e]);if(0!==u){var s=Ve(u,e);if(o.push(s),!a){if(a=n=s,t>4)return;var c=r[t+1],d=Math.abs(i[c]);d>Ee[c].almost?(a=Ve(u+1,e),n="almost "+a):d>Ee[c].over&&(n="over "+s)}}})),r=o.splice(0,2).join(", "),!0===e.isAfter(t)?(a+=" ago",n+=" ago",r+=" ago"):(a="in "+a,n="in "+n,r="in "+r),{diff:i,rounded:a,qualified:n,precise:r}},Le={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]]},Ie=[null,[0,1],[3,1],[6,1],[9,1]],Ye={minute:function(e){return Z(e,{second:0,millisecond:0}),e},quarterhour:function(e){var t=e.minutes();return e=t>=45?e.minutes(45):t>=30?e.minutes(30):t>=15?e.minutes(15):e.minutes(0),Z(e,{second:0,millisecond:0}),e},hour:function(e){return Z(e,{minute:0,second:0,millisecond:0}),e},day:function(e){return Z(e,{hour:0,minute:0,second:0,millisecond:0}),e},week:function(e){var t=e.clone();return(e=e.day(e._weekStart)).isAfter(t)&&(e=e.subtract(1,"week")),Z(e,{hour:0,minute:0,second:0,millisecond:0}),e},month:function(e){return Z(e,{date:1,hour:0,minute:0,second:0,millisecond:0}),e},quarter:function(e){var t=e.quarter();return Ie[t]&&Z(e,{month:Ie[t][0],date:Ie[t][1],hour:0,minute:0,second:0,millisecond:0}),e},season:function(e){var t=e.season(),a="north";"South"===e.hemisphere()&&(a="south");for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:"",a=arguments.length>2?arguments[2]:void 0;if(!t||!a)return[];if(t=z.normalize(t),a=e.clone().set(a),e.isAfter(a)){var n=e;e=a,a=n}var r=e.clone();Be(t)?(r=r.next(t),t="week"):r=r.next(t);for(var i=[];r.isBefore(a);)i.push(r),r=r.add(1,t);return i},Je=function(e){var t=e.timezones,a=e.tz;if(!1===t.hasOwnProperty(a)&&(a=B(e.tz,t)),null===a)return!1===e.silent&&console.warn("Warn: could not find given or local timezone - '"+e.tz+"'"),{current:{epochShift:0}};var n,r,i=t[a],o={name:(n=a,n=(n=(n=n[0].toUpperCase()+n.substr(1)).replace(/\/gmt/,"/GMT")).replace(/[\/_]([a-z])/gi,(function(e){return e.toUpperCase()}))),hasDst:Boolean(i.dst),default_offset:i.offset,hemisphere:"s"===i.hem?"South":"North",current:{}};if(o.hasDst){var u=(r=i.dst)?r.split("->"):[];o.change={start:u[0],back:u[1]}}var s=i.offset,c=s;return!0===o.hasDst&&(c="North"===o.hemisphere?s-1:i.offset+1),!1===o.hasDst?(o.current.offset=s,o.current.isDST=!1):!0===j(e.epoch,o.change.start,o.change.back,s)?(o.current.offset=s,o.current.isDST="North"===o.hemisphere):(o.current.offset=c,o.current.isDST="South"===o.hemisphere),o},Qe=["century","decade","year","month","date","day","hour","minute","second","millisecond"],Ke={set:function(e,t){var a=this.clone();return a=he(a,e),t&&(this.tz=B(t)),a},timezone:function(){return Je(this)},isDST:function(){return Je(this).current.isDST},hasDST:function(){return Je(this).hasDst},offset:function(){return 60*Je(this).current.offset},hemisphere:function(){return Je(this).hemisphere},format:function(e){return ke(this,e)},unixFmt:function(e){return je(this,e)},startOf:function(e){return $e(this,e)},endOf:function(e){return He(this,e)},leapYear:function(){var e=this.year();return z.isLeapYear(e)},progress:function(e){return Me(this,e)},nearest:function(e){return Te(this,e)},diff:function(e,t){return qe(this,e,t)},since:function(e){return e||(e=this.clone().set()),Ne(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){var t=this.clone();return t.tz=B(e,t.timezones),t},every:function(e,t){return Fe(this,e,t)},isAwake:function(){var e=this.hour();return!(e<8||e>22)},isAsleep:function(){return!this.isAwake()},log:function(){return console.log(""),console.log(ke(this,"nice-short")),this},logYear:function(){return console.log(""),console.log(ke(this,"full-short")),this},json:function(){var e=this;return Qe.reduce((function(t,a){return t[a]=e[a](),t}),{})},debug:function(){var 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();var t=ye().indexOf(e);-1===t&&(t=pe().indexOf(e)),-1===t&&(t=1),this._weekStart=t}else console.warn("Spacetime Error: Cannot understand .weekStart() input:",e);return this}};Ke.inDST=Ke.isDST,Ke.round=Ke.nearest,Ke.each=Ke.every;var Ze=Ke,Ge=function(e){return"string"==typeof e&&(e=parseInt(e,10)),e},Re=["year","month","date","hour","minute","second","millisecond"],We=function(e,t,a){for(var n=Re.indexOf(a),r=Re.slice(n,Re.length),i=0;i=24?t=24:t<0&&(t=0);var a=e.clone(),n=(e.hour()-t)*J.hour;return e.epoch-=n,Z(e,{hour:t}),We(e,a,"minute"),e.epoch},at=function(e,t){var a=t.match(/([0-9]{1,2}):([0-9]{1,2})(am|pm)?/);if(!a){if(!(a=t.match(/([0-9]{1,2})(am|pm)/)))return e.epoch;a.splice(2,0,"0")}var n=!1,r=parseInt(a[1],10),i=parseInt(a[2],10);return r>12&&(n=!0),!1===n&&("am"===a[3]&&12===r&&(r=0),"pm"===a[3]&&r<12&&(r+=12)),(e=(e=(e=(e=e.hour(r)).minute(i)).second(0)).millisecond(0)).epoch},nt=function(e,t){if((t=Ge(t))>28){var a=ne[e.month()];t>a&&(t=a)}return t<=0&&(t=1),Z(e,{date:t}),e.epoch},rt=function(e,t){"string"==typeof t&&(t=X()[t.toLowerCase()]),(t=Ge(t))>=12&&(t=11),t<=0&&(t=0);var a=e.date();return a>ne[t]&&(a=ne[t]),Z(e,{month:t,date:a}),e.epoch},it=function(e,t){return t=Ge(t),Z(e,{year:t}),e.epoch},ot=function(e,t){t=Ge(t);var a=e.clone();return(t-=1)<=0?t=0:t>=365&&(t=364),e=(e=e.startOf("year")).add(t,"day"),We(e,a,"hour"),e.epoch},ut={millisecond:function(e){if(void 0!==e){var t=this.clone();return t.epoch=Ue(t,e),t}return this.d.getMilliseconds()},second:function(e){if(void 0!==e){var t=this.clone();return t.epoch=Xe(t,e),t}return this.d.getSeconds()},minute:function(e){if(void 0!==e){var t=this.clone();return t.epoch=et(t,e),t}return this.d.getMinutes()},hour:function(e){var t=this.d;if(void 0!==e){var a=this.clone();return a.epoch=tt(a,e),a}return t.getHours()},hourFloat:function(e){if(void 0!==e){var t=this.clone(),a=e%1;a*=60;var n=parseInt(e,10);return t.epoch=tt(t,n),t.epoch=et(t,a),t}var r=this.d,i=r.getHours(),o=r.getMinutes();return i+(o/=60)},hour12:function(e){var t=this.d;if(void 0!==e){var a=this.clone(),n=(e=""+e).match(/^([0-9]+)(am|pm)$/);if(n){var r=parseInt(n[1],10);"pm"===n[2]&&(r+=12),a.epoch=tt(a,r)}return a}var i=t.getHours();return i>12&&(i-=12),0===i&&(i=12),i},time:function(e){if(void 0!==e){var t=this.clone();return t.epoch=at(t,e),t}return"".concat(this.h12(),":").concat(z.zeroPad(this.minute())).concat(this.ampm())},ampm:function(e){var t="am",a=this.hour();if(a>=12&&(t="pm"),"string"!=typeof e)return t;var n=this.clone();return e=e.toLowerCase().trim(),a>=12&&"am"===e?(a-=12,n.hour(a)):a<12&&"pm"===e?(a+=12,n.hour(a)):n},dayTime:function(e){if(void 0!==e){var t={morning:"7:00am",breakfast:"7:00am",noon:"12:00am",lunch:"12:00pm",afternoon:"2:00pm",evening:"6:00pm",dinner:"6:00pm",night:"11:00pm",midnight:"23:59pm"},a=this.clone();return e=(e=e||"").toLowerCase(),!0===t.hasOwnProperty(e)&&(a=a.time(t[e])),a}var n=this.hour();return n<6?"night":n<12?"morning":n<17?"afternoon":n<22?"evening":"night"},iso:function(e){return void 0!==e?this.set(e):this.format("iso")}},st={date:function(e){if(void 0!==e){var t=this.clone();return t.epoch=nt(t,e),t}return this.d.getDate()},day:function(e){if(void 0===e)return this.d.getDay();var t=this.clone(),a=e;"string"==typeof e&&(e=e.toLowerCase(),-1===(a=ye().indexOf(e))&&(a=pe().indexOf(e)));var n=this.d.getDay(),r=n-a,i=this.subtract(24*r,"hours");return Z(i,{hour:t.hour(),minute:t.minute(),second:t.second()}),i},dayName:function(e){if(void 0===e)return pe()[this.day()];var t=this.clone();return t=t.day(e)},month:function(e){if(void 0!==e){var t=this.clone();return t.epoch=rt(t,e),t}return this.d.getMonth()}},ct=function(e){return e=(e=(e=e.minute(0)).second(0)).millisecond(1)},dt={dayOfYear:function(e){if(void 0!==e){var t=this.clone();return t.epoch=ot(t,e),t}for(var a,n=0,r=this.d.getMonth(),i=1;i<=r;i++)(a=new Date).setDate(1),a.setFullYear(this.d.getFullYear()),a.setHours(1),a.setMinutes(1),a.setMonth(i),a.setHours(-2),n+=a.getDate();return n+this.d.getDate()},week:function(e){if(void 0!==e){var t=this.clone();return t=(t=(t=t.month(0)).date(1)).day("monday"),"december"===(t=ct(t)).monthName()&&(t=t.add(1,"week")),e-=1,t=t.add(e,"weeks")}var a=this.clone();a=(a=a.month(0)).date(1),"december"===(a=(a=ct(a)).day("monday")).monthName()&&(a=a.add(1,"week"));var n=1;1===a.date()&&(n=0),a=a.minus(1,"second");var r=this.epoch;if(a.epoch>r)return 1;var i=0,o=4*this.month();for(a.epoch+=J.week*o,i+=o;i<52;i++){if(a.epoch>r)return i+n;a=a.add(1,"week")}return 52},monthName:function(e){if(void 0===e)return U()[this.month()];var t=this.clone();return t=t.month(e)},quarter:function(e){if(void 0!==e&&("string"==typeof e&&(e=e.replace(/^q/i,""),e=parseInt(e,10)),Ie[e])){var t=this.clone(),a=Ie[e][0];return t=(t=(t=t.month(a)).date(1)).startOf("day")}for(var n=this.d.getMonth(),r=1;r=Le[t][i][1]&&r0&&(t.epoch=it(t,-1*a)),"ad"===e&&a<0&&(t.epoch=it(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);var 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,(function(e,t,a){return a.match(/b\.?c\.?/i)&&(t="-"+t),t}))).replace(/c$/,""));var 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))}var a=this.startOf("century").year();return(a=Math.floor(a/100))<0?a-1:a+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);var t=1e3*e;return 0===t&&(t=1),this.year(t)}var a=Math.floor(this.year()/1e3);return a>=0&&(a+=1),a}},lt=Object.assign({},ut,st,dt);lt.milliseconds=lt.millisecond,lt.seconds=lt.second,lt.minutes=lt.minute,lt.hours=lt.hour,lt.hour24=lt.hour,lt.h12=lt.hour12,lt.h24=lt.hour24,lt.days=lt.day;var ht=function(e){Object.keys(lt).forEach((function(t){e.prototype[t]=lt[t]}))},mt=["millisecond","second","minute","hour","date","month"],ft={second:mt.slice(0,1),minute:mt.slice(0,2),quarterhour:mt.slice(0,2),hour:mt.slice(0,3),date:mt.slice(0,4),month:mt.slice(0,4),quarter:mt.slice(0,4),season:mt.slice(0,4),year:mt,decade:mt,century:mt};ft.week=ft.hour,ft.season=ft.date,ft.quarter=ft.date;var yt={year:!0,quarter:!0,season:!0,month:!0,week:!0,day:!0},pt={month:!0,quarter:!0,season:!0,year:!0},gt=function(e){e.prototype.add=function(e,t){var a=this.clone();if(!t||0===e)return a;var n=this.clone();t=z.normalize(t),J[t]?a.epoch+=J[t]*e:"week"===t?a.epoch+=J.day*(7*e):"quarter"===t||"season"===t?a.epoch+=J.month*(4*e):"season"===t?a.epoch+=J.month*(4*e):"quarterhour"===t&&(a.epoch+=15*J.minute*e);var r={};if(ft[t]&&ft[t].forEach((function(e){r[e]=n[e]()})),yt[t]){var i=n.timezone().current.offset-a.timezone().current.offset;a.epoch+=3600*i*1e3}if("month"===t&&(r.month=n.month()+e,r=function(e,t){if(e.month>0){var a=parseInt(e.month/12,10);e.year=t.year()+a,e.month=e.month%12}else if(e.month<0){var n=Math.floor(Math.abs(e.month)/13,10);n=Math.abs(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}(r,n)),"week"===t){var o=n.date()+7*e;o<=28&&o>1&&(r.date=o)}else if("date"===t){var u=n.date()+e;u<=28&&u>1?r.date=u:0!==e&&n.isSame(a,"day")&&(r.date=n.date()+e)}else"year"===t&&a.year()===n.year()?a.epoch+=J.week:"decade"===t?r.year=a.year()+10:"century"===t&&(r.year=a.year()+100);if(pt[t]){var s=ne[r.month];r.date=n.date(),r.date>s&&(r.date=s)}return Z(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},vt={millisecond:function(e){return e.epoch},second:function(e){return[e.year(),e.month(),e.date(),e.hour(),e.minute(),e.second()].join("-")},minute:function(e){return[e.year(),e.month(),e.date(),e.hour(),e.minute()].join("-")},hour:function(e){return[e.year(),e.month(),e.date(),e.hour()].join("-")},day:function(e){return[e.year(),e.month(),e.date()].join("-")},week:function(e){return[e.year(),e.week()].join("-")},month:function(e){return[e.year(),e.month()].join("-")},quarter:function(e){return[e.year(),e.quarter()].join("-")},year:function(e){return e.year()}};vt.date=vt.day;var bt=function(e){e.prototype.isSame=function(t,a){return a?("string"!=typeof t&&"number"!=typeof t||(t=new e(t,this.timezone.name)),a=a.replace(/s$/,""),vt[a]?vt[a](this)===vt[a](t):null):null}},wt=function(e){var t={isAfter:function(e){e=z.beADate(e,this);var t=z.getEpoch(e);return null===t?null:this.epoch>t},isBefore:function(e){e=z.beADate(e,this);var t=z.getEpoch(e);return null===t?null:this.epoch2&&void 0!==arguments[2]?arguments[2]:{};if(this.epoch=null,this.tz=B(t,Dt),this.silent=a.silent||!0,this.british=a.dmy||a.british,this._weekStart=1,void 0!==a.weekStart&&(this._weekStart=a.weekStart),Object.defineProperty(this,"d",{get:function(){var e=x(this),t=(new Date(this.epoch).getTimezoneOffset()||0)+60*e;t=60*t*1e3;var a=this.epoch+t;return new Date(a)}}),Object.defineProperty(this,"timezones",{get:function(){return Dt},set:function(e){return Dt=e,e}}),void 0!==e||null===e){var n=he(this,e,t);this.epoch=n.epoch}};Object.keys(Ze).forEach((function(e){At.prototype[e]=Ze[e]})),At.prototype.clone=function(){return new At(this.epoch,this.tz,{silent:this.silent,weekStart:this._weekStart})},ht(At),gt(At),bt(At),wt(At),kt(At);var zt=At,Ot=function(e,t){var a=new zt(null),n=new zt(null);a=a.time(e),n=t?n.time(t):a.add(59,"minutes");var r=a.hour(),i=n.hour();return Object.keys(a.timezones).filter((function(e){if(-1===e.indexOf("/"))return!1;var t=new zt(null,e),o=t.hour();return o>=r&&o<=i&&(!(o===r&&t.minute()n.minute()))}))},jt=function(e,t,a){return new zt(e,t,a)};jt.now=function(e,t){return new zt((new Date).getTime(),e,t)},jt.today=function(e,t){return new zt((new Date).getTime(),e,t).startOf("day")},jt.tomorrow=function(e,t){return new zt((new Date).getTime(),e,t).add(1,"day").startOf("day")},jt.yesterday=function(e,t){return new zt((new Date).getTime(),e,t).subtract(1,"day").startOf("day")},jt.extend=function(e){return Object.keys(e).forEach((function(t){zt.prototype[t]=e[t]})),this},jt.whereIts=Ot,jt.version="6.3.0",jt.plugin=jt.extend;var xt=jt;"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;var _t=function(e){return e&&e.default||e}(Object.freeze({__proto__:null,default:xt})),Mt="Australia/",Tt="Pacific/",Ct={"british summer time":"Europe/London",bst:"Europe/London","british time":"Europe/London","britain time":"Europe/London","irish summer time":"Europe/Dublin","irish time":"Europe/Dublin",ireland:"Europe/Dublin","central european time":"Europe/Berlin",cet:"Europe/Berlin","central european summer time":"Europe/Berlin",cest:"Europe/Berlin","central europe":"Europe/Berlin","eastern european time":"Europe/Riga",eet:"Europe/Riga","eastern european summer time":"Europe/Riga",eest:"Europe/Riga","eastern europe time":"Europe/Riga","western european time":"Europe/Lisbon","western european summer time":"Europe/Lisbon","western europe":"Europe/Lisbon","turkey standard time":"Europe/Istanbul",trt:"Europe/Istanbul","turkish time":"Europe/Istanbul",etc:"Africa/Freetown",utc:"Africa/Freetown","greenwich standard time":"Africa/Freetown",gmt:"Africa/Freetown","east africa time":"Africa/Nairobi","east african time":"Africa/Nairobi","eastern africa time":"Africa/Nairobi","central africa time":"Africa/Khartoum","central african time":"Africa/Khartoum","south africa standard time":"Africa/Johannesburg",sast:"Africa/Johannesburg","southern africa":"Africa/Johannesburg","south african":"Africa/Johannesburg","west africa standard time":"Africa/Lagos","western africa time":"Africa/Lagos","west african time":"Africa/Lagos","australian central standard time":Mt+"Adelaide",acst:Mt+"Adelaide","australian central daylight time":Mt+"Adelaide",acdt:Mt+"Adelaide","australia central":Mt+"Adelaide","australian eastern standard time":Mt+"Brisbane",aest:Mt+"Brisbane","australian eastern daylight time":Mt+"Brisbane",aedt:Mt+"Brisbane","australia east":Mt+"Brisbane","australian western standard time":Mt+"Perth",awst:Mt+"Perth","australian western daylight time":Mt+"Perth",awdt:Mt+"Perth","australia west":Mt+"Perth","australian central western standard time":Mt+"Eucla",acwst:Mt+"Eucla","australia central west":Mt+"Eucla","lord howe standard time":Mt+"Lord_Howe",lhst:Mt+"Lord_Howe","lord howe daylight time":Mt+"Lord_Howe",lhdt:Mt+"Lord_Howe","russian standard time":"Europe/Moscow",msk:"Europe/Moscow",russian:"Europe/Moscow","central standard time":"America/Chicago","central time":"America/Chicago",cst:"America/Havana","central daylight time":"America/Chicago",cdt:"America/Havana","mountain standard time":"America/Denver","mountain time":"America/Denver",mst:"America/Denver","mountain daylight time":"America/Denver",mdt:"America/Denver","atlantic standard time":"America/Halifax","atlantic time":"America/Halifax",ast:"Asia/Baghdad","atlantic daylight time":"America/Halifax",adt:"America/Halifax","eastern standard time":"America/New_York","eastern time":"America/New_York",est:"America/New_York","eastern daylight time":"America/New_York",edt:"America/New_York","pacific time":"America/Los_Angeles","pacific standard time":"America/Los_Angeles",pst:"America/Los_Angeles","pacific daylight time":"America/Los_Angeles",pdt:"America/Los_Angeles","alaskan standard time":"America/Anchorage","alaskan time":"America/Anchorage",ahst:"America/Anchorage","alaskan daylight time":"America/Anchorage",ahdt:"America/Anchorage","hawaiian standard time":Tt+"Honolulu","hawaiian time":Tt+"Honolulu",hst:Tt+"Honolulu","aleutian time":Tt+"Honolulu","hawaii time":Tt+"Honolulu","newfoundland standard time":"America/St_Johns","newfoundland time":"America/St_Johns",nst:"America/St_Johns","newfoundland daylight time":"America/St_Johns",ndt:"America/St_Johns","brazil time":"America/Sao_Paulo",brt:"America/Sao_Paulo","brasília":"America/Sao_Paulo",brasilia:"America/Sao_Paulo","brazilian time":"America/Sao_Paulo","argentina time":"America/Buenos_Aires","argentinian time":"America/Buenos_Aires","amazon time":"America/Manaus",amt:"America/Manaus","amazonian time":"America/Manaus","easter island standard time":"Chile/Easterisland",east:"Chile/Easterisland","easter island summer time":"Chile/Easterisland",easst:"Chile/Easterisland","venezuelan standard time":"America/Caracas","venezuelan time":"America/Caracas",vet:"America/Caracas","venezuela time":"America/Caracas","paraguay time":"America/Asuncion",pyt:"America/Asuncion","paraguay summer time":"America/Asuncion",pyst:"America/Asuncion","cuba standard time":"America/Havana","cuba time":"America/Havana","cuba daylight time":"America/Havana","cuban time":"America/Havana","bolivia time":"America/La_Paz","bolivian time":"America/La_Paz","colombia time":"America/Bogota",cot:"America/Bogota","colombian time":"America/Bogota","acre time":"America/Eirunepe","peru time":"America/Lima","chile standard time":"America/Punta_Arenas","chile time":"America/Punta_Arenas",clst:"America/Punta_Arenas","chile summer time":"America/Punta_Arenas",cldt:"America/Punta_Arenas","uruguay time":"America/Montevideo",uyt:"America/Montevideo",ist:"Asia/Jerusalem","arabic standard time":"Asia/Baghdad","arabic time":"Asia/Baghdad","arab time":"Asia/Baghdad","iran standard time":"Asia/Tehran","iran time":"Asia/Tehran",irst:"Asia/Tehran","iran daylight time":"Asia/Tehran",irdt:"Asia/Tehran",iranian:"Asia/Tehran","pakistan standard time":"Asia/Karachi","pakistan time":"Asia/Karachi",pkt:"Asia/Karachi","india standard time":"Asia/Kolkata","indian time":"Asia/Kolkata","indochina time":"Asia/Bangkok",ict:"Asia/Bangkok","south east asia":"Asia/Bangkok","china standard time":"Asia/Shanghai",ct:"Asia/Shanghai","chinese time":"Asia/Shanghai","alma-ata time":"Asia/Almaty",almt:"Asia/Almaty","oral time":"Asia/Oral","orat time":"Asia/Oral","yakutsk time":"Asia/Yakutsk",yakt:"Asia/Yakutsk","gulf standard time":"Asia/Dubai","gulf time":"Asia/Dubai",gst:"Asia/Dubai",uae:"Asia/Dubai","hong kong time":"Asia/Hong_Kong",hkt:"Asia/Hong_Kong","western indonesian time":"Asia/Jakarta",wib:"Asia/Jakarta","indonesia time":"Asia/Jakarta","central indonesian time":"Asia/Makassar",wita:"Asia/Makassar","israel daylight time":"Asia/Jerusalem",idt:"Asia/Jerusalem","israel standard time":"Asia/Jerusalem","israel time":"Asia/Jerusalem",israeli:"Asia/Jerusalem","krasnoyarsk time":"Asia/Krasnoyarsk",krat:"Asia/Krasnoyarsk","malaysia time":"Asia/Kuala_Lumpur",myt:"Asia/Kuala_Lumpur","singapore time":"Asia/Singapore",sgt:"Asia/Singapore","korea standard time":"Asia/Seoul","korea time":"Asia/Seoul",kst:"Asia/Seoul","korean time":"Asia/Seoul","uzbekistan time":"Asia/Samarkand",uzt:"Asia/Samarkand","vladivostok time":"Asia/Vladivostok",vlat:"Asia/Vladivostok","maldives time":"Indian/Maldives",mvt:"Indian/Maldives","mauritius time":"Indian/Mauritius",mut:"Indian/Mauritius","marshall islands time":Tt+"Kwajalein",mht:Tt+"Kwajalein","samoa standard time":Tt+"Midway",sst:Tt+"Midway","somoan time":Tt+"Midway","chamorro standard time":Tt+"Guam",chst:Tt+"Guam","papua new guinea time":Tt+"Bougainville",pgt:Tt+"Bougainville"},Pt=_t().timezones,St=Object.keys(Pt).reduce((function(e,t){return e[t]=t,e}),{}),qt=Object.assign({},Ct,St),Et={};[[["weekday","summer","winter","autumn","some day","one day","all day","some point","eod","eom","standard time","daylight time"],"#Date"],[["centuries","century","day","days","decade","decades","hour","hours","millisecond","milliseconds","minute","minutes","month","months","seconds","week","weeks","year","years"],"#Duration"],[["all hallows eve","all saints day","all sts day","april fools","armistice day","australia day","bastille day","boxing day","canada day","christmas eve","christmas","cinco de mayo","day of the dead","dia de muertos","dieciseis de septiembre","emancipation day","grito de dolores","groundhog day","halloween","harvey milk day","inauguration day","independence day","independents day","juneteenth","labour day","national freedom day","national nurses day","new years eve","new years","purple heart day","rememberance day","rosa parks day","saint andrews day","saint patricks day","saint stephens day","saint valentines day","st andrews day","st patricks day","st stephens day","st valentines day ","valentines day","valentines","veterans day","victoria day","womens equality day","xmas","epiphany","orthodox christmas day","orthodox new year","assumption of mary","all souls day","feast of the immaculate conception","feast of our lady of guadalupe","kwanzaa","imbolc","beltaine","lughnassadh","samhain","martin luther king day","mlk day","presidents day","mardi gras","tax day","commonwealth day","mothers day","memorial day","fathers day","columbus day","indigenous peoples day","canadian thanksgiving","election day","thanksgiving","t-day","turkey day","black friday","cyber monday","ash wednesday","palm sunday","maundy thursday","good friday","holy saturday","easter","easter sunday","easter monday","orthodox good friday","orthodox holy saturday","orthodox easter","orthodox easter monday","ascension day","pentecost","whitsunday","whit sunday","whit monday","trinity sunday","corpus christi","advent","tu bishvat","tu bshevat","purim","passover","yom hashoah","lag baomer","shavuot","tisha bav","rosh hashana","yom kippur","sukkot","shmini atzeret","simchat torah","chanukah","hanukkah","isra and miraj","lailat al-qadr","eid al-fitr","id al-Fitr","eid ul-Fitr","ramadan","eid al-adha","muharram","the prophets birthday","ostara","march equinox","vernal equinox","litha","june solistice","summer solistice","mabon","september equinox","fall equinox","autumnal equinox","yule","december solstice","winter solstice","chinese new year","diwali"],"#Holiday"],[["noon","midnight","now","morning","tonight","evening","afternoon","night","breakfast time","lunchtime","dinnertime","ago","sometime","eod","oclock","oclock","all day","at night"],"#Time"],[Object.keys(qt),"#Timezone"]].forEach((function(e){for(var t=0;t-13&&e<13?"Etc/GMT"+(e=((e*=-1)>0?"+":"")+e):null},Kt=function(e){var t=e.match("#Timezone+"),a=(t=t.remove("(in|for|by|near|at)")).text("reduced");if(e.remove("#Timezone+"),qt.hasOwnProperty(a))return qt[a];var n=function(e){var t=e.match(Ht);if(null!==t)return Qt(t[1]);if(null!==(t=e.match(Ft)))return Qt(t[1]);if(null!==(t=e.match(Jt))){var a=-1*Number(t[1]);return Qt(a)}return null!==(t=e.match(Bt))?Qt(t[1]):null}(a);return n||null},Zt=function(){function e(a,n,r){t(this,e),this.unit=n||"day";var i=_t(a,(r=r||{}).timezone);i.isValid()&&(i=i.startOf(this.unit)),Object.defineProperty(this,"d",{enumerable:!1,writable:!0,value:i}),Object.defineProperty(this,"context",{enumerable:!1,writable:!0,value:r})}return n(e,[{key:"clone",value:function(){return new e(this.d,this.unit,this.context)}},{key:"log",value:function(){return console.log("--"),this.d.log(),console.log("\n"),this}},{key:"applyShift",value:function(e){var t=this;return Object.keys(e).forEach((function(a){t.d=t.d.add(e[a],a)})),this}},{key:"applyTime",value:function(e){return this.d=e?this.d.time(e):this.d.startOf("day"),this}},{key:"format",value:function(e){return this.d.format(e)}},{key:"start",value:function(){return this.d=this.d.startOf(this.unit),this}},{key:"end",value:function(){return this.d=this.d.endOf(this.unit),this}},{key:"before",value:function(){return this.d=_t.now(this.context.timezone),this}},{key:"after",value:function(){return this.d=this.d.add(1,this.unit),this.d=this.d.startOf(this.unit),this}},{key:"next",value:function(){return this.d=this.d.add(1,this.unit),this.d=this.d.startOf(this.unit),this}},{key:"last",value:function(){return this.d=this.d.minus(1,this.unit),this.d=this.d.startOf(this.unit),this}}]),e}(),Gt={Unit:Zt,Day:function(e){r(n,e);var a=s(n);function n(e,r,i){var o;return t(this,n),(o=a.call(this,e,r,i)).unit="day",o}return n}(Zt),Month:function(e){r(n,e);var a=s(n);function n(e,r,i){var o;return t(this,n),(o=a.call(this,e,r,i)).unit="month",o}return n}(Zt),Quarter:function(e){r(n,e);var a=s(n);function n(e,r,i){var o;return t(this,n),(o=a.call(this,e,r,i)).unit="quarter",o}return n}(Zt),Year:function(e){r(n,e);var a=s(n);function n(e,r,i){var o;return t(this,n),(o=a.call(this,e,r,i)).unit="year",o}return n}(Zt),WeekDay:function(e){r(i,e);var a=s(i);function i(e,n,r){var o;return t(this,i),(o=a.call(this,e,n,r)).unit="week",o.d=o.d.day(e),o.weekDay=o.d.dayName(),o.d.date()<_t.now(r.timezone).date()&&(o.d=o.d.add(7,"days")),o}return n(i,[{key:"next",value:function(){return this.d=this.d.add(7,"days"),this.d=this.d.day(this.weekDay),this}},{key:"last",value:function(){return this.d=this.d.minus(7,"days"),this.d=this.d.day(this.weekDay),this}}]),i}(Zt),CalendarDate:function(e){r(i,e);var a=s(i);function i(e,n,r){var o;return t(this,i),(o=a.call(this,e,n,r)).unit="day",o}return n(i,[{key:"next",value:function(){return this.d=this.d.add(1,"year"),this}},{key:"last",value:function(){return this.d=this.d.minus(1,"year"),this}}]),i}(Zt)},Rt=Gt.Unit,Wt=function(e,t,a){var n=null;return!1===e.found&&(null!==a.time&&(n=new Rt(t.today,null,t)),Object.keys(a.shift).length>0&&(n=new Rt(t.today,null,t))),n},Ut={week:Gt.Week,month:Gt.Month,quarter:Gt.Quarter,year:Gt.Year,season:Gt.Season},Xt=function(e,t){var a=e.match("(weekday|week|month|quarter|season|year)");if(!0===a.found){var n=a.lastTerm().text("reduced");if(Ut.hasOwnProperty(n)){var r=Ut[n];return r?new r(null,n,t):null}}if(!0===(a=e.match("(monday|tuesday|wednesday|thursday|friday|saturday|sunday)")).found){var i=a.lastTerm().text("reduced");return new Gt.WeekDay(i,null,t)}return null},ea=function(e,t){return e(t={exports:{}},t.exports),t.exports}((function(e,t){e.exports=function(e){e=e&&e.hasOwnProperty("default")?e.default:e;var t="january",a="february",n="april",r="may",i="july",o="august",u="september",s="october",c="november",d="december",l={"new years eve":[d,31],"new years":[t,1],"new years day":[t,1],"inauguration day":[t,20],"australia day":[t,26],"national freedom day":[a,1],"groundhog day":[a,2],"rosa parks day":[a,4],"valentines day":[a,14],"saint valentines day":[a,14],"st valentines day ":[a,14],"saint patricks day":["march",17],"st patricks day":["march",17],"april fools":[n,1],"april fools day":[n,1],"emancipation day":[n,16],"tax day":[n,15],"labour day":[r,1],"cinco de mayo":[r,5],"national nurses day":[r,6],"harvey milk day":[r,22],"victoria day":[r,24],juneteenth:["june",19],"canada day":[i,1],"independence day":[i,4],"independents day":[i,4],"bastille day":[i,14],"purple heart day":[o,7],"womens equality day":[o,26],"16 de septiembre":[u,16],"dieciseis de septiembre":[u,16],"grito de dolores":[u,16],halloween:[s,31],"all hallows eve":[s,31],"day of the dead":[s,31],"dia de muertos":[s,31],"veterans day":[c,11],"st andrews day":[c,30],"saint andrews day":[c,30],"all saints day":[c,1],"all sts day":[c,1],"armistice day":[c,11],"rememberance day":[c,11],"christmas eve":[d,24],christmas:[d,25],xmas:[d,25],"boxing day":[d,26],"st stephens day":[d,26],"saint stephens day":[d,26],epiphany:[t,6],"orthodox christmas day":[t,7],"orthodox new year":[t,14],"assumption of mary":[o,15],"all souls day":[c,2],"feast of the immaculate conception":[d,8],"feast of our lady of guadalupe":[d,12],kwanzaa:[d,26],imbolc:[a,2],beltaine:[r,1],lughnassadh:[o,1],samhain:[s,31]},h=function(t,a,n){if(l.hasOwnProperty(t)||l.hasOwnProperty(a)){var r=l[t]||l[a]||[],i=e.now();if((i=(i=(i=(i=i.year(n)).startOf("year")).month(r[0])).date(r[1])).isValid())return i}return null},m="monday",f={"martin luther king day":[3,m,"january"],"presidents day":[3,m,"february"],"commonwealth day":[2,m,"march"],"mothers day":[2,"sunday","may"],"fathers day":[3,"sunday","june"],"labor day":[1,m,"september"],"columbus day":[2,m,"october"],"canadian thanksgiving":[2,m,"october"],thanksgiving:[4,"thursday","november"],"black friday":[4,"friday","november"]};f["turday day"]=f.thanksgiving,f["indigenous peoples day"]=f["columbus day"],f["mlk day"]=f["martin luther king day"];var y=f,p=function(t,a,n){if(y.hasOwnProperty(t)||y.hasOwnProperty(a)){var r=y[t]||y[a]||[],i=e.now(),o=(i=(i=(i=i.year(n)).month(r[2])).startOf("month")).month();if((i=i.day(r[1])).month()!==o&&(i=i.add(1,"week")),r[0]>1&&(i=i.add(r[0]-1,"week")),i.isValid())return i}return null},g={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};g["easter sunday"]=g.easter,g.pentecost=g["whit sunday"],g.whitsun=g["whit sunday"];var v=g,b=function(e){var 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,u=3+t((o+40)/44),s=o+28-31*t(u/4);return(u=4===u?"April":"March")+" "+s},w=function(t,a,n){if(v.hasOwnProperty(t)||v.hasOwnProperty(a)){var r=v[t]||v[a]||[],i=b(n);if(!i)return null;var o=e(i),u=(o=o.year(n)).add(r,"day");if(u.isValid())return u}return null},k={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]},D=[2080,2084,2088,2092,2096],A=function(e){var t={spring:"March 20 "+e,summer:"June 21 "+e,fall:"Sept 22 "+e,winter:"Dec 21 "+e};return-1!==k.spring.indexOf(e)&&(t.spring="March 19 "+e),-1!==k.summer.indexOf(e)&&(t.summer="June 20 "+e),-1!==k.fall.indexOf(e)&&(t.fall="Sept 21 "+e),-1!==k.winter.indexOf(e)&&(t.winter="Dec 22 "+e),-1!==D.indexOf(e)&&(t.winter="Dec 20 "+e),t},z={"spring equinox":"spring","summer solistice":"summer","fall equinox":"fall","winter solstice":"winter"};z["march equinox"]=z["spring equinox"],z["vernal equinox"]=z["spring equinox"],z.ostara=z["spring equinox"],z["june solstice"]=z["summer solistice"],z.litha=z["summer solistice"],z["autumn equinox"]=z["fall equinox"],z["autumnal equinox"]=z["fall equinox"],z["september equinox"]=z["fall equinox"],z["sept equinox"]=z["fall equinox"],z.mabon=z["fall equinox"],z["december solstice"]=z["winter solistice"],z["dec solstice"]=z["winter solistice"],z.yule=z["winter solistice"];var O=z,j=function(t,a,n){if(O.hasOwnProperty(t)||O.hasOwnProperty(a)){var r=O[t]||O[a],i=A(n);if(!r||!i||!i[r])return null;var o=e(i[r]);if(o.isValid())return o}return null},x={"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"},_=function(t,a,n){if(x.hasOwnProperty(t)||x.hasOwnProperty(a)){var r=x[t]||x[a]||[];if(!r)return null;var i=e(r+" 2018"),o=-10.64*(n-2018);if((i=(i=(i=i.add(o,"day")).startOf("day")).year(n)).isValid())return i}return null},M=e.now().year();return function(e,t){t=t||M,e=e||"";var a=(e=(e=(e=String(e)).trim().toLowerCase()).replace(/'s/,"s")).replace(/ day$/,"");a=(a=a.replace(/^the /,"")).replace(/^orthodox /,"");var n=h(e,a,t);return null!==n?n:null!==(n=p(e,a,t))?n:null!==(n=w(e,a,t))?n:null!==(n=j(e,a,t))?n:null!==(n=_(e,a,t))?n:null}}(_t)})),ta=Gt.CalendarDate,aa=function(e,t){var a=null,n=e.match("#Holiday+").text("reduced"),r=ea(n,2020);return null!==r&&(a=new ta(r,null,t)),a},na=Gt.Unit,ra=Gt.Day,ia=Gt.CalendarDate,oa={today:function(e){return new ra(e.today,null,e)},yesterday:function(e){new ra(e.today.minus(1,"day"),null,e)},tomorrow:function(e){new ra(e.today.plus(1,"day"),null,e)}},ua={shift:It,time:Yt,relative:$t,timezone:Kt},sa={implied:Wt,duration:Xt,holiday:aa,explicit:function(e,t){var a=e.match("[#Value] of [#Month]");if(a.found||(a=e.match("[#Month] the [#Value]")),a.found){var n={month:a.groups("month").text(),date:a.groups("date").text(),year:t.today.year()},r=new ia(n,null,t);if(!0===r.d.isValid())return r}if(a.found){var i={month:a.groups("month").text(),date:a.groups("date").text(),year:t.today.year()},o=new ia(i,null,t);if(!0===o.d.isValid())return o}var u=e.text("reduced");if(!0===oa.hasOwnProperty(u))return oa[u](t);var s=new na(u,null,t);return!1===s.d.isValid()?null:s}},ca=function(e,t){var a=ua.shift(e),n=ua.timezone(e),r=ua.time(e,t),i=ua.relative(e);if(n){var o=(t=Object.assign({},t,{timezone:n})).today.format("iso-short");t.today=t.today.goto(t.timezone).set(o)}var u=null;return(u=(u=(u=(u=u||sa.implied(e,t,{shift:a,time:r,rel:i}))||sa.duration(e,t))||sa.holiday(e,t))||sa.explicit(e,t))?("last"===i&&u.last(),"next"===i&&u.next(),a&&u.applyShift(a),u.applyTime(r),u):null},da=function(e,t){var a=e.match("between * and *");if(a.found){var n=a.match("between [.*] and",0).not("^between").not("and$");n=ca(n,t);var r=a.match("and *").not("^and");if(r=ca(r,t),n)return{start:n,end:r}}if((a=e.match("#Month #Value to #Month #Value of? #Year")).found,(a=e.match("#Month #Value to #Month #Value")).found,(a=e.match("#Month #Value to #Value of? #Year")).found,(a=e.match("#Value to #Value of? #Month of? #Year")).found,(a=e.match("#Value to #Value of? #Month")).found,(a=e.match("#Month #Value to #Value")).found,(a=e.match("from? * (to|@hasHyphen|until|upto) [*]")).found,(a=e.match("^due (by|before|on|in)? [*]")).found,(a=e.match("^(after|following|from) [*]")).found,(a=e.match("^(on|during|in) [*]",0)).found){var i=ca(a,t);if(i)return{start:i,end:i.clone().end()}}return{start:ca(e,t),end:null}},la=function(e,t){return(t=t||{}).timezone=t.timezone||"ETC/UTC",t.today=_t(t.today,t.timezone),e=Nt(e),da(e,t)},ha=[["mon","monday"],["tue","tuesday"],["tues","tuesday"],["wed","wednesday"],["thu","thursday"],["thurs","thursday"],["fri","friday"],["sat","saturday"],["sun","sunday"],["jan","january"],["feb","february"],["mar","march"],["apr","april"],["jun","june"],["jul","july"],["aug","august"],["sep","september"],["sept","september"],["oct","october"],["nov","november"],["dec","december"]],ma=ha=ha.map((function(e){return{short:e[0],long:e[1]}})),fa={json:function(e){var t=this,a=null;"number"==typeof e&&(a=e,e=null);var n=[],r=(e=e||{terms:!1}).format||"iso";return this.forEach((function(a){var i=a.json(e)[0],o=la(a,t.context),u=o.start?o.start.format(r):null,s=o.end?o.end.format(r):null;i.date={start:u,end:s},u&&s&&(i.date.duration=o.start.d.diff(o.end.d),delete i.date.duration.milliseconds,delete i.date.duration.seconds),n.push(i)})),null!==a?n[a]:n},format:function(e){var t=this;return this.forEach((function(a){var n=la(a,t.context),r="";if(n.start){if(r=n.start.format(e),n.end){var i=n.start.format(e);r!==i&&(r+=" to "+i)}a.replaceWith(r,{keepTags:!0,keepCase:!1})}})),this},toLongForm:function(){var e=this;return ma.forEach((function(t){e.replace(t.short,t.long,!0)})),this},toShortForm:function(){var e=this;return ma.forEach((function(t){e.replace(t.long,t.short,!0)})),this}};return function(a,n){n.addTags(D),n.addWords(Vt),n.postProcess(k);var i=function(e){r(n,e);var a=s(n);function n(e,r,i){var o;return t(this,n),(o=a.call(this,e,r,i)).context={},o}return n}(a);Object.assign(i.prototype,fa),a.prototype.dates=function(t){var a={};t&&"object"===e(t)&&(a=t,t=null);var n=this.clauses().match("#Date+");"number"==typeof t&&(n=n.get(t)),"number"==typeof t&&(n=n.get(t));var r=new i(n.list,this,this.world);return r.context=a,r}}})); diff --git a/plugins/dates/builds/compromise-dates.mjs b/plugins/dates/builds/compromise-dates.mjs index d5b051a76..cc48b3891 100644 --- a/plugins/dates/builds/compromise-dates.mjs +++ b/plugins/dates/builds/compromise-dates.mjs @@ -1,4 +1,4 @@ -/* compromise-dates 0.0.5 MIT */ +/* compromise-dates 0.0.6 MIT */ function _typeof(obj) { "@babel/helpers - typeof"; @@ -68,6 +68,19 @@ function _setPrototypeOf(o, p) { return _setPrototypeOf(o, p); } +function _isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + + try { + Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); + return true; + } catch (e) { + return false; + } +} + function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); @@ -84,6 +97,25 @@ function _possibleConstructorReturn(self, call) { return _assertThisInitialized(self); } +function _createSuper(Derived) { + var hasNativeReflectConstruct = _isNativeReflectConstruct(); + + return function _createSuperInternal() { + var Super = _getPrototypeOf(Derived), + result; + + if (hasNativeReflectConstruct) { + var NewTarget = _getPrototypeOf(this).constructor; + + result = Reflect.construct(Super, arguments, NewTarget); + } else { + result = Super.apply(this, arguments); + } + + return _possibleConstructorReturn(this, result); + }; +} + //ambiguous 'may' and 'march' var preps = '(in|by|before|during|on|until|after|of|within|all)'; //6 @@ -797,9 +829,7 @@ var _build = { "-10|n": "11/honolulu,11/johnston,11/rarotonga,11/tahiti" }; -var _build$1 = -/*#__PURE__*/ -Object.freeze({ +var _build$1 = /*#__PURE__*/Object.freeze({ 'default': _build }); //prefixes for iana names.. @@ -4978,9 +5008,7 @@ var parseTimezone = function parseTimezone(doc) { var _04Timezone = parseTimezone; -var Unit = -/*#__PURE__*/ -function () { +var Unit = /*#__PURE__*/function () { function Unit(input, unit, context) { _classCallCheck(this, Unit); @@ -5097,17 +5125,17 @@ function () { var Unit_1 = Unit; -var Day = -/*#__PURE__*/ -function (_Unit) { +var Day = /*#__PURE__*/function (_Unit) { _inherits(Day, _Unit); + var _super = _createSuper(Day); + function Day(input, unit, context) { var _this; _classCallCheck(this, Day); - _this = _possibleConstructorReturn(this, _getPrototypeOf(Day).call(this, input, unit, context)); + _this = _super.call(this, input, unit, context); _this.unit = 'day'; return _this; } @@ -5115,17 +5143,17 @@ function (_Unit) { return Day; }(Unit_1); -var Month = -/*#__PURE__*/ -function (_Unit2) { +var Month = /*#__PURE__*/function (_Unit2) { _inherits(Month, _Unit2); + var _super2 = _createSuper(Month); + function Month(input, unit, context) { var _this2; _classCallCheck(this, Month); - _this2 = _possibleConstructorReturn(this, _getPrototypeOf(Month).call(this, input, unit, context)); + _this2 = _super2.call(this, input, unit, context); _this2.unit = 'month'; return _this2; } @@ -5133,17 +5161,17 @@ function (_Unit2) { return Month; }(Unit_1); -var Quarter = -/*#__PURE__*/ -function (_Unit3) { +var Quarter = /*#__PURE__*/function (_Unit3) { _inherits(Quarter, _Unit3); + var _super3 = _createSuper(Quarter); + function Quarter(input, unit, context) { var _this3; _classCallCheck(this, Quarter); - _this3 = _possibleConstructorReturn(this, _getPrototypeOf(Quarter).call(this, input, unit, context)); + _this3 = _super3.call(this, input, unit, context); _this3.unit = 'quarter'; return _this3; } @@ -5151,17 +5179,17 @@ function (_Unit3) { return Quarter; }(Unit_1); -var Year = -/*#__PURE__*/ -function (_Unit4) { +var Year = /*#__PURE__*/function (_Unit4) { _inherits(Year, _Unit4); + var _super4 = _createSuper(Year); + function Year(input, unit, context) { var _this4; _classCallCheck(this, Year); - _this4 = _possibleConstructorReturn(this, _getPrototypeOf(Year).call(this, input, unit, context)); + _this4 = _super4.call(this, input, unit, context); _this4.unit = 'year'; return _this4; } @@ -5169,17 +5197,17 @@ function (_Unit4) { return Year; }(Unit_1); -var WeekDay = -/*#__PURE__*/ -function (_Unit5) { +var WeekDay = /*#__PURE__*/function (_Unit5) { _inherits(WeekDay, _Unit5); + var _super5 = _createSuper(WeekDay); + function WeekDay(input, unit, context) { var _this5; _classCallCheck(this, WeekDay); - _this5 = _possibleConstructorReturn(this, _getPrototypeOf(WeekDay).call(this, input, unit, context)); + _this5 = _super5.call(this, input, unit, context); _this5.unit = 'week'; _this5.d = _this5.d.day(input); _this5.weekDay = _this5.d.dayName(); //assume a wednesday in the future @@ -5211,17 +5239,17 @@ function (_Unit5) { }(Unit_1); // like 'feb 2' -var CalendarDate = -/*#__PURE__*/ -function (_Unit6) { +var CalendarDate = /*#__PURE__*/function (_Unit6) { _inherits(CalendarDate, _Unit6); + var _super6 = _createSuper(CalendarDate); + function CalendarDate(input, unit, context) { var _this6; _classCallCheck(this, CalendarDate); - _this6 = _possibleConstructorReturn(this, _getPrototypeOf(CalendarDate).call(this, input, unit, context)); + _this6 = _super6.call(this, input, unit, context); _this6.unit = 'day'; return _this6; } @@ -5996,7 +6024,7 @@ var logic = function logic(doc, context) { if (m.found) ; // 'in june' - m = doc.match('^(on|during|in) [*]'); + m = doc.match('^(on|during|in) [*]', 0); if (m.found) { var _d = _03ParseDate(m, context); @@ -6098,7 +6126,11 @@ var methods$5 = { str = obj.start.format(fmt); if (obj.end) { - str += ' to ' + obj.start.format(fmt); + var end = obj.start.format(fmt); + + if (str !== end) { + str += ' to ' + end; + } } doc.replaceWith(str, { @@ -6140,17 +6172,17 @@ var addMethods$5 = function addMethods(Doc, world) { world.postProcess(_01Tag); /** */ - var Dates = - /*#__PURE__*/ - function (_Doc) { + var Dates = /*#__PURE__*/function (_Doc) { _inherits(Dates, _Doc); + var _super = _createSuper(Dates); + function Dates(list, from, w) { var _this; _classCallCheck(this, Dates); - _this = _possibleConstructorReturn(this, _getPrototypeOf(Dates).call(this, list, from, w)); + _this = _super.call(this, list, from, w); _this.context = {}; return _this; } diff --git a/plugins/sentences/builds/compromise-sentences.js b/plugins/sentences/builds/compromise-sentences.js index ae8487492..0d11a31cb 100644 --- a/plugins/sentences/builds/compromise-sentences.js +++ b/plugins/sentences/builds/compromise-sentences.js @@ -1,4 +1,4 @@ -/* compromise-sentences 0.0.5 MIT */ +/* compromise-sentences 0.0.6 MIT */ (function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : @@ -58,6 +58,19 @@ return _setPrototypeOf(o, p); } + function _isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + + try { + Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); + return true; + } catch (e) { + return false; + } + } + function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); @@ -74,6 +87,25 @@ return _assertThisInitialized(self); } + function _createSuper(Derived) { + var hasNativeReflectConstruct = _isNativeReflectConstruct(); + + return function _createSuperInternal() { + var Super = _getPrototypeOf(Derived), + result; + + if (hasNativeReflectConstruct) { + var NewTarget = _getPrototypeOf(this).constructor; + + result = Reflect.construct(Super, arguments, NewTarget); + } else { + result = Super.apply(this, arguments); + } + + return _possibleConstructorReturn(this, result); + }; + } + // if a clause starts with these, it's not a main clause var subordinate = "(after|although|as|because|before|if|since|than|that|though|when|whenever|where|whereas|wherever|whether|while|why|unless|until|once)"; var relative = "(that|which|whichever|who|whoever|whom|whose|whomever)"; //try to remove secondary clauses @@ -171,11 +203,71 @@ toPositive: toPositive }; + //is this sentence asking a question? + var isQuestion = function isQuestion(doc) { + var endPunct = doc.post(); + var clauses = doc.clauses(); + + if (/\?/.test(endPunct) === true) { + return true; + } // Has ellipsis at the end means it's probably not a question + // e.g., Is this just fantasy... + + + if (/\.\.$/.test(doc.out('text'))) { + return false; + } // Starts with question word, but has a comma, so probably not a question + // e.g., Why are we caught in a land slide, no escape from reality + + + if (doc.has('^#QuestionWord') && doc.has('#Comma')) { + return false; + } // Starts with a #QuestionWord + // e.g., What open your eyes look up to the skies and see + + + if (doc.has('^#QuestionWord')) { + return true; + } // Second word is a #QuestionWord + // e.g., I'm what a poor boy + // case ts.has('^\w+\s#QuestionWord'): + // return true; + // is it, do you - start of sentence + // e.g., Do I need no sympathy + + + if (doc.has('^(do|does|did|is|was|can|could|will|would|may) #Noun')) { + return true; + } // these are a little more loose.. + // e.g., Must I be come easy come easy go + + + if (doc.has('^(have|must) you')) { + return true; + } // Clause starts with a question word + // e.g., Anyway the wind blows, what doesn't really matter to me + + + if (clauses.has('^#QuestionWord')) { + return true; + } //is wayne gretskzy alive + + + if (clauses.has('(do|does|is|was) #Noun+ #Adverb? (#Adjective|#Infinitive)$')) { + return true; + } // Probably not a question + + + return false; + }; + + var isQuestion_1 = isQuestion; + /** return sentences ending with '?' */ - var isQuestion = function isQuestion() { - return this.filter(function (doc) { - var term = doc.lastTerm().termList(0); - return term.hasPost('?'); + + var isQuestion_1$1 = function isQuestion_1$1() { + return this.filter(function (d) { + return isQuestion_1(d); }); }; /** return sentences ending with '!' */ @@ -200,23 +292,26 @@ var toExclamation = function toExclamation() { + this.post('!'); return this; }; /** 'he is.' -> 'he is?' */ var toQuestion = function toQuestion() { + this.post('?'); return this; }; /** 'he is?' -> 'he is.' */ var toStatement = function toStatement() { + this.post('.'); return this; }; - var punct = { - isQuestion: isQuestion, + var types = { + isQuestion: isQuestion_1$1, isExclamation: isExclamation, isStatement: isStatement, toExclamation: toExclamation, @@ -301,22 +396,22 @@ toFutureTense: toFutureTense }; - var methods = Object.assign({}, negate, punct, tense); + var methods = Object.assign({}, negate, types, tense); var addMethod = function addMethod(Doc) { /** */ - var Sentences = - /*#__PURE__*/ - function (_Doc) { + var Sentences = /*#__PURE__*/function (_Doc) { _inherits(Sentences, _Doc); + var _super = _createSuper(Sentences); + function Sentences(list, from, world) { _classCallCheck(this, Sentences); list = list.map(function (p) { return p.clone(true); }); - return _possibleConstructorReturn(this, _getPrototypeOf(Sentences).call(this, list, from, world)); + return _super.call(this, list, from, world); } /** overload the original json with noun information */ @@ -411,8 +506,12 @@ }]); return Sentences; - }(Doc); + }(Doc); // add some aliases + + methods.questions = methods.isQuestion; + methods.exclamations = methods.isExclamation; + methods.statements = methods.isStatement; Object.assign(Sentences.prototype, methods); /** overload original sentences() method and return Sentence class**/ diff --git a/plugins/sentences/builds/compromise-sentences.js.map b/plugins/sentences/builds/compromise-sentences.js.map index 3a92f9e9a..4d600ec1c 100644 --- a/plugins/sentences/builds/compromise-sentences.js.map +++ b/plugins/sentences/builds/compromise-sentences.js.map @@ -1 +1 @@ -{"version":3,"file":"compromise-sentences.js","sources":["../src/mainClause.js","../src/parse.js","../src/methods/negate.js","../src/methods/punct.js","../src/methods/tense.js","../src/methods/index.js","../src/index.js"],"sourcesContent":["// if a clause starts with these, it's not a main clause\nconst subordinate = `(after|although|as|because|before|if|since|than|that|though|when|whenever|where|whereas|wherever|whether|while|why|unless|until|once)`\nconst relative = `(that|which|whichever|who|whoever|whom|whose|whomever)`\n\n//try to remove secondary clauses\nconst mainClause = function(og) {\n let m = og.clone(true)\n if (m.length === 1) {\n return m\n }\n // if there's no verb?\n m = m.if('#Verb')\n if (m.length === 1) {\n return m\n }\n // this is a signal for subordinate-clauses\n m = m.ifNo(subordinate)\n m = m.ifNo('^even (if|though)')\n m = m.ifNo('^so that')\n m = m.ifNo('^rather than')\n m = m.ifNo('^provided that')\n if (m.length === 1) {\n return m\n }\n // relative clauses\n m = m.ifNo(relative)\n if (m.length === 1) {\n return m\n }\n\n m = m.ifNo('(despite|during|before|through|throughout)')\n if (m.length === 1) {\n return m\n }\n // did we go too far?\n if (m.length === 0) {\n m = og\n }\n // choose the first one?\n return m.eq(0)\n}\nmodule.exports = mainClause\n","const mainClause = require('./mainClause')\n\nconst parse = function(doc) {\n let clauses = doc.clauses()\n let main = mainClause(clauses)\n let nouns = main.match('#Determiner? (#Noun|#Adjective)+').if('#Noun')\n let verb = main.verbs().eq(0)\n // match('(do|will)? not? #Verb+ not?').eq(0)\n return {\n subject: nouns.eq(0),\n verb: verb,\n object: verb.lookAhead('.*'),\n }\n}\nmodule.exports = parse\n","const parse = require('../parse')\n\n/** he walks -> he did not walk */\nexports.toNegative = function() {\n this.forEach(doc => {\n let obj = parse(doc)\n let vb = obj.verb.clone()\n vb = vb.verbs().toNegative()\n obj.verb.replaceWith(vb, false)\n })\n return this\n}\n/** he doesn't walk -> he walks */\nexports.toPositive = function() {\n this.forEach(doc => {\n let obj = parse(doc)\n let vb = obj.verb.clone()\n vb = vb.verbs().toPositive()\n obj.verb.replaceWith(vb, false)\n })\n return this\n}\n","/** return sentences ending with '?' */\nexports.isQuestion = function() {\n return this.filter(doc => {\n let term = doc.lastTerm().termList(0)\n return term.hasPost('?')\n })\n}\n/** return sentences ending with '!' */\nexports.isExclamation = function() {\n return this.filter(doc => {\n let term = doc.lastTerm().termList(0)\n return term.hasPost('!')\n })\n}\n/** return sentences with neither a question or an exclamation */\nexports.isStatement = function() {\n return this.filter(doc => {\n let term = doc.lastTerm().termList(0)\n return !term.hasPost('?') && !term.hasPost('!')\n })\n}\n\n/** 'he is.' -> 'he is!' */\nexports.toExclamation = function() {\n return this\n}\n/** 'he is.' -> 'he is?' */\nexports.toQuestion = function() {\n return this\n}\n/** 'he is?' -> 'he is.' */\nexports.toStatement = function() {\n return this\n}\n","const parse = require('../parse')\n\n/** he walks -> he walked */\nexports.toPastTense = function() {\n this.forEach(doc => {\n if (doc.has('#PastTense')) {\n return\n }\n let obj = parse(doc)\n let vb = obj.verb.clone()\n vb = vb.verbs().toPastTense()\n obj.verb.replaceWith(vb, false)\n // trailing gerund/future/present are okay, but 'walked and eats' is not\n if (obj.object && obj.object.found && obj.object.has('#PresentTense')) {\n let verbs = obj.object.verbs()\n verbs\n .if('#PresentTense')\n .verbs()\n .toPastTense()\n }\n })\n return this\n}\n\n/** he walked -> he walks */\nexports.toPresentTense = function() {\n this.forEach(doc => {\n let obj = parse(doc)\n let isPlural = obj.verb.lookBehind('(i|we) (#Adverb|#Verb)?$').found\n let vb = obj.verb.clone()\n // 'i look', not 'i looks'\n if (isPlural) {\n //quick hack for copula verb - be/am\n if (vb.has('(is|was|am|be)')) {\n vb = vb.replace('will? (is|was|am|be)', 'am')\n } else {\n vb = vb.verbs().toInfinitive()\n }\n } else {\n //'he looks'\n vb = vb.verbs().toPresentTense()\n }\n obj.verb.replaceWith(vb, false)\n\n // future is okay, but 'walks and ate' -> 'walks and eats'\n if (obj.object && obj.object.found && obj.object.has('#PastTense')) {\n let verbs = obj.object.verbs()\n verbs\n .if('#PastTense')\n .verbs()\n .toPresentTense()\n }\n })\n return this\n}\n\n/**he walked -> he will walk */\nexports.toFutureTense = function() {\n this.forEach(doc => {\n let obj = parse(doc)\n let vb = obj.verb.clone()\n vb = vb.verbs().toFutureTense()\n obj.verb.replaceWith(vb, false)\n //Present is okay, but 'will walk and ate' -> 'will walk and eat'\n if (obj.object && obj.object.found && obj.object.has('(#PastTense|#PresentTense)')) {\n let verbs = obj.object.verbs()\n verbs\n .if('(#PastTense|#PresentTense)')\n .verbs()\n .toInfinitive()\n }\n })\n return this\n}\n\n// toContinuous() {\n// return this\n// }\n","module.exports = Object.assign({}, require('./negate'), require('./punct'), require('./tense'))\n","const parse = require('./parse')\nconst methods = require('./methods')\n\nconst addMethod = function(Doc) {\n /** */\n class Sentences extends Doc {\n constructor(list, from, world) {\n list = list.map(p => p.clone(true))\n super(list, from, world)\n }\n\n /** overload the original json with noun information */\n json(options) {\n let n = null\n if (typeof options === 'number') {\n n = options\n options = null\n }\n options = options || { text: true, normal: true, trim: true, terms: true }\n let res = []\n this.forEach(doc => {\n let json = doc.json(options)[0]\n let obj = parse(doc)\n json.subject = obj.subject.json(options)[0]\n json.verb = obj.verb.json(options)[0]\n json.object = obj.object.json(options)[0]\n res.push(json)\n })\n if (n !== null) {\n return res[n]\n }\n return res\n }\n\n /** the main noun of the sentence */\n subjects() {\n return this.map(doc => {\n let res = parse(doc)\n return res.subject\n })\n }\n\n /** return sentences that are in passive-voice */\n isPassive() {\n return this.if('was #Adverb? #PastTense #Adverb? by') //haha\n }\n\n /** add a word to the start of this sentence */\n prepend(str) {\n this.forEach(doc => {\n // repair the titlecase\n let firstTerms = doc.match('^.')\n firstTerms.not('#ProperNoun').toLowerCase()\n // actually add the word\n firstTerms.prepend(str)\n // add a titlecase\n firstTerms.terms(0).toTitleCase()\n })\n return this\n }\n\n /** add a word to the end of this sentence */\n append(str) {\n let hasEnd = /[.?!]\\s*$/.test(str)\n this.forEach(doc => {\n let end = doc.match('.$')\n let lastTerm = end.termList(0)\n let punct = lastTerm.post\n if (hasEnd === true) {\n punct = ''\n }\n // add punctuation to the end\n end.append(str + punct)\n // remove punctuation from the former last-term\n lastTerm.post = ' '\n })\n return this\n }\n }\n Object.assign(Sentences.prototype, methods)\n\n /** overload original sentences() method and return Sentence class**/\n Doc.prototype.sentences = function(n) {\n let arr = []\n this.list.forEach(p => {\n arr.push(p.fullSentence())\n })\n //grab (n)th result\n let s = new Sentences(arr, this, this.world)\n if (typeof n === 'number') {\n s = s.get(n)\n }\n return s\n }\n return Doc\n}\nmodule.exports = addMethod\n"],"names":["subordinate","relative","mainClause","og","m","clone","length","ifNo","eq","parse","doc","clauses","main","nouns","match","verb","verbs","subject","object","lookAhead","forEach","obj","vb","toNegative","replaceWith","toPositive","filter","term","lastTerm","termList","hasPost","has","toPastTense","found","isPlural","lookBehind","replace","toInfinitive","toPresentTense","toFutureTense","Object","assign","require$$0","require$$1","require$$2","addMethod","Doc","Sentences","list","from","world","map","p","options","n","text","normal","trim","terms","res","json","push","str","firstTerms","not","toLowerCase","prepend","toTitleCase","hasEnd","test","end","punct","post","append","prototype","methods","sentences","arr","fullSentence","s","get"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"compromise-sentences.js","sources":["../src/mainClause.js","../src/parse.js","../src/methods/negate.js","../src/methods/types/isQuestion.js","../src/methods/types/index.js","../src/methods/tense.js","../src/methods/index.js","../src/index.js"],"sourcesContent":["// if a clause starts with these, it's not a main clause\nconst subordinate = `(after|although|as|because|before|if|since|than|that|though|when|whenever|where|whereas|wherever|whether|while|why|unless|until|once)`\nconst relative = `(that|which|whichever|who|whoever|whom|whose|whomever)`\n\n//try to remove secondary clauses\nconst mainClause = function(og) {\n let m = og.clone(true)\n if (m.length === 1) {\n return m\n }\n // if there's no verb?\n m = m.if('#Verb')\n if (m.length === 1) {\n return m\n }\n // this is a signal for subordinate-clauses\n m = m.ifNo(subordinate)\n m = m.ifNo('^even (if|though)')\n m = m.ifNo('^so that')\n m = m.ifNo('^rather than')\n m = m.ifNo('^provided that')\n if (m.length === 1) {\n return m\n }\n // relative clauses\n m = m.ifNo(relative)\n if (m.length === 1) {\n return m\n }\n\n m = m.ifNo('(despite|during|before|through|throughout)')\n if (m.length === 1) {\n return m\n }\n // did we go too far?\n if (m.length === 0) {\n m = og\n }\n // choose the first one?\n return m.eq(0)\n}\nmodule.exports = mainClause\n","const mainClause = require('./mainClause')\n\nconst parse = function(doc) {\n let clauses = doc.clauses()\n let main = mainClause(clauses)\n let nouns = main.match('#Determiner? (#Noun|#Adjective)+').if('#Noun')\n let verb = main.verbs().eq(0)\n // match('(do|will)? not? #Verb+ not?').eq(0)\n return {\n subject: nouns.eq(0),\n verb: verb,\n object: verb.lookAhead('.*'),\n }\n}\nmodule.exports = parse\n","const parse = require('../parse')\n\n/** he walks -> he did not walk */\nexports.toNegative = function() {\n this.forEach(doc => {\n let obj = parse(doc)\n let vb = obj.verb.clone()\n vb = vb.verbs().toNegative()\n obj.verb.replaceWith(vb, false)\n })\n return this\n}\n/** he doesn't walk -> he walks */\nexports.toPositive = function() {\n this.forEach(doc => {\n let obj = parse(doc)\n let vb = obj.verb.clone()\n vb = vb.verbs().toPositive()\n obj.verb.replaceWith(vb, false)\n })\n return this\n}\n","//is this sentence asking a question?\nconst isQuestion = function (doc) {\n let endPunct = doc.post()\n let clauses = doc.clauses()\n\n if (/\\?/.test(endPunct) === true) {\n return true\n }\n\n // Has ellipsis at the end means it's probably not a question\n // e.g., Is this just fantasy...\n if (/\\.\\.$/.test(doc.out('text'))) {\n return false\n }\n\n // Starts with question word, but has a comma, so probably not a question\n // e.g., Why are we caught in a land slide, no escape from reality\n if (doc.has('^#QuestionWord') && doc.has('#Comma')) {\n return false\n }\n\n // Starts with a #QuestionWord\n // e.g., What open your eyes look up to the skies and see\n if (doc.has('^#QuestionWord')) {\n return true\n }\n\n // Second word is a #QuestionWord\n // e.g., I'm what a poor boy\n // case ts.has('^\\w+\\s#QuestionWord'):\n // return true;\n\n // is it, do you - start of sentence\n // e.g., Do I need no sympathy\n if (doc.has('^(do|does|did|is|was|can|could|will|would|may) #Noun')) {\n return true\n }\n\n // these are a little more loose..\n // e.g., Must I be come easy come easy go\n if (doc.has('^(have|must) you')) {\n return true\n }\n\n // Clause starts with a question word\n // e.g., Anyway the wind blows, what doesn't really matter to me\n if (clauses.has('^#QuestionWord')) {\n return true\n }\n\n //is wayne gretskzy alive\n if (clauses.has('(do|does|is|was) #Noun+ #Adverb? (#Adjective|#Infinitive)$')) {\n return true\n }\n\n // Probably not a question\n return false\n}\nmodule.exports = isQuestion\n","const isQuestion = require('./isQuestion')\n\n/** return sentences ending with '?' */\nexports.isQuestion = function () {\n return this.filter((d) => isQuestion(d))\n}\n/** return sentences ending with '!' */\nexports.isExclamation = function () {\n return this.filter((doc) => {\n let term = doc.lastTerm().termList(0)\n return term.hasPost('!')\n })\n}\n/** return sentences with neither a question or an exclamation */\nexports.isStatement = function () {\n return this.filter((doc) => {\n let term = doc.lastTerm().termList(0)\n return !term.hasPost('?') && !term.hasPost('!')\n })\n}\n\n/** 'he is.' -> 'he is!' */\nexports.toExclamation = function () {\n this.post('!')\n return this\n}\n/** 'he is.' -> 'he is?' */\nexports.toQuestion = function () {\n this.post('?')\n return this\n}\n/** 'he is?' -> 'he is.' */\nexports.toStatement = function () {\n this.post('.')\n return this\n}\n","const parse = require('../parse')\n\n/** he walks -> he walked */\nexports.toPastTense = function() {\n this.forEach(doc => {\n if (doc.has('#PastTense')) {\n return\n }\n let obj = parse(doc)\n let vb = obj.verb.clone()\n vb = vb.verbs().toPastTense()\n obj.verb.replaceWith(vb, false)\n // trailing gerund/future/present are okay, but 'walked and eats' is not\n if (obj.object && obj.object.found && obj.object.has('#PresentTense')) {\n let verbs = obj.object.verbs()\n verbs\n .if('#PresentTense')\n .verbs()\n .toPastTense()\n }\n })\n return this\n}\n\n/** he walked -> he walks */\nexports.toPresentTense = function() {\n this.forEach(doc => {\n let obj = parse(doc)\n let isPlural = obj.verb.lookBehind('(i|we) (#Adverb|#Verb)?$').found\n let vb = obj.verb.clone()\n // 'i look', not 'i looks'\n if (isPlural) {\n //quick hack for copula verb - be/am\n if (vb.has('(is|was|am|be)')) {\n vb = vb.replace('will? (is|was|am|be)', 'am')\n } else {\n vb = vb.verbs().toInfinitive()\n }\n } else {\n //'he looks'\n vb = vb.verbs().toPresentTense()\n }\n obj.verb.replaceWith(vb, false)\n\n // future is okay, but 'walks and ate' -> 'walks and eats'\n if (obj.object && obj.object.found && obj.object.has('#PastTense')) {\n let verbs = obj.object.verbs()\n verbs\n .if('#PastTense')\n .verbs()\n .toPresentTense()\n }\n })\n return this\n}\n\n/**he walked -> he will walk */\nexports.toFutureTense = function() {\n this.forEach(doc => {\n let obj = parse(doc)\n let vb = obj.verb.clone()\n vb = vb.verbs().toFutureTense()\n obj.verb.replaceWith(vb, false)\n //Present is okay, but 'will walk and ate' -> 'will walk and eat'\n if (obj.object && obj.object.found && obj.object.has('(#PastTense|#PresentTense)')) {\n let verbs = obj.object.verbs()\n verbs\n .if('(#PastTense|#PresentTense)')\n .verbs()\n .toInfinitive()\n }\n })\n return this\n}\n\n// toContinuous() {\n// return this\n// }\n","module.exports = Object.assign({}, require('./negate'), require('./types'), require('./tense'))\n","const parse = require('./parse')\nconst methods = require('./methods')\n\nconst addMethod = function (Doc) {\n /** */\n class Sentences extends Doc {\n constructor(list, from, world) {\n list = list.map((p) => p.clone(true))\n super(list, from, world)\n }\n\n /** overload the original json with noun information */\n json(options) {\n let n = null\n if (typeof options === 'number') {\n n = options\n options = null\n }\n options = options || { text: true, normal: true, trim: true, terms: true }\n let res = []\n this.forEach((doc) => {\n let json = doc.json(options)[0]\n let obj = parse(doc)\n json.subject = obj.subject.json(options)[0]\n json.verb = obj.verb.json(options)[0]\n json.object = obj.object.json(options)[0]\n res.push(json)\n })\n if (n !== null) {\n return res[n]\n }\n return res\n }\n\n /** the main noun of the sentence */\n subjects() {\n return this.map((doc) => {\n let res = parse(doc)\n return res.subject\n })\n }\n\n /** return sentences that are in passive-voice */\n isPassive() {\n return this.if('was #Adverb? #PastTense #Adverb? by') //haha\n }\n\n /** add a word to the start of this sentence */\n prepend(str) {\n this.forEach((doc) => {\n // repair the titlecase\n let firstTerms = doc.match('^.')\n firstTerms.not('#ProperNoun').toLowerCase()\n // actually add the word\n firstTerms.prepend(str)\n // add a titlecase\n firstTerms.terms(0).toTitleCase()\n })\n return this\n }\n\n /** add a word to the end of this sentence */\n append(str) {\n let hasEnd = /[.?!]\\s*$/.test(str)\n this.forEach((doc) => {\n let end = doc.match('.$')\n let lastTerm = end.termList(0)\n let punct = lastTerm.post\n if (hasEnd === true) {\n punct = ''\n }\n // add punctuation to the end\n end.append(str + punct)\n // remove punctuation from the former last-term\n lastTerm.post = ' '\n })\n return this\n }\n }\n // add some aliases\n methods.questions = methods.isQuestion\n methods.exclamations = methods.isExclamation\n methods.statements = methods.isStatement\n\n Object.assign(Sentences.prototype, methods)\n\n /** overload original sentences() method and return Sentence class**/\n Doc.prototype.sentences = function (n) {\n let arr = []\n this.list.forEach((p) => {\n arr.push(p.fullSentence())\n })\n //grab (n)th result\n let s = new Sentences(arr, this, this.world)\n if (typeof n === 'number') {\n s = s.get(n)\n }\n return s\n }\n return Doc\n}\nmodule.exports = addMethod\n"],"names":["subordinate","relative","mainClause","og","m","clone","length","ifNo","eq","parse","doc","clauses","main","nouns","match","verb","verbs","subject","object","lookAhead","forEach","obj","vb","toNegative","replaceWith","toPositive","isQuestion","endPunct","post","test","out","has","filter","d","term","lastTerm","termList","hasPost","toPastTense","found","isPlural","lookBehind","replace","toInfinitive","toPresentTense","toFutureTense","Object","assign","require$$0","require$$1","require$$2","addMethod","Doc","Sentences","list","from","world","map","p","options","n","text","normal","trim","terms","res","json","push","str","firstTerms","not","toLowerCase","prepend","toTitleCase","hasEnd","end","punct","append","methods","questions","exclamations","isExclamation","statements","isStatement","prototype","sentences","arr","fullSentence","s","get"],"mappings":"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"} \ No newline at end of file diff --git a/plugins/sentences/builds/compromise-sentences.min.js b/plugins/sentences/builds/compromise-sentences.min.js index 9ac83fae5..512cd09a5 100644 --- a/plugins/sentences/builds/compromise-sentences.min.js +++ b/plugins/sentences/builds/compromise-sentences.min.js @@ -1 +1 @@ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).compromiseSentences=t()}(this,(function(){"use strict";function e(e,t){for(var n=0;n 'he is?' */ var toQuestion = function toQuestion() { + this.post('?'); return this; }; /** 'he is?' -> 'he is.' */ var toStatement = function toStatement() { + this.post('.'); return this; }; -var punct = { - isQuestion: isQuestion, +var types = { + isQuestion: isQuestion_1$1, isExclamation: isExclamation, isStatement: isStatement, toExclamation: toExclamation, @@ -295,22 +390,22 @@ var tense = { toFutureTense: toFutureTense }; -var methods = Object.assign({}, negate, punct, tense); +var methods = Object.assign({}, negate, types, tense); var addMethod = function addMethod(Doc) { /** */ - var Sentences = - /*#__PURE__*/ - function (_Doc) { + var Sentences = /*#__PURE__*/function (_Doc) { _inherits(Sentences, _Doc); + var _super = _createSuper(Sentences); + function Sentences(list, from, world) { _classCallCheck(this, Sentences); list = list.map(function (p) { return p.clone(true); }); - return _possibleConstructorReturn(this, _getPrototypeOf(Sentences).call(this, list, from, world)); + return _super.call(this, list, from, world); } /** overload the original json with noun information */ @@ -405,8 +500,12 @@ var addMethod = function addMethod(Doc) { }]); return Sentences; - }(Doc); + }(Doc); // add some aliases + + methods.questions = methods.isQuestion; + methods.exclamations = methods.isExclamation; + methods.statements = methods.isStatement; Object.assign(Sentences.prototype, methods); /** overload original sentences() method and return Sentence class**/ diff --git a/plugins/sentences/package.json b/plugins/sentences/package.json index 033b849d6..c1f42dcd1 100644 --- a/plugins/sentences/package.json +++ b/plugins/sentences/package.json @@ -1,7 +1,7 @@ { "name": "compromise-sentences", "description": "plugin for nlp-compromise", - "version": "0.0.5", + "version": "0.0.6", "author": "Spencer Kelly (http://spencermounta.in)", "main": "./builds/compromise-sentences.js", "unpkg": "./builds/compromise-sentences.min.js", diff --git a/src/_version.js b/src/_version.js index b05c55cf9..859ebacb2 100644 --- a/src/_version.js +++ b/src/_version.js @@ -1 +1 @@ -module.exports = '13.2.0' \ No newline at end of file +module.exports = '13.3.0' \ No newline at end of file