!function(){function e(e,n,t,i){if(this.atOccurrence=!1,this.cm=e,null==i&&"string"==typeof n&&(i=!1),t=t?e.clipPos(t):{line:0,ch:0},this.pos={from:t,to:t},"string"!=typeof n)n.global||(n=new RegExp(n.source,n.ignoreCase?"ig":"g")),this.matches=function(t,i){if(t){n.lastIndex=0;for(var r=e.getLine(i.line).slice(0,i.ch),o=n.exec(r),c=0;o;){c+=o.index,r=r.slice(o.index),n.lastIndex=0;var h=n.exec(r);if(!h)break;o=h,c++}}else{n.lastIndex=i.ch;var r=e.getLine(i.line),o=n.exec(r),c=o&&o.index}return o?{from:{line:i.line,ch:c},to:{line:i.line,ch:c+o[0].length},match:o}:void 0};else{i&&(n=n.toLowerCase());var r=i?function(e){return e.toLowerCase()}:function(e){return e},o=n.split("\n");this.matches=1==o.length?function(t,i){var o,c=r(e.getLine(i.line)),h=n.length;return(t?i.ch>=h&&-1!=(o=c.lastIndexOf(n,i.ch-h)):-1!=(o=c.indexOf(n,i.ch)))?{from:{line:i.line,ch:o},to:{line:i.line,ch:o+h}}:void 0}:function(n,t){var i=t.line,c=n?o.length-1:0,h=o[c],s=r(e.getLine(i)),l=n?s.indexOf(h)+h.length:s.lastIndexOf(h);if(!(n?l>=t.ch||l!=h.length:l<=t.ch||l!=s.length-h.length))for(;;){if(n?!i:i==e.lineCount()-1)return;if(s=r(e.getLine(i+=n?-1:1)),h=o[n?--c:++c],!(c>0&&c