/**
* lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.0.1 * Copyright (C) 2017 Oliver Nightingale * @license MIT */
!function(){var e=function(t){var r=new e.Builder;return r.pipeline.add(e.trimmer,e.stopWordFilter,e.stemmer),r.searchPipeline.add(e.stemmer),t.call(r,r),r.build()};e.version=“2.0.1”,e.utils={},e.utils.warn=function(e){return function(t){e.console&&console.warn&&console.warn(t)}}(this),e.utils.asString=function(e){return void 0===e||null===e?“”:e.toString()},e.idf=function(e,t){var r=0;for(var i in e)“_index”!=i&&(r+=Object.keys(e).length);return(t-r+.5)/(r+.5)},e.Token=function(e,t){this.str=e||“”,this.metadata=t||{}},e.Token.prototype.toString=function(){return this.str},e.Token.prototype.update=function(e){return this.str=e(this.str,this.metadata),this},e.Token.prototype.clone=function(t){return t=t||function(e){return e},new e.Token(t(this.str,this.metadata),this.metadata)},e.tokenizer=function(t){if(null==t||void 0==t)return[];if(Array.isArray(t))return t.map(function(t){return new e.Token(e.utils.asString(t).toLowerCase())});for(var r=t.toString().trim().toLowerCase(),i=r.length,n=[],s=0,o=0;i>=s;s++){var a=r.charAt(s),u=s-o;(a.match(e.tokenizer.separator)||s==i)&&(u>0&&n.push(new e.Token(r.slice(o,s),{position:,index:n.length})),o=s+1)}return n},e.tokenizer.separator=/+/,e.Pipeline=function(){this._stack=[]},e.Pipeline.registeredFunctions=Object.create(null),e.Pipeline.registerFunction=function(t,r){r in this.registeredFunctions&&e.utils.warn(“Overwriting existing registered function: ”+r),t.label=r,e.Pipeline.registeredFunctions=t},e.Pipeline.warnIfFunctionNotRegistered=function(t){var r=t.label&&t.label in this.registeredFunctions;r||e.utils.warn(“Function is not registered with pipeline. This may cause problems when serialising the index.n”,t)},e.Pipeline.load=function(t){var r=new e.Pipeline;return t.forEach(function(t){var i=e.Pipeline.registeredFunctions;if(!i)throw new Error(“Cannot load unregistered function: ”+t);r.add(i)}),r},e.Pipeline.prototype.add=function(){var t=Array.prototype.slice.call(arguments);t.forEach(function(t){e.Pipeline.warnIfFunctionNotRegistered(t),this._stack.push(t)},this)},e.Pipeline.prototype.after=function(t,r){e.Pipeline.warnIfFunctionNotRegistered®;var i=this._stack.indexOf(t);if(-1==i)throw new Error(“Cannot find existingFn”);i+=1,this._stack.splice(i,0,r)},e.Pipeline.prototype.before=function(t,r){e.Pipeline.warnIfFunctionNotRegistered®;var i=this._stack.indexOf(t);if(-1==i)throw new Error(“Cannot find existingFn”);this._stack.splice(i,0,r)},e.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);-1!=t&&this._stack.splice(t,1)},e.Pipeline.prototype.run=function(e){for(var t=this._stack.length,r=0;t>r;r++){var i=this._stack;e=e.reduce(function(t,r,n){var s=i(r,n,e);return void 0===s||“”===s?t:t.concat(s)},[])}return e},e.Pipeline.prototype.runString=function(t){var r=new e.Token(t);return this.run().map(function(e){return e.toString()})},e.Pipeline.prototype.reset=function(){this._stack=[]},e.Pipeline.prototype.toJSON=function(){return this._stack.map(function(t){return e.Pipeline.warnIfFunctionNotRegistered(t),t.label})},e.Vector=function(e){this._magnitude=0,this.elements=e||[]},e.Vector.prototype.insert=function(e,t){if(this._magnitude=0,0==this.elements.length)return void this.elements.push(e,t);for(var r=0,i=this.elements.length,n=i-r,s=2*Math.floor(n/2/2),o=this.elements;n>2;){if(o==e)throw“duplicate index”;e>o&&(r=s),o>e&&(i=s),n=i-r,s=r+2*Math.floor(n/2/2),o=this.elements}o>e&&this.elements.splice(s,0,e,t),e>o&&this.elements.splice(s+2,0,e,t)},e.Vector.prototype.magnitude=function(){if(this._magnitude)return this._magnitude;for(var e=0,t=this.elements.length,r=1;t>r;r+=2){var i=this.elements;e+=i*i}return this._magnitude=Math.sqrt(e)},e.Vector.prototype.dot=function(e){for(var t=0,r=this.elements,i=e.elements,n=r.length,s=i.length,o=0,a=0,u=0,h=0;n>u&&s>h;)o=r,a=i,a>o?u+=2:o>a?h+=2:o==a&&(t+=r*i,u+=2,h+=2);return t},e.Vector.prototype.similarity=function(e){return this.dot(e)/(this.magnitude()*e.magnitude())},e.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,r=0;tn
“)?”+s+n,a=“^(”n
“)?”+s+n+“(”s
“)?$”,u=“^(”n
“)?”+s+n+s+n,h=“^(”n
“)?”+i,d=new RegExp(o),l=new RegExp(u),c=new RegExp(a),p=new RegExp(h),f=/^(.+?)(ss|i)es$/,m=/^(.+?)()s$/,y=/^(.+?)eed$/,v=/^(.+?)(ed|ing)$/,g=/.$/,x=/(at|bl|iz)$/,k=new RegExp(“()\1$”),w=new RegExp(“^”+n+i+“$”),Q=/^(.+?)y$/,L=/^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/,T=/^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/,b=/^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/,S=/^(.+?)(s|t)(ion)$/,P=/^(.+?)e$/,E=/ll$/,I=new RegExp(“^”+n+i+“$”),O=function®{var i,n,s,o,a,u,h;if(r.length<3)return r;if(s=r.substr(0,1),“y”==s&&(r=s.toUpperCase()+r.substr(1)),o=f,a=m,o.test®?r=r.replace(o,“$1$2”):a.test®&&(r=r.replace(a,“$1$2”)),o=y,a=v,o.test®){var O=o.exec®;o=d,o.test(O)&&(o=g,r=r.replace(o,“”))}else if(a.test®){var O=a.exec®;i=O,a=p,a.test(i)&&(r=i,a=x,u=k,h=w,a.test®?r+=“e”:u.test®?(o=g,r=r.replace(o,“”)):h.test®&&(r+=“e”))}if(o=Q,o.test®){var O=o.exec®;i=O,r=i+“i”}if(o=L,o.test®){var O=o.exec®;i=O,n=O,o=d,o.test(i)&&(r=i+e)}if(o=T,o.test®){var O=o.exec®;i=O,n=O,o=d,o.test(i)&&(r=i+t)}if(o=b,a=S,o.test®){var O=o.exec®;i=O,o=l,o.test(i)&&(r=i)}else if(a.test®){var O=a.exec®;i=O+O,a=l,a.test(i)&&(r=i)}if(o=P,o.test®){var O=o.exec®;i=O,o=l,a=c,u=I,(o.test(i)||a.test(i)&&!u.test(i))&&(r=i)}return o=E,a=l,o.test®&&a.test®&&(o=g,r=r.replace(o,“”)),“y”==s&&(r=s.toLowerCase()+r.substr(1)),r};return function(e){return e.update(O)}}(),e.Pipeline.registerFunction(e.stemmer,“stemmer”),e.generateStopWordFilter=function(e){var t=e.reduce(function(e,t){return e=t,e},{});return function(e){return e&&t!==e.toString()?e:void 0}},e.stopWordFilter=e.generateStopWordFilter(),e.Pipeline.registerFunction(e.stopWordFilter,“stopWordFilter”),e.trimmer=function(e){return e.update(function(e){return e.replace(/^W+/,“”).replace(/W+$/,“”)})},e.Pipeline.registerFunction(e.trimmer,“trimmer”),e.TokenSet=function(){this=!1,this.edges={},this.id=e.TokenSet._nextId,e.TokenSet._nextId+=1},e.TokenSet._nextId=1,e.TokenSet.fromArray=function(t){for(var r=new e.TokenSet.Builder,i=0,n=t.length;n>i;i++)r.insert(t);return r.finish(),r.root},e.TokenSet.fromClause=function(t){return“editDistance”in t?e.TokenSet.fromFuzzyString(t.term,t.editDistance):e.TokenSet.fromString(t.term)},e.TokenSet.fromFuzzyString=function(t,r){for(var i=new e.TokenSet,n=;n.length;){var s=n.pop();if(s.str.length>0){var o,a=s.str.charAt(0);a in s.node.edges?o=s.node.edges:(o=new e.TokenSet,s.node.edges=o),1==s.str.length?o=!0:n.push({node:o,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(s.editsRemaining>0&&s.str.length>1){var u,a=s.str.charAt(1);a in s.node.edges?u=s.node.edges:(u=new e.TokenSet,s.node.edges=u),s.str.length<=2?u=!0:n.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str.slice(2)})}if(s.editsRemaining>0&&1==s.str.length&&(s.node=!0),s.editsRemaining>0&&s.str.length>=1){if(“*”in s.node.edges)var h=s.node.edges;else{var h=new e.TokenSet;s.node.edges=h}1==s.str.length?h=!0:n.push({node:h,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.editsRemaining>0){if(“*”in s.node.edges)var d=s.node.edges;else{var d=new e.TokenSet;s.node.edges=d}0==s.str.length?d=!0:n.push({node:d,editsRemaining:s.editsRemaining-1,str:s.str})}if(s.editsRemaining>0&&s.str.length>1){var l,c=s.str.charAt(0),p=s.str.charAt(1);p in s.node.edges?l=s.node.edges:(l=new e.TokenSet,s.node.edges=l),1==s.str.length?l=!0:n.push({node:l,editsRemaining:s.editsRemaining-1,str:c+s.str.slice(2)})}}return i},e.TokenSet.fromString=function(t){for(var r=new e.TokenSet,i=r,n=!1,s=0,o=t.length;o>s;s++){var a=t,u=s==o-1;if(“*”==a)n=!0,r.edges=r,r=u;else{var h=new e.TokenSet;h=u,r.edges=h,r=h,n&&(r.edges=i)}}return i},e.TokenSet.prototype.toArray=function(){for(var e=[],t=;t.length;){var r=t.pop(),i=Object.keys(r.node.edges),n=i.length;r.node&&e.push(r.prefix);for(var s=0;n>s;s++){var o=i;t.push({prefix:r.prefix.concat(o),node:r.node.edges})}}return e},e.TokenSet.prototype.toString=function(){if(this._str)return this._str;for(var e=this?“1”:“0”,t=Object.keys(this.edges).sort(),r=t.length,i=0;r>i;i++){var n=t,s=this.edges;e=e+n+s.id}return e},e.TokenSet.prototype.intersect=function(t){for(var r=new e.TokenSet,i=void 0,n=;n.length;){i=n.pop();for(var s=Object.keys(i.qNode.edges),o=s.length,a=Object.keys(i.node.edges),u=a.length,h=0;o>h;h++)for(var d=s,l=0;u>l;l++){var c=a;if(c==d||“*”==d){var p=i.node.edges,f=i.qNode.edges,m=p&&f,y=void 0;c in i.output.edges?(y=i.output.edges,y=y||m):(y=new e.TokenSet,y=m,i.output.edges=y),n.push({qNode:f,output:y,node:p})}}}return r},e.TokenSet.Builder=function(){this.previousWord=“”,this.root=new e.TokenSet,this.uncheckedNodes=[],this.minimizedNodes={}},e.TokenSet.Builder.prototype.insert=function(t){var r,i=0;if(t<this.previousWord)throw new Error(“Out of order word insertion”);for(var n=0;ne.version
“' does not match serialized index '”t.version
“'”);for(var d=0;d<n.length;d++,s++){var l=n,c=l,p=l;i=new e.Vector(p)}for(var d=0;d<a.length;d++){var l=a,f=l,m=l;u.insert(f),o=m}return u.finish(),r.b=t.b,r.k1=t.k1,r.fields=t.fields,r.averageDocumentLength=t.averageDocumentLength,r.documentCount=s,r.documentVectors=i,r.invertedIndex=o,r.tokenSet=u.root,r.pipeline=h,new e.Index®},e.Builder=function(){this._ref=“id”,this._fields=[],this.invertedIndex=Object.create(null),this.documentTermFrequencies={},this.documentLengths={},this.tokenizer=e.tokenizer,this.pipeline=new e.Pipeline,this.searchPipeline=new e.Pipeline,this.documentCount=0,this._b=.75,this._k1=1.2,this.termIndex=0,this.metadataWhitelist=[]},e.Builder.prototype.ref=function(e){this._ref=e},e.Builder.prototype.field=function(e){this._fields.push(e)},e.Builder.prototype.b=function(e){0>e?this._b=0:e>1?this._b=1:this._b=e},e.Builder.prototype.k1=function(e){this._k1=e},e.Builder.prototype.add=function(e){var t=e,r={};this.documentCount+=1,this.documentTermFrequencies=r,this.documentLengths=0;for(var i=0;i<this._fields.length;i++){var n=this._fields,s=e,o=this.tokenizer(s),a=this.pipeline.run(o);this.documentLengths+=a.length;for(var u=0;u<a.length;u++){var h=a;if(void 0==r&&(r=0),r+=1,void 0==this.invertedIndex){var d=Object.create(null);d._index=this.termIndex,this.termIndex+=1;for(var l=0;lr.type
“ with value '”r.str
“'”;throw new e.QueryParseError(i,r.start,r.end)}},e.QueryParser.parseField=function(t){var r=t.consumeLexeme();if(void 0!=r){if(-1==t.query.allFields.indexOf(r.str)){var i=t.query.allFields.map(function(e){return“'”e
“'”}).join(),n=“unrecognised field '”r.str
“', possible fields: ”+i;throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.fields=;var s=t.peekLexeme();if(void 0==s){var n=“expecting term, found nothing”;throw new e.QueryParseError(n,r.start,r.end)}switch(s.type){case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var n=“expecting a field, found '”s.type
“'”;throw new e.QueryParseError(n,s.start,s.end)}}},e.QueryParser.parseTerm=function(t){var r=t.consumeLexeme();if(void 0!=r){t.currentClause.term=r.str.toLowerCase(),-1!=r.str.indexOf(“*”)&&(t.currentClause.usePipeline=!1);var i=t.peekLexeme();if(void 0==i)return void t.nextClause();switch(i.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;default:var n=“Unexpected lexeme type '”i.type
“'”;throw new e.QueryParseError(n,i.start,i.end)}}},e.QueryParser.parseEditDistance=function(t){var r=t.consumeLexeme();if(void 0!=r){var i=parseInt(r.str,10);if(isNaN(i)){var n=“edit distance must be numeric”;throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.editDistance=i;var s=t.peekLexeme();if(void 0==s)return void t.nextClause();switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;default:var n=“Unexpected lexeme type '”s.type
“'”;throw new e.QueryParseError(n,s.start,s.end)}}},e.QueryParser.parseBoost=function(t){var r=t.consumeLexeme();if(void 0!=r){var i=parseInt(r.str,10);if(isNaN(i)){var n=“boost must be numeric”;throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.boost=i;var s=t.peekLexeme();if(void 0==s)return void t.nextClause();switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;default:var n=“Unexpected lexeme type '”s.type
“'”;throw new e.QueryParseError(n,s.start,s.end)}}},function(e,t){“function”==typeof define&&define.amd?define(t):“object”==typeof exports?module.exports=t():e.lunr=t()}(this,function(){return e})}();