(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o2?arguments[2]:undefined,count=Math.min((end===undefined?len:toIndex(end,len))-from,len-to),inc=1;if(from0){if(from in O)O[to]=O[from];else delete O[to];to+=inc;from+=inc}return O}},{105:105,108:108,109:109}],9:[function(_dereq_,module,exports){"use strict";var toObject=_dereq_(109),toIndex=_dereq_(105),toLength=_dereq_(108);module.exports=function fill(value){var O=toObject(this),length=toLength(O.length),aLen=arguments.length,index=toIndex(aLen>1?arguments[1]:undefined,length),end=aLen>2?arguments[2]:undefined,endPos=end===undefined?length:toIndex(end,length);while(endPos>index)O[index++]=value;return O}},{105:105,108:108,109:109}],10:[function(_dereq_,module,exports){var forOf=_dereq_(37);module.exports=function(iter,ITERATOR){var result=[];forOf(iter,false,result.push,result,ITERATOR);return result}},{37:37}],11:[function(_dereq_,module,exports){var toIObject=_dereq_(107),toLength=_dereq_(108),toIndex=_dereq_(105);module.exports=function(IS_INCLUDES){return function($this,el,fromIndex){var O=toIObject($this),length=toLength(O.length),index=toIndex(fromIndex,length),value;if(IS_INCLUDES&&el!=el)while(length>index){value=O[index++];if(value!=value)return true}else for(;length>index;index++)if(IS_INCLUDES||index in O){if(O[index]===el)return IS_INCLUDES||index||0}return!IS_INCLUDES&&-1}}},{105:105,107:107,108:108}],12:[function(_dereq_,module,exports){var ctx=_dereq_(25),IObject=_dereq_(45),toObject=_dereq_(109),toLength=_dereq_(108),asc=_dereq_(15);module.exports=function(TYPE,$create){var IS_MAP=TYPE==1,IS_FILTER=TYPE==2,IS_SOME=TYPE==3,IS_EVERY=TYPE==4,IS_FIND_INDEX=TYPE==6,NO_HOLES=TYPE==5||IS_FIND_INDEX,create=$create||asc;return function($this,callbackfn,that){var O=toObject($this),self=IObject(O),f=ctx(callbackfn,that,3),length=toLength(self.length),index=0,result=IS_MAP?create($this,length):IS_FILTER?create($this,0):undefined,val,res;for(;length>index;index++)if(NO_HOLES||index in self){val=self[index];res=f(val,index,O);if(TYPE){if(IS_MAP)result[index]=res;else if(res)switch(TYPE){case 3:return true;case 5:return val;case 6:return index;case 2:result.push(val)}else if(IS_EVERY)return false}}return IS_FIND_INDEX?-1:IS_SOME||IS_EVERY?IS_EVERY:result}}},{108:108,109:109,15:15,25:25,45:45}],13:[function(_dereq_,module,exports){var aFunction=_dereq_(3),toObject=_dereq_(109),IObject=_dereq_(45),toLength=_dereq_(108);module.exports=function(that,callbackfn,aLen,memo,isRight){aFunction(callbackfn);var O=toObject(that),self=IObject(O),length=toLength(O.length),index=isRight?length-1:0,i=isRight?-1:1;if(aLen<2)for(;;){if(index in self){memo=self[index];index+=i;break}index+=i;if(isRight?index<0:length<=index){throw TypeError("Reduce of empty array with no initial value")}}for(;isRight?index>=0:length>index;index+=i)if(index in self){memo=callbackfn(memo,self[index],index,O)}return memo}},{108:108,109:109,3:3,45:45}],14:[function(_dereq_,module,exports){var isObject=_dereq_(49),isArray=_dereq_(47),SPECIES=_dereq_(117)("species");module.exports=function(original){var C;if(isArray(original)){C=original.constructor;if(typeof C=="function"&&(C===Array||isArray(C.prototype)))C=undefined;if(isObject(C)){C=C[SPECIES];if(C===null)C=undefined}}return C===undefined?Array:C}},{117:117,47:47,49:49}],15:[function(_dereq_,module,exports){var speciesConstructor=_dereq_(14);module.exports=function(original,length){return new(speciesConstructor(original))(length)}},{14:14}],16:[function(_dereq_,module,exports){"use strict";var aFunction=_dereq_(3),isObject=_dereq_(49),invoke=_dereq_(44),arraySlice=[].slice,factories={};var construct=function(F,len,args){if(!(len in factories)){for(var n=[],i=0;i1?arguments[1]:undefined,3),entry;while(entry=entry?entry.n:this._f){f(entry.v,entry.k,this);while(entry&&entry.r)entry=entry.p}},has:function has(key){return!!getEntry(this,key)}});if(DESCRIPTORS)dP(C.prototype,"size",{get:function(){return defined(this[SIZE])}});return C},def:function(that,key,value){var entry=getEntry(that,key),prev,index;if(entry){entry.v=value}else{that._l=entry={i:index=fastKey(key,true),k:key,v:value,p:prev=that._l,n:undefined,r:false};if(!that._f)that._f=entry;if(prev)prev.n=entry;that[SIZE]++;if(index!=="F")that._i[index]=entry}return that},getEntry:getEntry,setStrong:function(C,NAME,IS_MAP){$iterDefine(C,NAME,function(iterated,kind){this._t=iterated;this._k=kind;this._l=undefined},function(){var that=this,kind=that._k,entry=that._l;while(entry&&entry.r)entry=entry.p;if(!that._t||!(that._l=entry=entry?entry.n:that._t._f)){that._t=undefined;return step(1)}if(kind=="keys")return step(0,entry.k);if(kind=="values")return step(0,entry.v);return step(0,[entry.k,entry.v])},IS_MAP?"entries":"values",!IS_MAP,true);setSpecies(NAME)}}},{25:25,27:27,28:28,37:37,53:53,55:55,6:6,62:62,66:66,67:67,86:86,91:91}],20:[function(_dereq_,module,exports){var classof=_dereq_(17),from=_dereq_(10);module.exports=function(NAME){return function toJSON(){if(classof(this)!=NAME)throw TypeError(NAME+"#toJSON isn't generic");return from(this)}}},{10:10,17:17}],21:[function(_dereq_,module,exports){"use strict";var redefineAll=_dereq_(86),getWeak=_dereq_(62).getWeak,anObject=_dereq_(7),isObject=_dereq_(49),anInstance=_dereq_(6),forOf=_dereq_(37),createArrayMethod=_dereq_(12),$has=_dereq_(39),arrayFind=createArrayMethod(5),arrayFindIndex=createArrayMethod(6),id=0;var uncaughtFrozenStore=function(that){return that._l||(that._l=new UncaughtFrozenStore)};var UncaughtFrozenStore=function(){this.a=[]};var findUncaughtFrozen=function(store,key){return arrayFind(store.a,function(it){return it[0]===key})};UncaughtFrozenStore.prototype={get:function(key){var entry=findUncaughtFrozen(this,key);if(entry)return entry[1]},has:function(key){return!!findUncaughtFrozen(this,key)},set:function(key,value){var entry=findUncaughtFrozen(this,key);if(entry)entry[1]=value;else this.a.push([key,value])},delete:function(key){var index=arrayFindIndex(this.a,function(it){return it[0]===key});if(~index)this.a.splice(index,1);return!!~index}};module.exports={getConstructor:function(wrapper,NAME,IS_MAP,ADDER){var C=wrapper(function(that,iterable){anInstance(that,C,NAME,"_i");that._i=id++;that._l=undefined;if(iterable!=undefined)forOf(iterable,IS_MAP,that[ADDER],that)});redefineAll(C.prototype,{delete:function(key){if(!isObject(key))return false;var data=getWeak(key);if(data===true)return uncaughtFrozenStore(this)["delete"](key);return data&&$has(data,this._i)&&delete data[this._i]},has:function has(key){if(!isObject(key))return false;var data=getWeak(key);if(data===true)return uncaughtFrozenStore(this).has(key);return data&&$has(data,this._i)}});return C},def:function(that,key,value){var data=getWeak(anObject(key),true);if(data===true)uncaughtFrozenStore(that).set(key,value);else data[that._i]=value;return that},ufstore:uncaughtFrozenStore}},{12:12,37:37,39:39,49:49,6:6,62:62,7:7,86:86}],22:[function(_dereq_,module,exports){"use strict";var global=_dereq_(38),$export=_dereq_(32),redefine=_dereq_(87),redefineAll=_dereq_(86),meta=_dereq_(62),forOf=_dereq_(37),anInstance=_dereq_(6),isObject=_dereq_(49),fails=_dereq_(34),$iterDetect=_dereq_(54),setToStringTag=_dereq_(92),inheritIfRequired=_dereq_(43);module.exports=function(NAME,wrapper,methods,common,IS_MAP,IS_WEAK){var Base=global[NAME],C=Base,ADDER=IS_MAP?"set":"add",proto=C&&C.prototype,O={};var fixMethod=function(KEY){var fn=proto[KEY];redefine(proto,KEY,KEY=="delete"?function(a){return IS_WEAK&&!isObject(a)?false:fn.call(this,a===0?0:a)}:KEY=="has"?function has(a){return IS_WEAK&&!isObject(a)?false:fn.call(this,a===0?0:a)}:KEY=="get"?function get(a){return IS_WEAK&&!isObject(a)?undefined:fn.call(this,a===0?0:a)}:KEY=="add"?function add(a){fn.call(this,a===0?0:a);return this}:function set(a,b){fn.call(this,a===0?0:a,b);return this})};if(typeof C!="function"||!(IS_WEAK||proto.forEach&&!fails(function(){(new C).entries().next()}))){C=common.getConstructor(wrapper,NAME,IS_MAP,ADDER);redefineAll(C.prototype,methods);meta.NEED=true}else{var instance=new C,HASNT_CHAINING=instance[ADDER](IS_WEAK?{}:-0,1)!=instance,THROWS_ON_PRIMITIVES=fails(function(){instance.has(1)}),ACCEPT_ITERABLES=$iterDetect(function(iter){new C(iter)}),BUGGY_ZERO=!IS_WEAK&&fails(function(){var $instance=new C,index=5;while(index--)$instance[ADDER](index,index);return!$instance.has(-0)});if(!ACCEPT_ITERABLES){C=wrapper(function(target,iterable){anInstance(target,C,NAME);var that=inheritIfRequired(new Base,target,C);if(iterable!=undefined)forOf(iterable,IS_MAP,that[ADDER],that);return that});C.prototype=proto;proto.constructor=C}if(THROWS_ON_PRIMITIVES||BUGGY_ZERO){fixMethod("delete");fixMethod("has");IS_MAP&&fixMethod("get")}if(BUGGY_ZERO||HASNT_CHAINING)fixMethod(ADDER);if(IS_WEAK&&proto.clear)delete proto.clear}setToStringTag(C,NAME);O[NAME]=C;$export($export.G+$export.W+$export.F*(C!=Base),O);if(!IS_WEAK)common.setStrong(C,NAME,IS_MAP);return C}},{32:32,34:34,37:37,38:38,43:43,49:49,54:54,6:6,62:62,86:86,87:87,92:92}],23:[function(_dereq_,module,exports){var core=module.exports={version:"2.4.0"};if(typeof __e=="number")__e=core},{}],24:[function(_dereq_,module,exports){"use strict";var $defineProperty=_dereq_(67),createDesc=_dereq_(85);module.exports=function(object,index,value){if(index in object)$defineProperty.f(object,index,createDesc(0,value));else object[index]=value}},{67:67,85:85}],25:[function(_dereq_,module,exports){var aFunction=_dereq_(3);module.exports=function(fn,that,length){aFunction(fn);if(that===undefined)return fn;switch(length){case 1:return function(a){return fn.call(that,a)};case 2:return function(a,b){return fn.call(that,a,b)};case 3:return function(a,b,c){return fn.call(that,a,b,c)}}return function(){return fn.apply(that,arguments)}}},{3:3}],26:[function(_dereq_,module,exports){"use strict";var anObject=_dereq_(7),toPrimitive=_dereq_(110),NUMBER="number";module.exports=function(hint){if(hint!=="string"&&hint!==NUMBER&&hint!=="default")throw TypeError("Incorrect hint");return toPrimitive(anObject(this),hint!=NUMBER)}},{110:110,7:7}],27:[function(_dereq_,module,exports){module.exports=function(it){if(it==undefined)throw TypeError("Can't call method on "+it);return it}},{}],28:[function(_dereq_,module,exports){module.exports=!_dereq_(34)(function(){return Object.defineProperty({},"a",{get:function(){return 7}}).a!=7})},{34:34}],29:[function(_dereq_,module,exports){var isObject=_dereq_(49),document=_dereq_(38).document,is=isObject(document)&&isObject(document.createElement);module.exports=function(it){return is?document.createElement(it):{}}},{38:38,49:49}],30:[function(_dereq_,module,exports){module.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},{}],31:[function(_dereq_,module,exports){var getKeys=_dereq_(76),gOPS=_dereq_(73),pIE=_dereq_(77);module.exports=function(it){var result=getKeys(it),getSymbols=gOPS.f;if(getSymbols){var symbols=getSymbols(it),isEnum=pIE.f,i=0,key;while(symbols.length>i)if(isEnum.call(it,key=symbols[i++]))result.push(key)}return result}},{73:73,76:76,77:77}],32:[function(_dereq_,module,exports){var global=_dereq_(38),core=_dereq_(23),hide=_dereq_(40),redefine=_dereq_(87),ctx=_dereq_(25),PROTOTYPE="prototype";var $export=function(type,name,source){var IS_FORCED=type&$export.F,IS_GLOBAL=type&$export.G,IS_STATIC=type&$export.S,IS_PROTO=type&$export.P,IS_BIND=type&$export.B,target=IS_GLOBAL?global:IS_STATIC?global[name]||(global[name]={}):(global[name]||{})[PROTOTYPE],exports=IS_GLOBAL?core:core[name]||(core[name]={}),expProto=exports[PROTOTYPE]||(exports[PROTOTYPE]={}),key,own,out,exp;if(IS_GLOBAL)source=name;for(key in source){own=!IS_FORCED&&target&&target[key]!==undefined;out=(own?target:source)[key];exp=IS_BIND&&own?ctx(out,global):IS_PROTO&&typeof out=="function"?ctx(Function.call,out):out;if(target)redefine(target,key,out,type&$export.U);if(exports[key]!=out)hide(exports,key,exp);if(IS_PROTO&&expProto[key]!=out)expProto[key]=out}};global.core=core;$export.F=1;$export.G=2;$export.S=4;$export.P=8;$export.B=16;$export.W=32;$export.U=64;$export.R=128;module.exports=$export},{23:23,25:25,38:38,40:40,87:87}],33:[function(_dereq_,module,exports){var MATCH=_dereq_(117)("match");module.exports=function(KEY){var re=/./;try{"/./"[KEY](re)}catch(e){try{re[MATCH]=false;return!"/./"[KEY](re)}catch(f){}}return true}},{117:117}],34:[function(_dereq_,module,exports){module.exports=function(exec){try{return!!exec()}catch(e){return true}}},{}],35:[function(_dereq_,module,exports){"use strict";var hide=_dereq_(40),redefine=_dereq_(87),fails=_dereq_(34),defined=_dereq_(27),wks=_dereq_(117);module.exports=function(KEY,length,exec){var SYMBOL=wks(KEY),fns=exec(defined,SYMBOL,""[KEY]),strfn=fns[0],rxfn=fns[1];if(fails(function(){var O={};O[SYMBOL]=function(){return 7};return""[KEY](O)!=7})){redefine(String.prototype,KEY,strfn);hide(RegExp.prototype,SYMBOL,length==2?function(string,arg){return rxfn.call(string,this,arg)}:function(string){return rxfn.call(string,this)})}}},{117:117,27:27,34:34,40:40,87:87}],36:[function(_dereq_,module,exports){"use strict";var anObject=_dereq_(7);module.exports=function(){var that=anObject(this),result="";if(that.global)result+="g";if(that.ignoreCase)result+="i";if(that.multiline)result+="m";if(that.unicode)result+="u";if(that.sticky)result+="y";return result}},{7:7}],37:[function(_dereq_,module,exports){var ctx=_dereq_(25),call=_dereq_(51),isArrayIter=_dereq_(46),anObject=_dereq_(7),toLength=_dereq_(108),getIterFn=_dereq_(118),BREAK={},RETURN={};var exports=module.exports=function(iterable,entries,fn,that,ITERATOR){var iterFn=ITERATOR?function(){return iterable}:getIterFn(iterable),f=ctx(fn,that,entries?2:1),index=0,length,step,iterator,result;if(typeof iterFn!="function")throw TypeError(iterable+" is not iterable!");if(isArrayIter(iterFn))for(length=toLength(iterable.length);length>index;index++){result=entries?f(anObject(step=iterable[index])[0],step[1]):f(iterable[index]);if(result===BREAK||result===RETURN)return result}else for(iterator=iterFn.call(iterable);!(step=iterator.next()).done;){result=call(iterator,f,step.value,entries);if(result===BREAK||result===RETURN)return result}};exports.BREAK=BREAK;exports.RETURN=RETURN},{108:108,118:118,25:25,46:46,51:51,7:7}],38:[function(_dereq_,module,exports){var global=module.exports=typeof window!="undefined"&&window.Math==Math?window:typeof self!="undefined"&&self.Math==Math?self:Function("return this")();if(typeof __g=="number")__g=global},{}],39:[function(_dereq_,module,exports){var hasOwnProperty={}.hasOwnProperty;module.exports=function(it,key){return hasOwnProperty.call(it,key)}},{}],40:[function(_dereq_,module,exports){var dP=_dereq_(67),createDesc=_dereq_(85);module.exports=_dereq_(28)?function(object,key,value){return dP.f(object,key,createDesc(1,value))}:function(object,key,value){object[key]=value;return object}},{28:28,67:67,85:85}],41:[function(_dereq_,module,exports){module.exports=_dereq_(38).document&&document.documentElement},{38:38}],42:[function(_dereq_,module,exports){module.exports=!_dereq_(28)&&!_dereq_(34)(function(){return Object.defineProperty(_dereq_(29)("div"),"a",{get:function(){return 7}}).a!=7})},{28:28,29:29,34:34}],43:[function(_dereq_,module,exports){var isObject=_dereq_(49),setPrototypeOf=_dereq_(90).set;module.exports=function(that,target,C){var P,S=target.constructor;if(S!==C&&typeof S=="function"&&(P=S.prototype)!==C.prototype&&isObject(P)&&setPrototypeOf){setPrototypeOf(that,P)}return that}},{49:49,90:90}],44:[function(_dereq_,module,exports){module.exports=function(fn,args,that){var un=that===undefined;switch(args.length){case 0:return un?fn():fn.call(that);case 1:return un?fn(args[0]):fn.call(that,args[0]);case 2:return un?fn(args[0],args[1]):fn.call(that,args[0],args[1]);case 3:return un?fn(args[0],args[1],args[2]):fn.call(that,args[0],args[1],args[2]);case 4:return un?fn(args[0],args[1],args[2],args[3]):fn.call(that,args[0],args[1],args[2],args[3])}return fn.apply(that,args)}},{}],45:[function(_dereq_,module,exports){var cof=_dereq_(18);module.exports=Object("z").propertyIsEnumerable(0)?Object:function(it){return cof(it)=="String"?it.split(""):Object(it)}},{18:18}],46:[function(_dereq_,module,exports){var Iterators=_dereq_(56),ITERATOR=_dereq_(117)("iterator"),ArrayProto=Array.prototype;module.exports=function(it){return it!==undefined&&(Iterators.Array===it||ArrayProto[ITERATOR]===it)}},{117:117,56:56}],47:[function(_dereq_,module,exports){var cof=_dereq_(18);module.exports=Array.isArray||function isArray(arg){return cof(arg)=="Array"}},{18:18}],48:[function(_dereq_,module,exports){var isObject=_dereq_(49),floor=Math.floor;module.exports=function isInteger(it){return!isObject(it)&&isFinite(it)&&floor(it)===it}},{49:49}],49:[function(_dereq_,module,exports){module.exports=function(it){return typeof it==="object"?it!==null:typeof it==="function"}},{}],50:[function(_dereq_,module,exports){var isObject=_dereq_(49),cof=_dereq_(18),MATCH=_dereq_(117)("match");module.exports=function(it){var isRegExp;return isObject(it)&&((isRegExp=it[MATCH])!==undefined?!!isRegExp:cof(it)=="RegExp")}},{117:117,18:18,49:49}],51:[function(_dereq_,module,exports){var anObject=_dereq_(7);module.exports=function(iterator,fn,value,entries){try{return entries?fn(anObject(value)[0],value[1]):fn(value)}catch(e){var ret=iterator["return"];if(ret!==undefined)anObject(ret.call(iterator));throw e}}},{7:7}],52:[function(_dereq_,module,exports){"use strict";var create=_dereq_(66),descriptor=_dereq_(85),setToStringTag=_dereq_(92),IteratorPrototype={};_dereq_(40)(IteratorPrototype,_dereq_(117)("iterator"),function(){return this});module.exports=function(Constructor,NAME,next){Constructor.prototype=create(IteratorPrototype,{next:descriptor(1,next)});setToStringTag(Constructor,NAME+" Iterator")}},{117:117,40:40,66:66,85:85,92:92}],53:[function(_dereq_,module,exports){"use strict";var LIBRARY=_dereq_(58),$export=_dereq_(32),redefine=_dereq_(87),hide=_dereq_(40),has=_dereq_(39),Iterators=_dereq_(56),$iterCreate=_dereq_(52),setToStringTag=_dereq_(92),getPrototypeOf=_dereq_(74),ITERATOR=_dereq_(117)("iterator"),BUGGY=!([].keys&&"next"in[].keys()),FF_ITERATOR="@@iterator",KEYS="keys",VALUES="values";var returnThis=function(){return this};module.exports=function(Base,NAME,Constructor,next,DEFAULT,IS_SET,FORCED){$iterCreate(Constructor,NAME,next);var getMethod=function(kind){if(!BUGGY&&kind in proto)return proto[kind];switch(kind){case KEYS:return function keys(){return new Constructor(this,kind)};case VALUES:return function values(){return new Constructor(this,kind)}}return function entries(){return new Constructor(this,kind)}};var TAG=NAME+" Iterator",DEF_VALUES=DEFAULT==VALUES,VALUES_BUG=false,proto=Base.prototype,$native=proto[ITERATOR]||proto[FF_ITERATOR]||DEFAULT&&proto[DEFAULT],$default=$native||getMethod(DEFAULT),$entries=DEFAULT?!DEF_VALUES?$default:getMethod("entries"):undefined,$anyNative=NAME=="Array"?proto.entries||$native:$native,methods,key,IteratorPrototype;if($anyNative){IteratorPrototype=getPrototypeOf($anyNative.call(new Base));if(IteratorPrototype!==Object.prototype){setToStringTag(IteratorPrototype,TAG,true);if(!LIBRARY&&!has(IteratorPrototype,ITERATOR))hide(IteratorPrototype,ITERATOR,returnThis)}}if(DEF_VALUES&&$native&&$native.name!==VALUES){VALUES_BUG=true;$default=function values(){return $native.call(this)}}if((!LIBRARY||FORCED)&&(BUGGY||VALUES_BUG||!proto[ITERATOR])){hide(proto,ITERATOR,$default)}Iterators[NAME]=$default;Iterators[TAG]=returnThis;if(DEFAULT){methods={values:DEF_VALUES?$default:getMethod(VALUES),keys:IS_SET?$default:getMethod(KEYS),entries:$entries};if(FORCED)for(key in methods){if(!(key in proto))redefine(proto,key,methods[key])}else $export($export.P+$export.F*(BUGGY||VALUES_BUG),NAME,methods)}return methods}},{117:117,32:32,39:39,40:40,52:52,56:56,58:58,74:74,87:87,92:92}],54:[function(_dereq_,module,exports){var ITERATOR=_dereq_(117)("iterator"),SAFE_CLOSING=false;try{var riter=[7][ITERATOR]();riter["return"]=function(){SAFE_CLOSING=true};Array.from(riter,function(){throw 2})}catch(e){}module.exports=function(exec,skipClosing){if(!skipClosing&&!SAFE_CLOSING)return false;var safe=false;try{var arr=[7],iter=arr[ITERATOR]();iter.next=function(){return{done:safe=true}};arr[ITERATOR]=function(){return iter};exec(arr)}catch(e){}return safe}},{117:117}],55:[function(_dereq_,module,exports){module.exports=function(done,value){return{value:value,done:!!done}}},{}],56:[function(_dereq_,module,exports){module.exports={}},{}],57:[function(_dereq_,module,exports){var getKeys=_dereq_(76),toIObject=_dereq_(107);module.exports=function(object,el){var O=toIObject(object),keys=getKeys(O),length=keys.length,index=0,key;while(length>index)if(O[key=keys[index++]]===el)return key}},{107:107,76:76}],58:[function(_dereq_,module,exports){module.exports=false},{}],59:[function(_dereq_,module,exports){var $expm1=Math.expm1;module.exports=!$expm1||$expm1(10)>22025.465794806718||$expm1(10)<22025.465794806718||$expm1(-2e-17)!=-2e-17?function expm1(x){return(x=+x)==0?x:x>-1e-6&&x<1e-6?x+x*x/2:Math.exp(x)-1}:$expm1},{}],60:[function(_dereq_,module,exports){module.exports=Math.log1p||function log1p(x){return(x=+x)>-1e-8&&x<1e-8?x-x*x/2:Math.log(1+x)}},{}],61:[function(_dereq_,module,exports){module.exports=Math.sign||function sign(x){return(x=+x)==0||x!=x?x:x<0?-1:1}},{}],62:[function(_dereq_,module,exports){var META=_dereq_(114)("meta"),isObject=_dereq_(49),has=_dereq_(39),setDesc=_dereq_(67).f,id=0;var isExtensible=Object.isExtensible||function(){return true};var FREEZE=!_dereq_(34)(function(){return isExtensible(Object.preventExtensions({}))});var setMeta=function(it){setDesc(it,META,{value:{i:"O"+ ++id,w:{}}})};var fastKey=function(it,create){if(!isObject(it))return typeof it=="symbol"?it:(typeof it=="string"?"S":"P")+it;if(!has(it,META)){if(!isExtensible(it))return"F";if(!create)return"E";setMeta(it)}return it[META].i};var getWeak=function(it,create){if(!has(it,META)){if(!isExtensible(it))return true;if(!create)return false;setMeta(it)}return it[META].w};var onFreeze=function(it){if(FREEZE&&meta.NEED&&isExtensible(it)&&!has(it,META))setMeta(it);return it};var meta=module.exports={KEY:META,NEED:false,fastKey:fastKey,getWeak:getWeak,onFreeze:onFreeze}},{114:114,34:34,39:39,49:49,67:67}],63:[function(_dereq_,module,exports){var Map=_dereq_(149),$export=_dereq_(32),shared=_dereq_(94)("metadata"),store=shared.store||(shared.store=new(_dereq_(255)));var getOrCreateMetadataMap=function(target,targetKey,create){var targetMetadata=store.get(target);if(!targetMetadata){if(!create)return undefined;store.set(target,targetMetadata=new Map)}var keyMetadata=targetMetadata.get(targetKey);if(!keyMetadata){if(!create)return undefined;targetMetadata.set(targetKey,keyMetadata=new Map)}return keyMetadata};var ordinaryHasOwnMetadata=function(MetadataKey,O,P){var metadataMap=getOrCreateMetadataMap(O,P,false);return metadataMap===undefined?false:metadataMap.has(MetadataKey)};var ordinaryGetOwnMetadata=function(MetadataKey,O,P){var metadataMap=getOrCreateMetadataMap(O,P,false);return metadataMap===undefined?undefined:metadataMap.get(MetadataKey)};var ordinaryDefineOwnMetadata=function(MetadataKey,MetadataValue,O,P){getOrCreateMetadataMap(O,P,true).set(MetadataKey,MetadataValue)};var ordinaryOwnMetadataKeys=function(target,targetKey){var metadataMap=getOrCreateMetadataMap(target,targetKey,false),keys=[];if(metadataMap)metadataMap.forEach(function(_,key){keys.push(key)});return keys};var toMetaKey=function(it){return it===undefined||typeof it=="symbol"?it:String(it)};var exp=function(O){$export($export.S,"Reflect",O)};module.exports={store:store,map:getOrCreateMetadataMap,has:ordinaryHasOwnMetadata,get:ordinaryGetOwnMetadata,set:ordinaryDefineOwnMetadata,keys:ordinaryOwnMetadataKeys,key:toMetaKey,exp:exp}},{149:149,255:255,32:32,94:94}],64:[function(_dereq_,module,exports){var global=_dereq_(38),macrotask=_dereq_(104).set,Observer=global.MutationObserver||global.WebKitMutationObserver,process=global.process,Promise=global.Promise,isNode=_dereq_(18)(process)=="process";module.exports=function(){var head,last,notify;var flush=function(){var parent,fn;if(isNode&&(parent=process.domain))parent.exit();while(head){fn=head.fn;head=head.next;try{fn()}catch(e){if(head)notify();else last=undefined;throw e}}last=undefined;if(parent)parent.enter()};if(isNode){notify=function(){process.nextTick(flush)}}else if(Observer){var toggle=true,node=document.createTextNode("");new Observer(flush).observe(node,{characterData:true});notify=function(){node.data=toggle=!toggle}}else if(Promise&&Promise.resolve){var promise=Promise.resolve();notify=function(){promise.then(flush)}}else{notify=function(){macrotask.call(global,flush)}}return function(fn){var task={fn:fn,next:undefined};if(last)last.next=task;if(!head){head=task;notify()}last=task}}},{104:104,18:18,38:38}],65:[function(_dereq_,module,exports){"use strict";var getKeys=_dereq_(76),gOPS=_dereq_(73),pIE=_dereq_(77),toObject=_dereq_(109),IObject=_dereq_(45),$assign=Object.assign;module.exports=!$assign||_dereq_(34)(function(){var A={},B={},S=Symbol(),K="abcdefghijklmnopqrst";A[S]=7;K.split("").forEach(function(k){B[k]=k});return $assign({},A)[S]!=7||Object.keys($assign({},B)).join("")!=K})?function assign(target,source){var T=toObject(target),aLen=arguments.length,index=1,getSymbols=gOPS.f,isEnum=pIE.f;while(aLen>index){var S=IObject(arguments[index++]),keys=getSymbols?getKeys(S).concat(getSymbols(S)):getKeys(S),length=keys.length,j=0,key;while(length>j)if(isEnum.call(S,key=keys[j++]))T[key]=S[key]}return T}:$assign},{109:109,34:34,45:45,73:73,76:76,77:77}],66:[function(_dereq_,module,exports){var anObject=_dereq_(7),dPs=_dereq_(68),enumBugKeys=_dereq_(30),IE_PROTO=_dereq_(93)("IE_PROTO"),Empty=function(){},PROTOTYPE="prototype";var createDict=function(){var iframe=_dereq_(29)("iframe"),i=enumBugKeys.length,lt="<",gt=">",iframeDocument;iframe.style.display="none";_dereq_(41).appendChild(iframe);iframe.src="javascript:";iframeDocument=iframe.contentWindow.document;iframeDocument.open();iframeDocument.write(lt+"script"+gt+"document.F=Object"+lt+"/script"+gt);iframeDocument.close();createDict=iframeDocument.F;while(i--)delete createDict[PROTOTYPE][enumBugKeys[i]];return createDict()};module.exports=Object.create||function create(O,Properties){var result;if(O!==null){Empty[PROTOTYPE]=anObject(O);result=new Empty;Empty[PROTOTYPE]=null;result[IE_PROTO]=O}else result=createDict();return Properties===undefined?result:dPs(result,Properties)}},{29:29,30:30,41:41,68:68,7:7,93:93}],67:[function(_dereq_,module,exports){var anObject=_dereq_(7),IE8_DOM_DEFINE=_dereq_(42),toPrimitive=_dereq_(110),dP=Object.defineProperty;exports.f=_dereq_(28)?Object.defineProperty:function defineProperty(O,P,Attributes){anObject(O);P=toPrimitive(P,true);anObject(Attributes);if(IE8_DOM_DEFINE)try{return dP(O,P,Attributes)}catch(e){}if("get"in Attributes||"set"in Attributes)throw TypeError("Accessors not supported!");if("value"in Attributes)O[P]=Attributes.value;return O}},{110:110,28:28,42:42,7:7}],68:[function(_dereq_,module,exports){var dP=_dereq_(67),anObject=_dereq_(7),getKeys=_dereq_(76);module.exports=_dereq_(28)?Object.defineProperties:function defineProperties(O,Properties){anObject(O);var keys=getKeys(Properties),length=keys.length,i=0,P;while(length>i)dP.f(O,P=keys[i++],Properties[P]);return O}},{28:28,67:67,7:7,76:76}],69:[function(_dereq_,module,exports){module.exports=_dereq_(58)||!_dereq_(34)(function(){var K=Math.random();__defineSetter__.call(null,K,function(){});delete _dereq_(38)[K]})},{34:34,38:38,58:58}],70:[function(_dereq_,module,exports){var pIE=_dereq_(77),createDesc=_dereq_(85),toIObject=_dereq_(107),toPrimitive=_dereq_(110),has=_dereq_(39),IE8_DOM_DEFINE=_dereq_(42),gOPD=Object.getOwnPropertyDescriptor;exports.f=_dereq_(28)?gOPD:function getOwnPropertyDescriptor(O,P){O=toIObject(O);P=toPrimitive(P,true);if(IE8_DOM_DEFINE)try{return gOPD(O,P)}catch(e){}if(has(O,P))return createDesc(!pIE.f.call(O,P),O[P])}},{107:107,110:110,28:28,39:39,42:42,77:77,85:85}],71:[function(_dereq_,module,exports){var toIObject=_dereq_(107),gOPN=_dereq_(72).f,toString={}.toString;var windowNames=typeof window=="object"&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];var getWindowNames=function(it){try{return gOPN(it)}catch(e){return windowNames.slice()}};module.exports.f=function getOwnPropertyNames(it){return windowNames&&toString.call(it)=="[object Window]"?getWindowNames(it):gOPN(toIObject(it))}},{107:107,72:72}],72:[function(_dereq_,module,exports){var $keys=_dereq_(75),hiddenKeys=_dereq_(30).concat("length","prototype");exports.f=Object.getOwnPropertyNames||function getOwnPropertyNames(O){return $keys(O,hiddenKeys)}},{30:30,75:75}],73:[function(_dereq_,module,exports){exports.f=Object.getOwnPropertySymbols},{}],74:[function(_dereq_,module,exports){var has=_dereq_(39),toObject=_dereq_(109),IE_PROTO=_dereq_(93)("IE_PROTO"),ObjectProto=Object.prototype;module.exports=Object.getPrototypeOf||function(O){O=toObject(O);if(has(O,IE_PROTO))return O[IE_PROTO];if(typeof O.constructor=="function"&&O instanceof O.constructor){return O.constructor.prototype}return O instanceof Object?ObjectProto:null}},{109:109,39:39,93:93}],75:[function(_dereq_,module,exports){var has=_dereq_(39),toIObject=_dereq_(107),arrayIndexOf=_dereq_(11)(false),IE_PROTO=_dereq_(93)("IE_PROTO");module.exports=function(object,names){var O=toIObject(object),i=0,result=[],key;for(key in O)if(key!=IE_PROTO)has(O,key)&&result.push(key);while(names.length>i)if(has(O,key=names[i++])){~arrayIndexOf(result,key)||result.push(key)}return result}},{107:107,11:11,39:39,93:93}],76:[function(_dereq_,module,exports){var $keys=_dereq_(75),enumBugKeys=_dereq_(30);module.exports=Object.keys||function keys(O){return $keys(O,enumBugKeys)}},{30:30,75:75}],77:[function(_dereq_,module,exports){exports.f={}.propertyIsEnumerable},{}],78:[function(_dereq_,module,exports){var $export=_dereq_(32),core=_dereq_(23),fails=_dereq_(34);module.exports=function(KEY,exec){var fn=(core.Object||{})[KEY]||Object[KEY],exp={};exp[KEY]=exec(fn);$export($export.S+$export.F*fails(function(){fn(1)}),"Object",exp)}},{23:23,32:32,34:34}],79:[function(_dereq_,module,exports){var getKeys=_dereq_(76),toIObject=_dereq_(107),isEnum=_dereq_(77).f;module.exports=function(isEntries){return function(it){var O=toIObject(it),keys=getKeys(O),length=keys.length,i=0,result=[],key;while(length>i)if(isEnum.call(O,key=keys[i++])){result.push(isEntries?[key,O[key]]:O[key])}return result}}},{107:107,76:76,77:77}],80:[function(_dereq_,module,exports){var gOPN=_dereq_(72),gOPS=_dereq_(73),anObject=_dereq_(7),Reflect=_dereq_(38).Reflect;module.exports=Reflect&&Reflect.ownKeys||function ownKeys(it){var keys=gOPN.f(anObject(it)),getSymbols=gOPS.f;return getSymbols?keys.concat(getSymbols(it)):keys}},{38:38,7:7,72:72,73:73}],81:[function(_dereq_,module,exports){var $parseFloat=_dereq_(38).parseFloat,$trim=_dereq_(102).trim;module.exports=1/$parseFloat(_dereq_(103)+"-0")!==-Infinity?function parseFloat(str){var string=$trim(String(str),3),result=$parseFloat(string);return result===0&&string.charAt(0)=="-"?-0:result}:$parseFloat},{102:102,103:103,38:38}],82:[function(_dereq_,module,exports){var $parseInt=_dereq_(38).parseInt,$trim=_dereq_(102).trim,ws=_dereq_(103),hex=/^[\-+]?0[xX]/;module.exports=$parseInt(ws+"08")!==8||$parseInt(ws+"0x16")!==22?function parseInt(str,radix){var string=$trim(String(str),3);return $parseInt(string,radix>>>0||(hex.test(string)?16:10))}:$parseInt},{102:102,103:103,38:38}],83:[function(_dereq_,module,exports){"use strict";var path=_dereq_(84),invoke=_dereq_(44),aFunction=_dereq_(3);module.exports=function(){var fn=aFunction(this),length=arguments.length,pargs=Array(length),i=0,_=path._,holder=false;while(length>i)if((pargs[i]=arguments[i++])===_)holder=true;return function(){var that=this,aLen=arguments.length,j=0,k=0,args;if(!holder&&!aLen)return invoke(fn,pargs,that);args=pargs.slice();if(holder)for(;length>j;j++)if(args[j]===_)args[j]=arguments[k++];while(aLen>k)args.push(arguments[k++]);return invoke(fn,args,that)}}},{3:3,44:44,84:84}],84:[function(_dereq_,module,exports){module.exports=_dereq_(38)},{38:38}],85:[function(_dereq_,module,exports){module.exports=function(bitmap,value){return{enumerable:!(bitmap&1),configurable:!(bitmap&2),writable:!(bitmap&4),value:value}}},{}],86:[function(_dereq_,module,exports){var redefine=_dereq_(87);module.exports=function(target,src,safe){for(var key in src)redefine(target,key,src[key],safe);return target}},{87:87}],87:[function(_dereq_,module,exports){var global=_dereq_(38),hide=_dereq_(40),has=_dereq_(39),SRC=_dereq_(114)("src"),TO_STRING="toString",$toString=Function[TO_STRING],TPL=(""+$toString).split(TO_STRING);_dereq_(23).inspectSource=function(it){return $toString.call(it)};(module.exports=function(O,key,val,safe){var isFunction=typeof val=="function";if(isFunction)has(val,"name")||hide(val,"name",key);if(O[key]===val)return;if(isFunction)has(val,SRC)||hide(val,SRC,O[key]?""+O[key]:TPL.join(String(key)));if(O===global){O[key]=val}else{if(!safe){delete O[key];hide(O,key,val)}else{if(O[key])O[key]=val;else hide(O,key,val)}}})(Function.prototype,TO_STRING,function toString(){return typeof this=="function"&&this[SRC]||$toString.call(this)})},{114:114,23:23,38:38,39:39,40:40}],88:[function(_dereq_,module,exports){module.exports=function(regExp,replace){var replacer=replace===Object(replace)?function(part){return replace[part]}:replace;return function(it){return String(it).replace(regExp,replacer)}}},{}],89:[function(_dereq_,module,exports){module.exports=Object.is||function is(x,y){return x===y?x!==0||1/x===1/y:x!=x&&y!=y}},{}],90:[function(_dereq_,module,exports){var isObject=_dereq_(49),anObject=_dereq_(7);var check=function(O,proto){anObject(O);if(!isObject(proto)&&proto!==null)throw TypeError(proto+": can't set as prototype!")};module.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(test,buggy,set){try{set=_dereq_(25)(Function.call,_dereq_(70).f(Object.prototype,"__proto__").set,2);set(test,[]);buggy=!(test instanceof Array)}catch(e){buggy=true}return function setPrototypeOf(O,proto){check(O,proto);if(buggy)O.__proto__=proto;else set(O,proto);return O}}({},false):undefined),check:check}},{25:25,49:49,7:7,70:70}],91:[function(_dereq_,module,exports){"use strict";var global=_dereq_(38),dP=_dereq_(67),DESCRIPTORS=_dereq_(28),SPECIES=_dereq_(117)("species");module.exports=function(KEY){var C=global[KEY];if(DESCRIPTORS&&C&&!C[SPECIES])dP.f(C,SPECIES,{configurable:true,get:function(){return this}})}},{117:117,28:28,38:38,67:67}],92:[function(_dereq_,module,exports){var def=_dereq_(67).f,has=_dereq_(39),TAG=_dereq_(117)("toStringTag");module.exports=function(it,tag,stat){if(it&&!has(it=stat?it:it.prototype,TAG))def(it,TAG,{configurable:true,value:tag})}},{117:117,39:39,67:67}],93:[function(_dereq_,module,exports){var shared=_dereq_(94)("keys"),uid=_dereq_(114);module.exports=function(key){return shared[key]||(shared[key]=uid(key))}},{114:114,94:94}],94:[function(_dereq_,module,exports){var global=_dereq_(38),SHARED="__core-js_shared__",store=global[SHARED]||(global[SHARED]={});module.exports=function(key){return store[key]||(store[key]={})}},{38:38}],95:[function(_dereq_,module,exports){var anObject=_dereq_(7),aFunction=_dereq_(3),SPECIES=_dereq_(117)("species");module.exports=function(O,D){var C=anObject(O).constructor,S;return C===undefined||(S=anObject(C)[SPECIES])==undefined?D:aFunction(S)}},{117:117,3:3,7:7}],96:[function(_dereq_,module,exports){var fails=_dereq_(34);module.exports=function(method,arg){return!!method&&fails(function(){arg?method.call(null,function(){},1):method.call(null)})}},{34:34}],97:[function(_dereq_,module,exports){var toInteger=_dereq_(106),defined=_dereq_(27);module.exports=function(TO_STRING){return function(that,pos){var s=String(defined(that)),i=toInteger(pos),l=s.length,a,b;if(i<0||i>=l)return TO_STRING?"":undefined;a=s.charCodeAt(i);return a<55296||a>56319||i+1===l||(b=s.charCodeAt(i+1))<56320||b>57343?TO_STRING?s.charAt(i):a:TO_STRING?s.slice(i,i+2):(a-55296<<10)+(b-56320)+65536}}},{106:106,27:27}],98:[function(_dereq_,module,exports){var isRegExp=_dereq_(50),defined=_dereq_(27);module.exports=function(that,searchString,NAME){if(isRegExp(searchString))throw TypeError("String#"+NAME+" doesn't accept regex!");return String(defined(that))}},{27:27,50:50}],99:[function(_dereq_,module,exports){var $export=_dereq_(32),fails=_dereq_(34),defined=_dereq_(27),quot=/"/g;var createHTML=function(string,tag,attribute,value){var S=String(defined(string)),p1="<"+tag;if(attribute!=="")p1+=" "+attribute+'="'+String(value).replace(quot,""")+'"';return p1+">"+S+""};module.exports=function(NAME,exec){var O={};O[NAME]=exec(createHTML);$export($export.P+$export.F*fails(function(){var test=""[NAME]('"');return test!==test.toLowerCase()||test.split('"').length>3}),"String",O)}},{27:27,32:32,34:34}],100:[function(_dereq_,module,exports){var toLength=_dereq_(108),repeat=_dereq_(101),defined=_dereq_(27);module.exports=function(that,maxLength,fillString,left){var S=String(defined(that)),stringLength=S.length,fillStr=fillString===undefined?" ":String(fillString),intMaxLength=toLength(maxLength);if(intMaxLength<=stringLength||fillStr=="")return S;var fillLen=intMaxLength-stringLength,stringFiller=repeat.call(fillStr,Math.ceil(fillLen/fillStr.length));if(stringFiller.length>fillLen)stringFiller=stringFiller.slice(0,fillLen);return left?stringFiller+S:S+stringFiller}},{101:101,108:108,27:27}],101:[function(_dereq_,module,exports){"use strict";var toInteger=_dereq_(106),defined=_dereq_(27);module.exports=function repeat(count){var str=String(defined(this)),res="",n=toInteger(count);if(n<0||n==Infinity)throw RangeError("Count can't be negative");for(;n>0;(n>>>=1)&&(str+=str))if(n&1)res+=str;return res}},{106:106,27:27}],102:[function(_dereq_,module,exports){var $export=_dereq_(32),defined=_dereq_(27),fails=_dereq_(34),spaces=_dereq_(103),space="["+spaces+"]",non="​…",ltrim=RegExp("^"+space+space+"*"),rtrim=RegExp(space+space+"*$");var exporter=function(KEY,exec,ALIAS){var exp={};var FORCE=fails(function(){return!!spaces[KEY]()||non[KEY]()!=non});var fn=exp[KEY]=FORCE?exec(trim):spaces[KEY];if(ALIAS)exp[ALIAS]=fn;$export($export.P+$export.F*FORCE,"String",exp)};var trim=exporter.trim=function(string,TYPE){string=String(defined(string));if(TYPE&1)string=string.replace(ltrim,"");if(TYPE&2)string=string.replace(rtrim,"");return string};module.exports=exporter},{103:103,27:27,32:32,34:34}],103:[function(_dereq_,module,exports){module.exports="\t\n\v\f\r   ᠎    "+"          \u2028\u2029\ufeff"},{}],104:[function(_dereq_,module,exports){var ctx=_dereq_(25),invoke=_dereq_(44),html=_dereq_(41),cel=_dereq_(29),global=_dereq_(38),process=global.process,setTask=global.setImmediate,clearTask=global.clearImmediate,MessageChannel=global.MessageChannel,counter=0,queue={},ONREADYSTATECHANGE="onreadystatechange",defer,channel,port;var run=function(){var id=+this;if(queue.hasOwnProperty(id)){var fn=queue[id];delete queue[id];fn()}};var listener=function(event){run.call(event.data)};if(!setTask||!clearTask){setTask=function setImmediate(fn){var args=[],i=1;while(arguments.length>i)args.push(arguments[i++]);queue[++counter]=function(){invoke(typeof fn=="function"?fn:Function(fn),args)};defer(counter);return counter};clearTask=function clearImmediate(id){delete queue[id]};if(_dereq_(18)(process)=="process"){defer=function(id){process.nextTick(ctx(run,id,1))}}else if(MessageChannel){channel=new MessageChannel;port=channel.port2;channel.port1.onmessage=listener;defer=ctx(port.postMessage,port,1)}else if(global.addEventListener&&typeof postMessage=="function"&&!global.importScripts){defer=function(id){global.postMessage(id+"","*")};global.addEventListener("message",listener,false)}else if(ONREADYSTATECHANGE in cel("script")){defer=function(id){html.appendChild(cel("script"))[ONREADYSTATECHANGE]=function(){html.removeChild(this);run.call(id)}}}else{defer=function(id){setTimeout(ctx(run,id,1),0)}}}module.exports={set:setTask,clear:clearTask}},{18:18,25:25,29:29,38:38,41:41,44:44}],105:[function(_dereq_,module,exports){var toInteger=_dereq_(106),max=Math.max,min=Math.min;module.exports=function(index,length){index=toInteger(index);return index<0?max(index+length,0):min(index,length)}},{106:106}],106:[function(_dereq_,module,exports){var ceil=Math.ceil,floor=Math.floor;module.exports=function(it){return isNaN(it=+it)?0:(it>0?floor:ceil)(it)}},{}],107:[function(_dereq_,module,exports){var IObject=_dereq_(45),defined=_dereq_(27);module.exports=function(it){return IObject(defined(it))}},{27:27,45:45}],108:[function(_dereq_,module,exports){var toInteger=_dereq_(106),min=Math.min;module.exports=function(it){return it>0?min(toInteger(it),9007199254740991):0}},{106:106}],109:[function(_dereq_,module,exports){var defined=_dereq_(27);module.exports=function(it){return Object(defined(it))}},{27:27}],110:[function(_dereq_,module,exports){var isObject=_dereq_(49);module.exports=function(it,S){if(!isObject(it))return it;var fn,val;if(S&&typeof(fn=it.toString)=="function"&&!isObject(val=fn.call(it)))return val;if(typeof(fn=it.valueOf)=="function"&&!isObject(val=fn.call(it)))return val;if(!S&&typeof(fn=it.toString)=="function"&&!isObject(val=fn.call(it)))return val;throw TypeError("Can't convert object to primitive value")}},{49:49}],111:[function(_dereq_,module,exports){"use strict";if(_dereq_(28)){var LIBRARY=_dereq_(58),global=_dereq_(38),fails=_dereq_(34),$export=_dereq_(32),$typed=_dereq_(113),$buffer=_dereq_(112),ctx=_dereq_(25),anInstance=_dereq_(6),propertyDesc=_dereq_(85),hide=_dereq_(40),redefineAll=_dereq_(86),toInteger=_dereq_(106),toLength=_dereq_(108),toIndex=_dereq_(105),toPrimitive=_dereq_(110),has=_dereq_(39),same=_dereq_(89),classof=_dereq_(17),isObject=_dereq_(49),toObject=_dereq_(109),isArrayIter=_dereq_(46),create=_dereq_(66),getPrototypeOf=_dereq_(74),gOPN=_dereq_(72).f,getIterFn=_dereq_(118),uid=_dereq_(114),wks=_dereq_(117),createArrayMethod=_dereq_(12),createArrayIncludes=_dereq_(11),speciesConstructor=_dereq_(95),ArrayIterators=_dereq_(130),Iterators=_dereq_(56),$iterDetect=_dereq_(54),setSpecies=_dereq_(91),arrayFill=_dereq_(9),arrayCopyWithin=_dereq_(8),$DP=_dereq_(67),$GOPD=_dereq_(70),dP=$DP.f,gOPD=$GOPD.f,RangeError=global.RangeError,TypeError=global.TypeError,Uint8Array=global.Uint8Array,ARRAY_BUFFER="ArrayBuffer",SHARED_BUFFER="Shared"+ARRAY_BUFFER,BYTES_PER_ELEMENT="BYTES_PER_ELEMENT",PROTOTYPE="prototype",ArrayProto=Array[PROTOTYPE],$ArrayBuffer=$buffer.ArrayBuffer,$DataView=$buffer.DataView,arrayForEach=createArrayMethod(0),arrayFilter=createArrayMethod(2),arraySome=createArrayMethod(3),arrayEvery=createArrayMethod(4),arrayFind=createArrayMethod(5),arrayFindIndex=createArrayMethod(6),arrayIncludes=createArrayIncludes(true),arrayIndexOf=createArrayIncludes(false),arrayValues=ArrayIterators.values,arrayKeys=ArrayIterators.keys,arrayEntries=ArrayIterators.entries,arrayLastIndexOf=ArrayProto.lastIndexOf,arrayReduce=ArrayProto.reduce,arrayReduceRight=ArrayProto.reduceRight,arrayJoin=ArrayProto.join,arraySort=ArrayProto.sort,arraySlice=ArrayProto.slice,arrayToString=ArrayProto.toString,arrayToLocaleString=ArrayProto.toLocaleString,ITERATOR=wks("iterator"),TAG=wks("toStringTag"),TYPED_CONSTRUCTOR=uid("typed_constructor"),DEF_CONSTRUCTOR=uid("def_constructor"),ALL_CONSTRUCTORS=$typed.CONSTR,TYPED_ARRAY=$typed.TYPED,VIEW=$typed.VIEW,WRONG_LENGTH="Wrong length!";var $map=createArrayMethod(1,function(O,length){return allocate(speciesConstructor(O,O[DEF_CONSTRUCTOR]),length)});var LITTLE_ENDIAN=fails(function(){return new Uint8Array(new Uint16Array([1]).buffer)[0]===1});var FORCED_SET=!!Uint8Array&&!!Uint8Array[PROTOTYPE].set&&fails(function(){new Uint8Array(1).set({})});var strictToLength=function(it,SAME){if(it===undefined)throw TypeError(WRONG_LENGTH);var number=+it,length=toLength(it);if(SAME&&!same(number,length))throw RangeError(WRONG_LENGTH);return length};var toOffset=function(it,BYTES){var offset=toInteger(it);if(offset<0||offset%BYTES)throw RangeError("Wrong offset!");return offset};var validate=function(it){if(isObject(it)&&TYPED_ARRAY in it)return it;throw TypeError(it+" is not a typed array!")};var allocate=function(C,length){if(!(isObject(C)&&TYPED_CONSTRUCTOR in C)){throw TypeError("It is not a typed array constructor!")}return new C(length)};var speciesFromList=function(O,list){return fromList(speciesConstructor(O,O[DEF_CONSTRUCTOR]),list)};var fromList=function(C,list){var index=0,length=list.length,result=allocate(C,length);while(length>index)result[index]=list[index++];return result};var addGetter=function(it,key,internal){dP(it,key,{get:function(){return this._d[internal]}})};var $from=function from(source){var O=toObject(source),aLen=arguments.length,mapfn=aLen>1?arguments[1]:undefined,mapping=mapfn!==undefined,iterFn=getIterFn(O),i,length,values,result,step,iterator;if(iterFn!=undefined&&!isArrayIter(iterFn)){for(iterator=iterFn.call(O),values=[],i=0;!(step=iterator.next()).done;i++){values.push(step.value)}O=values}if(mapping&&aLen>2)mapfn=ctx(mapfn,arguments[2],2);for(i=0,length=toLength(O.length),result=allocate(this,length);length>i;i++){result[i]=mapping?mapfn(O[i],i):O[i]}return result};var $of=function of(){var index=0,length=arguments.length,result=allocate(this,length);while(length>index)result[index]=arguments[index++];return result};var TO_LOCALE_BUG=!!Uint8Array&&fails(function(){arrayToLocaleString.call(new Uint8Array(1))});var $toLocaleString=function toLocaleString(){return arrayToLocaleString.apply(TO_LOCALE_BUG?arraySlice.call(validate(this)):validate(this),arguments)};var proto={copyWithin:function copyWithin(target,start){return arrayCopyWithin.call(validate(this),target,start,arguments.length>2?arguments[2]:undefined)},every:function every(callbackfn){return arrayEvery(validate(this),callbackfn,arguments.length>1?arguments[1]:undefined)},fill:function fill(value){return arrayFill.apply(validate(this),arguments)},filter:function filter(callbackfn){return speciesFromList(this,arrayFilter(validate(this),callbackfn,arguments.length>1?arguments[1]:undefined))},find:function find(predicate){return arrayFind(validate(this),predicate,arguments.length>1?arguments[1]:undefined)},findIndex:function findIndex(predicate){return arrayFindIndex(validate(this),predicate,arguments.length>1?arguments[1]:undefined)},forEach:function forEach(callbackfn){arrayForEach(validate(this),callbackfn,arguments.length>1?arguments[1]:undefined)},indexOf:function indexOf(searchElement){return arrayIndexOf(validate(this),searchElement,arguments.length>1?arguments[1]:undefined)},includes:function includes(searchElement){return arrayIncludes(validate(this),searchElement,arguments.length>1?arguments[1]:undefined)},join:function join(separator){return arrayJoin.apply(validate(this),arguments)},lastIndexOf:function lastIndexOf(searchElement){return arrayLastIndexOf.apply(validate(this),arguments)},map:function map(mapfn){return $map(validate(this),mapfn,arguments.length>1?arguments[1]:undefined)},reduce:function reduce(callbackfn){return arrayReduce.apply(validate(this),arguments)},reduceRight:function reduceRight(callbackfn){return arrayReduceRight.apply(validate(this),arguments)},reverse:function reverse(){var that=this,length=validate(that).length,middle=Math.floor(length/2),index=0,value;while(index1?arguments[1]:undefined)},sort:function sort(comparefn){return arraySort.call(validate(this),comparefn)},subarray:function subarray(begin,end){var O=validate(this),length=O.length,$begin=toIndex(begin,length);return new(speciesConstructor(O,O[DEF_CONSTRUCTOR]))(O.buffer,O.byteOffset+$begin*O.BYTES_PER_ELEMENT,toLength((end===undefined?length:toIndex(end,length))-$begin))}};var $slice=function slice(start,end){return speciesFromList(this,arraySlice.call(validate(this),start,end))};var $set=function set(arrayLike){validate(this);var offset=toOffset(arguments[1],1),length=this.length,src=toObject(arrayLike),len=toLength(src.length),index=0;if(len+offset>length)throw RangeError(WRONG_LENGTH);while(index255?255:value&255;data.v[SETTER](index*BYTES+data.o,value,LITTLE_ENDIAN)};var addElement=function(that,index){dP(that,index,{get:function(){return getter(this,index)},set:function(value){return setter(this,index,value)},enumerable:true})};if(FORCED){TypedArray=wrapper(function(that,data,$offset,$length){anInstance(that,TypedArray,NAME,"_d");var index=0,offset=0,buffer,byteLength,length,klass;if(!isObject(data)){length=strictToLength(data,true);byteLength=length*BYTES;buffer=new $ArrayBuffer(byteLength)}else if(data instanceof $ArrayBuffer||(klass=classof(data))==ARRAY_BUFFER||klass==SHARED_BUFFER){buffer=data;offset=toOffset($offset,BYTES);var $len=data.byteLength;if($length===undefined){if($len%BYTES)throw RangeError(WRONG_LENGTH);byteLength=$len-offset;if(byteLength<0)throw RangeError(WRONG_LENGTH)}else{byteLength=toLength($length)*BYTES;if(byteLength+offset>$len)throw RangeError(WRONG_LENGTH)}length=byteLength/BYTES}else if(TYPED_ARRAY in data){return fromList(TypedArray,data)}else{return $from.call(TypedArray,data)}hide(that,"_d",{b:buffer,o:offset,l:byteLength,e:length,v:new $DataView(buffer)});while(index>1,rt=mLen===23?pow(2,-24)-pow(2,-77):0,i=0,s=value<0||value===0&&1/value<0?1:0,e,m,c;value=abs(value);if(value!=value||value===Infinity){m=value!=value?1:0;e=eMax}else{e=floor(log(value)/LN2);if(value*(c=pow(2,-e))<1){e--;c*=2}if(e+eBias>=1){value+=rt/c}else{value+=rt*pow(2,1-eBias)}if(value*c>=2){e++;c/=2}if(e+eBias>=eMax){m=0;e=eMax}else if(e+eBias>=1){m=(value*c-1)*pow(2,mLen);e=e+eBias}else{m=value*pow(2,eBias-1)*pow(2,mLen);e=0}}for(;mLen>=8;buffer[i++]=m&255,m/=256,mLen-=8);e=e<0;buffer[i++]=e&255,e/=256,eLen-=8);buffer[--i]|=s*128;return buffer};var unpackIEEE754=function(buffer,mLen,nBytes){var eLen=nBytes*8-mLen-1,eMax=(1<>1,nBits=eLen-7,i=nBytes-1,s=buffer[i--],e=s&127,m;s>>=7;for(;nBits>0;e=e*256+buffer[i],i--,nBits-=8);m=e&(1<<-nBits)-1;e>>=-nBits;nBits+=mLen;for(;nBits>0;m=m*256+buffer[i],i--,nBits-=8);if(e===0){e=1-eBias}else if(e===eMax){return m?NaN:s?-Infinity:Infinity}else{m=m+pow(2,mLen);e=e-eBias}return(s?-1:1)*m*pow(2,e-mLen)};var unpackI32=function(bytes){return bytes[3]<<24|bytes[2]<<16|bytes[1]<<8|bytes[0]};var packI8=function(it){return[it&255]};var packI16=function(it){return[it&255,it>>8&255]};var packI32=function(it){return[it&255,it>>8&255,it>>16&255,it>>24&255]};var packF64=function(it){return packIEEE754(it,52,8)};var packF32=function(it){return packIEEE754(it,23,4)};var addGetter=function(C,key,internal){dP(C[PROTOTYPE],key,{get:function(){return this[internal]}})};var get=function(view,bytes,index,isLittleEndian){var numIndex=+index,intIndex=toInteger(numIndex);if(numIndex!=intIndex||intIndex<0||intIndex+bytes>view[$LENGTH])throw RangeError(WRONG_INDEX);var store=view[$BUFFER]._b,start=intIndex+view[$OFFSET],pack=store.slice(start,start+bytes);return isLittleEndian?pack:pack.reverse()};var set=function(view,bytes,index,conversion,value,isLittleEndian){var numIndex=+index,intIndex=toInteger(numIndex);if(numIndex!=intIndex||intIndex<0||intIndex+bytes>view[$LENGTH])throw RangeError(WRONG_INDEX);var store=view[$BUFFER]._b,start=intIndex+view[$OFFSET],pack=conversion(+value);for(var i=0;ibufferLength)throw RangeError("Wrong offset!");byteLength=byteLength===undefined?bufferLength-offset:toLength(byteLength);if(offset+byteLength>bufferLength)throw RangeError(WRONG_LENGTH);this[$BUFFER]=buffer;this[$OFFSET]=offset;this[$LENGTH]=byteLength};if(DESCRIPTORS){addGetter($ArrayBuffer,BYTE_LENGTH,"_l");addGetter($DataView,BUFFER,"_b");addGetter($DataView,BYTE_LENGTH,"_l");addGetter($DataView,BYTE_OFFSET,"_o")}redefineAll($DataView[PROTOTYPE],{getInt8:function getInt8(byteOffset){return get(this,1,byteOffset)[0]<<24>>24},getUint8:function getUint8(byteOffset){return get(this,1,byteOffset)[0]},getInt16:function getInt16(byteOffset){var bytes=get(this,2,byteOffset,arguments[1]);return(bytes[1]<<8|bytes[0])<<16>>16},getUint16:function getUint16(byteOffset){var bytes=get(this,2,byteOffset,arguments[1]);return bytes[1]<<8|bytes[0]},getInt32:function getInt32(byteOffset){return unpackI32(get(this,4,byteOffset,arguments[1]))},getUint32:function getUint32(byteOffset){return unpackI32(get(this,4,byteOffset,arguments[1]))>>>0},getFloat32:function getFloat32(byteOffset){return unpackIEEE754(get(this,4,byteOffset,arguments[1]),23,4)},getFloat64:function getFloat64(byteOffset){return unpackIEEE754(get(this,8,byteOffset,arguments[1]),52,8)},setInt8:function setInt8(byteOffset,value){set(this,1,byteOffset,packI8,value)},setUint8:function setUint8(byteOffset,value){set(this,1,byteOffset,packI8,value)},setInt16:function setInt16(byteOffset,value){set(this,2,byteOffset,packI16,value,arguments[2])},setUint16:function setUint16(byteOffset,value){set(this,2,byteOffset,packI16,value,arguments[2])},setInt32:function setInt32(byteOffset,value){set(this,4,byteOffset,packI32,value,arguments[2])},setUint32:function setUint32(byteOffset,value){set(this,4,byteOffset,packI32,value,arguments[2])},setFloat32:function setFloat32(byteOffset,value){set(this,4,byteOffset,packF32,value,arguments[2])},setFloat64:function setFloat64(byteOffset,value){set(this,8,byteOffset,packF64,value,arguments[2])}})}else{if(!fails(function(){new $ArrayBuffer})||!fails(function(){new $ArrayBuffer(.5)})){$ArrayBuffer=function ArrayBuffer(length){return new BaseBuffer(validateArrayBufferArguments(this,length))};var ArrayBufferProto=$ArrayBuffer[PROTOTYPE]=BaseBuffer[PROTOTYPE];for(var keys=gOPN(BaseBuffer),j=0,key;keys.length>j;){if(!((key=keys[j++])in $ArrayBuffer))hide($ArrayBuffer,key,BaseBuffer[key])}if(!LIBRARY)ArrayBufferProto.constructor=$ArrayBuffer}var view=new $DataView(new $ArrayBuffer(2)),$setInt8=$DataView[PROTOTYPE].setInt8;view.setInt8(0,2147483648);view.setInt8(1,2147483649);if(view.getInt8(0)||!view.getInt8(1))redefineAll($DataView[PROTOTYPE],{setInt8:function setInt8(byteOffset,value){$setInt8.call(this,byteOffset,value<<24>>24)},setUint8:function setUint8(byteOffset,value){$setInt8.call(this,byteOffset,value<<24>>24)}},true)}setToStringTag($ArrayBuffer,ARRAY_BUFFER);setToStringTag($DataView,DATA_VIEW);hide($DataView[PROTOTYPE],$typed.VIEW,true);exports[ARRAY_BUFFER]=$ArrayBuffer;exports[DATA_VIEW]=$DataView},{106:106,108:108,113:113,28:28,34:34,38:38,40:40,58:58,6:6,67:67,72:72,86:86,9:9,92:92}],113:[function(_dereq_,module,exports){var global=_dereq_(38),hide=_dereq_(40),uid=_dereq_(114),TYPED=uid("typed_array"),VIEW=uid("view"),ABV=!!(global.ArrayBuffer&&global.DataView),CONSTR=ABV,i=0,l=9,Typed;var TypedArrayConstructors="Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array".split(",");while(i1?arguments[1]:undefined)}});_dereq_(5)(KEY)},{12:12,32:32,5:5}],125:[function(_dereq_,module,exports){"use strict";var $export=_dereq_(32),$find=_dereq_(12)(5),KEY="find",forced=true;if(KEY in[])Array(1)[KEY](function(){forced=false});$export($export.P+$export.F*forced,"Array",{find:function find(callbackfn){return $find(this,callbackfn,arguments.length>1?arguments[1]:undefined)}});_dereq_(5)(KEY)},{12:12,32:32,5:5}],126:[function(_dereq_,module,exports){"use strict";var $export=_dereq_(32),$forEach=_dereq_(12)(0),STRICT=_dereq_(96)([].forEach,true);$export($export.P+$export.F*!STRICT,"Array",{forEach:function forEach(callbackfn){return $forEach(this,callbackfn,arguments[1])}})},{12:12,32:32,96:96}],127:[function(_dereq_,module,exports){"use strict";var ctx=_dereq_(25),$export=_dereq_(32),toObject=_dereq_(109),call=_dereq_(51),isArrayIter=_dereq_(46),toLength=_dereq_(108),createProperty=_dereq_(24),getIterFn=_dereq_(118);$export($export.S+$export.F*!_dereq_(54)(function(iter){Array.from(iter)}),"Array",{from:function from(arrayLike){var O=toObject(arrayLike),C=typeof this=="function"?this:Array,aLen=arguments.length,mapfn=aLen>1?arguments[1]:undefined,mapping=mapfn!==undefined,index=0,iterFn=getIterFn(O),length,result,step,iterator;if(mapping)mapfn=ctx(mapfn,aLen>2?arguments[2]:undefined,2);if(iterFn!=undefined&&!(C==Array&&isArrayIter(iterFn))){for(iterator=iterFn.call(O),result=new C;!(step=iterator.next()).done;index++){createProperty(result,index,mapping?call(iterator,mapfn,[step.value,index],true):step.value)}}else{length=toLength(O.length);for(result=new C(length);length>index;index++){createProperty(result,index,mapping?mapfn(O[index],index):O[index])}}result.length=index;return result}})},{108:108,109:109,118:118,24:24,25:25,32:32,46:46,51:51,54:54}],128:[function(_dereq_,module,exports){"use strict";var $export=_dereq_(32),$indexOf=_dereq_(11)(false),$native=[].indexOf,NEGATIVE_ZERO=!!$native&&1/[1].indexOf(1,-0)<0;$export($export.P+$export.F*(NEGATIVE_ZERO||!_dereq_(96)($native)),"Array",{indexOf:function indexOf(searchElement){return NEGATIVE_ZERO?$native.apply(this,arguments)||0:$indexOf(this,searchElement,arguments[1])}})},{11:11,32:32,96:96}],129:[function(_dereq_,module,exports){var $export=_dereq_(32);$export($export.S,"Array",{isArray:_dereq_(47)})},{32:32,47:47}],130:[function(_dereq_,module,exports){"use strict";var addToUnscopables=_dereq_(5),step=_dereq_(55),Iterators=_dereq_(56),toIObject=_dereq_(107);module.exports=_dereq_(53)(Array,"Array",function(iterated,kind){this._t=toIObject(iterated);this._i=0;this._k=kind},function(){var O=this._t,kind=this._k,index=this._i++;if(!O||index>=O.length){this._t=undefined;return step(1)}if(kind=="keys")return step(0,index);if(kind=="values")return step(0,O[index]);return step(0,[index,O[index]])},"values");Iterators.Arguments=Iterators.Array;addToUnscopables("keys");addToUnscopables("values");addToUnscopables("entries")},{107:107,5:5,53:53,55:55,56:56}],131:[function(_dereq_,module,exports){"use strict";var $export=_dereq_(32),toIObject=_dereq_(107),arrayJoin=[].join;$export($export.P+$export.F*(_dereq_(45)!=Object||!_dereq_(96)(arrayJoin)),"Array",{join:function join(separator){return arrayJoin.call(toIObject(this),separator===undefined?",":separator)}})},{107:107,32:32,45:45,96:96}],132:[function(_dereq_,module,exports){"use strict";var $export=_dereq_(32),toIObject=_dereq_(107),toInteger=_dereq_(106),toLength=_dereq_(108),$native=[].lastIndexOf,NEGATIVE_ZERO=!!$native&&1/[1].lastIndexOf(1,-0)<0;$export($export.P+$export.F*(NEGATIVE_ZERO||!_dereq_(96)($native)),"Array",{lastIndexOf:function lastIndexOf(searchElement){if(NEGATIVE_ZERO)return $native.apply(this,arguments)||0;var O=toIObject(this),length=toLength(O.length),index=length-1;if(arguments.length>1)index=Math.min(index,toInteger(arguments[1]));if(index<0)index=length+index;for(;index>=0;index--)if(index in O)if(O[index]===searchElement)return index||0;return-1}})},{106:106,107:107,108:108,32:32,96:96}],133:[function(_dereq_,module,exports){"use strict";var $export=_dereq_(32),$map=_dereq_(12)(1);$export($export.P+$export.F*!_dereq_(96)([].map,true),"Array",{map:function map(callbackfn){return $map(this,callbackfn,arguments[1])}})},{12:12,32:32,96:96}],134:[function(_dereq_,module,exports){"use strict";var $export=_dereq_(32),createProperty=_dereq_(24);$export($export.S+$export.F*_dereq_(34)(function(){function F(){}return!(Array.of.call(F)instanceof F)}),"Array",{of:function of(){var index=0,aLen=arguments.length,result=new(typeof this=="function"?this:Array)(aLen);while(aLen>index)createProperty(result,index,arguments[index++]);result.length=aLen;return result}})},{24:24,32:32,34:34}],135:[function(_dereq_,module,exports){"use strict";var $export=_dereq_(32),$reduce=_dereq_(13);$export($export.P+$export.F*!_dereq_(96)([].reduceRight,true),"Array",{reduceRight:function reduceRight(callbackfn){return $reduce(this,callbackfn,arguments.length,arguments[1],true)}})},{13:13,32:32,96:96}],136:[function(_dereq_,module,exports){"use strict";var $export=_dereq_(32),$reduce=_dereq_(13);$export($export.P+$export.F*!_dereq_(96)([].reduce,true),"Array",{reduce:function reduce(callbackfn){return $reduce(this,callbackfn,arguments.length,arguments[1],false)}})},{13:13,32:32,96:96}],137:[function(_dereq_,module,exports){"use strict";var $export=_dereq_(32),html=_dereq_(41),cof=_dereq_(18),toIndex=_dereq_(105),toLength=_dereq_(108),arraySlice=[].slice;$export($export.P+$export.F*_dereq_(34)(function(){if(html)arraySlice.call(html)}),"Array",{slice:function slice(begin,end){var len=toLength(this.length),klass=cof(this);end=end===undefined?len:end;if(klass=="Array")return arraySlice.call(this,begin,end);var start=toIndex(begin,len),upTo=toIndex(end,len),size=toLength(upTo-start),cloned=Array(size),i=0;for(;i9?num:"0"+num};$export($export.P+$export.F*(fails(function(){return new Date(-5e13-1).toISOString()!="0385-07-25T07:06:39.999Z"})||!fails(function(){new Date(NaN).toISOString()})),"Date",{toISOString:function toISOString(){if(!isFinite(getTime.call(this)))throw RangeError("Invalid time value");var d=this,y=d.getUTCFullYear(),m=d.getUTCMilliseconds(),s=y<0?"-":y>9999?"+":"";return s+("00000"+Math.abs(y)).slice(s?-6:-4)+"-"+lz(d.getUTCMonth()+1)+"-"+lz(d.getUTCDate())+"T"+lz(d.getUTCHours())+":"+lz(d.getUTCMinutes())+":"+lz(d.getUTCSeconds())+"."+(m>99?m:"0"+lz(m))+"Z"}})},{32:32,34:34}],143:[function(_dereq_,module,exports){"use strict";var $export=_dereq_(32),toObject=_dereq_(109),toPrimitive=_dereq_(110);$export($export.P+$export.F*_dereq_(34)(function(){return new Date(NaN).toJSON()!==null||Date.prototype.toJSON.call({toISOString:function(){return 1}})!==1}),"Date",{toJSON:function toJSON(key){var O=toObject(this),pv=toPrimitive(O);return typeof pv=="number"&&!isFinite(pv)?null:O.toISOString()}})},{109:109,110:110,32:32,34:34}],144:[function(_dereq_,module,exports){var TO_PRIMITIVE=_dereq_(117)("toPrimitive"),proto=Date.prototype;if(!(TO_PRIMITIVE in proto))_dereq_(40)(proto,TO_PRIMITIVE,_dereq_(26))},{117:117,26:26,40:40}],145:[function(_dereq_,module,exports){var DateProto=Date.prototype,INVALID_DATE="Invalid Date",TO_STRING="toString",$toString=DateProto[TO_STRING],getTime=DateProto.getTime;if(new Date(NaN)+""!=INVALID_DATE){_dereq_(87)(DateProto,TO_STRING,function toString(){var value=getTime.call(this);return value===value?$toString.call(this):INVALID_DATE})}},{87:87}],146:[function(_dereq_,module,exports){var $export=_dereq_(32);$export($export.P,"Function",{bind:_dereq_(16)})},{16:16,32:32}],147:[function(_dereq_,module,exports){"use strict";var isObject=_dereq_(49),getPrototypeOf=_dereq_(74),HAS_INSTANCE=_dereq_(117)("hasInstance"),FunctionProto=Function.prototype;if(!(HAS_INSTANCE in FunctionProto))_dereq_(67).f(FunctionProto,HAS_INSTANCE,{value:function(O){if(typeof this!="function"||!isObject(O))return false;if(!isObject(this.prototype))return O instanceof this;while(O=getPrototypeOf(O))if(this.prototype===O)return true;return false}})},{117:117,49:49,67:67,74:74}],148:[function(_dereq_,module,exports){var dP=_dereq_(67).f,createDesc=_dereq_(85),has=_dereq_(39),FProto=Function.prototype,nameRE=/^\s*function ([^ (]*)/,NAME="name";var isExtensible=Object.isExtensible||function(){return true};NAME in FProto||_dereq_(28)&&dP(FProto,NAME,{configurable:true,get:function(){try{var that=this,name=(""+that).match(nameRE)[1];has(that,NAME)||!isExtensible(that)||dP(that,NAME,createDesc(5,name));return name}catch(e){return""}}})},{28:28,39:39,67:67,85:85}],149:[function(_dereq_,module,exports){"use strict";var strong=_dereq_(19);module.exports=_dereq_(22)("Map",function(get){return function Map(){return get(this,arguments.length>0?arguments[0]:undefined)}},{get:function get(key){var entry=strong.getEntry(this,key);return entry&&entry.v},set:function set(key,value){return strong.def(this,key===0?0:key,value)}},strong,true)},{19:19,22:22}],150:[function(_dereq_,module,exports){var $export=_dereq_(32),log1p=_dereq_(60),sqrt=Math.sqrt,$acosh=Math.acosh;$export($export.S+$export.F*!($acosh&&Math.floor($acosh(Number.MAX_VALUE))==710&&$acosh(Infinity)==Infinity),"Math",{acosh:function acosh(x){return(x=+x)<1?NaN:x>94906265.62425156?Math.log(x)+Math.LN2:log1p(x-1+sqrt(x-1)*sqrt(x+1))}})},{32:32,60:60}],151:[function(_dereq_,module,exports){var $export=_dereq_(32),$asinh=Math.asinh;function asinh(x){return!isFinite(x=+x)||x==0?x:x<0?-asinh(-x):Math.log(x+Math.sqrt(x*x+1))}$export($export.S+$export.F*!($asinh&&1/$asinh(0)>0),"Math",{asinh:asinh})},{32:32}],152:[function(_dereq_,module,exports){var $export=_dereq_(32),$atanh=Math.atanh;$export($export.S+$export.F*!($atanh&&1/$atanh(-0)<0),"Math",{atanh:function atanh(x){return(x=+x)==0?x:Math.log((1+x)/(1-x))/2}})},{32:32}],153:[function(_dereq_,module,exports){var $export=_dereq_(32),sign=_dereq_(61);$export($export.S,"Math",{cbrt:function cbrt(x){return sign(x=+x)*Math.pow(Math.abs(x),1/3)}})},{32:32,61:61}],154:[function(_dereq_,module,exports){var $export=_dereq_(32);$export($export.S,"Math",{clz32:function clz32(x){return(x>>>=0)?31-Math.floor(Math.log(x+.5)*Math.LOG2E):32}})},{32:32}],155:[function(_dereq_,module,exports){var $export=_dereq_(32),exp=Math.exp;$export($export.S,"Math",{cosh:function cosh(x){return(exp(x=+x)+exp(-x))/2}})},{32:32}],156:[function(_dereq_,module,exports){var $export=_dereq_(32),$expm1=_dereq_(59);$export($export.S+$export.F*($expm1!=Math.expm1),"Math",{expm1:$expm1})},{32:32,59:59}],157:[function(_dereq_,module,exports){var $export=_dereq_(32),sign=_dereq_(61),pow=Math.pow,EPSILON=pow(2,-52),EPSILON32=pow(2,-23),MAX32=pow(2,127)*(2-EPSILON32),MIN32=pow(2,-126);var roundTiesToEven=function(n){return n+1/EPSILON-1/EPSILON};$export($export.S,"Math",{fround:function fround(x){var $abs=Math.abs(x),$sign=sign(x),a,result;if($absMAX32||result!=result)return $sign*Infinity;return $sign*result}})},{32:32,61:61}],158:[function(_dereq_,module,exports){var $export=_dereq_(32),abs=Math.abs;$export($export.S,"Math",{hypot:function hypot(value1,value2){var sum=0,i=0,aLen=arguments.length,larg=0,arg,div;while(i0){div=arg/larg;sum+=div*div}else sum+=arg}return larg===Infinity?Infinity:larg*Math.sqrt(sum)}})},{32:32}],159:[function(_dereq_,module,exports){var $export=_dereq_(32),$imul=Math.imul;$export($export.S+$export.F*_dereq_(34)(function(){return $imul(4294967295,5)!=-5||$imul.length!=2}),"Math",{imul:function imul(x,y){var UINT16=65535,xn=+x,yn=+y,xl=UINT16&xn,yl=UINT16&yn;return 0|xl*yl+((UINT16&xn>>>16)*yl+xl*(UINT16&yn>>>16)<<16>>>0)}})},{32:32,34:34}],160:[function(_dereq_,module,exports){var $export=_dereq_(32);$export($export.S,"Math",{log10:function log10(x){return Math.log(x)/Math.LN10}})},{32:32}],161:[function(_dereq_,module,exports){var $export=_dereq_(32);$export($export.S,"Math",{log1p:_dereq_(60)})},{32:32,60:60}],162:[function(_dereq_,module,exports){var $export=_dereq_(32);$export($export.S,"Math",{log2:function log2(x){return Math.log(x)/Math.LN2}})},{32:32}],163:[function(_dereq_,module,exports){var $export=_dereq_(32);$export($export.S,"Math",{sign:_dereq_(61)})},{32:32,61:61}],164:[function(_dereq_,module,exports){var $export=_dereq_(32),expm1=_dereq_(59),exp=Math.exp;$export($export.S+$export.F*_dereq_(34)(function(){return!Math.sinh(-2e-17)!=-2e-17}),"Math",{sinh:function sinh(x){return Math.abs(x=+x)<1?(expm1(x)-expm1(-x))/2:(exp(x-1)-exp(-x-1))*(Math.E/2)}})},{32:32,34:34,59:59}],165:[function(_dereq_,module,exports){var $export=_dereq_(32),expm1=_dereq_(59),exp=Math.exp;$export($export.S,"Math",{tanh:function tanh(x){var a=expm1(x=+x),b=expm1(-x);return a==Infinity?1:b==Infinity?-1:(a-b)/(exp(x)+exp(-x))}})},{32:32,59:59}],166:[function(_dereq_,module,exports){var $export=_dereq_(32);$export($export.S,"Math",{trunc:function trunc(it){return(it>0?Math.floor:Math.ceil)(it)}})},{32:32}],167:[function(_dereq_,module,exports){"use strict";var global=_dereq_(38),has=_dereq_(39),cof=_dereq_(18),inheritIfRequired=_dereq_(43),toPrimitive=_dereq_(110),fails=_dereq_(34),gOPN=_dereq_(72).f,gOPD=_dereq_(70).f,dP=_dereq_(67).f,$trim=_dereq_(102).trim,NUMBER="Number",$Number=global[NUMBER],Base=$Number,proto=$Number.prototype,BROKEN_COF=cof(_dereq_(66)(proto))==NUMBER,TRIM="trim"in String.prototype;var toNumber=function(argument){var it=toPrimitive(argument,false);if(typeof it=="string"&&it.length>2){it=TRIM?it.trim():$trim(it,3);var first=it.charCodeAt(0),third,radix,maxCode;if(first===43||first===45){third=it.charCodeAt(2);if(third===88||third===120)return NaN}else if(first===48){switch(it.charCodeAt(1)){case 66:case 98:radix=2;maxCode=49;break;case 79:case 111:radix=8;maxCode=55;break;default:return+it}for(var digits=it.slice(2),i=0,l=digits.length,code;imaxCode)return NaN}return parseInt(digits,radix)}}return+it};if(!$Number(" 0o1")||!$Number("0b1")||$Number("+0x1")){$Number=function Number(value){var it=arguments.length<1?0:value,that=this;return that instanceof $Number&&(BROKEN_COF?fails(function(){proto.valueOf.call(that)}):cof(that)!=NUMBER)?inheritIfRequired(new Base(toNumber(it)),that,$Number):toNumber(it)};for(var keys=_dereq_(28)?gOPN(Base):("MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,"+"EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,"+"MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger").split(","),j=0,key;keys.length>j;j++){if(has(Base,key=keys[j])&&!has($Number,key)){dP($Number,key,gOPD(Base,key))}}$Number.prototype=proto;proto.constructor=$Number;_dereq_(87)(global,NUMBER,$Number)}},{102:102,110:110,18:18,28:28,34:34,38:38,39:39,43:43,66:66,67:67,70:70,72:72,87:87}],168:[function(_dereq_,module,exports){var $export=_dereq_(32);$export($export.S,"Number",{EPSILON:Math.pow(2,-52)})},{32:32}],169:[function(_dereq_,module,exports){var $export=_dereq_(32),_isFinite=_dereq_(38).isFinite;$export($export.S,"Number",{isFinite:function isFinite(it){return typeof it=="number"&&_isFinite(it)}})},{32:32,38:38}],170:[function(_dereq_,module,exports){var $export=_dereq_(32);$export($export.S,"Number",{isInteger:_dereq_(48)})},{32:32,48:48}],171:[function(_dereq_,module,exports){var $export=_dereq_(32);$export($export.S,"Number",{isNaN:function isNaN(number){return number!=number}})},{32:32}],172:[function(_dereq_,module,exports){var $export=_dereq_(32),isInteger=_dereq_(48),abs=Math.abs;$export($export.S,"Number",{isSafeInteger:function isSafeInteger(number){return isInteger(number)&&abs(number)<=9007199254740991}})},{32:32,48:48}],173:[function(_dereq_,module,exports){var $export=_dereq_(32);$export($export.S,"Number",{MAX_SAFE_INTEGER:9007199254740991})},{32:32}],174:[function(_dereq_,module,exports){var $export=_dereq_(32);$export($export.S,"Number",{MIN_SAFE_INTEGER:-9007199254740991})},{32:32}],175:[function(_dereq_,module,exports){var $export=_dereq_(32),$parseFloat=_dereq_(81);$export($export.S+$export.F*(Number.parseFloat!=$parseFloat),"Number",{parseFloat:$parseFloat})},{32:32,81:81}],176:[function(_dereq_,module,exports){var $export=_dereq_(32),$parseInt=_dereq_(82);$export($export.S+$export.F*(Number.parseInt!=$parseInt),"Number",{parseInt:$parseInt})},{32:32,82:82}],177:[function(_dereq_,module,exports){"use strict";var $export=_dereq_(32),toInteger=_dereq_(106),aNumberValue=_dereq_(4),repeat=_dereq_(101),$toFixed=1..toFixed,floor=Math.floor,data=[0,0,0,0,0,0],ERROR="Number.toFixed: incorrect invocation!",ZERO="0";var multiply=function(n,c){var i=-1,c2=c;while(++i<6){c2+=n*data[i];data[i]=c2%1e7;c2=floor(c2/1e7)}};var divide=function(n){var i=6,c=0;while(--i>=0){c+=data[i];data[i]=floor(c/n);c=c%n*1e7}};var numToString=function(){var i=6,s="";while(--i>=0){if(s!==""||i===0||data[i]!==0){var t=String(data[i]);s=s===""?t:s+repeat.call(ZERO,7-t.length)+t}}return s};var pow=function(x,n,acc){return n===0?acc:n%2===1?pow(x,n-1,acc*x):pow(x*x,n/2,acc)};var log=function(x){var n=0,x2=x;while(x2>=4096){n+=12;x2/=4096}while(x2>=2){n+=1;x2/=2}return n};$export($export.P+$export.F*(!!$toFixed&&(8e-5.toFixed(3)!=="0.000"||.9.toFixed(0)!=="1"||1.255.toFixed(2)!=="1.25"||(0xde0b6b3a7640080).toFixed(0)!=="1000000000000000128")||!_dereq_(34)(function(){$toFixed.call({})})),"Number",{toFixed:function toFixed(fractionDigits){var x=aNumberValue(this,ERROR),f=toInteger(fractionDigits),s="",m=ZERO,e,z,j,k;if(f<0||f>20)throw RangeError(ERROR);if(x!=x)return"NaN";if(x<=-1e21||x>=1e21)return String(x);if(x<0){s="-";x=-x}if(x>1e-21){e=log(x*pow(2,69,1))-69;z=e<0?x*pow(2,-e,1):x/pow(2,e,1);z*=4503599627370496;e=52-e;if(e>0){multiply(0,z);j=f;while(j>=7){multiply(1e7,0);j-=7}multiply(pow(10,j,1),0);j=e-1;while(j>=23){divide(1<<23);j-=23}divide(1<0){k=m.length;m=s+(k<=f?"0."+repeat.call(ZERO,f-k)+m:m.slice(0,k-f)+"."+m.slice(k-f))}else{m=s+m}return m}})},{101:101,106:106,32:32,34:34,4:4}],178:[function(_dereq_,module,exports){"use strict";var $export=_dereq_(32),$fails=_dereq_(34),aNumberValue=_dereq_(4),$toPrecision=1..toPrecision;$export($export.P+$export.F*($fails(function(){return $toPrecision.call(1,undefined)!=="1"})||!$fails(function(){$toPrecision.call({})})),"Number",{toPrecision:function toPrecision(precision){var that=aNumberValue(this,"Number#toPrecision: incorrect invocation!");return precision===undefined?$toPrecision.call(that):$toPrecision.call(that,precision)}})},{32:32,34:34,4:4}],179:[function(_dereq_,module,exports){var $export=_dereq_(32);$export($export.S+$export.F,"Object",{assign:_dereq_(65)})},{32:32,65:65}],180:[function(_dereq_,module,exports){var $export=_dereq_(32);$export($export.S,"Object",{create:_dereq_(66)})},{32:32,66:66}],181:[function(_dereq_,module,exports){var $export=_dereq_(32);$export($export.S+$export.F*!_dereq_(28),"Object",{defineProperties:_dereq_(68)})},{28:28,32:32,68:68}],182:[function(_dereq_,module,exports){var $export=_dereq_(32);$export($export.S+$export.F*!_dereq_(28),"Object",{defineProperty:_dereq_(67).f})},{28:28,32:32,67:67}],183:[function(_dereq_,module,exports){var isObject=_dereq_(49),meta=_dereq_(62).onFreeze;_dereq_(78)("freeze",function($freeze){return function freeze(it){return $freeze&&isObject(it)?$freeze(meta(it)):it}})},{49:49,62:62,78:78}],184:[function(_dereq_,module,exports){var toIObject=_dereq_(107),$getOwnPropertyDescriptor=_dereq_(70).f;_dereq_(78)("getOwnPropertyDescriptor",function(){return function getOwnPropertyDescriptor(it,key){return $getOwnPropertyDescriptor(toIObject(it),key)}})},{107:107,70:70,78:78}],185:[function(_dereq_,module,exports){_dereq_(78)("getOwnPropertyNames",function(){return _dereq_(71).f})},{71:71,78:78}],186:[function(_dereq_,module,exports){var toObject=_dereq_(109),$getPrototypeOf=_dereq_(74);_dereq_(78)("getPrototypeOf",function(){return function getPrototypeOf(it){return $getPrototypeOf(toObject(it))}})},{109:109,74:74,78:78}],187:[function(_dereq_,module,exports){var isObject=_dereq_(49);_dereq_(78)("isExtensible",function($isExtensible){return function isExtensible(it){return isObject(it)?$isExtensible?$isExtensible(it):true:false}})},{49:49,78:78}],188:[function(_dereq_,module,exports){var isObject=_dereq_(49);_dereq_(78)("isFrozen",function($isFrozen){return function isFrozen(it){return isObject(it)?$isFrozen?$isFrozen(it):false:true}})},{49:49,78:78}],189:[function(_dereq_,module,exports){var isObject=_dereq_(49);_dereq_(78)("isSealed",function($isSealed){return function isSealed(it){return isObject(it)?$isSealed?$isSealed(it):false:true}})},{49:49,78:78}],190:[function(_dereq_,module,exports){var $export=_dereq_(32);$export($export.S,"Object",{is:_dereq_(89)})},{32:32,89:89}],191:[function(_dereq_,module,exports){var toObject=_dereq_(109),$keys=_dereq_(76);_dereq_(78)("keys",function(){return function keys(it){return $keys(toObject(it))}})},{109:109,76:76,78:78}],192:[function(_dereq_,module,exports){var isObject=_dereq_(49),meta=_dereq_(62).onFreeze;_dereq_(78)("preventExtensions",function($preventExtensions){return function preventExtensions(it){return $preventExtensions&&isObject(it)?$preventExtensions(meta(it)):it}})},{49:49,62:62,78:78}],193:[function(_dereq_,module,exports){var isObject=_dereq_(49),meta=_dereq_(62).onFreeze;_dereq_(78)("seal",function($seal){return function seal(it){return $seal&&isObject(it)?$seal(meta(it)):it}})},{49:49,62:62,78:78}],194:[function(_dereq_,module,exports){var $export=_dereq_(32);$export($export.S,"Object",{setPrototypeOf:_dereq_(90).set})},{32:32,90:90}],195:[function(_dereq_,module,exports){"use strict";var classof=_dereq_(17),test={};test[_dereq_(117)("toStringTag")]="z";if(test+""!="[object z]"){_dereq_(87)(Object.prototype,"toString",function toString(){return"[object "+classof(this)+"]"},true)}},{117:117,17:17,87:87}],196:[function(_dereq_,module,exports){var $export=_dereq_(32),$parseFloat=_dereq_(81);$export($export.G+$export.F*(parseFloat!=$parseFloat),{parseFloat:$parseFloat})},{32:32,81:81}],197:[function(_dereq_,module,exports){var $export=_dereq_(32),$parseInt=_dereq_(82);$export($export.G+$export.F*(parseInt!=$parseInt),{parseInt:$parseInt})},{32:32,82:82}],198:[function(_dereq_,module,exports){"use strict";var LIBRARY=_dereq_(58),global=_dereq_(38),ctx=_dereq_(25),classof=_dereq_(17),$export=_dereq_(32),isObject=_dereq_(49),aFunction=_dereq_(3),anInstance=_dereq_(6),forOf=_dereq_(37),speciesConstructor=_dereq_(95),task=_dereq_(104).set,microtask=_dereq_(64)(),PROMISE="Promise",TypeError=global.TypeError,process=global.process,$Promise=global[PROMISE],process=global.process,isNode=classof(process)=="process",empty=function(){},Internal,GenericPromiseCapability,Wrapper;var USE_NATIVE=!!function(){try{var promise=$Promise.resolve(1),FakePromise=(promise.constructor={})[_dereq_(117)("species")]=function(exec){exec(empty,empty)};return(isNode||typeof PromiseRejectionEvent=="function")&&promise.then(empty)instanceof FakePromise}catch(e){}}();var sameConstructor=function(a,b){return a===b||a===$Promise&&b===Wrapper};var isThenable=function(it){var then;return isObject(it)&&typeof(then=it.then)=="function"?then:false};var newPromiseCapability=function(C){return sameConstructor($Promise,C)?new PromiseCapability(C):new GenericPromiseCapability(C)};var PromiseCapability=GenericPromiseCapability=function(C){var resolve,reject;this.promise=new C(function($$resolve,$$reject){if(resolve!==undefined||reject!==undefined)throw TypeError("Bad Promise constructor");resolve=$$resolve;reject=$$reject});this.resolve=aFunction(resolve);this.reject=aFunction(reject)};var perform=function(exec){try{exec()}catch(e){return{error:e}}};var notify=function(promise,isReject){if(promise._n)return;promise._n=true;var chain=promise._c;microtask(function(){var value=promise._v,ok=promise._s==1,i=0;var run=function(reaction){var handler=ok?reaction.ok:reaction.fail,resolve=reaction.resolve,reject=reaction.reject,domain=reaction.domain,result,then;try{if(handler){if(!ok){if(promise._h==2)onHandleUnhandled(promise);promise._h=1}if(handler===true)result=value;else{if(domain)domain.enter();result=handler(value);if(domain)domain.exit()}if(result===reaction.promise){reject(TypeError("Promise-chain cycle"))}else if(then=isThenable(result)){then.call(result,resolve,reject)}else resolve(result)}else reject(value)}catch(e){reject(e)}};while(chain.length>i)run(chain[i++]);promise._c=[];promise._n=false;if(isReject&&!promise._h)onUnhandled(promise)})};var onUnhandled=function(promise){task.call(global,function(){var value=promise._v,abrupt,handler,console;if(isUnhandled(promise)){abrupt=perform(function(){if(isNode){process.emit("unhandledRejection",value,promise)}else if(handler=global.onunhandledrejection){handler({promise:promise,reason:value})}else if((console=global.console)&&console.error){console.error("Unhandled promise rejection",value)}});promise._h=isNode||isUnhandled(promise)?2:1}promise._a=undefined;if(abrupt)throw abrupt.error})};var isUnhandled=function(promise){if(promise._h==1)return false;var chain=promise._a||promise._c,i=0,reaction;while(chain.length>i){reaction=chain[i++];if(reaction.fail||!isUnhandled(reaction.promise))return false}return true};var onHandleUnhandled=function(promise){task.call(global,function(){var handler;if(isNode){process.emit("rejectionHandled",promise)}else if(handler=global.onrejectionhandled){handler({promise:promise,reason:promise._v})}})};var $reject=function(value){var promise=this;if(promise._d)return;promise._d=true;promise=promise._w||promise;promise._v=value;promise._s=2;if(!promise._a)promise._a=promise._c.slice();notify(promise,true)};var $resolve=function(value){var promise=this,then;if(promise._d)return;promise._d=true;promise=promise._w||promise;try{if(promise===value)throw TypeError("Promise can't be resolved itself");if(then=isThenable(value)){microtask(function(){var wrapper={_w:promise,_d:false};try{then.call(value,ctx($resolve,wrapper,1),ctx($reject,wrapper,1))}catch(e){$reject.call(wrapper,e)}})}else{promise._v=value;promise._s=1;notify(promise,false)}}catch(e){$reject.call({_w:promise,_d:false},e)}};if(!USE_NATIVE){$Promise=function Promise(executor){anInstance(this,$Promise,PROMISE,"_h");aFunction(executor);Internal.call(this);try{executor(ctx($resolve,this,1),ctx($reject,this,1))}catch(err){$reject.call(this,err)}};Internal=function Promise(executor){this._c=[];this._a=undefined;this._s=0;this._d=false;this._v=undefined;this._h=0;this._n=false};Internal.prototype=_dereq_(86)($Promise.prototype,{then:function then(onFulfilled,onRejected){var reaction=newPromiseCapability(speciesConstructor(this,$Promise));reaction.ok=typeof onFulfilled=="function"?onFulfilled:true;reaction.fail=typeof onRejected=="function"&&onRejected;reaction.domain=isNode?process.domain:undefined;this._c.push(reaction);if(this._a)this._a.push(reaction);if(this._s)notify(this,false);return reaction.promise},catch:function(onRejected){return this.then(undefined,onRejected)}});PromiseCapability=function(){var promise=new Internal;this.promise=promise;this.resolve=ctx($resolve,promise,1);this.reject=ctx($reject,promise,1)}}$export($export.G+$export.W+$export.F*!USE_NATIVE,{Promise:$Promise});_dereq_(92)($Promise,PROMISE);_dereq_(91)(PROMISE);Wrapper=_dereq_(23)[PROMISE];$export($export.S+$export.F*!USE_NATIVE,PROMISE,{reject:function reject(r){var capability=newPromiseCapability(this),$$reject=capability.reject;$$reject(r);return capability.promise}});$export($export.S+$export.F*(LIBRARY||!USE_NATIVE),PROMISE,{resolve:function resolve(x){if(x instanceof $Promise&&sameConstructor(x.constructor,this))return x;var capability=newPromiseCapability(this),$$resolve=capability.resolve;$$resolve(x);return capability.promise}});$export($export.S+$export.F*!(USE_NATIVE&&_dereq_(54)(function(iter){$Promise.all(iter)["catch"](empty)})),PROMISE,{all:function all(iterable){var C=this,capability=newPromiseCapability(C),resolve=capability.resolve,reject=capability.reject;var abrupt=perform(function(){var values=[],index=0,remaining=1;forOf(iterable,false,function(promise){var $index=index++,alreadyCalled=false;values.push(undefined);remaining++;C.resolve(promise).then(function(value){if(alreadyCalled)return;alreadyCalled=true;values[$index]=value;--remaining||resolve(values)},reject)});--remaining||resolve(values)});if(abrupt)reject(abrupt.error);return capability.promise},race:function race(iterable){var C=this,capability=newPromiseCapability(C),reject=capability.reject;var abrupt=perform(function(){forOf(iterable,false,function(promise){C.resolve(promise).then(capability.resolve,reject)})});if(abrupt)reject(abrupt.error);return capability.promise}})},{104:104,117:117,17:17,23:23,25:25,3:3,32:32,37:37,38:38,49:49,54:54,58:58,6:6,64:64,86:86,91:91,92:92,95:95}],199:[function(_dereq_,module,exports){var $export=_dereq_(32),aFunction=_dereq_(3),anObject=_dereq_(7),rApply=(_dereq_(38).Reflect||{}).apply,fApply=Function.apply;$export($export.S+$export.F*!_dereq_(34)(function(){rApply(function(){})}),"Reflect",{apply:function apply(target,thisArgument,argumentsList){var T=aFunction(target),L=anObject(argumentsList);return rApply?rApply(T,thisArgument,L):fApply.call(T,thisArgument,L)}})},{3:3,32:32,34:34,38:38,7:7}],200:[function(_dereq_,module,exports){var $export=_dereq_(32),create=_dereq_(66),aFunction=_dereq_(3),anObject=_dereq_(7),isObject=_dereq_(49),fails=_dereq_(34),bind=_dereq_(16),rConstruct=(_dereq_(38).Reflect||{}).construct;var NEW_TARGET_BUG=fails(function(){function F(){}return!(rConstruct(function(){},[],F)instanceof F)});var ARGS_BUG=!fails(function(){rConstruct(function(){})});$export($export.S+$export.F*(NEW_TARGET_BUG||ARGS_BUG),"Reflect",{construct:function construct(Target,args){aFunction(Target);anObject(args);var newTarget=arguments.length<3?Target:aFunction(arguments[2]);if(ARGS_BUG&&!NEW_TARGET_BUG)return rConstruct(Target,args,newTarget);if(Target==newTarget){switch(args.length){case 0:return new Target;case 1:return new Target(args[0]);case 2:return new Target(args[0],args[1]);case 3:return new Target(args[0],args[1],args[2]);case 4:return new Target(args[0],args[1],args[2],args[3])}var $args=[null];$args.push.apply($args,args);return new(bind.apply(Target,$args))}var proto=newTarget.prototype,instance=create(isObject(proto)?proto:Object.prototype),result=Function.apply.call(Target,instance,args);return isObject(result)?result:instance}})},{16:16,3:3,32:32,34:34,38:38,49:49,66:66,7:7}],201:[function(_dereq_,module,exports){var dP=_dereq_(67),$export=_dereq_(32),anObject=_dereq_(7),toPrimitive=_dereq_(110);$export($export.S+$export.F*_dereq_(34)(function(){Reflect.defineProperty(dP.f({},1,{value:1}),1,{value:2})}),"Reflect",{defineProperty:function defineProperty(target,propertyKey,attributes){anObject(target);propertyKey=toPrimitive(propertyKey,true);anObject(attributes);try{dP.f(target,propertyKey,attributes);return true}catch(e){return false}}})},{110:110,32:32,34:34,67:67,7:7}],202:[function(_dereq_,module,exports){var $export=_dereq_(32),gOPD=_dereq_(70).f,anObject=_dereq_(7);$export($export.S,"Reflect",{deleteProperty:function deleteProperty(target,propertyKey){var desc=gOPD(anObject(target),propertyKey);return desc&&!desc.configurable?false:delete target[propertyKey]}})},{32:32,7:7,70:70}],203:[function(_dereq_,module,exports){"use strict";var $export=_dereq_(32),anObject=_dereq_(7);var Enumerate=function(iterated){this._t=anObject(iterated);this._i=0;var keys=this._k=[],key;for(key in iterated)keys.push(key)};_dereq_(52)(Enumerate,"Object",function(){var that=this,keys=that._k,key;do{if(that._i>=keys.length)return{value:undefined,done:true}}while(!((key=keys[that._i++])in that._t));return{value:key,done:false}});$export($export.S,"Reflect",{enumerate:function enumerate(target){return new Enumerate(target)}})},{32:32,52:52,7:7}],204:[function(_dereq_,module,exports){var gOPD=_dereq_(70),$export=_dereq_(32),anObject=_dereq_(7);$export($export.S,"Reflect",{getOwnPropertyDescriptor:function getOwnPropertyDescriptor(target,propertyKey){return gOPD.f(anObject(target),propertyKey)}})},{32:32,7:7,70:70}],205:[function(_dereq_,module,exports){var $export=_dereq_(32),getProto=_dereq_(74),anObject=_dereq_(7);$export($export.S,"Reflect",{getPrototypeOf:function getPrototypeOf(target){return getProto(anObject(target))}})},{32:32,7:7,74:74}],206:[function(_dereq_,module,exports){var gOPD=_dereq_(70),getPrototypeOf=_dereq_(74),has=_dereq_(39),$export=_dereq_(32),isObject=_dereq_(49),anObject=_dereq_(7);function get(target,propertyKey){var receiver=arguments.length<3?target:arguments[2],desc,proto;if(anObject(target)===receiver)return target[propertyKey];if(desc=gOPD.f(target,propertyKey))return has(desc,"value")?desc.value:desc.get!==undefined?desc.get.call(receiver):undefined;if(isObject(proto=getPrototypeOf(target)))return get(proto,propertyKey,receiver)}$export($export.S,"Reflect",{get:get})},{32:32,39:39,49:49,7:7,70:70,74:74}],207:[function(_dereq_,module,exports){var $export=_dereq_(32);$export($export.S,"Reflect",{has:function has(target,propertyKey){return propertyKey in target}})},{32:32}],208:[function(_dereq_,module,exports){var $export=_dereq_(32),anObject=_dereq_(7),$isExtensible=Object.isExtensible;$export($export.S,"Reflect",{isExtensible:function isExtensible(target){anObject(target);return $isExtensible?$isExtensible(target):true}})},{32:32,7:7}],209:[function(_dereq_,module,exports){var $export=_dereq_(32);$export($export.S,"Reflect",{ownKeys:_dereq_(80)})},{32:32,80:80}],210:[function(_dereq_,module,exports){var $export=_dereq_(32),anObject=_dereq_(7),$preventExtensions=Object.preventExtensions;$export($export.S,"Reflect",{preventExtensions:function preventExtensions(target){anObject(target);try{if($preventExtensions)$preventExtensions(target);return true}catch(e){return false}}})},{32:32,7:7}],211:[function(_dereq_,module,exports){var $export=_dereq_(32),setProto=_dereq_(90);if(setProto)$export($export.S,"Reflect",{setPrototypeOf:function setPrototypeOf(target,proto){setProto.check(target,proto);try{setProto.set(target,proto);return true}catch(e){return false}}})},{32:32,90:90}],212:[function(_dereq_,module,exports){var dP=_dereq_(67),gOPD=_dereq_(70),getPrototypeOf=_dereq_(74),has=_dereq_(39),$export=_dereq_(32),createDesc=_dereq_(85),anObject=_dereq_(7),isObject=_dereq_(49);function set(target,propertyKey,V){var receiver=arguments.length<4?target:arguments[3],ownDesc=gOPD.f(anObject(target),propertyKey),existingDescriptor,proto;if(!ownDesc){if(isObject(proto=getPrototypeOf(target))){return set(proto,propertyKey,V,receiver)}ownDesc=createDesc(0)}if(has(ownDesc,"value")){if(ownDesc.writable===false||!isObject(receiver))return false;existingDescriptor=gOPD.f(receiver,propertyKey)||createDesc(0);existingDescriptor.value=V;dP.f(receiver,propertyKey,existingDescriptor);return true}return ownDesc.set===undefined?false:(ownDesc.set.call(receiver,V),true)}$export($export.S,"Reflect",{set:set})},{32:32,39:39,49:49,67:67,7:7,70:70,74:74,85:85}],213:[function(_dereq_,module,exports){var global=_dereq_(38),inheritIfRequired=_dereq_(43),dP=_dereq_(67).f,gOPN=_dereq_(72).f,isRegExp=_dereq_(50),$flags=_dereq_(36),$RegExp=global.RegExp,Base=$RegExp,proto=$RegExp.prototype,re1=/a/g,re2=/a/g,CORRECT_NEW=new $RegExp(re1)!==re1;if(_dereq_(28)&&(!CORRECT_NEW||_dereq_(34)(function(){re2[_dereq_(117)("match")]=false;return $RegExp(re1)!=re1||$RegExp(re2)==re2||$RegExp(re1,"i")!="/a/i"}))){$RegExp=function RegExp(p,f){var tiRE=this instanceof $RegExp,piRE=isRegExp(p),fiU=f===undefined;return!tiRE&&piRE&&p.constructor===$RegExp&&fiU?p:inheritIfRequired(CORRECT_NEW?new Base(piRE&&!fiU?p.source:p,f):Base((piRE=p instanceof $RegExp)?p.source:p,piRE&&fiU?$flags.call(p):f),tiRE?this:proto,$RegExp)};var proxy=function(key){key in $RegExp||dP($RegExp,key,{configurable:true,get:function(){return Base[key]},set:function(it){Base[key]=it}})};for(var keys=gOPN(Base),i=0;keys.length>i;)proxy(keys[i++]);proto.constructor=$RegExp;$RegExp.prototype=proto;_dereq_(87)(global,"RegExp",$RegExp)}_dereq_(91)("RegExp")},{117:117,28:28,34:34,36:36,38:38,43:43,50:50,67:67,72:72,87:87,91:91}],214:[function(_dereq_,module,exports){if(_dereq_(28)&&/./g.flags!="g")_dereq_(67).f(RegExp.prototype,"flags",{configurable:true,get:_dereq_(36)})},{28:28,36:36,67:67}],215:[function(_dereq_,module,exports){_dereq_(35)("match",1,function(defined,MATCH,$match){return[function match(regexp){"use strict";var O=defined(this),fn=regexp==undefined?undefined:regexp[MATCH];return fn!==undefined?fn.call(regexp,O):new RegExp(regexp)[MATCH](String(O))},$match]})},{35:35}],216:[function(_dereq_,module,exports){_dereq_(35)("replace",2,function(defined,REPLACE,$replace){return[function replace(searchValue,replaceValue){"use strict";var O=defined(this),fn=searchValue==undefined?undefined:searchValue[REPLACE];return fn!==undefined?fn.call(searchValue,O,replaceValue):$replace.call(String(O),searchValue,replaceValue)},$replace]})},{35:35}],217:[function(_dereq_,module,exports){_dereq_(35)("search",1,function(defined,SEARCH,$search){return[function search(regexp){"use strict";var O=defined(this),fn=regexp==undefined?undefined:regexp[SEARCH];return fn!==undefined?fn.call(regexp,O):new RegExp(regexp)[SEARCH](String(O))},$search]})},{35:35}],218:[function(_dereq_,module,exports){_dereq_(35)("split",2,function(defined,SPLIT,$split){"use strict";var isRegExp=_dereq_(50),_split=$split,$push=[].push,$SPLIT="split",LENGTH="length",LAST_INDEX="lastIndex";if("abbc"[$SPLIT](/(b)*/)[1]=="c"||"test"[$SPLIT](/(?:)/,-1)[LENGTH]!=4||"ab"[$SPLIT](/(?:ab)*/)[LENGTH]!=2||"."[$SPLIT](/(.?)(.?)/)[LENGTH]!=4||"."[$SPLIT](/()()/)[LENGTH]>1||""[$SPLIT](/.?/)[LENGTH]){var NPCG=/()??/.exec("")[1]===undefined;$split=function(separator,limit){var string=String(this);if(separator===undefined&&limit===0)return[];if(!isRegExp(separator))return _split.call(string,separator,limit);var output=[];var flags=(separator.ignoreCase?"i":"")+(separator.multiline?"m":"")+(separator.unicode?"u":"")+(separator.sticky?"y":"");var lastLastIndex=0;var splitLimit=limit===undefined?4294967295:limit>>>0;var separatorCopy=new RegExp(separator.source,flags+"g");var separator2,match,lastIndex,lastLength,i;if(!NPCG)separator2=new RegExp("^"+separatorCopy.source+"$(?!\\s)",flags);while(match=separatorCopy.exec(string)){lastIndex=match.index+match[0][LENGTH];if(lastIndex>lastLastIndex){output.push(string.slice(lastLastIndex,match.index));if(!NPCG&&match[LENGTH]>1)match[0].replace(separator2,function(){for(i=1;i1&&match.index=splitLimit)break}if(separatorCopy[LAST_INDEX]===match.index)separatorCopy[LAST_INDEX]++}if(lastLastIndex===string[LENGTH]){if(lastLength||!separatorCopy.test(""))output.push("")}else output.push(string.slice(lastLastIndex));return output[LENGTH]>splitLimit?output.slice(0,splitLimit):output}}else if("0"[$SPLIT](undefined,0)[LENGTH]){$split=function(separator,limit){return separator===undefined&&limit===0?[]:_split.call(this,separator,limit)}}return[function split(separator,limit){var O=defined(this),fn=separator==undefined?undefined:separator[SPLIT];return fn!==undefined?fn.call(separator,O,limit):$split.call(String(O),separator,limit)},$split]})},{35:35,50:50}],219:[function(_dereq_,module,exports){"use strict";_dereq_(214);var anObject=_dereq_(7),$flags=_dereq_(36),DESCRIPTORS=_dereq_(28),TO_STRING="toString",$toString=/./[TO_STRING];var define=function(fn){_dereq_(87)(RegExp.prototype,TO_STRING,fn,true)};if(_dereq_(34)(function(){return $toString.call({source:"a",flags:"b"})!="/a/b"})){define(function toString(){var R=anObject(this);return"/".concat(R.source,"/","flags"in R?R.flags:!DESCRIPTORS&&R instanceof RegExp?$flags.call(R):undefined)})}else if($toString.name!=TO_STRING){define(function toString(){return $toString.call(this)})}},{214:214,28:28,34:34,36:36,7:7,87:87}],220:[function(_dereq_,module,exports){"use strict";var strong=_dereq_(19);module.exports=_dereq_(22)("Set",function(get){return function Set(){return get(this,arguments.length>0?arguments[0]:undefined)}},{add:function add(value){return strong.def(this,value=value===0?0:value,value)}},strong)},{19:19,22:22}],221:[function(_dereq_,module,exports){"use strict";_dereq_(99)("anchor",function(createHTML){return function anchor(name){return createHTML(this,"a","name",name)}})},{99:99}],222:[function(_dereq_,module,exports){"use strict";_dereq_(99)("big",function(createHTML){return function big(){return createHTML(this,"big","","")}})},{99:99}],223:[function(_dereq_,module,exports){"use strict";_dereq_(99)("blink",function(createHTML){return function blink(){return createHTML(this,"blink","","")}})},{99:99}],224:[function(_dereq_,module,exports){"use strict";_dereq_(99)("bold",function(createHTML){return function bold(){return createHTML(this,"b","","")}})},{99:99}],225:[function(_dereq_,module,exports){"use strict";var $export=_dereq_(32),$at=_dereq_(97)(false);$export($export.P,"String",{codePointAt:function codePointAt(pos){return $at(this,pos)}})},{32:32,97:97}],226:[function(_dereq_,module,exports){"use strict";var $export=_dereq_(32),toLength=_dereq_(108),context=_dereq_(98),ENDS_WITH="endsWith",$endsWith=""[ENDS_WITH];$export($export.P+$export.F*_dereq_(33)(ENDS_WITH),"String",{endsWith:function endsWith(searchString){var that=context(this,searchString,ENDS_WITH),endPosition=arguments.length>1?arguments[1]:undefined,len=toLength(that.length),end=endPosition===undefined?len:Math.min(toLength(endPosition),len),search=String(searchString);return $endsWith?$endsWith.call(that,search,end):that.slice(end-search.length,end)===search}})},{108:108,32:32,33:33,98:98}],227:[function(_dereq_,module,exports){"use strict";_dereq_(99)("fixed",function(createHTML){return function fixed(){return createHTML(this,"tt","","")}})},{99:99}],228:[function(_dereq_,module,exports){"use strict";_dereq_(99)("fontcolor",function(createHTML){return function fontcolor(color){return createHTML(this,"font","color",color)}})},{99:99}],229:[function(_dereq_,module,exports){"use strict";_dereq_(99)("fontsize",function(createHTML){return function fontsize(size){return createHTML(this,"font","size",size)}})},{99:99}],230:[function(_dereq_,module,exports){var $export=_dereq_(32),toIndex=_dereq_(105),fromCharCode=String.fromCharCode,$fromCodePoint=String.fromCodePoint;$export($export.S+$export.F*(!!$fromCodePoint&&$fromCodePoint.length!=1),"String",{fromCodePoint:function fromCodePoint(x){var res=[],aLen=arguments.length,i=0,code;while(aLen>i){code=+arguments[i++];if(toIndex(code,1114111)!==code)throw RangeError(code+" is not a valid code point");res.push(code<65536?fromCharCode(code):fromCharCode(((code-=65536)>>10)+55296,code%1024+56320))}return res.join("")}})},{105:105,32:32}],231:[function(_dereq_,module,exports){"use strict";var $export=_dereq_(32),context=_dereq_(98),INCLUDES="includes";$export($export.P+$export.F*_dereq_(33)(INCLUDES),"String",{includes:function includes(searchString){return!!~context(this,searchString,INCLUDES).indexOf(searchString,arguments.length>1?arguments[1]:undefined)}})},{32:32,33:33,98:98}],232:[function(_dereq_,module,exports){"use strict";_dereq_(99)("italics",function(createHTML){return function italics(){return createHTML(this,"i","","")}})},{99:99}],233:[function(_dereq_,module,exports){"use strict";var $at=_dereq_(97)(true);_dereq_(53)(String,"String",function(iterated){this._t=String(iterated);this._i=0},function(){var O=this._t,index=this._i,point;if(index>=O.length)return{value:undefined,done:true};point=$at(O,index);this._i+=point.length;return{value:point,done:false}})},{53:53,97:97}],234:[function(_dereq_,module,exports){"use strict";_dereq_(99)("link",function(createHTML){return function link(url){return createHTML(this,"a","href",url)}})},{99:99}],235:[function(_dereq_,module,exports){var $export=_dereq_(32),toIObject=_dereq_(107),toLength=_dereq_(108);$export($export.S,"String",{raw:function raw(callSite){var tpl=toIObject(callSite.raw),len=toLength(tpl.length),aLen=arguments.length,res=[],i=0;while(len>i){res.push(String(tpl[i++]));if(i1?arguments[1]:undefined,that.length)),search=String(searchString);return $startsWith?$startsWith.call(that,search,index):that.slice(index,index+search.length)===search}})},{108:108,32:32,33:33,98:98}],239:[function(_dereq_,module,exports){"use strict";_dereq_(99)("strike",function(createHTML){return function strike(){return createHTML(this,"strike","","")}})},{99:99}],240:[function(_dereq_,module,exports){"use strict";_dereq_(99)("sub",function(createHTML){return function sub(){return createHTML(this,"sub","","")}})},{99:99}],241:[function(_dereq_,module,exports){"use strict";_dereq_(99)("sup",function(createHTML){return function sup(){return createHTML(this,"sup","","")}})},{99:99}],242:[function(_dereq_,module,exports){"use strict";_dereq_(102)("trim",function($trim){return function trim(){return $trim(this,3)}})},{102:102}],243:[function(_dereq_,module,exports){"use strict";var global=_dereq_(38),has=_dereq_(39),DESCRIPTORS=_dereq_(28),$export=_dereq_(32),redefine=_dereq_(87),META=_dereq_(62).KEY,$fails=_dereq_(34),shared=_dereq_(94),setToStringTag=_dereq_(92),uid=_dereq_(114),wks=_dereq_(117),wksExt=_dereq_(116),wksDefine=_dereq_(115),keyOf=_dereq_(57),enumKeys=_dereq_(31),isArray=_dereq_(47),anObject=_dereq_(7),toIObject=_dereq_(107),toPrimitive=_dereq_(110),createDesc=_dereq_(85),_create=_dereq_(66),gOPNExt=_dereq_(71),$GOPD=_dereq_(70),$DP=_dereq_(67),$keys=_dereq_(76),gOPD=$GOPD.f,dP=$DP.f,gOPN=gOPNExt.f,$Symbol=global.Symbol,$JSON=global.JSON,_stringify=$JSON&&$JSON.stringify,PROTOTYPE="prototype",HIDDEN=wks("_hidden"),TO_PRIMITIVE=wks("toPrimitive"),isEnum={}.propertyIsEnumerable,SymbolRegistry=shared("symbol-registry"),AllSymbols=shared("symbols"),OPSymbols=shared("op-symbols"),ObjectProto=Object[PROTOTYPE],USE_NATIVE=typeof $Symbol=="function",QObject=global.QObject;var setter=!QObject||!QObject[PROTOTYPE]||!QObject[PROTOTYPE].findChild;var setSymbolDesc=DESCRIPTORS&&$fails(function(){return _create(dP({},"a",{get:function(){return dP(this,"a",{value:7}).a}})).a!=7})?function(it,key,D){var protoDesc=gOPD(ObjectProto,key);if(protoDesc)delete ObjectProto[key];dP(it,key,D);if(protoDesc&&it!==ObjectProto)dP(ObjectProto,key,protoDesc)}:dP;var wrap=function(tag){var sym=AllSymbols[tag]=_create($Symbol[PROTOTYPE]);sym._k=tag;return sym};var isSymbol=USE_NATIVE&&typeof $Symbol.iterator=="symbol"?function(it){return typeof it=="symbol"}:function(it){return it instanceof $Symbol};var $defineProperty=function defineProperty(it,key,D){if(it===ObjectProto)$defineProperty(OPSymbols,key,D);anObject(it);key=toPrimitive(key,true);anObject(D);if(has(AllSymbols,key)){if(!D.enumerable){if(!has(it,HIDDEN))dP(it,HIDDEN,createDesc(1,{}));it[HIDDEN][key]=true}else{if(has(it,HIDDEN)&&it[HIDDEN][key])it[HIDDEN][key]=false;D=_create(D,{enumerable:createDesc(0,false)})}return setSymbolDesc(it,key,D)}return dP(it,key,D)};var $defineProperties=function defineProperties(it,P){anObject(it);var keys=enumKeys(P=toIObject(P)),i=0,l=keys.length,key;while(l>i)$defineProperty(it,key=keys[i++],P[key]);return it};var $create=function create(it,P){return P===undefined?_create(it):$defineProperties(_create(it),P)};var $propertyIsEnumerable=function propertyIsEnumerable(key){var E=isEnum.call(this,key=toPrimitive(key,true));if(this===ObjectProto&&has(AllSymbols,key)&&!has(OPSymbols,key))return false;return E||!has(this,key)||!has(AllSymbols,key)||has(this,HIDDEN)&&this[HIDDEN][key]?E:true};var $getOwnPropertyDescriptor=function getOwnPropertyDescriptor(it,key){it=toIObject(it);key=toPrimitive(key,true);if(it===ObjectProto&&has(AllSymbols,key)&&!has(OPSymbols,key))return;var D=gOPD(it,key);if(D&&has(AllSymbols,key)&&!(has(it,HIDDEN)&&it[HIDDEN][key]))D.enumerable=true;return D};var $getOwnPropertyNames=function getOwnPropertyNames(it){var names=gOPN(toIObject(it)),result=[],i=0,key;while(names.length>i){if(!has(AllSymbols,key=names[i++])&&key!=HIDDEN&&key!=META)result.push(key)}return result};var $getOwnPropertySymbols=function getOwnPropertySymbols(it){var IS_OP=it===ObjectProto,names=gOPN(IS_OP?OPSymbols:toIObject(it)),result=[],i=0,key;while(names.length>i){if(has(AllSymbols,key=names[i++])&&(IS_OP?has(ObjectProto,key):true))result.push(AllSymbols[key])}return result};if(!USE_NATIVE){$Symbol=function Symbol(){if(this instanceof $Symbol)throw TypeError("Symbol is not a constructor!");var tag=uid(arguments.length>0?arguments[0]:undefined);var $set=function(value){if(this===ObjectProto)$set.call(OPSymbols,value);if(has(this,HIDDEN)&&has(this[HIDDEN],tag))this[HIDDEN][tag]=false;setSymbolDesc(this,tag,createDesc(1,value))};if(DESCRIPTORS&&setter)setSymbolDesc(ObjectProto,tag,{configurable:true,set:$set});return wrap(tag)};redefine($Symbol[PROTOTYPE],"toString",function toString(){return this._k});$GOPD.f=$getOwnPropertyDescriptor;$DP.f=$defineProperty;_dereq_(72).f=gOPNExt.f=$getOwnPropertyNames;_dereq_(77).f=$propertyIsEnumerable;_dereq_(73).f=$getOwnPropertySymbols;if(DESCRIPTORS&&!_dereq_(58)){redefine(ObjectProto,"propertyIsEnumerable",$propertyIsEnumerable,true)}wksExt.f=function(name){return wrap(wks(name))}}$export($export.G+$export.W+$export.F*!USE_NATIVE,{Symbol:$Symbol});for(var symbols="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),i=0;symbols.length>i;)wks(symbols[i++]);for(var symbols=$keys(wks.store),i=0;symbols.length>i;)wksDefine(symbols[i++]);$export($export.S+$export.F*!USE_NATIVE,"Symbol",{for:function(key){return has(SymbolRegistry,key+="")?SymbolRegistry[key]:SymbolRegistry[key]=$Symbol(key)},keyFor:function keyFor(key){if(isSymbol(key))return keyOf(SymbolRegistry,key);throw TypeError(key+" is not a symbol!")},useSetter:function(){setter=true},useSimple:function(){setter=false}});$export($export.S+$export.F*!USE_NATIVE,"Object",{create:$create,defineProperty:$defineProperty,defineProperties:$defineProperties,getOwnPropertyDescriptor:$getOwnPropertyDescriptor,getOwnPropertyNames:$getOwnPropertyNames,getOwnPropertySymbols:$getOwnPropertySymbols});$JSON&&$export($export.S+$export.F*(!USE_NATIVE||$fails(function(){var S=$Symbol();return _stringify([S])!="[null]"||_stringify({a:S})!="{}"||_stringify(Object(S))!="{}"})),"JSON",{stringify:function stringify(it){if(it===undefined||isSymbol(it))return;var args=[it],i=1,replacer,$replacer;while(arguments.length>i)args.push(arguments[i++]);replacer=args[1];if(typeof replacer=="function")$replacer=replacer;if($replacer||!isArray(replacer))replacer=function(key,value){if($replacer)value=$replacer.call(this,key,value);if(!isSymbol(value))return value};args[1]=replacer;return _stringify.apply($JSON,args)}});$Symbol[PROTOTYPE][TO_PRIMITIVE]||_dereq_(40)($Symbol[PROTOTYPE],TO_PRIMITIVE,$Symbol[PROTOTYPE].valueOf);setToStringTag($Symbol,"Symbol");setToStringTag(Math,"Math",true);setToStringTag(global.JSON,"JSON",true)},{107:107,110:110,114:114,115:115,116:116,117:117,28:28,31:31,32:32,34:34,38:38,39:39,40:40,47:47,57:57,58:58,62:62,66:66,67:67,7:7,70:70,71:71,72:72,73:73,76:76,77:77,85:85,87:87,92:92,94:94}],244:[function(_dereq_,module,exports){"use strict";var $export=_dereq_(32),$typed=_dereq_(113),buffer=_dereq_(112),anObject=_dereq_(7),toIndex=_dereq_(105),toLength=_dereq_(108),isObject=_dereq_(49),ArrayBuffer=_dereq_(38).ArrayBuffer,speciesConstructor=_dereq_(95),$ArrayBuffer=buffer.ArrayBuffer,$DataView=buffer.DataView,$isView=$typed.ABV&&ArrayBuffer.isView,$slice=$ArrayBuffer.prototype.slice,VIEW=$typed.VIEW,ARRAY_BUFFER="ArrayBuffer";$export($export.G+$export.W+$export.F*(ArrayBuffer!==$ArrayBuffer),{ArrayBuffer:$ArrayBuffer});$export($export.S+$export.F*!$typed.CONSTR,ARRAY_BUFFER,{isView:function isView(it){return $isView&&$isView(it)||isObject(it)&&VIEW in it}});$export($export.P+$export.U+$export.F*_dereq_(34)(function(){return!new $ArrayBuffer(2).slice(1,undefined).byteLength}),ARRAY_BUFFER,{slice:function slice(start,end){if($slice!==undefined&&end===undefined)return $slice.call(anObject(this),start);var len=anObject(this).byteLength,first=toIndex(start,len),final=toIndex(end===undefined?len:end,len),result=new(speciesConstructor(this,$ArrayBuffer))(toLength(final-first)),viewS=new $DataView(this),viewT=new $DataView(result),index=0;while(first0?arguments[0]:undefined)}};var methods={get:function get(key){if(isObject(key)){var data=getWeak(key);if(data===true)return uncaughtFrozenStore(this).get(key);return data?data[this._i]:undefined}},set:function set(key,value){return weak.def(this,key,value)}};var $WeakMap=module.exports=_dereq_(22)("WeakMap",wrapper,methods,weak,true,true);if((new $WeakMap).set((Object.freeze||Object)(tmp),7).get(tmp)!=7){InternalMap=weak.getConstructor(wrapper);assign(InternalMap.prototype,methods);meta.NEED=true;each(["delete","has","get","set"],function(key){var proto=$WeakMap.prototype,method=proto[key];redefine(proto,key,function(a,b){if(isObject(a)&&!isExtensible(a)){if(!this._f)this._f=new InternalMap;var result=this._f[key](a,b);return key=="set"?this:result}return method.call(this,a,b)})})}},{12:12,21:21,22:22,49:49,62:62,65:65,87:87}],256:[function(_dereq_,module,exports){"use strict";var weak=_dereq_(21);_dereq_(22)("WeakSet",function(get){return function WeakSet(){return get(this,arguments.length>0?arguments[0]:undefined)}},{add:function add(value){return weak.def(this,value,true)}},weak,false,true)},{21:21,22:22}],257:[function(_dereq_,module,exports){"use strict";var $export=_dereq_(32),$includes=_dereq_(11)(true);$export($export.P,"Array",{includes:function includes(el){return $includes(this,el,arguments.length>1?arguments[1]:undefined)}});_dereq_(5)("includes")},{11:11,32:32,5:5}],258:[function(_dereq_,module,exports){var $export=_dereq_(32),microtask=_dereq_(64)(),process=_dereq_(38).process,isNode=_dereq_(18)(process)=="process";$export($export.G,{asap:function asap(fn){var domain=isNode&&process.domain;microtask(domain?domain.bind(fn):fn)}})},{18:18,32:32,38:38,64:64}],259:[function(_dereq_,module,exports){var $export=_dereq_(32),cof=_dereq_(18);$export($export.S,"Error",{isError:function isError(it){return cof(it)==="Error"}})},{18:18,32:32}],260:[function(_dereq_,module,exports){var $export=_dereq_(32);$export($export.P+$export.R,"Map",{toJSON:_dereq_(20)("Map")})},{20:20,32:32}],261:[function(_dereq_,module,exports){var $export=_dereq_(32);$export($export.S,"Math",{iaddh:function iaddh(x0,x1,y0,y1){var $x0=x0>>>0,$x1=x1>>>0,$y0=y0>>>0;return $x1+(y1>>>0)+(($x0&$y0|($x0|$y0)&~($x0+$y0>>>0))>>>31)|0}})},{32:32}],262:[function(_dereq_,module,exports){var $export=_dereq_(32);$export($export.S,"Math",{imulh:function imulh(u,v){var UINT16=65535,$u=+u,$v=+v,u0=$u&UINT16,v0=$v&UINT16,u1=$u>>16,v1=$v>>16,t=(u1*v0>>>0)+(u0*v0>>>16);return u1*v1+(t>>16)+((u0*v1>>>0)+(t&UINT16)>>16)}})},{32:32}],263:[function(_dereq_,module,exports){var $export=_dereq_(32);$export($export.S,"Math",{isubh:function isubh(x0,x1,y0,y1){var $x0=x0>>>0,$x1=x1>>>0,$y0=y0>>>0;return $x1-(y1>>>0)-((~$x0&$y0|~($x0^$y0)&$x0-$y0>>>0)>>>31)|0}})},{32:32}],264:[function(_dereq_,module,exports){var $export=_dereq_(32);$export($export.S,"Math",{umulh:function umulh(u,v){var UINT16=65535,$u=+u,$v=+v,u0=$u&UINT16,v0=$v&UINT16,u1=$u>>>16,v1=$v>>>16,t=(u1*v0>>>0)+(u0*v0>>>16);return u1*v1+(t>>>16)+((u0*v1>>>0)+(t&UINT16)>>>16)}})},{32:32}],265:[function(_dereq_,module,exports){"use strict";var $export=_dereq_(32),toObject=_dereq_(109),aFunction=_dereq_(3),$defineProperty=_dereq_(67);_dereq_(28)&&$export($export.P+_dereq_(69),"Object",{__defineGetter__:function __defineGetter__(P,getter){$defineProperty.f(toObject(this),P,{get:aFunction(getter),enumerable:true,configurable:true})}})},{109:109,28:28,3:3,32:32,67:67,69:69}],266:[function(_dereq_,module,exports){"use strict";var $export=_dereq_(32),toObject=_dereq_(109),aFunction=_dereq_(3),$defineProperty=_dereq_(67);_dereq_(28)&&$export($export.P+_dereq_(69),"Object",{__defineSetter__:function __defineSetter__(P,setter){$defineProperty.f(toObject(this),P,{set:aFunction(setter),enumerable:true,configurable:true})}})},{109:109,28:28,3:3,32:32,67:67,69:69}],267:[function(_dereq_,module,exports){var $export=_dereq_(32),$entries=_dereq_(79)(true);$export($export.S,"Object",{entries:function entries(it){return $entries(it)}})},{32:32,79:79}],268:[function(_dereq_,module,exports){var $export=_dereq_(32),ownKeys=_dereq_(80),toIObject=_dereq_(107),gOPD=_dereq_(70),createProperty=_dereq_(24);$export($export.S,"Object",{getOwnPropertyDescriptors:function getOwnPropertyDescriptors(object){var O=toIObject(object),getDesc=gOPD.f,keys=ownKeys(O),result={},i=0,key;while(keys.length>i)createProperty(result,key=keys[i++],getDesc(O,key));return result}})},{107:107,24:24,32:32,70:70,80:80}],269:[function(_dereq_,module,exports){"use strict";var $export=_dereq_(32),toObject=_dereq_(109),toPrimitive=_dereq_(110),getPrototypeOf=_dereq_(74),getOwnPropertyDescriptor=_dereq_(70).f;_dereq_(28)&&$export($export.P+_dereq_(69),"Object",{__lookupGetter__:function __lookupGetter__(P){var O=toObject(this),K=toPrimitive(P,true),D;do{if(D=getOwnPropertyDescriptor(O,K))return D.get}while(O=getPrototypeOf(O))}})},{109:109,110:110,28:28,32:32,69:69,70:70,74:74}],270:[function(_dereq_,module,exports){"use strict";var $export=_dereq_(32),toObject=_dereq_(109),toPrimitive=_dereq_(110),getPrototypeOf=_dereq_(74),getOwnPropertyDescriptor=_dereq_(70).f;_dereq_(28)&&$export($export.P+_dereq_(69),"Object",{__lookupSetter__:function __lookupSetter__(P){var O=toObject(this),K=toPrimitive(P,true),D;do{if(D=getOwnPropertyDescriptor(O,K))return D.set}while(O=getPrototypeOf(O))}})},{109:109,110:110,28:28,32:32,69:69,70:70,74:74}],271:[function(_dereq_,module,exports){var $export=_dereq_(32),$values=_dereq_(79)(false);$export($export.S,"Object",{values:function values(it){return $values(it)}})},{32:32,79:79}],272:[function(_dereq_,module,exports){"use strict";var $export=_dereq_(32),global=_dereq_(38),core=_dereq_(23),microtask=_dereq_(64)(),OBSERVABLE=_dereq_(117)("observable"),aFunction=_dereq_(3),anObject=_dereq_(7),anInstance=_dereq_(6),redefineAll=_dereq_(86),hide=_dereq_(40),forOf=_dereq_(37),RETURN=forOf.RETURN;var getMethod=function(fn){return fn==null?undefined:aFunction(fn)};var cleanupSubscription=function(subscription){var cleanup=subscription._c;if(cleanup){subscription._c=undefined;cleanup()}};var subscriptionClosed=function(subscription){return subscription._o===undefined};var closeSubscription=function(subscription){if(!subscriptionClosed(subscription)){subscription._o=undefined;cleanupSubscription(subscription)}};var Subscription=function(observer,subscriber){anObject(observer);this._c=undefined;this._o=observer;observer=new SubscriptionObserver(this);try{var cleanup=subscriber(observer),subscription=cleanup;if(cleanup!=null){if(typeof cleanup.unsubscribe==="function")cleanup=function(){subscription.unsubscribe()};else aFunction(cleanup);this._c=cleanup}}catch(e){observer.error(e);return}if(subscriptionClosed(this))cleanupSubscription(this)};Subscription.prototype=redefineAll({},{unsubscribe:function unsubscribe(){closeSubscription(this)}});var SubscriptionObserver=function(subscription){this._s=subscription};SubscriptionObserver.prototype=redefineAll({},{next:function next(value){var subscription=this._s;if(!subscriptionClosed(subscription)){var observer=subscription._o;try{var m=getMethod(observer.next);if(m)return m.call(observer,value)}catch(e){try{closeSubscription(subscription)}finally{throw e}}}},error:function error(value){var subscription=this._s;if(subscriptionClosed(subscription))throw value;var observer=subscription._o;subscription._o=undefined;try{var m=getMethod(observer.error);if(!m)throw value;value=m.call(observer,value)}catch(e){try{cleanupSubscription(subscription)}finally{throw e}}cleanupSubscription(subscription);return value},complete:function complete(value){var subscription=this._s;if(!subscriptionClosed(subscription)){var observer=subscription._o;subscription._o=undefined;try{var m=getMethod(observer.complete);value=m?m.call(observer,value):undefined}catch(e){try{cleanupSubscription(subscription)}finally{throw e}}cleanupSubscription(subscription);return value}}});var $Observable=function Observable(subscriber){anInstance(this,$Observable,"Observable","_f")._f=aFunction(subscriber)};redefineAll($Observable.prototype,{subscribe:function subscribe(observer){return new Subscription(observer,this._f)},forEach:function forEach(fn){var that=this;return new(core.Promise||global.Promise)(function(resolve,reject){aFunction(fn);var subscription=that.subscribe({next:function(value){try{return fn(value)}catch(e){reject(e);subscription.unsubscribe()}},error:reject,complete:resolve})})}});redefineAll($Observable,{from:function from(x){var C=typeof this==="function"?this:$Observable;var method=getMethod(anObject(x)[OBSERVABLE]);if(method){var observable=anObject(method.call(x));return observable.constructor===C?observable:new C(function(observer){return observable.subscribe(observer)})}return new C(function(observer){var done=false;microtask(function(){if(!done){try{if(forOf(x,false,function(it){observer.next(it);if(done)return RETURN})===RETURN)return}catch(e){if(done)throw e;observer.error(e);return}observer.complete()}});return function(){done=true}})},of:function of(){for(var i=0,l=arguments.length,items=Array(l);i1?arguments[1]:undefined,false)}})},{100:100,32:32}],286:[function(_dereq_,module,exports){"use strict";var $export=_dereq_(32),$pad=_dereq_(100);$export($export.P,"String",{padStart:function padStart(maxLength){return $pad(this,maxLength,arguments.length>1?arguments[1]:undefined,true)}})},{100:100,32:32}],287:[function(_dereq_,module,exports){"use strict";_dereq_(102)("trimLeft",function($trim){return function trimLeft(){return $trim(this,1)}},"trimStart")},{102:102}],288:[function(_dereq_,module,exports){"use strict";_dereq_(102)("trimRight",function($trim){return function trimRight(){return $trim(this,2)}},"trimEnd")},{102:102}],289:[function(_dereq_,module,exports){_dereq_(115)("asyncIterator")},{115:115}],290:[function(_dereq_,module,exports){_dereq_(115)("observable")},{115:115}],291:[function(_dereq_,module,exports){var $export=_dereq_(32);$export($export.S,"System",{global:_dereq_(38)})},{32:32,38:38}],292:[function(_dereq_,module,exports){var $iterators=_dereq_(130),redefine=_dereq_(87),global=_dereq_(38),hide=_dereq_(40),Iterators=_dereq_(56),wks=_dereq_(117),ITERATOR=wks("iterator"),TO_STRING_TAG=wks("toStringTag"),ArrayValues=Iterators.Array;for(var collections=["NodeList","DOMTokenList","MediaList","StyleSheetList","CSSRuleList"],i=0;i<5;i++){var NAME=collections[i],Collection=global[NAME],proto=Collection&&Collection.prototype,key;if(proto){if(!proto[ITERATOR])hide(proto,ITERATOR,ArrayValues);if(!proto[TO_STRING_TAG])hide(proto,TO_STRING_TAG,NAME);Iterators[NAME]=ArrayValues;for(key in $iterators)if(!proto[key])redefine(proto,key,$iterators[key],true)}}},{117:117,130:130,38:38,40:40,56:56,87:87}],293:[function(_dereq_,module,exports){var $export=_dereq_(32),$task=_dereq_(104);$export($export.G+$export.B,{setImmediate:$task.set,clearImmediate:$task.clear})},{104:104,32:32}],294:[function(_dereq_,module,exports){var global=_dereq_(38),$export=_dereq_(32),invoke=_dereq_(44),partial=_dereq_(83),navigator=global.navigator,MSIE=!!navigator&&/MSIE .\./.test(navigator.userAgent);var wrap=function(set){return MSIE?function(fn,time){return set(invoke(partial,[].slice.call(arguments,2),typeof fn=="function"?fn:Function(fn)),time)}:set};$export($export.G+$export.B+$export.F*MSIE,{setTimeout:wrap(global.setTimeout),setInterval:wrap(global.setInterval)})},{32:32,38:38,44:44,83:83}],295:[function(_dereq_,module,exports){_dereq_(243);_dereq_(180);_dereq_(182);_dereq_(181);_dereq_(184);_dereq_(186);_dereq_(191);_dereq_(185);_dereq_(183);_dereq_(193);_dereq_(192);_dereq_(188);_dereq_(189);_dereq_(187);_dereq_(179);_dereq_(190);_dereq_(194);_dereq_(195);_dereq_(146);_dereq_(148);_dereq_(147);_dereq_(197);_dereq_(196);_dereq_(167);_dereq_(177);_dereq_(178);_dereq_(168);_dereq_(169);_dereq_(170);_dereq_(171);_dereq_(172);_dereq_(173);_dereq_(174);_dereq_(175);_dereq_(176);_dereq_(150);_dereq_(151);_dereq_(152);_dereq_(153);_dereq_(154);_dereq_(155);_dereq_(156);_dereq_(157);_dereq_(158);_dereq_(159);_dereq_(160);_dereq_(161);_dereq_(162);_dereq_(163);_dereq_(164);_dereq_(165);_dereq_(166);_dereq_(230);_dereq_(235);_dereq_(242);_dereq_(233);_dereq_(225);_dereq_(226);_dereq_(231);_dereq_(236);_dereq_(238);_dereq_(221);_dereq_(222);_dereq_(223);_dereq_(224);_dereq_(227);_dereq_(228);_dereq_(229);_dereq_(232);_dereq_(234);_dereq_(237);_dereq_(239);_dereq_(240);_dereq_(241);_dereq_(141);_dereq_(143);_dereq_(142);_dereq_(145);_dereq_(144);_dereq_(129);_dereq_(127);_dereq_(134);_dereq_(131);_dereq_(137);_dereq_(139);_dereq_(126);_dereq_(133);_dereq_(123);_dereq_(138);_dereq_(121);_dereq_(136);_dereq_(135);_dereq_(128);_dereq_(132);_dereq_(120);_dereq_(122);_dereq_(125);_dereq_(124);_dereq_(140);_dereq_(130);_dereq_(213);_dereq_(219);_dereq_(214);_dereq_(215);_dereq_(216);_dereq_(217);_dereq_(218);_dereq_(198);_dereq_(149);_dereq_(220);_dereq_(255);_dereq_(256);_dereq_(244);_dereq_(245);_dereq_(250);_dereq_(253);_dereq_(254);_dereq_(248);_dereq_(251);_dereq_(249);_dereq_(252);_dereq_(246);_dereq_(247);_dereq_(199);_dereq_(200);_dereq_(201);_dereq_(202);_dereq_(203);_dereq_(206);_dereq_(204);_dereq_(205);_dereq_(207);_dereq_(208);_dereq_(209);_dereq_(210);_dereq_(212);_dereq_(211);_dereq_(257);_dereq_(283);_dereq_(286);_dereq_(285);_dereq_(287);_dereq_(288);_dereq_(284);_dereq_(289);_dereq_(290);_dereq_(268);_dereq_(271);_dereq_(267);_dereq_(265);_dereq_(266);_dereq_(269);_dereq_(270);_dereq_(260);_dereq_(282);_dereq_(291);_dereq_(259);_dereq_(261);_dereq_(263);_dereq_(262);_dereq_(264);_dereq_(273);_dereq_(274);_dereq_(276);_dereq_(275);_dereq_(278);_dereq_(277);_dereq_(279);_dereq_(280);_dereq_(281);_dereq_(258);_dereq_(272);_dereq_(294);_dereq_(293);_dereq_(292);module.exports=_dereq_(23)},{120:120,121:121,122:122,123:123,124:124,125:125,126:126,127:127,128:128,129:129,130:130,131:131,132:132,133:133,134:134,135:135,136:136,137:137,138:138,139:139,140:140,141:141,142:142,143:143,144:144,145:145,146:146,147:147,148:148,149:149,150:150,151:151,152:152,153:153,154:154,155:155,156:156,157:157,158:158,159:159,160:160,161:161,162:162,163:163,164:164,165:165,166:166,167:167,168:168,169:169,170:170,171:171,172:172,173:173,174:174,175:175,176:176,177:177,178:178,179:179,180:180,181:181,182:182,183:183,184:184,185:185,186:186,187:187,188:188,189:189,190:190,191:191,192:192,193:193,194:194,195:195,196:196,197:197,198:198,199:199,200:200,201:201,202:202,203:203,204:204,205:205,206:206,207:207,208:208,209:209,210:210,211:211,212:212,213:213,214:214,215:215,216:216,217:217,218:218,219:219,220:220,221:221,222:222,223:223,224:224,225:225,226:226,227:227,228:228,229:229,23:23,230:230,231:231,232:232,233:233,234:234,235:235,236:236,237:237,238:238,239:239,240:240,241:241,242:242,243:243,244:244,245:245,246:246,247:247,248:248,249:249,250:250,251:251,252:252,253:253,254:254,255:255,256:256,257:257,258:258,259:259,260:260,261:261,262:262,263:263,264:264,265:265,266:266,267:267,268:268,269:269,270:270,271:271,272:272,273:273,274:274,275:275,276:276,277:277,278:278,279:279,280:280,281:281,282:282,283:283,284:284,285:285,286:286,287:287,288:288,289:289,290:290,291:291,292:292,293:293,294:294}],296:[function(_dereq_,module,exports){(function(global){!function(global){"use strict";var Op=Object.prototype;var hasOwn=Op.hasOwnProperty;var undefined;var $Symbol=typeof Symbol==="function"?Symbol:{};var iteratorSymbol=$Symbol.iterator||"@@iterator";var toStringTagSymbol=$Symbol.toStringTag||"@@toStringTag";var inModule=typeof module==="object";var runtime=global.regeneratorRuntime;if(runtime){if(inModule){module.exports=runtime}return}runtime=global.regeneratorRuntime=inModule?module.exports:{};function wrap(innerFn,outerFn,self,tryLocsList){var protoGenerator=outerFn&&outerFn.prototype instanceof Generator?outerFn:Generator;var generator=Object.create(protoGenerator.prototype);var context=new Context(tryLocsList||[]);generator._invoke=makeInvokeMethod(innerFn,self,context);return generator}runtime.wrap=wrap;function tryCatch(fn,obj,arg){try{return{type:"normal",arg:fn.call(obj,arg)}}catch(err){return{type:"throw",arg:err}}}var GenStateSuspendedStart="suspendedStart";var GenStateSuspendedYield="suspendedYield";var GenStateExecuting="executing";var GenStateCompleted="completed";var ContinueSentinel={};function Generator(){}function GeneratorFunction(){}function GeneratorFunctionPrototype(){}var IteratorPrototype={};IteratorPrototype[iteratorSymbol]=function(){return this};var getProto=Object.getPrototypeOf;var NativeIteratorPrototype=getProto&&getProto(getProto(values([])));if(NativeIteratorPrototype&&NativeIteratorPrototype!==Op&&hasOwn.call(NativeIteratorPrototype,iteratorSymbol)){IteratorPrototype=NativeIteratorPrototype}var Gp=GeneratorFunctionPrototype.prototype=Generator.prototype=Object.create(IteratorPrototype);GeneratorFunction.prototype=Gp.constructor=GeneratorFunctionPrototype;GeneratorFunctionPrototype.constructor=GeneratorFunction;GeneratorFunctionPrototype[toStringTagSymbol]=GeneratorFunction.displayName="GeneratorFunction";function defineIteratorMethods(prototype){["next","throw","return"].forEach(function(method){prototype[method]=function(arg){return this._invoke(method,arg)}})}runtime.isGeneratorFunction=function(genFun){var ctor=typeof genFun==="function"&&genFun.constructor;return ctor?ctor===GeneratorFunction||(ctor.displayName||ctor.name)==="GeneratorFunction":false};runtime.mark=function(genFun){if(Object.setPrototypeOf){Object.setPrototypeOf(genFun,GeneratorFunctionPrototype)}else{genFun.__proto__=GeneratorFunctionPrototype;if(!(toStringTagSymbol in genFun)){genFun[toStringTagSymbol]="GeneratorFunction"}}genFun.prototype=Object.create(Gp);return genFun};runtime.awrap=function(arg){return{__await:arg}};function AsyncIterator(generator){function invoke(method,arg,resolve,reject){var record=tryCatch(generator[method],generator,arg);if(record.type==="throw"){reject(record.arg)}else{var result=record.arg;var value=result.value;if(value&&typeof value==="object"&&hasOwn.call(value,"__await")){return Promise.resolve(value.__await).then(function(value){invoke("next",value,resolve,reject)},function(err){invoke("throw",err,resolve,reject)})}return Promise.resolve(value).then(function(unwrapped){result.value=unwrapped;resolve(result)},reject)}}if(typeof process==="object"&&process.domain){invoke=process.domain.bind(invoke)}var previousPromise;function enqueue(method,arg){function callInvokeWithMethodAndArg(){return new Promise(function(resolve,reject){invoke(method,arg,resolve,reject)})}return previousPromise=previousPromise?previousPromise.then(callInvokeWithMethodAndArg,callInvokeWithMethodAndArg):callInvokeWithMethodAndArg()}this._invoke=enqueue}defineIteratorMethods(AsyncIterator.prototype);runtime.AsyncIterator=AsyncIterator;runtime.async=function(innerFn,outerFn,self,tryLocsList){var iter=new AsyncIterator(wrap(innerFn,outerFn,self,tryLocsList));return runtime.isGeneratorFunction(outerFn)?iter:iter.next().then(function(result){return result.done?result.value:iter.next()})};function makeInvokeMethod(innerFn,self,context){var state=GenStateSuspendedStart;return function invoke(method,arg){if(state===GenStateExecuting){throw new Error("Generator is already running")}if(state===GenStateCompleted){if(method==="throw"){throw arg}return doneResult()}while(true){var delegate=context.delegate;if(delegate){if(method==="return"||method==="throw"&&delegate.iterator[method]===undefined){context.delegate=null;var returnMethod=delegate.iterator["return"];if(returnMethod){var record=tryCatch(returnMethod,delegate.iterator,arg);if(record.type==="throw"){method="throw";arg=record.arg;continue}}if(method==="return"){continue}}var record=tryCatch(delegate.iterator[method],delegate.iterator,arg);if(record.type==="throw"){context.delegate=null;method="throw";arg=record.arg;continue}method="next";arg=undefined;var info=record.arg;if(info.done){context[delegate.resultName]=info.value;context.next=delegate.nextLoc}else{state=GenStateSuspendedYield;return info}context.delegate=null}if(method==="next"){context.sent=context._sent=arg}else if(method==="throw"){if(state===GenStateSuspendedStart){state=GenStateCompleted;throw arg}if(context.dispatchException(arg)){method="next";arg=undefined}}else if(method==="return"){context.abrupt("return",arg)}state=GenStateExecuting;var record=tryCatch(innerFn,self,context);if(record.type==="normal"){state=context.done?GenStateCompleted:GenStateSuspendedYield;var info={value:record.arg,done:context.done};if(record.arg===ContinueSentinel){if(context.delegate&&method==="next"){arg=undefined}}else{return info}}else if(record.type==="throw"){state=GenStateCompleted;method="throw";arg=record.arg}}}}defineIteratorMethods(Gp);Gp[toStringTagSymbol]="Generator";Gp.toString=function(){return"[object Generator]"};function pushTryEntry(locs){var entry={tryLoc:locs[0]};if(1 in locs){entry.catchLoc=locs[1]}if(2 in locs){entry.finallyLoc=locs[2];entry.afterLoc=locs[3]}this.tryEntries.push(entry)}function resetTryEntry(entry){var record=entry.completion||{};record.type="normal";delete record.arg;entry.completion=record}function Context(tryLocsList){this.tryEntries=[{tryLoc:"root"}];tryLocsList.forEach(pushTryEntry,this);this.reset(true)}runtime.keys=function(object){var keys=[];for(var key in object){keys.push(key)}keys.reverse();return function next(){while(keys.length){var key=keys.pop();if(key in object){next.value=key;next.done=false;return next}}next.done=true;return next}};function values(iterable){if(iterable){var iteratorMethod=iterable[iteratorSymbol];if(iteratorMethod){return iteratorMethod.call(iterable)}if(typeof iterable.next==="function"){return iterable}if(!isNaN(iterable.length)){var i=-1,next=function next(){while(++i=0;--i){var entry=this.tryEntries[i];var record=entry.completion;if(entry.tryLoc==="root"){return handle("end")}if(entry.tryLoc<=this.prev){var hasCatch=hasOwn.call(entry,"catchLoc");var hasFinally=hasOwn.call(entry,"finallyLoc");if(hasCatch&&hasFinally){if(this.prev=0;--i){var entry=this.tryEntries[i];if(entry.tryLoc<=this.prev&&hasOwn.call(entry,"finallyLoc")&&this.prev=0;--i){var entry=this.tryEntries[i];if(entry.finallyLoc===finallyLoc){this.complete(entry.completion,entry.afterLoc);resetTryEntry(entry);return ContinueSentinel}}},catch:function(tryLoc){for(var i=this.tryEntries.length-1;i>=0;--i){var entry=this.tryEntries[i];if(entry.tryLoc===tryLoc){var record=entry.completion;if(record.type==="throw"){var thrown=record.arg;resetTryEntry(entry)}return thrown}}throw new Error("illegal catch attempt")},delegateYield:function(iterable,resultName,nextLoc){this.delegate={iterator:values(iterable),resultName:resultName,nextLoc:nextLoc};return ContinueSentinel}}}(typeof global==="object"?global:typeof window==="object"?window:typeof self==="object"?self:this)}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{}]},{},[1]);require=function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o...",true,true);tt.jsxName=new acorn.TokenType("jsxName");tt.jsxText=new acorn.TokenType("jsxText",{beforeExpr:true});tt.jsxTagStart=new acorn.TokenType("jsxTagStart");tt.jsxTagEnd=new acorn.TokenType("jsxTagEnd");tt.jsxTagStart.updateContext=function(){this.context.push(tc.j_expr);this.context.push(tc.j_oTag);this.exprAllowed=false};tt.jsxTagEnd.updateContext=function(prevType){var out=this.context.pop();if(out===tc.j_oTag&&prevType===tt.slash||out===tc.j_cTag){this.context.pop();this.exprAllowed=this.curContext()===tc.j_expr}else{this.exprAllowed=true}};var pp=acorn.Parser.prototype;pp.jsx_readToken=function(){var out="",chunkStart=this.pos;for(;;){if(this.pos>=this.input.length)this.raise(this.start,"Unterminated JSX contents");var ch=this.input.charCodeAt(this.pos);switch(ch){case 60:case 123:if(this.pos===this.start){if(ch===60&&this.exprAllowed){++this.pos;return this.finishToken(tt.jsxTagStart)}return this.getTokenFromCode(ch)}out+=this.input.slice(chunkStart,this.pos);return this.finishToken(tt.jsxText,out);case 38:out+=this.input.slice(chunkStart,this.pos);out+=this.jsx_readEntity();chunkStart=this.pos;break;default:if(acorn.isNewLine(ch)){out+=this.input.slice(chunkStart,this.pos);out+=this.jsx_readNewLine(true);chunkStart=this.pos}else{++this.pos}}}};pp.jsx_readNewLine=function(normalizeCRLF){var ch=this.input.charCodeAt(this.pos);var out;++this.pos;if(ch===13&&this.input.charCodeAt(this.pos)===10){++this.pos;out=normalizeCRLF?"\n":"\r\n"}else{out=String.fromCharCode(ch)}if(this.options.locations){++this.curLine;this.lineStart=this.pos}return out};pp.jsx_readString=function(quote){var out="",chunkStart=++this.pos;for(;;){if(this.pos>=this.input.length)this.raise(this.start,"Unterminated string constant");var ch=this.input.charCodeAt(this.pos);if(ch===quote)break;if(ch===38){out+=this.input.slice(chunkStart,this.pos);out+=this.jsx_readEntity();chunkStart=this.pos}else if(acorn.isNewLine(ch)){out+=this.input.slice(chunkStart,this.pos);out+=this.jsx_readNewLine(false);chunkStart=this.pos}else{++this.pos}}out+=this.input.slice(chunkStart,this.pos++);return this.finishToken(tt.string,out)};pp.jsx_readEntity=function(){var str="",count=0,entity;var ch=this.input[this.pos];if(ch!=="&")this.raise(this.pos,"Entity must start with an ampersand");var startPos=++this.pos;while(this.pos")}}node.openingElement=openingElement;node.closingElement=closingElement;node.children=children;if(this.type===tt.relational&&this.value==="<"){this.raise(this.start,"Adjacent JSX elements must be wrapped in an enclosing tag")}return this.finishNode(node,"JSXElement")};pp.jsx_parseElement=function(){var startPos=this.start,startLoc=this.startLoc;this.next();return this.jsx_parseElementAt(startPos,startLoc)};acorn.plugins.jsx=function(instance,opts){if(!opts){return}if(typeof opts!=="object"){opts={}}instance.options.plugins.jsx={allowNamespaces:opts.allowNamespaces!==false,allowNamespacedObjects:!!opts.allowNamespacedObjects};instance.extend("parseExprAtom",function(inner){return function(refShortHandDefaultPos){if(this.type===tt.jsxText)return this.parseLiteral(this.value);else if(this.type===tt.jsxTagStart)return this.jsx_parseElement();else return inner.call(this,refShortHandDefaultPos)}});instance.extend("readToken",function(inner){return function(code){var context=this.curContext();if(context===tc.j_expr)return this.jsx_readToken();if(context===tc.j_oTag||context===tc.j_cTag){if(acorn.isIdentifierStart(code))return this.jsx_readWord();if(code==62){++this.pos;return this.finishToken(tt.jsxTagEnd)}if((code===34||code===39)&&context==tc.j_oTag)return this.jsx_readString(code)}if(code===60&&this.exprAllowed){++this.pos;return this.finishToken(tt.jsxTagStart)}return inner.call(this,code)}});instance.extend("updateContext",function(inner){return function(prevType){if(this.type==tt.braceL){var curContext=this.curContext();if(curContext==tc.j_oTag)this.context.push(tc.b_expr);else if(curContext==tc.j_expr)this.context.push(tc.b_tmpl);else inner.call(this,prevType);this.exprAllowed=true}else if(this.type===tt.slash&&prevType===tt.jsxTagStart){this.context.length-=2;this.context.push(tc.j_cTag);this.exprAllowed=false}else{return inner.call(this,prevType)}}})};return acorn}},{"./xhtml":2}],2:[function(require,module,exports){module.exports={quot:'"',amp:"&",apos:"'",lt:"<",gt:">",nbsp:" ",iexcl:"¡",cent:"¢",pound:"£",curren:"¤",yen:"¥",brvbar:"¦",sect:"§",uml:"¨",copy:"©",ordf:"ª",laquo:"«",not:"¬",shy:"­",reg:"®",macr:"¯",deg:"°",plusmn:"±",sup2:"²",sup3:"³",acute:"´",micro:"µ",para:"¶",middot:"·",cedil:"¸",sup1:"¹",ordm:"º",raquo:"»",frac14:"¼",frac12:"½",frac34:"¾",iquest:"¿",Agrave:"À",Aacute:"Á",Acirc:"Â",Atilde:"Ã",Auml:"Ä",Aring:"Å",AElig:"Æ",Ccedil:"Ç",Egrave:"È",Eacute:"É",Ecirc:"Ê",Euml:"Ë",Igrave:"Ì",Iacute:"Í",Icirc:"Î",Iuml:"Ï",ETH:"Ð",Ntilde:"Ñ",Ograve:"Ò",Oacute:"Ó",Ocirc:"Ô",Otilde:"Õ",Ouml:"Ö",times:"×",Oslash:"Ø",Ugrave:"Ù",Uacute:"Ú",Ucirc:"Û",Uuml:"Ü",Yacute:"Ý",THORN:"Þ",szlig:"ß",agrave:"à",aacute:"á",acirc:"â",atilde:"ã",auml:"ä",aring:"å",aelig:"æ",ccedil:"ç",egrave:"è",eacute:"é",ecirc:"ê",euml:"ë",igrave:"ì",iacute:"í",icirc:"î",iuml:"ï",eth:"ð",ntilde:"ñ",ograve:"ò",oacute:"ó",ocirc:"ô",otilde:"õ",ouml:"ö",divide:"÷",oslash:"ø",ugrave:"ù",uacute:"ú",ucirc:"û",uuml:"ü",yacute:"ý",thorn:"þ",yuml:"ÿ",OElig:"Œ",oelig:"œ",Scaron:"Š",scaron:"š",Yuml:"Ÿ",fnof:"ƒ",circ:"ˆ",tilde:"˜",Alpha:"Α",Beta:"Β",Gamma:"Γ",Delta:"Δ",Epsilon:"Ε",Zeta:"Ζ",Eta:"Η",Theta:"Θ",Iota:"Ι",Kappa:"Κ",Lambda:"Λ",Mu:"Μ",Nu:"Ν",Xi:"Ξ",Omicron:"Ο",Pi:"Π",Rho:"Ρ",Sigma:"Σ",Tau:"Τ",Upsilon:"Υ",Phi:"Φ",Chi:"Χ",Psi:"Ψ",Omega:"Ω",alpha:"α",beta:"β",gamma:"γ",delta:"δ",epsilon:"ε",zeta:"ζ",eta:"η",theta:"θ",iota:"ι",kappa:"κ",lambda:"λ",mu:"μ",nu:"ν",xi:"ξ",omicron:"ο",pi:"π",rho:"ρ",sigmaf:"ς",sigma:"σ",tau:"τ",upsilon:"υ",phi:"φ",chi:"χ",psi:"ψ",omega:"ω",thetasym:"ϑ",upsih:"ϒ",piv:"ϖ",ensp:" ",emsp:" ",thinsp:" ",zwnj:"‌",zwj:"‍",lrm:"‎",rlm:"‏",ndash:"–",mdash:"—",lsquo:"‘",rsquo:"’",sbquo:"‚",ldquo:"“",rdquo:"”",bdquo:"„",dagger:"†",Dagger:"‡",bull:"•",hellip:"…",permil:"‰",prime:"′",Prime:"″",lsaquo:"‹",rsaquo:"›",oline:"‾",frasl:"⁄",euro:"€",image:"ℑ",weierp:"℘",real:"ℜ",trade:"™",alefsym:"ℵ",larr:"←",uarr:"↑",rarr:"→",darr:"↓",harr:"↔",crarr:"↵",lArr:"⇐",uArr:"⇑",rArr:"⇒",dArr:"⇓",hArr:"⇔",forall:"∀",part:"∂",exist:"∃",empty:"∅",nabla:"∇",isin:"∈",notin:"∉",ni:"∋",prod:"∏",sum:"∑",minus:"−",lowast:"∗",radic:"√",prop:"∝",infin:"∞",ang:"∠",and:"∧",or:"∨",cap:"∩",cup:"∪",int:"∫",there4:"∴",sim:"∼",cong:"≅",asymp:"≈",ne:"≠",equiv:"≡",le:"≤",ge:"≥",sub:"⊂",sup:"⊃",nsub:"⊄",sube:"⊆",supe:"⊇",oplus:"⊕",otimes:"⊗",perp:"⊥",sdot:"⋅",lceil:"⌈",rceil:"⌉",lfloor:"⌊",rfloor:"⌋",lang:"〈",rang:"〉",loz:"◊",spades:"♠",clubs:"♣",hearts:"♥",diams:"♦"}},{}],3:[function(require,module,exports){(function(global,factory){typeof exports==="object"&&typeof module!=="undefined"?factory(exports):typeof define==="function"&&define.amd?define(["exports"],factory):factory(global.acorn=global.acorn||{})})(this,function(exports){"use strict";var reservedWords={3:"abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile",5:"class enum extends super const export import",6:"enum",strict:"implements interface let package private protected public static yield",strictBind:"eval arguments"};var ecma5AndLessKeywords="break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this";var keywords={5:ecma5AndLessKeywords,6:ecma5AndLessKeywords+" const class extends export import super"};var nonASCIIidentifierStartChars="ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆՙա-ևא-תװ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࢠ-ࢴࢶ-ࢽऄ-हऽॐक़-ॡॱ-ঀঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡૹଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-హఽౘ-ౚౠౡಀಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೞೠೡೱೲഅ-ഌഎ-ഐഒ-ഺഽൎൔ-ൖൟ-ൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏽᏸ-ᏽᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛸᜀ-ᜌᜎ-ᜑᜠ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡷᢀ-ᢨᢪᢰ-ᣵᤀ-ᤞᥐ-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭋᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᲀ-ᲈᳩ-ᳬᳮ-ᳱᳵᳶᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕ℘-ℝℤΩℨK-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞ々-〇〡-〩〱-〵〸-〼ぁ-ゖ゛-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿕ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚝꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꞮꞰ-ꞷꟷ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꣽꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꧠ-ꧤꧦ-ꧯꧺ-ꧾꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭥꭰ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ";var nonASCIIidentifierChars="‌‍·̀-ͯ·҃-֑҇-ׇֽֿׁׂׅׄؐ-ًؚ-٩ٰۖ-ۜ۟-۪ۤۧۨ-ۭ۰-۹ܑܰ-݊ަ-ް߀-߉߫-߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛ࣔ-ࣣ࣡-ःऺ-़ा-ॏ॑-ॗॢॣ०-९ঁ-ঃ়া-ৄেৈো-্ৗৢৣ০-৯ਁ-ਃ਼ਾ-ੂੇੈੋ-੍ੑ੦-ੱੵઁ-ઃ઼ા-ૅે-ૉો-્ૢૣ૦-૯ଁ-ଃ଼ା-ୄେୈୋ-୍ୖୗୢୣ୦-୯ஂா-ூெ-ைொ-்ௗ௦-௯ఀ-ఃా-ౄె-ైొ-్ౕౖౢౣ౦-౯ಁ-ಃ಼ಾ-ೄೆ-ೈೊ-್ೕೖೢೣ೦-೯ഁ-ഃാ-ൄെ-ൈൊ-്ൗൢൣ൦-൯ංඃ්ා-ුූෘ-ෟ෦-෯ෲෳัิ-ฺ็-๎๐-๙ັິ-ູົຼ່-ໍ໐-໙༘༙༠-༩༹༵༷༾༿ཱ-྄྆྇ྍ-ྗྙ-ྼ࿆ါ-ှ၀-၉ၖ-ၙၞ-ၠၢ-ၤၧ-ၭၱ-ၴႂ-ႍႏ-ႝ፝-፟፩-፱ᜒ-᜔ᜲ-᜴ᝒᝓᝲᝳ឴-៓៝០-៩᠋-᠍᠐-᠙ᢩᤠ-ᤫᤰ-᤻᥆-᥏᧐-᧚ᨗ-ᨛᩕ-ᩞ᩠-᩿᩼-᪉᪐-᪙᪰-᪽ᬀ-ᬄ᬴-᭄᭐-᭙᭫-᭳ᮀ-ᮂᮡ-ᮭ᮰-᮹᯦-᯳ᰤ-᰷᱀-᱉᱐-᱙᳐-᳔᳒-᳨᳭ᳲ-᳴᳸᳹᷀-᷵᷻-᷿‿⁀⁔⃐-⃥⃜⃡-⃰⳯-⵿⳱ⷠ-〪ⷿ-゙゚〯꘠-꘩꙯ꙴ-꙽ꚞꚟ꛰꛱ꠂ꠆ꠋꠣ-ꠧꢀꢁꢴ-ꣅ꣐-꣙꣠-꣱꤀-꤉ꤦ-꤭ꥇ-꥓ꦀ-ꦃ꦳-꧀꧐-꧙ꧥ꧰-꧹ꨩ-ꨶꩃꩌꩍ꩐-꩙ꩻ-ꩽꪰꪲ-ꪴꪷꪸꪾ꪿꫁ꫫ-ꫯꫵ꫶ꯣ-ꯪ꯬꯭꯰-꯹ﬞ︀-️︠-︯︳︴﹍-﹏0-9_";var nonASCIIidentifierStart=new RegExp("["+nonASCIIidentifierStartChars+"]");var nonASCIIidentifier=new RegExp("["+nonASCIIidentifierStartChars+nonASCIIidentifierChars+"]");nonASCIIidentifierStartChars=nonASCIIidentifierChars=null;var astralIdentifierStartCodes=[0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,17,26,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,157,310,10,21,11,7,153,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,26,45,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,785,52,76,44,33,24,27,35,42,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,54,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,86,25,391,63,32,0,449,56,264,8,2,36,18,0,50,29,881,921,103,110,18,195,2749,1070,4050,582,8634,568,8,30,114,29,19,47,17,3,32,20,6,18,881,68,12,0,67,12,65,0,32,6124,20,754,9486,1,3071,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,4149,196,60,67,1213,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42710,42,4148,12,221,3,5761,10591,541];var astralIdentifierCodes=[509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,1306,2,54,14,32,9,16,3,46,10,54,9,7,2,37,13,2,9,52,0,13,2,49,13,10,2,4,9,83,11,7,0,161,11,6,9,7,3,57,0,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,87,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,423,9,838,7,2,7,17,9,57,21,2,13,19882,9,135,4,60,6,26,9,1016,45,17,3,19723,1,5319,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,2214,6,110,6,6,9,792487,239];function isInAstralSet(code,set){var pos=65536;for(var i=0;icode)return false;pos+=set[i+1];if(pos>=code)return true}}function isIdentifierStart(code,astral){if(code<65)return code===36;if(code<91)return true;if(code<97)return code===95;if(code<123)return true;if(code<=65535)return code>=170&&nonASCIIidentifierStart.test(String.fromCharCode(code));if(astral===false)return false;return isInAstralSet(code,astralIdentifierStartCodes)}function isIdentifierChar(code,astral){if(code<48)return code===36;if(code<58)return true;if(code<65)return false;if(code<91)return true;if(code<97)return code===95;if(code<123)return true;if(code<=65535)return code>=170&&nonASCIIidentifier.test(String.fromCharCode(code));if(astral===false)return false;return isInAstralSet(code,astralIdentifierStartCodes)||isInAstralSet(code,astralIdentifierCodes)}var TokenType=function TokenType(label,conf){if(conf===void 0)conf={};this.label=label;this.keyword=conf.keyword;this.beforeExpr=!!conf.beforeExpr;this.startsExpr=!!conf.startsExpr;this.isLoop=!!conf.isLoop;this.isAssign=!!conf.isAssign;this.prefix=!!conf.prefix;this.postfix=!!conf.postfix;this.binop=conf.binop||null;this.updateContext=null};function binop(name,prec){return new TokenType(name,{beforeExpr:true,binop:prec})}var beforeExpr={beforeExpr:true};var startsExpr={startsExpr:true};var keywordTypes={};function kw(name,options){if(options===void 0)options={};options.keyword=name;return keywordTypes[name]=new TokenType(name,options)}var tt={num:new TokenType("num",startsExpr),regexp:new TokenType("regexp",startsExpr),string:new TokenType("string",startsExpr),name:new TokenType("name",startsExpr),eof:new TokenType("eof"),bracketL:new TokenType("[",{beforeExpr:true,startsExpr:true}),bracketR:new TokenType("]"),braceL:new TokenType("{",{beforeExpr:true,startsExpr:true}),braceR:new TokenType("}"),parenL:new TokenType("(",{beforeExpr:true,startsExpr:true}),parenR:new TokenType(")"),comma:new TokenType(",",beforeExpr),semi:new TokenType(";",beforeExpr),colon:new TokenType(":",beforeExpr),dot:new TokenType("."),question:new TokenType("?",beforeExpr),arrow:new TokenType("=>",beforeExpr),template:new TokenType("template"),ellipsis:new TokenType("...",beforeExpr),backQuote:new TokenType("`",startsExpr),dollarBraceL:new TokenType("${",{beforeExpr:true,startsExpr:true}),eq:new TokenType("=",{beforeExpr:true,isAssign:true}),assign:new TokenType("_=",{beforeExpr:true,isAssign:true}),incDec:new TokenType("++/--",{prefix:true,postfix:true,startsExpr:true}),prefix:new TokenType("prefix",{beforeExpr:true,prefix:true,startsExpr:true}),logicalOR:binop("||",1),logicalAND:binop("&&",2),bitwiseOR:binop("|",3),bitwiseXOR:binop("^",4),bitwiseAND:binop("&",5),equality:binop("==/!=",6),relational:binop("",7),bitShift:binop("<>",8),plusMin:new TokenType("+/-",{beforeExpr:true,binop:9,prefix:true,startsExpr:true}),modulo:binop("%",10),star:binop("*",10),slash:binop("/",10),starstar:new TokenType("**",{beforeExpr:true}),_break:kw("break"),_case:kw("case",beforeExpr),_catch:kw("catch"),_continue:kw("continue"),_debugger:kw("debugger"),_default:kw("default",beforeExpr),_do:kw("do",{isLoop:true,beforeExpr:true}),_else:kw("else",beforeExpr),_finally:kw("finally"),_for:kw("for",{isLoop:true}),_function:kw("function",startsExpr),_if:kw("if"),_return:kw("return",beforeExpr),_switch:kw("switch"),_throw:kw("throw",beforeExpr),_try:kw("try"),_var:kw("var"),_const:kw("const"),_while:kw("while",{isLoop:true}),_with:kw("with"),_new:kw("new",{beforeExpr:true,startsExpr:true}),_this:kw("this",startsExpr),_super:kw("super",startsExpr),_class:kw("class"),_extends:kw("extends",beforeExpr),_export:kw("export"),_import:kw("import"),_null:kw("null",startsExpr),_true:kw("true",startsExpr),_false:kw("false",startsExpr),_in:kw("in",{beforeExpr:true,binop:7}),_instanceof:kw("instanceof",{beforeExpr:true,binop:7}),_typeof:kw("typeof",{beforeExpr:true,prefix:true,startsExpr:true}),_void:kw("void",{beforeExpr:true,prefix:true,startsExpr:true}),_delete:kw("delete",{beforeExpr:true,prefix:true,startsExpr:true})};var lineBreak=/\r\n?|\n|\u2028|\u2029/;var lineBreakG=new RegExp(lineBreak.source,"g");function isNewLine(code){return code===10||code===13||code===8232||code===8233}var nonASCIIwhitespace=/[\u1680\u180e\u2000-\u200a\u202f\u205f\u3000\ufeff]/;var skipWhiteSpace=/(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g;var ref=Object.prototype;var hasOwnProperty=ref.hasOwnProperty;var toString=ref.toString;function has(obj,propName){return hasOwnProperty.call(obj,propName)}var isArray=Array.isArray||function(obj){return toString.call(obj)==="[object Array]"};var Position=function Position(line,col){this.line=line;this.column=col};Position.prototype.offset=function offset(n){return new Position(this.line,this.column+n)};var SourceLocation=function SourceLocation(p,start,end){this.start=start;this.end=end;if(p.sourceFile!==null)this.source=p.sourceFile};function getLineInfo(input,offset){for(var line=1,cur=0;;){lineBreakG.lastIndex=cur;var match=lineBreakG.exec(input);if(match&&match.index=2015)options.ecmaVersion-=2009;if(options.allowReserved==null)options.allowReserved=options.ecmaVersion<5;if(isArray(options.onToken)){var tokens=options.onToken;options.onToken=function(token){return tokens.push(token)}}if(isArray(options.onComment))options.onComment=pushComment(options,options.onComment);return options}function pushComment(options,array){return function(block,text,start,end,startLoc,endLoc){var comment={type:block?"Block":"Line",value:text,start:start,end:end};if(options.locations)comment.loc=new SourceLocation(this,startLoc,endLoc);if(options.ranges)comment.range=[start,end];array.push(comment)}}var plugins={};function keywordRegexp(words){return new RegExp("^("+words.replace(/ /g,"|")+")$")}var Parser=function Parser(options,input,startPos){this.options=options=getOptions(options);this.sourceFile=options.sourceFile;this.keywords=keywordRegexp(keywords[options.ecmaVersion>=6?6:5]);var reserved="";if(!options.allowReserved){for(var v=options.ecmaVersion;;v--)if(reserved=reservedWords[v])break;if(options.sourceType=="module")reserved+=" await"}this.reservedWords=keywordRegexp(reserved);var reservedStrict=(reserved?reserved+" ":"")+reservedWords.strict;this.reservedWordsStrict=keywordRegexp(reservedStrict);this.reservedWordsStrictBind=keywordRegexp(reservedStrict+" "+reservedWords.strictBind);this.input=String(input);this.containsEsc=false;this.loadPlugins(options.plugins);if(startPos){this.pos=startPos;this.lineStart=this.input.lastIndexOf("\n",startPos-1)+1;this.curLine=this.input.slice(0,this.lineStart).split(lineBreak).length}else{this.pos=this.lineStart=0;this.curLine=1}this.type=tt.eof;this.value=null;this.start=this.end=this.pos;this.startLoc=this.endLoc=this.curPosition();this.lastTokEndLoc=this.lastTokStartLoc=null;this.lastTokStart=this.lastTokEnd=this.pos;this.context=this.initialContext();this.exprAllowed=true;this.inModule=options.sourceType==="module";this.strict=this.inModule||this.strictDirective(this.pos);this.potentialArrowAt=-1;this.inFunction=this.inGenerator=this.inAsync=false;this.yieldPos=this.awaitPos=0;this.labels=[];if(this.pos===0&&options.allowHashBang&&this.input.slice(0,2)==="#!")this.skipLineComment(2);this.scopeStack=[];this.enterFunctionScope()};Parser.prototype.isKeyword=function isKeyword(word){return this.keywords.test(word)};Parser.prototype.isReservedWord=function isReservedWord(word){return this.reservedWords.test(word)};Parser.prototype.extend=function extend(name,f){this[name]=f(this[name])};Parser.prototype.loadPlugins=function loadPlugins(pluginConfigs){var this$1=this;for(var name in pluginConfigs){var plugin=plugins[name];if(!plugin)throw new Error("Plugin '"+name+"' not found");plugin(this$1,pluginConfigs[name])}};Parser.prototype.parse=function parse(){var node=this.options.program||this.startNode();this.nextToken();return this.parseTopLevel(node)};var pp=Parser.prototype;var literal=/^(?:'((?:[^']|\.)*)'|"((?:[^"]|\.)*)"|;)/;pp.strictDirective=function(start){var this$1=this;for(;;){skipWhiteSpace.lastIndex=start;start+=skipWhiteSpace.exec(this$1.input)[0].length;var match=literal.exec(this$1.input.slice(start));if(!match)return false;if((match[1]||match[2])=="use strict")return true;start+=match[0].length}};pp.eat=function(type){if(this.type===type){this.next();return true}else{return false}};pp.isContextual=function(name){return this.type===tt.name&&this.value===name};pp.eatContextual=function(name){return this.value===name&&this.eat(tt.name)};pp.expectContextual=function(name){if(!this.eatContextual(name))this.unexpected()};pp.canInsertSemicolon=function(){return this.type===tt.eof||this.type===tt.braceR||lineBreak.test(this.input.slice(this.lastTokEnd,this.start))};pp.insertSemicolon=function(){if(this.canInsertSemicolon()){if(this.options.onInsertedSemicolon)this.options.onInsertedSemicolon(this.lastTokEnd,this.lastTokEndLoc);return true}};pp.semicolon=function(){if(!this.eat(tt.semi)&&!this.insertSemicolon())this.unexpected()};pp.afterTrailingComma=function(tokType,notNext){if(this.type==tokType){if(this.options.onTrailingComma)this.options.onTrailingComma(this.lastTokStart,this.lastTokStartLoc);if(!notNext)this.next();return true}};pp.expect=function(type){this.eat(type)||this.unexpected()};pp.unexpected=function(pos){this.raise(pos!=null?pos:this.start,"Unexpected token")};var DestructuringErrors=function DestructuringErrors(){this.shorthandAssign=this.trailingComma=this.parenthesizedAssign=this.parenthesizedBind=-1};pp.checkPatternErrors=function(refDestructuringErrors,isAssign){if(!refDestructuringErrors)return;if(refDestructuringErrors.trailingComma>-1)this.raiseRecoverable(refDestructuringErrors.trailingComma,"Comma is not permitted after the rest element");var parens=isAssign?refDestructuringErrors.parenthesizedAssign:refDestructuringErrors.parenthesizedBind;if(parens>-1)this.raiseRecoverable(parens,"Parenthesized pattern")};pp.checkExpressionErrors=function(refDestructuringErrors,andThrow){var pos=refDestructuringErrors?refDestructuringErrors.shorthandAssign:-1;if(!andThrow)return pos>=0;if(pos>-1)this.raise(pos,"Shorthand property assignments are valid only in destructuring patterns")};pp.checkYieldAwaitInDefaultParams=function(){if(this.yieldPos&&(!this.awaitPos||this.yieldPos=6){node.sourceType=this.options.sourceType}return this.finishNode(node,"Program")};var loopLabel={kind:"loop"};var switchLabel={kind:"switch"};pp$1.isLet=function(){if(this.type!==tt.name||this.options.ecmaVersion<6||this.value!="let")return false;skipWhiteSpace.lastIndex=this.pos;var skip=skipWhiteSpace.exec(this.input);var next=this.pos+skip[0].length,nextCh=this.input.charCodeAt(next);if(nextCh===91||nextCh==123)return true;if(isIdentifierStart(nextCh,true)){var pos=next+1;while(isIdentifierChar(this.input.charCodeAt(pos),true))++pos;var ident=this.input.slice(next,pos);if(!this.isKeyword(ident))return true}return false};pp$1.isAsyncFunction=function(){if(this.type!==tt.name||this.options.ecmaVersion<8||this.value!="async")return false;skipWhiteSpace.lastIndex=this.pos;var skip=skipWhiteSpace.exec(this.input);var next=this.pos+skip[0].length;return!lineBreak.test(this.input.slice(this.pos,next))&&this.input.slice(next,next+8)==="function"&&(next+8==this.input.length||!isIdentifierChar(this.input.charAt(next+8)))};pp$1.parseStatement=function(declaration,topLevel,exports){var starttype=this.type,node=this.startNode(),kind;if(this.isLet()){starttype=tt._var;kind="let"}switch(starttype){case tt._break:case tt._continue:return this.parseBreakContinueStatement(node,starttype.keyword);case tt._debugger:return this.parseDebuggerStatement(node);case tt._do:return this.parseDoStatement(node);case tt._for:return this.parseForStatement(node);case tt._function:if(!declaration&&this.options.ecmaVersion>=6)this.unexpected();return this.parseFunctionStatement(node,false);case tt._class:if(!declaration)this.unexpected();return this.parseClass(node,true);case tt._if:return this.parseIfStatement(node);case tt._return:return this.parseReturnStatement(node);case tt._switch:return this.parseSwitchStatement(node);case tt._throw:return this.parseThrowStatement(node);case tt._try:return this.parseTryStatement(node);case tt._const:case tt._var:kind=kind||this.value;if(!declaration&&kind!="var")this.unexpected();return this.parseVarStatement(node,kind);case tt._while:return this.parseWhileStatement(node);case tt._with:return this.parseWithStatement(node);case tt.braceL:return this.parseBlock();case tt.semi:return this.parseEmptyStatement(node);case tt._export:case tt._import:if(!this.options.allowImportExportEverywhere){if(!topLevel)this.raise(this.start,"'import' and 'export' may only appear at the top level");if(!this.inModule)this.raise(this.start,"'import' and 'export' may appear only with 'sourceType: module'")}return starttype===tt._import?this.parseImport(node):this.parseExport(node,exports);default:if(this.isAsyncFunction()&&declaration){this.next();return this.parseFunctionStatement(node,true)}var maybeName=this.value,expr=this.parseExpression();if(starttype===tt.name&&expr.type==="Identifier"&&this.eat(tt.colon))return this.parseLabeledStatement(node,maybeName,expr);else return this.parseExpressionStatement(node,expr)}};pp$1.parseBreakContinueStatement=function(node,keyword){var this$1=this;var isBreak=keyword=="break";this.next();if(this.eat(tt.semi)||this.insertSemicolon())node.label=null;else if(this.type!==tt.name)this.unexpected();else{node.label=this.parseIdent();this.semicolon()}var i=0;for(;i=6)this.eat(tt.semi);else this.semicolon();return this.finishNode(node,"DoWhileStatement")};pp$1.parseForStatement=function(node){this.next();this.labels.push(loopLabel);this.enterLexicalScope();this.expect(tt.parenL);if(this.type===tt.semi)return this.parseFor(node,null);var isLet=this.isLet();if(this.type===tt._var||this.type===tt._const||isLet){var init$1=this.startNode(),kind=isLet?"let":this.value;this.next();this.parseVar(init$1,true,kind);this.finishNode(init$1,"VariableDeclaration");if((this.type===tt._in||this.options.ecmaVersion>=6&&this.isContextual("of"))&&init$1.declarations.length===1&&!(kind!=="var"&&init$1.declarations[0].init))return this.parseForIn(node,init$1);return this.parseFor(node,init$1)}var refDestructuringErrors=new DestructuringErrors;var init=this.parseExpression(true,refDestructuringErrors);if(this.type===tt._in||this.options.ecmaVersion>=6&&this.isContextual("of")){this.toAssignable(init);this.checkLVal(init);this.checkPatternErrors(refDestructuringErrors,true);return this.parseForIn(node,init)}else{this.checkExpressionErrors(refDestructuringErrors,true)}return this.parseFor(node,init)};pp$1.parseFunctionStatement=function(node,isAsync){this.next();return this.parseFunction(node,true,false,isAsync)};pp$1.isFunction=function(){return this.type===tt._function||this.isAsyncFunction()};pp$1.parseIfStatement=function(node){this.next();node.test=this.parseParenExpression();node.consequent=this.parseStatement(!this.strict&&this.isFunction());node.alternate=this.eat(tt._else)?this.parseStatement(!this.strict&&this.isFunction()):null;return this.finishNode(node,"IfStatement")};pp$1.parseReturnStatement=function(node){if(!this.inFunction&&!this.options.allowReturnOutsideFunction)this.raise(this.start,"'return' outside of function");this.next();if(this.eat(tt.semi)||this.insertSemicolon())node.argument=null;else{node.argument=this.parseExpression();this.semicolon()}return this.finishNode(node,"ReturnStatement")};pp$1.parseSwitchStatement=function(node){var this$1=this;this.next();node.discriminant=this.parseParenExpression();node.cases=[];this.expect(tt.braceL);this.labels.push(switchLabel);this.enterLexicalScope();var cur;for(var sawDefault=false;this.type!=tt.braceR;){if(this$1.type===tt._case||this$1.type===tt._default){var isCase=this$1.type===tt._case;if(cur)this$1.finishNode(cur,"SwitchCase");node.cases.push(cur=this$1.startNode());cur.consequent=[];this$1.next();if(isCase){cur.test=this$1.parseExpression()}else{if(sawDefault)this$1.raiseRecoverable(this$1.lastTokStart,"Multiple default clauses");sawDefault=true;cur.test=null}this$1.expect(tt.colon)}else{if(!cur)this$1.unexpected();cur.consequent.push(this$1.parseStatement(true))}}this.exitLexicalScope();if(cur)this.finishNode(cur,"SwitchCase");this.next();this.labels.pop();return this.finishNode(node,"SwitchStatement")};pp$1.parseThrowStatement=function(node){this.next();if(lineBreak.test(this.input.slice(this.lastTokEnd,this.start)))this.raise(this.lastTokEnd,"Illegal newline after throw");node.argument=this.parseExpression();this.semicolon();return this.finishNode(node,"ThrowStatement")};var empty=[];pp$1.parseTryStatement=function(node){this.next();node.block=this.parseBlock();node.handler=null;if(this.type===tt._catch){var clause=this.startNode();this.next();this.expect(tt.parenL);clause.param=this.parseBindingAtom();this.enterLexicalScope();this.checkLVal(clause.param,"let");this.expect(tt.parenR);clause.body=this.parseBlock(false);this.exitLexicalScope();node.handler=this.finishNode(clause,"CatchClause")}node.finalizer=this.eat(tt._finally)?this.parseBlock():null;if(!node.handler&&!node.finalizer)this.raise(node.start,"Missing catch or finally clause");return this.finishNode(node,"TryStatement")};pp$1.parseVarStatement=function(node,kind){this.next();this.parseVar(node,false,kind);this.semicolon();return this.finishNode(node,"VariableDeclaration")};pp$1.parseWhileStatement=function(node){this.next();node.test=this.parseParenExpression();this.labels.push(loopLabel);node.body=this.parseStatement(false);this.labels.pop();return this.finishNode(node,"WhileStatement")};pp$1.parseWithStatement=function(node){if(this.strict)this.raise(this.start,"'with' in strict mode");this.next();node.object=this.parseParenExpression();node.body=this.parseStatement(false);return this.finishNode(node,"WithStatement")};pp$1.parseEmptyStatement=function(node){this.next();return this.finishNode(node,"EmptyStatement")};pp$1.parseLabeledStatement=function(node,maybeName,expr){var this$1=this;for(var i=0;i=0;i$1--){var label=this$1.labels[i$1];if(label.statementStart==node.start){label.statementStart=this$1.start;label.kind=kind}else break}this.labels.push({name:maybeName,kind:kind,statementStart:this.start});node.body=this.parseStatement(true);if(node.body.type=="ClassDeclaration"||node.body.type=="VariableDeclaration"&&node.body.kind!="var"||node.body.type=="FunctionDeclaration"&&(this.strict||node.body.generator))this.raiseRecoverable(node.body.start,"Invalid labeled declaration");this.labels.pop();node.label=expr;return this.finishNode(node,"LabeledStatement")};pp$1.parseExpressionStatement=function(node,expr){node.expression=expr;this.semicolon();return this.finishNode(node,"ExpressionStatement")};pp$1.parseBlock=function(createNewLexicalScope){var this$1=this;if(createNewLexicalScope===void 0)createNewLexicalScope=true;var node=this.startNode();node.body=[];this.expect(tt.braceL);if(createNewLexicalScope){this.enterLexicalScope()}while(!this.eat(tt.braceR)){var stmt=this$1.parseStatement(true);node.body.push(stmt)}if(createNewLexicalScope){this.exitLexicalScope()}return this.finishNode(node,"BlockStatement")};pp$1.parseFor=function(node,init){node.init=init;this.expect(tt.semi);node.test=this.type===tt.semi?null:this.parseExpression();this.expect(tt.semi);node.update=this.type===tt.parenR?null:this.parseExpression();this.expect(tt.parenR);this.exitLexicalScope();node.body=this.parseStatement(false);this.labels.pop();return this.finishNode(node,"ForStatement")};pp$1.parseForIn=function(node,init){var type=this.type===tt._in?"ForInStatement":"ForOfStatement";this.next();node.left=init;node.right=this.parseExpression();this.expect(tt.parenR);this.exitLexicalScope();node.body=this.parseStatement(false);this.labels.pop();return this.finishNode(node,type)};pp$1.parseVar=function(node,isFor,kind){var this$1=this;node.declarations=[];node.kind=kind;for(;;){var decl=this$1.startNode();this$1.parseVarId(decl,kind);if(this$1.eat(tt.eq)){decl.init=this$1.parseMaybeAssign(isFor)}else if(kind==="const"&&!(this$1.type===tt._in||this$1.options.ecmaVersion>=6&&this$1.isContextual("of"))){this$1.unexpected()}else if(decl.id.type!="Identifier"&&!(isFor&&(this$1.type===tt._in||this$1.isContextual("of")))){this$1.raise(this$1.lastTokEnd,"Complex binding patterns require an initialization value")}else{decl.init=null}node.declarations.push(this$1.finishNode(decl,"VariableDeclarator"));if(!this$1.eat(tt.comma))break}return node};pp$1.parseVarId=function(decl,kind){decl.id=this.parseBindingAtom(kind);this.checkLVal(decl.id,kind,false)};pp$1.parseFunction=function(node,isStatement,allowExpressionBody,isAsync){this.initFunction(node);if(this.options.ecmaVersion>=6&&!isAsync)node.generator=this.eat(tt.star);if(this.options.ecmaVersion>=8)node.async=!!isAsync;if(isStatement){node.id=isStatement==="nullableID"&&this.type!=tt.name?null:this.parseIdent();if(node.id){this.checkLVal(node.id,"var")}}var oldInGen=this.inGenerator,oldInAsync=this.inAsync,oldYieldPos=this.yieldPos,oldAwaitPos=this.awaitPos,oldInFunc=this.inFunction;this.inGenerator=node.generator;this.inAsync=node.async;this.yieldPos=0;this.awaitPos=0;this.inFunction=true;this.enterFunctionScope();if(!isStatement)node.id=this.type==tt.name?this.parseIdent():null;this.parseFunctionParams(node);this.parseFunctionBody(node,allowExpressionBody);this.inGenerator=oldInGen;this.inAsync=oldInAsync;this.yieldPos=oldYieldPos;this.awaitPos=oldAwaitPos;this.inFunction=oldInFunc;return this.finishNode(node,isStatement?"FunctionDeclaration":"FunctionExpression")};pp$1.parseFunctionParams=function(node){this.expect(tt.parenL);node.params=this.parseBindingList(tt.parenR,false,this.options.ecmaVersion>=8,true);this.checkYieldAwaitInDefaultParams()};pp$1.parseClass=function(node,isStatement){var this$1=this;this.next();this.parseClassId(node,isStatement);this.parseClassSuper(node);var classBody=this.startNode();var hadConstructor=false;classBody.body=[];this.expect(tt.braceL);while(!this.eat(tt.braceR)){if(this$1.eat(tt.semi))continue;var method=this$1.startNode();var isGenerator=this$1.eat(tt.star);var isAsync=false;var isMaybeStatic=this$1.type===tt.name&&this$1.value==="static";this$1.parsePropertyName(method);method.static=isMaybeStatic&&this$1.type!==tt.parenL;if(method.static){if(isGenerator)this$1.unexpected();isGenerator=this$1.eat(tt.star);this$1.parsePropertyName(method)}if(this$1.options.ecmaVersion>=8&&!isGenerator&&!method.computed&&method.key.type==="Identifier"&&method.key.name==="async"&&this$1.type!==tt.parenL&&!this$1.canInsertSemicolon()){isAsync=true;this$1.parsePropertyName(method)}method.kind="method";var isGetSet=false;if(!method.computed){var key=method.key;if(!isGenerator&&!isAsync&&key.type==="Identifier"&&this$1.type!==tt.parenL&&(key.name==="get"||key.name==="set")){isGetSet=true;method.kind=key.name;key=this$1.parsePropertyName(method)}if(!method.static&&(key.type==="Identifier"&&key.name==="constructor"||key.type==="Literal"&&key.value==="constructor")){if(hadConstructor)this$1.raise(key.start,"Duplicate constructor in the same class");if(isGetSet)this$1.raise(key.start,"Constructor can't have get/set modifier");if(isGenerator)this$1.raise(key.start,"Constructor can't be a generator");if(isAsync)this$1.raise(key.start,"Constructor can't be an async method");method.kind="constructor";hadConstructor=true}}this$1.parseClassMethod(classBody,method,isGenerator,isAsync);if(isGetSet){var paramCount=method.kind==="get"?0:1;if(method.value.params.length!==paramCount){var start=method.value.start;if(method.kind==="get")this$1.raiseRecoverable(start,"getter should have no params");else this$1.raiseRecoverable(start,"setter should have exactly one param")}else{if(method.kind==="set"&&method.value.params[0].type==="RestElement")this$1.raiseRecoverable(method.value.params[0].start,"Setter cannot use rest params")}}}node.body=this.finishNode(classBody,"ClassBody");return this.finishNode(node,isStatement?"ClassDeclaration":"ClassExpression")};pp$1.parseClassMethod=function(classBody,method,isGenerator,isAsync){method.value=this.parseMethod(isGenerator,isAsync);classBody.body.push(this.finishNode(method,"MethodDefinition"))};pp$1.parseClassId=function(node,isStatement){node.id=this.type===tt.name?this.parseIdent():isStatement===true?this.unexpected():null};pp$1.parseClassSuper=function(node){node.superClass=this.eat(tt._extends)?this.parseExprSubscripts():null};pp$1.parseExport=function(node,exports){var this$1=this;this.next();if(this.eat(tt.star)){this.expectContextual("from");node.source=this.type===tt.string?this.parseExprAtom():this.unexpected();this.semicolon();return this.finishNode(node,"ExportAllDeclaration")}if(this.eat(tt._default)){this.checkExport(exports,"default",this.lastTokStart);var isAsync;if(this.type===tt._function||(isAsync=this.isAsyncFunction())){var fNode=this.startNode();this.next();if(isAsync)this.next();node.declaration=this.parseFunction(fNode,"nullableID",false,isAsync)}else if(this.type===tt._class){var cNode=this.startNode();node.declaration=this.parseClass(cNode,"nullableID")}else{node.declaration=this.parseMaybeAssign();this.semicolon()}return this.finishNode(node,"ExportDefaultDeclaration")}if(this.shouldParseExportStatement()){node.declaration=this.parseStatement(true);if(node.declaration.type==="VariableDeclaration")this.checkVariableExport(exports,node.declaration.declarations);else this.checkExport(exports,node.declaration.id.name,node.declaration.id.start);node.specifiers=[];node.source=null}else{node.declaration=null;node.specifiers=this.parseExportSpecifiers(exports);if(this.eatContextual("from")){node.source=this.type===tt.string?this.parseExprAtom():this.unexpected()}else{for(var i=0;i=6&&node){switch(node.type){case"Identifier":if(this.inAsync&&node.name==="await")this.raise(node.start,"Can not use 'await' as identifier inside an async function");break;case"ObjectPattern":case"ArrayPattern":break;case"ObjectExpression":node.type="ObjectPattern";for(var i=0;i=6&&(prop.computed||prop.method||prop.shorthand))return;var key=prop.key;var name;switch(key.type){case"Identifier":name=key.name;break;case"Literal":name=String(key.value);break;default:return}var kind=prop.kind;if(this.options.ecmaVersion>=6){if(name==="__proto__"&&kind==="init"){if(propHash.proto)this.raiseRecoverable(key.start,"Redefinition of __proto__ property");propHash.proto=true}return}name="$"+name;var other=propHash[name];if(other){var redefinition;if(kind==="init"){redefinition=this.strict&&other.init||other.get||other.set}else{redefinition=other.init||other[kind]}if(redefinition)this.raiseRecoverable(key.start,"Redefinition of property")}else{other=propHash[name]={init:false,get:false,set:false}}other[kind]=true};pp$3.parseExpression=function(noIn,refDestructuringErrors){var this$1=this;var startPos=this.start,startLoc=this.startLoc;var expr=this.parseMaybeAssign(noIn,refDestructuringErrors);if(this.type===tt.comma){var node=this.startNodeAt(startPos,startLoc);node.expressions=[expr];while(this.eat(tt.comma))node.expressions.push(this$1.parseMaybeAssign(noIn,refDestructuringErrors));return this.finishNode(node,"SequenceExpression")}return expr};pp$3.parseMaybeAssign=function(noIn,refDestructuringErrors,afterLeftParse){if(this.inGenerator&&this.isContextual("yield"))return this.parseYield();var ownDestructuringErrors=false,oldParenAssign=-1,oldTrailingComma=-1;if(refDestructuringErrors){oldParenAssign=refDestructuringErrors.parenthesizedAssign;oldTrailingComma=refDestructuringErrors.trailingComma;refDestructuringErrors.parenthesizedAssign=refDestructuringErrors.trailingComma=-1}else{refDestructuringErrors=new DestructuringErrors;ownDestructuringErrors=true}var startPos=this.start,startLoc=this.startLoc;if(this.type==tt.parenL||this.type==tt.name)this.potentialArrowAt=this.start;var left=this.parseMaybeConditional(noIn,refDestructuringErrors);if(afterLeftParse)left=afterLeftParse.call(this,left,startPos,startLoc);if(this.type.isAssign){this.checkPatternErrors(refDestructuringErrors,true);if(!ownDestructuringErrors)DestructuringErrors.call(refDestructuringErrors);var node=this.startNodeAt(startPos,startLoc);node.operator=this.value;node.left=this.type===tt.eq?this.toAssignable(left):left;refDestructuringErrors.shorthandAssign=-1;this.checkLVal(left);this.next();node.right=this.parseMaybeAssign(noIn);return this.finishNode(node,"AssignmentExpression")}else{if(ownDestructuringErrors)this.checkExpressionErrors(refDestructuringErrors,true)}if(oldParenAssign>-1)refDestructuringErrors.parenthesizedAssign=oldParenAssign;if(oldTrailingComma>-1)refDestructuringErrors.trailingComma=oldTrailingComma;return left};pp$3.parseMaybeConditional=function(noIn,refDestructuringErrors){var startPos=this.start,startLoc=this.startLoc;var expr=this.parseExprOps(noIn,refDestructuringErrors);if(this.checkExpressionErrors(refDestructuringErrors))return expr;if(this.eat(tt.question)){var node=this.startNodeAt(startPos,startLoc);node.test=expr;node.consequent=this.parseMaybeAssign();this.expect(tt.colon);node.alternate=this.parseMaybeAssign(noIn);return this.finishNode(node,"ConditionalExpression")}return expr};pp$3.parseExprOps=function(noIn,refDestructuringErrors){var startPos=this.start,startLoc=this.startLoc;var expr=this.parseMaybeUnary(refDestructuringErrors,false);if(this.checkExpressionErrors(refDestructuringErrors))return expr;return expr.start==startPos&&expr.type==="ArrowFunctionExpression"?expr:this.parseExprOp(expr,startPos,startLoc,-1,noIn)};pp$3.parseExprOp=function(left,leftStartPos,leftStartLoc,minPrec,noIn){var prec=this.type.binop;if(prec!=null&&(!noIn||this.type!==tt._in)){if(prec>minPrec){var logical=this.type===tt.logicalOR||this.type===tt.logicalAND;var op=this.value;this.next();var startPos=this.start,startLoc=this.startLoc;var right=this.parseExprOp(this.parseMaybeUnary(null,false),startPos,startLoc,prec,noIn);var node=this.buildBinary(leftStartPos,leftStartLoc,left,right,op,logical);return this.parseExprOp(node,leftStartPos,leftStartLoc,minPrec,noIn)}}return left};pp$3.buildBinary=function(startPos,startLoc,left,right,op,logical){var node=this.startNodeAt(startPos,startLoc);node.left=left;node.operator=op;node.right=right;return this.finishNode(node,logical?"LogicalExpression":"BinaryExpression")};pp$3.parseMaybeUnary=function(refDestructuringErrors,sawUnary){var this$1=this;var startPos=this.start,startLoc=this.startLoc,expr;if(this.inAsync&&this.isContextual("await")){expr=this.parseAwait(refDestructuringErrors);sawUnary=true}else if(this.type.prefix){var node=this.startNode(),update=this.type===tt.incDec;node.operator=this.value;node.prefix=true;this.next();node.argument=this.parseMaybeUnary(null,true);this.checkExpressionErrors(refDestructuringErrors,true);if(update)this.checkLVal(node.argument);else if(this.strict&&node.operator==="delete"&&node.argument.type==="Identifier")this.raiseRecoverable(node.start,"Deleting local variable in strict mode");else sawUnary=true;expr=this.finishNode(node,update?"UpdateExpression":"UnaryExpression")}else{expr=this.parseExprSubscripts(refDestructuringErrors);if(this.checkExpressionErrors(refDestructuringErrors))return expr;while(this.type.postfix&&!this.canInsertSemicolon()){var node$1=this$1.startNodeAt(startPos,startLoc);node$1.operator=this$1.value;node$1.prefix=false;node$1.argument=expr;this$1.checkLVal(expr);this$1.next();expr=this$1.finishNode(node$1,"UpdateExpression")}}if(!sawUnary&&this.eat(tt.starstar))return this.buildBinary(startPos,startLoc,expr,this.parseMaybeUnary(null,false),"**",false);else return expr};pp$3.parseExprSubscripts=function(refDestructuringErrors){var startPos=this.start,startLoc=this.startLoc;var expr=this.parseExprAtom(refDestructuringErrors);var skipArrowSubscripts=expr.type==="ArrowFunctionExpression"&&this.input.slice(this.lastTokStart,this.lastTokEnd)!==")";if(this.checkExpressionErrors(refDestructuringErrors)||skipArrowSubscripts)return expr;var result=this.parseSubscripts(expr,startPos,startLoc);if(refDestructuringErrors&&result.type==="MemberExpression"){if(refDestructuringErrors.parenthesizedAssign>=result.start)refDestructuringErrors.parenthesizedAssign=-1;if(refDestructuringErrors.parenthesizedBind>=result.start)refDestructuringErrors.parenthesizedBind=-1}return result};pp$3.parseSubscripts=function(base,startPos,startLoc,noCalls){var this$1=this;var maybeAsyncArrow=this.options.ecmaVersion>=8&&base.type==="Identifier"&&base.name==="async"&&this.lastTokEnd==base.end&&!this.canInsertSemicolon();for(var computed;;){if((computed=this$1.eat(tt.bracketL))||this$1.eat(tt.dot)){var node=this$1.startNodeAt(startPos,startLoc);node.object=base;node.property=computed?this$1.parseExpression():this$1.parseIdent(true);node.computed=!!computed;if(computed)this$1.expect(tt.bracketR);base=this$1.finishNode(node,"MemberExpression")}else if(!noCalls&&this$1.eat(tt.parenL)){var refDestructuringErrors=new DestructuringErrors,oldYieldPos=this$1.yieldPos,oldAwaitPos=this$1.awaitPos;this$1.yieldPos=0;this$1.awaitPos=0;var exprList=this$1.parseExprList(tt.parenR,this$1.options.ecmaVersion>=8,false,refDestructuringErrors);if(maybeAsyncArrow&&!this$1.canInsertSemicolon()&&this$1.eat(tt.arrow)){this$1.checkPatternErrors(refDestructuringErrors,false);this$1.checkYieldAwaitInDefaultParams();this$1.yieldPos=oldYieldPos;this$1.awaitPos=oldAwaitPos;return this$1.parseArrowExpression(this$1.startNodeAt(startPos,startLoc),exprList,true)}this$1.checkExpressionErrors(refDestructuringErrors,true);this$1.yieldPos=oldYieldPos||this$1.yieldPos;this$1.awaitPos=oldAwaitPos||this$1.awaitPos;var node$1=this$1.startNodeAt(startPos,startLoc);node$1.callee=base;node$1.arguments=exprList;base=this$1.finishNode(node$1,"CallExpression")}else if(this$1.type===tt.backQuote){var node$2=this$1.startNodeAt(startPos,startLoc);node$2.tag=base;node$2.quasi=this$1.parseTemplate();base=this$1.finishNode(node$2,"TaggedTemplateExpression")}else{return base}}};pp$3.parseExprAtom=function(refDestructuringErrors){var node,canBeArrow=this.potentialArrowAt==this.start;switch(this.type){case tt._super:if(!this.inFunction)this.raise(this.start,"'super' outside of function or class");case tt._this:var type=this.type===tt._this?"ThisExpression":"Super";node=this.startNode();this.next();return this.finishNode(node,type);case tt.name:var startPos=this.start,startLoc=this.startLoc;var id=this.parseIdent(this.type!==tt.name);if(this.options.ecmaVersion>=8&&id.name==="async"&&!this.canInsertSemicolon()&&this.eat(tt._function))return this.parseFunction(this.startNodeAt(startPos,startLoc),false,false,true);if(canBeArrow&&!this.canInsertSemicolon()){if(this.eat(tt.arrow))return this.parseArrowExpression(this.startNodeAt(startPos,startLoc),[id],false);if(this.options.ecmaVersion>=8&&id.name==="async"&&this.type===tt.name){id=this.parseIdent();if(this.canInsertSemicolon()||!this.eat(tt.arrow))this.unexpected();return this.parseArrowExpression(this.startNodeAt(startPos,startLoc),[id],true)}}return id;case tt.regexp:var value=this.value;node=this.parseLiteral(value.value);node.regex={pattern:value.pattern,flags:value.flags};return node;case tt.num:case tt.string:return this.parseLiteral(this.value);case tt._null:case tt._true:case tt._false:node=this.startNode();node.value=this.type===tt._null?null:this.type===tt._true;node.raw=this.type.keyword;this.next();return this.finishNode(node,"Literal");case tt.parenL:var start=this.start,expr=this.parseParenAndDistinguishExpression(canBeArrow);if(refDestructuringErrors){if(refDestructuringErrors.parenthesizedAssign<0&&!this.isSimpleAssignTarget(expr))refDestructuringErrors.parenthesizedAssign=start;if(refDestructuringErrors.parenthesizedBind<0)refDestructuringErrors.parenthesizedBind=start}return expr;case tt.bracketL:node=this.startNode();this.next();node.elements=this.parseExprList(tt.bracketR,true,true,refDestructuringErrors);return this.finishNode(node,"ArrayExpression");case tt.braceL:return this.parseObj(false,refDestructuringErrors);case tt._function:node=this.startNode();this.next();return this.parseFunction(node,false);case tt._class:return this.parseClass(this.startNode(),false);case tt._new:return this.parseNew();case tt.backQuote:return this.parseTemplate();default:this.unexpected()}};pp$3.parseLiteral=function(value){var node=this.startNode();node.value=value;node.raw=this.input.slice(this.start,this.end);this.next();return this.finishNode(node,"Literal")};pp$3.parseParenExpression=function(){this.expect(tt.parenL);var val=this.parseExpression();this.expect(tt.parenR);return val};pp$3.parseParenAndDistinguishExpression=function(canBeArrow){var this$1=this;var startPos=this.start,startLoc=this.startLoc,val,allowTrailingComma=this.options.ecmaVersion>=8;if(this.options.ecmaVersion>=6){this.next();var innerStartPos=this.start,innerStartLoc=this.startLoc;var exprList=[],first=true,lastIsComma=false;var refDestructuringErrors=new DestructuringErrors,oldYieldPos=this.yieldPos,oldAwaitPos=this.awaitPos,spreadStart,innerParenStart;this.yieldPos=0;this.awaitPos=0;while(this.type!==tt.parenR){first?first=false:this$1.expect(tt.comma);if(allowTrailingComma&&this$1.afterTrailingComma(tt.parenR,true)){lastIsComma=true;break}else if(this$1.type===tt.ellipsis){spreadStart=this$1.start;exprList.push(this$1.parseParenItem(this$1.parseRest()));if(this$1.type===tt.comma)this$1.raise(this$1.start,"Comma is not permitted after the rest element");break}else{if(this$1.type===tt.parenL&&!innerParenStart){innerParenStart=this$1.start}exprList.push(this$1.parseMaybeAssign(false,refDestructuringErrors,this$1.parseParenItem))}}var innerEndPos=this.start,innerEndLoc=this.startLoc;this.expect(tt.parenR);if(canBeArrow&&!this.canInsertSemicolon()&&this.eat(tt.arrow)){this.checkPatternErrors(refDestructuringErrors,false);this.checkYieldAwaitInDefaultParams();if(innerParenStart)this.unexpected(innerParenStart);this.yieldPos=oldYieldPos;this.awaitPos=oldAwaitPos;return this.parseParenArrowList(startPos,startLoc,exprList)}if(!exprList.length||lastIsComma)this.unexpected(this.lastTokStart);if(spreadStart)this.unexpected(spreadStart);this.checkExpressionErrors(refDestructuringErrors,true);this.yieldPos=oldYieldPos||this.yieldPos;this.awaitPos=oldAwaitPos||this.awaitPos;if(exprList.length>1){val=this.startNodeAt(innerStartPos,innerStartLoc);val.expressions=exprList;this.finishNodeAt(val,"SequenceExpression",innerEndPos,innerEndLoc)}else{val=exprList[0]}}else{val=this.parseParenExpression()}if(this.options.preserveParens){var par=this.startNodeAt(startPos,startLoc);par.expression=val;return this.finishNode(par,"ParenthesizedExpression")}else{return val}};pp$3.parseParenItem=function(item){return item};pp$3.parseParenArrowList=function(startPos,startLoc,exprList){return this.parseArrowExpression(this.startNodeAt(startPos,startLoc),exprList)};var empty$1=[];pp$3.parseNew=function(){var node=this.startNode();var meta=this.parseIdent(true);if(this.options.ecmaVersion>=6&&this.eat(tt.dot)){node.meta=meta;node.property=this.parseIdent(true);if(node.property.name!=="target")this.raiseRecoverable(node.property.start,"The only valid meta property for new is new.target");if(!this.inFunction)this.raiseRecoverable(node.start,"new.target can only be used in functions");return this.finishNode(node,"MetaProperty")}var startPos=this.start,startLoc=this.startLoc;node.callee=this.parseSubscripts(this.parseExprAtom(),startPos,startLoc,true);if(this.eat(tt.parenL))node.arguments=this.parseExprList(tt.parenR,this.options.ecmaVersion>=8,false);else node.arguments=empty$1;return this.finishNode(node,"NewExpression")};pp$3.parseTemplateElement=function(){var elem=this.startNode();elem.value={raw:this.input.slice(this.start,this.end).replace(/\r\n?/g,"\n"),cooked:this.value};this.next();elem.tail=this.type===tt.backQuote;return this.finishNode(elem,"TemplateElement")};pp$3.parseTemplate=function(){var this$1=this;var node=this.startNode();this.next();node.expressions=[];var curElt=this.parseTemplateElement();node.quasis=[curElt];while(!curElt.tail){this$1.expect(tt.dollarBraceL);node.expressions.push(this$1.parseExpression());this$1.expect(tt.braceR);node.quasis.push(curElt=this$1.parseTemplateElement())}this.next();return this.finishNode(node,"TemplateLiteral")};pp$3.parseObj=function(isPattern,refDestructuringErrors){var this$1=this;var node=this.startNode(),first=true,propHash={};node.properties=[];this.next();while(!this.eat(tt.braceR)){if(!first){this$1.expect(tt.comma);if(this$1.afterTrailingComma(tt.braceR))break}else first=false;var prop=this$1.startNode(),isGenerator,isAsync,startPos,startLoc;if(this$1.options.ecmaVersion>=6){prop.method=false;prop.shorthand=false;if(isPattern||refDestructuringErrors){startPos=this$1.start;startLoc=this$1.startLoc}if(!isPattern)isGenerator=this$1.eat(tt.star)}this$1.parsePropertyName(prop);if(!isPattern&&this$1.options.ecmaVersion>=8&&!isGenerator&&!prop.computed&&prop.key.type==="Identifier"&&prop.key.name==="async"&&this$1.type!==tt.parenL&&this$1.type!==tt.colon&&!this$1.canInsertSemicolon()){isAsync=true;this$1.parsePropertyName(prop,refDestructuringErrors)}else{isAsync=false}this$1.parsePropertyValue(prop,isPattern,isGenerator,isAsync,startPos,startLoc,refDestructuringErrors);this$1.checkPropClash(prop,propHash);node.properties.push(this$1.finishNode(prop,"Property"))}return this.finishNode(node,isPattern?"ObjectPattern":"ObjectExpression")};pp$3.parsePropertyValue=function(prop,isPattern,isGenerator,isAsync,startPos,startLoc,refDestructuringErrors){if((isGenerator||isAsync)&&this.type===tt.colon)this.unexpected();if(this.eat(tt.colon)){prop.value=isPattern?this.parseMaybeDefault(this.start,this.startLoc):this.parseMaybeAssign(false,refDestructuringErrors);prop.kind="init"}else if(this.options.ecmaVersion>=6&&this.type===tt.parenL){if(isPattern)this.unexpected();prop.kind="init";prop.method=true;prop.value=this.parseMethod(isGenerator,isAsync)}else if(this.options.ecmaVersion>=5&&!prop.computed&&prop.key.type==="Identifier"&&(prop.key.name==="get"||prop.key.name==="set")&&(this.type!=tt.comma&&this.type!=tt.braceR)){if(isGenerator||isAsync||isPattern)this.unexpected();prop.kind=prop.key.name;this.parsePropertyName(prop);prop.value=this.parseMethod(false);var paramCount=prop.kind==="get"?0:1;if(prop.value.params.length!==paramCount){var start=prop.value.start;if(prop.kind==="get")this.raiseRecoverable(start,"getter should have no params");else this.raiseRecoverable(start,"setter should have exactly one param")}else{if(prop.kind==="set"&&prop.value.params[0].type==="RestElement")this.raiseRecoverable(prop.value.params[0].start,"Setter cannot use rest params")}}else if(this.options.ecmaVersion>=6&&!prop.computed&&prop.key.type==="Identifier"){if(this.keywords.test(prop.key.name)||(this.strict?this.reservedWordsStrict:this.reservedWords).test(prop.key.name)||this.inGenerator&&prop.key.name=="yield"||this.inAsync&&prop.key.name=="await")this.raiseRecoverable(prop.key.start,"'"+prop.key.name+"' can not be used as shorthand property");prop.kind="init";if(isPattern){prop.value=this.parseMaybeDefault(startPos,startLoc,prop.key)}else if(this.type===tt.eq&&refDestructuringErrors){if(refDestructuringErrors.shorthandAssign<0)refDestructuringErrors.shorthandAssign=this.start;prop.value=this.parseMaybeDefault(startPos,startLoc,prop.key)}else{prop.value=prop.key}prop.shorthand=true}else this.unexpected()};pp$3.parsePropertyName=function(prop){if(this.options.ecmaVersion>=6){if(this.eat(tt.bracketL)){prop.computed=true;prop.key=this.parseMaybeAssign();this.expect(tt.bracketR);return prop.key}else{prop.computed=false}}return prop.key=this.type===tt.num||this.type===tt.string?this.parseExprAtom():this.parseIdent(true)};pp$3.initFunction=function(node){node.id=null;if(this.options.ecmaVersion>=6){node.generator=false;node.expression=false}if(this.options.ecmaVersion>=8)node.async=false};pp$3.parseMethod=function(isGenerator,isAsync){var node=this.startNode(),oldInGen=this.inGenerator,oldInAsync=this.inAsync,oldYieldPos=this.yieldPos,oldAwaitPos=this.awaitPos,oldInFunc=this.inFunction;this.initFunction(node);if(this.options.ecmaVersion>=6)node.generator=isGenerator;if(this.options.ecmaVersion>=8)node.async=!!isAsync;this.inGenerator=node.generator;this.inAsync=node.async;this.yieldPos=0;this.awaitPos=0;this.inFunction=true;this.enterFunctionScope();this.expect(tt.parenL);node.params=this.parseBindingList(tt.parenR,false,this.options.ecmaVersion>=8);this.checkYieldAwaitInDefaultParams();this.parseFunctionBody(node,false);this.inGenerator=oldInGen;this.inAsync=oldInAsync;this.yieldPos=oldYieldPos;this.awaitPos=oldAwaitPos;this.inFunction=oldInFunc;return this.finishNode(node,"FunctionExpression")};pp$3.parseArrowExpression=function(node,params,isAsync){var oldInGen=this.inGenerator,oldInAsync=this.inAsync,oldYieldPos=this.yieldPos,oldAwaitPos=this.awaitPos,oldInFunc=this.inFunction;this.enterFunctionScope();this.initFunction(node);if(this.options.ecmaVersion>=8)node.async=!!isAsync;this.inGenerator=false;this.inAsync=node.async;this.yieldPos=0;this.awaitPos=0;this.inFunction=true;node.params=this.toAssignableList(params,true);this.parseFunctionBody(node,true);this.inGenerator=oldInGen;this.inAsync=oldInAsync;this.yieldPos=oldYieldPos;this.awaitPos=oldAwaitPos;this.inFunction=oldInFunc;return this.finishNode(node,"ArrowFunctionExpression")};pp$3.parseFunctionBody=function(node,isArrowFunction){var isExpression=isArrowFunction&&this.type!==tt.braceL;var oldStrict=this.strict,useStrict=false;if(isExpression){node.body=this.parseMaybeAssign();node.expression=true;this.checkParams(node,false)}else{var nonSimple=this.options.ecmaVersion>=7&&!this.isSimpleParamList(node.params);if(!oldStrict||nonSimple){useStrict=this.strictDirective(this.end);if(useStrict&&nonSimple)this.raiseRecoverable(node.start,"Illegal 'use strict' directive in function with non-simple parameter list")}var oldLabels=this.labels;this.labels=[];if(useStrict)this.strict=true;this.checkParams(node,!oldStrict&&!useStrict&&!isArrowFunction&&this.isSimpleParamList(node.params));node.body=this.parseBlock(false);node.expression=false;this.labels=oldLabels}this.exitFunctionScope();if(this.strict&&node.id){this.checkLVal(node.id,"none")}this.strict=oldStrict};pp$3.isSimpleParamList=function(params){for(var i=0;i=6||this.input.slice(this.start,this.end).indexOf("\\")==-1))this.raiseRecoverable(this.start,"The keyword '"+this.value+"' is reserved");if(this.inGenerator&&this.value==="yield")this.raiseRecoverable(this.start,"Can not use 'yield' as identifier inside a generator");if(this.inAsync&&this.value==="await")this.raiseRecoverable(this.start,"Can not use 'await' as identifier inside an async function");node.name=this.value}else if(liberal&&this.type.keyword){node.name=this.type.keyword}else{this.unexpected()}this.next();return this.finishNode(node,"Identifier")};pp$3.parseYield=function(){if(!this.yieldPos)this.yieldPos=this.start;var node=this.startNode();this.next();if(this.type==tt.semi||this.canInsertSemicolon()||this.type!=tt.star&&!this.type.startsExpr){node.delegate=false;node.argument=null}else{node.delegate=this.eat(tt.star);node.argument=this.parseMaybeAssign()}return this.finishNode(node,"YieldExpression")};pp$3.parseAwait=function(){if(!this.awaitPos)this.awaitPos=this.start;var node=this.startNode();this.next();node.argument=this.parseMaybeUnary(null,true);return this.finishNode(node,"AwaitExpression")};var pp$4=Parser.prototype;pp$4.raise=function(pos,message){var loc=getLineInfo(this.input,pos);message+=" ("+loc.line+":"+loc.column+")";var err=new SyntaxError(message);err.pos=pos;err.loc=loc;err.raisedAt=this.pos;throw err};pp$4.raiseRecoverable=pp$4.raise;pp$4.curPosition=function(){if(this.options.locations){return new Position(this.curLine,this.pos-this.lineStart)}};var pp$5=Parser.prototype;var assign=Object.assign||function(target){var sources=[],len=arguments.length-1;while(len-- >0)sources[len]=arguments[len+1];for(var i=0;i=0;i--)if(this$1.context[i].generator)return true;return false};pp$7.updateContext=function(prevType){var update,type=this.type;if(type.keyword&&prevType==tt.dot)this.exprAllowed=false;else if(update=type.updateContext)update.call(this,prevType);else this.exprAllowed=type.beforeExpr};tt.parenR.updateContext=tt.braceR.updateContext=function(){if(this.context.length==1){this.exprAllowed=true;return}var out=this.context.pop(),cur;if(out===types.b_stat&&(cur=this.curContext())&&cur.token==="function"){this.context.pop();this.exprAllowed=false}else if(out===types.b_tmpl){this.exprAllowed=true}else{this.exprAllowed=!out.isExpr}};tt.braceL.updateContext=function(prevType){this.context.push(this.braceIsBlock(prevType)?types.b_stat:types.b_expr);this.exprAllowed=true};tt.dollarBraceL.updateContext=function(){this.context.push(types.b_tmpl);this.exprAllowed=true};tt.parenL.updateContext=function(prevType){var statementParens=prevType===tt._if||prevType===tt._for||prevType===tt._with||prevType===tt._while;this.context.push(statementParens?types.p_stat:types.p_expr);this.exprAllowed=true};tt.incDec.updateContext=function(){};tt._function.updateContext=function(prevType){if(prevType.beforeExpr&&prevType!==tt.semi&&prevType!==tt._else&&!((prevType===tt.colon||prevType===tt.braceL)&&this.curContext()===types.b_stat))this.context.push(types.f_expr);this.exprAllowed=false};tt.backQuote.updateContext=function(){if(this.curContext()===types.q_tmpl)this.context.pop();else this.context.push(types.q_tmpl);this.exprAllowed=false};tt.star.updateContext=function(prevType){if(prevType==tt._function){if(this.curContext()===types.f_expr)this.context[this.context.length-1]=types.f_expr_gen;else this.context.push(types.f_gen)}this.exprAllowed=true};tt.name.updateContext=function(prevType){var allowed=false;if(this.options.ecmaVersion>=6){if(this.value=="of"&&!this.exprAllowed||this.value=="yield"&&this.inGeneratorContext())allowed=true}this.exprAllowed=allowed};var Token=function Token(p){this.type=p.type;this.value=p.value;this.start=p.start;this.end=p.end;if(p.options.locations)this.loc=new SourceLocation(p,p.startLoc,p.endLoc);if(p.options.ranges)this.range=[p.start,p.end]};var pp$8=Parser.prototype;var isRhino=typeof Packages=="object"&&Object.prototype.toString.call(Packages)=="[object JavaPackage]";pp$8.next=function(){if(this.options.onToken)this.options.onToken(new Token(this));this.lastTokEnd=this.end;this.lastTokStart=this.start;this.lastTokEndLoc=this.endLoc;this.lastTokStartLoc=this.startLoc;this.nextToken()};pp$8.getToken=function(){this.next();return new Token(this)};if(typeof Symbol!=="undefined")pp$8[Symbol.iterator]=function(){var this$1=this;return{next:function(){var token=this$1.getToken();return{done:token.type===tt.eof,value:token}}}};pp$8.curContext=function(){return this.context[this.context.length-1]};pp$8.nextToken=function(){var curContext=this.curContext();if(!curContext||!curContext.preserveSpace)this.skipSpace();this.start=this.pos;if(this.options.locations)this.startLoc=this.curPosition();if(this.pos>=this.input.length)return this.finishToken(tt.eof);if(curContext.override)return curContext.override(this);else this.readToken(this.fullCharCodeAtPos())};pp$8.readToken=function(code){if(isIdentifierStart(code,this.options.ecmaVersion>=6)||code===92)return this.readWord();return this.getTokenFromCode(code)};pp$8.fullCharCodeAtPos=function(){var code=this.input.charCodeAt(this.pos);if(code<=55295||code>=57344)return code;var next=this.input.charCodeAt(this.pos+1);return(code<<10)+next-56613888};pp$8.skipBlockComment=function(){var this$1=this;var startLoc=this.options.onComment&&this.curPosition();var start=this.pos,end=this.input.indexOf("*/",this.pos+=2);if(end===-1)this.raise(this.pos-2,"Unterminated comment");this.pos=end+2;if(this.options.locations){lineBreakG.lastIndex=start;var match;while((match=lineBreakG.exec(this.input))&&match.index8&&ch<14||ch>=5760&&nonASCIIwhitespace.test(String.fromCharCode(ch))){++this$1.pos}else{break loop}}}};pp$8.finishToken=function(type,val){this.end=this.pos;if(this.options.locations)this.endLoc=this.curPosition();var prevType=this.type;this.type=type;this.value=val;this.updateContext(prevType)};pp$8.readToken_dot=function(){var next=this.input.charCodeAt(this.pos+1);if(next>=48&&next<=57)return this.readNumber(true);var next2=this.input.charCodeAt(this.pos+2);if(this.options.ecmaVersion>=6&&next===46&&next2===46){this.pos+=3;return this.finishToken(tt.ellipsis)}else{++this.pos;return this.finishToken(tt.dot)}};pp$8.readToken_slash=function(){var next=this.input.charCodeAt(this.pos+1);if(this.exprAllowed){++this.pos;return this.readRegexp()}if(next===61)return this.finishOp(tt.assign,2);return this.finishOp(tt.slash,1)};pp$8.readToken_mult_modulo_exp=function(code){var next=this.input.charCodeAt(this.pos+1);var size=1;var tokentype=code===42?tt.star:tt.modulo;if(this.options.ecmaVersion>=7&&next===42){++size;tokentype=tt.starstar;next=this.input.charCodeAt(this.pos+2)}if(next===61)return this.finishOp(tt.assign,size+1);return this.finishOp(tokentype,size)};pp$8.readToken_pipe_amp=function(code){var next=this.input.charCodeAt(this.pos+1);if(next===code)return this.finishOp(code===124?tt.logicalOR:tt.logicalAND,2);if(next===61)return this.finishOp(tt.assign,2);return this.finishOp(code===124?tt.bitwiseOR:tt.bitwiseAND,1)};pp$8.readToken_caret=function(){var next=this.input.charCodeAt(this.pos+1);if(next===61)return this.finishOp(tt.assign,2);return this.finishOp(tt.bitwiseXOR,1)};pp$8.readToken_plus_min=function(code){var next=this.input.charCodeAt(this.pos+1);if(next===code){if(next==45&&this.input.charCodeAt(this.pos+2)==62&&lineBreak.test(this.input.slice(this.lastTokEnd,this.pos))){this.skipLineComment(3);this.skipSpace();return this.nextToken()}return this.finishOp(tt.incDec,2)}if(next===61)return this.finishOp(tt.assign,2);return this.finishOp(tt.plusMin,1)};pp$8.readToken_lt_gt=function(code){var next=this.input.charCodeAt(this.pos+1);var size=1;if(next===code){size=code===62&&this.input.charCodeAt(this.pos+2)===62?3:2;if(this.input.charCodeAt(this.pos+size)===61)return this.finishOp(tt.assign,size+1);return this.finishOp(tt.bitShift,size)}if(next==33&&code==60&&this.input.charCodeAt(this.pos+2)==45&&this.input.charCodeAt(this.pos+3)==45){if(this.inModule)this.unexpected();this.skipLineComment(4);this.skipSpace();return this.nextToken()}if(next===61)size=2;return this.finishOp(tt.relational,size)};pp$8.readToken_eq_excl=function(code){var next=this.input.charCodeAt(this.pos+1);if(next===61)return this.finishOp(tt.equality,this.input.charCodeAt(this.pos+2)===61?3:2);if(code===61&&next===62&&this.options.ecmaVersion>=6){this.pos+=2;return this.finishToken(tt.arrow)}return this.finishOp(code===61?tt.eq:tt.prefix,1)};pp$8.getTokenFromCode=function(code){switch(code){case 46:return this.readToken_dot();case 40:++this.pos;return this.finishToken(tt.parenL);case 41:++this.pos;return this.finishToken(tt.parenR);case 59:++this.pos;return this.finishToken(tt.semi);case 44:++this.pos;return this.finishToken(tt.comma);case 91:++this.pos;return this.finishToken(tt.bracketL);case 93:++this.pos;return this.finishToken(tt.bracketR);case 123:++this.pos;return this.finishToken(tt.braceL);case 125:++this.pos;return this.finishToken(tt.braceR);case 58:++this.pos;return this.finishToken(tt.colon);case 63:++this.pos;return this.finishToken(tt.question);case 96:if(this.options.ecmaVersion<6)break;++this.pos;return this.finishToken(tt.backQuote);case 48:var next=this.input.charCodeAt(this.pos+1);if(next===120||next===88)return this.readRadixNumber(16);if(this.options.ecmaVersion>=6){if(next===111||next===79)return this.readRadixNumber(8);if(next===98||next===66)return this.readRadixNumber(2)}case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return this.readNumber(false);case 34:case 39:return this.readString(code);case 47:return this.readToken_slash();case 37:case 42:return this.readToken_mult_modulo_exp(code);case 124:case 38:return this.readToken_pipe_amp(code);case 94:return this.readToken_caret();case 43:case 45:return this.readToken_plus_min(code);case 60:case 62:return this.readToken_lt_gt(code);case 61:case 33:return this.readToken_eq_excl(code);case 126:return this.finishOp(tt.prefix,1)}this.raise(this.pos,"Unexpected character '"+codePointToString(code)+"'")};pp$8.finishOp=function(type,size){var str=this.input.slice(this.pos,this.pos+size);this.pos+=size;return this.finishToken(type,str)};function tryCreateRegexp(src,flags,throwErrorAt,parser){try{return new RegExp(src,flags)}catch(e){if(throwErrorAt!==undefined){if(e instanceof SyntaxError)parser.raise(throwErrorAt,"Error parsing regular expression: "+e.message);throw e}}}var regexpUnicodeSupport=!!tryCreateRegexp("￿","u");pp$8.readRegexp=function(){var this$1=this;var escaped,inClass,start=this.pos;for(;;){if(this$1.pos>=this$1.input.length)this$1.raise(start,"Unterminated regular expression");var ch=this$1.input.charAt(this$1.pos);if(lineBreak.test(ch))this$1.raise(start,"Unterminated regular expression");if(!escaped){if(ch==="[")inClass=true;else if(ch==="]"&&inClass)inClass=false;else if(ch==="/"&&!inClass)break;escaped=ch==="\\"}else escaped=false;++this$1.pos}var content=this.input.slice(start,this.pos);++this.pos;var mods=this.readWord1();var tmp=content,tmpFlags="";if(mods){var validFlags=/^[gim]*$/;if(this.options.ecmaVersion>=6)validFlags=/^[gimuy]*$/;if(!validFlags.test(mods))this.raise(start,"Invalid regular expression flag");if(mods.indexOf("u")>=0){if(regexpUnicodeSupport){tmpFlags="u"}else{tmp=tmp.replace(/\\u\{([0-9a-fA-F]+)\}/g,function(_match,code,offset){code=Number("0x"+code);if(code>1114111)this$1.raise(start+offset+3,"Code point out of bounds");return"x"});tmp=tmp.replace(/\\u([a-fA-F0-9]{4})|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x");tmpFlags=tmpFlags.replace("u","")}}}var value=null;if(!isRhino){tryCreateRegexp(tmp,tmpFlags,start,this);value=tryCreateRegexp(content,mods)}return this.finishToken(tt.regexp,{pattern:content,flags:mods,value:value})};pp$8.readInt=function(radix,len){var this$1=this;var start=this.pos,total=0;for(var i=0,e=len==null?Infinity:len;i=97)val=code-97+10;else if(code>=65)val=code-65+10;else if(code>=48&&code<=57)val=code-48;else val=Infinity;if(val>=radix)break;++this$1.pos;total=total*radix+val}if(this.pos===start||len!=null&&this.pos-start!==len)return null;return total};pp$8.readRadixNumber=function(radix){this.pos+=2;var val=this.readInt(radix);if(val==null)this.raise(this.start+2,"Expected number in radix "+radix);if(isIdentifierStart(this.fullCharCodeAtPos()))this.raise(this.pos,"Identifier directly after number");return this.finishToken(tt.num,val)};pp$8.readNumber=function(startsWithDot){var start=this.pos,isFloat=false,octal=this.input.charCodeAt(this.pos)===48;if(!startsWithDot&&this.readInt(10)===null)this.raise(start,"Invalid number");if(octal&&this.pos==start+1)octal=false;var next=this.input.charCodeAt(this.pos);if(next===46&&!octal){++this.pos;this.readInt(10);isFloat=true;next=this.input.charCodeAt(this.pos)}if((next===69||next===101)&&!octal){next=this.input.charCodeAt(++this.pos);if(next===43||next===45)++this.pos;if(this.readInt(10)===null)this.raise(start,"Invalid number");isFloat=true}if(isIdentifierStart(this.fullCharCodeAtPos()))this.raise(this.pos,"Identifier directly after number");var str=this.input.slice(start,this.pos),val;if(isFloat)val=parseFloat(str);else if(!octal||str.length===1)val=parseInt(str,10);else if(/[89]/.test(str)||this.strict)this.raise(start,"Invalid number");else val=parseInt(str,8);return this.finishToken(tt.num,val)};pp$8.readCodePoint=function(){var ch=this.input.charCodeAt(this.pos),code;if(ch===123){if(this.options.ecmaVersion<6)this.unexpected();var codePos=++this.pos;code=this.readHexChar(this.input.indexOf("}",this.pos)-this.pos);++this.pos;if(code>1114111)this.raise(codePos,"Code point out of bounds")}else{code=this.readHexChar(4)}return code};function codePointToString(code){if(code<=65535)return String.fromCharCode(code);code-=65536;return String.fromCharCode((code>>10)+55296,(code&1023)+56320)}pp$8.readString=function(quote){var this$1=this;var out="",chunkStart=++this.pos;for(;;){if(this$1.pos>=this$1.input.length)this$1.raise(this$1.start,"Unterminated string constant");var ch=this$1.input.charCodeAt(this$1.pos);if(ch===quote)break;if(ch===92){out+=this$1.input.slice(chunkStart,this$1.pos);out+=this$1.readEscapedChar(false);chunkStart=this$1.pos}else{if(isNewLine(ch))this$1.raise(this$1.start,"Unterminated string constant");++this$1.pos}}out+=this.input.slice(chunkStart,this.pos++);return this.finishToken(tt.string,out)};pp$8.readTmplToken=function(){var this$1=this;var out="",chunkStart=this.pos;for(;;){if(this$1.pos>=this$1.input.length)this$1.raise(this$1.start,"Unterminated template");var ch=this$1.input.charCodeAt(this$1.pos);if(ch===96||ch===36&&this$1.input.charCodeAt(this$1.pos+1)===123){if(this$1.pos===this$1.start&&this$1.type===tt.template){if(ch===36){this$1.pos+=2;return this$1.finishToken(tt.dollarBraceL)}else{++this$1.pos;return this$1.finishToken(tt.backQuote)}}out+=this$1.input.slice(chunkStart,this$1.pos);return this$1.finishToken(tt.template,out)}if(ch===92){out+=this$1.input.slice(chunkStart,this$1.pos);out+=this$1.readEscapedChar(true);chunkStart=this$1.pos}else if(isNewLine(ch)){out+=this$1.input.slice(chunkStart,this$1.pos);++this$1.pos;switch(ch){case 13:if(this$1.input.charCodeAt(this$1.pos)===10)++this$1.pos;case 10:out+="\n";break;default:out+=String.fromCharCode(ch);break}if(this$1.options.locations){++this$1.curLine;this$1.lineStart=this$1.pos}chunkStart=this$1.pos}else{++this$1.pos}}};pp$8.readEscapedChar=function(inTemplate){var ch=this.input.charCodeAt(++this.pos);++this.pos;switch(ch){case 110:return"\n";case 114:return"\r";case 120:return String.fromCharCode(this.readHexChar(2));case 117:return codePointToString(this.readCodePoint());case 116:return"\t";case 98:return"\b";case 118:return"\v";case 102:return"\f";case 13:if(this.input.charCodeAt(this.pos)===10)++this.pos;case 10:if(this.options.locations){this.lineStart=this.pos;++this.curLine}return"";default:if(ch>=48&&ch<=55){var octalStr=this.input.substr(this.pos-1,3).match(/^[0-7]+/)[0];var octal=parseInt(octalStr,8);if(octal>255){octalStr=octalStr.slice(0,-1);octal=parseInt(octalStr,8)}if(octalStr!=="0"&&(this.strict||inTemplate)){this.raise(this.pos-2,"Octal literal in strict mode")}this.pos+=octalStr.length-1;return String.fromCharCode(octal)}return String.fromCharCode(ch)}};pp$8.readHexChar=function(len){var codePos=this.pos;var n=this.readInt(16,len);if(n===null)this.raise(codePos,"Bad character escape sequence");return n};pp$8.readWord1=function(){var this$1=this;this.containsEsc=false;var word="",first=true,chunkStart=this.pos;var astral=this.options.ecmaVersion>=6;while(this.pos0){return}}if(extra.trailingComments.length>0){if(extra.trailingComments[0].range[0]>=node.range[1]){trailingComments=extra.trailingComments;extra.trailingComments=[]}else{extra.trailingComments.length=0}}else{if(extra.bottomRightStack.length>0&&extra.bottomRightStack[extra.bottomRightStack.length-1].trailingComments&&extra.bottomRightStack[extra.bottomRightStack.length-1].trailingComments[0].range[0]>=node.range[1]){trailingComments=extra.bottomRightStack[extra.bottomRightStack.length-1].trailingComments;delete extra.bottomRightStack[extra.bottomRightStack.length-1].trailingComments}}while(extra.bottomRightStack.length>0&&extra.bottomRightStack[extra.bottomRightStack.length-1].range[0]>=node.range[0]){lastChild=extra.bottomRightStack.pop()}if(lastChild){if(lastChild.leadingComments){if(lastChild.leadingComments[lastChild.leadingComments.length-1].range[1]<=node.range[0]){node.leadingComments=lastChild.leadingComments;delete lastChild.leadingComments}else{for(i=lastChild.leadingComments.length-2;i>=0;--i){if(lastChild.leadingComments[i].range[1]<=node.range[0]){node.leadingComments=lastChild.leadingComments.splice(0,i+1);break}}}}}else if(extra.leadingComments.length>0){if(extra.leadingComments[extra.leadingComments.length-1].range[1]<=node.range[0]){if(extra.previousNode){for(j=0;j0){node.leadingComments=extra.leadingComments;extra.leadingComments=[]}}else{for(i=0;inode.range[0]){break}}node.leadingComments=extra.leadingComments.slice(0,i);if(node.leadingComments.length===0){delete node.leadingComments}trailingComments=extra.leadingComments.slice(i);if(trailingComments.length===0){trailingComments=null}}}extra.previousNode=node;if(trailingComments){node.trailingComments=trailingComments}extra.bottomRightStack.push(node)}}},{"./ast-node-types":4}],6:[function(require,module,exports){"use strict";var Token={Boolean:"Boolean",EOF:"",Identifier:"Identifier",Keyword:"Keyword",Null:"Null",Numeric:"Numeric",Punctuator:"Punctuator",String:"String",RegularExpression:"RegularExpression",Template:"Template",JSXIdentifier:"JSXIdentifier",JSXText:"JSXText"};function convertTemplatePart(tokens,code){var firstToken=tokens[0],lastTemplateToken=tokens[tokens.length-1];var token={type:Token.Template,value:code.slice(firstToken.start,lastTemplateToken.end)};if(firstToken.loc){token.loc={start:firstToken.loc.start,end:lastTemplateToken.loc.end}}if(firstToken.range){token.range=[firstToken.range[0],lastTemplateToken.range[1]]}return token}function TokenTranslator(acornTokTypes,code){this._acornTokTypes=acornTokTypes;this._tokens=[];this._curlyBrace=null;this._code=code}TokenTranslator.prototype={constructor:TokenTranslator,translate:function(token,extra){var type=token.type,tt=this._acornTokTypes;if(type===tt.name){token.type=Token.Identifier;if(token.value==="static"){token.type=Token.Keyword}if(extra.ecmaVersion>5&&(token.value==="yield"||token.value==="let")){token.type=Token.Keyword}}else if(type===tt.semi||type===tt.comma||type===tt.parenL||type===tt.parenR||type===tt.braceL||type===tt.braceR||type===tt.dot||type===tt.bracketL||type===tt.colon||type===tt.question||type===tt.bracketR||type===tt.ellipsis||type===tt.arrow||type===tt.jsxTagStart||type===tt.incDec||type===tt.starstar||type===tt.jsxTagEnd||type===tt.prefix||type.binop&&!type.keyword||type.isAssign){token.type=Token.Punctuator;token.value=this._code.slice(token.start,token.end)}else if(type===tt.jsxName){token.type=Token.JSXIdentifier}else if(type.label==="jsxText"||type===tt.jsxAttrValueToken){token.type=Token.JSXText}else if(type.keyword){if(type.keyword==="true"||type.keyword==="false"){token.type=Token.Boolean}else if(type.keyword==="null"){token.type=Token.Null}else{token.type=Token.Keyword}}else if(type===tt.num){token.type=Token.Numeric;token.value=this._code.slice(token.start,token.end)}else if(type===tt.string){if(extra.jsxAttrValueToken){extra.jsxAttrValueToken=false;token.type=Token.JSXText}else{token.type=Token.String}token.value=this._code.slice(token.start,token.end)}else if(type===tt.regexp){token.type=Token.RegularExpression;var value=token.value;token.regex={flags:value.flags,pattern:value.pattern};token.value="/"+value.pattern+"/"+value.flags}return token},onToken:function(token,extra){var that=this,tt=this._acornTokTypes,tokens=extra.tokens,templateTokens=this._tokens;function translateTemplateTokens(){tokens.push(convertTemplatePart(that._tokens,that._code));that._tokens=[]}if(token.type===tt.eof){if(this._curlyBrace){tokens.push(this.translate(this._curlyBrace,extra))}return}if(token.type===tt.backQuote){if(this._curlyBrace){tokens.push(this.translate(this._curlyBrace,extra));this._curlyBrace=null}templateTokens.push(token);if(templateTokens.length>1){translateTemplateTokens()}return}else if(token.type===tt.dollarBraceL){templateTokens.push(token);translateTemplateTokens();return}else if(token.type===tt.braceR){if(this._curlyBrace){tokens.push(this.translate(this._curlyBrace,extra))}this._curlyBrace=token;return}else if(token.type===tt.template){if(this._curlyBrace){templateTokens.push(this._curlyBrace);this._curlyBrace=null}templateTokens.push(token);return}if(this._curlyBrace){tokens.push(this.translate(this._curlyBrace,extra));this._curlyBrace=null}tokens.push(this.translate(token,extra))}};module.exports=TokenTranslator},{}],7:[function(require,module,exports){"use strict";module.exports={AssignmentExpression:["left","right"],AssignmentPattern:["left","right"],ArrayExpression:["elements"],ArrayPattern:["elements"],ArrowFunctionExpression:["params","body"],BlockStatement:["body"],BinaryExpression:["left","right"],BreakStatement:["label"],CallExpression:["callee","arguments"],CatchClause:["param","body"],ClassBody:["body"],ClassDeclaration:["id","superClass","body"],ClassExpression:["id","superClass","body"],ConditionalExpression:["test","consequent","alternate"],ContinueStatement:["label"],DebuggerStatement:[],DirectiveStatement:[],DoWhileStatement:["body","test"],EmptyStatement:[],ExportAllDeclaration:["source"],ExportDefaultDeclaration:["declaration"],ExportNamedDeclaration:["declaration","specifiers","source"],ExportSpecifier:["exported","local"],ExpressionStatement:["expression"],ForStatement:["init","test","update","body"],ForInStatement:["left","right","body"],ForOfStatement:["left","right","body"],FunctionDeclaration:["id","params","body"],FunctionExpression:["id","params","body"],Identifier:[],IfStatement:["test","consequent","alternate"],ImportDeclaration:["specifiers","source"],ImportDefaultSpecifier:["local"],ImportNamespaceSpecifier:["local"],ImportSpecifier:["imported","local"],Literal:[],LabeledStatement:["label","body"],LogicalExpression:["left","right"],MemberExpression:["object","property"],MetaProperty:["meta","property"],MethodDefinition:["key","value"],ModuleSpecifier:[],NewExpression:["callee","arguments"],ObjectExpression:["properties"],ObjectPattern:["properties"],Program:["body"],Property:["key","value"],RestElement:["argument"],ReturnStatement:["argument"],SequenceExpression:["expressions"],SpreadElement:["argument"],Super:[],SwitchStatement:["discriminant","cases"],SwitchCase:["test","consequent"],TaggedTemplateExpression:["tag","quasi"],TemplateElement:[],TemplateLiteral:["quasis","expressions"],ThisExpression:[],ThrowStatement:["argument"],TryStatement:["block","handler","finalizer"],UnaryExpression:["argument"],UpdateExpression:["argument"],VariableDeclaration:["declarations"],VariableDeclarator:["id","init"],WhileStatement:["test","body"],WithStatement:["object","body"],YieldExpression:["argument"],JSXIdentifier:[],JSXNamespacedName:["namespace","name"],JSXMemberExpression:["object","property"],JSXEmptyExpression:[],JSXExpressionContainer:["expression"],JSXElement:["openingElement","closingElement","children"],JSXClosingElement:["name"],JSXOpeningElement:["name","attributes"],JSXAttribute:["name","value"],JSXText:null,JSXSpreadAttribute:["argument"],ExperimentalRestProperty:["argument"],ExperimentalSpreadProperty:["argument"]}},{}],8:[function(require,module,exports){module.exports={_args:[[{raw:"espree@^3.4.3",scope:null,escapedName:"espree",name:"espree",rawSpec:"^3.4.3",spec:">=3.4.3 <4.0.0",type:"range"},"/var/lib/jenkins/workspace/Releases/ESLint Release/eslint"]],_from:"espree@>=3.4.3 <4.0.0",_id:"espree@3.4.3",_inCache:true,_location:"/espree",_nodeVersion:"4.4.7",_npmOperationalInternal:{host:"packages-18-east.internal.npmjs.com",tmp:"tmp/espree-3.4.3.tgz_1494016113798_0.18147883261553943"},_npmUser:{name:"eslint",email:"nicholas+eslint@nczconsulting.com"},_npmVersion:"2.15.8",_phantomChildren:{},_requested:{raw:"espree@^3.4.3",scope:null,escapedName:"espree",name:"espree",rawSpec:"^3.4.3",spec:">=3.4.3 <4.0.0",type:"range"},_requiredBy:["/"],_resolved:"https://registry.npmjs.org/espree/-/espree-3.4.3.tgz",_shasum:"2910b5ccd49ce893c2ffffaab4fd8b3a31b82374",_shrinkwrap:null,_spec:"espree@^3.4.3",_where:"/var/lib/jenkins/workspace/Releases/ESLint Release/eslint",author:{name:"Nicholas C. Zakas",email:"nicholas+npm@nczconsulting.com"},bugs:{url:"http://github.com/eslint/espree.git"},dependencies:{acorn:"^5.0.1","acorn-jsx":"^3.0.0"},description:"An Esprima-compatible JavaScript parser built on Acorn",devDependencies:{browserify:"^7.0.0",chai:"^1.10.0",eslint:"^2.13.1","eslint-config-eslint":"^3.0.0","eslint-release":"^0.10.0",esprima:"latest","esprima-fb":"^8001.2001.0-dev-harmony-fb",istanbul:"~0.2.6","json-diff":"~0.3.1",leche:"^1.0.1",mocha:"^2.0.1",regenerate:"~0.5.4",shelljs:"^0.3.0","shelljs-nodecli":"^0.1.1","unicode-6.3.0":"~0.1.0"},directories:{},dist:{shasum:"2910b5ccd49ce893c2ffffaab4fd8b3a31b82374",tarball:"https://registry.npmjs.org/espree/-/espree-3.4.3.tgz"},engines:{node:">=0.10.0"},files:["lib","espree.js"],gitHead:"ea086113d26c40b91647b2184e5e8aa9190db654",homepage:"https://github.com/eslint/espree",keywords:["ast","ecmascript","javascript","parser","syntax","acorn"],license:"BSD-2-Clause",main:"espree.js",maintainers:[{name:"btmills",email:"mills.brandont@gmail.com"},{name:"eslint",email:"nicholas+eslint@nczconsulting.com"},{name:"gyandeeps",email:"gyandeeps@gmail.com"},{name:"ivolodin",email:"ivolodin@gmail.com"},{name:"kaicataldo",email:"kaicataldo@gmail.com"},{name:"mysticatea",email:"star.ctor@gmail.com"},{name:"not-an-aardvark",email:"notaardvark@gmail.com"},{name:"nzakas",email:"nicholas@nczconsulting.com"},{name:"sharpbites",email:"alberto.email@gmail.com"}],name:"espree",optionalDependencies:{},readme:"[![npm version](https://img.shields.io/npm/v/espree.svg)](https://www.npmjs.com/package/espree)\n[![Build Status](https://travis-ci.org/eslint/espree.svg?branch=master)](https://travis-ci.org/eslint/espree)\n[![npm downloads](https://img.shields.io/npm/dm/espree.svg)](https://www.npmjs.com/package/espree)\n[![Bountysource](https://www.bountysource.com/badge/tracker?tracker_id=9348450)](https://www.bountysource.com/trackers/9348450-eslint?utm_source=9348450&utm_medium=shield&utm_campaign=TRACKER_BADGE)\n\n# Espree\n\nEspree started out as a fork of [Esprima](http://esprima.org) v1.2.2, the last stable published released of Esprima before work on ECMAScript 6 began. Espree is now built on top of [Acorn](https://github.com/ternjs/acorn), which has a modular architecture that allows extension of core functionality. The goal of Espree is to produce output that is similar to Esprima with a similar API so that it can be used in place of Esprima.\n\n## Usage\n\nInstall:\n\n```\nnpm i espree --save\n```\n\nAnd in your Node.js code:\n\n```javascript\nvar espree = require(\"espree\");\n\nvar ast = espree.parse(code);\n```\n\nThere is a second argument to `parse()` that allows you to specify various options:\n\n```javascript\nvar espree = require(\"espree\");\n\nvar ast = espree.parse(code, {\n\n // attach range information to each node\n range: true,\n\n // attach line/column location information to each node\n loc: true,\n\n // create a top-level comments array containing all comments\n comment: true,\n\n // attach comments to the closest relevant node as leadingComments and\n // trailingComments\n attachComment: true,\n\n // create a top-level tokens array containing all tokens\n tokens: true,\n\n // set to 3, 5 (default), 6, 7, or 8 to specify the version of ECMAScript syntax you want to use. \n // You can also set to 2015 (same as 6), 2016 (same as 7), or 2017 (same as 8) to use the year-based naming.\n ecmaVersion: 5,\n\n // specify which type of script you're parsing (script or module, default is script)\n sourceType: \"script\",\n\n // specify additional language features\n ecmaFeatures: {\n\n // enable JSX parsing\n jsx: true,\n\n // enable return in global scope\n globalReturn: true,\n\n // enable implied strict mode (if ecmaVersion >= 5)\n impliedStrict: true,\n\n // allow experimental object rest/spread\n experimentalObjectRestSpread: true\n }\n});\n```\n\n## Esprima Compatibility Going Forward\n\nThe primary goal is to produce the exact same AST structure and tokens as Esprima, and that takes precedence over anything else. (The AST structure being the [ESTree](https://github.com/estree/estree) API with JSX extensions.) Separate from that, Espree may deviate from what Esprima outputs in terms of where and how comments are attached, as well as what additional information is available on AST nodes. That is to say, Espree may add more things to the AST nodes than Esprima does but the overall AST structure produced will be the same.\n\nEspree may also deviate from Esprima in the interface it exposes.\n\n## Contributing\n\nIssues and pull requests will be triaged and responded to as quickly as possible. We operate under the [ESLint Contributor Guidelines](http://eslint.org/docs/developer-guide/contributing), so please be sure to read them before contributing. If you're not sure where to dig in, check out the [issues](https://github.com/eslint/espree/issues).\n\nEspree is licensed under a permissive BSD 2-clause license.\n\n## Build Commands\n\n* `npm test` - run all linting and tests\n* `npm run lint` - run all linting\n* `npm run browserify` - creates a version of Espree that is usable in a browser\n\n## Differences from Espree 2.x\n\n* The `tokenize()` method does not use `ecmaFeatures`. Any string will be tokenized completely based on ECMAScript 6 semantics.\n* Trailing whitespace no longer is counted as part of a node.\n* `let` and `const` declarations are no longer parsed by default. You must opt-in using `ecmaFeatures.blockBindings`.\n* The `esparse` and `esvalidate` binary scripts have been removed.\n* There is no `tolerant` option. We will investigate adding this back in the future.\n\n## Known Incompatibilities\n\nIn an effort to help those wanting to transition from other parsers to Espree, the following is a list of noteworthy incompatibilities with other parsers. These are known differences that we do not intend to change.\n\n### Esprima 1.2.2\n\n* Esprima counts trailing whitespace as part of each AST node while Espree does not. In Espree, the end of a node is where the last token occurs.\n* Espree does not parse `let` and `const` declarations by default.\n* Error messages returned for parsing errors are different.\n* There are two addition properties on every node and token: `start` and `end`. These represent the same data as `range` and are used internally by Acorn.\n\n### Esprima 2.x\n\n* Esprima 2.x uses a different comment attachment algorithm that results in some comments being added in different places than Espree. The algorithm Espree uses is the same one used in Esprima 1.2.2.\n\n## Frequently Asked Questions\n\n### Why another parser\n\n[ESLint](http://eslint.org) had been relying on Esprima as its parser from the beginning. While that was fine when the JavaScript language was evolving slowly, the pace of development increased dramatically and Esprima had fallen behind. ESLint, like many other tools reliant on Esprima, has been stuck in using new JavaScript language features until Esprima updates, and that caused our users frustration.\n\nWe decided the only way for us to move forward was to create our own parser, bringing us inline with JSHint and JSLint, and allowing us to keep implementing new features as we need them. We chose to fork Esprima instead of starting from scratch in order to move as quickly as possible with a compatible API.\n\nWith Espree 2.0.0, we are no longer a fork of Esprima but rather a translation layer between Acorn and Esprima syntax. This allows us to put work back into a community-supported parser (Acorn) that is continuing to grow and evolve while maintaining an Esprima-compatible parser for those utilities still built on Esprima.\n\n### Have you tried working with Esprima?\n\nYes. Since the start of ESLint, we've regularly filed bugs and feature requests with Esprima and will continue to do so. However, there are some different philosophies around how the projects work that need to be worked through. The initial goal was to have Espree track Esprima and eventually merge the two back together, but we ultimately decided that building on top of Acorn was a better choice due to Acorn's plugin support.\n\n### Why don't you just use Acorn?\n\nAcorn is a great JavaScript parser that produces an AST that is compatible with Esprima. Unfortunately, ESLint relies on more than just the AST to do its job. It relies on Esprima's tokens and comment attachment features to get a complete picture of the source code. We investigated switching to Acorn, but the inconsistencies between Esprima and Acorn created too much work for a project like ESLint.\n\nWe are building on top of Acorn, however, so that we can contribute back and help make Acorn even better.\n\n### What ECMAScript 6 features do you support?\n\nAll of them.\n\n### What ECMAScript 7/2016 features do you support?\n\nThere is only one ECMAScript 7 syntax change: the exponentiation operator. Espree supports this.\n\n### What ECMAScript 2017 features do you support?\n\nBecause ECMAScript 2017 is still under development, we are implementing features as they are finalized. Currently, Espree supports:\n\n* `async` functions\n* Trailing commas in function declarations and calls (including arrow functions and concise methods)\n\n### How do you determine which experimental features to support?\n\nIn general, we do not support experimental JavaScript features. We may make exceptions from time to time depending on the maturity of the features.\n",readmeFilename:"README.md",repository:{type:"git",url:"git+https://github.com/eslint/espree.git"},scripts:{alpharelease:"eslint-prelease alpha",betarelease:"eslint-prelease beta",browserify:"node Makefile.js browserify","ci-release":"eslint-ci-release","generate-regex":"node tools/generate-identifier-regex.js","gh-release":"eslint-gh-release",lint:"node Makefile.js lint",release:"eslint-release",test:"npm run-script lint && node Makefile.js test"},version:"3.4.3"}},{}],espree:[function(require,module,exports){"use strict";var astNodeTypes=require("./lib/ast-node-types"),commentAttachment=require("./lib/comment-attachment"),TokenTranslator=require("./lib/token-translator"),acornJSX=require("acorn-jsx/inject"),rawAcorn=require("acorn");var acorn=acornJSX(rawAcorn);var DEFAULT_ECMA_VERSION=5;var lookahead,extra,lastToken;var assign=Object.assign||function assign(target){for(var argIndex=1;argIndex=2015){version-=2009}switch(version){case 3:case 5:case 6:case 7:case 8:return version;default:throw new Error("Invalid ecmaVersion.")}}else{return DEFAULT_ECMA_VERSION}}function isValidNode(node){var ecma=extra.ecmaFeatures;switch(node.type){case"ExperimentalSpreadProperty":case"ExperimentalRestProperty":return ecma.experimentalObjectRestSpread;case"ImportDeclaration":case"ExportNamedDeclaration":case"ExportDefaultDeclaration":case"ExportAllDeclaration":return extra.isModule;default:return true}}function esprimaFinishNode(result){if(!isValidNode(result)){this.unexpected(result.start)}if(result.type==="TryStatement"){delete result.guardedHandlers}else if(result.type==="CatchClause"){delete result.guard}if(result.type==="TemplateElement"){var terminalDollarBraceL=this.input.slice(result.end,result.end+2)==="${";if(result.range){result.range[0]--;result.range[1]+=terminalDollarBraceL?2:1}if(result.loc){result.loc.start.column--;result.loc.end.column+=terminalDollarBraceL?2:1}}if(result.type==="Literal"&&result.value===undefined){result.value=null}if(extra.attachComment){commentAttachment.processComment(result)}if(result.type.indexOf("Function")>-1&&!result.generator){result.generator=false}return result}function isValidToken(parser){var ecma=extra.ecmaFeatures;var type=parser.type;switch(type){case tt.jsxName:case tt.jsxText:case tt.jsxTagStart:case tt.jsxTagEnd:return ecma.jsx;case tt.regexp:if(extra.ecmaVersion<6&&parser.value.flags&&parser.value.flags.indexOf("y")>-1){return false}return true;default:return true}}function wrapFinishNode(finishNode){return function(node,type,pos,loc){var result=finishNode.call(this,node,type,pos,loc);return esprimaFinishNode.call(this,result)}}acorn.plugins.espree=function(instance){instance.extend("finishNode",wrapFinishNode);instance.extend("finishNodeAt",wrapFinishNode);instance.extend("next",function(next){return function(){if(!isValidToken(this)){this.unexpected()}return next.call(this)}});instance.extend("checkLVal",function(checkLVal){return function(expr,isBinding,checkClashes){if(extra.ecmaFeatures.experimentalObjectRestSpread&&expr.type==="ObjectPattern"){for(var i=0;i=5){this.strict=true}return parseTopLevel.call(this,node)}});instance.extend("toAssignable",function(toAssignable){return function(node,isBinding){if(extra.ecmaFeatures.experimentalObjectRestSpread&&node.type==="ObjectExpression"){node.type="ObjectPattern";for(var i=0;i=6){prop.method=false;prop.shorthand=false;if(isPattern||refShorthandDefaultPos){startPos=this.start;startLoc=this.startLoc}if(!isPattern){isGenerator=this.eat(tt.star)}}this.parsePropertyName(prop,refShorthandDefaultPos);if(this.options.ecmaVersion>=8&&!isPattern&&!isGenerator&&!prop.computed&&prop.key.type==="Identifier"&&prop.key.name==="async"&&this.type!==tt.parenL&&this.type!==tt.colon&&!this.canInsertSemicolon()){this.parsePropertyName(prop,refShorthandDefaultPos);isAsync=true}else{isAsync=false}this.parsePropertyValue(prop,isPattern,isGenerator,isAsync,startPos,startLoc,refShorthandDefaultPos);this.checkPropClash(prop,propHash);node.properties.push(this.finishNode(prop,"Property"))}return this.finishNode(node,isPattern?"ObjectPattern":"ObjectExpression")};instance.raise=instance.raiseRecoverable=function(pos,message){var loc=getLineInfo(this.input,pos);var err=new SyntaxError(message);err.index=pos;err.lineNumber=loc.line;err.column=loc.column+1;throw err};instance.unexpected=function(pos){var message="Unexpected token";if(pos!==null&&pos!==undefined){this.pos=pos;if(this.options.locations){while(this.posthis.start){message+=" "+this.input.slice(this.start,this.end)}this.raise(this.start,message)};instance.extend("jsx_readString",function(jsxReadString){return function(quote){var result=jsxReadString.call(this,quote);if(this.type===tt.string){extra.jsxAttrValueToken=true}return result}})};function tokenize(code,options){var toString,tokens,impliedStrict,translator=new TokenTranslator(tt,code);toString=String;if(typeof code!=="string"&&!(code instanceof String)){code=toString(code)}lookahead=null;options=assign({},options);var acornOptions={ecmaVersion:DEFAULT_ECMA_VERSION,plugins:{espree:true}};resetExtra();options.tokens=true;extra.tokens=[];extra.range=typeof options.range==="boolean"&&options.range;acornOptions.ranges=extra.range;extra.loc=typeof options.loc==="boolean"&&options.loc;acornOptions.locations=extra.loc;extra.comment=typeof options.comment==="boolean"&&options.comment;if(extra.comment){acornOptions.onComment=function(){var comment=convertAcornCommentToEsprimaComment.apply(this,arguments);extra.comments.push(comment)}}extra.tolerant=typeof options.tolerant==="boolean"&&options.tolerant;acornOptions.ecmaVersion=extra.ecmaVersion=normalizeEcmaVersion(options.ecmaVersion);if(options.ecmaFeatures&&typeof options.ecmaFeatures==="object"){extra.ecmaFeatures=assign({},options.ecmaFeatures);impliedStrict=extra.ecmaFeatures.impliedStrict;extra.ecmaFeatures.impliedStrict=typeof impliedStrict==="boolean"&&impliedStrict}try{var tokenizer=acorn.tokenizer(code,acornOptions);while((lookahead=tokenizer.getToken()).type!==tt.eof){translator.onToken(lookahead,extra)}tokens=extra.tokens;if(extra.comment){tokens.comments=extra.comments}if(extra.tolerant){tokens.errors=extra.errors}}catch(e){throw e}return tokens}function convertAcornCommentToEsprimaComment(block,text,start,end,startLoc,endLoc){var comment={type:block?"Block":"Line",value:text};if(typeof start==="number"){comment.start=start;comment.end=end;comment.range=[start,end]}if(typeof startLoc==="object"){comment.loc={start:startLoc,end:endLoc}}return comment}function parse(code,options){var program,toString=String,translator,impliedStrict,acornOptions={ecmaVersion:DEFAULT_ECMA_VERSION,plugins:{espree:true}};lastToken=null;if(typeof code!=="string"&&!(code instanceof String)){code=toString(code)}resetExtra();commentAttachment.reset();if(typeof options!=="undefined"){extra.range=typeof options.range==="boolean"&&options.range;extra.loc=typeof options.loc==="boolean"&&options.loc;extra.attachComment=typeof options.attachComment==="boolean"&&options.attachComment;if(extra.loc&&options.source!==null&&options.source!==undefined){extra.source=toString(options.source)}if(typeof options.tokens==="boolean"&&options.tokens){extra.tokens=[];translator=new TokenTranslator(tt,code)}if(typeof options.comment==="boolean"&&options.comment){extra.comment=true;extra.comments=[]}if(typeof options.tolerant==="boolean"&&options.tolerant){extra.errors=[]}if(extra.attachComment){extra.range=true;extra.comments=[];commentAttachment.reset()}acornOptions.ecmaVersion=extra.ecmaVersion=normalizeEcmaVersion(options.ecmaVersion);if(options.sourceType==="module"){extra.isModule=true;if(acornOptions.ecmaVersion<6){acornOptions.ecmaVersion=6;extra.ecmaVersion=6}acornOptions.sourceType="module"}if(options.ecmaFeatures&&typeof options.ecmaFeatures==="object"){extra.ecmaFeatures=assign({},options.ecmaFeatures);impliedStrict=extra.ecmaFeatures.impliedStrict;extra.ecmaFeatures.impliedStrict=typeof impliedStrict==="boolean"&&impliedStrict;if(options.ecmaFeatures.globalReturn){acornOptions.allowReturnOutsideFunction=true}}acornOptions.onToken=function(token){if(extra.tokens){translator.onToken(token,extra)}if(token.type!==tt.eof){lastToken=token}};if(extra.attachComment||extra.comment){acornOptions.onComment=function(){var comment=convertAcornCommentToEsprimaComment.apply(this,arguments);extra.comments.push(comment);if(extra.attachComment){commentAttachment.addComment(comment)}}}if(extra.range){acornOptions.ranges=true}if(extra.loc){acornOptions.locations=true}if(extra.ecmaFeatures.jsx){acornOptions.plugins={jsx:true,espree:true}}}program=acorn.parse(code,acornOptions);program.sourceType=extra.isModule?"module":"script";if(extra.comment||extra.attachComment){program.comments=extra.comments}if(extra.tokens){program.tokens=extra.tokens}if(program.range){program.range[0]=program.body.length?program.body[0].range[0]:program.range[0];program.range[1]=lastToken?lastToken.range[1]:program.range[1]}if(program.loc){program.loc.start=program.body.length?program.body[0].loc.start:program.loc.start;program.loc.end=lastToken?lastToken.loc.end:program.loc.end}return program}exports.version=require("./package.json").version;exports.tokenize=tokenize;exports.parse=parse;exports.Syntax=function(){var name,types={};if(typeof Object.create==="function"){types=Object.create(null)}for(name in astNodeTypes){if(astNodeTypes.hasOwnProperty(name)){types[name]=astNodeTypes[name]}}if(typeof Object.freeze==="function"){Object.freeze(types)}return types}();exports.VisitorKeys=function(){var visitorKeys=require("./lib/visitor-keys");var name,keys={};if(typeof Object.create==="function"){keys=Object.create(null)}for(name in visitorKeys){if(visitorKeys.hasOwnProperty(name)){keys[name]=visitorKeys[name]}}if(typeof Object.freeze==="function"){Object.freeze(keys)}return keys}()},{"./lib/ast-node-types":4,"./lib/comment-attachment":5,"./lib/token-translator":6,"./lib/visitor-keys":7,"./package.json":8,acorn:3,"acorn-jsx/inject":1}]},{},[]);(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.eslint=f()}})(function(){var define,module,exports;return function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o=0){var next_line=out.indexOf("\n",idx+1);out=out.substring(next_line+1)}this.stack=out}}};util.inherits(assert.AssertionError,Error);function truncate(s,n){if(typeof s==="string"){return s.length=0;i--){if(ka[i]!==kb[i])return false}for(i=ka.length-1;i>=0;i--){key=ka[i];if(!_deepEqual(a[key],b[key],strict,actualVisitedObjects))return false}return true}assert.notDeepEqual=function notDeepEqual(actual,expected,message){if(_deepEqual(actual,expected,false)){fail(actual,expected,message,"notDeepEqual",assert.notDeepEqual)}};assert.notDeepStrictEqual=notDeepStrictEqual;function notDeepStrictEqual(actual,expected,message){if(_deepEqual(actual,expected,true)){fail(actual,expected,message,"notDeepStrictEqual",notDeepStrictEqual)}}assert.strictEqual=function strictEqual(actual,expected,message){if(actual!==expected){fail(actual,expected,message,"===",assert.strictEqual)}};assert.notStrictEqual=function notStrictEqual(actual,expected,message){if(actual===expected){fail(actual,expected,message,"!==",assert.notStrictEqual)}};function expectedException(actual,expected){if(!actual||!expected){return false}if(Object.prototype.toString.call(expected)=="[object RegExp]"){return expected.test(actual)}try{if(actual instanceof expected){return true}}catch(e){}if(Error.isPrototypeOf(expected)){return false}return expected.call({},actual)===true}function _tryBlock(block){var error;try{block()}catch(e){error=e}return error}function _throws(shouldThrow,block,expected,message){var actual;if(typeof block!=="function"){throw new TypeError('"block" argument must be a function')}if(typeof expected==="string"){message=expected;expected=null}actual=_tryBlock(block);message=(expected&&expected.name?" ("+expected.name+").":".")+(message?" "+message:".");if(shouldThrow&&!actual){fail(actual,expected,"Missing expected exception"+message)}var userProvidedMessage=typeof message==="string";var isUnwantedException=!shouldThrow&&util.isError(actual);var isUnexpectedException=!shouldThrow&&actual&&!expected;if(isUnwantedException&&userProvidedMessage&&expectedException(actual,expected)||isUnexpectedException){fail(actual,expected,"Got unwanted exception"+message)}if(shouldThrow&&actual&&expected&&!expectedException(actual,expected)||!shouldThrow&&actual){throw actual}}assert.throws=function(block,error,message){_throws(true,block,error,message)};assert.doesNotThrow=function(block,error,message){_throws(false,block,error,message)};assert.ifError=function(err){if(err)throw err};var objectKeys=Object.keys||function(obj){var keys=[];for(var key in obj){if(hasOwn.call(obj,key))keys.push(key)}return keys}}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"util/":67}],7:[function(require,module,exports){"use strict";module.exports=balanced;function balanced(a,b,str){if(a instanceof RegExp)a=maybeMatch(a,str);if(b instanceof RegExp)b=maybeMatch(b,str);var r=range(a,b,str);return r&&{start:r[0],end:r[1],pre:str.slice(0,r[0]),body:str.slice(r[0]+a.length,r[1]),post:str.slice(r[1]+b.length)}}function maybeMatch(reg,str){var m=str.match(reg);return m?m[0]:null}balanced.range=range;function range(a,b,str){var begs,beg,left,right,result;var ai=str.indexOf(a);var bi=str.indexOf(b,ai+1);var i=ai;if(ai>=0&&bi>0){begs=[];left=str.length;while(i>=0&&!result){if(i==ai){begs.push(i);ai=str.indexOf(a,i+1)}else if(begs.length==1){result=[begs.pop(),bi]}else{beg=begs.pop();if(beg=0?ai:bi}if(begs.length){result=[left,right]}}return result}},{}],8:[function(require,module,exports){"use strict";var concatMap=require("concat-map");var balanced=require("balanced-match");module.exports=expandTop;var escSlash="\0SLASH"+Math.random()+"\0";var escOpen="\0OPEN"+Math.random()+"\0";var escClose="\0CLOSE"+Math.random()+"\0";var escComma="\0COMMA"+Math.random()+"\0";var escPeriod="\0PERIOD"+Math.random()+"\0";function numeric(str){return parseInt(str,10)==str?parseInt(str,10):str.charCodeAt(0)}function escapeBraces(str){return str.split("\\\\").join(escSlash).split("\\{").join(escOpen).split("\\}").join(escClose).split("\\,").join(escComma).split("\\.").join(escPeriod)}function unescapeBraces(str){return str.split(escSlash).join("\\").split(escOpen).join("{").split(escClose).join("}").split(escComma).join(",").split(escPeriod).join(".")}function parseCommaParts(str){if(!str)return[""];var parts=[];var m=balanced("{","}",str);if(!m)return str.split(",");var pre=m.pre;var body=m.body;var post=m.post;var p=pre.split(",");p[p.length-1]+="{"+body+"}";var postParts=parseCommaParts(post);if(post.length){p[p.length-1]+=postParts.shift();p.push.apply(p,postParts)}parts.push.apply(parts,p);return parts}function expandTop(str){if(!str)return[];if(str.substr(0,2)==="{}"){str="\\{\\}"+str.substr(2)}return expand(escapeBraces(str),true).map(unescapeBraces)}function identity(e){return e}function embrace(str){return"{"+str+"}"}function isPadded(el){return/^-?0\d/.test(el)}function lte(i,y){return i<=y}function gte(i,y){return i>=y}function expand(str,isTop){var expansions=[];var m=balanced("{","}",str);if(!m||/\$$/.test(m.pre))return[str];var isNumericSequence=/^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body);var isAlphaSequence=/^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body);var isSequence=isNumericSequence||isAlphaSequence;var isOptions=m.body.indexOf(",")>=0;if(!isSequence&&!isOptions){if(m.post.match(/,.*\}/)){str=m.pre+"{"+m.body+escClose+m.post;return expand(str)}return[str]}var n;if(isSequence){n=m.body.split(/\.\./)}else{n=parseCommaParts(m.body);if(n.length===1){n=expand(n[0],false).map(embrace);if(n.length===1){var post=m.post.length?expand(m.post,false):[""];return post.map(function(p){return m.pre+n[0]+p})}}}var pre=m.pre;var post=m.post.length?expand(m.post,false):[""];var N;if(isSequence){var x=numeric(n[0]);var y=numeric(n[1]);var width=Math.max(n[0].length,n[1].length);var incr=n.length==3?Math.abs(numeric(n[2])):1;var test=lte;var reverse=y0){var z=new Array(need+1).join("0");if(i<0)c="-"+z+c.slice(1);else c=z+c}}}N.push(c)}}else{N=concatMap(n,function(el){return expand(el,false)})}for(var j=0;j=31||typeof navigator!=="undefined"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}exports.formatters.j=function(v){try{return JSON.stringify(v)}catch(err){return"[UnexpectedJSONParseError]: "+err.message}};function formatArgs(args){var useColors=this.useColors;args[0]=(useColors?"%c":"")+this.namespace+(useColors?" %c":" ")+args[0]+(useColors?"%c ":" ")+"+"+exports.humanize(this.diff);if(!useColors)return;var c="color: "+this.color;args.splice(1,0,c,"color: inherit");var index=0;var lastC=0;args[0].replace(/%[a-zA-Z%]/g,function(match){if("%%"===match)return;index++;if("%c"===match){lastC=index}});args.splice(lastC,0,c)}function log(){return"object"===(typeof console==="undefined"?"undefined":_typeof(console))&&console.log&&Function.prototype.apply.call(console.log,console,arguments)}function save(namespaces){try{if(null==namespaces){exports.storage.removeItem("debug")}else{exports.storage.debug=namespaces}}catch(e){}}function load(){var r;try{r=exports.storage.debug}catch(e){}if(!r&&typeof process!=="undefined"&&"env"in process){r=process.env.DEBUG}return r}exports.enable(load());function localstorage(){try{return window.localStorage}catch(e){}}}).call(this,require("_process"))},{"./debug":11,_process:61}],11:[function(require,module,exports){"use strict";exports=module.exports=createDebug.debug=createDebug["default"]=createDebug;exports.coerce=coerce;exports.disable=disable;exports.enable=enable;exports.enabled=enabled;exports.humanize=require("ms");exports.names=[];exports.skips=[];exports.formatters={};var prevTime;function selectColor(namespace){var hash=0,i;for(i in namespace){hash=(hash<<5)-hash+namespace.charCodeAt(i);hash|=0}return exports.colors[Math.abs(hash)%exports.colors.length]}function createDebug(namespace){function debug(){if(!debug.enabled)return;var self=debug;var curr=+new Date;var ms=curr-(prevTime||curr);self.diff=ms;self.prev=prevTime;self.curr=curr;prevTime=curr;var args=new Array(arguments.length);for(var i=0;i=97&&ch<=122||ch>=65&&ch<=90||ch>=48&&ch<=57}function isParamTitle(title){return title==="param"||title==="argument"||title==="arg"}function isReturnTitle(title){return title==="return"||title==="returns"}function isProperty(title){return title==="property"||title==="prop"}function isNameParameterRequired(title){return isParamTitle(title)||isProperty(title)||title==="alias"||title==="this"||title==="mixes"||title==="requires"}function isAllowedName(title){return isNameParameterRequired(title)||title==="const"||title==="constant"}function isAllowedNested(title){return isProperty(title)||isParamTitle(title)}function isAllowedOptional(title){return isProperty(title)||isParamTitle(title)}function isTypeParameterRequired(title){return isParamTitle(title)||isReturnTitle(title)||title==="define"||title==="enum"||title==="implements"||title==="this"||title==="type"||title==="typedef"||isProperty(title)}function isAllowedType(title){return isTypeParameterRequired(title)||title==="throws"||title==="const"||title==="constant"||title==="namespace"||title==="member"||title==="var"||title==="module"||title==="constructor"||title==="class"||title==="extends"||title==="augments"||title==="public"||title==="private"||title==="protected"}function trim(str){return str.replace(/^\s+/,"").replace(/\s+$/,"")}function unwrapComment(doc){var BEFORE_STAR=0,STAR=1,AFTER_STAR=2,index,len,mode,result,ch;doc=doc.replace(/^\/\*\*?/,"").replace(/\*\/$/,"");index=0;len=doc.length;mode=BEFORE_STAR;result="";while(index=last){return null}if(allowBrackets&&source.charCodeAt(index)===91){useBrackets=true;name=advance()}if(!esutils.code.isIdentifierStartES5(source.charCodeAt(index))){return null}name+=scanIdentifier(last);if(allowNestedParams){if(source.charCodeAt(index)===58&&(name==="module"||name==="external"||name==="event")){name+=advance();name+=scanIdentifier(last)}if(source.charCodeAt(index)===91&&source.charCodeAt(index+1)===93){name+=advance();name+=advance()}while(source.charCodeAt(index)===46||source.charCodeAt(index)===47||source.charCodeAt(index)===35||source.charCodeAt(index)===45||source.charCodeAt(index)===126){name+=advance();name+=scanIdentifier(last)}}if(useBrackets){skipWhiteSpace(last);if(source.charCodeAt(index)===61){name+=advance();skipWhiteSpace(last);var ch;var bracketDepth=1;while(index=last||source.charCodeAt(index)!==93){return null}name+=advance()}return name}function skipToTag(){while(index=length){return false}utility.assert(source.charCodeAt(index)===64);return true}function TagParser(options,title){this._options=options;this._title=title.toLowerCase();this._tag={title:title,description:null};if(this._options.lineNumbers){this._tag.lineNumber=lineNumber}this._last=0;this._extra={}}TagParser.prototype.addError=function addError(errorText){var args=Array.prototype.slice.call(arguments,1),msg=errorText.replace(/%(\d)/g,function(whole,index){utility.assert(index=0&&captionEnd>=0){this._tag.caption=trim(description.substring(captionStart+captionStartTag.length,captionEnd));this._tag.description=trim(description.substring(captionEnd+captionEndTag.length))}else{this._tag.description=description}return true};TagParser.prototype.parseKind=function parseKind(){var kind,kinds;kinds={class:true,constant:true,event:true,external:true,file:true,function:true,member:true,mixin:true,module:true,namespace:true,typedef:true};kind=trim(sliceSource(source,index,this._last));this._tag.kind=kind;if(!hasOwnProperty(kinds,kind)){if(!this.addError("Invalid kind name '%0'",kind)){return false}}return true};TagParser.prototype.parseAccess=function parseAccess(){var access;access=trim(sliceSource(source,index,this._last));this._tag.access=access;if(access!=="private"&&access!=="protected"&&access!=="public"){if(!this.addError("Invalid access name '%0'",access)){return false}}return true};TagParser.prototype.parseThis=function parseAccess(){var value=trim(sliceSource(source,index,this._last));if(value&&value.charAt(0)==="{"){var gotType=this.parseType();if(gotType&&this._tag.type.type==="NameExpression"){this._tag.name=this._tag.type.name;return true}else{return this.addError("Invalid name for this")}}else{return this.parseNamePath()}};TagParser.prototype.parseVariation=function parseVariation(){var variation,text;text=trim(sliceSource(source,index,this._last));variation=parseFloat(text,10);this._tag.variation=variation;if(isNaN(variation)){if(!this.addError("Invalid variation '%0'",text)){return false}}return true};TagParser.prototype.ensureEnd=function(){var shouldBeEmpty=trim(sliceSource(source,index,this._last));if(shouldBeEmpty){if(!this.addError("Unknown content '%0'",shouldBeEmpty)){return false}}return true};TagParser.prototype.epilogue=function epilogue(){var description;description=this._tag.description;if(isAllowedOptional(this._title)&&!this._tag.type&&description&&description.charAt(0)==="["){this._tag.type=this._extra.name;if(!this._tag.name){this._tag.name=undefined}if(!sloppy){if(!this.addError("Missing or invalid tag name")){return false}}}return true};Rules={access:["parseAccess"],alias:["parseNamePath","ensureEnd"],augments:["parseType","parseNamePathOptional","ensureEnd"],constructor:["parseType","parseNamePathOptional","ensureEnd"],class:["parseType","parseNamePathOptional","ensureEnd"],extends:["parseType","parseNamePathOptional","ensureEnd"],example:["parseCaption"],deprecated:["parseDescription"],global:["ensureEnd"],inner:["ensureEnd"],instance:["ensureEnd"],kind:["parseKind"],mixes:["parseNamePath","ensureEnd"],mixin:["parseNamePathOptional","ensureEnd"],member:["parseType","parseNamePathOptional","ensureEnd"],method:["parseNamePathOptional","ensureEnd"],module:["parseType","parseNamePathOptional","ensureEnd"],func:["parseNamePathOptional","ensureEnd"],function:["parseNamePathOptional","ensureEnd"],var:["parseType","parseNamePathOptional","ensureEnd"],name:["parseNamePath","ensureEnd"],namespace:["parseType","parseNamePathOptional","ensureEnd"],private:["parseType","parseDescription"],protected:["parseType","parseDescription"],public:["parseType","parseDescription"],readonly:["ensureEnd"],requires:["parseNamePath","ensureEnd"],since:["parseDescription"],static:["ensureEnd"],summary:["parseDescription"],this:["parseThis","ensureEnd"],todo:["parseDescription"],typedef:["parseType","parseNamePathOptional"],variation:["parseVariation"],version:["parseDescription"]};TagParser.prototype.parse=function parse(){var i,iz,sequences,method;if(!this._title){if(!this.addError("Missing or invalid title")){return null}}this._last=seekContent(this._title);if(hasOwnProperty(Rules,this._title)){sequences=Rules[this._title]}else{sequences=["parseType","parseName","parseDescription","epilogue"]}for(i=0,iz=sequences.length;i<(){}[],:*|?!=".indexOf(String.fromCharCode(ch))===-1&&!esutils.code.isWhiteSpace(ch)&&!esutils.code.isLineTerminator(ch)}function Context(previous,index,token,value){this._previous=previous;this._index=index;this._token=token;this._value=value}Context.prototype.restore=function(){previous=this._previous;index=this._index;token=this._token;value=this._value};Context.save=function(){return new Context(previous,index,token,value)};function advance(){var ch=source.charAt(index);index+=1;return ch}function scanHexEscape(prefix){var i,len,ch,code=0;len=prefix==="u"?4:2;for(i=0;i=0&&index=length){return Token.ILLEGAL}ch2=source.charCodeAt(index+1);if(ch2===60){break}}value+=advance()}return Token.NAME}function next(){var ch;previous=index;while(index=length){token=Token.EOF;return token}ch=source.charCodeAt(index);switch(ch){case 39:case 34:token=scanString();return token;case 58:advance();token=Token.COLON;return token;case 44:advance();token=Token.COMMA;return token;case 40:advance();token=Token.LPAREN;return token;case 41:advance();token=Token.RPAREN;return token;case 91:advance();token=Token.LBRACK;return token;case 93:advance();token=Token.RBRACK;return token;case 123:advance();token=Token.LBRACE;return token;case 125:advance();token=Token.RBRACE;return token;case 46:if(index+1=2.0.0 <3.0.0",type:"range"},"/var/lib/jenkins/workspace/Releases/ESLint Release/eslint"]],_from:"doctrine@>=2.0.0 <3.0.0",_id:"doctrine@2.0.0",_inCache:true,_location:"/doctrine",_nodeVersion:"4.4.2",_npmOperationalInternal:{host:"packages-12-west.internal.npmjs.com",tmp:"tmp/doctrine-2.0.0.tgz_1479232728285_0.34204454137943685"},_npmUser:{name:"nzakas",email:"nicholas@nczconsulting.com"},_npmVersion:"2.15.0",_phantomChildren:{},_requested:{raw:"doctrine@^2.0.0",scope:null,escapedName:"doctrine",name:"doctrine",rawSpec:"^2.0.0",spec:">=2.0.0 <3.0.0",type:"range"},_requiredBy:["/"],_resolved:"https://registry.npmjs.org/doctrine/-/doctrine-2.0.0.tgz",_shasum:"c73d8d2909d22291e1a007a395804da8b665fe63",_shrinkwrap:null,_spec:"doctrine@^2.0.0",_where:"/var/lib/jenkins/workspace/Releases/ESLint Release/eslint",bugs:{url:"https://github.com/eslint/doctrine/issues"},dependencies:{esutils:"^2.0.2",isarray:"^1.0.0"},description:"JSDoc parser",devDependencies:{coveralls:"^2.11.2",dateformat:"^1.0.11",eslint:"^1.10.3","eslint-release":"^0.10.0",istanbul:"^0.4.1",linefix:"^0.1.1",mocha:"^2.3.3","npm-license":"^0.3.1",semver:"^5.0.3",shelljs:"^0.5.3","shelljs-nodecli":"^0.1.1",should:"^5.0.1"},directories:{lib:"./lib"},dist:{shasum:"c73d8d2909d22291e1a007a395804da8b665fe63",tarball:"https://registry.npmjs.org/doctrine/-/doctrine-2.0.0.tgz"},engines:{node:">=0.10.0"},files:["lib","LICENSE.BSD","LICENSE.closure-compiler","LICENSE.esprima","README.md"],gitHead:"46c600f27f54b3ab6b0b8a9ac9f97c807ffa95ef",homepage:"https://github.com/eslint/doctrine",license:"Apache-2.0",main:"lib/doctrine.js",maintainers:[{name:"Nicholas C. Zakas",email:"nicholas+npm@nczconsulting.com",url:"https://www.nczonline.net"},{name:"Yusuke Suzuki",email:"utatane.tea@gmail.com",url:"https://github.com/Constellation"}],name:"doctrine",optionalDependencies:{},readme:'[![NPM version][npm-image]][npm-url]\n[![build status][travis-image]][travis-url]\n[![Test coverage][coveralls-image]][coveralls-url]\n[![Downloads][downloads-image]][downloads-url]\n[![Join the chat at https://gitter.im/eslint/doctrine](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/eslint/doctrine?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n# Doctrine\n\nDoctrine is a [JSDoc](http://usejsdoc.org) parser that parses documentation comments from JavaScript (you need to pass in the comment, not a whole JavaScript file).\n\n## Installation\n\nYou can install Doctrine using [npm](https://npmjs.com):\n\n```\n$ npm install doctrine --save-dev\n```\n\nDoctrine can also be used in web browsers using [Browserify](http://browserify.org).\n\n## Usage\n\nRequire doctrine inside of your JavaScript:\n\n```js\nvar doctrine = require("doctrine");\n```\n\n### parse()\n\nThe primary method is `parse()`, which accepts two arguments: the JSDoc comment to parse and an optional options object. The available options are:\n\n* `unwrap` - set to `true` to delete the leading `/**`, any `*` that begins a line, and the trailing `*/` from the source text. Default: `false`.\n* `tags` - an array of tags to return. When specified, Doctrine returns only tags in this array. For example, if `tags` is `["param"]`, then only `@param` tags will be returned. Default: `null`.\n* `recoverable` - set to `true` to keep parsing even when syntax errors occur. Default: `false`.\n* `sloppy` - set to `true` to allow optional parameters to be specified in brackets (`@param {string} [foo]`). Default: `false`.\n* `lineNumbers` - set to `true` to add `lineNumber` to each node, specifying the line on which the node is found in the source. Default: `false`.\n\nHere\'s a simple example:\n\n```js\nvar ast = doctrine.parse(\n [\n "/**",\n " * This function comment is parsed by doctrine",\n " * @param {{ok:String}} userName",\n "*/"\n ].join(\'\\n\'), { unwrap: true });\n```\n\nThis example returns the following AST:\n\n {\n "description": "This function comment is parsed by doctrine",\n "tags": [\n {\n "title": "param",\n "description": null,\n "type": {\n "type": "RecordType",\n "fields": [\n {\n "type": "FieldType",\n "key": "ok",\n "value": {\n "type": "NameExpression",\n "name": "String"\n }\n }\n ]\n },\n "name": "userName"\n }\n ]\n }\n\nSee the [demo page](http://eslint.org/doctrine/demo/) more detail.\n\n## Team\n\nThese folks keep the project moving and are resources for help:\n\n* Nicholas C. Zakas ([@nzakas](https://github.com/nzakas)) - project lead\n* Yusuke Suzuki ([@constellation](https://github.com/constellation)) - reviewer\n\n## Contributing\n\nIssues and pull requests will be triaged and responded to as quickly as possible. We operate under the [ESLint Contributor Guidelines](http://eslint.org/docs/developer-guide/contributing), so please be sure to read them before contributing. If you\'re not sure where to dig in, check out the [issues](https://github.com/eslint/doctrine/issues).\n\n## Frequently Asked Questions\n\n### Can I pass a whole JavaScript file to Doctrine?\n\nNo. Doctrine can only parse JSDoc comments, so you\'ll need to pass just the JSDoc comment to Doctrine in order to work.\n\n\n### License\n\n#### doctrine\n\nCopyright JS Foundation and other contributors, https://js.foundation\n\nLicensed under the Apache License, Version 2.0 (the "License");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an "AS IS" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\n#### esprima\n\nsome of functions is derived from esprima\n\nCopyright (C) 2012, 2011 [Ariya Hidayat](http://ariya.ofilabs.com/about)\n (twitter: [@ariyahidayat](http://twitter.com/ariyahidayat)) and other contributors.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n * Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n\n * Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the\n documentation and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\nARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY\nDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\nON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\nTHIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n\n#### closure-compiler\n\nsome of extensions is derived from closure-compiler\n\nApache License\nVersion 2.0, January 2004\nhttp://www.apache.org/licenses/\n\n\n### Where to ask for help?\n\nJoin our [Chatroom](https://gitter.im/eslint/doctrine)\n\n[npm-image]: https://img.shields.io/npm/v/doctrine.svg?style=flat-square\n[npm-url]: https://www.npmjs.com/package/doctrine\n[travis-image]: https://img.shields.io/travis/eslint/doctrine/master.svg?style=flat-square\n[travis-url]: https://travis-ci.org/eslint/doctrine\n[coveralls-image]: https://img.shields.io/coveralls/eslint/doctrine/master.svg?style=flat-square\n[coveralls-url]: https://coveralls.io/r/eslint/doctrine?branch=master\n[downloads-image]: http://img.shields.io/npm/dm/doctrine.svg?style=flat-square\n[downloads-url]: https://www.npmjs.com/package/doctrine\n',readmeFilename:"README.md",repository:{type:"git",url:"git+https://github.com/eslint/doctrine.git"},scripts:{alpharelease:"eslint-prerelease alpha",betarelease:"eslint-prerelease beta","ci-release":"eslint-ci-release",lint:"eslint lib/",release:"eslint-release",test:"npm run lint && node Makefile.js test"},version:"2.0.0"}},{}],16:[function(require,module,exports){"use strict";function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return call&&(typeof call==="object"||typeof call==="function")?call:self}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function, not "+typeof superClass)}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}var Variable=require("./variable");var Definition=function Definition(type,name,node,parent,index,kind){_classCallCheck(this,Definition);this.type=type;this.name=name;this.node=node;this.parent=parent;this.index=index;this.kind=kind};var ParameterDefinition=function(_Definition){_inherits(ParameterDefinition,_Definition);function ParameterDefinition(name,node,index,rest){_classCallCheck(this,ParameterDefinition);var _this=_possibleConstructorReturn(this,(ParameterDefinition.__proto__||Object.getPrototypeOf(ParameterDefinition)).call(this,Variable.Parameter,name,node,null,index,null));_this.rest=rest;return _this}return ParameterDefinition}(Definition);module.exports={ParameterDefinition:ParameterDefinition,Definition:Definition}},{"./variable":23}],17:[function(require,module,exports){"use strict";var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj};var assert=require("assert");var ScopeManager=require("./scope-manager");var Referencer=require("./referencer");var Reference=require("./reference");var Variable=require("./variable");var Scope=require("./scope").Scope;var version=require("../package.json").version;function defaultOptions(){return{optimistic:false,directive:false,nodejsScope:false,impliedStrict:false,sourceType:"script",ecmaVersion:5,childVisitorKeys:null,fallback:"iteration"}}function updateDeeply(target,override){function isHashObject(value){return(typeof value==="undefined"?"undefined":_typeof(value))==="object"&&value instanceof Object&&!(value instanceof Array)&&!(value instanceof RegExp)}for(var key in override){if(override.hasOwnProperty(key)){var val=override[key];if(isHashObject(val)){if(isHashObject(target[key])){updateDeeply(target[key],val)}else{target[key]=updateDeeply({},val)}}else{target[key]=val}}}return target}function analyze(tree,providedOptions){var options=updateDeeply(defaultOptions(),providedOptions);var scopeManager=new ScopeManager(options);var referencer=new Referencer(options,scopeManager);referencer.visit(tree);assert(scopeManager.__currentScope===null,"currentScope should be null.");return scopeManager}module.exports={version:version,Reference:Reference,Variable:Variable,Scope:Scope,ScopeManager:ScopeManager,analyze:analyze}},{"../package.json":24,"./reference":19,"./referencer":20,"./scope":22,"./scope-manager":21,"./variable":23,assert:6}],18:[function(require,module,exports){"use strict";var _createClass=function(){function defineProperties(target,props){for(var i=0;i=5}},{key:"__get",value:function __get(node){return this.__nodeToScope.get(node)}},{key:"getDeclaredVariables",value:function getDeclaredVariables(node){return this.__declaredVariables.get(node)||[]}},{key:"acquire",value:function acquire(node,inner){function predicate(testScope){if(testScope.type==="function"&&testScope.functionExpressionScope){return false}if(testScope.type==="TDZ"){return false}return true}var scopes=this.__get(node);if(!scopes||scopes.length===0){return null}if(scopes.length===1){return scopes[0]}if(inner){for(var i=scopes.length-1;i>=0;--i){var scope=scopes[i];if(predicate(scope)){return scope}}}else{for(var _i=0,iz=scopes.length;_i=6}}]);return ScopeManager}();module.exports=ScopeManager},{"./scope":22,assert:6}],22:[function(require,module,exports){"use strict";var _get=function get(object,property,receiver){if(object===null)object=Function.prototype;var desc=Object.getOwnPropertyDescriptor(object,property);if(desc===undefined){var parent=Object.getPrototypeOf(object);if(parent===null){return undefined}else{return get(parent,property,receiver)}}else if("value"in desc){return desc.value}else{var getter=desc.get;if(getter===undefined){return undefined}return getter.call(receiver)}};var _createClass=function(){function defineProperties(target,props){for(var i=0;i0&&defs.every(shouldBeStatically)}},{key:"__staticCloseRef",value:function __staticCloseRef(ref){if(!this.__resolve(ref)){this.__delegateToUpperScope(ref)}}},{key:"__dynamicCloseRef",value:function __dynamicCloseRef(ref){var current=this;do{current.through.push(ref);current=current.upper}while(current)}},{key:"__globalCloseRef",value:function __globalCloseRef(ref){if(this.__shouldStaticallyCloseForGlobal(ref)){this.__staticCloseRef(ref)}else{this.__dynamicCloseRef(ref)}}},{key:"__close",value:function __close(scopeManager){var closeRef=void 0;if(this.__shouldStaticallyClose(scopeManager)){closeRef=this.__staticCloseRef}else if(this.type!=="global"){closeRef=this.__dynamicCloseRef}else{closeRef=this.__globalCloseRef}for(var i=0,iz=this.__left.length;i=3.7.1 <4.0.0",type:"range"},"/var/lib/jenkins/workspace/Releases/ESLint Release/eslint"]],_from:"eslint-scope@>=3.7.1 <4.0.0",_id:"eslint-scope@3.7.1",_inCache:true,_location:"/eslint-scope",_nodeVersion:"4.3.1",_npmOperationalInternal:{host:"packages-18-east.internal.npmjs.com",tmp:"tmp/eslint-scope-3.7.1.tgz_1492031610481_0.544424896594137"},_npmUser:{name:"ivolodin",email:"ivolodin@gmail.com"},_npmVersion:"2.14.12",_phantomChildren:{},_requested:{raw:"eslint-scope@^3.7.1",scope:null,escapedName:"eslint-scope",name:"eslint-scope",rawSpec:"^3.7.1",spec:">=3.7.1 <4.0.0",type:"range"},_requiredBy:["/"],_resolved:"https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz",_shasum:"3d63c3edfda02e06e01a452ad88caacc7cdcb6e8",_shrinkwrap:null,_spec:"eslint-scope@^3.7.1",_where:"/var/lib/jenkins/workspace/Releases/ESLint Release/eslint",bugs:{url:"https://github.com/eslint/eslint-scope/issues"},dependencies:{esrecurse:"^4.1.0",estraverse:"^4.1.1"},description:"ECMAScript scope analyzer for ESLint",devDependencies:{chai:"^3.4.1",eslint:"^3.15.0","eslint-config-eslint":"^4.0.0","eslint-release":"^0.10.1",espree:"^3.1.1",istanbul:"^0.4.5",mocha:"^3.2.0","npm-license":"^0.3.3",shelljs:"^0.7.6",typescript:"~2.0.10","typescript-eslint-parser":"^1.0.0"},directories:{},dist:{shasum:"3d63c3edfda02e06e01a452ad88caacc7cdcb6e8",tarball:"https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz"},engines:{node:">=4.0.0"},files:["LICENSE","README.md","lib"],gitHead:"bec1febf351ae7137a62241c18eb78876ee4fb7f",homepage:"http://github.com/eslint/eslint-scope",license:"BSD-2-Clause",main:"lib/index.js",maintainers:[{name:"eslint",email:"nicholas+eslint@nczconsulting.com"},{name:"ivolodin",email:"ivolodin@gmail.com"},{name:"nzakas",email:"nicholas@nczconsulting.com"}],name:"eslint-scope",optionalDependencies:{},readme:"# ESLint Scope\n\nESLint Scope is the [ECMAScript](http://www.ecma-international.org/publications/standards/Ecma-262.htm) scope analyzer used in ESLint. It is a fork of [escope](http://github.com/estools/escope).\n\n## Usage\n\nInstall:\n\n```\nnpm i eslint-scope --save\n```\n\nExample:\n\n```js\nvar eslintScope = require('eslint-scope');\nvar espree = require('espree');\nvar estraverse = require('estraverse');\n\nvar ast = espree.parse(code);\nvar scopeManager = eslintScope.analyze(ast);\n\nvar currentScope = scopeManager.acquire(ast); // global scope\n\nestraverse.traverse(ast, {\n enter: function(node, parent) {\n // do stuff\n\n if (/Function/.test(node.type)) {\n currentScope = scopeManager.acquire(node); // get current function scope\n }\n },\n leave: function(node, parent) {\n if (/Function/.test(node.type)) {\n currentScope = currentScope.upper; // set to parent scope\n }\n\n // do stuff\n }\n});\n```\n\n## Contributing\n\nIssues and pull requests will be triaged and responded to as quickly as possible. We operate under the [ESLint Contributor Guidelines](http://eslint.org/docs/developer-guide/contributing), so please be sure to read them before contributing. If you're not sure where to dig in, check out the [issues](https://github.com/eslint/eslint-scope/issues).\n\n## Build Commands\n\n* `npm test` - run all linting and tests\n* `npm run lint` - run all linting\n\n## License\n\nESLint Scope is licensed under a permissive BSD 2-clause license.\n",readmeFilename:"README.md",repository:{type:"git",url:"git+https://github.com/eslint/eslint-scope.git"},scripts:{alpharelease:"eslint-prerelease alpha",betarelease:"eslint-prerelease beta","ci-release":"eslint-ci-release","gh-release":"eslint-gh-release",lint:"node Makefile.js lint",release:"eslint-release",test:"node Makefile.js test"},version:"3.7.1"}},{}],25:[function(require,module,exports){"use strict";var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj};(function(){var estraverse=require("estraverse");var parser=require("./parser");var isArray=Array.isArray||function isArray(array){return{}.toString.call(array)==="[object Array]"};var LEFT_SIDE={};var RIGHT_SIDE={};function esqueryModule(){function getPath(obj,key){var i,keys=key.split(".");for(i=0;i":return p>selector.value.value;case">=":return p>=selector.value.value}case"sibling":return matches(node,selector.right,ancestry)&&sibling(node,selector.left,ancestry,LEFT_SIDE)||selector.left.subject&&matches(node,selector.left,ancestry)&&sibling(node,selector.right,ancestry,RIGHT_SIDE);case"adjacent":return matches(node,selector.right,ancestry)&&adjacent(node,selector.left,ancestry,LEFT_SIDE)||selector.right.subject&&matches(node,selector.left,ancestry)&&adjacent(node,selector.right,ancestry,RIGHT_SIDE);case"nth-child":return matches(node,selector.right,ancestry)&&nthChild(node,ancestry,function(length){return selector.index.value-1});case"nth-last-child":return matches(node,selector.right,ancestry)&&nthChild(node,ancestry,function(length){return length-selector.index.value});case"class":if(!node.type)return false;switch(selector.name.toLowerCase()){case"statement":if(node.type.slice(-9)==="Statement")return true;case"declaration":return node.type.slice(-11)==="Declaration";case"pattern":if(node.type.slice(-7)==="Pattern")return true;case"expression":return node.type.slice(-10)==="Expression"||node.type==="Literal"||node.type==="Identifier";case"function":return node.type.slice(0,8)==="Function"||node.type==="ArrowFunctionExpression"}throw new Error("Unknown class name: "+selector.name)}throw new Error("Unknown selector type: "+selector.type)}function sibling(node,selector,ancestry,side){var parent=ancestry[0],listProp,startIndex,keys,i,l,k,lowerBound,upperBound;if(!parent){return false}keys=estraverse.VisitorKeys[parent.type];for(i=0,l=keys.length;i0&&matches(listProp[idx-1],selector,ancestry)){return true}if(side===RIGHT_SIDE&&idx=0&&idx===idxFn(listProp.length)){return true}}}return false}function subjects(selector,ancestor){var results,p;if(selector==null||(typeof selector==="undefined"?"undefined":_typeof(selector))!="object"){return[]}if(ancestor==null){ancestor=selector}results=selector.subject?[ancestor]:[];for(p in selector){if(!{}.hasOwnProperty.call(selector,p)){continue}[].push.apply(results,subjects(selector[p],p==="left"?selector[p]:ancestor))}return results}function match(ast,selector){var ancestry=[],results=[],altSubjects,i,l,k,m;if(!selector){return results}altSubjects=subjects(selector);estraverse.traverse(ast,{enter:function enter(node,parent){if(parent!=null){ancestry.unshift(parent)}if(matches(node,selector,ancestry)){if(altSubjects.length){for(i=0,l=altSubjects.length;irightmostFailuresPos){rightmostFailuresPos=pos;rightmostFailuresExpected=[]}rightmostFailuresExpected.push(failure)}function parse_start(){var cacheKey="start@"+pos;var cachedResult=cache[cacheKey];if(cachedResult){pos=cachedResult.nextPos;return cachedResult.result}var result0,result1,result2;var pos0,pos1;pos0=pos;pos1=pos;result0=parse__();if(result0!==null){result1=parse_selectors();if(result1!==null){result2=parse__();if(result2!==null){result0=[result0,result1,result2]}else{result0=null;pos=pos1}}else{result0=null;pos=pos1}}else{result0=null;pos=pos1}if(result0!==null){result0=function(offset,ss){return ss.length===1?ss[0]:{type:"matches",selectors:ss}}(pos0,result0[1])}if(result0===null){pos=pos0}if(result0===null){pos0=pos;result0=parse__();if(result0!==null){result0=function(offset){return void 0}(pos0)}if(result0===null){pos=pos0}}cache[cacheKey]={nextPos:pos,result:result0};return result0}function parse__(){var cacheKey="_@"+pos;var cachedResult=cache[cacheKey];if(cachedResult){pos=cachedResult.nextPos;return cachedResult.result}var result0,result1;result0=[];if(input.charCodeAt(pos)===32){result1=" ";pos++}else{result1=null;if(reportFailures===0){matchFailed('" "')}}while(result1!==null){result0.push(result1);if(input.charCodeAt(pos)===32){result1=" ";pos++}else{result1=null;if(reportFailures===0){matchFailed('" "')}}}cache[cacheKey]={nextPos:pos,result:result0};return result0}function parse_identifierName(){var cacheKey="identifierName@"+pos;var cachedResult=cache[cacheKey];if(cachedResult){pos=cachedResult.nextPos;return cachedResult.result}var result0,result1;var pos0;pos0=pos;if(/^[^ [\],():#!=><~+.]/.test(input.charAt(pos))){result1=input.charAt(pos);pos++}else{result1=null;if(reportFailures===0){matchFailed("[^ [\\],():#!=><~+.]")}}if(result1!==null){result0=[];while(result1!==null){result0.push(result1);if(/^[^ [\],():#!=><~+.]/.test(input.charAt(pos))){result1=input.charAt(pos);pos++}else{result1=null;if(reportFailures===0){matchFailed("[^ [\\],():#!=><~+.]")}}}}else{result0=null}if(result0!==null){result0=function(offset,i){return i.join("")}(pos0,result0)}if(result0===null){pos=pos0}cache[cacheKey]={nextPos:pos,result:result0};return result0}function parse_binaryOp(){var cacheKey="binaryOp@"+pos;var cachedResult=cache[cacheKey];if(cachedResult){pos=cachedResult.nextPos;return cachedResult.result}var result0,result1,result2;var pos0,pos1;pos0=pos;pos1=pos;result0=parse__();if(result0!==null){if(input.charCodeAt(pos)===62){result1=">";pos++}else{result1=null;if(reportFailures===0){matchFailed('">"')}}if(result1!==null){result2=parse__();if(result2!==null){result0=[result0,result1,result2]}else{result0=null;pos=pos1}}else{result0=null;pos=pos1}}else{result0=null;pos=pos1}if(result0!==null){result0=function(offset){return"child"}(pos0)}if(result0===null){pos=pos0}if(result0===null){pos0=pos;pos1=pos;result0=parse__();if(result0!==null){if(input.charCodeAt(pos)===126){result1="~";pos++}else{result1=null;if(reportFailures===0){matchFailed('"~"')}}if(result1!==null){result2=parse__();if(result2!==null){result0=[result0,result1,result2]}else{result0=null;pos=pos1}}else{result0=null;pos=pos1}}else{result0=null;pos=pos1}if(result0!==null){result0=function(offset){return"sibling"}(pos0)}if(result0===null){pos=pos0}if(result0===null){pos0=pos;pos1=pos;result0=parse__();if(result0!==null){if(input.charCodeAt(pos)===43){result1="+";pos++}else{result1=null;if(reportFailures===0){matchFailed('"+"')}}if(result1!==null){result2=parse__();if(result2!==null){result0=[result0,result1,result2]}else{result0=null;pos=pos1}}else{result0=null;pos=pos1}}else{result0=null;pos=pos1}if(result0!==null){result0=function(offset){return"adjacent"}(pos0)}if(result0===null){pos=pos0}if(result0===null){pos0=pos;pos1=pos;if(input.charCodeAt(pos)===32){result0=" ";pos++}else{result0=null;if(reportFailures===0){matchFailed('" "')}}if(result0!==null){result1=parse__();if(result1!==null){result0=[result0,result1]}else{result0=null;pos=pos1}}else{result0=null;pos=pos1}if(result0!==null){result0=function(offset){return"descendant"}(pos0)}if(result0===null){pos=pos0}}}}cache[cacheKey]={nextPos:pos,result:result0};return result0}function parse_selectors(){var cacheKey="selectors@"+pos;var cachedResult=cache[cacheKey];if(cachedResult){pos=cachedResult.nextPos;return cachedResult.result}var result0,result1,result2,result3,result4,result5;var pos0,pos1,pos2;pos0=pos;pos1=pos;result0=parse_selector();if(result0!==null){result1=[];pos2=pos;result2=parse__();if(result2!==null){if(input.charCodeAt(pos)===44){result3=",";pos++}else{result3=null;if(reportFailures===0){matchFailed('","')}}if(result3!==null){result4=parse__();if(result4!==null){result5=parse_selector();if(result5!==null){result2=[result2,result3,result4,result5]}else{result2=null;pos=pos2}}else{result2=null;pos=pos2}}else{result2=null;pos=pos2}}else{result2=null;pos=pos2}while(result2!==null){result1.push(result2);pos2=pos;result2=parse__();if(result2!==null){if(input.charCodeAt(pos)===44){result3=",";pos++}else{result3=null;if(reportFailures===0){matchFailed('","')}}if(result3!==null){result4=parse__();if(result4!==null){result5=parse_selector();if(result5!==null){result2=[result2,result3,result4,result5]}else{result2=null;pos=pos2}}else{result2=null;pos=pos2}}else{result2=null;pos=pos2}}else{result2=null;pos=pos2}}if(result1!==null){result0=[result0,result1]}else{result0=null;pos=pos1}}else{result0=null;pos=pos1}if(result0!==null){result0=function(offset,s,ss){return[s].concat(ss.map(function(s){return s[3]}))}(pos0,result0[0],result0[1])}if(result0===null){pos=pos0}cache[cacheKey]={nextPos:pos,result:result0};return result0}function parse_selector(){var cacheKey="selector@"+pos;var cachedResult=cache[cacheKey];if(cachedResult){pos=cachedResult.nextPos;return cachedResult.result}var result0,result1,result2,result3;var pos0,pos1,pos2;pos0=pos;pos1=pos;result0=parse_sequence();if(result0!==null){result1=[];pos2=pos;result2=parse_binaryOp();if(result2!==null){result3=parse_sequence();if(result3!==null){result2=[result2,result3]}else{result2=null;pos=pos2}}else{result2=null;pos=pos2}while(result2!==null){result1.push(result2);pos2=pos;result2=parse_binaryOp();if(result2!==null){result3=parse_sequence();if(result3!==null){result2=[result2,result3]}else{result2=null;pos=pos2}}else{result2=null;pos=pos2}}if(result1!==null){result0=[result0,result1]}else{result0=null;pos=pos1}}else{result0=null;pos=pos1}if(result0!==null){result0=function(offset,a,ops){return ops.reduce(function(memo,rhs){return{type:rhs[0],left:memo,right:rhs[1]}},a)}(pos0,result0[0],result0[1])}if(result0===null){pos=pos0}cache[cacheKey]={nextPos:pos,result:result0};return result0}function parse_sequence(){var cacheKey="sequence@"+pos;var cachedResult=cache[cacheKey];if(cachedResult){pos=cachedResult.nextPos;return cachedResult.result}var result0,result1,result2;var pos0,pos1;pos0=pos;pos1=pos;if(input.charCodeAt(pos)===33){result0="!";pos++}else{result0=null;if(reportFailures===0){matchFailed('"!"')}}result0=result0!==null?result0:"";if(result0!==null){result2=parse_atom();if(result2!==null){result1=[];while(result2!==null){result1.push(result2);result2=parse_atom()}}else{result1=null}if(result1!==null){result0=[result0,result1]}else{result0=null;pos=pos1}}else{result0=null;pos=pos1}if(result0!==null){result0=function(offset,subject,as){var b=as.length===1?as[0]:{type:"compound",selectors:as};if(subject)b.subject=true;return b}(pos0,result0[0],result0[1])}if(result0===null){pos=pos0}cache[cacheKey]={nextPos:pos,result:result0};return result0}function parse_atom(){var cacheKey="atom@"+pos;var cachedResult=cache[cacheKey];if(cachedResult){pos=cachedResult.nextPos;return cachedResult.result}var result0;result0=parse_wildcard();if(result0===null){result0=parse_identifier();if(result0===null){result0=parse_attr();if(result0===null){result0=parse_field();if(result0===null){result0=parse_negation();if(result0===null){result0=parse_matches();if(result0===null){result0=parse_firstChild();if(result0===null){result0=parse_lastChild();if(result0===null){result0=parse_nthChild();if(result0===null){result0=parse_nthLastChild();if(result0===null){result0=parse_class()}}}}}}}}}}cache[cacheKey]={nextPos:pos,result:result0};return result0}function parse_wildcard(){var cacheKey="wildcard@"+pos;var cachedResult=cache[cacheKey];if(cachedResult){pos=cachedResult.nextPos;return cachedResult.result}var result0;var pos0;pos0=pos;if(input.charCodeAt(pos)===42){result0="*";pos++}else{result0=null;if(reportFailures===0){matchFailed('"*"')}}if(result0!==null){result0=function(offset,a){return{type:"wildcard",value:a}}(pos0,result0)}if(result0===null){pos=pos0}cache[cacheKey]={nextPos:pos,result:result0};return result0}function parse_identifier(){var cacheKey="identifier@"+pos;var cachedResult=cache[cacheKey];if(cachedResult){pos=cachedResult.nextPos;return cachedResult.result}var result0,result1;var pos0,pos1;pos0=pos;pos1=pos;if(input.charCodeAt(pos)===35){result0="#";pos++}else{result0=null;if(reportFailures===0){matchFailed('"#"')}}result0=result0!==null?result0:"";if(result0!==null){result1=parse_identifierName();if(result1!==null){result0=[result0,result1]}else{result0=null;pos=pos1}}else{result0=null;pos=pos1}if(result0!==null){result0=function(offset,i){return{type:"identifier",value:i}}(pos0,result0[1])}if(result0===null){pos=pos0}cache[cacheKey]={nextPos:pos,result:result0};return result0}function parse_attr(){var cacheKey="attr@"+pos;var cachedResult=cache[cacheKey];if(cachedResult){pos=cachedResult.nextPos;return cachedResult.result}var result0,result1,result2,result3,result4;var pos0,pos1;pos0=pos;pos1=pos;if(input.charCodeAt(pos)===91){result0="[";pos++}else{result0=null;if(reportFailures===0){matchFailed('"["')}}if(result0!==null){result1=parse__();if(result1!==null){result2=parse_attrValue();if(result2!==null){result3=parse__();if(result3!==null){if(input.charCodeAt(pos)===93){result4="]";pos++}else{result4=null;if(reportFailures===0){matchFailed('"]"')}}if(result4!==null){result0=[result0,result1,result2,result3,result4]}else{result0=null;pos=pos1}}else{result0=null;pos=pos1}}else{result0=null;pos=pos1}}else{result0=null;pos=pos1}}else{result0=null;pos=pos1}if(result0!==null){result0=function(offset,v){return v}(pos0,result0[2])}if(result0===null){pos=pos0}cache[cacheKey]={nextPos:pos,result:result0};return result0}function parse_attrOps(){var cacheKey="attrOps@"+pos;var cachedResult=cache[cacheKey];if(cachedResult){pos=cachedResult.nextPos;return cachedResult.result}var result0,result1;var pos0,pos1;pos0=pos;pos1=pos;if(/^[><]/.test(input.charAt(pos))){result0=input.charAt(pos);pos++}else{result0=null;if(reportFailures===0){matchFailed("[><]")}}}cache[cacheKey]={nextPos:pos,result:result0};return result0}function parse_attrEqOps(){var cacheKey="attrEqOps@"+pos;var cachedResult=cache[cacheKey];if(cachedResult){pos=cachedResult.nextPos;return cachedResult.result}var result0,result1;var pos0,pos1;pos0=pos;pos1=pos;if(input.charCodeAt(pos)===33){result0="!";pos++}else{result0=null;if(reportFailures===0){matchFailed('"!"')}}result0=result0!==null?result0:"";if(result0!==null){if(input.charCodeAt(pos)===61){result1="=";pos++}else{result1=null;if(reportFailures===0){matchFailed('"="')}}if(result1!==null){result0=[result0,result1]}else{result0=null;pos=pos1}}else{result0=null;pos=pos1}if(result0!==null){result0=function(offset,a){return a+"="}(pos0,result0[0])}if(result0===null){pos=pos0}cache[cacheKey]={nextPos:pos,result:result0};return result0}function parse_attrName(){var cacheKey="attrName@"+pos;var cachedResult=cache[cacheKey];if(cachedResult){pos=cachedResult.nextPos;return cachedResult.result}var result0,result1;var pos0;pos0=pos;result1=parse_identifierName();if(result1===null){if(input.charCodeAt(pos)===46){result1=".";pos++}else{result1=null;if(reportFailures===0){matchFailed('"."')}}}if(result1!==null){result0=[];while(result1!==null){result0.push(result1);result1=parse_identifierName();if(result1===null){if(input.charCodeAt(pos)===46){result1=".";pos++}else{result1=null;if(reportFailures===0){matchFailed('"."')}}}}}else{result0=null}if(result0!==null){result0=function(offset,i){return i.join("")}(pos0,result0)}if(result0===null){pos=pos0}cache[cacheKey]={nextPos:pos,result:result0};return result0}function parse_attrValue(){var cacheKey="attrValue@"+pos;var cachedResult=cache[cacheKey];if(cachedResult){pos=cachedResult.nextPos;return cachedResult.result}var result0,result1,result2,result3,result4;var pos0,pos1;pos0=pos;pos1=pos;result0=parse_attrName();if(result0!==null){result1=parse__();if(result1!==null){result2=parse_attrEqOps();if(result2!==null){result3=parse__();if(result3!==null){result4=parse_type();if(result4===null){result4=parse_regex()}if(result4!==null){result0=[result0,result1,result2,result3,result4]}else{result0=null;pos=pos1}}else{result0=null;pos=pos1}}else{result0=null;pos=pos1}}else{result0=null;pos=pos1}}else{result0=null;pos=pos1}if(result0!==null){result0=function(offset,name,op,value){return{type:"attribute",name:name,operator:op,value:value}}(pos0,result0[0],result0[2],result0[4])}if(result0===null){pos=pos0}if(result0===null){pos0=pos;pos1=pos;result0=parse_attrName();if(result0!==null){result1=parse__();if(result1!==null){result2=parse_attrOps();if(result2!==null){result3=parse__();if(result3!==null){result4=parse_string();if(result4===null){result4=parse_number();if(result4===null){result4=parse_path()}}if(result4!==null){result0=[result0,result1,result2,result3,result4]}else{result0=null;pos=pos1}}else{result0=null;pos=pos1}}else{result0=null;pos=pos1}}else{result0=null;pos=pos1}}else{result0=null;pos=pos1}if(result0!==null){result0=function(offset,name,op,value){return{type:"attribute",name:name,operator:op,value:value}}(pos0,result0[0],result0[2],result0[4])}if(result0===null){pos=pos0}if(result0===null){pos0=pos;result0=parse_attrName();if(result0!==null){result0=function(offset,name){return{type:"attribute",name:name}}(pos0,result0)}if(result0===null){pos=pos0}}}cache[cacheKey]={nextPos:pos,result:result0};return result0}function parse_string(){var cacheKey="string@"+pos;var cachedResult=cache[cacheKey];if(cachedResult){pos=cachedResult.nextPos;return cachedResult.result}var result0,result1,result2,result3;var pos0,pos1,pos2,pos3;pos0=pos;pos1=pos;if(input.charCodeAt(pos)===34){result0='"';pos++}else{result0=null;if(reportFailures===0){matchFailed('"\\""')}}if(result0!==null){result1=[];if(/^[^\\"]/.test(input.charAt(pos))){result2=input.charAt(pos);pos++}else{result2=null;if(reportFailures===0){matchFailed('[^\\\\"]')}}if(result2===null){pos2=pos;pos3=pos;if(input.charCodeAt(pos)===92){result2="\\";pos++}else{result2=null;if(reportFailures===0){matchFailed('"\\\\"')}}if(result2!==null){if(input.length>pos){result3=input.charAt(pos);pos++}else{result3=null;if(reportFailures===0){matchFailed("any character")}}if(result3!==null){result2=[result2,result3]}else{result2=null;pos=pos3}}else{result2=null;pos=pos3}if(result2!==null){result2=function(offset,a,b){return a+b}(pos2,result2[0],result2[1])}if(result2===null){pos=pos2}}while(result2!==null){result1.push(result2);if(/^[^\\"]/.test(input.charAt(pos))){result2=input.charAt(pos);pos++}else{result2=null;if(reportFailures===0){matchFailed('[^\\\\"]')}}if(result2===null){pos2=pos;pos3=pos;if(input.charCodeAt(pos)===92){result2="\\";pos++}else{result2=null;if(reportFailures===0){matchFailed('"\\\\"')}}if(result2!==null){if(input.length>pos){result3=input.charAt(pos);pos++}else{result3=null;if(reportFailures===0){matchFailed("any character")}}if(result3!==null){result2=[result2,result3]}else{result2=null;pos=pos3}}else{result2=null;pos=pos3}if(result2!==null){result2=function(offset,a,b){return a+b}(pos2,result2[0],result2[1])}if(result2===null){pos=pos2}}}if(result1!==null){if(input.charCodeAt(pos)===34){result2='"';pos++}else{result2=null;if(reportFailures===0){matchFailed('"\\""')}}if(result2!==null){result0=[result0,result1,result2]}else{result0=null;pos=pos1}}else{result0=null;pos=pos1}}else{result0=null;pos=pos1}if(result0!==null){result0=function(offset,d){return{type:"literal",value:strUnescape(d.join(""))}}(pos0,result0[1])}if(result0===null){pos=pos0}if(result0===null){pos0=pos;pos1=pos;if(input.charCodeAt(pos)===39){result0="'";pos++}else{result0=null;if(reportFailures===0){matchFailed('"\'"')}}if(result0!==null){result1=[];if(/^[^\\']/.test(input.charAt(pos))){result2=input.charAt(pos);pos++}else{result2=null;if(reportFailures===0){matchFailed("[^\\\\']")}}if(result2===null){pos2=pos;pos3=pos;if(input.charCodeAt(pos)===92){result2="\\";pos++}else{result2=null;if(reportFailures===0){matchFailed('"\\\\"')}}if(result2!==null){if(input.length>pos){result3=input.charAt(pos);pos++}else{result3=null;if(reportFailures===0){matchFailed("any character")}}if(result3!==null){result2=[result2,result3]}else{result2=null;pos=pos3}}else{result2=null;pos=pos3}if(result2!==null){result2=function(offset,a,b){return a+b}(pos2,result2[0],result2[1])}if(result2===null){pos=pos2}}while(result2!==null){result1.push(result2);if(/^[^\\']/.test(input.charAt(pos))){result2=input.charAt(pos);pos++}else{result2=null;if(reportFailures===0){matchFailed("[^\\\\']")}}if(result2===null){pos2=pos;pos3=pos;if(input.charCodeAt(pos)===92){result2="\\";pos++}else{result2=null;if(reportFailures===0){matchFailed('"\\\\"')}}if(result2!==null){if(input.length>pos){result3=input.charAt(pos);pos++}else{result3=null;if(reportFailures===0){matchFailed("any character")}}if(result3!==null){result2=[result2,result3]}else{result2=null;pos=pos3}}else{result2=null;pos=pos3}if(result2!==null){result2=function(offset,a,b){return a+b}(pos2,result2[0],result2[1])}if(result2===null){pos=pos2}}}if(result1!==null){if(input.charCodeAt(pos)===39){result2="'";pos++}else{result2=null;if(reportFailures===0){matchFailed('"\'"')}}if(result2!==null){result0=[result0,result1,result2]}else{result0=null;pos=pos1}}else{result0=null;pos=pos1}}else{result0=null;pos=pos1}if(result0!==null){result0=function(offset,d){return{type:"literal",value:strUnescape(d.join(""))}}(pos0,result0[1])}if(result0===null){pos=pos0}}cache[cacheKey]={nextPos:pos,result:result0};return result0}function parse_number(){var cacheKey="number@"+pos;var cachedResult=cache[cacheKey];if(cachedResult){pos=cachedResult.nextPos;return cachedResult.result}var result0,result1,result2;var pos0,pos1,pos2;pos0=pos;pos1=pos;pos2=pos;result0=[];if(/^[0-9]/.test(input.charAt(pos))){result1=input.charAt(pos);pos++}else{result1=null;if(reportFailures===0){matchFailed("[0-9]")}}while(result1!==null){result0.push(result1);if(/^[0-9]/.test(input.charAt(pos))){result1=input.charAt(pos);pos++}else{result1=null;if(reportFailures===0){matchFailed("[0-9]")}}}if(result0!==null){if(input.charCodeAt(pos)===46){result1=".";pos++}else{result1=null;if(reportFailures===0){matchFailed('"."')}}if(result1!==null){result0=[result0,result1]}else{result0=null;pos=pos2}}else{result0=null;pos=pos2}result0=result0!==null?result0:"";if(result0!==null){if(/^[0-9]/.test(input.charAt(pos))){result2=input.charAt(pos);pos++}else{result2=null;if(reportFailures===0){matchFailed("[0-9]")}}if(result2!==null){result1=[];while(result2!==null){result1.push(result2);if(/^[0-9]/.test(input.charAt(pos))){result2=input.charAt(pos);pos++}else{result2=null;if(reportFailures===0){matchFailed("[0-9]")}}}}else{result1=null}if(result1!==null){result0=[result0,result1]}else{result0=null;pos=pos1}}else{result0=null;pos=pos1}if(result0!==null){result0=function(offset,a,b){return{type:"literal",value:parseFloat((a?a.join(""):"")+b.join(""))}}(pos0,result0[0],result0[1])}if(result0===null){pos=pos0}cache[cacheKey]={nextPos:pos,result:result0};return result0}function parse_path(){var cacheKey="path@"+pos;var cachedResult=cache[cacheKey];if(cachedResult){pos=cachedResult.nextPos;return cachedResult.result}var result0;var pos0;pos0=pos;result0=parse_identifierName();if(result0!==null){result0=function(offset,i){return{type:"literal",value:i}}(pos0,result0)}if(result0===null){pos=pos0}cache[cacheKey]={nextPos:pos,result:result0};return result0}function parse_type(){var cacheKey="type@"+pos;var cachedResult=cache[cacheKey];if(cachedResult){pos=cachedResult.nextPos;return cachedResult.result}var result0,result1,result2,result3,result4;var pos0,pos1;pos0=pos;pos1=pos;if(input.substr(pos,5)==="type("){result0="type(";pos+=5}else{result0=null;if(reportFailures===0){matchFailed('"type("')}}if(result0!==null){result1=parse__();if(result1!==null){if(/^[^ )]/.test(input.charAt(pos))){result3=input.charAt(pos);pos++}else{result3=null;if(reportFailures===0){matchFailed("[^ )]")}}if(result3!==null){result2=[];while(result3!==null){result2.push(result3);if(/^[^ )]/.test(input.charAt(pos))){result3=input.charAt(pos);pos++}else{result3=null;if(reportFailures===0){matchFailed("[^ )]")}}}}else{result2=null}if(result2!==null){result3=parse__();if(result3!==null){if(input.charCodeAt(pos)===41){result4=")";pos++}else{result4=null;if(reportFailures===0){matchFailed('")"')}}if(result4!==null){result0=[result0,result1,result2,result3,result4]}else{result0=null;pos=pos1}}else{result0=null;pos=pos1}}else{result0=null;pos=pos1}}else{result0=null;pos=pos1}}else{result0=null;pos=pos1}if(result0!==null){result0=function(offset,t){return{type:"type",value:t.join("")}}(pos0,result0[2])}if(result0===null){pos=pos0}cache[cacheKey]={nextPos:pos,result:result0};return result0}function parse_regex(){var cacheKey="regex@"+pos;var cachedResult=cache[cacheKey];if(cachedResult){pos=cachedResult.nextPos;return cachedResult.result}var result0,result1,result2;var pos0,pos1;pos0=pos;pos1=pos;if(input.charCodeAt(pos)===47){result0="/";pos++}else{result0=null;if(reportFailures===0){matchFailed('"/"')}}if(result0!==null){if(/^[^\/]/.test(input.charAt(pos))){result2=input.charAt(pos);pos++}else{result2=null;if(reportFailures===0){matchFailed("[^\\/]")}}if(result2!==null){result1=[];while(result2!==null){result1.push(result2);if(/^[^\/]/.test(input.charAt(pos))){result2=input.charAt(pos);pos++}else{result2=null;if(reportFailures===0){matchFailed("[^\\/]")}}}}else{result1=null}if(result1!==null){if(input.charCodeAt(pos)===47){result2="/";pos++}else{result2=null;if(reportFailures===0){matchFailed('"/"')}}if(result2!==null){result0=[result0,result1,result2]}else{result0=null;pos=pos1}}else{result0=null;pos=pos1}}else{result0=null;pos=pos1}if(result0!==null){result0=function(offset,d){return{type:"regexp",value:new RegExp(d.join(""))}}(pos0,result0[1])}if(result0===null){pos=pos0}cache[cacheKey]={nextPos:pos,result:result0};return result0}function parse_field(){var cacheKey="field@"+pos;var cachedResult=cache[cacheKey];if(cachedResult){pos=cachedResult.nextPos;return cachedResult.result}var result0,result1,result2,result3,result4;var pos0,pos1,pos2;pos0=pos;pos1=pos;if(input.charCodeAt(pos)===46){result0=".";pos++}else{result0=null;if(reportFailures===0){matchFailed('"."')}}if(result0!==null){result1=parse_identifierName();if(result1!==null){result2=[];pos2=pos;if(input.charCodeAt(pos)===46){result3=".";pos++}else{result3=null;if(reportFailures===0){matchFailed('"."')}}if(result3!==null){result4=parse_identifierName();if(result4!==null){result3=[result3,result4]}else{result3=null;pos=pos2}}else{result3=null;pos=pos2}while(result3!==null){result2.push(result3);pos2=pos;if(input.charCodeAt(pos)===46){result3=".";pos++}else{result3=null;if(reportFailures===0){matchFailed('"."')}}if(result3!==null){result4=parse_identifierName();if(result4!==null){result3=[result3,result4]}else{result3=null;pos=pos2}}else{result3=null;pos=pos2}}if(result2!==null){result0=[result0,result1,result2]}else{result0=null;pos=pos1}}else{result0=null;pos=pos1}}else{result0=null;pos=pos1}if(result0!==null){result0=function(offset,i,is){return{type:"field",name:is.reduce(function(memo,p){return memo+p[0]+p[1]},i)}}(pos0,result0[1],result0[2])}if(result0===null){pos=pos0}cache[cacheKey]={nextPos:pos,result:result0};return result0}function parse_negation(){var cacheKey="negation@"+pos;var cachedResult=cache[cacheKey];if(cachedResult){pos=cachedResult.nextPos;return cachedResult.result}var result0,result1,result2,result3,result4;var pos0,pos1;pos0=pos;pos1=pos;if(input.substr(pos,5)===":not("){result0=":not(";pos+=5}else{result0=null;if(reportFailures===0){matchFailed('":not("')}}if(result0!==null){result1=parse__();if(result1!==null){result2=parse_selectors();if(result2!==null){result3=parse__();if(result3!==null){if(input.charCodeAt(pos)===41){result4=")";pos++}else{result4=null;if(reportFailures===0){matchFailed('")"')}}if(result4!==null){result0=[result0,result1,result2,result3,result4]}else{result0=null;pos=pos1}}else{result0=null;pos=pos1}}else{result0=null;pos=pos1}}else{result0=null;pos=pos1}}else{result0=null;pos=pos1}if(result0!==null){result0=function(offset,ss){return{type:"not",selectors:ss}}(pos0,result0[2])}if(result0===null){pos=pos0}cache[cacheKey]={nextPos:pos,result:result0};return result0}function parse_matches(){var cacheKey="matches@"+pos;var cachedResult=cache[cacheKey];if(cachedResult){pos=cachedResult.nextPos;return cachedResult.result}var result0,result1,result2,result3,result4;var pos0,pos1;pos0=pos;pos1=pos;if(input.substr(pos,9)===":matches("){result0=":matches(";pos+=9}else{result0=null;if(reportFailures===0){matchFailed('":matches("')}}if(result0!==null){result1=parse__();if(result1!==null){result2=parse_selectors();if(result2!==null){result3=parse__();if(result3!==null){if(input.charCodeAt(pos)===41){result4=")";pos++}else{result4=null;if(reportFailures===0){matchFailed('")"')}}if(result4!==null){result0=[result0,result1,result2,result3,result4]}else{result0=null;pos=pos1}}else{result0=null;pos=pos1}}else{result0=null;pos=pos1}}else{result0=null;pos=pos1}}else{result0=null;pos=pos1}if(result0!==null){result0=function(offset,ss){return{type:"matches",selectors:ss}}(pos0,result0[2])}if(result0===null){pos=pos0}cache[cacheKey]={nextPos:pos,result:result0};return result0}function parse_firstChild(){var cacheKey="firstChild@"+pos;var cachedResult=cache[cacheKey];if(cachedResult){pos=cachedResult.nextPos;return cachedResult.result}var result0;var pos0;pos0=pos;if(input.substr(pos,12)===":first-child"){result0=":first-child";pos+=12}else{result0=null;if(reportFailures===0){matchFailed('":first-child"')}}if(result0!==null){result0=function(offset){return nth(1)}(pos0)}if(result0===null){pos=pos0}cache[cacheKey]={nextPos:pos,result:result0};return result0}function parse_lastChild(){var cacheKey="lastChild@"+pos;var cachedResult=cache[cacheKey];if(cachedResult){pos=cachedResult.nextPos;return cachedResult.result}var result0;var pos0;pos0=pos;if(input.substr(pos,11)===":last-child"){result0=":last-child";pos+=11}else{result0=null;if(reportFailures===0){matchFailed('":last-child"')}}if(result0!==null){result0=function(offset){return nthLast(1)}(pos0)}if(result0===null){pos=pos0}cache[cacheKey]={nextPos:pos,result:result0};return result0}function parse_nthChild(){var cacheKey="nthChild@"+pos;var cachedResult=cache[cacheKey];if(cachedResult){pos=cachedResult.nextPos;return cachedResult.result}var result0,result1,result2,result3,result4;var pos0,pos1;pos0=pos;pos1=pos;if(input.substr(pos,11)===":nth-child("){result0=":nth-child(";pos+=11}else{result0=null;if(reportFailures===0){matchFailed('":nth-child("')}}if(result0!==null){result1=parse__();if(result1!==null){if(/^[0-9]/.test(input.charAt(pos))){result3=input.charAt(pos);pos++}else{result3=null;if(reportFailures===0){matchFailed("[0-9]")}}if(result3!==null){result2=[];while(result3!==null){result2.push(result3);if(/^[0-9]/.test(input.charAt(pos))){result3=input.charAt(pos);pos++}else{result3=null;if(reportFailures===0){matchFailed("[0-9]")}}}}else{result2=null}if(result2!==null){result3=parse__();if(result3!==null){if(input.charCodeAt(pos)===41){result4=")";pos++}else{result4=null;if(reportFailures===0){matchFailed('")"')}}if(result4!==null){result0=[result0,result1,result2,result3,result4]}else{result0=null;pos=pos1}}else{result0=null;pos=pos1}}else{result0=null;pos=pos1}}else{result0=null;pos=pos1}}else{result0=null;pos=pos1}if(result0!==null){result0=function(offset,n){return nth(parseInt(n.join(""),10))}(pos0,result0[2])}if(result0===null){pos=pos0}cache[cacheKey]={nextPos:pos,result:result0};return result0}function parse_nthLastChild(){var cacheKey="nthLastChild@"+pos;var cachedResult=cache[cacheKey];if(cachedResult){pos=cachedResult.nextPos;return cachedResult.result}var result0,result1,result2,result3,result4;var pos0,pos1;pos0=pos;pos1=pos;if(input.substr(pos,16)===":nth-last-child("){result0=":nth-last-child(";pos+=16}else{result0=null;if(reportFailures===0){matchFailed('":nth-last-child("')}}if(result0!==null){result1=parse__();if(result1!==null){if(/^[0-9]/.test(input.charAt(pos))){result3=input.charAt(pos);pos++}else{result3=null;if(reportFailures===0){matchFailed("[0-9]")}}if(result3!==null){result2=[];while(result3!==null){result2.push(result3);if(/^[0-9]/.test(input.charAt(pos))){result3=input.charAt(pos);pos++}else{result3=null;if(reportFailures===0){matchFailed("[0-9]")}}}}else{result2=null}if(result2!==null){result3=parse__();if(result3!==null){if(input.charCodeAt(pos)===41){result4=")";pos++}else{result4=null;if(reportFailures===0){matchFailed('")"')}}if(result4!==null){result0=[result0,result1,result2,result3,result4]}else{result0=null;pos=pos1}}else{result0=null;pos=pos1}}else{result0=null;pos=pos1}}else{result0=null;pos=pos1}}else{result0=null;pos=pos1}if(result0!==null){result0=function(offset,n){return nthLast(parseInt(n.join(""),10))}(pos0,result0[2])}if(result0===null){pos=pos0}cache[cacheKey]={nextPos:pos,result:result0};return result0}function parse_class(){var cacheKey="class@"+pos;var cachedResult=cache[cacheKey];if(cachedResult){pos=cachedResult.nextPos;return cachedResult.result}var result0,result1;var pos0,pos1;pos0=pos;pos1=pos;if(input.charCodeAt(pos)===58){result0=":";pos++}else{result0=null;if(reportFailures===0){matchFailed('":"')}}if(result0!==null){if(input.substr(pos,9).toLowerCase()==="statement"){result1=input.substr(pos,9);pos+=9}else{result1=null;if(reportFailures===0){matchFailed('"statement"')}}if(result1===null){if(input.substr(pos,10).toLowerCase()==="expression"){result1=input.substr(pos,10);pos+=10}else{result1=null;if(reportFailures===0){matchFailed('"expression"')}}if(result1===null){if(input.substr(pos,11).toLowerCase()==="declaration"){result1=input.substr(pos,11);pos+=11}else{result1=null;if(reportFailures===0){matchFailed('"declaration"')}}if(result1===null){if(input.substr(pos,8).toLowerCase()==="function"){result1=input.substr(pos,8);pos+=8}else{result1=null;if(reportFailures===0){matchFailed('"function"')}}if(result1===null){if(input.substr(pos,7).toLowerCase()==="pattern"){result1=input.substr(pos,7);pos+=7}else{result1=null;if(reportFailures===0){matchFailed('"pattern"')}}}}}}if(result1!==null){result0=[result0,result1]}else{result0=null;pos=pos1}}else{result0=null;pos=pos1}if(result0!==null){result0=function(offset,c){return{type:"class",name:c}}(pos0,result0[1])}if(result0===null){pos=pos0}cache[cacheKey]={nextPos:pos,result:result0};return result0}function cleanupExpected(expected){expected.sort();var lastExpected=null;var cleanExpected=[];for(var i=0;i=4.1.0 <5.0.0",type:"range"},"/var/lib/jenkins/workspace/Releases/ESLint Release/eslint/node_modules/eslint-scope"]],_from:"esrecurse@>=4.1.0 <5.0.0",_id:"esrecurse@4.2.0",_inCache:true,_location:"/esrecurse",_nodeVersion:"7.10.0",_npmOperationalInternal:{host:"s3://npm-registry-packages",tmp:"tmp/esrecurse-4.2.0.tgz_1497923921530_0.31889034481719136"},_npmUser:{name:"constellation",email:"utatane.tea@gmail.com"},_npmVersion:"4.2.0",_phantomChildren:{},_requested:{raw:"esrecurse@^4.1.0",scope:null,escapedName:"esrecurse",name:"esrecurse",rawSpec:"^4.1.0",spec:">=4.1.0 <5.0.0",type:"range"},_requiredBy:["/eslint-scope"],_resolved:"https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.0.tgz",_shasum:"fa9568d98d3823f9a41d91e902dcab9ea6e5b163",_shrinkwrap:null,_spec:"esrecurse@^4.1.0",_where:"/var/lib/jenkins/workspace/Releases/ESLint Release/eslint/node_modules/eslint-scope",babel:{presets:["es2015"]},bugs:{url:"https://github.com/estools/esrecurse/issues"},dependencies:{estraverse:"^4.1.0","object-assign":"^4.0.1"},description:"ECMAScript AST recursive visitor",devDependencies:{"babel-cli":"^6.24.1","babel-eslint":"^7.2.3","babel-preset-es2015":"^6.24.1","babel-register":"^6.24.1",chai:"^4.0.2",esprima:"^4.0.0",gulp:"^3.9.0","gulp-bump":"^2.7.0","gulp-eslint":"^4.0.0","gulp-filter":"^5.0.0","gulp-git":"^2.4.1","gulp-mocha":"^4.3.1","gulp-tag-version":"^1.2.1",jsdoc:"^3.3.0-alpha10",minimist:"^1.1.0"},directories:{},dist:{shasum:"fa9568d98d3823f9a41d91e902dcab9ea6e5b163",tarball:"https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.0.tgz"},engines:{node:">=0.10.0"},gitHead:"dabe93e7bb8a92f52b8284b358cd30e230920c96",homepage:"https://github.com/estools/esrecurse",license:"BSD-2-Clause",main:"esrecurse.js",maintainers:[{name:"Yusuke Suzuki",email:"utatane.tea@gmail.com",url:"https://github.com/Constellation"}],name:"esrecurse",optionalDependencies:{},readme:"### Esrecurse [![Build Status](https://travis-ci.org/estools/esrecurse.svg?branch=master)](https://travis-ci.org/estools/esrecurse)\n\nEsrecurse ([esrecurse](https://github.com/estools/esrecurse)) is\n[ECMAScript](https://www.ecma-international.org/publications/standards/Ecma-262.htm)\nrecursive traversing functionality.\n\n### Example Usage\n\nThe following code will output all variables declared at the root of a file.\n\n```javascript\nesrecurse.visit(ast, {\n XXXStatement: function (node) {\n this.visit(node.left);\n // do something...\n this.visit(node.right);\n }\n});\n```\n\nWe can use `Visitor` instance.\n\n```javascript\nvar visitor = new esrecurse.Visitor({\n XXXStatement: function (node) {\n this.visit(node.left);\n // do something...\n this.visit(node.right);\n }\n});\n\nvisitor.visit(ast);\n```\n\nWe can inherit `Visitor` instance easily.\n\n```javascript\nclass Derived extends esrecurse.Visitor {\n constructor()\n {\n super(null);\n }\n\n XXXStatement(node) {\n }\n}\n\n```javascript\nfunction DerivedVisitor() {\n esrecurse.Visitor.call(/* this for constructor */ this /* visitor object automatically becomes this. */);\n}\nutil.inherits(DerivedVisitor, esrecurse.Visitor);\nDerivedVisitor.prototype.XXXStatement = function (node) {\n this.visit(node.left);\n // do something...\n this.visit(node.right);\n};\n```\n\nAnd you can invoke default visiting operation inside custom visit operation.\n\n```javascript\nfunction DerivedVisitor() {\n esrecurse.Visitor.call(/* this for constructor */ this /* visitor object automatically becomes this. */);\n}\nutil.inherits(DerivedVisitor, esrecurse.Visitor);\nDerivedVisitor.prototype.XXXStatement = function (node) {\n // do something...\n this.visitChildren(node);\n};\n```\n\nThe `childVisitorKeys` option does customize the behavoir of `this.visitChildren(node)`.\nWe can use user-defined node types.\n\n```javascript\n// This tree contains a user-defined `TestExpression` node.\nvar tree = {\n type: 'TestExpression',\n\n // This 'argument' is the property containing the other **node**.\n argument: {\n type: 'Literal',\n value: 20\n },\n\n // This 'extended' is the property not containing the other **node**.\n extended: true\n};\nesrecurse.visit(\n ast,\n {\n Literal: function (node) {\n // do something...\n }\n },\n {\n // Extending the existing traversing rules.\n childVisitorKeys: {\n // TargetNodeName: [ 'keys', 'containing', 'the', 'other', '**node**' ]\n TestExpression: ['argument']\n }\n }\n);\n```\n\nWe can use the `fallback` option as well.\nIf the `fallback` option is `\"iteration\"`, `esrecurse` would visit all enumerable properties of unknown nodes.\nPlease note circular references cause the stack overflow. AST might have circular references in additional properties for some purpose (e.g. `node.parent`).\n\n```javascript\nesrecurse.visit(\n ast,\n {\n Literal: function (node) {\n // do something...\n }\n },\n {\n fallback: 'iteration'\n }\n);\n```\n\nIf the `fallback` option is a function, `esrecurse` calls this function to determine the enumerable properties of unknown nodes.\nPlease note circular references cause the stack overflow. AST might have circular references in additional properties for some purpose (e.g. `node.parent`).\n\n```javascript\nesrecurse.visit(\n ast,\n {\n Literal: function (node) {\n // do something...\n }\n },\n {\n fallback: function (node) {\n return Object.keys(node).filter(function(key) {\n return key !== 'argument'\n });\n }\n }\n);\n```\n\n### License\n\nCopyright (C) 2014 [Yusuke Suzuki](https://github.com/Constellation)\n (twitter: [@Constellation](https://twitter.com/Constellation)) and other contributors.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n * Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n\n * Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the\n documentation and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\nARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY\nDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\nON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\nTHIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n",readmeFilename:"README.md",repository:{type:"git",url:"git+https://github.com/estools/esrecurse.git"},scripts:{lint:"gulp lint",test:"gulp travis","unit-test":"gulp test"},version:"4.2.0"}},{}],29:[function(require,module,exports){"use strict";var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj};(function clone(exports){"use strict";var Syntax,isArray,VisitorOption,VisitorKeys,objectCreate,objectKeys,BREAK,SKIP,REMOVE;function ignoreJSHintError(){}isArray=Array.isArray;if(!isArray){isArray=function isArray(array){return Object.prototype.toString.call(array)==="[object Array]"}}function deepCopy(obj){var ret={},key,val;for(key in obj){if(obj.hasOwnProperty(key)){val=obj[key];if((typeof val==="undefined"?"undefined":_typeof(val))==="object"&&val!==null){ret[key]=deepCopy(val)}else{ret[key]=val}}}return ret}function shallowCopy(obj){var ret={},key;for(key in obj){if(obj.hasOwnProperty(key)){ret[key]=obj[key]}}return ret}ignoreJSHintError(shallowCopy);function upperBound(array,func){var diff,len,i,current;len=array.length;i=0;while(len){diff=len>>>1;current=i+diff;if(func(array[current])){len=diff}else{i=current+1;len-=diff+1}}return i}function lowerBound(array,func){var diff,len,i,current;len=array.length;i=0;while(len){diff=len>>>1;current=i+diff;if(func(array[current])){i=current+1;len-=diff+1}else{len=diff}}return i}ignoreJSHintError(lowerBound);objectCreate=Object.create||function(){function F(){}return function(o){F.prototype=o;return new F}}();objectKeys=Object.keys||function(o){var keys=[],key;for(key in o){keys.push(key)}return keys};function extend(to,from){var keys=objectKeys(from),key,i,len;for(i=0,len=keys.length;i=0){key=candidates[current];candidate=node[key];if(!candidate){continue}if(isArray(candidate)){current2=candidate.length;while((current2-=1)>=0){if(!candidate[current2]){continue}if(isProperty(nodeType,candidates[current])){element=new Element(candidate[current2],[key,current2],"Property",null)}else if(isNode(candidate[current2])){element=new Element(candidate[current2],[key,current2],null,null)}else{continue}worklist.push(element)}}else if(isNode(candidate)){worklist.push(new Element(candidate,key,null,null))}}}}};Controller.prototype.replace=function replace(root,visitor){var worklist,leavelist,node,nodeType,target,element,current,current2,candidates,candidate,sentinel,outer,key;function removeElem(element){var i,key,nextElem,parent;if(element.ref.remove()){key=element.ref.key;parent=element.ref.parent;i=worklist.length;while(i--){nextElem=worklist[i];if(nextElem.ref&&nextElem.ref.parent===parent){if(nextElem.ref.key=0){key=candidates[current];candidate=node[key];if(!candidate){continue}if(isArray(candidate)){current2=candidate.length;while((current2-=1)>=0){if(!candidate[current2]){continue}if(isProperty(nodeType,candidates[current])){element=new Element(candidate[current2],[key,current2],"Property",new Reference(candidate,current2))}else if(isNode(candidate[current2])){element=new Element(candidate[current2],[key,current2],null,new Reference(candidate,current2))}else{continue}worklist.push(element)}}else if(isNode(candidate)){worklist.push(new Element(candidate,key,null,new Reference(node,key)))}}}return outer.root};function traverse(root,visitor){var controller=new Controller;return controller.traverse(root,visitor)}function replace(root,visitor){var controller=new Controller;return controller.replace(root,visitor)}function extendCommentRange(comment,tokens){var target;target=upperBound(tokens,function search(token){return token.range[0]>comment.range[0]});comment.extendedRange=[comment.range[0],comment.range[1]];if(target!==tokens.length){comment.extendedRange[1]=tokens[target].range[0]}target-=1;if(target>=0){comment.extendedRange[0]=tokens[target].range[1]}return comment}function attachComments(tree,providedComments,tokens){var comments=[],comment,len,i,cursor;if(!tree.range){throw new Error("attachComments needs range information")}if(!tokens.length){if(providedComments.length){for(i=0,len=providedComments.length;inode.range[0]){break}if(comment.extendedRange[1]===node.range[0]){if(!node.leadingComments){node.leadingComments=[]}node.leadingComments.push(comment);comments.splice(cursor,1)}else{cursor+=1}}if(cursor===comments.length){return VisitorOption.Break}if(comments[cursor].extendedRange[0]>node.range[1]){return VisitorOption.Skip}}});cursor=0;traverse(tree,{leave:function leave(node){var comment;while(cursornode.range[1]){return VisitorOption.Skip}}});return tree}exports.version=require("./package.json").version;exports.Syntax=Syntax;exports.traverse=traverse;exports.replace=replace;exports.attachComments=attachComments;exports.VisitorKeys=VisitorKeys;exports.VisitorOption=VisitorOption;exports.Controller=Controller;exports.cloneEnvironment=function(){return clone({})};return exports})(exports)},{"./package.json":30}],30:[function(require,module,exports){module.exports={_args:[[{raw:"estraverse@^4.2.0",scope:null,escapedName:"estraverse",name:"estraverse",rawSpec:"^4.2.0",spec:">=4.2.0 <5.0.0",type:"range"},"/var/lib/jenkins/workspace/Releases/ESLint Release/eslint"]],_from:"estraverse@>=4.2.0 <5.0.0",_id:"estraverse@4.2.0",_inCache:true,_location:"/estraverse",_nodeVersion:"0.12.9",_npmOperationalInternal:{host:"packages-12-west.internal.npmjs.com",tmp:"tmp/estraverse-4.2.0.tgz_1457646738925_0.7118953282479197"},_npmUser:{name:"nzakas",email:"nicholas@nczconsulting.com"},_npmVersion:"2.14.9",_phantomChildren:{},_requested:{raw:"estraverse@^4.2.0",scope:null,escapedName:"estraverse",name:"estraverse",rawSpec:"^4.2.0",spec:">=4.2.0 <5.0.0",type:"range"},_requiredBy:["/","/eslint-scope","/esquery","/esrecurse"],_resolved:"https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz",_shasum:"0dee3fed31fcd469618ce7342099fc1afa0bdb13",_shrinkwrap:null,_spec:"estraverse@^4.2.0",_where:"/var/lib/jenkins/workspace/Releases/ESLint Release/eslint",bugs:{url:"https://github.com/estools/estraverse/issues"},dependencies:{},description:"ECMAScript JS AST traversal functions",devDependencies:{"babel-preset-es2015":"^6.3.13","babel-register":"^6.3.13",chai:"^2.1.1",espree:"^1.11.0",gulp:"^3.8.10","gulp-bump":"^0.2.2","gulp-filter":"^2.0.0","gulp-git":"^1.0.1","gulp-tag-version":"^1.2.1",jshint:"^2.5.6",mocha:"^2.1.0"},directories:{},dist:{shasum:"0dee3fed31fcd469618ce7342099fc1afa0bdb13",tarball:"https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz"},engines:{node:">=0.10.0"},gitHead:"6f6a4e99653908e859c7c10d04d9518bf4844ede",homepage:"https://github.com/estools/estraverse",license:"BSD-2-Clause",main:"estraverse.js",maintainers:[{name:"Yusuke Suzuki",email:"utatane.tea@gmail.com",url:"http://github.com/Constellation"}],name:"estraverse",optionalDependencies:{},readme:"ERROR: No README data found!",repository:{type:"git",url:"git+ssh://git@github.com/estools/estraverse.git"},scripts:{lint:"jshint estraverse.js",test:"npm run-script lint && npm run-script unit-test","unit-test":"mocha --compilers js:babel-register"},version:"4.2.0"}},{}],31:[function(require,module,exports){"use strict";(function(){"use strict";function isExpression(node){if(node==null){return false}switch(node.type){case"ArrayExpression":case"AssignmentExpression":case"BinaryExpression":case"CallExpression":case"ConditionalExpression":case"FunctionExpression":case"Identifier":case"Literal":case"LogicalExpression":case"MemberExpression":case"NewExpression":case"ObjectExpression":case"SequenceExpression":case"ThisExpression":case"UnaryExpression":case"UpdateExpression":return true}return false}function isIterationStatement(node){if(node==null){return false}switch(node.type){case"DoWhileStatement":case"ForInStatement":case"ForStatement":case"WhileStatement":return true}return false}function isStatement(node){if(node==null){return false}switch(node.type){case"BlockStatement":case"BreakStatement":case"ContinueStatement":case"DebuggerStatement":case"DoWhileStatement":case"EmptyStatement":case"ExpressionStatement":case"ForInStatement":case"ForStatement":case"IfStatement":case"LabeledStatement":case"ReturnStatement":case"SwitchStatement":case"ThrowStatement":case"TryStatement":case"VariableDeclaration":case"WhileStatement":case"WithStatement":return true}return false}function isSourceElement(node){return isStatement(node)||node!=null&&node.type==="FunctionDeclaration"}function trailingStatement(node){switch(node.type){case"IfStatement":if(node.alternate!=null){return node.alternate}return node.consequent;case"LabeledStatement":case"ForStatement":case"ForInStatement":case"WhileStatement":case"WithStatement":return node.body}return null}function isProblematicIfStatement(node){var current;if(node.type!=="IfStatement"){return false}if(node.alternate==null){return false}current=node.consequent;do{if(current.type==="IfStatement"){if(current.alternate==null){return true}}current=trailingStatement(current)}while(current);return false}module.exports={isExpression:isExpression,isStatement:isStatement,isIterationStatement:isIterationStatement,isSourceElement:isSourceElement,isProblematicIfStatement:isProblematicIfStatement,trailingStatement:trailingStatement}})()},{}],32:[function(require,module,exports){"use strict";(function(){"use strict";var ES6Regex,ES5Regex,NON_ASCII_WHITESPACES,IDENTIFIER_START,IDENTIFIER_PART,ch;ES5Regex={NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B2\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA7AD\uA7B0\uA7B1\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB5F\uAB64\uAB65\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/,NonAsciiIdentifierPart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B2\u08E4-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58\u0C59\u0C60-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D60-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA69D\uA69F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA7AD\uA7B0\uA7B1\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB5F\uAB64\uAB65\uABC0-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2D\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/};ES6Regex={NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B2\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA7AD\uA7B0\uA7B1\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB5F\uAB64\uAB65\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDE00-\uDE11\uDE13-\uDE2B\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF5D-\uDF61]|\uD805[\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDE00-\uDE2F\uDE44\uDE80-\uDEAA]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF98]|\uD809[\uDC00-\uDC6E]|[\uD80C\uD840-\uD868\uD86A-\uD86C][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D]|\uD87E[\uDC00-\uDE1D]/,NonAsciiIdentifierPart:/[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B2\u08E4-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58\u0C59\u0C60-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D60-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA69D\uA69F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA7AD\uA7B0\uA7B1\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB5F\uAB64\uAB65\uABC0-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2D\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDD0-\uDDDA\uDE00-\uDE11\uDE13-\uDE37\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF01-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF98]|\uD809[\uDC00-\uDC6E]|[\uD80C\uD840-\uD868\uD86A-\uD86C][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/};function isDecimalDigit(ch){return 48<=ch&&ch<=57}function isHexDigit(ch){return 48<=ch&&ch<=57||97<=ch&&ch<=102||65<=ch&&ch<=70}function isOctalDigit(ch){return ch>=48&&ch<=55}NON_ASCII_WHITESPACES=[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279];function isWhiteSpace(ch){return ch===32||ch===9||ch===11||ch===12||ch===160||ch>=5760&&NON_ASCII_WHITESPACES.indexOf(ch)>=0}function isLineTerminator(ch){return ch===10||ch===13||ch===8232||ch===8233}function fromCodePoint(cp){if(cp<=65535){return String.fromCharCode(cp)}var cu1=String.fromCharCode(Math.floor((cp-65536)/1024)+55296);var cu2=String.fromCharCode((cp-65536)%1024+56320);return cu1+cu2}IDENTIFIER_START=new Array(128);for(ch=0;ch<128;++ch){IDENTIFIER_START[ch]=ch>=97&&ch<=122||ch>=65&&ch<=90||ch===36||ch===95}IDENTIFIER_PART=new Array(128);for(ch=0;ch<128;++ch){IDENTIFIER_PART[ch]=ch>=97&&ch<=122||ch>=65&&ch<=90||ch>=48&&ch<=57||ch===36||ch===95}function isIdentifierStartES5(ch){return ch<128?IDENTIFIER_START[ch]:ES5Regex.NonAsciiIdentifierStart.test(fromCodePoint(ch))}function isIdentifierPartES5(ch){return ch<128?IDENTIFIER_PART[ch]:ES5Regex.NonAsciiIdentifierPart.test(fromCodePoint(ch))}function isIdentifierStartES6(ch){return ch<128?IDENTIFIER_START[ch]:ES6Regex.NonAsciiIdentifierStart.test(fromCodePoint(ch))}function isIdentifierPartES6(ch){return ch<128?IDENTIFIER_PART[ch]:ES6Regex.NonAsciiIdentifierPart.test(fromCodePoint(ch))}module.exports={isDecimalDigit:isDecimalDigit,isHexDigit:isHexDigit,isOctalDigit:isOctalDigit,isWhiteSpace:isWhiteSpace,isLineTerminator:isLineTerminator,isIdentifierStartES5:isIdentifierStartES5,isIdentifierPartES5:isIdentifierPartES5,isIdentifierStartES6:isIdentifierStartES6,isIdentifierPartES6:isIdentifierPartES6}})()},{}],33:[function(require,module,exports){"use strict";(function(){"use strict";var code=require("./code");function isStrictModeReservedWordES6(id){switch(id){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"let":return true;default:return false}}function isKeywordES5(id,strict){if(!strict&&id==="yield"){return false}return isKeywordES6(id,strict)}function isKeywordES6(id,strict){if(strict&&isStrictModeReservedWordES6(id)){return true}switch(id.length){case 2:return id==="if"||id==="in"||id==="do";case 3:return id==="var"||id==="for"||id==="new"||id==="try";case 4:return id==="this"||id==="else"||id==="case"||id==="void"||id==="with"||id==="enum";case 5:return id==="while"||id==="break"||id==="catch"||id==="throw"||id==="const"||id==="yield"||id==="class"||id==="super";case 6:return id==="return"||id==="typeof"||id==="delete"||id==="switch"||id==="export"||id==="import";case 7:return id==="default"||id==="finally"||id==="extends";case 8:return id==="function"||id==="continue"||id==="debugger";case 10:return id==="instanceof";default:return false}}function isReservedWordES5(id,strict){return id==="null"||id==="true"||id==="false"||isKeywordES5(id,strict)}function isReservedWordES6(id,strict){return id==="null"||id==="true"||id==="false"||isKeywordES6(id,strict)}function isRestrictedWord(id){return id==="eval"||id==="arguments"}function isIdentifierNameES5(id){var i,iz,ch;if(id.length===0){return false}ch=id.charCodeAt(0);if(!code.isIdentifierStartES5(ch)){return false}for(i=1,iz=id.length;i=iz){return false}lowCh=id.charCodeAt(i);if(!(56320<=lowCh&&lowCh<=57343)){return false}ch=decodeUtf16(ch,lowCh)}if(!check(ch)){return false}check=code.isIdentifierPartES6}return true}function isIdentifierES5(id,strict){return isIdentifierNameES5(id)&&!isReservedWordES5(id,strict)}function isIdentifierES6(id,strict){return isIdentifierNameES6(id)&&!isReservedWordES6(id,strict)}module.exports={isKeywordES5:isKeywordES5,isKeywordES6:isKeywordES6,isReservedWordES5:isReservedWordES5,isReservedWordES6:isReservedWordES6,isRestrictedWord:isRestrictedWord,isIdentifierNameES5:isIdentifierNameES5,isIdentifierNameES6:isIdentifierNameES6,isIdentifierES5:isIdentifierES5,isIdentifierES6:isIdentifierES6}})()},{"./code":32}],34:[function(require,module,exports){"use strict";(function(){"use strict";exports.ast=require("./ast");exports.code=require("./code");exports.keyword=require("./keyword")})()},{"./ast":31,"./code":32,"./keyword":33}],35:[function(require,module,exports){"use strict";var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj};function EventEmitter(){this._events=this._events||{};this._maxListeners=this._maxListeners||undefined}module.exports=EventEmitter;EventEmitter.EventEmitter=EventEmitter;EventEmitter.prototype._events=undefined;EventEmitter.prototype._maxListeners=undefined;EventEmitter.defaultMaxListeners=10;EventEmitter.prototype.setMaxListeners=function(n){if(!isNumber(n)||n<0||isNaN(n))throw TypeError("n must be a positive number");this._maxListeners=n;return this};EventEmitter.prototype.emit=function(type){var er,handler,len,args,i,listeners;if(!this._events)this._events={};if(type==="error"){if(!this._events.error||isObject(this._events.error)&&!this._events.error.length){er=arguments[1];if(er instanceof Error){throw er}else{var err=new Error('Uncaught, unspecified "error" event. ('+er+")");err.context=er;throw err}}}handler=this._events[type];if(isUndefined(handler))return false;if(isFunction(handler)){switch(arguments.length){case 1:handler.call(this);break;case 2:handler.call(this,arguments[1]);break;case 3:handler.call(this,arguments[1],arguments[2]);break;default:args=Array.prototype.slice.call(arguments,1);handler.apply(this,args)}}else if(isObject(handler)){args=Array.prototype.slice.call(arguments,1);listeners=handler.slice();len=listeners.length;for(i=0;i0&&this._events[type].length>m){this._events[type].warned=true;console.error("(node) warning: possible EventEmitter memory "+"leak detected. %d listeners added. "+"Use emitter.setMaxListeners() to increase limit.",this._events[type].length);if(typeof console.trace==="function"){console.trace()}}}return this};EventEmitter.prototype.on=EventEmitter.prototype.addListener;EventEmitter.prototype.once=function(type,listener){if(!isFunction(listener))throw TypeError("listener must be a function");var fired=false;function g(){this.removeListener(type,g);if(!fired){fired=true;listener.apply(this,arguments)}}g.listener=listener;this.on(type,g);return this};EventEmitter.prototype.removeListener=function(type,listener){var list,position,length,i;if(!isFunction(listener))throw TypeError("listener must be a function");if(!this._events||!this._events[type])return this;list=this._events[type];length=list.length;position=-1;if(list===listener||isFunction(list.listener)&&list.listener===listener){delete this._events[type];if(this._events.removeListener)this.emit("removeListener",type,listener)}else if(isObject(list)){for(i=length;i-- >0;){if(list[i]===listener||list[i].listener&&list[i].listener===listener){position=i;break}}if(position<0)return this;if(list.length===1){list.length=0;delete this._events[type]}else{list.splice(position,1)}if(this._events.removeListener)this.emit("removeListener",type,listener)}return this};EventEmitter.prototype.removeAllListeners=function(type){var key,listeners;if(!this._events)return this;if(!this._events.removeListener){if(arguments.length===0)this._events={};else if(this._events[type])delete this._events[type];return this}if(arguments.length===0){for(key in this._events){if(key==="removeListener")continue;this.removeAllListeners(key)}this.removeAllListeners("removeListener");this._events={};return this}listeners=this._events[type];if(isFunction(listeners)){this.removeListener(type,listeners)}else if(listeners){while(listeners.length){this.removeListener(type,listeners[listeners.length-1])}}delete this._events[type];return this};EventEmitter.prototype.listeners=function(type){var ret;if(!this._events||!this._events[type])ret=[];else if(isFunction(this._events[type]))ret=[this._events[type]];else ret=this._events[type].slice();return ret};EventEmitter.prototype.listenerCount=function(type){if(this._events){var evlistener=this._events[type];if(isFunction(evlistener))return 1;else if(evlistener)return evlistener.length}return 0};EventEmitter.listenerCount=function(emitter,type){return emitter.listenerCount(type)};function isFunction(arg){return typeof arg==="function"}function isNumber(arg){return typeof arg==="number"}function isObject(arg){return(typeof arg==="undefined"?"undefined":_typeof(arg))==="object"&&arg!==null}function isUndefined(arg){return arg===void 0}},{}],36:[function(require,module,exports){"use strict";var util=require("util");var INDENT_START=/[\{\[]/;var INDENT_END=/[\}\]]/;module.exports=function(){var lines=[];var indent=0;var push=function push(str){var spaces="";while(spaces.length 9007199254740992 || "+name+" < -9007199254740992)"};types.string=function(name){return"typeof "+name+' === "string"'};var unique=function unique(array){var list=[];for(var i=0;i1){var factorName=(name|0)!==name?Math.pow(10,name.toString().split(".").pop().length):1;if(factorName>factor)res=true;else res=Math.round(factor*name)%(factor*multipleOf)}else res=name%multipleOf;return!res};var compile=function compile(schema,cache,root,reporter,opts){var fmts=opts?xtend(formats,opts.formats):formats;var scope={unique:unique,formats:fmts,isMultipleOf:isMultipleOf};var verbose=opts?!!opts.verbose:false;var greedy=opts&&opts.greedy!==undefined?opts.greedy:false;var syms={};var gensym=function gensym(name){return name+(syms[name]=(syms[name]||0)+1)};var reversePatterns={};var patterns=function patterns(p){if(reversePatterns[p])return reversePatterns[p];var n=gensym("pattern");scope[n]=new RegExp(p);reversePatterns[p]=n;return n};var vars=["i","j","k","l","m","n","o","p","q","r","s","t","u","v","x","y","z"];var genloop=function genloop(){var v=vars.shift();vars.push(v+v[0]);return v};var visit=function visit(name,node,reporter,filter){var properties=node.properties;var type=node.type;var tuple=false;if(Array.isArray(node.items)){properties={};node.items.forEach(function(item,i){properties[i]=item});type="array";tuple=true}var indent=0;var error=function error(msg,prop,value){validate("errors++");if(reporter===true){validate("if (validate.errors === null) validate.errors = []");if(verbose){validate("validate.errors.push({field:%s,message:%s,value:%s,type:%s})",formatName(prop||name),JSON.stringify(msg),value||name,JSON.stringify(type))}else{validate("validate.errors.push({field:%s,message:%s})",formatName(prop||name),JSON.stringify(msg))}}};if(node.required===true){indent++;validate("if (%s === undefined) {",name);error("is required");validate("} else {")}else{indent++;validate("if (%s !== undefined) {",name)}var valid=[].concat(type).map(function(t){if(t&&!types.hasOwnProperty(t)){throw new Error("Unknown type: "+t)}return types[t||"any"](name)}).join(" || ")||"true";if(valid!=="true"){indent++;validate("if (!(%s)) {",valid);error("is the wrong type");validate("} else {")}if(tuple){if(node.additionalItems===false){validate("if (%s.length > %d) {",name,node.items.length);error("has additional items");validate("}")}else if(node.additionalItems){var i=genloop();validate("for (var %s = %d; %s < %s.length; %s++) {",i,node.items.length,i,name,i);visit(name+"["+i+"]",node.additionalItems,reporter,filter);validate("}")}}if(node.format&&fmts[node.format]){if(type!=="string"&&formats[node.format])validate("if (%s) {",types.string(name));var n=gensym("format");scope[n]=fmts[node.format];if(typeof scope[n]==="function")validate("if (!%s(%s)) {",n,name);else validate("if (!%s.test(%s)) {",n,name);error("must be "+node.format+" format");validate("}");if(type!=="string"&&formats[node.format])validate("}")}if(Array.isArray(node.required)){var checkRequired=function checkRequired(req){var prop=genobj(name,req);validate("if (%s === undefined) {",prop);error("is required",prop);validate("missing++");validate("}")};validate("if ((%s)) {",type!=="object"?types.object(name):"true");validate("var missing = 0");node.required.map(checkRequired);validate("}");if(!greedy){validate("if (missing === 0) {");indent++}}if(node.uniqueItems){if(type!=="array")validate("if (%s) {",types.array(name));validate("if (!(unique(%s))) {",name);error("must be unique");validate("}");if(type!=="array")validate("}")}if(node.enum){var complex=node.enum.some(function(e){return(typeof e==="undefined"?"undefined":_typeof(e))==="object"});var compare=complex?function(e){return"JSON.stringify("+name+")"+" !== JSON.stringify("+JSON.stringify(e)+")"}:function(e){return name+" !== "+JSON.stringify(e)};validate("if (%s) {",node.enum.map(compare).join(" && ")||"false");error("must be an enum value");validate("}")}if(node.dependencies){if(type!=="object")validate("if (%s) {",types.object(name));Object.keys(node.dependencies).forEach(function(key){var deps=node.dependencies[key];if(typeof deps==="string")deps=[deps];var exists=function exists(k){return genobj(name,k)+" !== undefined"};if(Array.isArray(deps)){validate("if (%s !== undefined && !(%s)) {",genobj(name,key),deps.map(exists).join(" && ")||"true");error("dependencies not set");validate("}")}if((typeof deps==="undefined"?"undefined":_typeof(deps))==="object"){validate("if (%s !== undefined) {",genobj(name,key));visit(name,deps,reporter,filter);validate("}")}});if(type!=="object")validate("}")}if(node.additionalProperties||node.additionalProperties===false){if(type!=="object")validate("if (%s) {",types.object(name));var i=genloop();var keys=gensym("keys");var toCompare=function toCompare(p){return keys+"["+i+"] !== "+JSON.stringify(p)};var toTest=function toTest(p){return"!"+patterns(p)+".test("+keys+"["+i+"])"};var additionalProp=Object.keys(properties||{}).map(toCompare).concat(Object.keys(node.patternProperties||{}).map(toTest)).join(" && ")||"true";validate("var %s = Object.keys(%s)",keys,name)("for (var %s = 0; %s < %s.length; %s++) {",i,i,keys,i)("if (%s) {",additionalProp);if(node.additionalProperties===false){if(filter)validate("delete %s",name+"["+keys+"["+i+"]]");error("has additional properties",null,JSON.stringify(name+".")+" + "+keys+"["+i+"]")}else{visit(name+"["+keys+"["+i+"]]",node.additionalProperties,reporter,filter)}validate("}")("}");if(type!=="object")validate("}")}if(node.$ref){var sub=get(root,opts&&opts.schemas||{},node.$ref);if(sub){var fn=cache[node.$ref];if(!fn){cache[node.$ref]=function proxy(data){return fn(data)};fn=compile(sub,cache,root,false,opts)}var n=gensym("ref");scope[n]=fn;validate("if (!(%s(%s))) {",n,name);error("referenced schema does not match");validate("}")}}if(node.not){var prev=gensym("prev");validate("var %s = errors",prev);visit(name,node.not,false,filter);validate("if (%s === errors) {",prev);error("negative schema matches");validate("} else {")("errors = %s",prev)("}")}if(node.items&&!tuple){if(type!=="array")validate("if (%s) {",types.array(name));var i=genloop();validate("for (var %s = 0; %s < %s.length; %s++) {",i,i,name,i);visit(name+"["+i+"]",node.items,reporter,filter);validate("}");if(type!=="array")validate("}")}if(node.patternProperties){if(type!=="object")validate("if (%s) {",types.object(name));var keys=gensym("keys");var i=genloop();validate("var %s = Object.keys(%s)",keys,name)("for (var %s = 0; %s < %s.length; %s++) {",i,i,keys,i);Object.keys(node.patternProperties).forEach(function(key){var p=patterns(key);validate("if (%s.test(%s)) {",p,keys+"["+i+"]");visit(name+"["+keys+"["+i+"]]",node.patternProperties[key],reporter,filter);validate("}")});validate("}");if(type!=="object")validate("}")}if(node.pattern){var p=patterns(node.pattern);if(type!=="string")validate("if (%s) {",types.string(name));validate("if (!(%s.test(%s))) {",p,name);error("pattern mismatch");validate("}");if(type!=="string")validate("}")}if(node.allOf){node.allOf.forEach(function(sch){visit(name,sch,reporter,filter)})}if(node.anyOf&&node.anyOf.length){var prev=gensym("prev");node.anyOf.forEach(function(sch,i){if(i===0){validate("var %s = errors",prev)}else{validate("if (errors !== %s) {",prev)("errors = %s",prev)}visit(name,sch,false,false)});node.anyOf.forEach(function(sch,i){if(i)validate("}")});validate("if (%s !== errors) {",prev);error("no schemas match");validate("}")}if(node.oneOf&&node.oneOf.length){var prev=gensym("prev");var passes=gensym("passes");validate("var %s = errors",prev)("var %s = 0",passes);node.oneOf.forEach(function(sch,i){visit(name,sch,false,false);validate("if (%s === errors) {",prev)("%s++",passes)("} else {")("errors = %s",prev)("}")});validate("if (%s !== 1) {",passes);error("no (or more than one) schemas match");validate("}")}if(node.multipleOf!==undefined){if(type!=="number"&&type!=="integer")validate("if (%s) {",types.number(name));validate("if (!isMultipleOf(%s, %d)) {",name,node.multipleOf);error("has a remainder");validate("}");if(type!=="number"&&type!=="integer")validate("}")}if(node.maxProperties!==undefined){if(type!=="object")validate("if (%s) {",types.object(name));validate("if (Object.keys(%s).length > %d) {",name,node.maxProperties);error("has more properties than allowed");validate("}");if(type!=="object")validate("}")}if(node.minProperties!==undefined){if(type!=="object")validate("if (%s) {",types.object(name));validate("if (Object.keys(%s).length < %d) {",name,node.minProperties);error("has less properties than allowed");validate("}");if(type!=="object")validate("}")}if(node.maxItems!==undefined){if(type!=="array")validate("if (%s) {",types.array(name));validate("if (%s.length > %d) {",name,node.maxItems);error("has more items than allowed");validate("}");if(type!=="array")validate("}")}if(node.minItems!==undefined){if(type!=="array")validate("if (%s) {",types.array(name));validate("if (%s.length < %d) {",name,node.minItems);error("has less items than allowed");validate("}");if(type!=="array")validate("}")}if(node.maxLength!==undefined){if(type!=="string")validate("if (%s) {",types.string(name));validate("if (%s.length > %d) {",name,node.maxLength);error("has longer length than allowed");validate("}");if(type!=="string")validate("}")}if(node.minLength!==undefined){if(type!=="string")validate("if (%s) {",types.string(name));validate("if (%s.length < %d) {",name,node.minLength);error("has less length than allowed");validate("}");if(type!=="string")validate("}")}if(node.minimum!==undefined){if(type!=="number"&&type!=="integer")validate("if (%s) {",types.number(name));validate("if (%s %s %d) {",name,node.exclusiveMinimum?"<=":"<",node.minimum);error("is less than minimum");validate("}");if(type!=="number"&&type!=="integer")validate("}")}if(node.maximum!==undefined){if(type!=="number"&&type!=="integer")validate("if (%s) {",types.number(name));validate("if (%s %s %d) {",name,node.exclusiveMaximum?">=":">",node.maximum);error("is more than maximum");validate("}");if(type!=="number"&&type!=="integer")validate("}")}if(properties){Object.keys(properties).forEach(function(p){if(Array.isArray(type)&&type.indexOf("null")!==-1)validate("if (%s !== null) {",name);visit(genobj(name,p),properties[p],reporter,filter);if(Array.isArray(type)&&type.indexOf("null")!==-1)validate("}")})}while(indent--){validate("}")}};var validate=genfun("function validate(data) {")("if (data === undefined) data = null")("validate.errors = null")("var errors = 0");visit("data",schema,reporter,opts&&opts.filter);validate("return errors === 0")("}");validate=validate.toFunction(scope);validate.errors=null;if(Object.defineProperty){Object.defineProperty(validate,"error",{get:function get(){if(!validate.errors)return"";return validate.errors.map(function(err){return err.field+" "+err.message}).join("\n")}})}validate.toJSON=function(){return schema};return validate};module.exports=function(schema,opts){if(typeof schema==="string")schema=JSON.parse(schema);return compile(schema,{},schema,true,opts)};module.exports.filter=function(schema,opts){var validate=module.exports(schema,xtend(opts,{filter:true}));return function(sch){validate(sch);return sch}}},{"./formats":41,"generate-function":36,"generate-object-property":37,jsonpointer:45,xtend:68}],43:[function(require,module,exports){"use strict";function isProperty(str){return/^[$A-Z\_a-z\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05d0-\u05ea\u05f0-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u08a0\u08a2-\u08ac\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097f\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c33\u0c35-\u0c39\u0c3d\u0c58\u0c59\u0c60\u0c61\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d60\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e87\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa\u0eab\u0ead-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f4\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f0\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1877\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191c\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19c1-\u19c7\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1ce9-\u1cec\u1cee-\u1cf1\u1cf5\u1cf6\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u212f-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2e2f\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309d-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312d\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fcc\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua697\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua78e\ua790-\ua793\ua7a0-\ua7aa\ua7f8-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa80-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uabc0-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc][$A-Z\_a-z\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05d0-\u05ea\u05f0-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u08a0\u08a2-\u08ac\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097f\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c33\u0c35-\u0c39\u0c3d\u0c58\u0c59\u0c60\u0c61\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d60\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e87\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa\u0eab\u0ead-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f4\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f0\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1877\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191c\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19c1-\u19c7\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1ce9-\u1cec\u1cee-\u1cf1\u1cf5\u1cf6\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u212f-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2e2f\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309d-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312d\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fcc\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua697\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua78e\ua790-\ua793\ua7a0-\ua7aa\ua7f8-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa80-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uabc0-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc0-9\u0300-\u036f\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u08e4-\u08fe\u0900-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c01-\u0c03\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c82\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0d02\u0d03\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d82\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19b0-\u19c0\u19c8\u19c9\u19d0-\u19d9\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf2-\u1cf4\u1dc0-\u1de6\u1dfc-\u1dff\u200c\u200d\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua620-\ua629\ua66f\ua674-\ua67d\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua880\ua881\ua8b4-\ua8c4\ua8d0-\ua8d9\ua8e0-\ua8f1\ua900-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f]*$/.test(str)}module.exports=isProperty},{}],44:[function(require,module,exports){"use strict";var toString={}.toString;module.exports=Array.isArray||function(arr){return toString.call(arr)=="[object Array]"}},{}],45:[function(require,module,exports){"use strict";var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj};var hasExcape=/~/;var escapeMatcher=/~[01]/g;function escapeReplacer(m){switch(m){case"~1":return"/";case"~0":return"~"}throw new Error("Invalid tilde escape: "+m)}function untilde(str){if(!hasExcape.test(str))return str;return str.replace(escapeMatcher,escapeReplacer)}function setter(obj,pointer,value){var part;var hasNextPart;for(var p=1,len=pointer.length;pp;if(typeof obj[part]==="undefined"){if(Array.isArray(obj)&&part==="-"){part=obj.length}if(hasNextPart){if(pointer[p]!==""&&pointer[p]>>1;var wrapFlags=[["ary",WRAP_ARY_FLAG],["bind",WRAP_BIND_FLAG],["bindKey",WRAP_BIND_KEY_FLAG],["curry",WRAP_CURRY_FLAG],["curryRight",WRAP_CURRY_RIGHT_FLAG],["flip",WRAP_FLIP_FLAG],["partial",WRAP_PARTIAL_FLAG],["partialRight",WRAP_PARTIAL_RIGHT_FLAG],["rearg",WRAP_REARG_FLAG]];var argsTag="[object Arguments]",arrayTag="[object Array]",asyncTag="[object AsyncFunction]",boolTag="[object Boolean]",dateTag="[object Date]",domExcTag="[object DOMException]",errorTag="[object Error]",funcTag="[object Function]",genTag="[object GeneratorFunction]",mapTag="[object Map]",numberTag="[object Number]",nullTag="[object Null]",objectTag="[object Object]",promiseTag="[object Promise]",proxyTag="[object Proxy]",regexpTag="[object RegExp]",setTag="[object Set]",stringTag="[object String]",symbolTag="[object Symbol]",undefinedTag="[object Undefined]",weakMapTag="[object WeakMap]",weakSetTag="[object WeakSet]";var arrayBufferTag="[object ArrayBuffer]",dataViewTag="[object DataView]",float32Tag="[object Float32Array]",float64Tag="[object Float64Array]",int8Tag="[object Int8Array]",int16Tag="[object Int16Array]",int32Tag="[object Int32Array]",uint8Tag="[object Uint8Array]",uint8ClampedTag="[object Uint8ClampedArray]",uint16Tag="[object Uint16Array]",uint32Tag="[object Uint32Array]";var reEmptyStringLeading=/\b__p \+= '';/g,reEmptyStringMiddle=/\b(__p \+=) '' \+/g,reEmptyStringTrailing=/(__e\(.*?\)|\b__t\)) \+\n'';/g;var reEscapedHtml=/&(?:amp|lt|gt|quot|#39);/g,reUnescapedHtml=/[&<>"']/g,reHasEscapedHtml=RegExp(reEscapedHtml.source),reHasUnescapedHtml=RegExp(reUnescapedHtml.source);var reEscape=/<%-([\s\S]+?)%>/g,reEvaluate=/<%([\s\S]+?)%>/g,reInterpolate=/<%=([\s\S]+?)%>/g;var reIsDeepProp=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,reIsPlainProp=/^\w*$/,reLeadingDot=/^\./,rePropName=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;var reRegExpChar=/[\\^$.*+?()[\]{}|]/g,reHasRegExpChar=RegExp(reRegExpChar.source);var reTrim=/^\s+|\s+$/g,reTrimStart=/^\s+/,reTrimEnd=/\s+$/;var reWrapComment=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,reWrapDetails=/\{\n\/\* \[wrapped with (.+)\] \*/,reSplitDetails=/,? & /;var reAsciiWord=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;var reEscapeChar=/\\(\\)?/g;var reEsTemplate=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g;var reFlags=/\w*$/;var reIsBadHex=/^[-+]0x[0-9a-f]+$/i;var reIsBinary=/^0b[01]+$/i;var reIsHostCtor=/^\[object .+?Constructor\]$/;var reIsOctal=/^0o[0-7]+$/i;var reIsUint=/^(?:0|[1-9]\d*)$/;var reLatin=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g;var reNoMatch=/($^)/;var reUnescapedString=/['\n\r\u2028\u2029\\]/g;var rsAstralRange="\\ud800-\\udfff",rsComboMarksRange="\\u0300-\\u036f",reComboHalfMarksRange="\\ufe20-\\ufe2f",rsComboSymbolsRange="\\u20d0-\\u20ff",rsComboRange=rsComboMarksRange+reComboHalfMarksRange+rsComboSymbolsRange,rsDingbatRange="\\u2700-\\u27bf",rsLowerRange="a-z\\xdf-\\xf6\\xf8-\\xff",rsMathOpRange="\\xac\\xb1\\xd7\\xf7",rsNonCharRange="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",rsPunctuationRange="\\u2000-\\u206f",rsSpaceRange=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",rsUpperRange="A-Z\\xc0-\\xd6\\xd8-\\xde",rsVarRange="\\ufe0e\\ufe0f",rsBreakRange=rsMathOpRange+rsNonCharRange+rsPunctuationRange+rsSpaceRange;var rsApos="['’]",rsAstral="["+rsAstralRange+"]",rsBreak="["+rsBreakRange+"]",rsCombo="["+rsComboRange+"]",rsDigits="\\d+",rsDingbat="["+rsDingbatRange+"]",rsLower="["+rsLowerRange+"]",rsMisc="[^"+rsAstralRange+rsBreakRange+rsDigits+rsDingbatRange+rsLowerRange+rsUpperRange+"]",rsFitz="\\ud83c[\\udffb-\\udfff]",rsModifier="(?:"+rsCombo+"|"+rsFitz+")",rsNonAstral="[^"+rsAstralRange+"]",rsRegional="(?:\\ud83c[\\udde6-\\uddff]){2}",rsSurrPair="[\\ud800-\\udbff][\\udc00-\\udfff]",rsUpper="["+rsUpperRange+"]",rsZWJ="\\u200d";var rsMiscLower="(?:"+rsLower+"|"+rsMisc+")",rsMiscUpper="(?:"+rsUpper+"|"+rsMisc+")",rsOptContrLower="(?:"+rsApos+"(?:d|ll|m|re|s|t|ve))?",rsOptContrUpper="(?:"+rsApos+"(?:D|LL|M|RE|S|T|VE))?",reOptMod=rsModifier+"?",rsOptVar="["+rsVarRange+"]?",rsOptJoin="(?:"+rsZWJ+"(?:"+[rsNonAstral,rsRegional,rsSurrPair].join("|")+")"+rsOptVar+reOptMod+")*",rsOrdLower="\\d*(?:(?:1st|2nd|3rd|(?![123])\\dth)\\b)",rsOrdUpper="\\d*(?:(?:1ST|2ND|3RD|(?![123])\\dTH)\\b)",rsSeq=rsOptVar+reOptMod+rsOptJoin,rsEmoji="(?:"+[rsDingbat,rsRegional,rsSurrPair].join("|")+")"+rsSeq,rsSymbol="(?:"+[rsNonAstral+rsCombo+"?",rsCombo,rsRegional,rsSurrPair,rsAstral].join("|")+")";var reApos=RegExp(rsApos,"g");var reComboMark=RegExp(rsCombo,"g");var reUnicode=RegExp(rsFitz+"(?="+rsFitz+")|"+rsSymbol+rsSeq,"g");var reUnicodeWord=RegExp([rsUpper+"?"+rsLower+"+"+rsOptContrLower+"(?="+[rsBreak,rsUpper,"$"].join("|")+")",rsMiscUpper+"+"+rsOptContrUpper+"(?="+[rsBreak,rsUpper+rsMiscLower,"$"].join("|")+")",rsUpper+"?"+rsMiscLower+"+"+rsOptContrLower,rsUpper+"+"+rsOptContrUpper,rsOrdUpper,rsOrdLower,rsDigits,rsEmoji].join("|"),"g");var reHasUnicode=RegExp("["+rsZWJ+rsAstralRange+rsComboRange+rsVarRange+"]");var reHasUnicodeWord=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;var contextProps=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"];var templateCounter=-1;var typedArrayTags={};typedArrayTags[float32Tag]=typedArrayTags[float64Tag]=typedArrayTags[int8Tag]=typedArrayTags[int16Tag]=typedArrayTags[int32Tag]=typedArrayTags[uint8Tag]=typedArrayTags[uint8ClampedTag]=typedArrayTags[uint16Tag]=typedArrayTags[uint32Tag]=true;typedArrayTags[argsTag]=typedArrayTags[arrayTag]=typedArrayTags[arrayBufferTag]=typedArrayTags[boolTag]=typedArrayTags[dataViewTag]=typedArrayTags[dateTag]=typedArrayTags[errorTag]=typedArrayTags[funcTag]=typedArrayTags[mapTag]=typedArrayTags[numberTag]=typedArrayTags[objectTag]=typedArrayTags[regexpTag]=typedArrayTags[setTag]=typedArrayTags[stringTag]=typedArrayTags[weakMapTag]=false;var cloneableTags={};cloneableTags[argsTag]=cloneableTags[arrayTag]=cloneableTags[arrayBufferTag]=cloneableTags[dataViewTag]=cloneableTags[boolTag]=cloneableTags[dateTag]=cloneableTags[float32Tag]=cloneableTags[float64Tag]=cloneableTags[int8Tag]=cloneableTags[int16Tag]=cloneableTags[int32Tag]=cloneableTags[mapTag]=cloneableTags[numberTag]=cloneableTags[objectTag]=cloneableTags[regexpTag]=cloneableTags[setTag]=cloneableTags[stringTag]=cloneableTags[symbolTag]=cloneableTags[uint8Tag]=cloneableTags[uint8ClampedTag]=cloneableTags[uint16Tag]=cloneableTags[uint32Tag]=true;cloneableTags[errorTag]=cloneableTags[funcTag]=cloneableTags[weakMapTag]=false;var deburredLetters={"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","IJ":"IJ","ij":"ij","Œ":"Oe","œ":"oe","ʼn":"'n","ſ":"s"};var htmlEscapes={"&":"&","<":"<",">":">",'"':""","'":"'"};var htmlUnescapes={"&":"&","<":"<",">":">",""":'"',"'":"'"};var stringEscapes={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"};var freeParseFloat=parseFloat,freeParseInt=parseInt;var freeGlobal=(typeof global==="undefined"?"undefined":_typeof(global))=="object"&&global&&global.Object===Object&&global;var freeSelf=(typeof self==="undefined"?"undefined":_typeof(self))=="object"&&self&&self.Object===Object&&self;var root=freeGlobal||freeSelf||Function("return this")();var freeExports=(typeof exports==="undefined"?"undefined":_typeof(exports))=="object"&&exports&&!exports.nodeType&&exports;var freeModule=freeExports&&(typeof module==="undefined"?"undefined":_typeof(module))=="object"&&module&&!module.nodeType&&module;var moduleExports=freeModule&&freeModule.exports===freeExports;var freeProcess=moduleExports&&freeGlobal.process;var nodeUtil=function(){try{return freeProcess&&freeProcess.binding&&freeProcess.binding("util")}catch(e){}}();var nodeIsArrayBuffer=nodeUtil&&nodeUtil.isArrayBuffer,nodeIsDate=nodeUtil&&nodeUtil.isDate,nodeIsMap=nodeUtil&&nodeUtil.isMap,nodeIsRegExp=nodeUtil&&nodeUtil.isRegExp,nodeIsSet=nodeUtil&&nodeUtil.isSet,nodeIsTypedArray=nodeUtil&&nodeUtil.isTypedArray;function addMapEntry(map,pair){map.set(pair[0],pair[1]);return map}function addSetEntry(set,value){set.add(value);return set}function apply(func,thisArg,args){switch(args.length){case 0:return func.call(thisArg);case 1:return func.call(thisArg,args[0]);case 2:return func.call(thisArg,args[0],args[1]);case 3:return func.call(thisArg,args[0],args[1],args[2])}return func.apply(thisArg,args)}function arrayAggregator(array,setter,iteratee,accumulator){var index=-1,length=array==null?0:array.length;while(++index-1}function arrayIncludesWith(array,value,comparator){var index=-1,length=array==null?0:array.length;while(++index-1){}return index}function charsEndIndex(strSymbols,chrSymbols){var index=strSymbols.length;while(index--&&baseIndexOf(chrSymbols,strSymbols[index],0)>-1){}return index}function countHolders(array,placeholder){var length=array.length,result=0;while(length--){if(array[length]===placeholder){++result}}return result}var deburrLetter=basePropertyOf(deburredLetters);var escapeHtmlChar=basePropertyOf(htmlEscapes);function escapeStringChar(chr){return"\\"+stringEscapes[chr]}function getValue(object,key){return object==null?undefined:object[key]}function hasUnicode(string){return reHasUnicode.test(string)}function hasUnicodeWord(string){return reHasUnicodeWord.test(string)}function iteratorToArray(iterator){var data,result=[];while(!(data=iterator.next()).done){result.push(data.value)}return result}function mapToArray(map){var index=-1,result=Array(map.size);map.forEach(function(value,key){result[++index]=[key,value]});return result}function overArg(func,transform){return function(arg){return func(transform(arg))}}function replaceHolders(array,placeholder){var index=-1,length=array.length,resIndex=0,result=[];while(++index-1}function listCacheSet(key,value){var data=this.__data__,index=assocIndexOf(data,key);if(index<0){++this.size;data.push([key,value])}else{data[index][1]=value}return this}ListCache.prototype.clear=listCacheClear;ListCache.prototype["delete"]=listCacheDelete;ListCache.prototype.get=listCacheGet;ListCache.prototype.has=listCacheHas;ListCache.prototype.set=listCacheSet;function MapCache(entries){var index=-1,length=entries==null?0:entries.length;this.clear();while(++index=lower?number:lower}}return number}function baseClone(value,bitmask,customizer,key,object,stack){var result,isDeep=bitmask&CLONE_DEEP_FLAG,isFlat=bitmask&CLONE_FLAT_FLAG,isFull=bitmask&CLONE_SYMBOLS_FLAG;if(customizer){result=object?customizer(value,key,object,stack):customizer(value)}if(result!==undefined){return result}if(!isObject(value)){return value}var isArr=isArray(value);if(isArr){result=initCloneArray(value);if(!isDeep){return copyArray(value,result)}}else{var tag=getTag(value),isFunc=tag==funcTag||tag==genTag;if(isBuffer(value)){return cloneBuffer(value,isDeep)}if(tag==objectTag||tag==argsTag||isFunc&&!object){result=isFlat||isFunc?{}:initCloneObject(value);if(!isDeep){return isFlat?copySymbolsIn(value,baseAssignIn(result,value)):copySymbols(value,baseAssign(result,value))}}else{if(!cloneableTags[tag]){return object?value:{}}result=initCloneByTag(value,tag,baseClone,isDeep)}}stack||(stack=new Stack);var stacked=stack.get(value);if(stacked){return stacked}stack.set(value,result);var keysFunc=isFull?isFlat?getAllKeysIn:getAllKeys:isFlat?keysIn:keys;var props=isArr?undefined:keysFunc(value);arrayEach(props||value,function(subValue,key){if(props){key=subValue;subValue=value[key]}assignValue(result,key,baseClone(subValue,bitmask,customizer,key,value,stack))});return result}function baseConforms(source){var props=keys(source);return function(object){return baseConformsTo(object,source,props)}}function baseConformsTo(object,source,props){var length=props.length;if(object==null){return!length}object=Object(object);while(length--){var key=props[length],predicate=source[key],value=object[key];if(value===undefined&&!(key in object)||!predicate(value)){return false}}return true}function baseDelay(func,wait,args){if(typeof func!="function"){throw new TypeError(FUNC_ERROR_TEXT)}return setTimeout(function(){func.apply(undefined,args)},wait)}function baseDifference(array,values,iteratee,comparator){var index=-1,includes=arrayIncludes,isCommon=true,length=array.length,result=[],valuesLength=values.length;if(!length){return result}if(iteratee){values=arrayMap(values,baseUnary(iteratee))}if(comparator){includes=arrayIncludesWith;isCommon=false}else if(values.length>=LARGE_ARRAY_SIZE){includes=cacheHas;isCommon=false;values=new SetCache(values)}outer:while(++indexlength?0:length+start}end=end===undefined||end>length?length:toInteger(end);if(end<0){end+=length}end=start>end?0:toLength(end);while(start0&&predicate(value)){if(depth>1){baseFlatten(value,depth-1,predicate,isStrict,result)}else{arrayPush(result,value)}}else if(!isStrict){result[result.length]=value}}return result}var baseFor=createBaseFor();var baseForRight=createBaseFor(true);function baseForOwn(object,iteratee){return object&&baseFor(object,iteratee,keys)}function baseForOwnRight(object,iteratee){return object&&baseForRight(object,iteratee,keys)}function baseFunctions(object,props){return arrayFilter(props,function(key){return isFunction(object[key])})}function baseGet(object,path){path=castPath(path,object);var index=0,length=path.length;while(object!=null&&indexother}function baseHas(object,key){return object!=null&&hasOwnProperty.call(object,key)}function baseHasIn(object,key){return object!=null&&key in Object(object)}function baseInRange(number,start,end){return number>=nativeMin(start,end)&&number=120&&array.length>=120)?new SetCache(othIndex&&array):undefined}array=arrays[0];var index=-1,seen=caches[0];outer:while(++index-1){if(seen!==array){splice.call(seen,fromIndex,1)}splice.call(array,fromIndex,1)}}return array}function basePullAt(array,indexes){var length=array?indexes.length:0,lastIndex=length-1;while(length--){var index=indexes[length];if(length==lastIndex||index!==previous){var previous=index;if(isIndex(index)){splice.call(array,index,1)}else{baseUnset(array,index)}}}return array}function baseRandom(lower,upper){return lower+nativeFloor(nativeRandom()*(upper-lower+1))}function baseRange(start,end,step,fromRight){var index=-1,length=nativeMax(nativeCeil((end-start)/(step||1)),0),result=Array(length);while(length--){result[fromRight?length:++index]=start;start+=step}return result}function baseRepeat(string,n){var result="";if(!string||n<1||n>MAX_SAFE_INTEGER){return result}do{if(n%2){result+=string}n=nativeFloor(n/2);if(n){string+=string}}while(n);return result}function baseRest(func,start){return setToString(overRest(func,start,identity),func+"")}function baseSample(collection){return arraySample(values(collection))}function baseSampleSize(collection,n){var array=values(collection);return shuffleSelf(array,baseClamp(n,0,array.length))}function baseSet(object,path,value,customizer){if(!isObject(object)){return object}path=castPath(path,object);var index=-1,length=path.length,lastIndex=length-1,nested=object;while(nested!=null&&++indexlength?0:length+start}end=end>length?length:end;if(end<0){end+=length}length=start>end?0:end-start>>>0;start>>>=0;var result=Array(length);while(++index>>1,computed=array[mid];if(computed!==null&&!isSymbol(computed)&&(retHighest?computed<=value:computed=LARGE_ARRAY_SIZE){var set=iteratee?null:createSet(array);if(set){return setToArray(set)}isCommon=false;includes=cacheHas;seen=new SetCache}else{seen=iteratee?[]:result}outer:while(++index=length?array:baseSlice(array,start,end)}var clearTimeout=ctxClearTimeout||function(id){return root.clearTimeout(id)};function cloneBuffer(buffer,isDeep){if(isDeep){return buffer.slice()}var length=buffer.length,result=allocUnsafe?allocUnsafe(length):new buffer.constructor(length);buffer.copy(result);return result}function cloneArrayBuffer(arrayBuffer){var result=new arrayBuffer.constructor(arrayBuffer.byteLength);new Uint8Array(result).set(new Uint8Array(arrayBuffer));return result}function cloneDataView(dataView,isDeep){var buffer=isDeep?cloneArrayBuffer(dataView.buffer):dataView.buffer;return new dataView.constructor(buffer,dataView.byteOffset,dataView.byteLength)}function cloneMap(map,isDeep,cloneFunc){var array=isDeep?cloneFunc(mapToArray(map),CLONE_DEEP_FLAG):mapToArray(map);return arrayReduce(array,addMapEntry,new map.constructor)}function cloneRegExp(regexp){var result=new regexp.constructor(regexp.source,reFlags.exec(regexp));result.lastIndex=regexp.lastIndex;return result}function cloneSet(set,isDeep,cloneFunc){var array=isDeep?cloneFunc(setToArray(set),CLONE_DEEP_FLAG):setToArray(set);return arrayReduce(array,addSetEntry,new set.constructor)}function cloneSymbol(symbol){return symbolValueOf?Object(symbolValueOf.call(symbol)):{}}function cloneTypedArray(typedArray,isDeep){var buffer=isDeep?cloneArrayBuffer(typedArray.buffer):typedArray.buffer;return new typedArray.constructor(buffer,typedArray.byteOffset,typedArray.length)}function compareAscending(value,other){if(value!==other){var valIsDefined=value!==undefined,valIsNull=value===null,valIsReflexive=value===value,valIsSymbol=isSymbol(value);var othIsDefined=other!==undefined,othIsNull=other===null,othIsReflexive=other===other,othIsSymbol=isSymbol(other);if(!othIsNull&&!othIsSymbol&&!valIsSymbol&&value>other||valIsSymbol&&othIsDefined&&othIsReflexive&&!othIsNull&&!othIsSymbol||valIsNull&&othIsDefined&&othIsReflexive||!valIsDefined&&othIsReflexive||!valIsReflexive){return 1}if(!valIsNull&&!valIsSymbol&&!othIsSymbol&&value=ordersLength){return result}var order=orders[index];return result*(order=="desc"?-1:1)}}return object.index-other.index}function composeArgs(args,partials,holders,isCurried){var argsIndex=-1,argsLength=args.length,holdersLength=holders.length,leftIndex=-1,leftLength=partials.length,rangeLength=nativeMax(argsLength-holdersLength,0),result=Array(leftLength+rangeLength),isUncurried=!isCurried;while(++leftIndex1?sources[length-1]:undefined,guard=length>2?sources[2]:undefined;customizer=assigner.length>3&&typeof customizer=="function"?(length--,customizer):undefined;if(guard&&isIterateeCall(sources[0],sources[1],guard)){customizer=length<3?undefined:customizer;length=1}object=Object(object);while(++index-1?iterable[iteratee?collection[index]:index]:undefined}}function createFlow(fromRight){return flatRest(function(funcs){var length=funcs.length,index=length,prereq=LodashWrapper.prototype.thru;if(fromRight){funcs.reverse()}while(index--){var func=funcs[index];if(typeof func!="function"){throw new TypeError(FUNC_ERROR_TEXT)}if(prereq&&!wrapper&&getFuncName(func)=="wrapper"){var wrapper=new LodashWrapper([],true)}}index=wrapper?index:length;while(++index1){args.reverse()}if(isAry&&aryarrLength)){return false}var stacked=stack.get(array);if(stacked&&stack.get(other)){return stacked==other}var index=-1,result=true,seen=bitmask&COMPARE_UNORDERED_FLAG?new SetCache:undefined;stack.set(array,other);stack.set(other,array);while(++index1?"& ":"")+details[lastIndex];details=details.join(length>2?", ":" ");return source.replace(reWrapComment,"{\n/* [wrapped with "+details+"] */\n")}function isFlattenable(value){return isArray(value)||isArguments(value)||!!(spreadableSymbol&&value&&value[spreadableSymbol])}function isIndex(value,length){length=length==null?MAX_SAFE_INTEGER:length;return!!length&&(typeof value=="number"||reIsUint.test(value))&&value>-1&&value%1==0&&value0){if(++count>=HOT_COUNT){return arguments[0]}}else{count=0}return func.apply(undefined,arguments)}}function shuffleSelf(array,size){var index=-1,length=array.length,lastIndex=length-1;size=size===undefined?length:size;while(++index1?arrays[length-1]:undefined;iteratee=typeof iteratee=="function"?(arrays.pop(),iteratee):undefined;return unzipWith(arrays,iteratee)});function chain(value){var result=lodash(value);result.__chain__=true;return result}function tap(value,interceptor){interceptor(value);return value}function thru(value,interceptor){return interceptor(value)}var wrapperAt=flatRest(function(paths){var length=paths.length,start=length?paths[0]:0,value=this.__wrapped__,interceptor=function interceptor(object){return baseAt(object,paths)};if(length>1||this.__actions__.length||!(value instanceof LazyWrapper)||!isIndex(start)){return this.thru(interceptor)}value=value.slice(start,+start+(length?1:0));value.__actions__.push({func:thru,args:[interceptor],thisArg:undefined});return new LodashWrapper(value,this.__chain__).thru(function(array){if(length&&!array.length){array.push(undefined)}return array})});function wrapperChain(){return chain(this)}function wrapperCommit(){return new LodashWrapper(this.value(),this.__chain__)}function wrapperNext(){if(this.__values__===undefined){this.__values__=toArray(this.value())}var done=this.__index__>=this.__values__.length,value=done?undefined:this.__values__[this.__index__++];return{done:done,value:value}}function wrapperToIterator(){return this}function wrapperPlant(value){var result,parent=this;while(parent instanceof baseLodash){var clone=wrapperClone(parent);clone.__index__=0;clone.__values__=undefined;if(result){previous.__wrapped__=clone}else{result=clone}var previous=clone;parent=parent.__wrapped__}previous.__wrapped__=value;return result}function wrapperReverse(){var value=this.__wrapped__;if(value instanceof LazyWrapper){var wrapped=value;if(this.__actions__.length){wrapped=new LazyWrapper(this)}wrapped=wrapped.reverse();wrapped.__actions__.push({func:thru,args:[reverse],thisArg:undefined});return new LodashWrapper(wrapped,this.__chain__)}return this.thru(reverse)}function wrapperValue(){return baseWrapperValue(this.__wrapped__,this.__actions__)}var countBy=createAggregator(function(result,value,key){if(hasOwnProperty.call(result,key)){++result[key]}else{baseAssignValue(result,key,1)}});function every(collection,predicate,guard){var func=isArray(collection)?arrayEvery:baseEvery;if(guard&&isIterateeCall(collection,predicate,guard)){predicate=undefined}return func(collection,getIteratee(predicate,3))}function filter(collection,predicate){var func=isArray(collection)?arrayFilter:baseFilter;return func(collection,getIteratee(predicate,3))}var find=createFind(findIndex);var findLast=createFind(findLastIndex);function flatMap(collection,iteratee){return baseFlatten(map(collection,iteratee),1)}function flatMapDeep(collection,iteratee){return baseFlatten(map(collection,iteratee),INFINITY)}function flatMapDepth(collection,iteratee,depth){depth=depth===undefined?1:toInteger(depth);return baseFlatten(map(collection,iteratee),depth)}function forEach(collection,iteratee){var func=isArray(collection)?arrayEach:baseEach;return func(collection,getIteratee(iteratee,3))}function forEachRight(collection,iteratee){var func=isArray(collection)?arrayEachRight:baseEachRight;return func(collection,getIteratee(iteratee,3))}var groupBy=createAggregator(function(result,value,key){if(hasOwnProperty.call(result,key)){result[key].push(value)}else{baseAssignValue(result,key,[value])}});function includes(collection,value,fromIndex,guard){collection=isArrayLike(collection)?collection:values(collection);fromIndex=fromIndex&&!guard?toInteger(fromIndex):0;var length=collection.length;if(fromIndex<0){fromIndex=nativeMax(length+fromIndex,0)}return isString(collection)?fromIndex<=length&&collection.indexOf(value,fromIndex)>-1:!!length&&baseIndexOf(collection,value,fromIndex)>-1}var invokeMap=baseRest(function(collection,path,args){var index=-1,isFunc=typeof path=="function",result=isArrayLike(collection)?Array(collection.length):[];baseEach(collection,function(value){result[++index]=isFunc?apply(path,value,args):baseInvoke(value,path,args)});return result});var keyBy=createAggregator(function(result,value,key){baseAssignValue(result,key,value)});function map(collection,iteratee){var func=isArray(collection)?arrayMap:baseMap;return func(collection,getIteratee(iteratee,3))}function orderBy(collection,iteratees,orders,guard){if(collection==null){return[]}if(!isArray(iteratees)){iteratees=iteratees==null?[]:[iteratees]}orders=guard?undefined:orders;if(!isArray(orders)){orders=orders==null?[]:[orders]}return baseOrderBy(collection,iteratees,orders)}var partition=createAggregator(function(result,value,key){result[key?0:1].push(value)},function(){return[[],[]]});function reduce(collection,iteratee,accumulator){var func=isArray(collection)?arrayReduce:baseReduce,initAccum=arguments.length<3;return func(collection,getIteratee(iteratee,4),accumulator,initAccum,baseEach)}function reduceRight(collection,iteratee,accumulator){var func=isArray(collection)?arrayReduceRight:baseReduce,initAccum=arguments.length<3;return func(collection,getIteratee(iteratee,4),accumulator,initAccum,baseEachRight)}function reject(collection,predicate){var func=isArray(collection)?arrayFilter:baseFilter;return func(collection,negate(getIteratee(predicate,3)))}function sample(collection){var func=isArray(collection)?arraySample:baseSample;return func(collection)}function sampleSize(collection,n,guard){if(guard?isIterateeCall(collection,n,guard):n===undefined){n=1}else{n=toInteger(n)}var func=isArray(collection)?arraySampleSize:baseSampleSize;return func(collection,n)}function shuffle(collection){var func=isArray(collection)?arrayShuffle:baseShuffle;return func(collection)}function size(collection){if(collection==null){return 0}if(isArrayLike(collection)){return isString(collection)?stringSize(collection):collection.length}var tag=getTag(collection);if(tag==mapTag||tag==setTag){return collection.size}return baseKeys(collection).length}function some(collection,predicate,guard){var func=isArray(collection)?arraySome:baseSome;if(guard&&isIterateeCall(collection,predicate,guard)){predicate=undefined}return func(collection,getIteratee(predicate,3))}var sortBy=baseRest(function(collection,iteratees){if(collection==null){return[]}var length=iteratees.length;if(length>1&&isIterateeCall(collection,iteratees[0],iteratees[1])){iteratees=[]}else if(length>2&&isIterateeCall(iteratees[0],iteratees[1],iteratees[2])){iteratees=[iteratees[0]]}return baseOrderBy(collection,baseFlatten(iteratees,1),[])});var now=ctxNow||function(){return root.Date.now()};function after(n,func){if(typeof func!="function"){throw new TypeError(FUNC_ERROR_TEXT)}n=toInteger(n);return function(){if(--n<1){return func.apply(this,arguments)}}}function ary(func,n,guard){n=guard?undefined:n;n=func&&n==null?func.length:n;return createWrap(func,WRAP_ARY_FLAG,undefined,undefined,undefined,undefined,n)}function before(n,func){var result;if(typeof func!="function"){throw new TypeError(FUNC_ERROR_TEXT)}n=toInteger(n);return function(){if(--n>0){result=func.apply(this,arguments)}if(n<=1){func=undefined}return result}}var bind=baseRest(function(func,thisArg,partials){var bitmask=WRAP_BIND_FLAG;if(partials.length){var holders=replaceHolders(partials,getHolder(bind));bitmask|=WRAP_PARTIAL_FLAG}return createWrap(func,bitmask,thisArg,partials,holders)});var bindKey=baseRest(function(object,key,partials){var bitmask=WRAP_BIND_FLAG|WRAP_BIND_KEY_FLAG;if(partials.length){var holders=replaceHolders(partials,getHolder(bindKey));bitmask|=WRAP_PARTIAL_FLAG}return createWrap(key,bitmask,object,partials,holders)});function curry(func,arity,guard){arity=guard?undefined:arity;var result=createWrap(func,WRAP_CURRY_FLAG,undefined,undefined,undefined,undefined,undefined,arity);result.placeholder=curry.placeholder;return result}function curryRight(func,arity,guard){arity=guard?undefined:arity;var result=createWrap(func,WRAP_CURRY_RIGHT_FLAG,undefined,undefined,undefined,undefined,undefined,arity);result.placeholder=curryRight.placeholder;return result}function debounce(func,wait,options){var lastArgs,lastThis,maxWait,result,timerId,lastCallTime,lastInvokeTime=0,leading=false,maxing=false,trailing=true;if(typeof func!="function"){throw new TypeError(FUNC_ERROR_TEXT)}wait=toNumber(wait)||0;if(isObject(options)){leading=!!options.leading;maxing="maxWait"in options;maxWait=maxing?nativeMax(toNumber(options.maxWait)||0,wait):maxWait;trailing="trailing"in options?!!options.trailing:trailing}function invokeFunc(time){var args=lastArgs,thisArg=lastThis;lastArgs=lastThis=undefined;lastInvokeTime=time;result=func.apply(thisArg,args);return result}function leadingEdge(time){lastInvokeTime=time;timerId=setTimeout(timerExpired,wait);return leading?invokeFunc(time):result}function remainingWait(time){var timeSinceLastCall=time-lastCallTime,timeSinceLastInvoke=time-lastInvokeTime,result=wait-timeSinceLastCall;return maxing?nativeMin(result,maxWait-timeSinceLastInvoke):result}function shouldInvoke(time){var timeSinceLastCall=time-lastCallTime,timeSinceLastInvoke=time-lastInvokeTime;return lastCallTime===undefined||timeSinceLastCall>=wait||timeSinceLastCall<0||maxing&&timeSinceLastInvoke>=maxWait}function timerExpired(){var time=now();if(shouldInvoke(time)){return trailingEdge(time)}timerId=setTimeout(timerExpired,remainingWait(time))}function trailingEdge(time){timerId=undefined;if(trailing&&lastArgs){return invokeFunc(time)}lastArgs=lastThis=undefined;return result}function cancel(){if(timerId!==undefined){clearTimeout(timerId)}lastInvokeTime=0;lastArgs=lastCallTime=lastThis=timerId=undefined}function flush(){return timerId===undefined?result:trailingEdge(now())}function debounced(){var time=now(),isInvoking=shouldInvoke(time);lastArgs=arguments;lastThis=this;lastCallTime=time;if(isInvoking){if(timerId===undefined){return leadingEdge(lastCallTime)}if(maxing){timerId=setTimeout(timerExpired,wait);return invokeFunc(lastCallTime)}}if(timerId===undefined){timerId=setTimeout(timerExpired,wait)}return result}debounced.cancel=cancel;debounced.flush=flush;return debounced}var defer=baseRest(function(func,args){return baseDelay(func,1,args)});var delay=baseRest(function(func,wait,args){return baseDelay(func,toNumber(wait)||0,args)});function flip(func){return createWrap(func,WRAP_FLIP_FLAG)}function memoize(func,resolver){if(typeof func!="function"||resolver!=null&&typeof resolver!="function"){throw new TypeError(FUNC_ERROR_TEXT)}var memoized=function memoized(){var args=arguments,key=resolver?resolver.apply(this,args):args[0],cache=memoized.cache;if(cache.has(key)){return cache.get(key)}var result=func.apply(this,args);memoized.cache=cache.set(key,result)||cache;return result};memoized.cache=new(memoize.Cache||MapCache);return memoized}memoize.Cache=MapCache;function negate(predicate){if(typeof predicate!="function"){throw new TypeError(FUNC_ERROR_TEXT)}return function(){var args=arguments;switch(args.length){case 0:return!predicate.call(this);case 1:return!predicate.call(this,args[0]);case 2:return!predicate.call(this,args[0],args[1]);case 3:return!predicate.call(this,args[0],args[1],args[2])}return!predicate.apply(this,args)}}function once(func){return before(2,func)}var overArgs=castRest(function(func,transforms){transforms=transforms.length==1&&isArray(transforms[0])?arrayMap(transforms[0],baseUnary(getIteratee())):arrayMap(baseFlatten(transforms,1),baseUnary(getIteratee()));var funcsLength=transforms.length;return baseRest(function(args){var index=-1,length=nativeMin(args.length,funcsLength);while(++index=other});var isArguments=baseIsArguments(function(){return arguments}())?baseIsArguments:function(value){return isObjectLike(value)&&hasOwnProperty.call(value,"callee")&&!propertyIsEnumerable.call(value,"callee")};var isArray=Array.isArray;var isArrayBuffer=nodeIsArrayBuffer?baseUnary(nodeIsArrayBuffer):baseIsArrayBuffer;function isArrayLike(value){return value!=null&&isLength(value.length)&&!isFunction(value)}function isArrayLikeObject(value){return isObjectLike(value)&&isArrayLike(value)}function isBoolean(value){return value===true||value===false||isObjectLike(value)&&baseGetTag(value)==boolTag}var isBuffer=nativeIsBuffer||stubFalse;var isDate=nodeIsDate?baseUnary(nodeIsDate):baseIsDate;function isElement(value){return isObjectLike(value)&&value.nodeType===1&&!isPlainObject(value)}function isEmpty(value){if(value==null){return true}if(isArrayLike(value)&&(isArray(value)||typeof value=="string"||typeof value.splice=="function"||isBuffer(value)||isTypedArray(value)||isArguments(value))){return!value.length}var tag=getTag(value);if(tag==mapTag||tag==setTag){return!value.size}if(isPrototype(value)){return!baseKeys(value).length}for(var key in value){if(hasOwnProperty.call(value,key)){return false}}return true}function isEqual(value,other){return baseIsEqual(value,other)}function isEqualWith(value,other,customizer){customizer=typeof customizer=="function"?customizer:undefined;var result=customizer?customizer(value,other):undefined;return result===undefined?baseIsEqual(value,other,undefined,customizer):!!result}function isError(value){if(!isObjectLike(value)){return false}var tag=baseGetTag(value);return tag==errorTag||tag==domExcTag||typeof value.message=="string"&&typeof value.name=="string"&&!isPlainObject(value)}function isFinite(value){return typeof value=="number"&&nativeIsFinite(value)}function isFunction(value){if(!isObject(value)){return false}var tag=baseGetTag(value);return tag==funcTag||tag==genTag||tag==asyncTag||tag==proxyTag}function isInteger(value){return typeof value=="number"&&value==toInteger(value)}function isLength(value){return typeof value=="number"&&value>-1&&value%1==0&&value<=MAX_SAFE_INTEGER}function isObject(value){var type=typeof value==="undefined"?"undefined":_typeof(value);return value!=null&&(type=="object"||type=="function")}function isObjectLike(value){return value!=null&&(typeof value==="undefined"?"undefined":_typeof(value))=="object"}var isMap=nodeIsMap?baseUnary(nodeIsMap):baseIsMap;function isMatch(object,source){return object===source||baseIsMatch(object,source,getMatchData(source))}function isMatchWith(object,source,customizer){customizer=typeof customizer=="function"?customizer:undefined;return baseIsMatch(object,source,getMatchData(source),customizer)}function isNaN(value){return isNumber(value)&&value!=+value}function isNative(value){if(isMaskable(value)){throw new Error(CORE_ERROR_TEXT)}return baseIsNative(value)}function isNull(value){return value===null}function isNil(value){return value==null}function isNumber(value){return typeof value=="number"||isObjectLike(value)&&baseGetTag(value)==numberTag}function isPlainObject(value){if(!isObjectLike(value)||baseGetTag(value)!=objectTag){return false}var proto=getPrototype(value);if(proto===null){return true}var Ctor=hasOwnProperty.call(proto,"constructor")&&proto.constructor;return typeof Ctor=="function"&&Ctor instanceof Ctor&&funcToString.call(Ctor)==objectCtorString}var isRegExp=nodeIsRegExp?baseUnary(nodeIsRegExp):baseIsRegExp;function isSafeInteger(value){return isInteger(value)&&value>=-MAX_SAFE_INTEGER&&value<=MAX_SAFE_INTEGER}var isSet=nodeIsSet?baseUnary(nodeIsSet):baseIsSet;function isString(value){return typeof value=="string"||!isArray(value)&&isObjectLike(value)&&baseGetTag(value)==stringTag}function isSymbol(value){return(typeof value==="undefined"?"undefined":_typeof(value))=="symbol"||isObjectLike(value)&&baseGetTag(value)==symbolTag}var isTypedArray=nodeIsTypedArray?baseUnary(nodeIsTypedArray):baseIsTypedArray;function isUndefined(value){return value===undefined}function isWeakMap(value){return isObjectLike(value)&&getTag(value)==weakMapTag}function isWeakSet(value){return isObjectLike(value)&&baseGetTag(value)==weakSetTag}var lt=createRelationalOperation(baseLt);var lte=createRelationalOperation(function(value,other){return value<=other});function toArray(value){if(!value){return[]}if(isArrayLike(value)){return isString(value)?stringToArray(value):copyArray(value)}if(symIterator&&value[symIterator]){return iteratorToArray(value[symIterator]())}var tag=getTag(value),func=tag==mapTag?mapToArray:tag==setTag?setToArray:values;return func(value)}function toFinite(value){if(!value){return value===0?value:0}value=toNumber(value);if(value===INFINITY||value===-INFINITY){var sign=value<0?-1:1;return sign*MAX_INTEGER}return value===value?value:0}function toInteger(value){var result=toFinite(value),remainder=result%1;return result===result?remainder?result-remainder:result:0}function toLength(value){return value?baseClamp(toInteger(value),0,MAX_ARRAY_LENGTH):0}function toNumber(value){if(typeof value=="number"){return value}if(isSymbol(value)){return NAN}if(isObject(value)){var other=typeof value.valueOf=="function"?value.valueOf():value;value=isObject(other)?other+"":other}if(typeof value!="string"){return value===0?value:+value}value=value.replace(reTrim,"");var isBinary=reIsBinary.test(value);return isBinary||reIsOctal.test(value)?freeParseInt(value.slice(2),isBinary?2:8):reIsBadHex.test(value)?NAN:+value}function toPlainObject(value){return copyObject(value,keysIn(value))}function toSafeInteger(value){return value?baseClamp(toInteger(value),-MAX_SAFE_INTEGER,MAX_SAFE_INTEGER):value===0?value:0}function toString(value){return value==null?"":baseToString(value)}var assign=createAssigner(function(object,source){if(isPrototype(source)||isArrayLike(source)){copyObject(source,keys(source),object);return}for(var key in source){if(hasOwnProperty.call(source,key)){assignValue(object,key,source[key])}}});var assignIn=createAssigner(function(object,source){copyObject(source,keysIn(source),object)});var assignInWith=createAssigner(function(object,source,srcIndex,customizer){copyObject(source,keysIn(source),object,customizer)});var assignWith=createAssigner(function(object,source,srcIndex,customizer){copyObject(source,keys(source),object,customizer)});var at=flatRest(baseAt);function create(prototype,properties){var result=baseCreate(prototype);return properties==null?result:baseAssign(result,properties)}var defaults=baseRest(function(args){args.push(undefined,customDefaultsAssignIn);return apply(assignInWith,undefined,args)});var defaultsDeep=baseRest(function(args){args.push(undefined,customDefaultsMerge);return apply(mergeWith,undefined,args)});function findKey(object,predicate){return baseFindKey(object,getIteratee(predicate,3),baseForOwn)}function findLastKey(object,predicate){return baseFindKey(object,getIteratee(predicate,3),baseForOwnRight)}function forIn(object,iteratee){return object==null?object:baseFor(object,getIteratee(iteratee,3),keysIn)}function forInRight(object,iteratee){return object==null?object:baseForRight(object,getIteratee(iteratee,3),keysIn)}function forOwn(object,iteratee){return object&&baseForOwn(object,getIteratee(iteratee,3))}function forOwnRight(object,iteratee){return object&&baseForOwnRight(object,getIteratee(iteratee,3))}function functions(object){return object==null?[]:baseFunctions(object,keys(object))}function functionsIn(object){return object==null?[]:baseFunctions(object,keysIn(object))}function get(object,path,defaultValue){var result=object==null?undefined:baseGet(object,path);return result===undefined?defaultValue:result}function has(object,path){return object!=null&&hasPath(object,path,baseHas)}function hasIn(object,path){return object!=null&&hasPath(object,path,baseHasIn)}var invert=createInverter(function(result,value,key){result[value]=key},constant(identity));var invertBy=createInverter(function(result,value,key){if(hasOwnProperty.call(result,value)){result[value].push(key)}else{result[value]=[key]}},getIteratee);var invoke=baseRest(baseInvoke);function keys(object){return isArrayLike(object)?arrayLikeKeys(object):baseKeys(object)}function keysIn(object){return isArrayLike(object)?arrayLikeKeys(object,true):baseKeysIn(object)}function mapKeys(object,iteratee){var result={};iteratee=getIteratee(iteratee,3);baseForOwn(object,function(value,key,object){baseAssignValue(result,iteratee(value,key,object),value)});return result}function mapValues(object,iteratee){var result={};iteratee=getIteratee(iteratee,3);baseForOwn(object,function(value,key,object){baseAssignValue(result,key,iteratee(value,key,object))});return result}var merge=createAssigner(function(object,source,srcIndex){baseMerge(object,source,srcIndex)});var mergeWith=createAssigner(function(object,source,srcIndex,customizer){baseMerge(object,source,srcIndex,customizer)});var omit=flatRest(function(object,paths){var result={};if(object==null){return result}var isDeep=false;paths=arrayMap(paths,function(path){path=castPath(path,object);isDeep||(isDeep=path.length>1);return path});copyObject(object,getAllKeysIn(object),result);if(isDeep){result=baseClone(result,CLONE_DEEP_FLAG|CLONE_FLAT_FLAG|CLONE_SYMBOLS_FLAG,customOmitClone)}var length=paths.length;while(length--){baseUnset(result,paths[length])}return result});function omitBy(object,predicate){return pickBy(object,negate(getIteratee(predicate)))}var pick=flatRest(function(object,paths){return object==null?{}:basePick(object,paths)});function pickBy(object,predicate){if(object==null){return{}}var props=arrayMap(getAllKeysIn(object),function(prop){return[prop]});predicate=getIteratee(predicate);return basePickBy(object,props,function(value,path){return predicate(value,path[0])})}function result(object,path,defaultValue){path=castPath(path,object);var index=-1,length=path.length;if(!length){length=1;object=undefined}while(++indexupper){var temp=lower;lower=upper;upper=temp}if(floating||lower%1||upper%1){var rand=nativeRandom();return nativeMin(lower+rand*(upper-lower+freeParseFloat("1e-"+((rand+"").length-1))),upper)}return baseRandom(lower,upper)}var camelCase=createCompounder(function(result,word,index){word=word.toLowerCase();return result+(index?capitalize(word):word)});function capitalize(string){return upperFirst(toString(string).toLowerCase())}function deburr(string){string=toString(string);return string&&string.replace(reLatin,deburrLetter).replace(reComboMark,"")}function endsWith(string,target,position){string=toString(string);target=baseToString(target);var length=string.length;position=position===undefined?length:baseClamp(toInteger(position),0,length);var end=position;position-=target.length;return position>=0&&string.slice(position,end)==target}function escape(string){string=toString(string);return string&&reHasUnescapedHtml.test(string)?string.replace(reUnescapedHtml,escapeHtmlChar):string}function escapeRegExp(string){string=toString(string);return string&&reHasRegExpChar.test(string)?string.replace(reRegExpChar,"\\$&"):string}var kebabCase=createCompounder(function(result,word,index){return result+(index?"-":"")+word.toLowerCase()});var lowerCase=createCompounder(function(result,word,index){return result+(index?" ":"")+word.toLowerCase()});var lowerFirst=createCaseFirst("toLowerCase");function pad(string,length,chars){string=toString(string);length=toInteger(length);var strLength=length?stringSize(string):0;if(!length||strLength>=length){return string}var mid=(length-strLength)/2;return createPadding(nativeFloor(mid),chars)+string+createPadding(nativeCeil(mid),chars)}function padEnd(string,length,chars){string=toString(string);length=toInteger(length);var strLength=length?stringSize(string):0;return length&&strLength>>0;if(!limit){return[]}string=toString(string);if(string&&(typeof separator=="string"||separator!=null&&!isRegExp(separator))){separator=baseToString(separator);if(!separator&&hasUnicode(string)){return castSlice(stringToArray(string),0,limit)}}return string.split(separator,limit)}var startCase=createCompounder(function(result,word,index){return result+(index?" ":"")+upperFirst(word)});function startsWith(string,target,position){string=toString(string);position=position==null?0:baseClamp(toInteger(position),0,string.length);target=baseToString(target);return string.slice(position,position+target.length)==target}function template(string,options,guard){var settings=lodash.templateSettings;if(guard&&isIterateeCall(string,options,guard)){options=undefined}string=toString(string);options=assignInWith({},options,settings,customDefaultsAssignIn);var imports=assignInWith({},options.imports,settings.imports,customDefaultsAssignIn),importsKeys=keys(imports),importsValues=baseValues(imports,importsKeys);var isEscaping,isEvaluating,index=0,interpolate=options.interpolate||reNoMatch,source="__p += '";var reDelimiters=RegExp((options.escape||reNoMatch).source+"|"+interpolate.source+"|"+(interpolate===reInterpolate?reEsTemplate:reNoMatch).source+"|"+(options.evaluate||reNoMatch).source+"|$","g");var sourceURL="//# sourceURL="+("sourceURL"in options?options.sourceURL:"lodash.templateSources["+ ++templateCounter+"]")+"\n";string.replace(reDelimiters,function(match,escapeValue,interpolateValue,esTemplateValue,evaluateValue,offset){interpolateValue||(interpolateValue=esTemplateValue);source+=string.slice(index,offset).replace(reUnescapedString,escapeStringChar);if(escapeValue){isEscaping=true;source+="' +\n__e("+escapeValue+") +\n'"}if(evaluateValue){isEvaluating=true;source+="';\n"+evaluateValue+";\n__p += '"}if(interpolateValue){source+="' +\n((__t = ("+interpolateValue+")) == null ? '' : __t) +\n'"}index=offset+match.length;return match});source+="';\n";var variable=options.variable;if(!variable){source="with (obj) {\n"+source+"\n}\n"}source=(isEvaluating?source.replace(reEmptyStringLeading,""):source).replace(reEmptyStringMiddle,"$1").replace(reEmptyStringTrailing,"$1;");source="function("+(variable||"obj")+") {\n"+(variable?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(isEscaping?", __e = _.escape":"")+(isEvaluating?", __j = Array.prototype.join;\n"+"function print() { __p += __j.call(arguments, '') }\n":";\n")+source+"return __p\n}";var result=attempt(function(){return Function(importsKeys,sourceURL+"return "+source).apply(undefined,importsValues)});result.source=source;if(isError(result)){throw result}return result}function toLower(value){return toString(value).toLowerCase()}function toUpper(value){return toString(value).toUpperCase()}function trim(string,chars,guard){string=toString(string);if(string&&(guard||chars===undefined)){return string.replace(reTrim,"")}if(!string||!(chars=baseToString(chars))){return string}var strSymbols=stringToArray(string),chrSymbols=stringToArray(chars),start=charsStartIndex(strSymbols,chrSymbols),end=charsEndIndex(strSymbols,chrSymbols)+1;return castSlice(strSymbols,start,end).join("")}function trimEnd(string,chars,guard){string=toString(string);if(string&&(guard||chars===undefined)){return string.replace(reTrimEnd,"")}if(!string||!(chars=baseToString(chars))){return string}var strSymbols=stringToArray(string),end=charsEndIndex(strSymbols,stringToArray(chars))+1;return castSlice(strSymbols,0,end).join("")}function trimStart(string,chars,guard){string=toString(string);if(string&&(guard||chars===undefined)){return string.replace(reTrimStart,"")}if(!string||!(chars=baseToString(chars))){return string}var strSymbols=stringToArray(string),start=charsStartIndex(strSymbols,stringToArray(chars));return castSlice(strSymbols,start).join("")}function truncate(string,options){var length=DEFAULT_TRUNC_LENGTH,omission=DEFAULT_TRUNC_OMISSION;if(isObject(options)){var separator="separator"in options?options.separator:separator;length="length"in options?toInteger(options.length):length;omission="omission"in options?baseToString(options.omission):omission}string=toString(string);var strLength=string.length;if(hasUnicode(string)){var strSymbols=stringToArray(string);strLength=strSymbols.length}if(length>=strLength){return string}var end=length-stringSize(omission);if(end<1){return omission}var result=strSymbols?castSlice(strSymbols,0,end).join(""):string.slice(0,end);if(separator===undefined){return result+omission}if(strSymbols){end+=result.length-end}if(isRegExp(separator)){if(string.slice(end).search(separator)){var match,substring=result;if(!separator.global){separator=RegExp(separator.source,toString(reFlags.exec(separator))+"g")}separator.lastIndex=0;while(match=separator.exec(substring)){var newEnd=match.index}result=result.slice(0,newEnd===undefined?end:newEnd)}}else if(string.indexOf(baseToString(separator),end)!=end){var index=result.lastIndexOf(separator);if(index>-1){result=result.slice(0,index)}}return result+omission}function unescape(string){string=toString(string);return string&&reHasEscapedHtml.test(string)?string.replace(reEscapedHtml,unescapeHtmlChar):string}var upperCase=createCompounder(function(result,word,index){return result+(index?" ":"")+word.toUpperCase()});var upperFirst=createCaseFirst("toUpperCase");function words(string,pattern,guard){string=toString(string);pattern=guard?undefined:pattern;if(pattern===undefined){return hasUnicodeWord(string)?unicodeWords(string):asciiWords(string)}return string.match(pattern)||[]}var attempt=baseRest(function(func,args){try{return apply(func,undefined,args)}catch(e){return isError(e)?e:new Error(e)}});var bindAll=flatRest(function(object,methodNames){arrayEach(methodNames,function(key){key=toKey(key);baseAssignValue(object,key,bind(object[key],object))});return object});function cond(pairs){var length=pairs==null?0:pairs.length,toIteratee=getIteratee();pairs=!length?[]:arrayMap(pairs,function(pair){if(typeof pair[1]!="function"){throw new TypeError(FUNC_ERROR_TEXT)}return[toIteratee(pair[0]),pair[1]]});return baseRest(function(args){var index=-1;while(++indexMAX_SAFE_INTEGER){return[]}var index=MAX_ARRAY_LENGTH,length=nativeMin(n,MAX_ARRAY_LENGTH);iteratee=getIteratee(iteratee);n-=MAX_ARRAY_LENGTH;var result=baseTimes(length,iteratee);while(++index0||end<0)){return new LazyWrapper(result)}if(start<0){result=result.takeRight(-start)}else if(start){result=result.drop(start)}if(end!==undefined){end=toInteger(end);result=end<0?result.dropRight(-end):result.take(end-start)}return result};LazyWrapper.prototype.takeRightWhile=function(predicate){return this.reverse().takeWhile(predicate).reverse()};LazyWrapper.prototype.toArray=function(){return this.take(MAX_ARRAY_LENGTH)};baseForOwn(LazyWrapper.prototype,function(func,methodName){var checkIteratee=/^(?:filter|find|map|reject)|While$/.test(methodName),isTaker=/^(?:head|last)$/.test(methodName),lodashFunc=lodash[isTaker?"take"+(methodName=="last"?"Right":""):methodName],retUnwrapped=isTaker||/^find/.test(methodName);if(!lodashFunc){return}lodash.prototype[methodName]=function(){var value=this.__wrapped__,args=isTaker?[1]:arguments,isLazy=value instanceof LazyWrapper,iteratee=args[0],useLazy=isLazy||isArray(value);var interceptor=function interceptor(value){var result=lodashFunc.apply(lodash,arrayPush([value],args));return isTaker&&chainAll?result[0]:result};if(useLazy&&checkIteratee&&typeof iteratee=="function"&&iteratee.length!=1){isLazy=useLazy=false}var chainAll=this.__chain__,isHybrid=!!this.__actions__.length,isUnwrapped=retUnwrapped&&!chainAll,onlyLazy=isLazy&&!isHybrid;if(!retUnwrapped&&useLazy){value=onlyLazy?value:new LazyWrapper(this);var result=func.apply(value,args);result.__actions__.push({func:thru,args:[interceptor],thisArg:undefined});return new LodashWrapper(result,chainAll)}if(isUnwrapped&&onlyLazy){return func.apply(this,args)}result=this.thru(interceptor);return isUnwrapped?isTaker?result.value()[0]:result.value():result}});arrayEach(["pop","push","shift","sort","splice","unshift"],function(methodName){var func=arrayProto[methodName],chainName=/^(?:push|sort|unshift)$/.test(methodName)?"tap":"thru",retUnwrapped=/^(?:pop|shift)$/.test(methodName);lodash.prototype[methodName]=function(){var args=arguments;if(retUnwrapped&&!this.__chain__){var value=this.value();return func.apply(isArray(value)?value:[],args)}return this[chainName](function(value){return func.apply(isArray(value)?value:[],args)})}});baseForOwn(LazyWrapper.prototype,function(func,methodName){var lodashFunc=lodash[methodName];if(lodashFunc){var key=lodashFunc.name+"",names=realNames[key]||(realNames[key]=[]);names.push({name:methodName,func:lodashFunc})}});realNames[createHybrid(undefined,WRAP_BIND_KEY_FLAG).name]=[{name:"wrapper",func:undefined}];LazyWrapper.prototype.clone=lazyClone;LazyWrapper.prototype.reverse=lazyReverse;LazyWrapper.prototype.value=lazyValue;lodash.prototype.at=wrapperAt;lodash.prototype.chain=wrapperChain;lodash.prototype.commit=wrapperCommit;lodash.prototype.next=wrapperNext;lodash.prototype.plant=wrapperPlant;lodash.prototype.reverse=wrapperReverse;lodash.prototype.toJSON=lodash.prototype.valueOf=lodash.prototype.value=wrapperValue;lodash.prototype.first=lodash.prototype.head;if(symIterator){lodash.prototype[symIterator]=wrapperToIterator}return lodash};var _=runInContext();if(typeof define=="function"&&_typeof(define.amd)=="object"&&define.amd){root._=_;define(function(){return _})}else if(freeModule){(freeModule.exports=_)._=_;freeExports._=_}else{root._=_}}).call(undefined)}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{}],50:[function(require,module,exports){"use strict";module.exports=minimatch;minimatch.Minimatch=Minimatch;var path={sep:"/"};try{path=require("path")}catch(er){}var GLOBSTAR=minimatch.GLOBSTAR=Minimatch.GLOBSTAR={};var expand=require("brace-expansion");var plTypes={"!":{open:"(?:(?!(?:",close:"))[^/]*?)"},"?":{open:"(?:",close:")?"},"+":{open:"(?:",close:")+"},"*":{open:"(?:",close:")*"},"@":{open:"(?:",close:")"}};var qmark="[^/]";var star=qmark+"*?";var twoStarDot="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?";var twoStarNoDot="(?:(?!(?:\\/|^)\\.).)*?";var reSpecials=charSet("().*{}+?[]^$\\!");function charSet(s){return s.split("").reduce(function(set,c){set[c]=true;return set},{})}var slashSplit=/\/+/;minimatch.filter=filter;function filter(pattern,options){options=options||{};return function(p,i,list){return minimatch(p,pattern,options)}}function ext(a,b){a=a||{};b=b||{};var t={};Object.keys(b).forEach(function(k){t[k]=b[k]});Object.keys(a).forEach(function(k){t[k]=a[k]});return t}minimatch.defaults=function(def){if(!def||!Object.keys(def).length)return minimatch;var orig=minimatch;var m=function minimatch(p,pattern,options){return orig.minimatch(p,pattern,ext(def,options))};m.Minimatch=function Minimatch(pattern,options){return new orig.Minimatch(pattern,ext(def,options))};return m};Minimatch.defaults=function(def){if(!def||!Object.keys(def).length)return Minimatch;return minimatch.defaults(def).Minimatch};function minimatch(p,pattern,options){if(typeof pattern!=="string"){throw new TypeError("glob pattern string required")}if(!options)options={};if(!options.nocomment&&pattern.charAt(0)==="#"){return false}if(pattern.trim()==="")return p==="";return new Minimatch(pattern,options).match(p)}function Minimatch(pattern,options){if(!(this instanceof Minimatch)){return new Minimatch(pattern,options)}if(typeof pattern!=="string"){throw new TypeError("glob pattern string required")}if(!options)options={};pattern=pattern.trim();if(path.sep!=="/"){pattern=pattern.split(path.sep).join("/")}this.options=options;this.set=[];this.pattern=pattern;this.regexp=null;this.negate=false;this.comment=false;this.empty=false;this.make()}Minimatch.prototype.debug=function(){};Minimatch.prototype.make=make;function make(){if(this._made)return;var pattern=this.pattern;var options=this.options;if(!options.nocomment&&pattern.charAt(0)==="#"){this.comment=true;return}if(!pattern){this.empty=true;return}this.parseNegate();var set=this.globSet=this.braceExpand();if(options.debug)this.debug=console.error;this.debug(this.pattern,set);set=this.globParts=set.map(function(s){return s.split(slashSplit)});this.debug(this.pattern,set);set=set.map(function(s,si,set){return s.map(this.parse,this)},this);this.debug(this.pattern,set);set=set.filter(function(s){return s.indexOf(false)===-1});this.debug(this.pattern,set);this.set=set}Minimatch.prototype.parseNegate=parseNegate;function parseNegate(){var pattern=this.pattern;var negate=false;var options=this.options;var negateOffset=0;if(options.nonegate)return;for(var i=0,l=pattern.length;i1024*64){throw new TypeError("pattern is too long")}var options=this.options;if(!options.noglobstar&&pattern==="**")return GLOBSTAR;if(pattern==="")return"";var re="";var hasMagic=!!options.nocase;var escaping=false;var patternListStack=[];var negativeLists=[];var stateChar;var inClass=false;var reClassStart=-1;var classStart=-1;var patternStart=pattern.charAt(0)==="."?"":options.dot?"(?!(?:^|\\/)\\.{1,2}(?:$|\\/))":"(?!\\.)";var self=this;function clearStateChar(){if(stateChar){switch(stateChar){case"*":re+=star;hasMagic=true;break;case"?":re+=qmark;hasMagic=true;break;default:re+="\\"+stateChar;break}self.debug("clearStateChar %j %j",stateChar,re);stateChar=false}}for(var i=0,len=pattern.length,c;i-1;n--){var nl=negativeLists[n];var nlBefore=re.slice(0,nl.reStart);var nlFirst=re.slice(nl.reStart,nl.reEnd-8);var nlLast=re.slice(nl.reEnd-8,nl.reEnd);var nlAfter=re.slice(nl.reEnd);nlLast+=nlAfter;var openParensBefore=nlBefore.split("(").length-1;var cleanAfter=nlAfter;for(i=0;i=0;i--){filename=f[i];if(filename)break}for(i=0;i>> no match, partial?",file,fr,pattern,pr);if(fr===fl)return true}return false}var hit;if(typeof p==="string"){if(options.nocase){hit=f.toLowerCase()===p.toLowerCase()}else{hit=f===p}this.debug("string match",p,f,hit)}else{hit=f.match(p);this.debug("pattern match",p,f,hit)}if(!hit)return false}if(fi===fl&&pi===pl){return true}else if(fi===fl){return partial}else if(pi===pl){var emptyFileEnd=fi===fl-1&&file[fi]==="";return emptyFileEnd}throw new Error("wtf?")};function globUnescape(s){return s.replace(/\\(.)/g,"$1")}function regExpEscape(s){return s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")}},{"brace-expansion":8,path:54}],51:[function(require,module,exports){"use strict";var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj};var s=1e3;var m=s*60;var h=m*60;var d=h*24;var y=d*365.25;module.exports=function(val,options){options=options||{};var type=typeof val==="undefined"?"undefined":_typeof(val);if(type==="string"&&val.length>0){return parse(val)}else if(type==="number"&&isNaN(val)===false){return options.long?fmtLong(val):fmtShort(val)}throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(val))};function parse(str){str=String(str);if(str.length>100){return}var match=/^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(str);if(!match){return}var n=parseFloat(match[1]);var type=(match[2]||"ms").toLowerCase();switch(type){case"years":case"year":case"yrs":case"yr":case"y":return n*y;case"days":case"day":case"d":return n*d;case"hours":case"hour":case"hrs":case"hr":case"h":return n*h;case"minutes":case"minute":case"mins":case"min":case"m":return n*m;case"seconds":case"second":case"secs":case"sec":case"s":return n*s;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return n;default:return undefined}}function fmtShort(ms){if(ms>=d){return Math.round(ms/d)+"d"}if(ms>=h){return Math.round(ms/h)+"h"}if(ms>=m){return Math.round(ms/m)+"m"}if(ms>=s){return Math.round(ms/s)+"s"}return ms+"ms"}function fmtLong(ms){return plural(ms,d,"day")||plural(ms,h,"hour")||plural(ms,m,"minute")||plural(ms,s,"second")||ms+" ms"}function plural(ms,n,name){if(ms65;){++i}return+str.slice(pos-1,i)}code=alphabet&&alphabet.indexOf(str.charAt(pos));return code>-1?code+76:(code=str.charCodeAt(pos)||0,code<45||code>127)?code:code<46?65:code<48?code-1:code<58?code+18:code<65?code-11:code<91?code+11:code<97?code-37:code<123?code+5:code-63}if((a+="")!=(b+=""))for(;codeB;){codeA=getCode(a,posA++);codeB=getCode(b,posB++);if(codeA<76&&codeB<76&&codeA>66&&codeB>66){codeA=getCode(a,posA,posA);codeB=getCode(b,posB,posA=i);posB=i}if(codeA!=codeB)return codeA=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up--;up){parts.unshift("..")}}return parts}var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;var splitPath=function splitPath(filename){return splitPathRe.exec(filename).slice(1)};exports.resolve=function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:process.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){continue}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=normalizeArray(filter(resolvedPath.split("/"),function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."};exports.normalize=function(path){var isAbsolute=exports.isAbsolute(path),trailingSlash=substr(path,-1)==="/";path=normalizeArray(filter(path.split("/"),function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path};exports.isAbsolute=function(path){return path.charAt(0)==="/"};exports.join=function(){var paths=Array.prototype.slice.call(arguments,0);return exports.normalize(filter(paths,function(p,index){if(typeof p!=="string"){throw new TypeError("Arguments to path.join must be strings")}return p}).join("/"))};exports.relative=function(from,to){from=exports.resolve(from).substr(1);to=exports.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i1?function(){var params=args?args.concat():[];context=bound?context||this:this;return params.push.apply(params,arguments)=0;--i$){x=xs[i$];memo=f(x,memo)}return memo});foldr1=curry$(function(f,xs){return foldr(f,xs[xs.length-1],xs.slice(0,-1))});unfoldr=curry$(function(f,b){var result,x,that;result=[];x=b;while((that=f(x))!=null){result.push(that[0]);x=that[1]}return result});concat=function concat(xss){return[].concat.apply([],xss)};concatMap=curry$(function(f,xs){var x;return[].concat.apply([],function(){var i$,ref$,len$,results$=[];for(i$=0,len$=(ref$=xs).length;i$y){return 1}else if(xf(y)){return 1}else if(f(x)max){max=x}}return max};minimum=function minimum(xs){var min,i$,ref$,len$,x;min=xs[0];for(i$=0,len$=(ref$=xs.slice(1)).length;i$f(max)){max=x}}return max});minimumBy=curry$(function(f,xs){var min,i$,ref$,len$,x;min=xs[0];for(i$=0,len$=(ref$=xs.slice(1)).length;i$1?function(){var params=args?args.concat():[];context=bound?context||this:this;return params.push.apply(params,arguments)>>0;while(++iy$?x$:y$});min=curry$(function(x$,y$){return x$0){return 1}else{return 0}};quot=curry$(function(x,y){return~~(x/y)});rem=curry$(function(x$,y$){return x$%y$});div=curry$(function(x,y){return Math.floor(x/y)});mod=curry$(function(x$,y$){var ref$;return(x$%(ref$=y$)+ref$)%ref$});recip=function recip(it){return 1/it};pi=Math.PI;tau=pi*2;exp=Math.exp;sqrt=Math.sqrt;ln=Math.log;pow=curry$(function(x$,y$){return Math.pow(x$,y$)});sin=Math.sin;tan=Math.tan;cos=Math.cos;asin=Math.asin;acos=Math.acos;atan=Math.atan;atan2=curry$(function(x,y){return Math.atan2(x,y)});truncate=function truncate(x){return~~x};round=Math.round;ceiling=Math.ceil;floor=Math.floor;isItNaN=function isItNaN(x){return x!==x};even=function even(x){return x%2===0};odd=function odd(x){return x%2!==0};gcd=curry$(function(x,y){var z;x=Math.abs(x);y=Math.abs(y);while(y!==0){z=x%y;x=y;y=z}return x});lcm=curry$(function(x,y){return Math.abs(Math.floor(x/gcd(x,y)*y))});module.exports={max:max,min:min,negate:negate,abs:abs,signum:signum,quot:quot,rem:rem,div:div,mod:mod,recip:recip,pi:pi,tau:tau,exp:exp,sqrt:sqrt,ln:ln,pow:pow,sin:sin,tan:tan,cos:cos,acos:acos,asin:asin,atan:atan,atan2:atan2,truncate:truncate,round:round,ceiling:ceiling,floor:floor,isItNaN:isItNaN,even:even,odd:odd,gcd:gcd,lcm:lcm};function curry$(f,bound){var context,_curry=function _curry(args){return f.length>1?function(){var params=args?args.concat():[];context=bound?context||this:this;return params.push.apply(params,arguments)1?function(){var params=args?args.concat():[];context=bound?context||this:this;return params.push.apply(params,arguments)1?upper:upper.toLowerCase())}).replace(/^([A-Z]+)/,function(arg$,upper){if(upper.length>1){return upper+"-"}else{return upper.toLowerCase()}})};module.exports={split:split,join:join,lines:lines,unlines:unlines,words:words,unwords:unwords,chars:chars,unchars:unchars,reverse:reverse,repeat:repeat,capitalize:capitalize,camelize:camelize,dasherize:dasherize};function curry$(f,bound){var context,_curry=function _curry(args){return f.length>1?function(){var params=args?args.concat():[];context=bound?context||this:this;return params.push.apply(params,arguments)1?function(){var params=args?args.concat():[];context=bound?context||this:this;return params.push.apply(params,arguments)1){for(var i=1;i|"+identifierRegex.source+"|\\S","g");module.exports=function(input){var tokens,e;if(!input.length){throw new Error("No type specified.")}tokens=input.match(tokenRegex)||[];if(in$("->",tokens)){throw new Error("Function types are not supported. To validate that something is a function, you may use 'Function'.")}try{return consumeTypes(tokens)}catch(e$){e=e$;throw new Error(e.message+" - Remaining tokens: "+JSON.stringify(tokens)+" - Initial input: '"+input+"'")}};function in$(x,xs){var i=-1,l=xs.length>>>0;while(++i=len)return x;switch(x){case"%s":return String(args[i++]);case"%d":return Number(args[i++]);case"%j":try{return JSON.stringify(args[i++])}catch(_){return"[Circular]"}default:return x}});for(var x=args[i];i=3)ctx.depth=arguments[2];if(arguments.length>=4)ctx.colors=arguments[3];if(isBoolean(opts)){ctx.showHidden=opts}else if(opts){exports._extend(ctx,opts)}if(isUndefined(ctx.showHidden))ctx.showHidden=false;if(isUndefined(ctx.depth))ctx.depth=2;if(isUndefined(ctx.colors))ctx.colors=false;if(isUndefined(ctx.customInspect))ctx.customInspect=true;if(ctx.colors)ctx.stylize=stylizeWithColor;return formatValue(ctx,obj,ctx.depth)}exports.inspect=inspect;inspect.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]};inspect.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"};function stylizeWithColor(str,styleType){var style=inspect.styles[styleType];if(style){return"["+inspect.colors[style][0]+"m"+str+"["+inspect.colors[style][1]+"m"}else{return str}}function stylizeNoColor(str,styleType){return str}function arrayToHash(array){var hash={};array.forEach(function(val,idx){hash[val]=true});return hash}function formatValue(ctx,value,recurseTimes){if(ctx.customInspect&&value&&isFunction(value.inspect)&&value.inspect!==exports.inspect&&!(value.constructor&&value.constructor.prototype===value)){var ret=value.inspect(recurseTimes,ctx);if(!isString(ret)){ret=formatValue(ctx,ret,recurseTimes)}return ret}var primitive=formatPrimitive(ctx,value);if(primitive){return primitive}var keys=Object.keys(value);var visibleKeys=arrayToHash(keys);if(ctx.showHidden){keys=Object.getOwnPropertyNames(value)}if(isError(value)&&(keys.indexOf("message")>=0||keys.indexOf("description")>=0)){return formatError(value)}if(keys.length===0){if(isFunction(value)){var name=value.name?": "+value.name:"";return ctx.stylize("[Function"+name+"]","special")}if(isRegExp(value)){return ctx.stylize(RegExp.prototype.toString.call(value),"regexp")}if(isDate(value)){return ctx.stylize(Date.prototype.toString.call(value),"date")}if(isError(value)){return formatError(value)}}var base="",array=false,braces=["{","}"];if(isArray(value)){array=true;braces=["[","]"]}if(isFunction(value)){var n=value.name?": "+value.name:"";base=" [Function"+n+"]"}if(isRegExp(value)){base=" "+RegExp.prototype.toString.call(value)}if(isDate(value)){base=" "+Date.prototype.toUTCString.call(value)}if(isError(value)){base=" "+formatError(value)}if(keys.length===0&&(!array||value.length==0)){return braces[0]+base+braces[1]}if(recurseTimes<0){if(isRegExp(value)){return ctx.stylize(RegExp.prototype.toString.call(value),"regexp")}else{return ctx.stylize("[Object]","special")}}ctx.seen.push(value);var output;if(array){output=formatArray(ctx,value,recurseTimes,visibleKeys,keys)}else{output=keys.map(function(key){return formatProperty(ctx,value,recurseTimes,visibleKeys,key,array)})}ctx.seen.pop();return reduceToSingleString(output,base,braces)}function formatPrimitive(ctx,value){if(isUndefined(value))return ctx.stylize("undefined","undefined");if(isString(value)){var simple="'"+JSON.stringify(value).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return ctx.stylize(simple,"string")}if(isNumber(value))return ctx.stylize(""+value,"number");if(isBoolean(value))return ctx.stylize(""+value,"boolean");if(isNull(value))return ctx.stylize("null","null")}function formatError(value){return"["+Error.prototype.toString.call(value)+"]"}function formatArray(ctx,value,recurseTimes,visibleKeys,keys){var output=[];for(var i=0,l=value.length;i-1){if(array){str=str.split("\n").map(function(line){return" "+line}).join("\n").substr(2)}else{str="\n"+str.split("\n").map(function(line){return" "+line}).join("\n")}}}else{str=ctx.stylize("[Circular]","special")}}if(isUndefined(name)){if(array&&key.match(/^\d+$/)){return str}name=JSON.stringify(""+key);if(name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)){name=name.substr(1,name.length-2);name=ctx.stylize(name,"name")}else{name=name.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'");name=ctx.stylize(name,"string")}}return name+": "+str}function reduceToSingleString(output,base,braces){var numLinesEst=0;var length=output.reduce(function(prev,cur){numLinesEst++;if(cur.indexOf("\n")>=0)numLinesEst++;return prev+cur.replace(/\u001b\[\d\d?m/g,"").length+1},0);if(length>60){return braces[0]+(base===""?"":base+"\n ")+" "+output.join(",\n ")+" "+braces[1]}return braces[0]+base+" "+output.join(", ")+" "+braces[1]}function isArray(ar){return Array.isArray(ar)}exports.isArray=isArray;function isBoolean(arg){return typeof arg==="boolean"}exports.isBoolean=isBoolean;function isNull(arg){return arg===null}exports.isNull=isNull;function isNullOrUndefined(arg){return arg==null}exports.isNullOrUndefined=isNullOrUndefined;function isNumber(arg){return typeof arg==="number"}exports.isNumber=isNumber;function isString(arg){return typeof arg==="string"}exports.isString=isString;function isSymbol(arg){return(typeof arg==="undefined"?"undefined":_typeof(arg))==="symbol"}exports.isSymbol=isSymbol;function isUndefined(arg){return arg===void 0}exports.isUndefined=isUndefined;function isRegExp(re){return isObject(re)&&objectToString(re)==="[object RegExp]"}exports.isRegExp=isRegExp;function isObject(arg){return(typeof arg==="undefined"?"undefined":_typeof(arg))==="object"&&arg!==null}exports.isObject=isObject;function isDate(d){return isObject(d)&&objectToString(d)==="[object Date]"}exports.isDate=isDate;function isError(e){return isObject(e)&&(objectToString(e)==="[object Error]"||e instanceof Error)}exports.isError=isError;function isFunction(arg){return typeof arg==="function"}exports.isFunction=isFunction;function isPrimitive(arg){return arg===null||typeof arg==="boolean"||typeof arg==="number"||typeof arg==="string"||(typeof arg==="undefined"?"undefined":_typeof(arg))==="symbol"||typeof arg==="undefined"}exports.isPrimitive=isPrimitive;exports.isBuffer=require("./support/isBuffer");function objectToString(o){return Object.prototype.toString.call(o)}function pad(n){return n<10?"0"+n.toString(10):n.toString(10)}var months=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function timestamp(){var d=new Date;var time=[pad(d.getHours()),pad(d.getMinutes()),pad(d.getSeconds())].join(":");return[d.getDate(),months[d.getMonth()],time].join(" ")}exports.log=function(){console.log("%s - %s",timestamp(),exports.format.apply(exports,arguments))};exports.inherits=require("inherits");exports._extend=function(origin,add){if(!add||!isObject(add))return origin;var keys=Object.keys(add);var i=keys.length;while(i--){origin[keys[i]]=add[keys[i]]}return origin};function hasOwnProperty(obj,prop){return Object.prototype.hasOwnProperty.call(obj,prop)}}).call(this,require("_process"),typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"./support/isBuffer":66,_process:61,inherits:65}],68:[function(require,module,exports){"use strict";module.exports=extend;var hasOwnProperty=Object.prototype.hasOwnProperty;function extend(){var target={};for(var i=0;i",description:"An AST-based pattern checker for JavaScript.",bin:{eslint:"./bin/eslint.js"},main:"./lib/api.js",scripts:{test:"node Makefile.js test",lint:"node Makefile.js lint",release:"node Makefile.js release","ci-release":"node Makefile.js ciRelease",alpharelease:"node Makefile.js prerelease -- alpha",betarelease:"node Makefile.js prerelease -- beta",docs:"node Makefile.js docs",gensite:"node Makefile.js gensite",browserify:"node Makefile.js browserify",perf:"node Makefile.js perf",profile:"beefy tests/bench/bench.js --open -- -t brfs -t ./tests/bench/xform-rules.js -r espree",coveralls:"cat ./coverage/lcov.info | coveralls","check-commit":"node Makefile.js checkGitCommit"},files:["LICENSE","README.md","bin","conf","lib","messages"],repository:"eslint/eslint",homepage:"http://eslint.org",bugs:"https://github.com/eslint/eslint/issues/",dependencies:{"babel-code-frame":"^6.22.0",chalk:"^1.1.3","concat-stream":"^1.6.0",debug:"^2.6.8",doctrine:"^2.0.0","eslint-scope":"^3.7.1",espree:"^3.4.3",esquery:"^1.0.0",estraverse:"^4.2.0",esutils:"^2.0.2","file-entry-cache":"^2.0.0",glob:"^7.1.2",globals:"^9.17.0",ignore:"^3.3.3",imurmurhash:"^0.1.4",inquirer:"^3.0.6","is-my-json-valid":"^2.16.0","is-resolvable":"^1.0.0","js-yaml":"^3.8.4","json-stable-stringify":"^1.0.1",levn:"^0.3.0",lodash:"^4.17.4",minimatch:"^3.0.2",mkdirp:"^0.5.1","natural-compare":"^1.4.0",optionator:"^0.8.2","path-is-inside":"^1.0.2",pluralize:"^4.0.0",progress:"^2.0.0","require-uncached":"^1.0.3","strip-json-comments":"~2.0.1",table:"^4.0.1","text-table":"~0.2.0"},devDependencies:{"babel-polyfill":"^6.23.0","babel-preset-es2015":"^6.24.1",babelify:"^7.3.0",beefy:"^2.1.8",brfs:"1.4.3",browserify:"^14.4.0",chai:"^4.0.1",cheerio:"^0.22.0",coveralls:"^2.13.1",dateformat:"^2.0.0",ejs:"^2.5.6","eslint-plugin-eslint-plugin":"^0.7.2","eslint-plugin-node":"^5.0.0","eslint-release":"^0.10.1",esprima:"^3.1.3","esprima-fb":"^15001.1001.0-dev-harmony-fb",istanbul:"^0.4.5",jsdoc:"^3.4.3",karma:"^1.7.0","karma-babel-preprocessor":"^6.0.1","karma-mocha":"^1.3.0","karma-mocha-reporter":"^2.2.3","karma-phantomjs-launcher":"^1.0.4",leche:"^2.1.2","load-perf":"^0.2.0",markdownlint:"^0.5.0",mocha:"^3.4.2","mock-fs":"^4.3.0","npm-license":"^0.3.3","phantomjs-prebuilt":"^2.1.14",proxyquire:"^1.8.0",semver:"^5.3.0",shelljs:"^0.7.7","shelljs-nodecli":"~0.1.1",sinon:"^2.3.2",temp:"^0.8.3",through:"^2.3.8"},keywords:["ast","lint","javascript","ecmascript","espree"],license:"MIT",engines:{node:">=4"}}},{}],70:[function(require,module,exports){"use strict";var esutils=require("esutils");var espree=require("espree");var anyFunctionPattern=/^(?:Function(?:Declaration|Expression)|ArrowFunctionExpression)$/;var anyLoopPattern=/^(?:DoWhile|For|ForIn|ForOf|While)Statement$/;var arrayOrTypedArrayPattern=/Array$/;var arrayMethodPattern=/^(?:every|filter|find|findIndex|forEach|map|some)$/;var bindOrCallOrApplyPattern=/^(?:bind|call|apply)$/;var breakableTypePattern=/^(?:(?:Do)?While|For(?:In|Of)?|Switch)Statement$/;var thisTagPattern=/^[\s*]*@this/m;var COMMENTS_IGNORE_PATTERN=/^\s*(?:eslint|jshint\s+|jslint\s+|istanbul\s+|globals?\s+|exported\s+|jscs)/;var LINEBREAKS=new Set(["\r\n","\r","\n","\u2028","\u2029"]);var LINEBREAK_MATCHER=/\r\n|[\r\n\u2028\u2029]/;var SHEBANG_MATCHER=/^#!([^\r\n]+)/;var STATEMENT_LIST_PARENTS=new Set(["Program","BlockStatement","SwitchCase"]);function isModifyingReference(reference,index,references){var identifier=reference.identifier;var modifyingDifferentIdentifier=index===0||references[index-1].identifier!==identifier;return identifier&&reference.init===false&&reference.isWrite()&&modifyingDifferentIdentifier}function startsWithUpperCase(s){return s[0]!==s[0].toLocaleLowerCase()}function isES5Constructor(node){return node.id&&startsWithUpperCase(node.id.name)}function getUpperFunction(node){while(node){if(anyFunctionPattern.test(node.type)){return node}node=node.parent}return null}function isFunction(node){return Boolean(node&&anyFunctionPattern.test(node.type))}function isLoop(node){return Boolean(node&&anyLoopPattern.test(node.type))}function isInLoop(node){while(node&&!isFunction(node)){if(isLoop(node)){return true}node=node.parent}return false}function isNullOrUndefined(node){return module.exports.isNullLiteral(node)||node.type==="Identifier"&&node.name==="undefined"||node.type==="UnaryExpression"&&node.operator==="void"}function isCallee(node){return node.parent.type==="CallExpression"&&node.parent.callee===node}function isReflectApply(node){return node.type==="MemberExpression"&&node.object.type==="Identifier"&&node.object.name==="Reflect"&&node.property.type==="Identifier"&&node.property.name==="apply"&&node.computed===false}function isArrayFromMethod(node){return node.type==="MemberExpression"&&node.object.type==="Identifier"&&arrayOrTypedArrayPattern.test(node.object.name)&&node.property.type==="Identifier"&&node.property.name==="from"&&node.computed===false}function isMethodWhichHasThisArg(node){while(node){if(node.type==="Identifier"){return arrayMethodPattern.test(node.name)}if(node.type==="MemberExpression"&&!node.computed){node=node.property;continue}break}return false}function negate(f){return function(token){return!f(token)}}function hasJSDocThisTag(node,sourceCode){var jsdocComment=sourceCode.getJSDocComment(node);if(jsdocComment&&thisTagPattern.test(jsdocComment.value)){return true}return sourceCode.getCommentsBefore(node).some(function(comment){return thisTagPattern.test(comment.value)})}function isParenthesised(sourceCode,node){var previousToken=sourceCode.getTokenBefore(node),nextToken=sourceCode.getTokenAfter(node);return Boolean(previousToken&&nextToken)&&previousToken.value==="("&&previousToken.range[1]<=node.range[0]&&nextToken.value===")"&&nextToken.range[0]>=node.range[1]}function isArrowToken(token){return token.value==="=>"&&token.type==="Punctuator"}function isCommaToken(token){return token.value===","&&token.type==="Punctuator"}function isSemicolonToken(token){return token.value===";"&&token.type==="Punctuator"}function isColonToken(token){return token.value===":"&&token.type==="Punctuator"}function isOpeningParenToken(token){return token.value==="("&&token.type==="Punctuator"}function isClosingParenToken(token){return token.value===")"&&token.type==="Punctuator"}function isOpeningBracketToken(token){return token.value==="["&&token.type==="Punctuator"}function isClosingBracketToken(token){return token.value==="]"&&token.type==="Punctuator"}function isOpeningBraceToken(token){return token.value==="{"&&token.type==="Punctuator"}function isClosingBraceToken(token){return token.value==="}"&&token.type==="Punctuator"}function isCommentToken(token){return token.type==="Line"||token.type==="Block"||token.type==="Shebang"}function isKeywordToken(token){return token.type==="Keyword"}function getOpeningParenOfParams(node,sourceCode){return node.id?sourceCode.getTokenAfter(node.id,isOpeningParenToken):sourceCode.getFirstToken(node,isOpeningParenToken)}function createGlobalLinebreakMatcher(){return new RegExp(LINEBREAK_MATCHER.source,"g")}module.exports={COMMENTS_IGNORE_PATTERN:COMMENTS_IGNORE_PATTERN,LINEBREAKS:LINEBREAKS,LINEBREAK_MATCHER:LINEBREAK_MATCHER,SHEBANG_MATCHER:SHEBANG_MATCHER,STATEMENT_LIST_PARENTS:STATEMENT_LIST_PARENTS,isTokenOnSameLine:function isTokenOnSameLine(left,right){return left.loc.end.line===right.loc.start.line},isNullOrUndefined:isNullOrUndefined,isCallee:isCallee,isES5Constructor:isES5Constructor,getUpperFunction:getUpperFunction,isFunction:isFunction,isLoop:isLoop,isInLoop:isInLoop,isArrayFromMethod:isArrayFromMethod,isParenthesised:isParenthesised,createGlobalLinebreakMatcher:createGlobalLinebreakMatcher,isArrowToken:isArrowToken,isClosingBraceToken:isClosingBraceToken,isClosingBracketToken:isClosingBracketToken,isClosingParenToken:isClosingParenToken,isColonToken:isColonToken,isCommaToken:isCommaToken,isCommentToken:isCommentToken,isKeywordToken:isKeywordToken,isNotClosingBraceToken:negate(isClosingBraceToken),isNotClosingBracketToken:negate(isClosingBracketToken),isNotClosingParenToken:negate(isClosingParenToken),isNotColonToken:negate(isColonToken),isNotCommaToken:negate(isCommaToken),isNotOpeningBraceToken:negate(isOpeningBraceToken),isNotOpeningBracketToken:negate(isOpeningBracketToken),isNotOpeningParenToken:negate(isOpeningParenToken),isNotSemicolonToken:negate(isSemicolonToken),isOpeningBraceToken:isOpeningBraceToken,isOpeningBracketToken:isOpeningBracketToken,isOpeningParenToken:isOpeningParenToken,isSemicolonToken:isSemicolonToken,isStringLiteral:function isStringLiteral(node){return node.type==="Literal"&&typeof node.value==="string"||node.type==="TemplateLiteral"},isBreakableStatement:function isBreakableStatement(node){return breakableTypePattern.test(node.type)},getLabel:function getLabel(node){if(node.parent.type==="LabeledStatement"){return node.parent.label.name}return null},getModifyingReferences:function getModifyingReferences(references){return references.filter(isModifyingReference)},isSurroundedBy:function isSurroundedBy(val,character){return val[0]===character&&val[val.length-1]===character},isDirectiveComment:function isDirectiveComment(node){var comment=node.value.trim();return node.type==="Line"&&comment.indexOf("eslint-")===0||node.type==="Block"&&(comment.indexOf("global ")===0||comment.indexOf("eslint ")===0||comment.indexOf("eslint-")===0)},getTrailingStatement:esutils.ast.trailingStatement,getVariableByName:function getVariableByName(initScope,name){var scope=initScope;while(scope){var variable=scope.set.get(name);if(variable){return variable}scope=scope.upper}return null},isDefaultThisBinding:function isDefaultThisBinding(node,sourceCode){if(isES5Constructor(node)||hasJSDocThisTag(node,sourceCode)){return false}var isAnonymous=node.id===null;while(node){var parent=node.parent;switch(parent.type){case"LogicalExpression":case"ConditionalExpression":node=parent;break;case"ReturnStatement":{var func=getUpperFunction(parent);if(func===null||!isCallee(func)){return true}node=func.parent;break}case"Property":case"MethodDefinition":return parent.value!==node;case"AssignmentExpression":case"AssignmentPattern":if(parent.right===node){if(parent.left.type==="MemberExpression"){return false}if(isAnonymous&&parent.left.type==="Identifier"&&startsWithUpperCase(parent.left.name)){return false}}return true;case"VariableDeclarator":return!(isAnonymous&&parent.init===node&&parent.id.type==="Identifier"&&startsWithUpperCase(parent.id.name));case"MemberExpression":return parent.object!==node||parent.property.type!=="Identifier"||!bindOrCallOrApplyPattern.test(parent.property.name)||!isCallee(parent)||parent.parent.arguments.length===0||isNullOrUndefined(parent.parent.arguments[0]);case"CallExpression":if(isReflectApply(parent.callee)){return parent.arguments.length!==3||parent.arguments[0]!==node||isNullOrUndefined(parent.arguments[1])}if(isArrayFromMethod(parent.callee)){return parent.arguments.length!==3||parent.arguments[1]!==node||isNullOrUndefined(parent.arguments[2])}if(isMethodWhichHasThisArg(parent.callee)){return parent.arguments.length!==2||parent.arguments[0]!==node||isNullOrUndefined(parent.arguments[1])}return true;default:return true}}return true},getPrecedence:function getPrecedence(node){switch(node.type){case"SequenceExpression":return 0;case"AssignmentExpression":case"ArrowFunctionExpression":case"YieldExpression":return 1;case"ConditionalExpression":return 3;case"LogicalExpression":switch(node.operator){case"||":return 4;case"&&":return 5}case"BinaryExpression":switch(node.operator){case"|":return 6;case"^":return 7;case"&":return 8;case"==":case"!=":case"===":case"!==":return 9;case"<":case"<=":case">":case">=":case"in":case"instanceof":return 10;case"<<":case">>":case">>>":return 11;case"+":case"-":return 12;case"*":case"/":case"%":return 13;case"**":return 15}case"UnaryExpression":case"AwaitExpression":return 16;case"UpdateExpression":return 17;case"CallExpression":if(node.callee.type==="FunctionExpression"){return-1}return 18;case"NewExpression":return 19}return 20},isEmptyBlock:function isEmptyBlock(node){return Boolean(node&&node.type==="BlockStatement"&&node.body.length===0)},isEmptyFunction:function isEmptyFunction(node){return isFunction(node)&&module.exports.isEmptyBlock(node.body)},getStaticPropertyName:function getStaticPropertyName(node){var prop=void 0;switch(node&&node.type){case"Property":case"MethodDefinition":prop=node.key;break;case"MemberExpression":prop=node.property;break}switch(prop&&prop.type){case"Literal":return String(prop.value);case"TemplateLiteral":if(prop.expressions.length===0&&prop.quasis.length===1){return prop.quasis[0].value.cooked}break;case"Identifier":if(!node.computed){return prop.name}break}return null},getDirectivePrologue:function getDirectivePrologue(node){var directives=[];if(node.type==="Program"||node.type==="FunctionDeclaration"||node.type==="FunctionExpression"||node.type==="ArrowFunctionExpression"&&node.body.type==="BlockStatement"){var statements=node.type==="Program"?node.body:node.body.body;var _iteratorNormalCompletion=true;var _didIteratorError=false;var _iteratorError=undefined;try{for(var _iterator=statements[Symbol.iterator](),_step;!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=true){var statement=_step.value;if(statement.type==="ExpressionStatement"&&statement.expression.type==="Literal"){directives.push(statement)}else{break}}}catch(err){_didIteratorError=true;_iteratorError=err}finally{try{if(!_iteratorNormalCompletion&&_iterator.return){_iterator.return()}}finally{if(_didIteratorError){throw _iteratorError}}}}return directives},isDecimalInteger:function isDecimalInteger(node){return node.type==="Literal"&&typeof node.value==="number"&&/^(0|[1-9]\d*)$/.test(node.raw)},getFunctionNameWithKind:function getFunctionNameWithKind(node){var parent=node.parent;var tokens=[];if(parent.type==="MethodDefinition"&&parent.static){tokens.push("static")}if(node.async){tokens.push("async")}if(node.generator){tokens.push("generator")}if(node.type==="ArrowFunctionExpression"){tokens.push("arrow","function")}else if(parent.type==="Property"||parent.type==="MethodDefinition"){if(parent.kind==="constructor"){return"constructor"}else if(parent.kind==="get"){tokens.push("getter")}else if(parent.kind==="set"){tokens.push("setter")}else{tokens.push("method")}}else{tokens.push("function")}if(node.id){tokens.push("'"+node.id.name+"'")}else{var name=module.exports.getStaticPropertyName(parent);if(name){tokens.push("'"+name+"'")}}return tokens.join(" ")},getFunctionHeadLoc:function getFunctionHeadLoc(node,sourceCode){var parent=node.parent;var start=null;var end=null;if(node.type==="ArrowFunctionExpression"){var arrowToken=sourceCode.getTokenBefore(node.body,isArrowToken);start=arrowToken.loc.start;end=arrowToken.loc.end}else if(parent.type==="Property"||parent.type==="MethodDefinition"){start=parent.loc.start;end=getOpeningParenOfParams(node,sourceCode).loc.start}else{start=node.loc.start;end=getOpeningParenOfParams(node,sourceCode).loc.start}return{start:Object.assign({},start),end:Object.assign({},end)}},getParenthesisedText:function getParenthesisedText(sourceCode,node){var leftToken=sourceCode.getFirstToken(node);var rightToken=sourceCode.getLastToken(node);while(sourceCode.getTokenBefore(leftToken)&&sourceCode.getTokenBefore(leftToken).type==="Punctuator"&&sourceCode.getTokenBefore(leftToken).value==="("&&sourceCode.getTokenAfter(rightToken)&&sourceCode.getTokenAfter(rightToken).type==="Punctuator"&&sourceCode.getTokenAfter(rightToken).value===")"){leftToken=sourceCode.getTokenBefore(leftToken);rightToken=sourceCode.getTokenAfter(rightToken)}return sourceCode.getText().slice(leftToken.range[0],rightToken.range[1])},couldBeError:function couldBeError(node){switch(node.type){case"Identifier":case"CallExpression":case"NewExpression":case"MemberExpression":case"TaggedTemplateExpression":case"YieldExpression":case"AwaitExpression":return true;case"AssignmentExpression":return module.exports.couldBeError(node.right);case"SequenceExpression":{var exprs=node.expressions;return exprs.length!==0&&module.exports.couldBeError(exprs[exprs.length-1])}case"LogicalExpression":return module.exports.couldBeError(node.left)||module.exports.couldBeError(node.right);case"ConditionalExpression":return module.exports.couldBeError(node.consequent)||module.exports.couldBeError(node.alternate);default:return false}},isNullLiteral:function isNullLiteral(node){return node.type==="Literal"&&node.value===null&&!node.regex},canTokensBeAdjacent:function canTokensBeAdjacent(leftValue,rightValue){var leftToken=void 0;if(typeof leftValue==="string"){var leftTokens=espree.tokenize(leftValue,{ecmaVersion:2015});leftToken=leftTokens[leftTokens.length-1]}else{leftToken=leftValue}var rightToken=typeof rightValue==="string"?espree.tokenize(rightValue,{ecmaVersion:2015})[0]:rightValue;if(leftToken.type==="Punctuator"||rightToken.type==="Punctuator"){if(leftToken.type==="Punctuator"&&rightToken.type==="Punctuator"){var PLUS_TOKENS=new Set(["+","++"]);var MINUS_TOKENS=new Set(["-","--"]);return!(PLUS_TOKENS.has(leftToken.value)&&PLUS_TOKENS.has(rightToken.value)||MINUS_TOKENS.has(leftToken.value)&&MINUS_TOKENS.has(rightToken.value))}return true}if(leftToken.type==="String"||rightToken.type==="String"||leftToken.type==="Template"||rightToken.type==="Template"){return true}if(leftToken.type!=="Numeric"&&rightToken.type==="Numeric"&&rightToken.value.startsWith(".")){return true}return false}}},{espree:"espree",esutils:34}],71:[function(require,module,exports){"use strict";var _createClass=function(){function defineProperties(target,props){for(var i=0;i "+toSegment.id);this.emitter.emit("onCodePathSegmentLoop",fromSegment,toSegment,this.currentNode)}}}]);return CodePathAnalyzer}();module.exports=CodePathAnalyzer},{"../ast-utils":70,"./code-path":74,"./code-path-segment":72,"./debug-helpers":75,"./id-generator":77,assert:6}],72:[function(require,module,exports){"use strict";var _createClass=function(){function defineProperties(target,props){for(var i=0;i=2){CodePathSegment.markPrevSegmentAsLooped(toSegment,fromSegment)}state.notifyLooped(fromSegment,toSegment)}}function finalizeTestSegmentsOfFor(context,choiceContext,head){if(!choiceContext.processed){choiceContext.trueForkContext.add(head);choiceContext.falseForkContext.add(head)}if(context.test!==true){context.brokenForkContext.addAll(choiceContext.falseForkContext)}context.endOfTestSegments=choiceContext.trueForkContext.makeNext(0,-1)}var CodePathState=function(){function CodePathState(idGenerator,onLooped){_classCallCheck(this,CodePathState);this.idGenerator=idGenerator;this.notifyLooped=onLooped;this.forkContext=ForkContext.newRoot(idGenerator);this.choiceContext=null;this.switchContext=null;this.tryContext=null;this.loopContext=null;this.breakContext=null;this.currentSegments=[];this.initialSegment=this.forkContext.head[0];var final=this.finalSegments=[];var returned=this.returnedForkContext=[];var thrown=this.thrownForkContext=[];returned.add=addToReturnedOrThrown.bind(null,returned,thrown,final);thrown.add=addToReturnedOrThrown.bind(null,thrown,returned,final)}_createClass(CodePathState,[{key:"pushForkContext",value:function pushForkContext(forkLeavingPath){this.forkContext=ForkContext.newEmpty(this.forkContext,forkLeavingPath);return this.forkContext}},{key:"popForkContext",value:function popForkContext(){var lastContext=this.forkContext;this.forkContext=lastContext.upper;this.forkContext.replaceHead(lastContext.makeNext(0,-1));return lastContext}},{key:"forkPath",value:function forkPath(){this.forkContext.add(this.parentForkContext.makeNext(-1,-1))}},{key:"forkBypassPath",value:function forkBypassPath(){this.forkContext.add(this.parentForkContext.head)}},{key:"pushChoiceContext",value:function pushChoiceContext(kind,isForkingAsResult){this.choiceContext={upper:this.choiceContext,kind:kind,isForkingAsResult:isForkingAsResult,trueForkContext:ForkContext.newEmpty(this.forkContext),falseForkContext:ForkContext.newEmpty(this.forkContext),processed:false}}},{key:"popChoiceContext",value:function popChoiceContext(){var context=this.choiceContext;this.choiceContext=context.upper;var forkContext=this.forkContext;var headSegments=forkContext.head;switch(context.kind){case"&&":case"||":if(!context.processed){context.trueForkContext.add(headSegments);context.falseForkContext.add(headSegments)}if(context.isForkingAsResult){var parentContext=this.choiceContext;parentContext.trueForkContext.addAll(context.trueForkContext);parentContext.falseForkContext.addAll(context.falseForkContext);parentContext.processed=true;return context}break;case"test":if(!context.processed){context.trueForkContext.clear();context.trueForkContext.add(headSegments)}else{context.falseForkContext.clear();context.falseForkContext.add(headSegments)}break;case"loop":return context;default:throw new Error("unreachable")}var prevForkContext=context.trueForkContext;prevForkContext.addAll(context.falseForkContext);forkContext.replaceHead(prevForkContext.makeNext(0,-1));return context}},{key:"makeLogicalRight",value:function makeLogicalRight(){var context=this.choiceContext;var forkContext=this.forkContext;if(context.processed){var prevForkContext=context.kind==="&&"?context.trueForkContext:context.falseForkContext;forkContext.replaceHead(prevForkContext.makeNext(0,-1));prevForkContext.clear();context.processed=false}else{if(context.kind==="&&"){context.falseForkContext.add(forkContext.head)}else{context.trueForkContext.add(forkContext.head)}forkContext.replaceHead(forkContext.makeNext(-1,-1))}}},{key:"makeIfConsequent",value:function makeIfConsequent(){var context=this.choiceContext;var forkContext=this.forkContext;if(!context.processed){context.trueForkContext.add(forkContext.head);context.falseForkContext.add(forkContext.head)}context.processed=false;forkContext.replaceHead(context.trueForkContext.makeNext(0,-1))}},{key:"makeIfAlternate",value:function makeIfAlternate(){var context=this.choiceContext;var forkContext=this.forkContext;context.trueForkContext.clear();context.trueForkContext.add(forkContext.head);context.processed=true;forkContext.replaceHead(context.falseForkContext.makeNext(0,-1))}},{key:"pushSwitchContext",value:function pushSwitchContext(hasCase,label){this.switchContext={upper:this.switchContext,hasCase:hasCase,defaultSegments:null,defaultBodySegments:null,foundDefault:false,lastIsDefault:false,countForks:0};this.pushBreakContext(true,label)}},{key:"popSwitchContext",value:function popSwitchContext(){var context=this.switchContext;this.switchContext=context.upper;var forkContext=this.forkContext;var brokenForkContext=this.popBreakContext().brokenForkContext;if(context.countForks===0){if(!brokenForkContext.empty){brokenForkContext.add(forkContext.makeNext(-1,-1));forkContext.replaceHead(brokenForkContext.makeNext(0,-1))}return}var lastSegments=forkContext.head;this.forkBypassPath();var lastCaseSegments=forkContext.head;brokenForkContext.add(lastSegments);if(!context.lastIsDefault){if(context.defaultBodySegments){removeConnection(context.defaultSegments,context.defaultBodySegments);makeLooped(this,lastCaseSegments,context.defaultBodySegments)}else{brokenForkContext.add(lastCaseSegments)}}for(var i=0;i0&&segments[0].reachable){this.returnedForkContext.add(segments)}}},{key:"headSegments",get:function get(){return this.forkContext.head}},{key:"parentForkContext",get:function get(){var current=this.forkContext;return current&¤t.upper}}]);return CodePathState}();module.exports=CodePathState},{"./code-path-segment":72,"./fork-context":76}],74:[function(require,module,exports){"use strict";var _createClass=function(){function defineProperties(target,props){for(var i=0;i0){item=stack[stack.length-1];segment=item[0];index=item[1];if(index===0){if(visited[segment.id]){stack.pop();continue}if(segment!==startSegment&&segment.prevSegments.length>0&&!segment.prevSegments.every(isVisited)){stack.pop();continue}if(skippedSegment&&segment.prevSegments.indexOf(skippedSegment)!==-1){skippedSegment=null}visited[segment.id]=true;if(!skippedSegment){callback.call(this,segment,controller);if(segment===lastSegment){controller.skip()}if(broken){break}}}end=segment.nextSegments.length-1;if(index0){text+='final[label="",shape=doublecircle,style=filled,fillcolor=black,width=0.25,height=0.25];\n'}if(codePath.thrownSegments.length>0){text+='thrown[label="✘",shape=circle,width=0.3,height=0.3,fixedsize];\n'}var traceMap=Object.create(null);var arrows=this.makeDotArrows(codePath,traceMap);for(var id in traceMap){var segment=traceMap[id];text+=id+"[";if(segment.reachable){text+='label="'}else{text+='style="rounded,dashed,filled",fillcolor="#FF9800",label="<>\\n'}if(segment.internal.nodes.length>0||segment.internal.exitNodes.length>0){text+=[].concat(segment.internal.nodes.map(function(node){switch(node.type){case"Identifier":return node.type+" ("+node.name+")";case"Literal":return node.type+" ("+node.value+")";default:return node.type}}),segment.internal.exitNodes.map(function(node){switch(node.type){case"Identifier":return node.type+":exit ("+node.name+")";case"Literal":return node.type+":exit ("+node.value+")";default:return node.type+":exit"}})).join("\\n")}else{text+="????"}text+='"];\n'}text+=arrows+"\n";text+="}";debug("DOT",text)},makeDotArrows:function makeDotArrows(codePath,traceMap){var stack=[[codePath.initialSegment,0]];var done=traceMap||Object.create(null);var lastId=codePath.initialSegment.id;var text="initial->"+codePath.initialSegment.id;while(stack.length>0){var item=stack.pop();var segment=item[0];var index=item[1];if(done[segment.id]&&index===0){continue}done[segment.id]=segment;var nextSegment=segment.allNextSegments[index];if(!nextSegment){continue}if(lastId===segment.id){text+="->"+nextSegment.id}else{text+=";\n"+segment.id+"->"+nextSegment.id}lastId=nextSegment.id;stack.unshift([segment,1+index]);stack.push([nextSegment,0])}codePath.returnedSegments.forEach(function(finalSegment){if(lastId===finalSegment.id){text+="->final"}else{text+=";\n"+finalSegment.id+"->final"}lastId=null});codePath.thrownSegments.forEach(function(finalSegment){if(lastId===finalSegment.id){text+="->thrown"}else{text+=";\n"+finalSegment.id+"->thrown"}lastId=null});return text+";"}}},{debug:10}],76:[function(require,module,exports){"use strict";var _createClass=function(){function defineProperties(target,props){for(var i=0;icontext.count){var merged=[];for(var i=0,length=segments.length/2|0;i=this.count,segments.length+" >= "+this.count);this.segmentsList.push(mergeExtraSegments(this,segments))}},{key:"replaceHead",value:function replaceHead(segments){assert(segments.length>=this.count,segments.length+" >= "+this.count);this.segmentsList.splice(-1,1,mergeExtraSegments(this,segments))}},{key:"addAll",value:function addAll(context){assert(context.count===this.count);var source=context.segmentsList;for(var i=0;i0&&segments.some(isReachable)}}],[{key:"newRoot",value:function newRoot(idGenerator){var context=new ForkContext(idGenerator,null,1);context.add([CodePathSegment.newRoot(idGenerator.next())]);return context}},{key:"newEmpty",value:function newEmpty(parentContext,forkLeavingPath){return new ForkContext(parentContext.idGenerator,parentContext,(forkLeavingPath?2:1)*parentContext.count)}}]);return ForkContext}();module.exports=ForkContext},{"./code-path-segment":72,assert:6}],77:[function(require,module,exports){"use strict";var _createClass=function(){function defineProperties(target,props){for(var i=0;i1){dst=dst.concat(src)}else{dst=dst.concat(target)}if((typeof src==="undefined"?"undefined":_typeof(src))!=="object"&&!Array.isArray(src)){src=[src]}Object.keys(src).forEach(function(e,i){e=src[i];if(typeof dst[i]==="undefined"){dst[i]=e}else if((typeof e==="undefined"?"undefined":_typeof(e))==="object"){if(isRule){dst[i]=e}else{dst[i]=deepmerge(target[i],e,combine,isRule)}}else{if(!combine){dst[i]=e}else{if(dst.indexOf(e)===-1){dst.push(e)}}}})}else{if(target&&(typeof target==="undefined"?"undefined":_typeof(target))==="object"){Object.keys(target).forEach(function(key){dst[key]=target[key]})}Object.keys(src).forEach(function(key){if(key==="overrides"){dst[key]=(target[key]||[]).concat(src[key]||[])}else if(Array.isArray(src[key])||Array.isArray(target[key])){dst[key]=deepmerge(target[key],src[key],key==="plugins"||key==="extends",isRule)}else if(_typeof(src[key])!=="object"||!src[key]||key==="exported"||key==="astGlobals"){dst[key]=src[key]}else{dst[key]=deepmerge(target[key]||{},src[key],combine,key==="rules")}})}return dst},normalize:function normalize(config){if(config.rules){Object.keys(config.rules).forEach(function(ruleId){var ruleConfig=config.rules[ruleId];if(typeof ruleConfig==="string"){config.rules[ruleId]=RULE_SEVERITY[ruleConfig.toLowerCase()]||0}else if(Array.isArray(ruleConfig)&&typeof ruleConfig[0]==="string"){ruleConfig[0]=RULE_SEVERITY[ruleConfig[0].toLowerCase()]||0}})}},normalizeToStrings:function normalizeToStrings(config){if(config.rules){Object.keys(config.rules).forEach(function(ruleId){var ruleConfig=config.rules[ruleId];if(typeof ruleConfig==="number"){config.rules[ruleId]=RULE_SEVERITY_STRINGS[ruleConfig]||RULE_SEVERITY_STRINGS[0]}else if(Array.isArray(ruleConfig)&&typeof ruleConfig[0]==="number"){ruleConfig[0]=RULE_SEVERITY_STRINGS[ruleConfig[0]]||RULE_SEVERITY_STRINGS[0]}})}},isErrorSeverity:function isErrorSeverity(ruleConfig){var severity=Array.isArray(ruleConfig)?ruleConfig[0]:ruleConfig;if(typeof severity==="string"){severity=RULE_SEVERITY[severity.toLowerCase()]||0}return typeof severity==="number"&&severity===2},isValidSeverity:function isValidSeverity(ruleConfig){var severity=Array.isArray(ruleConfig)?ruleConfig[0]:ruleConfig;if(typeof severity==="string"){severity=severity.toLowerCase()}return VALID_SEVERITIES.indexOf(severity)!==-1},isEverySeverityValid:function isEverySeverityValid(config){var _this=this;return Object.keys(config).every(function(ruleId){return _this.isValidSeverity(config[ruleId])})},getConfigFromVector:function getConfigFromVector(vector,configCache){var cachedConfig=configCache.getMergedVectorConfig(vector);if(cachedConfig){return cachedConfig}debug("Using config from partial cache");var subvector=Array.from(vector);var nearestCacheIndex=subvector.length-1,partialCachedConfig=void 0;while(nearestCacheIndex>=0){partialCachedConfig=configCache.getMergedVectorConfig(subvector);if(partialCachedConfig){break}subvector.pop();nearestCacheIndex--}if(!partialCachedConfig){partialCachedConfig={}}var finalConfig=partialCachedConfig;for(var i=nearestCacheIndex+1;i=0;i--){if(!reportingConfig[i].end&&reportingConfig[i].rule===rule){reportingConfig[i].end=start;break}}})}else{var prevStart=void 0;for(i=reportingConfig.length-1;i>=0;i--){if(prevStart&&prevStart!==reportingConfig[i].start){break}if(!reportingConfig[i].end){reportingConfig[i].end=start;prevStart=reportingConfig[i].start}}}}function modifyConfigsFromComments(filename,ast,config,linterContext){var commentConfig={exported:{},astGlobals:{},rules:{},env:{}};var commentRules={};var messages=linterContext.messages;var reportingConfig=linterContext.reportingConfig;ast.comments.forEach(function(comment){var value=comment.value.trim();var match=/^(eslint(-\w+){0,3}|exported|globals?)(\s|$)/.exec(value);if(match){value=value.substring(match.index+match[1].length);if(comment.type==="Block"){switch(match[1]){case"exported":Object.assign(commentConfig.exported,parseBooleanConfig(value,comment));break;case"globals":case"global":Object.assign(commentConfig.astGlobals,parseBooleanConfig(value,comment));break;case"eslint-env":Object.assign(commentConfig.env,parseListConfig(value));break;case"eslint-disable":disableReporting(reportingConfig,comment.loc.start,Object.keys(parseListConfig(value)));break;case"eslint-enable":enableReporting(reportingConfig,comment.loc.start,Object.keys(parseListConfig(value)));break;case"eslint":{var items=parseJsonConfig(value,comment.loc,messages);Object.keys(items).forEach(function(name){var ruleValue=items[name];validator.validateRuleOptions(name,ruleValue,filename+" line "+comment.loc.start.line,linterContext.rules);commentRules[name]=ruleValue});break}}}else{if(match[1]==="eslint-disable-line"){disableReporting(reportingConfig,{line:comment.loc.start.line,column:0},Object.keys(parseListConfig(value)));enableReporting(reportingConfig,comment.loc.end,Object.keys(parseListConfig(value)))}else if(match[1]==="eslint-disable-next-line"){disableReporting(reportingConfig,comment.loc.start,Object.keys(parseListConfig(value)));enableReporting(reportingConfig,{line:comment.loc.start.line+2},Object.keys(parseListConfig(value)))}}}});Object.keys(commentConfig.env).forEach(function(name){var env=linterContext.environments.get(name);if(env){commentConfig=ConfigOps.merge(commentConfig,env)}});Object.assign(commentConfig.rules,commentRules);return ConfigOps.merge(config,commentConfig)}function isDisabledByReportingConfig(reportingConfig,ruleId,location){for(var i=0,c=reportingConfig.length;iignore.start.line||location.line===ignore.start.line&&location.column>=ignore.start.column)&&(!ignore.end||location.line=2015){ecmaVersion-=2009}return ecmaVersion}function prepareConfig(config,envContext){config.globals=config.globals||{};var copiedRules={};var parserOptions={};if(_typeof(config.rules)==="object"){Object.keys(config.rules).forEach(function(k){var rule=config.rules[k];if(rule===null){throw new Error("Invalid config for rule '"+k+"'.")}if(Array.isArray(rule)){copiedRules[k]=rule.slice()}else{copiedRules[k]=rule}})}if(_typeof(config.env)==="object"){Object.keys(config.env).forEach(function(envName){var env=envContext.get(envName);if(config.env[envName]&&env&&env.parserOptions){parserOptions=ConfigOps.merge(parserOptions,env.parserOptions)}})}var preparedConfig={rules:copiedRules,parser:config.parser||defaultConfig.parser,globals:ConfigOps.merge(defaultConfig.globals,config.globals),env:ConfigOps.merge(defaultConfig.env,config.env||{}),settings:ConfigOps.merge(defaultConfig.settings,config.settings||{}),parserOptions:ConfigOps.merge(parserOptions,config.parserOptions||{})};var isModule=preparedConfig.parserOptions.sourceType==="module";if(isModule){preparedConfig.parserOptions.ecmaFeatures=Object.assign({},preparedConfig.parserOptions.ecmaFeatures,{globalReturn:false})}preparedConfig.parserOptions.ecmaVersion=normalizeEcmaVersion(preparedConfig.parserOptions.ecmaVersion,isModule);return preparedConfig}function createStubRule(message){function createRuleModule(context){return{Program:function Program(node){context.report(node,message)}}}if(message){return createRuleModule}throw new Error("No message passed to stub rule")}function getRuleReplacementMessage(ruleId){if(ruleId in replacements.rules){var newRules=replacements.rules[ruleId];return"Rule '"+ruleId+"' was removed and replaced by: "+newRules.join(", ")}return null}var eslintEnvPattern=/\/\*\s*eslint-env\s(.+?)\*\//g;function findEslintEnv(text){var match=void 0,retv=void 0;eslintEnvPattern.lastIndex=0;while(match=eslintEnvPattern.exec(text)){retv=Object.assign(retv||{},parseListConfig(match[1]))}return retv}function stripUnicodeBOM(text){if(text.charCodeAt(0)===65279){return text.slice(1)}return text}function getRuleSeverity(ruleConfig){if(typeof ruleConfig==="number"){return ruleConfig}else if(Array.isArray(ruleConfig)){return ruleConfig[0]}return 0}function getRuleOptions(ruleConfig){if(Array.isArray(ruleConfig)){return ruleConfig.slice(1)}return[]}function parse(text,config,filePath,messages){var parser=void 0,parserOptions={loc:true,range:true,raw:true,tokens:true,comment:true,filePath:filePath};try{parser=require(config.parser)}catch(ex){messages.push({ruleId:null,fatal:true,severity:2,source:null,message:ex.message,line:0,column:0});return null}if(config.parserOptions){parserOptions=Object.assign({},config.parserOptions,parserOptions)}try{if(typeof parser.parseForESLint==="function"){return parser.parseForESLint(text,parserOptions)}return parser.parse(text,parserOptions)}catch(ex){var message=ex.message.replace(/^line \d+:/i,"").trim();var source=ex.lineNumber?SourceCode.splitLines(text)[ex.lineNumber-1]:null;messages.push({ruleId:null,fatal:true,severity:2,source:source,message:"Parsing error: "+message,line:ex.lineNumber,column:ex.column});return null}}var Linter=function(_EventEmitter){_inherits(Linter,_EventEmitter);function Linter(){_classCallCheck(this,Linter);var _this=_possibleConstructorReturn(this,(Linter.__proto__||Object.getPrototypeOf(Linter)).call(this));_this.messages=[];_this.currentConfig=null;_this.currentScopes=null;_this.scopeManager=null;_this.currentFilename=null;_this.traverser=null;_this.reportingConfig=[];_this.sourceCode=null;_this.version=pkg.version;_this.rules=new Rules;_this.environments=new Environments;_this.setMaxListeners(0);return _this}_createClass(Linter,[{key:"reset",value:function reset(){this.removeAllListeners();this.messages=[];this.currentConfig=null;this.currentScopes=null;this.scopeManager=null;this.traverser=null;this.reportingConfig=[];this.sourceCode=null}},{key:"verify",value:function verify(textOrSourceCode,config,filenameOrOptions,saveState){var _this2=this;var text=typeof textOrSourceCode==="string"?textOrSourceCode:null;var ast=void 0,parseResult=void 0,allowInlineConfig=void 0;if((typeof filenameOrOptions==="undefined"?"undefined":_typeof(filenameOrOptions))==="object"){this.currentFilename=filenameOrOptions.filename;allowInlineConfig=filenameOrOptions.allowInlineConfig;saveState=filenameOrOptions.saveState}else{this.currentFilename=filenameOrOptions}if(!saveState){this.reset()}var envInFile=findEslintEnv(text||textOrSourceCode.text);config=Object.assign({},config);if(envInFile){if(config.env){config.env=Object.assign({},config.env,envInFile)}else{config.env=envInFile}}config=prepareConfig(config,this.environments);if(text!==null){if(text.trim().length===0){this.sourceCode=new SourceCode(text,blankScriptAST);return this.messages}parseResult=parse(stripUnicodeBOM(text).replace(astUtils.SHEBANG_MATCHER,function(match,captured){return"//"+captured}),config,this.currentFilename,this.messages);if(parseResult&&parseResult.ast){ast=parseResult.ast}else{ast=parseResult;parseResult=null}if(ast){this.sourceCode=new SourceCode(text,ast)}}else{this.sourceCode=textOrSourceCode;ast=this.sourceCode.ast}if(ast){if(allowInlineConfig!==false){config=modifyConfigsFromComments(this.currentFilename,ast,config,this)}ConfigOps.normalize(config);Object.keys(config.rules).filter(function(key){return getRuleSeverity(config.rules[key])>0}).forEach(function(key){var ruleCreator=void 0;ruleCreator=_this2.rules.get(key);if(!ruleCreator){var replacementMsg=getRuleReplacementMessage(key);if(replacementMsg){ruleCreator=createStubRule(replacementMsg)}else{ruleCreator=createStubRule("Definition for rule '"+key+"' was not found")}_this2.rules.define(key,ruleCreator)}var severity=getRuleSeverity(config.rules[key]);var options=getRuleOptions(config.rules[key]);try{var ruleContext=new RuleContext(key,_this2,severity,options,config.settings,config.parserOptions,config.parser,ruleCreator.meta,parseResult&&parseResult.services?parseResult.services:{});var rule=ruleCreator.create?ruleCreator.create(ruleContext):ruleCreator(ruleContext);Object.keys(rule).forEach(function(selector){_this2.on(selector,timing.enabled?timing.time(key,rule[selector]):rule[selector])})}catch(ex){ex.message="Error while loading rule '"+key+"': "+ex.message;throw ex}});this.currentConfig=config;this.traverser=new Traverser;var ecmaFeatures=this.currentConfig.parserOptions.ecmaFeatures||{};var ecmaVersion=this.currentConfig.parserOptions.ecmaVersion||5;this.scopeManager=eslintScope.analyze(ast,{ignoreEval:true,nodejsScope:ecmaFeatures.globalReturn,impliedStrict:ecmaFeatures.impliedStrict,ecmaVersion:ecmaVersion,sourceType:this.currentConfig.parserOptions.sourceType||"script",fallback:Traverser.getKeys});this.currentScopes=this.scopeManager.scopes;addDeclaredGlobals(ast,this.currentScopes[0],this.currentConfig,this.environments);var eventGenerator=new NodeEventGenerator(this);eventGenerator=new CodePathAnalyzer(eventGenerator);this.traverser.traverse(ast,{enter:function enter(node,parent){node.parent=parent;eventGenerator.enterNode(node)},leave:function leave(node){eventGenerator.leaveNode(node)}})}this.messages.sort(function(a,b){var lineDiff=a.line-b.line;if(lineDiff===0){return a.column-b.column}return lineDiff});return this.messages}},{key:"report",value:function report(ruleId,severity,node,location,message,opts,fix,meta){if(node){assert.strictEqual(typeof node==="undefined"?"undefined":_typeof(node),"object","Node must be an object")}var endLocation=void 0;if(typeof location==="string"){assert.ok(node,"Node must be provided when reporting error if location is not provided");meta=fix;fix=opts;opts=message;message=location;location=node.loc.start;endLocation=node.loc.end}else{endLocation=location.end}location=location.start||location;if(isDisabledByReportingConfig(this.reportingConfig,ruleId,location)){return}if(opts){message=message.replace(/\{\{\s*([^{}]+?)\s*\}\}/g,function(fullMatch,term){if(term in opts){return opts[term]}return fullMatch})}var problem={ruleId:ruleId,severity:severity,message:message,line:location.line,column:location.column+1,nodeType:node&&node.type,source:this.sourceCode.lines[location.line-1]||""};if(endLocation){problem.endLine=endLocation.line;problem.endColumn=endLocation.column+1}if(fix&&Array.isArray(fix.range)&&typeof fix.text==="string"){if(meta&&!meta.fixable){throw new Error("Fixable rules should export a `meta.fixable` property.")}problem.fix=fix}this.messages.push(problem)}},{key:"getSourceCode",value:function getSourceCode(){return this.sourceCode}},{key:"getAncestors",value:function getAncestors(){return this.traverser.parents()}},{key:"getScope",value:function getScope(){var parents=this.traverser.parents();if(parents.length){var current=this.traverser.current();if(this.currentConfig.parserOptions.ecmaVersion>=6){if(["BlockStatement","SwitchStatement","CatchClause","FunctionDeclaration","FunctionExpression","ArrowFunctionExpression"].indexOf(current.type)>=0){parents.push(current)}}else{if(["FunctionDeclaration","FunctionExpression","ArrowFunctionExpression"].indexOf(current.type)>=0){parents.push(current)}}for(var i=parents.length-1;i>=0;--i){var scope=this.scopeManager.acquire(parents[i],true);if(scope){if(scope.type==="function-expression-name"){return scope.childScopes[0]}return scope}}}return this.currentScopes[0]}},{key:"markVariableAsUsed",value:function markVariableAsUsed(name){var hasGlobalReturn=this.currentConfig.parserOptions.ecmaFeatures&&this.currentConfig.parserOptions.ecmaFeatures.globalReturn,specialScope=hasGlobalReturn||this.currentConfig.parserOptions.sourceType==="module";var scope=this.getScope(),i=void 0,len=void 0;if(scope.type==="global"&&specialScope){scope=scope.childScopes[0]}do{var variables=scope.variables;for(i=0,len=variables.length;i"}},{key:"defineRule",value:function defineRule(ruleId,ruleModule){this.rules.define(ruleId,ruleModule)}},{key:"defineRules",value:function defineRules(rulesToDefine){var _this3=this;Object.getOwnPropertyNames(rulesToDefine).forEach(function(ruleId){_this3.defineRule(ruleId,rulesToDefine[ruleId])})}},{key:"defaults",value:function defaults(){return defaultConfig}},{key:"getRules",value:function getRules(){return this.rules.getAllLoadedRules()}},{key:"getDeclaredVariables",value:function getDeclaredVariables(node){return this.scopeManager&&this.scopeManager.getDeclaredVariables(node)||[]}},{key:"verifyAndFix",value:function verifyAndFix(text,config,options){var messages=[],fixedResult=void 0,fixed=false,passNumber=0;do{passNumber++;debug("Linting code for "+options.filename+" (pass "+passNumber+")");messages=this.verify(text,config,options);debug("Generating fixed text for "+options.filename+" (pass "+passNumber+")");fixedResult=SourceCodeFixer.applyFixes(this.getSourceCode(),messages);if(messages.length===1&&messages[0].fatal){break}fixed=fixed||fixedResult.fixed;text=fixedResult.output}while(fixedResult.fixed&&passNumber=lastPos,"Fix objects must not be overlapped in a report.");if(fix.range[0]>=0){text+=originalText.slice(Math.max(0,start,lastPos),fix.range[0])}text+=fix.text;lastPos=fix.range[1]}}catch(err){_didIteratorError=true;_iteratorError=err}finally{try{if(!_iteratorNormalCompletion&&_iterator.return){_iterator.return()}}finally{if(_didIteratorError){throw _iteratorError}}}text+=originalText.slice(Math.max(0,start,lastPos),end);return{range:[start,end],text:text}}function getFix(descriptor,sourceCode){if(typeof descriptor.fix!=="function"){return null}var fix=descriptor.fix(ruleFixer);if(fix&&Symbol.iterator in fix){return mergeFixes(Array.from(fix),sourceCode)}return fix}var RuleContext=function(){function RuleContext(ruleId,eslint,severity,options,settings,parserOptions,parserPath,meta,parserServices){_classCallCheck(this,RuleContext);this.id=ruleId;this.options=options;this.settings=settings;this.parserOptions=parserOptions;this.parserPath=parserPath;this.meta=meta;this.parserServices=Object.freeze(Object.assign({},parserServices));this.eslint=eslint;this.severity=severity;Object.freeze(this)}_createClass(RuleContext,[{key:"getSourceCode",value:function getSourceCode(){return this.eslint.getSourceCode()}},{key:"report",value:function report(nodeOrDescriptor,location,message,opts){if(arguments.length===1){var descriptor=nodeOrDescriptor;var fix=getFix(descriptor,this.getSourceCode());this.eslint.report(this.id,this.severity,descriptor.node,descriptor.loc||descriptor.node.loc.start,descriptor.message,descriptor.data,fix,this.meta);return}this.eslint.report(this.id,this.severity,nodeOrDescriptor,location,message,opts,this.meta)}}]);return RuleContext}();PASSTHROUGHS.forEach(function(name){this[name]=function(a,b,c,d,e){return this.eslint[name](a,b,c,d,e)}},RuleContext.prototype);module.exports=RuleContext},{"./util/rule-fixer":355,assert:6}],84:[function(require,module,exports){"use strict";var _createClass=function(){function defineProperties(target,props){for(var i=0;i=options.minItems||options.multiline&&elements.length>0&&firstIncComment.loc.start.line!==lastIncComment.loc.end.line;if(needsLinebreaks){if(astUtils.isTokenOnSameLine(openBracket,first)){reportRequiredBeginningLinebreak(node,openBracket)}if(astUtils.isTokenOnSameLine(last,closeBracket)){reportRequiredEndingLinebreak(node,closeBracket)}}else{if(!astUtils.isTokenOnSameLine(openBracket,first)){reportNoBeginningLinebreak(node,openBracket)}if(!astUtils.isTokenOnSameLine(last,closeBracket)){reportNoEndingLinebreak(node,closeBracket)}}}return{ArrayPattern:check,ArrayExpression:check}}}},{"../ast-utils":70}],87:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"enforce consistent spacing inside array brackets",category:"Stylistic Issues",recommended:false},fixable:"whitespace",schema:[{enum:["always","never"]},{type:"object",properties:{singleValue:{type:"boolean"},objectsInArrays:{type:"boolean"},arraysInArrays:{type:"boolean"}},additionalProperties:false}]},create:function create(context){var spaced=context.options[0]==="always",sourceCode=context.getSourceCode();function isOptionSet(option){return context.options[1]?context.options[1][option]===!spaced:false}var options={spaced:spaced,singleElementException:isOptionSet("singleValue"),objectsInArraysException:isOptionSet("objectsInArrays"),arraysInArraysException:isOptionSet("arraysInArrays")};function reportNoBeginningSpace(node,token){context.report({node:node,loc:token.loc.start,message:"There should be no space after '{{tokenValue}}'.",data:{tokenValue:token.value},fix:function fix(fixer){var nextToken=sourceCode.getTokenAfter(token);return fixer.removeRange([token.range[1],nextToken.range[0]])}})}function reportNoEndingSpace(node,token){context.report({node:node,loc:token.loc.start,message:"There should be no space before '{{tokenValue}}'.",data:{tokenValue:token.value},fix:function fix(fixer){var previousToken=sourceCode.getTokenBefore(token);return fixer.removeRange([previousToken.range[1],token.range[0]])}})}function reportRequiredBeginningSpace(node,token){context.report({node:node,loc:token.loc.start,message:"A space is required after '{{tokenValue}}'.",data:{tokenValue:token.value},fix:function fix(fixer){return fixer.insertTextAfter(token," ")}})}function reportRequiredEndingSpace(node,token){context.report({node:node,loc:token.loc.start,message:"A space is required before '{{tokenValue}}'.",data:{tokenValue:token.value},fix:function fix(fixer){return fixer.insertTextBefore(token," ")}})}function isObjectType(node){return node&&(node.type==="ObjectExpression"||node.type==="ObjectPattern")}function isArrayType(node){return node&&(node.type==="ArrayExpression"||node.type==="ArrayPattern")}function validateArraySpacing(node){if(options.spaced&&node.elements.length===0){return}var first=sourceCode.getFirstToken(node),second=sourceCode.getFirstToken(node,1),last=node.typeAnnotation?sourceCode.getTokenBefore(node.typeAnnotation):sourceCode.getLastToken(node),penultimate=sourceCode.getTokenBefore(last),firstElement=node.elements[0],lastElement=node.elements[node.elements.length-1];var openingBracketMustBeSpaced=options.objectsInArraysException&&isObjectType(firstElement)||options.arraysInArraysException&&isArrayType(firstElement)||options.singleElementException&&node.elements.length===1?!options.spaced:options.spaced;var closingBracketMustBeSpaced=options.objectsInArraysException&&isObjectType(lastElement)||options.arraysInArraysException&&isArrayType(lastElement)||options.singleElementException&&node.elements.length===1?!options.spaced:options.spaced;if(astUtils.isTokenOnSameLine(first,second)){if(openingBracketMustBeSpaced&&!sourceCode.isSpaceBetweenTokens(first,second)){reportRequiredBeginningSpace(node,first)}if(!openingBracketMustBeSpaced&&sourceCode.isSpaceBetweenTokens(first,second)){reportNoBeginningSpace(node,first)}}if(first!==penultimate&&astUtils.isTokenOnSameLine(penultimate,last)){if(closingBracketMustBeSpaced&&!sourceCode.isSpaceBetweenTokens(penultimate,last)){reportRequiredEndingSpace(node,last)}if(!closingBracketMustBeSpaced&&sourceCode.isSpaceBetweenTokens(penultimate,last)){reportNoEndingSpace(node,last)}}}return{ArrayPattern:validateArraySpacing,ArrayExpression:validateArraySpacing}}}},{"../ast-utils":70}],88:[function(require,module,exports){"use strict";var lodash=require("lodash");var astUtils=require("../ast-utils");var TARGET_NODE_TYPE=/^(?:Arrow)?FunctionExpression$/;var TARGET_METHODS=/^(?:every|filter|find(?:Index)?|map|reduce(?:Right)?|some|sort)$/;function isReachable(segment){return segment.reachable}function getLocation(node,sourceCode){if(node.type==="ArrowFunctionExpression"){return sourceCode.getTokenBefore(node.body)}return node.id||node}function isTargetMethod(node){return node.type==="MemberExpression"&&TARGET_METHODS.test(astUtils.getStaticPropertyName(node)||"")}function isCallbackOfArrayMethod(node){while(node){var parent=node.parent;switch(parent.type){case"LogicalExpression":case"ConditionalExpression":node=parent;break;case"ReturnStatement":{var func=astUtils.getUpperFunction(parent);if(func===null||!astUtils.isCallee(func)){return false}node=func.parent;break}case"CallExpression":if(astUtils.isArrayFromMethod(parent.callee)){return parent.arguments.length>=2&&parent.arguments[1]===node}if(isTargetMethod(parent.callee)){return parent.arguments.length>=1&&parent.arguments[0]===node}return false;default:return false}}return false}module.exports={meta:{docs:{description:"enforce `return` statements in callbacks of array methods",category:"Best Practices",recommended:false},schema:[]},create:function create(context){var funcInfo={upper:null,codePath:null,hasReturn:false,shouldCheck:false,node:null};function checkLastSegment(node){if(funcInfo.shouldCheck&&funcInfo.codePath.currentSegments.some(isReachable)){context.report({node:node,loc:getLocation(node,context.getSourceCode()).loc.start,message:funcInfo.hasReturn?"Expected to return a value at the end of {{name}}.":"Expected to return a value in {{name}}.",data:{name:astUtils.getFunctionNameWithKind(funcInfo.node)}})}}return{onCodePathStart:function onCodePathStart(codePath,node){funcInfo={upper:funcInfo,codePath:codePath,hasReturn:false,shouldCheck:TARGET_NODE_TYPE.test(node.type)&&node.body.type==="BlockStatement"&&isCallbackOfArrayMethod(node)&&!node.async&&!node.generator,node:node}},onCodePathEnd:function onCodePathEnd(){funcInfo=funcInfo.upper},ReturnStatement:function ReturnStatement(node){if(funcInfo.shouldCheck){funcInfo.hasReturn=true;if(!node.argument){context.report({node:node,message:"{{name}} expected a return value.",data:{name:lodash.upperFirst(astUtils.getFunctionNameWithKind(funcInfo.node))}})}}},"FunctionExpression:exit":checkLastSegment,"ArrowFunctionExpression:exit":checkLastSegment}}}},{"../ast-utils":70,lodash:49}],89:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"enforce line breaks after each array element",category:"Stylistic Issues",recommended:false},fixable:"whitespace",schema:[{oneOf:[{enum:["always","never"]},{type:"object",properties:{multiline:{type:"boolean"},minItems:{type:["integer","null"],minimum:0}},additionalProperties:false}]}]},create:function create(context){var sourceCode=context.getSourceCode();function normalizeOptionValue(option){var multiline=false;var minItems=void 0;option=option||"always";if(option==="always"||option.minItems===0){minItems=0}else if(option==="never"){minItems=Number.POSITIVE_INFINITY}else{multiline=Boolean(option.multiline);minItems=option.minItems||Number.POSITIVE_INFINITY}return{multiline:multiline,minItems:minItems}}function normalizeOptions(options){var value=normalizeOptionValue(options);return{ArrayExpression:value,ArrayPattern:value}}function reportNoLineBreak(token){var tokenBefore=sourceCode.getTokenBefore(token,{includeComments:true});context.report({loc:{start:tokenBefore.loc.end,end:token.loc.start},message:"There should be no linebreak here.",fix:function fix(fixer){if(astUtils.isCommentToken(tokenBefore)){return null}if(!astUtils.isTokenOnSameLine(tokenBefore,token)){return fixer.replaceTextRange([tokenBefore.range[1],token.range[0]]," ")}var twoTokensBefore=sourceCode.getTokenBefore(tokenBefore,{includeComments:true});if(astUtils.isCommentToken(twoTokensBefore)){return null}return fixer.replaceTextRange([twoTokensBefore.range[1],tokenBefore.range[0]],"")}})}function reportRequiredLineBreak(token){var tokenBefore=sourceCode.getTokenBefore(token,{includeComments:true});context.report({loc:{start:tokenBefore.loc.end,end:token.loc.start},message:"There should be a linebreak after this element.",fix:function fix(fixer){return fixer.replaceTextRange([tokenBefore.range[1],token.range[0]],"\n")}})}function check(node){var elements=node.elements;var normalizedOptions=normalizeOptions(context.options[0]);var options=normalizedOptions[node.type];var elementBreak=false;if(options.multiline){elementBreak=elements.filter(function(element){return element!==null}).some(function(element){return element.loc.start.line!==element.loc.end.line})}var needsLinebreaks=elements.length>=options.minItems||options.multiline&&elementBreak;elements.forEach(function(element,i){var previousElement=elements[i-1];if(i===0||element===null||previousElement===null){return}var commaToken=sourceCode.getFirstTokenBetween(previousElement,element,astUtils.isCommaToken);var lastTokenOfPreviousElement=sourceCode.getTokenBefore(commaToken);var firstTokenOfCurrentElement=sourceCode.getTokenAfter(commaToken);if(needsLinebreaks){if(astUtils.isTokenOnSameLine(lastTokenOfPreviousElement,firstTokenOfCurrentElement)){reportRequiredLineBreak(firstTokenOfCurrentElement)}}else{if(!astUtils.isTokenOnSameLine(lastTokenOfPreviousElement,firstTokenOfCurrentElement)){reportNoLineBreak(firstTokenOfCurrentElement)}}})}return{ArrayPattern:check,ArrayExpression:check}}}},{"../ast-utils":70}],90:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"require braces around arrow function bodies",category:"ECMAScript 6",recommended:false},schema:{anyOf:[{type:"array",items:[{enum:["always","never"]}],minItems:0,maxItems:1},{type:"array",items:[{enum:["as-needed"]},{type:"object",properties:{requireReturnForObjectLiteral:{type:"boolean"}},additionalProperties:false}],minItems:0,maxItems:2}]},fixable:"code"},create:function create(context){var options=context.options;var always=options[0]==="always";var asNeeded=!options[0]||options[0]==="as-needed";var never=options[0]==="never";var requireReturnForObjectLiteral=options[1]&&options[1].requireReturnForObjectLiteral;var sourceCode=context.getSourceCode();function hasASIProblem(token){return token&&token.type==="Punctuator"&&/^[([/`+-]/.test(token.value)}function findClosingParen(token){var node=sourceCode.getNodeByRangeIndex(token.range[1]);while(!astUtils.isParenthesised(sourceCode,node)){node=node.parent}return sourceCode.getTokenAfter(node)}function validate(node){var arrowBody=node.body;if(arrowBody.type==="BlockStatement"){var blockBody=arrowBody.body;if(blockBody.length!==1&&!never){return}if(asNeeded&&requireReturnForObjectLiteral&&blockBody[0].type==="ReturnStatement"&&blockBody[0].argument&&blockBody[0].argument.type==="ObjectExpression"){return}if(never||asNeeded&&blockBody[0].type==="ReturnStatement"){context.report({node:node,loc:arrowBody.loc.start,message:"Unexpected block statement surrounding arrow body.",fix:function fix(fixer){var fixes=[];if(blockBody.length!==1||blockBody[0].type!=="ReturnStatement"||!blockBody[0].argument||hasASIProblem(sourceCode.getTokenAfter(arrowBody))){return fixes}var openingBrace=sourceCode.getFirstToken(arrowBody);var closingBrace=sourceCode.getLastToken(arrowBody);var firstValueToken=sourceCode.getFirstToken(blockBody[0],1);var lastValueToken=sourceCode.getLastToken(blockBody[0]);var commentsExist=sourceCode.commentsExistBetween(openingBrace,firstValueToken)||sourceCode.commentsExistBetween(lastValueToken,closingBrace);if(commentsExist){fixes.push(fixer.remove(openingBrace),fixer.remove(closingBrace),fixer.remove(sourceCode.getTokenAfter(openingBrace)))}else{fixes.push(fixer.removeRange([openingBrace.range[0],firstValueToken.range[0]]),fixer.removeRange([lastValueToken.range[1],closingBrace.range[1]]))}if(astUtils.isOpeningBraceToken(firstValueToken)){fixes.push(fixer.insertTextBefore(firstValueToken,"("),fixer.insertTextAfter(lastValueToken,")"))}if(astUtils.isSemicolonToken(lastValueToken)){fixes.push(fixer.remove(lastValueToken))}return fixes}})}}else{if(always||asNeeded&&requireReturnForObjectLiteral&&arrowBody.type==="ObjectExpression"){context.report({node:node,loc:arrowBody.loc.start,message:"Expected block statement surrounding arrow body.",fix:function fix(fixer){var fixes=[];var arrowToken=sourceCode.getTokenBefore(arrowBody,astUtils.isArrowToken);var firstBodyToken=sourceCode.getTokenAfter(arrowToken);var lastBodyToken=sourceCode.getLastToken(node);var isParenthesisedObjectLiteral=astUtils.isOpeningParenToken(firstBodyToken)&&astUtils.isOpeningBraceToken(sourceCode.getTokenAfter(firstBodyToken));fixes.push(fixer.insertTextBefore(firstBodyToken,"{return "),fixer.insertTextAfter(lastBodyToken,"}"));if(isParenthesisedObjectLiteral){fixes.push(fixer.remove(firstBodyToken),fixer.remove(findClosingParen(firstBodyToken)))}return fixes}})}}}return{"ArrowFunctionExpression:exit":validate}}}},{"../ast-utils":70}],91:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"require parentheses around arrow function arguments",category:"ECMAScript 6",recommended:false},fixable:"code",schema:[{enum:["always","as-needed"]},{type:"object",properties:{requireForBlockBody:{type:"boolean"}},additionalProperties:false}]},create:function create(context){var message="Expected parentheses around arrow function argument.";var asNeededMessage="Unexpected parentheses around single function argument.";var asNeeded=context.options[0]==="as-needed";var requireForBlockBodyMessage="Unexpected parentheses around single function argument having a body with no curly braces";var requireForBlockBodyNoParensMessage="Expected parentheses around arrow function argument having a body with curly braces.";var requireForBlockBody=asNeeded&&context.options[1]&&context.options[1].requireForBlockBody===true;var sourceCode=context.getSourceCode();function parens(node){var isAsync=node.async;var firstTokenOfParam=sourceCode.getFirstToken(node,isAsync?1:0);function fixParamsWithParenthesis(fixer){var paramToken=sourceCode.getTokenAfter(firstTokenOfParam);var closingParenToken=sourceCode.getTokenAfter(paramToken);var asyncToken=isAsync?sourceCode.getTokenBefore(firstTokenOfParam):null;var shouldAddSpaceForAsync=asyncToken&&asyncToken.end===firstTokenOfParam.start;return fixer.replaceTextRange([firstTokenOfParam.range[0],closingParenToken.range[1]],""+(shouldAddSpaceForAsync?" ":"")+paramToken.value)}if(requireForBlockBody&&node.params.length===1&&node.params[0].type==="Identifier"&&!node.params[0].typeAnnotation&&node.body.type!=="BlockStatement"&&!node.returnType){if(astUtils.isOpeningParenToken(firstTokenOfParam)){context.report({node:node,message:requireForBlockBodyMessage,fix:fixParamsWithParenthesis})}return}if(requireForBlockBody&&node.body.type==="BlockStatement"){if(!astUtils.isOpeningParenToken(firstTokenOfParam)){context.report({node:node,message:requireForBlockBodyNoParensMessage,fix:function fix(fixer){return fixer.replaceText(firstTokenOfParam,"("+firstTokenOfParam.value+")")}})}return}if(asNeeded&&node.params.length===1&&node.params[0].type==="Identifier"&&!node.params[0].typeAnnotation&&!node.returnType){if(astUtils.isOpeningParenToken(firstTokenOfParam)){context.report({node:node,message:asNeededMessage,fix:fixParamsWithParenthesis})}return}if(firstTokenOfParam.type==="Identifier"){var after=sourceCode.getTokenAfter(firstTokenOfParam);if(after.value!==")"){context.report({node:node,message:message,fix:function fix(fixer){return fixer.replaceText(firstTokenOfParam,"("+firstTokenOfParam.value+")")}})}}}return{ArrowFunctionExpression:parens}}}},{"../ast-utils":70}],92:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"enforce consistent spacing before and after the arrow in arrow functions",category:"ECMAScript 6",recommended:false},fixable:"whitespace",schema:[{type:"object",properties:{before:{type:"boolean"},after:{type:"boolean"}},additionalProperties:false}]},create:function create(context){var rule={before:true,after:true},option=context.options[0]||{};rule.before=option.before!==false;rule.after=option.after!==false;var sourceCode=context.getSourceCode();function getTokens(node){var arrow=sourceCode.getTokenBefore(node.body,astUtils.isArrowToken);return{before:sourceCode.getTokenBefore(arrow),arrow:arrow,after:sourceCode.getTokenAfter(arrow)}}function countSpaces(tokens){var before=tokens.arrow.range[0]-tokens.before.range[1];var after=tokens.after.range[0]-tokens.arrow.range[1];return{before:before,after:after}}function spaces(node){var tokens=getTokens(node);var countSpace=countSpaces(tokens);if(rule.before){if(countSpace.before===0){context.report({node:tokens.before,message:"Missing space before =>.",fix:function fix(fixer){return fixer.insertTextBefore(tokens.arrow," ")}})}}else{if(countSpace.before>0){context.report({node:tokens.before,message:"Unexpected space before =>.",fix:function fix(fixer){return fixer.removeRange([tokens.before.range[1],tokens.arrow.range[0]])}})}}if(rule.after){if(countSpace.after===0){context.report({node:tokens.after,message:"Missing space after =>.",fix:function fix(fixer){return fixer.insertTextAfter(tokens.arrow," ")}})}}else{if(countSpace.after>0){context.report({node:tokens.after,message:"Unexpected space after =>.",fix:function fix(fixer){return fixer.removeRange([tokens.arrow.range[1],tokens.after.range[0]])}})}}}return{ArrowFunctionExpression:spaces}}}},{"../ast-utils":70}],93:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"enforce the use of variables within the scope they are defined",category:"Best Practices",recommended:false},schema:[]},create:function create(context){var stack=[];function enterScope(node){stack.push(node.range)}function exitScope(){stack.pop()}function report(reference){var identifier=reference.identifier;context.report({node:identifier,message:"'{{name}}' used outside of binding context.",data:{name:identifier.name}})}function checkForVariables(node){if(node.kind!=="var"){return}var scopeRange=stack[stack.length-1];function isOutsideOfScope(reference){var idRange=reference.identifier.range;return idRange[0]scopeRange[1]}var variables=context.getDeclaredVariables(node);for(var i=0;i0){return sourceCode.getTokenBefore(node.cases[0])}return sourceCode.getLastToken(node,1)}return sourceCode.getFirstToken(node)}function isValid(left,right){return!util.isTokenOnSameLine(left,right)||sourceCode.isSpaceBetweenTokens(left,right)===always}function checkSpacingInsideBraces(node){var openBrace=getOpenBrace(node);var closeBrace=sourceCode.getLastToken(node);var firstToken=sourceCode.getTokenAfter(openBrace,{includeComments:true});var lastToken=sourceCode.getTokenBefore(closeBrace,{includeComments:true});if(openBrace.type!=="Punctuator"||openBrace.value!=="{"||closeBrace.type!=="Punctuator"||closeBrace.value!=="}"||firstToken===closeBrace){return}if(!always&&firstToken.type==="Line"){return}if(!isValid(openBrace,firstToken)){context.report({node:node,loc:openBrace.loc.start,message:"{{message}} after '{'.",data:{message:message},fix:function fix(fixer){if(always){return fixer.insertTextBefore(firstToken," ")}return fixer.removeRange([openBrace.range[1],firstToken.range[0]])}})}if(!isValid(lastToken,closeBrace)){context.report({node:node,loc:closeBrace.loc.start,message:"{{message}} before '}'.",data:{message:message},fix:function fix(fixer){if(always){return fixer.insertTextAfter(lastToken," ")}return fixer.removeRange([lastToken.range[1],closeBrace.range[0]])}})}}return{BlockStatement:checkSpacingInsideBraces,SwitchStatement:checkSpacingInsideBraces}}}},{"../ast-utils":70}],95:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"enforce consistent brace style for blocks",category:"Stylistic Issues",recommended:false},schema:[{enum:["1tbs","stroustrup","allman"]},{type:"object",properties:{allowSingleLine:{type:"boolean"}},additionalProperties:false}],fixable:"whitespace"},create:function create(context){var style=context.options[0]||"1tbs",params=context.options[1]||{},sourceCode=context.getSourceCode();var OPEN_MESSAGE="Opening curly brace does not appear on the same line as controlling statement.",OPEN_MESSAGE_ALLMAN="Opening curly brace appears on the same line as controlling statement.",BODY_MESSAGE="Statement inside of curly braces should be on next line.",CLOSE_MESSAGE="Closing curly brace does not appear on the same line as the subsequent block.",CLOSE_MESSAGE_SINGLE="Closing curly brace should be on the same line as opening curly brace or on the line after the previous block.",CLOSE_MESSAGE_STROUSTRUP_ALLMAN="Closing curly brace appears on the same line as the subsequent block.";function removeNewlineBetween(firstToken,secondToken){var textRange=[firstToken.range[1],secondToken.range[0]];var textBetween=sourceCode.text.slice(textRange[0],textRange[1]);if(textBetween.trim()){return null}return function(fixer){return fixer.replaceTextRange(textRange," ")}}function validateCurlyPair(openingCurly,closingCurly){var tokenBeforeOpeningCurly=sourceCode.getTokenBefore(openingCurly);var tokenAfterOpeningCurly=sourceCode.getTokenAfter(openingCurly);var tokenBeforeClosingCurly=sourceCode.getTokenBefore(closingCurly);var singleLineException=params.allowSingleLine&&astUtils.isTokenOnSameLine(openingCurly,closingCurly);if(style!=="allman"&&!astUtils.isTokenOnSameLine(tokenBeforeOpeningCurly,openingCurly)){context.report({node:openingCurly,message:OPEN_MESSAGE,fix:removeNewlineBetween(tokenBeforeOpeningCurly,openingCurly)})}if(style==="allman"&&astUtils.isTokenOnSameLine(tokenBeforeOpeningCurly,openingCurly)&&!singleLineException){context.report({node:openingCurly,message:OPEN_MESSAGE_ALLMAN,fix:function fix(fixer){return fixer.insertTextBefore(openingCurly,"\n")}})}if(astUtils.isTokenOnSameLine(openingCurly,tokenAfterOpeningCurly)&&tokenAfterOpeningCurly!==closingCurly&&!singleLineException){context.report({node:openingCurly,message:BODY_MESSAGE,fix:function fix(fixer){return fixer.insertTextAfter(openingCurly,"\n")}})}if(tokenBeforeClosingCurly!==openingCurly&&!singleLineException&&astUtils.isTokenOnSameLine(tokenBeforeClosingCurly,closingCurly)){context.report({node:closingCurly,message:CLOSE_MESSAGE_SINGLE,fix:function fix(fixer){return fixer.insertTextBefore(closingCurly,"\n")}})}}function validateCurlyBeforeKeyword(curlyToken){var keywordToken=sourceCode.getTokenAfter(curlyToken);if(style==="1tbs"&&!astUtils.isTokenOnSameLine(curlyToken,keywordToken)){context.report({node:curlyToken,message:CLOSE_MESSAGE,fix:removeNewlineBetween(curlyToken,keywordToken)})}if(style!=="1tbs"&&astUtils.isTokenOnSameLine(curlyToken,keywordToken)){context.report({node:curlyToken,message:CLOSE_MESSAGE_STROUSTRUP_ALLMAN,fix:function fix(fixer){return fixer.insertTextAfter(curlyToken,"\n")}})}}return{BlockStatement:function BlockStatement(node){if(!astUtils.STATEMENT_LIST_PARENTS.has(node.parent.type)){validateCurlyPair(sourceCode.getFirstToken(node),sourceCode.getLastToken(node))}},ClassBody:function ClassBody(node){validateCurlyPair(sourceCode.getFirstToken(node),sourceCode.getLastToken(node))},SwitchStatement:function SwitchStatement(node){var closingCurly=sourceCode.getLastToken(node);var openingCurly=sourceCode.getTokenBefore(node.cases.length?node.cases[0]:closingCurly);validateCurlyPair(openingCurly,closingCurly)},IfStatement:function IfStatement(node){if(node.consequent.type==="BlockStatement"&&node.alternate){validateCurlyBeforeKeyword(sourceCode.getLastToken(node.consequent))}},TryStatement:function TryStatement(node){validateCurlyBeforeKeyword(sourceCode.getLastToken(node.block));if(node.handler&&node.finalizer){validateCurlyBeforeKeyword(sourceCode.getLastToken(node.handler.body))}}}}}},{"../ast-utils":70}],96:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"require `return` statements after callbacks",category:"Node.js and CommonJS",recommended:false},schema:[{type:"array",items:{type:"string"}}]},create:function create(context){var callbacks=context.options[0]||["callback","cb","next"],sourceCode=context.getSourceCode();function findClosestParentOfType(node,types){if(!node.parent){return null}if(types.indexOf(node.parent.type)===-1){return findClosestParentOfType(node.parent,types)}return node.parent}function containsOnlyIdentifiers(node){if(node.type==="Identifier"){return true}if(node.type==="MemberExpression"){if(node.object.type==="Identifier"){return true}else if(node.object.type==="MemberExpression"){return containsOnlyIdentifiers(node.object)}}return false}function isCallback(node){return containsOnlyIdentifiers(node.callee)&&callbacks.indexOf(sourceCode.getText(node.callee))>-1}function isCallbackExpression(node,parentNode){if(!parentNode||parentNode.type!=="ExpressionStatement"){return false}if(parentNode.expression===node){return true}if(parentNode.expression.type==="BinaryExpression"||parentNode.expression.type==="LogicalExpression"){if(parentNode.expression.right===node){return true}}return false}return{CallExpression:function CallExpression(node){if(!isCallback(node)){return}var closestBlock=findClosestParentOfType(node,["BlockStatement","ReturnStatement","ArrowFunctionExpression"])||{};if(closestBlock.type==="ReturnStatement"){return}if(closestBlock.type==="ArrowFunctionExpression"){return}if(closestBlock.type==="BlockStatement"){var lastItem=closestBlock.body[closestBlock.body.length-1];if(isCallbackExpression(node,lastItem)){var parentType=closestBlock.parent.type;if(parentType==="FunctionExpression"||parentType==="FunctionDeclaration"||parentType==="ArrowFunctionExpression"){return}}if(lastItem.type==="ReturnStatement"){if(isCallbackExpression(node,closestBlock.body[closestBlock.body.length-2])){return}}}if(findClosestParentOfType(node,["FunctionDeclaration","FunctionExpression","ArrowFunctionExpression"])){context.report({node:node,message:"Expected return with your callback function."})}}}}}},{}],97:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"enforce camelcase naming convention",category:"Stylistic Issues",recommended:false},schema:[{type:"object",properties:{properties:{enum:["always","never"]}},additionalProperties:false}]},create:function create(context){var reported=[];var ALLOWED_PARENT_TYPES=new Set(["CallExpression","NewExpression"]);function isUnderscored(name){return name.indexOf("_")>-1&&name!==name.toUpperCase()}function report(node){if(reported.indexOf(node)<0){reported.push(node);context.report({node:node,message:"Identifier '{{name}}' is not in camel case.",data:{name:node.name}})}}var options=context.options[0]||{};var properties=options.properties||"";if(properties!=="always"&&properties!=="never"){properties="always"}return{Identifier:function Identifier(node){var name=node.name.replace(/^_+|_+$/g,""),effectiveParent=node.parent.type==="MemberExpression"?node.parent.parent:node.parent;if(node.parent.type==="MemberExpression"){if(properties==="never"){return}if(node.parent.object.type==="Identifier"&&node.parent.object.name===node.name&&isUnderscored(name)){report(node)}else if(effectiveParent.type==="AssignmentExpression"&&isUnderscored(name)&&(effectiveParent.right.type!=="MemberExpression"||effectiveParent.left.type==="MemberExpression"&&effectiveParent.left.property.name===node.name)){report(node)}}else if(node.parent.type==="Property"){if(properties==="never"){return}if(node.parent.parent&&node.parent.parent.type==="ObjectPattern"&&node.parent.key===node&&node.parent.value!==node){return}if(isUnderscored(name)&&!ALLOWED_PARENT_TYPES.has(effectiveParent.type)){report(node)}}else if(["ImportSpecifier","ImportNamespaceSpecifier","ImportDefaultSpecifier"].indexOf(node.parent.type)>=0){if(node.parent.local&&node.parent.local.name===node.name&&isUnderscored(name)){report(node)}}else if(isUnderscored(name)&&!ALLOWED_PARENT_TYPES.has(effectiveParent.type)){report(node)}}}}}},{}],98:[function(require,module,exports){"use strict";var LETTER_PATTERN=require("../util/patterns/letters");var astUtils=require("../ast-utils");var ALWAYS_MESSAGE="Comments should not begin with a lowercase character",NEVER_MESSAGE="Comments should not begin with an uppercase character",DEFAULT_IGNORE_PATTERN=astUtils.COMMENTS_IGNORE_PATTERN,WHITESPACE=/\s/g,MAYBE_URL=/^\s*[^:/?#\s]+:\/\/[^?#]/,DEFAULTS={ignorePattern:null,ignoreInlineComments:false,ignoreConsecutiveComments:false};var SCHEMA_BODY={type:"object",properties:{ignorePattern:{type:"string"},ignoreInlineComments:{type:"boolean"},ignoreConsecutiveComments:{type:"boolean"}},additionalProperties:false};function getNormalizedOptions(rawOptions,which){if(!rawOptions){return Object.assign({},DEFAULTS)}return Object.assign({},DEFAULTS,rawOptions[which]||rawOptions)}function getAllNormalizedOptions(rawOptions){return{Line:getNormalizedOptions(rawOptions,"line"),Block:getNormalizedOptions(rawOptions,"block")}}function createRegExpForIgnorePatterns(normalizedOptions){Object.keys(normalizedOptions).forEach(function(key){var ignorePatternStr=normalizedOptions[key].ignorePattern;if(ignorePatternStr){var regExp=RegExp("^\\s*(?:"+ignorePatternStr+")");normalizedOptions[key].ignorePatternRegExp=regExp}})}module.exports={meta:{docs:{description:"enforce or disallow capitalization of the first letter of a comment",category:"Stylistic Issues",recommended:false},fixable:"code",schema:[{enum:["always","never"]},{oneOf:[SCHEMA_BODY,{type:"object",properties:{line:SCHEMA_BODY,block:SCHEMA_BODY},additionalProperties:false}]}]},create:function create(context){var capitalize=context.options[0]||"always",normalizedOptions=getAllNormalizedOptions(context.options[1]),sourceCode=context.getSourceCode();createRegExpForIgnorePatterns(normalizedOptions);function isInlineComment(comment){var previousToken=sourceCode.getTokenBefore(comment,{includeComments:true}),nextToken=sourceCode.getTokenAfter(comment,{includeComments:true});return Boolean(previousToken&&nextToken&&comment.loc.start.line===previousToken.loc.end.line&&comment.loc.end.line===nextToken.loc.start.line)}function isConsecutiveComment(comment){var previousTokenOrComment=sourceCode.getTokenBefore(comment,{includeComments:true});return Boolean(previousTokenOrComment&&["Block","Line"].indexOf(previousTokenOrComment.type)!==-1)}function isCommentValid(comment,options){if(DEFAULT_IGNORE_PATTERN.test(comment.value)){return true}var commentWithoutAsterisks=comment.value.replace(/\*/g,"");if(options.ignorePatternRegExp&&options.ignorePatternRegExp.test(commentWithoutAsterisks)){return true}if(options.ignoreInlineComments&&isInlineComment(comment)){return true}if(options.ignoreConsecutiveComments&&isConsecutiveComment(comment)){return true}if(MAYBE_URL.test(commentWithoutAsterisks)){return true}var commentWordCharsOnly=commentWithoutAsterisks.replace(WHITESPACE,"");if(commentWordCharsOnly.length===0){return true}var firstWordChar=commentWordCharsOnly[0];if(!LETTER_PATTERN.test(firstWordChar)){return true}var isUppercase=firstWordChar!==firstWordChar.toLocaleLowerCase(),isLowercase=firstWordChar!==firstWordChar.toLocaleUpperCase();if(capitalize==="always"&&isLowercase){return false}else if(capitalize==="never"&&isUppercase){return false}return true}function processComment(comment){var options=normalizedOptions[comment.type],commentValid=isCommentValid(comment,options);if(!commentValid){var message=capitalize==="always"?ALWAYS_MESSAGE:NEVER_MESSAGE;context.report({node:null,loc:comment.loc,message:message,fix:function fix(fixer){var match=comment.value.match(LETTER_PATTERN);return fixer.replaceTextRange([comment.range[0]+match.index+2,comment.range[0]+match.index+3],capitalize==="always"?match[0].toLocaleUpperCase():match[0].toLocaleLowerCase())}})}}return{Program:function Program(){var comments=sourceCode.getAllComments();comments.filter(function(token){return token.type!=="Shebang"}).forEach(processComment)}}}}},{"../ast-utils":70,"../util/patterns/letters":354}],99:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"enforce that class methods utilize `this`",category:"Best Practices",recommended:false},schema:[{type:"object",properties:{exceptMethods:{type:"array",items:{type:"string"}}},additionalProperties:false}]},create:function create(context){var config=context.options[0]?Object.assign({},context.options[0]):{};var exceptMethods=new Set(config.exceptMethods||[]);var stack=[];function enterFunction(){stack.push(false)}function isInstanceMethod(node){return!node.static&&node.kind!=="constructor"&&node.type==="MethodDefinition"}function isIncludedInstanceMethod(node){return isInstanceMethod(node)&&!exceptMethods.has(node.key.name)}function exitFunction(node){var methodUsesThis=stack.pop();if(isIncludedInstanceMethod(node.parent)&&!methodUsesThis){context.report({node:node,message:"Expected 'this' to be used by class method '{{classMethod}}'.",data:{classMethod:node.parent.key.name}})}}function markThisUsed(){if(stack.length){stack[stack.length-1]=true}}return{FunctionDeclaration:enterFunction,"FunctionDeclaration:exit":exitFunction,FunctionExpression:enterFunction,"FunctionExpression:exit":exitFunction,ThisExpression:markThisUsed,Super:markThisUsed}}}},{}],100:[function(require,module,exports){"use strict";var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj};var lodash=require("lodash");var astUtils=require("../ast-utils");var DEFAULT_OPTIONS=Object.freeze({arrays:"never",objects:"never",imports:"never",exports:"never",functions:"ignore"});function isTrailingCommaAllowed(lastItem){return!(lastItem.type==="RestElement"||lastItem.type==="RestProperty"||lastItem.type==="ExperimentalRestProperty")}function normalizeOptions(optionValue){if(typeof optionValue==="string"){return{arrays:optionValue,objects:optionValue,imports:optionValue,exports:optionValue,functions:"ignore"}}if((typeof optionValue==="undefined"?"undefined":_typeof(optionValue))==="object"&&optionValue!==null){return{arrays:optionValue.arrays||DEFAULT_OPTIONS.arrays,objects:optionValue.objects||DEFAULT_OPTIONS.objects,imports:optionValue.imports||DEFAULT_OPTIONS.imports,exports:optionValue.exports||DEFAULT_OPTIONS.exports,functions:optionValue.functions||DEFAULT_OPTIONS.functions}}return DEFAULT_OPTIONS}module.exports={meta:{docs:{description:"require or disallow trailing commas",category:"Stylistic Issues",recommended:false},fixable:"code",schema:[{defs:{value:{enum:["always","always-multiline","only-multiline","never"]},valueWithIgnore:{anyOf:[{$ref:"#/defs/value"},{enum:["ignore"]}]}},anyOf:[{$ref:"#/defs/value"},{type:"object",properties:{arrays:{$refs:"#/defs/valueWithIgnore"},objects:{$refs:"#/defs/valueWithIgnore"},imports:{$refs:"#/defs/valueWithIgnore"},exports:{$refs:"#/defs/valueWithIgnore"},functions:{$refs:"#/defs/valueWithIgnore"}},additionalProperties:false}]}]},create:function create(context){var options=normalizeOptions(context.options[0]);var sourceCode=context.getSourceCode();var UNEXPECTED_MESSAGE="Unexpected trailing comma.";var MISSING_MESSAGE="Missing trailing comma.";function getLastItem(node){switch(node.type){case"ObjectExpression":case"ObjectPattern":return lodash.last(node.properties);case"ArrayExpression":case"ArrayPattern":return lodash.last(node.elements);case"ImportDeclaration":case"ExportNamedDeclaration":return lodash.last(node.specifiers);case"FunctionDeclaration":case"FunctionExpression":case"ArrowFunctionExpression":return lodash.last(node.params);case"CallExpression":case"NewExpression":return lodash.last(node.arguments);default:return null}}function getTrailingToken(node,lastItem){switch(node.type){case"ObjectExpression":case"ArrayExpression":case"CallExpression":case"NewExpression":return sourceCode.getLastToken(node,1);default:{var nextToken=sourceCode.getTokenAfter(lastItem);if(astUtils.isCommaToken(nextToken)){return nextToken}return sourceCode.getLastToken(lastItem)}}}function isMultiline(node){var lastItem=getLastItem(node);if(!lastItem){return false}var penultimateToken=getTrailingToken(node,lastItem);var lastToken=sourceCode.getTokenAfter(penultimateToken);return lastToken.loc.end.line!==penultimateToken.loc.end.line}function forbidTrailingComma(node){var lastItem=getLastItem(node);if(!lastItem||node.type==="ImportDeclaration"&&lastItem.type!=="ImportSpecifier"){return}var trailingToken=getTrailingToken(node,lastItem);if(astUtils.isCommaToken(trailingToken)){context.report({node:lastItem,loc:trailingToken.loc.start,message:UNEXPECTED_MESSAGE,fix:function fix(fixer){return fixer.remove(trailingToken)}})}}function forceTrailingComma(node){var lastItem=getLastItem(node);if(!lastItem||node.type==="ImportDeclaration"&&lastItem.type!=="ImportSpecifier"){return}if(!isTrailingCommaAllowed(lastItem)){forbidTrailingComma(node);return}var trailingToken=getTrailingToken(node,lastItem);if(trailingToken.value!==","){context.report({node:lastItem,loc:trailingToken.loc.end,message:MISSING_MESSAGE,fix:function fix(fixer){return fixer.insertTextAfter(trailingToken,",")}})}}function forceTrailingCommaIfMultiline(node){if(isMultiline(node)){forceTrailingComma(node)}else{forbidTrailingComma(node)}}function allowTrailingCommaIfMultiline(node){if(!isMultiline(node)){forbidTrailingComma(node)}}var predicate={always:forceTrailingComma,"always-multiline":forceTrailingCommaIfMultiline,"only-multiline":allowTrailingCommaIfMultiline,never:forbidTrailingComma,ignore:lodash.noop};return{ObjectExpression:predicate[options.objects],ObjectPattern:predicate[options.objects],ArrayExpression:predicate[options.arrays],ArrayPattern:predicate[options.arrays],ImportDeclaration:predicate[options.imports],ExportNamedDeclaration:predicate[options.exports],FunctionDeclaration:predicate[options.functions],FunctionExpression:predicate[options.functions],ArrowFunctionExpression:predicate[options.functions],CallExpression:predicate[options.functions],NewExpression:predicate[options.functions]}}}},{"../ast-utils":70,lodash:49}],101:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"enforce consistent spacing before and after commas",category:"Stylistic Issues",recommended:false},fixable:"whitespace",schema:[{type:"object",properties:{before:{type:"boolean"},after:{type:"boolean"}},additionalProperties:false}]},create:function create(context){var sourceCode=context.getSourceCode();var tokensAndComments=sourceCode.tokensAndComments;var options={before:context.options[0]?!!context.options[0].before:false,after:context.options[0]?!!context.options[0].after:true};var commaTokensToIgnore=[];function report(node,dir,otherNode){context.report({node:node,fix:function fix(fixer){if(options[dir]){if(dir==="before"){return fixer.insertTextBefore(node," ")}return fixer.insertTextAfter(node," ")}var start=void 0,end=void 0;var newText="";if(dir==="before"){start=otherNode.range[1];end=node.range[0]}else{start=node.range[1];end=otherNode.range[0]}return fixer.replaceTextRange([start,end],newText)},message:options[dir]?"A space is required {{dir}} ','.":"There should be no space {{dir}} ','.",data:{dir:dir}})}function validateCommaItemSpacing(tokens,reportItem){if(tokens.left&&astUtils.isTokenOnSameLine(tokens.left,tokens.comma)&&options.before!==sourceCode.isSpaceBetweenTokens(tokens.left,tokens.comma)){report(reportItem,"before",tokens.left)}if(tokens.right&&!options.after&&tokens.right.type==="Line"){return}if(tokens.right&&astUtils.isTokenOnSameLine(tokens.comma,tokens.right)&&options.after!==sourceCode.isSpaceBetweenTokens(tokens.comma,tokens.right)){report(reportItem,"after",tokens.right)}}function addNullElementsToIgnoreList(node){var previousToken=sourceCode.getFirstToken(node);node.elements.forEach(function(element){var token=void 0;if(element===null){token=sourceCode.getTokenAfter(previousToken);if(astUtils.isCommaToken(token)){commaTokensToIgnore.push(token)}}else{token=sourceCode.getTokenAfter(element)}previousToken=token})}return{"Program:exit":function ProgramExit(){tokensAndComments.forEach(function(token,i){if(!astUtils.isCommaToken(token)){return}if(token&&token.type==="JSXText"){return}var previousToken=tokensAndComments[i-1];var nextToken=tokensAndComments[i+1];validateCommaItemSpacing({comma:token,left:astUtils.isCommaToken(previousToken)||commaTokensToIgnore.indexOf(token)>-1?null:previousToken,right:astUtils.isCommaToken(nextToken)?null:nextToken},token)})},ArrayExpression:addNullElementsToIgnoreList,ArrayPattern:addNullElementsToIgnoreList}}}},{"../ast-utils":70}],102:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"enforce consistent comma style",category:"Stylistic Issues",recommended:false},fixable:"code",schema:[{enum:["first","last"]},{type:"object",properties:{exceptions:{type:"object",additionalProperties:{type:"boolean"}}},additionalProperties:false}]},create:function create(context){var style=context.options[0]||"last",sourceCode=context.getSourceCode();var exceptions={ArrayPattern:true,ArrowFunctionExpression:true,CallExpression:true,FunctionDeclaration:true,FunctionExpression:true,ImportDeclaration:true,ObjectPattern:true};if(context.options.length===2&&context.options[1].hasOwnProperty("exceptions")){var keys=Object.keys(context.options[1].exceptions);for(var i=0;i1||arrayLiteral){var previousItemToken=sourceCode.getFirstToken(node);items.forEach(function(item){var commaToken=item?sourceCode.getTokenBefore(item):previousItemToken,currentItemToken=item?sourceCode.getFirstToken(item):sourceCode.getTokenAfter(commaToken),reportItem=item||currentItemToken,tokenBeforeComma=sourceCode.getTokenBefore(commaToken);if(tokenBeforeComma&&astUtils.isClosingParenToken(tokenBeforeComma)){previousItemToken=tokenBeforeComma}if(astUtils.isCommaToken(commaToken)){validateCommaItemSpacing(previousItemToken,commaToken,currentItemToken,reportItem)}if(item){var tokenAfterItem=sourceCode.getTokenAfter(item,astUtils.isNotClosingParenToken);previousItemToken=tokenAfterItem?sourceCode.getTokenBefore(tokenAfterItem):sourceCode.ast.tokens[sourceCode.ast.tokens.length-1]}});if(arrayLiteral){var lastToken=sourceCode.getLastToken(node),nextToLastToken=sourceCode.getTokenBefore(lastToken);if(astUtils.isCommaToken(nextToLastToken)){validateCommaItemSpacing(sourceCode.getTokenBefore(nextToLastToken),nextToLastToken,lastToken,lastToken)}}}}var nodes={};if(!exceptions.VariableDeclaration){nodes.VariableDeclaration=function(node){validateComma(node,"declarations")}}if(!exceptions.ObjectExpression){nodes.ObjectExpression=function(node){validateComma(node,"properties")}}if(!exceptions.ObjectPattern){nodes.ObjectPattern=function(node){validateComma(node,"properties")}}if(!exceptions.ArrayExpression){nodes.ArrayExpression=function(node){validateComma(node,"elements")}}if(!exceptions.ArrayPattern){nodes.ArrayPattern=function(node){validateComma(node,"elements")}}if(!exceptions.FunctionDeclaration){nodes.FunctionDeclaration=function(node){validateComma(node,"params")}}if(!exceptions.FunctionExpression){nodes.FunctionExpression=function(node){validateComma(node,"params")}}if(!exceptions.ArrowFunctionExpression){nodes.ArrowFunctionExpression=function(node){validateComma(node,"params")}}if(!exceptions.CallExpression){nodes.CallExpression=function(node){validateComma(node,"arguments")}}if(!exceptions.ImportDeclaration){nodes.ImportDeclaration=function(node){validateComma(node,"specifiers")}}return nodes}}},{"../ast-utils":70}],103:[function(require,module,exports){"use strict";var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj};var lodash=require("lodash");var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"enforce a maximum cyclomatic complexity allowed in a program",category:"Best Practices",recommended:false},schema:[{oneOf:[{type:"integer",minimum:0},{type:"object",properties:{maximum:{type:"integer",minimum:0},max:{type:"integer",minimum:0}},additionalProperties:false}]}]},create:function create(context){var option=context.options[0];var THRESHOLD=20;if((typeof option==="undefined"?"undefined":_typeof(option))==="object"&&option.hasOwnProperty("maximum")&&typeof option.maximum==="number"){THRESHOLD=option.maximum}if((typeof option==="undefined"?"undefined":_typeof(option))==="object"&&option.hasOwnProperty("max")&&typeof option.max==="number"){THRESHOLD=option.max}if(typeof option==="number"){THRESHOLD=option}var fns=[];function startFunction(){fns.push(1)}function endFunction(node){var name=lodash.upperFirst(astUtils.getFunctionNameWithKind(node));var complexity=fns.pop();if(complexity>THRESHOLD){context.report({node:node,message:"{{name}} has a complexity of {{complexity}}.",data:{name:name,complexity:complexity}})}}function increaseComplexity(){if(fns.length){fns[fns.length-1]++}}function increaseSwitchComplexity(node){if(node.test){increaseComplexity()}}function increaseLogicalComplexity(node){if(node.operator==="||"){increaseComplexity()}}return{FunctionDeclaration:startFunction,FunctionExpression:startFunction,ArrowFunctionExpression:startFunction,"FunctionDeclaration:exit":endFunction,"FunctionExpression:exit":endFunction,"ArrowFunctionExpression:exit":endFunction,CatchClause:increaseComplexity,ConditionalExpression:increaseComplexity,LogicalExpression:increaseLogicalComplexity,ForStatement:increaseComplexity,ForInStatement:increaseComplexity,ForOfStatement:increaseComplexity,IfStatement:increaseComplexity,SwitchCase:increaseSwitchComplexity,WhileStatement:increaseComplexity,DoWhileStatement:increaseComplexity}}}},{"../ast-utils":70,lodash:49}],104:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"enforce consistent spacing inside computed property brackets",category:"Stylistic Issues",recommended:false},fixable:"whitespace",schema:[{enum:["always","never"]}]},create:function create(context){var sourceCode=context.getSourceCode();var propertyNameMustBeSpaced=context.options[0]==="always";function reportNoBeginningSpace(node,token,tokenAfter){context.report({node:node,loc:token.loc.start,message:"There should be no space after '{{tokenValue}}'.",data:{tokenValue:token.value},fix:function fix(fixer){return fixer.removeRange([token.range[1],tokenAfter.range[0]])}})}function reportNoEndingSpace(node,token,tokenBefore){context.report({node:node,loc:token.loc.start,message:"There should be no space before '{{tokenValue}}'.",data:{tokenValue:token.value},fix:function fix(fixer){return fixer.removeRange([tokenBefore.range[1],token.range[0]])}})}function reportRequiredBeginningSpace(node,token){context.report({node:node,loc:token.loc.start,message:"A space is required after '{{tokenValue}}'.",data:{tokenValue:token.value},fix:function fix(fixer){return fixer.insertTextAfter(token," ")}})}function reportRequiredEndingSpace(node,token){context.report({node:node,loc:token.loc.start,message:"A space is required before '{{tokenValue}}'.",data:{tokenValue:token.value},fix:function fix(fixer){return fixer.insertTextBefore(token," ")}})}function checkSpacing(propertyName){return function(node){if(!node.computed){return}var property=node[propertyName];var before=sourceCode.getTokenBefore(property),first=sourceCode.getFirstToken(property),last=sourceCode.getLastToken(property),after=sourceCode.getTokenAfter(property);if(astUtils.isTokenOnSameLine(before,first)){if(propertyNameMustBeSpaced){if(!sourceCode.isSpaceBetweenTokens(before,first)&&astUtils.isTokenOnSameLine(before,first)){reportRequiredBeginningSpace(node,before)}}else{if(sourceCode.isSpaceBetweenTokens(before,first)){reportNoBeginningSpace(node,before,first)}}}if(astUtils.isTokenOnSameLine(last,after)){if(propertyNameMustBeSpaced){if(!sourceCode.isSpaceBetweenTokens(last,after)&&astUtils.isTokenOnSameLine(last,after)){reportRequiredEndingSpace(node,after)}}else{if(sourceCode.isSpaceBetweenTokens(last,after)){reportNoEndingSpace(node,after,last)}}}}}return{Property:checkSpacing("key"),MemberExpression:checkSpacing("property")}}}},{"../ast-utils":70}],105:[function(require,module,exports){"use strict";var lodash=require("lodash");var astUtils=require("../ast-utils");function isIdentifier(node,name){return node.type==="Identifier"&&node.name===name}function isUnreachable(segment){return!segment.reachable}function isClassConstructor(node){return node.type==="FunctionExpression"&&node.parent&&node.parent.type==="MethodDefinition"&&node.parent.kind==="constructor"}module.exports={meta:{docs:{description:"require `return` statements to either always or never specify values",category:"Best Practices",recommended:false},schema:[{type:"object",properties:{treatUndefinedAsUnspecified:{type:"boolean"}},additionalProperties:false}]},create:function create(context){var options=context.options[0]||{};var treatUndefinedAsUnspecified=options.treatUndefinedAsUnspecified===true;var funcInfo=null;function checkLastSegment(node){var loc=void 0,name=void 0;if(!funcInfo.hasReturnValue||funcInfo.codePath.currentSegments.every(isUnreachable)||astUtils.isES5Constructor(node)||isClassConstructor(node)){return}if(node.type==="Program"){loc={line:1,column:0};name="program"}else if(node.type==="ArrowFunctionExpression"){loc=context.getSourceCode().getTokenBefore(node.body,astUtils.isArrowToken).loc.start}else if(node.parent.type==="MethodDefinition"||node.parent.type==="Property"&&node.parent.method){loc=node.parent.key.loc.start}else{loc=(node.id||node).loc.start}if(!name){name=astUtils.getFunctionNameWithKind(node)}context.report({node:node,loc:loc,message:"Expected to return a value at the end of {{name}}.",data:{name:name}})}return{onCodePathStart:function onCodePathStart(codePath,node){funcInfo={upper:funcInfo,codePath:codePath,hasReturn:false,hasReturnValue:false,message:"",node:node}},onCodePathEnd:function onCodePathEnd(){funcInfo=funcInfo.upper},ReturnStatement:function ReturnStatement(node){var argument=node.argument;var hasReturnValue=Boolean(argument);if(treatUndefinedAsUnspecified&&hasReturnValue){hasReturnValue=!isIdentifier(argument,"undefined")&&argument.operator!=="void"}if(!funcInfo.hasReturn){funcInfo.hasReturn=true;funcInfo.hasReturnValue=hasReturnValue;funcInfo.message="{{name}} expected {{which}} return value.";funcInfo.data={name:funcInfo.node.type==="Program"?"Program":lodash.upperFirst(astUtils.getFunctionNameWithKind(funcInfo.node)),which:hasReturnValue?"a":"no"}}else if(funcInfo.hasReturnValue!==hasReturnValue){context.report({node:node,message:funcInfo.message,data:funcInfo.data})}},"Program:exit":checkLastSegment,"FunctionDeclaration:exit":checkLastSegment,"FunctionExpression:exit":checkLastSegment,"ArrowFunctionExpression:exit":checkLastSegment}}}},{"../ast-utils":70,lodash:49}],106:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"enforce consistent naming when capturing the current execution context",category:"Stylistic Issues",recommended:false},schema:{type:"array",items:{type:"string",minLength:1},uniqueItems:true}},create:function create(context){var aliases=[];if(context.options.length===0){aliases.push("that")}else{aliases=context.options}function reportBadAssignment(node,alias){context.report({node:node,message:"Designated alias '{{alias}}' is not assigned to 'this'.",data:{alias:alias}})}function checkAssignment(node,name,value){var isThis=value.type==="ThisExpression";if(aliases.indexOf(name)!==-1){if(!isThis||node.operator&&node.operator!=="="){reportBadAssignment(node,name)}}else if(isThis){context.report({node:node,message:"Unexpected alias '{{name}}' for 'this'.",data:{name:name}})}}function checkWasAssigned(alias,scope){var variable=scope.set.get(alias);if(!variable){return}if(variable.defs.some(function(def){return def.node.type==="VariableDeclarator"&&def.node.init!==null})){return}if(!variable.references.some(function(reference){var write=reference.writeExpr;return reference.from===scope&&write&&write.type==="ThisExpression"&&write.parent.operator==="="})){variable.defs.map(function(def){return def.node}).forEach(function(node){reportBadAssignment(node,alias)})}}function ensureWasAssigned(){var scope=context.getScope();aliases.forEach(function(alias){checkWasAssigned(alias,scope)})}return{"Program:exit":ensureWasAssigned,"FunctionExpression:exit":ensureWasAssigned,"FunctionDeclaration:exit":ensureWasAssigned,VariableDeclarator:function VariableDeclarator(node){var id=node.id;var isDestructuring=id.type==="ArrayPattern"||id.type==="ObjectPattern";if(node.init!==null&&!isDestructuring){checkAssignment(node,id.name,node.init)}},AssignmentExpression:function AssignmentExpression(node){if(node.left.type==="Identifier"){checkAssignment(node,node.left.name,node.right)}}}}}},{}],107:[function(require,module,exports){"use strict";function isReachable(segment){return segment.reachable}function isConstructorFunction(node){return node.type==="FunctionExpression"&&node.parent.type==="MethodDefinition"&&node.parent.kind==="constructor"}function isPossibleConstructor(node){if(!node){return false}switch(node.type){case"ClassExpression":case"FunctionExpression":case"ThisExpression":case"MemberExpression":case"CallExpression":case"NewExpression":case"YieldExpression":case"TaggedTemplateExpression":case"MetaProperty":return true;case"Identifier":return node.name!=="undefined";case"AssignmentExpression":return isPossibleConstructor(node.right);case"LogicalExpression":return isPossibleConstructor(node.left)||isPossibleConstructor(node.right);case"ConditionalExpression":return isPossibleConstructor(node.alternate)||isPossibleConstructor(node.consequent);case"SequenceExpression":{var lastExpression=node.expressions[node.expressions.length-1];return isPossibleConstructor(lastExpression)}default:return false}}module.exports={meta:{docs:{description:"require `super()` calls in constructors",category:"ECMAScript 6",recommended:true},schema:[]},create:function create(context){var funcInfo=null;var segInfoMap=Object.create(null);function isCalledInSomePath(segment){return segment.reachable&&segInfoMap[segment.id].calledInSomePaths}function isCalledInEveryPath(segment){if(segment.nextSegments.length===1&&segment.nextSegments[0].isLoopedPrevSegment(segment)){return true}return segment.reachable&&segInfoMap[segment.id].calledInEveryPaths}return{onCodePathStart:function onCodePathStart(codePath,node){if(isConstructorFunction(node)){var classNode=node.parent.parent.parent;var superClass=classNode.superClass;funcInfo={upper:funcInfo,isConstructor:true,hasExtends:Boolean(superClass),superIsConstructor:isPossibleConstructor(superClass),codePath:codePath}}else{funcInfo={upper:funcInfo,isConstructor:false,hasExtends:false,superIsConstructor:false,codePath:codePath}}},onCodePathEnd:function onCodePathEnd(codePath,node){var hasExtends=funcInfo.hasExtends;funcInfo=funcInfo.upper;if(!hasExtends){return}var segments=codePath.returnedSegments;var calledInEveryPaths=segments.every(isCalledInEveryPath);var calledInSomePaths=segments.some(isCalledInSomePath);if(!calledInEveryPaths){context.report({message:calledInSomePaths?"Lacked a call of 'super()' in some code paths.":"Expected to call 'super()'.",node:node.parent})}},onCodePathSegmentStart:function onCodePathSegmentStart(segment){if(!(funcInfo&&funcInfo.isConstructor&&funcInfo.hasExtends)){return}var info=segInfoMap[segment.id]={calledInSomePaths:false,calledInEveryPaths:false,validNodes:[]};var prevSegments=segment.prevSegments;if(prevSegments.length>0){info.calledInSomePaths=prevSegments.some(isCalledInSomePath);info.calledInEveryPaths=prevSegments.every(isCalledInEveryPath)}},onCodePathSegmentLoop:function onCodePathSegmentLoop(fromSegment,toSegment){if(!(funcInfo&&funcInfo.isConstructor&&funcInfo.hasExtends)){return}var isRealLoop=toSegment.prevSegments.length>=2;funcInfo.codePath.traverseSegments({first:toSegment,last:fromSegment},function(segment){var info=segInfoMap[segment.id];var prevSegments=segment.prevSegments;info.calledInSomePaths=prevSegments.some(isCalledInSomePath);info.calledInEveryPaths=prevSegments.every(isCalledInEveryPath);if(info.calledInSomePaths||isRealLoop){var nodes=info.validNodes;info.validNodes=[];for(var i=0;i=2){return true}node=node.consequent.body[0];while(node){if(node.type==="IfStatement"&&!node.alternate){return true}node=astUtils.getTrailingStatement(node)}}return false}function reportExpectedBraceError(node,bodyNode,name,suffix){context.report({node:node,loc:(name!=="else"?node:getElseKeyword(node)).loc.start,message:"Expected { after '{{name}}'{{suffix}}.",data:{name:name,suffix:suffix?" "+suffix:""},fix:function fix(fixer){return fixer.replaceText(bodyNode,"{"+sourceCode.getText(bodyNode)+"}")}})}function needsSemicolon(closingBracket){var tokenBefore=sourceCode.getTokenBefore(closingBracket);var tokenAfter=sourceCode.getTokenAfter(closingBracket);var lastBlockNode=sourceCode.getNodeByRangeIndex(tokenBefore.range[0]);if(astUtils.isSemicolonToken(tokenBefore)){return false}if(!tokenAfter){return false}if(lastBlockNode.type==="BlockStatement"&&lastBlockNode.parent.type!=="FunctionExpression"&&lastBlockNode.parent.type!=="ArrowFunctionExpression"){return false}if(tokenBefore.loc.end.line===tokenAfter.loc.start.line){return true}if(/^[([/`+-]/.test(tokenAfter.value)){return true}if(tokenBefore.type==="Punctuator"&&(tokenBefore.value==="++"||tokenBefore.value==="--")){return true}return false}function reportUnnecessaryBraceError(node,bodyNode,name,suffix){context.report({node:node,loc:(name!=="else"?node:getElseKeyword(node)).loc.start,message:"Unnecessary { after '{{name}}'{{suffix}}.",data:{name:name,suffix:suffix?" "+suffix:""},fix:function fix(fixer){var needsPrecedingSpace=node.type==="DoWhileStatement"&&sourceCode.getTokenBefore(bodyNode).end===bodyNode.start&&!astUtils.canTokensBeAdjacent("do",sourceCode.getFirstToken(bodyNode,{skip:1}));var openingBracket=sourceCode.getFirstToken(bodyNode);var closingBracket=sourceCode.getLastToken(bodyNode);var lastTokenInBlock=sourceCode.getTokenBefore(closingBracket);if(needsSemicolon(closingBracket)){return null}var resultingBodyText=sourceCode.getText().slice(openingBracket.range[1],lastTokenInBlock.range[0])+sourceCode.getText(lastTokenInBlock)+sourceCode.getText().slice(lastTokenInBlock.range[1],closingBracket.range[0]);return fixer.replaceText(bodyNode,(needsPrecedingSpace?" ":"")+resultingBodyText)}})}function prepareCheck(node,body,name,suffix){var hasBlock=body.type==="BlockStatement";var expected=null;if(node.type==="IfStatement"&&node.consequent===body&&requiresBraceOfConsequent(node)){expected=true}else if(multiOnly){if(hasBlock&&body.body.length===1){expected=false}}else if(multiLine){if(!isCollapsedOneLiner(body)){expected=true}}else if(multiOrNest){if(hasBlock&&body.body.length===1&&isOneLiner(body.body[0])){var leadingComments=sourceCode.getCommentsBefore(body.body[0]);expected=leadingComments.length>0}else if(!isOneLiner(body)){expected=true}}else{expected=true}return{actual:hasBlock,expected:expected,check:function check(){if(this.expected!==null&&this.expected!==this.actual){if(this.expected){reportExpectedBraceError(node,body,name,suffix)}else{reportUnnecessaryBraceError(node,body,name,suffix)}}}}}function prepareIfChecks(node){var preparedChecks=[];do{preparedChecks.push(prepareCheck(node,node.consequent,"if","condition"));if(node.alternate&&node.alternate.type!=="IfStatement"){preparedChecks.push(prepareCheck(node,node.alternate,"else"));break}node=node.alternate}while(node);if(consistent){var expected=preparedChecks.some(function(preparedCheck){if(preparedCheck.expected!==null){return preparedCheck.expected}return preparedCheck.actual});preparedChecks.forEach(function(preparedCheck){preparedCheck.expected=expected})}return preparedChecks}return{IfStatement:function IfStatement(node){if(node.parent.type!=="IfStatement"){prepareIfChecks(node).forEach(function(preparedCheck){preparedCheck.check()})}},WhileStatement:function WhileStatement(node){prepareCheck(node,node.body,"while","condition").check()},DoWhileStatement:function DoWhileStatement(node){prepareCheck(node,node.body,"do").check()},ForStatement:function ForStatement(node){prepareCheck(node,node.body,"for","condition").check()},ForInStatement:function ForInStatement(node){prepareCheck(node,node.body,"for-in").check()},ForOfStatement:function ForOfStatement(node){prepareCheck(node,node.body,"for-of").check()}}}}},{"../ast-utils":70}],109:[function(require,module,exports){"use strict";var DEFAULT_COMMENT_PATTERN=/^no default$/i;module.exports={meta:{docs:{description:"require `default` cases in `switch` statements",category:"Best Practices",recommended:false},schema:[{type:"object",properties:{commentPattern:{type:"string"}},additionalProperties:false}]},create:function create(context){var options=context.options[0]||{};var commentPattern=options.commentPattern?new RegExp(options.commentPattern):DEFAULT_COMMENT_PATTERN;var sourceCode=context.getSourceCode();function last(collection){return collection[collection.length-1]}return{SwitchStatement:function SwitchStatement(node){if(!node.cases.length){return}var hasDefault=node.cases.some(function(v){return v.test===null});if(!hasDefault){var comment=void 0;var lastCase=last(node.cases);var comments=sourceCode.getCommentsAfter(lastCase);if(comments.length){comment=last(comments)}if(!comment||!commentPattern.test(comment.value.trim())){context.report({node:node,message:"Expected a default case."})}}}}}}},{}],110:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"enforce consistent newlines before and after dots",category:"Best Practices",recommended:false},schema:[{enum:["object","property"]}],fixable:"code"},create:function create(context){var config=context.options[0];var onObject=config==="object"||!config;var sourceCode=context.getSourceCode();function checkDotLocation(obj,prop,node){var dot=sourceCode.getTokenBefore(prop);var textBeforeDot=sourceCode.getText().slice(obj.range[1],dot.range[0]);var textAfterDot=sourceCode.getText().slice(dot.range[1],prop.range[0]);if(dot.type==="Punctuator"&&dot.value==="."){if(onObject){if(!astUtils.isTokenOnSameLine(obj,dot)){var neededTextAfterObj=astUtils.isDecimalInteger(obj)?" ":"";context.report({node:node,loc:dot.loc.start,message:"Expected dot to be on same line as object.",fix:function fix(fixer){return fixer.replaceTextRange([obj.range[1],prop.range[0]],neededTextAfterObj+"."+textBeforeDot+textAfterDot)}})}}else if(!astUtils.isTokenOnSameLine(dot,prop)){context.report({node:node,loc:dot.loc.start,message:"Expected dot to be on same line as property.",fix:function fix(fixer){return fixer.replaceTextRange([obj.range[1],prop.range[0]],""+textBeforeDot+textAfterDot+".")}})}}}function checkNode(node){checkDotLocation(node.object,node.property,node)}return{MemberExpression:checkNode}}}},{"../ast-utils":70}],111:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");var validIdentifier=/^[a-zA-Z_$][a-zA-Z0-9_$]*$/;var keywords=require("../util/keywords");module.exports={meta:{docs:{description:"enforce dot notation whenever possible",category:"Best Practices",recommended:false},schema:[{type:"object",properties:{allowKeywords:{type:"boolean"},allowPattern:{type:"string"}},additionalProperties:false}],fixable:"code"},create:function create(context){var options=context.options[0]||{};var allowKeywords=options.allowKeywords===void 0||!!options.allowKeywords;var sourceCode=context.getSourceCode();var allowPattern=void 0;if(options.allowPattern){allowPattern=new RegExp(options.allowPattern)}return{MemberExpression:function MemberExpression(node){if(node.computed&&node.property.type==="Literal"&&validIdentifier.test(node.property.value)&&(allowKeywords||keywords.indexOf(String(node.property.value))===-1)){if(!(allowPattern&&allowPattern.test(node.property.value))){context.report({node:node.property,message:"[{{propertyValue}}] is better written in dot notation.",data:{propertyValue:JSON.stringify(node.property.value)},fix:function fix(fixer){var leftBracket=sourceCode.getTokenAfter(node.object,astUtils.isOpeningBracketToken);var rightBracket=sourceCode.getLastToken(node);if(sourceCode.getFirstTokenBetween(leftBracket,rightBracket,{includeComments:true,filter:astUtils.isCommentToken})){return null}var tokenAfterProperty=sourceCode.getTokenAfter(rightBracket);var needsSpaceAfterProperty=tokenAfterProperty&&rightBracket.range[1]===tokenAfterProperty.range[0]&&!astUtils.canTokensBeAdjacent(String(node.property.value),tokenAfterProperty);var textBeforeDot=astUtils.isDecimalInteger(node.object)?" ":"";var textAfterProperty=needsSpaceAfterProperty?" ":"";return fixer.replaceTextRange([leftBracket.range[0],rightBracket.range[1]],textBeforeDot+"."+node.property.value+textAfterProperty)}})}}if(!allowKeywords&&!node.computed&&keywords.indexOf(String(node.property.name))!==-1){context.report({node:node.property,message:".{{propertyName}} is a syntax error.",data:{propertyName:node.property.name},fix:function fix(fixer){var dot=sourceCode.getTokenBefore(node.property);var textAfterDot=sourceCode.text.slice(dot.range[1],node.property.range[0]);if(textAfterDot.trim()){return null}return fixer.replaceTextRange([dot.range[0],node.property.range[1]],"["+textAfterDot+'"'+node.property.name+'"]')}})}}}}}},{"../ast-utils":70,"../util/keywords":352}],112:[function(require,module,exports){"use strict";var lodash=require("lodash");module.exports={meta:{docs:{description:"require or disallow newline at the end of files",category:"Stylistic Issues",recommended:false},fixable:"whitespace",schema:[{enum:["always","never","unix","windows"]}]},create:function create(context){return{Program:function checkBadEOF(node){var sourceCode=context.getSourceCode(),src=sourceCode.getText(),location={column:lodash.last(sourceCode.lines).length,line:sourceCode.lines.length},LF="\n",CRLF="\r"+LF,endsWithNewline=lodash.endsWith(src,LF);var mode=context.options[0]||"always",appendCRLF=false;if(mode==="unix"){mode="always"}if(mode==="windows"){mode="always";appendCRLF=true}if(mode==="always"&&!endsWithNewline){context.report({node:node,loc:location,message:"Newline required at end of file but not found.",fix:function fix(fixer){return fixer.insertTextAfterRange([0,src.length],appendCRLF?CRLF:LF)}})}else if(mode==="never"&&endsWithNewline){context.report({node:node,loc:location,message:"Newline not allowed at end of file.",fix:function fix(fixer){var finalEOLs=/(?:\r?\n)+$/,match=finalEOLs.exec(sourceCode.text),start=match.index,end=sourceCode.text.length;return fixer.replaceTextRange([start,end],"")}})}}}}}},{lodash:49}],113:[function(require,module,exports){"use strict";var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj};var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"require the use of `===` and `!==`",category:"Best Practices",recommended:false},schema:{anyOf:[{type:"array",items:[{enum:["always"]},{type:"object",properties:{null:{enum:["always","never","ignore"]}},additionalProperties:false}],additionalItems:false},{type:"array",items:[{enum:["smart","allow-null"]}],additionalItems:false}]},fixable:"code"},create:function create(context){var config=context.options[0]||"always";var options=context.options[1]||{};var sourceCode=context.getSourceCode();var nullOption=config==="always"?options.null||"always":"ignore";var enforceRuleForNull=nullOption==="always";var enforceInverseRuleForNull=nullOption==="never";function isTypeOf(node){return node.type==="UnaryExpression"&&node.operator==="typeof"}function isTypeOfBinary(node){return isTypeOf(node.left)||isTypeOf(node.right)}function areLiteralsAndSameType(node){return node.left.type==="Literal"&&node.right.type==="Literal"&&_typeof(node.left.value)===_typeof(node.right.value)}function isNullCheck(node){return astUtils.isNullLiteral(node.right)||astUtils.isNullLiteral(node.left)}function getOperatorLocation(node){var opToken=sourceCode.getTokenAfter(node.left);return{line:opToken.loc.start.line,column:opToken.loc.start.column}}function report(node,expectedOperator){context.report({node:node,loc:getOperatorLocation(node),message:"Expected '{{expectedOperator}}' and instead saw '{{actualOperator}}'.",data:{expectedOperator:expectedOperator,actualOperator:node.operator},fix:function fix(fixer){if(isTypeOfBinary(node)||areLiteralsAndSameType(node)){var operatorToken=sourceCode.getFirstTokenBetween(node.left,node.right,function(token){return token.value===node.operator});return fixer.replaceText(operatorToken,expectedOperator)}return null}})}return{BinaryExpression:function BinaryExpression(node){var isNull=isNullCheck(node);if(node.operator!=="=="&&node.operator!=="!="){if(enforceInverseRuleForNull&&isNull){report(node,node.operator.slice(0,-1))}return}if(config==="smart"&&(isTypeOfBinary(node)||areLiteralsAndSameType(node)||isNull)){return}if(!enforceRuleForNull&&isNull){return}report(node,node.operator+"=")}}}}},{"../ast-utils":70}],114:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:'enforce "for" loop update clause moving the counter in the right direction.',category:"Possible Errors",recommended:false},fixable:null,schema:[]},create:function create(context){function report(node){context.report({node:node,message:"The update clause in this loop moves the variable in the wrong direction."})}function getUpdateDirection(update,counter){if(update.argument.type==="Identifier"&&update.argument.name===counter){if(update.operator==="++"){return 1}if(update.operator==="--"){return-1}}return 0}function getAssignmentDirection(update,counter){if(update.left.name===counter){if(update.operator==="+="){return 1}if(update.operator==="-="){return-1}}return 0}return{ForStatement:function ForStatement(node){if(node.test&&node.test.type==="BinaryExpression"&&node.test.left.type==="Identifier"&&node.update){var counter=node.test.left.name;var operator=node.test.operator;var update=node.update;if(operator==="<"||operator==="<="){if(update.type==="UpdateExpression"&&getUpdateDirection(update,counter)<0){report(node)}if(update.type==="AssignmentExpression"&&getAssignmentDirection(update,counter)<0){report(node)}}else if(operator===">"||operator===">="){if(update.type==="UpdateExpression"&&getUpdateDirection(update,counter)>0){report(node)}if(update.type==="AssignmentExpression"&&getAssignmentDirection(update,counter)>0){report(node)}}}}}}}},{}],115:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"require or disallow spacing between function identifiers and their invocations",category:"Stylistic Issues",recommended:false},fixable:"whitespace",schema:{anyOf:[{type:"array",items:[{enum:["never"]}],minItems:0,maxItems:1},{type:"array",items:[{enum:["always"]},{type:"object",properties:{allowNewlines:{type:"boolean"}},additionalProperties:false}],minItems:0,maxItems:2}]}},create:function create(context){var never=context.options[0]!=="always";var allowNewlines=!never&&context.options[1]&&context.options[1].allowNewlines;var sourceCode=context.getSourceCode();var text=sourceCode.getText();function checkSpacing(node){var lastToken=sourceCode.getLastToken(node);var lastCalleeToken=sourceCode.getLastToken(node.callee);var parenToken=sourceCode.getFirstTokenBetween(lastCalleeToken,lastToken,astUtils.isOpeningParenToken);var prevToken=parenToken&&sourceCode.getTokenBefore(parenToken);if(!(parenToken&&parenToken.range[1]=6){return esutils.keyword.isIdentifierES6(name)}return esutils.keyword.isIdentifierES5(name)}var alwaysOrNever={enum:["always","never"]};var optionsObject={type:"object",properties:{includeCommonJSModuleExports:{type:"boolean"}},additionalProperties:false};module.exports={meta:{docs:{description:"require function names to match the name of the variable or property to which they are assigned",category:"Stylistic Issues",recommended:false},schema:{anyOf:[{type:"array",additionalItems:false,items:[alwaysOrNever,optionsObject]},{type:"array",additionalItems:false,items:[optionsObject]}]}},create:function create(context){var options=(_typeof(context.options[0])==="object"?context.options[0]:context.options[1])||{};var nameMatches=typeof context.options[0]==="string"?context.options[0]:"always";var includeModuleExports=options.includeCommonJSModuleExports;var ecmaVersion=context.parserOptions&&context.parserOptions.ecmaVersion?context.parserOptions.ecmaVersion:5;function shouldWarn(x,y){return nameMatches==="always"&&x!==y||nameMatches==="never"&&x===y}function report(node,name,funcName,isProp){var message=void 0;if(nameMatches==="always"&&isProp){message="Function name `{{funcName}}` should match property name `{{name}}`"}else if(nameMatches==="always"){message="Function name `{{funcName}}` should match variable name `{{name}}`"}else if(isProp){message="Function name `{{funcName}}` should not match property name `{{name}}`"}else{message="Function name `{{funcName}}` should not match variable name `{{name}}`"}context.report({node:node,message:message,data:{name:name,funcName:funcName}})}function isStringLiteral(node){return node.type==="Literal"&&typeof node.value==="string"}return{VariableDeclarator:function VariableDeclarator(node){if(!node.init||node.init.type!=="FunctionExpression"||node.id.type!=="Identifier"){return}if(node.init.id&&shouldWarn(node.id.name,node.init.id.name)){report(node,node.id.name,node.init.id.name,false)}},AssignmentExpression:function AssignmentExpression(node){if(node.right.type!=="FunctionExpression"||node.left.computed&&node.left.property.type!=="Literal"||!includeModuleExports&&isModuleExports(node.left)||node.left.type!=="Identifier"&&node.left.type!=="MemberExpression"){return}var isProp=node.left.type==="MemberExpression";var name=isProp?astUtils.getStaticPropertyName(node.left):node.left.name;if(node.right.id&&isIdentifier(name)&&shouldWarn(name,node.right.id.name)){report(node,name,node.right.id.name,isProp)}},Property:function Property(node){if(node.value.type!=="FunctionExpression"||!node.value.id||node.computed&&!isStringLiteral(node.key)){return}if(node.key.type==="Identifier"&&shouldWarn(node.key.name,node.value.id.name)){report(node,node.key.name,node.value.id.name,true)}else if(isStringLiteral(node.key)&&isIdentifier(node.key.value,ecmaVersion)&&shouldWarn(node.key.value,node.value.id.name)){report(node,node.key.value,node.value.id.name,true)}}}}}},{"../ast-utils":70,esutils:34}],117:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");function isFunctionName(variable){return variable&&variable.defs[0].type==="FunctionName"}module.exports={meta:{docs:{description:"require or disallow named `function` expressions",category:"Stylistic Issues",recommended:false},schema:[{enum:["always","as-needed","never"]}]},create:function create(context){var never=context.options[0]==="never";var asNeeded=context.options[0]==="as-needed";function isObjectOrClassMethod(node){var parent=node.parent;return parent.type==="MethodDefinition"||parent.type==="Property"&&(parent.method||parent.kind==="get"||parent.kind==="set")}function hasInferredName(node){var parent=node.parent;return isObjectOrClassMethod(node)||parent.type==="VariableDeclarator"&&parent.id.type==="Identifier"&&parent.init===node||parent.type==="Property"&&parent.value===node||parent.type==="AssignmentExpression"&&parent.left.type==="Identifier"&&parent.right===node||parent.type==="ExportDefaultDeclaration"&&parent.declaration===node||parent.type==="AssignmentPattern"&&parent.right===node}return{"FunctionExpression:exit":function FunctionExpressionExit(node){var nameVar=context.getDeclaredVariables(node)[0];if(isFunctionName(nameVar)&&nameVar.references.length>0){return}var hasName=Boolean(node.id&&node.id.name);var name=astUtils.getFunctionNameWithKind(node);if(never){if(hasName){context.report({node:node,message:"Unexpected named {{name}}.",data:{name:name}})}}else{if(!hasName&&(asNeeded?!hasInferredName(node):!isObjectOrClassMethod(node))){context.report({node:node,message:"Unexpected unnamed {{name}}.",data:{name:name}})}}}}}}},{"../ast-utils":70}],118:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"enforce the consistent use of either `function` declarations or expressions",category:"Stylistic Issues",recommended:false},schema:[{enum:["declaration","expression"]},{type:"object",properties:{allowArrowFunctions:{type:"boolean"}},additionalProperties:false}]},create:function create(context){var style=context.options[0],allowArrowFunctions=context.options[1]&&context.options[1].allowArrowFunctions===true,enforceDeclarations=style==="declaration",stack=[];var nodesToCheck={FunctionDeclaration:function FunctionDeclaration(node){stack.push(false);if(!enforceDeclarations&&node.parent.type!=="ExportDefaultDeclaration"){context.report({node:node,message:"Expected a function expression."})}},"FunctionDeclaration:exit":function FunctionDeclarationExit(){stack.pop()},FunctionExpression:function FunctionExpression(node){stack.push(false);if(enforceDeclarations&&node.parent.type==="VariableDeclarator"){context.report({node:node.parent,message:"Expected a function declaration."})}},"FunctionExpression:exit":function FunctionExpressionExit(){stack.pop()},ThisExpression:function ThisExpression(){if(stack.length>0){stack[stack.length-1]=true}}};if(!allowArrowFunctions){nodesToCheck.ArrowFunctionExpression=function(){stack.push(false)};nodesToCheck["ArrowFunctionExpression:exit"]=function(node){var hasThisExpr=stack.pop();if(enforceDeclarations&&!hasThisExpr&&node.parent.type==="VariableDeclarator"){context.report({node:node.parent,message:"Expected a function declaration."})}}}return nodesToCheck}}},{}],119:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"enforce consistent spacing around `*` operators in generator functions",category:"ECMAScript 6",recommended:false},fixable:"whitespace",schema:[{oneOf:[{enum:["before","after","both","neither"]},{type:"object",properties:{before:{type:"boolean"},after:{type:"boolean"}},additionalProperties:false}]}]},create:function create(context){var mode=function(option){if(!option||typeof option==="string"){return{before:{before:true,after:false},after:{before:false,after:true},both:{before:true,after:true},neither:{before:false,after:false}}[option||"before"]}return option}(context.options[0]);var sourceCode=context.getSourceCode();function isStarToken(token){return token.value==="*"&&token.type==="Punctuator"}function getStarToken(node){return sourceCode.getFirstToken(node.parent.method||node.parent.type==="MethodDefinition"?node.parent:node,isStarToken)}function checkSpacing(side,leftToken,rightToken){if(!!(rightToken.range[0]-leftToken.range[1])!==mode[side]){var after=leftToken.value==="*";var spaceRequired=mode[side];var node=after?leftToken:rightToken;var type=spaceRequired?"Missing":"Unexpected";var message="{{type}} space {{side}} *.";var data={type:type,side:side};context.report({node:node,message:message,data:data,fix:function fix(fixer){if(spaceRequired){if(after){return fixer.insertTextAfter(node," ")}return fixer.insertTextBefore(node," ")}return fixer.removeRange([leftToken.range[1],rightToken.range[0]])}})}}function checkFunction(node){if(!node.generator){return}var starToken=getStarToken(node);var prevToken=sourceCode.getTokenBefore(starToken);if(prevToken.value==="function"||prevToken.value==="static"){checkSpacing("before",prevToken,starToken)}var nextToken=sourceCode.getTokenAfter(starToken);checkSpacing("after",starToken,nextToken)}return{FunctionDeclaration:checkFunction,FunctionExpression:checkFunction}}}},{}],120:[function(require,module,exports){"use strict";var ACCEPTABLE_PARENTS=["AssignmentExpression","VariableDeclarator","MemberExpression","ExpressionStatement","CallExpression","ConditionalExpression","Program","VariableDeclaration"];function findReference(scope,node){var references=scope.references.filter(function(reference){return reference.identifier.range[0]===node.range[0]&&reference.identifier.range[1]===node.range[1]});if(references.length===1){return references[0]}return null}function isShadowed(scope,node){var reference=findReference(scope,node);return reference&&reference.resolved&&reference.resolved.defs.length>0}module.exports={meta:{docs:{description:"require `require()` calls to be placed at top-level module scope",category:"Node.js and CommonJS",recommended:false},schema:[]},create:function create(context){return{CallExpression:function CallExpression(node){var currentScope=context.getScope();if(node.callee.name==="require"&&!isShadowed(currentScope,node.callee)){var isGoodRequire=context.getAncestors().every(function(parent){return ACCEPTABLE_PARENTS.indexOf(parent.type)>-1});if(!isGoodRequire){context.report({node:node,message:"Unexpected require()."})}}}}}}},{}],121:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"require `for-in` loops to include an `if` statement",category:"Best Practices",recommended:false},schema:[]},create:function create(context){return{ForInStatement:function ForInStatement(node){var body=node.body.type==="BlockStatement"?node.body.body[0]:node.body;if(body&&body.type!=="IfStatement"){context.report({node:node,message:"The body of a for-in should be wrapped in an if statement to filter unwanted properties from the prototype."})}}}}}},{}],122:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"require error handling in callbacks",category:"Node.js and CommonJS",recommended:false},schema:[{type:"string"}]},create:function create(context){var errorArgument=context.options[0]||"err";function isPattern(stringToCheck){var firstChar=stringToCheck[0];return firstChar==="^"}function matchesConfiguredErrorName(name){if(isPattern(errorArgument)){var regexp=new RegExp(errorArgument);return regexp.test(name)}return name===errorArgument}function getParameters(scope){return scope.variables.filter(function(variable){return variable.defs[0]&&variable.defs[0].type==="Parameter"})}function checkForError(node){var scope=context.getScope(),parameters=getParameters(scope),firstParameter=parameters[0];if(firstParameter&&matchesConfiguredErrorName(firstParameter.name)){if(firstParameter.references.length===0){context.report({node:node,message:"Expected error to be handled."})}}}return{FunctionDeclaration:checkForError,FunctionExpression:checkForError,ArrowFunctionExpression:checkForError}}}},{}],123:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow specified identifiers",category:"Stylistic Issues",recommended:false},schema:{type:"array",items:{type:"string"},uniqueItems:true}},create:function create(context){var blacklist=context.options;function isInvalid(name){return blacklist.indexOf(name)!==-1}function shouldReport(effectiveParent,name){return effectiveParent.type!=="CallExpression"&&effectiveParent.type!=="NewExpression"&&isInvalid(name)}function report(node){context.report({node:node,message:"Identifier '{{name}}' is blacklisted.",data:{name:node.name}})}return{Identifier:function Identifier(node){var name=node.name,effectiveParent=node.parent.type==="MemberExpression"?node.parent.parent:node.parent;if(node.parent.type==="MemberExpression"){if(node.parent.object.type==="Identifier"&&node.parent.object.name===node.name){if(isInvalid(name)){report(node)}}else if(effectiveParent.type==="AssignmentExpression"&&(effectiveParent.right.type!=="MemberExpression"||effectiveParent.left.type==="MemberExpression"&&effectiveParent.left.property.name===node.name)){if(isInvalid(name)){report(node)}}}else if(node.parent.type==="Property"){if(shouldReport(effectiveParent,name)){report(node)}}else if(shouldReport(effectiveParent,name)){report(node)}}}}}},{}],124:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"enforce minimum and maximum identifier lengths",category:"Stylistic Issues",recommended:false},schema:[{type:"object",properties:{min:{type:"number"},max:{type:"number"},exceptions:{type:"array",uniqueItems:true,items:{type:"string"}},properties:{enum:["always","never"]}},additionalProperties:false}]},create:function create(context){var options=context.options[0]||{};var minLength=typeof options.min!=="undefined"?options.min:2;var maxLength=typeof options.max!=="undefined"?options.max:Infinity;var properties=options.properties!=="never";var exceptions=(options.exceptions?options.exceptions:[]).reduce(function(obj,item){obj[item]=true;return obj},{});var SUPPORTED_EXPRESSIONS={MemberExpression:properties&&function(parent){return!parent.computed&&(parent.parent.left===parent&&parent.parent.type==="AssignmentExpression"||parent.parent.type==="Property"&&parent.parent.value===parent&&parent.parent.parent.type==="ObjectPattern"&&parent.parent.parent.parent.left===parent.parent.parent)},AssignmentPattern:function AssignmentPattern(parent,node){return parent.left===node},VariableDeclarator:function VariableDeclarator(parent,node){return parent.id===node},Property:properties&&function(parent,node){return parent.key===node},ImportDefaultSpecifier:true,RestElement:true,FunctionExpression:true,ArrowFunctionExpression:true,ClassDeclaration:true,FunctionDeclaration:true,MethodDefinition:true,CatchClause:true};return{Identifier:function Identifier(node){var name=node.name;var parent=node.parent;var isShort=name.lengthmaxLength;if(!(isShort||isLong)||exceptions[name]){return}var isValidExpression=SUPPORTED_EXPRESSIONS[parent.type];if(isValidExpression&&(isValidExpression===true||isValidExpression(parent,node))){context.report({node:node,message:isShort?"Identifier name '{{name}}' is too short (< {{min}}).":"Identifier name '{{name}}' is too long (> {{max}}).",data:{name:name,min:minLength,max:maxLength}})}}}}}},{}],125:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"require identifiers to match a specified regular expression",category:"Stylistic Issues",recommended:false},schema:[{type:"string"},{type:"object",properties:{properties:{type:"boolean"}}}]},create:function create(context){var pattern=context.options[0]||"^.+$",regexp=new RegExp(pattern);var options=context.options[1]||{},properties=!!options.properties,onlyDeclarations=!!options.onlyDeclarations;function isInvalid(name){return!regexp.test(name)}function shouldReport(effectiveParent,name){return effectiveParent.type!=="CallExpression"&&effectiveParent.type!=="NewExpression"&&isInvalid(name)}function report(node){context.report({node:node,message:"Identifier '{{name}}' does not match the pattern '{{pattern}}'.",data:{name:node.name,pattern:pattern}})}return{Identifier:function Identifier(node){var name=node.name,parent=node.parent,effectiveParent=parent.type==="MemberExpression"?parent.parent:parent;if(parent.type==="MemberExpression"){if(!properties){return}if(parent.object.type==="Identifier"&&parent.object.name===name){if(isInvalid(name)){report(node)}}else if(effectiveParent.type==="AssignmentExpression"&&(effectiveParent.right.type!=="MemberExpression"||effectiveParent.left.type==="MemberExpression"&&effectiveParent.left.property.name===name)){if(isInvalid(name)){report(node)}}}else if(parent.type==="Property"){if(!properties||parent.key.name!==name){return}if(shouldReport(effectiveParent,name)){report(node)}}else{var isDeclaration=effectiveParent.type==="FunctionDeclaration"||effectiveParent.type==="VariableDeclarator";if(onlyDeclarations&&!isDeclaration){return}if(shouldReport(effectiveParent,name)){report(node)}}}}}}},{}],126:[function(require,module,exports){"use strict";var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj};var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"enforce consistent indentation",category:"Stylistic Issues",recommended:false,replacedBy:["indent"]},deprecated:true,fixable:"whitespace",schema:[{oneOf:[{enum:["tab"]},{type:"integer",minimum:0}]},{type:"object",properties:{SwitchCase:{type:"integer",minimum:0},VariableDeclarator:{oneOf:[{type:"integer",minimum:0},{type:"object",properties:{var:{type:"integer",minimum:0},let:{type:"integer",minimum:0},const:{type:"integer",minimum:0}}}]},outerIIFEBody:{type:"integer",minimum:0},MemberExpression:{type:"integer",minimum:0},FunctionDeclaration:{type:"object",properties:{parameters:{oneOf:[{type:"integer",minimum:0},{enum:["first"]}]},body:{type:"integer",minimum:0}}},FunctionExpression:{type:"object",properties:{parameters:{oneOf:[{type:"integer",minimum:0},{enum:["first"]}]},body:{type:"integer",minimum:0}}},CallExpression:{type:"object",properties:{parameters:{oneOf:[{type:"integer",minimum:0},{enum:["first"]}]}}},ArrayExpression:{oneOf:[{type:"integer",minimum:0},{enum:["first"]}]},ObjectExpression:{oneOf:[{type:"integer",minimum:0},{enum:["first"]}]}},additionalProperties:false}]},create:function create(context){var DEFAULT_VARIABLE_INDENT=1;var DEFAULT_PARAMETER_INDENT=null;var DEFAULT_FUNCTION_BODY_INDENT=1;var indentType="space";var indentSize=4;var options={SwitchCase:0,VariableDeclarator:{var:DEFAULT_VARIABLE_INDENT,let:DEFAULT_VARIABLE_INDENT,const:DEFAULT_VARIABLE_INDENT},outerIIFEBody:null,FunctionDeclaration:{parameters:DEFAULT_PARAMETER_INDENT,body:DEFAULT_FUNCTION_BODY_INDENT},FunctionExpression:{parameters:DEFAULT_PARAMETER_INDENT,body:DEFAULT_FUNCTION_BODY_INDENT},CallExpression:{arguments:DEFAULT_PARAMETER_INDENT},ArrayExpression:1,ObjectExpression:1};var sourceCode=context.getSourceCode();if(context.options.length){if(context.options[0]==="tab"){indentSize=1;indentType="tab"}else if(typeof context.options[0]==="number"){indentSize=context.options[0];indentType="space"}if(context.options[1]){var opts=context.options[1];options.SwitchCase=opts.SwitchCase||0;var variableDeclaratorRules=opts.VariableDeclarator;if(typeof variableDeclaratorRules==="number"){options.VariableDeclarator={var:variableDeclaratorRules,let:variableDeclaratorRules,const:variableDeclaratorRules}}else if((typeof variableDeclaratorRules==="undefined"?"undefined":_typeof(variableDeclaratorRules))==="object"){Object.assign(options.VariableDeclarator,variableDeclaratorRules)}if(typeof opts.outerIIFEBody==="number"){options.outerIIFEBody=opts.outerIIFEBody}if(typeof opts.MemberExpression==="number"){options.MemberExpression=opts.MemberExpression}if(_typeof(opts.FunctionDeclaration)==="object"){Object.assign(options.FunctionDeclaration,opts.FunctionDeclaration)}if(_typeof(opts.FunctionExpression)==="object"){Object.assign(options.FunctionExpression,opts.FunctionExpression)}if(_typeof(opts.CallExpression)==="object"){Object.assign(options.CallExpression,opts.CallExpression)}if(typeof opts.ArrayExpression==="number"||typeof opts.ArrayExpression==="string"){options.ArrayExpression=opts.ArrayExpression}if(typeof opts.ObjectExpression==="number"||typeof opts.ObjectExpression==="string"){options.ObjectExpression=opts.ObjectExpression}}}var caseIndentStore={};function createErrorMessage(expectedAmount,actualSpaces,actualTabs){var expectedStatement=expectedAmount+" "+indentType+(expectedAmount===1?"":"s");var foundSpacesWord="space"+(actualSpaces===1?"":"s");var foundTabsWord="tab"+(actualTabs===1?"":"s");var foundStatement=void 0;if(actualSpaces>0&&actualTabs>0){foundStatement=actualSpaces+" "+foundSpacesWord+" and "+actualTabs+" "+foundTabsWord}else if(actualSpaces>0){foundStatement=indentType==="space"?actualSpaces:actualSpaces+" "+foundSpacesWord}else if(actualTabs>0){foundStatement=indentType==="tab"?actualTabs:actualTabs+" "+foundTabsWord}else{foundStatement="0"}return"Expected indentation of "+expectedStatement+" but found "+foundStatement+"."}function report(node,needed,gottenSpaces,gottenTabs,loc,isLastNodeCheck){if(gottenSpaces&&gottenTabs){return}var desiredIndent=(indentType==="space"?" ":"\t").repeat(needed);var textRange=isLastNodeCheck?[node.range[1]-node.loc.end.column,node.range[1]-node.loc.end.column+gottenSpaces+gottenTabs]:[node.range[0]-node.loc.start.column,node.range[0]-node.loc.start.column+gottenSpaces+gottenTabs];context.report({node:node,loc:loc,message:createErrorMessage(needed,gottenSpaces,gottenTabs),fix:function fix(fixer){return fixer.replaceTextRange(textRange,desiredIndent)}})}function getNodeIndent(node,byLastLine){var token=byLastLine?sourceCode.getLastToken(node):sourceCode.getFirstToken(node);var srcCharsBeforeNode=sourceCode.getText(token,token.loc.start.column).split("");var indentChars=srcCharsBeforeNode.slice(0,srcCharsBeforeNode.findIndex(function(char){return char!==" "&&char!=="\t"}));var spaces=indentChars.filter(function(char){return char===" "}).length;var tabs=indentChars.filter(function(char){return char==="\t"}).length;return{space:spaces,tab:tabs,goodChar:indentType==="space"?spaces:tabs,badChar:indentType==="space"?tabs:spaces}}function isNodeFirstInLine(node,byEndLocation){var firstToken=byEndLocation===true?sourceCode.getLastToken(node,1):sourceCode.getTokenBefore(node),startLine=byEndLocation===true?node.loc.end.line:node.loc.start.line,endLine=firstToken?firstToken.loc.end.line:-1;return startLine!==endLine}function checkNodeIndent(node,neededIndent){var actualIndent=getNodeIndent(node,false);if(node.type!=="ArrayExpression"&&node.type!=="ObjectExpression"&&(actualIndent.goodChar!==neededIndent||actualIndent.badChar!==0)&&isNodeFirstInLine(node)){report(node,neededIndent,actualIndent.space,actualIndent.tab)}if(node.type==="IfStatement"&&node.alternate){var elseToken=sourceCode.getTokenBefore(node.alternate);checkNodeIndent(elseToken,neededIndent);if(!isNodeFirstInLine(node.alternate)){checkNodeIndent(node.alternate,neededIndent)}}if(node.type==="TryStatement"&&node.handler){var catchToken=sourceCode.getFirstToken(node.handler);checkNodeIndent(catchToken,neededIndent)}if(node.type==="TryStatement"&&node.finalizer){var finallyToken=sourceCode.getTokenBefore(node.finalizer);checkNodeIndent(finallyToken,neededIndent)}if(node.type==="DoWhileStatement"){var whileToken=sourceCode.getTokenAfter(node.body);checkNodeIndent(whileToken,neededIndent)}}function checkNodesIndent(nodes,indent){nodes.forEach(function(node){return checkNodeIndent(node,indent)})}function checkLastNodeLineIndent(node,lastLineIndent){var lastToken=sourceCode.getLastToken(node);var endIndent=getNodeIndent(lastToken,true);if((endIndent.goodChar!==lastLineIndent||endIndent.badChar!==0)&&isNodeFirstInLine(node,true)){report(node,lastLineIndent,endIndent.space,endIndent.tab,{line:lastToken.loc.start.line,column:lastToken.loc.start.column},true)}}function checkLastReturnStatementLineIndent(node,firstLineIndent){var lastToken=sourceCode.getLastToken(node,astUtils.isClosingParenToken);var textBeforeClosingParenthesis=sourceCode.getText(lastToken,lastToken.loc.start.column).slice(0,-1);if(textBeforeClosingParenthesis.trim()){return}var endIndent=getNodeIndent(lastToken,true);if(endIndent.goodChar!==firstLineIndent){report(node,firstLineIndent,endIndent.space,endIndent.tab,{line:lastToken.loc.start.line,column:lastToken.loc.start.column},true)}}function checkFirstNodeLineIndent(node,firstLineIndent){var startIndent=getNodeIndent(node,false);if((startIndent.goodChar!==firstLineIndent||startIndent.badChar!==0)&&isNodeFirstInLine(node)){report(node,firstLineIndent,startIndent.space,startIndent.tab,{line:node.loc.start.line,column:node.loc.start.column})}}function getParentNodeByType(node,type,stopAtList){var parent=node.parent;if(!stopAtList){stopAtList=["Program"]}while(parent.type!==type&&stopAtList.indexOf(parent.type)===-1&&parent.type!=="Program"){parent=parent.parent}return parent.type===type?parent:null}function getVariableDeclaratorNode(node){return getParentNodeByType(node,"VariableDeclarator")}function isNodeInVarOnTop(node,varNode){return varNode&&varNode.parent.loc.start.line===node.loc.start.line&&varNode.parent.declarations.length>1}function isArgBeforeCalleeNodeMultiline(node){var parent=node.parent;if(parent.arguments.length>=2&&parent.arguments[1]===node){return parent.arguments[0].loc.end.line>parent.arguments[0].loc.start.line}return false}function isOuterIIFE(node){var parent=node.parent;var stmt=parent.parent;if(parent.type!=="CallExpression"||parent.callee!==node){return false}while(stmt.type==="UnaryExpression"&&(stmt.operator==="!"||stmt.operator==="~"||stmt.operator==="+"||stmt.operator==="-")||stmt.type==="AssignmentExpression"||stmt.type==="LogicalExpression"||stmt.type==="SequenceExpression"||stmt.type==="VariableDeclarator"){stmt=stmt.parent}return(stmt.type==="ExpressionStatement"||stmt.type==="VariableDeclaration")&&stmt.parent&&stmt.parent.type==="Program"}function checkIndentInFunctionBlock(node){var calleeNode=node.parent;var indent=void 0;if(calleeNode.parent&&(calleeNode.parent.type==="Property"||calleeNode.parent.type==="ArrayExpression")){indent=getNodeIndent(calleeNode,false).goodChar}else{indent=getNodeIndent(calleeNode).goodChar}if(calleeNode.parent.type==="CallExpression"){var calleeParent=calleeNode.parent;if(calleeNode.type!=="FunctionExpression"&&calleeNode.type!=="ArrowFunctionExpression"){if(calleeParent&&calleeParent.loc.start.line0){checkNodesIndent(node.body,indent)}checkLastNodeLineIndent(node,indent-functionOffset)}function isSingleLineNode(node){var lastToken=sourceCode.getLastToken(node),startLine=node.loc.start.line,endLine=lastToken.loc.end.line;return startLine===endLine}function isFirstArrayElementOnSameLine(node){if(node.type==="ArrayExpression"&&node.elements[0]){return node.elements[0].loc.start.line===node.loc.start.line&&node.elements[0].type==="ObjectExpression"}return false}function checkIndentInArrayOrObjectBlock(node){if(isSingleLineNode(node)){return}var elements=node.type==="ArrayExpression"?node.elements:node.properties;elements=elements.filter(function(elem){return elem!==null});var nodeIndent=void 0;var elementsIndent=void 0;var parentVarNode=getVariableDeclaratorNode(node);if(isNodeFirstInLine(node)){var parent=node.parent;nodeIndent=getNodeIndent(parent).goodChar;if(!parentVarNode||parentVarNode.loc.start.line!==node.loc.start.line){if(parent.type!=="VariableDeclarator"||parentVarNode===parentVarNode.parent.declarations[0]){if(parent.type==="VariableDeclarator"&&parentVarNode.loc.start.line===parent.loc.start.line){nodeIndent=nodeIndent+indentSize*options.VariableDeclarator[parentVarNode.parent.kind]}else if(parent.type==="ObjectExpression"||parent.type==="ArrayExpression"){var parentElements=node.parent.type==="ObjectExpression"?node.parent.properties:node.parent.elements;if(parentElements[0]&&parentElements[0].loc.start.line===parent.loc.start.line&&parentElements[0].loc.end.line!==parent.loc.start.line){}else if(typeof options[parent.type]==="number"){nodeIndent+=options[parent.type]*indentSize}else{nodeIndent=parentElements[0].loc.start.column}}else if(parent.type==="CallExpression"||parent.type==="NewExpression"){if(typeof options.CallExpression.arguments==="number"){nodeIndent+=options.CallExpression.arguments*indentSize}else if(options.CallExpression.arguments==="first"){if(parent.arguments.indexOf(node)!==-1){nodeIndent=parent.arguments[0].loc.start.column}}else{nodeIndent+=indentSize}}else if(parent.type==="LogicalExpression"||parent.type==="ArrowFunctionExpression"){nodeIndent+=indentSize}}}else if(!parentVarNode&&!isFirstArrayElementOnSameLine(parent)&&parent.type!=="MemberExpression"&&parent.type!=="ExpressionStatement"&&parent.type!=="AssignmentExpression"&&parent.type!=="Property"){nodeIndent=nodeIndent+indentSize}checkFirstNodeLineIndent(node,nodeIndent)}else{nodeIndent=getNodeIndent(node).goodChar}if(options[node.type]==="first"){elementsIndent=elements.length?elements[0].loc.start.column:0}else{elementsIndent=nodeIndent+indentSize*options[node.type]}if(isNodeInVarOnTop(node,parentVarNode)){elementsIndent+=indentSize*options.VariableDeclarator[parentVarNode.parent.kind]}checkNodesIndent(elements,elementsIndent);if(elements.length>0){if(elements[elements.length-1].loc.end.line===node.loc.end.line){return}}checkLastNodeLineIndent(node,nodeIndent+(isNodeInVarOnTop(node,parentVarNode)?options.VariableDeclarator[parentVarNode.parent.kind]*indentSize:0))}function isNodeBodyBlock(node){return node.type==="BlockStatement"||node.type==="ClassBody"||node.body&&node.body.type==="BlockStatement"||node.consequent&&node.consequent.type==="BlockStatement"}function blockIndentationCheck(node){if(isSingleLineNode(node)){return}if(node.parent&&(node.parent.type==="FunctionExpression"||node.parent.type==="FunctionDeclaration"||node.parent.type==="ArrowFunctionExpression")){checkIndentInFunctionBlock(node);return}var indent=void 0;var nodesToCheck=[];var statementsWithProperties=["IfStatement","WhileStatement","ForStatement","ForInStatement","ForOfStatement","DoWhileStatement","ClassDeclaration","TryStatement"];if(node.parent&&statementsWithProperties.indexOf(node.parent.type)!==-1&&isNodeBodyBlock(node)){indent=getNodeIndent(node.parent).goodChar}else if(node.parent&&node.parent.type==="CatchClause"){indent=getNodeIndent(node.parent.parent).goodChar}else{indent=getNodeIndent(node).goodChar}if(node.type==="IfStatement"&&node.consequent.type!=="BlockStatement"){nodesToCheck=[node.consequent]}else if(Array.isArray(node.body)){nodesToCheck=node.body}else{nodesToCheck=[node.body]}if(nodesToCheck.length>0){checkNodesIndent(nodesToCheck,indent+indentSize)}if(node.type==="BlockStatement"){checkLastNodeLineIndent(node,indent)}}function filterOutSameLineVars(node){return node.declarations.reduce(function(finalCollection,elem){var lastElem=finalCollection[finalCollection.length-1];if(elem.loc.start.line!==node.loc.start.line&&!lastElem||lastElem&&lastElem.loc.start.line!==elem.loc.start.line){finalCollection.push(elem)}return finalCollection},[])}function checkIndentInVariableDeclarations(node){var elements=filterOutSameLineVars(node);var nodeIndent=getNodeIndent(node).goodChar;var lastElement=elements[elements.length-1];var elementsIndent=nodeIndent+indentSize*options.VariableDeclarator[node.kind];checkNodesIndent(elements,elementsIndent);if(sourceCode.getLastToken(node).loc.end.line<=lastElement.loc.end.line){return}var tokenBeforeLastElement=sourceCode.getTokenBefore(lastElement);if(tokenBeforeLastElement.value===","){checkLastNodeLineIndent(node,getNodeIndent(tokenBeforeLastElement).goodChar)}else{checkLastNodeLineIndent(node,elementsIndent-indentSize)}}function blockLessNodes(node){if(node.body.type!=="BlockStatement"){blockIndentationCheck(node)}}function expectedCaseIndent(node,switchIndent){var switchNode=node.type==="SwitchStatement"?node:node.parent;var caseIndent=void 0;if(caseIndentStore[switchNode.loc.start.line]){return caseIndentStore[switchNode.loc.start.line]}if(typeof switchIndent==="undefined"){switchIndent=getNodeIndent(switchNode).goodChar}if(switchNode.cases.length>0&&options.SwitchCase===0){caseIndent=switchIndent}else{caseIndent=switchIndent+indentSize*options.SwitchCase}caseIndentStore[switchNode.loc.start.line]=caseIndent;return caseIndent}function isWrappedInParenthesis(node){var regex=/^return\s*?\(\s*?\);*?/;var statementWithoutArgument=sourceCode.getText(node).replace(sourceCode.getText(node.argument),"");return regex.test(statementWithoutArgument)}return{Program:function Program(node){if(node.body.length>0){checkNodesIndent(node.body,getNodeIndent(node).goodChar)}},ClassBody:blockIndentationCheck,BlockStatement:blockIndentationCheck,WhileStatement:blockLessNodes,ForStatement:blockLessNodes,ForInStatement:blockLessNodes,ForOfStatement:blockLessNodes,DoWhileStatement:blockLessNodes,IfStatement:function IfStatement(node){if(node.consequent.type!=="BlockStatement"&&node.consequent.loc.start.line>node.loc.start.line){blockIndentationCheck(node)}},VariableDeclaration:function VariableDeclaration(node){if(node.declarations[node.declarations.length-1].loc.start.line>node.declarations[0].loc.start.line){checkIndentInVariableDeclarations(node)}},ObjectExpression:function ObjectExpression(node){checkIndentInArrayOrObjectBlock(node)},ArrayExpression:function ArrayExpression(node){checkIndentInArrayOrObjectBlock(node)},MemberExpression:function MemberExpression(node){if(typeof options.MemberExpression==="undefined"){return}if(isSingleLineNode(node)){return}if(getParentNodeByType(node,"VariableDeclarator",["FunctionExpression","ArrowFunctionExpression"])){return}if(getParentNodeByType(node,"AssignmentExpression",["FunctionExpression"])){return}var propertyIndent=getNodeIndent(node).goodChar+indentSize*options.MemberExpression;var checkNodes=[node.property];var dot=context.getTokenBefore(node.property);if(dot.type==="Punctuator"&&dot.value==="."){checkNodes.push(dot)}checkNodesIndent(checkNodes,propertyIndent)},SwitchStatement:function SwitchStatement(node){var switchIndent=getNodeIndent(node).goodChar;var caseIndent=expectedCaseIndent(node,switchIndent);checkNodesIndent(node.cases,caseIndent);checkLastNodeLineIndent(node,switchIndent)},SwitchCase:function SwitchCase(node){if(isSingleLineNode(node)){return}var caseIndent=expectedCaseIndent(node);checkNodesIndent(node.consequent,caseIndent+indentSize)},FunctionDeclaration:function FunctionDeclaration(node){if(isSingleLineNode(node)){return}if(options.FunctionDeclaration.parameters==="first"&&node.params.length){checkNodesIndent(node.params.slice(1),node.params[0].loc.start.column)}else if(options.FunctionDeclaration.parameters!==null){checkNodesIndent(node.params,getNodeIndent(node).goodChar+indentSize*options.FunctionDeclaration.parameters)}},FunctionExpression:function FunctionExpression(node){if(isSingleLineNode(node)){return}if(options.FunctionExpression.parameters==="first"&&node.params.length){checkNodesIndent(node.params.slice(1),node.params[0].loc.start.column)}else if(options.FunctionExpression.parameters!==null){checkNodesIndent(node.params,getNodeIndent(node).goodChar+indentSize*options.FunctionExpression.parameters)}},ReturnStatement:function ReturnStatement(node){if(isSingleLineNode(node)){return}var firstLineIndent=getNodeIndent(node).goodChar;if(isWrappedInParenthesis(node)){checkLastReturnStatementLineIndent(node,firstLineIndent)}else{checkNodeIndent(node,firstLineIndent)}},CallExpression:function CallExpression(node){if(isSingleLineNode(node)){return}if(options.CallExpression.arguments==="first"&&node.arguments.length){checkNodesIndent(node.arguments.slice(1),node.arguments[0].loc.start.column)}else if(options.CallExpression.arguments!==null){checkNodesIndent(node.arguments,getNodeIndent(node).goodChar+indentSize*options.CallExpression.arguments)}}}}}},{"../ast-utils":70}],127:[function(require,module,exports){"use strict";var _createClass=function(){function defineProperties(target,props){for(var i=0;i0){foundStatement=indentType==="space"?actualSpaces:actualSpaces+" "+foundSpacesWord}else if(actualTabs>0){foundStatement=indentType==="tab"?actualTabs:actualTabs+" "+foundTabsWord}else{foundStatement="0"}return"Expected indentation of "+expectedStatement+" but found "+foundStatement+"."}function report(token,neededIndentLevel){var actualIndent=Array.from(tokenInfo.getTokenIndent(token));var numSpaces=actualIndent.filter(function(char){return char===" "}).length;var numTabs=actualIndent.filter(function(char){return char==="\t"}).length;var neededChars=neededIndentLevel*indentSize;context.report({node:token,message:createErrorMessage(neededChars,numSpaces,numTabs),loc:{start:{line:token.loc.start.line,column:0},end:{line:token.loc.start.line,column:token.loc.start.column}},fix:function fix(fixer){var range=[token.range[0]-token.loc.start.column,token.range[0]];var newText=(indentType==="space"?" ":"\t").repeat(neededChars);return fixer.replaceTextRange(range,newText)}})}function validateTokenIndent(token,desiredIndentLevel){var indentation=tokenInfo.getTokenIndent(token);var expectedChar=indentType==="space"?" ":"\t";return indentation===expectedChar.repeat(desiredIndentLevel*indentSize)||indentation.includes(" ")&&indentation.includes("\t")}function isOuterIIFE(node){if(!node.parent||node.parent.type!=="CallExpression"||node.parent.callee!==node){return false}var statement=node.parent&&node.parent.parent;while(statement.type==="UnaryExpression"&&["!","~","+","-"].indexOf(statement.operator)>-1||statement.type==="AssignmentExpression"||statement.type==="LogicalExpression"||statement.type==="SequenceExpression"||statement.type==="VariableDeclarator"){statement=statement.parent}return(statement.type==="ExpressionStatement"||statement.type==="VariableDeclaration")&&statement.parent.type==="Program"}function getTokensAndComments(node){return sourceCode.getTokens(node,{includeComments:true})}function addElementListIndent(elements,startToken,endToken,offset){function getFirstToken(element){var token=sourceCode.getTokenBefore(element);while(astUtils.isOpeningParenToken(token)&&token!==startToken){token=sourceCode.getTokenBefore(token)}return sourceCode.getTokenAfter(token)}offsets.setDesiredOffsets(sourceCode.getTokensBetween(startToken,endToken,{includeComments:true}),startToken,offset==="first"?1:offset);offsets.matchIndentOf(startToken,endToken);if(offset==="first"&&elements.length&&!elements[0]){return}elements.forEach(function(element,index){if(offset==="off"){offsets.ignoreToken(getFirstToken(element))}if(index===0||!element){return}if(offset==="first"&&tokenInfo.isFirstTokenOfLine(getFirstToken(element))){offsets.matchOffsetOf(getFirstToken(elements[0]),getFirstToken(element))}else{var previousElement=elements[index-1];var firstTokenOfPreviousElement=previousElement&&getFirstToken(previousElement);if(previousElement&&sourceCode.getLastToken(previousElement).loc.start.line>startToken.loc.end.line){offsets.matchIndentOf(firstTokenOfPreviousElement,getFirstToken(element))}}})}function addBlockIndent(node){var blockIndentLevel=void 0;if(node.parent&&isOuterIIFE(node.parent)){blockIndentLevel=options.outerIIFEBody}else if(node.parent&&(node.parent.type==="FunctionExpression"||node.parent.type==="ArrowFunctionExpression")){blockIndentLevel=options.FunctionExpression.body}else if(node.parent&&node.parent.type==="FunctionDeclaration"){blockIndentLevel=options.FunctionDeclaration.body}else{blockIndentLevel=1}if(!astUtils.STATEMENT_LIST_PARENTS.has(node.parent.type)){offsets.matchIndentOf(sourceCode.getFirstToken(node.parent),sourceCode.getFirstToken(node))}addElementListIndent(node.body,sourceCode.getFirstToken(node),sourceCode.getLastToken(node),blockIndentLevel)}function addArrayOrObjectIndent(node){var tokens=getTokensAndComments(node);addElementListIndent(node.elements||node.properties,tokens[0],tokens[tokens.length-1],options[node.type])}function addBlocklessNodeIndent(node){if(node.type!=="BlockStatement"){var lastParentToken=sourceCode.getTokenBefore(node,astUtils.isNotOpeningParenToken);var bodyTokens=getTokensAndComments(node);while(astUtils.isOpeningParenToken(sourceCode.getTokenBefore(bodyTokens[0]))&&astUtils.isClosingParenToken(sourceCode.getTokenAfter(bodyTokens[bodyTokens.length-1]))){bodyTokens=[sourceCode.getTokenBefore(bodyTokens[0])].concat(bodyTokens).concat(sourceCode.getTokenAfter(bodyTokens[bodyTokens.length-1]))}offsets.setDesiredOffsets(bodyTokens,lastParentToken,1);var lastToken=sourceCode.getLastToken(node);if(astUtils.isSemicolonToken(lastToken)){offsets.matchIndentOf(lastParentToken,lastToken)}}}function addFunctionParamsIndent(node,paramsIndent){var openingParen=node.params.length?sourceCode.getTokenBefore(node.params[0]):sourceCode.getTokenBefore(node.body,1);if(!openingParen){return}var closingParen=sourceCode.getTokenBefore(node.body);var nodeTokens=getTokensAndComments(node);var openingParenIndex=lodash.sortedIndexBy(nodeTokens,openingParen,function(token){return token.range[0]});var closingParenIndex=lodash.sortedIndexBy(nodeTokens,closingParen,function(token){return token.range[0]});parameterParens.add(nodeTokens[openingParenIndex]);parameterParens.add(nodeTokens[closingParenIndex]);addElementListIndent(node.params,nodeTokens[openingParenIndex],nodeTokens[closingParenIndex],paramsIndent)}function addBinaryOrLogicalExpressionIndent(node){var tokens=getTokensAndComments(node);var operator=sourceCode.getFirstTokenBetween(node.left,node.right,function(token){return token.value===node.operator});var firstTokenAfterOperator=sourceCode.getTokenAfter(operator);var tokensAfterOperator=tokens.slice(lodash.sortedIndexBy(tokens,firstTokenAfterOperator,function(token){return token.range[0]}));offsets.ignoreToken(operator);offsets.ignoreToken(tokensAfterOperator[0]);offsets.setDesiredOffsets(tokensAfterOperator,tokensAfterOperator[0],1)}function addFunctionCallIndent(node){var openingParen=void 0;if(node.arguments.length){openingParen=sourceCode.getFirstTokenBetween(node.callee,node.arguments[0],astUtils.isOpeningParenToken)}else{openingParen=sourceCode.getLastToken(node,1)}var closingParen=sourceCode.getLastToken(node);parameterParens.add(openingParen);parameterParens.add(closingParen);offsets.matchIndentOf(sourceCode.getLastToken(node.callee),openingParen);addElementListIndent(node.arguments,openingParen,closingParen,options.CallExpression.arguments)}function addClassIndent(node){if(node.superClass){var classToken=sourceCode.getFirstToken(node);var extendsToken=sourceCode.getTokenBefore(node.superClass,astUtils.isNotOpeningParenToken);offsets.setDesiredOffset(extendsToken,classToken,1);offsets.setDesiredOffsets(sourceCode.getTokensBetween(extendsToken,node.body,{includeComments:true}),classToken,1)}}function addParensIndent(tokens){var parenStack=[];var parenPairs=[];tokens.forEach(function(nextToken){if(astUtils.isOpeningParenToken(nextToken)){parenStack.push(nextToken)}else if(astUtils.isClosingParenToken(nextToken)){parenPairs.unshift({left:parenStack.pop(),right:nextToken})}});parenPairs.forEach(function(pair){var leftParen=pair.left;var rightParen=pair.right;if(!parameterParens.has(leftParen)&&!parameterParens.has(rightParen)){var parenthesizedTokens=new Set(sourceCode.getTokensBetween(leftParen,rightParen));parenthesizedTokens.forEach(function(token){if(!parenthesizedTokens.has(offsets.getFirstDependency(token))){offsets.setDesiredOffset(token,leftParen,1)}});offsets.setDesiredOffset(sourceCode.getTokenAfter(leftParen),leftParen,1)}offsets.matchIndentOf(leftParen,rightParen)})}function ignoreUnknownNode(node){var unknownNodeTokens=new Set(getTokensAndComments(node));unknownNodeTokens.forEach(function(token){if(!unknownNodeTokens.has(offsets.getFirstDependency(token))){var firstTokenOfLine=tokenInfo.getFirstTokenOfLine(token);if(token===firstTokenOfLine){offsets.ignoreToken(token)}else{offsets.matchIndentOf(firstTokenOfLine,token)}}})}function checkForUnknownNode(node){var isNodeUnknown=!KNOWN_NODES.has(node.type);if(isNodeUnknown){ignoreUnknownNode(node)}}function isFirstTokenOfStatement(token,leafNode){var node=leafNode;while(node.parent&&!node.parent.type.endsWith("Statement")&&!node.parent.type.endsWith("Declaration")){node=node.parent}node=node.parent;return!node||node.range[0]===token.range[0]}return{ArrayExpression:addArrayOrObjectIndent,ArrayPattern:addArrayOrObjectIndent,ArrowFunctionExpression:function ArrowFunctionExpression(node){addFunctionParamsIndent(node,options.FunctionExpression.parameters);addBlocklessNodeIndent(node.body);var arrowToken=void 0;if(node.params.length){arrowToken=sourceCode.getTokenAfter(node.params[node.params.length-1],astUtils.isArrowToken)}else{arrowToken=sourceCode.getFirstToken(node,astUtils.isArrowToken)}offsets.matchIndentOf(sourceCode.getFirstToken(node),arrowToken)},AssignmentExpression:function AssignmentExpression(node){var operator=sourceCode.getFirstTokenBetween(node.left,node.right,function(token){return token.value===node.operator});var nodeTokens=getTokensAndComments(node);var tokensFromOperator=nodeTokens.slice(lodash.sortedIndexBy(nodeTokens,operator,function(token){return token.range[0]}));offsets.setDesiredOffsets(tokensFromOperator,sourceCode.getFirstToken(node.left),1);offsets.ignoreToken(tokensFromOperator[0]);offsets.ignoreToken(tokensFromOperator[1])},BinaryExpression:addBinaryOrLogicalExpressionIndent,BlockStatement:addBlockIndent,CallExpression:addFunctionCallIndent,ClassBody:addBlockIndent,ClassDeclaration:addClassIndent,ClassExpression:addClassIndent,ConditionalExpression:function ConditionalExpression(node){var firstToken=sourceCode.getFirstToken(node);if(!options.flatTernaryExpressions||!astUtils.isTokenOnSameLine(node.test,node.consequent)||isFirstTokenOfStatement(firstToken,node)){var questionMarkToken=sourceCode.getFirstTokenBetween(node.test,node.consequent,function(token){return token.type==="Punctuator"&&token.value==="?"});var colonToken=sourceCode.getFirstTokenBetween(node.consequent,node.alternate,function(token){return token.type==="Punctuator"&&token.value===":"});var consequentTokens=sourceCode.getTokensBetween(questionMarkToken,colonToken,{includeComments:true});var alternateTokens=sourceCode.getTokensAfter(colonToken,function(token){return token.range[1]<=node.range[1]});offsets.setDesiredOffset(questionMarkToken,firstToken,1);offsets.setDesiredOffset(colonToken,firstToken,1);offsets.setDesiredOffset(consequentTokens[0],firstToken,1);if(consequentTokens[consequentTokens.length-1].loc.end.line===alternateTokens[0].loc.start.line){offsets.matchIndentOf(consequentTokens[0],alternateTokens[0])}else{offsets.setDesiredOffset(alternateTokens[0],firstToken,1)}offsets.setDesiredOffsets(consequentTokens,consequentTokens[0],0);offsets.setDesiredOffsets(alternateTokens,alternateTokens[0],0)}},DoWhileStatement:function DoWhileStatement(node){return addBlocklessNodeIndent(node.body)},ExportNamedDeclaration:function ExportNamedDeclaration(node){if(node.declaration===null){var tokensInNode=getTokensAndComments(node);var closingCurly=sourceCode.getLastToken(node,astUtils.isClosingBraceToken);var closingCurlyIndex=lodash.sortedIndexBy(tokensInNode,closingCurly,function(token){return token.range[0]});addElementListIndent(node.specifiers,sourceCode.getFirstToken(node,{skip:1}),closingCurly,1);if(node.source){offsets.setDesiredOffsets(tokensInNode.slice(closingCurlyIndex+1),sourceCode.getFirstToken(node),1)}}},ForInStatement:function ForInStatement(node){return addBlocklessNodeIndent(node.body)},ForOfStatement:function ForOfStatement(node){return addBlocklessNodeIndent(node.body)},ForStatement:function ForStatement(node){var forOpeningParen=sourceCode.getFirstToken(node,1);if(node.init){offsets.setDesiredOffsets(getTokensAndComments(node.init),forOpeningParen,1)}if(node.test){offsets.setDesiredOffsets(getTokensAndComments(node.test),forOpeningParen,1)}if(node.update){offsets.setDesiredOffsets(getTokensAndComments(node.update),forOpeningParen,1)}addBlocklessNodeIndent(node.body)},FunctionDeclaration:function FunctionDeclaration(node){addFunctionParamsIndent(node,options.FunctionDeclaration.parameters)},FunctionExpression:function FunctionExpression(node){addFunctionParamsIndent(node,options.FunctionExpression.parameters)},IfStatement:function IfStatement(node){addBlocklessNodeIndent(node.consequent);if(node.alternate&&node.alternate.type!=="IfStatement"){addBlocklessNodeIndent(node.alternate)}},ImportDeclaration:function ImportDeclaration(node){if(node.specifiers.some(function(specifier){return specifier.type==="ImportSpecifier"})){var openingCurly=sourceCode.getFirstToken(node,astUtils.isOpeningBraceToken);var closingCurly=sourceCode.getLastToken(node,astUtils.isClosingBraceToken);addElementListIndent(node.specifiers.filter(function(specifier){return specifier.type==="ImportSpecifier"}),openingCurly,closingCurly,1)}var fromToken=sourceCode.getLastToken(node,function(token){return token.type==="Identifier"&&token.value==="from"});if(fromToken){var tokensToOffset=sourceCode.getTokensBetween(fromToken,sourceCode.getLastToken(node),1);offsets.setDesiredOffsets(tokensToOffset,sourceCode.getFirstToken(node),1)}},LogicalExpression:addBinaryOrLogicalExpressionIndent,"MemberExpression, JSXMemberExpression":function MemberExpressionJSXMemberExpression(node){var firstNonObjectToken=sourceCode.getFirstTokenBetween(node.object,node.property,astUtils.isNotClosingParenToken);var secondNonObjectToken=sourceCode.getTokenAfter(firstNonObjectToken);var tokenBeforeObject=sourceCode.getTokenBefore(node.object,function(token){return astUtils.isNotOpeningParenToken(token)||parameterParens.has(token)});var firstObjectToken=tokenBeforeObject?sourceCode.getTokenAfter(tokenBeforeObject):sourceCode.ast.tokens[0];var lastObjectToken=sourceCode.getTokenBefore(firstNonObjectToken);var firstPropertyToken=node.computed?firstNonObjectToken:secondNonObjectToken;if(node.computed){offsets.matchIndentOf(firstNonObjectToken,sourceCode.getLastToken(node));offsets.setDesiredOffsets(getTokensAndComments(node.property),firstNonObjectToken,1)}var offsetBase=lastObjectToken.loc.end.line===firstPropertyToken.loc.start.line?lastObjectToken:firstObjectToken;if(typeof options.MemberExpression==="number"){offsets.setDesiredOffset(firstNonObjectToken,offsetBase,options.MemberExpression);offsets.setDesiredOffset(secondNonObjectToken,node.computed?firstNonObjectToken:offsetBase,options.MemberExpression)}else{offsets.ignoreToken(firstNonObjectToken);offsets.ignoreToken(secondNonObjectToken);offsets.matchIndentOf(offsetBase,firstNonObjectToken);offsets.matchIndentOf(firstNonObjectToken,secondNonObjectToken)}},NewExpression:function NewExpression(node){if(node.arguments.length>0||astUtils.isClosingParenToken(sourceCode.getLastToken(node))&&astUtils.isOpeningParenToken(sourceCode.getLastToken(node,1))){addFunctionCallIndent(node)}},ObjectExpression:addArrayOrObjectIndent,ObjectPattern:addArrayOrObjectIndent,Property:function Property(node){if(!node.computed&&!node.shorthand&&!node.method&&node.kind==="init"){var colon=sourceCode.getFirstTokenBetween(node.key,node.value,astUtils.isColonToken);offsets.ignoreToken(sourceCode.getTokenAfter(colon))}},SwitchStatement:function SwitchStatement(node){var tokens=getTokensAndComments(node);var openingCurlyIndex=tokens.findIndex(function(token){return token.range[0]>=node.discriminant.range[1]&&astUtils.isOpeningBraceToken(token)});offsets.setDesiredOffsets(tokens.slice(openingCurlyIndex+1,-1),tokens[openingCurlyIndex],options.SwitchCase);var caseKeywords=new WeakSet(node.cases.map(function(switchCase){return sourceCode.getFirstToken(switchCase)}));var lastCaseKeyword=node.cases.length&&sourceCode.getFirstToken(node.cases[node.cases.length-1]);var casesWithBlocks=new WeakSet(node.cases.filter(function(switchCase){return switchCase.consequent.length===1&&switchCase.consequent[0].type==="BlockStatement"}).map(function(switchCase){return sourceCode.getFirstToken(switchCase)}));var lastAnchor=tokens[openingCurlyIndex];tokens.slice(openingCurlyIndex+1,-1).forEach(function(token){if(caseKeywords.has(token)){lastAnchor=token}else if(lastAnchor===lastCaseKeyword&&(token.type==="Line"||token.type==="Block")){offsets.ignoreToken(token)}else if(!casesWithBlocks.has(lastAnchor)){offsets.setDesiredOffset(token,lastAnchor,1)}})},TemplateLiteral:function TemplateLiteral(node){var tokens=getTokensAndComments(node);offsets.setDesiredOffsets(getTokensAndComments(node.quasis[0]),tokens[0],0);node.expressions.forEach(function(expression,index){var previousQuasi=node.quasis[index];var nextQuasi=node.quasis[index+1];var tokenToAlignFrom=previousQuasi.loc.start.line===previousQuasi.loc.end.line?sourceCode.getFirstToken(previousQuasi):null;offsets.setDesiredOffsets(sourceCode.getTokensBetween(previousQuasi,nextQuasi),tokenToAlignFrom,1);offsets.setDesiredOffset(sourceCode.getFirstToken(nextQuasi),tokenToAlignFrom,0)})},VariableDeclaration:function VariableDeclaration(node){var variableIndent=options.VariableDeclarator.hasOwnProperty(node.kind)?options.VariableDeclarator[node.kind]:DEFAULT_VARIABLE_INDENT;offsets.setDesiredOffsets(getTokensAndComments(node),sourceCode.getFirstToken(node),variableIndent);var lastToken=sourceCode.getLastToken(node);if(astUtils.isSemicolonToken(lastToken)){offsets.ignoreToken(lastToken)}},VariableDeclarator:function VariableDeclarator(node){if(node.init){var equalOperator=sourceCode.getTokenBefore(node.init,astUtils.isNotOpeningParenToken);var tokenAfterOperator=sourceCode.getTokenAfter(equalOperator);offsets.ignoreToken(equalOperator);offsets.ignoreToken(tokenAfterOperator);offsets.matchIndentOf(equalOperator,tokenAfterOperator);offsets.matchIndentOf(sourceCode.getFirstToken(node),equalOperator)}},"VariableDeclarator:exit":function VariableDeclaratorExit(node){if(node.parent.declarations.length>1&&node.parent.declarations[0]===node&&node.init){var valueTokens=new Set(getTokensAndComments(node.init));valueTokens.forEach(function(token){if(!valueTokens.has(offsets.getFirstDependency(token))){offsets.increaseOffset(token,options.VariableDeclarator[node.parent.kind])}})}},WhileStatement:function WhileStatement(node){return addBlocklessNodeIndent(node.body)},"*:exit":checkForUnknownNode,"JSXAttribute[value]":function JSXAttributeValue(node){var equalsToken=sourceCode.getFirstTokenBetween(node.name,node.value,function(token){return token.type==="Punctuator"&&token.value==="="});var firstNameToken=sourceCode.getFirstToken(node.name);offsets.setDesiredOffset(equalsToken,firstNameToken,1);offsets.setDesiredOffset(sourceCode.getFirstToken(node.value),firstNameToken,1)},JSXElement:function JSXElement(node){if(node.closingElement){addElementListIndent(node.children,sourceCode.getFirstToken(node.openingElement),sourceCode.getFirstToken(node.closingElement),1)}},JSXOpeningElement:function JSXOpeningElement(node){var firstToken=sourceCode.getFirstToken(node);var closingToken=void 0;if(node.selfClosing){closingToken=sourceCode.getLastToken(node,{skip:1});offsets.matchIndentOf(closingToken,sourceCode.getLastToken(node))}else{closingToken=sourceCode.getLastToken(node)}offsets.setDesiredOffsets(getTokensAndComments(node.name),sourceCode.getFirstToken(node));addElementListIndent(node.attributes,firstToken,closingToken,1)},JSXClosingElement:function JSXClosingElement(node){var firstToken=sourceCode.getFirstToken(node);offsets.setDesiredOffsets(getTokensAndComments(node.name),firstToken,1);offsets.matchIndentOf(firstToken,sourceCode.getLastToken(node))},JSXExpressionContainer:function JSXExpressionContainer(node){var openingCurly=sourceCode.getFirstToken(node);var firstExpressionToken=sourceCode.getFirstToken(node.expression);if(firstExpressionToken){offsets.setDesiredOffset(firstExpressionToken,openingCurly,1)}offsets.matchIndentOf(openingCurly,sourceCode.getLastToken(node))},"Program:exit":function ProgramExit(){addParensIndent(sourceCode.ast.tokens);var precedingTokens=sourceCode.ast.comments.reduce(function(commentMap,comment){var tokenOrCommentBefore=sourceCode.getTokenBefore(comment,{includeComments:true});return commentMap.set(comment,commentMap.has(tokenOrCommentBefore)?commentMap.get(tokenOrCommentBefore):tokenOrCommentBefore)},new WeakMap);sourceCode.lines.forEach(function(line,lineIndex){var lineNumber=lineIndex+1;if(!tokenInfo.firstTokensByLineNumber.has(lineNumber)){return}var firstTokenOfLine=tokenInfo.firstTokensByLineNumber.get(lineNumber);if(firstTokenOfLine.loc.start.line!==lineNumber){return}if(validateTokenIndent(firstTokenOfLine,offsets.getDesiredIndent(firstTokenOfLine))){return}if(astUtils.isCommentToken(firstTokenOfLine)){var tokenBefore=precedingTokens.get(firstTokenOfLine);var tokenAfter=tokenBefore?sourceCode.getTokenAfter(tokenBefore):sourceCode.ast.tokens[0];if(tokenBefore&&validateTokenIndent(firstTokenOfLine,offsets.getDesiredIndent(tokenBefore))||tokenAfter&&validateTokenIndent(firstTokenOfLine,offsets.getDesiredIndent(tokenAfter))){return}}report(firstTokenOfLine,offsets.getDesiredIndent(firstTokenOfLine))})}}}}},{"../ast-utils":70,lodash:49}],128:[function(require,module,exports){"use strict";function isForLoop(block){return block.type==="ForInStatement"||block.type==="ForOfStatement"||block.type==="ForStatement"}function isInitialized(node){var declaration=node.parent;var block=declaration.parent;if(isForLoop(block)){if(block.type==="ForStatement"){return block.init===declaration}return block.left===declaration}return Boolean(node.init)}module.exports={meta:{docs:{description:"require or disallow initialization in variable declarations",category:"Variables",recommended:false},schema:{anyOf:[{type:"array",items:[{enum:["always"]}],minItems:0,maxItems:1},{type:"array",items:[{enum:["never"]},{type:"object",properties:{ignoreForLoopInit:{type:"boolean"}},additionalProperties:false}],minItems:0,maxItems:2}]}},create:function create(context){var MODE_ALWAYS="always",MODE_NEVER="never";var mode=context.options[0]||MODE_ALWAYS;var params=context.options[1]||{};return{"VariableDeclaration:exit":function VariableDeclarationExit(node){var kind=node.kind,declarations=node.declarations;for(var i=0;i1){return false}}return true}return false}function isKeyValueProperty(property){return!(property.method||property.shorthand||property.kind!=="init"||property.type!=="Property")}function getLastTokenBeforeColon(node){var colonToken=sourceCode.getTokenAfter(node,astUtils.isColonToken);return sourceCode.getTokenBefore(colonToken)}function getNextColon(node){return sourceCode.getTokenAfter(node,astUtils.isColonToken)}function getKey(property){var key=property.key;if(property.computed){return sourceCode.getText().slice(key.range[0],key.range[1])}return property.key.name||property.key.value}function report(property,side,whitespace,expected,mode){var diff=whitespace.length-expected,nextColon=getNextColon(property.key),tokenBeforeColon=sourceCode.getTokenBefore(nextColon,{includeComments:true}),tokenAfterColon=sourceCode.getTokenAfter(nextColon,{includeComments:true}),isKeySide=side==="key",locStart=isKeySide?tokenBeforeColon.loc.start:tokenAfterColon.loc.start,isExtra=diff>0,diffAbs=Math.abs(diff),spaces=Array(diffAbs+1).join(" ");var fix=void 0;if((diff&&mode==="strict"||diff<0&&mode==="minimum"||diff>0&&!expected&&mode==="minimum")&&!(expected&&containsLineTerminator(whitespace))){if(isExtra){var range=void 0;if(isKeySide){range=[tokenBeforeColon.end,tokenBeforeColon.end+diffAbs]}else{range=[tokenAfterColon.start-diffAbs,tokenAfterColon.start]}fix=function fix(fixer){return fixer.removeRange(range)}}else{if(isKeySide){fix=function fix(fixer){return fixer.insertTextAfter(tokenBeforeColon,spaces)}}else{fix=function fix(fixer){return fixer.insertTextBefore(tokenAfterColon,spaces)}}}context.report({node:property[side],loc:locStart,message:messages[side],data:{error:isExtra?"Extra":"Missing",computed:property.computed?"computed ":"",key:getKey(property)},fix:fix})}}function getKeyWidth(property){var startToken=sourceCode.getFirstToken(property);var endToken=getLastTokenBeforeColon(property.key);return endToken.range[1]-startToken.range[0]}function getPropertyWhitespace(property){var whitespace=/(\s*):(\s*)/.exec(sourceCode.getText().slice(property.key.range[1],property.value.range[0]));if(whitespace){return{beforeColon:whitespace[1],afterColon:whitespace[2]}}return null}function createGroups(node){if(node.properties.length===1){return[node.properties]}return node.properties.reduce(function(groups,property){var currentGroup=last(groups),prev=last(currentGroup);if(!prev||continuesPropertyGroup(prev,property)){currentGroup.push(property)}else{groups.push([property])}return groups},[[]])}function verifyGroupAlignment(properties){var length=properties.length,widths=properties.map(getKeyWidth),align=alignmentOptions.on;var targetWidth=Math.max.apply(null,widths),beforeColon=void 0,afterColon=void 0,mode=void 0;if(alignmentOptions&&length>1){beforeColon=alignmentOptions.beforeColon;afterColon=alignmentOptions.afterColon;mode=alignmentOptions.mode}else{beforeColon=multiLineOptions.beforeColon;afterColon=multiLineOptions.afterColon;mode=alignmentOptions.mode}targetWidth+=align==="colon"?beforeColon:afterColon;for(var i=0;i]$/;var NEXT_TOKEN=/^(?:[([{<~!]|\+\+?|--?)$/;var PREV_TOKEN_M=/^[)\]}>*]$/;var NEXT_TOKEN_M=/^[{*]$/;var TEMPLATE_OPEN_PAREN=/\$\{$/;var TEMPLATE_CLOSE_PAREN=/^\}/;var CHECK_TYPE=/^(?:JSXElement|RegularExpression|String|Template)$/;var KEYS=keywords.concat(["as","async","await","from","get","let","of","set","yield"]);(function(){KEYS.sort();for(var i=1;i=numLines){after=false}if(commentIsNotAlone){return}var previousTokenOrComment=sourceCode.getTokenBefore(token,{includeComments:true});var nextTokenOrComment=sourceCode.getTokenAfter(token,{includeComments:true});if(!exceptionStartAllowed&&before&&!lodash.includes(commentAndEmptyLines,prevLineNum)&&!(astUtils.isCommentToken(previousTokenOrComment)&&astUtils.isTokenOnSameLine(previousTokenOrComment,token))){var lineStart=token.range[0]-token.loc.start.column;var range=[lineStart,lineStart];context.report({node:token,message:"Expected line before comment.",fix:function fix(fixer){return fixer.insertTextBeforeRange(range,"\n")}})}if(!exceptionEndAllowed&&after&&!lodash.includes(commentAndEmptyLines,nextLineNum)&&!(astUtils.isCommentToken(nextTokenOrComment)&&astUtils.isTokenOnSameLine(token,nextTokenOrComment))){context.report({node:token,message:"Expected line after comment.",fix:function fix(fixer){return fixer.insertTextAfter(token,"\n")}})}}return{Program:function Program(){comments.forEach(function(token){if(token.type==="Line"){if(options.beforeLineComment||options.afterLineComment){checkForEmptyLine(token,{after:options.afterLineComment,before:options.beforeLineComment})}}else if(token.type==="Block"){if(options.beforeBlockComment||options.afterBlockComment){checkForEmptyLine(token,{after:options.afterBlockComment,before:options.beforeBlockComment})}}})}}}}},{"../ast-utils":70,lodash:49}],135:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"require or disallow newlines around directives",category:"Stylistic Issues",recommended:false,replacedBy:["padding-line-between-statements"]},schema:[{oneOf:[{enum:["always","never"]},{type:"object",properties:{before:{enum:["always","never"]},after:{enum:["always","never"]}},additionalProperties:false,minProperties:2}]}],fixable:"whitespace",deprecated:true},create:function create(context){var sourceCode=context.getSourceCode();var config=context.options[0]||"always";var expectLineBefore=typeof config==="string"?config:config.before;var expectLineAfter=typeof config==="string"?config:config.after;function hasNewlineBefore(node){var tokenBefore=sourceCode.getTokenBefore(node,{includeComments:true});var tokenLineBefore=tokenBefore?tokenBefore.loc.end.line:0;return node.loc.start.line-tokenLineBefore>=2}function getLastTokenOnLine(node){var lastToken=sourceCode.getLastToken(node);var secondToLastToken=sourceCode.getTokenBefore(lastToken);return astUtils.isSemicolonToken(lastToken)&&lastToken.loc.start.line>secondToLastToken.loc.end.line?secondToLastToken:lastToken}function hasNewlineAfter(node){var lastToken=getLastTokenOnLine(node);var tokenAfter=sourceCode.getTokenAfter(lastToken,{includeComments:true});return tokenAfter.loc.start.line-lastToken.loc.end.line>=2}function reportError(node,location,expected){context.report({node:node,message:'{{expected}} newline {{location}} "{{value}}" directive.',data:{expected:expected?"Expected":"Unexpected",value:node.expression.value,location:location},fix:function fix(fixer){var lastToken=getLastTokenOnLine(node);if(expected){return location==="before"?fixer.insertTextBefore(node,"\n"):fixer.insertTextAfter(lastToken,"\n")}return fixer.removeRange(location==="before"?[node.range[0]-1,node.range[0]]:[lastToken.range[1],lastToken.range[1]+1])}})}function checkDirectives(node){var directives=astUtils.getDirectivePrologue(node);if(!directives.length){return}var firstDirective=directives[0];var leadingComments=sourceCode.getCommentsBefore(firstDirective);if(leadingComments.length){if(expectLineBefore==="always"&&!hasNewlineBefore(firstDirective)){reportError(firstDirective,"before",true)}if(expectLineBefore==="never"&&hasNewlineBefore(firstDirective)){reportError(firstDirective,"before",false)}}else if(node.type==="Program"&&expectLineBefore==="never"&&!leadingComments.length&&hasNewlineBefore(firstDirective)){reportError(firstDirective,"before",false)}var lastDirective=directives[directives.length-1];var statements=node.type==="Program"?node.body:node.body.body;if(lastDirective===statements[statements.length-1]&&!lastDirective.trailingComments){return}if(expectLineAfter==="always"&&!hasNewlineAfter(lastDirective)){reportError(lastDirective,"after",true)}if(expectLineAfter==="never"&&hasNewlineAfter(lastDirective)){reportError(lastDirective,"after",false)}}return{Program:checkDirectives,FunctionDeclaration:checkDirectives,FunctionExpression:checkDirectives,ArrowFunctionExpression:checkDirectives}}}},{"../ast-utils":70}],136:[function(require,module,exports){"use strict";var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj};module.exports={meta:{docs:{description:"enforce a maximum depth that blocks can be nested",category:"Stylistic Issues",recommended:false},schema:[{oneOf:[{type:"integer",minimum:0},{type:"object",properties:{maximum:{type:"integer",minimum:0},max:{type:"integer",minimum:0}},additionalProperties:false}]}]},create:function create(context){var functionStack=[],option=context.options[0];var maxDepth=4;if((typeof option==="undefined"?"undefined":_typeof(option))==="object"&&option.hasOwnProperty("maximum")&&typeof option.maximum==="number"){maxDepth=option.maximum}if((typeof option==="undefined"?"undefined":_typeof(option))==="object"&&option.hasOwnProperty("max")&&typeof option.max==="number"){maxDepth=option.max}if(typeof option==="number"){maxDepth=option}function startFunction(){functionStack.push(0)}function endFunction(){functionStack.pop()}function pushBlock(node){var len=++functionStack[functionStack.length-1];if(len>maxDepth){context.report({node:node,message:"Blocks are nested too deeply ({{depth}}).",data:{depth:len}})}}function popBlock(){functionStack[functionStack.length-1]--}return{Program:startFunction,FunctionDeclaration:startFunction,FunctionExpression:startFunction,ArrowFunctionExpression:startFunction,IfStatement:function IfStatement(node){if(node.parent.type!=="IfStatement"){pushBlock(node)}},SwitchStatement:pushBlock,TryStatement:pushBlock,DoWhileStatement:pushBlock,WhileStatement:pushBlock,WithStatement:pushBlock,ForStatement:pushBlock,ForInStatement:pushBlock,ForOfStatement:pushBlock,"IfStatement:exit":popBlock,"SwitchStatement:exit":popBlock,"TryStatement:exit":popBlock,"DoWhileStatement:exit":popBlock,"WhileStatement:exit":popBlock,"WithStatement:exit":popBlock,"ForStatement:exit":popBlock,"ForInStatement:exit":popBlock,"ForOfStatement:exit":popBlock,"FunctionDeclaration:exit":endFunction,"FunctionExpression:exit":endFunction,"ArrowFunctionExpression:exit":endFunction,"Program:exit":endFunction}}}},{}],137:[function(require,module,exports){"use strict";var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj};var OPTIONS_SCHEMA={type:"object",properties:{code:{type:"integer",minimum:0},comments:{type:"integer",minimum:0},tabWidth:{type:"integer",minimum:0},ignorePattern:{type:"string"},ignoreComments:{type:"boolean"},ignoreStrings:{type:"boolean"},ignoreUrls:{type:"boolean"},ignoreTemplateLiterals:{type:"boolean"},ignoreRegExpLiterals:{type:"boolean"},ignoreTrailingComments:{type:"boolean"}},additionalProperties:false};var OPTIONS_OR_INTEGER_SCHEMA={anyOf:[OPTIONS_SCHEMA,{type:"integer",minimum:0}]};module.exports={meta:{docs:{description:"enforce a maximum line length",category:"Stylistic Issues",recommended:false},schema:[OPTIONS_OR_INTEGER_SCHEMA,OPTIONS_OR_INTEGER_SCHEMA,OPTIONS_SCHEMA]},create:function create(context){var URL_REGEXP=/[^:/?#]:\/\/[^?#]/;var sourceCode=context.getSourceCode();function computeLineLength(line,tabWidth){var extraCharacterCount=0;line.replace(/\t/g,function(match,offset){var totalOffset=offset+extraCharacterCount,previousTabStopOffset=tabWidth?totalOffset%tabWidth:0,spaceCount=tabWidth-previousTabStopOffset;extraCharacterCount+=spaceCount-1});return Array.from(line).length+extraCharacterCount}var lastOption=context.options[context.options.length-1];var options=(typeof lastOption==="undefined"?"undefined":_typeof(lastOption))==="object"?Object.create(lastOption):{};if(typeof context.options[0]==="number"){options.code=context.options[0]}if(typeof context.options[1]==="number"){options.tabWidth=context.options[1]}var maxLength=options.code||80,tabWidth=options.tabWidth||4,ignoreComments=options.ignoreComments||false,ignoreStrings=options.ignoreStrings||false,ignoreTemplateLiterals=options.ignoreTemplateLiterals||false,ignoreRegExpLiterals=options.ignoreRegExpLiterals||false,ignoreTrailingComments=options.ignoreTrailingComments||options.ignoreComments||false,ignoreUrls=options.ignoreUrls||false,maxCommentLength=options.comments;var ignorePattern=options.ignorePattern||null;if(ignorePattern){ignorePattern=new RegExp(ignorePattern)}function isTrailingComment(line,lineNumber,comment){return comment&&comment.loc.start.line===lineNumber&&lineNumber<=comment.loc.end.line&&(comment.loc.end.line>lineNumber||comment.loc.end.column===line.length)}function isFullLineComment(line,lineNumber,comment){var start=comment.loc.start,end=comment.loc.end,isFirstTokenOnLine=!line.slice(0,comment.loc.start.column).trim();return comment&&(start.linelineNumber||end.line===lineNumber&&end.column===line.length)}function stripTrailingComment(line,lineNumber,comment){return line.slice(0,comment.loc.start.column).replace(/\s+$/,"")}function ensureArrayAndPush(object,key,value){if(!Array.isArray(object[key])){object[key]=[]}object[key].push(value)}function getAllStrings(){return sourceCode.ast.tokens.filter(function(token){return token.type==="String"})}function getAllTemplateLiterals(){return sourceCode.ast.tokens.filter(function(token){return token.type==="Template"})}function getAllRegExpLiterals(){return sourceCode.ast.tokens.filter(function(token){return token.type==="RegularExpression"})}function groupByLineNumber(acc,node){for(var i=node.loc.start.line;i<=node.loc.end.line;++i){ensureArrayAndPush(acc,i,node)}return acc}function checkProgramForMaxLength(node){var lines=sourceCode.lines,comments=ignoreComments||maxCommentLength||ignoreTrailingComments?sourceCode.getAllComments():[];var commentsIndex=0;var strings=getAllStrings();var stringsByLine=strings.reduce(groupByLineNumber,{});var templateLiterals=getAllTemplateLiterals();var templateLiteralsByLine=templateLiterals.reduce(groupByLineNumber,{});var regExpLiterals=getAllRegExpLiterals();var regExpLiteralsByLine=regExpLiterals.reduce(groupByLineNumber,{});lines.forEach(function(line,i){var lineNumber=i+1;var lineIsComment=false;if(commentsIndexmaxCommentLength){context.report({node:node,loc:{line:lineNumber,column:0},message:"Line {{lineNumber}} exceeds the maximum comment line length of {{maxCommentLength}}.",data:{lineNumber:i+1,maxCommentLength:maxCommentLength}})}}else if(lineLength>maxLength){context.report({node:node,loc:{line:lineNumber,column:0},message:"Line {{lineNumber}} exceeds the maximum line length of {{maxLength}}.",data:{lineNumber:i+1,maxLength:maxLength}})}})}return{Program:checkProgramForMaxLength}}}},{}],138:[function(require,module,exports){"use strict";var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj};var lodash=require("lodash");var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"enforce a maximum number of lines per file",category:"Stylistic Issues",recommended:false},schema:[{oneOf:[{type:"integer",minimum:0},{type:"object",properties:{max:{type:"integer",minimum:0},skipComments:{type:"boolean"},skipBlankLines:{type:"boolean"}},additionalProperties:false}]}]},create:function create(context){var option=context.options[0];var max=300;if((typeof option==="undefined"?"undefined":_typeof(option))==="object"&&option.hasOwnProperty("max")&&typeof option.max==="number"){max=option.max}if(typeof option==="number"){max=option}var skipComments=option&&option.skipComments;var skipBlankLines=option&&option.skipBlankLines;var sourceCode=context.getSourceCode();function isCommentNodeType(token){return token&&(token.type==="Block"||token.type==="Line")}function getLinesWithoutCode(comment){var start=comment.loc.start.line;var end=comment.loc.end.line;var token=void 0;token=comment;do{token=sourceCode.getTokenBefore(token,{includeComments:true})}while(isCommentNodeType(token));if(token&&astUtils.isTokenOnSameLine(token,comment)){start+=1}token=comment;do{token=sourceCode.getTokenAfter(token,{includeComments:true})}while(isCommentNodeType(token));if(token&&astUtils.isTokenOnSameLine(comment,token)){end-=1}if(start<=end){return lodash.range(start,end+1)}return[]}return{"Program:exit":function ProgramExit(){var lines=sourceCode.lines.map(function(text,i){return{lineNumber:i+1,text:text}});if(skipBlankLines){lines=lines.filter(function(l){return l.text.trim()!==""})}if(skipComments){var comments=sourceCode.getAllComments();var commentLines=lodash.flatten(comments.map(function(comment){return getLinesWithoutCode(comment)}));lines=lines.filter(function(l){return!lodash.includes(commentLines,l.lineNumber)})}if(lines.length>max){context.report({loc:{line:1,column:0},message:"File must be at most {{max}} lines long. It's {{actual}} lines long.",data:{max:max,actual:lines.length}})}}}}}},{"../ast-utils":70,lodash:49}],139:[function(require,module,exports){"use strict";var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj};module.exports={meta:{docs:{description:"enforce a maximum depth that callbacks can be nested",category:"Stylistic Issues",recommended:false},schema:[{oneOf:[{type:"integer",minimum:0},{type:"object",properties:{maximum:{type:"integer",minimum:0},max:{type:"integer",minimum:0}},additionalProperties:false}]}]},create:function create(context){var option=context.options[0];var THRESHOLD=10;if((typeof option==="undefined"?"undefined":_typeof(option))==="object"&&option.hasOwnProperty("maximum")&&typeof option.maximum==="number"){THRESHOLD=option.maximum}if((typeof option==="undefined"?"undefined":_typeof(option))==="object"&&option.hasOwnProperty("max")&&typeof option.max==="number"){THRESHOLD=option.max}if(typeof option==="number"){THRESHOLD=option}var callbackStack=[];function checkFunction(node){var parent=node.parent;if(parent.type==="CallExpression"){callbackStack.push(node)}if(callbackStack.length>THRESHOLD){var opts={num:callbackStack.length,max:THRESHOLD};context.report({node:node,message:"Too many nested callbacks ({{num}}). Maximum allowed is {{max}}.",data:opts})}}function popStack(){callbackStack.pop()}return{ArrowFunctionExpression:checkFunction,"ArrowFunctionExpression:exit":popStack,FunctionExpression:checkFunction,"FunctionExpression:exit":popStack}}}},{}],140:[function(require,module,exports){"use strict";var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj};var lodash=require("lodash");var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"enforce a maximum number of parameters in function definitions",category:"Stylistic Issues",recommended:false},schema:[{oneOf:[{type:"integer",minimum:0},{type:"object",properties:{maximum:{type:"integer",minimum:0},max:{type:"integer",minimum:0}},additionalProperties:false}]}]},create:function create(context){var option=context.options[0];var numParams=3;if((typeof option==="undefined"?"undefined":_typeof(option))==="object"&&option.hasOwnProperty("maximum")&&typeof option.maximum==="number"){numParams=option.maximum}if((typeof option==="undefined"?"undefined":_typeof(option))==="object"&&option.hasOwnProperty("max")&&typeof option.max==="number"){numParams=option.max}if(typeof option==="number"){numParams=option}function checkFunction(node){if(node.params.length>numParams){context.report({node:node,message:"{{name}} has too many parameters ({{count}}). Maximum allowed is {{max}}.",data:{name:lodash.upperFirst(astUtils.getFunctionNameWithKind(node)),count:node.params.length,max:numParams}})}}return{FunctionDeclaration:checkFunction,ArrowFunctionExpression:checkFunction,FunctionExpression:checkFunction}}}},{"../ast-utils":70,lodash:49}],141:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"enforce a maximum number of statements allowed per line",category:"Stylistic Issues",recommended:false},schema:[{type:"object",properties:{max:{type:"integer",minimum:1}},additionalProperties:false}]},create:function create(context){var sourceCode=context.getSourceCode(),options=context.options[0]||{},maxStatementsPerLine=typeof options.max!=="undefined"?options.max:1,message="This line has {{numberOfStatementsOnThisLine}} {{statements}}. Maximum allowed is {{maxStatementsPerLine}}.";var lastStatementLine=0,numberOfStatementsOnThisLine=0,firstExtraStatement=void 0;var SINGLE_CHILD_ALLOWED=/^(?:(?:DoWhile|For|ForIn|ForOf|If|Labeled|While)Statement|Export(?:Default|Named)Declaration)$/;function reportFirstExtraStatementAndClear(){if(firstExtraStatement){context.report({node:firstExtraStatement,message:message,data:{numberOfStatementsOnThisLine:numberOfStatementsOnThisLine,maxStatementsPerLine:maxStatementsPerLine,statements:numberOfStatementsOnThisLine===1?"statement":"statements"}})}firstExtraStatement=null}function getActualLastToken(node){return sourceCode.getLastToken(node,astUtils.isNotSemicolonToken)}function enterStatement(node){var line=node.loc.start.line;if(SINGLE_CHILD_ALLOWED.test(node.parent.type)&&node.parent.alternate!==node){return}if(line===lastStatementLine){numberOfStatementsOnThisLine+=1}else{reportFirstExtraStatementAndClear();numberOfStatementsOnThisLine=1;lastStatementLine=line}if(numberOfStatementsOnThisLine===maxStatementsPerLine+1){firstExtraStatement=firstExtraStatement||node}}function leaveStatement(node){var line=getActualLastToken(node).loc.end.line;if(line!==lastStatementLine){reportFirstExtraStatementAndClear();numberOfStatementsOnThisLine=1;lastStatementLine=line}}return{BreakStatement:enterStatement,ClassDeclaration:enterStatement,ContinueStatement:enterStatement,DebuggerStatement:enterStatement,DoWhileStatement:enterStatement,ExpressionStatement:enterStatement,ForInStatement:enterStatement,ForOfStatement:enterStatement,ForStatement:enterStatement,FunctionDeclaration:enterStatement,IfStatement:enterStatement,ImportDeclaration:enterStatement,LabeledStatement:enterStatement,ReturnStatement:enterStatement,SwitchStatement:enterStatement,ThrowStatement:enterStatement,TryStatement:enterStatement,VariableDeclaration:enterStatement,WhileStatement:enterStatement,WithStatement:enterStatement,ExportNamedDeclaration:enterStatement,ExportDefaultDeclaration:enterStatement,ExportAllDeclaration:enterStatement,"BreakStatement:exit":leaveStatement,"ClassDeclaration:exit":leaveStatement,"ContinueStatement:exit":leaveStatement,"DebuggerStatement:exit":leaveStatement,"DoWhileStatement:exit":leaveStatement,"ExpressionStatement:exit":leaveStatement,"ForInStatement:exit":leaveStatement,"ForOfStatement:exit":leaveStatement,"ForStatement:exit":leaveStatement,"FunctionDeclaration:exit":leaveStatement,"IfStatement:exit":leaveStatement,"ImportDeclaration:exit":leaveStatement,"LabeledStatement:exit":leaveStatement,"ReturnStatement:exit":leaveStatement,"SwitchStatement:exit":leaveStatement,"ThrowStatement:exit":leaveStatement,"TryStatement:exit":leaveStatement,"VariableDeclaration:exit":leaveStatement,"WhileStatement:exit":leaveStatement,"WithStatement:exit":leaveStatement,"ExportNamedDeclaration:exit":leaveStatement,"ExportDefaultDeclaration:exit":leaveStatement,"ExportAllDeclaration:exit":leaveStatement,"Program:exit":reportFirstExtraStatementAndClear}}}},{"../ast-utils":70}],142:[function(require,module,exports){"use strict";var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj};var lodash=require("lodash");var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"enforce a maximum number of statements allowed in function blocks",category:"Stylistic Issues",recommended:false},schema:[{oneOf:[{type:"integer",minimum:0},{type:"object",properties:{maximum:{type:"integer",minimum:0},max:{type:"integer",minimum:0}},additionalProperties:false}]},{type:"object",properties:{ignoreTopLevelFunctions:{type:"boolean"}},additionalProperties:false}]},create:function create(context){var functionStack=[],option=context.options[0],ignoreTopLevelFunctions=context.options[1]&&context.options[1].ignoreTopLevelFunctions||false,topLevelFunctions=[];var maxStatements=10;if((typeof option==="undefined"?"undefined":_typeof(option))==="object"&&option.hasOwnProperty("maximum")&&typeof option.maximum==="number"){maxStatements=option.maximum}if((typeof option==="undefined"?"undefined":_typeof(option))==="object"&&option.hasOwnProperty("max")&&typeof option.max==="number"){maxStatements=option.max}if(typeof option==="number"){maxStatements=option}function reportIfTooManyStatements(node,count,max){if(count>max){var name=lodash.upperFirst(astUtils.getFunctionNameWithKind(node));context.report({node:node,message:"{{name}} has too many statements ({{count}}). Maximum allowed is {{max}}.",data:{name:name,count:count,max:max}})}}function startFunction(){functionStack.push(0)}function endFunction(node){var count=functionStack.pop();if(ignoreTopLevelFunctions&&functionStack.length===0){topLevelFunctions.push({node:node,count:count})}else{reportIfTooManyStatements(node,count,maxStatements)}}function countStatements(node){functionStack[functionStack.length-1]+=node.body.length}return{FunctionDeclaration:startFunction,FunctionExpression:startFunction,ArrowFunctionExpression:startFunction,BlockStatement:countStatements,"FunctionDeclaration:exit":endFunction,"FunctionExpression:exit":endFunction,"ArrowFunctionExpression:exit":endFunction,"Program:exit":function ProgramExit(){if(topLevelFunctions.length===1){return}topLevelFunctions.forEach(function(element){var count=element.count;var node=element.node;reportIfTooManyStatements(node,count,maxStatements)})}}}}},{"../ast-utils":70,lodash:49}],143:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"enforce newlines between operands of ternary expressions",category:"Stylistic Issues",recommended:false},schema:[{enum:["always","never"]}]},create:function create(context){var multiline=context.options[0]!=="never";function reportError(node,parentNode,expected){context.report({node:node,message:"{{expected}} newline between {{typeOfError}} of ternary expression.",data:{expected:expected?"Expected":"Unexpected",typeOfError:node===parentNode.test?"test and consequent":"consequent and alternate"}})}return{ConditionalExpression:function ConditionalExpression(node){var areTestAndConsequentOnSameLine=astUtils.isTokenOnSameLine(node.test,node.consequent);var areConsequentAndAlternateOnSameLine=astUtils.isTokenOnSameLine(node.consequent,node.alternate);if(!multiline){if(!areTestAndConsequentOnSameLine){reportError(node.test,node,false)}if(!areConsequentAndAlternateOnSameLine){reportError(node.consequent,node,false)}}else{if(areTestAndConsequentOnSameLine){reportError(node.test,node,true)}if(areConsequentAndAlternateOnSameLine){reportError(node.consequent,node,true)}}}}}}},{"../ast-utils":70}],144:[function(require,module,exports){"use strict";var CAPS_ALLOWED=["Array","Boolean","Date","Error","Function","Number","Object","RegExp","String","Symbol"];function checkArray(obj,key,fallback){if(Object.prototype.hasOwnProperty.call(obj,key)&&!Array.isArray(obj[key])){throw new TypeError(key+", if provided, must be an Array")}return obj[key]||fallback}function invert(map,key){map[key]=true;return map}function calculateCapIsNewExceptions(config){var capIsNewExceptions=checkArray(config,"capIsNewExceptions",CAPS_ALLOWED);if(capIsNewExceptions!==CAPS_ALLOWED){capIsNewExceptions=capIsNewExceptions.concat(CAPS_ALLOWED)}return capIsNewExceptions.reduce(invert,{})}module.exports={meta:{docs:{description:"require constructor names to begin with a capital letter",category:"Stylistic Issues",recommended:false},schema:[{type:"object",properties:{newIsCap:{type:"boolean"},capIsNew:{type:"boolean"},newIsCapExceptions:{type:"array",items:{type:"string"}},newIsCapExceptionPattern:{type:"string"},capIsNewExceptions:{type:"array",items:{type:"string"}},capIsNewExceptionPattern:{type:"string"},properties:{type:"boolean"}},additionalProperties:false}]},create:function create(context){var config=context.options[0]?Object.assign({},context.options[0]):{};config.newIsCap=config.newIsCap!==false;config.capIsNew=config.capIsNew!==false;var skipProperties=config.properties===false;var newIsCapExceptions=checkArray(config,"newIsCapExceptions",[]).reduce(invert,{});var newIsCapExceptionPattern=config.newIsCapExceptionPattern?new RegExp(config.newIsCapExceptionPattern):null;var capIsNewExceptions=calculateCapIsNewExceptions(config);var capIsNewExceptionPattern=config.capIsNewExceptionPattern?new RegExp(config.capIsNewExceptionPattern):null;var listeners={};var sourceCode=context.getSourceCode();function extractNameFromExpression(node){var name="";if(node.callee.type==="MemberExpression"){var property=node.callee.property;if(property.type==="Literal"&&typeof property.value==="string"){name=property.value}else if(property.type==="Identifier"&&!node.callee.computed){name=property.name}}else{name=node.callee.name}return name}function getCap(str){var firstChar=str.charAt(0);var firstCharLower=firstChar.toLowerCase();var firstCharUpper=firstChar.toUpperCase();if(firstCharLower===firstCharUpper){return"non-alpha"}else if(firstChar===firstCharLower){return"lower"}return"upper"}function isCapAllowed(allowedMap,node,calleeName,pattern){var sourceText=sourceCode.getText(node.callee);if(allowedMap[calleeName]||allowedMap[sourceText]){return true}if(pattern&&pattern.test(sourceText)){return true}if(calleeName==="UTC"&&node.callee.type==="MemberExpression"){return node.callee.object.type==="Identifier"&&node.callee.object.name==="Date"}return skipProperties&&node.callee.type==="MemberExpression"}function report(node,message){var callee=node.callee;if(callee.type==="MemberExpression"){callee=callee.property}context.report({node:node,loc:callee.loc.start,message:message})}if(config.newIsCap){listeners.NewExpression=function(node){var constructorName=extractNameFromExpression(node);if(constructorName){var capitalization=getCap(constructorName);var isAllowed=capitalization!=="lower"||isCapAllowed(newIsCapExceptions,node,constructorName,newIsCapExceptionPattern);if(!isAllowed){report(node,"A constructor name should not start with a lowercase letter.")}}}}if(config.capIsNew){listeners.CallExpression=function(node){var calleeName=extractNameFromExpression(node);if(calleeName){var capitalization=getCap(calleeName);var isAllowed=capitalization!=="upper"||isCapAllowed(capIsNewExceptions,node,calleeName,capIsNewExceptionPattern);if(!isAllowed){report(node,"A function with a name starting with an uppercase letter should only be used as a constructor.")}}}}return listeners}}},{}],145:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"require parentheses when invoking a constructor with no arguments",category:"Stylistic Issues",recommended:false},schema:[],fixable:"code"},create:function create(context){var sourceCode=context.getSourceCode();return{NewExpression:function NewExpression(node){if(node.arguments.length!==0){return}var lastToken=sourceCode.getLastToken(node);var hasLastParen=lastToken&&astUtils.isClosingParenToken(lastToken);var hasParens=hasLastParen&&astUtils.isOpeningParenToken(sourceCode.getTokenBefore(lastToken));if(!hasParens){context.report({node:node,message:"Missing '()' invoking a constructor.",fix:function fix(fixer){return fixer.insertTextAfter(node,"()")}})}}}}}},{"../ast-utils":70}],146:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"require or disallow an empty line after variable declarations",category:"Stylistic Issues",recommended:false,replacedBy:["padding-line-between-statements"]},schema:[{enum:["never","always"]}],fixable:"whitespace",deprecated:true},create:function create(context){var ALWAYS_MESSAGE="Expected blank line after variable declarations.",NEVER_MESSAGE="Unexpected blank line after variable declarations.";var sourceCode=context.getSourceCode();var mode=context.options[0]==="never"?"never":"always";var commentEndLine=sourceCode.getAllComments().reduce(function(result,token){result[token.loc.start.line]=token.loc.end.line;return result},{});function getLastToken(node){var lastToken=sourceCode.getLastToken(node);if(lastToken.type==="Punctuator"&&lastToken.value===";"){var prevToken=sourceCode.getTokenBefore(lastToken);if(prevToken.loc.end.line!==lastToken.loc.start.line){return prevToken}}return lastToken}function isVar(keyword){return keyword==="var"||keyword==="let"||keyword==="const"}function isForTypeSpecifier(keyword){return keyword==="ForStatement"||keyword==="ForInStatement"||keyword==="ForOfStatement"}function isExportSpecifier(nodeType){return nodeType==="ExportNamedDeclaration"||nodeType==="ExportSpecifier"||nodeType==="ExportDefaultDeclaration"||nodeType==="ExportAllDeclaration"}function isLastNode(node){var token=sourceCode.getTokenAfter(node);return!token||token.type==="Punctuator"&&token.value==="}"}function getLastCommentLineOfBlock(commentStartLine){var currentCommentEnd=commentEndLine[commentStartLine];return commentEndLine[currentCommentEnd+1]?getLastCommentLineOfBlock(currentCommentEnd+1):currentCommentEnd}function hasBlankLineAfterComment(token,commentStartLine){return token.loc.start.line>getLastCommentLineOfBlock(commentStartLine)+1}function checkForBlankLine(node){var lastToken=getLastToken(node),nextToken=lastToken===sourceCode.getLastToken(node)?sourceCode.getTokenAfter(node):sourceCode.getLastToken(node),nextLineNum=lastToken.loc.end.line+1;if(!nextToken){return}if(isForTypeSpecifier(node.parent.type)){return}if(isExportSpecifier(node.parent.type)){return}if(nextToken.type==="Keyword"&&isVar(nextToken.value)){return}if(isLastNode(node)){return}var noNextLineToken=nextToken.loc.start.line>nextLineNum;var hasNextLineComment=typeof commentEndLine[nextLineNum]!=="undefined";if(mode==="never"&&noNextLineToken&&!hasNextLineComment){context.report({node:node,message:NEVER_MESSAGE,data:{identifier:node.name},fix:function fix(fixer){var linesBetween=sourceCode.getText().slice(lastToken.range[1],nextToken.range[0]).split(astUtils.LINEBREAK_MATCHER);return fixer.replaceTextRange([lastToken.range[1],nextToken.range[0]],linesBetween.slice(0,-1).join("")+"\n"+linesBetween[linesBetween.length-1])}})}if(mode==="always"&&(!noNextLineToken||hasNextLineComment&&!hasBlankLineAfterComment(nextToken,nextLineNum))){context.report({node:node,message:ALWAYS_MESSAGE,data:{identifier:node.name},fix:function fix(fixer){if((noNextLineToken?getLastCommentLineOfBlock(nextLineNum):lastToken.loc.end.line)===nextToken.loc.start.line){return fixer.insertTextBefore(nextToken,"\n\n")}return fixer.insertTextBeforeRange([nextToken.range[0]-nextToken.loc.start.column,nextToken.range[1]],"\n")}})}}return{VariableDeclaration:checkForBlankLine}}}},{"../ast-utils":70}],147:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"require an empty line before `return` statements",category:"Stylistic Issues",recommended:false,replacedBy:["padding-line-between-statements"]},fixable:"whitespace",schema:[],deprecated:true},create:function create(context){var sourceCode=context.getSourceCode();function isPrecededByTokens(node,testTokens){var tokenBefore=sourceCode.getTokenBefore(node);return testTokens.some(function(token){return tokenBefore.value===token})}function isFirstNode(node){var parentType=node.parent.type;if(node.parent.body){return Array.isArray(node.parent.body)?node.parent.body[0]===node:node.parent.body===node}if(parentType==="IfStatement"){return isPrecededByTokens(node,["else",")"])}else if(parentType==="DoWhileStatement"){return isPrecededByTokens(node,["do"])}else if(parentType==="SwitchCase"){return isPrecededByTokens(node,[":"])}return isPrecededByTokens(node,[")"])}function calcCommentLines(node,lineNumTokenBefore){var comments=sourceCode.getCommentsBefore(node);var numLinesComments=0;if(!comments.length){return numLinesComments}comments.forEach(function(comment){numLinesComments++;if(comment.type==="Block"){numLinesComments+=comment.loc.end.line-comment.loc.start.line}if(comment.loc.start.line===lineNumTokenBefore){numLinesComments--}if(comment.loc.end.line===node.loc.start.line){numLinesComments--}});return numLinesComments}function getLineNumberOfTokenBefore(node){var tokenBefore=sourceCode.getTokenBefore(node);var lineNumTokenBefore=void 0;if(tokenBefore){lineNumTokenBefore=tokenBefore.loc.end.line}else{lineNumTokenBefore=0}return lineNumTokenBefore}function hasNewlineBefore(node){var lineNumNode=node.loc.start.line;var lineNumTokenBefore=getLineNumberOfTokenBefore(node);var commentLines=calcCommentLines(node,lineNumTokenBefore);return lineNumNode-lineNumTokenBefore-commentLines>1}function canFix(node){var leadingComments=sourceCode.getCommentsBefore(node);var lastLeadingComment=leadingComments[leadingComments.length-1];var tokenBefore=sourceCode.getTokenBefore(node);if(leadingComments.length===0){return true}if(lastLeadingComment.loc.end.line===tokenBefore.loc.end.line&&lastLeadingComment.loc.end.line!==node.loc.start.line){return true}return false}return{ReturnStatement:function ReturnStatement(node){if(!isFirstNode(node)&&!hasNewlineBefore(node)){context.report({node:node,message:"Expected newline before return statement.",fix:function fix(fixer){if(canFix(node)){var tokenBefore=sourceCode.getTokenBefore(node);var newlines=node.loc.start.line===tokenBefore.loc.end.line?"\n\n":"\n";return fixer.insertTextBefore(node,newlines)}return null}})}}}}}},{}],148:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"require a newline after each call in a method chain",category:"Stylistic Issues",recommended:false},schema:[{type:"object",properties:{ignoreChainWithDepth:{type:"integer",minimum:1,maximum:10}},additionalProperties:false}]},create:function create(context){var options=context.options[0]||{},ignoreChainWithDepth=options.ignoreChainWithDepth||2;var sourceCode=context.getSourceCode();function getPropertyText(node){var prefix=node.computed?"[":".";var lines=sourceCode.getText(node.property).split(astUtils.LINEBREAK_MATCHER);var suffix=node.computed&&lines.length===1?"]":"";return prefix+lines[0]+suffix}return{"CallExpression:exit":function CallExpressionExit(node){if(!node.callee||node.callee.type!=="MemberExpression"){return}var callee=node.callee;var parent=callee.object;var depth=1;while(parent&&parent.callee){depth+=1;parent=parent.callee.object}if(depth>ignoreChainWithDepth&&callee.property.loc.start.line===callee.object.loc.end.line){context.report({node:callee.property,loc:callee.property.loc.start,message:"Expected line break before `{{callee}}`.",data:{callee:getPropertyText(callee)}})}}}}}},{"../ast-utils":70}],149:[function(require,module,exports){"use strict";var getPropertyName=require("../ast-utils").getStaticPropertyName;function isProhibitedIdentifier(name){return/^(alert|confirm|prompt)$/.test(name)}function report(context,node,identifierName){context.report(node,"Unexpected {{name}}.",{name:identifierName})}function findReference(scope,node){var references=scope.references.filter(function(reference){return reference.identifier.range[0]===node.range[0]&&reference.identifier.range[1]===node.range[1]});if(references.length===1){return references[0]}return null}function isShadowed(scope,globalScope,node){var reference=findReference(scope,node);return reference&&reference.resolved&&reference.resolved.defs.length>0}function isGlobalThisReferenceOrGlobalWindow(scope,globalScope,node){if(scope.type==="global"&&node.type==="ThisExpression"){return true}else if(node.name==="window"){return!isShadowed(scope,globalScope,node)}return false}module.exports={meta:{docs:{description:"disallow the use of `alert`, `confirm`, and `prompt`",category:"Best Practices",recommended:false},schema:[]},create:function create(context){var globalScope=void 0;return{Program:function Program(){globalScope=context.getScope()},CallExpression:function CallExpression(node){var callee=node.callee,currentScope=context.getScope();if(callee.type==="Identifier"){var identifierName=callee.name;if(!isShadowed(currentScope,globalScope,callee)&&isProhibitedIdentifier(callee.name)){report(context,node,identifierName)}}else if(callee.type==="MemberExpression"&&isGlobalThisReferenceOrGlobalWindow(currentScope,globalScope,callee.object)){var _identifierName=getPropertyName(callee);if(isProhibitedIdentifier(_identifierName)){report(context,node,_identifierName)}}}}}}},{"../ast-utils":70}],150:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow `Array` constructors",category:"Stylistic Issues",recommended:false},schema:[]},create:function create(context){function check(node){if(node.arguments.length!==1&&node.callee.type==="Identifier"&&node.callee.name==="Array"){context.report({node:node,message:"The array literal notation [] is preferrable."})}}return{CallExpression:check,NewExpression:check}}}},{}],151:[function(require,module,exports){"use strict";var loopTypes=new Set(["ForStatement","ForOfStatement","ForInStatement","WhileStatement","DoWhileStatement"]);var boundaryTypes=new Set(["FunctionDeclaration","FunctionExpression","ArrowFunctionExpression"]);module.exports={meta:{docs:{description:"disallow `await` inside of loops",category:"Possible Errors",recommended:false},schema:[]},create:function create(context){return{AwaitExpression:function AwaitExpression(node){var ancestors=context.getAncestors();ancestors.reverse();var ancestorSet=new Set(ancestors).add(node);for(var i=0;i>",">>>","^=","|=","&=","<<=",">>=",">>>=","~"];module.exports={meta:{docs:{description:"disallow bitwise operators",category:"Stylistic Issues",recommended:false},schema:[{type:"object",properties:{allow:{type:"array",items:{enum:BITWISE_OPERATORS},uniqueItems:true},int32Hint:{type:"boolean"}},additionalProperties:false}]},create:function create(context){var options=context.options[0]||{};var allowed=options.allow||[];var int32Hint=options.int32Hint===true;function report(node){context.report({node:node,message:"Unexpected use of '{{operator}}'.",data:{operator:node.operator}})}function hasBitwiseOperator(node){return BITWISE_OPERATORS.indexOf(node.operator)!==-1}function allowedOperator(node){return allowed.indexOf(node.operator)!==-1}function isInt32Hint(node){return int32Hint&&node.operator==="|"&&node.right&&node.right.type==="Literal"&&node.right.value===0}function checkNodeForBitwiseOperator(node){if(hasBitwiseOperator(node)&&!allowedOperator(node)&&!isInt32Hint(node)){report(node)}}return{AssignmentExpression:checkNodeForBitwiseOperator,BinaryExpression:checkNodeForBitwiseOperator,UnaryExpression:checkNodeForBitwiseOperator}}}},{}],153:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow use of the Buffer() constructor",category:"Node.js and CommonJS",recommended:false},schema:[]},create:function create(context){return{"CallExpression[callee.name='Buffer'], NewExpression[callee.name='Buffer']":function CallExpressionCalleeNameBufferNewExpressionCalleeNameBuffer(node){context.report({node:node,message:"{{example}} is deprecated. Use Buffer.from(), Buffer.alloc(), or Buffer.allocUnsafe() instead.",data:{example:node.type==="CallExpression"?"Buffer()":"new Buffer()"}})}}}}},{}],154:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow the use of `arguments.caller` or `arguments.callee`",category:"Best Practices",recommended:false},schema:[]},create:function create(context){return{MemberExpression:function MemberExpression(node){var objectName=node.object.name,propertyName=node.property.name;if(objectName==="arguments"&&!node.computed&&propertyName&&propertyName.match(/^calle[er]$/)){context.report({node:node,message:"Avoid arguments.{{property}}.",data:{property:propertyName}})}}}}}},{}],155:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow lexical declarations in case clauses",category:"Best Practices",recommended:true},schema:[]},create:function create(context){function isLexicalDeclaration(node){switch(node.type){case"FunctionDeclaration":case"ClassDeclaration":return true;case"VariableDeclaration":return node.kind!=="var";default:return false}}return{SwitchCase:function SwitchCase(node){for(var i=0;i",">=","<","<=","==","===","!=","!=="]);return{BinaryExpression:function BinaryExpression(node){if(OPERATORS_TO_CHECK.has(node.operator)){if(isNegZero(node.left)||isNegZero(node.right)){context.report({node:node,message:"Do not use the '{{operator}}' operator to compare against -0.",data:{operator:node.operator}})}}}}}}},{}],159:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");var NODE_DESCRIPTIONS={DoWhileStatement:"a 'do...while' statement",ForStatement:"a 'for' statement",IfStatement:"an 'if' statement",WhileStatement:"a 'while' statement"};module.exports={meta:{docs:{description:"disallow assignment operators in conditional expressions",category:"Possible Errors",recommended:true},schema:[{enum:["except-parens","always"]}]},create:function create(context){var prohibitAssign=context.options[0]||"except-parens";var sourceCode=context.getSourceCode();function isConditionalTestExpression(node){return node.parent&&node.parent.test&&node===node.parent.test}function findConditionalAncestor(node){var currentAncestor=node;do{if(isConditionalTestExpression(currentAncestor)){return currentAncestor.parent}}while((currentAncestor=currentAncestor.parent)&&!astUtils.isFunction(currentAncestor));return null}function isParenthesisedTwice(node){var previousToken=sourceCode.getTokenBefore(node,1),nextToken=sourceCode.getTokenAfter(node,1);return astUtils.isParenthesised(sourceCode,node)&&astUtils.isOpeningParenToken(previousToken)&&previousToken.range[1]<=node.range[0]&&astUtils.isClosingParenToken(nextToken)&&nextToken.range[0]>=node.range[1]}function testForAssign(node){if(node.test&&node.test.type==="AssignmentExpression"&&(node.type==="ForStatement"?!astUtils.isParenthesised(sourceCode,node.test):!isParenthesisedTwice(node.test))){context.report({node:node,loc:node.test.loc.start,message:"Expected a conditional expression and instead saw an assignment."})}}function testForConditionalAncestor(node){var ancestor=findConditionalAncestor(node);if(ancestor){context.report({node:ancestor,message:"Unexpected assignment within {{type}}.",data:{type:NODE_DESCRIPTIONS[ancestor.type]||ancestor.type}})}}if(prohibitAssign==="always"){return{AssignmentExpression:testForConditionalAncestor}}return{DoWhileStatement:testForAssign,ForStatement:testForAssign,IfStatement:testForAssign,WhileStatement:testForAssign}}}},{"../ast-utils":70}],160:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils.js");function isConditional(node){return node&&node.type==="ConditionalExpression"}module.exports={meta:{docs:{description:"disallow arrow functions where they could be confused with comparisons",category:"ECMAScript 6",recommended:false},fixable:"code",schema:[{type:"object",properties:{allowParens:{type:"boolean"}},additionalProperties:false}]},create:function create(context){var config=context.options[0]||{};var sourceCode=context.getSourceCode();function checkArrowFunc(node){var body=node.body;if(isConditional(body)&&!(config.allowParens&&astUtils.isParenthesised(sourceCode,body))){context.report({node:node,message:"Arrow function used ambiguously with a conditional expression.",fix:function fix(fixer){return config.allowParens&&fixer.replaceText(node.body,"("+sourceCode.getText(node.body)+")")}})}}return{ArrowFunctionExpression:checkArrowFunc}}}},{"../ast-utils.js":70}],161:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"disallow the use of `console`",category:"Possible Errors",recommended:true},schema:[{type:"object",properties:{allow:{type:"array",items:{type:"string"},minItems:1,uniqueItems:true}},additionalProperties:false}]},create:function create(context){var options=context.options[0]||{};var allowed=options.allow||[];function isConsole(reference){var id=reference.identifier;return id&&id.name==="console"}function isAllowed(node){var propertyName=astUtils.getStaticPropertyName(node);return propertyName&&allowed.indexOf(propertyName)!==-1}function isMemberAccessExceptAllowed(reference){var node=reference.identifier;var parent=node.parent;return parent.type==="MemberExpression"&&parent.object===node&&!isAllowed(parent)}function report(reference){var node=reference.identifier.parent;context.report({node:node,loc:node.loc,message:"Unexpected console statement."})}return{"Program:exit":function ProgramExit(){var scope=context.getScope();var consoleVar=astUtils.getVariableByName(scope,"console");var shadowed=consoleVar&&consoleVar.defs.length>0;var references=consoleVar?consoleVar.references:scope.through.filter(isConsole);if(!shadowed){references.filter(isMemberAccessExceptAllowed).forEach(report)}}}}}},{"../ast-utils":70}],162:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"disallow reassigning `const` variables",category:"ECMAScript 6",recommended:true},schema:[]},create:function create(context){function checkVariable(variable){astUtils.getModifyingReferences(variable.references).forEach(function(reference){context.report({node:reference.identifier,message:"'{{name}}' is constant.",data:{name:reference.identifier.name}})})}return{VariableDeclaration:function VariableDeclaration(node){if(node.kind==="const"){context.getDeclaredVariables(node).forEach(checkVariable)}}}}}},{"../ast-utils":70}],163:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow constant expressions in conditions",category:"Possible Errors",recommended:true},schema:[{type:"object",properties:{checkLoops:{type:"boolean"}},additionalProperties:false}]},create:function create(context){var options=context.options[0]||{},checkLoops=options.checkLoops!==false;function isLogicalIdentity(node,operator){switch(node.type){case"Literal":return operator==="||"&&node.value===true||operator==="&&"&&node.value===false;case"UnaryExpression":return operator==="&&"&&node.operator==="void";case"LogicalExpression":return isLogicalIdentity(node.left,node.operator)||isLogicalIdentity(node.right,node.operator)}return false}function isConstant(node,inBooleanPosition){switch(node.type){case"Literal":case"ArrowFunctionExpression":case"FunctionExpression":case"ObjectExpression":case"ArrayExpression":return true;case"UnaryExpression":if(node.operator==="void"){return true}return node.operator==="typeof"&&inBooleanPosition||isConstant(node.argument,true);case"BinaryExpression":return isConstant(node.left,false)&&isConstant(node.right,false)&&node.operator!=="in";case"LogicalExpression":{var isLeftConstant=isConstant(node.left,inBooleanPosition);var isRightConstant=isConstant(node.right,inBooleanPosition);var isLeftShortCircuit=isLeftConstant&&isLogicalIdentity(node.left,node.operator);var isRightShortCircuit=isRightConstant&&isLogicalIdentity(node.right,node.operator);return isLeftConstant&&isRightConstant||isLeftShortCircuit||isRightShortCircuit}case"AssignmentExpression":return node.operator==="="&&isConstant(node.right,inBooleanPosition);case"SequenceExpression":return isConstant(node.expressions[node.expressions.length-1],inBooleanPosition)}return false}function checkConstantCondition(node){if(node.test&&isConstant(node.test,true)){context.report({node:node,message:"Unexpected constant condition."})}}function checkLoop(node){if(checkLoops){checkConstantCondition(node)}}return{ConditionalExpression:checkConstantCondition,IfStatement:checkConstantCondition,WhileStatement:checkLoop,DoWhileStatement:checkLoop,ForStatement:checkLoop}}}},{}],164:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow `continue` statements",category:"Stylistic Issues",recommended:false},schema:[]},create:function create(context){return{ContinueStatement:function ContinueStatement(node){context.report({node:node,message:"Unexpected use of continue statement."})}}}}},{}],165:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow control characters in regular expressions",category:"Possible Errors",recommended:true},schema:[]},create:function create(context){function getRegExp(node){if(node.value instanceof RegExp){return node.value}else if(typeof node.value==="string"){var parent=context.getAncestors().pop();if((parent.type==="NewExpression"||parent.type==="CallExpression")&&parent.callee.type==="Identifier"&&parent.callee.name==="RegExp"){try{return new RegExp(node.value)}catch(ex){return null}}}return null}var controlChar=/[\x00-\x1f]/g;var consecutiveSlashes=/\\+/g;var consecutiveSlashesAtEnd=/\\+$/g;var stringControlChar=/\\x[01][0-9a-f]/gi;var stringControlCharWithoutSlash=/x[01][0-9a-f]/gi;function getControlCharacters(regexStr){var controlChars=regexStr.match(controlChar)||[];var stringControlChars=[];var subStrIndex=regexStr.search(stringControlChar);if(subStrIndex>-1){var possibleEscapeCharacters=regexStr.slice(0,subStrIndex).match(consecutiveSlashesAtEnd);var hasControlChars=possibleEscapeCharacters===null||!(possibleEscapeCharacters[0].length%2);if(hasControlChars){stringControlChars=regexStr.slice(subStrIndex,-1).split(consecutiveSlashes).filter(Boolean).map(function(x){var match=x.match(stringControlCharWithoutSlash)||[x];return"\\"+match[0]})}}return controlChars.map(function(x){var hexCode=("0"+x.charCodeAt(0).toString(16)).slice(-2);return"\\x"+hexCode}).concat(stringControlChars)}return{Literal:function Literal(node){var regex=getRegExp(node);if(regex){var computedValue=regex.toString();var controlCharacters=getControlCharacters(computedValue);if(controlCharacters.length>0){context.report({node:node,message:"Unexpected control character(s) in regular expression: {{controlChars}}.",data:{controlChars:controlCharacters.join(", ")}})}}}}}}},{}],166:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow the use of `debugger`",category:"Possible Errors",recommended:true},fixable:"code",schema:[]},create:function create(context){return{DebuggerStatement:function DebuggerStatement(node){context.report({node:node,message:"Unexpected 'debugger' statement.",fix:function fix(fixer){return fixer.remove(node)}})}}}}},{}],167:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow deleting variables",category:"Variables",recommended:true},schema:[]},create:function create(context){return{UnaryExpression:function UnaryExpression(node){if(node.operator==="delete"&&node.argument.type==="Identifier"){context.report({node:node,message:"Variables should not be deleted."})}}}}}},{}],168:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow division operators explicitly at the beginning of regular expressions",category:"Best Practices",recommended:false},schema:[]},create:function create(context){var sourceCode=context.getSourceCode();return{Literal:function Literal(node){var token=sourceCode.getFirstToken(node);if(token.type==="RegularExpression"&&token.value[1]==="="){context.report({node:node,message:"A regular expression literal can be confused with '/='."})}}}}}},{}],169:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow duplicate arguments in `function` definitions",category:"Possible Errors",recommended:true},schema:[]},create:function create(context){function isParameter(def){return def.type==="Parameter"}function checkParams(node){var variables=context.getDeclaredVariables(node);for(var i=0;i=2){context.report({node:node,message:"Duplicate param '{{name}}'.",data:{name:variable.name}})}}}return{FunctionDeclaration:checkParams,FunctionExpression:checkParams}}}},{}],170:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow duplicate class members",category:"ECMAScript 6",recommended:true},schema:[]},create:function create(context){var stack=[];function getState(name,isStatic){var stateMap=stack[stack.length-1];var key="$"+name;if(!stateMap[key]){stateMap[key]={nonStatic:{init:false,get:false,set:false},static:{init:false,get:false,set:false}}}return stateMap[key][isStatic?"static":"nonStatic"]}function getName(node){switch(node.type){case"Identifier":return node.name;case"Literal":return String(node.value);default:return""}}return{Program:function Program(){stack=[]},ClassBody:function ClassBody(){stack.push(Object.create(null))},"ClassBody:exit":function ClassBodyExit(){stack.pop()},MethodDefinition:function MethodDefinition(node){if(node.computed){return}var name=getName(node.key);var state=getState(name,node.static);var isDuplicate=false;if(node.kind==="get"){isDuplicate=state.init||state.get;state.get=true}else if(node.kind==="set"){isDuplicate=state.init||state.set;state.set=true}else{isDuplicate=state.init||state.get||state.set;state.init=true}if(isDuplicate){context.report({node:node,message:"Duplicate name '{{name}}'.",data:{name:name}})}}}}}},{}],171:[function(require,module,exports){"use strict";var _createClass=function(){function defineProperties(target,props){for(var i=0;i0){return}context.report({node:node,message:"Empty block statement."})},SwitchStatement:function SwitchStatement(node){if(typeof node.cases==="undefined"||node.cases.length===0){context.report({node:node,message:"Empty switch statement."})}}}}}},{"../ast-utils":70}],179:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow `null` comparisons without type-checking operators",category:"Best Practices",recommended:false},schema:[]},create:function create(context){return{BinaryExpression:function BinaryExpression(node){var badOperator=node.operator==="=="||node.operator==="!=";if(node.right.type==="Literal"&&node.right.raw==="null"&&badOperator||node.left.type==="Literal"&&node.left.raw==="null"&&badOperator){context.report({node:node,message:"Use ‘===’ to compare with ‘null’."})}}}}}},{}],180:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");var candidatesOfGlobalObject=Object.freeze(["global","window"]);function isIdentifier(node,name){return node.type==="Identifier"&&node.name===name}function isConstant(node,name){switch(node.type){case"Literal":return node.value===name;case"TemplateLiteral":return node.expressions.length===0&&node.quasis[0].value.cooked===name;default:return false}}function isMember(node,name){return node.type==="MemberExpression"&&(node.computed?isConstant:isIdentifier)(node.property,name)}module.exports={meta:{docs:{description:"disallow the use of `eval()`",category:"Best Practices",recommended:false},schema:[{type:"object",properties:{allowIndirect:{type:"boolean"}},additionalProperties:false}]},create:function create(context){var allowIndirect=Boolean(context.options[0]&&context.options[0].allowIndirect);var sourceCode=context.getSourceCode();var funcInfo=null;function enterVarScope(node){var strict=context.getScope().isStrict;funcInfo={upper:funcInfo,node:node,strict:strict,defaultThis:false,initialized:strict}}function exitVarScope(){funcInfo=funcInfo.upper}function report(node){var locationNode=node;var parent=node.parent;if(node.type==="MemberExpression"){locationNode=node.property}if(parent.type==="CallExpression"&&parent.callee===node){node=parent}context.report({node:node,loc:locationNode.loc.start,message:"eval can be harmful."})}function reportAccessingEvalViaGlobalObject(globalScope){for(var i=0;i1||node.arguments[0].type==="SpreadElement"){return null}var argument=node.arguments[0];if(astUtils.getPrecedence(argument)=node.range[1]}function hasExcessParens(node){return ruleApplies(node)&&isParenthesised(node)}function hasDoubleExcessParens(node){return ruleApplies(node)&&isParenthesisedTwice(node)}function isCondAssignException(node){return EXCEPT_COND_ASSIGN&&node.test.type==="AssignmentExpression"}function isInReturnStatement(node){while(node){if(node.type==="ReturnStatement"||node.type==="ArrowFunctionExpression"&&node.body.type!=="BlockStatement"){return true}node=node.parent}return false}function isNewExpressionWithParens(newExpression){var lastToken=sourceCode.getLastToken(newExpression);var penultimateToken=sourceCode.getTokenBefore(lastToken);return newExpression.arguments.length>0||astUtils.isOpeningParenToken(penultimateToken)&&astUtils.isClosingParenToken(lastToken)}function containsAssignment(node){if(node.type==="AssignmentExpression"){return true}else if(node.type==="ConditionalExpression"&&(node.consequent.type==="AssignmentExpression"||node.alternate.type==="AssignmentExpression")){return true}else if(node.left&&node.left.type==="AssignmentExpression"||node.right&&node.right.type==="AssignmentExpression"){return true}return false}function isReturnAssignException(node){if(!EXCEPT_RETURN_ASSIGN||!isInReturnStatement(node)){return false}if(node.type==="ReturnStatement"){return node.argument&&containsAssignment(node.argument)}else if(node.type==="ArrowFunctionExpression"&&node.body.type!=="BlockStatement"){return containsAssignment(node.body)}return containsAssignment(node)}function hasExcessParensNoLineTerminator(token,node){if(token.loc.end.line===node.loc.start.line){return hasExcessParens(node)}return hasDoubleExcessParens(node)}function requiresLeadingSpace(node){var leftParenToken=sourceCode.getTokenBefore(node);var tokenBeforeLeftParen=sourceCode.getTokenBefore(node,1);var firstToken=sourceCode.getFirstToken(node);return tokenBeforeLeftParen&&tokenBeforeLeftParen.range[1]===leftParenToken.range[0]&&leftParenToken.range[1]===firstToken.range[0]&&!astUtils.canTokensBeAdjacent(tokenBeforeLeftParen,firstToken)}function requiresTrailingSpace(node){var nextTwoTokens=sourceCode.getTokensAfter(node,{count:2});var rightParenToken=nextTwoTokens[0];var tokenAfterRightParen=nextTwoTokens[1];var tokenBeforeRightParen=sourceCode.getLastToken(node);return rightParenToken&&tokenAfterRightParen&&!sourceCode.isSpaceBetweenTokens(rightParenToken,tokenAfterRightParen)&&!astUtils.canTokensBeAdjacent(tokenBeforeRightParen,tokenAfterRightParen)}function report(node){var leftParenToken=sourceCode.getTokenBefore(node);var rightParenToken=sourceCode.getTokenAfter(node);if(tokensToIgnore.has(sourceCode.getFirstToken(node))&&!isParenthesisedTwice(node)){return}context.report({node:node,loc:leftParenToken.loc.start,message:"Gratuitous parentheses around expression.",fix:function fix(fixer){var parenthesizedSource=sourceCode.text.slice(leftParenToken.range[1],rightParenToken.range[0]);return fixer.replaceTextRange([leftParenToken.range[0],rightParenToken.range[1]],(requiresLeadingSpace(node)?" ":"")+parenthesizedSource+(requiresTrailingSpace(node)?" ":""))}})}function checkUnaryUpdate(node){if(node.type==="UnaryExpression"&&node.argument.type==="BinaryExpression"&&node.argument.operator==="**"){return}if(hasExcessParens(node.argument)&&precedence(node.argument)>=precedence(node)){report(node.argument)}}function checkCallNew(node){if(hasExcessParens(node.callee)&&precedence(node.callee)>=precedence(node)&&!(node.type==="CallExpression"&&(node.callee.type==="FunctionExpression"||node.callee.type==="NewExpression"&&!isNewExpressionWithParens(node.callee))&&!hasDoubleExcessParens(node.callee))){report(node.callee)}if(node.arguments.length===1){if(hasDoubleExcessParens(node.arguments[0])&&precedence(node.arguments[0])>=PRECEDENCE_OF_ASSIGNMENT_EXPR){report(node.arguments[0])}}else{[].forEach.call(node.arguments,function(arg){if(hasExcessParens(arg)&&precedence(arg)>=PRECEDENCE_OF_ASSIGNMENT_EXPR){report(arg)}})}}function checkBinaryLogical(node){var prec=precedence(node);var leftPrecedence=precedence(node.left);var rightPrecedence=precedence(node.right);var isExponentiation=node.operator==="**";var shouldSkipLeft=NESTED_BINARY&&(node.left.type==="BinaryExpression"||node.left.type==="LogicalExpression")||node.left.type==="UnaryExpression"&&isExponentiation;var shouldSkipRight=NESTED_BINARY&&(node.right.type==="BinaryExpression"||node.right.type==="LogicalExpression");if(!shouldSkipLeft&&hasExcessParens(node.left)&&(leftPrecedence>prec||leftPrecedence===prec&&!isExponentiation)){report(node.left)}if(!shouldSkipRight&&hasExcessParens(node.right)&&(rightPrecedence>prec||rightPrecedence===prec&&isExponentiation)){report(node.right)}}function checkClass(node){if(!node.superClass){return}var hasExtraParens=precedence(node.superClass)>PRECEDENCE_OF_UPDATE_EXPR?hasExcessParens(node.superClass):hasDoubleExcessParens(node.superClass);if(hasExtraParens){report(node.superClass)}}function checkSpreadOperator(node){var hasExtraParens=precedence(node.argument)>=PRECEDENCE_OF_ASSIGNMENT_EXPR?hasExcessParens(node.argument):hasDoubleExcessParens(node.argument);if(hasExtraParens){report(node.argument)}}function checkExpressionOrExportStatement(node){var firstToken=isParenthesised(node)?sourceCode.getTokenBefore(node):sourceCode.getFirstToken(node);var secondToken=sourceCode.getTokenAfter(firstToken,astUtils.isNotOpeningParenToken);if(astUtils.isOpeningParenToken(firstToken)&&(astUtils.isOpeningBraceToken(secondToken)||secondToken.type==="Keyword"&&(secondToken.value==="function"||secondToken.value==="class"||secondToken.value==="let"&&astUtils.isOpeningBracketToken(sourceCode.getTokenAfter(secondToken))))){tokensToIgnore.add(secondToken)}if(hasExcessParens(node)){report(node)}}return{ArrayExpression:function ArrayExpression(node){[].forEach.call(node.elements,function(e){if(e&&hasExcessParens(e)&&precedence(e)>=PRECEDENCE_OF_ASSIGNMENT_EXPR){report(e)}})},ArrowFunctionExpression:function ArrowFunctionExpression(node){if(isReturnAssignException(node)){return}if(node.body.type==="ConditionalExpression"&&IGNORE_ARROW_CONDITIONALS&&!isParenthesisedTwice(node.body)){return}if(node.body.type!=="BlockStatement"){var firstBodyToken=sourceCode.getFirstToken(node.body,astUtils.isNotOpeningParenToken);var tokenBeforeFirst=sourceCode.getTokenBefore(firstBodyToken);if(astUtils.isOpeningParenToken(tokenBeforeFirst)&&astUtils.isOpeningBraceToken(firstBodyToken)){tokensToIgnore.add(firstBodyToken)}if(hasExcessParens(node.body)&&precedence(node.body)>=PRECEDENCE_OF_ASSIGNMENT_EXPR){report(node.body)}}},AssignmentExpression:function AssignmentExpression(node){if(isReturnAssignException(node)){return}if(hasExcessParens(node.right)&&precedence(node.right)>=precedence(node)){report(node.right)}},BinaryExpression:checkBinaryLogical,CallExpression:checkCallNew,ConditionalExpression:function ConditionalExpression(node){if(isReturnAssignException(node)){return}if(hasExcessParens(node.test)&&precedence(node.test)>=precedence({type:"LogicalExpression",operator:"||"})){report(node.test)}if(hasExcessParens(node.consequent)&&precedence(node.consequent)>=PRECEDENCE_OF_ASSIGNMENT_EXPR){report(node.consequent)}if(hasExcessParens(node.alternate)&&precedence(node.alternate)>=PRECEDENCE_OF_ASSIGNMENT_EXPR){report(node.alternate)}},DoWhileStatement:function DoWhileStatement(node){if(hasDoubleExcessParens(node.test)&&!isCondAssignException(node)){report(node.test)}},ExportDefaultDeclaration:function ExportDefaultDeclaration(node){return checkExpressionOrExportStatement(node.declaration)},ExpressionStatement:function ExpressionStatement(node){return checkExpressionOrExportStatement(node.expression)},ForInStatement:function ForInStatement(node){if(hasExcessParens(node.right)){report(node.right)}if(hasExcessParens(node.left)){report(node.left)}},ForOfStatement:function ForOfStatement(node){if(hasExcessParens(node.right)){report(node.right)}if(hasExcessParens(node.left)){report(node.left)}},ForStatement:function ForStatement(node){if(node.init&&hasExcessParens(node.init)){report(node.init)}if(node.test&&hasExcessParens(node.test)&&!isCondAssignException(node)){report(node.test)}if(node.update&&hasExcessParens(node.update)){report(node.update)}},IfStatement:function IfStatement(node){if(hasDoubleExcessParens(node.test)&&!isCondAssignException(node)){report(node.test)}},LogicalExpression:checkBinaryLogical,MemberExpression:function MemberExpression(node){if(hasExcessParens(node.object)&&precedence(node.object)>=precedence(node)&&(node.computed||!(astUtils.isDecimalInteger(node.object)||node.object.type==="Literal"&&node.object.regex))){report(node.object)}if(node.computed&&hasExcessParens(node.property)){report(node.property)}},NewExpression:checkCallNew,ObjectExpression:function ObjectExpression(node){[].forEach.call(node.properties,function(e){var v=e.value;if(v&&hasExcessParens(v)&&precedence(v)>=PRECEDENCE_OF_ASSIGNMENT_EXPR){report(v)}})},ReturnStatement:function ReturnStatement(node){var returnToken=sourceCode.getFirstToken(node);if(isReturnAssignException(node)){return}if(node.argument&&hasExcessParensNoLineTerminator(returnToken,node.argument)&&!(node.argument.type==="Literal"&&node.argument.regex)){report(node.argument)}},SequenceExpression:function SequenceExpression(node){[].forEach.call(node.expressions,function(e){if(hasExcessParens(e)&&precedence(e)>=precedence(node)){report(e)}})},SwitchCase:function SwitchCase(node){if(node.test&&hasExcessParens(node.test)){report(node.test)}},SwitchStatement:function SwitchStatement(node){if(hasDoubleExcessParens(node.discriminant)){report(node.discriminant)}},ThrowStatement:function ThrowStatement(node){var throwToken=sourceCode.getFirstToken(node);if(hasExcessParensNoLineTerminator(throwToken,node.argument)){report(node.argument)}},UnaryExpression:checkUnaryUpdate,UpdateExpression:checkUnaryUpdate,AwaitExpression:checkUnaryUpdate,VariableDeclarator:function VariableDeclarator(node){if(node.init&&hasExcessParens(node.init)&&precedence(node.init)>=PRECEDENCE_OF_ASSIGNMENT_EXPR&&!(node.init.type==="Literal"&&node.init.regex)){report(node.init)}},WhileStatement:function WhileStatement(node){if(hasDoubleExcessParens(node.test)&&!isCondAssignException(node)){report(node.test)}},WithStatement:function WithStatement(node){if(hasDoubleExcessParens(node.object)){report(node.object)}},YieldExpression:function YieldExpression(node){if(node.argument){var yieldToken=sourceCode.getFirstToken(node);if(precedence(node.argument)>=precedence(node)&&hasExcessParensNoLineTerminator(yieldToken,node.argument)||hasDoubleExcessParens(node.argument)){report(node.argument)}}},ClassDeclaration:checkClass,ClassExpression:checkClass,SpreadElement:checkSpreadOperator,SpreadProperty:checkSpreadOperator,ExperimentalSpreadProperty:checkSpreadOperator}}}},{"../ast-utils.js":70}],187:[function(require,module,exports){"use strict";var FixTracker=require("../util/fix-tracker");var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"disallow unnecessary semicolons",category:"Possible Errors",recommended:true},fixable:"code",schema:[]},create:function create(context){var sourceCode=context.getSourceCode();function report(nodeOrToken){context.report({node:nodeOrToken,message:"Unnecessary semicolon.",fix:function fix(fixer){return new FixTracker(fixer,context.getSourceCode()).retainSurroundingTokens(nodeOrToken).remove(nodeOrToken)}})}function checkForPartOfClassBody(firstToken){for(var token=firstToken;token.type==="Punctuator"&&!astUtils.isClosingBraceToken(token);token=sourceCode.getTokenAfter(token)){if(astUtils.isSemicolonToken(token)){report(token)}}}return{EmptyStatement:function EmptyStatement(node){var parent=node.parent,allowedParentTypes=["ForStatement","ForInStatement","ForOfStatement","WhileStatement","DoWhileStatement","IfStatement","LabeledStatement","WithStatement"];if(allowedParentTypes.indexOf(parent.type)===-1){report(node)}},ClassBody:function ClassBody(node){checkForPartOfClassBody(sourceCode.getFirstToken(node,1))},MethodDefinition:function MethodDefinition(node){checkForPartOfClassBody(sourceCode.getTokenAfter(node))}}}}},{"../ast-utils":70,"../util/fix-tracker":351}],188:[function(require,module,exports){"use strict";var lodash=require("lodash");var DEFAULT_FALLTHROUGH_COMMENT=/falls?\s?through/i;function hasFallthroughComment(node,context,fallthroughCommentPattern){var sourceCode=context.getSourceCode();var comment=lodash.last(sourceCode.getCommentsBefore(node));return Boolean(comment&&fallthroughCommentPattern.test(comment.value))}function isReachable(segment){return segment.reachable}function hasBlankLinesBetween(node,token){return token.loc.start.line>node.loc.end.line+1}module.exports={meta:{docs:{description:"disallow fallthrough of `case` statements",category:"Best Practices",recommended:true},schema:[{type:"object",properties:{commentPattern:{type:"string"}},additionalProperties:false}]},create:function create(context){var options=context.options[0]||{};var currentCodePath=null;var sourceCode=context.getSourceCode();var fallthroughCase=null;var fallthroughCommentPattern=null;if(options.commentPattern){fallthroughCommentPattern=new RegExp(options.commentPattern)}else{fallthroughCommentPattern=DEFAULT_FALLTHROUGH_COMMENT}return{onCodePathStart:function onCodePathStart(codePath){currentCodePath=codePath},onCodePathEnd:function onCodePathEnd(){currentCodePath=currentCodePath.upper},SwitchCase:function SwitchCase(node){if(fallthroughCase&&!hasFallthroughComment(node,context,fallthroughCommentPattern)){context.report({message:"Expected a 'break' statement before '{{type}}'.",data:{type:node.test?"case":"default"},node:node})}fallthroughCase=null},"SwitchCase:exit":function SwitchCaseExit(node){var nextToken=sourceCode.getTokenAfter(node);if(currentCodePath.currentSegments.some(isReachable)&&(node.consequent.length>0||hasBlankLinesBetween(node,nextToken))&&lodash.last(node.parent.cases)!==node){fallthroughCase=node}}}}}},{lodash:49}],189:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"disallow leading or trailing decimal points in numeric literals",category:"Best Practices",recommended:false},schema:[],fixable:"code"},create:function create(context){var sourceCode=context.getSourceCode();return{Literal:function Literal(node){if(typeof node.value==="number"){if(node.raw.startsWith(".")){context.report({node:node,message:"A leading decimal point can be confused with a dot.",fix:function fix(fixer){var tokenBefore=sourceCode.getTokenBefore(node);var needsSpaceBefore=tokenBefore&&tokenBefore.range[1]===node.range[0]&&!astUtils.canTokensBeAdjacent(tokenBefore,"0"+node.raw);return fixer.insertTextBefore(node,needsSpaceBefore?" 0":"0")}})}if(node.raw.indexOf(".")===node.raw.length-1){context.report({node:node,message:"A trailing decimal point can be confused with a dot.",fix:function fix(fixer){return fixer.insertTextAfter(node,"0")}})}}}}}}},{"../ast-utils":70}],190:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"disallow reassigning `function` declarations",category:"Possible Errors",recommended:true},schema:[]},create:function create(context){function checkReference(references){astUtils.getModifyingReferences(references).forEach(function(reference){context.report({node:reference.identifier,message:"'{{name}}' is a function.",data:{name:reference.identifier.name}})})}function checkVariable(variable){if(variable.defs[0].type==="FunctionName"){checkReference(variable.references)}}function checkForFunction(node){context.getDeclaredVariables(node).forEach(checkVariable)}return{FunctionDeclaration:checkForFunction,FunctionExpression:checkForFunction}}}},{"../ast-utils":70}],191:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow assignments to native objects or read-only global variables",category:"Best Practices",recommended:true},schema:[{type:"object",properties:{exceptions:{type:"array",items:{type:"string"},uniqueItems:true}},additionalProperties:false}]},create:function create(context){var config=context.options[0];var exceptions=config&&config.exceptions||[];function checkReference(reference,index,references){var identifier=reference.identifier;if(reference.init===false&&reference.isWrite()&&(index===0||references[index-1].identifier!==identifier)){context.report({node:identifier,message:"Read-only global '{{name}}' should not be modified.",data:identifier})}}function checkVariable(variable){if(variable.writeable===false&&exceptions.indexOf(variable.name)===-1){variable.references.forEach(checkReference)}}return{Program:function Program(){var globalScope=context.getScope();globalScope.variables.forEach(checkVariable)}}}}},{}],192:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");var INDEX_OF_PATTERN=/^(?:i|lastI)ndexOf$/;var ALLOWABLE_OPERATORS=["~","!!","+","*"];function parseOptions(options){options=options||{};return{boolean:"boolean"in options?Boolean(options.boolean):true,number:"number"in options?Boolean(options.number):true,string:"string"in options?Boolean(options.string):true,allow:options.allow||[]}}function isDoubleLogicalNegating(node){return node.operator==="!"&&node.argument.type==="UnaryExpression"&&node.argument.operator==="!"}function isBinaryNegatingOfIndexOf(node){return node.operator==="~"&&node.argument.type==="CallExpression"&&node.argument.callee.type==="MemberExpression"&&node.argument.callee.property.type==="Identifier"&&INDEX_OF_PATTERN.test(node.argument.callee.property.name)}function isMultiplyByOne(node){return node.operator==="*"&&(node.left.type==="Literal"&&node.left.value===1||node.right.type==="Literal"&&node.right.value===1)}function isNumeric(node){return node.type==="Literal"&&typeof node.value==="number"||node.type==="CallExpression"&&(node.callee.name==="Number"||node.callee.name==="parseInt"||node.callee.name==="parseFloat")}function getNonNumericOperand(node){var left=node.left,right=node.right;if(right.type!=="BinaryExpression"&&!isNumeric(right)){return right}if(left.type!=="BinaryExpression"&&!isNumeric(left)){return left}return null}function isEmptyString(node){return astUtils.isStringLiteral(node)&&(node.value===""||node.type==="TemplateLiteral"&&node.quasis.length===1&&node.quasis[0].value.cooked==="")}function isConcatWithEmptyString(node){return node.operator==="+"&&(isEmptyString(node.left)&&!astUtils.isStringLiteral(node.right)||isEmptyString(node.right)&&!astUtils.isStringLiteral(node.left))}function isAppendEmptyString(node){return node.operator==="+="&&isEmptyString(node.right)}function getNonEmptyOperand(node){return isEmptyString(node.left)?node.right:node.left}module.exports={meta:{docs:{description:"disallow shorthand type conversions",category:"Best Practices",recommended:false},fixable:"code",schema:[{type:"object",properties:{boolean:{type:"boolean"},number:{type:"boolean"},string:{type:"boolean"},allow:{type:"array",items:{enum:ALLOWABLE_OPERATORS},uniqueItems:true}},additionalProperties:false}]},create:function create(context){var options=parseOptions(context.options[0]);var sourceCode=context.getSourceCode();function report(node,recommendation,shouldFix){shouldFix=typeof shouldFix==="undefined"?true:shouldFix;context.report({node:node,message:"use `{{recommendation}}` instead.",data:{recommendation:recommendation},fix:function fix(fixer){if(!shouldFix){return null}var tokenBefore=sourceCode.getTokenBefore(node);if(tokenBefore&&tokenBefore.range[1]===node.range[0]&&!astUtils.canTokensBeAdjacent(tokenBefore,recommendation)){return fixer.replaceText(node," "+recommendation)}return fixer.replaceText(node,recommendation)}})}return{UnaryExpression:function UnaryExpression(node){var operatorAllowed=void 0;operatorAllowed=options.allow.indexOf("!!")>=0;if(!operatorAllowed&&options.boolean&&isDoubleLogicalNegating(node)){var recommendation="Boolean("+sourceCode.getText(node.argument.argument)+")";report(node,recommendation)}operatorAllowed=options.allow.indexOf("~")>=0;if(!operatorAllowed&&options.boolean&&isBinaryNegatingOfIndexOf(node)){var _recommendation=sourceCode.getText(node.argument)+" !== -1";report(node,_recommendation,false)}operatorAllowed=options.allow.indexOf("+")>=0;if(!operatorAllowed&&options.number&&node.operator==="+"&&!isNumeric(node.argument)){var _recommendation2="Number("+sourceCode.getText(node.argument)+")";report(node,_recommendation2)}},"BinaryExpression:exit":function BinaryExpressionExit(node){var operatorAllowed=void 0;operatorAllowed=options.allow.indexOf("*")>=0;var nonNumericOperand=!operatorAllowed&&options.number&&isMultiplyByOne(node)&&getNonNumericOperand(node);if(nonNumericOperand){var recommendation="Number("+sourceCode.getText(nonNumericOperand)+")";report(node,recommendation)}operatorAllowed=options.allow.indexOf("+")>=0;if(!operatorAllowed&&options.string&&isConcatWithEmptyString(node)){var _recommendation3="String("+sourceCode.getText(getNonEmptyOperand(node))+")";report(node,_recommendation3)}},AssignmentExpression:function AssignmentExpression(node){var operatorAllowed=options.allow.indexOf("+")>=0;if(!operatorAllowed&&options.string&&isAppendEmptyString(node)){var code=sourceCode.getText(getNonEmptyOperand(node));var recommendation=code+" = String("+code+")";report(node,recommendation)}}}}}},{"../ast-utils":70}],193:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow variable and `function` declarations in the global scope",category:"Best Practices",recommended:false},schema:[]},create:function create(context){return{Program:function Program(){var scope=context.getScope();scope.variables.forEach(function(variable){if(variable.writeable){return}variable.defs.forEach(function(def){if(def.type==="FunctionName"||def.type==="Variable"&&def.parent.kind==="var"){context.report({node:def.node,message:"Implicit global variable, assign as global property instead."})}})});scope.implicit.variables.forEach(function(variable){var scopeVariable=scope.set.get(variable.name);if(scopeVariable&&scopeVariable.writeable){return}variable.defs.forEach(function(def){context.report({node:def.node,message:"Implicit global variable, assign as global property instead."})})})}}}}},{}],194:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow the use of `eval()`-like methods",category:"Best Practices",recommended:false},schema:[]},create:function create(context){var CALLEE_RE=/^(setTimeout|setInterval|execScript)$/;var impliedEvalAncestorsStack=[];function last(arr){return arr?arr[arr.length-1]:null}function isImpliedEvalMemberExpression(node){var object=node.object,property=node.property,hasImpliedEvalName=CALLEE_RE.test(property.name)||CALLEE_RE.test(property.value);return object.name==="window"&&hasImpliedEvalName}function isImpliedEvalCallExpression(node){var isMemberExpression=node.callee.type==="MemberExpression",isIdentifier=node.callee.type==="Identifier",isImpliedEvalCallee=isIdentifier&&CALLEE_RE.test(node.callee.name)||isMemberExpression&&isImpliedEvalMemberExpression(node.callee);return isImpliedEvalCallee&&node.arguments.length}function hasImpliedEvalParent(node){return node.parent===last(last(impliedEvalAncestorsStack))&&(node.parent.type!=="CallExpression"||node===node.parent.arguments[0])}function checkString(node){if(hasImpliedEvalParent(node)){var substack=impliedEvalAncestorsStack.pop();context.report({node:substack[0],message:"Implied eval. Consider passing a function instead of a string."})}}return{CallExpression:function CallExpression(node){if(isImpliedEvalCallExpression(node)){impliedEvalAncestorsStack.push([node])}},"CallExpression:exit":function CallExpressionExit(node){if(node===last(last(impliedEvalAncestorsStack))){impliedEvalAncestorsStack.pop()}},BinaryExpression:function BinaryExpression(node){if(node.operator==="+"&&hasImpliedEvalParent(node)){last(impliedEvalAncestorsStack).push(node)}},"BinaryExpression:exit":function BinaryExpressionExit(node){if(node===last(last(impliedEvalAncestorsStack))){last(impliedEvalAncestorsStack).pop()}},Literal:function Literal(node){if(typeof node.value==="string"){checkString(node)}},TemplateLiteral:function TemplateLiteral(node){checkString(node)}}}}},{}],195:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"disallow inline comments after code",category:"Stylistic Issues",recommended:false},schema:[]},create:function create(context){var sourceCode=context.getSourceCode();function testCodeAroundComment(node){var startLine=String(sourceCode.lines[node.loc.start.line-1]);var endLine=String(sourceCode.lines[node.loc.end.line-1]);var preamble=startLine.slice(0,node.loc.start.column).trim();var postamble=endLine.slice(node.loc.end.column).trim();var isDirective=astUtils.isDirectiveComment(node);if(!isDirective&&(preamble||postamble)){context.report({node:node,message:"Unexpected comment inline with code."})}}return{Program:function Program(){var comments=sourceCode.getAllComments();comments.filter(function(token){return token.type!=="Shebang"}).forEach(testCodeAroundComment)}}}}},{"../ast-utils":70}],196:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow variable or `function` declarations in nested blocks",category:"Possible Errors",recommended:true},schema:[{enum:["functions","both"]}]},create:function create(context){function nearestBody(){var ancestors=context.getAncestors();var ancestor=ancestors.pop(),generation=1;while(ancestor&&["Program","FunctionDeclaration","FunctionExpression","ArrowFunctionExpression"].indexOf(ancestor.type)<0){generation+=1;ancestor=ancestors.pop()}return{type:ancestor.type,distance:generation}}function check(node){var body=nearestBody(),valid=body.type==="Program"&&body.distance===1||body.distance===2;if(!valid){context.report({node:node,message:"Move {{type}} declaration to {{body}} root.",data:{type:node.type==="FunctionDeclaration"?"function":"variable",body:body.type==="Program"?"program":"function body"}})}}return{FunctionDeclaration:check,VariableDeclaration:function VariableDeclaration(node){if(context.options[0]==="both"&&node.kind==="var"){check(node)}}}}}},{}],197:[function(require,module,exports){"use strict";var espree=require("espree");module.exports={meta:{docs:{description:"disallow invalid regular expression strings in `RegExp` constructors",category:"Possible Errors",recommended:true},schema:[{type:"object",properties:{allowConstructorFlags:{type:"array",items:{type:"string"}}},additionalProperties:false}]},create:function create(context){var options=context.options[0];var allowedFlags="";if(options&&options.allowConstructorFlags){allowedFlags=options.allowConstructorFlags.join("")}function isString(node){return node&&node.type==="Literal"&&typeof node.value==="string"}function check(node){if(node.callee.type==="Identifier"&&node.callee.name==="RegExp"&&isString(node.arguments[0])){var flags=isString(node.arguments[1])?node.arguments[1].value:"";if(allowedFlags){flags=flags.replace(new RegExp("["+allowedFlags+"]","gi"),"")}try{void new RegExp(node.arguments[0].value)}catch(e){context.report({node:node,message:"{{message}}.",data:e})}if(flags){try{espree.parse("/./"+flags,context.parserOptions)}catch(ex){context.report({node:node,message:"Invalid flags supplied to RegExp constructor '{{flags}}'.",data:{flags:flags}})}}}}return{CallExpression:check,NewExpression:check}}}},{espree:"espree"}],198:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"disallow `this` keywords outside of classes or class-like objects",category:"Best Practices",recommended:false},schema:[]},create:function create(context){var stack=[],sourceCode=context.getSourceCode();stack.getCurrent=function(){var current=this[this.length-1];if(!current.init){current.init=true;current.valid=!astUtils.isDefaultThisBinding(current.node,sourceCode)}return current};function enterFunction(node){stack.push({init:!context.getScope().isStrict,node:node,valid:true})}function exitFunction(){stack.pop()}return{Program:function Program(node){var scope=context.getScope(),features=context.parserOptions.ecmaFeatures||{};stack.push({init:true,node:node,valid:!(scope.isStrict||node.sourceType==="module"||features.globalReturn&&scope.childScopes[0].isStrict)})},"Program:exit":function ProgramExit(){stack.pop()},FunctionDeclaration:enterFunction,"FunctionDeclaration:exit":exitFunction,FunctionExpression:enterFunction,"FunctionExpression:exit":exitFunction,ThisExpression:function ThisExpression(node){var current=stack.getCurrent();if(current&&!current.valid){context.report({node:node,message:"Unexpected 'this'."})}}}}}},{"../ast-utils":70}],199:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");var ALL_IRREGULARS=/[\f\v\u0085\ufeff\u00a0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u202f\u205f\u3000\u2028\u2029]/;var IRREGULAR_WHITESPACE=/[\f\v\u0085\ufeff\u00a0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u202f\u205f\u3000]+/gm;var IRREGULAR_LINE_TERMINATORS=/[\u2028\u2029]/gm;var LINE_BREAK=astUtils.createGlobalLinebreakMatcher();module.exports={meta:{docs:{description:"disallow irregular whitespace outside of strings and comments",category:"Possible Errors",recommended:true},schema:[{type:"object",properties:{skipComments:{type:"boolean"},skipStrings:{type:"boolean"},skipTemplates:{type:"boolean"},skipRegExps:{type:"boolean"}},additionalProperties:false}]},create:function create(context){var errors=[];var options=context.options[0]||{};var skipComments=!!options.skipComments;var skipStrings=options.skipStrings!==false;var skipRegExps=!!options.skipRegExps;var skipTemplates=!!options.skipTemplates;var sourceCode=context.getSourceCode();var commentNodes=sourceCode.getAllComments();function removeWhitespaceError(node){var locStart=node.loc.start;var locEnd=node.loc.end;errors=errors.filter(function(error){var errorLoc=error[1];if(errorLoc.line>=locStart.line&&errorLoc.line<=locEnd.line){if(errorLoc.column>=locStart.column&&(errorLoc.column<=locEnd.column||errorLoc.line=6){ruleDef={BlockStatement:function BlockStatement(node){if(isLoneBlock(node)){loneBlocks.push(node)}},"BlockStatement:exit":function BlockStatementExit(node){if(loneBlocks.length>0&&loneBlocks[loneBlocks.length-1]===node){loneBlocks.pop();report(node)}}};ruleDef.VariableDeclaration=function(node){if(node.kind==="let"||node.kind==="const"){markLoneBlock()}};ruleDef.FunctionDeclaration=function(){if(context.getScope().isStrict){markLoneBlock()}};ruleDef.ClassDeclaration=markLoneBlock}return ruleDef}}},{}],204:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow `if` statements as the only statement in `else` blocks",category:"Stylistic Issues",recommended:false},schema:[],fixable:"code"},create:function create(context){var sourceCode=context.getSourceCode();return{IfStatement:function IfStatement(node){var ancestors=context.getAncestors(),parent=ancestors.pop(),grandparent=ancestors.pop();if(parent&&parent.type==="BlockStatement"&&parent.body.length===1&&grandparent&&grandparent.type==="IfStatement"&&parent===grandparent.alternate){context.report({node:node,message:"Unexpected if as the only statement in an else block.",fix:function fix(fixer){var openingElseCurly=sourceCode.getFirstToken(parent);var closingElseCurly=sourceCode.getLastToken(parent);var elseKeyword=sourceCode.getTokenBefore(openingElseCurly);var tokenAfterElseBlock=sourceCode.getTokenAfter(closingElseCurly);var lastIfToken=sourceCode.getLastToken(node.consequent);var sourceText=sourceCode.getText();if(sourceText.slice(openingElseCurly.range[1],node.range[0]).trim()||sourceText.slice(node.range[1],closingElseCurly.range[0]).trim()){return null}if(node.consequent.type!=="BlockStatement"&&lastIfToken.value!==";"&&tokenAfterElseBlock&&(node.consequent.loc.end.line===tokenAfterElseBlock.loc.start.line||/^[([/+`-]/.test(tokenAfterElseBlock.value)||lastIfToken.value==="++"||lastIfToken.value==="--")){return null}return fixer.replaceTextRange([openingElseCurly.range[0],closingElseCurly.range[1]],(elseKeyword.range[1]===openingElseCurly.range[0]?" ":"")+sourceCode.getText(node))}})}}}}}},{}],205:[function(require,module,exports){"use strict";function getContainingLoopNode(node){var parent=node.parent;while(parent){switch(parent.type){case"WhileStatement":case"DoWhileStatement":return parent;case"ForStatement":if(parent.init!==node){return parent}break;case"ForInStatement":case"ForOfStatement":if(parent.right!==node){return parent}break;case"ArrowFunctionExpression":case"FunctionExpression":case"FunctionDeclaration":return null;default:break}node=parent;parent=node.parent}return null}function getTopLoopNode(node,excludedNode){var retv=node;var border=excludedNode?excludedNode.range[1]:0;while(node&&node.range[0]>=border){retv=node;node=getContainingLoopNode(node)}return retv}function isSafe(funcNode,loopNode,reference){var variable=reference.resolved;var definition=variable&&variable.defs[0];var declaration=definition&&definition.parent;var kind=declaration&&declaration.type==="VariableDeclaration"?declaration.kind:"";if(kind==="const"){return true}if(kind==="let"&&declaration.range[0]>loopNode.range[0]&&declaration.range[1]0&&!references.every(isSafe.bind(null,node,loopNode))){context.report({node:node,message:"Don't make functions within a loop."})}}return{ArrowFunctionExpression:checkForLoops,FunctionExpression:checkForLoops,FunctionDeclaration:checkForLoops}}}},{}],206:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow magic numbers",category:"Best Practices",recommended:false},schema:[{type:"object",properties:{detectObjects:{type:"boolean"},enforceConst:{type:"boolean"},ignore:{type:"array",items:{type:"number"},uniqueItems:true},ignoreArrayIndexes:{type:"boolean"}},additionalProperties:false}]},create:function create(context){var config=context.options[0]||{},detectObjects=!!config.detectObjects,enforceConst=!!config.enforceConst,ignore=config.ignore||[],ignoreArrayIndexes=!!config.ignoreArrayIndexes;function isNumber(node){return typeof node.value==="number"}function shouldIgnoreNumber(num){return ignore.indexOf(num)!==-1}function shouldIgnoreParseInt(parent,node){return parent.type==="CallExpression"&&node===parent.arguments[1]&&(parent.callee.name==="parseInt"||parent.callee.type==="MemberExpression"&&parent.callee.object.name==="Number"&&parent.callee.property.name==="parseInt")}function shouldIgnoreJSXNumbers(parent){return parent.type.indexOf("JSX")===0}function shouldIgnoreArrayIndexes(parent){return parent.type==="MemberExpression"&&ignoreArrayIndexes}return{Literal:function Literal(node){var parent=node.parent,value=node.value,raw=node.raw;var okTypes=detectObjects?[]:["ObjectExpression","Property","AssignmentExpression"];if(!isNumber(node)){return}if(parent.type==="UnaryExpression"&&parent.operator==="-"){node=parent;parent=node.parent;value=-value;raw="-"+raw}if(shouldIgnoreNumber(value)||shouldIgnoreParseInt(parent,node)||shouldIgnoreArrayIndexes(parent)||shouldIgnoreJSXNumbers(parent)){return}if(parent.type==="VariableDeclarator"){if(enforceConst&&parent.parent.kind!=="const"){context.report({node:node,message:"Number constants declarations must use 'const'."})}}else if(okTypes.indexOf(parent.type)===-1||parent.type==="AssignmentExpression"&&parent.left.type==="Identifier"){context.report({node:node,message:"No magic number: {{raw}}.",data:{raw:raw}})}}}}}},{}],207:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils.js");var ARITHMETIC_OPERATORS=["+","-","*","/","%","**"];var BITWISE_OPERATORS=["&","|","^","~","<<",">>",">>>"];var COMPARISON_OPERATORS=["==","!=","===","!==",">",">=","<","<="];var LOGICAL_OPERATORS=["&&","||"];var RELATIONAL_OPERATORS=["in","instanceof"];var ALL_OPERATORS=[].concat(ARITHMETIC_OPERATORS,BITWISE_OPERATORS,COMPARISON_OPERATORS,LOGICAL_OPERATORS,RELATIONAL_OPERATORS);var DEFAULT_GROUPS=[ARITHMETIC_OPERATORS,BITWISE_OPERATORS,COMPARISON_OPERATORS,LOGICAL_OPERATORS,RELATIONAL_OPERATORS];var TARGET_NODE_TYPE=/^(?:Binary|Logical)Expression$/;function normalizeOptions(options){var hasGroups=options&&options.groups&&options.groups.length>0;var groups=hasGroups?options.groups:DEFAULT_GROUPS;var allowSamePrecedence=(options&&options.allowSamePrecedence)!==false;return{groups:groups,allowSamePrecedence:allowSamePrecedence}}function includesBothInAGroup(groups,left,right){return groups.some(function(group){return group.indexOf(left)!==-1&&group.indexOf(right)!==-1})}module.exports={meta:{docs:{description:"disallow mixed binary operators",category:"Stylistic Issues",recommended:false},schema:[{type:"object",properties:{groups:{type:"array",items:{type:"array",items:{enum:ALL_OPERATORS},minItems:2,uniqueItems:true},uniqueItems:true},allowSamePrecedence:{type:"boolean"}},additionalProperties:false}]},create:function create(context){var sourceCode=context.getSourceCode();var options=normalizeOptions(context.options[0]);function shouldIgnore(node){var a=node;var b=node.parent;return!includesBothInAGroup(options.groups,a.operator,b.operator)||options.allowSamePrecedence&&astUtils.getPrecedence(a)===astUtils.getPrecedence(b)}function isMixedWithParent(node){return node.operator!==node.parent.operator&&!astUtils.isParenthesised(sourceCode,node)}function getOperatorToken(node){return sourceCode.getTokenAfter(node.left,astUtils.isNotClosingParenToken)}function reportBothOperators(node){var parent=node.parent;var left=parent.left===node?node:parent;var right=parent.left!==node?node:parent;var message="Unexpected mix of '{{leftOperator}}' and '{{rightOperator}}'.";var data={leftOperator:left.operator,rightOperator:right.operator};context.report({node:left,loc:getOperatorToken(left).loc.start,message:message,data:data});context.report({node:right,loc:getOperatorToken(right).loc.start,message:message,data:data})}function check(node){if(TARGET_NODE_TYPE.test(node.parent.type)&&isMixedWithParent(node)&&!shouldIgnore(node)){reportBothOperators(node)}}return{BinaryExpression:check,LogicalExpression:check}}}},{"../ast-utils.js":70}],208:[function(require,module,exports){"use strict";var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj};module.exports={meta:{docs:{description:"disallow `require` calls to be mixed with regular variable declarations",category:"Node.js and CommonJS",recommended:false},schema:[{oneOf:[{type:"boolean"},{type:"object",properties:{grouping:{type:"boolean"},allowCall:{type:"boolean"}},additionalProperties:false}]}]},create:function create(context){var options=context.options[0];var grouping=false,allowCall=false;if((typeof options==="undefined"?"undefined":_typeof(options))==="object"){grouping=options.grouping;allowCall=options.allowCall}else{grouping=!!options}function getBuiltinModules(){return["assert","buffer","child_process","cluster","crypto","dgram","dns","domain","events","fs","http","https","net","os","path","punycode","querystring","readline","repl","smalloc","stream","string_decoder","tls","tty","url","util","v8","vm","zlib"]}var BUILTIN_MODULES=getBuiltinModules();var DECL_REQUIRE="require",DECL_UNINITIALIZED="uninitialized",DECL_OTHER="other";var REQ_CORE="core",REQ_FILE="file",REQ_MODULE="module",REQ_COMPUTED="computed";function getDeclarationType(initExpression){if(!initExpression){return DECL_UNINITIALIZED}if(initExpression.type==="CallExpression"&&initExpression.callee.type==="Identifier"&&initExpression.callee.name==="require"){return DECL_REQUIRE}else if(allowCall&&initExpression.type==="CallExpression"&&initExpression.callee.type==="CallExpression"){return getDeclarationType(initExpression.callee)}else if(initExpression.type==="MemberExpression"){return getDeclarationType(initExpression.object)}return DECL_OTHER}function inferModuleType(initExpression){if(initExpression.type==="MemberExpression"){return inferModuleType(initExpression.object)}else if(initExpression.arguments.length===0){return REQ_COMPUTED}var arg=initExpression.arguments[0];if(arg.type!=="Literal"||typeof arg.value!=="string"){return REQ_COMPUTED}if(BUILTIN_MODULES.indexOf(arg.value)!==-1){return REQ_CORE}else if(/^\.{0,2}\//.test(arg.value)){return REQ_FILE}return REQ_MODULE}function isMixed(declarations){var contains={};declarations.forEach(function(declaration){var type=getDeclarationType(declaration.init);contains[type]=true});return!!(contains[DECL_REQUIRE]&&(contains[DECL_UNINITIALIZED]||contains[DECL_OTHER]))}function isGrouped(declarations){var found={};declarations.forEach(function(declaration){if(getDeclarationType(declaration.init)===DECL_REQUIRE){found[inferModuleType(declaration.init)]=true}});return Object.keys(found).length<=1}return{VariableDeclaration:function VariableDeclaration(node){if(isMixed(node.declarations)){context.report({node:node,message:"Do not mix 'require' and other declarations."})}else if(grouping&&!isGrouped(node.declarations)){context.report({node:node,message:"Do not mix core, module, file and computed requires."})}}}}}},{}],209:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow mixed spaces and tabs for indentation",category:"Stylistic Issues",recommended:true},schema:[{enum:["smart-tabs",true,false]}]},create:function create(context){var sourceCode=context.getSourceCode();var smartTabs=void 0;var ignoredLocs=[];switch(context.options[0]){case true:case"smart-tabs":smartTabs=true;break;default:smartTabs=false}function beforeLoc(loc,line,column){if(lineloc.end.line){return true}return line===loc.end.line&&column>loc.end.column}return{TemplateElement:function TemplateElement(node){ignoredLocs.push(node.loc)},"Program:exit":function ProgramExit(node){var regex=/^(?=[\t ]*(\t | \t))/;var lines=sourceCode.lines,comments=sourceCode.getAllComments();comments.forEach(function(comment){ignoredLocs.push(comment.loc)});ignoredLocs.sort(function(first,second){if(beforeLoc(first,second.start.line,second.start.column)){return 1}if(beforeLoc(second,first.start.line,second.start.column)){return-1}return 0});if(smartTabs){regex=/^(?=[\t ]* \t)/}lines.forEach(function(line,i){var match=regex.exec(line);if(match){var lineNumber=i+1,column=match.index+1;for(var j=0;j0}function isLastTokenOfLine(token){var nextToken=sourceCode.getTokenAfter(token,{includeComments:true});if(!nextToken){return true}return!astUtils.isTokenOnSameLine(token,nextToken)}function isIndexInComment(index,comments){while(lastCommentIndexcomment.range[1]){lastCommentIndex++}else{break}}return false}function formatReportedCommentValue(token){var valueLines=token.value.split("\n");var value=valueLines[0];var formattedValue=value.substring(0,12)+"...";return valueLines.length===1&&value.length<=12?value:formattedValue}function createFix(leftToken,rightToken){return function(fixer){return fixer.replaceTextRange([leftToken.range[1],rightToken.range[0]]," ")}}return{Program:function Program(){var source=sourceCode.getText(),allComments=sourceCode.getAllComments(),pattern=/[^\s].*? {2,}/g;var parent=void 0;while(pattern.test(source)){if(!isIndexInComment(pattern.lastIndex,allComments)){var token=sourceCode.getTokenByRangeStart(pattern.lastIndex,{includeComments:true});if(token){if(ignoreEOLComments&&astUtils.isCommentToken(token)&&isLastTokenOfLine(token)){return}var previousToken=sourceCode.getTokenBefore(token,{includeComments:true});if(hasExceptions){parent=sourceCode.getNodeByRangeIndex(pattern.lastIndex-1)}if(!parent||!exceptions[parent.type]){var value=token.value;if(token.type==="Block"){value="/*"+formatReportedCommentValue(token)+"*/"}else if(token.type==="Line"){value="//"+formatReportedCommentValue(token)}context.report({node:token,loc:token.loc.start,message:"Multiple spaces found before '{{value}}'.",data:{value:value},fix:createFix(previousToken,token)})}}}}}}}}},{"../ast-utils":70}],212:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"disallow multiline strings",category:"Best Practices",recommended:false},schema:[]},create:function create(context){function isJSXElement(node){return node.type.indexOf("JSX")===0}return{Literal:function Literal(node){if(astUtils.LINEBREAK_MATCHER.test(node.raw)&&!isJSXElement(node.parent)){context.report({node:node,message:"Multiline support is limited to browsers supporting ES5 only."})}}}}}},{"../ast-utils":70}],213:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow multiple empty lines",category:"Stylistic Issues",recommended:false},fixable:"whitespace",schema:[{type:"object",properties:{max:{type:"integer",minimum:0},maxEOF:{type:"integer",minimum:0},maxBOF:{type:"integer",minimum:0}},required:["max"],additionalProperties:false}]},create:function create(context){var max=2,maxEOF=max,maxBOF=max;if(context.options.length){max=context.options[0].max;maxEOF=typeof context.options[0].maxEOF!=="undefined"?context.options[0].maxEOF:max;maxBOF=typeof context.options[0].maxBOF!=="undefined"?context.options[0].maxBOF:max}var sourceCode=context.getSourceCode();var allLines=sourceCode.lines[sourceCode.lines.length-1]===""?sourceCode.lines.slice(0,-1):sourceCode.lines;var templateLiteralLines=new Set;return{TemplateLiteral:function TemplateLiteral(node){node.quasis.forEach(function(literalPart){for(var ignoredLine=literalPart.loc.start.line;ignoredLinemaxAllowed){context.report({node:node,loc:{start:{line:lastLineNumber+1,column:0},end:{line:lineNumber,column:0}},message:message,data:{max:maxAllowed,pluralizedLines:maxAllowed===1?"line":"lines"},fix:function fix(fixer){var rangeStart=sourceCode.getIndexFromLoc({line:lastLineNumber+1,column:0});var lineNumberAfterRemovedLines=lineNumber-maxAllowed;var rangeEnd=lineNumberAfterRemovedLines<=allLines.length?sourceCode.getIndexFromLoc({line:lineNumberAfterRemovedLines,column:0}):sourceCode.text.length;return fixer.removeRange([rangeStart,rangeEnd])}})}return lineNumber},0)}}}}},{}],214:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow assignments to native objects or read-only global variables",category:"Best Practices",recommended:false,replacedBy:["no-global-assign"]},deprecated:true,schema:[{type:"object",properties:{exceptions:{type:"array",items:{type:"string"},uniqueItems:true}},additionalProperties:false}]},create:function create(context){var config=context.options[0];var exceptions=config&&config.exceptions||[];function checkReference(reference,index,references){var identifier=reference.identifier;if(reference.init===false&&reference.isWrite()&&(index===0||references[index-1].identifier!==identifier)){context.report({node:identifier,message:"Read-only global '{{name}}' should not be modified.",data:identifier})}}function checkVariable(variable){if(variable.writeable===false&&exceptions.indexOf(variable.name)===-1){variable.references.forEach(checkReference)}}return{Program:function Program(){var globalScope=context.getScope();globalScope.variables.forEach(checkVariable)}}}}},{}],215:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow negated conditions",category:"Stylistic Issues",recommended:false},schema:[]},create:function create(context){function hasElseWithoutCondition(node){return node.alternate&&node.alternate.type!=="IfStatement"}function isNegatedUnaryExpression(test){return test.type==="UnaryExpression"&&test.operator==="!"}function isNegatedBinaryExpression(test){return test.type==="BinaryExpression"&&(test.operator==="!="||test.operator==="!==")}function isNegatedIf(node){return isNegatedUnaryExpression(node.test)||isNegatedBinaryExpression(node.test)}return{IfStatement:function IfStatement(node){if(!hasElseWithoutCondition(node)){return}if(isNegatedIf(node)){context.report({node:node,message:"Unexpected negated condition."})}},ConditionalExpression:function ConditionalExpression(node){if(isNegatedIf(node)){context.report({node:node,message:"Unexpected negated condition."})}}}}}},{}],216:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow negating the left operand in `in` expressions",category:"Possible Errors",recommended:false,replacedBy:["no-unsafe-negation"]},deprecated:true,schema:[]},create:function create(context){return{BinaryExpression:function BinaryExpression(node){if(node.operator==="in"&&node.left.type==="UnaryExpression"&&node.left.operator==="!"){context.report({node:node,message:"The 'in' expression's left operand is negated."})}}}}}},{}],217:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow nested ternary expressions",category:"Stylistic Issues",recommended:false},schema:[]},create:function create(context){return{ConditionalExpression:function ConditionalExpression(node){if(node.alternate.type==="ConditionalExpression"||node.consequent.type==="ConditionalExpression"){context.report({node:node,message:"Do not nest ternary expressions."})}}}}}},{}],218:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow `new` operators with the `Function` object",category:"Best Practices",recommended:false},schema:[]},create:function create(context){function report(node){context.report({node:node,message:"The Function constructor is eval."})}return{"NewExpression[callee.name = 'Function']":report,"CallExpression[callee.name = 'Function']":report}}}},{}],219:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow `Object` constructors",category:"Stylistic Issues",recommended:false},schema:[]},create:function create(context){return{NewExpression:function NewExpression(node){if(node.callee.name==="Object"){context.report({node:node,message:"The object literal notation {} is preferrable."})}}}}}},{}],220:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow `new` operators with calls to `require`",category:"Node.js and CommonJS",recommended:false},schema:[]},create:function create(context){return{NewExpression:function NewExpression(node){if(node.callee.type==="Identifier"&&node.callee.name==="require"){context.report({node:node,message:"Unexpected use of new with require."})}}}}}},{}],221:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow `new` operators with the `Symbol` object",category:"ECMAScript 6",recommended:true},schema:[]},create:function create(context){return{"Program:exit":function ProgramExit(){var globalScope=context.getScope();var variable=globalScope.set.get("Symbol");if(variable&&variable.defs.length===0){variable.references.forEach(function(ref){var node=ref.identifier;if(node.parent&&node.parent.type==="NewExpression"){context.report({node:node,message:"`Symbol` cannot be called as a constructor."})}})}}}}}},{}],222:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow `new` operators with the `String`, `Number`, and `Boolean` objects",category:"Best Practices",recommended:false},schema:[]},create:function create(context){return{NewExpression:function NewExpression(node){var wrapperObjects=["String","Number","Boolean","Math","JSON"];if(wrapperObjects.indexOf(node.callee.name)>-1){context.report({node:node,message:"Do not use {{fn}} as a constructor.",data:{fn:node.callee.name}})}}}}}},{}],223:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow `new` operators outside of assignments or comparisons",category:"Best Practices",recommended:false},schema:[]},create:function create(context){return{"ExpressionStatement > NewExpression":function ExpressionStatementNewExpression(node){context.report({node:node.parent,message:"Do not use 'new' for side effects."})}}}}},{}],224:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow calling global object properties as functions",category:"Possible Errors",recommended:true},schema:[]},create:function create(context){return{CallExpression:function CallExpression(node){if(node.callee.type==="Identifier"){var name=node.callee.name;if(name==="Math"||name==="JSON"||name==="Reflect"){context.report({node:node,message:"'{{name}}' is not a function.",data:{name:name}})}}}}}}},{}],225:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow octal escape sequences in string literals",category:"Best Practices",recommended:false},schema:[]},create:function create(context){return{Literal:function Literal(node){if(typeof node.value!=="string"){return}var match=node.raw.match(/^([^\\]|\\[^0-7])*\\([0-3][0-7]{1,2}|[4-7][0-7]|[0-7])/);if(match){var octalDigit=match[2];if(match[2]!=="0"||typeof match[3]!=="undefined"){context.report({node:node,message:"Don't use octal: '\\{{octalDigit}}'. Use '\\u....' instead.",data:{octalDigit:octalDigit}})}}}}}}},{}],226:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow octal literals",category:"Best Practices",recommended:true},schema:[]},create:function create(context){return{Literal:function Literal(node){if(typeof node.value==="number"&&/^0[0-7]/.test(node.raw)){context.report({node:node,message:"Octal literals should not be used."})}}}}}},{}],227:[function(require,module,exports){"use strict";var stopNodePattern=/(?:Statement|Declaration|Function(?:Expression)?|Program)$/;module.exports={meta:{docs:{description:"disallow reassigning `function` parameters",category:"Best Practices",recommended:false},schema:[{oneOf:[{type:"object",properties:{props:{enum:[false]}},additionalProperties:false},{type:"object",properties:{props:{enum:[true]},ignorePropertyModificationsFor:{type:"array",items:{type:"string"},uniqueItems:true}},additionalProperties:false}]}]},create:function create(context){var props=context.options[0]&&Boolean(context.options[0].props);var ignoredPropertyAssignmentsFor=context.options[0]&&context.options[0].ignorePropertyModificationsFor||[];function isModifyingProp(reference){var node=reference.identifier;var parent=node.parent;while(parent&&!stopNodePattern.test(parent.type)){switch(parent.type){case"AssignmentExpression":return parent.left===node;case"UpdateExpression":return true;case"UnaryExpression":if(parent.operator==="delete"){return true}break;case"CallExpression":if(parent.callee!==node){return false}break;case"MemberExpression":if(parent.property===node){return false}break;case"Property":if(parent.key===node){return false}break}node=parent;parent=node.parent}return false}function checkReference(reference,index,references){var identifier=reference.identifier;if(identifier&&!reference.init&&(index===0||references[index-1].identifier!==identifier)){if(reference.isWrite()){context.report({node:identifier,message:"Assignment to function parameter '{{name}}'.",data:{name:identifier.name}})}else if(props&&isModifyingProp(reference)&&ignoredPropertyAssignmentsFor.indexOf(identifier.name)===-1){context.report({node:identifier,message:"Assignment to property of function parameter '{{name}}'.",data:{name:identifier.name}})}}}function checkVariable(variable){if(variable.defs[0].type==="Parameter"){variable.references.forEach(checkReference)}}function checkForFunction(node){context.getDeclaredVariables(node).forEach(checkVariable)}return{"FunctionDeclaration:exit":checkForFunction,"FunctionExpression:exit":checkForFunction,"ArrowFunctionExpression:exit":checkForFunction}}}},{}],228:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow string concatenation with `__dirname` and `__filename`",category:"Node.js and CommonJS",recommended:false},schema:[]},create:function create(context){var MATCHER=/^__(?:dir|file)name$/;return{BinaryExpression:function BinaryExpression(node){var left=node.left,right=node.right;if(node.operator==="+"&&(left.type==="Identifier"&&MATCHER.test(left.name)||right.type==="Identifier"&&MATCHER.test(right.name))){context.report({node:node,message:"Use path.join() or path.resolve() instead of + to create paths."})}}}}}},{}],229:[function(require,module,exports){"use strict";var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj};module.exports={meta:{docs:{description:"disallow the unary operators `++` and `--`",category:"Stylistic Issues",recommended:false},schema:[{type:"object",properties:{allowForLoopAfterthoughts:{type:"boolean"}},additionalProperties:false}]},create:function create(context){var config=context.options[0];var allowInForAfterthought=false;if((typeof config==="undefined"?"undefined":_typeof(config))==="object"){allowInForAfterthought=config.allowForLoopAfterthoughts===true}return{UpdateExpression:function UpdateExpression(node){if(allowInForAfterthought&&node.parent.type==="ForStatement"){return}context.report({node:node,message:"Unary operator '{{operator}}' used.",data:{operator:node.operator}})}}}}},{}],230:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow the use of `process.env`",category:"Node.js and CommonJS",recommended:false},schema:[]},create:function create(context){return{MemberExpression:function MemberExpression(node){var objectName=node.object.name,propertyName=node.property.name;if(objectName==="process"&&!node.computed&&propertyName&&propertyName==="env"){context.report({node:node,message:"Unexpected use of process.env."})}}}}}},{}],231:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow the use of `process.exit()`",category:"Node.js and CommonJS",recommended:false},schema:[]},create:function create(context){return{"CallExpression > MemberExpression.callee[object.name = 'process'][property.name = 'exit']":function CallExpressionMemberExpressionCalleeObjectNameProcessPropertyNameExit(node){context.report({node:node.parent,message:"Don't use process.exit(); throw an error instead."})}}}}},{}],232:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow the use of the `__proto__` property",category:"Best Practices",recommended:false},schema:[]},create:function create(context){return{MemberExpression:function MemberExpression(node){if(node.property&&node.property.type==="Identifier"&&node.property.name==="__proto__"&&!node.computed||node.property.type==="Literal"&&node.property.value==="__proto__"){context.report({node:node,message:"The '__proto__' property is deprecated."})}}}}}},{}],233:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow calling some `Object.prototype` methods directly on objects",category:"Possible Errors",recommended:false},schema:[]},create:function create(context){var DISALLOWED_PROPS=["hasOwnProperty","isPrototypeOf","propertyIsEnumerable"];function disallowBuiltIns(node){if(node.callee.type!=="MemberExpression"||node.callee.computed){return}var propName=node.callee.property.name;if(DISALLOWED_PROPS.indexOf(propName)>-1){context.report({message:"Do not access Object.prototype method '{{prop}}' from target object.",loc:node.callee.property.loc.start,data:{prop:propName},node:node})}}return{CallExpression:disallowBuiltIns}}}},{}],234:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow variable redeclaration",category:"Best Practices",recommended:true},schema:[{type:"object",properties:{builtinGlobals:{type:"boolean"}},additionalProperties:false}]},create:function create(context){var options={builtinGlobals:Boolean(context.options[0]&&context.options[0].builtinGlobals)};function findVariablesInScope(scope){scope.variables.forEach(function(variable){var hasBuiltin=options.builtinGlobals&&"writeable"in variable;var count=(hasBuiltin?1:0)+variable.identifiers.length;if(count>=2){variable.identifiers.sort(function(a,b){return a.range[1]-b.range[1]});for(var i=hasBuiltin?0:1,l=variable.identifiers.length;i=6){return{Program:checkForGlobal,BlockStatement:checkForBlock,SwitchStatement:checkForBlock}}return{Program:checkForGlobal,FunctionDeclaration:checkForBlock,FunctionExpression:checkForBlock,ArrowFunctionExpression:checkForBlock}}}},{}],235:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"disallow multiple spaces in regular expressions",category:"Possible Errors",recommended:true},schema:[],fixable:"code"},create:function create(context){var sourceCode=context.getSourceCode();function checkRegex(node,value,valueStart){var multipleSpacesRegex=/( {2,})+?/,regexResults=multipleSpacesRegex.exec(value);if(regexResults!==null){var count=regexResults[0].length;context.report({node:node,message:"Spaces are hard to count. Use {{{count}}}.",data:{count:count},fix:function fix(fixer){return fixer.replaceTextRange([valueStart+regexResults.index,valueStart+regexResults.index+count]," {"+count+"}")}})}}function checkLiteral(node){var token=sourceCode.getFirstToken(node),nodeType=token.type,nodeValue=token.value;if(nodeType==="RegularExpression"){checkRegex(node,nodeValue,token.start)}}function isString(node){return node&&node.type==="Literal"&&typeof node.value==="string"}function checkFunction(node){var scope=context.getScope();var regExpVar=astUtils.getVariableByName(scope,"RegExp");var shadowed=regExpVar&®ExpVar.defs.length>0;if(node.callee.type==="Identifier"&&node.callee.name==="RegExp"&&isString(node.arguments[0])&&!shadowed){checkRegex(node,node.arguments[0].value,node.arguments[0].start+1)}}return{Literal:checkLiteral,CallExpression:checkFunction,NewExpression:checkFunction}}}},{"../ast-utils":70}],236:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow specified global variables",category:"Variables",recommended:false},schema:{type:"array",items:{type:"string"},uniqueItems:true}},create:function create(context){var restrictedGlobals=context.options;if(restrictedGlobals.length===0){return{}}function reportReference(reference){context.report({node:reference.identifier,message:"Unexpected use of '{{name}}'.",data:{name:reference.identifier.name}})}function isRestricted(name){return restrictedGlobals.indexOf(name)>=0}return{Program:function Program(){var scope=context.getScope();scope.variables.forEach(function(variable){if(!variable.defs.length&&isRestricted(variable.name)){variable.references.forEach(reportReference)}});scope.through.forEach(function(reference){if(isRestricted(reference.identifier.name)){reportReference(reference)}})}}}}},{}],237:[function(require,module,exports){"use strict";var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj};var ignore=require("ignore");var arrayOfStrings={type:"array",items:{type:"string"},uniqueItems:true};module.exports={meta:{docs:{description:"disallow specified modules when loaded by `import`",category:"ECMAScript 6",recommended:false},schema:{anyOf:[arrayOfStrings,{type:"array",items:[{type:"object",properties:{paths:arrayOfStrings,patterns:arrayOfStrings},additionalProperties:false}],additionalItems:false}]}},create:function create(context){var options=Array.isArray(context.options)?context.options:[];var isStringArray=_typeof(options[0])!=="object";var restrictedPaths=new Set(isStringArray?context.options:options[0].paths||[]);var restrictedPatterns=isStringArray?[]:options[0].patterns||[];if(restrictedPaths.size===0&&restrictedPatterns.length===0){return{}}var ig=ignore().add(restrictedPatterns);return{ImportDeclaration:function ImportDeclaration(node){if(node&&node.source&&node.source.value){var importName=node.source.value.trim();if(restrictedPaths.has(importName)){context.report({node:node,message:"'{{importName}}' import is restricted from being used.",data:{importName:importName}})}if(restrictedPatterns.length>0&&ig.ignores(importName)){context.report({node:node,message:"'{{importName}}' import is restricted from being used by a pattern.",data:{importName:importName}})}}}}}}},{ignore:40}],238:[function(require,module,exports){"use strict";var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj};var ignore=require("ignore");var arrayOfStrings={type:"array",items:{type:"string"},uniqueItems:true};module.exports={meta:{docs:{description:"disallow specified modules when loaded by `require`",category:"Node.js and CommonJS",recommended:false},schema:{anyOf:[arrayOfStrings,{type:"array",items:[{type:"object",properties:{paths:arrayOfStrings,patterns:arrayOfStrings},additionalProperties:false}],additionalItems:false}]}},create:function create(context){var options=Array.isArray(context.options)?context.options:[];var isStringArray=_typeof(options[0])!=="object";var restrictedPaths=new Set(isStringArray?context.options:options[0].paths||[]);var restrictedPatterns=isStringArray?[]:options[0].patterns||[];if(restrictedPaths.size===0&&restrictedPatterns.length===0){return{}}var ig=ignore().add(restrictedPatterns);function isString(node){return node&&node.type==="Literal"&&typeof node.value==="string"}function isRequireCall(node){return node.callee.type==="Identifier"&&node.callee.name==="require"}return{CallExpression:function CallExpression(node){if(isRequireCall(node)){if(node.arguments.length&&isString(node.arguments[0])){var moduleName=node.arguments[0].value.trim();if(restrictedPaths.has(moduleName)){context.report({node:node,message:"'{{moduleName}}' module is restricted from being used.",data:{moduleName:moduleName}})}if(restrictedPatterns.length>0&&ig.ignores(moduleName)){context.report({node:node,message:"'{{moduleName}}' module is restricted from being used by a pattern.",data:{moduleName:moduleName}})}}}}}}}},{ignore:40}],239:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"disallow certain properties on certain objects",category:"Best Practices",recommended:false},schema:{type:"array",items:{anyOf:[{type:"object",properties:{object:{type:"string"},property:{type:"string"},message:{type:"string"}},additionalProperties:false,required:["object"]},{type:"object",properties:{object:{type:"string"},property:{type:"string"},message:{type:"string"}},additionalProperties:false,required:["property"]}]},uniqueItems:true}},create:function create(context){var restrictedCalls=context.options;if(restrictedCalls.length===0){return{}}var restrictedProperties=new Map;var globallyRestrictedObjects=new Map;var globallyRestrictedProperties=new Map;restrictedCalls.forEach(function(option){var objectName=option.object;var propertyName=option.property;if(typeof objectName==="undefined"){globallyRestrictedProperties.set(propertyName,{message:option.message})}else if(typeof propertyName==="undefined"){globallyRestrictedObjects.set(objectName,{message:option.message})}else{if(!restrictedProperties.has(objectName)){restrictedProperties.set(objectName,new Map)}restrictedProperties.get(objectName).set(propertyName,{message:option.message})}});function checkPropertyAccess(node,objectName,propertyName){if(propertyName===null){return}var matchedObject=restrictedProperties.get(objectName);var matchedObjectProperty=matchedObject?matchedObject.get(propertyName):globallyRestrictedObjects.get(objectName);var globalMatchedProperty=globallyRestrictedProperties.get(propertyName);if(matchedObjectProperty){var message=matchedObjectProperty.message?" "+matchedObjectProperty.message:"";context.report({node:node,message:"'{{objectName}}.{{propertyName}}' is restricted from being used.{{message}}",data:{objectName:objectName,propertyName:propertyName,message:message}})}else if(globalMatchedProperty){var _message=globalMatchedProperty.message?" "+globalMatchedProperty.message:"";context.report({node:node,message:"'{{propertyName}}' is restricted from being used.{{message}}",data:{propertyName:propertyName,message:_message}})}}function checkDestructuringAssignment(node){if(node.right.type==="Identifier"){var objectName=node.right.name;if(node.left.type==="ObjectPattern"){node.left.properties.forEach(function(property){checkPropertyAccess(node.left,objectName,astUtils.getStaticPropertyName(property))})}}}return{MemberExpression:function MemberExpression(node){checkPropertyAccess(node,node.object&&node.object.name,astUtils.getStaticPropertyName(node))},VariableDeclarator:function VariableDeclarator(node){if(node.init&&node.init.type==="Identifier"){var objectName=node.init.name;if(node.id.type==="ObjectPattern"){node.id.properties.forEach(function(property){checkPropertyAccess(node.id,objectName,astUtils.getStaticPropertyName(property))})}}},AssignmentExpression:checkDestructuringAssignment,AssignmentPattern:checkDestructuringAssignment}}}},{"../ast-utils":70}],240:[function(require,module,exports){"use strict";function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}module.exports={meta:{docs:{description:"disallow specified syntax",category:"Stylistic Issues",recommended:false},schema:{type:"array",items:[{oneOf:[{type:"string"},{type:"object",properties:{selector:{type:"string"},message:{type:"string"}},required:["selector"],additionalProperties:false}]}],uniqueItems:true,minItems:0}},create:function create(context){return context.options.reduce(function(result,selectorOrObject){var isStringFormat=typeof selectorOrObject==="string";var hasCustomMessage=!isStringFormat&&Boolean(selectorOrObject.message);var selector=isStringFormat?selectorOrObject:selectorOrObject.selector;var message=hasCustomMessage?selectorOrObject.message:"Using '{{selector}}' is not allowed.";return Object.assign(result,_defineProperty({},selector,function(node){context.report({node:node,message:message,data:hasCustomMessage?{}:{selector:selector}})}))},{})}}},{}],241:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");var SENTINEL_TYPE=/^(?:[a-zA-Z]+?Statement|ArrowFunctionExpression|FunctionExpression|ClassExpression)$/;module.exports={meta:{docs:{description:"disallow assignment operators in `return` statements",category:"Best Practices",recommended:false},schema:[{enum:["except-parens","always"]}]},create:function create(context){var always=(context.options[0]||"except-parens")!=="except-parens";var sourceCode=context.getSourceCode();return{AssignmentExpression:function AssignmentExpression(node){if(!always&&astUtils.isParenthesised(sourceCode,node)){return}var parent=node.parent;while(parent&&!SENTINEL_TYPE.test(parent.type)){node=parent;parent=parent.parent}if(parent&&parent.type==="ReturnStatement"){context.report({node:parent,message:"Return statement should not contain assignment."})}else if(parent&&parent.type==="ArrowFunctionExpression"&&parent.body===node){context.report({node:parent,message:"Arrow function should not return assignment."})}}}}}},{"../ast-utils":70}],242:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");var message="Redundant use of `await` on a return value.";module.exports={meta:{docs:{description:"disallow unnecessary `return await`",category:"Best Practices",recommended:false},fixable:null,schema:[]},create:function create(context){function reportUnnecessaryAwait(node){context.report({node:context.getSourceCode().getFirstToken(node),loc:node.loc,message:message})}function hasErrorHandler(node){var ancestor=node;while(!astUtils.isFunction(ancestor)&&ancestor.type!=="Program"){if(ancestor.parent.type==="TryStatement"&&(ancestor===ancestor.parent.block||ancestor===ancestor.parent.handler&&ancestor.parent.finalizer)){return true}ancestor=ancestor.parent}return false}function isInTailCallPosition(node){if(node.parent.type==="ArrowFunctionExpression"){return true}if(node.parent.type==="ReturnStatement"){return!hasErrorHandler(node.parent)}if(node.parent.type==="ConditionalExpression"&&(node===node.parent.consequent||node===node.parent.alternate)){return isInTailCallPosition(node.parent)}if(node.parent.type==="LogicalExpression"&&node===node.parent.right){return isInTailCallPosition(node.parent)}if(node.parent.type==="SequenceExpression"&&node===node.parent.expressions[node.parent.expressions.length-1]){return isInTailCallPosition(node.parent)}return false}return{AwaitExpression:function AwaitExpression(node){if(isInTailCallPosition(node)&&!hasErrorHandler(node)){reportUnnecessaryAwait(node)}}}}}},{"../ast-utils":70}],243:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow `javascript:` urls",category:"Best Practices",recommended:false},schema:[]},create:function create(context){return{Literal:function Literal(node){if(node.value&&typeof node.value==="string"){var value=node.value.toLowerCase();if(value.indexOf("javascript:")===0){context.report({node:node,message:"Script URL is a form of eval."})}}}}}}},{}],244:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");var SPACES=/\s+/g;function isSameProperty(left,right){if(left.property.type==="Identifier"&&left.property.type===right.property.type&&left.property.name===right.property.name&&left.computed===right.computed){return true}var lname=astUtils.getStaticPropertyName(left);var rname=astUtils.getStaticPropertyName(right);return lname!==null&&lname===rname}function isSameMember(left,right){if(!isSameProperty(left,right)){return false}var lobj=left.object;var robj=right.object;if(lobj.type!==robj.type){return false}if(lobj.type==="MemberExpression"){return isSameMember(lobj,robj)}return lobj.type==="Identifier"&&lobj.name===robj.name}function eachSelfAssignment(left,right,props,report){if(!left||!right){}else if(left.type==="Identifier"&&right.type==="Identifier"&&left.name===right.name){report(right)}else if(left.type==="ArrayPattern"&&right.type==="ArrayExpression"){var end=Math.min(left.elements.length,right.elements.length);for(var i=0;i=1){var startJ=0;for(var _i=right.properties.length-1;_i>=0;--_i){if(right.properties[_i].type==="ExperimentalSpreadProperty"){startJ=_i+1;break}}for(var _i2=0;_i2","<",">=","<="]);if(operators.has(node.operator)&&hasSameTokens(node.left,node.right)){context.report({node:node,message:"Comparing to itself is potentially pointless."})}}}}}},{}],246:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"disallow comma operators",category:"Best Practices",recommended:false},schema:[]},create:function create(context){var sourceCode=context.getSourceCode();var parenthesized={DoWhileStatement:"test",IfStatement:"test",SwitchStatement:"discriminant",WhileStatement:"test",WithStatement:"object",ArrowFunctionExpression:"body"};function requiresExtraParens(node){return node.parent&&parenthesized[node.parent.type]&&node===node.parent[parenthesized[node.parent.type]]}function isParenthesised(node){return astUtils.isParenthesised(sourceCode,node)}function isParenthesisedTwice(node){var previousToken=sourceCode.getTokenBefore(node,1),nextToken=sourceCode.getTokenAfter(node,1);return isParenthesised(node)&&previousToken&&nextToken&&astUtils.isOpeningParenToken(previousToken)&&previousToken.range[1]<=node.range[0]&&astUtils.isClosingParenToken(nextToken)&&nextToken.range[0]>=node.range[1]}return{SequenceExpression:function SequenceExpression(node){if(node.parent.type==="ForStatement"&&(node===node.parent.init||node===node.parent.update)){return}if(requiresExtraParens(node)){if(isParenthesisedTwice(node)){return}}else{if(isParenthesised(node)){return}}var child=sourceCode.getTokenAfter(node.expressions[0]);context.report({node:node,loc:child.loc.start,message:"Unexpected use of comma operator."})}}}}},{"../ast-utils":70}],247:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow identifiers from shadowing restricted names",category:"Variables",recommended:false},schema:[]},create:function create(context){var RESTRICTED=["undefined","NaN","Infinity","arguments","eval"];function checkForViolation(id){if(RESTRICTED.indexOf(id.name)>-1){context.report({node:id,message:"Shadowing of global property '{{idName}}'.",data:{idName:id.name}})}}return{VariableDeclarator:function VariableDeclarator(node){checkForViolation(node.id)},ArrowFunctionExpression:function ArrowFunctionExpression(node){[].map.call(node.params,checkForViolation)},FunctionExpression:function FunctionExpression(node){if(node.id){checkForViolation(node.id)}[].map.call(node.params,checkForViolation)},FunctionDeclaration:function FunctionDeclaration(node){if(node.id){checkForViolation(node.id);[].map.call(node.params,checkForViolation)}},CatchClause:function CatchClause(node){checkForViolation(node.param)}}}}},{}],248:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"disallow variable declarations from shadowing variables declared in the outer scope",category:"Variables",recommended:false},schema:[{type:"object",properties:{builtinGlobals:{type:"boolean"},hoist:{enum:["all","functions","never"]},allow:{type:"array",items:{type:"string"}}},additionalProperties:false}]},create:function create(context){var options={builtinGlobals:Boolean(context.options[0]&&context.options[0].builtinGlobals),hoist:context.options[0]&&context.options[0].hoist||"functions",allow:context.options[0]&&context.options[0].allow||[]};function isAllowed(variable){return options.allow.indexOf(variable.name)!==-1}function isDuplicatedClassNameVariable(variable){var block=variable.scope.block;return block.type==="ClassDeclaration"&&block.id===variable.identifiers[0]}function isOnInitializer(variable,scopeVar){var outerScope=scopeVar.scope;var outerDef=scopeVar.defs[0];var outer=outerDef&&outerDef.parent&&outerDef.parent.range;var innerScope=variable.scope;var innerDef=variable.defs[0];var inner=innerDef&&innerDef.name.range;return outer&&inner&&outer[0]0||options.builtinGlobals&&"writeable"in shadowed)&&!isOnInitializer(variable,shadowed)&&!(options.hoist!=="all"&&isInTdz(variable,shadowed))){context.report({node:variable.identifiers[0],message:"'{{name}}' is already declared in the upper scope.",data:variable})}}}return{"Program:exit":function ProgramExit(){var globalScope=context.getScope();var stack=globalScope.childScopes.slice();while(stack.length){var scope=stack.pop();stack.push.apply(stack,scope.childScopes);checkForShadows(scope)}}}}}},{"../ast-utils":70}],249:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow spacing between function identifiers and their applications (deprecated)",category:"Stylistic Issues",recommended:false,replacedBy:["func-call-spacing"]},deprecated:true,fixable:"whitespace",schema:[]},create:function create(context){var sourceCode=context.getSourceCode();function detectOpenSpaces(node){var lastCalleeToken=sourceCode.getLastToken(node.callee);var prevToken=lastCalleeToken,parenToken=sourceCode.getTokenAfter(lastCalleeToken);while(parenToken&&parenToken.range[1]-1;if(emptySpot){context.report({node:node,message:"Unexpected comma in middle of array."})}}}}}},{}],251:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow synchronous methods",category:"Node.js and CommonJS",recommended:false},schema:[]},create:function create(context){return{"MemberExpression[property.name=/.*Sync$/]":function MemberExpressionPropertyNameSync$(node){context.report({node:node,message:"Unexpected sync method: '{{propertyName}}'.",data:{propertyName:node.property.name}})}}}}},{}],252:[function(require,module,exports){"use strict";var regex=/\t/;module.exports={meta:{docs:{description:"disallow all tabs",category:"Stylistic Issues",recommended:false},schema:[]},create:function create(context){return{Program:function Program(node){context.getSourceLines().forEach(function(line,index){var match=regex.exec(line);if(match){context.report({node:node,loc:{line:index+1,column:match.index+1},message:"Unexpected tab character."})}})}}}}},{}],253:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow template literal placeholder syntax in regular strings",category:"Possible Errors",recommended:false},schema:[]},create:function create(context){var regex=/\$\{[^}]+\}/;return{Literal:function Literal(node){if(typeof node.value==="string"&®ex.test(node.value)){context.report({node:node,message:"Unexpected template string expression."})}}}}}},{}],254:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow ternary operators",category:"Stylistic Issues",recommended:false},schema:[]},create:function create(context){return{ConditionalExpression:function ConditionalExpression(node){context.report({node:node,message:"Ternary operator used."})}}}}},{}],255:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");function isConstructorFunction(node){return node.type==="FunctionExpression"&&node.parent.type==="MethodDefinition"&&node.parent.kind==="constructor"}module.exports={meta:{docs:{description:"disallow `this`/`super` before calling `super()` in constructors",category:"ECMAScript 6",recommended:true},schema:[]},create:function create(context){var funcInfo=null;var segInfoMap=Object.create(null);function isCalled(segment){return!segment.reachable||segInfoMap[segment.id].superCalled}function isInConstructorOfDerivedClass(){return Boolean(funcInfo&&funcInfo.isConstructor&&funcInfo.hasExtends)}function isBeforeCallOfSuper(){return isInConstructorOfDerivedClass()&&!funcInfo.codePath.currentSegments.every(isCalled)}function setInvalid(node){var segments=funcInfo.codePath.currentSegments;for(var i=0;i0&&segment.prevSegments.every(isCalled),invalidNodes:[]}},onCodePathSegmentLoop:function onCodePathSegmentLoop(fromSegment,toSegment){if(!isInConstructorOfDerivedClass()){return}funcInfo.codePath.traverseSegments({first:toSegment,last:fromSegment},function(segment,controller){var info=segInfoMap[segment.id];if(info.superCalled){info.invalidNodes=[];controller.skip()}else if(segment.prevSegments.length>0&&segment.prevSegments.every(isCalled)){info.superCalled=true;info.invalidNodes=[]}})},ThisExpression:function ThisExpression(node){if(isBeforeCallOfSuper()){setInvalid(node)}},Super:function Super(node){if(!astUtils.isCallee(node)&&isBeforeCallOfSuper()){setInvalid(node)}},"CallExpression:exit":function CallExpressionExit(node){if(node.callee.type==="Super"&&isBeforeCallOfSuper()){setSuperCalled()}},"Program:exit":function ProgramExit(){segInfoMap=Object.create(null)}}}}},{"../ast-utils":70}],256:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"disallow throwing literals as exceptions",category:"Best Practices",recommended:false},schema:[]},create:function create(context){return{ThrowStatement:function ThrowStatement(node){if(!astUtils.couldBeError(node.argument)){context.report({node:node,message:"Expected an object to be thrown."})}else if(node.argument.type==="Identifier"){if(node.argument.name==="undefined"){context.report({node:node,message:"Do not throw undefined."})}}}}}}},{"../ast-utils":70}],257:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"disallow trailing whitespace at the end of lines",category:"Stylistic Issues",recommended:false},fixable:"whitespace",schema:[{type:"object",properties:{skipBlankLines:{type:"boolean"},ignoreComments:{type:"boolean"}},additionalProperties:false}]},create:function create(context){var sourceCode=context.getSourceCode();var BLANK_CLASS="[ \t  -​ ]",SKIP_BLANK="^"+BLANK_CLASS+"*$",NONBLANK=BLANK_CLASS+"+$";var options=context.options[0]||{},skipBlankLines=options.skipBlankLines||false,ignoreComments=typeof options.ignoreComments==="undefined"||options.ignoreComments;function report(node,location,fixRange){context.report({node:node,loc:location,message:"Trailing spaces not allowed.",fix:function fix(fixer){return fixer.removeRange(fixRange)}})}function getCommentLineNumbers(comments){var lines=new Set;comments.forEach(function(comment){for(var i=comment.loc.start.line;i<=comment.loc.end.line;i++){lines.add(i)}});return lines}return{Program:function checkTrailingSpaces(node){var re=new RegExp(NONBLANK),skipMatch=new RegExp(SKIP_BLANK),lines=sourceCode.lines,linebreaks=sourceCode.getText().match(astUtils.createGlobalLinebreakMatcher()),comments=sourceCode.getAllComments(),commentLineNumbers=getCommentLineNumbers(comments);var totalLength=0,fixRange=[];for(var i=0,ii=lines.length;icontainingNode.parent.range[0]&&rangeEnd0;if(init==="undefined"&&node.parent.kind!=="const"&&!shadowed){context.report({node:node,message:"It's not necessary to initialize '{{name}}' to undefined.",data:{name:name},fix:function fix(fixer){if(node.id.type==="ArrayPattern"||node.id.type==="ObjectPattern"){return null}return fixer.removeRange([node.id.range[1],node.range[1]])}})}}}}}},{"../ast-utils":70}],259:[function(require,module,exports){"use strict";function hasTypeOfOperator(node){var parent=node.parent;return parent.type==="UnaryExpression"&&parent.operator==="typeof"}module.exports={meta:{docs:{description:"disallow the use of undeclared variables unless mentioned in `/*global */` comments",category:"Variables",recommended:true},schema:[{type:"object",properties:{typeof:{type:"boolean"}},additionalProperties:false}]},create:function create(context){var options=context.options[0];var considerTypeOf=options&&options.typeof===true||false;return{"Program:exit":function ProgramExit(){var globalScope=context.getScope();globalScope.through.forEach(function(ref){var identifier=ref.identifier;if(!considerTypeOf&&hasTypeOfOperator(identifier)){return}context.report({node:identifier,message:"'{{name}}' is not defined.",data:identifier})})}}}}},{}],260:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow the use of `undefined` as an identifier",category:"Variables",recommended:false},schema:[]},create:function create(context){function report(node){context.report({node:node,message:"Unexpected use of undefined."})}function checkScope(scope){var undefinedVar=scope.set.get("undefined");if(!undefinedVar){return}var references=undefinedVar.references;var defs=undefinedVar.defs;references.filter(function(ref){return!ref.init}).forEach(function(ref){return report(ref.identifier)});defs.forEach(function(def){return report(def.name)})}return{"Program:exit":function ProgramExit(){var globalScope=context.getScope();var stack=[globalScope];while(stack.length){var scope=stack.pop();stack.push.apply(stack,scope.childScopes);checkScope(scope)}}}}}},{}],261:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow dangling underscores in identifiers",category:"Stylistic Issues",recommended:false},schema:[{type:"object",properties:{allow:{type:"array",items:{type:"string"}},allowAfterThis:{type:"boolean"},allowAfterSuper:{type:"boolean"}},additionalProperties:false}]},create:function create(context){var options=context.options[0]||{};var ALLOWED_VARIABLES=options.allow?options.allow:[];var allowAfterThis=typeof options.allowAfterThis!=="undefined"?options.allowAfterThis:false;var allowAfterSuper=typeof options.allowAfterSuper!=="undefined"?options.allowAfterSuper:false;function isAllowed(identifier){return ALLOWED_VARIABLES.some(function(ident){return ident===identifier})}function hasTrailingUnderscore(identifier){var len=identifier.length;return identifier!=="_"&&(identifier[0]==="_"||identifier[len-1]==="_")}function isSpecialCaseIdentifierForMemberExpression(identifier){return identifier==="__proto__"}function isSpecialCaseIdentifierInVariableExpression(identifier){return identifier==="_"}function checkForTrailingUnderscoreInFunctionDeclaration(node){if(node.id){var identifier=node.id.name;if(typeof identifier!=="undefined"&&hasTrailingUnderscore(identifier)&&!isAllowed(identifier)){context.report({node:node,message:"Unexpected dangling '_' in '{{identifier}}'.",data:{identifier:identifier}})}}}function checkForTrailingUnderscoreInVariableExpression(node){var identifier=node.id.name;if(typeof identifier!=="undefined"&&hasTrailingUnderscore(identifier)&&!isSpecialCaseIdentifierInVariableExpression(identifier)&&!isAllowed(identifier)){context.report({node:node,message:"Unexpected dangling '_' in '{{identifier}}'.",data:{identifier:identifier}})}}function checkForTrailingUnderscoreInMemberExpression(node){var identifier=node.property.name,isMemberOfThis=node.object.type==="ThisExpression",isMemberOfSuper=node.object.type==="Super";if(typeof identifier!=="undefined"&&hasTrailingUnderscore(identifier)&&!(isMemberOfThis&&allowAfterThis)&&!(isMemberOfSuper&&allowAfterSuper)&&!isSpecialCaseIdentifierForMemberExpression(identifier)&&!isAllowed(identifier)){context.report({node:node,message:"Unexpected dangling '_' in '{{identifier}}'.",data:{identifier:identifier}})}}return{FunctionDeclaration:checkForTrailingUnderscoreInFunctionDeclaration,VariableDeclarator:checkForTrailingUnderscoreInVariableExpression,MemberExpression:checkForTrailingUnderscoreInMemberExpression}}}},{}],262:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"disallow confusing multiline expressions",category:"Possible Errors",recommended:true},schema:[]},create:function create(context){var FUNCTION_MESSAGE="Unexpected newline between function and ( of function call.";var PROPERTY_MESSAGE="Unexpected newline between object and [ of property access.";var TAGGED_TEMPLATE_MESSAGE="Unexpected newline between template tag and template literal.";var DIVISION_MESSAGE="Unexpected newline between numerator and division operator.";var REGEX_FLAG_MATCHER=/^[gimuy]+$/;var sourceCode=context.getSourceCode();function checkForBreakAfter(node,msg){var openParen=sourceCode.getTokenAfter(node,astUtils.isNotClosingParenToken);var nodeExpressionEnd=sourceCode.getTokenBefore(openParen);if(openParen.loc.start.line!==nodeExpressionEnd.loc.end.line){context.report({node:node,loc:openParen.loc.start,message:msg,data:{char:openParen.value}})}}return{MemberExpression:function MemberExpression(node){if(!node.computed){return}checkForBreakAfter(node.object,PROPERTY_MESSAGE)},TaggedTemplateExpression:function TaggedTemplateExpression(node){if(node.tag.loc.end.line===node.quasi.loc.start.line){return}context.report({node:node,loc:node.loc.start,message:TAGGED_TEMPLATE_MESSAGE})},CallExpression:function CallExpression(node){if(node.arguments.length===0){return}checkForBreakAfter(node.callee,FUNCTION_MESSAGE)},"BinaryExpression[operator='/'] > BinaryExpression[operator='/'].left":function BinaryExpressionOperatorBinaryExpressionOperatorLeft(node){var secondSlash=sourceCode.getTokenAfter(node,function(token){return token.value==="/"});var tokenAfterOperator=sourceCode.getTokenAfter(secondSlash);if(tokenAfterOperator.type==="Identifier"&®EX_FLAG_MATCHER.test(tokenAfterOperator.value)&&secondSlash.range[1]===tokenAfterOperator.range[0]){checkForBreakAfter(node.left,DIVISION_MESSAGE)}}}}}},{"../ast-utils":70}],263:[function(require,module,exports){"use strict";var Traverser=require("../util/traverser"),astUtils=require("../ast-utils");var pushAll=Function.apply.bind(Array.prototype.push);var SENTINEL_PATTERN=/(?:(?:Call|Class|Function|Member|New|Yield)Expression|Statement|Declaration)$/;var LOOP_PATTERN=/^(?:DoWhile|For|While)Statement$/;var GROUP_PATTERN=/^(?:BinaryExpression|ConditionalExpression)$/;var SKIP_PATTERN=/^(?:ArrowFunction|Class|Function)Expression$/;var DYNAMIC_PATTERN=/^(?:Call|Member|New|TaggedTemplate|Yield)Expression$/;function isWriteReference(reference){if(reference.init){var def=reference.resolved&&reference.resolved.defs[0];if(!def||def.type!=="Variable"||def.parent.kind!=="var"){return false}}return reference.isWrite()}function isUnmodified(condition){return!condition.modified}function isUnmodifiedAndNotBelongToGroup(condition){return!(condition.modified||condition.group)}function isInRange(node,reference){var or=node.range;var ir=reference.identifier.range;return or[0]<=ir[0]&&ir[1]<=or[1]}var isInLoop={WhileStatement:isInRange,DoWhileStatement:isInRange,ForStatement:function ForStatement(node,reference){return isInRange(node,reference)&&!(node.init&&isInRange(node.init,reference))}};function hasDynamicExpressions(root){var retv=false;var traverser=new Traverser;traverser.traverse(root,{enter:function enter(node){if(DYNAMIC_PATTERN.test(node.type)){retv=true;this.break()}else if(SKIP_PATTERN.test(node.type)){this.skip()}}});return retv}function toLoopCondition(reference){if(reference.init){return null}var group=null;var child=reference.identifier;var node=child.parent;while(node){if(SENTINEL_PATTERN.test(node.type)){if(LOOP_PATTERN.test(node.type)&&node.test===child){return{reference:reference,group:group,isInLoop:isInLoop[node.type].bind(null,node),modified:false}}break}if(GROUP_PATTERN.test(node.type)){if(hasDynamicExpressions(node)){break}else{group=node}}child=node;node=node.parent}return null}function getEncloseFunctionDeclaration(reference){var node=reference.identifier;while(node){if(node.type==="FunctionDeclaration"){return node.id?node:null}node=node.parent}return null}function updateModifiedFlag(conditions,modifiers){var funcNode=void 0,funcVar=void 0;for(var i=0;i0){updateModifiedFlag(conditions,modifiers)}conditions.filter(isUnmodifiedAndNotBelongToGroup).forEach(report)}return{"Program:exit":function ProgramExit(){var queue=[context.getScope()];groupMap=new Map;var scope=void 0;while(scope=queue.pop()){pushAll(queue,scope.childScopes);scope.variables.forEach(checkReferences)}groupMap.forEach(checkConditionsInGroup);groupMap=null}}}}},{"../ast-utils":70,"../util/traverser":358}],264:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");var BOOLEAN_OPERATORS=new Set(["==","===","!=","!==",">",">=","<","<=","in","instanceof"]);var OPERATOR_INVERSES={"==":"!=","!=":"==","===":"!==","!==":"==="};module.exports={meta:{docs:{description:"disallow ternary operators when simpler alternatives exist",category:"Stylistic Issues",recommended:false},schema:[{type:"object",properties:{defaultAssignment:{type:"boolean"}},additionalProperties:false}],fixable:"code"},create:function create(context){var options=context.options[0]||{};var defaultAssignment=options.defaultAssignment!==false;var sourceCode=context.getSourceCode();function isBooleanLiteral(node){return node.type==="Literal"&&typeof node.value==="boolean"}function invertExpression(node){if(node.type==="BinaryExpression"&&Object.prototype.hasOwnProperty.call(OPERATOR_INVERSES,node.operator)){var operatorToken=sourceCode.getFirstTokenBetween(node.left,node.right,function(token){return token.value===node.operator});return sourceCode.getText().slice(node.range[0],operatorToken.range[0])+OPERATOR_INVERSES[node.operator]+sourceCode.getText().slice(operatorToken.range[1],node.range[1])}if(astUtils.getPrecedence(node)=this.startNode.range[0]&&node.range[1]<=this.endNode.range[1]}},{key:"isConsecutive",value:function isConsecutive(node){return this.contains(this.sourceCode.getTokenBefore(node))}},{key:"merge",value:function merge(node){this.endNode=node}},{key:"reset",value:function reset(node){this.startNode=this.endNode=node}},{key:"location",get:function get(){return{start:this.startNode.loc.start,end:this.endNode.loc.end}}},{key:"isEmpty",get:function get(){return!(this.startNode&&this.endNode)}}]);return ConsecutiveRange}();module.exports={meta:{docs:{description:"disallow unreachable code after `return`, `throw`, `continue`, and `break` statements",category:"Possible Errors",recommended:true},schema:[]},create:function create(context){var currentCodePath=null;var range=new ConsecutiveRange(context.getSourceCode());function reportIfUnreachable(node){var nextNode=null;if(node&¤tCodePath.currentSegments.every(isUnreachable)){if(range.isEmpty){range.reset(node);return}if(range.contains(node)){return}if(range.isConsecutive(node)){range.merge(node);return}nextNode=node}if(!range.isEmpty){context.report({message:"Unreachable code.",loc:range.location,node:range.startNode})}range.reset(nextNode)}return{onCodePathStart:function onCodePathStart(codePath){currentCodePath=codePath},onCodePathEnd:function onCodePathEnd(){currentCodePath=currentCodePath.upper},BlockStatement:reportIfUnreachable,BreakStatement:reportIfUnreachable,ClassDeclaration:reportIfUnreachable,ContinueStatement:reportIfUnreachable,DebuggerStatement:reportIfUnreachable,DoWhileStatement:reportIfUnreachable,EmptyStatement:reportIfUnreachable,ExpressionStatement:reportIfUnreachable,ForInStatement:reportIfUnreachable,ForOfStatement:reportIfUnreachable,ForStatement:reportIfUnreachable,IfStatement:reportIfUnreachable,ImportDeclaration:reportIfUnreachable,LabeledStatement:reportIfUnreachable,ReturnStatement:reportIfUnreachable,SwitchStatement:reportIfUnreachable,ThrowStatement:reportIfUnreachable,TryStatement:reportIfUnreachable,VariableDeclaration:function VariableDeclaration(node){if(node.kind!=="var"||node.declarations.some(isInitialized)){reportIfUnreachable(node)}},WhileStatement:reportIfUnreachable,WithStatement:reportIfUnreachable,ExportNamedDeclaration:reportIfUnreachable,ExportDefaultDeclaration:reportIfUnreachable,ExportAllDeclaration:reportIfUnreachable,"Program:exit":function ProgramExit(){reportIfUnreachable()}}}}},{}],266:[function(require,module,exports){"use strict";var SENTINEL_NODE_TYPE_RETURN_THROW=/^(?:Program|(?:Function|Class)(?:Declaration|Expression)|ArrowFunctionExpression)$/;var SENTINEL_NODE_TYPE_BREAK=/^(?:Program|(?:Function|Class)(?:Declaration|Expression)|ArrowFunctionExpression|DoWhileStatement|WhileStatement|ForOfStatement|ForInStatement|ForStatement|SwitchStatement)$/;var SENTINEL_NODE_TYPE_CONTINUE=/^(?:Program|(?:Function|Class)(?:Declaration|Expression)|ArrowFunctionExpression|DoWhileStatement|WhileStatement|ForOfStatement|ForInStatement|ForStatement)$/;module.exports={meta:{docs:{description:"disallow control flow statements in `finally` blocks",category:"Possible Errors",recommended:true},schema:[]},create:function create(context){function isFinallyBlock(node){return node.parent.type==="TryStatement"&&node.parent.finalizer===node}function isInFinallyBlock(node,label){var labelInside=false;var sentinelNodeType=void 0;if(node.type==="BreakStatement"&&!node.label){sentinelNodeType=SENTINEL_NODE_TYPE_BREAK}else if(node.type==="ContinueStatement"){sentinelNodeType=SENTINEL_NODE_TYPE_CONTINUE}else{sentinelNodeType=SENTINEL_NODE_TYPE_RETURN_THROW}while(node&&!sentinelNodeType.test(node.type)){if(node.parent.label&&label&&node.parent.label.name===label.name){labelInside=true}if(isFinallyBlock(node)){if(label&&labelInside){return false}return true}node=node.parent}return false}function check(node){if(isInFinallyBlock(node,node.label)){context.report({message:"Unsafe usage of {{nodeType}}.",data:{nodeType:node.type},node:node,line:node.loc.line,column:node.loc.column})}}return{ReturnStatement:check,ThrowStatement:check,BreakStatement:check,ContinueStatement:check}}}},{}],267:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");function isRelationalOperator(op){return op==="in"||op==="instanceof"}function isNegation(node){return node.type==="UnaryExpression"&&node.operator==="!"}module.exports={meta:{docs:{description:"disallow negating the left operand of relational operators",category:"Possible Errors",recommended:true},schema:[],fixable:"code"},create:function create(context){var sourceCode=context.getSourceCode();return{BinaryExpression:function BinaryExpression(node){if(isRelationalOperator(node.operator)&&isNegation(node.left)&&!astUtils.isParenthesised(sourceCode,node.left)){context.report({node:node,loc:node.left.loc,message:"Unexpected negating the left operand of '{{operator}}' operator.",data:node,fix:function fix(fixer){var negationToken=sourceCode.getFirstToken(node.left);var fixRange=[negationToken.range[1],node.range[1]];var text=sourceCode.text.slice(fixRange[0],fixRange[1]);return fixer.replaceTextRange(fixRange,"("+text+")")}})}}}}}},{"../ast-utils":70}],268:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow unused expressions",category:"Best Practices",recommended:false},schema:[{type:"object",properties:{allowShortCircuit:{type:"boolean"},allowTernary:{type:"boolean"},allowTaggedTemplates:{type:"boolean"}},additionalProperties:false}]},create:function create(context){var config=context.options[0]||{},allowShortCircuit=config.allowShortCircuit||false,allowTernary=config.allowTernary||false,allowTaggedTemplates=config.allowTaggedTemplates||false;function looksLikeDirective(node){return node.type==="ExpressionStatement"&&node.expression.type==="Literal"&&typeof node.expression.value==="string"}function takeWhile(predicate,list){for(var i=0;i=0}function isValidExpression(node){if(allowTernary){if(node.type==="ConditionalExpression"){return isValidExpression(node.consequent)&&isValidExpression(node.alternate)}}if(allowShortCircuit){if(node.type==="LogicalExpression"){return isValidExpression(node.right)}}if(allowTaggedTemplates&&node.type==="TaggedTemplateExpression"){return true}return/^(?:Assignment|Call|New|Update|Yield|Await)Expression$/.test(node.type)||node.type==="UnaryExpression"&&["delete","void"].indexOf(node.operator)>=0}return{ExpressionStatement:function ExpressionStatement(node){if(!isValidExpression(node.expression)&&!isDirective(node,context.getAncestors())){context.report({node:node,message:"Expected an assignment or function call and instead saw an expression."})}}}}}},{}],269:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow unused labels",category:"Best Practices",recommended:true},schema:[],fixable:"code"},create:function create(context){var sourceCode=context.getSourceCode();var scopeInfo=null;function enterLabeledScope(node){scopeInfo={label:node.label.name,used:false,upper:scopeInfo}}function exitLabeledScope(node){if(!scopeInfo.used){context.report({node:node.label,message:"'{{name}}:' is defined but never used.",data:node.label,fix:function fix(fixer){if(sourceCode.getTokenAfter(node.label,{includeComments:true})===sourceCode.getTokenBefore(node.body,{includeComments:true})){return fixer.removeRange([node.range[0],node.body.range[0]])}return null}})}scopeInfo=scopeInfo.upper}function markAsUsed(node){if(!node.label){return}var label=node.label.name;var info=scopeInfo;while(info){if(info.label===label){info.used=true;break}info=info.upper}}return{LabeledStatement:enterLabeledScope,"LabeledStatement:exit":exitLabeledScope,BreakStatement:markAsUsed,ContinueStatement:markAsUsed}}}},{}],270:[function(require,module,exports){"use strict";var lodash=require("lodash");var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"disallow unused variables",category:"Variables",recommended:true},schema:[{oneOf:[{enum:["all","local"]},{type:"object",properties:{vars:{enum:["all","local"]},varsIgnorePattern:{type:"string"},args:{enum:["all","after-used","none"]},ignoreRestSiblings:{type:"boolean"},argsIgnorePattern:{type:"string"},caughtErrors:{enum:["all","none"]},caughtErrorsIgnorePattern:{type:"string"}}}]}]},create:function create(context){var sourceCode=context.getSourceCode();var DEFINED_MESSAGE="'{{name}}' is defined but never used.";var ASSIGNED_MESSAGE="'{{name}}' is assigned a value but never used.";var REST_PROPERTY_TYPE=/^(?:Experimental)?RestProperty$/;var config={vars:"all",args:"after-used",ignoreRestSiblings:false,caughtErrors:"none"};var firstOption=context.options[0];if(firstOption){if(typeof firstOption==="string"){config.vars=firstOption}else{config.vars=firstOption.vars||config.vars;config.args=firstOption.args||config.args;config.ignoreRestSiblings=firstOption.ignoreRestSiblings||config.ignoreRestSiblings;config.caughtErrors=firstOption.caughtErrors||config.caughtErrors;if(firstOption.varsIgnorePattern){config.varsIgnorePattern=new RegExp(firstOption.varsIgnorePattern)}if(firstOption.argsIgnorePattern){config.argsIgnorePattern=new RegExp(firstOption.argsIgnorePattern)}if(firstOption.caughtErrorsIgnorePattern){config.caughtErrorsIgnorePattern=new RegExp(firstOption.caughtErrorsIgnorePattern)}}}var STATEMENT_TYPE=/(?:Statement|Declaration)$/;function isExported(variable){var definition=variable.defs[0];if(definition){var node=definition.node;if(node.type==="VariableDeclarator"){node=node.parent}else if(definition.type==="Parameter"){return false}return node.parent.type.indexOf("Export")===0}return false}function hasRestSpreadSibling(variable){if(config.ignoreRestSiblings){return variable.defs.some(function(def){var propertyNode=def.name.parent;var patternNode=propertyNode.parent;return propertyNode.type==="Property"&&patternNode.type==="ObjectPattern"&&REST_PROPERTY_TYPE.test(patternNode.properties[patternNode.properties.length-1].type)})}return false}function isReadRef(ref){return ref.isRead()}function isSelfReference(ref,nodes){var scope=ref.from;while(scope){if(nodes.indexOf(scope.block)>=0){return true}scope=scope.upper}return false}function isInside(inner,outer){return inner.range[0]>=outer.range[0]&&inner.range[1]<=outer.range[1]}function getRhsNode(ref,prevRhsNode){var id=ref.identifier;var parent=id.parent;var granpa=parent.parent;var refScope=ref.from.variableScope;var varScope=ref.resolved.scope.variableScope;var canBeUsedLater=refScope!==varScope||astUtils.isInLoop(id);if(prevRhsNode&&isInside(id,prevRhsNode)){return prevRhsNode}if(parent.type==="AssignmentExpression"&&granpa.type==="ExpressionStatement"&&id===parent.left&&!canBeUsedLater){return parent.right}return null}function isStorableFunction(funcNode,rhsNode){var node=funcNode;var parent=funcNode.parent;while(parent&&isInside(parent,rhsNode)){switch(parent.type){case"SequenceExpression":if(parent.expressions[parent.expressions.length-1]!==node){return false}break;case"CallExpression":case"NewExpression":return parent.callee!==node;case"AssignmentExpression":case"TaggedTemplateExpression":case"YieldExpression":return true;default:if(STATEMENT_TYPE.test(parent.type)){return true}}node=parent;parent=parent.parent}return false}function isInsideOfStorableFunction(id,rhsNode){var funcNode=astUtils.getUpperFunction(id);return funcNode&&isInside(funcNode,rhsNode)&&isStorableFunction(funcNode,rhsNode)}function isReadForItself(ref,rhsNode){var id=ref.identifier;var parent=id.parent;var granpa=parent.parent;return ref.isRead()&&(parent.type==="AssignmentExpression"&&granpa.type==="ExpressionStatement"&&parent.left===id||parent.type==="UpdateExpression"&&granpa.type==="ExpressionStatement"||rhsNode&&isInside(id,rhsNode)&&!isInsideOfStorableFunction(id,rhsNode))}function isForInRef(ref){var target=ref.identifier.parent;if(target.type==="VariableDeclarator"){target=target.parent.parent}if(target.type!=="ForInStatement"){return false}if(target.body.type==="BlockStatement"){target=target.body.body[0]}else{target=target.body}if(!target){return false}return target.type==="ReturnStatement"}function isUsedVariable(variable){var functionNodes=variable.defs.filter(function(def){return def.type==="FunctionName"}).map(function(def){return def.node}),isFunctionDefinition=functionNodes.length>0;var rhsNode=null;return variable.references.some(function(ref){if(isForInRef(ref)){return true}var forItself=isReadForItself(ref,rhsNode);rhsNode=getRhsNode(ref,rhsNode);return isReadRef(ref)&&!forItself&&!(isFunctionDefinition&&isSelfReference(ref,functionNodes))})}function isLastInNonIgnoredParameters(variable){var def=variable.defs[0];if(def.index===def.node.params.length-1){return true}if(config.argsIgnorePattern){var params=context.getDeclaredVariables(def.node);var posteriorParams=params.slice(params.indexOf(variable)+1);if(posteriorParams.every(function(v){return v.references.length===0&&config.argsIgnorePattern.test(v.name)})){return true}}return false}function collectUnusedVariables(scope,unusedVars){var variables=scope.variables;var childScopes=scope.childScopes;var i=void 0,l=void 0;if(scope.type!=="TDZ"&&(scope.type!=="global"||config.vars==="all")){for(i=0,l=variables.length;i0){context.report({node:unusedVar.identifiers[0],message:unusedVar.references.some(function(ref){return ref.isWrite()})?ASSIGNED_MESSAGE:DEFINED_MESSAGE,data:unusedVar})}}}}}}},{"../ast-utils":70,lodash:49}],271:[function(require,module,exports){"use strict";var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj};var SENTINEL_TYPE=/^(?:(?:Function|Class)(?:Declaration|Expression)|ArrowFunctionExpression|CatchClause|ImportDeclaration|ExportNamedDeclaration)$/;var FOR_IN_OF_TYPE=/^For(?:In|Of)Statement$/;function parseOptions(options){var functions=true;var classes=true;var variables=true;if(typeof options==="string"){functions=options!=="nofunc"}else if((typeof options==="undefined"?"undefined":_typeof(options))==="object"&&options!==null){functions=options.functions!==false;classes=options.classes!==false;variables=options.variables!==false}return{functions:functions,classes:classes,variables:variables}}function isFunction(variable){return variable.defs[0].type==="FunctionName"}function isOuterClass(variable,reference){return variable.defs[0].type==="ClassName"&&variable.scope.variableScope!==reference.from.variableScope}function isOuterVariable(variable,reference){return variable.defs[0].type==="Variable"&&variable.scope.variableScope!==reference.from.variableScope}function isInRange(node,location){return node&&node.range[0]<=location&&location<=node.range[1]}function isInInitializer(variable,reference){if(variable.scope!==reference.from){return false}var node=variable.identifiers[0].parent;var location=reference.identifier.range[1];while(node){if(node.type==="VariableDeclarator"){if(isInRange(node.init,location)){return true}if(FOR_IN_OF_TYPE.test(node.parent.parent.type)&&isInRange(node.parent.parent.right,location)){return true}break}else if(node.type==="AssignmentPattern"){if(isInRange(node.right,location)){return true}}else if(SENTINEL_TYPE.test(node.type)){break}node=node.parent}return false}module.exports={meta:{docs:{description:"disallow the use of variables before they are defined",category:"Variables",recommended:false},schema:[{oneOf:[{enum:["nofunc"]},{type:"object",properties:{functions:{type:"boolean"},classes:{type:"boolean"},variables:{type:"boolean"}},additionalProperties:false}]}]},create:function create(context){var options=parseOptions(context.options[0]);function isForbidden(variable,reference){if(isFunction(variable)){return options.functions}if(isOuterClass(variable,reference)){return options.classes}if(isOuterVariable(variable,reference)){return options.variables}return true}function findVariablesInScope(scope){scope.references.forEach(function(reference){var variable=reference.resolved;if(reference.init||!variable||variable.identifiers.length===0||variable.identifiers[0].range[1]=6){ruleDefinition["BlockStatement:exit"]=ruleDefinition["SwitchStatement:exit"]=findVariables;ruleDefinition["ArrowFunctionExpression:exit"]=function(node){if(node.body.type!=="BlockStatement"){findVariables()}}}else{ruleDefinition["FunctionExpression:exit"]=ruleDefinition["FunctionDeclaration:exit"]=ruleDefinition["ArrowFunctionExpression:exit"]=findVariables}return ruleDefinition}}},{}],272:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");function isCallOrNonVariadicApply(node){return node.callee.type==="MemberExpression"&&node.callee.property.type==="Identifier"&&node.callee.computed===false&&(node.callee.property.name==="call"&&node.arguments.length>=1||node.callee.property.name==="apply"&&node.arguments.length===2&&node.arguments[1].type==="ArrayExpression")}function equalTokens(left,right,sourceCode){var tokensL=sourceCode.getTokens(left);var tokensR=sourceCode.getTokens(right);if(tokensL.length!==tokensR.length){return false}for(var i=0;i=2}function isUsedFromOutsideOf(scopeNode){function isOutsideOfScope(reference){var scope=scopeNode.range;var id=reference.identifier.range;return id[0]scope[1]}return function(variable){return variable.references.some(isOutsideOfScope)}}function hasReferenceInTDZ(node){var initStart=node.range[0];var initEnd=node.range[1];return function(variable){var id=variable.defs[0].name;var idStart=id.range[0];var defaultValue=id.parent.type==="AssignmentPattern"?id.parent.right:null;var defaultStart=defaultValue&&defaultValue.range[0];var defaultEnd=defaultValue&&defaultValue.range[1];return variable.references.some(function(reference){var start=reference.identifier.range[0];var end=reference.identifier.range[1];return!reference.init&&(start=defaultStart&&end<=defaultEnd||start>=initStart&&end<=initEnd)})}}module.exports={meta:{docs:{description:"require `let` or `const` instead of `var`",category:"ECMAScript 6",recommended:false},schema:[],fixable:"code"},create:function create(context){var sourceCode=context.getSourceCode();function hasSelfReferenceInTDZ(declarator){if(!declarator.init){return false}var variables=context.getDeclaredVariables(declarator);return variables.some(hasReferenceInTDZ(declarator.init))}function canFix(node){var variables=context.getDeclaredVariables(node);var scopeNode=getScopeNode(node);if(node.parent.type==="SwitchCase"||node.declarations.some(hasSelfReferenceInTDZ)||variables.some(isRedeclared)||variables.some(isUsedFromOutsideOf(scopeNode))){return false}if(astUtils.isInLoop(node)){if(variables.some(isReferencedInClosure)){return false}if(!isLoopAssignee(node)&&!isDeclarationInitialized(node)){return false}}if(!isLoopAssignee(node)&&!(node.parent.type==="ForStatement"&&node.parent.init===node)&&!astUtils.STATEMENT_LIST_PARENTS.has(node.parent.type)){return false}return true}function report(node){var varToken=sourceCode.getFirstToken(node);context.report({node:node,message:"Unexpected var, use let or const instead.",fix:function fix(fixer){if(canFix(node)){return fixer.replaceText(varToken,"let")}return null}})}return{"VariableDeclaration:exit":function VariableDeclarationExit(node){if(node.kind==="var"){report(node)}}}}}},{"../ast-utils":70}],280:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow `void` operators",category:"Best Practices",recommended:false},schema:[]},create:function create(context){return{UnaryExpression:function UnaryExpression(node){if(node.operator==="void"){context.report({node:node,message:"Expected 'undefined' and instead saw 'void'."})}}}}}},{}],281:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"disallow specified warning terms in comments",category:"Best Practices",recommended:false},schema:[{type:"object",properties:{terms:{type:"array",items:{type:"string"}},location:{enum:["start","anywhere"]}},additionalProperties:false}]},create:function create(context){var sourceCode=context.getSourceCode(),configuration=context.options[0]||{},warningTerms=configuration.terms||["todo","fixme","xxx"],location=configuration.location||"start",selfConfigRegEx=/\bno-warning-comments\b/;function convertToRegExp(term){var escaped=term.replace(/[-/\\$^*+?.()|[\]{}]/g,"\\$&");var prefix=void 0;var suffix=/\w$/.test(term)?"\\b":"";if(location==="start"){prefix="^\\s*"}else if(/^\w/.test(term)){prefix="\\b"}else{prefix=""}return new RegExp(prefix+escaped+suffix,"i")}var warningRegExps=warningTerms.map(convertToRegExp);function commentContainsWarningTerm(comment){var matches=[];warningRegExps.forEach(function(regex,index){if(regex.test(comment)){matches.push(warningTerms[index])}});return matches}function checkComment(node){if(astUtils.isDirectiveComment(node)&&selfConfigRegEx.test(node.value)){return}var matches=commentContainsWarningTerm(node.value);matches.forEach(function(matchedTerm){context.report({node:node,message:"Unexpected '{{matchedTerm}}' comment.",data:{matchedTerm:matchedTerm}})})}return{Program:function Program(){var comments=sourceCode.getAllComments();comments.filter(function(token){return token.type!=="Shebang"}).forEach(checkComment)}}}}},{"../ast-utils":70}],282:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"disallow whitespace before properties",category:"Stylistic Issues",recommended:false},fixable:"whitespace",schema:[]},create:function create(context){var sourceCode=context.getSourceCode();function reportError(node,leftToken,rightToken){var replacementText=node.computed?"":".";context.report({node:node,message:"Unexpected whitespace before property {{propName}}.",data:{propName:sourceCode.getText(node.property)},fix:function fix(fixer){if(!node.computed&&astUtils.isDecimalInteger(node.object)){return null}return fixer.replaceTextRange([leftToken.range[1],rightToken.range[0]],replacementText)}})}return{MemberExpression:function MemberExpression(node){var rightToken=void 0;var leftToken=void 0;if(!astUtils.isTokenOnSameLine(node.object,node.property)){return}if(node.computed){rightToken=sourceCode.getTokenBefore(node.property,astUtils.isOpeningBracketToken);leftToken=sourceCode.getTokenBefore(rightToken)}else{rightToken=sourceCode.getFirstToken(node.property);leftToken=sourceCode.getTokenBefore(rightToken,1)}if(sourceCode.isSpaceBetweenTokens(leftToken,rightToken)){reportError(node,leftToken,rightToken)}}}}}},{"../ast-utils":70}],283:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow `with` statements",category:"Best Practices",recommended:false},schema:[]},create:function create(context){return{WithStatement:function WithStatement(node){context.report({node:node,message:"Unexpected use of 'with' statement."})}}}}},{}],284:[function(require,module,exports){"use strict";var POSITION_SCHEMA={enum:["beside","below","any"]};module.exports={meta:{docs:{description:"enforce the location of single-line statements",category:"Stylistic Issues",recommended:false},fixable:"whitespace",schema:[POSITION_SCHEMA,{properties:{overrides:{properties:{if:POSITION_SCHEMA,else:POSITION_SCHEMA,while:POSITION_SCHEMA,do:POSITION_SCHEMA,for:POSITION_SCHEMA},additionalProperties:false}},additionalProperties:false}]},create:function create(context){var sourceCode=context.getSourceCode();function getOption(keywordName){return context.options[1]&&context.options[1].overrides&&context.options[1].overrides[keywordName]||context.options[0]||"beside"}function validateStatement(node,keywordName){var option=getOption(keywordName);if(node.type==="BlockStatement"||option==="any"){return}var tokenBefore=sourceCode.getTokenBefore(node);if(tokenBefore.loc.end.line===node.loc.start.line&&option==="below"){context.report({node:node,message:"Expected a linebreak before this statement.",fix:function fix(fixer){return fixer.insertTextBefore(node,"\n")}})}else if(tokenBefore.loc.end.line!==node.loc.start.line&&option==="beside"){context.report({node:node,message:"Expected no linebreak before this statement.",fix:function fix(fixer){if(sourceCode.getText().slice(tokenBefore.range[1],node.range[0]).trim()){return null}return fixer.replaceTextRange([tokenBefore.range[1],node.range[0]]," ")}})}}return{IfStatement:function IfStatement(node){validateStatement(node.consequent,"if");if(node.alternate&&node.alternate.type!=="IfStatement"){validateStatement(node.alternate,"else")}},WhileStatement:function WhileStatement(node){return validateStatement(node.body,"while")},DoWhileStatement:function DoWhileStatement(node){return validateStatement(node.body,"do")},ForStatement:function ForStatement(node){return validateStatement(node.body,"for")},ForInStatement:function ForInStatement(node){return validateStatement(node.body,"for")},ForOfStatement:function ForOfStatement(node){return validateStatement(node.body,"for")}}}}},{}],285:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");var OPTION_VALUE={oneOf:[{enum:["always","never"]},{type:"object",properties:{multiline:{type:"boolean"},minProperties:{type:"integer",minimum:0},consistent:{type:"boolean"}},additionalProperties:false,minProperties:1}]};function normalizeOptionValue(value){var multiline=false;var minProperties=Number.POSITIVE_INFINITY;var consistent=false;if(value){if(value==="always"){minProperties=0}else if(value==="never"){minProperties=Number.POSITIVE_INFINITY}else{multiline=Boolean(value.multiline);minProperties=value.minProperties||Number.POSITIVE_INFINITY;consistent=Boolean(value.consistent)}}else{multiline=true}return{multiline:multiline,minProperties:minProperties,consistent:consistent}}function normalizeOptions(options){if(options&&(options.ObjectExpression||options.ObjectPattern)){return{ObjectExpression:normalizeOptionValue(options.ObjectExpression),ObjectPattern:normalizeOptionValue(options.ObjectPattern)}}var value=normalizeOptionValue(options);return{ObjectExpression:value,ObjectPattern:value}}module.exports={meta:{docs:{description:"enforce consistent line breaks inside braces",category:"Stylistic Issues",recommended:false},fixable:"whitespace",schema:[{oneOf:[OPTION_VALUE,{type:"object",properties:{ObjectExpression:OPTION_VALUE,ObjectPattern:OPTION_VALUE},additionalProperties:false,minProperties:1}]}]},create:function create(context){var sourceCode=context.getSourceCode();var normalizedOptions=normalizeOptions(context.options[0]);function check(node){var options=normalizedOptions[node.type];var openBrace=sourceCode.getFirstToken(node);var closeBrace=sourceCode.getLastToken(node);var first=sourceCode.getTokenAfter(openBrace,{includeComments:true});var last=sourceCode.getTokenBefore(closeBrace,{includeComments:true});var needsLinebreaks=node.properties.length>=options.minProperties||options.multiline&&node.properties.length>0&&first.loc.start.line!==last.loc.end.line;first=sourceCode.getTokenAfter(openBrace);last=sourceCode.getTokenBefore(closeBrace);if(needsLinebreaks){if(astUtils.isTokenOnSameLine(openBrace,first)){context.report({message:"Expected a line break after this opening brace.",node:node,loc:openBrace.loc.start,fix:function fix(fixer){return fixer.insertTextAfter(openBrace,"\n")}})}if(astUtils.isTokenOnSameLine(last,closeBrace)){context.report({message:"Expected a line break before this closing brace.",node:node,loc:closeBrace.loc.start,fix:function fix(fixer){return fixer.insertTextBefore(closeBrace,"\n")}})}}else{var consistent=options.consistent;var hasLineBreakBetweenOpenBraceAndFirst=!astUtils.isTokenOnSameLine(openBrace,first);var hasLineBreakBetweenCloseBraceAndLast=!astUtils.isTokenOnSameLine(last,closeBrace);if(!consistent&&hasLineBreakBetweenOpenBraceAndFirst||consistent&&hasLineBreakBetweenOpenBraceAndFirst&&!hasLineBreakBetweenCloseBraceAndLast){context.report({message:"Unexpected line break after this opening brace.",node:node,loc:openBrace.loc.start,fix:function fix(fixer){return fixer.removeRange([openBrace.range[1],first.range[0]])}})}if(!consistent&&hasLineBreakBetweenCloseBraceAndLast||consistent&&!hasLineBreakBetweenOpenBraceAndFirst&&hasLineBreakBetweenCloseBraceAndLast){context.report({message:"Unexpected line break before this closing brace.",node:node,loc:closeBrace.loc.start,fix:function fix(fixer){return fixer.removeRange([last.range[1],closeBrace.range[0]])}})}}}return{ObjectExpression:check,ObjectPattern:check}}}},{"../ast-utils":70}],286:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"enforce consistent spacing inside braces",category:"Stylistic Issues",recommended:false},fixable:"whitespace",schema:[{enum:["always","never"]},{type:"object",properties:{arraysInObjects:{type:"boolean"},objectsInObjects:{type:"boolean"}},additionalProperties:false}]},create:function create(context){var spaced=context.options[0]==="always",sourceCode=context.getSourceCode();function isOptionSet(option){return context.options[1]?context.options[1][option]===!spaced:false}var options={spaced:spaced,arraysInObjectsException:isOptionSet("arraysInObjects"),objectsInObjectsException:isOptionSet("objectsInObjects")};function reportNoBeginningSpace(node,token){context.report({node:node,loc:token.loc.start,message:"There should be no space after '{{token}}'.",data:{token:token.value},fix:function fix(fixer){var nextToken=context.getSourceCode().getTokenAfter(token);return fixer.removeRange([token.range[1],nextToken.range[0]])}})}function reportNoEndingSpace(node,token){context.report({node:node,loc:token.loc.start,message:"There should be no space before '{{token}}'.",data:{token:token.value},fix:function fix(fixer){var previousToken=context.getSourceCode().getTokenBefore(token);return fixer.removeRange([previousToken.range[1],token.range[0]])}})}function reportRequiredBeginningSpace(node,token){context.report({node:node,loc:token.loc.start,message:"A space is required after '{{token}}'.",data:{token:token.value},fix:function fix(fixer){return fixer.insertTextAfter(token," ")}})}function reportRequiredEndingSpace(node,token){context.report({node:node,loc:token.loc.start,message:"A space is required before '{{token}}'.",data:{token:token.value},fix:function fix(fixer){return fixer.insertTextBefore(token," ")}})}function validateBraceSpacing(node,first,second,penultimate,last){if(astUtils.isTokenOnSameLine(first,second)){var firstSpaced=sourceCode.isSpaceBetweenTokens(first,second);if(options.spaced&&!firstSpaced){reportRequiredBeginningSpace(node,first)}if(!options.spaced&&firstSpaced){reportNoBeginningSpace(node,first)}}if(astUtils.isTokenOnSameLine(penultimate,last)){var shouldCheckPenultimate=options.arraysInObjectsException&&astUtils.isClosingBracketToken(penultimate)||options.objectsInObjectsException&&astUtils.isClosingBraceToken(penultimate);var penultimateType=shouldCheckPenultimate&&sourceCode.getNodeByRangeIndex(penultimate.start).type;var closingCurlyBraceMustBeSpaced=options.arraysInObjectsException&&penultimateType==="ArrayExpression"||options.objectsInObjectsException&&(penultimateType==="ObjectExpression"||penultimateType==="ObjectPattern")?!options.spaced:options.spaced;var lastSpaced=sourceCode.isSpaceBetweenTokens(penultimate,last);if(closingCurlyBraceMustBeSpaced&&!lastSpaced){reportRequiredEndingSpace(node,last)}if(!closingCurlyBraceMustBeSpaced&&lastSpaced){reportNoEndingSpace(node,last)}}}function getClosingBraceOfObject(node){var lastProperty=node.properties[node.properties.length-1];return sourceCode.getTokenAfter(lastProperty,astUtils.isClosingBraceToken)}function checkForObject(node){if(node.properties.length===0){return}var first=sourceCode.getFirstToken(node),last=getClosingBraceOfObject(node),second=sourceCode.getTokenAfter(first),penultimate=sourceCode.getTokenBefore(last);validateBraceSpacing(node,first,second,penultimate,last)}function checkForImport(node){if(node.specifiers.length===0){return}var firstSpecifier=node.specifiers[0];var lastSpecifier=node.specifiers[node.specifiers.length-1];if(lastSpecifier.type!=="ImportSpecifier"){return}if(firstSpecifier.type!=="ImportSpecifier"){firstSpecifier=node.specifiers[1]}var first=sourceCode.getTokenBefore(firstSpecifier),last=sourceCode.getTokenAfter(lastSpecifier,astUtils.isNotCommaToken),second=sourceCode.getTokenAfter(first),penultimate=sourceCode.getTokenBefore(last);validateBraceSpacing(node,first,second,penultimate,last)}function checkForExport(node){if(node.specifiers.length===0){return}var firstSpecifier=node.specifiers[0],lastSpecifier=node.specifiers[node.specifiers.length-1],first=sourceCode.getTokenBefore(firstSpecifier),last=sourceCode.getTokenAfter(lastSpecifier,astUtils.isNotCommaToken),second=sourceCode.getTokenAfter(first),penultimate=sourceCode.getTokenBefore(last);validateBraceSpacing(node,first,second,penultimate,last)}return{ObjectPattern:checkForObject,ObjectExpression:checkForObject,ImportDeclaration:checkForImport,ExportNamedDeclaration:checkForExport}}}},{"../ast-utils":70}],287:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"enforce placing object properties on separate lines",category:"Stylistic Issues",recommended:false},schema:[{type:"object",properties:{allowMultiplePropertiesPerLine:{type:"boolean"}},additionalProperties:false}],fixable:"whitespace"},create:function create(context){var allowSameLine=context.options[0]&&Boolean(context.options[0].allowMultiplePropertiesPerLine);var errorMessage=allowSameLine?"Object properties must go on a new line if they aren't all on the same line.":"Object properties must go on a new line.";var sourceCode=context.getSourceCode();return{ObjectExpression:function ObjectExpression(node){if(allowSameLine){if(node.properties.length>1){var firstTokenOfFirstProperty=sourceCode.getFirstToken(node.properties[0]);var lastTokenOfLastProperty=sourceCode.getLastToken(node.properties[node.properties.length-1]);if(firstTokenOfFirstProperty.loc.end.line===lastTokenOfLastProperty.loc.start.line){return}}}var _loop=function _loop(i){var lastTokenOfPreviousProperty=sourceCode.getLastToken(node.properties[i-1]);var firstTokenOfCurrentProperty=sourceCode.getFirstToken(node.properties[i]);if(lastTokenOfPreviousProperty.loc.end.line===firstTokenOfCurrentProperty.loc.start.line){context.report({node:node,loc:firstTokenOfCurrentProperty.loc.start,message:errorMessage,fix:function fix(fixer){var comma=sourceCode.getTokenBefore(firstTokenOfCurrentProperty);var rangeAfterComma=[comma.range[1],firstTokenOfCurrentProperty.range[0]];if(sourceCode.text.slice(rangeAfterComma[0],rangeAfterComma[1]).trim()){return null}return fixer.replaceTextRange(rangeAfterComma,"\n")}})}};for(var i=1;i0){var shorthandProperties=properties.filter(isShorthand);if(shorthandProperties.length!==properties.length){if(shorthandProperties.length>0){context.report({node:node,message:"Unexpected mix of shorthand and non-shorthand properties."})}else if(checkRedundancy){var canAlwaysUseShorthand=properties.every(isRedundant);if(canAlwaysUseShorthand){context.report({node:node,message:"Expected shorthand for all properties."})}}}}}function makeFunctionShorthand(fixer,node){var firstKeyToken=node.computed?sourceCode.getFirstToken(node,astUtils.isOpeningBracketToken):sourceCode.getFirstToken(node.key);var lastKeyToken=node.computed?sourceCode.getFirstTokenBetween(node.key,node.value,astUtils.isClosingBracketToken):sourceCode.getLastToken(node.key);var keyText=sourceCode.text.slice(firstKeyToken.range[0],lastKeyToken.range[1]);var keyPrefix="";if(node.value.generator){keyPrefix="*"}else if(node.value.async){keyPrefix="async "}if(node.value.type==="FunctionExpression"){var functionToken=sourceCode.getTokens(node.value).find(function(token){return token.type==="Keyword"&&token.value==="function"});var tokenBeforeParams=node.value.generator?sourceCode.getTokenAfter(functionToken):functionToken;return fixer.replaceTextRange([firstKeyToken.range[0],node.range[1]],keyPrefix+keyText+sourceCode.text.slice(tokenBeforeParams.range[1],node.value.range[1]))}var arrowToken=sourceCode.getTokens(node.value).find(function(token){return token.value==="=>"});var tokenBeforeArrow=sourceCode.getTokenBefore(arrowToken);var hasParensAroundParameters=tokenBeforeArrow.type==="Punctuator"&&tokenBeforeArrow.value===")";var oldParamText=sourceCode.text.slice(sourceCode.getFirstToken(node.value,node.value.async?1:0).range[0],tokenBeforeArrow.range[1]);var newParamText=hasParensAroundParameters?oldParamText:"("+oldParamText+")";return fixer.replaceTextRange([firstKeyToken.range[0],node.range[1]],keyPrefix+keyText+newParamText+sourceCode.text.slice(arrowToken.range[1],node.value.range[1]))}function makeFunctionLongform(fixer,node){var firstKeyToken=node.computed?sourceCode.getTokens(node).find(function(token){return token.value==="["}):sourceCode.getFirstToken(node.key);var lastKeyToken=node.computed?sourceCode.getTokensBetween(node.key,node.value).find(function(token){return token.value==="]"}):sourceCode.getLastToken(node.key);var keyText=sourceCode.text.slice(firstKeyToken.range[0],lastKeyToken.range[1]);var functionHeader="function";if(node.value.generator){functionHeader="function*"}else if(node.value.async){functionHeader="async function"}return fixer.replaceTextRange([node.range[0],lastKeyToken.range[1]],keyText+": "+functionHeader)}var lexicalScopeStack=[];var arrowsWithLexicalIdentifiers=new WeakSet;var argumentsIdentifiers=new WeakSet;function enterFunction(){lexicalScopeStack.unshift(new Set);context.getScope().variables.filter(function(variable){return variable.name==="arguments"}).forEach(function(variable){variable.references.map(function(ref){return ref.identifier}).forEach(function(identifier){return argumentsIdentifiers.add(identifier)})})}function exitFunction(){lexicalScopeStack.shift()}function reportLexicalIdentifier(){lexicalScopeStack[0].forEach(function(arrowFunction){return arrowsWithLexicalIdentifiers.add(arrowFunction)})}return{Program:enterFunction,FunctionDeclaration:enterFunction,FunctionExpression:enterFunction,"Program:exit":exitFunction,"FunctionDeclaration:exit":exitFunction,"FunctionExpression:exit":exitFunction,ArrowFunctionExpression:function ArrowFunctionExpression(node){lexicalScopeStack[0].add(node)},"ArrowFunctionExpression:exit":function ArrowFunctionExpressionExit(node){lexicalScopeStack[0].delete(node)},ThisExpression:reportLexicalIdentifier,Super:reportLexicalIdentifier,MetaProperty:function MetaProperty(node){if(node.meta.name==="new"&&node.property.name==="target"){reportLexicalIdentifier()}},Identifier:function Identifier(node){if(argumentsIdentifiers.has(node)){reportLexicalIdentifier()}},ObjectExpression:function ObjectExpression(node){if(APPLY_CONSISTENT){checkConsistency(node,false)}else if(APPLY_CONSISTENT_AS_NEEDED){checkConsistency(node,true)}},"Property:exit":function PropertyExit(node){var isConciseProperty=node.method||node.shorthand;if(node.parent.type==="ObjectPattern"){return}if(node.kind==="get"||node.kind==="set"){return}if(node.computed&&node.value.type!=="FunctionExpression"&&node.value.type!=="ArrowFunctionExpression"){return}if(isConciseProperty){if(node.method&&(APPLY_NEVER||AVOID_QUOTES&&isStringLiteral(node.key))){var message=APPLY_NEVER?"Expected longform method syntax.":"Expected longform method syntax for string literal keys.";context.report({node:node,message:message,fix:function fix(fixer){return makeFunctionLongform(fixer,node)}})}else if(APPLY_NEVER){context.report({node:node,message:"Expected longform property syntax.",fix:function fix(fixer){return fixer.insertTextAfter(node.key,": "+node.key.name)}})}}else if(APPLY_TO_METHODS&&!node.value.id&&(node.value.type==="FunctionExpression"||node.value.type==="ArrowFunctionExpression")){if(IGNORE_CONSTRUCTORS&&node.key.type==="Identifier"&&isConstructor(node.key.name)){return}if(AVOID_QUOTES&&isStringLiteral(node.key)){return}if(node.value.type==="FunctionExpression"||node.value.type==="ArrowFunctionExpression"&&node.value.body.type==="BlockStatement"&&AVOID_EXPLICIT_RETURN_ARROWS&&!arrowsWithLexicalIdentifiers.has(node.value)){context.report({node:node,message:"Expected method shorthand.",fix:function fix(fixer){return makeFunctionShorthand(fixer,node)}})}}else if(node.value.type==="Identifier"&&node.key.name===node.value.name&&APPLY_TO_PROPS){context.report({node:node,message:"Expected property shorthand.",fix:function fix(fixer){return fixer.replaceText(node,node.value.name)}})}else if(node.value.type==="Identifier"&&node.key.type==="Literal"&&node.key.value===node.value.name&&APPLY_TO_PROPS){if(AVOID_QUOTES){return}context.report({node:node,message:"Expected property shorthand.",fix:function fix(fixer){return fixer.replaceText(node,node.value.name)}})}}}}}},{"../ast-utils":70}],289:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"require or disallow newlines around variable declarations",category:"Stylistic Issues",recommended:false},schema:[{enum:["always","initializations"]}],fixable:"whitespace"},create:function create(context){var ERROR_MESSAGE="Expected variable declaration to be on a new line.";var always=context.options[0]==="always";function isForTypeSpecifier(keyword){return keyword==="ForStatement"||keyword==="ForInStatement"||keyword==="ForOfStatement"}function checkForNewLine(node){if(isForTypeSpecifier(node.parent.type)){return}var declarations=node.declarations;var prev=void 0;declarations.forEach(function(current){if(prev&&prev.loc.end.line===current.loc.start.line){if(always||prev.init||current.init){context.report({node:node,message:ERROR_MESSAGE,loc:current.loc.start,fix:function fix(fixer){return fixer.insertTextBefore(current,"\n")}})}}prev=current})}return{VariableDeclaration:checkForNewLine}}}},{}],290:[function(require,module,exports){"use strict";var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj};module.exports={meta:{docs:{description:"enforce variables to be declared either together or separately in functions",category:"Stylistic Issues",recommended:false},schema:[{oneOf:[{enum:["always","never"]},{type:"object",properties:{var:{enum:["always","never"]},let:{enum:["always","never"]},const:{enum:["always","never"]}},additionalProperties:false},{type:"object",properties:{initialized:{enum:["always","never"]},uninitialized:{enum:["always","never"]}},additionalProperties:false}]}]},create:function create(context){var MODE_ALWAYS="always",MODE_NEVER="never";var mode=context.options[0]||MODE_ALWAYS;var options={};if(typeof mode==="string"){options.var={uninitialized:mode,initialized:mode};options.let={uninitialized:mode,initialized:mode};options.const={uninitialized:mode,initialized:mode}}else if((typeof mode==="undefined"?"undefined":_typeof(mode))==="object"){if(mode.hasOwnProperty("var")&&typeof mode.var==="string"){options.var={uninitialized:mode.var,initialized:mode.var}}if(mode.hasOwnProperty("let")&&typeof mode.let==="string"){options.let={uninitialized:mode.let,initialized:mode.let}}if(mode.hasOwnProperty("const")&&typeof mode.const==="string"){options.const={uninitialized:mode.const,initialized:mode.const}}if(mode.hasOwnProperty("uninitialized")){if(!options.var){options.var={}}if(!options.let){options.let={}}if(!options.const){options.const={}}options.var.uninitialized=mode.uninitialized;options.let.uninitialized=mode.uninitialized;options.const.uninitialized=mode.uninitialized}if(mode.hasOwnProperty("initialized")){if(!options.var){options.var={}}if(!options.let){options.let={}}if(!options.const){options.const={}}options.var.initialized=mode.initialized;options.let.initialized=mode.initialized;options.const.initialized=mode.initialized}}var functionStack=[];var blockStack=[];function startBlock(){blockStack.push({let:{initialized:false,uninitialized:false},const:{initialized:false,uninitialized:false}})}function startFunction(){functionStack.push({initialized:false,uninitialized:false});startBlock()}function endBlock(){blockStack.pop()}function endFunction(){functionStack.pop();endBlock()}function recordTypes(statementType,declarations,currentScope){for(var i=0;i0){if(currentOptions.uninitialized===MODE_ALWAYS&¤tScope.uninitialized){return false}}if(declarationCounts.initialized>0){if(currentOptions.initialized===MODE_ALWAYS&¤tScope.initialized){return false}}recordTypes(statementType,declarations,currentScope);return true}return{Program:startFunction,FunctionDeclaration:startFunction,FunctionExpression:startFunction,ArrowFunctionExpression:startFunction,BlockStatement:startBlock,ForStatement:startBlock,ForInStatement:startBlock,ForOfStatement:startBlock,SwitchStatement:startBlock,VariableDeclaration:function VariableDeclaration(node){var parent=node.parent;var type=node.kind;if(!options[type]){return}var declarations=node.declarations;var declarationCounts=countDeclarations(declarations);if(!hasOnlyOneStatement(type,declarations)){if(options[type].initialized===MODE_ALWAYS&&options[type].uninitialized===MODE_ALWAYS){context.report({node:node,message:"Combine this with the previous '{{type}}' statement.",data:{type:type}})}else{if(options[type].initialized===MODE_ALWAYS){context.report({node:node,message:"Combine this with the previous '{{type}}' statement with initialized variables.",data:{type:type}})}if(options[type].uninitialized===MODE_ALWAYS){if(node.parent.left===node&&(node.parent.type==="ForInStatement"||node.parent.type==="ForOfStatement")){return}context.report({node:node,message:"Combine this with the previous '{{type}}' statement with uninitialized variables.",data:{type:type}})}}}if(parent.type!=="ForStatement"||parent.init!==node){var totalDeclarations=declarationCounts.uninitialized+declarationCounts.initialized;if(totalDeclarations>1){if(options[type].initialized===MODE_NEVER&&options[type].uninitialized===MODE_NEVER){context.report({node:node,message:"Split '{{type}}' declarations into multiple statements.",data:{type:type}})}else if(options[type].initialized===MODE_NEVER&&declarationCounts.initialized>0){context.report({node:node,message:"Split initialized '{{type}}' declarations into multiple statements.",data:{type:type}})}else if(options[type].uninitialized===MODE_NEVER&&declarationCounts.uninitialized>0){context.report({node:node,message:"Split uninitialized '{{type}}' declarations into multiple statements.",data:{type:type}})}}}},"ForStatement:exit":endBlock,"ForOfStatement:exit":endBlock,"ForInStatement:exit":endBlock,"SwitchStatement:exit":endBlock,"BlockStatement:exit":endBlock,"Program:exit":endFunction,"FunctionDeclaration:exit":endFunction,"FunctionExpression:exit":endFunction,"ArrowFunctionExpression:exit":endFunction}}}},{}],291:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");function isCommutativeOperatorWithShorthand(operator){return["*","&","^","|"].indexOf(operator)>=0}function isNonCommutativeOperatorWithShorthand(operator){return["+","-","/","%","<<",">>",">>>","**"].indexOf(operator)>=0}function same(a,b){if(a.type!==b.type){return false}switch(a.type){case"Identifier":return a.name===b.name;case"Literal":return a.value===b.value;case"MemberExpression":return same(a.object,b.object)&&same(a.property,b.property);default:return false}}function canBeFixed(node){return node.type==="Identifier"||node.type==="MemberExpression"&&node.object.type==="Identifier"&&(!node.computed||node.property.type==="Literal")}module.exports={meta:{docs:{description:"require or disallow assignment operator shorthand where possible",category:"Stylistic Issues",recommended:false},schema:[{enum:["always","never"]}],fixable:"code"},create:function create(context){var sourceCode=context.getSourceCode();function getOperatorToken(node){return sourceCode.getFirstTokenBetween(node.left,node.right,function(token){return token.value===node.operator})}function verify(node){if(node.operator!=="="||node.right.type!=="BinaryExpression"){return}var left=node.left;var expr=node.right;var operator=expr.operator;if(isCommutativeOperatorWithShorthand(operator)||isNonCommutativeOperatorWithShorthand(operator)){if(same(left,expr.left)){context.report({node:node,message:"Assignment can be replaced with operator assignment.",fix:function fix(fixer){if(canBeFixed(left)){var equalsToken=getOperatorToken(node);var operatorToken=getOperatorToken(expr);var leftText=sourceCode.getText().slice(node.range[0],equalsToken.range[0]);var rightText=sourceCode.getText().slice(operatorToken.range[1],node.right.range[1]);return fixer.replaceText(node,""+leftText+expr.operator+"="+rightText)}return null}})}else if(same(left,expr.right)&&isCommutativeOperatorWithShorthand(operator)){context.report({node:node,message:"Assignment can be replaced with operator assignment."})}}}function prohibit(node){if(node.operator!=="="){context.report({node:node,message:"Unexpected operator assignment shorthand.",fix:function fix(fixer){if(canBeFixed(node.left)){var operatorToken=getOperatorToken(node);var leftText=sourceCode.getText().slice(node.range[0],operatorToken.range[0]);var newOperator=node.operator.slice(0,-1);var rightText=void 0;if(astUtils.getPrecedence(node.right)<=astUtils.getPrecedence({type:"BinaryExpression",operator:newOperator})&&!astUtils.isParenthesised(sourceCode,node.right)){rightText=sourceCode.text.slice(operatorToken.range[1],node.right.range[0])+"("+sourceCode.getText(node.right)+")"}else{rightText=sourceCode.text.slice(operatorToken.range[1],node.range[1])}return fixer.replaceText(node,leftText+"= "+leftText+newOperator+rightText)}return null}})}}return{AssignmentExpression:context.options[0]!=="never"?verify:prohibit}}}},{"../ast-utils":70}],292:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"enforce consistent linebreak style for operators",category:"Stylistic Issues",recommended:false},schema:[{enum:["after","before","none",null]},{type:"object",properties:{overrides:{type:"object",properties:{anyOf:{type:"string",enum:["after","before","none","ignore"]}}}},additionalProperties:false}],fixable:"code"},create:function create(context){var usedDefaultGlobal=!context.options[0];var globalStyle=context.options[0]||"after";var options=context.options[1]||{};var styleOverrides=options.overrides?Object.assign({},options.overrides):{};if(usedDefaultGlobal&&!styleOverrides["?"]){styleOverrides["?"]="before"}if(usedDefaultGlobal&&!styleOverrides[":"]){styleOverrides[":"]="before"}var sourceCode=context.getSourceCode();function getFixer(operatorToken,desiredStyle){return function(fixer){var tokenBefore=sourceCode.getTokenBefore(operatorToken);var tokenAfter=sourceCode.getTokenAfter(operatorToken);var textBefore=sourceCode.text.slice(tokenBefore.range[1],operatorToken.range[0]);var textAfter=sourceCode.text.slice(operatorToken.range[1],tokenAfter.range[0]);var hasLinebreakBefore=!astUtils.isTokenOnSameLine(tokenBefore,operatorToken);var hasLinebreakAfter=!astUtils.isTokenOnSameLine(operatorToken,tokenAfter);var newTextBefore=void 0,newTextAfter=void 0;if(hasLinebreakBefore!==hasLinebreakAfter&&desiredStyle!=="none"){if(sourceCode.getTokenBefore(operatorToken,{includeComments:true})!==tokenBefore&&sourceCode.getTokenAfter(operatorToken,{includeComments:true})!==tokenAfter){return null}newTextBefore=textAfter;newTextAfter=textBefore}else{var LINEBREAK_REGEX=astUtils.createGlobalLinebreakMatcher();newTextBefore=desiredStyle==="before"||textBefore.trim()?textBefore:textBefore.replace(LINEBREAK_REGEX,"");newTextAfter=desiredStyle==="after"||textAfter.trim()?textAfter:textAfter.replace(LINEBREAK_REGEX,"");if(newTextBefore===textBefore&&newTextAfter===textAfter){return null}}if(newTextAfter===""&&tokenAfter.type==="Punctuator"&&"+-".includes(operatorToken.value)&&tokenAfter.value===operatorToken.value){newTextAfter+=" "}return fixer.replaceTextRange([tokenBefore.range[1],tokenAfter.range[0]],newTextBefore+operatorToken.value+newTextAfter)}}function validateNode(node,leftSide){var operatorToken=sourceCode.getTokenAfter(leftSide,astUtils.isNotClosingParenToken);var leftToken=sourceCode.getTokenBefore(operatorToken);var rightToken=sourceCode.getTokenAfter(operatorToken);var operator=operatorToken.value;var operatorStyleOverride=styleOverrides[operator];var style=operatorStyleOverride||globalStyle;var fix=getFixer(operatorToken,style);if(astUtils.isTokenOnSameLine(leftToken,operatorToken)&&astUtils.isTokenOnSameLine(operatorToken,rightToken)){}else if(operatorStyleOverride!=="ignore"&&!astUtils.isTokenOnSameLine(leftToken,operatorToken)&&!astUtils.isTokenOnSameLine(operatorToken,rightToken)){context.report({node:node,loc:{line:operatorToken.loc.end.line,column:operatorToken.loc.end.column},message:"Bad line breaking before and after '{{operator}}'.",data:{operator:operator},fix:fix})}else if(style==="before"&&astUtils.isTokenOnSameLine(leftToken,operatorToken)){context.report({node:node,loc:{line:operatorToken.loc.end.line,column:operatorToken.loc.end.column},message:"'{{operator}}' should be placed at the beginning of the line.",data:{operator:operator},fix:fix})}else if(style==="after"&&astUtils.isTokenOnSameLine(operatorToken,rightToken)){context.report({node:node,loc:{line:operatorToken.loc.end.line,column:operatorToken.loc.end.column},message:"'{{operator}}' should be placed at the end of the line.",data:{operator:operator},fix:fix})}else if(style==="none"){context.report({node:node,loc:{line:operatorToken.loc.end.line,column:operatorToken.loc.end.column},message:"There should be no line break before or after '{{operator}}'.",data:{operator:operator},fix:fix})}}function validateBinaryExpression(node){validateNode(node,node.left)}return{BinaryExpression:validateBinaryExpression,LogicalExpression:validateBinaryExpression,AssignmentExpression:validateBinaryExpression,VariableDeclarator:function VariableDeclarator(node){if(node.init){validateNode(node,node.id)}},ConditionalExpression:function ConditionalExpression(node){validateNode(node,node.test);validateNode(node,node.consequent)}}}}},{"../ast-utils":70}],293:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"require or disallow padding within blocks",category:"Stylistic Issues",recommended:false},fixable:"whitespace",schema:[{oneOf:[{enum:["always","never"]},{type:"object",properties:{blocks:{enum:["always","never"]},switches:{enum:["always","never"]},classes:{enum:["always","never"]}},additionalProperties:false,minProperties:1}]}]},create:function create(context){var options={};var config=context.options[0]||"always";if(typeof config==="string"){var shouldHavePadding=config==="always";options.blocks=shouldHavePadding;options.switches=shouldHavePadding;options.classes=shouldHavePadding}else{if(config.hasOwnProperty("blocks")){options.blocks=config.blocks==="always"}if(config.hasOwnProperty("switches")){options.switches=config.switches==="always"}if(config.hasOwnProperty("classes")){options.classes=config.classes==="always"}}var ALWAYS_MESSAGE="Block must be padded by blank lines.",NEVER_MESSAGE="Block must not be padded by blank lines.";var sourceCode=context.getSourceCode();function getOpenBrace(node){if(node.type==="SwitchStatement"){return sourceCode.getTokenBefore(node.cases[0])}return sourceCode.getFirstToken(node)}function isComment(node){return node.type==="Line"||node.type==="Block"}function isPaddingBetweenTokens(first,second){return second.loc.start.line-first.loc.end.line>=2}function getFirstBlockToken(token){var prev=token,first=token;do{prev=first;first=sourceCode.getTokenAfter(first,{includeComments:true})}while(isComment(first)&&first.loc.start.line===prev.loc.end.line);return first}function getLastBlockToken(token){var last=token,next=token;do{next=last;last=sourceCode.getTokenBefore(last,{includeComments:true})}while(isComment(last)&&last.loc.end.line===next.loc.start.line);return last}function requirePaddingFor(node){switch(node.type){case"BlockStatement":return options.blocks;case"SwitchStatement":return options.switches;case"ClassBody":return options.classes;default:throw new Error("unreachable")}}function checkPadding(node){var openBrace=getOpenBrace(node),firstBlockToken=getFirstBlockToken(openBrace),tokenBeforeFirst=sourceCode.getTokenBefore(firstBlockToken,{includeComments:true}),closeBrace=sourceCode.getLastToken(node),lastBlockToken=getLastBlockToken(closeBrace),tokenAfterLast=sourceCode.getTokenAfter(lastBlockToken,{includeComments:true}),blockHasTopPadding=isPaddingBetweenTokens(tokenBeforeFirst,firstBlockToken),blockHasBottomPadding=isPaddingBetweenTokens(lastBlockToken,tokenAfterLast);if(requirePaddingFor(node)){if(!blockHasTopPadding){context.report({node:node,loc:{line:tokenBeforeFirst.loc.start.line,column:tokenBeforeFirst.loc.start.column},fix:function fix(fixer){return fixer.insertTextAfter(tokenBeforeFirst,"\n")},message:ALWAYS_MESSAGE})}if(!blockHasBottomPadding){context.report({node:node,loc:{line:tokenAfterLast.loc.end.line,column:tokenAfterLast.loc.end.column-1},fix:function fix(fixer){return fixer.insertTextBefore(tokenAfterLast,"\n")},message:ALWAYS_MESSAGE})}}else{if(blockHasTopPadding){context.report({node:node,loc:{line:tokenBeforeFirst.loc.start.line,column:tokenBeforeFirst.loc.start.column},fix:function fix(fixer){return fixer.replaceTextRange([tokenBeforeFirst.end,firstBlockToken.start-firstBlockToken.loc.start.column],"\n")},message:NEVER_MESSAGE})}if(blockHasBottomPadding){context.report({node:node,loc:{line:tokenAfterLast.loc.end.line,column:tokenAfterLast.loc.end.column-1},message:NEVER_MESSAGE,fix:function fix(fixer){return fixer.replaceTextRange([lastBlockToken.end,tokenAfterLast.start-tokenAfterLast.loc.start.column],"\n")}})}}}var rule={};if(options.hasOwnProperty("switches")){rule.SwitchStatement=function(node){if(node.cases.length===0){return}checkPadding(node)}}if(options.hasOwnProperty("blocks")){rule.BlockStatement=function(node){if(node.body.length===0){return}checkPadding(node)}}if(options.hasOwnProperty("classes")){rule.ClassBody=function(node){if(node.body.length===0){return}checkPadding(node)}}return rule}}},{}],294:[function(require,module,exports){"use strict";var _templateObject=_taggedTemplateLiteral(["^(s*?",")s*","(s*;?)$"],["^(\\s*?",")\\s*","(\\s*;?)$"]);function _taggedTemplateLiteral(strings,raw){return Object.freeze(Object.defineProperties(strings,{raw:{value:Object.freeze(raw)}}))}var astUtils=require("../ast-utils");var LT="["+Array.from(astUtils.LINEBREAKS).join("")+"]";var PADDING_LINE_SEQUENCE=new RegExp(String.raw(_templateObject,LT,LT));var CJS_EXPORT=/^(?:module\s*\.\s*)?exports(?:\s*\.|\s*\[|$)/;var CJS_IMPORT=/^require\(/;function newKeywordTester(keyword){return{test:function test(node,sourceCode){return sourceCode.getFirstToken(node).value===keyword}}}function newNodeTypeTester(type){return{test:function test(node){return node.type===type}}}function isIIFEStatement(node){if(node.type==="ExpressionStatement"){var call=node.expression;if(call.type==="UnaryExpression"){call=call.argument}return call.type==="CallExpression"&&astUtils.isFunction(call.callee)}return false}function isBlockLikeStatement(sourceCode,node){if(node.type==="DoWhileStatement"&&node.body.type==="BlockStatement"){return true}if(isIIFEStatement(node)){return true}var lastToken=sourceCode.getLastToken(node,astUtils.isNotSemicolonToken);var belongingNode=astUtils.isClosingBraceToken(lastToken)?sourceCode.getNodeByRangeIndex(lastToken.range[0]):null;return Boolean(belongingNode)&&(belongingNode.type==="BlockStatement"||belongingNode.type==="SwitchStatement")}function isDirective(node,sourceCode){return node.type==="ExpressionStatement"&&(node.parent.type==="Program"||node.parent.type==="BlockStatement"&&astUtils.isFunction(node.parent.parent))&&node.expression.type==="Literal"&&typeof node.expression.value==="string"&&!astUtils.isParenthesised(sourceCode,node.expression)}function isDirectivePrologue(node,sourceCode){if(isDirective(node,sourceCode)){var _iteratorNormalCompletion=true;var _didIteratorError=false;var _iteratorError=undefined;try{for(var _iterator=node.parent.body[Symbol.iterator](),_step;!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=true){var sibling=_step.value;if(sibling===node){break}if(!isDirective(sibling,sourceCode)){return false}}}catch(err){_didIteratorError=true;_iteratorError=err}finally{try{if(!_iteratorNormalCompletion&&_iterator.return){_iterator.return()}}finally{if(_didIteratorError){throw _iteratorError}}}return true}return false}function getActualLastToken(sourceCode,node){var semiToken=sourceCode.getLastToken(node);var prevToken=sourceCode.getTokenBefore(semiToken);var nextToken=sourceCode.getTokenAfter(semiToken);var isSemicolonLessStyle=Boolean(prevToken&&nextToken&&prevToken.range[0]>=node.range[0]&&astUtils.isSemicolonToken(semiToken)&&semiToken.loc.start.line!==prevToken.loc.end.line&&semiToken.loc.end.line===nextToken.loc.start.line);return isSemicolonLessStyle?prevToken:semiToken}function replacerToRemovePaddingLines(_,trailingSpaces,indentSpaces){return trailingSpaces+indentSpaces}function verifyForAny(){}function verifyForNever(context,prevNode,nextNode,paddingLines){if(paddingLines.length===0){return}context.report({node:nextNode,message:"Unexpected blank line before this statement.",fix:function fix(fixer){if(paddingLines.length>=2){return null}var prevToken=paddingLines[0][0];var nextToken=paddingLines[0][1];var start=prevToken.range[1];var end=nextToken.range[0];var text=context.getSourceCode().text.slice(start,end).replace(PADDING_LINE_SEQUENCE,replacerToRemovePaddingLines);return fixer.replaceTextRange([start,end],text)}})}function verifyForAlways(context,prevNode,nextNode,paddingLines){if(paddingLines.length>0){return}context.report({node:nextNode,message:"Expected blank line before this statement.",fix:function fix(fixer){var sourceCode=context.getSourceCode();var prevToken=getActualLastToken(sourceCode,prevNode);var nextToken=sourceCode.getFirstTokenBetween(prevToken,nextNode,{includeComments:true,filter:function filter(token){if(astUtils.isTokenOnSameLine(prevToken,token)){prevToken=token;return false}return true}})||nextNode;var insertText=astUtils.isTokenOnSameLine(prevToken,nextToken)?"\n\n":"\n";return fixer.insertTextAfter(prevToken,insertText)}})}var PaddingTypes={any:{verify:verifyForAny},never:{verify:verifyForNever},always:{verify:verifyForAlways}};var StatementTypes={"*":{test:function test(){return true}},"block-like":{test:function test(node,sourceCode){return isBlockLikeStatement(sourceCode,node)}},"cjs-export":{test:function test(node,sourceCode){return node.type==="ExpressionStatement"&&node.expression.type==="AssignmentExpression"&&CJS_EXPORT.test(sourceCode.getText(node.expression.left))}},"cjs-import":{test:function test(node,sourceCode){return node.type==="VariableDeclaration"&&node.declarations.length>0&&Boolean(node.declarations[0].init)&&CJS_IMPORT.test(sourceCode.getText(node.declarations[0].init))}},directive:{test:isDirectivePrologue},expression:{test:function test(node,sourceCode){return node.type==="ExpressionStatement"&&!isDirectivePrologue(node,sourceCode)}},"multiline-block-like":{test:function test(node,sourceCode){return node.loc.start.line!==node.loc.end.line&&isBlockLikeStatement(sourceCode,node)}},block:newNodeTypeTester("BlockStatement"),empty:newNodeTypeTester("EmptyStatement"),break:newKeywordTester("break"),case:newKeywordTester("case"),class:newKeywordTester("class"),const:newKeywordTester("const"),continue:newKeywordTester("continue"),debugger:newKeywordTester("debugger"),default:newKeywordTester("default"),do:newKeywordTester("do"),export:newKeywordTester("export"),for:newKeywordTester("for"),function:newKeywordTester("function"),if:newKeywordTester("if"),import:newKeywordTester("import"),let:newKeywordTester("let"),return:newKeywordTester("return"),switch:newKeywordTester("switch"),throw:newKeywordTester("throw"),try:newKeywordTester("try"),var:newKeywordTester("var"),while:newKeywordTester("while"),with:newKeywordTester("with")};module.exports={meta:{docs:{description:"require or disallow padding lines between statements",category:"Stylistic Issues",recommended:false},fixable:"whitespace",schema:{definitions:{paddingType:{enum:Object.keys(PaddingTypes)},statementType:{anyOf:[{enum:Object.keys(StatementTypes)},{type:"array",items:{enum:Object.keys(StatementTypes)},minItems:1,uniqueItems:true,additionalItems:false}]}},type:"array",items:{type:"object",properties:{blankLine:{$ref:"#/definitions/paddingType"},prev:{$ref:"#/definitions/statementType"},next:{$ref:"#/definitions/statementType"}},additionalProperties:false,required:["blankLine","prev","next"]},additionalItems:false}},create:function create(context){var sourceCode=context.getSourceCode();var configureList=context.options||[];var scopeInfo=null;function enterScope(){scopeInfo={upper:scopeInfo,prevNode:null}}function exitScope(){scopeInfo=scopeInfo.upper}function match(node,type){while(node.type==="LabeledStatement"){node=node.body}if(Array.isArray(type)){return type.some(match.bind(null,node))}return StatementTypes[type].test(node,sourceCode)}function getPaddingType(prevNode,nextNode){for(var i=configureList.length-1;i>=0;--i){var configure=configureList[i];var matched=match(prevNode,configure.prev)&&match(nextNode,configure.next);if(matched){return PaddingTypes[configure.blankLine]}}return PaddingTypes.any}function getPaddingLineSequences(prevNode,nextNode){var pairs=[];var prevToken=getActualLastToken(sourceCode,prevNode);if(nextNode.loc.start.line-prevToken.loc.end.line>=2){do{var token=sourceCode.getTokenAfter(prevToken,{includeComments:true});if(token.loc.start.line-prevToken.loc.end.line>=2){pairs.push([prevToken,token])}prevToken=token}while(prevToken.range[0]0){return}var variable=getVariableOfArguments(context.getScope());if(variable&&variable.references.length>0){return}var callbackInfo=getCallbackInfo(node);if(callbackInfo.isCallback&&(!allowUnboundThis||!scopeInfo.this||callbackInfo.isLexicalThis)&&!scopeInfo.super&&!scopeInfo.meta){context.report({node:node,message:"Unexpected function expression.",fix:function fix(fixer){if(!callbackInfo.isLexicalThis&&scopeInfo.this||hasDuplicateParams(node.params)){return null}var paramsLeftParen=node.params.length?sourceCode.getTokenBefore(node.params[0]):sourceCode.getTokenBefore(node.body,1);var paramsRightParen=sourceCode.getTokenBefore(node.body);var asyncKeyword=node.async?"async ":"";var paramsFullText=sourceCode.text.slice(paramsLeftParen.range[0],paramsRightParen.range[1]);var arrowFunctionText=""+asyncKeyword+paramsFullText+" => "+sourceCode.getText(node.body);var replacedNode=callbackInfo.isLexicalThis?node.parent.parent:node;var needsParens=replacedNode.parent.type!=="CallExpression"&&replacedNode.parent.type!=="ConditionalExpression";var replacementText=needsParens?"("+arrowFunctionText+")":arrowFunctionText;return fixer.replaceText(replacedNode,replacementText)}})}}}}}},{}],296:[function(require,module,exports){"use strict";var PATTERN_TYPE=/^(?:.+?Pattern|RestElement|SpreadProperty|ExperimentalRestProperty|Property)$/;var DECLARATION_HOST_TYPE=/^(?:Program|BlockStatement|SwitchCase)$/;var DESTRUCTURING_HOST_TYPE=/^(?:VariableDeclarator|AssignmentExpression)$/;var pushAll=Function.apply.bind(Array.prototype.push);function isInitOfForStatement(node){return node.parent.type==="ForStatement"&&node.parent.init===node}function canBecomeVariableDeclaration(identifier){var node=identifier.parent;while(PATTERN_TYPE.test(node.type)){node=node.parent}return node.type==="VariableDeclarator"||node.type==="AssignmentExpression"&&node.parent.type==="ExpressionStatement"&&DECLARATION_HOST_TYPE.test(node.parent.parent.type)}function getIdentifierIfShouldBeConst(variable,ignoreReadBeforeAssign){if(variable.eslintUsed&&variable.scope.type==="global"){return null}var writer=null;var isReadBeforeInit=false;var references=variable.references;for(var i=0;i1&&node.arguments[0].params[1].type==="Identifier"){context.getDeclaredVariables(node.arguments[0]).find(function(variable){return variable.name===node.arguments[0].params[1].name}).references.filter(function(ref){return ref.isRead()}).filter(function(ref){return ref.identifier.parent.type==="CallExpression"&&ref.identifier===ref.identifier.parent.callee}).forEach(function(ref){return checkRejectCall(ref.identifier.parent)})}}}}}},{"../ast-utils":70}],300:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"require `Reflect` methods where applicable",category:"ECMAScript 6",recommended:false,replacedBy:[]},deprecated:true,schema:[{type:"object",properties:{exceptions:{type:"array",items:{enum:["apply","call","delete","defineProperty","getOwnPropertyDescriptor","getPrototypeOf","setPrototypeOf","isExtensible","getOwnPropertyNames","preventExtensions"]},uniqueItems:true}},additionalProperties:false}]},create:function create(context){var existingNames={apply:"Function.prototype.apply",call:"Function.prototype.call",defineProperty:"Object.defineProperty",getOwnPropertyDescriptor:"Object.getOwnPropertyDescriptor",getPrototypeOf:"Object.getPrototypeOf",setPrototypeOf:"Object.setPrototypeOf",isExtensible:"Object.isExtensible",getOwnPropertyNames:"Object.getOwnPropertyNames",preventExtensions:"Object.preventExtensions"};var reflectSubsitutes={apply:"Reflect.apply",call:"Reflect.apply",defineProperty:"Reflect.defineProperty",getOwnPropertyDescriptor:"Reflect.getOwnPropertyDescriptor",getPrototypeOf:"Reflect.getPrototypeOf",setPrototypeOf:"Reflect.setPrototypeOf",isExtensible:"Reflect.isExtensible",getOwnPropertyNames:"Reflect.getOwnPropertyNames",preventExtensions:"Reflect.preventExtensions"};var exceptions=(context.options[0]||{}).exceptions||[];function report(node,existing,substitute){context.report({node:node,message:"Avoid using {{existing}}, instead use {{substitute}}.",data:{existing:existing,substitute:substitute}})}return{CallExpression:function CallExpression(node){var methodName=(node.callee.property||{}).name;var isReflectCall=(node.callee.object||{}).name==="Reflect";var hasReflectSubsitute=reflectSubsitutes.hasOwnProperty(methodName);var userConfiguredException=exceptions.indexOf(methodName)!==-1;if(hasReflectSubsitute&&!isReflectCall&&!userConfiguredException){report(node,existingNames[methodName],reflectSubsitutes[methodName])}},UnaryExpression:function UnaryExpression(node){var isDeleteOperator=node.operator==="delete";var targetsIdentifier=node.argument.type==="Identifier";var userConfiguredException=exceptions.indexOf("delete")!==-1;if(isDeleteOperator&&!targetsIdentifier&&!userConfiguredException){report(node,"the delete keyword","Reflect.deleteProperty")}}}}}},{}],301:[function(require,module,exports){"use strict";function getVariableOfArguments(scope){var variables=scope.variables;for(var i=0;i=0}function areQuotesRedundant(rawKey,tokens,skipNumberLiterals){return tokens.length===1&&tokens[0].start===0&&tokens[0].end===rawKey.length&&(["Identifier","Keyword","Null","Boolean"].indexOf(tokens[0].type)>=0||tokens[0].type==="Numeric"&&!skipNumberLiterals&&String(+tokens[0].value)===tokens[0].value)}function getUnquotedKey(key){return key.type==="Identifier"?key.name:key.value}function getQuotedKey(key){if(key.type==="Literal"&&typeof key.value==="string"){return sourceCode.getText(key)}return'"'+(key.type==="Identifier"?key.name:key.value)+'"'}function checkUnnecessaryQuotes(node){var key=node.key;var tokens=void 0;if(node.method||node.computed||node.shorthand){return}if(key.type==="Literal"&&typeof key.value==="string"){try{tokens=espree.tokenize(key.value)}catch(e){return}if(tokens.length!==1){return}var isKeywordToken=isKeyword(tokens[0].value);if(isKeywordToken&&KEYWORDS){return}if(CHECK_UNNECESSARY&&areQuotesRedundant(key.value,tokens,NUMBERS)){context.report({node:node,message:MESSAGE_UNNECESSARY,data:{property:key.value},fix:function fix(fixer){return fixer.replaceText(key,getUnquotedKey(key))}})}}else if(KEYWORDS&&key.type==="Identifier"&&isKeyword(key.name)){context.report({node:node,message:MESSAGE_RESERVED,data:{property:key.name},fix:function fix(fixer){return fixer.replaceText(key,getQuotedKey(key))}})}else if(NUMBERS&&key.type==="Literal"&&typeof key.value==="number"){context.report({node:node,message:MESSAGE_NUMERIC,data:{property:key.value},fix:function fix(fixer){return fixer.replaceText(key,getQuotedKey(key))}})}}function checkOmittedQuotes(node){var key=node.key;if(!node.method&&!node.computed&&!node.shorthand&&!(key.type==="Literal"&&typeof key.value==="string")){context.report({node:node,message:MESSAGE_UNQUOTED,data:{property:key.name||key.value},fix:function fix(fixer){return fixer.replaceText(key,getQuotedKey(key))}})}}function checkConsistency(node,checkQuotesRedundancy){var quotedProps=[],unquotedProps=[];var keywordKeyName=null,necessaryQuotes=false;node.properties.forEach(function(property){var key=property.key;var tokens=void 0;if(!key||property.method||property.computed||property.shorthand){return}if(key.type==="Literal"&&typeof key.value==="string"){quotedProps.push(property);if(checkQuotesRedundancy){try{tokens=espree.tokenize(key.value)}catch(e){necessaryQuotes=true;return}necessaryQuotes=necessaryQuotes||!areQuotesRedundant(key.value,tokens)||KEYWORDS&&isKeyword(tokens[0].value)}}else if(KEYWORDS&&checkQuotesRedundancy&&key.type==="Identifier"&&isKeyword(key.name)){unquotedProps.push(property);necessaryQuotes=true;keywordKeyName=key.name}else{unquotedProps.push(property)}});if(checkQuotesRedundancy&"edProps.length&&!necessaryQuotes){quotedProps.forEach(function(property){context.report({node:property,message:"Properties shouldn't be quoted as all quotes are redundant.",fix:function fix(fixer){return fixer.replaceText(property.key,getUnquotedKey(property.key))}})})}else if(unquotedProps.length&&keywordKeyName){unquotedProps.forEach(function(property){context.report({node:property,message:"Properties should be quoted as '{{property}}' is a reserved word.",data:{property:keywordKeyName},fix:function fix(fixer){return fixer.replaceText(property.key,getQuotedKey(property.key))}})})}else if(quotedProps.length&&unquotedProps.length){unquotedProps.forEach(function(property){context.report({node:property,message:"Inconsistently quoted property '{{key}}' found.",data:{key:property.key.name||property.key.value},fix:function fix(fixer){return fixer.replaceText(property.key,getQuotedKey(property.key))}})})}}return{Property:function Property(node){if(MODE==="always"||!MODE){checkOmittedQuotes(node)}if(MODE==="as-needed"){checkUnnecessaryQuotes(node)}},ObjectExpression:function ObjectExpression(node){if(MODE==="consistent"){checkConsistency(node,false)}if(MODE==="consistent-as-needed"){checkConsistency(node,true)}}}}}},{"../util/keywords":352,espree:"espree"}],305:[function(require,module,exports){"use strict";var _templateObject=_taggedTemplateLiteral(["(^|[^\\])(\\\\)*[","]"],["(^|[^\\\\])(\\\\\\\\)*[","]"]);function _taggedTemplateLiteral(strings,raw){return Object.freeze(Object.defineProperties(strings,{raw:{value:Object.freeze(raw)}}))}var astUtils=require("../ast-utils");var QUOTE_SETTINGS={double:{quote:'"',alternateQuote:"'",description:"doublequote"},single:{quote:"'",alternateQuote:'"',description:"singlequote"},backtick:{quote:"`",alternateQuote:'"',description:"backtick"}};var UNESCAPED_LINEBREAK_PATTERN=new RegExp(String.raw(_templateObject,Array.from(astUtils.LINEBREAKS).join("")));QUOTE_SETTINGS.double.convert=QUOTE_SETTINGS.single.convert=QUOTE_SETTINGS.backtick.convert=function(str){var newQuote=this.quote;var oldQuote=str[0];if(newQuote===oldQuote){return str}return newQuote+str.slice(1,-1).replace(/\\(\${|\r\n?|\n|.)|["'`]|\${|(\r\n?|\n)/g,function(match,escaped,newline){if(escaped===oldQuote||oldQuote==="`"&&escaped==="${"){return escaped}if(match===newQuote||newQuote==="`"&&match==="${"){return"\\"+match}if(newline&&oldQuote==="`"){return"\\n"}return match})+newQuote};var AVOID_ESCAPE="avoid-escape";module.exports={meta:{docs:{description:"enforce the consistent use of either backticks, double, or single quotes",category:"Stylistic Issues",recommended:false},fixable:"code",schema:[{enum:["single","double","backtick"]},{anyOf:[{enum:["avoid-escape"]},{type:"object",properties:{avoidEscape:{type:"boolean"},allowTemplateLiterals:{type:"boolean"}},additionalProperties:false}]}]},create:function create(context){var quoteOption=context.options[0],settings=QUOTE_SETTINGS[quoteOption||"double"],options=context.options[1],allowTemplateLiterals=options&&options.allowTemplateLiterals===true,sourceCode=context.getSourceCode();var avoidEscape=options&&options.avoidEscape===true;if(options===AVOID_ESCAPE){avoidEscape=true}function isJSXLiteral(node){return node.parent.type==="JSXAttribute"||node.parent.type==="JSXElement"}function isDirective(node){return node.type==="ExpressionStatement"&&node.expression.type==="Literal"&&typeof node.expression.value==="string"}function isPartOfDirectivePrologue(node){var block=node.parent.parent;if(block.type!=="Program"&&(block.type!=="BlockStatement"||!astUtils.isFunction(block.parent))){return false}for(var i=0;i=0}if(!isValid){context.report({node:node,message:"Strings must use {{description}}.",data:{description:settings.description},fix:function fix(fixer){return fixer.replaceText(node,settings.convert(node.raw))}})}}},TemplateLiteral:function TemplateLiteral(node){if(allowTemplateLiterals||quoteOption==="backtick"||node.parent.type==="TaggedTemplateExpression"&&node===node.parent.quasi){return}var shouldWarn=node.quasis.length===1&&!UNESCAPED_LINEBREAK_PATTERN.test(node.quasis[0].value.raw);if(shouldWarn){context.report({node:node,message:"Strings must use {{description}}.",data:{description:settings.description},fix:function fix(fixer){if(isPartOfDirectivePrologue(node)){return null}return fixer.replaceText(node,settings.convert(sourceCode.getText(node)))}})}}}}}},{"../ast-utils":70}],306:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");var MODE_ALWAYS="always",MODE_AS_NEEDED="as-needed";function isShadowed(variable){return variable.defs.length>=1}function isParseIntMethod(node){return node.type==="MemberExpression"&&!node.computed&&node.property.type==="Identifier"&&node.property.name==="parseInt"}function isValidRadix(radix){return!(radix.type==="Literal"&&typeof radix.value!=="number"||radix.type==="Identifier"&&radix.name==="undefined")}function isDefaultRadix(radix){return radix.type==="Literal"&&radix.value===10}module.exports={meta:{docs:{description:"enforce the consistent use of the radix argument when using `parseInt()`",category:"Best Practices",recommended:false},schema:[{enum:["always","as-needed"]}]},create:function create(context){var mode=context.options[0]||MODE_ALWAYS;function checkArguments(node){var args=node.arguments;switch(args.length){case 0:context.report({node:node,message:"Missing parameters."});break;case 1:if(mode===MODE_ALWAYS){context.report({node:node,message:"Missing radix parameter."})}break;default:if(mode===MODE_AS_NEEDED&&isDefaultRadix(args[1])){context.report({node:node,message:"Redundant radix parameter."})}else if(!isValidRadix(args[1])){context.report({node:node,message:"Invalid radix parameter."})}break}}return{"Program:exit":function ProgramExit(){var scope=context.getScope();var variable=void 0;variable=astUtils.getVariableByName(scope,"parseInt");if(!isShadowed(variable)){variable.references.forEach(function(reference){var node=reference.identifier;if(astUtils.isCallee(node)){checkArguments(node.parent)}})}variable=astUtils.getVariableByName(scope,"Number");if(!isShadowed(variable)){variable.references.forEach(function(reference){var node=reference.identifier.parent;if(isParseIntMethod(node)&&astUtils.isCallee(node)){checkArguments(node.parent)}})}}}}}},{"../ast-utils":70}],307:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");function capitalizeFirstLetter(text){return text[0].toUpperCase()+text.slice(1)}module.exports={meta:{docs:{description:"disallow async functions which have no `await` expression",category:"Best Practices",recommended:false},schema:[]},create:function create(context){var sourceCode=context.getSourceCode();var scopeInfo=null;function enterFunction(){scopeInfo={upper:scopeInfo,hasAwait:false}}function exitFunction(node){if(node.async&&!scopeInfo.hasAwait&&!astUtils.isEmptyFunction(node)){context.report({node:node,loc:astUtils.getFunctionHeadLoc(node,sourceCode),message:"{{name}} has no 'await' expression.",data:{name:capitalizeFirstLetter(astUtils.getFunctionNameWithKind(node))}})}scopeInfo=scopeInfo.upper}return{FunctionDeclaration:enterFunction,FunctionExpression:enterFunction,ArrowFunctionExpression:enterFunction,"FunctionDeclaration:exit":exitFunction,"FunctionExpression:exit":exitFunction,"ArrowFunctionExpression:exit":exitFunction,AwaitExpression:function AwaitExpression(){scopeInfo.hasAwait=true}}}}},{"../ast-utils":70}],308:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"require JSDoc comments",category:"Stylistic Issues",recommended:false},schema:[{type:"object",properties:{require:{type:"object",properties:{ClassDeclaration:{type:"boolean"},MethodDefinition:{type:"boolean"},FunctionDeclaration:{type:"boolean"},ArrowFunctionExpression:{type:"boolean"}},additionalProperties:false}},additionalProperties:false}]},create:function create(context){var source=context.getSourceCode();var DEFAULT_OPTIONS={FunctionDeclaration:true,MethodDefinition:false,ClassDeclaration:false};var options=Object.assign(DEFAULT_OPTIONS,context.options[0]&&context.options[0].require||{});function report(node){context.report({node:node,message:"Missing JSDoc comment."})}function checkClassMethodJsDoc(node){if(node.parent.type==="MethodDefinition"){var jsdocComment=source.getJSDocComment(node);if(!jsdocComment){report(node)}}}function checkJsDoc(node){var jsdocComment=source.getJSDocComment(node);if(!jsdocComment){report(node)}}return{FunctionDeclaration:function FunctionDeclaration(node){if(options.FunctionDeclaration){checkJsDoc(node)}},FunctionExpression:function FunctionExpression(node){if(options.MethodDefinition){checkClassMethodJsDoc(node)}},ClassDeclaration:function ClassDeclaration(node){if(options.ClassDeclaration){checkJsDoc(node)}},ArrowFunctionExpression:function ArrowFunctionExpression(node){if(options.ArrowFunctionExpression&&node.parent.type==="VariableDeclarator"){checkJsDoc(node)}}}}}},{}],309:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"require generator functions to contain `yield`",category:"ECMAScript 6",recommended:true},schema:[]},create:function create(context){var stack=[];function beginChecking(node){if(node.generator){stack.push(0)}}function endChecking(node){if(!node.generator){return}var countYield=stack.pop();if(countYield===0&&node.body.body.length>0){context.report({node:node,message:"This generator function does not have 'yield'."})}}return{FunctionDeclaration:beginChecking,"FunctionDeclaration:exit":endChecking,FunctionExpression:beginChecking,"FunctionExpression:exit":endChecking,YieldExpression:function YieldExpression(){if(stack.length>0){stack[stack.length-1]+=1}}}}}},{}],310:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"enforce spacing between rest and spread operators and their expressions",category:"ECMAScript 6",recommended:false},fixable:"whitespace",schema:[{enum:["always","never"]}]},create:function create(context){var sourceCode=context.getSourceCode(),alwaysSpace=context.options[0]==="always";function checkWhiteSpace(node){var operator=sourceCode.getFirstToken(node),nextToken=sourceCode.getTokenAfter(operator),hasWhitespace=sourceCode.isSpaceBetweenTokens(operator,nextToken);var type=void 0;switch(node.type){case"SpreadElement":type="spread";break;case"RestElement":type="rest";break;case"ExperimentalSpreadProperty":type="spread property";break;case"ExperimentalRestProperty":type="rest property";break;default:return}if(alwaysSpace&&!hasWhitespace){context.report({node:node,loc:{line:operator.loc.end.line,column:operator.loc.end.column},message:"Expected whitespace after {{type}} operator.",data:{type:type},fix:function fix(fixer){return fixer.replaceTextRange([operator.range[1],nextToken.range[0]]," ")}})}else if(!alwaysSpace&&hasWhitespace){context.report({node:node,loc:{line:operator.loc.end.line,column:operator.loc.end.column},message:"Unexpected whitespace after {{type}} operator.",data:{type:type},fix:function fix(fixer){return fixer.removeRange([operator.range[1],nextToken.range[0]])}})}}return{SpreadElement:checkWhiteSpace,RestElement:checkWhiteSpace,ExperimentalSpreadProperty:checkWhiteSpace,ExperimentalRestProperty:checkWhiteSpace}}}},{}],311:[function(require,module,exports){"use strict";var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj};var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"enforce consistent spacing before and after semicolons",category:"Stylistic Issues",recommended:false},fixable:"whitespace",schema:[{type:"object",properties:{before:{type:"boolean"},after:{type:"boolean"}},additionalProperties:false}]},create:function create(context){var config=context.options[0],sourceCode=context.getSourceCode();var requireSpaceBefore=false,requireSpaceAfter=true;if((typeof config==="undefined"?"undefined":_typeof(config))==="object"){if(config.hasOwnProperty("before")){requireSpaceBefore=config.before}if(config.hasOwnProperty("after")){requireSpaceAfter=config.after}}function hasLeadingSpace(token){var tokenBefore=sourceCode.getTokenBefore(token);return tokenBefore&&astUtils.isTokenOnSameLine(tokenBefore,token)&&sourceCode.isSpaceBetweenTokens(tokenBefore,token)}function hasTrailingSpace(token){var tokenAfter=sourceCode.getTokenAfter(token);return tokenAfter&&astUtils.isTokenOnSameLine(token,tokenAfter)&&sourceCode.isSpaceBetweenTokens(token,tokenAfter)}function isLastTokenInCurrentLine(token){var tokenAfter=sourceCode.getTokenAfter(token);return!(tokenAfter&&astUtils.isTokenOnSameLine(token,tokenAfter))}function isFirstTokenInCurrentLine(token){var tokenBefore=sourceCode.getTokenBefore(token);return!(tokenBefore&&astUtils.isTokenOnSameLine(token,tokenBefore))}function isBeforeClosingParen(token){var nextToken=sourceCode.getTokenAfter(token);return nextToken&&astUtils.isClosingBraceToken(nextToken)||astUtils.isClosingParenToken(nextToken)}function checkSemicolonSpacing(token,node){if(astUtils.isSemicolonToken(token)){var location=token.loc.start;if(hasLeadingSpace(token)){if(!requireSpaceBefore){context.report({node:node,loc:location,message:"Unexpected whitespace before semicolon.",fix:function fix(fixer){var tokenBefore=sourceCode.getTokenBefore(token);return fixer.removeRange([tokenBefore.range[1],token.range[0]])}})}}else{if(requireSpaceBefore){context.report({node:node,loc:location,message:"Missing whitespace before semicolon.",fix:function fix(fixer){return fixer.insertTextBefore(token," ")}})}}if(!isFirstTokenInCurrentLine(token)&&!isLastTokenInCurrentLine(token)&&!isBeforeClosingParen(token)){if(hasTrailingSpace(token)){if(!requireSpaceAfter){context.report({node:node,loc:location,message:"Unexpected whitespace after semicolon.",fix:function fix(fixer){var tokenAfter=sourceCode.getTokenAfter(token);return fixer.removeRange([token.range[1],tokenAfter.range[0]])}})}}else{if(requireSpaceAfter){context.report({node:node,loc:location,message:"Missing whitespace after semicolon.",fix:function fix(fixer){return fixer.insertTextAfter(token," ")}})}}}}}function checkNode(node){var token=sourceCode.getLastToken(node);checkSemicolonSpacing(token,node)}return{VariableDeclaration:checkNode,ExpressionStatement:checkNode,BreakStatement:checkNode,ContinueStatement:checkNode,DebuggerStatement:checkNode,ReturnStatement:checkNode,ThrowStatement:checkNode,ImportDeclaration:checkNode,ExportNamedDeclaration:checkNode,ExportAllDeclaration:checkNode,ExportDefaultDeclaration:checkNode,ForStatement:function ForStatement(node){if(node.init){checkSemicolonSpacing(sourceCode.getTokenAfter(node.init),node)}if(node.test){checkSemicolonSpacing(sourceCode.getTokenAfter(node.test),node)}}}}}},{"../ast-utils":70}],312:[function(require,module,exports){"use strict";function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}var astUtils=require("../ast-utils");var SELECTOR=":matches("+["BreakStatement","ContinueStatement","DebuggerStatement","DoWhileStatement","EmptyStatement","ExportAllDeclaration","ExportDefaultDeclaration","ExportNamedDeclaration","ExpressionStatement","ImportDeclaration","ReturnStatement","ThrowStatement","VariableDeclaration"].join(",")+")";module.exports={meta:{docs:{description:"enforce location of semicolons",category:"Stylistic Issues",recommended:false},schema:[{enum:["last","first"]}],fixable:"whitespace"},create:function create(context){var _ref;var sourceCode=context.getSourceCode();var option=context.options[0]||"last";function commentsExistBetween(left,right){return sourceCode.getFirstTokenBetween(left,right,{includeComments:true,filter:astUtils.isCommentToken})!==null}function check(semiToken,expected){var prevToken=sourceCode.getTokenBefore(semiToken);var nextToken=sourceCode.getTokenAfter(semiToken);var prevIsSameLine=!prevToken||astUtils.isTokenOnSameLine(prevToken,semiToken);var nextIsSameLine=!nextToken||astUtils.isTokenOnSameLine(semiToken,nextToken);if(expected==="last"&&!prevIsSameLine||expected==="first"&&!nextIsSameLine){context.report({loc:semiToken.loc,message:"Expected this semicolon to be at {{pos}}.",data:{pos:expected==="last"?"the end of the previous line":"the beginning of the next line"},fix:function fix(fixer){if(prevToken&&nextToken&&commentsExistBetween(prevToken,nextToken)){return null}var start=prevToken?prevToken.range[1]:semiToken.range[0];var end=nextToken?nextToken.range[0]:semiToken.range[1];var text=expected==="last"?";\n":"\n;";return fixer.replaceTextRange([start,end],text)}})}}return _ref={},_defineProperty(_ref,SELECTOR,function(node){var lastToken=sourceCode.getLastToken(node);if(astUtils.isSemicolonToken(lastToken)){check(lastToken,option)}}),_defineProperty(_ref,"ForStatement",function ForStatement(node){var firstSemi=node.init&&sourceCode.getTokenAfter(node.init,astUtils.isSemicolonToken);var secondSemi=node.test&&sourceCode.getTokenAfter(node.test,astUtils.isSemicolonToken);if(firstSemi){check(firstSemi,"last")}if(secondSemi){check(secondSemi,"last")}}),_ref}}},{"../ast-utils":70}],313:[function(require,module,exports){"use strict";var FixTracker=require("../util/fix-tracker");var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"require or disallow semicolons instead of ASI",category:"Stylistic Issues",recommended:false},fixable:"code",schema:{anyOf:[{type:"array",items:[{enum:["never"]}],minItems:0,maxItems:1},{type:"array",items:[{enum:["always"]},{type:"object",properties:{omitLastInOneLineBlock:{type:"boolean"}},additionalProperties:false}],minItems:0,maxItems:2}]}},create:function create(context){var OPT_OUT_PATTERN=/^[-[(/+`]/;var options=context.options[1];var never=context.options[0]==="never",exceptOneLine=options&&options.omitLastInOneLineBlock===true,sourceCode=context.getSourceCode();function report(node,missing){var lastToken=sourceCode.getLastToken(node);var message=void 0,fix=void 0,loc=lastToken.loc;if(!missing){message="Missing semicolon.";loc=loc.end;fix=function fix(fixer){return fixer.insertTextAfter(lastToken,";")}}else{message="Extra semicolon.";loc=loc.start;fix=function fix(fixer){return new FixTracker(fixer,sourceCode).retainSurroundingTokens(lastToken).remove(lastToken)}}context.report({node:node,loc:loc,message:message,fix:fix})}function isUnnecessarySemicolon(lastToken){if(!astUtils.isSemicolonToken(lastToken)){return false}var nextToken=sourceCode.getTokenAfter(lastToken);if(!nextToken){return true}var lastTokenLine=lastToken.loc.end.line;var nextTokenLine=nextToken.loc.start.line;var isOptOutToken=OPT_OUT_PATTERN.test(nextToken.value)&&nextToken.value!=="++"&&nextToken.value!=="--";var isDivider=astUtils.isClosingBraceToken(nextToken)||astUtils.isSemicolonToken(nextToken);return lastTokenLine!==nextTokenLine&&!isOptOutToken||isDivider}function isOneLinerBlock(node){var nextToken=sourceCode.getTokenAfter(node);if(!nextToken||nextToken.value!=="}"){return false}var parent=node.parent;return parent&&parent.type==="BlockStatement"&&parent.loc.start.line===parent.loc.end.line}function checkForSemicolon(node){var lastToken=sourceCode.getLastToken(node);if(never){if(isUnnecessarySemicolon(lastToken)){report(node,true)}}else{if(!astUtils.isSemicolonToken(lastToken)){if(!exceptOneLine||!isOneLinerBlock(node)){report(node)}}else{if(exceptOneLine&&isOneLinerBlock(node)){report(node,true)}}}}function checkForSemicolonForVariableDeclaration(node){var ancestors=context.getAncestors(),parentIndex=ancestors.length-1,parent=ancestors[parentIndex];if((parent.type!=="ForStatement"||parent.init!==node)&&(!/^For(?:In|Of)Statement/.test(parent.type)||parent.left!==node)){checkForSemicolon(node)}}return{VariableDeclaration:checkForSemicolonForVariableDeclaration,ExpressionStatement:checkForSemicolon,ReturnStatement:checkForSemicolon,ThrowStatement:checkForSemicolon,DoWhileStatement:checkForSemicolon,DebuggerStatement:checkForSemicolon,BreakStatement:checkForSemicolon,ContinueStatement:checkForSemicolon,ImportDeclaration:checkForSemicolon,ExportAllDeclaration:checkForSemicolon,ExportNamedDeclaration:function ExportNamedDeclaration(node){if(!node.declaration){checkForSemicolon(node)}},ExportDefaultDeclaration:function ExportDefaultDeclaration(node){if(!/(?:Class|Function)Declaration/.test(node.declaration.type)){checkForSemicolon(node)}}}}}},{"../ast-utils":70,"../util/fix-tracker":351}],314:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"enforce sorted import declarations within modules",category:"ECMAScript 6",recommended:false},schema:[{type:"object",properties:{ignoreCase:{type:"boolean"},memberSyntaxSortOrder:{type:"array",items:{enum:["none","all","multiple","single"]},uniqueItems:true,minItems:4,maxItems:4},ignoreMemberSort:{type:"boolean"}},additionalProperties:false}],fixable:"code"},create:function create(context){var configuration=context.options[0]||{},ignoreCase=configuration.ignoreCase||false,ignoreMemberSort=configuration.ignoreMemberSort||false,memberSyntaxSortOrder=configuration.memberSyntaxSortOrder||["none","all","multiple","single"],sourceCode=context.getSourceCode();var previousDeclaration=null;function usedMemberSyntax(node){if(node.specifiers.length===0){return"none"}else if(node.specifiers[0].type==="ImportNamespaceSpecifier"){return"all"}else if(node.specifiers.length===1){return"single"}return"multiple"}function getMemberParameterGroupIndex(node){return memberSyntaxSortOrder.indexOf(usedMemberSyntax(node))}function getFirstLocalMemberName(node){if(node.specifiers[0]){return node.specifiers[0].local.name}return null}return{ImportDeclaration:function ImportDeclaration(node){if(previousDeclaration){var currentMemberSyntaxGroupIndex=getMemberParameterGroupIndex(node),previousMemberSyntaxGroupIndex=getMemberParameterGroupIndex(previousDeclaration);var currentLocalMemberName=getFirstLocalMemberName(node),previousLocalMemberName=getFirstLocalMemberName(previousDeclaration);if(ignoreCase){previousLocalMemberName=previousLocalMemberName&&previousLocalMemberName.toLowerCase();currentLocalMemberName=currentLocalMemberName&¤tLocalMemberName.toLowerCase()}if(currentMemberSyntaxGroupIndex!==previousMemberSyntaxGroupIndex){if(currentMemberSyntaxGroupIndexname});if(firstUnsortedIndex!==-1){context.report({node:importSpecifiers[firstUnsortedIndex],message:"Member '{{memberName}}' of the import declaration should be sorted alphabetically.",data:{memberName:importSpecifiers[firstUnsortedIndex].local.name},fix:function fix(fixer){if(importSpecifiers.some(function(specifier){return sourceCode.getCommentsBefore(specifier).length||sourceCode.getCommentsAfter(specifier).length})){return null}return fixer.replaceTextRange([importSpecifiers[0].range[0],importSpecifiers[importSpecifiers.length-1].range[1]],importSpecifiers.slice().sort(function(specifierA,specifierB){var aName=getSortableName(specifierA);var bName=getSortableName(specifierB);return aName>bName?1:-1}).reduce(function(sourceText,specifier,index){var textAfterSpecifier=index===importSpecifiers.length-1?"":sourceCode.getText().slice(importSpecifiers[index].range[1],importSpecifiers[index+1].range[0]);return sourceText+sourceCode.getText(specifier)+textAfterSpecifier},""))}})}}previousDeclaration=node}}}}},{}],315:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils"),naturalCompare=require("natural-compare");function getPropertyName(node){return astUtils.getStaticPropertyName(node)||node.key.name||null}var isValidOrders={asc:function asc(a,b){return a<=b},ascI:function ascI(a,b){return a.toLowerCase()<=b.toLowerCase()},ascN:function ascN(a,b){return naturalCompare(a,b)<=0},ascIN:function ascIN(a,b){return naturalCompare(a.toLowerCase(),b.toLowerCase())<=0},desc:function desc(a,b){return isValidOrders.asc(b,a)},descI:function descI(a,b){return isValidOrders.ascI(b,a)},descN:function descN(a,b){return isValidOrders.ascN(b,a)},descIN:function descIN(a,b){return isValidOrders.ascIN(b,a)}};module.exports={meta:{docs:{description:"require object keys to be sorted",category:"Stylistic Issues",recommended:false},schema:[{enum:["asc","desc"]},{type:"object",properties:{caseSensitive:{type:"boolean"},natural:{type:"boolean"}},additionalProperties:false}]},create:function create(context){var order=context.options[0]||"asc";var options=context.options[1];var insensitive=(options&&options.caseSensitive)===false;var natual=Boolean(options&&options.natural);var isValidOrder=isValidOrders[order+(insensitive?"I":"")+(natual?"N":"")];var stack=null;return{ObjectExpression:function ObjectExpression(){stack={upper:stack,prevName:null}},"ObjectExpression:exit":function ObjectExpressionExit(){stack=stack.upper},Property:function Property(node){if(node.parent.type==="ObjectPattern"){return}var prevName=stack.prevName;var thisName=getPropertyName(node);stack.prevName=thisName||prevName;if(!prevName||!thisName){return}if(!isValidOrder(prevName,thisName)){context.report({node:node,loc:node.key.loc,message:"Expected object keys to be in {{natual}}{{insensitive}}{{order}}ending order. '{{thisName}}' should be before '{{prevName}}'.",data:{thisName:thisName,prevName:prevName,order:order,insensitive:insensitive?"insensitive ":"",natual:natual?"natural ":""}})}}}}}},{"../ast-utils":70,"natural-compare":52}],316:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"require variables within the same declaration block to be sorted",category:"Stylistic Issues",recommended:false},schema:[{type:"object",properties:{ignoreCase:{type:"boolean"}},additionalProperties:false}]},create:function create(context){var configuration=context.options[0]||{},ignoreCase=configuration.ignoreCase||false;return{VariableDeclaration:function VariableDeclaration(node){var idDeclarations=node.declarations.filter(function(decl){return decl.id.type==="Identifier"});idDeclarations.slice(1).reduce(function(memo,decl){var lastVariableName=memo.id.name,currenVariableName=decl.id.name;if(ignoreCase){lastVariableName=lastVariableName.toLowerCase();currenVariableName=currenVariableName.toLowerCase()}if(currenVariableName"||token.type==="Keyword"}function checkPrecedingSpace(node){var precedingToken=sourceCode.getTokenBefore(node);var requireSpace=void 0;if(precedingToken&&!isConflicted(precedingToken)&&astUtils.isTokenOnSameLine(precedingToken,node)){var hasSpace=sourceCode.isSpaceBetweenTokens(precedingToken,node);var parent=context.getAncestors().pop();if(parent.type==="FunctionExpression"||parent.type==="FunctionDeclaration"){requireSpace=checkFunctions}else if(node.type==="ClassBody"){requireSpace=checkClasses}else{requireSpace=checkKeywords}if(requireSpace){if(!hasSpace){context.report({node:node,message:"Missing space before opening brace.",fix:function fix(fixer){return fixer.insertTextBefore(node," ")}})}}else{if(hasSpace){context.report({node:node,message:"Unexpected space before opening brace.",fix:function fix(fixer){return fixer.removeRange([precedingToken.range[1],node.range[0]])}})}}}}function checkSpaceBeforeCaseBlock(node){var cases=node.cases;var openingBrace=void 0;if(cases.length>0){openingBrace=sourceCode.getTokenBefore(cases[0])}else{openingBrace=sourceCode.getLastToken(node,1)}checkPrecedingSpace(openingBrace)}return{BlockStatement:checkPrecedingSpace,ClassBody:checkPrecedingSpace,SwitchStatement:checkSpaceBeforeCaseBlock}}}},{"../ast-utils":70}],318:[function(require,module,exports){"use strict";var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj};var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"enforce consistent spacing before `function` definition opening parenthesis",category:"Stylistic Issues",recommended:false},fixable:"whitespace",schema:[{oneOf:[{enum:["always","never"]},{type:"object",properties:{anonymous:{enum:["always","never","ignore"]},named:{enum:["always","never","ignore"]},asyncArrow:{enum:["always","never","ignore"]}},additionalProperties:false}]}]},create:function create(context){var sourceCode=context.getSourceCode();var baseConfig=typeof context.options[0]==="string"?context.options[0]:"always";var overrideConfig=_typeof(context.options[0])==="object"?context.options[0]:{};function isNamedFunction(node){if(node.id){return true}var parent=node.parent;return parent.type==="MethodDefinition"||parent.type==="Property"&&(parent.kind==="get"||parent.kind==="set"||parent.method)}function getConfigForFunction(node){if(node.type==="ArrowFunctionExpression"){if(node.async&&astUtils.isOpeningParenToken(sourceCode.getFirstToken(node,{skip:1}))){return overrideConfig.asyncArrow||baseConfig}}else if(isNamedFunction(node)){return overrideConfig.named||baseConfig}else if(!node.generator){return overrideConfig.anonymous||baseConfig}return"ignore"}function checkFunction(node){var functionConfig=getConfigForFunction(node);if(functionConfig==="ignore"){return}var rightToken=sourceCode.getFirstToken(node,astUtils.isOpeningParenToken);var leftToken=sourceCode.getTokenBefore(rightToken);var hasSpacing=sourceCode.isSpaceBetweenTokens(leftToken,rightToken);if(hasSpacing&&functionConfig==="never"){context.report({node:node,loc:leftToken.loc.end,message:"Unexpected space before function parentheses.",fix:function fix(fixer){return fixer.removeRange([leftToken.range[1],rightToken.range[0]])}})}else if(!hasSpacing&&functionConfig==="always"){context.report({node:node,loc:leftToken.loc.end,message:"Missing space before function parentheses.",fix:function fix(fixer){return fixer.insertTextAfter(leftToken," ")}})}}return{ArrowFunctionExpression:checkFunction,FunctionDeclaration:checkFunction,FunctionExpression:checkFunction}}}},{"../ast-utils":70}],319:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"enforce consistent spacing inside parentheses",category:"Stylistic Issues",recommended:false},fixable:"whitespace",schema:[{enum:["always","never"]},{type:"object",properties:{exceptions:{type:"array",items:{enum:["{}","[]","()","empty"]},uniqueItems:true}},additionalProperties:false}]},create:function create(context){var MISSING_SPACE_MESSAGE="There must be a space inside this paren.",REJECTED_SPACE_MESSAGE="There should be no spaces inside this paren.",ALWAYS=context.options[0]==="always",exceptionsArrayOptions=context.options.length===2?context.options[1].exceptions:[],options={};var exceptions=void 0;if(exceptionsArrayOptions.length){options.braceException=exceptionsArrayOptions.indexOf("{}")!==-1;options.bracketException=exceptionsArrayOptions.indexOf("[]")!==-1;options.parenException=exceptionsArrayOptions.indexOf("()")!==-1;options.empty=exceptionsArrayOptions.indexOf("empty")!==-1}function getExceptions(){var openers=[],closers=[];if(options.braceException){openers.push("{");closers.push("}")}if(options.bracketException){openers.push("[");closers.push("]")}if(options.parenException){openers.push("(");closers.push(")")}if(options.empty){openers.push(")");closers.push("(")}return{openers:openers,closers:closers}}var sourceCode=context.getSourceCode();function isOpenerException(token){return token.type==="Punctuator"&&exceptions.openers.indexOf(token.value)>=0}function isCloserException(token){return token.type==="Punctuator"&&exceptions.closers.indexOf(token.value)>=0}function shouldOpenerHaveSpace(left,right){if(sourceCode.isSpaceBetweenTokens(left,right)){return false}if(ALWAYS){if(astUtils.isClosingParenToken(right)){return false}return!isOpenerException(right)}return isOpenerException(right)}function shouldCloserHaveSpace(left,right){if(astUtils.isOpeningParenToken(left)){return false}if(sourceCode.isSpaceBetweenTokens(left,right)){return false}if(ALWAYS){return!isCloserException(left)}return isCloserException(left)}function shouldOpenerRejectSpace(left,right){if(right.type==="Line"){return false}if(!astUtils.isTokenOnSameLine(left,right)){return false}if(!sourceCode.isSpaceBetweenTokens(left,right)){return false}if(ALWAYS){return isOpenerException(right)}return!isOpenerException(right)}function shouldCloserRejectSpace(left,right){if(astUtils.isOpeningParenToken(left)){return false}if(!astUtils.isTokenOnSameLine(left,right)){return false}if(!sourceCode.isSpaceBetweenTokens(left,right)){return false}if(ALWAYS){return isCloserException(left)}return!isCloserException(left)}return{Program:function checkParenSpaces(node){exceptions=getExceptions();var tokens=sourceCode.tokensAndComments;tokens.forEach(function(token,i){var prevToken=tokens[i-1];var nextToken=tokens[i+1];if(!astUtils.isOpeningParenToken(token)&&!astUtils.isClosingParenToken(token)){return}if(token.value==="("&&shouldOpenerHaveSpace(token,nextToken)){context.report({node:node,loc:token.loc.start,message:MISSING_SPACE_MESSAGE,fix:function fix(fixer){return fixer.insertTextAfter(token," ")}})}else if(token.value==="("&&shouldOpenerRejectSpace(token,nextToken)){context.report({node:node,loc:token.loc.start,message:REJECTED_SPACE_MESSAGE,fix:function fix(fixer){return fixer.removeRange([token.range[1],nextToken.range[0]])}})}else if(token.value===")"&&shouldCloserHaveSpace(prevToken,token)){context.report({node:node,loc:token.loc.start,message:MISSING_SPACE_MESSAGE,fix:function fix(fixer){return fixer.insertTextBefore(token," ")}})}else if(token.value===")"&&shouldCloserRejectSpace(prevToken,token)){context.report({node:node,loc:token.loc.start,message:REJECTED_SPACE_MESSAGE,fix:function fix(fixer){return fixer.removeRange([prevToken.range[1],token.range[0]])}})}})}}}}},{"../ast-utils":70}],320:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"require spacing around infix operators",category:"Stylistic Issues",recommended:false},fixable:"whitespace",schema:[{type:"object",properties:{int32Hint:{type:"boolean"}},additionalProperties:false}]},create:function create(context){var int32Hint=context.options[0]?context.options[0].int32Hint===true:false;var OPERATORS=["*","/","%","+","-","<<",">>",">>>","<","<=",">",">=","in","instanceof","==","!=","===","!==","&","^","|","&&","||","=","+=","-=","*=","/=","%=","<<=",">>=",">>>=","&=","^=","|=","?",":",",","**"];var sourceCode=context.getSourceCode();function getFirstNonSpacedToken(left,right){var tokens=sourceCode.getTokensBetween(left,right,1);for(var i=1,l=tokens.length-1;i=0&&(tokens[i-1].range[1]>=op.range[0]||op.range[1]>=tokens[i+1].range[0])){return op}}return null}function report(mainNode,culpritToken){context.report({node:mainNode,loc:culpritToken.loc.start,message:"Infix operators must be spaced.",fix:function fix(fixer){var previousToken=sourceCode.getTokenBefore(culpritToken);var afterToken=sourceCode.getTokenAfter(culpritToken);var fixString="";if(culpritToken.range[0]-previousToken.range[1]===0){fixString=" "}fixString+=culpritToken.value;if(afterToken.range[0]-culpritToken.range[1]===0){fixString+=" "}return fixer.replaceText(culpritToken,fixString)}})}function checkBinary(node){var leftNode=node.left.typeAnnotation?node.left.typeAnnotation:node.left;var rightNode=node.right;var nonSpacedNode=getFirstNonSpacedToken(leftNode,rightNode);if(nonSpacedNode){if(!(int32Hint&&sourceCode.getText(node).substr(-2)==="|0")){report(node,nonSpacedNode)}}}function checkConditional(node){var nonSpacedConsequesntNode=getFirstNonSpacedToken(node.test,node.consequent);var nonSpacedAlternateNode=getFirstNonSpacedToken(node.consequent,node.alternate);if(nonSpacedConsequesntNode){report(node,nonSpacedConsequesntNode)}else if(nonSpacedAlternateNode){report(node,nonSpacedAlternateNode)}}function checkVar(node){var leftNode=node.id.typeAnnotation?node.id.typeAnnotation:node.id;var rightNode=node.init;if(rightNode){var nonSpacedNode=getFirstNonSpacedToken(leftNode,rightNode);if(nonSpacedNode){report(node,nonSpacedNode)}}}return{AssignmentExpression:checkBinary,AssignmentPattern:checkBinary,BinaryExpression:checkBinary,LogicalExpression:checkBinary,ConditionalExpression:checkConditional,VariableDeclarator:checkVar}}}},{}],321:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"enforce consistent spacing before or after unary operators",category:"Stylistic Issues",recommended:false},fixable:"whitespace",schema:[{type:"object",properties:{words:{type:"boolean"},nonwords:{type:"boolean"},overrides:{type:"object",additionalProperties:{type:"boolean"}}},additionalProperties:false}]},create:function create(context){var options=context.options&&Array.isArray(context.options)&&context.options[0]||{words:true,nonwords:false};var sourceCode=context.getSourceCode();function isFirstBangInBangBangExpression(node){return node&&node.type==="UnaryExpression"&&node.argument.operator==="!"&&node.argument&&node.argument.type==="UnaryExpression"&&node.argument.operator==="!"}function isArgumentObjectExpression(node){return node.argument&&node.argument.type&&node.argument.type==="ObjectExpression"}function overrideExistsForOperator(node,operator){return options.overrides&&options.overrides.hasOwnProperty(operator)}function overrideEnforcesSpaces(node,operator){return options.overrides[operator]}function verifyWordHasSpaces(node,firstToken,secondToken,word){if(secondToken.range[0]===firstToken.range[1]){context.report({node:node,message:"Unary word operator '{{word}}' must be followed by whitespace.",data:{word:word},fix:function fix(fixer){return fixer.insertTextAfter(firstToken," ")}})}}function verifyWordDoesntHaveSpaces(node,firstToken,secondToken,word){if(isArgumentObjectExpression(node)){if(secondToken.range[0]>firstToken.range[1]){context.report({node:node,message:"Unexpected space after unary word operator '{{word}}'.",data:{word:word},fix:function fix(fixer){return fixer.removeRange([firstToken.range[1],secondToken.range[0]])}})}}}function checkUnaryWordOperatorForSpaces(node,firstToken,secondToken,word){word=word||firstToken.value;if(overrideExistsForOperator(node,word)){if(overrideEnforcesSpaces(node,word)){verifyWordHasSpaces(node,firstToken,secondToken,word)}else{verifyWordDoesntHaveSpaces(node,firstToken,secondToken,word)}}else if(options.words){verifyWordHasSpaces(node,firstToken,secondToken,word)}else{verifyWordDoesntHaveSpaces(node,firstToken,secondToken,word)}}function checkForSpacesAfterYield(node){var tokens=sourceCode.getFirstTokens(node,3),word="yield";if(!node.argument||node.delegate){return}checkUnaryWordOperatorForSpaces(node,tokens[0],tokens[1],word)}function checkForSpacesAfterAwait(node){var tokens=sourceCode.getFirstTokens(node,3);checkUnaryWordOperatorForSpaces(node,tokens[0],tokens[1],"await")}function verifyNonWordsHaveSpaces(node,firstToken,secondToken){if(node.prefix){if(isFirstBangInBangBangExpression(node)){return}if(firstToken.range[1]===secondToken.range[0]){context.report({node:node,message:"Unary operator '{{operator}}' must be followed by whitespace.",data:{operator:firstToken.value},fix:function fix(fixer){return fixer.insertTextAfter(firstToken," ")}})}}else{if(firstToken.range[1]===secondToken.range[0]){context.report({node:node,message:"Space is required before unary expressions '{{token}}'.",data:{token:secondToken.value},fix:function fix(fixer){return fixer.insertTextBefore(secondToken," ")}})}}}function verifyNonWordsDontHaveSpaces(node,firstToken,secondToken){if(node.prefix){if(secondToken.range[0]>firstToken.range[1]){context.report({node:node,message:"Unexpected space after unary operator '{{operator}}'.",data:{operator:firstToken.value},fix:function fix(fixer){if(astUtils.canTokensBeAdjacent(firstToken,secondToken)){return fixer.removeRange([firstToken.range[1],secondToken.range[0]])}return null}})}}else{if(secondToken.range[0]>firstToken.range[1]){context.report({node:node,message:"Unexpected space before unary operator '{{operator}}'.",data:{operator:secondToken.value},fix:function fix(fixer){return fixer.removeRange([firstToken.range[1],secondToken.range[0]])}})}}}function checkForSpaces(node){var tokens=node.type==="UpdateExpression"&&!node.prefix?sourceCode.getLastTokens(node,2):sourceCode.getFirstTokens(node,2);var firstToken=tokens[0];var secondToken=tokens[1];if((node.type==="NewExpression"||node.prefix)&&firstToken.type==="Keyword"){checkUnaryWordOperatorForSpaces(node,firstToken,secondToken);return}var operator=node.prefix?tokens[0].value:tokens[1].value;if(overrideExistsForOperator(node,operator)){if(overrideEnforcesSpaces(node,operator)){verifyNonWordsHaveSpaces(node,firstToken,secondToken)}else{verifyNonWordsDontHaveSpaces(node,firstToken,secondToken)}}else if(options.nonwords){verifyNonWordsHaveSpaces(node,firstToken,secondToken)}else{verifyNonWordsDontHaveSpaces(node,firstToken,secondToken)}}return{UnaryExpression:checkForSpaces,UpdateExpression:checkForSpaces,NewExpression:checkForSpaces,YieldExpression:checkForSpacesAfterYield,AwaitExpression:checkForSpacesAfterAwait}}}},{"../ast-utils":70}],322:[function(require,module,exports){"use strict";var lodash=require("lodash");var astUtils=require("../ast-utils");function escape(s){var isOneChar=s.length===1;s=lodash.escapeRegExp(s);return isOneChar?s:"(?:"+s+")"}function escapeAndRepeat(s){return escape(s)+"+"}function parseMarkersOption(markers){markers=markers?markers.slice(0):[];if(markers.indexOf("*")===-1){markers.push("*")}return markers}function createExceptionsPattern(exceptions){var pattern="";if(exceptions.length===0){pattern+="\\s"}else{pattern+="(?:\\s|";if(exceptions.length===1){pattern+=escapeAndRepeat(exceptions[0])}else{pattern+="(?:";pattern+=exceptions.map(escapeAndRepeat).join("|");pattern+=")"}pattern+="(?:$|["+Array.from(astUtils.LINEBREAKS).join("")+"]))"}return pattern}function createAlwaysStylePattern(markers,exceptions){var pattern="^";if(markers.length===1){pattern+=escape(markers[0])}else{pattern+="(?:";pattern+=markers.map(escape).join("|");pattern+=")"}pattern+="?";pattern+=createExceptionsPattern(exceptions);return new RegExp(pattern)}function createNeverStylePattern(markers){var pattern="^("+markers.map(escape).join("|")+")?[ \t]+";return new RegExp(pattern)}module.exports={meta:{docs:{description:"enforce consistent spacing after the `//` or `/*` in a comment",category:"Stylistic Issues",recommended:false},fixable:"whitespace",schema:[{enum:["always","never"]},{type:"object",properties:{exceptions:{type:"array",items:{type:"string"}},markers:{type:"array",items:{type:"string"}},line:{type:"object",properties:{exceptions:{type:"array",items:{type:"string"}},markers:{type:"array",items:{type:"string"}}},additionalProperties:false},block:{type:"object",properties:{exceptions:{type:"array",items:{type:"string"}},markers:{type:"array",items:{type:"string"}},balanced:{type:"boolean"}},additionalProperties:false}},additionalProperties:false}]},create:function create(context){var sourceCode=context.getSourceCode();var requireSpace=context.options[0]!=="never";var config=context.options[1]||{};var balanced=config.block&&config.block.balanced;var styleRules=["block","line"].reduce(function(rule,type){var markers=parseMarkersOption(config[type]&&config[type].markers||config.markers);var exceptions=config[type]&&config[type].exceptions||config.exceptions||[];var endNeverPattern="[ \t]+$";rule[type]={beginRegex:requireSpace?createAlwaysStylePattern(markers,exceptions):createNeverStylePattern(markers),endRegex:balanced&&requireSpace?new RegExp(createExceptionsPattern(exceptions)+"$"):new RegExp(endNeverPattern),hasExceptions:exceptions.length>0,markers:new RegExp("^("+markers.map(escape).join("|")+")")};return rule},{});function reportBegin(node,message,match,refChar){var type=node.type.toLowerCase(),commentIdentifier=type==="block"?"/*":"//";context.report({node:node,fix:function fix(fixer){var start=node.range[0];var end=start+2;if(requireSpace){if(match){end+=match[0].length}return fixer.insertTextAfterRange([start,end]," ")}end+=match[0].length;return fixer.replaceTextRange([start,end],commentIdentifier+(match[1]?match[1]:""))},message:message,data:{refChar:refChar}})}function reportEnd(node,message,match){context.report({node:node,fix:function fix(fixer){if(requireSpace){return fixer.insertTextAfterRange([node.start,node.end-2]," ")}var end=node.end-2,start=end-match[0].length;return fixer.replaceTextRange([start,end],"")},message:message})}function checkCommentForSpace(node){var type=node.type.toLowerCase(),rule=styleRules[type],commentIdentifier=type==="block"?"/*":"//";if(node.value.length===0){return}var beginMatch=rule.beginRegex.exec(node.value);var endMatch=rule.endRegex.exec(node.value);if(requireSpace){if(!beginMatch){var hasMarker=rule.markers.exec(node.value);var marker=hasMarker?commentIdentifier+hasMarker[0]:commentIdentifier;if(rule.hasExceptions){reportBegin(node,"Expected exception block, space or tab after '{{refChar}}' in comment.",hasMarker,marker)}else{reportBegin(node,"Expected space or tab after '{{refChar}}' in comment.",hasMarker,marker)}}if(balanced&&type==="block"&&!endMatch){reportEnd(node,"Expected space or tab before '*/' in comment.")}}else{if(beginMatch){if(!beginMatch[1]){reportBegin(node,"Unexpected space or tab after '{{refChar}}' in comment.",beginMatch,commentIdentifier)}else{reportBegin(node,"Unexpected space or tab after marker ({{refChar}}) in comment.",beginMatch,beginMatch[1])}}if(balanced&&type==="block"&&endMatch){reportEnd(node,"Unexpected space or tab before '*/' in comment.",endMatch)}}}return{Program:function Program(){var comments=sourceCode.getAllComments();comments.filter(function(token){return token.type!=="Shebang"}).forEach(checkCommentForSpace)}}}}},{"../ast-utils":70,lodash:49}],323:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");var messages={function:"Use the function form of 'use strict'.",global:"Use the global form of 'use strict'.",multiple:"Multiple 'use strict' directives.",never:"Strict mode is not permitted.",unnecessary:"Unnecessary 'use strict' directive.",module:"'use strict' is unnecessary inside of modules.",implied:"'use strict' is unnecessary when implied strict mode is enabled.",unnecessaryInClasses:"'use strict' is unnecessary inside of classes.",nonSimpleParameterList:"'use strict' directive inside a function with non-simple parameter list throws a syntax error since ES2016.",wrap:"Wrap {{name}} in a function with 'use strict' directive."};function getUseStrictDirectives(statements){var directives=[];for(var i=0;i0,isParentGlobal=scopes.length===0&&classScopes.length===0,isParentStrict=scopes.length>0&&scopes[scopes.length-1],isStrict=useStrictDirectives.length>0;if(isStrict){if(!isSimpleParameterList(node.params)){context.report({node:useStrictDirectives[0],message:messages.nonSimpleParameterList})}else if(isParentStrict){context.report({node:useStrictDirectives[0],message:messages.unnecessary,fix:getFixFunction(useStrictDirectives[0])})}else if(isInClass){context.report({node:useStrictDirectives[0],message:messages.unnecessaryInClasses,fix:getFixFunction(useStrictDirectives[0])})}reportAllExceptFirst(useStrictDirectives,messages.multiple,true)}else if(isParentGlobal){if(isSimpleParameterList(node.params)){context.report({node:node,message:messages.function})}else{context.report({node:node,message:messages.wrap,data:{name:astUtils.getFunctionNameWithKind(node)}})}}scopes.push(isParentStrict||isStrict)}function exitFunctionInFunctionMode(){scopes.pop()}function enterFunction(node){var isBlock=node.body.type==="BlockStatement",useStrictDirectives=isBlock?getUseStrictDirectives(node.body.body):[];if(mode==="function"){enterFunctionInFunctionMode(node,useStrictDirectives)}else if(useStrictDirectives.length>0){if(isSimpleParameterList(node.params)){reportAll(useStrictDirectives,messages[mode],shouldFix(mode))}else{context.report({node:useStrictDirectives[0],message:messages.nonSimpleParameterList});reportAllExceptFirst(useStrictDirectives,messages.multiple,true)}}}var rule={Program:function Program(node){var useStrictDirectives=getUseStrictDirectives(node.body);if(node.sourceType==="module"){mode="module"}if(mode==="global"){if(node.body.length>0&&useStrictDirectives.length===0){context.report({node:node,message:messages.global})}reportAllExceptFirst(useStrictDirectives,messages.multiple,true)}else{reportAll(useStrictDirectives,messages[mode],shouldFix(mode))}},FunctionDeclaration:enterFunction,FunctionExpression:enterFunction,ArrowFunctionExpression:enterFunction};if(mode==="function"){Object.assign(rule,{ClassBody:function ClassBody(){classScopes.push(true)},"ClassBody:exit":function ClassBodyExit(){classScopes.pop()},"FunctionDeclaration:exit":exitFunctionInFunctionMode,"FunctionExpression:exit":exitFunctionInFunctionMode,"ArrowFunctionExpression:exit":exitFunctionInFunctionMode})}return rule}}},{"../ast-utils":70}],324:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"enforce spacing around colons of switch statements",category:"Stylistic Issues",recommended:false},schema:[{type:"object",properties:{before:{type:"boolean"},after:{type:"boolean"}},additionalProperties:false}],fixable:"whitespace"},create:function create(context){var sourceCode=context.getSourceCode();var options=context.options[0]||{};var beforeSpacing=options.before===true;var afterSpacing=options.after!==false;function getColonToken(node){if(node.test){return sourceCode.getTokenAfter(node.test,astUtils.isColonToken)}return sourceCode.getFirstToken(node,1)}function isValidSpacing(left,right,expected){return astUtils.isClosingBraceToken(right)||!astUtils.isTokenOnSameLine(left,right)||sourceCode.isSpaceBetweenTokens(left,right)===expected}function commentsExistBetween(left,right){return sourceCode.getFirstTokenBetween(left,right,{includeComments:true,filter:astUtils.isCommentToken})!==null}function _fix(fixer,left,right,spacing){if(commentsExistBetween(left,right)){return null}if(spacing){return fixer.insertTextAfter(left," ")}return fixer.removeRange([left.range[1],right.range[0]])}return{SwitchCase:function SwitchCase(node){var colonToken=getColonToken(node);var beforeToken=sourceCode.getTokenBefore(colonToken);var afterToken=sourceCode.getTokenAfter(colonToken);if(!isValidSpacing(beforeToken,colonToken,beforeSpacing)){context.report({node:node,loc:colonToken.loc,message:"{{verb}} space(s) before this colon.",data:{verb:beforeSpacing?"Expected":"Unexpected"},fix:function fix(fixer){return _fix(fixer,beforeToken,colonToken,beforeSpacing)}})}if(!isValidSpacing(colonToken,afterToken,afterSpacing)){context.report({node:node,loc:colonToken.loc,message:"{{verb}} space(s) after this colon.",data:{verb:afterSpacing?"Expected":"Unexpected"},fix:function fix(fixer){return _fix(fixer,colonToken,afterToken,afterSpacing)}})}}}}}},{"../ast-utils":70}],325:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"require symbol descriptions",category:"ECMAScript 6",recommended:false},schema:[]},create:function create(context){function checkArgument(node){if(node.arguments.length===0){context.report({node:node,message:"Expected Symbol to have a description."})}}return{"Program:exit":function ProgramExit(){var scope=context.getScope();var variable=astUtils.getVariableByName(scope,"Symbol");if(variable&&variable.defs.length===0){variable.references.forEach(function(reference){var node=reference.identifier;if(astUtils.isCallee(node)){checkArgument(node.parent)}})}}}}}},{"../ast-utils":70}],326:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");var OPEN_PAREN=/\$\{$/;var CLOSE_PAREN=/^\}/;module.exports={meta:{docs:{description:"require or disallow spacing around embedded expressions of template strings",category:"ECMAScript 6",recommended:false},fixable:"whitespace",schema:[{enum:["always","never"]}]},create:function create(context){var sourceCode=context.getSourceCode();var always=context.options[0]==="always";var prefix=always?"Expected":"Unexpected";function checkSpacingBefore(token){var prevToken=sourceCode.getTokenBefore(token);if(prevToken&&CLOSE_PAREN.test(token.value)&&astUtils.isTokenOnSameLine(prevToken,token)&&sourceCode.isSpaceBetweenTokens(prevToken,token)!==always){context.report({loc:token.loc.start,message:"{{prefix}} space(s) before '}'.",data:{prefix:prefix},fix:function fix(fixer){if(always){return fixer.insertTextBefore(token," ")}return fixer.removeRange([prevToken.range[1],token.range[0]])}})}}function checkSpacingAfter(token){var nextToken=sourceCode.getTokenAfter(token);if(nextToken&&OPEN_PAREN.test(token.value)&&astUtils.isTokenOnSameLine(token,nextToken)&&sourceCode.isSpaceBetweenTokens(token,nextToken)!==always){context.report({loc:{line:token.loc.end.line,column:token.loc.end.column-2},message:"{{prefix}} space(s) after '${'.",data:{prefix:prefix},fix:function fix(fixer){if(always){return fixer.insertTextAfter(token," ")}return fixer.removeRange([token.range[1],nextToken.range[0]])}})}}return{TemplateElement:function TemplateElement(node){var token=sourceCode.getFirstToken(node);checkSpacingBefore(token);checkSpacingAfter(token)}}}}},{"../ast-utils":70}],327:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"require or disallow spacing between template tags and their literals",category:"Stylistic Issues",recommended:false},fixable:"whitespace",schema:[{enum:["always","never"]}]},create:function create(context){var never=context.options[0]!=="always";var sourceCode=context.getSourceCode();function checkSpacing(node){var tagToken=sourceCode.getTokenBefore(node.quasi);var literalToken=sourceCode.getFirstToken(node.quasi);var hasWhitespace=sourceCode.isSpaceBetweenTokens(tagToken,literalToken);if(never&&hasWhitespace){context.report({node:node,loc:tagToken.loc.start,message:"Unexpected space between template tag and template literal.",fix:function fix(fixer){var comments=sourceCode.getCommentsBefore(node.quasi);if(comments.some(function(comment){return comment.type==="Line"})){return null}return fixer.replaceTextRange([tagToken.range[1],literalToken.range[0]],comments.reduce(function(text,comment){return text+sourceCode.getText(comment)},""))}})}else if(!never&&!hasWhitespace){context.report({node:node,loc:tagToken.loc.start,message:"Missing space between template tag and template literal.",fix:function fix(fixer){return fixer.insertTextAfter(tagToken," ")}})}}return{TaggedTemplateExpression:checkSpacing}}}},{}],328:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"require or disallow Unicode byte order mark (BOM)",category:"Stylistic Issues",recommended:false},fixable:"whitespace",schema:[{enum:["always","never"]}]},create:function create(context){return{Program:function checkUnicodeBOM(node){var sourceCode=context.getSourceCode(),location={column:0,line:1},requireBOM=context.options[0]||"never";if(!sourceCode.hasBOM&&requireBOM==="always"){context.report({node:node,loc:location,message:"Expected Unicode BOM (Byte Order Mark).",fix:function fix(fixer){return fixer.insertTextBeforeRange([0,1],"\ufeff")}})}else if(sourceCode.hasBOM&&requireBOM==="never"){context.report({node:node,loc:location,message:"Unexpected Unicode BOM (Byte Order Mark).",fix:function fix(fixer){return fixer.removeRange([-1,0])}})}}}}}},{}],329:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"require calls to `isNaN()` when checking for `NaN`",category:"Possible Errors",recommended:true},schema:[]},create:function create(context){return{BinaryExpression:function BinaryExpression(node){if(/^(?:[<>]|[!=]=)=?$/.test(node.operator)&&(node.left.name==="NaN"||node.right.name==="NaN")){context.report({node:node,message:"Use the isNaN function to compare with NaN."})}}}}}},{}],330:[function(require,module,exports){"use strict";var doctrine=require("doctrine");module.exports={meta:{docs:{description:"enforce valid JSDoc comments",category:"Possible Errors",recommended:false},schema:[{type:"object",properties:{prefer:{type:"object",additionalProperties:{type:"string"}},preferType:{type:"object",additionalProperties:{type:"string"}},requireReturn:{type:"boolean"},requireParamDescription:{type:"boolean"},requireReturnDescription:{type:"boolean"},matchDescription:{type:"string"},requireReturnType:{type:"boolean"}},additionalProperties:false}]},create:function create(context){var options=context.options[0]||{},prefer=options.prefer||{},sourceCode=context.getSourceCode(),requireReturn=options.requireReturn!==false,requireParamDescription=options.requireParamDescription!==false,requireReturnDescription=options.requireReturnDescription!==false,requireReturnType=options.requireReturnType!==false,preferType=options.preferType||{},checkPreferType=Object.keys(preferType).length!==0;var fns=[];function isTypeClass(node){return node.type==="ClassExpression"||node.type==="ClassDeclaration"}function startFunction(node){fns.push({returnPresent:node.type==="ArrowFunctionExpression"&&node.body.type!=="BlockStatement"||isTypeClass(node)})}function addReturn(node){var functionState=fns[fns.length-1];if(functionState&&node.argument!==null){functionState.returnPresent=true}}function isValidReturnType(tag){return tag.type===null||tag.type.name==="void"||tag.type.type==="UndefinedLiteral"}function canTypeBeValidated(type){return type!=="UndefinedLiteral"&&type!=="NullLiteral"&&type!=="NullableLiteral"&&type!=="FunctionType"&&type!=="AllLiteral"}function getCurrentExpectedTypes(type){var currentType=void 0;if(type.name){currentType=type.name}else if(type.expression){currentType=type.expression.name}var expectedType=currentType&&preferType[currentType];return{currentType:currentType,expectedType:expectedType}}function validateType(jsdocNode,type){if(!type||!canTypeBeValidated(type.type)){return}var typesToCheck=[];var elements=[];switch(type.type){case"TypeApplication":elements=type.applications[0].type==="UnionType"?type.applications[0].elements:type.applications;typesToCheck.push(getCurrentExpectedTypes(type));break;case"RecordType":elements=type.fields;break;case"UnionType":case"ArrayType":elements=type.elements;break;case"FieldType":if(type.value){typesToCheck.push(getCurrentExpectedTypes(type.value))}break;default:typesToCheck.push(getCurrentExpectedTypes(type))}elements.forEach(validateType.bind(null,jsdocNode));typesToCheck.forEach(function(typeToCheck){if(typeToCheck.expectedType&&typeToCheck.expectedType!==typeToCheck.currentType){context.report({node:jsdocNode,message:"Use '{{expectedType}}' instead of '{{currentType}}'.",data:{currentType:typeToCheck.currentType,expectedType:typeToCheck.expectedType}})}})}function checkJSDoc(node){var jsdocNode=sourceCode.getJSDocComment(node),functionData=fns.pop(),params=Object.create(null);var hasReturns=false,hasConstructor=false,isInterface=false,isOverride=false,isAbstract=false,jsdoc=void 0;if(jsdocNode){try{jsdoc=doctrine.parse(jsdocNode.value,{strict:true,unwrap:true,sloppy:true})}catch(ex){if(/braces/i.test(ex.message)){context.report({node:jsdocNode,message:"JSDoc type missing brace."})}else{context.report({node:jsdocNode,message:"JSDoc syntax error."})}return}jsdoc.tags.forEach(function(tag){switch(tag.title.toLowerCase()){case"param":case"arg":case"argument":if(!tag.type){context.report({node:jsdocNode,message:"Missing JSDoc parameter type for '{{name}}'.",data:{name:tag.name}})}if(!tag.description&&requireParamDescription){context.report({node:jsdocNode,message:"Missing JSDoc parameter description for '{{name}}'.",data:{name:tag.name}})}if(params[tag.name]){context.report({node:jsdocNode,message:"Duplicate JSDoc parameter '{{name}}'.",data:{name:tag.name}})}else if(tag.name.indexOf(".")===-1){params[tag.name]=1}break;case"return":case"returns":hasReturns=true;if(!requireReturn&&!functionData.returnPresent&&(tag.type===null||!isValidReturnType(tag))&&!isAbstract){context.report({node:jsdocNode,message:"Unexpected @{{title}} tag; function has no return statement.",data:{title:tag.title}})}else{if(requireReturnType&&!tag.type){context.report({node:jsdocNode,message:"Missing JSDoc return type."})}if(!isValidReturnType(tag)&&!tag.description&&requireReturnDescription){context.report({node:jsdocNode,message:"Missing JSDoc return description."})}}break;case"constructor":case"class":hasConstructor=true;break;case"override":case"inheritdoc":isOverride=true;break;case"abstract":case"virtual":isAbstract=true;break;case"interface":isInterface=true;break}if(prefer.hasOwnProperty(tag.title)&&tag.title!==prefer[tag.title]){context.report({node:jsdocNode,message:"Use @{{name}} instead.",data:{name:prefer[tag.title]}})}if(checkPreferType&&tag.type){validateType(jsdocNode,tag.type)}});if(!isOverride&&!hasReturns&&!hasConstructor&&!isInterface&&node.parent.kind!=="get"&&node.parent.kind!=="constructor"&&node.parent.kind!=="set"&&!isTypeClass(node)){if(requireReturn||functionData.returnPresent){context.report({node:jsdocNode,message:"Missing JSDoc @{{returns}} for function.",data:{returns:prefer.returns||"returns"}})}}var jsdocParams=Object.keys(params);if(node.params){node.params.forEach(function(param,i){if(param.type==="AssignmentPattern"){param=param.left}var name=param.name;if(param.type==="Identifier"){if(jsdocParams[i]&&name!==jsdocParams[i]){context.report({node:jsdocNode,message:"Expected JSDoc for '{{name}}' but found '{{jsdocName}}'.",data:{name:name,jsdocName:jsdocParams[i]}})}else if(!params[name]&&!isOverride){context.report({node:jsdocNode,message:"Missing JSDoc for parameter '{{name}}'.",data:{name:name}})}}})}if(options.matchDescription){var regex=new RegExp(options.matchDescription);if(!regex.test(jsdoc.description)){context.report({node:jsdocNode,message:"JSDoc description does not satisfy the regex pattern."})}}}}return{ArrowFunctionExpression:startFunction,FunctionExpression:startFunction,FunctionDeclaration:startFunction,ClassExpression:startFunction,ClassDeclaration:startFunction,"ArrowFunctionExpression:exit":checkJSDoc,"FunctionExpression:exit":checkJSDoc,"FunctionDeclaration:exit":checkJSDoc,"ClassExpression:exit":checkJSDoc,"ClassDeclaration:exit":checkJSDoc,ReturnStatement:addReturn}}}},{doctrine:12}],331:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"enforce comparing `typeof` expressions against valid strings",category:"Possible Errors",recommended:true},schema:[{type:"object",properties:{requireStringLiterals:{type:"boolean"}},additionalProperties:false}]},create:function create(context){var VALID_TYPES=["symbol","undefined","object","boolean","number","string","function"],OPERATORS=["==","===","!=","!=="];var requireStringLiterals=context.options[0]&&context.options[0].requireStringLiterals;function isTypeofExpression(node){return node.type==="UnaryExpression"&&node.operator==="typeof"}return{UnaryExpression:function UnaryExpression(node){if(isTypeofExpression(node)){var parent=context.getAncestors().pop();if(parent.type==="BinaryExpression"&&OPERATORS.indexOf(parent.operator)!==-1){var sibling=parent.left===node?parent.right:parent.left;if(sibling.type==="Literal"||sibling.type==="TemplateLiteral"&&!sibling.expressions.length){var value=sibling.type==="Literal"?sibling.value:sibling.quasis[0].value.cooked;if(VALID_TYPES.indexOf(value)===-1){context.report({node:sibling,message:"Invalid typeof comparison value."})}}else if(requireStringLiterals&&!isTypeofExpression(sibling)){context.report({node:sibling,message:"Typeof comparisons should be to string literals."})}}}}}}}},{}],332:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"require `var` declarations be placed at the top of their containing scope",category:"Best Practices",recommended:false},schema:[]},create:function create(context){var errorMessage="All 'var' declarations must be at the top of the function scope.";function looksLikeDirective(node){return node.type==="ExpressionStatement"&&node.expression.type==="Literal"&&typeof node.expression.value==="string"}function looksLikeImport(node){return node.type==="ImportDeclaration"||node.type==="ImportSpecifier"||node.type==="ImportDefaultSpecifier"||node.type==="ImportNamespaceSpecifier"}function isVariableDeclaration(node){return node.type==="VariableDeclaration"||node.type==="ExportNamedDeclaration"&&node.declaration&&node.declaration.type==="VariableDeclaration"}function isVarOnTop(node,statements){var l=statements.length;var i=0;for(;i|<=|>=)$/.test(operator)}function isEqualityOperator(operator){return/^(==|===)$/.test(operator)}function isRangeTestOperator(operator){return["<","<="].indexOf(operator)>=0}function looksLikeLiteral(node){return node.type==="UnaryExpression"&&node.operator==="-"&&node.prefix&&node.argument.type==="Literal"&&typeof node.argument.value==="number"}function getNormalizedLiteral(node,defaultValue){if(node.type==="Literal"){return node}if(looksLikeLiteral(node)){return{type:"Literal",value:-node.argument.value,raw:"-"+node.argument.value}}if(defaultValue){return{type:"Literal",value:defaultValue,raw:String(defaultValue)}}return null}function same(a,b){if(a.type!==b.type){return false}switch(a.type){case"Identifier":return a.name===b.name;case"Literal":return a.value===b.value;case"MemberExpression":{var nameA=astUtils.getStaticPropertyName(a);if(nameA){return same(a.object,b.object)&&nameA===astUtils.getStaticPropertyName(b)}return a.computed===b.computed&&same(a.object,b.object)&&same(a.property,b.property)}case"ThisExpression":return true;default:return false}}module.exports={meta:{docs:{description:'require or disallow "Yoda" conditions',category:"Best Practices",recommended:false},schema:[{enum:["always","never"]},{type:"object",properties:{exceptRange:{type:"boolean"},onlyEquality:{type:"boolean"}},additionalProperties:false}],fixable:"code"},create:function create(context){var always=context.options[0]==="always";var exceptRange=context.options[1]&&context.options[1].exceptRange;var onlyEquality=context.options[1]&&context.options[1].onlyEquality;var sourceCode=context.getSourceCode();function isRangeTest(node){var left=node.left,right=node.right;function isBetweenTest(){var leftLiteral=void 0,rightLiteral=void 0;return node.operator==="&&"&&(leftLiteral=getNormalizedLiteral(left.left))&&(rightLiteral=getNormalizedLiteral(right.right,Number.POSITIVE_INFINITY))&&leftLiteral.value<=rightLiteral.value&&same(left.right,right.left)}function isOutsideTest(){var leftLiteral=void 0,rightLiteral=void 0;return node.operator==="||"&&(leftLiteral=getNormalizedLiteral(left.right,Number.NEGATIVE_INFINITY))&&(rightLiteral=getNormalizedLiteral(right.left))&&leftLiteral.value<=rightLiteral.value&&same(left.left,right.right)}function isParenWrapped(){return astUtils.isParenthesised(sourceCode,node)}return node.type==="LogicalExpression"&&left.type==="BinaryExpression"&&right.type==="BinaryExpression"&&isRangeTestOperator(left.operator)&&isRangeTestOperator(right.operator)&&(isBetweenTest()||isOutsideTest())&&isParenWrapped()}var OPERATOR_FLIP_MAP={"===":"===","!==":"!==","==":"==","!=":"!=","<":">",">":"<","<=":">=",">=":"<="};function getFlippedString(node){var operatorToken=sourceCode.getFirstTokenBetween(node.left,node.right,function(token){return token.value===node.operator});var textBeforeOperator=sourceCode.getText().slice(sourceCode.getTokenBefore(operatorToken).range[1],operatorToken.range[0]);var textAfterOperator=sourceCode.getText().slice(operatorToken.range[1],sourceCode.getTokenAfter(operatorToken).range[0]);var leftText=sourceCode.getText().slice(node.range[0],sourceCode.getTokenBefore(operatorToken).range[1]);var rightText=sourceCode.getText().slice(sourceCode.getTokenAfter(operatorToken).range[0],node.range[1]);return rightText+textBeforeOperator+OPERATOR_FLIP_MAP[operatorToken.value]+textAfterOperator+leftText}return{BinaryExpression:function BinaryExpression(node){var expectedLiteral=always?node.left:node.right;var expectedNonLiteral=always?node.right:node.left;if((expectedNonLiteral.type==="Literal"||looksLikeLiteral(expectedNonLiteral))&&!(expectedLiteral.type==="Literal"||looksLikeLiteral(expectedLiteral))&&!(!isEqualityOperator(node.operator)&&onlyEquality)&&isComparisonOperator(node.operator)&&!(exceptRange&&isRangeTest(context.getAncestors().pop()))){context.report({node:node,message:"Expected literal to be on the {{expectedSide}} side of {{operator}}.",data:{operator:node.operator,expectedSide:always?"left":"right"},fix:function fix(fixer){return fixer.replaceText(node,getFlippedString(node))}})}}}}}},{"../ast-utils":70}],337:[function(require,module,exports){(function(process){"use strict";function alignLeft(str,len,ch){return str+new Array(len-str.length+1).join(ch||" ")}function alignRight(str,len,ch){return new Array(len-str.length+1).join(ch||" ")+str}var enabled=!!process.env.TIMING;var HEADERS=["Rule","Time (ms)","Relative"];var ALIGN=[alignLeft,alignRight,alignRight];function display(data){var total=0;var rows=Object.keys(data).map(function(key){var time=data[key];total+=time;return[key,time]}).sort(function(a,b){return b[1]-a[1]}).slice(0,10);rows.forEach(function(row){row.push((row[1]*100/total).toFixed(1)+"%");row[1]=row[1].toFixed(3)});rows.unshift(HEADERS);var widths=[];rows.forEach(function(row){var len=row.length;for(var i=0;iwidths[i]){widths[i]=n}}});var table=rows.map(function(row){return row.map(function(cell,index){return ALIGN[index](cell,widths[index])}).join(" | ")});table.splice(1,0,widths.map(function(w,index){if(index!==0&&index!==widths.length-1){w++}return ALIGN[index](":",w+1,"-")}).join("|"));console.log(table.join("\n"))}module.exports=function(){var data=Object.create(null);function time(key,fn){if(typeof data[key]==="undefined"){data[key]=0}return function(){var t=process.hrtime();fn.apply(null,Array.prototype.slice.call(arguments));t=process.hrtime(t);data[key]+=t[0]*1e3+t[1]/1e6}}if(enabled){process.on("exit",function(){display(data)})}return{time:time,enabled:enabled}}()}).call(this,require("_process"))},{_process:61}],338:[function(require,module,exports){"use strict";var _createClass=function(){function defineProperties(target,props){for(var i=0;i=0?this.tokens[this.tokenIndex]:null;var comment=this.commentIndex>=0?this.comments[this.commentIndex]:null;if(token&&(!comment||token.range[1]>comment.range[1])){this.current=token;this.tokenIndex-=1}else if(comment){this.current=comment;this.commentIndex-=1}else{this.current=null}return Boolean(this.current)&&(this.border===-1||this.current.range[0]>=this.border)}}]);return BackwardTokenCommentCursor}(Cursor)},{"./cursor":340,"./utils":350}],339:[function(require,module,exports){"use strict";var _createClass=function(){function defineProperties(target,props){for(var i=0;i=this.indexEnd){this.current=this.tokens[this.index];this.index-=1;return true}return false}},{key:"getOneToken",value:function getOneToken(){return this.index>=this.indexEnd?this.tokens[this.index]:null}}]);return BackwardTokenCursor}(Cursor)},{"./cursor":340,"./utils":350}],340:[function(require,module,exports){"use strict";var _createClass=function(){function defineProperties(target,props){for(var i=0;i=1){cursor=new SkipCursor(cursor,skip)}if(count>=0){cursor=new LimitCursor(cursor,count)}return cursor}}]);return CursorFactory}();exports.forward=new CursorFactory(ForwardTokenCursor,ForwardTokenCommentCursor);exports.backward=new CursorFactory(BackwardTokenCursor,BackwardTokenCommentCursor)},{"./backward-token-comment-cursor":338,"./backward-token-cursor":339,"./filter-cursor":343,"./forward-token-comment-cursor":344,"./forward-token-cursor":345,"./limit-cursor":347,"./skip-cursor":349}],342:[function(require,module,exports){"use strict";var _createClass=function(){function defineProperties(target,props){for(var i=0;i=0,"options.skip should be zero or a positive integer.");assert(!filter||typeof filter==="function","options.filter should be a function.");return factory.createCursor(tokens,comments,indexMap,startLoc,endLoc,includeComments,filter,skip,-1)}function createCursorWithCount(factory,tokens,comments,indexMap,startLoc,endLoc,opts){var includeComments=false;var count=0;var countExists=false;var filter=null;if(typeof opts==="number"){count=opts|0;countExists=true}else if(typeof opts==="function"){filter=opts}else if(opts){includeComments=!!opts.includeComments;count=opts.count|0;countExists=typeof opts.count==="number";filter=opts.filter||null}assert(count>=0,"options.count should be zero or a positive integer.");assert(!filter||typeof filter==="function","options.filter should be a function.");return factory.createCursor(tokens,comments,indexMap,startLoc,endLoc,includeComments,filter,0,countExists?count:-1)}function createCursorWithPadding(tokens,comments,indexMap,startLoc,endLoc,beforeCount,afterCount){if(typeof beforeCount==="undefined"&&typeof afterCount==="undefined"){return new ForwardTokenCursor(tokens,comments,indexMap,startLoc,endLoc)}if(typeof beforeCount==="number"||typeof beforeCount==="undefined"){return new PaddedTokenCursor(tokens,comments,indexMap,startLoc,endLoc,beforeCount|0,afterCount|0)}return createCursorWithCount(cursors.forward,tokens,comments,indexMap,startLoc,endLoc,beforeCount)}function getAdjacentCommentTokensFromCursor(cursor){var tokens=[];var currentToken=cursor.getOneToken();while(currentToken&&astUtils.isCommentToken(currentToken)){tokens.push(currentToken);currentToken=cursor.getOneToken()}return tokens}module.exports=function(){function TokenStore(tokens,comments){_classCallCheck(this,TokenStore);this[TOKENS]=tokens;this[COMMENTS]=comments;this[INDEX_MAP]=createIndexMap(tokens,comments)}_createClass(TokenStore,[{key:"getTokenByRangeStart",value:function getTokenByRangeStart(offset,options){var includeComments=options&&options.includeComments;var token=cursors.forward.createBaseCursor(this[TOKENS],this[COMMENTS],this[INDEX_MAP],offset,-1,includeComments).getOneToken();if(token&&token.range[0]===offset){return token}return null}},{key:"getFirstToken",value:function getFirstToken(node,options){return createCursorWithSkip(cursors.forward,this[TOKENS],this[COMMENTS],this[INDEX_MAP],node.range[0],node.range[1],options).getOneToken()}},{key:"getLastToken",value:function getLastToken(node,options){return createCursorWithSkip(cursors.backward,this[TOKENS],this[COMMENTS],this[INDEX_MAP],node.range[0],node.range[1],options).getOneToken()}},{key:"getTokenBefore",value:function getTokenBefore(node,options){return createCursorWithSkip(cursors.backward,this[TOKENS],this[COMMENTS],this[INDEX_MAP],-1,node.range[0],options).getOneToken()}},{key:"getTokenAfter",value:function getTokenAfter(node,options){return createCursorWithSkip(cursors.forward,this[TOKENS],this[COMMENTS],this[INDEX_MAP],node.range[1],-1,options).getOneToken()}},{key:"getFirstTokenBetween",value:function getFirstTokenBetween(left,right,options){return createCursorWithSkip(cursors.forward,this[TOKENS],this[COMMENTS],this[INDEX_MAP],left.range[1],right.range[0],options).getOneToken()}},{key:"getLastTokenBetween",value:function getLastTokenBetween(left,right,options){return createCursorWithSkip(cursors.backward,this[TOKENS],this[COMMENTS],this[INDEX_MAP],left.range[1],right.range[0],options).getOneToken()}},{key:"getTokenOrCommentBefore",value:function getTokenOrCommentBefore(node,skip){return this.getTokenBefore(node,{includeComments:true,skip:skip})}},{key:"getTokenOrCommentAfter",value:function getTokenOrCommentAfter(node,skip){return this.getTokenAfter(node,{includeComments:true,skip:skip})}},{key:"getFirstTokens",value:function getFirstTokens(node,options){return createCursorWithCount(cursors.forward,this[TOKENS],this[COMMENTS],this[INDEX_MAP],node.range[0],node.range[1],options).getAllTokens()}},{key:"getLastTokens",value:function getLastTokens(node,options){return createCursorWithCount(cursors.backward,this[TOKENS],this[COMMENTS],this[INDEX_MAP],node.range[0],node.range[1],options).getAllTokens().reverse()}},{key:"getTokensBefore",value:function getTokensBefore(node,options){return createCursorWithCount(cursors.backward,this[TOKENS],this[COMMENTS],this[INDEX_MAP],-1,node.range[0],options).getAllTokens().reverse()}},{key:"getTokensAfter",value:function getTokensAfter(node,options){return createCursorWithCount(cursors.forward,this[TOKENS],this[COMMENTS],this[INDEX_MAP],node.range[1],-1,options).getAllTokens()}},{key:"getFirstTokensBetween",value:function getFirstTokensBetween(left,right,options){return createCursorWithCount(cursors.forward,this[TOKENS],this[COMMENTS],this[INDEX_MAP],left.range[1],right.range[0],options).getAllTokens()}},{key:"getLastTokensBetween",value:function getLastTokensBetween(left,right,options){return createCursorWithCount(cursors.backward,this[TOKENS],this[COMMENTS],this[INDEX_MAP],left.range[1],right.range[0],options).getAllTokens().reverse()}},{key:"getTokens",value:function getTokens(node,beforeCount,afterCount){return createCursorWithPadding(this[TOKENS],this[COMMENTS],this[INDEX_MAP],node.range[0],node.range[1],beforeCount,afterCount).getAllTokens()}},{key:"getTokensBetween",value:function getTokensBetween(left,right,padding){return createCursorWithPadding(this[TOKENS],this[COMMENTS],this[INDEX_MAP],left.range[1],right.range[0],padding,padding).getAllTokens()}},{key:"commentsExistBetween",value:function commentsExistBetween(left,right){var index=utils.search(this[COMMENTS],left.range[1]);return index0){this.count-=1;return _get(LimitCursor.prototype.__proto__||Object.getPrototypeOf(LimitCursor.prototype),"moveNext",this).call(this)}return false}}]);return LimitCursor}(DecorativeCursor)},{"./decorative-cursor":342}],348:[function(require,module,exports){"use strict";function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return call&&(typeof call==="object"||typeof call==="function")?call:self}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function, not "+typeof superClass)}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass}var ForwardTokenCursor=require("./forward-token-cursor");module.exports=function(_ForwardTokenCursor){_inherits(PaddedTokenCursor,_ForwardTokenCursor);function PaddedTokenCursor(tokens,comments,indexMap,startLoc,endLoc,beforeCount,afterCount){_classCallCheck(this,PaddedTokenCursor);var _this=_possibleConstructorReturn(this,(PaddedTokenCursor.__proto__||Object.getPrototypeOf(PaddedTokenCursor)).call(this,tokens,comments,indexMap,startLoc,endLoc));_this.index=Math.max(0,_this.index-beforeCount);_this.indexEnd=Math.min(tokens.length-1,_this.indexEnd+afterCount);return _this}return PaddedTokenCursor}(ForwardTokenCursor)},{"./forward-token-cursor":345}],349:[function(require,module,exports){"use strict";var _createClass=function(){function defineProperties(target,props){for(var i=0;i0){this.count-=1;if(!_get(SkipCursor.prototype.__proto__||Object.getPrototypeOf(SkipCursor.prototype),"moveNext",this).call(this)){return false}}return _get(SkipCursor.prototype.__proto__||Object.getPrototypeOf(SkipCursor.prototype),"moveNext",this).call(this)}}]);return SkipCursor}(DecorativeCursor)},{"./decorative-cursor":342}],350:[function(require,module,exports){"use strict";var lodash=require("lodash");function getStartLocation(token){return token.range[0]}exports.search=function search(tokens,location){return lodash.sortedIndexBy(tokens,{range:[location]},getStartLocation)};exports.getFirstIndex=function getFirstIndex(tokens,indexMap,startLoc){if(startLoc in indexMap){return indexMap[startLoc]}if(startLoc-1 in indexMap){var index=indexMap[startLoc-1];var token=index>=0&&index=startLoc){return index}return index+1}return 0};exports.getLastIndex=function getLastIndex(tokens,indexMap,endLoc){if(endLoc in indexMap){return indexMap[endLoc]-1}if(endLoc-1 in indexMap){var index=indexMap[endLoc-1];var token=index>=0&&indexendLoc){return index-1}return index}return tokens.length-1}},{lodash:49}],351:[function(require,module,exports){"use strict";var _createClass=function(){function defineProperties(target,props){for(var i=0;i=selectorsByNodeType.length||anyTypeSelectorsIndex=start||start>end){remainingMessages.push(problem);continue}if(start<0&&end>=0||start===0&&fix.text.startsWith(BOM)){output=""}output+=text.slice(Math.max(0,lastPos),Math.max(0,start));output+=fix.text;lastPos=end}}catch(err){_didIteratorError=true;_iteratorError=err}finally{try{if(!_iteratorNormalCompletion&&_iterator.return){_iterator.return()}}finally{if(_didIteratorError){throw _iteratorError}}}output+=text.slice(Math.max(0,lastPos));return{fixed:true,messages:remainingMessages.sort(compareMessagesByLocation),output:output}}debug("No fixes to apply");return{fixed:false,messages:messages,output:bom+text}};module.exports=SourceCodeFixer},{debug:10}],357:[function(require,module,exports){"use strict";var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj};var _createClass=function(){function defineProperties(target,props){for(var i=0;i=0;i--){if(comments[i].type==="Block"&&comments[i].value.charAt(0)==="*"){if(line-comments[i].loc.end.line<=1){return comments[i]}break}}}return null}function looksLikeExport(astNode){return astNode.type==="ExportDefaultDeclaration"||astNode.type==="ExportNamedDeclaration"||astNode.type==="ExportAllDeclaration"||astNode.type==="ExportSpecifier"}function sortedMerge(tokens,comments){var result=[];var tokenIndex=0;var commentIndex=0;while(tokenIndex=comments.length||tokenIndexnode.parent.end){break}comments.trailing.push(currentToken);currentToken=this.getTokenAfter(currentToken,{includeComments:true})}}this._commentCache.set(node,comments);return comments}},{key:"getJSDocComment",value:function getJSDocComment(node){var parent=node.parent;var leadingComments=this.getCommentsBefore(node);switch(node.type){case"ClassDeclaration":case"FunctionDeclaration":if(looksLikeExport(parent)){return findJSDocComment(this.getCommentsBefore(parent),parent.loc.start.line)}return findJSDocComment(leadingComments,node.loc.start.line);case"ClassExpression":return findJSDocComment(this.getCommentsBefore(parent.parent),parent.parent.loc.start.line);case"ArrowFunctionExpression":case"FunctionExpression":if(parent.type!=="CallExpression"&&parent.type!=="NewExpression"){var parentLeadingComments=this.getCommentsBefore(parent);while(!parentLeadingComments.length&&!/Function/.test(parent.type)&&parent.type!=="MethodDefinition"&&parent.type!=="Property"){parent=parent.parent;if(!parent){break}parentLeadingComments=this.getCommentsBefore(parent)}return parent&&parent.type!=="FunctionDeclaration"&&parent.type!=="Program"?findJSDocComment(parentLeadingComments,parent.loc.start.line):null}else if(leadingComments.length){return findJSDocComment(leadingComments,node.loc.start.line)}default:return null}}},{key:"getNodeByRangeIndex",value:function getNodeByRangeIndex(index){var result=null,resultParent=null;var traverser=new Traverser;traverser.traverse(this.ast,{enter:function enter(node,parent){if(node.range[0]<=index&&indexthis.text.length){throw new RangeError("Index out of range (requested index "+index+", but source text has length "+this.text.length+").")}if(index===this.text.length){return{line:this.lines.length,column:this.lines[this.lines.length-1].length}}var lineNumber=lodash.sortedLastIndex(this.lineStartIndices,index);return{line:lineNumber,column:index-this.lineStartIndices[lineNumber-1]}}},{key:"getIndexFromLoc",value:function getIndexFromLoc(loc){if((typeof loc==="undefined"?"undefined":_typeof(loc))!=="object"||typeof loc.line!=="number"||typeof loc.column!=="number"){throw new TypeError("Expected `loc` to be an object with numeric `line` and `column` properties.")}if(loc.line<=0){throw new RangeError("Line number out of range (line "+loc.line+" requested). Line numbers should be 1-based.")}if(loc.line>this.lineStartIndices.length){throw new RangeError("Line number out of range (line "+loc.line+" requested, but only "+this.lineStartIndices.length+" lines present).")}var lineStartIndex=this.lineStartIndices[loc.line-1];var lineEndIndex=loc.line===this.lineStartIndices.length?this.text.length:this.lineStartIndices[loc.line];var positionIndex=lineStartIndex+loc.column;if(loc.line===this.lineStartIndices.length&&positionIndex>lineEndIndex||loc.line=lineEndIndex){throw new RangeError("Column number out of range (column "+loc.column+" requested, but the length of line "+loc.line+" is "+(lineEndIndex-lineStartIndex)+").")}return positionIndex}}],[{key:"splitLines",value:function splitLines(text){return text.split(astUtils.createGlobalLinebreakMatcher())}}]);return SourceCode}(TokenStore);module.exports=SourceCode},{"../ast-utils":70,"../token-store":346,"./traverser":358,lodash:49}],358:[function(require,module,exports){"use strict";var _createClass=function(){function defineProperties(target,props){for(var i=0;i=0){var next_line=out.indexOf("\n",idx+1);out=out.substring(next_line+1)}this.stack=out}}};util.inherits(assert.AssertionError,Error);function truncate(s,n){if(typeof s==="string"){return s.length=0;i--){if(ka[i]!==kb[i])return false}for(i=ka.length-1;i>=0;i--){key=ka[i];if(!_deepEqual(a[key],b[key],strict,actualVisitedObjects))return false}return true}assert.notDeepEqual=function notDeepEqual(actual,expected,message){if(_deepEqual(actual,expected,false)){fail(actual,expected,message,"notDeepEqual",assert.notDeepEqual)}};assert.notDeepStrictEqual=notDeepStrictEqual;function notDeepStrictEqual(actual,expected,message){if(_deepEqual(actual,expected,true)){fail(actual,expected,message,"notDeepStrictEqual",notDeepStrictEqual)}}assert.strictEqual=function strictEqual(actual,expected,message){if(actual!==expected){fail(actual,expected,message,"===",assert.strictEqual)}};assert.notStrictEqual=function notStrictEqual(actual,expected,message){if(actual===expected){fail(actual,expected,message,"!==",assert.notStrictEqual)}};function expectedException(actual,expected){if(!actual||!expected){return false}if(Object.prototype.toString.call(expected)=="[object RegExp]"){return expected.test(actual)}try{if(actual instanceof expected){return true}}catch(e){}if(Error.isPrototypeOf(expected)){return false}return expected.call({},actual)===true}function _tryBlock(block){var error;try{block()}catch(e){error=e}return error}function _throws(shouldThrow,block,expected,message){var actual;if(typeof block!=="function"){throw new TypeError('"block" argument must be a function')}if(typeof expected==="string"){message=expected;expected=null}actual=_tryBlock(block);message=(expected&&expected.name?" ("+expected.name+").":".")+(message?" "+message:".");if(shouldThrow&&!actual){fail(actual,expected,"Missing expected exception"+message)}var userProvidedMessage=typeof message==="string";var isUnwantedException=!shouldThrow&&util.isError(actual);var isUnexpectedException=!shouldThrow&&actual&&!expected;if(isUnwantedException&&userProvidedMessage&&expectedException(actual,expected)||isUnexpectedException){fail(actual,expected,"Got unwanted exception"+message)}if(shouldThrow&&actual&&expected&&!expectedException(actual,expected)||!shouldThrow&&actual){throw actual}}assert.throws=function(block,error,message){_throws(true,block,error,message)};assert.doesNotThrow=function(block,error,message){_throws(false,block,error,message)};assert.ifError=function(err){if(err)throw err};var objectKeys=Object.keys||function(obj){var keys=[];for(var key in obj){if(hasOwn.call(obj,key))keys.push(key)}return keys}}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"util/":21}],2:[function(require,module,exports){"use strict";(function(){"use strict";var typed,utility,isArray,jsdoc,esutils,hasOwnProperty;esutils=require("esutils");isArray=require("isarray");typed=require("./typed");utility=require("./utility");function sliceSource(source,index,last){return source.slice(index,last)}hasOwnProperty=function(){var func=Object.prototype.hasOwnProperty;return function hasOwnProperty(obj,name){return func.call(obj,name)}}();function shallowCopy(obj){var ret={},key;for(key in obj){if(obj.hasOwnProperty(key)){ret[key]=obj[key]}}return ret}function isASCIIAlphanumeric(ch){return ch>=97&&ch<=122||ch>=65&&ch<=90||ch>=48&&ch<=57}function isParamTitle(title){return title==="param"||title==="argument"||title==="arg"}function isReturnTitle(title){return title==="return"||title==="returns"}function isProperty(title){return title==="property"||title==="prop"}function isNameParameterRequired(title){return isParamTitle(title)||isProperty(title)||title==="alias"||title==="this"||title==="mixes"||title==="requires"}function isAllowedName(title){return isNameParameterRequired(title)||title==="const"||title==="constant"}function isAllowedNested(title){return isProperty(title)||isParamTitle(title)}function isAllowedOptional(title){return isProperty(title)||isParamTitle(title)}function isTypeParameterRequired(title){return isParamTitle(title)||isReturnTitle(title)||title==="define"||title==="enum"||title==="implements"||title==="this"||title==="type"||title==="typedef"||isProperty(title)}function isAllowedType(title){return isTypeParameterRequired(title)||title==="throws"||title==="const"||title==="constant"||title==="namespace"||title==="member"||title==="var"||title==="module"||title==="constructor"||title==="class"||title==="extends"||title==="augments"||title==="public"||title==="private"||title==="protected"}function trim(str){return str.replace(/^\s+/,"").replace(/\s+$/,"")}function unwrapComment(doc){var BEFORE_STAR=0,STAR=1,AFTER_STAR=2,index,len,mode,result,ch;doc=doc.replace(/^\/\*\*?/,"").replace(/\*\/$/,"");index=0;len=doc.length;mode=BEFORE_STAR;result="";while(index=last){return null}if(allowBrackets&&source.charCodeAt(index)===91){useBrackets=true;name=advance()}if(!esutils.code.isIdentifierStartES5(source.charCodeAt(index))){return null}name+=scanIdentifier(last);if(allowNestedParams){if(source.charCodeAt(index)===58&&(name==="module"||name==="external"||name==="event")){name+=advance();name+=scanIdentifier(last)}if(source.charCodeAt(index)===91&&source.charCodeAt(index+1)===93){name+=advance();name+=advance()}while(source.charCodeAt(index)===46||source.charCodeAt(index)===47||source.charCodeAt(index)===35||source.charCodeAt(index)===45||source.charCodeAt(index)===126){name+=advance();name+=scanIdentifier(last)}}if(useBrackets){skipWhiteSpace(last);if(source.charCodeAt(index)===61){name+=advance();skipWhiteSpace(last);var ch;var bracketDepth=1;while(index=last||source.charCodeAt(index)!==93){return null}name+=advance()}return name}function skipToTag(){while(index=length){return false}utility.assert(source.charCodeAt(index)===64);return true}function TagParser(options,title){this._options=options;this._title=title.toLowerCase();this._tag={title:title,description:null};if(this._options.lineNumbers){this._tag.lineNumber=lineNumber}this._last=0;this._extra={}}TagParser.prototype.addError=function addError(errorText){var args=Array.prototype.slice.call(arguments,1),msg=errorText.replace(/%(\d)/g,function(whole,index){utility.assert(index=0&&captionEnd>=0){this._tag.caption=trim(description.substring(captionStart+captionStartTag.length,captionEnd));this._tag.description=trim(description.substring(captionEnd+captionEndTag.length))}else{this._tag.description=description}return true};TagParser.prototype.parseKind=function parseKind(){var kind,kinds;kinds={class:true,constant:true,event:true,external:true,file:true,function:true,member:true,mixin:true,module:true,namespace:true,typedef:true};kind=trim(sliceSource(source,index,this._last));this._tag.kind=kind;if(!hasOwnProperty(kinds,kind)){if(!this.addError("Invalid kind name '%0'",kind)){return false}}return true};TagParser.prototype.parseAccess=function parseAccess(){var access;access=trim(sliceSource(source,index,this._last));this._tag.access=access;if(access!=="private"&&access!=="protected"&&access!=="public"){if(!this.addError("Invalid access name '%0'",access)){return false}}return true};TagParser.prototype.parseThis=function parseAccess(){var value=trim(sliceSource(source,index,this._last));if(value&&value.charAt(0)==="{"){var gotType=this.parseType();if(gotType&&this._tag.type.type==="NameExpression"){this._tag.name=this._tag.type.name;return true}else{return this.addError("Invalid name for this")}}else{return this.parseNamePath()}};TagParser.prototype.parseVariation=function parseVariation(){var variation,text;text=trim(sliceSource(source,index,this._last));variation=parseFloat(text,10);this._tag.variation=variation;if(isNaN(variation)){if(!this.addError("Invalid variation '%0'",text)){return false}}return true};TagParser.prototype.ensureEnd=function(){var shouldBeEmpty=trim(sliceSource(source,index,this._last));if(shouldBeEmpty){if(!this.addError("Unknown content '%0'",shouldBeEmpty)){return false}}return true};TagParser.prototype.epilogue=function epilogue(){var description;description=this._tag.description;if(isAllowedOptional(this._title)&&!this._tag.type&&description&&description.charAt(0)==="["){this._tag.type=this._extra.name;if(!this._tag.name){this._tag.name=undefined}if(!sloppy){if(!this.addError("Missing or invalid tag name")){return false}}}return true};Rules={access:["parseAccess"],alias:["parseNamePath","ensureEnd"],augments:["parseType","parseNamePathOptional","ensureEnd"],constructor:["parseType","parseNamePathOptional","ensureEnd"],class:["parseType","parseNamePathOptional","ensureEnd"],extends:["parseType","parseNamePathOptional","ensureEnd"],example:["parseCaption"],deprecated:["parseDescription"],global:["ensureEnd"],inner:["ensureEnd"],instance:["ensureEnd"],kind:["parseKind"],mixes:["parseNamePath","ensureEnd"],mixin:["parseNamePathOptional","ensureEnd"],member:["parseType","parseNamePathOptional","ensureEnd"],method:["parseNamePathOptional","ensureEnd"],module:["parseType","parseNamePathOptional","ensureEnd"],func:["parseNamePathOptional","ensureEnd"],function:["parseNamePathOptional","ensureEnd"],var:["parseType","parseNamePathOptional","ensureEnd"],name:["parseNamePath","ensureEnd"],namespace:["parseType","parseNamePathOptional","ensureEnd"],private:["parseType","parseDescription"],protected:["parseType","parseDescription"],public:["parseType","parseDescription"],readonly:["ensureEnd"],requires:["parseNamePath","ensureEnd"],since:["parseDescription"],static:["ensureEnd"],summary:["parseDescription"],this:["parseThis","ensureEnd"],todo:["parseDescription"],typedef:["parseType","parseNamePathOptional"],variation:["parseVariation"],version:["parseDescription"]};TagParser.prototype.parse=function parse(){var i,iz,sequences,method;if(!this._title){if(!this.addError("Missing or invalid title")){return null}}this._last=seekContent(this._title);if(hasOwnProperty(Rules,this._title)){sequences=Rules[this._title]}else{sequences=["parseType","parseName","parseDescription","epilogue"]}for(i=0,iz=sequences.length;i<(){}[],:*|?!=".indexOf(String.fromCharCode(ch))===-1&&!esutils.code.isWhiteSpace(ch)&&!esutils.code.isLineTerminator(ch)}function Context(previous,index,token,value){this._previous=previous;this._index=index;this._token=token;this._value=value}Context.prototype.restore=function(){previous=this._previous;index=this._index;token=this._token;value=this._value};Context.save=function(){return new Context(previous,index,token,value)};function advance(){var ch=source.charAt(index);index+=1;return ch}function scanHexEscape(prefix){var i,len,ch,code=0;len=prefix==="u"?4:2;for(i=0;i=0&&index=length){return Token.ILLEGAL}ch2=source.charCodeAt(index+1);if(ch2===60){break}}value+=advance()}return Token.NAME}function next(){var ch;previous=index;while(index=length){token=Token.EOF;return token}ch=source.charCodeAt(index);switch(ch){case 39:case 34:token=scanString();return token;case 58:advance();token=Token.COLON;return token;case 44:advance();token=Token.COMMA;return token;case 40:advance();token=Token.LPAREN;return token;case 41:advance();token=Token.RPAREN;return token;case 91:advance();token=Token.LBRACK;return token;case 93:advance();token=Token.RBRACK;return token;case 123:advance();token=Token.LBRACE;return token;case 125:advance();token=Token.RBRACE;return token;case 46:if(index+1=2.0.0 <3.0.0",type:"range"},"/var/lib/jenkins/workspace/Releases/ESLint Release/eslint"]],_from:"doctrine@>=2.0.0 <3.0.0",_id:"doctrine@2.0.0",_inCache:true,_location:"/doctrine",_nodeVersion:"4.4.2",_npmOperationalInternal:{host:"packages-12-west.internal.npmjs.com",tmp:"tmp/doctrine-2.0.0.tgz_1479232728285_0.34204454137943685"},_npmUser:{name:"nzakas",email:"nicholas@nczconsulting.com"},_npmVersion:"2.15.0",_phantomChildren:{},_requested:{raw:"doctrine@^2.0.0",scope:null,escapedName:"doctrine",name:"doctrine",rawSpec:"^2.0.0",spec:">=2.0.0 <3.0.0",type:"range"},_requiredBy:["/"],_resolved:"https://registry.npmjs.org/doctrine/-/doctrine-2.0.0.tgz",_shasum:"c73d8d2909d22291e1a007a395804da8b665fe63",_shrinkwrap:null,_spec:"doctrine@^2.0.0",_where:"/var/lib/jenkins/workspace/Releases/ESLint Release/eslint",bugs:{url:"https://github.com/eslint/doctrine/issues"},dependencies:{esutils:"^2.0.2",isarray:"^1.0.0"},description:"JSDoc parser",devDependencies:{coveralls:"^2.11.2",dateformat:"^1.0.11",eslint:"^1.10.3","eslint-release":"^0.10.0",istanbul:"^0.4.1",linefix:"^0.1.1",mocha:"^2.3.3","npm-license":"^0.3.1",semver:"^5.0.3",shelljs:"^0.5.3","shelljs-nodecli":"^0.1.1",should:"^5.0.1"},directories:{lib:"./lib"},dist:{shasum:"c73d8d2909d22291e1a007a395804da8b665fe63",tarball:"https://registry.npmjs.org/doctrine/-/doctrine-2.0.0.tgz"},engines:{node:">=0.10.0"},files:["lib","LICENSE.BSD","LICENSE.closure-compiler","LICENSE.esprima","README.md"],gitHead:"46c600f27f54b3ab6b0b8a9ac9f97c807ffa95ef",homepage:"https://github.com/eslint/doctrine",license:"Apache-2.0",main:"lib/doctrine.js",maintainers:[{name:"Nicholas C. Zakas",email:"nicholas+npm@nczconsulting.com",url:"https://www.nczonline.net"},{name:"Yusuke Suzuki",email:"utatane.tea@gmail.com",url:"https://github.com/Constellation"}],name:"doctrine",optionalDependencies:{},readme:'[![NPM version][npm-image]][npm-url]\n[![build status][travis-image]][travis-url]\n[![Test coverage][coveralls-image]][coveralls-url]\n[![Downloads][downloads-image]][downloads-url]\n[![Join the chat at https://gitter.im/eslint/doctrine](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/eslint/doctrine?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n# Doctrine\n\nDoctrine is a [JSDoc](http://usejsdoc.org) parser that parses documentation comments from JavaScript (you need to pass in the comment, not a whole JavaScript file).\n\n## Installation\n\nYou can install Doctrine using [npm](https://npmjs.com):\n\n```\n$ npm install doctrine --save-dev\n```\n\nDoctrine can also be used in web browsers using [Browserify](http://browserify.org).\n\n## Usage\n\nRequire doctrine inside of your JavaScript:\n\n```js\nvar doctrine = require("doctrine");\n```\n\n### parse()\n\nThe primary method is `parse()`, which accepts two arguments: the JSDoc comment to parse and an optional options object. The available options are:\n\n* `unwrap` - set to `true` to delete the leading `/**`, any `*` that begins a line, and the trailing `*/` from the source text. Default: `false`.\n* `tags` - an array of tags to return. When specified, Doctrine returns only tags in this array. For example, if `tags` is `["param"]`, then only `@param` tags will be returned. Default: `null`.\n* `recoverable` - set to `true` to keep parsing even when syntax errors occur. Default: `false`.\n* `sloppy` - set to `true` to allow optional parameters to be specified in brackets (`@param {string} [foo]`). Default: `false`.\n* `lineNumbers` - set to `true` to add `lineNumber` to each node, specifying the line on which the node is found in the source. Default: `false`.\n\nHere\'s a simple example:\n\n```js\nvar ast = doctrine.parse(\n [\n "/**",\n " * This function comment is parsed by doctrine",\n " * @param {{ok:String}} userName",\n "*/"\n ].join(\'\\n\'), { unwrap: true });\n```\n\nThis example returns the following AST:\n\n {\n "description": "This function comment is parsed by doctrine",\n "tags": [\n {\n "title": "param",\n "description": null,\n "type": {\n "type": "RecordType",\n "fields": [\n {\n "type": "FieldType",\n "key": "ok",\n "value": {\n "type": "NameExpression",\n "name": "String"\n }\n }\n ]\n },\n "name": "userName"\n }\n ]\n }\n\nSee the [demo page](http://eslint.org/doctrine/demo/) more detail.\n\n## Team\n\nThese folks keep the project moving and are resources for help:\n\n* Nicholas C. Zakas ([@nzakas](https://github.com/nzakas)) - project lead\n* Yusuke Suzuki ([@constellation](https://github.com/constellation)) - reviewer\n\n## Contributing\n\nIssues and pull requests will be triaged and responded to as quickly as possible. We operate under the [ESLint Contributor Guidelines](http://eslint.org/docs/developer-guide/contributing), so please be sure to read them before contributing. If you\'re not sure where to dig in, check out the [issues](https://github.com/eslint/doctrine/issues).\n\n## Frequently Asked Questions\n\n### Can I pass a whole JavaScript file to Doctrine?\n\nNo. Doctrine can only parse JSDoc comments, so you\'ll need to pass just the JSDoc comment to Doctrine in order to work.\n\n\n### License\n\n#### doctrine\n\nCopyright JS Foundation and other contributors, https://js.foundation\n\nLicensed under the Apache License, Version 2.0 (the "License");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an "AS IS" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\n#### esprima\n\nsome of functions is derived from esprima\n\nCopyright (C) 2012, 2011 [Ariya Hidayat](http://ariya.ofilabs.com/about)\n (twitter: [@ariyahidayat](http://twitter.com/ariyahidayat)) and other contributors.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n * Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n\n * Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the\n documentation and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\nARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY\nDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\nON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\nTHIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n\n#### closure-compiler\n\nsome of extensions is derived from closure-compiler\n\nApache License\nVersion 2.0, January 2004\nhttp://www.apache.org/licenses/\n\n\n### Where to ask for help?\n\nJoin our [Chatroom](https://gitter.im/eslint/doctrine)\n\n[npm-image]: https://img.shields.io/npm/v/doctrine.svg?style=flat-square\n[npm-url]: https://www.npmjs.com/package/doctrine\n[travis-image]: https://img.shields.io/travis/eslint/doctrine/master.svg?style=flat-square\n[travis-url]: https://travis-ci.org/eslint/doctrine\n[coveralls-image]: https://img.shields.io/coveralls/eslint/doctrine/master.svg?style=flat-square\n[coveralls-url]: https://coveralls.io/r/eslint/doctrine?branch=master\n[downloads-image]: http://img.shields.io/npm/dm/doctrine.svg?style=flat-square\n[downloads-url]: https://www.npmjs.com/package/doctrine\n',readmeFilename:"README.md",repository:{type:"git",url:"git+https://github.com/eslint/doctrine.git"},scripts:{alpharelease:"eslint-prerelease alpha",betarelease:"eslint-prerelease beta","ci-release":"eslint-ci-release",lint:"eslint lib/",release:"eslint-release",test:"npm run lint && node Makefile.js test"},version:"2.0.0"}},{}],6:[function(require,module,exports){"use strict";var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj};(function clone(exports){"use strict";var Syntax,isArray,VisitorOption,VisitorKeys,objectCreate,objectKeys,BREAK,SKIP,REMOVE;function ignoreJSHintError(){}isArray=Array.isArray;if(!isArray){isArray=function isArray(array){return Object.prototype.toString.call(array)==="[object Array]"}}function deepCopy(obj){var ret={},key,val;for(key in obj){if(obj.hasOwnProperty(key)){val=obj[key];if((typeof val==="undefined"?"undefined":_typeof(val))==="object"&&val!==null){ret[key]=deepCopy(val)}else{ret[key]=val}}}return ret}function shallowCopy(obj){var ret={},key;for(key in obj){if(obj.hasOwnProperty(key)){ret[key]=obj[key]}}return ret}ignoreJSHintError(shallowCopy);function upperBound(array,func){var diff,len,i,current;len=array.length;i=0;while(len){diff=len>>>1;current=i+diff;if(func(array[current])){len=diff}else{i=current+1;len-=diff+1}}return i}function lowerBound(array,func){var diff,len,i,current;len=array.length;i=0;while(len){diff=len>>>1;current=i+diff;if(func(array[current])){i=current+1;len-=diff+1}else{len=diff}}return i}ignoreJSHintError(lowerBound);objectCreate=Object.create||function(){function F(){}return function(o){F.prototype=o;return new F}}();objectKeys=Object.keys||function(o){var keys=[],key;for(key in o){keys.push(key)}return keys};function extend(to,from){var keys=objectKeys(from),key,i,len;for(i=0,len=keys.length;i=0){key=candidates[current];candidate=node[key];if(!candidate){continue}if(isArray(candidate)){current2=candidate.length;while((current2-=1)>=0){if(!candidate[current2]){continue}if(isProperty(nodeType,candidates[current])){element=new Element(candidate[current2],[key,current2],"Property",null)}else if(isNode(candidate[current2])){element=new Element(candidate[current2],[key,current2],null,null)}else{continue}worklist.push(element)}}else if(isNode(candidate)){worklist.push(new Element(candidate,key,null,null))}}}}};Controller.prototype.replace=function replace(root,visitor){var worklist,leavelist,node,nodeType,target,element,current,current2,candidates,candidate,sentinel,outer,key;function removeElem(element){var i,key,nextElem,parent;if(element.ref.remove()){key=element.ref.key;parent=element.ref.parent;i=worklist.length;while(i--){nextElem=worklist[i];if(nextElem.ref&&nextElem.ref.parent===parent){if(nextElem.ref.key=0){key=candidates[current];candidate=node[key];if(!candidate){continue}if(isArray(candidate)){current2=candidate.length;while((current2-=1)>=0){if(!candidate[current2]){continue}if(isProperty(nodeType,candidates[current])){element=new Element(candidate[current2],[key,current2],"Property",new Reference(candidate,current2))}else if(isNode(candidate[current2])){element=new Element(candidate[current2],[key,current2],null,new Reference(candidate,current2))}else{continue}worklist.push(element)}}else if(isNode(candidate)){worklist.push(new Element(candidate,key,null,new Reference(node,key)))}}}return outer.root};function traverse(root,visitor){var controller=new Controller;return controller.traverse(root,visitor)}function replace(root,visitor){var controller=new Controller;return controller.replace(root,visitor)}function extendCommentRange(comment,tokens){var target;target=upperBound(tokens,function search(token){return token.range[0]>comment.range[0]});comment.extendedRange=[comment.range[0],comment.range[1]];if(target!==tokens.length){comment.extendedRange[1]=tokens[target].range[0]}target-=1;if(target>=0){comment.extendedRange[0]=tokens[target].range[1]}return comment}function attachComments(tree,providedComments,tokens){var comments=[],comment,len,i,cursor;if(!tree.range){throw new Error("attachComments needs range information")}if(!tokens.length){if(providedComments.length){for(i=0,len=providedComments.length;inode.range[0]){break}if(comment.extendedRange[1]===node.range[0]){if(!node.leadingComments){node.leadingComments=[]}node.leadingComments.push(comment);comments.splice(cursor,1)}else{cursor+=1}}if(cursor===comments.length){return VisitorOption.Break}if(comments[cursor].extendedRange[0]>node.range[1]){return VisitorOption.Skip}}});cursor=0;traverse(tree,{leave:function leave(node){var comment;while(cursornode.range[1]){return VisitorOption.Skip}}});return tree}exports.version=require("./package.json").version;exports.Syntax=Syntax;exports.traverse=traverse;exports.replace=replace;exports.attachComments=attachComments;exports.VisitorKeys=VisitorKeys;exports.VisitorOption=VisitorOption;exports.Controller=Controller;exports.cloneEnvironment=function(){return clone({})};return exports})(exports)},{"./package.json":7}],7:[function(require,module,exports){module.exports={_args:[[{raw:"estraverse@^4.2.0",scope:null,escapedName:"estraverse",name:"estraverse",rawSpec:"^4.2.0",spec:">=4.2.0 <5.0.0",type:"range"},"/var/lib/jenkins/workspace/Releases/ESLint Release/eslint"]],_from:"estraverse@>=4.2.0 <5.0.0",_id:"estraverse@4.2.0",_inCache:true,_location:"/estraverse",_nodeVersion:"0.12.9",_npmOperationalInternal:{host:"packages-12-west.internal.npmjs.com",tmp:"tmp/estraverse-4.2.0.tgz_1457646738925_0.7118953282479197"},_npmUser:{name:"nzakas",email:"nicholas@nczconsulting.com"},_npmVersion:"2.14.9",_phantomChildren:{},_requested:{raw:"estraverse@^4.2.0",scope:null,escapedName:"estraverse",name:"estraverse",rawSpec:"^4.2.0",spec:">=4.2.0 <5.0.0",type:"range"},_requiredBy:["/","/eslint-scope","/esquery","/esrecurse"],_resolved:"https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz",_shasum:"0dee3fed31fcd469618ce7342099fc1afa0bdb13",_shrinkwrap:null,_spec:"estraverse@^4.2.0",_where:"/var/lib/jenkins/workspace/Releases/ESLint Release/eslint",bugs:{url:"https://github.com/estools/estraverse/issues"},dependencies:{},description:"ECMAScript JS AST traversal functions",devDependencies:{"babel-preset-es2015":"^6.3.13","babel-register":"^6.3.13",chai:"^2.1.1",espree:"^1.11.0",gulp:"^3.8.10","gulp-bump":"^0.2.2","gulp-filter":"^2.0.0","gulp-git":"^1.0.1","gulp-tag-version":"^1.2.1",jshint:"^2.5.6",mocha:"^2.1.0"},directories:{},dist:{shasum:"0dee3fed31fcd469618ce7342099fc1afa0bdb13",tarball:"https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz"},engines:{node:">=0.10.0"},gitHead:"6f6a4e99653908e859c7c10d04d9518bf4844ede",homepage:"https://github.com/estools/estraverse",license:"BSD-2-Clause",main:"estraverse.js",maintainers:[{name:"Yusuke Suzuki",email:"utatane.tea@gmail.com",url:"http://github.com/Constellation"}],name:"estraverse",optionalDependencies:{},readme:"ERROR: No README data found!",repository:{type:"git",url:"git+ssh://git@github.com/estools/estraverse.git"},scripts:{lint:"jshint estraverse.js",test:"npm run-script lint && npm run-script unit-test","unit-test":"mocha --compilers js:babel-register"},version:"4.2.0"}},{}],8:[function(require,module,exports){"use strict";(function(){"use strict";function isExpression(node){if(node==null){return false}switch(node.type){case"ArrayExpression":case"AssignmentExpression":case"BinaryExpression":case"CallExpression":case"ConditionalExpression":case"FunctionExpression":case"Identifier":case"Literal":case"LogicalExpression":case"MemberExpression":case"NewExpression":case"ObjectExpression":case"SequenceExpression":case"ThisExpression":case"UnaryExpression":case"UpdateExpression":return true}return false}function isIterationStatement(node){if(node==null){return false}switch(node.type){case"DoWhileStatement":case"ForInStatement":case"ForStatement":case"WhileStatement":return true}return false}function isStatement(node){if(node==null){return false}switch(node.type){case"BlockStatement":case"BreakStatement":case"ContinueStatement":case"DebuggerStatement":case"DoWhileStatement":case"EmptyStatement":case"ExpressionStatement":case"ForInStatement":case"ForStatement":case"IfStatement":case"LabeledStatement":case"ReturnStatement":case"SwitchStatement":case"ThrowStatement":case"TryStatement":case"VariableDeclaration":case"WhileStatement":case"WithStatement":return true}return false}function isSourceElement(node){return isStatement(node)||node!=null&&node.type==="FunctionDeclaration"}function trailingStatement(node){switch(node.type){case"IfStatement":if(node.alternate!=null){return node.alternate}return node.consequent;case"LabeledStatement":case"ForStatement":case"ForInStatement":case"WhileStatement":case"WithStatement":return node.body}return null}function isProblematicIfStatement(node){var current;if(node.type!=="IfStatement"){return false}if(node.alternate==null){return false}current=node.consequent;do{if(current.type==="IfStatement"){if(current.alternate==null){return true}}current=trailingStatement(current)}while(current);return false}module.exports={isExpression:isExpression,isStatement:isStatement,isIterationStatement:isIterationStatement,isSourceElement:isSourceElement,isProblematicIfStatement:isProblematicIfStatement,trailingStatement:trailingStatement}})()},{}],9:[function(require,module,exports){"use strict";(function(){"use strict";var ES6Regex,ES5Regex,NON_ASCII_WHITESPACES,IDENTIFIER_START,IDENTIFIER_PART,ch;ES5Regex={NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B2\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA7AD\uA7B0\uA7B1\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB5F\uAB64\uAB65\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/,NonAsciiIdentifierPart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B2\u08E4-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58\u0C59\u0C60-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D60-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA69D\uA69F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA7AD\uA7B0\uA7B1\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB5F\uAB64\uAB65\uABC0-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2D\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/};ES6Regex={NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B2\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA7AD\uA7B0\uA7B1\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB5F\uAB64\uAB65\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDE00-\uDE11\uDE13-\uDE2B\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF5D-\uDF61]|\uD805[\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDE00-\uDE2F\uDE44\uDE80-\uDEAA]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF98]|\uD809[\uDC00-\uDC6E]|[\uD80C\uD840-\uD868\uD86A-\uD86C][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D]|\uD87E[\uDC00-\uDE1D]/,NonAsciiIdentifierPart:/[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B2\u08E4-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58\u0C59\u0C60-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D60-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA69D\uA69F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA7AD\uA7B0\uA7B1\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB5F\uAB64\uAB65\uABC0-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2D\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDD0-\uDDDA\uDE00-\uDE11\uDE13-\uDE37\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF01-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF98]|\uD809[\uDC00-\uDC6E]|[\uD80C\uD840-\uD868\uD86A-\uD86C][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/};function isDecimalDigit(ch){return 48<=ch&&ch<=57}function isHexDigit(ch){return 48<=ch&&ch<=57||97<=ch&&ch<=102||65<=ch&&ch<=70}function isOctalDigit(ch){return ch>=48&&ch<=55}NON_ASCII_WHITESPACES=[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279];function isWhiteSpace(ch){return ch===32||ch===9||ch===11||ch===12||ch===160||ch>=5760&&NON_ASCII_WHITESPACES.indexOf(ch)>=0}function isLineTerminator(ch){return ch===10||ch===13||ch===8232||ch===8233}function fromCodePoint(cp){if(cp<=65535){return String.fromCharCode(cp)}var cu1=String.fromCharCode(Math.floor((cp-65536)/1024)+55296);var cu2=String.fromCharCode((cp-65536)%1024+56320);return cu1+cu2}IDENTIFIER_START=new Array(128);for(ch=0;ch<128;++ch){IDENTIFIER_START[ch]=ch>=97&&ch<=122||ch>=65&&ch<=90||ch===36||ch===95}IDENTIFIER_PART=new Array(128);for(ch=0;ch<128;++ch){IDENTIFIER_PART[ch]=ch>=97&&ch<=122||ch>=65&&ch<=90||ch>=48&&ch<=57||ch===36||ch===95}function isIdentifierStartES5(ch){return ch<128?IDENTIFIER_START[ch]:ES5Regex.NonAsciiIdentifierStart.test(fromCodePoint(ch))}function isIdentifierPartES5(ch){return ch<128?IDENTIFIER_PART[ch]:ES5Regex.NonAsciiIdentifierPart.test(fromCodePoint(ch))}function isIdentifierStartES6(ch){return ch<128?IDENTIFIER_START[ch]:ES6Regex.NonAsciiIdentifierStart.test(fromCodePoint(ch))}function isIdentifierPartES6(ch){return ch<128?IDENTIFIER_PART[ch]:ES6Regex.NonAsciiIdentifierPart.test(fromCodePoint(ch))}module.exports={isDecimalDigit:isDecimalDigit,isHexDigit:isHexDigit,isOctalDigit:isOctalDigit,isWhiteSpace:isWhiteSpace,isLineTerminator:isLineTerminator,isIdentifierStartES5:isIdentifierStartES5,isIdentifierPartES5:isIdentifierPartES5,isIdentifierStartES6:isIdentifierStartES6,isIdentifierPartES6:isIdentifierPartES6}})()},{}],10:[function(require,module,exports){"use strict";(function(){"use strict";var code=require("./code");function isStrictModeReservedWordES6(id){switch(id){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"let":return true;default:return false}}function isKeywordES5(id,strict){if(!strict&&id==="yield"){return false}return isKeywordES6(id,strict)}function isKeywordES6(id,strict){if(strict&&isStrictModeReservedWordES6(id)){return true}switch(id.length){case 2:return id==="if"||id==="in"||id==="do";case 3:return id==="var"||id==="for"||id==="new"||id==="try";case 4:return id==="this"||id==="else"||id==="case"||id==="void"||id==="with"||id==="enum";case 5:return id==="while"||id==="break"||id==="catch"||id==="throw"||id==="const"||id==="yield"||id==="class"||id==="super";case 6:return id==="return"||id==="typeof"||id==="delete"||id==="switch"||id==="export"||id==="import";case 7:return id==="default"||id==="finally"||id==="extends";case 8:return id==="function"||id==="continue"||id==="debugger";case 10:return id==="instanceof";default:return false}}function isReservedWordES5(id,strict){return id==="null"||id==="true"||id==="false"||isKeywordES5(id,strict)}function isReservedWordES6(id,strict){return id==="null"||id==="true"||id==="false"||isKeywordES6(id,strict)}function isRestrictedWord(id){return id==="eval"||id==="arguments"}function isIdentifierNameES5(id){var i,iz,ch;if(id.length===0){return false}ch=id.charCodeAt(0);if(!code.isIdentifierStartES5(ch)){return false}for(i=1,iz=id.length;i=iz){return false}lowCh=id.charCodeAt(i);if(!(56320<=lowCh&&lowCh<=57343)){return false}ch=decodeUtf16(ch,lowCh)}if(!check(ch)){return false}check=code.isIdentifierPartES6}return true}function isIdentifierES5(id,strict){return isIdentifierNameES5(id)&&!isReservedWordES5(id,strict)}function isIdentifierES6(id,strict){return isIdentifierNameES6(id)&&!isReservedWordES6(id,strict)}module.exports={isKeywordES5:isKeywordES5,isKeywordES6:isKeywordES6,isReservedWordES5:isReservedWordES5,isReservedWordES6:isReservedWordES6,isRestrictedWord:isRestrictedWord,isIdentifierNameES5:isIdentifierNameES5,isIdentifierNameES6:isIdentifierNameES6,isIdentifierES5:isIdentifierES5,isIdentifierES6:isIdentifierES6}})()},{"./code":9}],11:[function(require,module,exports){"use strict";(function(){"use strict";exports.ast=require("./ast");exports.code=require("./code");exports.keyword=require("./keyword")})()},{"./ast":8,"./code":9,"./keyword":10}],12:[function(require,module,exports){module.exports={builtin:{Array:false,ArrayBuffer:false,Boolean:false,constructor:false,DataView:false,Date:false,decodeURI:false,decodeURIComponent:false,encodeURI:false,encodeURIComponent:false,Error:false,escape:false,eval:false,EvalError:false,Float32Array:false,Float64Array:false,Function:false,hasOwnProperty:false,Infinity:false,Int16Array:false,Int32Array:false,Int8Array:false,isFinite:false,isNaN:false,isPrototypeOf:false,JSON:false,Map:false,Math:false,NaN:false,Number:false,Object:false,parseFloat:false,parseInt:false,Promise:false,propertyIsEnumerable:false,Proxy:false,RangeError:false,ReferenceError:false,Reflect:false,RegExp:false,Set:false,String:false,Symbol:false,SyntaxError:false,System:false,toLocaleString:false,toString:false,TypeError:false,Uint16Array:false,Uint32Array:false,Uint8Array:false,Uint8ClampedArray:false,undefined:false,unescape:false,URIError:false,valueOf:false,WeakMap:false,WeakSet:false},es5:{Array:false,Boolean:false,constructor:false,Date:false,decodeURI:false,decodeURIComponent:false,encodeURI:false,encodeURIComponent:false,Error:false,escape:false,eval:false,EvalError:false,Function:false,hasOwnProperty:false,Infinity:false,isFinite:false,isNaN:false,isPrototypeOf:false,JSON:false,Math:false,NaN:false,Number:false,Object:false,parseFloat:false,parseInt:false,propertyIsEnumerable:false,RangeError:false,ReferenceError:false,RegExp:false,String:false,SyntaxError:false,toLocaleString:false,toString:false,TypeError:false,undefined:false,unescape:false,URIError:false,valueOf:false},es6:{Array:false,ArrayBuffer:false,Boolean:false,constructor:false,DataView:false,Date:false,decodeURI:false,decodeURIComponent:false,encodeURI:false,encodeURIComponent:false,Error:false,escape:false,eval:false,EvalError:false,Float32Array:false,Float64Array:false,Function:false,hasOwnProperty:false,Infinity:false,Int16Array:false,Int32Array:false,Int8Array:false,isFinite:false,isNaN:false,isPrototypeOf:false,JSON:false,Map:false,Math:false,NaN:false,Number:false,Object:false,parseFloat:false,parseInt:false,Promise:false,propertyIsEnumerable:false,Proxy:false,RangeError:false,ReferenceError:false,Reflect:false,RegExp:false,Set:false,String:false,Symbol:false,SyntaxError:false,System:false,toLocaleString:false,toString:false,TypeError:false,Uint16Array:false,Uint32Array:false,Uint8Array:false,Uint8ClampedArray:false,undefined:false,unescape:false,URIError:false,valueOf:false,WeakMap:false,WeakSet:false},browser:{addEventListener:false,alert:false,AnalyserNode:false,Animation:false,AnimationEffectReadOnly:false,AnimationEffectTiming:false,AnimationEffectTimingReadOnly:false,AnimationEvent:false,AnimationPlaybackEvent:false,AnimationTimeline:false,applicationCache:false,ApplicationCache:false,ApplicationCacheErrorEvent:false,atob:false,Attr:false,Audio:false,AudioBuffer:false,AudioBufferSourceNode:false,AudioContext:false,AudioDestinationNode:false,AudioListener:false,AudioNode:false,AudioParam:false,AudioProcessingEvent:false,AutocompleteErrorEvent:false,BarProp:false,BatteryManager:false,BeforeUnloadEvent:false,BiquadFilterNode:false,Blob:false,blur:false,btoa:false,Cache:false,caches:false,CacheStorage:false,cancelAnimationFrame:false,cancelIdleCallback:false,CanvasGradient:false,CanvasPattern:false,CanvasRenderingContext2D:false,CDATASection:false,ChannelMergerNode:false,ChannelSplitterNode:false,CharacterData:false,clearInterval:false,clearTimeout:false,clientInformation:false,ClientRect:false,ClientRectList:false,ClipboardEvent:false,close:false,closed:false,CloseEvent:false,Comment:false,CompositionEvent:false,confirm:false,console:false,ConvolverNode:false,createImageBitmap:false,Credential:false,CredentialsContainer:false,crypto:false,Crypto:false,CryptoKey:false,CSS:false,CSSAnimation:false,CSSFontFaceRule:false,CSSImportRule:false,CSSKeyframeRule:false,CSSKeyframesRule:false,CSSMediaRule:false,CSSPageRule:false,CSSRule:false,CSSRuleList:false,CSSStyleDeclaration:false,CSSStyleRule:false,CSSStyleSheet:false,CSSSupportsRule:false,CSSTransition:false,CSSUnknownRule:false,CSSViewportRule:false,customElements:false,CustomEvent:false,DataTransfer:false,DataTransferItem:false,DataTransferItemList:false,Debug:false,defaultStatus:false,defaultstatus:false,DelayNode:false,DeviceMotionEvent:false,DeviceOrientationEvent:false,devicePixelRatio:false,dispatchEvent:false,document:false,Document:false,DocumentFragment:false,DocumentTimeline:false,DocumentType:false,DOMError:false,DOMException:false,DOMImplementation:false,DOMParser:false,DOMSettableTokenList:false,DOMStringList:false,DOMStringMap:false,DOMTokenList:false,DragEvent:false,DynamicsCompressorNode:false,Element:false,ElementTimeControl:false,ErrorEvent:false,event:false,Event:false,EventSource:false,EventTarget:false,external:false,FederatedCredential:false,fetch:false,File:false,FileError:false,FileList:false,FileReader:false,find:false,focus:false,FocusEvent:false,FontFace:false,FormData:false,frameElement:false,frames:false,GainNode:false,Gamepad:false,GamepadButton:false,GamepadEvent:false,getComputedStyle:false,getSelection:false,HashChangeEvent:false,Headers:false,history:false,History:false,HTMLAllCollection:false,HTMLAnchorElement:false,HTMLAppletElement:false,HTMLAreaElement:false,HTMLAudioElement:false,HTMLBaseElement:false,HTMLBlockquoteElement:false,HTMLBodyElement:false,HTMLBRElement:false,HTMLButtonElement:false,HTMLCanvasElement:false,HTMLCollection:false,HTMLContentElement:false,HTMLDataListElement:false,HTMLDetailsElement:false,HTMLDialogElement:false,HTMLDirectoryElement:false,HTMLDivElement:false,HTMLDListElement:false,HTMLDocument:false,HTMLElement:false,HTMLEmbedElement:false,HTMLFieldSetElement:false,HTMLFontElement:false,HTMLFormControlsCollection:false,HTMLFormElement:false,HTMLFrameElement:false,HTMLFrameSetElement:false,HTMLHeadElement:false,HTMLHeadingElement:false,HTMLHRElement:false,HTMLHtmlElement:false,HTMLIFrameElement:false,HTMLImageElement:false,HTMLInputElement:false,HTMLIsIndexElement:false,HTMLKeygenElement:false,HTMLLabelElement:false,HTMLLayerElement:false,HTMLLegendElement:false,HTMLLIElement:false,HTMLLinkElement:false,HTMLMapElement:false,HTMLMarqueeElement:false,HTMLMediaElement:false,HTMLMenuElement:false,HTMLMetaElement:false,HTMLMeterElement:false,HTMLModElement:false,HTMLObjectElement:false,HTMLOListElement:false,HTMLOptGroupElement:false,HTMLOptionElement:false,HTMLOptionsCollection:false,HTMLOutputElement:false,HTMLParagraphElement:false,HTMLParamElement:false,HTMLPictureElement:false,HTMLPreElement:false,HTMLProgressElement:false,HTMLQuoteElement:false,HTMLScriptElement:false,HTMLSelectElement:false,HTMLShadowElement:false,HTMLSourceElement:false,HTMLSpanElement:false,HTMLStyleElement:false,HTMLTableCaptionElement:false,HTMLTableCellElement:false,HTMLTableColElement:false,HTMLTableElement:false,HTMLTableRowElement:false,HTMLTableSectionElement:false,HTMLTemplateElement:false,HTMLTextAreaElement:false,HTMLTitleElement:false,HTMLTrackElement:false,HTMLUListElement:false,HTMLUnknownElement:false,HTMLVideoElement:false,IDBCursor:false,IDBCursorWithValue:false,IDBDatabase:false,IDBEnvironment:false,IDBFactory:false,IDBIndex:false,IDBKeyRange:false,IDBObjectStore:false,IDBOpenDBRequest:false,IDBRequest:false,IDBTransaction:false,IDBVersionChangeEvent:false,Image:false,ImageBitmap:false,ImageData:false,indexedDB:false,innerHeight:false,innerWidth:false,InputEvent:false,InputMethodContext:false,IntersectionObserver:false,IntersectionObserverEntry:false,Intl:false,KeyboardEvent:false,KeyframeEffect:false,KeyframeEffectReadOnly:false,length:false,localStorage:false,location:false,Location:false,locationbar:false,matchMedia:false,MediaElementAudioSourceNode:false,MediaEncryptedEvent:false,MediaError:false,MediaKeyError:false,MediaKeyEvent:false,MediaKeyMessageEvent:false,MediaKeys:false,MediaKeySession:false,MediaKeyStatusMap:false,MediaKeySystemAccess:false,MediaList:false,MediaQueryList:false,MediaQueryListEvent:false,MediaSource:false,MediaRecorder:false,MediaStream:false,MediaStreamAudioDestinationNode:false,MediaStreamAudioSourceNode:false,MediaStreamEvent:false,MediaStreamTrack:false,menubar:false,MessageChannel:false,MessageEvent:false,MessagePort:false,MIDIAccess:false,MIDIConnectionEvent:false,MIDIInput:false,MIDIInputMap:false,MIDIMessageEvent:false,MIDIOutput:false,MIDIOutputMap:false,MIDIPort:false,MimeType:false,MimeTypeArray:false,MouseEvent:false,moveBy:false,moveTo:false,MutationEvent:false,MutationObserver:false,MutationRecord:false,name:false,NamedNodeMap:false,navigator:false,Navigator:false,Node:false,NodeFilter:false,NodeIterator:false,NodeList:false,Notification:false,OfflineAudioCompletionEvent:false,OfflineAudioContext:false,offscreenBuffering:false,onbeforeunload:true,onblur:true,onerror:true,onfocus:true,onload:true,onresize:true,onunload:true,open:false,openDatabase:false,opener:false,opera:false,Option:false,OscillatorNode:false,outerHeight:false,outerWidth:false,PageTransitionEvent:false,pageXOffset:false,pageYOffset:false,parent:false,PasswordCredential:false,Path2D:false,performance:false,Performance:false,PerformanceEntry:false,PerformanceMark:false,PerformanceMeasure:false,PerformanceNavigation:false,PerformanceResourceTiming:false,PerformanceTiming:false,PeriodicWave:false,Permissions:false,PermissionStatus:false,personalbar:false,Plugin:false,PluginArray:false,PopStateEvent:false,postMessage:false,print:false,ProcessingInstruction:false,ProgressEvent:false,PromiseRejectionEvent:false,prompt:false,PushManager:false,PushSubscription:false,RadioNodeList:false,Range:false,ReadableByteStream:false,ReadableStream:false,removeEventListener:false,Request:false,requestAnimationFrame:false,requestIdleCallback:false,resizeBy:false,resizeTo:false,Response:false,RTCIceCandidate:false,RTCSessionDescription:false,RTCPeerConnection:false,screen:false,Screen:false,screenLeft:false,ScreenOrientation:false,screenTop:false,screenX:false,screenY:false,ScriptProcessorNode:false,scroll:false,scrollbars:false,scrollBy:false,scrollTo:false,scrollX:false,scrollY:false,SecurityPolicyViolationEvent:false,Selection:false,self:false,ServiceWorker:false,ServiceWorkerContainer:false,ServiceWorkerRegistration:false,sessionStorage:false,setInterval:false,setTimeout:false,ShadowRoot:false,SharedKeyframeList:false,SharedWorker:false,showModalDialog:false,SiteBoundCredential:false,speechSynthesis:false,SpeechSynthesisEvent:false,SpeechSynthesisUtterance:false,status:false,statusbar:false,stop:false,Storage:false,StorageEvent:false,styleMedia:false,StyleSheet:false,StyleSheetList:false,SubtleCrypto:false,SVGAElement:false,SVGAltGlyphDefElement:false,SVGAltGlyphElement:false,SVGAltGlyphItemElement:false,SVGAngle:false,SVGAnimateColorElement:false,SVGAnimatedAngle:false,SVGAnimatedBoolean:false,SVGAnimatedEnumeration:false,SVGAnimatedInteger:false,SVGAnimatedLength:false,SVGAnimatedLengthList:false,SVGAnimatedNumber:false,SVGAnimatedNumberList:false,SVGAnimatedPathData:false,SVGAnimatedPoints:false,SVGAnimatedPreserveAspectRatio:false,SVGAnimatedRect:false,SVGAnimatedString:false,SVGAnimatedTransformList:false,SVGAnimateElement:false,SVGAnimateMotionElement:false,SVGAnimateTransformElement:false,SVGAnimationElement:false,SVGCircleElement:false,SVGClipPathElement:false,SVGColor:false,SVGColorProfileElement:false,SVGColorProfileRule:false,SVGComponentTransferFunctionElement:false,SVGCSSRule:false,SVGCursorElement:false,SVGDefsElement:false,SVGDescElement:false,SVGDiscardElement:false,SVGDocument:false,SVGElement:false,SVGElementInstance:false,SVGElementInstanceList:false,SVGEllipseElement:false,SVGEvent:false,SVGExternalResourcesRequired:false,SVGFEBlendElement:false,SVGFEColorMatrixElement:false,SVGFEComponentTransferElement:false,SVGFECompositeElement:false,SVGFEConvolveMatrixElement:false,SVGFEDiffuseLightingElement:false,SVGFEDisplacementMapElement:false,SVGFEDistantLightElement:false,SVGFEDropShadowElement:false,SVGFEFloodElement:false,SVGFEFuncAElement:false,SVGFEFuncBElement:false,SVGFEFuncGElement:false,SVGFEFuncRElement:false,SVGFEGaussianBlurElement:false,SVGFEImageElement:false,SVGFEMergeElement:false,SVGFEMergeNodeElement:false,SVGFEMorphologyElement:false,SVGFEOffsetElement:false,SVGFEPointLightElement:false,SVGFESpecularLightingElement:false,SVGFESpotLightElement:false,SVGFETileElement:false,SVGFETurbulenceElement:false,SVGFilterElement:false,SVGFilterPrimitiveStandardAttributes:false,SVGFitToViewBox:false,SVGFontElement:false,SVGFontFaceElement:false,SVGFontFaceFormatElement:false,SVGFontFaceNameElement:false,SVGFontFaceSrcElement:false,SVGFontFaceUriElement:false,SVGForeignObjectElement:false,SVGGElement:false,SVGGeometryElement:false,SVGGlyphElement:false,SVGGlyphRefElement:false,SVGGradientElement:false,SVGGraphicsElement:false,SVGHKernElement:false,SVGICCColor:false,SVGImageElement:false,SVGLangSpace:false,SVGLength:false,SVGLengthList:false,SVGLinearGradientElement:false,SVGLineElement:false,SVGLocatable:false,SVGMarkerElement:false,SVGMaskElement:false,SVGMatrix:false,SVGMetadataElement:false,SVGMissingGlyphElement:false,SVGMPathElement:false,SVGNumber:false,SVGNumberList:false,SVGPaint:false,SVGPathElement:false,SVGPathSeg:false,SVGPathSegArcAbs:false,SVGPathSegArcRel:false,SVGPathSegClosePath:false,SVGPathSegCurvetoCubicAbs:false,SVGPathSegCurvetoCubicRel:false,SVGPathSegCurvetoCubicSmoothAbs:false,SVGPathSegCurvetoCubicSmoothRel:false,SVGPathSegCurvetoQuadraticAbs:false,SVGPathSegCurvetoQuadraticRel:false,SVGPathSegCurvetoQuadraticSmoothAbs:false,SVGPathSegCurvetoQuadraticSmoothRel:false,SVGPathSegLinetoAbs:false,SVGPathSegLinetoHorizontalAbs:false,SVGPathSegLinetoHorizontalRel:false,SVGPathSegLinetoRel:false,SVGPathSegLinetoVerticalAbs:false,SVGPathSegLinetoVerticalRel:false,SVGPathSegList:false,SVGPathSegMovetoAbs:false,SVGPathSegMovetoRel:false,SVGPatternElement:false,SVGPoint:false,SVGPointList:false,SVGPolygonElement:false,SVGPolylineElement:false,SVGPreserveAspectRatio:false,SVGRadialGradientElement:false,SVGRect:false,SVGRectElement:false,SVGRenderingIntent:false,SVGScriptElement:false,SVGSetElement:false,SVGStopElement:false,SVGStringList:false,SVGStylable:false,SVGStyleElement:false,SVGSVGElement:false,SVGSwitchElement:false,SVGSymbolElement:false,SVGTests:false,SVGTextContentElement:false,SVGTextElement:false,SVGTextPathElement:false,SVGTextPositioningElement:false,SVGTitleElement:false,SVGTransform:false,SVGTransformable:false,SVGTransformList:false,SVGTRefElement:false,SVGTSpanElement:false,SVGUnitTypes:false,SVGURIReference:false,SVGUseElement:false,SVGViewElement:false,SVGViewSpec:false,SVGVKernElement:false,SVGZoomAndPan:false,SVGZoomEvent:false,Text:false,TextDecoder:false,TextEncoder:false,TextEvent:false,TextMetrics:false,TextTrack:false,TextTrackCue:false,TextTrackCueList:false,TextTrackList:false,TimeEvent:false,TimeRanges:false,toolbar:false,top:false,Touch:false,TouchEvent:false,TouchList:false,TrackEvent:false,TransitionEvent:false,TreeWalker:false,UIEvent:false,URL:false,URLSearchParams:false,ValidityState:false,VTTCue:false,WaveShaperNode:false,WebGLActiveInfo:false,WebGLBuffer:false,WebGLContextEvent:false,WebGLFramebuffer:false,WebGLProgram:false,WebGLRenderbuffer:false,WebGLRenderingContext:false,WebGLShader:false,WebGLShaderPrecisionFormat:false,WebGLTexture:false,WebGLUniformLocation:false,WebSocket:false,WheelEvent:false,window:false,Window:false,Worker:false,XDomainRequest:false,XMLDocument:false,XMLHttpRequest:false,XMLHttpRequestEventTarget:false,XMLHttpRequestProgressEvent:false,XMLHttpRequestUpload:false,XMLSerializer:false,XPathEvaluator:false,XPathException:false,XPathExpression:false,XPathNamespace:false,XPathNSResolver:false,XPathResult:false,XSLTProcessor:false},worker:{applicationCache:false,atob:false,Blob:false,BroadcastChannel:false,btoa:false,Cache:false,caches:false,clearInterval:false,clearTimeout:false,close:true,console:false,fetch:false,FileReaderSync:false,FormData:false,Headers:false,IDBCursor:false,IDBCursorWithValue:false,IDBDatabase:false,IDBFactory:false,IDBIndex:false,IDBKeyRange:false,IDBObjectStore:false,IDBOpenDBRequest:false,IDBRequest:false,IDBTransaction:false,IDBVersionChangeEvent:false,ImageData:false,importScripts:true,indexedDB:false,location:false,MessageChannel:false,MessagePort:false,name:false,navigator:false,Notification:false,onclose:true,onconnect:true,onerror:true,onlanguagechange:true,onmessage:true,onoffline:true,ononline:true,onrejectionhandled:true,onunhandledrejection:true,performance:false,Performance:false,PerformanceEntry:false,PerformanceMark:false,PerformanceMeasure:false,PerformanceNavigation:false,PerformanceResourceTiming:false,PerformanceTiming:false,postMessage:true,Promise:false,Request:false,Response:false,self:true,ServiceWorkerRegistration:false,setInterval:false,setTimeout:false,TextDecoder:false,TextEncoder:false,URL:false,URLSearchParams:false,WebSocket:false,Worker:false,XMLHttpRequest:false},node:{__dirname:false,__filename:false,arguments:false,Buffer:false,clearImmediate:false,clearInterval:false,clearTimeout:false,console:false,exports:true,GLOBAL:false,global:false,Intl:false,module:false,process:false,require:false,root:false,setImmediate:false,setInterval:false,setTimeout:false},commonjs:{exports:true,module:false,require:false,global:false},amd:{define:false,require:false},mocha:{after:false,afterEach:false,before:false,beforeEach:false,context:false,describe:false,it:false,mocha:false,run:false,setup:false,specify:false,suite:false,suiteSetup:false,suiteTeardown:false,teardown:false,test:false,xcontext:false,xdescribe:false,xit:false,xspecify:false},jasmine:{afterAll:false,afterEach:false,beforeAll:false,beforeEach:false,describe:false,expect:false,fail:false,fdescribe:false,fit:false,it:false,jasmine:false,pending:false,runs:false,spyOn:false,spyOnProperty:false,waits:false,waitsFor:false,xdescribe:false,xit:false},jest:{afterAll:false,afterEach:false,beforeAll:false,beforeEach:false,check:false,describe:false,expect:false,gen:false,it:false,fdescribe:false,fit:false,jest:false,pit:false,require:false,test:false,xdescribe:false,xit:false,xtest:false},qunit:{asyncTest:false,deepEqual:false,equal:false,expect:false,module:false,notDeepEqual:false,notEqual:false,notOk:false,notPropEqual:false,notStrictEqual:false,ok:false,propEqual:false,QUnit:false,raises:false,start:false,stop:false,strictEqual:false,test:false,throws:false},phantomjs:{console:true,exports:true,phantom:true,require:true,WebPage:true},couch:{emit:false,exports:false,getRow:false,log:false,module:false,provides:false,require:false,respond:false,send:false,start:false,sum:false},rhino:{defineClass:false,deserialize:false,gc:false,help:false,importClass:false,importPackage:false,java:false,load:false,loadClass:false,Packages:false,print:false,quit:false,readFile:false,readUrl:false,runCommand:false,seal:false,serialize:false,spawn:false,sync:false,toint32:false,version:false},nashorn:{__DIR__:false,__FILE__:false,__LINE__:false,com:false,edu:false,exit:false,Java:false,java:false,javafx:false,JavaImporter:false,javax:false,JSAdapter:false,load:false,loadWithNewGlobal:false,org:false,Packages:false,print:false,quit:false},wsh:{ActiveXObject:true,Enumerator:true,GetObject:true,ScriptEngine:true,ScriptEngineBuildVersion:true,ScriptEngineMajorVersion:true,ScriptEngineMinorVersion:true,VBArray:true,WScript:true,WSH:true,XDomainRequest:true},jquery:{$:false,jQuery:false},yui:{Y:false,YUI:false,YUI_config:false},shelljs:{cat:false,cd:false,chmod:false,config:false,cp:false,dirs:false,echo:false,env:false,error:false,exec:false,exit:false,find:false,grep:false,ls:false,ln:false,mkdir:false,mv:false,popd:false,pushd:false,pwd:false,rm:false,sed:false,set:false,target:false,tempdir:false,test:false,touch:false,which:false},prototypejs:{$:false,$$:false,$A:false,$break:false,$continue:false,$F:false,$H:false,$R:false,$w:false,Abstract:false,Ajax:false,Autocompleter:false,Builder:false,Class:false,Control:false,Draggable:false,Draggables:false,Droppables:false,Effect:false,Element:false,Enumerable:false,Event:false,Field:false,Form:false,Hash:false,Insertion:false,ObjectRange:false,PeriodicalExecuter:false,Position:false,Prototype:false,Scriptaculous:false,Selector:false,Sortable:false,SortableObserver:false,Sound:false,Template:false,Toggle:false,Try:false},meteor:{$:false,_:false,Accounts:false,AccountsClient:false,AccountsServer:false,AccountsCommon:false,App:false,Assets:false,Blaze:false,check:false,Cordova:false,DDP:false,DDPServer:false,DDPRateLimiter:false,Deps:false,EJSON:false,Email:false,HTTP:false,Log:false,Match:false,Meteor:false,Mongo:false,MongoInternals:false,Npm:false,Package:false,Plugin:false,process:false,Random:false,ReactiveDict:false,ReactiveVar:false,Router:false,ServiceConfiguration:false,Session:false,share:false,Spacebars:false,Template:false,Tinytest:false,Tracker:false,UI:false,Utils:false,WebApp:false,WebAppInternals:false},mongo:{_isWindows:false,_rand:false,BulkWriteResult:false,cat:false,cd:false,connect:false,db:false,getHostName:false,getMemInfo:false,hostname:false,ISODate:false,listFiles:false,load:false,ls:false,md5sumFile:false,mkdir:false,Mongo:false,NumberInt:false,NumberLong:false,ObjectId:false,PlanCache:false,print:false,printjson:false,pwd:false,quit:false,removeFile:false,rs:false,sh:false,UUID:false,version:false,WriteResult:false},applescript:{$:false,Application:false,Automation:false,console:false,delay:false,Library:false,ObjC:false,ObjectSpecifier:false,Path:false,Progress:false,Ref:false},serviceworker:{caches:false,Cache:false,CacheStorage:false,Client:false,clients:false,Clients:false,ExtendableEvent:false,ExtendableMessageEvent:false,FetchEvent:false,importScripts:false,registration:false,self:false,ServiceWorker:false,ServiceWorkerContainer:false,ServiceWorkerGlobalScope:false,ServiceWorkerMessageEvent:false,ServiceWorkerRegistration:false,skipWaiting:false,WindowClient:false},atomtest:{advanceClock:false,fakeClearInterval:false,fakeClearTimeout:false,fakeSetInterval:false,fakeSetTimeout:false,resetTimeouts:false,waitsForPromise:false},embertest:{andThen:false,click:false,currentPath:false,currentRouteName:false,currentURL:false,fillIn:false,find:false,findWithAssert:false,keyEvent:false,pauseTest:false,resumeTest:false,triggerEvent:false,visit:false},protractor:{$:false,$$:false,browser:false,By:false,by:false,DartObject:false,element:false,protractor:false},"shared-node-browser":{clearInterval:false,clearTimeout:false,console:false,setInterval:false,setTimeout:false},webextensions:{browser:false,chrome:false,opr:false},greasemonkey:{GM_addStyle:false,GM_deleteValue:false,GM_getResourceText:false,GM_getResourceURL:false,GM_getValue:false,GM_info:false,GM_listValues:false,GM_log:false,GM_openInTab:false,GM_registerMenuCommand:false,GM_setClipboard:false,GM_setValue:false,GM_xmlhttpRequest:false,unsafeWindow:false}}},{}],13:[function(require,module,exports){"use strict";module.exports=require("./globals.json")},{"./globals.json":12}],14:[function(require,module,exports){(function(process){"use strict";var _createClass=function(){function defineProperties(target,props){for(var i=0;i>>1;var wrapFlags=[["ary",WRAP_ARY_FLAG],["bind",WRAP_BIND_FLAG],["bindKey",WRAP_BIND_KEY_FLAG],["curry",WRAP_CURRY_FLAG],["curryRight",WRAP_CURRY_RIGHT_FLAG],["flip",WRAP_FLIP_FLAG],["partial",WRAP_PARTIAL_FLAG],["partialRight",WRAP_PARTIAL_RIGHT_FLAG],["rearg",WRAP_REARG_FLAG]];var argsTag="[object Arguments]",arrayTag="[object Array]",asyncTag="[object AsyncFunction]",boolTag="[object Boolean]",dateTag="[object Date]",domExcTag="[object DOMException]",errorTag="[object Error]",funcTag="[object Function]",genTag="[object GeneratorFunction]",mapTag="[object Map]",numberTag="[object Number]",nullTag="[object Null]",objectTag="[object Object]",promiseTag="[object Promise]",proxyTag="[object Proxy]",regexpTag="[object RegExp]",setTag="[object Set]",stringTag="[object String]",symbolTag="[object Symbol]",undefinedTag="[object Undefined]",weakMapTag="[object WeakMap]",weakSetTag="[object WeakSet]";var arrayBufferTag="[object ArrayBuffer]",dataViewTag="[object DataView]",float32Tag="[object Float32Array]",float64Tag="[object Float64Array]",int8Tag="[object Int8Array]",int16Tag="[object Int16Array]",int32Tag="[object Int32Array]",uint8Tag="[object Uint8Array]",uint8ClampedTag="[object Uint8ClampedArray]",uint16Tag="[object Uint16Array]",uint32Tag="[object Uint32Array]";var reEmptyStringLeading=/\b__p \+= '';/g,reEmptyStringMiddle=/\b(__p \+=) '' \+/g,reEmptyStringTrailing=/(__e\(.*?\)|\b__t\)) \+\n'';/g;var reEscapedHtml=/&(?:amp|lt|gt|quot|#39);/g,reUnescapedHtml=/[&<>"']/g,reHasEscapedHtml=RegExp(reEscapedHtml.source),reHasUnescapedHtml=RegExp(reUnescapedHtml.source);var reEscape=/<%-([\s\S]+?)%>/g,reEvaluate=/<%([\s\S]+?)%>/g,reInterpolate=/<%=([\s\S]+?)%>/g;var reIsDeepProp=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,reIsPlainProp=/^\w*$/,reLeadingDot=/^\./,rePropName=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;var reRegExpChar=/[\\^$.*+?()[\]{}|]/g,reHasRegExpChar=RegExp(reRegExpChar.source);var reTrim=/^\s+|\s+$/g,reTrimStart=/^\s+/,reTrimEnd=/\s+$/;var reWrapComment=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,reWrapDetails=/\{\n\/\* \[wrapped with (.+)\] \*/,reSplitDetails=/,? & /;var reAsciiWord=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;var reEscapeChar=/\\(\\)?/g;var reEsTemplate=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g;var reFlags=/\w*$/;var reIsBadHex=/^[-+]0x[0-9a-f]+$/i;var reIsBinary=/^0b[01]+$/i;var reIsHostCtor=/^\[object .+?Constructor\]$/;var reIsOctal=/^0o[0-7]+$/i;var reIsUint=/^(?:0|[1-9]\d*)$/;var reLatin=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g;var reNoMatch=/($^)/;var reUnescapedString=/['\n\r\u2028\u2029\\]/g;var rsAstralRange="\\ud800-\\udfff",rsComboMarksRange="\\u0300-\\u036f",reComboHalfMarksRange="\\ufe20-\\ufe2f",rsComboSymbolsRange="\\u20d0-\\u20ff",rsComboRange=rsComboMarksRange+reComboHalfMarksRange+rsComboSymbolsRange,rsDingbatRange="\\u2700-\\u27bf",rsLowerRange="a-z\\xdf-\\xf6\\xf8-\\xff",rsMathOpRange="\\xac\\xb1\\xd7\\xf7",rsNonCharRange="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",rsPunctuationRange="\\u2000-\\u206f",rsSpaceRange=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",rsUpperRange="A-Z\\xc0-\\xd6\\xd8-\\xde",rsVarRange="\\ufe0e\\ufe0f",rsBreakRange=rsMathOpRange+rsNonCharRange+rsPunctuationRange+rsSpaceRange;var rsApos="['’]",rsAstral="["+rsAstralRange+"]",rsBreak="["+rsBreakRange+"]",rsCombo="["+rsComboRange+"]",rsDigits="\\d+",rsDingbat="["+rsDingbatRange+"]",rsLower="["+rsLowerRange+"]",rsMisc="[^"+rsAstralRange+rsBreakRange+rsDigits+rsDingbatRange+rsLowerRange+rsUpperRange+"]",rsFitz="\\ud83c[\\udffb-\\udfff]",rsModifier="(?:"+rsCombo+"|"+rsFitz+")",rsNonAstral="[^"+rsAstralRange+"]",rsRegional="(?:\\ud83c[\\udde6-\\uddff]){2}",rsSurrPair="[\\ud800-\\udbff][\\udc00-\\udfff]",rsUpper="["+rsUpperRange+"]",rsZWJ="\\u200d";var rsMiscLower="(?:"+rsLower+"|"+rsMisc+")",rsMiscUpper="(?:"+rsUpper+"|"+rsMisc+")",rsOptContrLower="(?:"+rsApos+"(?:d|ll|m|re|s|t|ve))?",rsOptContrUpper="(?:"+rsApos+"(?:D|LL|M|RE|S|T|VE))?",reOptMod=rsModifier+"?",rsOptVar="["+rsVarRange+"]?",rsOptJoin="(?:"+rsZWJ+"(?:"+[rsNonAstral,rsRegional,rsSurrPair].join("|")+")"+rsOptVar+reOptMod+")*",rsOrdLower="\\d*(?:(?:1st|2nd|3rd|(?![123])\\dth)\\b)",rsOrdUpper="\\d*(?:(?:1ST|2ND|3RD|(?![123])\\dTH)\\b)",rsSeq=rsOptVar+reOptMod+rsOptJoin,rsEmoji="(?:"+[rsDingbat,rsRegional,rsSurrPair].join("|")+")"+rsSeq,rsSymbol="(?:"+[rsNonAstral+rsCombo+"?",rsCombo,rsRegional,rsSurrPair,rsAstral].join("|")+")";var reApos=RegExp(rsApos,"g");var reComboMark=RegExp(rsCombo,"g");var reUnicode=RegExp(rsFitz+"(?="+rsFitz+")|"+rsSymbol+rsSeq,"g");var reUnicodeWord=RegExp([rsUpper+"?"+rsLower+"+"+rsOptContrLower+"(?="+[rsBreak,rsUpper,"$"].join("|")+")",rsMiscUpper+"+"+rsOptContrUpper+"(?="+[rsBreak,rsUpper+rsMiscLower,"$"].join("|")+")",rsUpper+"?"+rsMiscLower+"+"+rsOptContrLower,rsUpper+"+"+rsOptContrUpper,rsOrdUpper,rsOrdLower,rsDigits,rsEmoji].join("|"),"g");var reHasUnicode=RegExp("["+rsZWJ+rsAstralRange+rsComboRange+rsVarRange+"]");var reHasUnicodeWord=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;var contextProps=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"];var templateCounter=-1;var typedArrayTags={};typedArrayTags[float32Tag]=typedArrayTags[float64Tag]=typedArrayTags[int8Tag]=typedArrayTags[int16Tag]=typedArrayTags[int32Tag]=typedArrayTags[uint8Tag]=typedArrayTags[uint8ClampedTag]=typedArrayTags[uint16Tag]=typedArrayTags[uint32Tag]=true;typedArrayTags[argsTag]=typedArrayTags[arrayTag]=typedArrayTags[arrayBufferTag]=typedArrayTags[boolTag]=typedArrayTags[dataViewTag]=typedArrayTags[dateTag]=typedArrayTags[errorTag]=typedArrayTags[funcTag]=typedArrayTags[mapTag]=typedArrayTags[numberTag]=typedArrayTags[objectTag]=typedArrayTags[regexpTag]=typedArrayTags[setTag]=typedArrayTags[stringTag]=typedArrayTags[weakMapTag]=false;var cloneableTags={};cloneableTags[argsTag]=cloneableTags[arrayTag]=cloneableTags[arrayBufferTag]=cloneableTags[dataViewTag]=cloneableTags[boolTag]=cloneableTags[dateTag]=cloneableTags[float32Tag]=cloneableTags[float64Tag]=cloneableTags[int8Tag]=cloneableTags[int16Tag]=cloneableTags[int32Tag]=cloneableTags[mapTag]=cloneableTags[numberTag]=cloneableTags[objectTag]=cloneableTags[regexpTag]=cloneableTags[setTag]=cloneableTags[stringTag]=cloneableTags[symbolTag]=cloneableTags[uint8Tag]=cloneableTags[uint8ClampedTag]=cloneableTags[uint16Tag]=cloneableTags[uint32Tag]=true;cloneableTags[errorTag]=cloneableTags[funcTag]=cloneableTags[weakMapTag]=false;var deburredLetters={"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","IJ":"IJ","ij":"ij","Œ":"Oe","œ":"oe","ʼn":"'n","ſ":"s"};var htmlEscapes={"&":"&","<":"<",">":">",'"':""","'":"'"};var htmlUnescapes={"&":"&","<":"<",">":">",""":'"',"'":"'"};var stringEscapes={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"};var freeParseFloat=parseFloat,freeParseInt=parseInt;var freeGlobal=(typeof global==="undefined"?"undefined":_typeof(global))=="object"&&global&&global.Object===Object&&global;var freeSelf=(typeof self==="undefined"?"undefined":_typeof(self))=="object"&&self&&self.Object===Object&&self;var root=freeGlobal||freeSelf||Function("return this")();var freeExports=(typeof exports==="undefined"?"undefined":_typeof(exports))=="object"&&exports&&!exports.nodeType&&exports;var freeModule=freeExports&&(typeof module==="undefined"?"undefined":_typeof(module))=="object"&&module&&!module.nodeType&&module;var moduleExports=freeModule&&freeModule.exports===freeExports;var freeProcess=moduleExports&&freeGlobal.process;var nodeUtil=function(){try{return freeProcess&&freeProcess.binding&&freeProcess.binding("util")}catch(e){}}();var nodeIsArrayBuffer=nodeUtil&&nodeUtil.isArrayBuffer,nodeIsDate=nodeUtil&&nodeUtil.isDate,nodeIsMap=nodeUtil&&nodeUtil.isMap,nodeIsRegExp=nodeUtil&&nodeUtil.isRegExp,nodeIsSet=nodeUtil&&nodeUtil.isSet,nodeIsTypedArray=nodeUtil&&nodeUtil.isTypedArray;function addMapEntry(map,pair){map.set(pair[0],pair[1]);return map}function addSetEntry(set,value){set.add(value);return set}function apply(func,thisArg,args){switch(args.length){case 0:return func.call(thisArg);case 1:return func.call(thisArg,args[0]);case 2:return func.call(thisArg,args[0],args[1]);case 3:return func.call(thisArg,args[0],args[1],args[2])}return func.apply(thisArg,args)}function arrayAggregator(array,setter,iteratee,accumulator){var index=-1,length=array==null?0:array.length;while(++index-1}function arrayIncludesWith(array,value,comparator){var index=-1,length=array==null?0:array.length;while(++index-1){}return index}function charsEndIndex(strSymbols,chrSymbols){var index=strSymbols.length;while(index--&&baseIndexOf(chrSymbols,strSymbols[index],0)>-1){}return index}function countHolders(array,placeholder){var length=array.length,result=0;while(length--){if(array[length]===placeholder){++result}}return result}var deburrLetter=basePropertyOf(deburredLetters);var escapeHtmlChar=basePropertyOf(htmlEscapes);function escapeStringChar(chr){return"\\"+stringEscapes[chr]}function getValue(object,key){return object==null?undefined:object[key]}function hasUnicode(string){return reHasUnicode.test(string)}function hasUnicodeWord(string){return reHasUnicodeWord.test(string)}function iteratorToArray(iterator){var data,result=[];while(!(data=iterator.next()).done){result.push(data.value)}return result}function mapToArray(map){var index=-1,result=Array(map.size);map.forEach(function(value,key){result[++index]=[key,value]});return result}function overArg(func,transform){return function(arg){return func(transform(arg))}}function replaceHolders(array,placeholder){var index=-1,length=array.length,resIndex=0,result=[];while(++index-1}function listCacheSet(key,value){var data=this.__data__,index=assocIndexOf(data,key);if(index<0){++this.size;data.push([key,value])}else{data[index][1]=value}return this}ListCache.prototype.clear=listCacheClear;ListCache.prototype["delete"]=listCacheDelete;ListCache.prototype.get=listCacheGet;ListCache.prototype.has=listCacheHas;ListCache.prototype.set=listCacheSet;function MapCache(entries){var index=-1,length=entries==null?0:entries.length;this.clear();while(++index=lower?number:lower}}return number}function baseClone(value,bitmask,customizer,key,object,stack){var result,isDeep=bitmask&CLONE_DEEP_FLAG,isFlat=bitmask&CLONE_FLAT_FLAG,isFull=bitmask&CLONE_SYMBOLS_FLAG;if(customizer){result=object?customizer(value,key,object,stack):customizer(value)}if(result!==undefined){return result}if(!isObject(value)){return value}var isArr=isArray(value);if(isArr){result=initCloneArray(value);if(!isDeep){return copyArray(value,result)}}else{var tag=getTag(value),isFunc=tag==funcTag||tag==genTag;if(isBuffer(value)){return cloneBuffer(value,isDeep)}if(tag==objectTag||tag==argsTag||isFunc&&!object){result=isFlat||isFunc?{}:initCloneObject(value);if(!isDeep){return isFlat?copySymbolsIn(value,baseAssignIn(result,value)):copySymbols(value,baseAssign(result,value))}}else{if(!cloneableTags[tag]){return object?value:{}}result=initCloneByTag(value,tag,baseClone,isDeep)}}stack||(stack=new Stack);var stacked=stack.get(value);if(stacked){return stacked}stack.set(value,result);var keysFunc=isFull?isFlat?getAllKeysIn:getAllKeys:isFlat?keysIn:keys;var props=isArr?undefined:keysFunc(value);arrayEach(props||value,function(subValue,key){if(props){key=subValue;subValue=value[key]}assignValue(result,key,baseClone(subValue,bitmask,customizer,key,value,stack))});return result}function baseConforms(source){var props=keys(source);return function(object){return baseConformsTo(object,source,props)}}function baseConformsTo(object,source,props){var length=props.length;if(object==null){return!length}object=Object(object);while(length--){var key=props[length],predicate=source[key],value=object[key];if(value===undefined&&!(key in object)||!predicate(value)){return false}}return true}function baseDelay(func,wait,args){if(typeof func!="function"){throw new TypeError(FUNC_ERROR_TEXT)}return setTimeout(function(){func.apply(undefined,args)},wait)}function baseDifference(array,values,iteratee,comparator){var index=-1,includes=arrayIncludes,isCommon=true,length=array.length,result=[],valuesLength=values.length;if(!length){return result}if(iteratee){values=arrayMap(values,baseUnary(iteratee))}if(comparator){includes=arrayIncludesWith;isCommon=false}else if(values.length>=LARGE_ARRAY_SIZE){includes=cacheHas;isCommon=false;values=new SetCache(values)}outer:while(++indexlength?0:length+start}end=end===undefined||end>length?length:toInteger(end);if(end<0){end+=length}end=start>end?0:toLength(end);while(start0&&predicate(value)){if(depth>1){baseFlatten(value,depth-1,predicate,isStrict,result)}else{arrayPush(result,value)}}else if(!isStrict){result[result.length]=value}}return result}var baseFor=createBaseFor();var baseForRight=createBaseFor(true);function baseForOwn(object,iteratee){return object&&baseFor(object,iteratee,keys)}function baseForOwnRight(object,iteratee){return object&&baseForRight(object,iteratee,keys)}function baseFunctions(object,props){return arrayFilter(props,function(key){return isFunction(object[key])})}function baseGet(object,path){path=castPath(path,object);var index=0,length=path.length;while(object!=null&&indexother}function baseHas(object,key){return object!=null&&hasOwnProperty.call(object,key)}function baseHasIn(object,key){return object!=null&&key in Object(object)}function baseInRange(number,start,end){return number>=nativeMin(start,end)&&number=120&&array.length>=120)?new SetCache(othIndex&&array):undefined}array=arrays[0];var index=-1,seen=caches[0];outer:while(++index-1){if(seen!==array){splice.call(seen,fromIndex,1)}splice.call(array,fromIndex,1)}}return array}function basePullAt(array,indexes){var length=array?indexes.length:0,lastIndex=length-1;while(length--){var index=indexes[length];if(length==lastIndex||index!==previous){var previous=index;if(isIndex(index)){splice.call(array,index,1)}else{baseUnset(array,index)}}}return array}function baseRandom(lower,upper){return lower+nativeFloor(nativeRandom()*(upper-lower+1))}function baseRange(start,end,step,fromRight){var index=-1,length=nativeMax(nativeCeil((end-start)/(step||1)),0),result=Array(length);while(length--){result[fromRight?length:++index]=start;start+=step}return result}function baseRepeat(string,n){var result="";if(!string||n<1||n>MAX_SAFE_INTEGER){return result}do{if(n%2){result+=string}n=nativeFloor(n/2);if(n){string+=string}}while(n);return result}function baseRest(func,start){return setToString(overRest(func,start,identity),func+"")}function baseSample(collection){return arraySample(values(collection))}function baseSampleSize(collection,n){var array=values(collection);return shuffleSelf(array,baseClamp(n,0,array.length))}function baseSet(object,path,value,customizer){if(!isObject(object)){return object}path=castPath(path,object);var index=-1,length=path.length,lastIndex=length-1,nested=object;while(nested!=null&&++indexlength?0:length+start}end=end>length?length:end;if(end<0){end+=length}length=start>end?0:end-start>>>0;start>>>=0;var result=Array(length);while(++index>>1,computed=array[mid];if(computed!==null&&!isSymbol(computed)&&(retHighest?computed<=value:computed=LARGE_ARRAY_SIZE){var set=iteratee?null:createSet(array);if(set){return setToArray(set)}isCommon=false;includes=cacheHas;seen=new SetCache}else{seen=iteratee?[]:result}outer:while(++index=length?array:baseSlice(array,start,end)}var clearTimeout=ctxClearTimeout||function(id){return root.clearTimeout(id)};function cloneBuffer(buffer,isDeep){if(isDeep){return buffer.slice()}var length=buffer.length,result=allocUnsafe?allocUnsafe(length):new buffer.constructor(length);buffer.copy(result);return result}function cloneArrayBuffer(arrayBuffer){var result=new arrayBuffer.constructor(arrayBuffer.byteLength);new Uint8Array(result).set(new Uint8Array(arrayBuffer));return result}function cloneDataView(dataView,isDeep){var buffer=isDeep?cloneArrayBuffer(dataView.buffer):dataView.buffer;return new dataView.constructor(buffer,dataView.byteOffset,dataView.byteLength)}function cloneMap(map,isDeep,cloneFunc){var array=isDeep?cloneFunc(mapToArray(map),CLONE_DEEP_FLAG):mapToArray(map);return arrayReduce(array,addMapEntry,new map.constructor)}function cloneRegExp(regexp){var result=new regexp.constructor(regexp.source,reFlags.exec(regexp));result.lastIndex=regexp.lastIndex;return result}function cloneSet(set,isDeep,cloneFunc){var array=isDeep?cloneFunc(setToArray(set),CLONE_DEEP_FLAG):setToArray(set);return arrayReduce(array,addSetEntry,new set.constructor)}function cloneSymbol(symbol){return symbolValueOf?Object(symbolValueOf.call(symbol)):{}}function cloneTypedArray(typedArray,isDeep){var buffer=isDeep?cloneArrayBuffer(typedArray.buffer):typedArray.buffer;return new typedArray.constructor(buffer,typedArray.byteOffset,typedArray.length)}function compareAscending(value,other){if(value!==other){var valIsDefined=value!==undefined,valIsNull=value===null,valIsReflexive=value===value,valIsSymbol=isSymbol(value);var othIsDefined=other!==undefined,othIsNull=other===null,othIsReflexive=other===other,othIsSymbol=isSymbol(other);if(!othIsNull&&!othIsSymbol&&!valIsSymbol&&value>other||valIsSymbol&&othIsDefined&&othIsReflexive&&!othIsNull&&!othIsSymbol||valIsNull&&othIsDefined&&othIsReflexive||!valIsDefined&&othIsReflexive||!valIsReflexive){return 1}if(!valIsNull&&!valIsSymbol&&!othIsSymbol&&value=ordersLength){return result}var order=orders[index];return result*(order=="desc"?-1:1)}}return object.index-other.index}function composeArgs(args,partials,holders,isCurried){var argsIndex=-1,argsLength=args.length,holdersLength=holders.length,leftIndex=-1,leftLength=partials.length,rangeLength=nativeMax(argsLength-holdersLength,0),result=Array(leftLength+rangeLength),isUncurried=!isCurried;while(++leftIndex1?sources[length-1]:undefined,guard=length>2?sources[2]:undefined;customizer=assigner.length>3&&typeof customizer=="function"?(length--,customizer):undefined;if(guard&&isIterateeCall(sources[0],sources[1],guard)){customizer=length<3?undefined:customizer;length=1}object=Object(object);while(++index-1?iterable[iteratee?collection[index]:index]:undefined}}function createFlow(fromRight){return flatRest(function(funcs){var length=funcs.length,index=length,prereq=LodashWrapper.prototype.thru;if(fromRight){funcs.reverse()}while(index--){var func=funcs[index];if(typeof func!="function"){throw new TypeError(FUNC_ERROR_TEXT)}if(prereq&&!wrapper&&getFuncName(func)=="wrapper"){var wrapper=new LodashWrapper([],true)}}index=wrapper?index:length;while(++index1){args.reverse()}if(isAry&&aryarrLength)){return false}var stacked=stack.get(array);if(stacked&&stack.get(other)){return stacked==other}var index=-1,result=true,seen=bitmask&COMPARE_UNORDERED_FLAG?new SetCache:undefined;stack.set(array,other);stack.set(other,array);while(++index1?"& ":"")+details[lastIndex];details=details.join(length>2?", ":" ");return source.replace(reWrapComment,"{\n/* [wrapped with "+details+"] */\n")}function isFlattenable(value){return isArray(value)||isArguments(value)||!!(spreadableSymbol&&value&&value[spreadableSymbol])}function isIndex(value,length){length=length==null?MAX_SAFE_INTEGER:length;return!!length&&(typeof value=="number"||reIsUint.test(value))&&value>-1&&value%1==0&&value0){if(++count>=HOT_COUNT){return arguments[0]}}else{count=0}return func.apply(undefined,arguments)}}function shuffleSelf(array,size){var index=-1,length=array.length,lastIndex=length-1;size=size===undefined?length:size;while(++index1?arrays[length-1]:undefined;iteratee=typeof iteratee=="function"?(arrays.pop(),iteratee):undefined;return unzipWith(arrays,iteratee)});function chain(value){var result=lodash(value);result.__chain__=true;return result}function tap(value,interceptor){interceptor(value);return value}function thru(value,interceptor){return interceptor(value)}var wrapperAt=flatRest(function(paths){var length=paths.length,start=length?paths[0]:0,value=this.__wrapped__,interceptor=function interceptor(object){return baseAt(object,paths)};if(length>1||this.__actions__.length||!(value instanceof LazyWrapper)||!isIndex(start)){return this.thru(interceptor)}value=value.slice(start,+start+(length?1:0));value.__actions__.push({func:thru,args:[interceptor],thisArg:undefined});return new LodashWrapper(value,this.__chain__).thru(function(array){if(length&&!array.length){array.push(undefined)}return array})});function wrapperChain(){return chain(this)}function wrapperCommit(){return new LodashWrapper(this.value(),this.__chain__)}function wrapperNext(){if(this.__values__===undefined){this.__values__=toArray(this.value())}var done=this.__index__>=this.__values__.length,value=done?undefined:this.__values__[this.__index__++];return{done:done,value:value}}function wrapperToIterator(){return this}function wrapperPlant(value){var result,parent=this;while(parent instanceof baseLodash){var clone=wrapperClone(parent);clone.__index__=0;clone.__values__=undefined;if(result){previous.__wrapped__=clone}else{result=clone}var previous=clone;parent=parent.__wrapped__}previous.__wrapped__=value;return result}function wrapperReverse(){var value=this.__wrapped__;if(value instanceof LazyWrapper){var wrapped=value;if(this.__actions__.length){wrapped=new LazyWrapper(this)}wrapped=wrapped.reverse();wrapped.__actions__.push({func:thru,args:[reverse],thisArg:undefined});return new LodashWrapper(wrapped,this.__chain__)}return this.thru(reverse)}function wrapperValue(){return baseWrapperValue(this.__wrapped__,this.__actions__)}var countBy=createAggregator(function(result,value,key){if(hasOwnProperty.call(result,key)){++result[key]}else{baseAssignValue(result,key,1)}});function every(collection,predicate,guard){var func=isArray(collection)?arrayEvery:baseEvery;if(guard&&isIterateeCall(collection,predicate,guard)){predicate=undefined}return func(collection,getIteratee(predicate,3))}function filter(collection,predicate){var func=isArray(collection)?arrayFilter:baseFilter;return func(collection,getIteratee(predicate,3))}var find=createFind(findIndex);var findLast=createFind(findLastIndex);function flatMap(collection,iteratee){return baseFlatten(map(collection,iteratee),1)}function flatMapDeep(collection,iteratee){return baseFlatten(map(collection,iteratee),INFINITY)}function flatMapDepth(collection,iteratee,depth){depth=depth===undefined?1:toInteger(depth);return baseFlatten(map(collection,iteratee),depth)}function forEach(collection,iteratee){var func=isArray(collection)?arrayEach:baseEach;return func(collection,getIteratee(iteratee,3))}function forEachRight(collection,iteratee){var func=isArray(collection)?arrayEachRight:baseEachRight;return func(collection,getIteratee(iteratee,3))}var groupBy=createAggregator(function(result,value,key){if(hasOwnProperty.call(result,key)){result[key].push(value)}else{baseAssignValue(result,key,[value])}});function includes(collection,value,fromIndex,guard){collection=isArrayLike(collection)?collection:values(collection);fromIndex=fromIndex&&!guard?toInteger(fromIndex):0;var length=collection.length;if(fromIndex<0){fromIndex=nativeMax(length+fromIndex,0)}return isString(collection)?fromIndex<=length&&collection.indexOf(value,fromIndex)>-1:!!length&&baseIndexOf(collection,value,fromIndex)>-1}var invokeMap=baseRest(function(collection,path,args){var index=-1,isFunc=typeof path=="function",result=isArrayLike(collection)?Array(collection.length):[];baseEach(collection,function(value){result[++index]=isFunc?apply(path,value,args):baseInvoke(value,path,args)});return result});var keyBy=createAggregator(function(result,value,key){baseAssignValue(result,key,value)});function map(collection,iteratee){var func=isArray(collection)?arrayMap:baseMap;return func(collection,getIteratee(iteratee,3))}function orderBy(collection,iteratees,orders,guard){if(collection==null){return[]}if(!isArray(iteratees)){iteratees=iteratees==null?[]:[iteratees]}orders=guard?undefined:orders;if(!isArray(orders)){orders=orders==null?[]:[orders]}return baseOrderBy(collection,iteratees,orders)}var partition=createAggregator(function(result,value,key){result[key?0:1].push(value)},function(){return[[],[]]});function reduce(collection,iteratee,accumulator){var func=isArray(collection)?arrayReduce:baseReduce,initAccum=arguments.length<3;return func(collection,getIteratee(iteratee,4),accumulator,initAccum,baseEach)}function reduceRight(collection,iteratee,accumulator){var func=isArray(collection)?arrayReduceRight:baseReduce,initAccum=arguments.length<3;return func(collection,getIteratee(iteratee,4),accumulator,initAccum,baseEachRight)}function reject(collection,predicate){var func=isArray(collection)?arrayFilter:baseFilter;return func(collection,negate(getIteratee(predicate,3)))}function sample(collection){var func=isArray(collection)?arraySample:baseSample;return func(collection)}function sampleSize(collection,n,guard){if(guard?isIterateeCall(collection,n,guard):n===undefined){n=1}else{n=toInteger(n)}var func=isArray(collection)?arraySampleSize:baseSampleSize;return func(collection,n)}function shuffle(collection){var func=isArray(collection)?arrayShuffle:baseShuffle;return func(collection)}function size(collection){if(collection==null){return 0}if(isArrayLike(collection)){return isString(collection)?stringSize(collection):collection.length}var tag=getTag(collection);if(tag==mapTag||tag==setTag){return collection.size}return baseKeys(collection).length}function some(collection,predicate,guard){var func=isArray(collection)?arraySome:baseSome;if(guard&&isIterateeCall(collection,predicate,guard)){predicate=undefined}return func(collection,getIteratee(predicate,3))}var sortBy=baseRest(function(collection,iteratees){if(collection==null){return[]}var length=iteratees.length;if(length>1&&isIterateeCall(collection,iteratees[0],iteratees[1])){iteratees=[]}else if(length>2&&isIterateeCall(iteratees[0],iteratees[1],iteratees[2])){iteratees=[iteratees[0]]}return baseOrderBy(collection,baseFlatten(iteratees,1),[])});var now=ctxNow||function(){return root.Date.now()};function after(n,func){if(typeof func!="function"){throw new TypeError(FUNC_ERROR_TEXT)}n=toInteger(n);return function(){if(--n<1){return func.apply(this,arguments)}}}function ary(func,n,guard){n=guard?undefined:n;n=func&&n==null?func.length:n;return createWrap(func,WRAP_ARY_FLAG,undefined,undefined,undefined,undefined,n)}function before(n,func){var result;if(typeof func!="function"){throw new TypeError(FUNC_ERROR_TEXT)}n=toInteger(n);return function(){if(--n>0){result=func.apply(this,arguments)}if(n<=1){func=undefined}return result}}var bind=baseRest(function(func,thisArg,partials){var bitmask=WRAP_BIND_FLAG;if(partials.length){var holders=replaceHolders(partials,getHolder(bind));bitmask|=WRAP_PARTIAL_FLAG}return createWrap(func,bitmask,thisArg,partials,holders)});var bindKey=baseRest(function(object,key,partials){var bitmask=WRAP_BIND_FLAG|WRAP_BIND_KEY_FLAG;if(partials.length){var holders=replaceHolders(partials,getHolder(bindKey));bitmask|=WRAP_PARTIAL_FLAG}return createWrap(key,bitmask,object,partials,holders)});function curry(func,arity,guard){arity=guard?undefined:arity;var result=createWrap(func,WRAP_CURRY_FLAG,undefined,undefined,undefined,undefined,undefined,arity);result.placeholder=curry.placeholder;return result}function curryRight(func,arity,guard){arity=guard?undefined:arity;var result=createWrap(func,WRAP_CURRY_RIGHT_FLAG,undefined,undefined,undefined,undefined,undefined,arity);result.placeholder=curryRight.placeholder;return result}function debounce(func,wait,options){var lastArgs,lastThis,maxWait,result,timerId,lastCallTime,lastInvokeTime=0,leading=false,maxing=false,trailing=true;if(typeof func!="function"){throw new TypeError(FUNC_ERROR_TEXT)}wait=toNumber(wait)||0;if(isObject(options)){leading=!!options.leading;maxing="maxWait"in options;maxWait=maxing?nativeMax(toNumber(options.maxWait)||0,wait):maxWait;trailing="trailing"in options?!!options.trailing:trailing}function invokeFunc(time){var args=lastArgs,thisArg=lastThis;lastArgs=lastThis=undefined;lastInvokeTime=time;result=func.apply(thisArg,args);return result}function leadingEdge(time){lastInvokeTime=time;timerId=setTimeout(timerExpired,wait);return leading?invokeFunc(time):result}function remainingWait(time){var timeSinceLastCall=time-lastCallTime,timeSinceLastInvoke=time-lastInvokeTime,result=wait-timeSinceLastCall;return maxing?nativeMin(result,maxWait-timeSinceLastInvoke):result}function shouldInvoke(time){var timeSinceLastCall=time-lastCallTime,timeSinceLastInvoke=time-lastInvokeTime;return lastCallTime===undefined||timeSinceLastCall>=wait||timeSinceLastCall<0||maxing&&timeSinceLastInvoke>=maxWait}function timerExpired(){var time=now();if(shouldInvoke(time)){return trailingEdge(time)}timerId=setTimeout(timerExpired,remainingWait(time))}function trailingEdge(time){timerId=undefined;if(trailing&&lastArgs){return invokeFunc(time)}lastArgs=lastThis=undefined;return result}function cancel(){if(timerId!==undefined){clearTimeout(timerId)}lastInvokeTime=0;lastArgs=lastCallTime=lastThis=timerId=undefined}function flush(){return timerId===undefined?result:trailingEdge(now())}function debounced(){var time=now(),isInvoking=shouldInvoke(time);lastArgs=arguments;lastThis=this;lastCallTime=time;if(isInvoking){if(timerId===undefined){return leadingEdge(lastCallTime)}if(maxing){timerId=setTimeout(timerExpired,wait);return invokeFunc(lastCallTime)}}if(timerId===undefined){timerId=setTimeout(timerExpired,wait)}return result}debounced.cancel=cancel;debounced.flush=flush;return debounced}var defer=baseRest(function(func,args){return baseDelay(func,1,args)});var delay=baseRest(function(func,wait,args){return baseDelay(func,toNumber(wait)||0,args)});function flip(func){return createWrap(func,WRAP_FLIP_FLAG)}function memoize(func,resolver){if(typeof func!="function"||resolver!=null&&typeof resolver!="function"){throw new TypeError(FUNC_ERROR_TEXT)}var memoized=function memoized(){var args=arguments,key=resolver?resolver.apply(this,args):args[0],cache=memoized.cache;if(cache.has(key)){return cache.get(key)}var result=func.apply(this,args);memoized.cache=cache.set(key,result)||cache;return result};memoized.cache=new(memoize.Cache||MapCache);return memoized}memoize.Cache=MapCache;function negate(predicate){if(typeof predicate!="function"){throw new TypeError(FUNC_ERROR_TEXT)}return function(){var args=arguments;switch(args.length){case 0:return!predicate.call(this);case 1:return!predicate.call(this,args[0]);case 2:return!predicate.call(this,args[0],args[1]);case 3:return!predicate.call(this,args[0],args[1],args[2])}return!predicate.apply(this,args)}}function once(func){return before(2,func)}var overArgs=castRest(function(func,transforms){transforms=transforms.length==1&&isArray(transforms[0])?arrayMap(transforms[0],baseUnary(getIteratee())):arrayMap(baseFlatten(transforms,1),baseUnary(getIteratee()));var funcsLength=transforms.length;return baseRest(function(args){var index=-1,length=nativeMin(args.length,funcsLength);while(++index=other});var isArguments=baseIsArguments(function(){return arguments}())?baseIsArguments:function(value){return isObjectLike(value)&&hasOwnProperty.call(value,"callee")&&!propertyIsEnumerable.call(value,"callee")};var isArray=Array.isArray;var isArrayBuffer=nodeIsArrayBuffer?baseUnary(nodeIsArrayBuffer):baseIsArrayBuffer;function isArrayLike(value){return value!=null&&isLength(value.length)&&!isFunction(value)}function isArrayLikeObject(value){return isObjectLike(value)&&isArrayLike(value)}function isBoolean(value){return value===true||value===false||isObjectLike(value)&&baseGetTag(value)==boolTag}var isBuffer=nativeIsBuffer||stubFalse;var isDate=nodeIsDate?baseUnary(nodeIsDate):baseIsDate;function isElement(value){return isObjectLike(value)&&value.nodeType===1&&!isPlainObject(value)}function isEmpty(value){if(value==null){return true}if(isArrayLike(value)&&(isArray(value)||typeof value=="string"||typeof value.splice=="function"||isBuffer(value)||isTypedArray(value)||isArguments(value))){return!value.length}var tag=getTag(value);if(tag==mapTag||tag==setTag){return!value.size}if(isPrototype(value)){return!baseKeys(value).length}for(var key in value){if(hasOwnProperty.call(value,key)){return false}}return true}function isEqual(value,other){return baseIsEqual(value,other)}function isEqualWith(value,other,customizer){customizer=typeof customizer=="function"?customizer:undefined;var result=customizer?customizer(value,other):undefined;return result===undefined?baseIsEqual(value,other,undefined,customizer):!!result}function isError(value){if(!isObjectLike(value)){return false}var tag=baseGetTag(value);return tag==errorTag||tag==domExcTag||typeof value.message=="string"&&typeof value.name=="string"&&!isPlainObject(value)}function isFinite(value){return typeof value=="number"&&nativeIsFinite(value)}function isFunction(value){if(!isObject(value)){return false}var tag=baseGetTag(value);return tag==funcTag||tag==genTag||tag==asyncTag||tag==proxyTag}function isInteger(value){return typeof value=="number"&&value==toInteger(value)}function isLength(value){return typeof value=="number"&&value>-1&&value%1==0&&value<=MAX_SAFE_INTEGER}function isObject(value){var type=typeof value==="undefined"?"undefined":_typeof(value);return value!=null&&(type=="object"||type=="function")}function isObjectLike(value){return value!=null&&(typeof value==="undefined"?"undefined":_typeof(value))=="object"}var isMap=nodeIsMap?baseUnary(nodeIsMap):baseIsMap;function isMatch(object,source){return object===source||baseIsMatch(object,source,getMatchData(source))}function isMatchWith(object,source,customizer){customizer=typeof customizer=="function"?customizer:undefined;return baseIsMatch(object,source,getMatchData(source),customizer)}function isNaN(value){return isNumber(value)&&value!=+value}function isNative(value){if(isMaskable(value)){throw new Error(CORE_ERROR_TEXT)}return baseIsNative(value)}function isNull(value){return value===null}function isNil(value){return value==null}function isNumber(value){return typeof value=="number"||isObjectLike(value)&&baseGetTag(value)==numberTag}function isPlainObject(value){if(!isObjectLike(value)||baseGetTag(value)!=objectTag){return false}var proto=getPrototype(value);if(proto===null){return true}var Ctor=hasOwnProperty.call(proto,"constructor")&&proto.constructor;return typeof Ctor=="function"&&Ctor instanceof Ctor&&funcToString.call(Ctor)==objectCtorString}var isRegExp=nodeIsRegExp?baseUnary(nodeIsRegExp):baseIsRegExp;function isSafeInteger(value){return isInteger(value)&&value>=-MAX_SAFE_INTEGER&&value<=MAX_SAFE_INTEGER}var isSet=nodeIsSet?baseUnary(nodeIsSet):baseIsSet;function isString(value){return typeof value=="string"||!isArray(value)&&isObjectLike(value)&&baseGetTag(value)==stringTag}function isSymbol(value){return(typeof value==="undefined"?"undefined":_typeof(value))=="symbol"||isObjectLike(value)&&baseGetTag(value)==symbolTag}var isTypedArray=nodeIsTypedArray?baseUnary(nodeIsTypedArray):baseIsTypedArray;function isUndefined(value){return value===undefined}function isWeakMap(value){return isObjectLike(value)&&getTag(value)==weakMapTag}function isWeakSet(value){return isObjectLike(value)&&baseGetTag(value)==weakSetTag}var lt=createRelationalOperation(baseLt);var lte=createRelationalOperation(function(value,other){return value<=other});function toArray(value){if(!value){return[]}if(isArrayLike(value)){return isString(value)?stringToArray(value):copyArray(value)}if(symIterator&&value[symIterator]){return iteratorToArray(value[symIterator]())}var tag=getTag(value),func=tag==mapTag?mapToArray:tag==setTag?setToArray:values;return func(value)}function toFinite(value){if(!value){return value===0?value:0}value=toNumber(value);if(value===INFINITY||value===-INFINITY){var sign=value<0?-1:1;return sign*MAX_INTEGER}return value===value?value:0}function toInteger(value){var result=toFinite(value),remainder=result%1;return result===result?remainder?result-remainder:result:0}function toLength(value){return value?baseClamp(toInteger(value),0,MAX_ARRAY_LENGTH):0}function toNumber(value){if(typeof value=="number"){return value}if(isSymbol(value)){return NAN}if(isObject(value)){var other=typeof value.valueOf=="function"?value.valueOf():value;value=isObject(other)?other+"":other}if(typeof value!="string"){return value===0?value:+value}value=value.replace(reTrim,"");var isBinary=reIsBinary.test(value);return isBinary||reIsOctal.test(value)?freeParseInt(value.slice(2),isBinary?2:8):reIsBadHex.test(value)?NAN:+value}function toPlainObject(value){return copyObject(value,keysIn(value))}function toSafeInteger(value){return value?baseClamp(toInteger(value),-MAX_SAFE_INTEGER,MAX_SAFE_INTEGER):value===0?value:0}function toString(value){return value==null?"":baseToString(value)}var assign=createAssigner(function(object,source){if(isPrototype(source)||isArrayLike(source)){copyObject(source,keys(source),object);return}for(var key in source){if(hasOwnProperty.call(source,key)){assignValue(object,key,source[key])}}});var assignIn=createAssigner(function(object,source){copyObject(source,keysIn(source),object)});var assignInWith=createAssigner(function(object,source,srcIndex,customizer){copyObject(source,keysIn(source),object,customizer)});var assignWith=createAssigner(function(object,source,srcIndex,customizer){copyObject(source,keys(source),object,customizer)});var at=flatRest(baseAt);function create(prototype,properties){var result=baseCreate(prototype);return properties==null?result:baseAssign(result,properties)}var defaults=baseRest(function(args){args.push(undefined,customDefaultsAssignIn);return apply(assignInWith,undefined,args)});var defaultsDeep=baseRest(function(args){args.push(undefined,customDefaultsMerge);return apply(mergeWith,undefined,args)});function findKey(object,predicate){return baseFindKey(object,getIteratee(predicate,3),baseForOwn)}function findLastKey(object,predicate){return baseFindKey(object,getIteratee(predicate,3),baseForOwnRight)}function forIn(object,iteratee){return object==null?object:baseFor(object,getIteratee(iteratee,3),keysIn)}function forInRight(object,iteratee){return object==null?object:baseForRight(object,getIteratee(iteratee,3),keysIn)}function forOwn(object,iteratee){return object&&baseForOwn(object,getIteratee(iteratee,3))}function forOwnRight(object,iteratee){return object&&baseForOwnRight(object,getIteratee(iteratee,3))}function functions(object){return object==null?[]:baseFunctions(object,keys(object))}function functionsIn(object){return object==null?[]:baseFunctions(object,keysIn(object))}function get(object,path,defaultValue){var result=object==null?undefined:baseGet(object,path);return result===undefined?defaultValue:result}function has(object,path){return object!=null&&hasPath(object,path,baseHas)}function hasIn(object,path){return object!=null&&hasPath(object,path,baseHasIn)}var invert=createInverter(function(result,value,key){result[value]=key},constant(identity));var invertBy=createInverter(function(result,value,key){if(hasOwnProperty.call(result,value)){result[value].push(key)}else{result[value]=[key]}},getIteratee);var invoke=baseRest(baseInvoke);function keys(object){return isArrayLike(object)?arrayLikeKeys(object):baseKeys(object)}function keysIn(object){return isArrayLike(object)?arrayLikeKeys(object,true):baseKeysIn(object)}function mapKeys(object,iteratee){var result={};iteratee=getIteratee(iteratee,3);baseForOwn(object,function(value,key,object){baseAssignValue(result,iteratee(value,key,object),value)});return result}function mapValues(object,iteratee){var result={};iteratee=getIteratee(iteratee,3);baseForOwn(object,function(value,key,object){baseAssignValue(result,key,iteratee(value,key,object))});return result}var merge=createAssigner(function(object,source,srcIndex){baseMerge(object,source,srcIndex)});var mergeWith=createAssigner(function(object,source,srcIndex,customizer){baseMerge(object,source,srcIndex,customizer)});var omit=flatRest(function(object,paths){var result={};if(object==null){return result}var isDeep=false;paths=arrayMap(paths,function(path){path=castPath(path,object);isDeep||(isDeep=path.length>1);return path});copyObject(object,getAllKeysIn(object),result);if(isDeep){result=baseClone(result,CLONE_DEEP_FLAG|CLONE_FLAT_FLAG|CLONE_SYMBOLS_FLAG,customOmitClone)}var length=paths.length;while(length--){baseUnset(result,paths[length])}return result});function omitBy(object,predicate){return pickBy(object,negate(getIteratee(predicate)))}var pick=flatRest(function(object,paths){return object==null?{}:basePick(object,paths)});function pickBy(object,predicate){if(object==null){return{}}var props=arrayMap(getAllKeysIn(object),function(prop){return[prop]});predicate=getIteratee(predicate);return basePickBy(object,props,function(value,path){return predicate(value,path[0])})}function result(object,path,defaultValue){path=castPath(path,object);var index=-1,length=path.length;if(!length){length=1;object=undefined}while(++indexupper){var temp=lower;lower=upper;upper=temp}if(floating||lower%1||upper%1){var rand=nativeRandom();return nativeMin(lower+rand*(upper-lower+freeParseFloat("1e-"+((rand+"").length-1))),upper)}return baseRandom(lower,upper)}var camelCase=createCompounder(function(result,word,index){word=word.toLowerCase();return result+(index?capitalize(word):word)});function capitalize(string){return upperFirst(toString(string).toLowerCase())}function deburr(string){string=toString(string);return string&&string.replace(reLatin,deburrLetter).replace(reComboMark,"")}function endsWith(string,target,position){string=toString(string);target=baseToString(target);var length=string.length;position=position===undefined?length:baseClamp(toInteger(position),0,length);var end=position;position-=target.length;return position>=0&&string.slice(position,end)==target}function escape(string){string=toString(string);return string&&reHasUnescapedHtml.test(string)?string.replace(reUnescapedHtml,escapeHtmlChar):string}function escapeRegExp(string){string=toString(string);return string&&reHasRegExpChar.test(string)?string.replace(reRegExpChar,"\\$&"):string}var kebabCase=createCompounder(function(result,word,index){return result+(index?"-":"")+word.toLowerCase()});var lowerCase=createCompounder(function(result,word,index){return result+(index?" ":"")+word.toLowerCase()});var lowerFirst=createCaseFirst("toLowerCase");function pad(string,length,chars){string=toString(string);length=toInteger(length);var strLength=length?stringSize(string):0;if(!length||strLength>=length){return string}var mid=(length-strLength)/2;return createPadding(nativeFloor(mid),chars)+string+createPadding(nativeCeil(mid),chars)}function padEnd(string,length,chars){string=toString(string);length=toInteger(length);var strLength=length?stringSize(string):0;return length&&strLength>>0;if(!limit){return[]}string=toString(string);if(string&&(typeof separator=="string"||separator!=null&&!isRegExp(separator))){separator=baseToString(separator);if(!separator&&hasUnicode(string)){return castSlice(stringToArray(string),0,limit)}}return string.split(separator,limit)}var startCase=createCompounder(function(result,word,index){return result+(index?" ":"")+upperFirst(word)});function startsWith(string,target,position){string=toString(string);position=position==null?0:baseClamp(toInteger(position),0,string.length);target=baseToString(target);return string.slice(position,position+target.length)==target}function template(string,options,guard){var settings=lodash.templateSettings;if(guard&&isIterateeCall(string,options,guard)){options=undefined}string=toString(string);options=assignInWith({},options,settings,customDefaultsAssignIn);var imports=assignInWith({},options.imports,settings.imports,customDefaultsAssignIn),importsKeys=keys(imports),importsValues=baseValues(imports,importsKeys);var isEscaping,isEvaluating,index=0,interpolate=options.interpolate||reNoMatch,source="__p += '";var reDelimiters=RegExp((options.escape||reNoMatch).source+"|"+interpolate.source+"|"+(interpolate===reInterpolate?reEsTemplate:reNoMatch).source+"|"+(options.evaluate||reNoMatch).source+"|$","g");var sourceURL="//# sourceURL="+("sourceURL"in options?options.sourceURL:"lodash.templateSources["+ ++templateCounter+"]")+"\n";string.replace(reDelimiters,function(match,escapeValue,interpolateValue,esTemplateValue,evaluateValue,offset){interpolateValue||(interpolateValue=esTemplateValue);source+=string.slice(index,offset).replace(reUnescapedString,escapeStringChar);if(escapeValue){isEscaping=true;source+="' +\n__e("+escapeValue+") +\n'"}if(evaluateValue){isEvaluating=true;source+="';\n"+evaluateValue+";\n__p += '"}if(interpolateValue){source+="' +\n((__t = ("+interpolateValue+")) == null ? '' : __t) +\n'"}index=offset+match.length;return match});source+="';\n";var variable=options.variable;if(!variable){source="with (obj) {\n"+source+"\n}\n"}source=(isEvaluating?source.replace(reEmptyStringLeading,""):source).replace(reEmptyStringMiddle,"$1").replace(reEmptyStringTrailing,"$1;");source="function("+(variable||"obj")+") {\n"+(variable?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(isEscaping?", __e = _.escape":"")+(isEvaluating?", __j = Array.prototype.join;\n"+"function print() { __p += __j.call(arguments, '') }\n":";\n")+source+"return __p\n}";var result=attempt(function(){return Function(importsKeys,sourceURL+"return "+source).apply(undefined,importsValues)});result.source=source;if(isError(result)){throw result}return result}function toLower(value){return toString(value).toLowerCase()}function toUpper(value){return toString(value).toUpperCase()}function trim(string,chars,guard){string=toString(string);if(string&&(guard||chars===undefined)){return string.replace(reTrim,"")}if(!string||!(chars=baseToString(chars))){return string}var strSymbols=stringToArray(string),chrSymbols=stringToArray(chars),start=charsStartIndex(strSymbols,chrSymbols),end=charsEndIndex(strSymbols,chrSymbols)+1;return castSlice(strSymbols,start,end).join("")}function trimEnd(string,chars,guard){string=toString(string);if(string&&(guard||chars===undefined)){return string.replace(reTrimEnd,"")}if(!string||!(chars=baseToString(chars))){return string}var strSymbols=stringToArray(string),end=charsEndIndex(strSymbols,stringToArray(chars))+1;return castSlice(strSymbols,0,end).join("")}function trimStart(string,chars,guard){string=toString(string);if(string&&(guard||chars===undefined)){return string.replace(reTrimStart,"")}if(!string||!(chars=baseToString(chars))){return string}var strSymbols=stringToArray(string),start=charsStartIndex(strSymbols,stringToArray(chars));return castSlice(strSymbols,start).join("")}function truncate(string,options){var length=DEFAULT_TRUNC_LENGTH,omission=DEFAULT_TRUNC_OMISSION;if(isObject(options)){var separator="separator"in options?options.separator:separator;length="length"in options?toInteger(options.length):length;omission="omission"in options?baseToString(options.omission):omission}string=toString(string);var strLength=string.length;if(hasUnicode(string)){var strSymbols=stringToArray(string);strLength=strSymbols.length}if(length>=strLength){return string}var end=length-stringSize(omission);if(end<1){return omission}var result=strSymbols?castSlice(strSymbols,0,end).join(""):string.slice(0,end);if(separator===undefined){return result+omission}if(strSymbols){end+=result.length-end}if(isRegExp(separator)){if(string.slice(end).search(separator)){var match,substring=result;if(!separator.global){separator=RegExp(separator.source,toString(reFlags.exec(separator))+"g")}separator.lastIndex=0;while(match=separator.exec(substring)){var newEnd=match.index}result=result.slice(0,newEnd===undefined?end:newEnd)}}else if(string.indexOf(baseToString(separator),end)!=end){var index=result.lastIndexOf(separator);if(index>-1){result=result.slice(0,index)}}return result+omission}function unescape(string){string=toString(string);return string&&reHasEscapedHtml.test(string)?string.replace(reEscapedHtml,unescapeHtmlChar):string}var upperCase=createCompounder(function(result,word,index){return result+(index?" ":"")+word.toUpperCase()});var upperFirst=createCaseFirst("toUpperCase");function words(string,pattern,guard){string=toString(string);pattern=guard?undefined:pattern;if(pattern===undefined){return hasUnicodeWord(string)?unicodeWords(string):asciiWords(string)}return string.match(pattern)||[]}var attempt=baseRest(function(func,args){try{return apply(func,undefined,args)}catch(e){return isError(e)?e:new Error(e)}});var bindAll=flatRest(function(object,methodNames){arrayEach(methodNames,function(key){key=toKey(key);baseAssignValue(object,key,bind(object[key],object))});return object});function cond(pairs){var length=pairs==null?0:pairs.length,toIteratee=getIteratee();pairs=!length?[]:arrayMap(pairs,function(pair){if(typeof pair[1]!="function"){throw new TypeError(FUNC_ERROR_TEXT)}return[toIteratee(pair[0]),pair[1]]});return baseRest(function(args){var index=-1;while(++indexMAX_SAFE_INTEGER){return[]}var index=MAX_ARRAY_LENGTH,length=nativeMin(n,MAX_ARRAY_LENGTH);iteratee=getIteratee(iteratee);n-=MAX_ARRAY_LENGTH;var result=baseTimes(length,iteratee);while(++index0||end<0)){return new LazyWrapper(result)}if(start<0){result=result.takeRight(-start)}else if(start){result=result.drop(start)}if(end!==undefined){end=toInteger(end);result=end<0?result.dropRight(-end):result.take(end-start)}return result};LazyWrapper.prototype.takeRightWhile=function(predicate){return this.reverse().takeWhile(predicate).reverse()};LazyWrapper.prototype.toArray=function(){return this.take(MAX_ARRAY_LENGTH)};baseForOwn(LazyWrapper.prototype,function(func,methodName){var checkIteratee=/^(?:filter|find|map|reject)|While$/.test(methodName),isTaker=/^(?:head|last)$/.test(methodName),lodashFunc=lodash[isTaker?"take"+(methodName=="last"?"Right":""):methodName],retUnwrapped=isTaker||/^find/.test(methodName);if(!lodashFunc){return}lodash.prototype[methodName]=function(){var value=this.__wrapped__,args=isTaker?[1]:arguments,isLazy=value instanceof LazyWrapper,iteratee=args[0],useLazy=isLazy||isArray(value);var interceptor=function interceptor(value){var result=lodashFunc.apply(lodash,arrayPush([value],args));return isTaker&&chainAll?result[0]:result};if(useLazy&&checkIteratee&&typeof iteratee=="function"&&iteratee.length!=1){isLazy=useLazy=false}var chainAll=this.__chain__,isHybrid=!!this.__actions__.length,isUnwrapped=retUnwrapped&&!chainAll,onlyLazy=isLazy&&!isHybrid;if(!retUnwrapped&&useLazy){value=onlyLazy?value:new LazyWrapper(this);var result=func.apply(value,args);result.__actions__.push({func:thru,args:[interceptor],thisArg:undefined});return new LodashWrapper(result,chainAll)}if(isUnwrapped&&onlyLazy){return func.apply(this,args)}result=this.thru(interceptor);return isUnwrapped?isTaker?result.value()[0]:result.value():result}});arrayEach(["pop","push","shift","sort","splice","unshift"],function(methodName){var func=arrayProto[methodName],chainName=/^(?:push|sort|unshift)$/.test(methodName)?"tap":"thru",retUnwrapped=/^(?:pop|shift)$/.test(methodName);lodash.prototype[methodName]=function(){var args=arguments;if(retUnwrapped&&!this.__chain__){var value=this.value();return func.apply(isArray(value)?value:[],args)}return this[chainName](function(value){return func.apply(isArray(value)?value:[],args)})}});baseForOwn(LazyWrapper.prototype,function(func,methodName){var lodashFunc=lodash[methodName];if(lodashFunc){var key=lodashFunc.name+"",names=realNames[key]||(realNames[key]=[]);names.push({name:methodName,func:lodashFunc})}});realNames[createHybrid(undefined,WRAP_BIND_KEY_FLAG).name]=[{name:"wrapper",func:undefined}];LazyWrapper.prototype.clone=lazyClone;LazyWrapper.prototype.reverse=lazyReverse;LazyWrapper.prototype.value=lazyValue;lodash.prototype.at=wrapperAt;lodash.prototype.chain=wrapperChain;lodash.prototype.commit=wrapperCommit;lodash.prototype.next=wrapperNext;lodash.prototype.plant=wrapperPlant;lodash.prototype.reverse=wrapperReverse;lodash.prototype.toJSON=lodash.prototype.valueOf=lodash.prototype.value=wrapperValue;lodash.prototype.first=lodash.prototype.head;if(symIterator){lodash.prototype[symIterator]=wrapperToIterator}return lodash};var _=runInContext();if(typeof define=="function"&&_typeof(define.amd)=="object"&&define.amd){root._=_;define(function(){return _})}else if(freeModule){(freeModule.exports=_)._=_;freeExports._=_}else{root._=_}}).call(undefined)}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{}],17:[function(require,module,exports){"use strict";var naturalCompare=function naturalCompare(a,b){var i,codeA,codeB=1,posA=0,posB=0,alphabet=String.alphabet;function getCode(str,pos,code){if(code){for(i=pos;code=getCode(str,i),code<76&&code>65;){++i}return+str.slice(pos-1,i)}code=alphabet&&alphabet.indexOf(str.charAt(pos));return code>-1?code+76:(code=str.charCodeAt(pos)||0,code<45||code>127)?code:code<46?65:code<48?code-1:code<58?code+18:code<65?code-11:code<91?code+11:code<97?code-37:code<123?code+5:code-63}if((a+="")!=(b+=""))for(;codeB;){codeA=getCode(a,posA++);codeB=getCode(b,posB++);if(codeA<76&&codeB<76&&codeA>66&&codeB>66){codeA=getCode(a,posA,posA);codeB=getCode(b,posB,posA=i);posB=i}if(codeA!=codeB)return codeA1){for(var i=1;i=len)return x;switch(x){case"%s":return String(args[i++]);case"%d":return Number(args[i++]);case"%j":try{return JSON.stringify(args[i++])}catch(_){return"[Circular]"}default:return x}});for(var x=args[i];i=3)ctx.depth=arguments[2];if(arguments.length>=4)ctx.colors=arguments[3];if(isBoolean(opts)){ctx.showHidden=opts}else if(opts){exports._extend(ctx,opts)}if(isUndefined(ctx.showHidden))ctx.showHidden=false;if(isUndefined(ctx.depth))ctx.depth=2;if(isUndefined(ctx.colors))ctx.colors=false;if(isUndefined(ctx.customInspect))ctx.customInspect=true;if(ctx.colors)ctx.stylize=stylizeWithColor;return formatValue(ctx,obj,ctx.depth)}exports.inspect=inspect;inspect.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]};inspect.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"};function stylizeWithColor(str,styleType){var style=inspect.styles[styleType];if(style){return"["+inspect.colors[style][0]+"m"+str+"["+inspect.colors[style][1]+"m"}else{return str}}function stylizeNoColor(str,styleType){return str}function arrayToHash(array){var hash={};array.forEach(function(val,idx){hash[val]=true});return hash}function formatValue(ctx,value,recurseTimes){if(ctx.customInspect&&value&&isFunction(value.inspect)&&value.inspect!==exports.inspect&&!(value.constructor&&value.constructor.prototype===value)){var ret=value.inspect(recurseTimes,ctx);if(!isString(ret)){ret=formatValue(ctx,ret,recurseTimes)}return ret}var primitive=formatPrimitive(ctx,value);if(primitive){return primitive}var keys=Object.keys(value);var visibleKeys=arrayToHash(keys);if(ctx.showHidden){keys=Object.getOwnPropertyNames(value)}if(isError(value)&&(keys.indexOf("message")>=0||keys.indexOf("description")>=0)){return formatError(value)}if(keys.length===0){if(isFunction(value)){var name=value.name?": "+value.name:"";return ctx.stylize("[Function"+name+"]","special")}if(isRegExp(value)){return ctx.stylize(RegExp.prototype.toString.call(value),"regexp")}if(isDate(value)){return ctx.stylize(Date.prototype.toString.call(value),"date")}if(isError(value)){return formatError(value)}}var base="",array=false,braces=["{","}"];if(isArray(value)){array=true;braces=["[","]"]}if(isFunction(value)){var n=value.name?": "+value.name:"";base=" [Function"+n+"]"}if(isRegExp(value)){base=" "+RegExp.prototype.toString.call(value)}if(isDate(value)){base=" "+Date.prototype.toUTCString.call(value)}if(isError(value)){base=" "+formatError(value)}if(keys.length===0&&(!array||value.length==0)){return braces[0]+base+braces[1]}if(recurseTimes<0){if(isRegExp(value)){return ctx.stylize(RegExp.prototype.toString.call(value),"regexp")}else{return ctx.stylize("[Object]","special")}}ctx.seen.push(value);var output;if(array){output=formatArray(ctx,value,recurseTimes,visibleKeys,keys)}else{output=keys.map(function(key){return formatProperty(ctx,value,recurseTimes,visibleKeys,key,array)})}ctx.seen.pop();return reduceToSingleString(output,base,braces)}function formatPrimitive(ctx,value){if(isUndefined(value))return ctx.stylize("undefined","undefined");if(isString(value)){var simple="'"+JSON.stringify(value).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return ctx.stylize(simple,"string")}if(isNumber(value))return ctx.stylize(""+value,"number");if(isBoolean(value))return ctx.stylize(""+value,"boolean");if(isNull(value))return ctx.stylize("null","null")}function formatError(value){return"["+Error.prototype.toString.call(value)+"]"}function formatArray(ctx,value,recurseTimes,visibleKeys,keys){var output=[];for(var i=0,l=value.length;i-1){if(array){str=str.split("\n").map(function(line){return" "+line}).join("\n").substr(2)}else{str="\n"+str.split("\n").map(function(line){return" "+line}).join("\n")}}}else{str=ctx.stylize("[Circular]","special")}}if(isUndefined(name)){if(array&&key.match(/^\d+$/)){return str}name=JSON.stringify(""+key);if(name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)){name=name.substr(1,name.length-2);name=ctx.stylize(name,"name")}else{name=name.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'");name=ctx.stylize(name,"string")}}return name+": "+str}function reduceToSingleString(output,base,braces){var numLinesEst=0;var length=output.reduce(function(prev,cur){numLinesEst++;if(cur.indexOf("\n")>=0)numLinesEst++;return prev+cur.replace(/\u001b\[\d\d?m/g,"").length+1},0);if(length>60){return braces[0]+(base===""?"":base+"\n ")+" "+output.join(",\n ")+" "+braces[1]}return braces[0]+base+" "+output.join(", ")+" "+braces[1]}function isArray(ar){return Array.isArray(ar)}exports.isArray=isArray;function isBoolean(arg){return typeof arg==="boolean"}exports.isBoolean=isBoolean;function isNull(arg){return arg===null}exports.isNull=isNull;function isNullOrUndefined(arg){return arg==null}exports.isNullOrUndefined=isNullOrUndefined;function isNumber(arg){return typeof arg==="number"}exports.isNumber=isNumber;function isString(arg){return typeof arg==="string"}exports.isString=isString;function isSymbol(arg){return(typeof arg==="undefined"?"undefined":_typeof(arg))==="symbol"}exports.isSymbol=isSymbol;function isUndefined(arg){return arg===void 0}exports.isUndefined=isUndefined;function isRegExp(re){return isObject(re)&&objectToString(re)==="[object RegExp]"}exports.isRegExp=isRegExp;function isObject(arg){return(typeof arg==="undefined"?"undefined":_typeof(arg))==="object"&&arg!==null}exports.isObject=isObject;function isDate(d){return isObject(d)&&objectToString(d)==="[object Date]"}exports.isDate=isDate;function isError(e){return isObject(e)&&(objectToString(e)==="[object Error]"||e instanceof Error)}exports.isError=isError;function isFunction(arg){return typeof arg==="function"}exports.isFunction=isFunction;function isPrimitive(arg){return arg===null||typeof arg==="boolean"||typeof arg==="number"||typeof arg==="string"||(typeof arg==="undefined"?"undefined":_typeof(arg))==="symbol"||typeof arg==="undefined"}exports.isPrimitive=isPrimitive;exports.isBuffer=require("./support/isBuffer");function objectToString(o){return Object.prototype.toString.call(o)}function pad(n){return n<10?"0"+n.toString(10):n.toString(10)}var months=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function timestamp(){var d=new Date;var time=[pad(d.getHours()),pad(d.getMinutes()),pad(d.getSeconds())].join(":");return[d.getDate(),months[d.getMonth()],time].join(" ")}exports.log=function(){console.log("%s - %s",timestamp(),exports.format.apply(exports,arguments))};exports.inherits=require("inherits");exports._extend=function(origin,add){if(!add||!isObject(add))return origin;var keys=Object.keys(add);var i=keys.length;while(i--){origin[keys[i]]=add[keys[i]]}return origin};function hasOwnProperty(obj,prop){return Object.prototype.hasOwnProperty.call(obj,prop)}}).call(this,require("_process"),typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"./support/isBuffer":20,_process:18,inherits:19}],22:[function(require,module,exports){"use strict";var esutils=require("esutils");var espree=require("espree");var anyFunctionPattern=/^(?:Function(?:Declaration|Expression)|ArrowFunctionExpression)$/;var anyLoopPattern=/^(?:DoWhile|For|ForIn|ForOf|While)Statement$/;var arrayOrTypedArrayPattern=/Array$/;var arrayMethodPattern=/^(?:every|filter|find|findIndex|forEach|map|some)$/;var bindOrCallOrApplyPattern=/^(?:bind|call|apply)$/;var breakableTypePattern=/^(?:(?:Do)?While|For(?:In|Of)?|Switch)Statement$/;var thisTagPattern=/^[\s*]*@this/m;var COMMENTS_IGNORE_PATTERN=/^\s*(?:eslint|jshint\s+|jslint\s+|istanbul\s+|globals?\s+|exported\s+|jscs)/;var LINEBREAKS=new Set(["\r\n","\r","\n","\u2028","\u2029"]);var LINEBREAK_MATCHER=/\r\n|[\r\n\u2028\u2029]/;var SHEBANG_MATCHER=/^#!([^\r\n]+)/;var STATEMENT_LIST_PARENTS=new Set(["Program","BlockStatement","SwitchCase"]);function isModifyingReference(reference,index,references){var identifier=reference.identifier;var modifyingDifferentIdentifier=index===0||references[index-1].identifier!==identifier;return identifier&&reference.init===false&&reference.isWrite()&&modifyingDifferentIdentifier}function startsWithUpperCase(s){return s[0]!==s[0].toLocaleLowerCase()}function isES5Constructor(node){return node.id&&startsWithUpperCase(node.id.name)}function getUpperFunction(node){while(node){if(anyFunctionPattern.test(node.type)){return node}node=node.parent}return null}function isFunction(node){return Boolean(node&&anyFunctionPattern.test(node.type))}function isLoop(node){return Boolean(node&&anyLoopPattern.test(node.type))}function isInLoop(node){while(node&&!isFunction(node)){if(isLoop(node)){return true}node=node.parent}return false}function isNullOrUndefined(node){return module.exports.isNullLiteral(node)||node.type==="Identifier"&&node.name==="undefined"||node.type==="UnaryExpression"&&node.operator==="void"}function isCallee(node){return node.parent.type==="CallExpression"&&node.parent.callee===node}function isReflectApply(node){return node.type==="MemberExpression"&&node.object.type==="Identifier"&&node.object.name==="Reflect"&&node.property.type==="Identifier"&&node.property.name==="apply"&&node.computed===false}function isArrayFromMethod(node){return node.type==="MemberExpression"&&node.object.type==="Identifier"&&arrayOrTypedArrayPattern.test(node.object.name)&&node.property.type==="Identifier"&&node.property.name==="from"&&node.computed===false}function isMethodWhichHasThisArg(node){while(node){if(node.type==="Identifier"){return arrayMethodPattern.test(node.name)}if(node.type==="MemberExpression"&&!node.computed){node=node.property;continue}break}return false}function negate(f){return function(token){return!f(token)}}function hasJSDocThisTag(node,sourceCode){var jsdocComment=sourceCode.getJSDocComment(node);if(jsdocComment&&thisTagPattern.test(jsdocComment.value)){return true}return sourceCode.getCommentsBefore(node).some(function(comment){return thisTagPattern.test(comment.value)})}function isParenthesised(sourceCode,node){var previousToken=sourceCode.getTokenBefore(node),nextToken=sourceCode.getTokenAfter(node);return Boolean(previousToken&&nextToken)&&previousToken.value==="("&&previousToken.range[1]<=node.range[0]&&nextToken.value===")"&&nextToken.range[0]>=node.range[1]}function isArrowToken(token){return token.value==="=>"&&token.type==="Punctuator"}function isCommaToken(token){return token.value===","&&token.type==="Punctuator"}function isSemicolonToken(token){return token.value===";"&&token.type==="Punctuator"}function isColonToken(token){return token.value===":"&&token.type==="Punctuator"}function isOpeningParenToken(token){return token.value==="("&&token.type==="Punctuator"}function isClosingParenToken(token){return token.value===")"&&token.type==="Punctuator"}function isOpeningBracketToken(token){return token.value==="["&&token.type==="Punctuator"}function isClosingBracketToken(token){return token.value==="]"&&token.type==="Punctuator"}function isOpeningBraceToken(token){return token.value==="{"&&token.type==="Punctuator"}function isClosingBraceToken(token){return token.value==="}"&&token.type==="Punctuator"}function isCommentToken(token){return token.type==="Line"||token.type==="Block"||token.type==="Shebang"}function isKeywordToken(token){return token.type==="Keyword"}function getOpeningParenOfParams(node,sourceCode){return node.id?sourceCode.getTokenAfter(node.id,isOpeningParenToken):sourceCode.getFirstToken(node,isOpeningParenToken)}function createGlobalLinebreakMatcher(){return new RegExp(LINEBREAK_MATCHER.source,"g")}module.exports={COMMENTS_IGNORE_PATTERN:COMMENTS_IGNORE_PATTERN,LINEBREAKS:LINEBREAKS,LINEBREAK_MATCHER:LINEBREAK_MATCHER,SHEBANG_MATCHER:SHEBANG_MATCHER,STATEMENT_LIST_PARENTS:STATEMENT_LIST_PARENTS,isTokenOnSameLine:function isTokenOnSameLine(left,right){return left.loc.end.line===right.loc.start.line},isNullOrUndefined:isNullOrUndefined,isCallee:isCallee,isES5Constructor:isES5Constructor,getUpperFunction:getUpperFunction,isFunction:isFunction,isLoop:isLoop,isInLoop:isInLoop,isArrayFromMethod:isArrayFromMethod,isParenthesised:isParenthesised,createGlobalLinebreakMatcher:createGlobalLinebreakMatcher,isArrowToken:isArrowToken,isClosingBraceToken:isClosingBraceToken,isClosingBracketToken:isClosingBracketToken,isClosingParenToken:isClosingParenToken,isColonToken:isColonToken,isCommaToken:isCommaToken,isCommentToken:isCommentToken,isKeywordToken:isKeywordToken,isNotClosingBraceToken:negate(isClosingBraceToken),isNotClosingBracketToken:negate(isClosingBracketToken),isNotClosingParenToken:negate(isClosingParenToken),isNotColonToken:negate(isColonToken),isNotCommaToken:negate(isCommaToken),isNotOpeningBraceToken:negate(isOpeningBraceToken),isNotOpeningBracketToken:negate(isOpeningBracketToken),isNotOpeningParenToken:negate(isOpeningParenToken),isNotSemicolonToken:negate(isSemicolonToken),isOpeningBraceToken:isOpeningBraceToken,isOpeningBracketToken:isOpeningBracketToken,isOpeningParenToken:isOpeningParenToken,isSemicolonToken:isSemicolonToken,isStringLiteral:function isStringLiteral(node){return node.type==="Literal"&&typeof node.value==="string"||node.type==="TemplateLiteral"},isBreakableStatement:function isBreakableStatement(node){return breakableTypePattern.test(node.type)},getLabel:function getLabel(node){if(node.parent.type==="LabeledStatement"){return node.parent.label.name}return null},getModifyingReferences:function getModifyingReferences(references){return references.filter(isModifyingReference)},isSurroundedBy:function isSurroundedBy(val,character){return val[0]===character&&val[val.length-1]===character},isDirectiveComment:function isDirectiveComment(node){var comment=node.value.trim();return node.type==="Line"&&comment.indexOf("eslint-")===0||node.type==="Block"&&(comment.indexOf("global ")===0||comment.indexOf("eslint ")===0||comment.indexOf("eslint-")===0)},getTrailingStatement:esutils.ast.trailingStatement,getVariableByName:function getVariableByName(initScope,name){var scope=initScope;while(scope){var variable=scope.set.get(name);if(variable){return variable}scope=scope.upper}return null},isDefaultThisBinding:function isDefaultThisBinding(node,sourceCode){if(isES5Constructor(node)||hasJSDocThisTag(node,sourceCode)){return false}var isAnonymous=node.id===null;while(node){var parent=node.parent;switch(parent.type){case"LogicalExpression":case"ConditionalExpression":node=parent;break;case"ReturnStatement":{var func=getUpperFunction(parent);if(func===null||!isCallee(func)){return true}node=func.parent;break}case"Property":case"MethodDefinition":return parent.value!==node;case"AssignmentExpression":case"AssignmentPattern":if(parent.right===node){if(parent.left.type==="MemberExpression"){return false}if(isAnonymous&&parent.left.type==="Identifier"&&startsWithUpperCase(parent.left.name)){return false}}return true;case"VariableDeclarator":return!(isAnonymous&&parent.init===node&&parent.id.type==="Identifier"&&startsWithUpperCase(parent.id.name));case"MemberExpression":return parent.object!==node||parent.property.type!=="Identifier"||!bindOrCallOrApplyPattern.test(parent.property.name)||!isCallee(parent)||parent.parent.arguments.length===0||isNullOrUndefined(parent.parent.arguments[0]);case"CallExpression":if(isReflectApply(parent.callee)){return parent.arguments.length!==3||parent.arguments[0]!==node||isNullOrUndefined(parent.arguments[1])}if(isArrayFromMethod(parent.callee)){return parent.arguments.length!==3||parent.arguments[1]!==node||isNullOrUndefined(parent.arguments[2])}if(isMethodWhichHasThisArg(parent.callee)){return parent.arguments.length!==2||parent.arguments[0]!==node||isNullOrUndefined(parent.arguments[1])}return true;default:return true}}return true},getPrecedence:function getPrecedence(node){switch(node.type){case"SequenceExpression":return 0;case"AssignmentExpression":case"ArrowFunctionExpression":case"YieldExpression":return 1;case"ConditionalExpression":return 3;case"LogicalExpression":switch(node.operator){case"||":return 4;case"&&":return 5}case"BinaryExpression":switch(node.operator){case"|":return 6;case"^":return 7;case"&":return 8;case"==":case"!=":case"===":case"!==":return 9;case"<":case"<=":case">":case">=":case"in":case"instanceof":return 10;case"<<":case">>":case">>>":return 11;case"+":case"-":return 12;case"*":case"/":case"%":return 13;case"**":return 15}case"UnaryExpression":case"AwaitExpression":return 16;case"UpdateExpression":return 17;case"CallExpression":if(node.callee.type==="FunctionExpression"){return-1}return 18;case"NewExpression":return 19}return 20},isEmptyBlock:function isEmptyBlock(node){return Boolean(node&&node.type==="BlockStatement"&&node.body.length===0)},isEmptyFunction:function isEmptyFunction(node){return isFunction(node)&&module.exports.isEmptyBlock(node.body)},getStaticPropertyName:function getStaticPropertyName(node){var prop=void 0;switch(node&&node.type){case"Property":case"MethodDefinition":prop=node.key;break;case"MemberExpression":prop=node.property;break}switch(prop&&prop.type){case"Literal":return String(prop.value);case"TemplateLiteral":if(prop.expressions.length===0&&prop.quasis.length===1){return prop.quasis[0].value.cooked}break;case"Identifier":if(!node.computed){return prop.name}break}return null},getDirectivePrologue:function getDirectivePrologue(node){var directives=[];if(node.type==="Program"||node.type==="FunctionDeclaration"||node.type==="FunctionExpression"||node.type==="ArrowFunctionExpression"&&node.body.type==="BlockStatement"){var statements=node.type==="Program"?node.body:node.body.body;var _iteratorNormalCompletion=true;var _didIteratorError=false;var _iteratorError=undefined;try{for(var _iterator=statements[Symbol.iterator](),_step;!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=true){var statement=_step.value;if(statement.type==="ExpressionStatement"&&statement.expression.type==="Literal"){directives.push(statement)}else{break}}}catch(err){_didIteratorError=true;_iteratorError=err}finally{try{if(!_iteratorNormalCompletion&&_iterator.return){_iterator.return()}}finally{if(_didIteratorError){throw _iteratorError}}}}return directives},isDecimalInteger:function isDecimalInteger(node){return node.type==="Literal"&&typeof node.value==="number"&&/^(0|[1-9]\d*)$/.test(node.raw)},getFunctionNameWithKind:function getFunctionNameWithKind(node){var parent=node.parent;var tokens=[];if(parent.type==="MethodDefinition"&&parent.static){tokens.push("static")}if(node.async){tokens.push("async")}if(node.generator){tokens.push("generator")}if(node.type==="ArrowFunctionExpression"){tokens.push("arrow","function")}else if(parent.type==="Property"||parent.type==="MethodDefinition"){if(parent.kind==="constructor"){return"constructor"}else if(parent.kind==="get"){tokens.push("getter")}else if(parent.kind==="set"){tokens.push("setter")}else{tokens.push("method")}}else{tokens.push("function")}if(node.id){tokens.push("'"+node.id.name+"'")}else{var name=module.exports.getStaticPropertyName(parent);if(name){tokens.push("'"+name+"'")}}return tokens.join(" ")},getFunctionHeadLoc:function getFunctionHeadLoc(node,sourceCode){var parent=node.parent;var start=null;var end=null;if(node.type==="ArrowFunctionExpression"){var arrowToken=sourceCode.getTokenBefore(node.body,isArrowToken);start=arrowToken.loc.start;end=arrowToken.loc.end}else if(parent.type==="Property"||parent.type==="MethodDefinition"){start=parent.loc.start;end=getOpeningParenOfParams(node,sourceCode).loc.start}else{start=node.loc.start;end=getOpeningParenOfParams(node,sourceCode).loc.start}return{start:Object.assign({},start),end:Object.assign({},end)}},getParenthesisedText:function getParenthesisedText(sourceCode,node){var leftToken=sourceCode.getFirstToken(node);var rightToken=sourceCode.getLastToken(node);while(sourceCode.getTokenBefore(leftToken)&&sourceCode.getTokenBefore(leftToken).type==="Punctuator"&&sourceCode.getTokenBefore(leftToken).value==="("&&sourceCode.getTokenAfter(rightToken)&&sourceCode.getTokenAfter(rightToken).type==="Punctuator"&&sourceCode.getTokenAfter(rightToken).value===")"){leftToken=sourceCode.getTokenBefore(leftToken);rightToken=sourceCode.getTokenAfter(rightToken)}return sourceCode.getText().slice(leftToken.range[0],rightToken.range[1])},couldBeError:function couldBeError(node){switch(node.type){case"Identifier":case"CallExpression":case"NewExpression":case"MemberExpression":case"TaggedTemplateExpression":case"YieldExpression":case"AwaitExpression":return true;case"AssignmentExpression":return module.exports.couldBeError(node.right);case"SequenceExpression":{var exprs=node.expressions;return exprs.length!==0&&module.exports.couldBeError(exprs[exprs.length-1])}case"LogicalExpression":return module.exports.couldBeError(node.left)||module.exports.couldBeError(node.right);case"ConditionalExpression":return module.exports.couldBeError(node.consequent)||module.exports.couldBeError(node.alternate);default:return false}},isNullLiteral:function isNullLiteral(node){return node.type==="Literal"&&node.value===null&&!node.regex},canTokensBeAdjacent:function canTokensBeAdjacent(leftValue,rightValue){var leftToken=void 0;if(typeof leftValue==="string"){var leftTokens=espree.tokenize(leftValue,{ecmaVersion:2015});leftToken=leftTokens[leftTokens.length-1]}else{leftToken=leftValue}var rightToken=typeof rightValue==="string"?espree.tokenize(rightValue,{ecmaVersion:2015})[0]:rightValue;if(leftToken.type==="Punctuator"||rightToken.type==="Punctuator"){if(leftToken.type==="Punctuator"&&rightToken.type==="Punctuator"){var PLUS_TOKENS=new Set(["+","++"]);var MINUS_TOKENS=new Set(["-","--"]);return!(PLUS_TOKENS.has(leftToken.value)&&PLUS_TOKENS.has(rightToken.value)||MINUS_TOKENS.has(leftToken.value)&&MINUS_TOKENS.has(rightToken.value))}return true}if(leftToken.type==="String"||rightToken.type==="String"||leftToken.type==="Template"||rightToken.type==="Template"){return true}if(leftToken.type!=="Numeric"&&rightToken.type==="Numeric"&&rightToken.value.startsWith(".")){return true}return false}}},{espree:"espree",esutils:11}],23:[function(require,module,exports){"use strict";module.exports=function(){var rules=Object.create(null);rules["accessor-pairs"]=require("./rules/accessor-pairs");rules["array-bracket-newline"]=require("./rules/array-bracket-newline");rules["array-bracket-spacing"]=require("./rules/array-bracket-spacing");rules["array-callback-return"]=require("./rules/array-callback-return");rules["array-element-newline"]=require("./rules/array-element-newline");rules["arrow-body-style"]=require("./rules/arrow-body-style");rules["arrow-parens"]=require("./rules/arrow-parens");rules["arrow-spacing"]=require("./rules/arrow-spacing");rules["block-scoped-var"]=require("./rules/block-scoped-var");rules["block-spacing"]=require("./rules/block-spacing");rules["brace-style"]=require("./rules/brace-style");rules["callback-return"]=require("./rules/callback-return");rules["camelcase"]=require("./rules/camelcase");rules["capitalized-comments"]=require("./rules/capitalized-comments");rules["class-methods-use-this"]=require("./rules/class-methods-use-this");rules["comma-dangle"]=require("./rules/comma-dangle");rules["comma-spacing"]=require("./rules/comma-spacing");rules["comma-style"]=require("./rules/comma-style");rules["complexity"]=require("./rules/complexity");rules["computed-property-spacing"]=require("./rules/computed-property-spacing");rules["consistent-return"]=require("./rules/consistent-return");rules["consistent-this"]=require("./rules/consistent-this");rules["constructor-super"]=require("./rules/constructor-super");rules["curly"]=require("./rules/curly");rules["default-case"]=require("./rules/default-case");rules["dot-location"]=require("./rules/dot-location");rules["dot-notation"]=require("./rules/dot-notation");rules["eol-last"]=require("./rules/eol-last");rules["eqeqeq"]=require("./rules/eqeqeq");rules["for-direction"]=require("./rules/for-direction");rules["func-call-spacing"]=require("./rules/func-call-spacing");rules["func-name-matching"]=require("./rules/func-name-matching");rules["func-names"]=require("./rules/func-names");rules["func-style"]=require("./rules/func-style");rules["generator-star-spacing"]=require("./rules/generator-star-spacing");rules["global-require"]=require("./rules/global-require");rules["guard-for-in"]=require("./rules/guard-for-in");rules["handle-callback-err"]=require("./rules/handle-callback-err");rules["id-blacklist"]=require("./rules/id-blacklist");rules["id-length"]=require("./rules/id-length");rules["id-match"]=require("./rules/id-match");rules["indent-legacy"]=require("./rules/indent-legacy");rules["indent"]=require("./rules/indent");rules["init-declarations"]=require("./rules/init-declarations");rules["jsx-quotes"]=require("./rules/jsx-quotes");rules["key-spacing"]=require("./rules/key-spacing");rules["keyword-spacing"]=require("./rules/keyword-spacing");rules["line-comment-position"]=require("./rules/line-comment-position");rules["linebreak-style"]=require("./rules/linebreak-style");rules["lines-around-comment"]=require("./rules/lines-around-comment");rules["lines-around-directive"]=require("./rules/lines-around-directive");rules["max-depth"]=require("./rules/max-depth");rules["max-len"]=require("./rules/max-len");rules["max-lines"]=require("./rules/max-lines");rules["max-nested-callbacks"]=require("./rules/max-nested-callbacks");rules["max-params"]=require("./rules/max-params");rules["max-statements-per-line"]=require("./rules/max-statements-per-line");rules["max-statements"]=require("./rules/max-statements");rules["multiline-ternary"]=require("./rules/multiline-ternary");rules["new-cap"]=require("./rules/new-cap");rules["new-parens"]=require("./rules/new-parens");rules["newline-after-var"]=require("./rules/newline-after-var");rules["newline-before-return"]=require("./rules/newline-before-return");rules["newline-per-chained-call"]=require("./rules/newline-per-chained-call");rules["no-alert"]=require("./rules/no-alert");rules["no-array-constructor"]=require("./rules/no-array-constructor");rules["no-await-in-loop"]=require("./rules/no-await-in-loop");rules["no-bitwise"]=require("./rules/no-bitwise");rules["no-buffer-constructor"]=require("./rules/no-buffer-constructor");rules["no-caller"]=require("./rules/no-caller");rules["no-case-declarations"]=require("./rules/no-case-declarations");rules["no-catch-shadow"]=require("./rules/no-catch-shadow");rules["no-class-assign"]=require("./rules/no-class-assign");rules["no-compare-neg-zero"]=require("./rules/no-compare-neg-zero");rules["no-cond-assign"]=require("./rules/no-cond-assign");rules["no-confusing-arrow"]=require("./rules/no-confusing-arrow");rules["no-console"]=require("./rules/no-console");rules["no-const-assign"]=require("./rules/no-const-assign");rules["no-constant-condition"]=require("./rules/no-constant-condition");rules["no-continue"]=require("./rules/no-continue");rules["no-control-regex"]=require("./rules/no-control-regex");rules["no-debugger"]=require("./rules/no-debugger");rules["no-delete-var"]=require("./rules/no-delete-var");rules["no-div-regex"]=require("./rules/no-div-regex");rules["no-dupe-args"]=require("./rules/no-dupe-args");rules["no-dupe-class-members"]=require("./rules/no-dupe-class-members");rules["no-dupe-keys"]=require("./rules/no-dupe-keys");rules["no-duplicate-case"]=require("./rules/no-duplicate-case");rules["no-duplicate-imports"]=require("./rules/no-duplicate-imports");rules["no-else-return"]=require("./rules/no-else-return");rules["no-empty-character-class"]=require("./rules/no-empty-character-class");rules["no-empty-function"]=require("./rules/no-empty-function");rules["no-empty-pattern"]=require("./rules/no-empty-pattern");rules["no-empty"]=require("./rules/no-empty");rules["no-eq-null"]=require("./rules/no-eq-null");rules["no-eval"]=require("./rules/no-eval");rules["no-ex-assign"]=require("./rules/no-ex-assign");rules["no-extend-native"]=require("./rules/no-extend-native");rules["no-extra-bind"]=require("./rules/no-extra-bind");rules["no-extra-boolean-cast"]=require("./rules/no-extra-boolean-cast");rules["no-extra-label"]=require("./rules/no-extra-label");rules["no-extra-parens"]=require("./rules/no-extra-parens");rules["no-extra-semi"]=require("./rules/no-extra-semi");rules["no-fallthrough"]=require("./rules/no-fallthrough");rules["no-floating-decimal"]=require("./rules/no-floating-decimal");rules["no-func-assign"]=require("./rules/no-func-assign");rules["no-global-assign"]=require("./rules/no-global-assign");rules["no-implicit-coercion"]=require("./rules/no-implicit-coercion");rules["no-implicit-globals"]=require("./rules/no-implicit-globals");rules["no-implied-eval"]=require("./rules/no-implied-eval");rules["no-inline-comments"]=require("./rules/no-inline-comments");rules["no-inner-declarations"]=require("./rules/no-inner-declarations");rules["no-invalid-regexp"]=require("./rules/no-invalid-regexp");rules["no-invalid-this"]=require("./rules/no-invalid-this");rules["no-irregular-whitespace"]=require("./rules/no-irregular-whitespace");rules["no-iterator"]=require("./rules/no-iterator");rules["no-label-var"]=require("./rules/no-label-var");rules["no-labels"]=require("./rules/no-labels");rules["no-lone-blocks"]=require("./rules/no-lone-blocks");rules["no-lonely-if"]=require("./rules/no-lonely-if");rules["no-loop-func"]=require("./rules/no-loop-func");rules["no-magic-numbers"]=require("./rules/no-magic-numbers");rules["no-mixed-operators"]=require("./rules/no-mixed-operators");rules["no-mixed-requires"]=require("./rules/no-mixed-requires");rules["no-mixed-spaces-and-tabs"]=require("./rules/no-mixed-spaces-and-tabs");rules["no-multi-assign"]=require("./rules/no-multi-assign");rules["no-multi-spaces"]=require("./rules/no-multi-spaces");rules["no-multi-str"]=require("./rules/no-multi-str");rules["no-multiple-empty-lines"]=require("./rules/no-multiple-empty-lines");rules["no-native-reassign"]=require("./rules/no-native-reassign");rules["no-negated-condition"]=require("./rules/no-negated-condition");rules["no-negated-in-lhs"]=require("./rules/no-negated-in-lhs");rules["no-nested-ternary"]=require("./rules/no-nested-ternary");rules["no-new-func"]=require("./rules/no-new-func");rules["no-new-object"]=require("./rules/no-new-object");rules["no-new-require"]=require("./rules/no-new-require");rules["no-new-symbol"]=require("./rules/no-new-symbol");rules["no-new-wrappers"]=require("./rules/no-new-wrappers");rules["no-new"]=require("./rules/no-new");rules["no-obj-calls"]=require("./rules/no-obj-calls");rules["no-octal-escape"]=require("./rules/no-octal-escape");rules["no-octal"]=require("./rules/no-octal");rules["no-param-reassign"]=require("./rules/no-param-reassign");rules["no-path-concat"]=require("./rules/no-path-concat");rules["no-plusplus"]=require("./rules/no-plusplus");rules["no-process-env"]=require("./rules/no-process-env");rules["no-process-exit"]=require("./rules/no-process-exit");rules["no-proto"]=require("./rules/no-proto");rules["no-prototype-builtins"]=require("./rules/no-prototype-builtins");rules["no-redeclare"]=require("./rules/no-redeclare");rules["no-regex-spaces"]=require("./rules/no-regex-spaces");rules["no-restricted-globals"]=require("./rules/no-restricted-globals");rules["no-restricted-imports"]=require("./rules/no-restricted-imports");rules["no-restricted-modules"]=require("./rules/no-restricted-modules");rules["no-restricted-properties"]=require("./rules/no-restricted-properties");rules["no-restricted-syntax"]=require("./rules/no-restricted-syntax");rules["no-return-assign"]=require("./rules/no-return-assign");rules["no-return-await"]=require("./rules/no-return-await");rules["no-script-url"]=require("./rules/no-script-url");rules["no-self-assign"]=require("./rules/no-self-assign");rules["no-self-compare"]=require("./rules/no-self-compare");rules["no-sequences"]=require("./rules/no-sequences");rules["no-shadow-restricted-names"]=require("./rules/no-shadow-restricted-names");rules["no-shadow"]=require("./rules/no-shadow");rules["no-spaced-func"]=require("./rules/no-spaced-func");rules["no-sparse-arrays"]=require("./rules/no-sparse-arrays");rules["no-sync"]=require("./rules/no-sync");rules["no-tabs"]=require("./rules/no-tabs");rules["no-template-curly-in-string"]=require("./rules/no-template-curly-in-string");rules["no-ternary"]=require("./rules/no-ternary");rules["no-this-before-super"]=require("./rules/no-this-before-super");rules["no-throw-literal"]=require("./rules/no-throw-literal");rules["no-trailing-spaces"]=require("./rules/no-trailing-spaces");rules["no-undef-init"]=require("./rules/no-undef-init");rules["no-undef"]=require("./rules/no-undef");rules["no-undefined"]=require("./rules/no-undefined");rules["no-underscore-dangle"]=require("./rules/no-underscore-dangle");rules["no-unexpected-multiline"]=require("./rules/no-unexpected-multiline");rules["no-unmodified-loop-condition"]=require("./rules/no-unmodified-loop-condition");rules["no-unneeded-ternary"]=require("./rules/no-unneeded-ternary");rules["no-unreachable"]=require("./rules/no-unreachable");rules["no-unsafe-finally"]=require("./rules/no-unsafe-finally");rules["no-unsafe-negation"]=require("./rules/no-unsafe-negation");rules["no-unused-expressions"]=require("./rules/no-unused-expressions");rules["no-unused-labels"]=require("./rules/no-unused-labels");rules["no-unused-vars"]=require("./rules/no-unused-vars");rules["no-use-before-define"]=require("./rules/no-use-before-define");rules["no-useless-call"]=require("./rules/no-useless-call");rules["no-useless-computed-key"]=require("./rules/no-useless-computed-key");rules["no-useless-concat"]=require("./rules/no-useless-concat");rules["no-useless-constructor"]=require("./rules/no-useless-constructor");rules["no-useless-escape"]=require("./rules/no-useless-escape");rules["no-useless-rename"]=require("./rules/no-useless-rename");rules["no-useless-return"]=require("./rules/no-useless-return");rules["no-var"]=require("./rules/no-var");rules["no-void"]=require("./rules/no-void");rules["no-warning-comments"]=require("./rules/no-warning-comments");rules["no-whitespace-before-property"]=require("./rules/no-whitespace-before-property");rules["no-with"]=require("./rules/no-with");rules["nonblock-statement-body-position"]=require("./rules/nonblock-statement-body-position");rules["object-curly-newline"]=require("./rules/object-curly-newline");rules["object-curly-spacing"]=require("./rules/object-curly-spacing");rules["object-property-newline"]=require("./rules/object-property-newline");rules["object-shorthand"]=require("./rules/object-shorthand");rules["one-var-declaration-per-line"]=require("./rules/one-var-declaration-per-line");rules["one-var"]=require("./rules/one-var");rules["operator-assignment"]=require("./rules/operator-assignment");rules["operator-linebreak"]=require("./rules/operator-linebreak");rules["padded-blocks"]=require("./rules/padded-blocks");rules["padding-line-between-statements"]=require("./rules/padding-line-between-statements");rules["prefer-arrow-callback"]=require("./rules/prefer-arrow-callback");rules["prefer-const"]=require("./rules/prefer-const");rules["prefer-destructuring"]=require("./rules/prefer-destructuring");rules["prefer-numeric-literals"]=require("./rules/prefer-numeric-literals");rules["prefer-promise-reject-errors"]=require("./rules/prefer-promise-reject-errors");rules["prefer-reflect"]=require("./rules/prefer-reflect");rules["prefer-rest-params"]=require("./rules/prefer-rest-params");rules["prefer-spread"]=require("./rules/prefer-spread");rules["prefer-template"]=require("./rules/prefer-template");rules["quote-props"]=require("./rules/quote-props");rules["quotes"]=require("./rules/quotes");rules["radix"]=require("./rules/radix");rules["require-await"]=require("./rules/require-await");rules["require-jsdoc"]=require("./rules/require-jsdoc");rules["require-yield"]=require("./rules/require-yield");rules["rest-spread-spacing"]=require("./rules/rest-spread-spacing");rules["semi-spacing"]=require("./rules/semi-spacing");rules["semi-style"]=require("./rules/semi-style");rules["semi"]=require("./rules/semi");rules["sort-imports"]=require("./rules/sort-imports");rules["sort-keys"]=require("./rules/sort-keys");rules["sort-vars"]=require("./rules/sort-vars");rules["space-before-blocks"]=require("./rules/space-before-blocks");rules["space-before-function-paren"]=require("./rules/space-before-function-paren");rules["space-in-parens"]=require("./rules/space-in-parens");rules["space-infix-ops"]=require("./rules/space-infix-ops");rules["space-unary-ops"]=require("./rules/space-unary-ops");rules["spaced-comment"]=require("./rules/spaced-comment");rules["strict"]=require("./rules/strict");rules["switch-colon-spacing"]=require("./rules/switch-colon-spacing");rules["symbol-description"]=require("./rules/symbol-description");rules["template-curly-spacing"]=require("./rules/template-curly-spacing");rules["template-tag-spacing"]=require("./rules/template-tag-spacing");rules["unicode-bom"]=require("./rules/unicode-bom");rules["use-isnan"]=require("./rules/use-isnan");rules["valid-jsdoc"]=require("./rules/valid-jsdoc");rules["valid-typeof"]=require("./rules/valid-typeof");rules["vars-on-top"]=require("./rules/vars-on-top");rules["wrap-iife"]=require("./rules/wrap-iife");rules["wrap-regex"]=require("./rules/wrap-regex");rules["yield-star-spacing"]=require("./rules/yield-star-spacing");rules["yoda"]=require("./rules/yoda");return rules}},{"./rules/accessor-pairs":25,"./rules/array-bracket-newline":26,"./rules/array-bracket-spacing":27,"./rules/array-callback-return":28,"./rules/array-element-newline":29,"./rules/arrow-body-style":30,"./rules/arrow-parens":31,"./rules/arrow-spacing":32,"./rules/block-scoped-var":33,"./rules/block-spacing":34,"./rules/brace-style":35,"./rules/callback-return":36,"./rules/camelcase":37,"./rules/capitalized-comments":38,"./rules/class-methods-use-this":39,"./rules/comma-dangle":40,"./rules/comma-spacing":41,"./rules/comma-style":42,"./rules/complexity":43,"./rules/computed-property-spacing":44,"./rules/consistent-return":45,"./rules/consistent-this":46,"./rules/constructor-super":47,"./rules/curly":48,"./rules/default-case":49,"./rules/dot-location":50,"./rules/dot-notation":51,"./rules/eol-last":52,"./rules/eqeqeq":53,"./rules/for-direction":54,"./rules/func-call-spacing":55,"./rules/func-name-matching":56,"./rules/func-names":57,"./rules/func-style":58,"./rules/generator-star-spacing":59,"./rules/global-require":60,"./rules/guard-for-in":61,"./rules/handle-callback-err":62,"./rules/id-blacklist":63,"./rules/id-length":64,"./rules/id-match":65,"./rules/indent":67,"./rules/indent-legacy":66,"./rules/init-declarations":68,"./rules/jsx-quotes":69,"./rules/key-spacing":70,"./rules/keyword-spacing":71,"./rules/line-comment-position":72,"./rules/linebreak-style":73,"./rules/lines-around-comment":74,"./rules/lines-around-directive":75,"./rules/max-depth":76,"./rules/max-len":77,"./rules/max-lines":78,"./rules/max-nested-callbacks":79,"./rules/max-params":80,"./rules/max-statements":82,"./rules/max-statements-per-line":81,"./rules/multiline-ternary":83,"./rules/new-cap":84,"./rules/new-parens":85,"./rules/newline-after-var":86,"./rules/newline-before-return":87,"./rules/newline-per-chained-call":88,"./rules/no-alert":89,"./rules/no-array-constructor":90,"./rules/no-await-in-loop":91,"./rules/no-bitwise":92,"./rules/no-buffer-constructor":93,"./rules/no-caller":94,"./rules/no-case-declarations":95,"./rules/no-catch-shadow":96,"./rules/no-class-assign":97,"./rules/no-compare-neg-zero":98,"./rules/no-cond-assign":99,"./rules/no-confusing-arrow":100,"./rules/no-console":101,"./rules/no-const-assign":102,"./rules/no-constant-condition":103,"./rules/no-continue":104,"./rules/no-control-regex":105,"./rules/no-debugger":106,"./rules/no-delete-var":107,"./rules/no-div-regex":108,"./rules/no-dupe-args":109,"./rules/no-dupe-class-members":110,"./rules/no-dupe-keys":111,"./rules/no-duplicate-case":112,"./rules/no-duplicate-imports":113,"./rules/no-else-return":114,"./rules/no-empty":118,"./rules/no-empty-character-class":115,"./rules/no-empty-function":116,"./rules/no-empty-pattern":117,"./rules/no-eq-null":119,"./rules/no-eval":120,"./rules/no-ex-assign":121,"./rules/no-extend-native":122,"./rules/no-extra-bind":123,"./rules/no-extra-boolean-cast":124,"./rules/no-extra-label":125,"./rules/no-extra-parens":126,"./rules/no-extra-semi":127,"./rules/no-fallthrough":128,"./rules/no-floating-decimal":129,"./rules/no-func-assign":130,"./rules/no-global-assign":131,"./rules/no-implicit-coercion":132,"./rules/no-implicit-globals":133,"./rules/no-implied-eval":134,"./rules/no-inline-comments":135,"./rules/no-inner-declarations":136,"./rules/no-invalid-regexp":137,"./rules/no-invalid-this":138,"./rules/no-irregular-whitespace":139,"./rules/no-iterator":140,"./rules/no-label-var":141,"./rules/no-labels":142,"./rules/no-lone-blocks":143,"./rules/no-lonely-if":144,"./rules/no-loop-func":145,"./rules/no-magic-numbers":146,"./rules/no-mixed-operators":147,"./rules/no-mixed-requires":148,"./rules/no-mixed-spaces-and-tabs":149,"./rules/no-multi-assign":150,"./rules/no-multi-spaces":151,"./rules/no-multi-str":152,"./rules/no-multiple-empty-lines":153,"./rules/no-native-reassign":154,"./rules/no-negated-condition":155,"./rules/no-negated-in-lhs":156,"./rules/no-nested-ternary":157,"./rules/no-new":163,"./rules/no-new-func":158,"./rules/no-new-object":159,"./rules/no-new-require":160,"./rules/no-new-symbol":161,"./rules/no-new-wrappers":162,"./rules/no-obj-calls":164,"./rules/no-octal":166,"./rules/no-octal-escape":165,"./rules/no-param-reassign":167,"./rules/no-path-concat":168,"./rules/no-plusplus":169,"./rules/no-process-env":170,"./rules/no-process-exit":171,"./rules/no-proto":172,"./rules/no-prototype-builtins":173,"./rules/no-redeclare":174,"./rules/no-regex-spaces":175,"./rules/no-restricted-globals":176,"./rules/no-restricted-imports":177,"./rules/no-restricted-modules":178,"./rules/no-restricted-properties":179,"./rules/no-restricted-syntax":180,"./rules/no-return-assign":181,"./rules/no-return-await":182,"./rules/no-script-url":183,"./rules/no-self-assign":184,"./rules/no-self-compare":185,"./rules/no-sequences":186,"./rules/no-shadow":188,"./rules/no-shadow-restricted-names":187,"./rules/no-spaced-func":189,"./rules/no-sparse-arrays":190,"./rules/no-sync":191,"./rules/no-tabs":192,"./rules/no-template-curly-in-string":193,"./rules/no-ternary":194,"./rules/no-this-before-super":195,"./rules/no-throw-literal":196,"./rules/no-trailing-spaces":197,"./rules/no-undef":199,"./rules/no-undef-init":198,"./rules/no-undefined":200,"./rules/no-underscore-dangle":201,"./rules/no-unexpected-multiline":202,"./rules/no-unmodified-loop-condition":203,"./rules/no-unneeded-ternary":204,"./rules/no-unreachable":205,"./rules/no-unsafe-finally":206,"./rules/no-unsafe-negation":207,"./rules/no-unused-expressions":208,"./rules/no-unused-labels":209,"./rules/no-unused-vars":210,"./rules/no-use-before-define":211,"./rules/no-useless-call":212,"./rules/no-useless-computed-key":213,"./rules/no-useless-concat":214,"./rules/no-useless-constructor":215,"./rules/no-useless-escape":216,"./rules/no-useless-rename":217,"./rules/no-useless-return":218,"./rules/no-var":219,"./rules/no-void":220,"./rules/no-warning-comments":221,"./rules/no-whitespace-before-property":222,"./rules/no-with":223,"./rules/nonblock-statement-body-position":224,"./rules/object-curly-newline":225,"./rules/object-curly-spacing":226,"./rules/object-property-newline":227,"./rules/object-shorthand":228,"./rules/one-var":230,"./rules/one-var-declaration-per-line":229,"./rules/operator-assignment":231,"./rules/operator-linebreak":232,"./rules/padded-blocks":233,"./rules/padding-line-between-statements":234,"./rules/prefer-arrow-callback":235,"./rules/prefer-const":236,"./rules/prefer-destructuring":237,"./rules/prefer-numeric-literals":238,"./rules/prefer-promise-reject-errors":239,"./rules/prefer-reflect":240,"./rules/prefer-rest-params":241,"./rules/prefer-spread":242,"./rules/prefer-template":243,"./rules/quote-props":244,"./rules/quotes":245,"./rules/radix":246,"./rules/require-await":247,"./rules/require-jsdoc":248,"./rules/require-yield":249,"./rules/rest-spread-spacing":250,"./rules/semi":253,"./rules/semi-spacing":251,"./rules/semi-style":252,"./rules/sort-imports":254,"./rules/sort-keys":255,"./rules/sort-vars":256,"./rules/space-before-blocks":257,"./rules/space-before-function-paren":258,"./rules/space-in-parens":259,"./rules/space-infix-ops":260,"./rules/space-unary-ops":261,"./rules/spaced-comment":262,"./rules/strict":263,"./rules/switch-colon-spacing":264,"./rules/symbol-description":265,"./rules/template-curly-spacing":266,"./rules/template-tag-spacing":267,"./rules/unicode-bom":268,"./rules/use-isnan":269,"./rules/valid-jsdoc":270,"./rules/valid-typeof":271,"./rules/vars-on-top":272,"./rules/wrap-iife":273,"./rules/wrap-regex":274,"./rules/yield-star-spacing":275,"./rules/yoda":276}],24:[function(require,module,exports){"use strict";var _createClass=function(){function defineProperties(target,props){for(var i=0;i=options.minItems||options.multiline&&elements.length>0&&firstIncComment.loc.start.line!==lastIncComment.loc.end.line;if(needsLinebreaks){if(astUtils.isTokenOnSameLine(openBracket,first)){reportRequiredBeginningLinebreak(node,openBracket)}if(astUtils.isTokenOnSameLine(last,closeBracket)){reportRequiredEndingLinebreak(node,closeBracket)}}else{if(!astUtils.isTokenOnSameLine(openBracket,first)){reportNoBeginningLinebreak(node,openBracket)}if(!astUtils.isTokenOnSameLine(last,closeBracket)){reportNoEndingLinebreak(node,closeBracket)}}}return{ArrayPattern:check,ArrayExpression:check}}}},{"../ast-utils":22}],27:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"enforce consistent spacing inside array brackets",category:"Stylistic Issues",recommended:false},fixable:"whitespace",schema:[{enum:["always","never"]},{type:"object",properties:{singleValue:{type:"boolean"},objectsInArrays:{type:"boolean"},arraysInArrays:{type:"boolean"}},additionalProperties:false}]},create:function create(context){var spaced=context.options[0]==="always",sourceCode=context.getSourceCode();function isOptionSet(option){return context.options[1]?context.options[1][option]===!spaced:false}var options={spaced:spaced,singleElementException:isOptionSet("singleValue"),objectsInArraysException:isOptionSet("objectsInArrays"),arraysInArraysException:isOptionSet("arraysInArrays")};function reportNoBeginningSpace(node,token){context.report({node:node,loc:token.loc.start,message:"There should be no space after '{{tokenValue}}'.",data:{tokenValue:token.value},fix:function fix(fixer){var nextToken=sourceCode.getTokenAfter(token);return fixer.removeRange([token.range[1],nextToken.range[0]])}})}function reportNoEndingSpace(node,token){context.report({node:node,loc:token.loc.start,message:"There should be no space before '{{tokenValue}}'.",data:{tokenValue:token.value},fix:function fix(fixer){var previousToken=sourceCode.getTokenBefore(token);return fixer.removeRange([previousToken.range[1],token.range[0]])}})}function reportRequiredBeginningSpace(node,token){context.report({node:node,loc:token.loc.start,message:"A space is required after '{{tokenValue}}'.",data:{tokenValue:token.value},fix:function fix(fixer){return fixer.insertTextAfter(token," ")}})}function reportRequiredEndingSpace(node,token){context.report({node:node,loc:token.loc.start,message:"A space is required before '{{tokenValue}}'.",data:{tokenValue:token.value},fix:function fix(fixer){return fixer.insertTextBefore(token," ")}})}function isObjectType(node){return node&&(node.type==="ObjectExpression"||node.type==="ObjectPattern")}function isArrayType(node){return node&&(node.type==="ArrayExpression"||node.type==="ArrayPattern")}function validateArraySpacing(node){if(options.spaced&&node.elements.length===0){return}var first=sourceCode.getFirstToken(node),second=sourceCode.getFirstToken(node,1),last=node.typeAnnotation?sourceCode.getTokenBefore(node.typeAnnotation):sourceCode.getLastToken(node),penultimate=sourceCode.getTokenBefore(last),firstElement=node.elements[0],lastElement=node.elements[node.elements.length-1];var openingBracketMustBeSpaced=options.objectsInArraysException&&isObjectType(firstElement)||options.arraysInArraysException&&isArrayType(firstElement)||options.singleElementException&&node.elements.length===1?!options.spaced:options.spaced;var closingBracketMustBeSpaced=options.objectsInArraysException&&isObjectType(lastElement)||options.arraysInArraysException&&isArrayType(lastElement)||options.singleElementException&&node.elements.length===1?!options.spaced:options.spaced;if(astUtils.isTokenOnSameLine(first,second)){if(openingBracketMustBeSpaced&&!sourceCode.isSpaceBetweenTokens(first,second)){reportRequiredBeginningSpace(node,first)}if(!openingBracketMustBeSpaced&&sourceCode.isSpaceBetweenTokens(first,second)){reportNoBeginningSpace(node,first)}}if(first!==penultimate&&astUtils.isTokenOnSameLine(penultimate,last)){if(closingBracketMustBeSpaced&&!sourceCode.isSpaceBetweenTokens(penultimate,last)){reportRequiredEndingSpace(node,last)}if(!closingBracketMustBeSpaced&&sourceCode.isSpaceBetweenTokens(penultimate,last)){reportNoEndingSpace(node,last)}}}return{ArrayPattern:validateArraySpacing,ArrayExpression:validateArraySpacing}}}},{"../ast-utils":22}],28:[function(require,module,exports){"use strict";var lodash=require("lodash");var astUtils=require("../ast-utils");var TARGET_NODE_TYPE=/^(?:Arrow)?FunctionExpression$/;var TARGET_METHODS=/^(?:every|filter|find(?:Index)?|map|reduce(?:Right)?|some|sort)$/;function isReachable(segment){return segment.reachable}function getLocation(node,sourceCode){if(node.type==="ArrowFunctionExpression"){return sourceCode.getTokenBefore(node.body)}return node.id||node}function isTargetMethod(node){return node.type==="MemberExpression"&&TARGET_METHODS.test(astUtils.getStaticPropertyName(node)||"")}function isCallbackOfArrayMethod(node){while(node){var parent=node.parent;switch(parent.type){case"LogicalExpression":case"ConditionalExpression":node=parent;break;case"ReturnStatement":{var func=astUtils.getUpperFunction(parent);if(func===null||!astUtils.isCallee(func)){return false}node=func.parent;break}case"CallExpression":if(astUtils.isArrayFromMethod(parent.callee)){return parent.arguments.length>=2&&parent.arguments[1]===node}if(isTargetMethod(parent.callee)){return parent.arguments.length>=1&&parent.arguments[0]===node}return false;default:return false}}return false}module.exports={meta:{docs:{description:"enforce `return` statements in callbacks of array methods",category:"Best Practices",recommended:false},schema:[]},create:function create(context){var funcInfo={upper:null,codePath:null,hasReturn:false,shouldCheck:false,node:null};function checkLastSegment(node){if(funcInfo.shouldCheck&&funcInfo.codePath.currentSegments.some(isReachable)){context.report({node:node,loc:getLocation(node,context.getSourceCode()).loc.start,message:funcInfo.hasReturn?"Expected to return a value at the end of {{name}}.":"Expected to return a value in {{name}}.",data:{name:astUtils.getFunctionNameWithKind(funcInfo.node)}})}}return{onCodePathStart:function onCodePathStart(codePath,node){funcInfo={upper:funcInfo,codePath:codePath,hasReturn:false,shouldCheck:TARGET_NODE_TYPE.test(node.type)&&node.body.type==="BlockStatement"&&isCallbackOfArrayMethod(node)&&!node.async&&!node.generator,node:node}},onCodePathEnd:function onCodePathEnd(){funcInfo=funcInfo.upper},ReturnStatement:function ReturnStatement(node){if(funcInfo.shouldCheck){funcInfo.hasReturn=true;if(!node.argument){context.report({node:node,message:"{{name}} expected a return value.",data:{name:lodash.upperFirst(astUtils.getFunctionNameWithKind(funcInfo.node))}})}}},"FunctionExpression:exit":checkLastSegment,"ArrowFunctionExpression:exit":checkLastSegment}}}},{"../ast-utils":22,lodash:16}],29:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"enforce line breaks after each array element",category:"Stylistic Issues",recommended:false},fixable:"whitespace",schema:[{oneOf:[{enum:["always","never"]},{type:"object",properties:{multiline:{type:"boolean"},minItems:{type:["integer","null"],minimum:0}},additionalProperties:false}]}]},create:function create(context){var sourceCode=context.getSourceCode();function normalizeOptionValue(option){var multiline=false;var minItems=void 0;option=option||"always";if(option==="always"||option.minItems===0){minItems=0}else if(option==="never"){minItems=Number.POSITIVE_INFINITY}else{multiline=Boolean(option.multiline);minItems=option.minItems||Number.POSITIVE_INFINITY}return{multiline:multiline,minItems:minItems}}function normalizeOptions(options){var value=normalizeOptionValue(options);return{ArrayExpression:value,ArrayPattern:value}}function reportNoLineBreak(token){var tokenBefore=sourceCode.getTokenBefore(token,{includeComments:true});context.report({loc:{start:tokenBefore.loc.end,end:token.loc.start},message:"There should be no linebreak here.",fix:function fix(fixer){if(astUtils.isCommentToken(tokenBefore)){return null}if(!astUtils.isTokenOnSameLine(tokenBefore,token)){return fixer.replaceTextRange([tokenBefore.range[1],token.range[0]]," ")}var twoTokensBefore=sourceCode.getTokenBefore(tokenBefore,{includeComments:true});if(astUtils.isCommentToken(twoTokensBefore)){return null}return fixer.replaceTextRange([twoTokensBefore.range[1],tokenBefore.range[0]],"")}})}function reportRequiredLineBreak(token){var tokenBefore=sourceCode.getTokenBefore(token,{includeComments:true});context.report({loc:{start:tokenBefore.loc.end,end:token.loc.start},message:"There should be a linebreak after this element.",fix:function fix(fixer){return fixer.replaceTextRange([tokenBefore.range[1],token.range[0]],"\n")}})}function check(node){var elements=node.elements;var normalizedOptions=normalizeOptions(context.options[0]);var options=normalizedOptions[node.type];var elementBreak=false;if(options.multiline){elementBreak=elements.filter(function(element){return element!==null}).some(function(element){return element.loc.start.line!==element.loc.end.line})}var needsLinebreaks=elements.length>=options.minItems||options.multiline&&elementBreak;elements.forEach(function(element,i){var previousElement=elements[i-1];if(i===0||element===null||previousElement===null){return}var commaToken=sourceCode.getFirstTokenBetween(previousElement,element,astUtils.isCommaToken);var lastTokenOfPreviousElement=sourceCode.getTokenBefore(commaToken);var firstTokenOfCurrentElement=sourceCode.getTokenAfter(commaToken);if(needsLinebreaks){if(astUtils.isTokenOnSameLine(lastTokenOfPreviousElement,firstTokenOfCurrentElement)){reportRequiredLineBreak(firstTokenOfCurrentElement)}}else{if(!astUtils.isTokenOnSameLine(lastTokenOfPreviousElement,firstTokenOfCurrentElement)){reportNoLineBreak(firstTokenOfCurrentElement)}}})}return{ArrayPattern:check,ArrayExpression:check}}}},{"../ast-utils":22}],30:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"require braces around arrow function bodies",category:"ECMAScript 6",recommended:false},schema:{anyOf:[{type:"array",items:[{enum:["always","never"]}],minItems:0,maxItems:1},{type:"array",items:[{enum:["as-needed"]},{type:"object",properties:{requireReturnForObjectLiteral:{type:"boolean"}},additionalProperties:false}],minItems:0,maxItems:2}]},fixable:"code"},create:function create(context){var options=context.options;var always=options[0]==="always";var asNeeded=!options[0]||options[0]==="as-needed";var never=options[0]==="never";var requireReturnForObjectLiteral=options[1]&&options[1].requireReturnForObjectLiteral;var sourceCode=context.getSourceCode();function hasASIProblem(token){return token&&token.type==="Punctuator"&&/^[([/`+-]/.test(token.value)}function findClosingParen(token){var node=sourceCode.getNodeByRangeIndex(token.range[1]);while(!astUtils.isParenthesised(sourceCode,node)){node=node.parent}return sourceCode.getTokenAfter(node)}function validate(node){var arrowBody=node.body;if(arrowBody.type==="BlockStatement"){var blockBody=arrowBody.body;if(blockBody.length!==1&&!never){return}if(asNeeded&&requireReturnForObjectLiteral&&blockBody[0].type==="ReturnStatement"&&blockBody[0].argument&&blockBody[0].argument.type==="ObjectExpression"){return}if(never||asNeeded&&blockBody[0].type==="ReturnStatement"){context.report({node:node,loc:arrowBody.loc.start,message:"Unexpected block statement surrounding arrow body.",fix:function fix(fixer){var fixes=[];if(blockBody.length!==1||blockBody[0].type!=="ReturnStatement"||!blockBody[0].argument||hasASIProblem(sourceCode.getTokenAfter(arrowBody))){return fixes}var openingBrace=sourceCode.getFirstToken(arrowBody);var closingBrace=sourceCode.getLastToken(arrowBody);var firstValueToken=sourceCode.getFirstToken(blockBody[0],1);var lastValueToken=sourceCode.getLastToken(blockBody[0]);var commentsExist=sourceCode.commentsExistBetween(openingBrace,firstValueToken)||sourceCode.commentsExistBetween(lastValueToken,closingBrace);if(commentsExist){fixes.push(fixer.remove(openingBrace),fixer.remove(closingBrace),fixer.remove(sourceCode.getTokenAfter(openingBrace)))}else{fixes.push(fixer.removeRange([openingBrace.range[0],firstValueToken.range[0]]),fixer.removeRange([lastValueToken.range[1],closingBrace.range[1]]))}if(astUtils.isOpeningBraceToken(firstValueToken)){fixes.push(fixer.insertTextBefore(firstValueToken,"("),fixer.insertTextAfter(lastValueToken,")"))}if(astUtils.isSemicolonToken(lastValueToken)){fixes.push(fixer.remove(lastValueToken))}return fixes}})}}else{if(always||asNeeded&&requireReturnForObjectLiteral&&arrowBody.type==="ObjectExpression"){context.report({node:node,loc:arrowBody.loc.start,message:"Expected block statement surrounding arrow body.",fix:function fix(fixer){var fixes=[];var arrowToken=sourceCode.getTokenBefore(arrowBody,astUtils.isArrowToken);var firstBodyToken=sourceCode.getTokenAfter(arrowToken);var lastBodyToken=sourceCode.getLastToken(node);var isParenthesisedObjectLiteral=astUtils.isOpeningParenToken(firstBodyToken)&&astUtils.isOpeningBraceToken(sourceCode.getTokenAfter(firstBodyToken));fixes.push(fixer.insertTextBefore(firstBodyToken,"{return "),fixer.insertTextAfter(lastBodyToken,"}"));if(isParenthesisedObjectLiteral){fixes.push(fixer.remove(firstBodyToken),fixer.remove(findClosingParen(firstBodyToken)))}return fixes}})}}}return{"ArrowFunctionExpression:exit":validate}}}},{"../ast-utils":22}],31:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"require parentheses around arrow function arguments",category:"ECMAScript 6",recommended:false},fixable:"code",schema:[{enum:["always","as-needed"]},{type:"object",properties:{requireForBlockBody:{type:"boolean"}},additionalProperties:false}]},create:function create(context){var message="Expected parentheses around arrow function argument.";var asNeededMessage="Unexpected parentheses around single function argument.";var asNeeded=context.options[0]==="as-needed";var requireForBlockBodyMessage="Unexpected parentheses around single function argument having a body with no curly braces";var requireForBlockBodyNoParensMessage="Expected parentheses around arrow function argument having a body with curly braces.";var requireForBlockBody=asNeeded&&context.options[1]&&context.options[1].requireForBlockBody===true;var sourceCode=context.getSourceCode();function parens(node){var isAsync=node.async;var firstTokenOfParam=sourceCode.getFirstToken(node,isAsync?1:0);function fixParamsWithParenthesis(fixer){var paramToken=sourceCode.getTokenAfter(firstTokenOfParam);var closingParenToken=sourceCode.getTokenAfter(paramToken);var asyncToken=isAsync?sourceCode.getTokenBefore(firstTokenOfParam):null;var shouldAddSpaceForAsync=asyncToken&&asyncToken.end===firstTokenOfParam.start;return fixer.replaceTextRange([firstTokenOfParam.range[0],closingParenToken.range[1]],""+(shouldAddSpaceForAsync?" ":"")+paramToken.value)}if(requireForBlockBody&&node.params.length===1&&node.params[0].type==="Identifier"&&!node.params[0].typeAnnotation&&node.body.type!=="BlockStatement"&&!node.returnType){if(astUtils.isOpeningParenToken(firstTokenOfParam)){context.report({node:node,message:requireForBlockBodyMessage,fix:fixParamsWithParenthesis})}return}if(requireForBlockBody&&node.body.type==="BlockStatement"){if(!astUtils.isOpeningParenToken(firstTokenOfParam)){context.report({node:node,message:requireForBlockBodyNoParensMessage,fix:function fix(fixer){return fixer.replaceText(firstTokenOfParam,"("+firstTokenOfParam.value+")")}})}return}if(asNeeded&&node.params.length===1&&node.params[0].type==="Identifier"&&!node.params[0].typeAnnotation&&!node.returnType){if(astUtils.isOpeningParenToken(firstTokenOfParam)){context.report({node:node,message:asNeededMessage,fix:fixParamsWithParenthesis})}return}if(firstTokenOfParam.type==="Identifier"){var after=sourceCode.getTokenAfter(firstTokenOfParam);if(after.value!==")"){context.report({node:node,message:message,fix:function fix(fixer){return fixer.replaceText(firstTokenOfParam,"("+firstTokenOfParam.value+")")}})}}}return{ArrowFunctionExpression:parens}}}},{"../ast-utils":22}],32:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"enforce consistent spacing before and after the arrow in arrow functions",category:"ECMAScript 6",recommended:false},fixable:"whitespace",schema:[{type:"object",properties:{before:{type:"boolean"},after:{type:"boolean"}},additionalProperties:false}]},create:function create(context){var rule={before:true,after:true},option=context.options[0]||{};rule.before=option.before!==false;rule.after=option.after!==false;var sourceCode=context.getSourceCode();function getTokens(node){var arrow=sourceCode.getTokenBefore(node.body,astUtils.isArrowToken);return{before:sourceCode.getTokenBefore(arrow),arrow:arrow,after:sourceCode.getTokenAfter(arrow)}}function countSpaces(tokens){var before=tokens.arrow.range[0]-tokens.before.range[1];var after=tokens.after.range[0]-tokens.arrow.range[1];return{before:before,after:after}}function spaces(node){var tokens=getTokens(node);var countSpace=countSpaces(tokens);if(rule.before){if(countSpace.before===0){context.report({node:tokens.before,message:"Missing space before =>.",fix:function fix(fixer){return fixer.insertTextBefore(tokens.arrow," ")}})}}else{if(countSpace.before>0){context.report({node:tokens.before,message:"Unexpected space before =>.",fix:function fix(fixer){return fixer.removeRange([tokens.before.range[1],tokens.arrow.range[0]])}})}}if(rule.after){if(countSpace.after===0){context.report({node:tokens.after,message:"Missing space after =>.",fix:function fix(fixer){return fixer.insertTextAfter(tokens.arrow," ")}})}}else{if(countSpace.after>0){context.report({node:tokens.after,message:"Unexpected space after =>.",fix:function fix(fixer){return fixer.removeRange([tokens.arrow.range[1],tokens.after.range[0]])}})}}}return{ArrowFunctionExpression:spaces}}}},{"../ast-utils":22}],33:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"enforce the use of variables within the scope they are defined",category:"Best Practices",recommended:false},schema:[]},create:function create(context){var stack=[];function enterScope(node){stack.push(node.range)}function exitScope(){stack.pop()}function report(reference){var identifier=reference.identifier;context.report({node:identifier,message:"'{{name}}' used outside of binding context.",data:{name:identifier.name}})}function checkForVariables(node){if(node.kind!=="var"){return}var scopeRange=stack[stack.length-1];function isOutsideOfScope(reference){var idRange=reference.identifier.range;return idRange[0]scopeRange[1]}var variables=context.getDeclaredVariables(node);for(var i=0;i0){return sourceCode.getTokenBefore(node.cases[0])}return sourceCode.getLastToken(node,1)}return sourceCode.getFirstToken(node)}function isValid(left,right){return!util.isTokenOnSameLine(left,right)||sourceCode.isSpaceBetweenTokens(left,right)===always}function checkSpacingInsideBraces(node){var openBrace=getOpenBrace(node);var closeBrace=sourceCode.getLastToken(node);var firstToken=sourceCode.getTokenAfter(openBrace,{includeComments:true});var lastToken=sourceCode.getTokenBefore(closeBrace,{includeComments:true});if(openBrace.type!=="Punctuator"||openBrace.value!=="{"||closeBrace.type!=="Punctuator"||closeBrace.value!=="}"||firstToken===closeBrace){return}if(!always&&firstToken.type==="Line"){return}if(!isValid(openBrace,firstToken)){context.report({node:node,loc:openBrace.loc.start,message:"{{message}} after '{'.",data:{message:message},fix:function fix(fixer){if(always){return fixer.insertTextBefore(firstToken," ")}return fixer.removeRange([openBrace.range[1],firstToken.range[0]])}})}if(!isValid(lastToken,closeBrace)){context.report({node:node,loc:closeBrace.loc.start,message:"{{message}} before '}'.",data:{message:message},fix:function fix(fixer){if(always){return fixer.insertTextAfter(lastToken," ")}return fixer.removeRange([lastToken.range[1],closeBrace.range[0]])}})}}return{BlockStatement:checkSpacingInsideBraces,SwitchStatement:checkSpacingInsideBraces}}}},{"../ast-utils":22}],35:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"enforce consistent brace style for blocks",category:"Stylistic Issues",recommended:false},schema:[{enum:["1tbs","stroustrup","allman"]},{type:"object",properties:{allowSingleLine:{type:"boolean"}},additionalProperties:false}],fixable:"whitespace"},create:function create(context){var style=context.options[0]||"1tbs",params=context.options[1]||{},sourceCode=context.getSourceCode();var OPEN_MESSAGE="Opening curly brace does not appear on the same line as controlling statement.",OPEN_MESSAGE_ALLMAN="Opening curly brace appears on the same line as controlling statement.",BODY_MESSAGE="Statement inside of curly braces should be on next line.",CLOSE_MESSAGE="Closing curly brace does not appear on the same line as the subsequent block.",CLOSE_MESSAGE_SINGLE="Closing curly brace should be on the same line as opening curly brace or on the line after the previous block.",CLOSE_MESSAGE_STROUSTRUP_ALLMAN="Closing curly brace appears on the same line as the subsequent block.";function removeNewlineBetween(firstToken,secondToken){var textRange=[firstToken.range[1],secondToken.range[0]];var textBetween=sourceCode.text.slice(textRange[0],textRange[1]);if(textBetween.trim()){return null}return function(fixer){return fixer.replaceTextRange(textRange," ")}}function validateCurlyPair(openingCurly,closingCurly){var tokenBeforeOpeningCurly=sourceCode.getTokenBefore(openingCurly);var tokenAfterOpeningCurly=sourceCode.getTokenAfter(openingCurly);var tokenBeforeClosingCurly=sourceCode.getTokenBefore(closingCurly);var singleLineException=params.allowSingleLine&&astUtils.isTokenOnSameLine(openingCurly,closingCurly);if(style!=="allman"&&!astUtils.isTokenOnSameLine(tokenBeforeOpeningCurly,openingCurly)){context.report({node:openingCurly,message:OPEN_MESSAGE,fix:removeNewlineBetween(tokenBeforeOpeningCurly,openingCurly)})}if(style==="allman"&&astUtils.isTokenOnSameLine(tokenBeforeOpeningCurly,openingCurly)&&!singleLineException){context.report({node:openingCurly,message:OPEN_MESSAGE_ALLMAN,fix:function fix(fixer){return fixer.insertTextBefore(openingCurly,"\n")}})}if(astUtils.isTokenOnSameLine(openingCurly,tokenAfterOpeningCurly)&&tokenAfterOpeningCurly!==closingCurly&&!singleLineException){context.report({node:openingCurly,message:BODY_MESSAGE,fix:function fix(fixer){return fixer.insertTextAfter(openingCurly,"\n")}})}if(tokenBeforeClosingCurly!==openingCurly&&!singleLineException&&astUtils.isTokenOnSameLine(tokenBeforeClosingCurly,closingCurly)){context.report({node:closingCurly,message:CLOSE_MESSAGE_SINGLE,fix:function fix(fixer){return fixer.insertTextBefore(closingCurly,"\n")}})}}function validateCurlyBeforeKeyword(curlyToken){var keywordToken=sourceCode.getTokenAfter(curlyToken);if(style==="1tbs"&&!astUtils.isTokenOnSameLine(curlyToken,keywordToken)){context.report({node:curlyToken,message:CLOSE_MESSAGE,fix:removeNewlineBetween(curlyToken,keywordToken)})}if(style!=="1tbs"&&astUtils.isTokenOnSameLine(curlyToken,keywordToken)){context.report({node:curlyToken,message:CLOSE_MESSAGE_STROUSTRUP_ALLMAN,fix:function fix(fixer){return fixer.insertTextAfter(curlyToken,"\n")}})}}return{BlockStatement:function BlockStatement(node){if(!astUtils.STATEMENT_LIST_PARENTS.has(node.parent.type)){validateCurlyPair(sourceCode.getFirstToken(node),sourceCode.getLastToken(node))}},ClassBody:function ClassBody(node){validateCurlyPair(sourceCode.getFirstToken(node),sourceCode.getLastToken(node))},SwitchStatement:function SwitchStatement(node){var closingCurly=sourceCode.getLastToken(node);var openingCurly=sourceCode.getTokenBefore(node.cases.length?node.cases[0]:closingCurly);validateCurlyPair(openingCurly,closingCurly)},IfStatement:function IfStatement(node){if(node.consequent.type==="BlockStatement"&&node.alternate){validateCurlyBeforeKeyword(sourceCode.getLastToken(node.consequent))}},TryStatement:function TryStatement(node){validateCurlyBeforeKeyword(sourceCode.getLastToken(node.block));if(node.handler&&node.finalizer){validateCurlyBeforeKeyword(sourceCode.getLastToken(node.handler.body))}}}}}},{"../ast-utils":22}],36:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"require `return` statements after callbacks",category:"Node.js and CommonJS",recommended:false},schema:[{type:"array",items:{type:"string"}}]},create:function create(context){var callbacks=context.options[0]||["callback","cb","next"],sourceCode=context.getSourceCode();function findClosestParentOfType(node,types){if(!node.parent){return null}if(types.indexOf(node.parent.type)===-1){return findClosestParentOfType(node.parent,types)}return node.parent}function containsOnlyIdentifiers(node){if(node.type==="Identifier"){return true}if(node.type==="MemberExpression"){if(node.object.type==="Identifier"){return true}else if(node.object.type==="MemberExpression"){return containsOnlyIdentifiers(node.object)}}return false}function isCallback(node){return containsOnlyIdentifiers(node.callee)&&callbacks.indexOf(sourceCode.getText(node.callee))>-1}function isCallbackExpression(node,parentNode){if(!parentNode||parentNode.type!=="ExpressionStatement"){return false}if(parentNode.expression===node){return true}if(parentNode.expression.type==="BinaryExpression"||parentNode.expression.type==="LogicalExpression"){if(parentNode.expression.right===node){return true}}return false}return{CallExpression:function CallExpression(node){if(!isCallback(node)){return}var closestBlock=findClosestParentOfType(node,["BlockStatement","ReturnStatement","ArrowFunctionExpression"])||{};if(closestBlock.type==="ReturnStatement"){return}if(closestBlock.type==="ArrowFunctionExpression"){return}if(closestBlock.type==="BlockStatement"){var lastItem=closestBlock.body[closestBlock.body.length-1];if(isCallbackExpression(node,lastItem)){var parentType=closestBlock.parent.type;if(parentType==="FunctionExpression"||parentType==="FunctionDeclaration"||parentType==="ArrowFunctionExpression"){return}}if(lastItem.type==="ReturnStatement"){if(isCallbackExpression(node,closestBlock.body[closestBlock.body.length-2])){return}}}if(findClosestParentOfType(node,["FunctionDeclaration","FunctionExpression","ArrowFunctionExpression"])){context.report({node:node,message:"Expected return with your callback function."})}}}}}},{}],37:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"enforce camelcase naming convention",category:"Stylistic Issues",recommended:false},schema:[{type:"object",properties:{properties:{enum:["always","never"]}},additionalProperties:false}]},create:function create(context){var reported=[];var ALLOWED_PARENT_TYPES=new Set(["CallExpression","NewExpression"]);function isUnderscored(name){return name.indexOf("_")>-1&&name!==name.toUpperCase()}function report(node){if(reported.indexOf(node)<0){reported.push(node);context.report({node:node,message:"Identifier '{{name}}' is not in camel case.",data:{name:node.name}})}}var options=context.options[0]||{};var properties=options.properties||"";if(properties!=="always"&&properties!=="never"){properties="always"}return{Identifier:function Identifier(node){var name=node.name.replace(/^_+|_+$/g,""),effectiveParent=node.parent.type==="MemberExpression"?node.parent.parent:node.parent;if(node.parent.type==="MemberExpression"){if(properties==="never"){return}if(node.parent.object.type==="Identifier"&&node.parent.object.name===node.name&&isUnderscored(name)){report(node)}else if(effectiveParent.type==="AssignmentExpression"&&isUnderscored(name)&&(effectiveParent.right.type!=="MemberExpression"||effectiveParent.left.type==="MemberExpression"&&effectiveParent.left.property.name===node.name)){report(node)}}else if(node.parent.type==="Property"){if(properties==="never"){return}if(node.parent.parent&&node.parent.parent.type==="ObjectPattern"&&node.parent.key===node&&node.parent.value!==node){return}if(isUnderscored(name)&&!ALLOWED_PARENT_TYPES.has(effectiveParent.type)){report(node)}}else if(["ImportSpecifier","ImportNamespaceSpecifier","ImportDefaultSpecifier"].indexOf(node.parent.type)>=0){if(node.parent.local&&node.parent.local.name===node.name&&isUnderscored(name)){report(node)}}else if(isUnderscored(name)&&!ALLOWED_PARENT_TYPES.has(effectiveParent.type)){report(node)}}}}}},{}],38:[function(require,module,exports){"use strict";var LETTER_PATTERN=require("../util/patterns/letters");var astUtils=require("../ast-utils");var ALWAYS_MESSAGE="Comments should not begin with a lowercase character",NEVER_MESSAGE="Comments should not begin with an uppercase character",DEFAULT_IGNORE_PATTERN=astUtils.COMMENTS_IGNORE_PATTERN,WHITESPACE=/\s/g,MAYBE_URL=/^\s*[^:/?#\s]+:\/\/[^?#]/,DEFAULTS={ignorePattern:null,ignoreInlineComments:false,ignoreConsecutiveComments:false};var SCHEMA_BODY={type:"object",properties:{ignorePattern:{type:"string"},ignoreInlineComments:{type:"boolean"},ignoreConsecutiveComments:{type:"boolean"}},additionalProperties:false};function getNormalizedOptions(rawOptions,which){if(!rawOptions){return Object.assign({},DEFAULTS)}return Object.assign({},DEFAULTS,rawOptions[which]||rawOptions)}function getAllNormalizedOptions(rawOptions){return{Line:getNormalizedOptions(rawOptions,"line"),Block:getNormalizedOptions(rawOptions,"block")}}function createRegExpForIgnorePatterns(normalizedOptions){Object.keys(normalizedOptions).forEach(function(key){var ignorePatternStr=normalizedOptions[key].ignorePattern;if(ignorePatternStr){var regExp=RegExp("^\\s*(?:"+ignorePatternStr+")");normalizedOptions[key].ignorePatternRegExp=regExp}})}module.exports={meta:{docs:{description:"enforce or disallow capitalization of the first letter of a comment",category:"Stylistic Issues",recommended:false},fixable:"code",schema:[{enum:["always","never"]},{oneOf:[SCHEMA_BODY,{type:"object",properties:{line:SCHEMA_BODY,block:SCHEMA_BODY},additionalProperties:false}]}]},create:function create(context){var capitalize=context.options[0]||"always",normalizedOptions=getAllNormalizedOptions(context.options[1]),sourceCode=context.getSourceCode();createRegExpForIgnorePatterns(normalizedOptions);function isInlineComment(comment){var previousToken=sourceCode.getTokenBefore(comment,{includeComments:true}),nextToken=sourceCode.getTokenAfter(comment,{includeComments:true});return Boolean(previousToken&&nextToken&&comment.loc.start.line===previousToken.loc.end.line&&comment.loc.end.line===nextToken.loc.start.line)}function isConsecutiveComment(comment){var previousTokenOrComment=sourceCode.getTokenBefore(comment,{includeComments:true});return Boolean(previousTokenOrComment&&["Block","Line"].indexOf(previousTokenOrComment.type)!==-1)}function isCommentValid(comment,options){if(DEFAULT_IGNORE_PATTERN.test(comment.value)){return true}var commentWithoutAsterisks=comment.value.replace(/\*/g,"");if(options.ignorePatternRegExp&&options.ignorePatternRegExp.test(commentWithoutAsterisks)){return true}if(options.ignoreInlineComments&&isInlineComment(comment)){return true}if(options.ignoreConsecutiveComments&&isConsecutiveComment(comment)){return true}if(MAYBE_URL.test(commentWithoutAsterisks)){return true}var commentWordCharsOnly=commentWithoutAsterisks.replace(WHITESPACE,"");if(commentWordCharsOnly.length===0){return true}var firstWordChar=commentWordCharsOnly[0];if(!LETTER_PATTERN.test(firstWordChar)){return true}var isUppercase=firstWordChar!==firstWordChar.toLocaleLowerCase(),isLowercase=firstWordChar!==firstWordChar.toLocaleUpperCase();if(capitalize==="always"&&isLowercase){return false}else if(capitalize==="never"&&isUppercase){return false}return true}function processComment(comment){var options=normalizedOptions[comment.type],commentValid=isCommentValid(comment,options);if(!commentValid){var message=capitalize==="always"?ALWAYS_MESSAGE:NEVER_MESSAGE;context.report({node:null,loc:comment.loc,message:message,fix:function fix(fixer){var match=comment.value.match(LETTER_PATTERN);return fixer.replaceTextRange([comment.range[0]+match.index+2,comment.range[0]+match.index+3],capitalize==="always"?match[0].toLocaleUpperCase():match[0].toLocaleLowerCase())}})}}return{Program:function Program(){var comments=sourceCode.getAllComments();comments.filter(function(token){return token.type!=="Shebang"}).forEach(processComment)}}}}},{"../ast-utils":22,"../util/patterns/letters":279}],39:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"enforce that class methods utilize `this`",category:"Best Practices",recommended:false},schema:[{type:"object",properties:{exceptMethods:{type:"array",items:{type:"string"}}},additionalProperties:false}]},create:function create(context){var config=context.options[0]?Object.assign({},context.options[0]):{};var exceptMethods=new Set(config.exceptMethods||[]);var stack=[];function enterFunction(){stack.push(false)}function isInstanceMethod(node){return!node.static&&node.kind!=="constructor"&&node.type==="MethodDefinition"}function isIncludedInstanceMethod(node){return isInstanceMethod(node)&&!exceptMethods.has(node.key.name)}function exitFunction(node){var methodUsesThis=stack.pop();if(isIncludedInstanceMethod(node.parent)&&!methodUsesThis){context.report({node:node,message:"Expected 'this' to be used by class method '{{classMethod}}'.",data:{classMethod:node.parent.key.name}})}}function markThisUsed(){if(stack.length){stack[stack.length-1]=true}}return{FunctionDeclaration:enterFunction,"FunctionDeclaration:exit":exitFunction,FunctionExpression:enterFunction,"FunctionExpression:exit":exitFunction,ThisExpression:markThisUsed,Super:markThisUsed}}}},{}],40:[function(require,module,exports){"use strict";var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj};var lodash=require("lodash");var astUtils=require("../ast-utils");var DEFAULT_OPTIONS=Object.freeze({arrays:"never",objects:"never",imports:"never",exports:"never",functions:"ignore"});function isTrailingCommaAllowed(lastItem){return!(lastItem.type==="RestElement"||lastItem.type==="RestProperty"||lastItem.type==="ExperimentalRestProperty")}function normalizeOptions(optionValue){if(typeof optionValue==="string"){return{arrays:optionValue,objects:optionValue,imports:optionValue,exports:optionValue,functions:"ignore"}}if((typeof optionValue==="undefined"?"undefined":_typeof(optionValue))==="object"&&optionValue!==null){return{arrays:optionValue.arrays||DEFAULT_OPTIONS.arrays,objects:optionValue.objects||DEFAULT_OPTIONS.objects,imports:optionValue.imports||DEFAULT_OPTIONS.imports,exports:optionValue.exports||DEFAULT_OPTIONS.exports,functions:optionValue.functions||DEFAULT_OPTIONS.functions}}return DEFAULT_OPTIONS}module.exports={meta:{docs:{description:"require or disallow trailing commas",category:"Stylistic Issues",recommended:false},fixable:"code",schema:[{defs:{value:{enum:["always","always-multiline","only-multiline","never"]},valueWithIgnore:{anyOf:[{$ref:"#/defs/value"},{enum:["ignore"]}]}},anyOf:[{$ref:"#/defs/value"},{type:"object",properties:{arrays:{$refs:"#/defs/valueWithIgnore"},objects:{$refs:"#/defs/valueWithIgnore"},imports:{$refs:"#/defs/valueWithIgnore"},exports:{$refs:"#/defs/valueWithIgnore"},functions:{$refs:"#/defs/valueWithIgnore"}},additionalProperties:false}]}]},create:function create(context){var options=normalizeOptions(context.options[0]);var sourceCode=context.getSourceCode();var UNEXPECTED_MESSAGE="Unexpected trailing comma.";var MISSING_MESSAGE="Missing trailing comma.";function getLastItem(node){switch(node.type){case"ObjectExpression":case"ObjectPattern":return lodash.last(node.properties);case"ArrayExpression":case"ArrayPattern":return lodash.last(node.elements);case"ImportDeclaration":case"ExportNamedDeclaration":return lodash.last(node.specifiers);case"FunctionDeclaration":case"FunctionExpression":case"ArrowFunctionExpression":return lodash.last(node.params);case"CallExpression":case"NewExpression":return lodash.last(node.arguments);default:return null}}function getTrailingToken(node,lastItem){switch(node.type){case"ObjectExpression":case"ArrayExpression":case"CallExpression":case"NewExpression":return sourceCode.getLastToken(node,1);default:{var nextToken=sourceCode.getTokenAfter(lastItem);if(astUtils.isCommaToken(nextToken)){return nextToken}return sourceCode.getLastToken(lastItem)}}}function isMultiline(node){var lastItem=getLastItem(node);if(!lastItem){return false}var penultimateToken=getTrailingToken(node,lastItem);var lastToken=sourceCode.getTokenAfter(penultimateToken);return lastToken.loc.end.line!==penultimateToken.loc.end.line}function forbidTrailingComma(node){var lastItem=getLastItem(node);if(!lastItem||node.type==="ImportDeclaration"&&lastItem.type!=="ImportSpecifier"){return}var trailingToken=getTrailingToken(node,lastItem);if(astUtils.isCommaToken(trailingToken)){context.report({node:lastItem,loc:trailingToken.loc.start,message:UNEXPECTED_MESSAGE,fix:function fix(fixer){return fixer.remove(trailingToken)}})}}function forceTrailingComma(node){var lastItem=getLastItem(node);if(!lastItem||node.type==="ImportDeclaration"&&lastItem.type!=="ImportSpecifier"){return}if(!isTrailingCommaAllowed(lastItem)){forbidTrailingComma(node);return}var trailingToken=getTrailingToken(node,lastItem);if(trailingToken.value!==","){context.report({node:lastItem,loc:trailingToken.loc.end,message:MISSING_MESSAGE,fix:function fix(fixer){return fixer.insertTextAfter(trailingToken,",")}})}}function forceTrailingCommaIfMultiline(node){if(isMultiline(node)){forceTrailingComma(node)}else{forbidTrailingComma(node)}}function allowTrailingCommaIfMultiline(node){if(!isMultiline(node)){forbidTrailingComma(node)}}var predicate={always:forceTrailingComma,"always-multiline":forceTrailingCommaIfMultiline,"only-multiline":allowTrailingCommaIfMultiline,never:forbidTrailingComma,ignore:lodash.noop};return{ObjectExpression:predicate[options.objects],ObjectPattern:predicate[options.objects],ArrayExpression:predicate[options.arrays],ArrayPattern:predicate[options.arrays],ImportDeclaration:predicate[options.imports],ExportNamedDeclaration:predicate[options.exports],FunctionDeclaration:predicate[options.functions],FunctionExpression:predicate[options.functions],ArrowFunctionExpression:predicate[options.functions],CallExpression:predicate[options.functions],NewExpression:predicate[options.functions]}}}},{"../ast-utils":22,lodash:16}],41:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"enforce consistent spacing before and after commas",category:"Stylistic Issues",recommended:false},fixable:"whitespace",schema:[{type:"object",properties:{before:{type:"boolean"},after:{type:"boolean"}},additionalProperties:false}]},create:function create(context){var sourceCode=context.getSourceCode();var tokensAndComments=sourceCode.tokensAndComments;var options={before:context.options[0]?!!context.options[0].before:false,after:context.options[0]?!!context.options[0].after:true};var commaTokensToIgnore=[];function report(node,dir,otherNode){context.report({node:node,fix:function fix(fixer){if(options[dir]){if(dir==="before"){return fixer.insertTextBefore(node," ")}return fixer.insertTextAfter(node," ")}var start=void 0,end=void 0;var newText="";if(dir==="before"){start=otherNode.range[1];end=node.range[0]}else{start=node.range[1];end=otherNode.range[0]}return fixer.replaceTextRange([start,end],newText)},message:options[dir]?"A space is required {{dir}} ','.":"There should be no space {{dir}} ','.",data:{dir:dir}})}function validateCommaItemSpacing(tokens,reportItem){if(tokens.left&&astUtils.isTokenOnSameLine(tokens.left,tokens.comma)&&options.before!==sourceCode.isSpaceBetweenTokens(tokens.left,tokens.comma)){report(reportItem,"before",tokens.left)}if(tokens.right&&!options.after&&tokens.right.type==="Line"){return}if(tokens.right&&astUtils.isTokenOnSameLine(tokens.comma,tokens.right)&&options.after!==sourceCode.isSpaceBetweenTokens(tokens.comma,tokens.right)){report(reportItem,"after",tokens.right)}}function addNullElementsToIgnoreList(node){var previousToken=sourceCode.getFirstToken(node);node.elements.forEach(function(element){var token=void 0;if(element===null){token=sourceCode.getTokenAfter(previousToken);if(astUtils.isCommaToken(token)){commaTokensToIgnore.push(token)}}else{token=sourceCode.getTokenAfter(element)}previousToken=token})}return{"Program:exit":function ProgramExit(){tokensAndComments.forEach(function(token,i){if(!astUtils.isCommaToken(token)){return}if(token&&token.type==="JSXText"){return}var previousToken=tokensAndComments[i-1];var nextToken=tokensAndComments[i+1];validateCommaItemSpacing({comma:token,left:astUtils.isCommaToken(previousToken)||commaTokensToIgnore.indexOf(token)>-1?null:previousToken,right:astUtils.isCommaToken(nextToken)?null:nextToken},token)})},ArrayExpression:addNullElementsToIgnoreList,ArrayPattern:addNullElementsToIgnoreList}}}},{"../ast-utils":22}],42:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"enforce consistent comma style",category:"Stylistic Issues",recommended:false},fixable:"code",schema:[{enum:["first","last"]},{type:"object",properties:{exceptions:{type:"object",additionalProperties:{type:"boolean"}}},additionalProperties:false}]},create:function create(context){var style=context.options[0]||"last",sourceCode=context.getSourceCode();var exceptions={ArrayPattern:true,ArrowFunctionExpression:true,CallExpression:true,FunctionDeclaration:true,FunctionExpression:true,ImportDeclaration:true,ObjectPattern:true};if(context.options.length===2&&context.options[1].hasOwnProperty("exceptions")){var keys=Object.keys(context.options[1].exceptions);for(var i=0;i1||arrayLiteral){var previousItemToken=sourceCode.getFirstToken(node);items.forEach(function(item){var commaToken=item?sourceCode.getTokenBefore(item):previousItemToken,currentItemToken=item?sourceCode.getFirstToken(item):sourceCode.getTokenAfter(commaToken),reportItem=item||currentItemToken,tokenBeforeComma=sourceCode.getTokenBefore(commaToken);if(tokenBeforeComma&&astUtils.isClosingParenToken(tokenBeforeComma)){previousItemToken=tokenBeforeComma}if(astUtils.isCommaToken(commaToken)){validateCommaItemSpacing(previousItemToken,commaToken,currentItemToken,reportItem)}if(item){var tokenAfterItem=sourceCode.getTokenAfter(item,astUtils.isNotClosingParenToken);previousItemToken=tokenAfterItem?sourceCode.getTokenBefore(tokenAfterItem):sourceCode.ast.tokens[sourceCode.ast.tokens.length-1]}});if(arrayLiteral){var lastToken=sourceCode.getLastToken(node),nextToLastToken=sourceCode.getTokenBefore(lastToken);if(astUtils.isCommaToken(nextToLastToken)){validateCommaItemSpacing(sourceCode.getTokenBefore(nextToLastToken),nextToLastToken,lastToken,lastToken)}}}}var nodes={};if(!exceptions.VariableDeclaration){nodes.VariableDeclaration=function(node){validateComma(node,"declarations")}}if(!exceptions.ObjectExpression){nodes.ObjectExpression=function(node){validateComma(node,"properties")}}if(!exceptions.ObjectPattern){nodes.ObjectPattern=function(node){validateComma(node,"properties")}}if(!exceptions.ArrayExpression){nodes.ArrayExpression=function(node){validateComma(node,"elements")}}if(!exceptions.ArrayPattern){nodes.ArrayPattern=function(node){validateComma(node,"elements")}}if(!exceptions.FunctionDeclaration){nodes.FunctionDeclaration=function(node){validateComma(node,"params")}}if(!exceptions.FunctionExpression){nodes.FunctionExpression=function(node){validateComma(node,"params")}}if(!exceptions.ArrowFunctionExpression){nodes.ArrowFunctionExpression=function(node){validateComma(node,"params")}}if(!exceptions.CallExpression){nodes.CallExpression=function(node){validateComma(node,"arguments")}}if(!exceptions.ImportDeclaration){nodes.ImportDeclaration=function(node){validateComma(node,"specifiers")}}return nodes}}},{"../ast-utils":22}],43:[function(require,module,exports){"use strict";var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj};var lodash=require("lodash");var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"enforce a maximum cyclomatic complexity allowed in a program",category:"Best Practices",recommended:false},schema:[{oneOf:[{type:"integer",minimum:0},{type:"object",properties:{maximum:{type:"integer",minimum:0},max:{type:"integer",minimum:0}},additionalProperties:false}]}]},create:function create(context){var option=context.options[0];var THRESHOLD=20;if((typeof option==="undefined"?"undefined":_typeof(option))==="object"&&option.hasOwnProperty("maximum")&&typeof option.maximum==="number"){THRESHOLD=option.maximum}if((typeof option==="undefined"?"undefined":_typeof(option))==="object"&&option.hasOwnProperty("max")&&typeof option.max==="number"){THRESHOLD=option.max}if(typeof option==="number"){THRESHOLD=option}var fns=[];function startFunction(){fns.push(1)}function endFunction(node){var name=lodash.upperFirst(astUtils.getFunctionNameWithKind(node));var complexity=fns.pop();if(complexity>THRESHOLD){context.report({node:node,message:"{{name}} has a complexity of {{complexity}}.",data:{name:name,complexity:complexity}})}}function increaseComplexity(){if(fns.length){fns[fns.length-1]++}}function increaseSwitchComplexity(node){if(node.test){increaseComplexity()}}function increaseLogicalComplexity(node){if(node.operator==="||"){increaseComplexity()}}return{FunctionDeclaration:startFunction,FunctionExpression:startFunction,ArrowFunctionExpression:startFunction,"FunctionDeclaration:exit":endFunction,"FunctionExpression:exit":endFunction,"ArrowFunctionExpression:exit":endFunction,CatchClause:increaseComplexity,ConditionalExpression:increaseComplexity,LogicalExpression:increaseLogicalComplexity,ForStatement:increaseComplexity,ForInStatement:increaseComplexity,ForOfStatement:increaseComplexity,IfStatement:increaseComplexity,SwitchCase:increaseSwitchComplexity,WhileStatement:increaseComplexity,DoWhileStatement:increaseComplexity}}}},{"../ast-utils":22,lodash:16}],44:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"enforce consistent spacing inside computed property brackets",category:"Stylistic Issues",recommended:false},fixable:"whitespace",schema:[{enum:["always","never"]}]},create:function create(context){var sourceCode=context.getSourceCode();var propertyNameMustBeSpaced=context.options[0]==="always";function reportNoBeginningSpace(node,token,tokenAfter){context.report({node:node,loc:token.loc.start,message:"There should be no space after '{{tokenValue}}'.",data:{tokenValue:token.value},fix:function fix(fixer){return fixer.removeRange([token.range[1],tokenAfter.range[0]])}})}function reportNoEndingSpace(node,token,tokenBefore){context.report({node:node,loc:token.loc.start,message:"There should be no space before '{{tokenValue}}'.",data:{tokenValue:token.value},fix:function fix(fixer){return fixer.removeRange([tokenBefore.range[1],token.range[0]])}})}function reportRequiredBeginningSpace(node,token){context.report({node:node,loc:token.loc.start,message:"A space is required after '{{tokenValue}}'.",data:{tokenValue:token.value},fix:function fix(fixer){return fixer.insertTextAfter(token," ")}})}function reportRequiredEndingSpace(node,token){context.report({node:node,loc:token.loc.start,message:"A space is required before '{{tokenValue}}'.",data:{tokenValue:token.value},fix:function fix(fixer){return fixer.insertTextBefore(token," ")}})}function checkSpacing(propertyName){return function(node){if(!node.computed){return}var property=node[propertyName];var before=sourceCode.getTokenBefore(property),first=sourceCode.getFirstToken(property),last=sourceCode.getLastToken(property),after=sourceCode.getTokenAfter(property);if(astUtils.isTokenOnSameLine(before,first)){if(propertyNameMustBeSpaced){if(!sourceCode.isSpaceBetweenTokens(before,first)&&astUtils.isTokenOnSameLine(before,first)){reportRequiredBeginningSpace(node,before)}}else{if(sourceCode.isSpaceBetweenTokens(before,first)){reportNoBeginningSpace(node,before,first)}}}if(astUtils.isTokenOnSameLine(last,after)){if(propertyNameMustBeSpaced){if(!sourceCode.isSpaceBetweenTokens(last,after)&&astUtils.isTokenOnSameLine(last,after)){reportRequiredEndingSpace(node,after)}}else{if(sourceCode.isSpaceBetweenTokens(last,after)){reportNoEndingSpace(node,after,last)}}}}}return{Property:checkSpacing("key"),MemberExpression:checkSpacing("property")}}}},{"../ast-utils":22}],45:[function(require,module,exports){"use strict";var lodash=require("lodash");var astUtils=require("../ast-utils");function isIdentifier(node,name){return node.type==="Identifier"&&node.name===name}function isUnreachable(segment){return!segment.reachable}function isClassConstructor(node){return node.type==="FunctionExpression"&&node.parent&&node.parent.type==="MethodDefinition"&&node.parent.kind==="constructor"}module.exports={meta:{docs:{description:"require `return` statements to either always or never specify values",category:"Best Practices",recommended:false},schema:[{type:"object",properties:{treatUndefinedAsUnspecified:{type:"boolean"}},additionalProperties:false}]},create:function create(context){var options=context.options[0]||{};var treatUndefinedAsUnspecified=options.treatUndefinedAsUnspecified===true;var funcInfo=null;function checkLastSegment(node){var loc=void 0,name=void 0;if(!funcInfo.hasReturnValue||funcInfo.codePath.currentSegments.every(isUnreachable)||astUtils.isES5Constructor(node)||isClassConstructor(node)){return}if(node.type==="Program"){loc={line:1,column:0};name="program"}else if(node.type==="ArrowFunctionExpression"){loc=context.getSourceCode().getTokenBefore(node.body,astUtils.isArrowToken).loc.start}else if(node.parent.type==="MethodDefinition"||node.parent.type==="Property"&&node.parent.method){loc=node.parent.key.loc.start}else{loc=(node.id||node).loc.start}if(!name){name=astUtils.getFunctionNameWithKind(node)}context.report({node:node,loc:loc,message:"Expected to return a value at the end of {{name}}.",data:{name:name}})}return{onCodePathStart:function onCodePathStart(codePath,node){funcInfo={upper:funcInfo,codePath:codePath,hasReturn:false,hasReturnValue:false,message:"",node:node}},onCodePathEnd:function onCodePathEnd(){funcInfo=funcInfo.upper},ReturnStatement:function ReturnStatement(node){var argument=node.argument;var hasReturnValue=Boolean(argument);if(treatUndefinedAsUnspecified&&hasReturnValue){hasReturnValue=!isIdentifier(argument,"undefined")&&argument.operator!=="void"}if(!funcInfo.hasReturn){funcInfo.hasReturn=true;funcInfo.hasReturnValue=hasReturnValue;funcInfo.message="{{name}} expected {{which}} return value.";funcInfo.data={name:funcInfo.node.type==="Program"?"Program":lodash.upperFirst(astUtils.getFunctionNameWithKind(funcInfo.node)),which:hasReturnValue?"a":"no"}}else if(funcInfo.hasReturnValue!==hasReturnValue){context.report({node:node,message:funcInfo.message,data:funcInfo.data})}},"Program:exit":checkLastSegment,"FunctionDeclaration:exit":checkLastSegment,"FunctionExpression:exit":checkLastSegment,"ArrowFunctionExpression:exit":checkLastSegment}}}},{"../ast-utils":22,lodash:16}],46:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"enforce consistent naming when capturing the current execution context",category:"Stylistic Issues",recommended:false},schema:{type:"array",items:{type:"string",minLength:1},uniqueItems:true}},create:function create(context){var aliases=[];if(context.options.length===0){aliases.push("that")}else{aliases=context.options}function reportBadAssignment(node,alias){context.report({node:node,message:"Designated alias '{{alias}}' is not assigned to 'this'.",data:{alias:alias}})}function checkAssignment(node,name,value){var isThis=value.type==="ThisExpression";if(aliases.indexOf(name)!==-1){if(!isThis||node.operator&&node.operator!=="="){reportBadAssignment(node,name)}}else if(isThis){context.report({node:node,message:"Unexpected alias '{{name}}' for 'this'.",data:{name:name}})}}function checkWasAssigned(alias,scope){var variable=scope.set.get(alias);if(!variable){return}if(variable.defs.some(function(def){return def.node.type==="VariableDeclarator"&&def.node.init!==null})){return}if(!variable.references.some(function(reference){var write=reference.writeExpr;return reference.from===scope&&write&&write.type==="ThisExpression"&&write.parent.operator==="="})){variable.defs.map(function(def){return def.node}).forEach(function(node){reportBadAssignment(node,alias)})}}function ensureWasAssigned(){var scope=context.getScope();aliases.forEach(function(alias){checkWasAssigned(alias,scope)})}return{"Program:exit":ensureWasAssigned,"FunctionExpression:exit":ensureWasAssigned,"FunctionDeclaration:exit":ensureWasAssigned,VariableDeclarator:function VariableDeclarator(node){var id=node.id;var isDestructuring=id.type==="ArrayPattern"||id.type==="ObjectPattern";if(node.init!==null&&!isDestructuring){checkAssignment(node,id.name,node.init)}},AssignmentExpression:function AssignmentExpression(node){if(node.left.type==="Identifier"){checkAssignment(node,node.left.name,node.right)}}}}}},{}],47:[function(require,module,exports){"use strict";function isReachable(segment){return segment.reachable}function isConstructorFunction(node){return node.type==="FunctionExpression"&&node.parent.type==="MethodDefinition"&&node.parent.kind==="constructor"}function isPossibleConstructor(node){if(!node){return false}switch(node.type){case"ClassExpression":case"FunctionExpression":case"ThisExpression":case"MemberExpression":case"CallExpression":case"NewExpression":case"YieldExpression":case"TaggedTemplateExpression":case"MetaProperty":return true;case"Identifier":return node.name!=="undefined";case"AssignmentExpression":return isPossibleConstructor(node.right);case"LogicalExpression":return isPossibleConstructor(node.left)||isPossibleConstructor(node.right);case"ConditionalExpression":return isPossibleConstructor(node.alternate)||isPossibleConstructor(node.consequent);case"SequenceExpression":{var lastExpression=node.expressions[node.expressions.length-1];return isPossibleConstructor(lastExpression)}default:return false}}module.exports={meta:{docs:{description:"require `super()` calls in constructors",category:"ECMAScript 6",recommended:true},schema:[]},create:function create(context){var funcInfo=null;var segInfoMap=Object.create(null);function isCalledInSomePath(segment){return segment.reachable&&segInfoMap[segment.id].calledInSomePaths}function isCalledInEveryPath(segment){if(segment.nextSegments.length===1&&segment.nextSegments[0].isLoopedPrevSegment(segment)){return true}return segment.reachable&&segInfoMap[segment.id].calledInEveryPaths}return{onCodePathStart:function onCodePathStart(codePath,node){if(isConstructorFunction(node)){var classNode=node.parent.parent.parent;var superClass=classNode.superClass;funcInfo={upper:funcInfo,isConstructor:true,hasExtends:Boolean(superClass),superIsConstructor:isPossibleConstructor(superClass),codePath:codePath}}else{funcInfo={upper:funcInfo,isConstructor:false,hasExtends:false,superIsConstructor:false,codePath:codePath}}},onCodePathEnd:function onCodePathEnd(codePath,node){var hasExtends=funcInfo.hasExtends;funcInfo=funcInfo.upper;if(!hasExtends){return}var segments=codePath.returnedSegments;var calledInEveryPaths=segments.every(isCalledInEveryPath);var calledInSomePaths=segments.some(isCalledInSomePath);if(!calledInEveryPaths){context.report({message:calledInSomePaths?"Lacked a call of 'super()' in some code paths.":"Expected to call 'super()'.",node:node.parent})}},onCodePathSegmentStart:function onCodePathSegmentStart(segment){if(!(funcInfo&&funcInfo.isConstructor&&funcInfo.hasExtends)){return}var info=segInfoMap[segment.id]={calledInSomePaths:false,calledInEveryPaths:false,validNodes:[]};var prevSegments=segment.prevSegments;if(prevSegments.length>0){info.calledInSomePaths=prevSegments.some(isCalledInSomePath);info.calledInEveryPaths=prevSegments.every(isCalledInEveryPath)}},onCodePathSegmentLoop:function onCodePathSegmentLoop(fromSegment,toSegment){if(!(funcInfo&&funcInfo.isConstructor&&funcInfo.hasExtends)){return}var isRealLoop=toSegment.prevSegments.length>=2;funcInfo.codePath.traverseSegments({first:toSegment,last:fromSegment},function(segment){var info=segInfoMap[segment.id];var prevSegments=segment.prevSegments;info.calledInSomePaths=prevSegments.some(isCalledInSomePath);info.calledInEveryPaths=prevSegments.every(isCalledInEveryPath);if(info.calledInSomePaths||isRealLoop){var nodes=info.validNodes;info.validNodes=[];for(var i=0;i=2){return true}node=node.consequent.body[0];while(node){if(node.type==="IfStatement"&&!node.alternate){return true}node=astUtils.getTrailingStatement(node)}}return false}function reportExpectedBraceError(node,bodyNode,name,suffix){context.report({node:node,loc:(name!=="else"?node:getElseKeyword(node)).loc.start,message:"Expected { after '{{name}}'{{suffix}}.",data:{name:name,suffix:suffix?" "+suffix:""},fix:function fix(fixer){return fixer.replaceText(bodyNode,"{"+sourceCode.getText(bodyNode)+"}")}})}function needsSemicolon(closingBracket){var tokenBefore=sourceCode.getTokenBefore(closingBracket);var tokenAfter=sourceCode.getTokenAfter(closingBracket);var lastBlockNode=sourceCode.getNodeByRangeIndex(tokenBefore.range[0]);if(astUtils.isSemicolonToken(tokenBefore)){return false}if(!tokenAfter){return false}if(lastBlockNode.type==="BlockStatement"&&lastBlockNode.parent.type!=="FunctionExpression"&&lastBlockNode.parent.type!=="ArrowFunctionExpression"){return false}if(tokenBefore.loc.end.line===tokenAfter.loc.start.line){return true}if(/^[([/`+-]/.test(tokenAfter.value)){return true}if(tokenBefore.type==="Punctuator"&&(tokenBefore.value==="++"||tokenBefore.value==="--")){return true}return false}function reportUnnecessaryBraceError(node,bodyNode,name,suffix){context.report({node:node,loc:(name!=="else"?node:getElseKeyword(node)).loc.start,message:"Unnecessary { after '{{name}}'{{suffix}}.",data:{name:name,suffix:suffix?" "+suffix:""},fix:function fix(fixer){var needsPrecedingSpace=node.type==="DoWhileStatement"&&sourceCode.getTokenBefore(bodyNode).end===bodyNode.start&&!astUtils.canTokensBeAdjacent("do",sourceCode.getFirstToken(bodyNode,{skip:1}));var openingBracket=sourceCode.getFirstToken(bodyNode);var closingBracket=sourceCode.getLastToken(bodyNode);var lastTokenInBlock=sourceCode.getTokenBefore(closingBracket);if(needsSemicolon(closingBracket)){return null}var resultingBodyText=sourceCode.getText().slice(openingBracket.range[1],lastTokenInBlock.range[0])+sourceCode.getText(lastTokenInBlock)+sourceCode.getText().slice(lastTokenInBlock.range[1],closingBracket.range[0]);return fixer.replaceText(bodyNode,(needsPrecedingSpace?" ":"")+resultingBodyText)}})}function prepareCheck(node,body,name,suffix){var hasBlock=body.type==="BlockStatement";var expected=null;if(node.type==="IfStatement"&&node.consequent===body&&requiresBraceOfConsequent(node)){expected=true}else if(multiOnly){if(hasBlock&&body.body.length===1){expected=false}}else if(multiLine){if(!isCollapsedOneLiner(body)){expected=true}}else if(multiOrNest){if(hasBlock&&body.body.length===1&&isOneLiner(body.body[0])){var leadingComments=sourceCode.getCommentsBefore(body.body[0]);expected=leadingComments.length>0}else if(!isOneLiner(body)){expected=true}}else{expected=true}return{actual:hasBlock,expected:expected,check:function check(){if(this.expected!==null&&this.expected!==this.actual){if(this.expected){reportExpectedBraceError(node,body,name,suffix)}else{reportUnnecessaryBraceError(node,body,name,suffix)}}}}}function prepareIfChecks(node){var preparedChecks=[];do{preparedChecks.push(prepareCheck(node,node.consequent,"if","condition"));if(node.alternate&&node.alternate.type!=="IfStatement"){preparedChecks.push(prepareCheck(node,node.alternate,"else"));break}node=node.alternate}while(node);if(consistent){var expected=preparedChecks.some(function(preparedCheck){if(preparedCheck.expected!==null){return preparedCheck.expected}return preparedCheck.actual});preparedChecks.forEach(function(preparedCheck){preparedCheck.expected=expected})}return preparedChecks}return{IfStatement:function IfStatement(node){if(node.parent.type!=="IfStatement"){prepareIfChecks(node).forEach(function(preparedCheck){preparedCheck.check()})}},WhileStatement:function WhileStatement(node){prepareCheck(node,node.body,"while","condition").check()},DoWhileStatement:function DoWhileStatement(node){prepareCheck(node,node.body,"do").check()},ForStatement:function ForStatement(node){prepareCheck(node,node.body,"for","condition").check()},ForInStatement:function ForInStatement(node){prepareCheck(node,node.body,"for-in").check()},ForOfStatement:function ForOfStatement(node){prepareCheck(node,node.body,"for-of").check()}}}}},{"../ast-utils":22}],49:[function(require,module,exports){"use strict";var DEFAULT_COMMENT_PATTERN=/^no default$/i;module.exports={meta:{docs:{description:"require `default` cases in `switch` statements",category:"Best Practices",recommended:false},schema:[{type:"object",properties:{commentPattern:{type:"string"}},additionalProperties:false}]},create:function create(context){var options=context.options[0]||{};var commentPattern=options.commentPattern?new RegExp(options.commentPattern):DEFAULT_COMMENT_PATTERN;var sourceCode=context.getSourceCode();function last(collection){return collection[collection.length-1]}return{SwitchStatement:function SwitchStatement(node){if(!node.cases.length){return}var hasDefault=node.cases.some(function(v){return v.test===null});if(!hasDefault){var comment=void 0;var lastCase=last(node.cases);var comments=sourceCode.getCommentsAfter(lastCase);if(comments.length){comment=last(comments)}if(!comment||!commentPattern.test(comment.value.trim())){context.report({node:node,message:"Expected a default case."})}}}}}}},{}],50:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"enforce consistent newlines before and after dots",category:"Best Practices",recommended:false},schema:[{enum:["object","property"]}],fixable:"code"},create:function create(context){var config=context.options[0];var onObject=config==="object"||!config;var sourceCode=context.getSourceCode();function checkDotLocation(obj,prop,node){var dot=sourceCode.getTokenBefore(prop);var textBeforeDot=sourceCode.getText().slice(obj.range[1],dot.range[0]);var textAfterDot=sourceCode.getText().slice(dot.range[1],prop.range[0]);if(dot.type==="Punctuator"&&dot.value==="."){if(onObject){if(!astUtils.isTokenOnSameLine(obj,dot)){var neededTextAfterObj=astUtils.isDecimalInteger(obj)?" ":"";context.report({node:node,loc:dot.loc.start,message:"Expected dot to be on same line as object.",fix:function fix(fixer){return fixer.replaceTextRange([obj.range[1],prop.range[0]],neededTextAfterObj+"."+textBeforeDot+textAfterDot)}})}}else if(!astUtils.isTokenOnSameLine(dot,prop)){context.report({node:node,loc:dot.loc.start,message:"Expected dot to be on same line as property.",fix:function fix(fixer){return fixer.replaceTextRange([obj.range[1],prop.range[0]],""+textBeforeDot+textAfterDot+".")}})}}}function checkNode(node){checkDotLocation(node.object,node.property,node)}return{MemberExpression:checkNode}}}},{"../ast-utils":22}],51:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");var validIdentifier=/^[a-zA-Z_$][a-zA-Z0-9_$]*$/;var keywords=require("../util/keywords");module.exports={meta:{docs:{description:"enforce dot notation whenever possible",category:"Best Practices",recommended:false},schema:[{type:"object",properties:{allowKeywords:{type:"boolean"},allowPattern:{type:"string"}},additionalProperties:false}],fixable:"code"},create:function create(context){var options=context.options[0]||{};var allowKeywords=options.allowKeywords===void 0||!!options.allowKeywords;var sourceCode=context.getSourceCode();var allowPattern=void 0;if(options.allowPattern){allowPattern=new RegExp(options.allowPattern)}return{MemberExpression:function MemberExpression(node){if(node.computed&&node.property.type==="Literal"&&validIdentifier.test(node.property.value)&&(allowKeywords||keywords.indexOf(String(node.property.value))===-1)){if(!(allowPattern&&allowPattern.test(node.property.value))){context.report({node:node.property,message:"[{{propertyValue}}] is better written in dot notation.",data:{propertyValue:JSON.stringify(node.property.value)},fix:function fix(fixer){var leftBracket=sourceCode.getTokenAfter(node.object,astUtils.isOpeningBracketToken);var rightBracket=sourceCode.getLastToken(node);if(sourceCode.getFirstTokenBetween(leftBracket,rightBracket,{includeComments:true,filter:astUtils.isCommentToken})){return null}var tokenAfterProperty=sourceCode.getTokenAfter(rightBracket);var needsSpaceAfterProperty=tokenAfterProperty&&rightBracket.range[1]===tokenAfterProperty.range[0]&&!astUtils.canTokensBeAdjacent(String(node.property.value),tokenAfterProperty);var textBeforeDot=astUtils.isDecimalInteger(node.object)?" ":"";var textAfterProperty=needsSpaceAfterProperty?" ":"";return fixer.replaceTextRange([leftBracket.range[0],rightBracket.range[1]],textBeforeDot+"."+node.property.value+textAfterProperty)}})}}if(!allowKeywords&&!node.computed&&keywords.indexOf(String(node.property.name))!==-1){context.report({node:node.property,message:".{{propertyName}} is a syntax error.",data:{propertyName:node.property.name},fix:function fix(fixer){var dot=sourceCode.getTokenBefore(node.property);var textAfterDot=sourceCode.text.slice(dot.range[1],node.property.range[0]);if(textAfterDot.trim()){return null}return fixer.replaceTextRange([dot.range[0],node.property.range[1]],"["+textAfterDot+'"'+node.property.name+'"]')}})}}}}}},{"../ast-utils":22,"../util/keywords":278}],52:[function(require,module,exports){"use strict";var lodash=require("lodash");module.exports={meta:{docs:{description:"require or disallow newline at the end of files",category:"Stylistic Issues",recommended:false},fixable:"whitespace",schema:[{enum:["always","never","unix","windows"]}]},create:function create(context){return{Program:function checkBadEOF(node){var sourceCode=context.getSourceCode(),src=sourceCode.getText(),location={column:lodash.last(sourceCode.lines).length,line:sourceCode.lines.length},LF="\n",CRLF="\r"+LF,endsWithNewline=lodash.endsWith(src,LF);var mode=context.options[0]||"always",appendCRLF=false;if(mode==="unix"){mode="always"}if(mode==="windows"){mode="always";appendCRLF=true}if(mode==="always"&&!endsWithNewline){context.report({node:node,loc:location,message:"Newline required at end of file but not found.",fix:function fix(fixer){return fixer.insertTextAfterRange([0,src.length],appendCRLF?CRLF:LF)}})}else if(mode==="never"&&endsWithNewline){context.report({node:node,loc:location,message:"Newline not allowed at end of file.",fix:function fix(fixer){var finalEOLs=/(?:\r?\n)+$/,match=finalEOLs.exec(sourceCode.text),start=match.index,end=sourceCode.text.length;return fixer.replaceTextRange([start,end],"")}})}}}}}},{lodash:16}],53:[function(require,module,exports){"use strict";var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj};var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"require the use of `===` and `!==`",category:"Best Practices",recommended:false},schema:{anyOf:[{type:"array",items:[{enum:["always"]},{type:"object",properties:{null:{enum:["always","never","ignore"]}},additionalProperties:false}],additionalItems:false},{type:"array",items:[{enum:["smart","allow-null"]}],additionalItems:false}]},fixable:"code"},create:function create(context){var config=context.options[0]||"always";var options=context.options[1]||{};var sourceCode=context.getSourceCode();var nullOption=config==="always"?options.null||"always":"ignore";var enforceRuleForNull=nullOption==="always";var enforceInverseRuleForNull=nullOption==="never";function isTypeOf(node){return node.type==="UnaryExpression"&&node.operator==="typeof"}function isTypeOfBinary(node){return isTypeOf(node.left)||isTypeOf(node.right)}function areLiteralsAndSameType(node){return node.left.type==="Literal"&&node.right.type==="Literal"&&_typeof(node.left.value)===_typeof(node.right.value)}function isNullCheck(node){return astUtils.isNullLiteral(node.right)||astUtils.isNullLiteral(node.left)}function getOperatorLocation(node){var opToken=sourceCode.getTokenAfter(node.left);return{line:opToken.loc.start.line,column:opToken.loc.start.column}}function report(node,expectedOperator){context.report({node:node,loc:getOperatorLocation(node),message:"Expected '{{expectedOperator}}' and instead saw '{{actualOperator}}'.",data:{expectedOperator:expectedOperator,actualOperator:node.operator},fix:function fix(fixer){if(isTypeOfBinary(node)||areLiteralsAndSameType(node)){var operatorToken=sourceCode.getFirstTokenBetween(node.left,node.right,function(token){return token.value===node.operator});return fixer.replaceText(operatorToken,expectedOperator)}return null}})}return{BinaryExpression:function BinaryExpression(node){var isNull=isNullCheck(node);if(node.operator!=="=="&&node.operator!=="!="){if(enforceInverseRuleForNull&&isNull){report(node,node.operator.slice(0,-1))}return}if(config==="smart"&&(isTypeOfBinary(node)||areLiteralsAndSameType(node)||isNull)){return}if(!enforceRuleForNull&&isNull){return}report(node,node.operator+"=")}}}}},{"../ast-utils":22}],54:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:'enforce "for" loop update clause moving the counter in the right direction.',category:"Possible Errors",recommended:false},fixable:null,schema:[]},create:function create(context){function report(node){context.report({node:node,message:"The update clause in this loop moves the variable in the wrong direction."})}function getUpdateDirection(update,counter){if(update.argument.type==="Identifier"&&update.argument.name===counter){if(update.operator==="++"){return 1}if(update.operator==="--"){return-1}}return 0}function getAssignmentDirection(update,counter){if(update.left.name===counter){if(update.operator==="+="){return 1}if(update.operator==="-="){return-1}}return 0}return{ForStatement:function ForStatement(node){if(node.test&&node.test.type==="BinaryExpression"&&node.test.left.type==="Identifier"&&node.update){var counter=node.test.left.name;var operator=node.test.operator;var update=node.update;if(operator==="<"||operator==="<="){if(update.type==="UpdateExpression"&&getUpdateDirection(update,counter)<0){report(node)}if(update.type==="AssignmentExpression"&&getAssignmentDirection(update,counter)<0){report(node)}}else if(operator===">"||operator===">="){if(update.type==="UpdateExpression"&&getUpdateDirection(update,counter)>0){report(node)}if(update.type==="AssignmentExpression"&&getAssignmentDirection(update,counter)>0){report(node)}}}}}}}},{}],55:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"require or disallow spacing between function identifiers and their invocations",category:"Stylistic Issues",recommended:false},fixable:"whitespace",schema:{anyOf:[{type:"array",items:[{enum:["never"]}],minItems:0,maxItems:1},{type:"array",items:[{enum:["always"]},{type:"object",properties:{allowNewlines:{type:"boolean"}},additionalProperties:false}],minItems:0,maxItems:2}]}},create:function create(context){var never=context.options[0]!=="always";var allowNewlines=!never&&context.options[1]&&context.options[1].allowNewlines;var sourceCode=context.getSourceCode();var text=sourceCode.getText();function checkSpacing(node){var lastToken=sourceCode.getLastToken(node);var lastCalleeToken=sourceCode.getLastToken(node.callee);var parenToken=sourceCode.getFirstTokenBetween(lastCalleeToken,lastToken,astUtils.isOpeningParenToken);var prevToken=parenToken&&sourceCode.getTokenBefore(parenToken);if(!(parenToken&&parenToken.range[1]=6){return esutils.keyword.isIdentifierES6(name)}return esutils.keyword.isIdentifierES5(name)}var alwaysOrNever={enum:["always","never"]};var optionsObject={type:"object",properties:{includeCommonJSModuleExports:{type:"boolean"}},additionalProperties:false};module.exports={meta:{docs:{description:"require function names to match the name of the variable or property to which they are assigned",category:"Stylistic Issues",recommended:false},schema:{anyOf:[{type:"array",additionalItems:false,items:[alwaysOrNever,optionsObject]},{type:"array",additionalItems:false,items:[optionsObject]}]}},create:function create(context){var options=(_typeof(context.options[0])==="object"?context.options[0]:context.options[1])||{};var nameMatches=typeof context.options[0]==="string"?context.options[0]:"always";var includeModuleExports=options.includeCommonJSModuleExports;var ecmaVersion=context.parserOptions&&context.parserOptions.ecmaVersion?context.parserOptions.ecmaVersion:5;function shouldWarn(x,y){return nameMatches==="always"&&x!==y||nameMatches==="never"&&x===y}function report(node,name,funcName,isProp){var message=void 0;if(nameMatches==="always"&&isProp){message="Function name `{{funcName}}` should match property name `{{name}}`"}else if(nameMatches==="always"){message="Function name `{{funcName}}` should match variable name `{{name}}`"}else if(isProp){message="Function name `{{funcName}}` should not match property name `{{name}}`"}else{message="Function name `{{funcName}}` should not match variable name `{{name}}`"}context.report({node:node,message:message,data:{name:name,funcName:funcName}})}function isStringLiteral(node){return node.type==="Literal"&&typeof node.value==="string"}return{VariableDeclarator:function VariableDeclarator(node){if(!node.init||node.init.type!=="FunctionExpression"||node.id.type!=="Identifier"){return}if(node.init.id&&shouldWarn(node.id.name,node.init.id.name)){report(node,node.id.name,node.init.id.name,false)}},AssignmentExpression:function AssignmentExpression(node){if(node.right.type!=="FunctionExpression"||node.left.computed&&node.left.property.type!=="Literal"||!includeModuleExports&&isModuleExports(node.left)||node.left.type!=="Identifier"&&node.left.type!=="MemberExpression"){return}var isProp=node.left.type==="MemberExpression";var name=isProp?astUtils.getStaticPropertyName(node.left):node.left.name;if(node.right.id&&isIdentifier(name)&&shouldWarn(name,node.right.id.name)){report(node,name,node.right.id.name,isProp)}},Property:function Property(node){if(node.value.type!=="FunctionExpression"||!node.value.id||node.computed&&!isStringLiteral(node.key)){return}if(node.key.type==="Identifier"&&shouldWarn(node.key.name,node.value.id.name)){report(node,node.key.name,node.value.id.name,true)}else if(isStringLiteral(node.key)&&isIdentifier(node.key.value,ecmaVersion)&&shouldWarn(node.key.value,node.value.id.name)){report(node,node.key.value,node.value.id.name,true)}}}}}},{"../ast-utils":22,esutils:11}],57:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");function isFunctionName(variable){return variable&&variable.defs[0].type==="FunctionName"}module.exports={meta:{docs:{description:"require or disallow named `function` expressions",category:"Stylistic Issues",recommended:false},schema:[{enum:["always","as-needed","never"]}]},create:function create(context){var never=context.options[0]==="never";var asNeeded=context.options[0]==="as-needed";function isObjectOrClassMethod(node){var parent=node.parent;return parent.type==="MethodDefinition"||parent.type==="Property"&&(parent.method||parent.kind==="get"||parent.kind==="set")}function hasInferredName(node){var parent=node.parent;return isObjectOrClassMethod(node)||parent.type==="VariableDeclarator"&&parent.id.type==="Identifier"&&parent.init===node||parent.type==="Property"&&parent.value===node||parent.type==="AssignmentExpression"&&parent.left.type==="Identifier"&&parent.right===node||parent.type==="ExportDefaultDeclaration"&&parent.declaration===node||parent.type==="AssignmentPattern"&&parent.right===node}return{"FunctionExpression:exit":function FunctionExpressionExit(node){var nameVar=context.getDeclaredVariables(node)[0];if(isFunctionName(nameVar)&&nameVar.references.length>0){return}var hasName=Boolean(node.id&&node.id.name);var name=astUtils.getFunctionNameWithKind(node);if(never){if(hasName){context.report({node:node,message:"Unexpected named {{name}}.",data:{name:name}})}}else{if(!hasName&&(asNeeded?!hasInferredName(node):!isObjectOrClassMethod(node))){context.report({node:node,message:"Unexpected unnamed {{name}}.",data:{name:name}})}}}}}}},{"../ast-utils":22}],58:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"enforce the consistent use of either `function` declarations or expressions",category:"Stylistic Issues",recommended:false},schema:[{enum:["declaration","expression"]},{type:"object",properties:{allowArrowFunctions:{type:"boolean"}},additionalProperties:false}]},create:function create(context){var style=context.options[0],allowArrowFunctions=context.options[1]&&context.options[1].allowArrowFunctions===true,enforceDeclarations=style==="declaration",stack=[];var nodesToCheck={FunctionDeclaration:function FunctionDeclaration(node){stack.push(false);if(!enforceDeclarations&&node.parent.type!=="ExportDefaultDeclaration"){context.report({node:node,message:"Expected a function expression."})}},"FunctionDeclaration:exit":function FunctionDeclarationExit(){stack.pop()},FunctionExpression:function FunctionExpression(node){stack.push(false);if(enforceDeclarations&&node.parent.type==="VariableDeclarator"){context.report({node:node.parent,message:"Expected a function declaration."})}},"FunctionExpression:exit":function FunctionExpressionExit(){stack.pop()},ThisExpression:function ThisExpression(){if(stack.length>0){stack[stack.length-1]=true}}};if(!allowArrowFunctions){nodesToCheck.ArrowFunctionExpression=function(){stack.push(false)};nodesToCheck["ArrowFunctionExpression:exit"]=function(node){var hasThisExpr=stack.pop();if(enforceDeclarations&&!hasThisExpr&&node.parent.type==="VariableDeclarator"){context.report({node:node.parent,message:"Expected a function declaration."})}}}return nodesToCheck}}},{}],59:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"enforce consistent spacing around `*` operators in generator functions",category:"ECMAScript 6",recommended:false},fixable:"whitespace",schema:[{oneOf:[{enum:["before","after","both","neither"]},{type:"object",properties:{before:{type:"boolean"},after:{type:"boolean"}},additionalProperties:false}]}]},create:function create(context){var mode=function(option){if(!option||typeof option==="string"){return{before:{before:true,after:false},after:{before:false,after:true},both:{before:true,after:true},neither:{before:false,after:false}}[option||"before"]}return option}(context.options[0]);var sourceCode=context.getSourceCode();function isStarToken(token){return token.value==="*"&&token.type==="Punctuator"}function getStarToken(node){return sourceCode.getFirstToken(node.parent.method||node.parent.type==="MethodDefinition"?node.parent:node,isStarToken)}function checkSpacing(side,leftToken,rightToken){if(!!(rightToken.range[0]-leftToken.range[1])!==mode[side]){var after=leftToken.value==="*";var spaceRequired=mode[side];var node=after?leftToken:rightToken;var type=spaceRequired?"Missing":"Unexpected";var message="{{type}} space {{side}} *.";var data={type:type,side:side};context.report({node:node,message:message,data:data,fix:function fix(fixer){if(spaceRequired){if(after){return fixer.insertTextAfter(node," ")}return fixer.insertTextBefore(node," ")}return fixer.removeRange([leftToken.range[1],rightToken.range[0]])}})}}function checkFunction(node){if(!node.generator){return}var starToken=getStarToken(node);var prevToken=sourceCode.getTokenBefore(starToken);if(prevToken.value==="function"||prevToken.value==="static"){checkSpacing("before",prevToken,starToken)}var nextToken=sourceCode.getTokenAfter(starToken);checkSpacing("after",starToken,nextToken)}return{FunctionDeclaration:checkFunction,FunctionExpression:checkFunction}}}},{}],60:[function(require,module,exports){"use strict";var ACCEPTABLE_PARENTS=["AssignmentExpression","VariableDeclarator","MemberExpression","ExpressionStatement","CallExpression","ConditionalExpression","Program","VariableDeclaration"];function findReference(scope,node){var references=scope.references.filter(function(reference){return reference.identifier.range[0]===node.range[0]&&reference.identifier.range[1]===node.range[1]});if(references.length===1){return references[0]}return null}function isShadowed(scope,node){var reference=findReference(scope,node);return reference&&reference.resolved&&reference.resolved.defs.length>0}module.exports={meta:{docs:{description:"require `require()` calls to be placed at top-level module scope",category:"Node.js and CommonJS",recommended:false},schema:[]},create:function create(context){return{CallExpression:function CallExpression(node){var currentScope=context.getScope();if(node.callee.name==="require"&&!isShadowed(currentScope,node.callee)){var isGoodRequire=context.getAncestors().every(function(parent){return ACCEPTABLE_PARENTS.indexOf(parent.type)>-1});if(!isGoodRequire){context.report({node:node,message:"Unexpected require()."})}}}}}}},{}],61:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"require `for-in` loops to include an `if` statement",category:"Best Practices",recommended:false},schema:[]},create:function create(context){return{ForInStatement:function ForInStatement(node){var body=node.body.type==="BlockStatement"?node.body.body[0]:node.body;if(body&&body.type!=="IfStatement"){context.report({node:node,message:"The body of a for-in should be wrapped in an if statement to filter unwanted properties from the prototype."})}}}}}},{}],62:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"require error handling in callbacks",category:"Node.js and CommonJS",recommended:false},schema:[{type:"string"}]},create:function create(context){var errorArgument=context.options[0]||"err";function isPattern(stringToCheck){var firstChar=stringToCheck[0];return firstChar==="^"}function matchesConfiguredErrorName(name){if(isPattern(errorArgument)){var regexp=new RegExp(errorArgument);return regexp.test(name)}return name===errorArgument}function getParameters(scope){return scope.variables.filter(function(variable){return variable.defs[0]&&variable.defs[0].type==="Parameter"})}function checkForError(node){var scope=context.getScope(),parameters=getParameters(scope),firstParameter=parameters[0];if(firstParameter&&matchesConfiguredErrorName(firstParameter.name)){if(firstParameter.references.length===0){context.report({node:node,message:"Expected error to be handled."})}}}return{FunctionDeclaration:checkForError,FunctionExpression:checkForError,ArrowFunctionExpression:checkForError}}}},{}],63:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow specified identifiers",category:"Stylistic Issues",recommended:false},schema:{type:"array",items:{type:"string"},uniqueItems:true}},create:function create(context){var blacklist=context.options;function isInvalid(name){return blacklist.indexOf(name)!==-1}function shouldReport(effectiveParent,name){return effectiveParent.type!=="CallExpression"&&effectiveParent.type!=="NewExpression"&&isInvalid(name)}function report(node){context.report({node:node,message:"Identifier '{{name}}' is blacklisted.",data:{name:node.name}})}return{Identifier:function Identifier(node){var name=node.name,effectiveParent=node.parent.type==="MemberExpression"?node.parent.parent:node.parent;if(node.parent.type==="MemberExpression"){if(node.parent.object.type==="Identifier"&&node.parent.object.name===node.name){if(isInvalid(name)){report(node)}}else if(effectiveParent.type==="AssignmentExpression"&&(effectiveParent.right.type!=="MemberExpression"||effectiveParent.left.type==="MemberExpression"&&effectiveParent.left.property.name===node.name)){if(isInvalid(name)){report(node)}}}else if(node.parent.type==="Property"){if(shouldReport(effectiveParent,name)){report(node)}}else if(shouldReport(effectiveParent,name)){report(node)}}}}}},{}],64:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"enforce minimum and maximum identifier lengths",category:"Stylistic Issues",recommended:false},schema:[{type:"object",properties:{min:{type:"number"},max:{type:"number"},exceptions:{type:"array",uniqueItems:true,items:{type:"string"}},properties:{enum:["always","never"]}},additionalProperties:false}]},create:function create(context){var options=context.options[0]||{};var minLength=typeof options.min!=="undefined"?options.min:2;var maxLength=typeof options.max!=="undefined"?options.max:Infinity;var properties=options.properties!=="never";var exceptions=(options.exceptions?options.exceptions:[]).reduce(function(obj,item){obj[item]=true;return obj},{});var SUPPORTED_EXPRESSIONS={MemberExpression:properties&&function(parent){return!parent.computed&&(parent.parent.left===parent&&parent.parent.type==="AssignmentExpression"||parent.parent.type==="Property"&&parent.parent.value===parent&&parent.parent.parent.type==="ObjectPattern"&&parent.parent.parent.parent.left===parent.parent.parent)},AssignmentPattern:function AssignmentPattern(parent,node){return parent.left===node},VariableDeclarator:function VariableDeclarator(parent,node){return parent.id===node},Property:properties&&function(parent,node){return parent.key===node},ImportDefaultSpecifier:true,RestElement:true,FunctionExpression:true,ArrowFunctionExpression:true,ClassDeclaration:true,FunctionDeclaration:true,MethodDefinition:true,CatchClause:true};return{Identifier:function Identifier(node){var name=node.name;var parent=node.parent;var isShort=name.lengthmaxLength;if(!(isShort||isLong)||exceptions[name]){return}var isValidExpression=SUPPORTED_EXPRESSIONS[parent.type];if(isValidExpression&&(isValidExpression===true||isValidExpression(parent,node))){context.report({node:node,message:isShort?"Identifier name '{{name}}' is too short (< {{min}}).":"Identifier name '{{name}}' is too long (> {{max}}).",data:{name:name,min:minLength,max:maxLength}})}}}}}},{}],65:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"require identifiers to match a specified regular expression",category:"Stylistic Issues",recommended:false},schema:[{type:"string"},{type:"object",properties:{properties:{type:"boolean"}}}]},create:function create(context){var pattern=context.options[0]||"^.+$",regexp=new RegExp(pattern);var options=context.options[1]||{},properties=!!options.properties,onlyDeclarations=!!options.onlyDeclarations;function isInvalid(name){return!regexp.test(name)}function shouldReport(effectiveParent,name){return effectiveParent.type!=="CallExpression"&&effectiveParent.type!=="NewExpression"&&isInvalid(name)}function report(node){context.report({node:node,message:"Identifier '{{name}}' does not match the pattern '{{pattern}}'.",data:{name:node.name,pattern:pattern}})}return{Identifier:function Identifier(node){var name=node.name,parent=node.parent,effectiveParent=parent.type==="MemberExpression"?parent.parent:parent;if(parent.type==="MemberExpression"){if(!properties){return}if(parent.object.type==="Identifier"&&parent.object.name===name){if(isInvalid(name)){report(node)}}else if(effectiveParent.type==="AssignmentExpression"&&(effectiveParent.right.type!=="MemberExpression"||effectiveParent.left.type==="MemberExpression"&&effectiveParent.left.property.name===name)){if(isInvalid(name)){report(node)}}}else if(parent.type==="Property"){if(!properties||parent.key.name!==name){return}if(shouldReport(effectiveParent,name)){report(node)}}else{var isDeclaration=effectiveParent.type==="FunctionDeclaration"||effectiveParent.type==="VariableDeclarator";if(onlyDeclarations&&!isDeclaration){return}if(shouldReport(effectiveParent,name)){report(node)}}}}}}},{}],66:[function(require,module,exports){"use strict";var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj};var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"enforce consistent indentation",category:"Stylistic Issues",recommended:false,replacedBy:["indent"]},deprecated:true,fixable:"whitespace",schema:[{oneOf:[{enum:["tab"]},{type:"integer",minimum:0}]},{type:"object",properties:{SwitchCase:{type:"integer",minimum:0},VariableDeclarator:{oneOf:[{type:"integer",minimum:0},{type:"object",properties:{var:{type:"integer",minimum:0},let:{type:"integer",minimum:0},const:{type:"integer",minimum:0}}}]},outerIIFEBody:{type:"integer",minimum:0},MemberExpression:{type:"integer",minimum:0},FunctionDeclaration:{type:"object",properties:{parameters:{oneOf:[{type:"integer",minimum:0},{enum:["first"]}]},body:{type:"integer",minimum:0}}},FunctionExpression:{type:"object",properties:{parameters:{oneOf:[{type:"integer",minimum:0},{enum:["first"]}]},body:{type:"integer",minimum:0}}},CallExpression:{type:"object",properties:{parameters:{oneOf:[{type:"integer",minimum:0},{enum:["first"]}]}}},ArrayExpression:{oneOf:[{type:"integer",minimum:0},{enum:["first"]}]},ObjectExpression:{oneOf:[{type:"integer",minimum:0},{enum:["first"]}]}},additionalProperties:false}]},create:function create(context){var DEFAULT_VARIABLE_INDENT=1;var DEFAULT_PARAMETER_INDENT=null;var DEFAULT_FUNCTION_BODY_INDENT=1;var indentType="space";var indentSize=4;var options={SwitchCase:0,VariableDeclarator:{var:DEFAULT_VARIABLE_INDENT,let:DEFAULT_VARIABLE_INDENT,const:DEFAULT_VARIABLE_INDENT},outerIIFEBody:null,FunctionDeclaration:{parameters:DEFAULT_PARAMETER_INDENT,body:DEFAULT_FUNCTION_BODY_INDENT},FunctionExpression:{parameters:DEFAULT_PARAMETER_INDENT,body:DEFAULT_FUNCTION_BODY_INDENT},CallExpression:{arguments:DEFAULT_PARAMETER_INDENT},ArrayExpression:1,ObjectExpression:1};var sourceCode=context.getSourceCode();if(context.options.length){if(context.options[0]==="tab"){indentSize=1;indentType="tab"}else if(typeof context.options[0]==="number"){indentSize=context.options[0];indentType="space"}if(context.options[1]){var opts=context.options[1];options.SwitchCase=opts.SwitchCase||0;var variableDeclaratorRules=opts.VariableDeclarator;if(typeof variableDeclaratorRules==="number"){options.VariableDeclarator={var:variableDeclaratorRules,let:variableDeclaratorRules,const:variableDeclaratorRules}}else if((typeof variableDeclaratorRules==="undefined"?"undefined":_typeof(variableDeclaratorRules))==="object"){Object.assign(options.VariableDeclarator,variableDeclaratorRules)}if(typeof opts.outerIIFEBody==="number"){options.outerIIFEBody=opts.outerIIFEBody}if(typeof opts.MemberExpression==="number"){options.MemberExpression=opts.MemberExpression}if(_typeof(opts.FunctionDeclaration)==="object"){Object.assign(options.FunctionDeclaration,opts.FunctionDeclaration)}if(_typeof(opts.FunctionExpression)==="object"){Object.assign(options.FunctionExpression,opts.FunctionExpression)}if(_typeof(opts.CallExpression)==="object"){Object.assign(options.CallExpression,opts.CallExpression)}if(typeof opts.ArrayExpression==="number"||typeof opts.ArrayExpression==="string"){options.ArrayExpression=opts.ArrayExpression}if(typeof opts.ObjectExpression==="number"||typeof opts.ObjectExpression==="string"){options.ObjectExpression=opts.ObjectExpression}}}var caseIndentStore={};function createErrorMessage(expectedAmount,actualSpaces,actualTabs){var expectedStatement=expectedAmount+" "+indentType+(expectedAmount===1?"":"s");var foundSpacesWord="space"+(actualSpaces===1?"":"s");var foundTabsWord="tab"+(actualTabs===1?"":"s");var foundStatement=void 0;if(actualSpaces>0&&actualTabs>0){foundStatement=actualSpaces+" "+foundSpacesWord+" and "+actualTabs+" "+foundTabsWord}else if(actualSpaces>0){foundStatement=indentType==="space"?actualSpaces:actualSpaces+" "+foundSpacesWord}else if(actualTabs>0){foundStatement=indentType==="tab"?actualTabs:actualTabs+" "+foundTabsWord}else{foundStatement="0"}return"Expected indentation of "+expectedStatement+" but found "+foundStatement+"."}function report(node,needed,gottenSpaces,gottenTabs,loc,isLastNodeCheck){if(gottenSpaces&&gottenTabs){return}var desiredIndent=(indentType==="space"?" ":"\t").repeat(needed);var textRange=isLastNodeCheck?[node.range[1]-node.loc.end.column,node.range[1]-node.loc.end.column+gottenSpaces+gottenTabs]:[node.range[0]-node.loc.start.column,node.range[0]-node.loc.start.column+gottenSpaces+gottenTabs];context.report({node:node,loc:loc,message:createErrorMessage(needed,gottenSpaces,gottenTabs),fix:function fix(fixer){return fixer.replaceTextRange(textRange,desiredIndent)}})}function getNodeIndent(node,byLastLine){var token=byLastLine?sourceCode.getLastToken(node):sourceCode.getFirstToken(node);var srcCharsBeforeNode=sourceCode.getText(token,token.loc.start.column).split("");var indentChars=srcCharsBeforeNode.slice(0,srcCharsBeforeNode.findIndex(function(char){return char!==" "&&char!=="\t"}));var spaces=indentChars.filter(function(char){return char===" "}).length;var tabs=indentChars.filter(function(char){return char==="\t"}).length;return{space:spaces,tab:tabs,goodChar:indentType==="space"?spaces:tabs,badChar:indentType==="space"?tabs:spaces}}function isNodeFirstInLine(node,byEndLocation){var firstToken=byEndLocation===true?sourceCode.getLastToken(node,1):sourceCode.getTokenBefore(node),startLine=byEndLocation===true?node.loc.end.line:node.loc.start.line,endLine=firstToken?firstToken.loc.end.line:-1;return startLine!==endLine}function checkNodeIndent(node,neededIndent){var actualIndent=getNodeIndent(node,false);if(node.type!=="ArrayExpression"&&node.type!=="ObjectExpression"&&(actualIndent.goodChar!==neededIndent||actualIndent.badChar!==0)&&isNodeFirstInLine(node)){report(node,neededIndent,actualIndent.space,actualIndent.tab)}if(node.type==="IfStatement"&&node.alternate){var elseToken=sourceCode.getTokenBefore(node.alternate);checkNodeIndent(elseToken,neededIndent);if(!isNodeFirstInLine(node.alternate)){checkNodeIndent(node.alternate,neededIndent)}}if(node.type==="TryStatement"&&node.handler){var catchToken=sourceCode.getFirstToken(node.handler);checkNodeIndent(catchToken,neededIndent)}if(node.type==="TryStatement"&&node.finalizer){var finallyToken=sourceCode.getTokenBefore(node.finalizer);checkNodeIndent(finallyToken,neededIndent)}if(node.type==="DoWhileStatement"){var whileToken=sourceCode.getTokenAfter(node.body);checkNodeIndent(whileToken,neededIndent)}}function checkNodesIndent(nodes,indent){nodes.forEach(function(node){return checkNodeIndent(node,indent)})}function checkLastNodeLineIndent(node,lastLineIndent){var lastToken=sourceCode.getLastToken(node);var endIndent=getNodeIndent(lastToken,true);if((endIndent.goodChar!==lastLineIndent||endIndent.badChar!==0)&&isNodeFirstInLine(node,true)){report(node,lastLineIndent,endIndent.space,endIndent.tab,{line:lastToken.loc.start.line,column:lastToken.loc.start.column},true)}}function checkLastReturnStatementLineIndent(node,firstLineIndent){var lastToken=sourceCode.getLastToken(node,astUtils.isClosingParenToken);var textBeforeClosingParenthesis=sourceCode.getText(lastToken,lastToken.loc.start.column).slice(0,-1);if(textBeforeClosingParenthesis.trim()){return}var endIndent=getNodeIndent(lastToken,true);if(endIndent.goodChar!==firstLineIndent){report(node,firstLineIndent,endIndent.space,endIndent.tab,{line:lastToken.loc.start.line,column:lastToken.loc.start.column},true)}}function checkFirstNodeLineIndent(node,firstLineIndent){var startIndent=getNodeIndent(node,false);if((startIndent.goodChar!==firstLineIndent||startIndent.badChar!==0)&&isNodeFirstInLine(node)){report(node,firstLineIndent,startIndent.space,startIndent.tab,{line:node.loc.start.line,column:node.loc.start.column})}}function getParentNodeByType(node,type,stopAtList){var parent=node.parent;if(!stopAtList){stopAtList=["Program"]}while(parent.type!==type&&stopAtList.indexOf(parent.type)===-1&&parent.type!=="Program"){parent=parent.parent}return parent.type===type?parent:null}function getVariableDeclaratorNode(node){return getParentNodeByType(node,"VariableDeclarator")}function isNodeInVarOnTop(node,varNode){return varNode&&varNode.parent.loc.start.line===node.loc.start.line&&varNode.parent.declarations.length>1}function isArgBeforeCalleeNodeMultiline(node){var parent=node.parent;if(parent.arguments.length>=2&&parent.arguments[1]===node){return parent.arguments[0].loc.end.line>parent.arguments[0].loc.start.line}return false}function isOuterIIFE(node){var parent=node.parent;var stmt=parent.parent;if(parent.type!=="CallExpression"||parent.callee!==node){return false}while(stmt.type==="UnaryExpression"&&(stmt.operator==="!"||stmt.operator==="~"||stmt.operator==="+"||stmt.operator==="-")||stmt.type==="AssignmentExpression"||stmt.type==="LogicalExpression"||stmt.type==="SequenceExpression"||stmt.type==="VariableDeclarator"){stmt=stmt.parent}return(stmt.type==="ExpressionStatement"||stmt.type==="VariableDeclaration")&&stmt.parent&&stmt.parent.type==="Program"}function checkIndentInFunctionBlock(node){var calleeNode=node.parent;var indent=void 0;if(calleeNode.parent&&(calleeNode.parent.type==="Property"||calleeNode.parent.type==="ArrayExpression")){indent=getNodeIndent(calleeNode,false).goodChar}else{indent=getNodeIndent(calleeNode).goodChar}if(calleeNode.parent.type==="CallExpression"){var calleeParent=calleeNode.parent;if(calleeNode.type!=="FunctionExpression"&&calleeNode.type!=="ArrowFunctionExpression"){if(calleeParent&&calleeParent.loc.start.line0){checkNodesIndent(node.body,indent)}checkLastNodeLineIndent(node,indent-functionOffset)}function isSingleLineNode(node){var lastToken=sourceCode.getLastToken(node),startLine=node.loc.start.line,endLine=lastToken.loc.end.line;return startLine===endLine}function isFirstArrayElementOnSameLine(node){if(node.type==="ArrayExpression"&&node.elements[0]){return node.elements[0].loc.start.line===node.loc.start.line&&node.elements[0].type==="ObjectExpression"}return false}function checkIndentInArrayOrObjectBlock(node){if(isSingleLineNode(node)){return}var elements=node.type==="ArrayExpression"?node.elements:node.properties;elements=elements.filter(function(elem){return elem!==null});var nodeIndent=void 0;var elementsIndent=void 0;var parentVarNode=getVariableDeclaratorNode(node);if(isNodeFirstInLine(node)){var parent=node.parent;nodeIndent=getNodeIndent(parent).goodChar;if(!parentVarNode||parentVarNode.loc.start.line!==node.loc.start.line){if(parent.type!=="VariableDeclarator"||parentVarNode===parentVarNode.parent.declarations[0]){if(parent.type==="VariableDeclarator"&&parentVarNode.loc.start.line===parent.loc.start.line){nodeIndent=nodeIndent+indentSize*options.VariableDeclarator[parentVarNode.parent.kind]}else if(parent.type==="ObjectExpression"||parent.type==="ArrayExpression"){var parentElements=node.parent.type==="ObjectExpression"?node.parent.properties:node.parent.elements;if(parentElements[0]&&parentElements[0].loc.start.line===parent.loc.start.line&&parentElements[0].loc.end.line!==parent.loc.start.line){}else if(typeof options[parent.type]==="number"){nodeIndent+=options[parent.type]*indentSize}else{nodeIndent=parentElements[0].loc.start.column}}else if(parent.type==="CallExpression"||parent.type==="NewExpression"){if(typeof options.CallExpression.arguments==="number"){nodeIndent+=options.CallExpression.arguments*indentSize}else if(options.CallExpression.arguments==="first"){if(parent.arguments.indexOf(node)!==-1){nodeIndent=parent.arguments[0].loc.start.column}}else{nodeIndent+=indentSize}}else if(parent.type==="LogicalExpression"||parent.type==="ArrowFunctionExpression"){nodeIndent+=indentSize}}}else if(!parentVarNode&&!isFirstArrayElementOnSameLine(parent)&&parent.type!=="MemberExpression"&&parent.type!=="ExpressionStatement"&&parent.type!=="AssignmentExpression"&&parent.type!=="Property"){nodeIndent=nodeIndent+indentSize}checkFirstNodeLineIndent(node,nodeIndent)}else{nodeIndent=getNodeIndent(node).goodChar}if(options[node.type]==="first"){elementsIndent=elements.length?elements[0].loc.start.column:0}else{elementsIndent=nodeIndent+indentSize*options[node.type]}if(isNodeInVarOnTop(node,parentVarNode)){elementsIndent+=indentSize*options.VariableDeclarator[parentVarNode.parent.kind]}checkNodesIndent(elements,elementsIndent);if(elements.length>0){if(elements[elements.length-1].loc.end.line===node.loc.end.line){return}}checkLastNodeLineIndent(node,nodeIndent+(isNodeInVarOnTop(node,parentVarNode)?options.VariableDeclarator[parentVarNode.parent.kind]*indentSize:0))}function isNodeBodyBlock(node){return node.type==="BlockStatement"||node.type==="ClassBody"||node.body&&node.body.type==="BlockStatement"||node.consequent&&node.consequent.type==="BlockStatement"}function blockIndentationCheck(node){if(isSingleLineNode(node)){return}if(node.parent&&(node.parent.type==="FunctionExpression"||node.parent.type==="FunctionDeclaration"||node.parent.type==="ArrowFunctionExpression")){checkIndentInFunctionBlock(node);return}var indent=void 0;var nodesToCheck=[];var statementsWithProperties=["IfStatement","WhileStatement","ForStatement","ForInStatement","ForOfStatement","DoWhileStatement","ClassDeclaration","TryStatement"];if(node.parent&&statementsWithProperties.indexOf(node.parent.type)!==-1&&isNodeBodyBlock(node)){indent=getNodeIndent(node.parent).goodChar}else if(node.parent&&node.parent.type==="CatchClause"){indent=getNodeIndent(node.parent.parent).goodChar}else{indent=getNodeIndent(node).goodChar}if(node.type==="IfStatement"&&node.consequent.type!=="BlockStatement"){nodesToCheck=[node.consequent]}else if(Array.isArray(node.body)){nodesToCheck=node.body}else{nodesToCheck=[node.body]}if(nodesToCheck.length>0){checkNodesIndent(nodesToCheck,indent+indentSize)}if(node.type==="BlockStatement"){checkLastNodeLineIndent(node,indent)}}function filterOutSameLineVars(node){return node.declarations.reduce(function(finalCollection,elem){var lastElem=finalCollection[finalCollection.length-1];if(elem.loc.start.line!==node.loc.start.line&&!lastElem||lastElem&&lastElem.loc.start.line!==elem.loc.start.line){finalCollection.push(elem)}return finalCollection},[])}function checkIndentInVariableDeclarations(node){var elements=filterOutSameLineVars(node);var nodeIndent=getNodeIndent(node).goodChar;var lastElement=elements[elements.length-1];var elementsIndent=nodeIndent+indentSize*options.VariableDeclarator[node.kind];checkNodesIndent(elements,elementsIndent);if(sourceCode.getLastToken(node).loc.end.line<=lastElement.loc.end.line){return}var tokenBeforeLastElement=sourceCode.getTokenBefore(lastElement);if(tokenBeforeLastElement.value===","){checkLastNodeLineIndent(node,getNodeIndent(tokenBeforeLastElement).goodChar)}else{checkLastNodeLineIndent(node,elementsIndent-indentSize)}}function blockLessNodes(node){if(node.body.type!=="BlockStatement"){blockIndentationCheck(node)}}function expectedCaseIndent(node,switchIndent){var switchNode=node.type==="SwitchStatement"?node:node.parent;var caseIndent=void 0;if(caseIndentStore[switchNode.loc.start.line]){return caseIndentStore[switchNode.loc.start.line]}if(typeof switchIndent==="undefined"){switchIndent=getNodeIndent(switchNode).goodChar}if(switchNode.cases.length>0&&options.SwitchCase===0){caseIndent=switchIndent}else{caseIndent=switchIndent+indentSize*options.SwitchCase}caseIndentStore[switchNode.loc.start.line]=caseIndent;return caseIndent}function isWrappedInParenthesis(node){var regex=/^return\s*?\(\s*?\);*?/;var statementWithoutArgument=sourceCode.getText(node).replace(sourceCode.getText(node.argument),"");return regex.test(statementWithoutArgument)}return{Program:function Program(node){if(node.body.length>0){checkNodesIndent(node.body,getNodeIndent(node).goodChar)}},ClassBody:blockIndentationCheck,BlockStatement:blockIndentationCheck,WhileStatement:blockLessNodes,ForStatement:blockLessNodes,ForInStatement:blockLessNodes,ForOfStatement:blockLessNodes,DoWhileStatement:blockLessNodes,IfStatement:function IfStatement(node){if(node.consequent.type!=="BlockStatement"&&node.consequent.loc.start.line>node.loc.start.line){blockIndentationCheck(node)}},VariableDeclaration:function VariableDeclaration(node){if(node.declarations[node.declarations.length-1].loc.start.line>node.declarations[0].loc.start.line){checkIndentInVariableDeclarations(node)}},ObjectExpression:function ObjectExpression(node){checkIndentInArrayOrObjectBlock(node)},ArrayExpression:function ArrayExpression(node){checkIndentInArrayOrObjectBlock(node)},MemberExpression:function MemberExpression(node){if(typeof options.MemberExpression==="undefined"){return}if(isSingleLineNode(node)){return}if(getParentNodeByType(node,"VariableDeclarator",["FunctionExpression","ArrowFunctionExpression"])){return}if(getParentNodeByType(node,"AssignmentExpression",["FunctionExpression"])){return}var propertyIndent=getNodeIndent(node).goodChar+indentSize*options.MemberExpression;var checkNodes=[node.property];var dot=context.getTokenBefore(node.property);if(dot.type==="Punctuator"&&dot.value==="."){checkNodes.push(dot)}checkNodesIndent(checkNodes,propertyIndent)},SwitchStatement:function SwitchStatement(node){var switchIndent=getNodeIndent(node).goodChar;var caseIndent=expectedCaseIndent(node,switchIndent);checkNodesIndent(node.cases,caseIndent);checkLastNodeLineIndent(node,switchIndent)},SwitchCase:function SwitchCase(node){if(isSingleLineNode(node)){return}var caseIndent=expectedCaseIndent(node);checkNodesIndent(node.consequent,caseIndent+indentSize)},FunctionDeclaration:function FunctionDeclaration(node){if(isSingleLineNode(node)){return}if(options.FunctionDeclaration.parameters==="first"&&node.params.length){checkNodesIndent(node.params.slice(1),node.params[0].loc.start.column)}else if(options.FunctionDeclaration.parameters!==null){checkNodesIndent(node.params,getNodeIndent(node).goodChar+indentSize*options.FunctionDeclaration.parameters)}},FunctionExpression:function FunctionExpression(node){if(isSingleLineNode(node)){return}if(options.FunctionExpression.parameters==="first"&&node.params.length){checkNodesIndent(node.params.slice(1),node.params[0].loc.start.column)}else if(options.FunctionExpression.parameters!==null){checkNodesIndent(node.params,getNodeIndent(node).goodChar+indentSize*options.FunctionExpression.parameters)}},ReturnStatement:function ReturnStatement(node){if(isSingleLineNode(node)){return}var firstLineIndent=getNodeIndent(node).goodChar;if(isWrappedInParenthesis(node)){checkLastReturnStatementLineIndent(node,firstLineIndent)}else{checkNodeIndent(node,firstLineIndent)}},CallExpression:function CallExpression(node){if(isSingleLineNode(node)){return}if(options.CallExpression.arguments==="first"&&node.arguments.length){checkNodesIndent(node.arguments.slice(1),node.arguments[0].loc.start.column)}else if(options.CallExpression.arguments!==null){checkNodesIndent(node.arguments,getNodeIndent(node).goodChar+indentSize*options.CallExpression.arguments)}}}}}},{"../ast-utils":22}],67:[function(require,module,exports){"use strict";var _createClass=function(){function defineProperties(target,props){for(var i=0;i0){foundStatement=indentType==="space"?actualSpaces:actualSpaces+" "+foundSpacesWord}else if(actualTabs>0){foundStatement=indentType==="tab"?actualTabs:actualTabs+" "+foundTabsWord}else{foundStatement="0"}return"Expected indentation of "+expectedStatement+" but found "+foundStatement+"."}function report(token,neededIndentLevel){var actualIndent=Array.from(tokenInfo.getTokenIndent(token));var numSpaces=actualIndent.filter(function(char){return char===" "}).length;var numTabs=actualIndent.filter(function(char){return char==="\t"}).length;var neededChars=neededIndentLevel*indentSize;context.report({node:token,message:createErrorMessage(neededChars,numSpaces,numTabs),loc:{start:{line:token.loc.start.line,column:0},end:{line:token.loc.start.line,column:token.loc.start.column}},fix:function fix(fixer){var range=[token.range[0]-token.loc.start.column,token.range[0]];var newText=(indentType==="space"?" ":"\t").repeat(neededChars);return fixer.replaceTextRange(range,newText)}})}function validateTokenIndent(token,desiredIndentLevel){var indentation=tokenInfo.getTokenIndent(token);var expectedChar=indentType==="space"?" ":"\t";return indentation===expectedChar.repeat(desiredIndentLevel*indentSize)||indentation.includes(" ")&&indentation.includes("\t")}function isOuterIIFE(node){if(!node.parent||node.parent.type!=="CallExpression"||node.parent.callee!==node){return false}var statement=node.parent&&node.parent.parent;while(statement.type==="UnaryExpression"&&["!","~","+","-"].indexOf(statement.operator)>-1||statement.type==="AssignmentExpression"||statement.type==="LogicalExpression"||statement.type==="SequenceExpression"||statement.type==="VariableDeclarator"){statement=statement.parent}return(statement.type==="ExpressionStatement"||statement.type==="VariableDeclaration")&&statement.parent.type==="Program"}function getTokensAndComments(node){return sourceCode.getTokens(node,{includeComments:true})}function addElementListIndent(elements,startToken,endToken,offset){function getFirstToken(element){var token=sourceCode.getTokenBefore(element);while(astUtils.isOpeningParenToken(token)&&token!==startToken){token=sourceCode.getTokenBefore(token)}return sourceCode.getTokenAfter(token)}offsets.setDesiredOffsets(sourceCode.getTokensBetween(startToken,endToken,{includeComments:true}),startToken,offset==="first"?1:offset);offsets.matchIndentOf(startToken,endToken);if(offset==="first"&&elements.length&&!elements[0]){return}elements.forEach(function(element,index){if(offset==="off"){offsets.ignoreToken(getFirstToken(element))}if(index===0||!element){return}if(offset==="first"&&tokenInfo.isFirstTokenOfLine(getFirstToken(element))){offsets.matchOffsetOf(getFirstToken(elements[0]),getFirstToken(element))}else{var previousElement=elements[index-1];var firstTokenOfPreviousElement=previousElement&&getFirstToken(previousElement);if(previousElement&&sourceCode.getLastToken(previousElement).loc.start.line>startToken.loc.end.line){offsets.matchIndentOf(firstTokenOfPreviousElement,getFirstToken(element))}}})}function addBlockIndent(node){var blockIndentLevel=void 0;if(node.parent&&isOuterIIFE(node.parent)){blockIndentLevel=options.outerIIFEBody}else if(node.parent&&(node.parent.type==="FunctionExpression"||node.parent.type==="ArrowFunctionExpression")){blockIndentLevel=options.FunctionExpression.body}else if(node.parent&&node.parent.type==="FunctionDeclaration"){blockIndentLevel=options.FunctionDeclaration.body}else{blockIndentLevel=1}if(!astUtils.STATEMENT_LIST_PARENTS.has(node.parent.type)){offsets.matchIndentOf(sourceCode.getFirstToken(node.parent),sourceCode.getFirstToken(node))}addElementListIndent(node.body,sourceCode.getFirstToken(node),sourceCode.getLastToken(node),blockIndentLevel)}function addArrayOrObjectIndent(node){var tokens=getTokensAndComments(node);addElementListIndent(node.elements||node.properties,tokens[0],tokens[tokens.length-1],options[node.type])}function addBlocklessNodeIndent(node){if(node.type!=="BlockStatement"){var lastParentToken=sourceCode.getTokenBefore(node,astUtils.isNotOpeningParenToken);var bodyTokens=getTokensAndComments(node);while(astUtils.isOpeningParenToken(sourceCode.getTokenBefore(bodyTokens[0]))&&astUtils.isClosingParenToken(sourceCode.getTokenAfter(bodyTokens[bodyTokens.length-1]))){bodyTokens=[sourceCode.getTokenBefore(bodyTokens[0])].concat(bodyTokens).concat(sourceCode.getTokenAfter(bodyTokens[bodyTokens.length-1]))}offsets.setDesiredOffsets(bodyTokens,lastParentToken,1);var lastToken=sourceCode.getLastToken(node);if(astUtils.isSemicolonToken(lastToken)){offsets.matchIndentOf(lastParentToken,lastToken)}}}function addFunctionParamsIndent(node,paramsIndent){var openingParen=node.params.length?sourceCode.getTokenBefore(node.params[0]):sourceCode.getTokenBefore(node.body,1);if(!openingParen){return}var closingParen=sourceCode.getTokenBefore(node.body);var nodeTokens=getTokensAndComments(node);var openingParenIndex=lodash.sortedIndexBy(nodeTokens,openingParen,function(token){return token.range[0]});var closingParenIndex=lodash.sortedIndexBy(nodeTokens,closingParen,function(token){return token.range[0]});parameterParens.add(nodeTokens[openingParenIndex]);parameterParens.add(nodeTokens[closingParenIndex]);addElementListIndent(node.params,nodeTokens[openingParenIndex],nodeTokens[closingParenIndex],paramsIndent)}function addBinaryOrLogicalExpressionIndent(node){var tokens=getTokensAndComments(node);var operator=sourceCode.getFirstTokenBetween(node.left,node.right,function(token){return token.value===node.operator});var firstTokenAfterOperator=sourceCode.getTokenAfter(operator);var tokensAfterOperator=tokens.slice(lodash.sortedIndexBy(tokens,firstTokenAfterOperator,function(token){return token.range[0]}));offsets.ignoreToken(operator);offsets.ignoreToken(tokensAfterOperator[0]);offsets.setDesiredOffsets(tokensAfterOperator,tokensAfterOperator[0],1)}function addFunctionCallIndent(node){var openingParen=void 0;if(node.arguments.length){openingParen=sourceCode.getFirstTokenBetween(node.callee,node.arguments[0],astUtils.isOpeningParenToken)}else{openingParen=sourceCode.getLastToken(node,1)}var closingParen=sourceCode.getLastToken(node);parameterParens.add(openingParen);parameterParens.add(closingParen);offsets.matchIndentOf(sourceCode.getLastToken(node.callee),openingParen);addElementListIndent(node.arguments,openingParen,closingParen,options.CallExpression.arguments)}function addClassIndent(node){if(node.superClass){var classToken=sourceCode.getFirstToken(node);var extendsToken=sourceCode.getTokenBefore(node.superClass,astUtils.isNotOpeningParenToken);offsets.setDesiredOffset(extendsToken,classToken,1);offsets.setDesiredOffsets(sourceCode.getTokensBetween(extendsToken,node.body,{includeComments:true}),classToken,1)}}function addParensIndent(tokens){var parenStack=[];var parenPairs=[];tokens.forEach(function(nextToken){if(astUtils.isOpeningParenToken(nextToken)){parenStack.push(nextToken)}else if(astUtils.isClosingParenToken(nextToken)){parenPairs.unshift({left:parenStack.pop(),right:nextToken})}});parenPairs.forEach(function(pair){var leftParen=pair.left;var rightParen=pair.right;if(!parameterParens.has(leftParen)&&!parameterParens.has(rightParen)){var parenthesizedTokens=new Set(sourceCode.getTokensBetween(leftParen,rightParen));parenthesizedTokens.forEach(function(token){if(!parenthesizedTokens.has(offsets.getFirstDependency(token))){offsets.setDesiredOffset(token,leftParen,1)}});offsets.setDesiredOffset(sourceCode.getTokenAfter(leftParen),leftParen,1)}offsets.matchIndentOf(leftParen,rightParen)})}function ignoreUnknownNode(node){var unknownNodeTokens=new Set(getTokensAndComments(node));unknownNodeTokens.forEach(function(token){if(!unknownNodeTokens.has(offsets.getFirstDependency(token))){var firstTokenOfLine=tokenInfo.getFirstTokenOfLine(token);if(token===firstTokenOfLine){offsets.ignoreToken(token)}else{offsets.matchIndentOf(firstTokenOfLine,token)}}})}function checkForUnknownNode(node){var isNodeUnknown=!KNOWN_NODES.has(node.type);if(isNodeUnknown){ignoreUnknownNode(node)}}function isFirstTokenOfStatement(token,leafNode){var node=leafNode;while(node.parent&&!node.parent.type.endsWith("Statement")&&!node.parent.type.endsWith("Declaration")){node=node.parent}node=node.parent;return!node||node.range[0]===token.range[0]}return{ArrayExpression:addArrayOrObjectIndent,ArrayPattern:addArrayOrObjectIndent,ArrowFunctionExpression:function ArrowFunctionExpression(node){addFunctionParamsIndent(node,options.FunctionExpression.parameters);addBlocklessNodeIndent(node.body);var arrowToken=void 0;if(node.params.length){arrowToken=sourceCode.getTokenAfter(node.params[node.params.length-1],astUtils.isArrowToken)}else{arrowToken=sourceCode.getFirstToken(node,astUtils.isArrowToken)}offsets.matchIndentOf(sourceCode.getFirstToken(node),arrowToken)},AssignmentExpression:function AssignmentExpression(node){var operator=sourceCode.getFirstTokenBetween(node.left,node.right,function(token){return token.value===node.operator});var nodeTokens=getTokensAndComments(node);var tokensFromOperator=nodeTokens.slice(lodash.sortedIndexBy(nodeTokens,operator,function(token){return token.range[0]}));offsets.setDesiredOffsets(tokensFromOperator,sourceCode.getFirstToken(node.left),1);offsets.ignoreToken(tokensFromOperator[0]);offsets.ignoreToken(tokensFromOperator[1])},BinaryExpression:addBinaryOrLogicalExpressionIndent,BlockStatement:addBlockIndent,CallExpression:addFunctionCallIndent,ClassBody:addBlockIndent,ClassDeclaration:addClassIndent,ClassExpression:addClassIndent,ConditionalExpression:function ConditionalExpression(node){var firstToken=sourceCode.getFirstToken(node);if(!options.flatTernaryExpressions||!astUtils.isTokenOnSameLine(node.test,node.consequent)||isFirstTokenOfStatement(firstToken,node)){var questionMarkToken=sourceCode.getFirstTokenBetween(node.test,node.consequent,function(token){return token.type==="Punctuator"&&token.value==="?"});var colonToken=sourceCode.getFirstTokenBetween(node.consequent,node.alternate,function(token){return token.type==="Punctuator"&&token.value===":"});var consequentTokens=sourceCode.getTokensBetween(questionMarkToken,colonToken,{includeComments:true});var alternateTokens=sourceCode.getTokensAfter(colonToken,function(token){return token.range[1]<=node.range[1]});offsets.setDesiredOffset(questionMarkToken,firstToken,1);offsets.setDesiredOffset(colonToken,firstToken,1);offsets.setDesiredOffset(consequentTokens[0],firstToken,1);if(consequentTokens[consequentTokens.length-1].loc.end.line===alternateTokens[0].loc.start.line){offsets.matchIndentOf(consequentTokens[0],alternateTokens[0])}else{offsets.setDesiredOffset(alternateTokens[0],firstToken,1)}offsets.setDesiredOffsets(consequentTokens,consequentTokens[0],0);offsets.setDesiredOffsets(alternateTokens,alternateTokens[0],0)}},DoWhileStatement:function DoWhileStatement(node){return addBlocklessNodeIndent(node.body)},ExportNamedDeclaration:function ExportNamedDeclaration(node){if(node.declaration===null){var tokensInNode=getTokensAndComments(node);var closingCurly=sourceCode.getLastToken(node,astUtils.isClosingBraceToken);var closingCurlyIndex=lodash.sortedIndexBy(tokensInNode,closingCurly,function(token){return token.range[0]});addElementListIndent(node.specifiers,sourceCode.getFirstToken(node,{skip:1}),closingCurly,1);if(node.source){offsets.setDesiredOffsets(tokensInNode.slice(closingCurlyIndex+1),sourceCode.getFirstToken(node),1)}}},ForInStatement:function ForInStatement(node){return addBlocklessNodeIndent(node.body)},ForOfStatement:function ForOfStatement(node){return addBlocklessNodeIndent(node.body)},ForStatement:function ForStatement(node){var forOpeningParen=sourceCode.getFirstToken(node,1);if(node.init){offsets.setDesiredOffsets(getTokensAndComments(node.init),forOpeningParen,1)}if(node.test){offsets.setDesiredOffsets(getTokensAndComments(node.test),forOpeningParen,1)}if(node.update){offsets.setDesiredOffsets(getTokensAndComments(node.update),forOpeningParen,1)}addBlocklessNodeIndent(node.body)},FunctionDeclaration:function FunctionDeclaration(node){addFunctionParamsIndent(node,options.FunctionDeclaration.parameters)},FunctionExpression:function FunctionExpression(node){addFunctionParamsIndent(node,options.FunctionExpression.parameters)},IfStatement:function IfStatement(node){addBlocklessNodeIndent(node.consequent);if(node.alternate&&node.alternate.type!=="IfStatement"){addBlocklessNodeIndent(node.alternate)}},ImportDeclaration:function ImportDeclaration(node){if(node.specifiers.some(function(specifier){return specifier.type==="ImportSpecifier"})){var openingCurly=sourceCode.getFirstToken(node,astUtils.isOpeningBraceToken);var closingCurly=sourceCode.getLastToken(node,astUtils.isClosingBraceToken);addElementListIndent(node.specifiers.filter(function(specifier){return specifier.type==="ImportSpecifier"}),openingCurly,closingCurly,1)}var fromToken=sourceCode.getLastToken(node,function(token){return token.type==="Identifier"&&token.value==="from"});if(fromToken){var tokensToOffset=sourceCode.getTokensBetween(fromToken,sourceCode.getLastToken(node),1);offsets.setDesiredOffsets(tokensToOffset,sourceCode.getFirstToken(node),1)}},LogicalExpression:addBinaryOrLogicalExpressionIndent,"MemberExpression, JSXMemberExpression":function MemberExpressionJSXMemberExpression(node){var firstNonObjectToken=sourceCode.getFirstTokenBetween(node.object,node.property,astUtils.isNotClosingParenToken);var secondNonObjectToken=sourceCode.getTokenAfter(firstNonObjectToken);var tokenBeforeObject=sourceCode.getTokenBefore(node.object,function(token){return astUtils.isNotOpeningParenToken(token)||parameterParens.has(token)});var firstObjectToken=tokenBeforeObject?sourceCode.getTokenAfter(tokenBeforeObject):sourceCode.ast.tokens[0];var lastObjectToken=sourceCode.getTokenBefore(firstNonObjectToken);var firstPropertyToken=node.computed?firstNonObjectToken:secondNonObjectToken;if(node.computed){offsets.matchIndentOf(firstNonObjectToken,sourceCode.getLastToken(node));offsets.setDesiredOffsets(getTokensAndComments(node.property),firstNonObjectToken,1)}var offsetBase=lastObjectToken.loc.end.line===firstPropertyToken.loc.start.line?lastObjectToken:firstObjectToken;if(typeof options.MemberExpression==="number"){offsets.setDesiredOffset(firstNonObjectToken,offsetBase,options.MemberExpression);offsets.setDesiredOffset(secondNonObjectToken,node.computed?firstNonObjectToken:offsetBase,options.MemberExpression)}else{offsets.ignoreToken(firstNonObjectToken);offsets.ignoreToken(secondNonObjectToken);offsets.matchIndentOf(offsetBase,firstNonObjectToken);offsets.matchIndentOf(firstNonObjectToken,secondNonObjectToken)}},NewExpression:function NewExpression(node){if(node.arguments.length>0||astUtils.isClosingParenToken(sourceCode.getLastToken(node))&&astUtils.isOpeningParenToken(sourceCode.getLastToken(node,1))){addFunctionCallIndent(node)}},ObjectExpression:addArrayOrObjectIndent,ObjectPattern:addArrayOrObjectIndent,Property:function Property(node){if(!node.computed&&!node.shorthand&&!node.method&&node.kind==="init"){var colon=sourceCode.getFirstTokenBetween(node.key,node.value,astUtils.isColonToken);offsets.ignoreToken(sourceCode.getTokenAfter(colon))}},SwitchStatement:function SwitchStatement(node){var tokens=getTokensAndComments(node);var openingCurlyIndex=tokens.findIndex(function(token){return token.range[0]>=node.discriminant.range[1]&&astUtils.isOpeningBraceToken(token)});offsets.setDesiredOffsets(tokens.slice(openingCurlyIndex+1,-1),tokens[openingCurlyIndex],options.SwitchCase);var caseKeywords=new WeakSet(node.cases.map(function(switchCase){return sourceCode.getFirstToken(switchCase)}));var lastCaseKeyword=node.cases.length&&sourceCode.getFirstToken(node.cases[node.cases.length-1]);var casesWithBlocks=new WeakSet(node.cases.filter(function(switchCase){return switchCase.consequent.length===1&&switchCase.consequent[0].type==="BlockStatement"}).map(function(switchCase){return sourceCode.getFirstToken(switchCase)}));var lastAnchor=tokens[openingCurlyIndex];tokens.slice(openingCurlyIndex+1,-1).forEach(function(token){if(caseKeywords.has(token)){lastAnchor=token}else if(lastAnchor===lastCaseKeyword&&(token.type==="Line"||token.type==="Block")){offsets.ignoreToken(token)}else if(!casesWithBlocks.has(lastAnchor)){offsets.setDesiredOffset(token,lastAnchor,1)}})},TemplateLiteral:function TemplateLiteral(node){var tokens=getTokensAndComments(node);offsets.setDesiredOffsets(getTokensAndComments(node.quasis[0]),tokens[0],0);node.expressions.forEach(function(expression,index){var previousQuasi=node.quasis[index];var nextQuasi=node.quasis[index+1];var tokenToAlignFrom=previousQuasi.loc.start.line===previousQuasi.loc.end.line?sourceCode.getFirstToken(previousQuasi):null;offsets.setDesiredOffsets(sourceCode.getTokensBetween(previousQuasi,nextQuasi),tokenToAlignFrom,1);offsets.setDesiredOffset(sourceCode.getFirstToken(nextQuasi),tokenToAlignFrom,0)})},VariableDeclaration:function VariableDeclaration(node){var variableIndent=options.VariableDeclarator.hasOwnProperty(node.kind)?options.VariableDeclarator[node.kind]:DEFAULT_VARIABLE_INDENT;offsets.setDesiredOffsets(getTokensAndComments(node),sourceCode.getFirstToken(node),variableIndent);var lastToken=sourceCode.getLastToken(node);if(astUtils.isSemicolonToken(lastToken)){offsets.ignoreToken(lastToken)}},VariableDeclarator:function VariableDeclarator(node){if(node.init){var equalOperator=sourceCode.getTokenBefore(node.init,astUtils.isNotOpeningParenToken);var tokenAfterOperator=sourceCode.getTokenAfter(equalOperator);offsets.ignoreToken(equalOperator);offsets.ignoreToken(tokenAfterOperator);offsets.matchIndentOf(equalOperator,tokenAfterOperator);offsets.matchIndentOf(sourceCode.getFirstToken(node),equalOperator)}},"VariableDeclarator:exit":function VariableDeclaratorExit(node){if(node.parent.declarations.length>1&&node.parent.declarations[0]===node&&node.init){var valueTokens=new Set(getTokensAndComments(node.init));valueTokens.forEach(function(token){if(!valueTokens.has(offsets.getFirstDependency(token))){offsets.increaseOffset(token,options.VariableDeclarator[node.parent.kind])}})}},WhileStatement:function WhileStatement(node){return addBlocklessNodeIndent(node.body)},"*:exit":checkForUnknownNode,"JSXAttribute[value]":function JSXAttributeValue(node){var equalsToken=sourceCode.getFirstTokenBetween(node.name,node.value,function(token){return token.type==="Punctuator"&&token.value==="="});var firstNameToken=sourceCode.getFirstToken(node.name);offsets.setDesiredOffset(equalsToken,firstNameToken,1);offsets.setDesiredOffset(sourceCode.getFirstToken(node.value),firstNameToken,1)},JSXElement:function JSXElement(node){if(node.closingElement){addElementListIndent(node.children,sourceCode.getFirstToken(node.openingElement),sourceCode.getFirstToken(node.closingElement),1)}},JSXOpeningElement:function JSXOpeningElement(node){var firstToken=sourceCode.getFirstToken(node);var closingToken=void 0;if(node.selfClosing){closingToken=sourceCode.getLastToken(node,{skip:1});offsets.matchIndentOf(closingToken,sourceCode.getLastToken(node))}else{closingToken=sourceCode.getLastToken(node)}offsets.setDesiredOffsets(getTokensAndComments(node.name),sourceCode.getFirstToken(node));addElementListIndent(node.attributes,firstToken,closingToken,1)},JSXClosingElement:function JSXClosingElement(node){var firstToken=sourceCode.getFirstToken(node);offsets.setDesiredOffsets(getTokensAndComments(node.name),firstToken,1);offsets.matchIndentOf(firstToken,sourceCode.getLastToken(node))},JSXExpressionContainer:function JSXExpressionContainer(node){var openingCurly=sourceCode.getFirstToken(node);var firstExpressionToken=sourceCode.getFirstToken(node.expression);if(firstExpressionToken){offsets.setDesiredOffset(firstExpressionToken,openingCurly,1)}offsets.matchIndentOf(openingCurly,sourceCode.getLastToken(node))},"Program:exit":function ProgramExit(){addParensIndent(sourceCode.ast.tokens);var precedingTokens=sourceCode.ast.comments.reduce(function(commentMap,comment){var tokenOrCommentBefore=sourceCode.getTokenBefore(comment,{includeComments:true});return commentMap.set(comment,commentMap.has(tokenOrCommentBefore)?commentMap.get(tokenOrCommentBefore):tokenOrCommentBefore)},new WeakMap);sourceCode.lines.forEach(function(line,lineIndex){var lineNumber=lineIndex+1;if(!tokenInfo.firstTokensByLineNumber.has(lineNumber)){return}var firstTokenOfLine=tokenInfo.firstTokensByLineNumber.get(lineNumber);if(firstTokenOfLine.loc.start.line!==lineNumber){return}if(validateTokenIndent(firstTokenOfLine,offsets.getDesiredIndent(firstTokenOfLine))){return}if(astUtils.isCommentToken(firstTokenOfLine)){var tokenBefore=precedingTokens.get(firstTokenOfLine);var tokenAfter=tokenBefore?sourceCode.getTokenAfter(tokenBefore):sourceCode.ast.tokens[0];if(tokenBefore&&validateTokenIndent(firstTokenOfLine,offsets.getDesiredIndent(tokenBefore))||tokenAfter&&validateTokenIndent(firstTokenOfLine,offsets.getDesiredIndent(tokenAfter))){return}}report(firstTokenOfLine,offsets.getDesiredIndent(firstTokenOfLine))})}}}}},{"../ast-utils":22,lodash:16}],68:[function(require,module,exports){"use strict";function isForLoop(block){return block.type==="ForInStatement"||block.type==="ForOfStatement"||block.type==="ForStatement"}function isInitialized(node){var declaration=node.parent;var block=declaration.parent;if(isForLoop(block)){if(block.type==="ForStatement"){return block.init===declaration}return block.left===declaration}return Boolean(node.init)}module.exports={meta:{docs:{description:"require or disallow initialization in variable declarations",category:"Variables",recommended:false},schema:{anyOf:[{type:"array",items:[{enum:["always"]}],minItems:0,maxItems:1},{type:"array",items:[{enum:["never"]},{type:"object",properties:{ignoreForLoopInit:{type:"boolean"}},additionalProperties:false}],minItems:0,maxItems:2}]}},create:function create(context){var MODE_ALWAYS="always",MODE_NEVER="never";var mode=context.options[0]||MODE_ALWAYS;var params=context.options[1]||{};return{"VariableDeclaration:exit":function VariableDeclarationExit(node){var kind=node.kind,declarations=node.declarations;for(var i=0;i1){return false}}return true}return false}function isKeyValueProperty(property){return!(property.method||property.shorthand||property.kind!=="init"||property.type!=="Property")}function getLastTokenBeforeColon(node){var colonToken=sourceCode.getTokenAfter(node,astUtils.isColonToken);return sourceCode.getTokenBefore(colonToken)}function getNextColon(node){return sourceCode.getTokenAfter(node,astUtils.isColonToken)}function getKey(property){var key=property.key;if(property.computed){return sourceCode.getText().slice(key.range[0],key.range[1])}return property.key.name||property.key.value}function report(property,side,whitespace,expected,mode){var diff=whitespace.length-expected,nextColon=getNextColon(property.key),tokenBeforeColon=sourceCode.getTokenBefore(nextColon,{includeComments:true}),tokenAfterColon=sourceCode.getTokenAfter(nextColon,{includeComments:true}),isKeySide=side==="key",locStart=isKeySide?tokenBeforeColon.loc.start:tokenAfterColon.loc.start,isExtra=diff>0,diffAbs=Math.abs(diff),spaces=Array(diffAbs+1).join(" ");var fix=void 0;if((diff&&mode==="strict"||diff<0&&mode==="minimum"||diff>0&&!expected&&mode==="minimum")&&!(expected&&containsLineTerminator(whitespace))){if(isExtra){var range=void 0;if(isKeySide){range=[tokenBeforeColon.end,tokenBeforeColon.end+diffAbs]}else{range=[tokenAfterColon.start-diffAbs,tokenAfterColon.start]}fix=function fix(fixer){return fixer.removeRange(range)}}else{if(isKeySide){fix=function fix(fixer){return fixer.insertTextAfter(tokenBeforeColon,spaces)}}else{fix=function fix(fixer){return fixer.insertTextBefore(tokenAfterColon,spaces)}}}context.report({node:property[side],loc:locStart,message:messages[side],data:{error:isExtra?"Extra":"Missing",computed:property.computed?"computed ":"",key:getKey(property)},fix:fix})}}function getKeyWidth(property){var startToken=sourceCode.getFirstToken(property);var endToken=getLastTokenBeforeColon(property.key);return endToken.range[1]-startToken.range[0]}function getPropertyWhitespace(property){var whitespace=/(\s*):(\s*)/.exec(sourceCode.getText().slice(property.key.range[1],property.value.range[0]));if(whitespace){return{beforeColon:whitespace[1],afterColon:whitespace[2]}}return null}function createGroups(node){if(node.properties.length===1){return[node.properties]}return node.properties.reduce(function(groups,property){var currentGroup=last(groups),prev=last(currentGroup);if(!prev||continuesPropertyGroup(prev,property)){currentGroup.push(property)}else{groups.push([property])}return groups},[[]])}function verifyGroupAlignment(properties){var length=properties.length,widths=properties.map(getKeyWidth),align=alignmentOptions.on;var targetWidth=Math.max.apply(null,widths),beforeColon=void 0,afterColon=void 0,mode=void 0;if(alignmentOptions&&length>1){beforeColon=alignmentOptions.beforeColon;afterColon=alignmentOptions.afterColon;mode=alignmentOptions.mode}else{beforeColon=multiLineOptions.beforeColon;afterColon=multiLineOptions.afterColon;mode=alignmentOptions.mode}targetWidth+=align==="colon"?beforeColon:afterColon;for(var i=0;i]$/;var NEXT_TOKEN=/^(?:[([{<~!]|\+\+?|--?)$/;var PREV_TOKEN_M=/^[)\]}>*]$/;var NEXT_TOKEN_M=/^[{*]$/;var TEMPLATE_OPEN_PAREN=/\$\{$/;var TEMPLATE_CLOSE_PAREN=/^\}/;var CHECK_TYPE=/^(?:JSXElement|RegularExpression|String|Template)$/;var KEYS=keywords.concat(["as","async","await","from","get","let","of","set","yield"]);(function(){KEYS.sort();for(var i=1;i=numLines){after=false}if(commentIsNotAlone){return}var previousTokenOrComment=sourceCode.getTokenBefore(token,{includeComments:true});var nextTokenOrComment=sourceCode.getTokenAfter(token,{includeComments:true});if(!exceptionStartAllowed&&before&&!lodash.includes(commentAndEmptyLines,prevLineNum)&&!(astUtils.isCommentToken(previousTokenOrComment)&&astUtils.isTokenOnSameLine(previousTokenOrComment,token))){var lineStart=token.range[0]-token.loc.start.column;var range=[lineStart,lineStart];context.report({node:token,message:"Expected line before comment.",fix:function fix(fixer){return fixer.insertTextBeforeRange(range,"\n")}})}if(!exceptionEndAllowed&&after&&!lodash.includes(commentAndEmptyLines,nextLineNum)&&!(astUtils.isCommentToken(nextTokenOrComment)&&astUtils.isTokenOnSameLine(token,nextTokenOrComment))){context.report({node:token,message:"Expected line after comment.",fix:function fix(fixer){return fixer.insertTextAfter(token,"\n")}})}}return{Program:function Program(){comments.forEach(function(token){if(token.type==="Line"){if(options.beforeLineComment||options.afterLineComment){checkForEmptyLine(token,{after:options.afterLineComment,before:options.beforeLineComment})}}else if(token.type==="Block"){if(options.beforeBlockComment||options.afterBlockComment){checkForEmptyLine(token,{after:options.afterBlockComment,before:options.beforeBlockComment})}}})}}}}},{"../ast-utils":22,lodash:16}],75:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"require or disallow newlines around directives",category:"Stylistic Issues",recommended:false,replacedBy:["padding-line-between-statements"]},schema:[{oneOf:[{enum:["always","never"]},{type:"object",properties:{before:{enum:["always","never"]},after:{enum:["always","never"]}},additionalProperties:false,minProperties:2}]}],fixable:"whitespace",deprecated:true},create:function create(context){var sourceCode=context.getSourceCode();var config=context.options[0]||"always";var expectLineBefore=typeof config==="string"?config:config.before;var expectLineAfter=typeof config==="string"?config:config.after;function hasNewlineBefore(node){var tokenBefore=sourceCode.getTokenBefore(node,{includeComments:true});var tokenLineBefore=tokenBefore?tokenBefore.loc.end.line:0;return node.loc.start.line-tokenLineBefore>=2}function getLastTokenOnLine(node){var lastToken=sourceCode.getLastToken(node);var secondToLastToken=sourceCode.getTokenBefore(lastToken);return astUtils.isSemicolonToken(lastToken)&&lastToken.loc.start.line>secondToLastToken.loc.end.line?secondToLastToken:lastToken}function hasNewlineAfter(node){var lastToken=getLastTokenOnLine(node);var tokenAfter=sourceCode.getTokenAfter(lastToken,{includeComments:true});return tokenAfter.loc.start.line-lastToken.loc.end.line>=2}function reportError(node,location,expected){context.report({node:node,message:'{{expected}} newline {{location}} "{{value}}" directive.',data:{expected:expected?"Expected":"Unexpected",value:node.expression.value,location:location},fix:function fix(fixer){var lastToken=getLastTokenOnLine(node);if(expected){return location==="before"?fixer.insertTextBefore(node,"\n"):fixer.insertTextAfter(lastToken,"\n")}return fixer.removeRange(location==="before"?[node.range[0]-1,node.range[0]]:[lastToken.range[1],lastToken.range[1]+1])}})}function checkDirectives(node){var directives=astUtils.getDirectivePrologue(node);if(!directives.length){return}var firstDirective=directives[0];var leadingComments=sourceCode.getCommentsBefore(firstDirective);if(leadingComments.length){if(expectLineBefore==="always"&&!hasNewlineBefore(firstDirective)){reportError(firstDirective,"before",true)}if(expectLineBefore==="never"&&hasNewlineBefore(firstDirective)){reportError(firstDirective,"before",false)}}else if(node.type==="Program"&&expectLineBefore==="never"&&!leadingComments.length&&hasNewlineBefore(firstDirective)){reportError(firstDirective,"before",false)}var lastDirective=directives[directives.length-1];var statements=node.type==="Program"?node.body:node.body.body;if(lastDirective===statements[statements.length-1]&&!lastDirective.trailingComments){return}if(expectLineAfter==="always"&&!hasNewlineAfter(lastDirective)){reportError(lastDirective,"after",true)}if(expectLineAfter==="never"&&hasNewlineAfter(lastDirective)){reportError(lastDirective,"after",false)}}return{Program:checkDirectives,FunctionDeclaration:checkDirectives,FunctionExpression:checkDirectives,ArrowFunctionExpression:checkDirectives}}}},{"../ast-utils":22}],76:[function(require,module,exports){"use strict";var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj};module.exports={meta:{docs:{description:"enforce a maximum depth that blocks can be nested",category:"Stylistic Issues",recommended:false},schema:[{oneOf:[{type:"integer",minimum:0},{type:"object",properties:{maximum:{type:"integer",minimum:0},max:{type:"integer",minimum:0}},additionalProperties:false}]}]},create:function create(context){var functionStack=[],option=context.options[0];var maxDepth=4;if((typeof option==="undefined"?"undefined":_typeof(option))==="object"&&option.hasOwnProperty("maximum")&&typeof option.maximum==="number"){maxDepth=option.maximum}if((typeof option==="undefined"?"undefined":_typeof(option))==="object"&&option.hasOwnProperty("max")&&typeof option.max==="number"){maxDepth=option.max}if(typeof option==="number"){maxDepth=option}function startFunction(){functionStack.push(0)}function endFunction(){functionStack.pop()}function pushBlock(node){var len=++functionStack[functionStack.length-1];if(len>maxDepth){context.report({node:node,message:"Blocks are nested too deeply ({{depth}}).",data:{depth:len}})}}function popBlock(){functionStack[functionStack.length-1]--}return{Program:startFunction,FunctionDeclaration:startFunction,FunctionExpression:startFunction,ArrowFunctionExpression:startFunction,IfStatement:function IfStatement(node){if(node.parent.type!=="IfStatement"){pushBlock(node)}},SwitchStatement:pushBlock,TryStatement:pushBlock,DoWhileStatement:pushBlock,WhileStatement:pushBlock,WithStatement:pushBlock,ForStatement:pushBlock,ForInStatement:pushBlock,ForOfStatement:pushBlock,"IfStatement:exit":popBlock,"SwitchStatement:exit":popBlock,"TryStatement:exit":popBlock,"DoWhileStatement:exit":popBlock,"WhileStatement:exit":popBlock,"WithStatement:exit":popBlock,"ForStatement:exit":popBlock,"ForInStatement:exit":popBlock,"ForOfStatement:exit":popBlock,"FunctionDeclaration:exit":endFunction,"FunctionExpression:exit":endFunction,"ArrowFunctionExpression:exit":endFunction,"Program:exit":endFunction}}}},{}],77:[function(require,module,exports){"use strict";var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj};var OPTIONS_SCHEMA={type:"object",properties:{code:{type:"integer",minimum:0},comments:{type:"integer",minimum:0},tabWidth:{type:"integer",minimum:0},ignorePattern:{type:"string"},ignoreComments:{type:"boolean"},ignoreStrings:{type:"boolean"},ignoreUrls:{type:"boolean"},ignoreTemplateLiterals:{type:"boolean"},ignoreRegExpLiterals:{type:"boolean"},ignoreTrailingComments:{type:"boolean"}},additionalProperties:false};var OPTIONS_OR_INTEGER_SCHEMA={anyOf:[OPTIONS_SCHEMA,{type:"integer",minimum:0}]};module.exports={meta:{docs:{description:"enforce a maximum line length",category:"Stylistic Issues",recommended:false},schema:[OPTIONS_OR_INTEGER_SCHEMA,OPTIONS_OR_INTEGER_SCHEMA,OPTIONS_SCHEMA]},create:function create(context){var URL_REGEXP=/[^:/?#]:\/\/[^?#]/;var sourceCode=context.getSourceCode();function computeLineLength(line,tabWidth){var extraCharacterCount=0;line.replace(/\t/g,function(match,offset){var totalOffset=offset+extraCharacterCount,previousTabStopOffset=tabWidth?totalOffset%tabWidth:0,spaceCount=tabWidth-previousTabStopOffset;extraCharacterCount+=spaceCount-1});return Array.from(line).length+extraCharacterCount}var lastOption=context.options[context.options.length-1];var options=(typeof lastOption==="undefined"?"undefined":_typeof(lastOption))==="object"?Object.create(lastOption):{};if(typeof context.options[0]==="number"){options.code=context.options[0]}if(typeof context.options[1]==="number"){options.tabWidth=context.options[1]}var maxLength=options.code||80,tabWidth=options.tabWidth||4,ignoreComments=options.ignoreComments||false,ignoreStrings=options.ignoreStrings||false,ignoreTemplateLiterals=options.ignoreTemplateLiterals||false,ignoreRegExpLiterals=options.ignoreRegExpLiterals||false,ignoreTrailingComments=options.ignoreTrailingComments||options.ignoreComments||false,ignoreUrls=options.ignoreUrls||false,maxCommentLength=options.comments;var ignorePattern=options.ignorePattern||null;if(ignorePattern){ignorePattern=new RegExp(ignorePattern)}function isTrailingComment(line,lineNumber,comment){return comment&&comment.loc.start.line===lineNumber&&lineNumber<=comment.loc.end.line&&(comment.loc.end.line>lineNumber||comment.loc.end.column===line.length)}function isFullLineComment(line,lineNumber,comment){var start=comment.loc.start,end=comment.loc.end,isFirstTokenOnLine=!line.slice(0,comment.loc.start.column).trim();return comment&&(start.linelineNumber||end.line===lineNumber&&end.column===line.length)}function stripTrailingComment(line,lineNumber,comment){return line.slice(0,comment.loc.start.column).replace(/\s+$/,"")}function ensureArrayAndPush(object,key,value){if(!Array.isArray(object[key])){object[key]=[]}object[key].push(value)}function getAllStrings(){return sourceCode.ast.tokens.filter(function(token){return token.type==="String"})}function getAllTemplateLiterals(){return sourceCode.ast.tokens.filter(function(token){return token.type==="Template"})}function getAllRegExpLiterals(){return sourceCode.ast.tokens.filter(function(token){return token.type==="RegularExpression"})}function groupByLineNumber(acc,node){for(var i=node.loc.start.line;i<=node.loc.end.line;++i){ensureArrayAndPush(acc,i,node)}return acc}function checkProgramForMaxLength(node){var lines=sourceCode.lines,comments=ignoreComments||maxCommentLength||ignoreTrailingComments?sourceCode.getAllComments():[];var commentsIndex=0;var strings=getAllStrings();var stringsByLine=strings.reduce(groupByLineNumber,{});var templateLiterals=getAllTemplateLiterals();var templateLiteralsByLine=templateLiterals.reduce(groupByLineNumber,{});var regExpLiterals=getAllRegExpLiterals();var regExpLiteralsByLine=regExpLiterals.reduce(groupByLineNumber,{});lines.forEach(function(line,i){var lineNumber=i+1;var lineIsComment=false;if(commentsIndexmaxCommentLength){context.report({node:node,loc:{line:lineNumber,column:0},message:"Line {{lineNumber}} exceeds the maximum comment line length of {{maxCommentLength}}.",data:{lineNumber:i+1,maxCommentLength:maxCommentLength}})}}else if(lineLength>maxLength){context.report({node:node,loc:{line:lineNumber,column:0},message:"Line {{lineNumber}} exceeds the maximum line length of {{maxLength}}.",data:{lineNumber:i+1,maxLength:maxLength}})}})}return{Program:checkProgramForMaxLength}}}},{}],78:[function(require,module,exports){"use strict";var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj};var lodash=require("lodash");var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"enforce a maximum number of lines per file",category:"Stylistic Issues",recommended:false},schema:[{oneOf:[{type:"integer",minimum:0},{type:"object",properties:{max:{type:"integer",minimum:0},skipComments:{type:"boolean"},skipBlankLines:{type:"boolean"}},additionalProperties:false}]}]},create:function create(context){var option=context.options[0];var max=300;if((typeof option==="undefined"?"undefined":_typeof(option))==="object"&&option.hasOwnProperty("max")&&typeof option.max==="number"){max=option.max}if(typeof option==="number"){max=option}var skipComments=option&&option.skipComments;var skipBlankLines=option&&option.skipBlankLines;var sourceCode=context.getSourceCode();function isCommentNodeType(token){return token&&(token.type==="Block"||token.type==="Line")}function getLinesWithoutCode(comment){var start=comment.loc.start.line;var end=comment.loc.end.line;var token=void 0;token=comment;do{token=sourceCode.getTokenBefore(token,{includeComments:true})}while(isCommentNodeType(token));if(token&&astUtils.isTokenOnSameLine(token,comment)){start+=1}token=comment;do{token=sourceCode.getTokenAfter(token,{includeComments:true})}while(isCommentNodeType(token));if(token&&astUtils.isTokenOnSameLine(comment,token)){end-=1}if(start<=end){return lodash.range(start,end+1)}return[]}return{"Program:exit":function ProgramExit(){var lines=sourceCode.lines.map(function(text,i){return{lineNumber:i+1,text:text}});if(skipBlankLines){lines=lines.filter(function(l){return l.text.trim()!==""})}if(skipComments){var comments=sourceCode.getAllComments();var commentLines=lodash.flatten(comments.map(function(comment){return getLinesWithoutCode(comment)}));lines=lines.filter(function(l){return!lodash.includes(commentLines,l.lineNumber)})}if(lines.length>max){context.report({loc:{line:1,column:0},message:"File must be at most {{max}} lines long. It's {{actual}} lines long.",data:{max:max,actual:lines.length}})}}}}}},{"../ast-utils":22,lodash:16}],79:[function(require,module,exports){"use strict";var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj};module.exports={meta:{docs:{description:"enforce a maximum depth that callbacks can be nested",category:"Stylistic Issues",recommended:false},schema:[{oneOf:[{type:"integer",minimum:0},{type:"object",properties:{maximum:{type:"integer",minimum:0},max:{type:"integer",minimum:0}},additionalProperties:false}]}]},create:function create(context){var option=context.options[0];var THRESHOLD=10;if((typeof option==="undefined"?"undefined":_typeof(option))==="object"&&option.hasOwnProperty("maximum")&&typeof option.maximum==="number"){THRESHOLD=option.maximum}if((typeof option==="undefined"?"undefined":_typeof(option))==="object"&&option.hasOwnProperty("max")&&typeof option.max==="number"){THRESHOLD=option.max}if(typeof option==="number"){THRESHOLD=option}var callbackStack=[];function checkFunction(node){var parent=node.parent;if(parent.type==="CallExpression"){callbackStack.push(node)}if(callbackStack.length>THRESHOLD){var opts={num:callbackStack.length,max:THRESHOLD};context.report({node:node,message:"Too many nested callbacks ({{num}}). Maximum allowed is {{max}}.",data:opts})}}function popStack(){callbackStack.pop()}return{ArrowFunctionExpression:checkFunction,"ArrowFunctionExpression:exit":popStack,FunctionExpression:checkFunction,"FunctionExpression:exit":popStack}}}},{}],80:[function(require,module,exports){"use strict";var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj};var lodash=require("lodash");var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"enforce a maximum number of parameters in function definitions",category:"Stylistic Issues",recommended:false},schema:[{oneOf:[{type:"integer",minimum:0},{type:"object",properties:{maximum:{type:"integer",minimum:0},max:{type:"integer",minimum:0}},additionalProperties:false}]}]},create:function create(context){var option=context.options[0];var numParams=3;if((typeof option==="undefined"?"undefined":_typeof(option))==="object"&&option.hasOwnProperty("maximum")&&typeof option.maximum==="number"){numParams=option.maximum}if((typeof option==="undefined"?"undefined":_typeof(option))==="object"&&option.hasOwnProperty("max")&&typeof option.max==="number"){numParams=option.max}if(typeof option==="number"){numParams=option}function checkFunction(node){if(node.params.length>numParams){context.report({node:node,message:"{{name}} has too many parameters ({{count}}). Maximum allowed is {{max}}.",data:{name:lodash.upperFirst(astUtils.getFunctionNameWithKind(node)),count:node.params.length,max:numParams}})}}return{FunctionDeclaration:checkFunction,ArrowFunctionExpression:checkFunction,FunctionExpression:checkFunction}}}},{"../ast-utils":22,lodash:16}],81:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"enforce a maximum number of statements allowed per line",category:"Stylistic Issues",recommended:false},schema:[{type:"object",properties:{max:{type:"integer",minimum:1}},additionalProperties:false}]},create:function create(context){var sourceCode=context.getSourceCode(),options=context.options[0]||{},maxStatementsPerLine=typeof options.max!=="undefined"?options.max:1,message="This line has {{numberOfStatementsOnThisLine}} {{statements}}. Maximum allowed is {{maxStatementsPerLine}}.";var lastStatementLine=0,numberOfStatementsOnThisLine=0,firstExtraStatement=void 0;var SINGLE_CHILD_ALLOWED=/^(?:(?:DoWhile|For|ForIn|ForOf|If|Labeled|While)Statement|Export(?:Default|Named)Declaration)$/;function reportFirstExtraStatementAndClear(){if(firstExtraStatement){context.report({node:firstExtraStatement,message:message,data:{numberOfStatementsOnThisLine:numberOfStatementsOnThisLine,maxStatementsPerLine:maxStatementsPerLine,statements:numberOfStatementsOnThisLine===1?"statement":"statements"}})}firstExtraStatement=null}function getActualLastToken(node){return sourceCode.getLastToken(node,astUtils.isNotSemicolonToken)}function enterStatement(node){var line=node.loc.start.line;if(SINGLE_CHILD_ALLOWED.test(node.parent.type)&&node.parent.alternate!==node){return}if(line===lastStatementLine){numberOfStatementsOnThisLine+=1}else{reportFirstExtraStatementAndClear();numberOfStatementsOnThisLine=1;lastStatementLine=line}if(numberOfStatementsOnThisLine===maxStatementsPerLine+1){firstExtraStatement=firstExtraStatement||node}}function leaveStatement(node){var line=getActualLastToken(node).loc.end.line;if(line!==lastStatementLine){reportFirstExtraStatementAndClear();numberOfStatementsOnThisLine=1;lastStatementLine=line}}return{BreakStatement:enterStatement,ClassDeclaration:enterStatement,ContinueStatement:enterStatement,DebuggerStatement:enterStatement,DoWhileStatement:enterStatement,ExpressionStatement:enterStatement,ForInStatement:enterStatement,ForOfStatement:enterStatement,ForStatement:enterStatement,FunctionDeclaration:enterStatement,IfStatement:enterStatement,ImportDeclaration:enterStatement,LabeledStatement:enterStatement,ReturnStatement:enterStatement,SwitchStatement:enterStatement,ThrowStatement:enterStatement,TryStatement:enterStatement,VariableDeclaration:enterStatement,WhileStatement:enterStatement,WithStatement:enterStatement,ExportNamedDeclaration:enterStatement,ExportDefaultDeclaration:enterStatement,ExportAllDeclaration:enterStatement,"BreakStatement:exit":leaveStatement,"ClassDeclaration:exit":leaveStatement,"ContinueStatement:exit":leaveStatement,"DebuggerStatement:exit":leaveStatement,"DoWhileStatement:exit":leaveStatement,"ExpressionStatement:exit":leaveStatement,"ForInStatement:exit":leaveStatement,"ForOfStatement:exit":leaveStatement,"ForStatement:exit":leaveStatement,"FunctionDeclaration:exit":leaveStatement,"IfStatement:exit":leaveStatement,"ImportDeclaration:exit":leaveStatement,"LabeledStatement:exit":leaveStatement,"ReturnStatement:exit":leaveStatement,"SwitchStatement:exit":leaveStatement,"ThrowStatement:exit":leaveStatement,"TryStatement:exit":leaveStatement,"VariableDeclaration:exit":leaveStatement,"WhileStatement:exit":leaveStatement,"WithStatement:exit":leaveStatement,"ExportNamedDeclaration:exit":leaveStatement,"ExportDefaultDeclaration:exit":leaveStatement,"ExportAllDeclaration:exit":leaveStatement,"Program:exit":reportFirstExtraStatementAndClear}}}},{"../ast-utils":22}],82:[function(require,module,exports){"use strict";var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj};var lodash=require("lodash");var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"enforce a maximum number of statements allowed in function blocks",category:"Stylistic Issues",recommended:false},schema:[{oneOf:[{type:"integer",minimum:0},{type:"object",properties:{maximum:{type:"integer",minimum:0},max:{type:"integer",minimum:0}},additionalProperties:false}]},{type:"object",properties:{ignoreTopLevelFunctions:{type:"boolean"}},additionalProperties:false}]},create:function create(context){var functionStack=[],option=context.options[0],ignoreTopLevelFunctions=context.options[1]&&context.options[1].ignoreTopLevelFunctions||false,topLevelFunctions=[];var maxStatements=10;if((typeof option==="undefined"?"undefined":_typeof(option))==="object"&&option.hasOwnProperty("maximum")&&typeof option.maximum==="number"){maxStatements=option.maximum}if((typeof option==="undefined"?"undefined":_typeof(option))==="object"&&option.hasOwnProperty("max")&&typeof option.max==="number"){maxStatements=option.max}if(typeof option==="number"){maxStatements=option}function reportIfTooManyStatements(node,count,max){if(count>max){var name=lodash.upperFirst(astUtils.getFunctionNameWithKind(node));context.report({node:node,message:"{{name}} has too many statements ({{count}}). Maximum allowed is {{max}}.",data:{name:name,count:count,max:max}})}}function startFunction(){functionStack.push(0)}function endFunction(node){var count=functionStack.pop();if(ignoreTopLevelFunctions&&functionStack.length===0){topLevelFunctions.push({node:node,count:count})}else{reportIfTooManyStatements(node,count,maxStatements)}}function countStatements(node){functionStack[functionStack.length-1]+=node.body.length}return{FunctionDeclaration:startFunction,FunctionExpression:startFunction,ArrowFunctionExpression:startFunction,BlockStatement:countStatements,"FunctionDeclaration:exit":endFunction,"FunctionExpression:exit":endFunction,"ArrowFunctionExpression:exit":endFunction,"Program:exit":function ProgramExit(){if(topLevelFunctions.length===1){return}topLevelFunctions.forEach(function(element){var count=element.count;var node=element.node;reportIfTooManyStatements(node,count,maxStatements)})}}}}},{"../ast-utils":22,lodash:16}],83:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"enforce newlines between operands of ternary expressions",category:"Stylistic Issues",recommended:false},schema:[{enum:["always","never"]}]},create:function create(context){var multiline=context.options[0]!=="never";function reportError(node,parentNode,expected){context.report({node:node,message:"{{expected}} newline between {{typeOfError}} of ternary expression.",data:{expected:expected?"Expected":"Unexpected",typeOfError:node===parentNode.test?"test and consequent":"consequent and alternate"}})}return{ConditionalExpression:function ConditionalExpression(node){var areTestAndConsequentOnSameLine=astUtils.isTokenOnSameLine(node.test,node.consequent);var areConsequentAndAlternateOnSameLine=astUtils.isTokenOnSameLine(node.consequent,node.alternate);if(!multiline){if(!areTestAndConsequentOnSameLine){reportError(node.test,node,false)}if(!areConsequentAndAlternateOnSameLine){reportError(node.consequent,node,false)}}else{if(areTestAndConsequentOnSameLine){reportError(node.test,node,true)}if(areConsequentAndAlternateOnSameLine){reportError(node.consequent,node,true)}}}}}}},{"../ast-utils":22}],84:[function(require,module,exports){"use strict";var CAPS_ALLOWED=["Array","Boolean","Date","Error","Function","Number","Object","RegExp","String","Symbol"];function checkArray(obj,key,fallback){if(Object.prototype.hasOwnProperty.call(obj,key)&&!Array.isArray(obj[key])){throw new TypeError(key+", if provided, must be an Array")}return obj[key]||fallback}function invert(map,key){map[key]=true;return map}function calculateCapIsNewExceptions(config){var capIsNewExceptions=checkArray(config,"capIsNewExceptions",CAPS_ALLOWED);if(capIsNewExceptions!==CAPS_ALLOWED){capIsNewExceptions=capIsNewExceptions.concat(CAPS_ALLOWED)}return capIsNewExceptions.reduce(invert,{})}module.exports={meta:{docs:{description:"require constructor names to begin with a capital letter",category:"Stylistic Issues",recommended:false},schema:[{type:"object",properties:{newIsCap:{type:"boolean"},capIsNew:{type:"boolean"},newIsCapExceptions:{type:"array",items:{type:"string"}},newIsCapExceptionPattern:{type:"string"},capIsNewExceptions:{type:"array",items:{type:"string"}},capIsNewExceptionPattern:{type:"string"},properties:{type:"boolean"}},additionalProperties:false}]},create:function create(context){var config=context.options[0]?Object.assign({},context.options[0]):{};config.newIsCap=config.newIsCap!==false;config.capIsNew=config.capIsNew!==false;var skipProperties=config.properties===false;var newIsCapExceptions=checkArray(config,"newIsCapExceptions",[]).reduce(invert,{});var newIsCapExceptionPattern=config.newIsCapExceptionPattern?new RegExp(config.newIsCapExceptionPattern):null;var capIsNewExceptions=calculateCapIsNewExceptions(config);var capIsNewExceptionPattern=config.capIsNewExceptionPattern?new RegExp(config.capIsNewExceptionPattern):null;var listeners={};var sourceCode=context.getSourceCode();function extractNameFromExpression(node){var name="";if(node.callee.type==="MemberExpression"){var property=node.callee.property;if(property.type==="Literal"&&typeof property.value==="string"){name=property.value}else if(property.type==="Identifier"&&!node.callee.computed){name=property.name}}else{name=node.callee.name}return name}function getCap(str){var firstChar=str.charAt(0);var firstCharLower=firstChar.toLowerCase();var firstCharUpper=firstChar.toUpperCase();if(firstCharLower===firstCharUpper){return"non-alpha"}else if(firstChar===firstCharLower){return"lower"}return"upper"}function isCapAllowed(allowedMap,node,calleeName,pattern){var sourceText=sourceCode.getText(node.callee);if(allowedMap[calleeName]||allowedMap[sourceText]){return true}if(pattern&&pattern.test(sourceText)){return true}if(calleeName==="UTC"&&node.callee.type==="MemberExpression"){return node.callee.object.type==="Identifier"&&node.callee.object.name==="Date"}return skipProperties&&node.callee.type==="MemberExpression"}function report(node,message){var callee=node.callee;if(callee.type==="MemberExpression"){callee=callee.property}context.report({node:node,loc:callee.loc.start,message:message})}if(config.newIsCap){listeners.NewExpression=function(node){var constructorName=extractNameFromExpression(node);if(constructorName){var capitalization=getCap(constructorName);var isAllowed=capitalization!=="lower"||isCapAllowed(newIsCapExceptions,node,constructorName,newIsCapExceptionPattern);if(!isAllowed){report(node,"A constructor name should not start with a lowercase letter.")}}}}if(config.capIsNew){listeners.CallExpression=function(node){var calleeName=extractNameFromExpression(node);if(calleeName){var capitalization=getCap(calleeName);var isAllowed=capitalization!=="upper"||isCapAllowed(capIsNewExceptions,node,calleeName,capIsNewExceptionPattern);if(!isAllowed){report(node,"A function with a name starting with an uppercase letter should only be used as a constructor.")}}}}return listeners}}},{}],85:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"require parentheses when invoking a constructor with no arguments",category:"Stylistic Issues",recommended:false},schema:[],fixable:"code"},create:function create(context){var sourceCode=context.getSourceCode();return{NewExpression:function NewExpression(node){if(node.arguments.length!==0){return}var lastToken=sourceCode.getLastToken(node);var hasLastParen=lastToken&&astUtils.isClosingParenToken(lastToken);var hasParens=hasLastParen&&astUtils.isOpeningParenToken(sourceCode.getTokenBefore(lastToken));if(!hasParens){context.report({node:node,message:"Missing '()' invoking a constructor.",fix:function fix(fixer){return fixer.insertTextAfter(node,"()")}})}}}}}},{"../ast-utils":22}],86:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"require or disallow an empty line after variable declarations",category:"Stylistic Issues",recommended:false,replacedBy:["padding-line-between-statements"]},schema:[{enum:["never","always"]}],fixable:"whitespace",deprecated:true},create:function create(context){var ALWAYS_MESSAGE="Expected blank line after variable declarations.",NEVER_MESSAGE="Unexpected blank line after variable declarations.";var sourceCode=context.getSourceCode();var mode=context.options[0]==="never"?"never":"always";var commentEndLine=sourceCode.getAllComments().reduce(function(result,token){result[token.loc.start.line]=token.loc.end.line;return result},{});function getLastToken(node){var lastToken=sourceCode.getLastToken(node);if(lastToken.type==="Punctuator"&&lastToken.value===";"){var prevToken=sourceCode.getTokenBefore(lastToken);if(prevToken.loc.end.line!==lastToken.loc.start.line){return prevToken}}return lastToken}function isVar(keyword){return keyword==="var"||keyword==="let"||keyword==="const"}function isForTypeSpecifier(keyword){return keyword==="ForStatement"||keyword==="ForInStatement"||keyword==="ForOfStatement"}function isExportSpecifier(nodeType){return nodeType==="ExportNamedDeclaration"||nodeType==="ExportSpecifier"||nodeType==="ExportDefaultDeclaration"||nodeType==="ExportAllDeclaration"}function isLastNode(node){var token=sourceCode.getTokenAfter(node);return!token||token.type==="Punctuator"&&token.value==="}"}function getLastCommentLineOfBlock(commentStartLine){var currentCommentEnd=commentEndLine[commentStartLine];return commentEndLine[currentCommentEnd+1]?getLastCommentLineOfBlock(currentCommentEnd+1):currentCommentEnd}function hasBlankLineAfterComment(token,commentStartLine){return token.loc.start.line>getLastCommentLineOfBlock(commentStartLine)+1}function checkForBlankLine(node){var lastToken=getLastToken(node),nextToken=lastToken===sourceCode.getLastToken(node)?sourceCode.getTokenAfter(node):sourceCode.getLastToken(node),nextLineNum=lastToken.loc.end.line+1;if(!nextToken){return}if(isForTypeSpecifier(node.parent.type)){return}if(isExportSpecifier(node.parent.type)){return}if(nextToken.type==="Keyword"&&isVar(nextToken.value)){return}if(isLastNode(node)){return}var noNextLineToken=nextToken.loc.start.line>nextLineNum;var hasNextLineComment=typeof commentEndLine[nextLineNum]!=="undefined";if(mode==="never"&&noNextLineToken&&!hasNextLineComment){context.report({node:node,message:NEVER_MESSAGE,data:{identifier:node.name},fix:function fix(fixer){var linesBetween=sourceCode.getText().slice(lastToken.range[1],nextToken.range[0]).split(astUtils.LINEBREAK_MATCHER);return fixer.replaceTextRange([lastToken.range[1],nextToken.range[0]],linesBetween.slice(0,-1).join("")+"\n"+linesBetween[linesBetween.length-1])}})}if(mode==="always"&&(!noNextLineToken||hasNextLineComment&&!hasBlankLineAfterComment(nextToken,nextLineNum))){context.report({node:node,message:ALWAYS_MESSAGE,data:{identifier:node.name},fix:function fix(fixer){if((noNextLineToken?getLastCommentLineOfBlock(nextLineNum):lastToken.loc.end.line)===nextToken.loc.start.line){return fixer.insertTextBefore(nextToken,"\n\n")}return fixer.insertTextBeforeRange([nextToken.range[0]-nextToken.loc.start.column,nextToken.range[1]],"\n")}})}}return{VariableDeclaration:checkForBlankLine}}}},{"../ast-utils":22}],87:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"require an empty line before `return` statements",category:"Stylistic Issues",recommended:false,replacedBy:["padding-line-between-statements"]},fixable:"whitespace",schema:[],deprecated:true},create:function create(context){var sourceCode=context.getSourceCode();function isPrecededByTokens(node,testTokens){var tokenBefore=sourceCode.getTokenBefore(node);return testTokens.some(function(token){return tokenBefore.value===token})}function isFirstNode(node){var parentType=node.parent.type;if(node.parent.body){return Array.isArray(node.parent.body)?node.parent.body[0]===node:node.parent.body===node}if(parentType==="IfStatement"){return isPrecededByTokens(node,["else",")"])}else if(parentType==="DoWhileStatement"){return isPrecededByTokens(node,["do"])}else if(parentType==="SwitchCase"){return isPrecededByTokens(node,[":"])}return isPrecededByTokens(node,[")"])}function calcCommentLines(node,lineNumTokenBefore){var comments=sourceCode.getCommentsBefore(node);var numLinesComments=0;if(!comments.length){return numLinesComments}comments.forEach(function(comment){numLinesComments++;if(comment.type==="Block"){numLinesComments+=comment.loc.end.line-comment.loc.start.line}if(comment.loc.start.line===lineNumTokenBefore){numLinesComments--}if(comment.loc.end.line===node.loc.start.line){numLinesComments--}});return numLinesComments}function getLineNumberOfTokenBefore(node){var tokenBefore=sourceCode.getTokenBefore(node);var lineNumTokenBefore=void 0;if(tokenBefore){lineNumTokenBefore=tokenBefore.loc.end.line}else{lineNumTokenBefore=0}return lineNumTokenBefore}function hasNewlineBefore(node){var lineNumNode=node.loc.start.line;var lineNumTokenBefore=getLineNumberOfTokenBefore(node);var commentLines=calcCommentLines(node,lineNumTokenBefore);return lineNumNode-lineNumTokenBefore-commentLines>1}function canFix(node){var leadingComments=sourceCode.getCommentsBefore(node);var lastLeadingComment=leadingComments[leadingComments.length-1];var tokenBefore=sourceCode.getTokenBefore(node);if(leadingComments.length===0){return true}if(lastLeadingComment.loc.end.line===tokenBefore.loc.end.line&&lastLeadingComment.loc.end.line!==node.loc.start.line){return true}return false}return{ReturnStatement:function ReturnStatement(node){if(!isFirstNode(node)&&!hasNewlineBefore(node)){context.report({node:node,message:"Expected newline before return statement.",fix:function fix(fixer){if(canFix(node)){var tokenBefore=sourceCode.getTokenBefore(node);var newlines=node.loc.start.line===tokenBefore.loc.end.line?"\n\n":"\n";return fixer.insertTextBefore(node,newlines)}return null}})}}}}}},{}],88:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"require a newline after each call in a method chain",category:"Stylistic Issues",recommended:false},schema:[{type:"object",properties:{ignoreChainWithDepth:{type:"integer",minimum:1,maximum:10}},additionalProperties:false}]},create:function create(context){var options=context.options[0]||{},ignoreChainWithDepth=options.ignoreChainWithDepth||2;var sourceCode=context.getSourceCode();function getPropertyText(node){var prefix=node.computed?"[":".";var lines=sourceCode.getText(node.property).split(astUtils.LINEBREAK_MATCHER);var suffix=node.computed&&lines.length===1?"]":"";return prefix+lines[0]+suffix}return{"CallExpression:exit":function CallExpressionExit(node){if(!node.callee||node.callee.type!=="MemberExpression"){return}var callee=node.callee;var parent=callee.object;var depth=1;while(parent&&parent.callee){depth+=1;parent=parent.callee.object}if(depth>ignoreChainWithDepth&&callee.property.loc.start.line===callee.object.loc.end.line){context.report({node:callee.property,loc:callee.property.loc.start,message:"Expected line break before `{{callee}}`.",data:{callee:getPropertyText(callee)}})}}}}}},{"../ast-utils":22}],89:[function(require,module,exports){"use strict";var getPropertyName=require("../ast-utils").getStaticPropertyName;function isProhibitedIdentifier(name){return/^(alert|confirm|prompt)$/.test(name)}function report(context,node,identifierName){context.report(node,"Unexpected {{name}}.",{name:identifierName})}function findReference(scope,node){var references=scope.references.filter(function(reference){return reference.identifier.range[0]===node.range[0]&&reference.identifier.range[1]===node.range[1]});if(references.length===1){return references[0]}return null}function isShadowed(scope,globalScope,node){var reference=findReference(scope,node);return reference&&reference.resolved&&reference.resolved.defs.length>0}function isGlobalThisReferenceOrGlobalWindow(scope,globalScope,node){if(scope.type==="global"&&node.type==="ThisExpression"){return true}else if(node.name==="window"){return!isShadowed(scope,globalScope,node)}return false}module.exports={meta:{docs:{description:"disallow the use of `alert`, `confirm`, and `prompt`",category:"Best Practices",recommended:false},schema:[]},create:function create(context){var globalScope=void 0;return{Program:function Program(){globalScope=context.getScope()},CallExpression:function CallExpression(node){var callee=node.callee,currentScope=context.getScope();if(callee.type==="Identifier"){var identifierName=callee.name;if(!isShadowed(currentScope,globalScope,callee)&&isProhibitedIdentifier(callee.name)){report(context,node,identifierName)}}else if(callee.type==="MemberExpression"&&isGlobalThisReferenceOrGlobalWindow(currentScope,globalScope,callee.object)){var _identifierName=getPropertyName(callee);if(isProhibitedIdentifier(_identifierName)){report(context,node,_identifierName)}}}}}}},{"../ast-utils":22}],90:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow `Array` constructors",category:"Stylistic Issues",recommended:false},schema:[]},create:function create(context){function check(node){if(node.arguments.length!==1&&node.callee.type==="Identifier"&&node.callee.name==="Array"){context.report({node:node,message:"The array literal notation [] is preferrable."})}}return{CallExpression:check,NewExpression:check}}}},{}],91:[function(require,module,exports){"use strict";var loopTypes=new Set(["ForStatement","ForOfStatement","ForInStatement","WhileStatement","DoWhileStatement"]);var boundaryTypes=new Set(["FunctionDeclaration","FunctionExpression","ArrowFunctionExpression"]);module.exports={meta:{docs:{description:"disallow `await` inside of loops",category:"Possible Errors",recommended:false},schema:[]},create:function create(context){return{AwaitExpression:function AwaitExpression(node){var ancestors=context.getAncestors();ancestors.reverse();var ancestorSet=new Set(ancestors).add(node);for(var i=0;i>",">>>","^=","|=","&=","<<=",">>=",">>>=","~"];module.exports={meta:{docs:{description:"disallow bitwise operators",category:"Stylistic Issues",recommended:false},schema:[{type:"object",properties:{allow:{type:"array",items:{enum:BITWISE_OPERATORS},uniqueItems:true},int32Hint:{type:"boolean"}},additionalProperties:false}]},create:function create(context){var options=context.options[0]||{};var allowed=options.allow||[];var int32Hint=options.int32Hint===true;function report(node){context.report({node:node,message:"Unexpected use of '{{operator}}'.",data:{operator:node.operator}})}function hasBitwiseOperator(node){return BITWISE_OPERATORS.indexOf(node.operator)!==-1}function allowedOperator(node){return allowed.indexOf(node.operator)!==-1}function isInt32Hint(node){return int32Hint&&node.operator==="|"&&node.right&&node.right.type==="Literal"&&node.right.value===0}function checkNodeForBitwiseOperator(node){if(hasBitwiseOperator(node)&&!allowedOperator(node)&&!isInt32Hint(node)){report(node)}}return{AssignmentExpression:checkNodeForBitwiseOperator,BinaryExpression:checkNodeForBitwiseOperator,UnaryExpression:checkNodeForBitwiseOperator}}}},{}],93:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow use of the Buffer() constructor",category:"Node.js and CommonJS",recommended:false},schema:[]},create:function create(context){return{"CallExpression[callee.name='Buffer'], NewExpression[callee.name='Buffer']":function CallExpressionCalleeNameBufferNewExpressionCalleeNameBuffer(node){context.report({node:node,message:"{{example}} is deprecated. Use Buffer.from(), Buffer.alloc(), or Buffer.allocUnsafe() instead.",data:{example:node.type==="CallExpression"?"Buffer()":"new Buffer()"}})}}}}},{}],94:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow the use of `arguments.caller` or `arguments.callee`",category:"Best Practices",recommended:false},schema:[]},create:function create(context){return{MemberExpression:function MemberExpression(node){var objectName=node.object.name,propertyName=node.property.name;if(objectName==="arguments"&&!node.computed&&propertyName&&propertyName.match(/^calle[er]$/)){context.report({node:node,message:"Avoid arguments.{{property}}.",data:{property:propertyName}})}}}}}},{}],95:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow lexical declarations in case clauses",category:"Best Practices",recommended:true},schema:[]},create:function create(context){function isLexicalDeclaration(node){switch(node.type){case"FunctionDeclaration":case"ClassDeclaration":return true;case"VariableDeclaration":return node.kind!=="var";default:return false}}return{SwitchCase:function SwitchCase(node){for(var i=0;i",">=","<","<=","==","===","!=","!=="]);return{BinaryExpression:function BinaryExpression(node){if(OPERATORS_TO_CHECK.has(node.operator)){if(isNegZero(node.left)||isNegZero(node.right)){context.report({node:node,message:"Do not use the '{{operator}}' operator to compare against -0.",data:{operator:node.operator}})}}}}}}},{}],99:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");var NODE_DESCRIPTIONS={DoWhileStatement:"a 'do...while' statement",ForStatement:"a 'for' statement",IfStatement:"an 'if' statement",WhileStatement:"a 'while' statement"};module.exports={meta:{docs:{description:"disallow assignment operators in conditional expressions",category:"Possible Errors",recommended:true},schema:[{enum:["except-parens","always"]}]},create:function create(context){var prohibitAssign=context.options[0]||"except-parens";var sourceCode=context.getSourceCode();function isConditionalTestExpression(node){return node.parent&&node.parent.test&&node===node.parent.test}function findConditionalAncestor(node){var currentAncestor=node;do{if(isConditionalTestExpression(currentAncestor)){return currentAncestor.parent}}while((currentAncestor=currentAncestor.parent)&&!astUtils.isFunction(currentAncestor));return null}function isParenthesisedTwice(node){var previousToken=sourceCode.getTokenBefore(node,1),nextToken=sourceCode.getTokenAfter(node,1);return astUtils.isParenthesised(sourceCode,node)&&astUtils.isOpeningParenToken(previousToken)&&previousToken.range[1]<=node.range[0]&&astUtils.isClosingParenToken(nextToken)&&nextToken.range[0]>=node.range[1]}function testForAssign(node){if(node.test&&node.test.type==="AssignmentExpression"&&(node.type==="ForStatement"?!astUtils.isParenthesised(sourceCode,node.test):!isParenthesisedTwice(node.test))){context.report({node:node,loc:node.test.loc.start,message:"Expected a conditional expression and instead saw an assignment."})}}function testForConditionalAncestor(node){var ancestor=findConditionalAncestor(node);if(ancestor){context.report({node:ancestor,message:"Unexpected assignment within {{type}}.",data:{type:NODE_DESCRIPTIONS[ancestor.type]||ancestor.type}})}}if(prohibitAssign==="always"){return{AssignmentExpression:testForConditionalAncestor}}return{DoWhileStatement:testForAssign,ForStatement:testForAssign,IfStatement:testForAssign,WhileStatement:testForAssign}}}},{"../ast-utils":22}],100:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils.js");function isConditional(node){return node&&node.type==="ConditionalExpression"}module.exports={meta:{docs:{description:"disallow arrow functions where they could be confused with comparisons",category:"ECMAScript 6",recommended:false},fixable:"code",schema:[{type:"object",properties:{allowParens:{type:"boolean"}},additionalProperties:false}]},create:function create(context){var config=context.options[0]||{};var sourceCode=context.getSourceCode();function checkArrowFunc(node){var body=node.body;if(isConditional(body)&&!(config.allowParens&&astUtils.isParenthesised(sourceCode,body))){context.report({node:node,message:"Arrow function used ambiguously with a conditional expression.",fix:function fix(fixer){return config.allowParens&&fixer.replaceText(node.body,"("+sourceCode.getText(node.body)+")")}})}}return{ArrowFunctionExpression:checkArrowFunc}}}},{"../ast-utils.js":22}],101:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"disallow the use of `console`",category:"Possible Errors",recommended:true},schema:[{type:"object",properties:{allow:{type:"array",items:{type:"string"},minItems:1,uniqueItems:true}},additionalProperties:false}]},create:function create(context){var options=context.options[0]||{};var allowed=options.allow||[];function isConsole(reference){var id=reference.identifier;return id&&id.name==="console"}function isAllowed(node){var propertyName=astUtils.getStaticPropertyName(node);return propertyName&&allowed.indexOf(propertyName)!==-1}function isMemberAccessExceptAllowed(reference){var node=reference.identifier;var parent=node.parent;return parent.type==="MemberExpression"&&parent.object===node&&!isAllowed(parent)}function report(reference){var node=reference.identifier.parent;context.report({node:node,loc:node.loc,message:"Unexpected console statement."})}return{"Program:exit":function ProgramExit(){var scope=context.getScope();var consoleVar=astUtils.getVariableByName(scope,"console");var shadowed=consoleVar&&consoleVar.defs.length>0;var references=consoleVar?consoleVar.references:scope.through.filter(isConsole);if(!shadowed){references.filter(isMemberAccessExceptAllowed).forEach(report)}}}}}},{"../ast-utils":22}],102:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"disallow reassigning `const` variables",category:"ECMAScript 6",recommended:true},schema:[]},create:function create(context){function checkVariable(variable){astUtils.getModifyingReferences(variable.references).forEach(function(reference){context.report({node:reference.identifier,message:"'{{name}}' is constant.",data:{name:reference.identifier.name}})})}return{VariableDeclaration:function VariableDeclaration(node){if(node.kind==="const"){context.getDeclaredVariables(node).forEach(checkVariable)}}}}}},{"../ast-utils":22}],103:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow constant expressions in conditions",category:"Possible Errors",recommended:true},schema:[{type:"object",properties:{checkLoops:{type:"boolean"}},additionalProperties:false}]},create:function create(context){var options=context.options[0]||{},checkLoops=options.checkLoops!==false;function isLogicalIdentity(node,operator){switch(node.type){case"Literal":return operator==="||"&&node.value===true||operator==="&&"&&node.value===false;case"UnaryExpression":return operator==="&&"&&node.operator==="void";case"LogicalExpression":return isLogicalIdentity(node.left,node.operator)||isLogicalIdentity(node.right,node.operator)}return false}function isConstant(node,inBooleanPosition){switch(node.type){case"Literal":case"ArrowFunctionExpression":case"FunctionExpression":case"ObjectExpression":case"ArrayExpression":return true;case"UnaryExpression":if(node.operator==="void"){return true}return node.operator==="typeof"&&inBooleanPosition||isConstant(node.argument,true);case"BinaryExpression":return isConstant(node.left,false)&&isConstant(node.right,false)&&node.operator!=="in";case"LogicalExpression":{var isLeftConstant=isConstant(node.left,inBooleanPosition);var isRightConstant=isConstant(node.right,inBooleanPosition);var isLeftShortCircuit=isLeftConstant&&isLogicalIdentity(node.left,node.operator);var isRightShortCircuit=isRightConstant&&isLogicalIdentity(node.right,node.operator);return isLeftConstant&&isRightConstant||isLeftShortCircuit||isRightShortCircuit}case"AssignmentExpression":return node.operator==="="&&isConstant(node.right,inBooleanPosition);case"SequenceExpression":return isConstant(node.expressions[node.expressions.length-1],inBooleanPosition)}return false}function checkConstantCondition(node){if(node.test&&isConstant(node.test,true)){context.report({node:node,message:"Unexpected constant condition."})}}function checkLoop(node){if(checkLoops){checkConstantCondition(node)}}return{ConditionalExpression:checkConstantCondition,IfStatement:checkConstantCondition,WhileStatement:checkLoop,DoWhileStatement:checkLoop,ForStatement:checkLoop}}}},{}],104:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow `continue` statements",category:"Stylistic Issues",recommended:false},schema:[]},create:function create(context){return{ContinueStatement:function ContinueStatement(node){context.report({node:node,message:"Unexpected use of continue statement."})}}}}},{}],105:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow control characters in regular expressions",category:"Possible Errors",recommended:true},schema:[]},create:function create(context){function getRegExp(node){if(node.value instanceof RegExp){return node.value}else if(typeof node.value==="string"){var parent=context.getAncestors().pop();if((parent.type==="NewExpression"||parent.type==="CallExpression")&&parent.callee.type==="Identifier"&&parent.callee.name==="RegExp"){try{return new RegExp(node.value)}catch(ex){return null}}}return null}var controlChar=/[\x00-\x1f]/g;var consecutiveSlashes=/\\+/g;var consecutiveSlashesAtEnd=/\\+$/g;var stringControlChar=/\\x[01][0-9a-f]/gi;var stringControlCharWithoutSlash=/x[01][0-9a-f]/gi;function getControlCharacters(regexStr){var controlChars=regexStr.match(controlChar)||[];var stringControlChars=[];var subStrIndex=regexStr.search(stringControlChar);if(subStrIndex>-1){var possibleEscapeCharacters=regexStr.slice(0,subStrIndex).match(consecutiveSlashesAtEnd);var hasControlChars=possibleEscapeCharacters===null||!(possibleEscapeCharacters[0].length%2);if(hasControlChars){stringControlChars=regexStr.slice(subStrIndex,-1).split(consecutiveSlashes).filter(Boolean).map(function(x){var match=x.match(stringControlCharWithoutSlash)||[x];return"\\"+match[0]})}}return controlChars.map(function(x){var hexCode=("0"+x.charCodeAt(0).toString(16)).slice(-2);return"\\x"+hexCode}).concat(stringControlChars)}return{Literal:function Literal(node){var regex=getRegExp(node);if(regex){var computedValue=regex.toString();var controlCharacters=getControlCharacters(computedValue);if(controlCharacters.length>0){context.report({node:node,message:"Unexpected control character(s) in regular expression: {{controlChars}}.",data:{controlChars:controlCharacters.join(", ")}})}}}}}}},{}],106:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow the use of `debugger`",category:"Possible Errors",recommended:true},fixable:"code",schema:[]},create:function create(context){return{DebuggerStatement:function DebuggerStatement(node){context.report({node:node,message:"Unexpected 'debugger' statement.",fix:function fix(fixer){return fixer.remove(node)}})}}}}},{}],107:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow deleting variables",category:"Variables",recommended:true},schema:[]},create:function create(context){return{UnaryExpression:function UnaryExpression(node){if(node.operator==="delete"&&node.argument.type==="Identifier"){context.report({node:node,message:"Variables should not be deleted."})}}}}}},{}],108:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow division operators explicitly at the beginning of regular expressions",category:"Best Practices",recommended:false},schema:[]},create:function create(context){var sourceCode=context.getSourceCode();return{Literal:function Literal(node){var token=sourceCode.getFirstToken(node);if(token.type==="RegularExpression"&&token.value[1]==="="){context.report({node:node,message:"A regular expression literal can be confused with '/='."})}}}}}},{}],109:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow duplicate arguments in `function` definitions",category:"Possible Errors",recommended:true},schema:[]},create:function create(context){function isParameter(def){return def.type==="Parameter"}function checkParams(node){var variables=context.getDeclaredVariables(node);for(var i=0;i=2){context.report({node:node,message:"Duplicate param '{{name}}'.",data:{name:variable.name}})}}}return{FunctionDeclaration:checkParams,FunctionExpression:checkParams}}}},{}],110:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow duplicate class members",category:"ECMAScript 6",recommended:true},schema:[]},create:function create(context){var stack=[];function getState(name,isStatic){var stateMap=stack[stack.length-1];var key="$"+name;if(!stateMap[key]){stateMap[key]={nonStatic:{init:false,get:false,set:false},static:{init:false,get:false,set:false}}}return stateMap[key][isStatic?"static":"nonStatic"]}function getName(node){switch(node.type){case"Identifier":return node.name;case"Literal":return String(node.value);default:return""}}return{Program:function Program(){stack=[]},ClassBody:function ClassBody(){stack.push(Object.create(null))},"ClassBody:exit":function ClassBodyExit(){stack.pop()},MethodDefinition:function MethodDefinition(node){if(node.computed){return}var name=getName(node.key);var state=getState(name,node.static);var isDuplicate=false;if(node.kind==="get"){isDuplicate=state.init||state.get;state.get=true}else if(node.kind==="set"){isDuplicate=state.init||state.set;state.set=true}else{isDuplicate=state.init||state.get||state.set;state.init=true}if(isDuplicate){context.report({node:node,message:"Duplicate name '{{name}}'.",data:{name:name}})}}}}}},{}],111:[function(require,module,exports){"use strict";var _createClass=function(){function defineProperties(target,props){for(var i=0;i0){return}context.report({node:node,message:"Empty block statement."})},SwitchStatement:function SwitchStatement(node){if(typeof node.cases==="undefined"||node.cases.length===0){context.report({node:node,message:"Empty switch statement."})}}}}}},{"../ast-utils":22}],119:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow `null` comparisons without type-checking operators",category:"Best Practices",recommended:false},schema:[]},create:function create(context){return{BinaryExpression:function BinaryExpression(node){var badOperator=node.operator==="=="||node.operator==="!=";if(node.right.type==="Literal"&&node.right.raw==="null"&&badOperator||node.left.type==="Literal"&&node.left.raw==="null"&&badOperator){context.report({node:node,message:"Use ‘===’ to compare with ‘null’."})}}}}}},{}],120:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");var candidatesOfGlobalObject=Object.freeze(["global","window"]);function isIdentifier(node,name){return node.type==="Identifier"&&node.name===name}function isConstant(node,name){switch(node.type){case"Literal":return node.value===name;case"TemplateLiteral":return node.expressions.length===0&&node.quasis[0].value.cooked===name;default:return false}}function isMember(node,name){return node.type==="MemberExpression"&&(node.computed?isConstant:isIdentifier)(node.property,name)}module.exports={meta:{docs:{description:"disallow the use of `eval()`",category:"Best Practices",recommended:false},schema:[{type:"object",properties:{allowIndirect:{type:"boolean"}},additionalProperties:false}]},create:function create(context){var allowIndirect=Boolean(context.options[0]&&context.options[0].allowIndirect);var sourceCode=context.getSourceCode();var funcInfo=null;function enterVarScope(node){var strict=context.getScope().isStrict;funcInfo={upper:funcInfo,node:node,strict:strict,defaultThis:false,initialized:strict}}function exitVarScope(){funcInfo=funcInfo.upper}function report(node){var locationNode=node;var parent=node.parent;if(node.type==="MemberExpression"){locationNode=node.property}if(parent.type==="CallExpression"&&parent.callee===node){node=parent}context.report({node:node,loc:locationNode.loc.start,message:"eval can be harmful."})}function reportAccessingEvalViaGlobalObject(globalScope){for(var i=0;i1||node.arguments[0].type==="SpreadElement"){return null}var argument=node.arguments[0];if(astUtils.getPrecedence(argument)=node.range[1]}function hasExcessParens(node){return ruleApplies(node)&&isParenthesised(node)}function hasDoubleExcessParens(node){return ruleApplies(node)&&isParenthesisedTwice(node)}function isCondAssignException(node){return EXCEPT_COND_ASSIGN&&node.test.type==="AssignmentExpression"}function isInReturnStatement(node){while(node){if(node.type==="ReturnStatement"||node.type==="ArrowFunctionExpression"&&node.body.type!=="BlockStatement"){return true}node=node.parent}return false}function isNewExpressionWithParens(newExpression){var lastToken=sourceCode.getLastToken(newExpression);var penultimateToken=sourceCode.getTokenBefore(lastToken);return newExpression.arguments.length>0||astUtils.isOpeningParenToken(penultimateToken)&&astUtils.isClosingParenToken(lastToken)}function containsAssignment(node){if(node.type==="AssignmentExpression"){return true}else if(node.type==="ConditionalExpression"&&(node.consequent.type==="AssignmentExpression"||node.alternate.type==="AssignmentExpression")){return true}else if(node.left&&node.left.type==="AssignmentExpression"||node.right&&node.right.type==="AssignmentExpression"){return true}return false}function isReturnAssignException(node){if(!EXCEPT_RETURN_ASSIGN||!isInReturnStatement(node)){return false}if(node.type==="ReturnStatement"){return node.argument&&containsAssignment(node.argument)}else if(node.type==="ArrowFunctionExpression"&&node.body.type!=="BlockStatement"){return containsAssignment(node.body)}return containsAssignment(node)}function hasExcessParensNoLineTerminator(token,node){if(token.loc.end.line===node.loc.start.line){return hasExcessParens(node)}return hasDoubleExcessParens(node)}function requiresLeadingSpace(node){var leftParenToken=sourceCode.getTokenBefore(node);var tokenBeforeLeftParen=sourceCode.getTokenBefore(node,1);var firstToken=sourceCode.getFirstToken(node);return tokenBeforeLeftParen&&tokenBeforeLeftParen.range[1]===leftParenToken.range[0]&&leftParenToken.range[1]===firstToken.range[0]&&!astUtils.canTokensBeAdjacent(tokenBeforeLeftParen,firstToken)}function requiresTrailingSpace(node){var nextTwoTokens=sourceCode.getTokensAfter(node,{count:2});var rightParenToken=nextTwoTokens[0];var tokenAfterRightParen=nextTwoTokens[1];var tokenBeforeRightParen=sourceCode.getLastToken(node);return rightParenToken&&tokenAfterRightParen&&!sourceCode.isSpaceBetweenTokens(rightParenToken,tokenAfterRightParen)&&!astUtils.canTokensBeAdjacent(tokenBeforeRightParen,tokenAfterRightParen)}function report(node){var leftParenToken=sourceCode.getTokenBefore(node);var rightParenToken=sourceCode.getTokenAfter(node);if(tokensToIgnore.has(sourceCode.getFirstToken(node))&&!isParenthesisedTwice(node)){return}context.report({node:node,loc:leftParenToken.loc.start,message:"Gratuitous parentheses around expression.",fix:function fix(fixer){var parenthesizedSource=sourceCode.text.slice(leftParenToken.range[1],rightParenToken.range[0]);return fixer.replaceTextRange([leftParenToken.range[0],rightParenToken.range[1]],(requiresLeadingSpace(node)?" ":"")+parenthesizedSource+(requiresTrailingSpace(node)?" ":""))}})}function checkUnaryUpdate(node){if(node.type==="UnaryExpression"&&node.argument.type==="BinaryExpression"&&node.argument.operator==="**"){return}if(hasExcessParens(node.argument)&&precedence(node.argument)>=precedence(node)){report(node.argument)}}function checkCallNew(node){if(hasExcessParens(node.callee)&&precedence(node.callee)>=precedence(node)&&!(node.type==="CallExpression"&&(node.callee.type==="FunctionExpression"||node.callee.type==="NewExpression"&&!isNewExpressionWithParens(node.callee))&&!hasDoubleExcessParens(node.callee))){report(node.callee)}if(node.arguments.length===1){if(hasDoubleExcessParens(node.arguments[0])&&precedence(node.arguments[0])>=PRECEDENCE_OF_ASSIGNMENT_EXPR){report(node.arguments[0])}}else{[].forEach.call(node.arguments,function(arg){if(hasExcessParens(arg)&&precedence(arg)>=PRECEDENCE_OF_ASSIGNMENT_EXPR){report(arg)}})}}function checkBinaryLogical(node){var prec=precedence(node);var leftPrecedence=precedence(node.left);var rightPrecedence=precedence(node.right);var isExponentiation=node.operator==="**";var shouldSkipLeft=NESTED_BINARY&&(node.left.type==="BinaryExpression"||node.left.type==="LogicalExpression")||node.left.type==="UnaryExpression"&&isExponentiation;var shouldSkipRight=NESTED_BINARY&&(node.right.type==="BinaryExpression"||node.right.type==="LogicalExpression");if(!shouldSkipLeft&&hasExcessParens(node.left)&&(leftPrecedence>prec||leftPrecedence===prec&&!isExponentiation)){report(node.left)}if(!shouldSkipRight&&hasExcessParens(node.right)&&(rightPrecedence>prec||rightPrecedence===prec&&isExponentiation)){report(node.right)}}function checkClass(node){if(!node.superClass){return}var hasExtraParens=precedence(node.superClass)>PRECEDENCE_OF_UPDATE_EXPR?hasExcessParens(node.superClass):hasDoubleExcessParens(node.superClass);if(hasExtraParens){report(node.superClass)}}function checkSpreadOperator(node){var hasExtraParens=precedence(node.argument)>=PRECEDENCE_OF_ASSIGNMENT_EXPR?hasExcessParens(node.argument):hasDoubleExcessParens(node.argument);if(hasExtraParens){report(node.argument)}}function checkExpressionOrExportStatement(node){var firstToken=isParenthesised(node)?sourceCode.getTokenBefore(node):sourceCode.getFirstToken(node);var secondToken=sourceCode.getTokenAfter(firstToken,astUtils.isNotOpeningParenToken);if(astUtils.isOpeningParenToken(firstToken)&&(astUtils.isOpeningBraceToken(secondToken)||secondToken.type==="Keyword"&&(secondToken.value==="function"||secondToken.value==="class"||secondToken.value==="let"&&astUtils.isOpeningBracketToken(sourceCode.getTokenAfter(secondToken))))){tokensToIgnore.add(secondToken)}if(hasExcessParens(node)){report(node)}}return{ArrayExpression:function ArrayExpression(node){[].forEach.call(node.elements,function(e){if(e&&hasExcessParens(e)&&precedence(e)>=PRECEDENCE_OF_ASSIGNMENT_EXPR){report(e)}})},ArrowFunctionExpression:function ArrowFunctionExpression(node){if(isReturnAssignException(node)){return}if(node.body.type==="ConditionalExpression"&&IGNORE_ARROW_CONDITIONALS&&!isParenthesisedTwice(node.body)){return}if(node.body.type!=="BlockStatement"){var firstBodyToken=sourceCode.getFirstToken(node.body,astUtils.isNotOpeningParenToken);var tokenBeforeFirst=sourceCode.getTokenBefore(firstBodyToken);if(astUtils.isOpeningParenToken(tokenBeforeFirst)&&astUtils.isOpeningBraceToken(firstBodyToken)){tokensToIgnore.add(firstBodyToken)}if(hasExcessParens(node.body)&&precedence(node.body)>=PRECEDENCE_OF_ASSIGNMENT_EXPR){report(node.body)}}},AssignmentExpression:function AssignmentExpression(node){if(isReturnAssignException(node)){return}if(hasExcessParens(node.right)&&precedence(node.right)>=precedence(node)){report(node.right)}},BinaryExpression:checkBinaryLogical,CallExpression:checkCallNew,ConditionalExpression:function ConditionalExpression(node){if(isReturnAssignException(node)){return}if(hasExcessParens(node.test)&&precedence(node.test)>=precedence({type:"LogicalExpression",operator:"||"})){report(node.test)}if(hasExcessParens(node.consequent)&&precedence(node.consequent)>=PRECEDENCE_OF_ASSIGNMENT_EXPR){report(node.consequent)}if(hasExcessParens(node.alternate)&&precedence(node.alternate)>=PRECEDENCE_OF_ASSIGNMENT_EXPR){report(node.alternate)}},DoWhileStatement:function DoWhileStatement(node){if(hasDoubleExcessParens(node.test)&&!isCondAssignException(node)){report(node.test)}},ExportDefaultDeclaration:function ExportDefaultDeclaration(node){return checkExpressionOrExportStatement(node.declaration)},ExpressionStatement:function ExpressionStatement(node){return checkExpressionOrExportStatement(node.expression)},ForInStatement:function ForInStatement(node){if(hasExcessParens(node.right)){report(node.right)}if(hasExcessParens(node.left)){report(node.left)}},ForOfStatement:function ForOfStatement(node){if(hasExcessParens(node.right)){report(node.right)}if(hasExcessParens(node.left)){report(node.left)}},ForStatement:function ForStatement(node){if(node.init&&hasExcessParens(node.init)){report(node.init)}if(node.test&&hasExcessParens(node.test)&&!isCondAssignException(node)){report(node.test)}if(node.update&&hasExcessParens(node.update)){report(node.update)}},IfStatement:function IfStatement(node){if(hasDoubleExcessParens(node.test)&&!isCondAssignException(node)){report(node.test)}},LogicalExpression:checkBinaryLogical,MemberExpression:function MemberExpression(node){if(hasExcessParens(node.object)&&precedence(node.object)>=precedence(node)&&(node.computed||!(astUtils.isDecimalInteger(node.object)||node.object.type==="Literal"&&node.object.regex))){report(node.object)}if(node.computed&&hasExcessParens(node.property)){report(node.property)}},NewExpression:checkCallNew,ObjectExpression:function ObjectExpression(node){[].forEach.call(node.properties,function(e){var v=e.value;if(v&&hasExcessParens(v)&&precedence(v)>=PRECEDENCE_OF_ASSIGNMENT_EXPR){report(v)}})},ReturnStatement:function ReturnStatement(node){var returnToken=sourceCode.getFirstToken(node);if(isReturnAssignException(node)){return}if(node.argument&&hasExcessParensNoLineTerminator(returnToken,node.argument)&&!(node.argument.type==="Literal"&&node.argument.regex)){report(node.argument)}},SequenceExpression:function SequenceExpression(node){[].forEach.call(node.expressions,function(e){if(hasExcessParens(e)&&precedence(e)>=precedence(node)){report(e)}})},SwitchCase:function SwitchCase(node){if(node.test&&hasExcessParens(node.test)){report(node.test)}},SwitchStatement:function SwitchStatement(node){if(hasDoubleExcessParens(node.discriminant)){report(node.discriminant)}},ThrowStatement:function ThrowStatement(node){var throwToken=sourceCode.getFirstToken(node);if(hasExcessParensNoLineTerminator(throwToken,node.argument)){report(node.argument)}},UnaryExpression:checkUnaryUpdate,UpdateExpression:checkUnaryUpdate,AwaitExpression:checkUnaryUpdate,VariableDeclarator:function VariableDeclarator(node){if(node.init&&hasExcessParens(node.init)&&precedence(node.init)>=PRECEDENCE_OF_ASSIGNMENT_EXPR&&!(node.init.type==="Literal"&&node.init.regex)){report(node.init)}},WhileStatement:function WhileStatement(node){if(hasDoubleExcessParens(node.test)&&!isCondAssignException(node)){report(node.test)}},WithStatement:function WithStatement(node){if(hasDoubleExcessParens(node.object)){report(node.object)}},YieldExpression:function YieldExpression(node){if(node.argument){var yieldToken=sourceCode.getFirstToken(node);if(precedence(node.argument)>=precedence(node)&&hasExcessParensNoLineTerminator(yieldToken,node.argument)||hasDoubleExcessParens(node.argument)){report(node.argument)}}},ClassDeclaration:checkClass,ClassExpression:checkClass,SpreadElement:checkSpreadOperator,SpreadProperty:checkSpreadOperator,ExperimentalSpreadProperty:checkSpreadOperator}}}},{"../ast-utils.js":22}],127:[function(require,module,exports){"use strict";var FixTracker=require("../util/fix-tracker");var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"disallow unnecessary semicolons",category:"Possible Errors",recommended:true},fixable:"code",schema:[]},create:function create(context){var sourceCode=context.getSourceCode();function report(nodeOrToken){context.report({node:nodeOrToken,message:"Unnecessary semicolon.",fix:function fix(fixer){return new FixTracker(fixer,context.getSourceCode()).retainSurroundingTokens(nodeOrToken).remove(nodeOrToken)}})}function checkForPartOfClassBody(firstToken){for(var token=firstToken;token.type==="Punctuator"&&!astUtils.isClosingBraceToken(token);token=sourceCode.getTokenAfter(token)){if(astUtils.isSemicolonToken(token)){report(token)}}}return{EmptyStatement:function EmptyStatement(node){var parent=node.parent,allowedParentTypes=["ForStatement","ForInStatement","ForOfStatement","WhileStatement","DoWhileStatement","IfStatement","LabeledStatement","WithStatement"];if(allowedParentTypes.indexOf(parent.type)===-1){report(node)}},ClassBody:function ClassBody(node){checkForPartOfClassBody(sourceCode.getFirstToken(node,1))},MethodDefinition:function MethodDefinition(node){checkForPartOfClassBody(sourceCode.getTokenAfter(node))}}}}},{"../ast-utils":22,"../util/fix-tracker":277}],128:[function(require,module,exports){"use strict";var lodash=require("lodash");var DEFAULT_FALLTHROUGH_COMMENT=/falls?\s?through/i;function hasFallthroughComment(node,context,fallthroughCommentPattern){var sourceCode=context.getSourceCode();var comment=lodash.last(sourceCode.getCommentsBefore(node));return Boolean(comment&&fallthroughCommentPattern.test(comment.value))}function isReachable(segment){return segment.reachable}function hasBlankLinesBetween(node,token){return token.loc.start.line>node.loc.end.line+1}module.exports={meta:{docs:{description:"disallow fallthrough of `case` statements",category:"Best Practices",recommended:true},schema:[{type:"object",properties:{commentPattern:{type:"string"}},additionalProperties:false}]},create:function create(context){var options=context.options[0]||{};var currentCodePath=null;var sourceCode=context.getSourceCode();var fallthroughCase=null;var fallthroughCommentPattern=null;if(options.commentPattern){fallthroughCommentPattern=new RegExp(options.commentPattern)}else{fallthroughCommentPattern=DEFAULT_FALLTHROUGH_COMMENT}return{onCodePathStart:function onCodePathStart(codePath){currentCodePath=codePath},onCodePathEnd:function onCodePathEnd(){currentCodePath=currentCodePath.upper},SwitchCase:function SwitchCase(node){if(fallthroughCase&&!hasFallthroughComment(node,context,fallthroughCommentPattern)){context.report({message:"Expected a 'break' statement before '{{type}}'.",data:{type:node.test?"case":"default"},node:node})}fallthroughCase=null},"SwitchCase:exit":function SwitchCaseExit(node){var nextToken=sourceCode.getTokenAfter(node);if(currentCodePath.currentSegments.some(isReachable)&&(node.consequent.length>0||hasBlankLinesBetween(node,nextToken))&&lodash.last(node.parent.cases)!==node){fallthroughCase=node}}}}}},{lodash:16}],129:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"disallow leading or trailing decimal points in numeric literals",category:"Best Practices",recommended:false},schema:[],fixable:"code"},create:function create(context){var sourceCode=context.getSourceCode();return{Literal:function Literal(node){if(typeof node.value==="number"){if(node.raw.startsWith(".")){context.report({node:node,message:"A leading decimal point can be confused with a dot.",fix:function fix(fixer){var tokenBefore=sourceCode.getTokenBefore(node);var needsSpaceBefore=tokenBefore&&tokenBefore.range[1]===node.range[0]&&!astUtils.canTokensBeAdjacent(tokenBefore,"0"+node.raw);return fixer.insertTextBefore(node,needsSpaceBefore?" 0":"0")}})}if(node.raw.indexOf(".")===node.raw.length-1){context.report({node:node,message:"A trailing decimal point can be confused with a dot.",fix:function fix(fixer){return fixer.insertTextAfter(node,"0")}})}}}}}}},{"../ast-utils":22}],130:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"disallow reassigning `function` declarations",category:"Possible Errors",recommended:true},schema:[]},create:function create(context){function checkReference(references){astUtils.getModifyingReferences(references).forEach(function(reference){context.report({node:reference.identifier,message:"'{{name}}' is a function.",data:{name:reference.identifier.name}})})}function checkVariable(variable){if(variable.defs[0].type==="FunctionName"){checkReference(variable.references)}}function checkForFunction(node){context.getDeclaredVariables(node).forEach(checkVariable)}return{FunctionDeclaration:checkForFunction,FunctionExpression:checkForFunction}}}},{"../ast-utils":22}],131:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow assignments to native objects or read-only global variables",category:"Best Practices",recommended:true},schema:[{type:"object",properties:{exceptions:{type:"array",items:{type:"string"},uniqueItems:true}},additionalProperties:false}]},create:function create(context){var config=context.options[0];var exceptions=config&&config.exceptions||[];function checkReference(reference,index,references){var identifier=reference.identifier;if(reference.init===false&&reference.isWrite()&&(index===0||references[index-1].identifier!==identifier)){context.report({node:identifier,message:"Read-only global '{{name}}' should not be modified.",data:identifier})}}function checkVariable(variable){if(variable.writeable===false&&exceptions.indexOf(variable.name)===-1){variable.references.forEach(checkReference)}}return{Program:function Program(){var globalScope=context.getScope();globalScope.variables.forEach(checkVariable)}}}}},{}],132:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");var INDEX_OF_PATTERN=/^(?:i|lastI)ndexOf$/;var ALLOWABLE_OPERATORS=["~","!!","+","*"];function parseOptions(options){options=options||{};return{boolean:"boolean"in options?Boolean(options.boolean):true,number:"number"in options?Boolean(options.number):true,string:"string"in options?Boolean(options.string):true,allow:options.allow||[]}}function isDoubleLogicalNegating(node){return node.operator==="!"&&node.argument.type==="UnaryExpression"&&node.argument.operator==="!"}function isBinaryNegatingOfIndexOf(node){return node.operator==="~"&&node.argument.type==="CallExpression"&&node.argument.callee.type==="MemberExpression"&&node.argument.callee.property.type==="Identifier"&&INDEX_OF_PATTERN.test(node.argument.callee.property.name)}function isMultiplyByOne(node){return node.operator==="*"&&(node.left.type==="Literal"&&node.left.value===1||node.right.type==="Literal"&&node.right.value===1)}function isNumeric(node){return node.type==="Literal"&&typeof node.value==="number"||node.type==="CallExpression"&&(node.callee.name==="Number"||node.callee.name==="parseInt"||node.callee.name==="parseFloat")}function getNonNumericOperand(node){var left=node.left,right=node.right;if(right.type!=="BinaryExpression"&&!isNumeric(right)){return right}if(left.type!=="BinaryExpression"&&!isNumeric(left)){return left}return null}function isEmptyString(node){return astUtils.isStringLiteral(node)&&(node.value===""||node.type==="TemplateLiteral"&&node.quasis.length===1&&node.quasis[0].value.cooked==="")}function isConcatWithEmptyString(node){return node.operator==="+"&&(isEmptyString(node.left)&&!astUtils.isStringLiteral(node.right)||isEmptyString(node.right)&&!astUtils.isStringLiteral(node.left))}function isAppendEmptyString(node){return node.operator==="+="&&isEmptyString(node.right)}function getNonEmptyOperand(node){return isEmptyString(node.left)?node.right:node.left}module.exports={meta:{docs:{description:"disallow shorthand type conversions",category:"Best Practices",recommended:false},fixable:"code",schema:[{type:"object",properties:{boolean:{type:"boolean"},number:{type:"boolean"},string:{type:"boolean"},allow:{type:"array",items:{enum:ALLOWABLE_OPERATORS},uniqueItems:true}},additionalProperties:false}]},create:function create(context){var options=parseOptions(context.options[0]);var sourceCode=context.getSourceCode();function report(node,recommendation,shouldFix){shouldFix=typeof shouldFix==="undefined"?true:shouldFix;context.report({node:node,message:"use `{{recommendation}}` instead.",data:{recommendation:recommendation},fix:function fix(fixer){if(!shouldFix){return null}var tokenBefore=sourceCode.getTokenBefore(node);if(tokenBefore&&tokenBefore.range[1]===node.range[0]&&!astUtils.canTokensBeAdjacent(tokenBefore,recommendation)){return fixer.replaceText(node," "+recommendation)}return fixer.replaceText(node,recommendation)}})}return{UnaryExpression:function UnaryExpression(node){var operatorAllowed=void 0;operatorAllowed=options.allow.indexOf("!!")>=0;if(!operatorAllowed&&options.boolean&&isDoubleLogicalNegating(node)){var recommendation="Boolean("+sourceCode.getText(node.argument.argument)+")";report(node,recommendation)}operatorAllowed=options.allow.indexOf("~")>=0;if(!operatorAllowed&&options.boolean&&isBinaryNegatingOfIndexOf(node)){var _recommendation=sourceCode.getText(node.argument)+" !== -1";report(node,_recommendation,false)}operatorAllowed=options.allow.indexOf("+")>=0;if(!operatorAllowed&&options.number&&node.operator==="+"&&!isNumeric(node.argument)){var _recommendation2="Number("+sourceCode.getText(node.argument)+")";report(node,_recommendation2)}},"BinaryExpression:exit":function BinaryExpressionExit(node){var operatorAllowed=void 0;operatorAllowed=options.allow.indexOf("*")>=0;var nonNumericOperand=!operatorAllowed&&options.number&&isMultiplyByOne(node)&&getNonNumericOperand(node);if(nonNumericOperand){var recommendation="Number("+sourceCode.getText(nonNumericOperand)+")";report(node,recommendation)}operatorAllowed=options.allow.indexOf("+")>=0;if(!operatorAllowed&&options.string&&isConcatWithEmptyString(node)){var _recommendation3="String("+sourceCode.getText(getNonEmptyOperand(node))+")";report(node,_recommendation3)}},AssignmentExpression:function AssignmentExpression(node){var operatorAllowed=options.allow.indexOf("+")>=0;if(!operatorAllowed&&options.string&&isAppendEmptyString(node)){var code=sourceCode.getText(getNonEmptyOperand(node));var recommendation=code+" = String("+code+")";report(node,recommendation)}}}}}},{"../ast-utils":22}],133:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow variable and `function` declarations in the global scope",category:"Best Practices",recommended:false},schema:[]},create:function create(context){return{Program:function Program(){var scope=context.getScope();scope.variables.forEach(function(variable){if(variable.writeable){return}variable.defs.forEach(function(def){if(def.type==="FunctionName"||def.type==="Variable"&&def.parent.kind==="var"){context.report({node:def.node,message:"Implicit global variable, assign as global property instead."})}})});scope.implicit.variables.forEach(function(variable){var scopeVariable=scope.set.get(variable.name);if(scopeVariable&&scopeVariable.writeable){return}variable.defs.forEach(function(def){context.report({node:def.node,message:"Implicit global variable, assign as global property instead."})})})}}}}},{}],134:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow the use of `eval()`-like methods",category:"Best Practices",recommended:false},schema:[]},create:function create(context){var CALLEE_RE=/^(setTimeout|setInterval|execScript)$/;var impliedEvalAncestorsStack=[];function last(arr){return arr?arr[arr.length-1]:null}function isImpliedEvalMemberExpression(node){var object=node.object,property=node.property,hasImpliedEvalName=CALLEE_RE.test(property.name)||CALLEE_RE.test(property.value);return object.name==="window"&&hasImpliedEvalName}function isImpliedEvalCallExpression(node){var isMemberExpression=node.callee.type==="MemberExpression",isIdentifier=node.callee.type==="Identifier",isImpliedEvalCallee=isIdentifier&&CALLEE_RE.test(node.callee.name)||isMemberExpression&&isImpliedEvalMemberExpression(node.callee);return isImpliedEvalCallee&&node.arguments.length}function hasImpliedEvalParent(node){return node.parent===last(last(impliedEvalAncestorsStack))&&(node.parent.type!=="CallExpression"||node===node.parent.arguments[0])}function checkString(node){if(hasImpliedEvalParent(node)){var substack=impliedEvalAncestorsStack.pop();context.report({node:substack[0],message:"Implied eval. Consider passing a function instead of a string."})}}return{CallExpression:function CallExpression(node){if(isImpliedEvalCallExpression(node)){impliedEvalAncestorsStack.push([node])}},"CallExpression:exit":function CallExpressionExit(node){if(node===last(last(impliedEvalAncestorsStack))){impliedEvalAncestorsStack.pop()}},BinaryExpression:function BinaryExpression(node){if(node.operator==="+"&&hasImpliedEvalParent(node)){last(impliedEvalAncestorsStack).push(node)}},"BinaryExpression:exit":function BinaryExpressionExit(node){if(node===last(last(impliedEvalAncestorsStack))){last(impliedEvalAncestorsStack).pop()}},Literal:function Literal(node){if(typeof node.value==="string"){checkString(node)}},TemplateLiteral:function TemplateLiteral(node){checkString(node)}}}}},{}],135:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"disallow inline comments after code",category:"Stylistic Issues",recommended:false},schema:[]},create:function create(context){var sourceCode=context.getSourceCode();function testCodeAroundComment(node){var startLine=String(sourceCode.lines[node.loc.start.line-1]);var endLine=String(sourceCode.lines[node.loc.end.line-1]);var preamble=startLine.slice(0,node.loc.start.column).trim();var postamble=endLine.slice(node.loc.end.column).trim();var isDirective=astUtils.isDirectiveComment(node);if(!isDirective&&(preamble||postamble)){context.report({node:node,message:"Unexpected comment inline with code."})}}return{Program:function Program(){var comments=sourceCode.getAllComments();comments.filter(function(token){return token.type!=="Shebang"}).forEach(testCodeAroundComment)}}}}},{"../ast-utils":22}],136:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow variable or `function` declarations in nested blocks",category:"Possible Errors",recommended:true},schema:[{enum:["functions","both"]}]},create:function create(context){function nearestBody(){var ancestors=context.getAncestors();var ancestor=ancestors.pop(),generation=1;while(ancestor&&["Program","FunctionDeclaration","FunctionExpression","ArrowFunctionExpression"].indexOf(ancestor.type)<0){generation+=1;ancestor=ancestors.pop()}return{type:ancestor.type,distance:generation}}function check(node){var body=nearestBody(),valid=body.type==="Program"&&body.distance===1||body.distance===2;if(!valid){context.report({node:node,message:"Move {{type}} declaration to {{body}} root.",data:{type:node.type==="FunctionDeclaration"?"function":"variable",body:body.type==="Program"?"program":"function body"}})}}return{FunctionDeclaration:check,VariableDeclaration:function VariableDeclaration(node){if(context.options[0]==="both"&&node.kind==="var"){check(node)}}}}}},{}],137:[function(require,module,exports){"use strict";var espree=require("espree");module.exports={meta:{docs:{description:"disallow invalid regular expression strings in `RegExp` constructors",category:"Possible Errors",recommended:true},schema:[{type:"object",properties:{allowConstructorFlags:{type:"array",items:{type:"string"}}},additionalProperties:false}]},create:function create(context){var options=context.options[0];var allowedFlags="";if(options&&options.allowConstructorFlags){allowedFlags=options.allowConstructorFlags.join("")}function isString(node){return node&&node.type==="Literal"&&typeof node.value==="string"}function check(node){if(node.callee.type==="Identifier"&&node.callee.name==="RegExp"&&isString(node.arguments[0])){var flags=isString(node.arguments[1])?node.arguments[1].value:"";if(allowedFlags){flags=flags.replace(new RegExp("["+allowedFlags+"]","gi"),"")}try{void new RegExp(node.arguments[0].value)}catch(e){context.report({node:node,message:"{{message}}.",data:e})}if(flags){try{espree.parse("/./"+flags,context.parserOptions)}catch(ex){context.report({node:node,message:"Invalid flags supplied to RegExp constructor '{{flags}}'.",data:{flags:flags}})}}}}return{CallExpression:check,NewExpression:check}}}},{espree:"espree"}],138:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"disallow `this` keywords outside of classes or class-like objects",category:"Best Practices",recommended:false},schema:[]},create:function create(context){var stack=[],sourceCode=context.getSourceCode();stack.getCurrent=function(){var current=this[this.length-1];if(!current.init){current.init=true;current.valid=!astUtils.isDefaultThisBinding(current.node,sourceCode)}return current};function enterFunction(node){stack.push({init:!context.getScope().isStrict,node:node,valid:true})}function exitFunction(){stack.pop()}return{Program:function Program(node){var scope=context.getScope(),features=context.parserOptions.ecmaFeatures||{};stack.push({init:true,node:node,valid:!(scope.isStrict||node.sourceType==="module"||features.globalReturn&&scope.childScopes[0].isStrict)})},"Program:exit":function ProgramExit(){stack.pop()},FunctionDeclaration:enterFunction,"FunctionDeclaration:exit":exitFunction,FunctionExpression:enterFunction,"FunctionExpression:exit":exitFunction,ThisExpression:function ThisExpression(node){var current=stack.getCurrent();if(current&&!current.valid){context.report({node:node,message:"Unexpected 'this'."})}}}}}},{"../ast-utils":22}],139:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");var ALL_IRREGULARS=/[\f\v\u0085\ufeff\u00a0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u202f\u205f\u3000\u2028\u2029]/;var IRREGULAR_WHITESPACE=/[\f\v\u0085\ufeff\u00a0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u202f\u205f\u3000]+/gm;var IRREGULAR_LINE_TERMINATORS=/[\u2028\u2029]/gm;var LINE_BREAK=astUtils.createGlobalLinebreakMatcher();module.exports={meta:{docs:{description:"disallow irregular whitespace outside of strings and comments",category:"Possible Errors",recommended:true},schema:[{type:"object",properties:{skipComments:{type:"boolean"},skipStrings:{type:"boolean"},skipTemplates:{type:"boolean"},skipRegExps:{type:"boolean"}},additionalProperties:false}]},create:function create(context){var errors=[];var options=context.options[0]||{};var skipComments=!!options.skipComments;var skipStrings=options.skipStrings!==false;var skipRegExps=!!options.skipRegExps;var skipTemplates=!!options.skipTemplates;var sourceCode=context.getSourceCode();var commentNodes=sourceCode.getAllComments();function removeWhitespaceError(node){var locStart=node.loc.start;var locEnd=node.loc.end;errors=errors.filter(function(error){var errorLoc=error[1];if(errorLoc.line>=locStart.line&&errorLoc.line<=locEnd.line){if(errorLoc.column>=locStart.column&&(errorLoc.column<=locEnd.column||errorLoc.line=6){ruleDef={BlockStatement:function BlockStatement(node){if(isLoneBlock(node)){loneBlocks.push(node)}},"BlockStatement:exit":function BlockStatementExit(node){if(loneBlocks.length>0&&loneBlocks[loneBlocks.length-1]===node){loneBlocks.pop();report(node)}}};ruleDef.VariableDeclaration=function(node){if(node.kind==="let"||node.kind==="const"){markLoneBlock()}};ruleDef.FunctionDeclaration=function(){if(context.getScope().isStrict){markLoneBlock()}};ruleDef.ClassDeclaration=markLoneBlock}return ruleDef}}},{}],144:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow `if` statements as the only statement in `else` blocks",category:"Stylistic Issues",recommended:false},schema:[],fixable:"code"},create:function create(context){var sourceCode=context.getSourceCode();return{IfStatement:function IfStatement(node){var ancestors=context.getAncestors(),parent=ancestors.pop(),grandparent=ancestors.pop();if(parent&&parent.type==="BlockStatement"&&parent.body.length===1&&grandparent&&grandparent.type==="IfStatement"&&parent===grandparent.alternate){context.report({node:node,message:"Unexpected if as the only statement in an else block.",fix:function fix(fixer){var openingElseCurly=sourceCode.getFirstToken(parent);var closingElseCurly=sourceCode.getLastToken(parent);var elseKeyword=sourceCode.getTokenBefore(openingElseCurly);var tokenAfterElseBlock=sourceCode.getTokenAfter(closingElseCurly);var lastIfToken=sourceCode.getLastToken(node.consequent);var sourceText=sourceCode.getText();if(sourceText.slice(openingElseCurly.range[1],node.range[0]).trim()||sourceText.slice(node.range[1],closingElseCurly.range[0]).trim()){return null}if(node.consequent.type!=="BlockStatement"&&lastIfToken.value!==";"&&tokenAfterElseBlock&&(node.consequent.loc.end.line===tokenAfterElseBlock.loc.start.line||/^[([/+`-]/.test(tokenAfterElseBlock.value)||lastIfToken.value==="++"||lastIfToken.value==="--")){return null}return fixer.replaceTextRange([openingElseCurly.range[0],closingElseCurly.range[1]],(elseKeyword.range[1]===openingElseCurly.range[0]?" ":"")+sourceCode.getText(node))}})}}}}}},{}],145:[function(require,module,exports){"use strict";function getContainingLoopNode(node){var parent=node.parent;while(parent){switch(parent.type){case"WhileStatement":case"DoWhileStatement":return parent;case"ForStatement":if(parent.init!==node){return parent}break;case"ForInStatement":case"ForOfStatement":if(parent.right!==node){return parent}break;case"ArrowFunctionExpression":case"FunctionExpression":case"FunctionDeclaration":return null;default:break}node=parent;parent=node.parent}return null}function getTopLoopNode(node,excludedNode){var retv=node;var border=excludedNode?excludedNode.range[1]:0;while(node&&node.range[0]>=border){retv=node;node=getContainingLoopNode(node)}return retv}function isSafe(funcNode,loopNode,reference){var variable=reference.resolved;var definition=variable&&variable.defs[0];var declaration=definition&&definition.parent;var kind=declaration&&declaration.type==="VariableDeclaration"?declaration.kind:"";if(kind==="const"){return true}if(kind==="let"&&declaration.range[0]>loopNode.range[0]&&declaration.range[1]0&&!references.every(isSafe.bind(null,node,loopNode))){context.report({node:node,message:"Don't make functions within a loop."})}}return{ArrowFunctionExpression:checkForLoops,FunctionExpression:checkForLoops,FunctionDeclaration:checkForLoops}}}},{}],146:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow magic numbers",category:"Best Practices",recommended:false},schema:[{type:"object",properties:{detectObjects:{type:"boolean"},enforceConst:{type:"boolean"},ignore:{type:"array",items:{type:"number"},uniqueItems:true},ignoreArrayIndexes:{type:"boolean"}},additionalProperties:false}]},create:function create(context){var config=context.options[0]||{},detectObjects=!!config.detectObjects,enforceConst=!!config.enforceConst,ignore=config.ignore||[],ignoreArrayIndexes=!!config.ignoreArrayIndexes;function isNumber(node){return typeof node.value==="number"}function shouldIgnoreNumber(num){return ignore.indexOf(num)!==-1}function shouldIgnoreParseInt(parent,node){return parent.type==="CallExpression"&&node===parent.arguments[1]&&(parent.callee.name==="parseInt"||parent.callee.type==="MemberExpression"&&parent.callee.object.name==="Number"&&parent.callee.property.name==="parseInt")}function shouldIgnoreJSXNumbers(parent){return parent.type.indexOf("JSX")===0}function shouldIgnoreArrayIndexes(parent){return parent.type==="MemberExpression"&&ignoreArrayIndexes}return{Literal:function Literal(node){var parent=node.parent,value=node.value,raw=node.raw;var okTypes=detectObjects?[]:["ObjectExpression","Property","AssignmentExpression"];if(!isNumber(node)){return}if(parent.type==="UnaryExpression"&&parent.operator==="-"){node=parent;parent=node.parent;value=-value;raw="-"+raw}if(shouldIgnoreNumber(value)||shouldIgnoreParseInt(parent,node)||shouldIgnoreArrayIndexes(parent)||shouldIgnoreJSXNumbers(parent)){return}if(parent.type==="VariableDeclarator"){if(enforceConst&&parent.parent.kind!=="const"){context.report({node:node,message:"Number constants declarations must use 'const'."})}}else if(okTypes.indexOf(parent.type)===-1||parent.type==="AssignmentExpression"&&parent.left.type==="Identifier"){context.report({node:node,message:"No magic number: {{raw}}.",data:{raw:raw}})}}}}}},{}],147:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils.js");var ARITHMETIC_OPERATORS=["+","-","*","/","%","**"];var BITWISE_OPERATORS=["&","|","^","~","<<",">>",">>>"];var COMPARISON_OPERATORS=["==","!=","===","!==",">",">=","<","<="];var LOGICAL_OPERATORS=["&&","||"];var RELATIONAL_OPERATORS=["in","instanceof"];var ALL_OPERATORS=[].concat(ARITHMETIC_OPERATORS,BITWISE_OPERATORS,COMPARISON_OPERATORS,LOGICAL_OPERATORS,RELATIONAL_OPERATORS);var DEFAULT_GROUPS=[ARITHMETIC_OPERATORS,BITWISE_OPERATORS,COMPARISON_OPERATORS,LOGICAL_OPERATORS,RELATIONAL_OPERATORS];var TARGET_NODE_TYPE=/^(?:Binary|Logical)Expression$/;function normalizeOptions(options){var hasGroups=options&&options.groups&&options.groups.length>0;var groups=hasGroups?options.groups:DEFAULT_GROUPS;var allowSamePrecedence=(options&&options.allowSamePrecedence)!==false;return{groups:groups,allowSamePrecedence:allowSamePrecedence}}function includesBothInAGroup(groups,left,right){return groups.some(function(group){return group.indexOf(left)!==-1&&group.indexOf(right)!==-1})}module.exports={meta:{docs:{description:"disallow mixed binary operators",category:"Stylistic Issues",recommended:false},schema:[{type:"object",properties:{groups:{type:"array",items:{type:"array",items:{enum:ALL_OPERATORS},minItems:2,uniqueItems:true},uniqueItems:true},allowSamePrecedence:{type:"boolean"}},additionalProperties:false}]},create:function create(context){var sourceCode=context.getSourceCode();var options=normalizeOptions(context.options[0]);function shouldIgnore(node){var a=node;var b=node.parent;return!includesBothInAGroup(options.groups,a.operator,b.operator)||options.allowSamePrecedence&&astUtils.getPrecedence(a)===astUtils.getPrecedence(b)}function isMixedWithParent(node){return node.operator!==node.parent.operator&&!astUtils.isParenthesised(sourceCode,node)}function getOperatorToken(node){return sourceCode.getTokenAfter(node.left,astUtils.isNotClosingParenToken)}function reportBothOperators(node){var parent=node.parent;var left=parent.left===node?node:parent;var right=parent.left!==node?node:parent;var message="Unexpected mix of '{{leftOperator}}' and '{{rightOperator}}'.";var data={leftOperator:left.operator,rightOperator:right.operator};context.report({node:left,loc:getOperatorToken(left).loc.start,message:message,data:data});context.report({node:right,loc:getOperatorToken(right).loc.start,message:message,data:data})}function check(node){if(TARGET_NODE_TYPE.test(node.parent.type)&&isMixedWithParent(node)&&!shouldIgnore(node)){reportBothOperators(node)}}return{BinaryExpression:check,LogicalExpression:check}}}},{"../ast-utils.js":22}],148:[function(require,module,exports){"use strict";var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj};module.exports={meta:{docs:{description:"disallow `require` calls to be mixed with regular variable declarations",category:"Node.js and CommonJS",recommended:false},schema:[{oneOf:[{type:"boolean"},{type:"object",properties:{grouping:{type:"boolean"},allowCall:{type:"boolean"}},additionalProperties:false}]}]},create:function create(context){var options=context.options[0];var grouping=false,allowCall=false;if((typeof options==="undefined"?"undefined":_typeof(options))==="object"){grouping=options.grouping;allowCall=options.allowCall}else{grouping=!!options}function getBuiltinModules(){return["assert","buffer","child_process","cluster","crypto","dgram","dns","domain","events","fs","http","https","net","os","path","punycode","querystring","readline","repl","smalloc","stream","string_decoder","tls","tty","url","util","v8","vm","zlib"]}var BUILTIN_MODULES=getBuiltinModules();var DECL_REQUIRE="require",DECL_UNINITIALIZED="uninitialized",DECL_OTHER="other";var REQ_CORE="core",REQ_FILE="file",REQ_MODULE="module",REQ_COMPUTED="computed";function getDeclarationType(initExpression){if(!initExpression){return DECL_UNINITIALIZED}if(initExpression.type==="CallExpression"&&initExpression.callee.type==="Identifier"&&initExpression.callee.name==="require"){return DECL_REQUIRE}else if(allowCall&&initExpression.type==="CallExpression"&&initExpression.callee.type==="CallExpression"){return getDeclarationType(initExpression.callee)}else if(initExpression.type==="MemberExpression"){return getDeclarationType(initExpression.object)}return DECL_OTHER}function inferModuleType(initExpression){if(initExpression.type==="MemberExpression"){return inferModuleType(initExpression.object)}else if(initExpression.arguments.length===0){return REQ_COMPUTED}var arg=initExpression.arguments[0];if(arg.type!=="Literal"||typeof arg.value!=="string"){return REQ_COMPUTED}if(BUILTIN_MODULES.indexOf(arg.value)!==-1){return REQ_CORE}else if(/^\.{0,2}\//.test(arg.value)){return REQ_FILE}return REQ_MODULE}function isMixed(declarations){var contains={};declarations.forEach(function(declaration){var type=getDeclarationType(declaration.init);contains[type]=true});return!!(contains[DECL_REQUIRE]&&(contains[DECL_UNINITIALIZED]||contains[DECL_OTHER]))}function isGrouped(declarations){var found={};declarations.forEach(function(declaration){if(getDeclarationType(declaration.init)===DECL_REQUIRE){found[inferModuleType(declaration.init)]=true}});return Object.keys(found).length<=1}return{VariableDeclaration:function VariableDeclaration(node){if(isMixed(node.declarations)){context.report({node:node,message:"Do not mix 'require' and other declarations."})}else if(grouping&&!isGrouped(node.declarations)){context.report({node:node,message:"Do not mix core, module, file and computed requires."})}}}}}},{}],149:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow mixed spaces and tabs for indentation",category:"Stylistic Issues",recommended:true},schema:[{enum:["smart-tabs",true,false]}]},create:function create(context){var sourceCode=context.getSourceCode();var smartTabs=void 0;var ignoredLocs=[];switch(context.options[0]){case true:case"smart-tabs":smartTabs=true;break;default:smartTabs=false}function beforeLoc(loc,line,column){if(lineloc.end.line){return true}return line===loc.end.line&&column>loc.end.column}return{TemplateElement:function TemplateElement(node){ignoredLocs.push(node.loc)},"Program:exit":function ProgramExit(node){var regex=/^(?=[\t ]*(\t | \t))/;var lines=sourceCode.lines,comments=sourceCode.getAllComments();comments.forEach(function(comment){ignoredLocs.push(comment.loc)});ignoredLocs.sort(function(first,second){if(beforeLoc(first,second.start.line,second.start.column)){return 1}if(beforeLoc(second,first.start.line,second.start.column)){return-1}return 0});if(smartTabs){regex=/^(?=[\t ]* \t)/}lines.forEach(function(line,i){var match=regex.exec(line);if(match){var lineNumber=i+1,column=match.index+1;for(var j=0;j0}function isLastTokenOfLine(token){var nextToken=sourceCode.getTokenAfter(token,{includeComments:true});if(!nextToken){return true}return!astUtils.isTokenOnSameLine(token,nextToken)}function isIndexInComment(index,comments){while(lastCommentIndexcomment.range[1]){lastCommentIndex++}else{break}}return false}function formatReportedCommentValue(token){var valueLines=token.value.split("\n");var value=valueLines[0];var formattedValue=value.substring(0,12)+"...";return valueLines.length===1&&value.length<=12?value:formattedValue}function createFix(leftToken,rightToken){return function(fixer){return fixer.replaceTextRange([leftToken.range[1],rightToken.range[0]]," ")}}return{Program:function Program(){var source=sourceCode.getText(),allComments=sourceCode.getAllComments(),pattern=/[^\s].*? {2,}/g;var parent=void 0;while(pattern.test(source)){if(!isIndexInComment(pattern.lastIndex,allComments)){var token=sourceCode.getTokenByRangeStart(pattern.lastIndex,{includeComments:true});if(token){if(ignoreEOLComments&&astUtils.isCommentToken(token)&&isLastTokenOfLine(token)){return}var previousToken=sourceCode.getTokenBefore(token,{includeComments:true});if(hasExceptions){parent=sourceCode.getNodeByRangeIndex(pattern.lastIndex-1)}if(!parent||!exceptions[parent.type]){var value=token.value;if(token.type==="Block"){value="/*"+formatReportedCommentValue(token)+"*/"}else if(token.type==="Line"){value="//"+formatReportedCommentValue(token)}context.report({node:token,loc:token.loc.start,message:"Multiple spaces found before '{{value}}'.",data:{value:value},fix:createFix(previousToken,token)})}}}}}}}}},{"../ast-utils":22}],152:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"disallow multiline strings",category:"Best Practices",recommended:false},schema:[]},create:function create(context){function isJSXElement(node){return node.type.indexOf("JSX")===0}return{Literal:function Literal(node){if(astUtils.LINEBREAK_MATCHER.test(node.raw)&&!isJSXElement(node.parent)){context.report({node:node,message:"Multiline support is limited to browsers supporting ES5 only."})}}}}}},{"../ast-utils":22}],153:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow multiple empty lines",category:"Stylistic Issues",recommended:false},fixable:"whitespace",schema:[{type:"object",properties:{max:{type:"integer",minimum:0},maxEOF:{type:"integer",minimum:0},maxBOF:{type:"integer",minimum:0}},required:["max"],additionalProperties:false}]},create:function create(context){var max=2,maxEOF=max,maxBOF=max;if(context.options.length){max=context.options[0].max;maxEOF=typeof context.options[0].maxEOF!=="undefined"?context.options[0].maxEOF:max;maxBOF=typeof context.options[0].maxBOF!=="undefined"?context.options[0].maxBOF:max}var sourceCode=context.getSourceCode();var allLines=sourceCode.lines[sourceCode.lines.length-1]===""?sourceCode.lines.slice(0,-1):sourceCode.lines;var templateLiteralLines=new Set;return{TemplateLiteral:function TemplateLiteral(node){node.quasis.forEach(function(literalPart){for(var ignoredLine=literalPart.loc.start.line;ignoredLinemaxAllowed){context.report({node:node,loc:{start:{line:lastLineNumber+1,column:0},end:{line:lineNumber,column:0}},message:message,data:{max:maxAllowed,pluralizedLines:maxAllowed===1?"line":"lines"},fix:function fix(fixer){var rangeStart=sourceCode.getIndexFromLoc({line:lastLineNumber+1,column:0});var lineNumberAfterRemovedLines=lineNumber-maxAllowed;var rangeEnd=lineNumberAfterRemovedLines<=allLines.length?sourceCode.getIndexFromLoc({line:lineNumberAfterRemovedLines,column:0}):sourceCode.text.length;return fixer.removeRange([rangeStart,rangeEnd])}})}return lineNumber},0)}}}}},{}],154:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow assignments to native objects or read-only global variables",category:"Best Practices",recommended:false,replacedBy:["no-global-assign"]},deprecated:true,schema:[{type:"object",properties:{exceptions:{type:"array",items:{type:"string"},uniqueItems:true}},additionalProperties:false}]},create:function create(context){var config=context.options[0];var exceptions=config&&config.exceptions||[];function checkReference(reference,index,references){var identifier=reference.identifier;if(reference.init===false&&reference.isWrite()&&(index===0||references[index-1].identifier!==identifier)){context.report({node:identifier,message:"Read-only global '{{name}}' should not be modified.",data:identifier})}}function checkVariable(variable){if(variable.writeable===false&&exceptions.indexOf(variable.name)===-1){variable.references.forEach(checkReference)}}return{Program:function Program(){var globalScope=context.getScope();globalScope.variables.forEach(checkVariable)}}}}},{}],155:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow negated conditions",category:"Stylistic Issues",recommended:false},schema:[]},create:function create(context){function hasElseWithoutCondition(node){return node.alternate&&node.alternate.type!=="IfStatement"}function isNegatedUnaryExpression(test){return test.type==="UnaryExpression"&&test.operator==="!"}function isNegatedBinaryExpression(test){return test.type==="BinaryExpression"&&(test.operator==="!="||test.operator==="!==")}function isNegatedIf(node){return isNegatedUnaryExpression(node.test)||isNegatedBinaryExpression(node.test)}return{IfStatement:function IfStatement(node){if(!hasElseWithoutCondition(node)){return}if(isNegatedIf(node)){context.report({node:node,message:"Unexpected negated condition."})}},ConditionalExpression:function ConditionalExpression(node){if(isNegatedIf(node)){context.report({node:node,message:"Unexpected negated condition."})}}}}}},{}],156:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow negating the left operand in `in` expressions",category:"Possible Errors",recommended:false,replacedBy:["no-unsafe-negation"]},deprecated:true,schema:[]},create:function create(context){return{BinaryExpression:function BinaryExpression(node){if(node.operator==="in"&&node.left.type==="UnaryExpression"&&node.left.operator==="!"){context.report({node:node,message:"The 'in' expression's left operand is negated."})}}}}}},{}],157:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow nested ternary expressions",category:"Stylistic Issues",recommended:false},schema:[]},create:function create(context){return{ConditionalExpression:function ConditionalExpression(node){if(node.alternate.type==="ConditionalExpression"||node.consequent.type==="ConditionalExpression"){context.report({node:node,message:"Do not nest ternary expressions."})}}}}}},{}],158:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow `new` operators with the `Function` object",category:"Best Practices",recommended:false},schema:[]},create:function create(context){function report(node){context.report({node:node,message:"The Function constructor is eval."})}return{"NewExpression[callee.name = 'Function']":report,"CallExpression[callee.name = 'Function']":report}}}},{}],159:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow `Object` constructors",category:"Stylistic Issues",recommended:false},schema:[]},create:function create(context){return{NewExpression:function NewExpression(node){if(node.callee.name==="Object"){context.report({node:node,message:"The object literal notation {} is preferrable."})}}}}}},{}],160:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow `new` operators with calls to `require`",category:"Node.js and CommonJS",recommended:false},schema:[]},create:function create(context){return{NewExpression:function NewExpression(node){if(node.callee.type==="Identifier"&&node.callee.name==="require"){context.report({node:node,message:"Unexpected use of new with require."})}}}}}},{}],161:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow `new` operators with the `Symbol` object",category:"ECMAScript 6",recommended:true},schema:[]},create:function create(context){return{"Program:exit":function ProgramExit(){var globalScope=context.getScope();var variable=globalScope.set.get("Symbol");if(variable&&variable.defs.length===0){variable.references.forEach(function(ref){var node=ref.identifier;if(node.parent&&node.parent.type==="NewExpression"){context.report({node:node,message:"`Symbol` cannot be called as a constructor."})}})}}}}}},{}],162:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow `new` operators with the `String`, `Number`, and `Boolean` objects",category:"Best Practices",recommended:false},schema:[]},create:function create(context){return{NewExpression:function NewExpression(node){var wrapperObjects=["String","Number","Boolean","Math","JSON"];if(wrapperObjects.indexOf(node.callee.name)>-1){context.report({node:node,message:"Do not use {{fn}} as a constructor.",data:{fn:node.callee.name}})}}}}}},{}],163:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow `new` operators outside of assignments or comparisons",category:"Best Practices",recommended:false},schema:[]},create:function create(context){return{"ExpressionStatement > NewExpression":function ExpressionStatementNewExpression(node){context.report({node:node.parent,message:"Do not use 'new' for side effects."})}}}}},{}],164:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow calling global object properties as functions",category:"Possible Errors",recommended:true},schema:[]},create:function create(context){return{CallExpression:function CallExpression(node){if(node.callee.type==="Identifier"){var name=node.callee.name;if(name==="Math"||name==="JSON"||name==="Reflect"){context.report({node:node,message:"'{{name}}' is not a function.",data:{name:name}})}}}}}}},{}],165:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow octal escape sequences in string literals",category:"Best Practices",recommended:false},schema:[]},create:function create(context){return{Literal:function Literal(node){if(typeof node.value!=="string"){return}var match=node.raw.match(/^([^\\]|\\[^0-7])*\\([0-3][0-7]{1,2}|[4-7][0-7]|[0-7])/);if(match){var octalDigit=match[2];if(match[2]!=="0"||typeof match[3]!=="undefined"){context.report({node:node,message:"Don't use octal: '\\{{octalDigit}}'. Use '\\u....' instead.",data:{octalDigit:octalDigit}})}}}}}}},{}],166:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow octal literals",category:"Best Practices",recommended:true},schema:[]},create:function create(context){return{Literal:function Literal(node){if(typeof node.value==="number"&&/^0[0-7]/.test(node.raw)){context.report({node:node,message:"Octal literals should not be used."})}}}}}},{}],167:[function(require,module,exports){"use strict";var stopNodePattern=/(?:Statement|Declaration|Function(?:Expression)?|Program)$/;module.exports={meta:{docs:{description:"disallow reassigning `function` parameters",category:"Best Practices",recommended:false},schema:[{oneOf:[{type:"object",properties:{props:{enum:[false]}},additionalProperties:false},{type:"object",properties:{props:{enum:[true]},ignorePropertyModificationsFor:{type:"array",items:{type:"string"},uniqueItems:true}},additionalProperties:false}]}]},create:function create(context){var props=context.options[0]&&Boolean(context.options[0].props);var ignoredPropertyAssignmentsFor=context.options[0]&&context.options[0].ignorePropertyModificationsFor||[];function isModifyingProp(reference){var node=reference.identifier;var parent=node.parent;while(parent&&!stopNodePattern.test(parent.type)){switch(parent.type){case"AssignmentExpression":return parent.left===node;case"UpdateExpression":return true;case"UnaryExpression":if(parent.operator==="delete"){return true}break;case"CallExpression":if(parent.callee!==node){return false}break;case"MemberExpression":if(parent.property===node){return false}break;case"Property":if(parent.key===node){return false}break}node=parent;parent=node.parent}return false}function checkReference(reference,index,references){var identifier=reference.identifier;if(identifier&&!reference.init&&(index===0||references[index-1].identifier!==identifier)){if(reference.isWrite()){context.report({node:identifier,message:"Assignment to function parameter '{{name}}'.",data:{name:identifier.name}})}else if(props&&isModifyingProp(reference)&&ignoredPropertyAssignmentsFor.indexOf(identifier.name)===-1){context.report({node:identifier,message:"Assignment to property of function parameter '{{name}}'.",data:{name:identifier.name}})}}}function checkVariable(variable){if(variable.defs[0].type==="Parameter"){variable.references.forEach(checkReference)}}function checkForFunction(node){context.getDeclaredVariables(node).forEach(checkVariable)}return{"FunctionDeclaration:exit":checkForFunction,"FunctionExpression:exit":checkForFunction,"ArrowFunctionExpression:exit":checkForFunction}}}},{}],168:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow string concatenation with `__dirname` and `__filename`",category:"Node.js and CommonJS",recommended:false},schema:[]},create:function create(context){var MATCHER=/^__(?:dir|file)name$/;return{BinaryExpression:function BinaryExpression(node){var left=node.left,right=node.right;if(node.operator==="+"&&(left.type==="Identifier"&&MATCHER.test(left.name)||right.type==="Identifier"&&MATCHER.test(right.name))){context.report({node:node,message:"Use path.join() or path.resolve() instead of + to create paths."})}}}}}},{}],169:[function(require,module,exports){"use strict";var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj};module.exports={meta:{docs:{description:"disallow the unary operators `++` and `--`",category:"Stylistic Issues",recommended:false},schema:[{type:"object",properties:{allowForLoopAfterthoughts:{type:"boolean"}},additionalProperties:false}]},create:function create(context){var config=context.options[0];var allowInForAfterthought=false;if((typeof config==="undefined"?"undefined":_typeof(config))==="object"){allowInForAfterthought=config.allowForLoopAfterthoughts===true}return{UpdateExpression:function UpdateExpression(node){if(allowInForAfterthought&&node.parent.type==="ForStatement"){return}context.report({node:node,message:"Unary operator '{{operator}}' used.",data:{operator:node.operator}})}}}}},{}],170:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow the use of `process.env`",category:"Node.js and CommonJS",recommended:false},schema:[]},create:function create(context){return{MemberExpression:function MemberExpression(node){var objectName=node.object.name,propertyName=node.property.name;if(objectName==="process"&&!node.computed&&propertyName&&propertyName==="env"){context.report({node:node,message:"Unexpected use of process.env."})}}}}}},{}],171:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow the use of `process.exit()`",category:"Node.js and CommonJS",recommended:false},schema:[]},create:function create(context){return{"CallExpression > MemberExpression.callee[object.name = 'process'][property.name = 'exit']":function CallExpressionMemberExpressionCalleeObjectNameProcessPropertyNameExit(node){context.report({node:node.parent,message:"Don't use process.exit(); throw an error instead."})}}}}},{}],172:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow the use of the `__proto__` property",category:"Best Practices",recommended:false},schema:[]},create:function create(context){return{MemberExpression:function MemberExpression(node){if(node.property&&node.property.type==="Identifier"&&node.property.name==="__proto__"&&!node.computed||node.property.type==="Literal"&&node.property.value==="__proto__"){context.report({node:node,message:"The '__proto__' property is deprecated."})}}}}}},{}],173:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow calling some `Object.prototype` methods directly on objects",category:"Possible Errors",recommended:false},schema:[]},create:function create(context){var DISALLOWED_PROPS=["hasOwnProperty","isPrototypeOf","propertyIsEnumerable"];function disallowBuiltIns(node){if(node.callee.type!=="MemberExpression"||node.callee.computed){return}var propName=node.callee.property.name;if(DISALLOWED_PROPS.indexOf(propName)>-1){context.report({message:"Do not access Object.prototype method '{{prop}}' from target object.",loc:node.callee.property.loc.start,data:{prop:propName},node:node})}}return{CallExpression:disallowBuiltIns}}}},{}],174:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow variable redeclaration",category:"Best Practices",recommended:true},schema:[{type:"object",properties:{builtinGlobals:{type:"boolean"}},additionalProperties:false}]},create:function create(context){var options={builtinGlobals:Boolean(context.options[0]&&context.options[0].builtinGlobals)};function findVariablesInScope(scope){scope.variables.forEach(function(variable){var hasBuiltin=options.builtinGlobals&&"writeable"in variable;var count=(hasBuiltin?1:0)+variable.identifiers.length;if(count>=2){variable.identifiers.sort(function(a,b){return a.range[1]-b.range[1]});for(var i=hasBuiltin?0:1,l=variable.identifiers.length;i=6){return{Program:checkForGlobal,BlockStatement:checkForBlock,SwitchStatement:checkForBlock}}return{Program:checkForGlobal,FunctionDeclaration:checkForBlock,FunctionExpression:checkForBlock,ArrowFunctionExpression:checkForBlock}}}},{}],175:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"disallow multiple spaces in regular expressions",category:"Possible Errors",recommended:true},schema:[],fixable:"code"},create:function create(context){var sourceCode=context.getSourceCode();function checkRegex(node,value,valueStart){var multipleSpacesRegex=/( {2,})+?/,regexResults=multipleSpacesRegex.exec(value);if(regexResults!==null){var count=regexResults[0].length;context.report({node:node,message:"Spaces are hard to count. Use {{{count}}}.",data:{count:count},fix:function fix(fixer){return fixer.replaceTextRange([valueStart+regexResults.index,valueStart+regexResults.index+count]," {"+count+"}")}})}}function checkLiteral(node){var token=sourceCode.getFirstToken(node),nodeType=token.type,nodeValue=token.value;if(nodeType==="RegularExpression"){checkRegex(node,nodeValue,token.start)}}function isString(node){return node&&node.type==="Literal"&&typeof node.value==="string"}function checkFunction(node){var scope=context.getScope();var regExpVar=astUtils.getVariableByName(scope,"RegExp");var shadowed=regExpVar&®ExpVar.defs.length>0;if(node.callee.type==="Identifier"&&node.callee.name==="RegExp"&&isString(node.arguments[0])&&!shadowed){checkRegex(node,node.arguments[0].value,node.arguments[0].start+1)}}return{Literal:checkLiteral,CallExpression:checkFunction,NewExpression:checkFunction}}}},{"../ast-utils":22}],176:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow specified global variables",category:"Variables",recommended:false},schema:{type:"array",items:{type:"string"},uniqueItems:true}},create:function create(context){var restrictedGlobals=context.options;if(restrictedGlobals.length===0){return{}}function reportReference(reference){context.report({node:reference.identifier,message:"Unexpected use of '{{name}}'.",data:{name:reference.identifier.name}})}function isRestricted(name){return restrictedGlobals.indexOf(name)>=0}return{Program:function Program(){var scope=context.getScope();scope.variables.forEach(function(variable){if(!variable.defs.length&&isRestricted(variable.name)){variable.references.forEach(reportReference)}});scope.through.forEach(function(reference){if(isRestricted(reference.identifier.name)){reportReference(reference)}})}}}}},{}],177:[function(require,module,exports){"use strict";var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj};var ignore=require("ignore");var arrayOfStrings={type:"array",items:{type:"string"},uniqueItems:true};module.exports={meta:{docs:{description:"disallow specified modules when loaded by `import`",category:"ECMAScript 6",recommended:false},schema:{anyOf:[arrayOfStrings,{type:"array",items:[{type:"object",properties:{paths:arrayOfStrings,patterns:arrayOfStrings},additionalProperties:false}],additionalItems:false}]}},create:function create(context){var options=Array.isArray(context.options)?context.options:[];var isStringArray=_typeof(options[0])!=="object";var restrictedPaths=new Set(isStringArray?context.options:options[0].paths||[]);var restrictedPatterns=isStringArray?[]:options[0].patterns||[];if(restrictedPaths.size===0&&restrictedPatterns.length===0){return{}}var ig=ignore().add(restrictedPatterns);return{ImportDeclaration:function ImportDeclaration(node){if(node&&node.source&&node.source.value){var importName=node.source.value.trim();if(restrictedPaths.has(importName)){context.report({node:node,message:"'{{importName}}' import is restricted from being used.",data:{importName:importName}})}if(restrictedPatterns.length>0&&ig.ignores(importName)){context.report({node:node,message:"'{{importName}}' import is restricted from being used by a pattern.",data:{importName:importName}})}}}}}}},{ignore:14}],178:[function(require,module,exports){"use strict";var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj};var ignore=require("ignore");var arrayOfStrings={type:"array",items:{type:"string"},uniqueItems:true};module.exports={meta:{docs:{description:"disallow specified modules when loaded by `require`",category:"Node.js and CommonJS",recommended:false},schema:{anyOf:[arrayOfStrings,{type:"array",items:[{type:"object",properties:{paths:arrayOfStrings,patterns:arrayOfStrings},additionalProperties:false}],additionalItems:false}]}},create:function create(context){var options=Array.isArray(context.options)?context.options:[];var isStringArray=_typeof(options[0])!=="object";var restrictedPaths=new Set(isStringArray?context.options:options[0].paths||[]);var restrictedPatterns=isStringArray?[]:options[0].patterns||[];if(restrictedPaths.size===0&&restrictedPatterns.length===0){return{}}var ig=ignore().add(restrictedPatterns);function isString(node){return node&&node.type==="Literal"&&typeof node.value==="string"}function isRequireCall(node){return node.callee.type==="Identifier"&&node.callee.name==="require"}return{CallExpression:function CallExpression(node){if(isRequireCall(node)){if(node.arguments.length&&isString(node.arguments[0])){var moduleName=node.arguments[0].value.trim();if(restrictedPaths.has(moduleName)){context.report({node:node,message:"'{{moduleName}}' module is restricted from being used.",data:{moduleName:moduleName}})}if(restrictedPatterns.length>0&&ig.ignores(moduleName)){context.report({node:node,message:"'{{moduleName}}' module is restricted from being used by a pattern.",data:{moduleName:moduleName}})}}}}}}}},{ignore:14}],179:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"disallow certain properties on certain objects",category:"Best Practices",recommended:false},schema:{type:"array",items:{anyOf:[{type:"object",properties:{object:{type:"string"},property:{type:"string"},message:{type:"string"}},additionalProperties:false,required:["object"]},{type:"object",properties:{object:{type:"string"},property:{type:"string"},message:{type:"string"}},additionalProperties:false,required:["property"]}]},uniqueItems:true}},create:function create(context){var restrictedCalls=context.options;if(restrictedCalls.length===0){return{}}var restrictedProperties=new Map;var globallyRestrictedObjects=new Map;var globallyRestrictedProperties=new Map;restrictedCalls.forEach(function(option){var objectName=option.object;var propertyName=option.property;if(typeof objectName==="undefined"){globallyRestrictedProperties.set(propertyName,{message:option.message})}else if(typeof propertyName==="undefined"){globallyRestrictedObjects.set(objectName,{message:option.message})}else{if(!restrictedProperties.has(objectName)){restrictedProperties.set(objectName,new Map)}restrictedProperties.get(objectName).set(propertyName,{message:option.message})}});function checkPropertyAccess(node,objectName,propertyName){if(propertyName===null){return}var matchedObject=restrictedProperties.get(objectName);var matchedObjectProperty=matchedObject?matchedObject.get(propertyName):globallyRestrictedObjects.get(objectName);var globalMatchedProperty=globallyRestrictedProperties.get(propertyName);if(matchedObjectProperty){var message=matchedObjectProperty.message?" "+matchedObjectProperty.message:"";context.report({node:node,message:"'{{objectName}}.{{propertyName}}' is restricted from being used.{{message}}",data:{objectName:objectName,propertyName:propertyName,message:message}})}else if(globalMatchedProperty){var _message=globalMatchedProperty.message?" "+globalMatchedProperty.message:"";context.report({node:node,message:"'{{propertyName}}' is restricted from being used.{{message}}",data:{propertyName:propertyName,message:_message}})}}function checkDestructuringAssignment(node){if(node.right.type==="Identifier"){var objectName=node.right.name;if(node.left.type==="ObjectPattern"){node.left.properties.forEach(function(property){checkPropertyAccess(node.left,objectName,astUtils.getStaticPropertyName(property))})}}}return{MemberExpression:function MemberExpression(node){checkPropertyAccess(node,node.object&&node.object.name,astUtils.getStaticPropertyName(node))},VariableDeclarator:function VariableDeclarator(node){if(node.init&&node.init.type==="Identifier"){var objectName=node.init.name;if(node.id.type==="ObjectPattern"){node.id.properties.forEach(function(property){checkPropertyAccess(node.id,objectName,astUtils.getStaticPropertyName(property))})}}},AssignmentExpression:checkDestructuringAssignment,AssignmentPattern:checkDestructuringAssignment}}}},{"../ast-utils":22}],180:[function(require,module,exports){"use strict";function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}module.exports={meta:{docs:{description:"disallow specified syntax",category:"Stylistic Issues",recommended:false},schema:{type:"array",items:[{oneOf:[{type:"string"},{type:"object",properties:{selector:{type:"string"},message:{type:"string"}},required:["selector"],additionalProperties:false}]}],uniqueItems:true,minItems:0}},create:function create(context){return context.options.reduce(function(result,selectorOrObject){var isStringFormat=typeof selectorOrObject==="string";var hasCustomMessage=!isStringFormat&&Boolean(selectorOrObject.message);var selector=isStringFormat?selectorOrObject:selectorOrObject.selector;var message=hasCustomMessage?selectorOrObject.message:"Using '{{selector}}' is not allowed.";return Object.assign(result,_defineProperty({},selector,function(node){context.report({node:node,message:message,data:hasCustomMessage?{}:{selector:selector}})}))},{})}}},{}],181:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");var SENTINEL_TYPE=/^(?:[a-zA-Z]+?Statement|ArrowFunctionExpression|FunctionExpression|ClassExpression)$/;module.exports={meta:{docs:{description:"disallow assignment operators in `return` statements",category:"Best Practices",recommended:false},schema:[{enum:["except-parens","always"]}]},create:function create(context){var always=(context.options[0]||"except-parens")!=="except-parens";var sourceCode=context.getSourceCode();return{AssignmentExpression:function AssignmentExpression(node){if(!always&&astUtils.isParenthesised(sourceCode,node)){return}var parent=node.parent;while(parent&&!SENTINEL_TYPE.test(parent.type)){node=parent;parent=parent.parent}if(parent&&parent.type==="ReturnStatement"){context.report({node:parent,message:"Return statement should not contain assignment."})}else if(parent&&parent.type==="ArrowFunctionExpression"&&parent.body===node){context.report({node:parent,message:"Arrow function should not return assignment."})}}}}}},{"../ast-utils":22}],182:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");var message="Redundant use of `await` on a return value.";module.exports={meta:{docs:{description:"disallow unnecessary `return await`",category:"Best Practices",recommended:false},fixable:null,schema:[]},create:function create(context){function reportUnnecessaryAwait(node){context.report({node:context.getSourceCode().getFirstToken(node),loc:node.loc,message:message})}function hasErrorHandler(node){var ancestor=node;while(!astUtils.isFunction(ancestor)&&ancestor.type!=="Program"){if(ancestor.parent.type==="TryStatement"&&(ancestor===ancestor.parent.block||ancestor===ancestor.parent.handler&&ancestor.parent.finalizer)){return true}ancestor=ancestor.parent}return false}function isInTailCallPosition(node){if(node.parent.type==="ArrowFunctionExpression"){return true}if(node.parent.type==="ReturnStatement"){return!hasErrorHandler(node.parent)}if(node.parent.type==="ConditionalExpression"&&(node===node.parent.consequent||node===node.parent.alternate)){return isInTailCallPosition(node.parent)}if(node.parent.type==="LogicalExpression"&&node===node.parent.right){return isInTailCallPosition(node.parent)}if(node.parent.type==="SequenceExpression"&&node===node.parent.expressions[node.parent.expressions.length-1]){return isInTailCallPosition(node.parent)}return false}return{AwaitExpression:function AwaitExpression(node){if(isInTailCallPosition(node)&&!hasErrorHandler(node)){reportUnnecessaryAwait(node)}}}}}},{"../ast-utils":22}],183:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow `javascript:` urls",category:"Best Practices",recommended:false},schema:[]},create:function create(context){return{Literal:function Literal(node){if(node.value&&typeof node.value==="string"){var value=node.value.toLowerCase();if(value.indexOf("javascript:")===0){context.report({node:node,message:"Script URL is a form of eval."})}}}}}}},{}],184:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");var SPACES=/\s+/g;function isSameProperty(left,right){if(left.property.type==="Identifier"&&left.property.type===right.property.type&&left.property.name===right.property.name&&left.computed===right.computed){return true}var lname=astUtils.getStaticPropertyName(left);var rname=astUtils.getStaticPropertyName(right);return lname!==null&&lname===rname}function isSameMember(left,right){if(!isSameProperty(left,right)){return false}var lobj=left.object;var robj=right.object;if(lobj.type!==robj.type){return false}if(lobj.type==="MemberExpression"){return isSameMember(lobj,robj)}return lobj.type==="Identifier"&&lobj.name===robj.name}function eachSelfAssignment(left,right,props,report){if(!left||!right){}else if(left.type==="Identifier"&&right.type==="Identifier"&&left.name===right.name){report(right)}else if(left.type==="ArrayPattern"&&right.type==="ArrayExpression"){var end=Math.min(left.elements.length,right.elements.length);for(var i=0;i=1){var startJ=0;for(var _i=right.properties.length-1;_i>=0;--_i){if(right.properties[_i].type==="ExperimentalSpreadProperty"){startJ=_i+1;break}}for(var _i2=0;_i2","<",">=","<="]);if(operators.has(node.operator)&&hasSameTokens(node.left,node.right)){context.report({node:node,message:"Comparing to itself is potentially pointless."})}}}}}},{}],186:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"disallow comma operators",category:"Best Practices",recommended:false},schema:[]},create:function create(context){var sourceCode=context.getSourceCode();var parenthesized={DoWhileStatement:"test",IfStatement:"test",SwitchStatement:"discriminant",WhileStatement:"test",WithStatement:"object",ArrowFunctionExpression:"body"};function requiresExtraParens(node){return node.parent&&parenthesized[node.parent.type]&&node===node.parent[parenthesized[node.parent.type]]}function isParenthesised(node){return astUtils.isParenthesised(sourceCode,node)}function isParenthesisedTwice(node){var previousToken=sourceCode.getTokenBefore(node,1),nextToken=sourceCode.getTokenAfter(node,1);return isParenthesised(node)&&previousToken&&nextToken&&astUtils.isOpeningParenToken(previousToken)&&previousToken.range[1]<=node.range[0]&&astUtils.isClosingParenToken(nextToken)&&nextToken.range[0]>=node.range[1]}return{SequenceExpression:function SequenceExpression(node){if(node.parent.type==="ForStatement"&&(node===node.parent.init||node===node.parent.update)){return}if(requiresExtraParens(node)){if(isParenthesisedTwice(node)){return}}else{if(isParenthesised(node)){return}}var child=sourceCode.getTokenAfter(node.expressions[0]);context.report({node:node,loc:child.loc.start,message:"Unexpected use of comma operator."})}}}}},{"../ast-utils":22}],187:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow identifiers from shadowing restricted names",category:"Variables",recommended:false},schema:[]},create:function create(context){var RESTRICTED=["undefined","NaN","Infinity","arguments","eval"];function checkForViolation(id){if(RESTRICTED.indexOf(id.name)>-1){context.report({node:id,message:"Shadowing of global property '{{idName}}'.",data:{idName:id.name}})}}return{VariableDeclarator:function VariableDeclarator(node){checkForViolation(node.id)},ArrowFunctionExpression:function ArrowFunctionExpression(node){[].map.call(node.params,checkForViolation)},FunctionExpression:function FunctionExpression(node){if(node.id){checkForViolation(node.id)}[].map.call(node.params,checkForViolation)},FunctionDeclaration:function FunctionDeclaration(node){if(node.id){checkForViolation(node.id);[].map.call(node.params,checkForViolation)}},CatchClause:function CatchClause(node){checkForViolation(node.param)}}}}},{}],188:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"disallow variable declarations from shadowing variables declared in the outer scope",category:"Variables",recommended:false},schema:[{type:"object",properties:{builtinGlobals:{type:"boolean"},hoist:{enum:["all","functions","never"]},allow:{type:"array",items:{type:"string"}}},additionalProperties:false}]},create:function create(context){var options={builtinGlobals:Boolean(context.options[0]&&context.options[0].builtinGlobals),hoist:context.options[0]&&context.options[0].hoist||"functions",allow:context.options[0]&&context.options[0].allow||[]};function isAllowed(variable){return options.allow.indexOf(variable.name)!==-1}function isDuplicatedClassNameVariable(variable){var block=variable.scope.block;return block.type==="ClassDeclaration"&&block.id===variable.identifiers[0]}function isOnInitializer(variable,scopeVar){var outerScope=scopeVar.scope;var outerDef=scopeVar.defs[0];var outer=outerDef&&outerDef.parent&&outerDef.parent.range;var innerScope=variable.scope;var innerDef=variable.defs[0];var inner=innerDef&&innerDef.name.range;return outer&&inner&&outer[0]0||options.builtinGlobals&&"writeable"in shadowed)&&!isOnInitializer(variable,shadowed)&&!(options.hoist!=="all"&&isInTdz(variable,shadowed))){context.report({node:variable.identifiers[0],message:"'{{name}}' is already declared in the upper scope.",data:variable})}}}return{"Program:exit":function ProgramExit(){var globalScope=context.getScope();var stack=globalScope.childScopes.slice();while(stack.length){var scope=stack.pop();stack.push.apply(stack,scope.childScopes);checkForShadows(scope)}}}}}},{"../ast-utils":22}],189:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow spacing between function identifiers and their applications (deprecated)",category:"Stylistic Issues",recommended:false,replacedBy:["func-call-spacing"]},deprecated:true,fixable:"whitespace",schema:[]},create:function create(context){var sourceCode=context.getSourceCode();function detectOpenSpaces(node){var lastCalleeToken=sourceCode.getLastToken(node.callee);var prevToken=lastCalleeToken,parenToken=sourceCode.getTokenAfter(lastCalleeToken);while(parenToken&&parenToken.range[1]-1;if(emptySpot){context.report({node:node,message:"Unexpected comma in middle of array."})}}}}}},{}],191:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow synchronous methods",category:"Node.js and CommonJS",recommended:false},schema:[]},create:function create(context){return{"MemberExpression[property.name=/.*Sync$/]":function MemberExpressionPropertyNameSync$(node){context.report({node:node,message:"Unexpected sync method: '{{propertyName}}'.",data:{propertyName:node.property.name}})}}}}},{}],192:[function(require,module,exports){"use strict";var regex=/\t/;module.exports={meta:{docs:{description:"disallow all tabs",category:"Stylistic Issues",recommended:false},schema:[]},create:function create(context){return{Program:function Program(node){context.getSourceLines().forEach(function(line,index){var match=regex.exec(line);if(match){context.report({node:node,loc:{line:index+1,column:match.index+1},message:"Unexpected tab character."})}})}}}}},{}],193:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow template literal placeholder syntax in regular strings",category:"Possible Errors",recommended:false},schema:[]},create:function create(context){var regex=/\$\{[^}]+\}/;return{Literal:function Literal(node){if(typeof node.value==="string"&®ex.test(node.value)){context.report({node:node,message:"Unexpected template string expression."})}}}}}},{}],194:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow ternary operators",category:"Stylistic Issues",recommended:false},schema:[]},create:function create(context){return{ConditionalExpression:function ConditionalExpression(node){context.report({node:node,message:"Ternary operator used."})}}}}},{}],195:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");function isConstructorFunction(node){return node.type==="FunctionExpression"&&node.parent.type==="MethodDefinition"&&node.parent.kind==="constructor"}module.exports={meta:{docs:{description:"disallow `this`/`super` before calling `super()` in constructors",category:"ECMAScript 6",recommended:true},schema:[]},create:function create(context){var funcInfo=null;var segInfoMap=Object.create(null);function isCalled(segment){return!segment.reachable||segInfoMap[segment.id].superCalled}function isInConstructorOfDerivedClass(){return Boolean(funcInfo&&funcInfo.isConstructor&&funcInfo.hasExtends)}function isBeforeCallOfSuper(){return isInConstructorOfDerivedClass()&&!funcInfo.codePath.currentSegments.every(isCalled)}function setInvalid(node){var segments=funcInfo.codePath.currentSegments;for(var i=0;i0&&segment.prevSegments.every(isCalled),invalidNodes:[]}},onCodePathSegmentLoop:function onCodePathSegmentLoop(fromSegment,toSegment){if(!isInConstructorOfDerivedClass()){return}funcInfo.codePath.traverseSegments({first:toSegment,last:fromSegment},function(segment,controller){var info=segInfoMap[segment.id];if(info.superCalled){info.invalidNodes=[];controller.skip()}else if(segment.prevSegments.length>0&&segment.prevSegments.every(isCalled)){info.superCalled=true;info.invalidNodes=[]}})},ThisExpression:function ThisExpression(node){if(isBeforeCallOfSuper()){setInvalid(node)}},Super:function Super(node){if(!astUtils.isCallee(node)&&isBeforeCallOfSuper()){setInvalid(node)}},"CallExpression:exit":function CallExpressionExit(node){if(node.callee.type==="Super"&&isBeforeCallOfSuper()){setSuperCalled()}},"Program:exit":function ProgramExit(){segInfoMap=Object.create(null)}}}}},{"../ast-utils":22}],196:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"disallow throwing literals as exceptions",category:"Best Practices",recommended:false},schema:[]},create:function create(context){return{ThrowStatement:function ThrowStatement(node){if(!astUtils.couldBeError(node.argument)){context.report({node:node,message:"Expected an object to be thrown."})}else if(node.argument.type==="Identifier"){if(node.argument.name==="undefined"){context.report({node:node,message:"Do not throw undefined."})}}}}}}},{"../ast-utils":22}],197:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"disallow trailing whitespace at the end of lines",category:"Stylistic Issues",recommended:false},fixable:"whitespace",schema:[{type:"object",properties:{skipBlankLines:{type:"boolean"},ignoreComments:{type:"boolean"}},additionalProperties:false}]},create:function create(context){var sourceCode=context.getSourceCode();var BLANK_CLASS="[ \t  -​ ]",SKIP_BLANK="^"+BLANK_CLASS+"*$",NONBLANK=BLANK_CLASS+"+$";var options=context.options[0]||{},skipBlankLines=options.skipBlankLines||false,ignoreComments=typeof options.ignoreComments==="undefined"||options.ignoreComments;function report(node,location,fixRange){context.report({node:node,loc:location,message:"Trailing spaces not allowed.",fix:function fix(fixer){return fixer.removeRange(fixRange)}})}function getCommentLineNumbers(comments){var lines=new Set;comments.forEach(function(comment){for(var i=comment.loc.start.line;i<=comment.loc.end.line;i++){lines.add(i)}});return lines}return{Program:function checkTrailingSpaces(node){var re=new RegExp(NONBLANK),skipMatch=new RegExp(SKIP_BLANK),lines=sourceCode.lines,linebreaks=sourceCode.getText().match(astUtils.createGlobalLinebreakMatcher()),comments=sourceCode.getAllComments(),commentLineNumbers=getCommentLineNumbers(comments);var totalLength=0,fixRange=[];for(var i=0,ii=lines.length;icontainingNode.parent.range[0]&&rangeEnd0;if(init==="undefined"&&node.parent.kind!=="const"&&!shadowed){context.report({node:node,message:"It's not necessary to initialize '{{name}}' to undefined.",data:{name:name},fix:function fix(fixer){if(node.id.type==="ArrayPattern"||node.id.type==="ObjectPattern"){return null}return fixer.removeRange([node.id.range[1],node.range[1]])}})}}}}}},{"../ast-utils":22}],199:[function(require,module,exports){"use strict";function hasTypeOfOperator(node){var parent=node.parent;return parent.type==="UnaryExpression"&&parent.operator==="typeof"}module.exports={meta:{docs:{description:"disallow the use of undeclared variables unless mentioned in `/*global */` comments",category:"Variables",recommended:true},schema:[{type:"object",properties:{typeof:{type:"boolean"}},additionalProperties:false}]},create:function create(context){var options=context.options[0];var considerTypeOf=options&&options.typeof===true||false;return{"Program:exit":function ProgramExit(){var globalScope=context.getScope();globalScope.through.forEach(function(ref){var identifier=ref.identifier;if(!considerTypeOf&&hasTypeOfOperator(identifier)){return}context.report({node:identifier,message:"'{{name}}' is not defined.",data:identifier})})}}}}},{}],200:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow the use of `undefined` as an identifier",category:"Variables",recommended:false},schema:[]},create:function create(context){function report(node){context.report({node:node,message:"Unexpected use of undefined."})}function checkScope(scope){var undefinedVar=scope.set.get("undefined");if(!undefinedVar){return}var references=undefinedVar.references;var defs=undefinedVar.defs;references.filter(function(ref){return!ref.init}).forEach(function(ref){return report(ref.identifier)});defs.forEach(function(def){return report(def.name)})}return{"Program:exit":function ProgramExit(){var globalScope=context.getScope();var stack=[globalScope];while(stack.length){var scope=stack.pop();stack.push.apply(stack,scope.childScopes);checkScope(scope)}}}}}},{}],201:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow dangling underscores in identifiers",category:"Stylistic Issues",recommended:false},schema:[{type:"object",properties:{allow:{type:"array",items:{type:"string"}},allowAfterThis:{type:"boolean"},allowAfterSuper:{type:"boolean"}},additionalProperties:false}]},create:function create(context){var options=context.options[0]||{};var ALLOWED_VARIABLES=options.allow?options.allow:[];var allowAfterThis=typeof options.allowAfterThis!=="undefined"?options.allowAfterThis:false;var allowAfterSuper=typeof options.allowAfterSuper!=="undefined"?options.allowAfterSuper:false;function isAllowed(identifier){return ALLOWED_VARIABLES.some(function(ident){return ident===identifier})}function hasTrailingUnderscore(identifier){var len=identifier.length;return identifier!=="_"&&(identifier[0]==="_"||identifier[len-1]==="_")}function isSpecialCaseIdentifierForMemberExpression(identifier){return identifier==="__proto__"}function isSpecialCaseIdentifierInVariableExpression(identifier){return identifier==="_"}function checkForTrailingUnderscoreInFunctionDeclaration(node){if(node.id){var identifier=node.id.name;if(typeof identifier!=="undefined"&&hasTrailingUnderscore(identifier)&&!isAllowed(identifier)){context.report({node:node,message:"Unexpected dangling '_' in '{{identifier}}'.",data:{identifier:identifier}})}}}function checkForTrailingUnderscoreInVariableExpression(node){var identifier=node.id.name;if(typeof identifier!=="undefined"&&hasTrailingUnderscore(identifier)&&!isSpecialCaseIdentifierInVariableExpression(identifier)&&!isAllowed(identifier)){context.report({node:node,message:"Unexpected dangling '_' in '{{identifier}}'.",data:{identifier:identifier}})}}function checkForTrailingUnderscoreInMemberExpression(node){var identifier=node.property.name,isMemberOfThis=node.object.type==="ThisExpression",isMemberOfSuper=node.object.type==="Super";if(typeof identifier!=="undefined"&&hasTrailingUnderscore(identifier)&&!(isMemberOfThis&&allowAfterThis)&&!(isMemberOfSuper&&allowAfterSuper)&&!isSpecialCaseIdentifierForMemberExpression(identifier)&&!isAllowed(identifier)){context.report({node:node,message:"Unexpected dangling '_' in '{{identifier}}'.",data:{identifier:identifier}})}}return{FunctionDeclaration:checkForTrailingUnderscoreInFunctionDeclaration,VariableDeclarator:checkForTrailingUnderscoreInVariableExpression,MemberExpression:checkForTrailingUnderscoreInMemberExpression}}}},{}],202:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"disallow confusing multiline expressions",category:"Possible Errors",recommended:true},schema:[]},create:function create(context){var FUNCTION_MESSAGE="Unexpected newline between function and ( of function call.";var PROPERTY_MESSAGE="Unexpected newline between object and [ of property access.";var TAGGED_TEMPLATE_MESSAGE="Unexpected newline between template tag and template literal.";var DIVISION_MESSAGE="Unexpected newline between numerator and division operator.";var REGEX_FLAG_MATCHER=/^[gimuy]+$/;var sourceCode=context.getSourceCode();function checkForBreakAfter(node,msg){var openParen=sourceCode.getTokenAfter(node,astUtils.isNotClosingParenToken);var nodeExpressionEnd=sourceCode.getTokenBefore(openParen);if(openParen.loc.start.line!==nodeExpressionEnd.loc.end.line){context.report({node:node,loc:openParen.loc.start,message:msg,data:{char:openParen.value}})}}return{MemberExpression:function MemberExpression(node){if(!node.computed){return}checkForBreakAfter(node.object,PROPERTY_MESSAGE)},TaggedTemplateExpression:function TaggedTemplateExpression(node){if(node.tag.loc.end.line===node.quasi.loc.start.line){return}context.report({node:node,loc:node.loc.start,message:TAGGED_TEMPLATE_MESSAGE})},CallExpression:function CallExpression(node){if(node.arguments.length===0){return}checkForBreakAfter(node.callee,FUNCTION_MESSAGE)},"BinaryExpression[operator='/'] > BinaryExpression[operator='/'].left":function BinaryExpressionOperatorBinaryExpressionOperatorLeft(node){var secondSlash=sourceCode.getTokenAfter(node,function(token){return token.value==="/"});var tokenAfterOperator=sourceCode.getTokenAfter(secondSlash);if(tokenAfterOperator.type==="Identifier"&®EX_FLAG_MATCHER.test(tokenAfterOperator.value)&&secondSlash.range[1]===tokenAfterOperator.range[0]){checkForBreakAfter(node.left,DIVISION_MESSAGE)}}}}}},{"../ast-utils":22}],203:[function(require,module,exports){"use strict";var Traverser=require("../util/traverser"),astUtils=require("../ast-utils");var pushAll=Function.apply.bind(Array.prototype.push);var SENTINEL_PATTERN=/(?:(?:Call|Class|Function|Member|New|Yield)Expression|Statement|Declaration)$/;var LOOP_PATTERN=/^(?:DoWhile|For|While)Statement$/;var GROUP_PATTERN=/^(?:BinaryExpression|ConditionalExpression)$/;var SKIP_PATTERN=/^(?:ArrowFunction|Class|Function)Expression$/;var DYNAMIC_PATTERN=/^(?:Call|Member|New|TaggedTemplate|Yield)Expression$/;function isWriteReference(reference){if(reference.init){var def=reference.resolved&&reference.resolved.defs[0];if(!def||def.type!=="Variable"||def.parent.kind!=="var"){return false}}return reference.isWrite()}function isUnmodified(condition){return!condition.modified}function isUnmodifiedAndNotBelongToGroup(condition){return!(condition.modified||condition.group)}function isInRange(node,reference){var or=node.range;var ir=reference.identifier.range;return or[0]<=ir[0]&&ir[1]<=or[1]}var isInLoop={WhileStatement:isInRange,DoWhileStatement:isInRange,ForStatement:function ForStatement(node,reference){return isInRange(node,reference)&&!(node.init&&isInRange(node.init,reference))}};function hasDynamicExpressions(root){var retv=false;var traverser=new Traverser;traverser.traverse(root,{enter:function enter(node){if(DYNAMIC_PATTERN.test(node.type)){retv=true;this.break()}else if(SKIP_PATTERN.test(node.type)){this.skip()}}});return retv}function toLoopCondition(reference){if(reference.init){return null}var group=null;var child=reference.identifier;var node=child.parent;while(node){if(SENTINEL_PATTERN.test(node.type)){if(LOOP_PATTERN.test(node.type)&&node.test===child){return{reference:reference,group:group,isInLoop:isInLoop[node.type].bind(null,node),modified:false}}break}if(GROUP_PATTERN.test(node.type)){if(hasDynamicExpressions(node)){break}else{group=node}}child=node;node=node.parent}return null}function getEncloseFunctionDeclaration(reference){var node=reference.identifier;while(node){if(node.type==="FunctionDeclaration"){return node.id?node:null}node=node.parent}return null}function updateModifiedFlag(conditions,modifiers){var funcNode=void 0,funcVar=void 0;for(var i=0;i0){updateModifiedFlag(conditions,modifiers)}conditions.filter(isUnmodifiedAndNotBelongToGroup).forEach(report)}return{"Program:exit":function ProgramExit(){var queue=[context.getScope()];groupMap=new Map;var scope=void 0;while(scope=queue.pop()){pushAll(queue,scope.childScopes);scope.variables.forEach(checkReferences)}groupMap.forEach(checkConditionsInGroup);groupMap=null}}}}},{"../ast-utils":22,"../util/traverser":280}],204:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");var BOOLEAN_OPERATORS=new Set(["==","===","!=","!==",">",">=","<","<=","in","instanceof"]);var OPERATOR_INVERSES={"==":"!=","!=":"==","===":"!==","!==":"==="};module.exports={meta:{docs:{description:"disallow ternary operators when simpler alternatives exist",category:"Stylistic Issues",recommended:false},schema:[{type:"object",properties:{defaultAssignment:{type:"boolean"}},additionalProperties:false}],fixable:"code"},create:function create(context){var options=context.options[0]||{};var defaultAssignment=options.defaultAssignment!==false;var sourceCode=context.getSourceCode();function isBooleanLiteral(node){return node.type==="Literal"&&typeof node.value==="boolean"}function invertExpression(node){if(node.type==="BinaryExpression"&&Object.prototype.hasOwnProperty.call(OPERATOR_INVERSES,node.operator)){var operatorToken=sourceCode.getFirstTokenBetween(node.left,node.right,function(token){return token.value===node.operator});return sourceCode.getText().slice(node.range[0],operatorToken.range[0])+OPERATOR_INVERSES[node.operator]+sourceCode.getText().slice(operatorToken.range[1],node.range[1])}if(astUtils.getPrecedence(node)=this.startNode.range[0]&&node.range[1]<=this.endNode.range[1]}},{key:"isConsecutive",value:function isConsecutive(node){return this.contains(this.sourceCode.getTokenBefore(node))}},{key:"merge",value:function merge(node){this.endNode=node}},{key:"reset",value:function reset(node){this.startNode=this.endNode=node}},{key:"location",get:function get(){return{start:this.startNode.loc.start,end:this.endNode.loc.end}}},{key:"isEmpty",get:function get(){return!(this.startNode&&this.endNode)}}]);return ConsecutiveRange}();module.exports={meta:{docs:{description:"disallow unreachable code after `return`, `throw`, `continue`, and `break` statements",category:"Possible Errors",recommended:true},schema:[]},create:function create(context){var currentCodePath=null;var range=new ConsecutiveRange(context.getSourceCode());function reportIfUnreachable(node){var nextNode=null;if(node&¤tCodePath.currentSegments.every(isUnreachable)){if(range.isEmpty){range.reset(node);return}if(range.contains(node)){return}if(range.isConsecutive(node)){range.merge(node);return}nextNode=node}if(!range.isEmpty){context.report({message:"Unreachable code.",loc:range.location,node:range.startNode})}range.reset(nextNode)}return{onCodePathStart:function onCodePathStart(codePath){currentCodePath=codePath},onCodePathEnd:function onCodePathEnd(){currentCodePath=currentCodePath.upper},BlockStatement:reportIfUnreachable,BreakStatement:reportIfUnreachable,ClassDeclaration:reportIfUnreachable,ContinueStatement:reportIfUnreachable,DebuggerStatement:reportIfUnreachable,DoWhileStatement:reportIfUnreachable,EmptyStatement:reportIfUnreachable,ExpressionStatement:reportIfUnreachable,ForInStatement:reportIfUnreachable,ForOfStatement:reportIfUnreachable,ForStatement:reportIfUnreachable,IfStatement:reportIfUnreachable,ImportDeclaration:reportIfUnreachable,LabeledStatement:reportIfUnreachable,ReturnStatement:reportIfUnreachable,SwitchStatement:reportIfUnreachable,ThrowStatement:reportIfUnreachable,TryStatement:reportIfUnreachable,VariableDeclaration:function VariableDeclaration(node){if(node.kind!=="var"||node.declarations.some(isInitialized)){reportIfUnreachable(node)}},WhileStatement:reportIfUnreachable,WithStatement:reportIfUnreachable,ExportNamedDeclaration:reportIfUnreachable,ExportDefaultDeclaration:reportIfUnreachable,ExportAllDeclaration:reportIfUnreachable,"Program:exit":function ProgramExit(){reportIfUnreachable()}}}}},{}],206:[function(require,module,exports){"use strict";var SENTINEL_NODE_TYPE_RETURN_THROW=/^(?:Program|(?:Function|Class)(?:Declaration|Expression)|ArrowFunctionExpression)$/;var SENTINEL_NODE_TYPE_BREAK=/^(?:Program|(?:Function|Class)(?:Declaration|Expression)|ArrowFunctionExpression|DoWhileStatement|WhileStatement|ForOfStatement|ForInStatement|ForStatement|SwitchStatement)$/;var SENTINEL_NODE_TYPE_CONTINUE=/^(?:Program|(?:Function|Class)(?:Declaration|Expression)|ArrowFunctionExpression|DoWhileStatement|WhileStatement|ForOfStatement|ForInStatement|ForStatement)$/;module.exports={meta:{docs:{description:"disallow control flow statements in `finally` blocks",category:"Possible Errors",recommended:true},schema:[]},create:function create(context){function isFinallyBlock(node){return node.parent.type==="TryStatement"&&node.parent.finalizer===node}function isInFinallyBlock(node,label){var labelInside=false;var sentinelNodeType=void 0;if(node.type==="BreakStatement"&&!node.label){sentinelNodeType=SENTINEL_NODE_TYPE_BREAK}else if(node.type==="ContinueStatement"){sentinelNodeType=SENTINEL_NODE_TYPE_CONTINUE}else{sentinelNodeType=SENTINEL_NODE_TYPE_RETURN_THROW}while(node&&!sentinelNodeType.test(node.type)){if(node.parent.label&&label&&node.parent.label.name===label.name){labelInside=true}if(isFinallyBlock(node)){if(label&&labelInside){return false}return true}node=node.parent}return false}function check(node){if(isInFinallyBlock(node,node.label)){context.report({message:"Unsafe usage of {{nodeType}}.",data:{nodeType:node.type},node:node,line:node.loc.line,column:node.loc.column})}}return{ReturnStatement:check,ThrowStatement:check,BreakStatement:check,ContinueStatement:check}}}},{}],207:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");function isRelationalOperator(op){return op==="in"||op==="instanceof"}function isNegation(node){return node.type==="UnaryExpression"&&node.operator==="!"}module.exports={meta:{docs:{description:"disallow negating the left operand of relational operators",category:"Possible Errors",recommended:true},schema:[],fixable:"code"},create:function create(context){var sourceCode=context.getSourceCode();return{BinaryExpression:function BinaryExpression(node){if(isRelationalOperator(node.operator)&&isNegation(node.left)&&!astUtils.isParenthesised(sourceCode,node.left)){context.report({node:node,loc:node.left.loc,message:"Unexpected negating the left operand of '{{operator}}' operator.",data:node,fix:function fix(fixer){var negationToken=sourceCode.getFirstToken(node.left);var fixRange=[negationToken.range[1],node.range[1]];var text=sourceCode.text.slice(fixRange[0],fixRange[1]);return fixer.replaceTextRange(fixRange,"("+text+")")}})}}}}}},{"../ast-utils":22}],208:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow unused expressions",category:"Best Practices",recommended:false},schema:[{type:"object",properties:{allowShortCircuit:{type:"boolean"},allowTernary:{type:"boolean"},allowTaggedTemplates:{type:"boolean"}},additionalProperties:false}]},create:function create(context){var config=context.options[0]||{},allowShortCircuit=config.allowShortCircuit||false,allowTernary=config.allowTernary||false,allowTaggedTemplates=config.allowTaggedTemplates||false;function looksLikeDirective(node){return node.type==="ExpressionStatement"&&node.expression.type==="Literal"&&typeof node.expression.value==="string"}function takeWhile(predicate,list){for(var i=0;i=0}function isValidExpression(node){if(allowTernary){if(node.type==="ConditionalExpression"){return isValidExpression(node.consequent)&&isValidExpression(node.alternate)}}if(allowShortCircuit){if(node.type==="LogicalExpression"){return isValidExpression(node.right)}}if(allowTaggedTemplates&&node.type==="TaggedTemplateExpression"){return true}return/^(?:Assignment|Call|New|Update|Yield|Await)Expression$/.test(node.type)||node.type==="UnaryExpression"&&["delete","void"].indexOf(node.operator)>=0}return{ExpressionStatement:function ExpressionStatement(node){if(!isValidExpression(node.expression)&&!isDirective(node,context.getAncestors())){context.report({node:node,message:"Expected an assignment or function call and instead saw an expression."})}}}}}},{}],209:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow unused labels",category:"Best Practices",recommended:true},schema:[],fixable:"code"},create:function create(context){var sourceCode=context.getSourceCode();var scopeInfo=null;function enterLabeledScope(node){scopeInfo={label:node.label.name,used:false,upper:scopeInfo}}function exitLabeledScope(node){if(!scopeInfo.used){context.report({node:node.label,message:"'{{name}}:' is defined but never used.",data:node.label,fix:function fix(fixer){if(sourceCode.getTokenAfter(node.label,{includeComments:true})===sourceCode.getTokenBefore(node.body,{includeComments:true})){return fixer.removeRange([node.range[0],node.body.range[0]])}return null}})}scopeInfo=scopeInfo.upper}function markAsUsed(node){if(!node.label){return}var label=node.label.name;var info=scopeInfo;while(info){if(info.label===label){info.used=true;break}info=info.upper}}return{LabeledStatement:enterLabeledScope,"LabeledStatement:exit":exitLabeledScope,BreakStatement:markAsUsed,ContinueStatement:markAsUsed}}}},{}],210:[function(require,module,exports){"use strict";var lodash=require("lodash");var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"disallow unused variables",category:"Variables",recommended:true},schema:[{oneOf:[{enum:["all","local"]},{type:"object",properties:{vars:{enum:["all","local"]},varsIgnorePattern:{type:"string"},args:{enum:["all","after-used","none"]},ignoreRestSiblings:{type:"boolean"},argsIgnorePattern:{type:"string"},caughtErrors:{enum:["all","none"]},caughtErrorsIgnorePattern:{type:"string"}}}]}]},create:function create(context){var sourceCode=context.getSourceCode();var DEFINED_MESSAGE="'{{name}}' is defined but never used.";var ASSIGNED_MESSAGE="'{{name}}' is assigned a value but never used.";var REST_PROPERTY_TYPE=/^(?:Experimental)?RestProperty$/;var config={vars:"all",args:"after-used",ignoreRestSiblings:false,caughtErrors:"none"};var firstOption=context.options[0];if(firstOption){if(typeof firstOption==="string"){config.vars=firstOption}else{config.vars=firstOption.vars||config.vars;config.args=firstOption.args||config.args;config.ignoreRestSiblings=firstOption.ignoreRestSiblings||config.ignoreRestSiblings;config.caughtErrors=firstOption.caughtErrors||config.caughtErrors;if(firstOption.varsIgnorePattern){config.varsIgnorePattern=new RegExp(firstOption.varsIgnorePattern)}if(firstOption.argsIgnorePattern){config.argsIgnorePattern=new RegExp(firstOption.argsIgnorePattern)}if(firstOption.caughtErrorsIgnorePattern){config.caughtErrorsIgnorePattern=new RegExp(firstOption.caughtErrorsIgnorePattern)}}}var STATEMENT_TYPE=/(?:Statement|Declaration)$/;function isExported(variable){var definition=variable.defs[0];if(definition){var node=definition.node;if(node.type==="VariableDeclarator"){node=node.parent}else if(definition.type==="Parameter"){return false}return node.parent.type.indexOf("Export")===0}return false}function hasRestSpreadSibling(variable){if(config.ignoreRestSiblings){return variable.defs.some(function(def){var propertyNode=def.name.parent;var patternNode=propertyNode.parent;return propertyNode.type==="Property"&&patternNode.type==="ObjectPattern"&&REST_PROPERTY_TYPE.test(patternNode.properties[patternNode.properties.length-1].type)})}return false}function isReadRef(ref){return ref.isRead()}function isSelfReference(ref,nodes){var scope=ref.from;while(scope){if(nodes.indexOf(scope.block)>=0){return true}scope=scope.upper}return false}function isInside(inner,outer){return inner.range[0]>=outer.range[0]&&inner.range[1]<=outer.range[1]}function getRhsNode(ref,prevRhsNode){var id=ref.identifier;var parent=id.parent;var granpa=parent.parent;var refScope=ref.from.variableScope;var varScope=ref.resolved.scope.variableScope;var canBeUsedLater=refScope!==varScope||astUtils.isInLoop(id);if(prevRhsNode&&isInside(id,prevRhsNode)){return prevRhsNode}if(parent.type==="AssignmentExpression"&&granpa.type==="ExpressionStatement"&&id===parent.left&&!canBeUsedLater){return parent.right}return null}function isStorableFunction(funcNode,rhsNode){var node=funcNode;var parent=funcNode.parent;while(parent&&isInside(parent,rhsNode)){switch(parent.type){case"SequenceExpression":if(parent.expressions[parent.expressions.length-1]!==node){return false}break;case"CallExpression":case"NewExpression":return parent.callee!==node;case"AssignmentExpression":case"TaggedTemplateExpression":case"YieldExpression":return true;default:if(STATEMENT_TYPE.test(parent.type)){return true}}node=parent;parent=parent.parent}return false}function isInsideOfStorableFunction(id,rhsNode){var funcNode=astUtils.getUpperFunction(id);return funcNode&&isInside(funcNode,rhsNode)&&isStorableFunction(funcNode,rhsNode)}function isReadForItself(ref,rhsNode){var id=ref.identifier;var parent=id.parent;var granpa=parent.parent;return ref.isRead()&&(parent.type==="AssignmentExpression"&&granpa.type==="ExpressionStatement"&&parent.left===id||parent.type==="UpdateExpression"&&granpa.type==="ExpressionStatement"||rhsNode&&isInside(id,rhsNode)&&!isInsideOfStorableFunction(id,rhsNode))}function isForInRef(ref){var target=ref.identifier.parent;if(target.type==="VariableDeclarator"){target=target.parent.parent}if(target.type!=="ForInStatement"){return false}if(target.body.type==="BlockStatement"){target=target.body.body[0]}else{target=target.body}if(!target){return false}return target.type==="ReturnStatement"}function isUsedVariable(variable){var functionNodes=variable.defs.filter(function(def){return def.type==="FunctionName"}).map(function(def){return def.node}),isFunctionDefinition=functionNodes.length>0;var rhsNode=null;return variable.references.some(function(ref){if(isForInRef(ref)){return true}var forItself=isReadForItself(ref,rhsNode);rhsNode=getRhsNode(ref,rhsNode);return isReadRef(ref)&&!forItself&&!(isFunctionDefinition&&isSelfReference(ref,functionNodes))})}function isLastInNonIgnoredParameters(variable){var def=variable.defs[0];if(def.index===def.node.params.length-1){return true}if(config.argsIgnorePattern){var params=context.getDeclaredVariables(def.node);var posteriorParams=params.slice(params.indexOf(variable)+1);if(posteriorParams.every(function(v){return v.references.length===0&&config.argsIgnorePattern.test(v.name)})){return true}}return false}function collectUnusedVariables(scope,unusedVars){var variables=scope.variables;var childScopes=scope.childScopes;var i=void 0,l=void 0;if(scope.type!=="TDZ"&&(scope.type!=="global"||config.vars==="all")){for(i=0,l=variables.length;i0){context.report({node:unusedVar.identifiers[0],message:unusedVar.references.some(function(ref){return ref.isWrite()})?ASSIGNED_MESSAGE:DEFINED_MESSAGE,data:unusedVar})}}}}}}},{"../ast-utils":22,lodash:16}],211:[function(require,module,exports){"use strict";var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj};var SENTINEL_TYPE=/^(?:(?:Function|Class)(?:Declaration|Expression)|ArrowFunctionExpression|CatchClause|ImportDeclaration|ExportNamedDeclaration)$/;var FOR_IN_OF_TYPE=/^For(?:In|Of)Statement$/;function parseOptions(options){var functions=true;var classes=true;var variables=true;if(typeof options==="string"){functions=options!=="nofunc"}else if((typeof options==="undefined"?"undefined":_typeof(options))==="object"&&options!==null){functions=options.functions!==false;classes=options.classes!==false;variables=options.variables!==false}return{functions:functions,classes:classes,variables:variables}}function isFunction(variable){return variable.defs[0].type==="FunctionName"}function isOuterClass(variable,reference){return variable.defs[0].type==="ClassName"&&variable.scope.variableScope!==reference.from.variableScope}function isOuterVariable(variable,reference){return variable.defs[0].type==="Variable"&&variable.scope.variableScope!==reference.from.variableScope}function isInRange(node,location){return node&&node.range[0]<=location&&location<=node.range[1]}function isInInitializer(variable,reference){if(variable.scope!==reference.from){return false}var node=variable.identifiers[0].parent;var location=reference.identifier.range[1];while(node){if(node.type==="VariableDeclarator"){if(isInRange(node.init,location)){return true}if(FOR_IN_OF_TYPE.test(node.parent.parent.type)&&isInRange(node.parent.parent.right,location)){return true}break}else if(node.type==="AssignmentPattern"){if(isInRange(node.right,location)){return true}}else if(SENTINEL_TYPE.test(node.type)){break}node=node.parent}return false}module.exports={meta:{docs:{description:"disallow the use of variables before they are defined",category:"Variables",recommended:false},schema:[{oneOf:[{enum:["nofunc"]},{type:"object",properties:{functions:{type:"boolean"},classes:{type:"boolean"},variables:{type:"boolean"}},additionalProperties:false}]}]},create:function create(context){var options=parseOptions(context.options[0]);function isForbidden(variable,reference){if(isFunction(variable)){return options.functions}if(isOuterClass(variable,reference)){return options.classes}if(isOuterVariable(variable,reference)){return options.variables}return true}function findVariablesInScope(scope){scope.references.forEach(function(reference){var variable=reference.resolved;if(reference.init||!variable||variable.identifiers.length===0||variable.identifiers[0].range[1]=6){ruleDefinition["BlockStatement:exit"]=ruleDefinition["SwitchStatement:exit"]=findVariables;ruleDefinition["ArrowFunctionExpression:exit"]=function(node){if(node.body.type!=="BlockStatement"){findVariables()}}}else{ruleDefinition["FunctionExpression:exit"]=ruleDefinition["FunctionDeclaration:exit"]=ruleDefinition["ArrowFunctionExpression:exit"]=findVariables}return ruleDefinition}}},{}],212:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");function isCallOrNonVariadicApply(node){return node.callee.type==="MemberExpression"&&node.callee.property.type==="Identifier"&&node.callee.computed===false&&(node.callee.property.name==="call"&&node.arguments.length>=1||node.callee.property.name==="apply"&&node.arguments.length===2&&node.arguments[1].type==="ArrayExpression")}function equalTokens(left,right,sourceCode){var tokensL=sourceCode.getTokens(left);var tokensR=sourceCode.getTokens(right);if(tokensL.length!==tokensR.length){return false}for(var i=0;i=2}function isUsedFromOutsideOf(scopeNode){function isOutsideOfScope(reference){var scope=scopeNode.range;var id=reference.identifier.range;return id[0]scope[1]}return function(variable){return variable.references.some(isOutsideOfScope)}}function hasReferenceInTDZ(node){var initStart=node.range[0];var initEnd=node.range[1];return function(variable){var id=variable.defs[0].name;var idStart=id.range[0];var defaultValue=id.parent.type==="AssignmentPattern"?id.parent.right:null;var defaultStart=defaultValue&&defaultValue.range[0];var defaultEnd=defaultValue&&defaultValue.range[1];return variable.references.some(function(reference){var start=reference.identifier.range[0];var end=reference.identifier.range[1];return!reference.init&&(start=defaultStart&&end<=defaultEnd||start>=initStart&&end<=initEnd)})}}module.exports={meta:{docs:{description:"require `let` or `const` instead of `var`",category:"ECMAScript 6",recommended:false},schema:[],fixable:"code"},create:function create(context){var sourceCode=context.getSourceCode();function hasSelfReferenceInTDZ(declarator){if(!declarator.init){return false}var variables=context.getDeclaredVariables(declarator);return variables.some(hasReferenceInTDZ(declarator.init))}function canFix(node){var variables=context.getDeclaredVariables(node);var scopeNode=getScopeNode(node);if(node.parent.type==="SwitchCase"||node.declarations.some(hasSelfReferenceInTDZ)||variables.some(isRedeclared)||variables.some(isUsedFromOutsideOf(scopeNode))){return false}if(astUtils.isInLoop(node)){if(variables.some(isReferencedInClosure)){return false}if(!isLoopAssignee(node)&&!isDeclarationInitialized(node)){return false}}if(!isLoopAssignee(node)&&!(node.parent.type==="ForStatement"&&node.parent.init===node)&&!astUtils.STATEMENT_LIST_PARENTS.has(node.parent.type)){return false}return true}function report(node){var varToken=sourceCode.getFirstToken(node);context.report({node:node,message:"Unexpected var, use let or const instead.",fix:function fix(fixer){if(canFix(node)){return fixer.replaceText(varToken,"let")}return null}})}return{"VariableDeclaration:exit":function VariableDeclarationExit(node){if(node.kind==="var"){report(node)}}}}}},{"../ast-utils":22}],220:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow `void` operators",category:"Best Practices",recommended:false},schema:[]},create:function create(context){return{UnaryExpression:function UnaryExpression(node){if(node.operator==="void"){context.report({node:node,message:"Expected 'undefined' and instead saw 'void'."})}}}}}},{}],221:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"disallow specified warning terms in comments",category:"Best Practices",recommended:false},schema:[{type:"object",properties:{terms:{type:"array",items:{type:"string"}},location:{enum:["start","anywhere"]}},additionalProperties:false}]},create:function create(context){var sourceCode=context.getSourceCode(),configuration=context.options[0]||{},warningTerms=configuration.terms||["todo","fixme","xxx"],location=configuration.location||"start",selfConfigRegEx=/\bno-warning-comments\b/;function convertToRegExp(term){var escaped=term.replace(/[-/\\$^*+?.()|[\]{}]/g,"\\$&");var prefix=void 0;var suffix=/\w$/.test(term)?"\\b":"";if(location==="start"){prefix="^\\s*"}else if(/^\w/.test(term)){prefix="\\b"}else{prefix=""}return new RegExp(prefix+escaped+suffix,"i")}var warningRegExps=warningTerms.map(convertToRegExp);function commentContainsWarningTerm(comment){var matches=[];warningRegExps.forEach(function(regex,index){if(regex.test(comment)){matches.push(warningTerms[index])}});return matches}function checkComment(node){if(astUtils.isDirectiveComment(node)&&selfConfigRegEx.test(node.value)){return}var matches=commentContainsWarningTerm(node.value);matches.forEach(function(matchedTerm){context.report({node:node,message:"Unexpected '{{matchedTerm}}' comment.",data:{matchedTerm:matchedTerm}})})}return{Program:function Program(){var comments=sourceCode.getAllComments();comments.filter(function(token){return token.type!=="Shebang"}).forEach(checkComment)}}}}},{"../ast-utils":22}],222:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"disallow whitespace before properties",category:"Stylistic Issues",recommended:false},fixable:"whitespace",schema:[]},create:function create(context){var sourceCode=context.getSourceCode();function reportError(node,leftToken,rightToken){var replacementText=node.computed?"":".";context.report({node:node,message:"Unexpected whitespace before property {{propName}}.",data:{propName:sourceCode.getText(node.property)},fix:function fix(fixer){if(!node.computed&&astUtils.isDecimalInteger(node.object)){return null}return fixer.replaceTextRange([leftToken.range[1],rightToken.range[0]],replacementText)}})}return{MemberExpression:function MemberExpression(node){var rightToken=void 0;var leftToken=void 0;if(!astUtils.isTokenOnSameLine(node.object,node.property)){return}if(node.computed){rightToken=sourceCode.getTokenBefore(node.property,astUtils.isOpeningBracketToken);leftToken=sourceCode.getTokenBefore(rightToken)}else{rightToken=sourceCode.getFirstToken(node.property);leftToken=sourceCode.getTokenBefore(rightToken,1)}if(sourceCode.isSpaceBetweenTokens(leftToken,rightToken)){reportError(node,leftToken,rightToken)}}}}}},{"../ast-utils":22}],223:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"disallow `with` statements",category:"Best Practices",recommended:false},schema:[]},create:function create(context){return{WithStatement:function WithStatement(node){context.report({node:node,message:"Unexpected use of 'with' statement."})}}}}},{}],224:[function(require,module,exports){"use strict";var POSITION_SCHEMA={enum:["beside","below","any"]};module.exports={meta:{docs:{description:"enforce the location of single-line statements",category:"Stylistic Issues",recommended:false},fixable:"whitespace",schema:[POSITION_SCHEMA,{properties:{overrides:{properties:{if:POSITION_SCHEMA,else:POSITION_SCHEMA,while:POSITION_SCHEMA,do:POSITION_SCHEMA,for:POSITION_SCHEMA},additionalProperties:false}},additionalProperties:false}]},create:function create(context){var sourceCode=context.getSourceCode();function getOption(keywordName){return context.options[1]&&context.options[1].overrides&&context.options[1].overrides[keywordName]||context.options[0]||"beside"}function validateStatement(node,keywordName){var option=getOption(keywordName);if(node.type==="BlockStatement"||option==="any"){return}var tokenBefore=sourceCode.getTokenBefore(node);if(tokenBefore.loc.end.line===node.loc.start.line&&option==="below"){context.report({node:node,message:"Expected a linebreak before this statement.",fix:function fix(fixer){return fixer.insertTextBefore(node,"\n")}})}else if(tokenBefore.loc.end.line!==node.loc.start.line&&option==="beside"){context.report({node:node,message:"Expected no linebreak before this statement.",fix:function fix(fixer){if(sourceCode.getText().slice(tokenBefore.range[1],node.range[0]).trim()){return null}return fixer.replaceTextRange([tokenBefore.range[1],node.range[0]]," ")}})}}return{IfStatement:function IfStatement(node){validateStatement(node.consequent,"if");if(node.alternate&&node.alternate.type!=="IfStatement"){validateStatement(node.alternate,"else")}},WhileStatement:function WhileStatement(node){return validateStatement(node.body,"while")},DoWhileStatement:function DoWhileStatement(node){return validateStatement(node.body,"do")},ForStatement:function ForStatement(node){return validateStatement(node.body,"for")},ForInStatement:function ForInStatement(node){return validateStatement(node.body,"for")},ForOfStatement:function ForOfStatement(node){return validateStatement(node.body,"for")}}}}},{}],225:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");var OPTION_VALUE={oneOf:[{enum:["always","never"]},{type:"object",properties:{multiline:{type:"boolean"},minProperties:{type:"integer",minimum:0},consistent:{type:"boolean"}},additionalProperties:false,minProperties:1}]};function normalizeOptionValue(value){var multiline=false;var minProperties=Number.POSITIVE_INFINITY;var consistent=false;if(value){if(value==="always"){minProperties=0}else if(value==="never"){minProperties=Number.POSITIVE_INFINITY}else{multiline=Boolean(value.multiline);minProperties=value.minProperties||Number.POSITIVE_INFINITY;consistent=Boolean(value.consistent)}}else{multiline=true}return{multiline:multiline,minProperties:minProperties,consistent:consistent}}function normalizeOptions(options){if(options&&(options.ObjectExpression||options.ObjectPattern)){return{ObjectExpression:normalizeOptionValue(options.ObjectExpression),ObjectPattern:normalizeOptionValue(options.ObjectPattern)}}var value=normalizeOptionValue(options);return{ObjectExpression:value,ObjectPattern:value}}module.exports={meta:{docs:{description:"enforce consistent line breaks inside braces",category:"Stylistic Issues",recommended:false},fixable:"whitespace",schema:[{oneOf:[OPTION_VALUE,{type:"object",properties:{ObjectExpression:OPTION_VALUE,ObjectPattern:OPTION_VALUE},additionalProperties:false,minProperties:1}]}]},create:function create(context){var sourceCode=context.getSourceCode();var normalizedOptions=normalizeOptions(context.options[0]);function check(node){var options=normalizedOptions[node.type];var openBrace=sourceCode.getFirstToken(node);var closeBrace=sourceCode.getLastToken(node);var first=sourceCode.getTokenAfter(openBrace,{includeComments:true});var last=sourceCode.getTokenBefore(closeBrace,{includeComments:true});var needsLinebreaks=node.properties.length>=options.minProperties||options.multiline&&node.properties.length>0&&first.loc.start.line!==last.loc.end.line;first=sourceCode.getTokenAfter(openBrace);last=sourceCode.getTokenBefore(closeBrace);if(needsLinebreaks){if(astUtils.isTokenOnSameLine(openBrace,first)){context.report({message:"Expected a line break after this opening brace.",node:node,loc:openBrace.loc.start,fix:function fix(fixer){return fixer.insertTextAfter(openBrace,"\n")}})}if(astUtils.isTokenOnSameLine(last,closeBrace)){context.report({message:"Expected a line break before this closing brace.",node:node,loc:closeBrace.loc.start,fix:function fix(fixer){return fixer.insertTextBefore(closeBrace,"\n")}})}}else{var consistent=options.consistent;var hasLineBreakBetweenOpenBraceAndFirst=!astUtils.isTokenOnSameLine(openBrace,first);var hasLineBreakBetweenCloseBraceAndLast=!astUtils.isTokenOnSameLine(last,closeBrace);if(!consistent&&hasLineBreakBetweenOpenBraceAndFirst||consistent&&hasLineBreakBetweenOpenBraceAndFirst&&!hasLineBreakBetweenCloseBraceAndLast){context.report({message:"Unexpected line break after this opening brace.",node:node,loc:openBrace.loc.start,fix:function fix(fixer){return fixer.removeRange([openBrace.range[1],first.range[0]])}})}if(!consistent&&hasLineBreakBetweenCloseBraceAndLast||consistent&&!hasLineBreakBetweenOpenBraceAndFirst&&hasLineBreakBetweenCloseBraceAndLast){context.report({message:"Unexpected line break before this closing brace.",node:node,loc:closeBrace.loc.start,fix:function fix(fixer){return fixer.removeRange([last.range[1],closeBrace.range[0]])}})}}}return{ObjectExpression:check,ObjectPattern:check}}}},{"../ast-utils":22}],226:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"enforce consistent spacing inside braces",category:"Stylistic Issues",recommended:false},fixable:"whitespace",schema:[{enum:["always","never"]},{type:"object",properties:{arraysInObjects:{type:"boolean"},objectsInObjects:{type:"boolean"}},additionalProperties:false}]},create:function create(context){var spaced=context.options[0]==="always",sourceCode=context.getSourceCode();function isOptionSet(option){return context.options[1]?context.options[1][option]===!spaced:false}var options={spaced:spaced,arraysInObjectsException:isOptionSet("arraysInObjects"),objectsInObjectsException:isOptionSet("objectsInObjects")};function reportNoBeginningSpace(node,token){context.report({node:node,loc:token.loc.start,message:"There should be no space after '{{token}}'.",data:{token:token.value},fix:function fix(fixer){var nextToken=context.getSourceCode().getTokenAfter(token);return fixer.removeRange([token.range[1],nextToken.range[0]])}})}function reportNoEndingSpace(node,token){context.report({node:node,loc:token.loc.start,message:"There should be no space before '{{token}}'.",data:{token:token.value},fix:function fix(fixer){var previousToken=context.getSourceCode().getTokenBefore(token);return fixer.removeRange([previousToken.range[1],token.range[0]])}})}function reportRequiredBeginningSpace(node,token){context.report({node:node,loc:token.loc.start,message:"A space is required after '{{token}}'.",data:{token:token.value},fix:function fix(fixer){return fixer.insertTextAfter(token," ")}})}function reportRequiredEndingSpace(node,token){context.report({node:node,loc:token.loc.start,message:"A space is required before '{{token}}'.",data:{token:token.value},fix:function fix(fixer){return fixer.insertTextBefore(token," ")}})}function validateBraceSpacing(node,first,second,penultimate,last){if(astUtils.isTokenOnSameLine(first,second)){var firstSpaced=sourceCode.isSpaceBetweenTokens(first,second);if(options.spaced&&!firstSpaced){reportRequiredBeginningSpace(node,first)}if(!options.spaced&&firstSpaced){reportNoBeginningSpace(node,first)}}if(astUtils.isTokenOnSameLine(penultimate,last)){var shouldCheckPenultimate=options.arraysInObjectsException&&astUtils.isClosingBracketToken(penultimate)||options.objectsInObjectsException&&astUtils.isClosingBraceToken(penultimate);var penultimateType=shouldCheckPenultimate&&sourceCode.getNodeByRangeIndex(penultimate.start).type;var closingCurlyBraceMustBeSpaced=options.arraysInObjectsException&&penultimateType==="ArrayExpression"||options.objectsInObjectsException&&(penultimateType==="ObjectExpression"||penultimateType==="ObjectPattern")?!options.spaced:options.spaced;var lastSpaced=sourceCode.isSpaceBetweenTokens(penultimate,last);if(closingCurlyBraceMustBeSpaced&&!lastSpaced){reportRequiredEndingSpace(node,last)}if(!closingCurlyBraceMustBeSpaced&&lastSpaced){reportNoEndingSpace(node,last)}}}function getClosingBraceOfObject(node){var lastProperty=node.properties[node.properties.length-1];return sourceCode.getTokenAfter(lastProperty,astUtils.isClosingBraceToken)}function checkForObject(node){if(node.properties.length===0){return}var first=sourceCode.getFirstToken(node),last=getClosingBraceOfObject(node),second=sourceCode.getTokenAfter(first),penultimate=sourceCode.getTokenBefore(last);validateBraceSpacing(node,first,second,penultimate,last)}function checkForImport(node){if(node.specifiers.length===0){return}var firstSpecifier=node.specifiers[0];var lastSpecifier=node.specifiers[node.specifiers.length-1];if(lastSpecifier.type!=="ImportSpecifier"){return}if(firstSpecifier.type!=="ImportSpecifier"){firstSpecifier=node.specifiers[1]}var first=sourceCode.getTokenBefore(firstSpecifier),last=sourceCode.getTokenAfter(lastSpecifier,astUtils.isNotCommaToken),second=sourceCode.getTokenAfter(first),penultimate=sourceCode.getTokenBefore(last);validateBraceSpacing(node,first,second,penultimate,last)}function checkForExport(node){if(node.specifiers.length===0){return}var firstSpecifier=node.specifiers[0],lastSpecifier=node.specifiers[node.specifiers.length-1],first=sourceCode.getTokenBefore(firstSpecifier),last=sourceCode.getTokenAfter(lastSpecifier,astUtils.isNotCommaToken),second=sourceCode.getTokenAfter(first),penultimate=sourceCode.getTokenBefore(last);validateBraceSpacing(node,first,second,penultimate,last)}return{ObjectPattern:checkForObject,ObjectExpression:checkForObject,ImportDeclaration:checkForImport,ExportNamedDeclaration:checkForExport}}}},{"../ast-utils":22}],227:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"enforce placing object properties on separate lines",category:"Stylistic Issues",recommended:false},schema:[{type:"object",properties:{allowMultiplePropertiesPerLine:{type:"boolean"}},additionalProperties:false}],fixable:"whitespace"},create:function create(context){var allowSameLine=context.options[0]&&Boolean(context.options[0].allowMultiplePropertiesPerLine);var errorMessage=allowSameLine?"Object properties must go on a new line if they aren't all on the same line.":"Object properties must go on a new line.";var sourceCode=context.getSourceCode();return{ObjectExpression:function ObjectExpression(node){if(allowSameLine){if(node.properties.length>1){var firstTokenOfFirstProperty=sourceCode.getFirstToken(node.properties[0]);var lastTokenOfLastProperty=sourceCode.getLastToken(node.properties[node.properties.length-1]);if(firstTokenOfFirstProperty.loc.end.line===lastTokenOfLastProperty.loc.start.line){return}}}var _loop=function _loop(i){var lastTokenOfPreviousProperty=sourceCode.getLastToken(node.properties[i-1]);var firstTokenOfCurrentProperty=sourceCode.getFirstToken(node.properties[i]);if(lastTokenOfPreviousProperty.loc.end.line===firstTokenOfCurrentProperty.loc.start.line){context.report({node:node,loc:firstTokenOfCurrentProperty.loc.start,message:errorMessage,fix:function fix(fixer){var comma=sourceCode.getTokenBefore(firstTokenOfCurrentProperty);var rangeAfterComma=[comma.range[1],firstTokenOfCurrentProperty.range[0]];if(sourceCode.text.slice(rangeAfterComma[0],rangeAfterComma[1]).trim()){return null}return fixer.replaceTextRange(rangeAfterComma,"\n")}})}};for(var i=1;i0){var shorthandProperties=properties.filter(isShorthand);if(shorthandProperties.length!==properties.length){if(shorthandProperties.length>0){context.report({node:node,message:"Unexpected mix of shorthand and non-shorthand properties."})}else if(checkRedundancy){var canAlwaysUseShorthand=properties.every(isRedundant);if(canAlwaysUseShorthand){context.report({node:node,message:"Expected shorthand for all properties."})}}}}}function makeFunctionShorthand(fixer,node){var firstKeyToken=node.computed?sourceCode.getFirstToken(node,astUtils.isOpeningBracketToken):sourceCode.getFirstToken(node.key);var lastKeyToken=node.computed?sourceCode.getFirstTokenBetween(node.key,node.value,astUtils.isClosingBracketToken):sourceCode.getLastToken(node.key);var keyText=sourceCode.text.slice(firstKeyToken.range[0],lastKeyToken.range[1]);var keyPrefix="";if(node.value.generator){keyPrefix="*"}else if(node.value.async){keyPrefix="async "}if(node.value.type==="FunctionExpression"){var functionToken=sourceCode.getTokens(node.value).find(function(token){return token.type==="Keyword"&&token.value==="function"});var tokenBeforeParams=node.value.generator?sourceCode.getTokenAfter(functionToken):functionToken;return fixer.replaceTextRange([firstKeyToken.range[0],node.range[1]],keyPrefix+keyText+sourceCode.text.slice(tokenBeforeParams.range[1],node.value.range[1]))}var arrowToken=sourceCode.getTokens(node.value).find(function(token){return token.value==="=>"});var tokenBeforeArrow=sourceCode.getTokenBefore(arrowToken);var hasParensAroundParameters=tokenBeforeArrow.type==="Punctuator"&&tokenBeforeArrow.value===")";var oldParamText=sourceCode.text.slice(sourceCode.getFirstToken(node.value,node.value.async?1:0).range[0],tokenBeforeArrow.range[1]);var newParamText=hasParensAroundParameters?oldParamText:"("+oldParamText+")";return fixer.replaceTextRange([firstKeyToken.range[0],node.range[1]],keyPrefix+keyText+newParamText+sourceCode.text.slice(arrowToken.range[1],node.value.range[1]))}function makeFunctionLongform(fixer,node){var firstKeyToken=node.computed?sourceCode.getTokens(node).find(function(token){return token.value==="["}):sourceCode.getFirstToken(node.key);var lastKeyToken=node.computed?sourceCode.getTokensBetween(node.key,node.value).find(function(token){return token.value==="]"}):sourceCode.getLastToken(node.key);var keyText=sourceCode.text.slice(firstKeyToken.range[0],lastKeyToken.range[1]);var functionHeader="function";if(node.value.generator){functionHeader="function*"}else if(node.value.async){functionHeader="async function"}return fixer.replaceTextRange([node.range[0],lastKeyToken.range[1]],keyText+": "+functionHeader)}var lexicalScopeStack=[];var arrowsWithLexicalIdentifiers=new WeakSet;var argumentsIdentifiers=new WeakSet;function enterFunction(){lexicalScopeStack.unshift(new Set);context.getScope().variables.filter(function(variable){return variable.name==="arguments"}).forEach(function(variable){variable.references.map(function(ref){return ref.identifier}).forEach(function(identifier){return argumentsIdentifiers.add(identifier)})})}function exitFunction(){lexicalScopeStack.shift()}function reportLexicalIdentifier(){lexicalScopeStack[0].forEach(function(arrowFunction){return arrowsWithLexicalIdentifiers.add(arrowFunction)})}return{Program:enterFunction,FunctionDeclaration:enterFunction,FunctionExpression:enterFunction,"Program:exit":exitFunction,"FunctionDeclaration:exit":exitFunction,"FunctionExpression:exit":exitFunction,ArrowFunctionExpression:function ArrowFunctionExpression(node){lexicalScopeStack[0].add(node)},"ArrowFunctionExpression:exit":function ArrowFunctionExpressionExit(node){lexicalScopeStack[0].delete(node)},ThisExpression:reportLexicalIdentifier,Super:reportLexicalIdentifier,MetaProperty:function MetaProperty(node){if(node.meta.name==="new"&&node.property.name==="target"){reportLexicalIdentifier()}},Identifier:function Identifier(node){if(argumentsIdentifiers.has(node)){reportLexicalIdentifier()}},ObjectExpression:function ObjectExpression(node){if(APPLY_CONSISTENT){checkConsistency(node,false)}else if(APPLY_CONSISTENT_AS_NEEDED){checkConsistency(node,true)}},"Property:exit":function PropertyExit(node){var isConciseProperty=node.method||node.shorthand;if(node.parent.type==="ObjectPattern"){return}if(node.kind==="get"||node.kind==="set"){return}if(node.computed&&node.value.type!=="FunctionExpression"&&node.value.type!=="ArrowFunctionExpression"){return}if(isConciseProperty){if(node.method&&(APPLY_NEVER||AVOID_QUOTES&&isStringLiteral(node.key))){var message=APPLY_NEVER?"Expected longform method syntax.":"Expected longform method syntax for string literal keys.";context.report({node:node,message:message,fix:function fix(fixer){return makeFunctionLongform(fixer,node)}})}else if(APPLY_NEVER){context.report({node:node,message:"Expected longform property syntax.",fix:function fix(fixer){return fixer.insertTextAfter(node.key,": "+node.key.name)}})}}else if(APPLY_TO_METHODS&&!node.value.id&&(node.value.type==="FunctionExpression"||node.value.type==="ArrowFunctionExpression")){if(IGNORE_CONSTRUCTORS&&node.key.type==="Identifier"&&isConstructor(node.key.name)){return}if(AVOID_QUOTES&&isStringLiteral(node.key)){return}if(node.value.type==="FunctionExpression"||node.value.type==="ArrowFunctionExpression"&&node.value.body.type==="BlockStatement"&&AVOID_EXPLICIT_RETURN_ARROWS&&!arrowsWithLexicalIdentifiers.has(node.value)){context.report({node:node,message:"Expected method shorthand.",fix:function fix(fixer){return makeFunctionShorthand(fixer,node)}})}}else if(node.value.type==="Identifier"&&node.key.name===node.value.name&&APPLY_TO_PROPS){context.report({node:node,message:"Expected property shorthand.",fix:function fix(fixer){return fixer.replaceText(node,node.value.name)}})}else if(node.value.type==="Identifier"&&node.key.type==="Literal"&&node.key.value===node.value.name&&APPLY_TO_PROPS){if(AVOID_QUOTES){return}context.report({node:node,message:"Expected property shorthand.",fix:function fix(fixer){return fixer.replaceText(node,node.value.name)}})}}}}}},{"../ast-utils":22}],229:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"require or disallow newlines around variable declarations",category:"Stylistic Issues",recommended:false},schema:[{enum:["always","initializations"]}],fixable:"whitespace"},create:function create(context){var ERROR_MESSAGE="Expected variable declaration to be on a new line.";var always=context.options[0]==="always";function isForTypeSpecifier(keyword){return keyword==="ForStatement"||keyword==="ForInStatement"||keyword==="ForOfStatement"}function checkForNewLine(node){if(isForTypeSpecifier(node.parent.type)){return}var declarations=node.declarations;var prev=void 0;declarations.forEach(function(current){if(prev&&prev.loc.end.line===current.loc.start.line){if(always||prev.init||current.init){context.report({node:node,message:ERROR_MESSAGE,loc:current.loc.start,fix:function fix(fixer){return fixer.insertTextBefore(current,"\n")}})}}prev=current})}return{VariableDeclaration:checkForNewLine}}}},{}],230:[function(require,module,exports){"use strict";var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj};module.exports={meta:{docs:{description:"enforce variables to be declared either together or separately in functions",category:"Stylistic Issues",recommended:false},schema:[{oneOf:[{enum:["always","never"]},{type:"object",properties:{var:{enum:["always","never"]},let:{enum:["always","never"]},const:{enum:["always","never"]}},additionalProperties:false},{type:"object",properties:{initialized:{enum:["always","never"]},uninitialized:{enum:["always","never"]}},additionalProperties:false}]}]},create:function create(context){var MODE_ALWAYS="always",MODE_NEVER="never";var mode=context.options[0]||MODE_ALWAYS;var options={};if(typeof mode==="string"){options.var={uninitialized:mode,initialized:mode};options.let={uninitialized:mode,initialized:mode};options.const={uninitialized:mode,initialized:mode}}else if((typeof mode==="undefined"?"undefined":_typeof(mode))==="object"){if(mode.hasOwnProperty("var")&&typeof mode.var==="string"){options.var={uninitialized:mode.var,initialized:mode.var}}if(mode.hasOwnProperty("let")&&typeof mode.let==="string"){options.let={uninitialized:mode.let,initialized:mode.let}}if(mode.hasOwnProperty("const")&&typeof mode.const==="string"){options.const={uninitialized:mode.const,initialized:mode.const}}if(mode.hasOwnProperty("uninitialized")){if(!options.var){options.var={}}if(!options.let){options.let={}}if(!options.const){options.const={}}options.var.uninitialized=mode.uninitialized;options.let.uninitialized=mode.uninitialized;options.const.uninitialized=mode.uninitialized}if(mode.hasOwnProperty("initialized")){if(!options.var){options.var={}}if(!options.let){options.let={}}if(!options.const){options.const={}}options.var.initialized=mode.initialized;options.let.initialized=mode.initialized;options.const.initialized=mode.initialized}}var functionStack=[];var blockStack=[];function startBlock(){blockStack.push({let:{initialized:false,uninitialized:false},const:{initialized:false,uninitialized:false}})}function startFunction(){functionStack.push({initialized:false,uninitialized:false});startBlock()}function endBlock(){blockStack.pop()}function endFunction(){functionStack.pop();endBlock()}function recordTypes(statementType,declarations,currentScope){for(var i=0;i0){if(currentOptions.uninitialized===MODE_ALWAYS&¤tScope.uninitialized){return false}}if(declarationCounts.initialized>0){if(currentOptions.initialized===MODE_ALWAYS&¤tScope.initialized){return false}}recordTypes(statementType,declarations,currentScope);return true}return{Program:startFunction,FunctionDeclaration:startFunction,FunctionExpression:startFunction,ArrowFunctionExpression:startFunction,BlockStatement:startBlock,ForStatement:startBlock,ForInStatement:startBlock,ForOfStatement:startBlock,SwitchStatement:startBlock,VariableDeclaration:function VariableDeclaration(node){var parent=node.parent;var type=node.kind;if(!options[type]){return}var declarations=node.declarations;var declarationCounts=countDeclarations(declarations);if(!hasOnlyOneStatement(type,declarations)){if(options[type].initialized===MODE_ALWAYS&&options[type].uninitialized===MODE_ALWAYS){context.report({node:node,message:"Combine this with the previous '{{type}}' statement.",data:{type:type}})}else{if(options[type].initialized===MODE_ALWAYS){context.report({node:node,message:"Combine this with the previous '{{type}}' statement with initialized variables.",data:{type:type}})}if(options[type].uninitialized===MODE_ALWAYS){if(node.parent.left===node&&(node.parent.type==="ForInStatement"||node.parent.type==="ForOfStatement")){return}context.report({node:node,message:"Combine this with the previous '{{type}}' statement with uninitialized variables.",data:{type:type}})}}}if(parent.type!=="ForStatement"||parent.init!==node){var totalDeclarations=declarationCounts.uninitialized+declarationCounts.initialized;if(totalDeclarations>1){if(options[type].initialized===MODE_NEVER&&options[type].uninitialized===MODE_NEVER){context.report({node:node,message:"Split '{{type}}' declarations into multiple statements.",data:{type:type}})}else if(options[type].initialized===MODE_NEVER&&declarationCounts.initialized>0){context.report({node:node,message:"Split initialized '{{type}}' declarations into multiple statements.",data:{type:type}})}else if(options[type].uninitialized===MODE_NEVER&&declarationCounts.uninitialized>0){context.report({node:node,message:"Split uninitialized '{{type}}' declarations into multiple statements.",data:{type:type}})}}}},"ForStatement:exit":endBlock,"ForOfStatement:exit":endBlock,"ForInStatement:exit":endBlock,"SwitchStatement:exit":endBlock,"BlockStatement:exit":endBlock,"Program:exit":endFunction,"FunctionDeclaration:exit":endFunction,"FunctionExpression:exit":endFunction,"ArrowFunctionExpression:exit":endFunction}}}},{}],231:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");function isCommutativeOperatorWithShorthand(operator){return["*","&","^","|"].indexOf(operator)>=0}function isNonCommutativeOperatorWithShorthand(operator){return["+","-","/","%","<<",">>",">>>","**"].indexOf(operator)>=0}function same(a,b){if(a.type!==b.type){return false}switch(a.type){case"Identifier":return a.name===b.name;case"Literal":return a.value===b.value;case"MemberExpression":return same(a.object,b.object)&&same(a.property,b.property);default:return false}}function canBeFixed(node){return node.type==="Identifier"||node.type==="MemberExpression"&&node.object.type==="Identifier"&&(!node.computed||node.property.type==="Literal")}module.exports={meta:{docs:{description:"require or disallow assignment operator shorthand where possible",category:"Stylistic Issues",recommended:false},schema:[{enum:["always","never"]}],fixable:"code"},create:function create(context){var sourceCode=context.getSourceCode();function getOperatorToken(node){return sourceCode.getFirstTokenBetween(node.left,node.right,function(token){return token.value===node.operator})}function verify(node){if(node.operator!=="="||node.right.type!=="BinaryExpression"){return}var left=node.left;var expr=node.right;var operator=expr.operator;if(isCommutativeOperatorWithShorthand(operator)||isNonCommutativeOperatorWithShorthand(operator)){if(same(left,expr.left)){context.report({node:node,message:"Assignment can be replaced with operator assignment.",fix:function fix(fixer){if(canBeFixed(left)){var equalsToken=getOperatorToken(node);var operatorToken=getOperatorToken(expr);var leftText=sourceCode.getText().slice(node.range[0],equalsToken.range[0]);var rightText=sourceCode.getText().slice(operatorToken.range[1],node.right.range[1]);return fixer.replaceText(node,""+leftText+expr.operator+"="+rightText)}return null}})}else if(same(left,expr.right)&&isCommutativeOperatorWithShorthand(operator)){context.report({node:node,message:"Assignment can be replaced with operator assignment."})}}}function prohibit(node){if(node.operator!=="="){context.report({node:node,message:"Unexpected operator assignment shorthand.",fix:function fix(fixer){if(canBeFixed(node.left)){var operatorToken=getOperatorToken(node);var leftText=sourceCode.getText().slice(node.range[0],operatorToken.range[0]);var newOperator=node.operator.slice(0,-1);var rightText=void 0;if(astUtils.getPrecedence(node.right)<=astUtils.getPrecedence({type:"BinaryExpression",operator:newOperator})&&!astUtils.isParenthesised(sourceCode,node.right)){rightText=sourceCode.text.slice(operatorToken.range[1],node.right.range[0])+"("+sourceCode.getText(node.right)+")"}else{rightText=sourceCode.text.slice(operatorToken.range[1],node.range[1])}return fixer.replaceText(node,leftText+"= "+leftText+newOperator+rightText)}return null}})}}return{AssignmentExpression:context.options[0]!=="never"?verify:prohibit}}}},{"../ast-utils":22}],232:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"enforce consistent linebreak style for operators",category:"Stylistic Issues",recommended:false},schema:[{enum:["after","before","none",null]},{type:"object",properties:{overrides:{type:"object",properties:{anyOf:{type:"string",enum:["after","before","none","ignore"]}}}},additionalProperties:false}],fixable:"code"},create:function create(context){var usedDefaultGlobal=!context.options[0];var globalStyle=context.options[0]||"after";var options=context.options[1]||{};var styleOverrides=options.overrides?Object.assign({},options.overrides):{};if(usedDefaultGlobal&&!styleOverrides["?"]){styleOverrides["?"]="before"}if(usedDefaultGlobal&&!styleOverrides[":"]){styleOverrides[":"]="before"}var sourceCode=context.getSourceCode();function getFixer(operatorToken,desiredStyle){return function(fixer){var tokenBefore=sourceCode.getTokenBefore(operatorToken);var tokenAfter=sourceCode.getTokenAfter(operatorToken);var textBefore=sourceCode.text.slice(tokenBefore.range[1],operatorToken.range[0]);var textAfter=sourceCode.text.slice(operatorToken.range[1],tokenAfter.range[0]);var hasLinebreakBefore=!astUtils.isTokenOnSameLine(tokenBefore,operatorToken);var hasLinebreakAfter=!astUtils.isTokenOnSameLine(operatorToken,tokenAfter);var newTextBefore=void 0,newTextAfter=void 0;if(hasLinebreakBefore!==hasLinebreakAfter&&desiredStyle!=="none"){if(sourceCode.getTokenBefore(operatorToken,{includeComments:true})!==tokenBefore&&sourceCode.getTokenAfter(operatorToken,{includeComments:true})!==tokenAfter){return null}newTextBefore=textAfter;newTextAfter=textBefore}else{var LINEBREAK_REGEX=astUtils.createGlobalLinebreakMatcher();newTextBefore=desiredStyle==="before"||textBefore.trim()?textBefore:textBefore.replace(LINEBREAK_REGEX,"");newTextAfter=desiredStyle==="after"||textAfter.trim()?textAfter:textAfter.replace(LINEBREAK_REGEX,"");if(newTextBefore===textBefore&&newTextAfter===textAfter){return null}}if(newTextAfter===""&&tokenAfter.type==="Punctuator"&&"+-".includes(operatorToken.value)&&tokenAfter.value===operatorToken.value){newTextAfter+=" "}return fixer.replaceTextRange([tokenBefore.range[1],tokenAfter.range[0]],newTextBefore+operatorToken.value+newTextAfter)}}function validateNode(node,leftSide){var operatorToken=sourceCode.getTokenAfter(leftSide,astUtils.isNotClosingParenToken);var leftToken=sourceCode.getTokenBefore(operatorToken);var rightToken=sourceCode.getTokenAfter(operatorToken);var operator=operatorToken.value;var operatorStyleOverride=styleOverrides[operator];var style=operatorStyleOverride||globalStyle;var fix=getFixer(operatorToken,style);if(astUtils.isTokenOnSameLine(leftToken,operatorToken)&&astUtils.isTokenOnSameLine(operatorToken,rightToken)){}else if(operatorStyleOverride!=="ignore"&&!astUtils.isTokenOnSameLine(leftToken,operatorToken)&&!astUtils.isTokenOnSameLine(operatorToken,rightToken)){context.report({node:node,loc:{line:operatorToken.loc.end.line,column:operatorToken.loc.end.column},message:"Bad line breaking before and after '{{operator}}'.",data:{operator:operator},fix:fix})}else if(style==="before"&&astUtils.isTokenOnSameLine(leftToken,operatorToken)){context.report({node:node,loc:{line:operatorToken.loc.end.line,column:operatorToken.loc.end.column},message:"'{{operator}}' should be placed at the beginning of the line.",data:{operator:operator},fix:fix})}else if(style==="after"&&astUtils.isTokenOnSameLine(operatorToken,rightToken)){context.report({node:node,loc:{line:operatorToken.loc.end.line,column:operatorToken.loc.end.column},message:"'{{operator}}' should be placed at the end of the line.",data:{operator:operator},fix:fix})}else if(style==="none"){context.report({node:node,loc:{line:operatorToken.loc.end.line,column:operatorToken.loc.end.column},message:"There should be no line break before or after '{{operator}}'.",data:{operator:operator},fix:fix})}}function validateBinaryExpression(node){validateNode(node,node.left)}return{BinaryExpression:validateBinaryExpression,LogicalExpression:validateBinaryExpression,AssignmentExpression:validateBinaryExpression,VariableDeclarator:function VariableDeclarator(node){if(node.init){validateNode(node,node.id)}},ConditionalExpression:function ConditionalExpression(node){validateNode(node,node.test);validateNode(node,node.consequent)}}}}},{"../ast-utils":22}],233:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"require or disallow padding within blocks",category:"Stylistic Issues",recommended:false},fixable:"whitespace",schema:[{oneOf:[{enum:["always","never"]},{type:"object",properties:{blocks:{enum:["always","never"]},switches:{enum:["always","never"]},classes:{enum:["always","never"]}},additionalProperties:false,minProperties:1}]}]},create:function create(context){var options={};var config=context.options[0]||"always";if(typeof config==="string"){var shouldHavePadding=config==="always";options.blocks=shouldHavePadding;options.switches=shouldHavePadding;options.classes=shouldHavePadding}else{if(config.hasOwnProperty("blocks")){options.blocks=config.blocks==="always"}if(config.hasOwnProperty("switches")){options.switches=config.switches==="always"}if(config.hasOwnProperty("classes")){options.classes=config.classes==="always"}}var ALWAYS_MESSAGE="Block must be padded by blank lines.",NEVER_MESSAGE="Block must not be padded by blank lines.";var sourceCode=context.getSourceCode();function getOpenBrace(node){if(node.type==="SwitchStatement"){return sourceCode.getTokenBefore(node.cases[0])}return sourceCode.getFirstToken(node)}function isComment(node){return node.type==="Line"||node.type==="Block"}function isPaddingBetweenTokens(first,second){return second.loc.start.line-first.loc.end.line>=2}function getFirstBlockToken(token){var prev=token,first=token;do{prev=first;first=sourceCode.getTokenAfter(first,{includeComments:true})}while(isComment(first)&&first.loc.start.line===prev.loc.end.line);return first}function getLastBlockToken(token){var last=token,next=token;do{next=last;last=sourceCode.getTokenBefore(last,{includeComments:true})}while(isComment(last)&&last.loc.end.line===next.loc.start.line);return last}function requirePaddingFor(node){switch(node.type){case"BlockStatement":return options.blocks;case"SwitchStatement":return options.switches;case"ClassBody":return options.classes;default:throw new Error("unreachable")}}function checkPadding(node){var openBrace=getOpenBrace(node),firstBlockToken=getFirstBlockToken(openBrace),tokenBeforeFirst=sourceCode.getTokenBefore(firstBlockToken,{includeComments:true}),closeBrace=sourceCode.getLastToken(node),lastBlockToken=getLastBlockToken(closeBrace),tokenAfterLast=sourceCode.getTokenAfter(lastBlockToken,{includeComments:true}),blockHasTopPadding=isPaddingBetweenTokens(tokenBeforeFirst,firstBlockToken),blockHasBottomPadding=isPaddingBetweenTokens(lastBlockToken,tokenAfterLast);if(requirePaddingFor(node)){if(!blockHasTopPadding){context.report({node:node,loc:{line:tokenBeforeFirst.loc.start.line,column:tokenBeforeFirst.loc.start.column},fix:function fix(fixer){return fixer.insertTextAfter(tokenBeforeFirst,"\n")},message:ALWAYS_MESSAGE})}if(!blockHasBottomPadding){context.report({node:node,loc:{line:tokenAfterLast.loc.end.line,column:tokenAfterLast.loc.end.column-1},fix:function fix(fixer){return fixer.insertTextBefore(tokenAfterLast,"\n")},message:ALWAYS_MESSAGE})}}else{if(blockHasTopPadding){context.report({node:node,loc:{line:tokenBeforeFirst.loc.start.line,column:tokenBeforeFirst.loc.start.column},fix:function fix(fixer){return fixer.replaceTextRange([tokenBeforeFirst.end,firstBlockToken.start-firstBlockToken.loc.start.column],"\n")},message:NEVER_MESSAGE})}if(blockHasBottomPadding){context.report({node:node,loc:{line:tokenAfterLast.loc.end.line,column:tokenAfterLast.loc.end.column-1},message:NEVER_MESSAGE,fix:function fix(fixer){return fixer.replaceTextRange([lastBlockToken.end,tokenAfterLast.start-tokenAfterLast.loc.start.column],"\n")}})}}}var rule={};if(options.hasOwnProperty("switches")){rule.SwitchStatement=function(node){if(node.cases.length===0){return}checkPadding(node)}}if(options.hasOwnProperty("blocks")){rule.BlockStatement=function(node){if(node.body.length===0){return}checkPadding(node)}}if(options.hasOwnProperty("classes")){rule.ClassBody=function(node){if(node.body.length===0){return}checkPadding(node)}}return rule}}},{}],234:[function(require,module,exports){"use strict";var _templateObject=_taggedTemplateLiteral(["^(s*?",")s*","(s*;?)$"],["^(\\s*?",")\\s*","(\\s*;?)$"]);function _taggedTemplateLiteral(strings,raw){return Object.freeze(Object.defineProperties(strings,{raw:{value:Object.freeze(raw)}}))}var astUtils=require("../ast-utils");var LT="["+Array.from(astUtils.LINEBREAKS).join("")+"]";var PADDING_LINE_SEQUENCE=new RegExp(String.raw(_templateObject,LT,LT));var CJS_EXPORT=/^(?:module\s*\.\s*)?exports(?:\s*\.|\s*\[|$)/;var CJS_IMPORT=/^require\(/;function newKeywordTester(keyword){return{test:function test(node,sourceCode){return sourceCode.getFirstToken(node).value===keyword}}}function newNodeTypeTester(type){return{test:function test(node){return node.type===type}}}function isIIFEStatement(node){if(node.type==="ExpressionStatement"){var call=node.expression;if(call.type==="UnaryExpression"){call=call.argument}return call.type==="CallExpression"&&astUtils.isFunction(call.callee)}return false}function isBlockLikeStatement(sourceCode,node){if(node.type==="DoWhileStatement"&&node.body.type==="BlockStatement"){return true}if(isIIFEStatement(node)){return true}var lastToken=sourceCode.getLastToken(node,astUtils.isNotSemicolonToken);var belongingNode=astUtils.isClosingBraceToken(lastToken)?sourceCode.getNodeByRangeIndex(lastToken.range[0]):null;return Boolean(belongingNode)&&(belongingNode.type==="BlockStatement"||belongingNode.type==="SwitchStatement")}function isDirective(node,sourceCode){return node.type==="ExpressionStatement"&&(node.parent.type==="Program"||node.parent.type==="BlockStatement"&&astUtils.isFunction(node.parent.parent))&&node.expression.type==="Literal"&&typeof node.expression.value==="string"&&!astUtils.isParenthesised(sourceCode,node.expression)}function isDirectivePrologue(node,sourceCode){if(isDirective(node,sourceCode)){var _iteratorNormalCompletion=true;var _didIteratorError=false;var _iteratorError=undefined;try{for(var _iterator=node.parent.body[Symbol.iterator](),_step;!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=true){var sibling=_step.value;if(sibling===node){break}if(!isDirective(sibling,sourceCode)){return false}}}catch(err){_didIteratorError=true;_iteratorError=err}finally{try{if(!_iteratorNormalCompletion&&_iterator.return){_iterator.return()}}finally{if(_didIteratorError){throw _iteratorError}}}return true}return false}function getActualLastToken(sourceCode,node){var semiToken=sourceCode.getLastToken(node);var prevToken=sourceCode.getTokenBefore(semiToken);var nextToken=sourceCode.getTokenAfter(semiToken);var isSemicolonLessStyle=Boolean(prevToken&&nextToken&&prevToken.range[0]>=node.range[0]&&astUtils.isSemicolonToken(semiToken)&&semiToken.loc.start.line!==prevToken.loc.end.line&&semiToken.loc.end.line===nextToken.loc.start.line);return isSemicolonLessStyle?prevToken:semiToken}function replacerToRemovePaddingLines(_,trailingSpaces,indentSpaces){return trailingSpaces+indentSpaces}function verifyForAny(){}function verifyForNever(context,prevNode,nextNode,paddingLines){if(paddingLines.length===0){return}context.report({node:nextNode,message:"Unexpected blank line before this statement.",fix:function fix(fixer){if(paddingLines.length>=2){return null}var prevToken=paddingLines[0][0];var nextToken=paddingLines[0][1];var start=prevToken.range[1];var end=nextToken.range[0];var text=context.getSourceCode().text.slice(start,end).replace(PADDING_LINE_SEQUENCE,replacerToRemovePaddingLines);return fixer.replaceTextRange([start,end],text)}})}function verifyForAlways(context,prevNode,nextNode,paddingLines){if(paddingLines.length>0){return}context.report({node:nextNode,message:"Expected blank line before this statement.",fix:function fix(fixer){var sourceCode=context.getSourceCode();var prevToken=getActualLastToken(sourceCode,prevNode);var nextToken=sourceCode.getFirstTokenBetween(prevToken,nextNode,{includeComments:true,filter:function filter(token){if(astUtils.isTokenOnSameLine(prevToken,token)){prevToken=token;return false}return true}})||nextNode;var insertText=astUtils.isTokenOnSameLine(prevToken,nextToken)?"\n\n":"\n";return fixer.insertTextAfter(prevToken,insertText)}})}var PaddingTypes={any:{verify:verifyForAny},never:{verify:verifyForNever},always:{verify:verifyForAlways}};var StatementTypes={"*":{test:function test(){return true}},"block-like":{test:function test(node,sourceCode){return isBlockLikeStatement(sourceCode,node)}},"cjs-export":{test:function test(node,sourceCode){return node.type==="ExpressionStatement"&&node.expression.type==="AssignmentExpression"&&CJS_EXPORT.test(sourceCode.getText(node.expression.left))}},"cjs-import":{test:function test(node,sourceCode){return node.type==="VariableDeclaration"&&node.declarations.length>0&&Boolean(node.declarations[0].init)&&CJS_IMPORT.test(sourceCode.getText(node.declarations[0].init))}},directive:{test:isDirectivePrologue},expression:{test:function test(node,sourceCode){return node.type==="ExpressionStatement"&&!isDirectivePrologue(node,sourceCode)}},"multiline-block-like":{test:function test(node,sourceCode){return node.loc.start.line!==node.loc.end.line&&isBlockLikeStatement(sourceCode,node)}},block:newNodeTypeTester("BlockStatement"),empty:newNodeTypeTester("EmptyStatement"),break:newKeywordTester("break"),case:newKeywordTester("case"),class:newKeywordTester("class"),const:newKeywordTester("const"),continue:newKeywordTester("continue"),debugger:newKeywordTester("debugger"),default:newKeywordTester("default"),do:newKeywordTester("do"),export:newKeywordTester("export"),for:newKeywordTester("for"),function:newKeywordTester("function"),if:newKeywordTester("if"),import:newKeywordTester("import"),let:newKeywordTester("let"),return:newKeywordTester("return"),switch:newKeywordTester("switch"),throw:newKeywordTester("throw"),try:newKeywordTester("try"),var:newKeywordTester("var"),while:newKeywordTester("while"),with:newKeywordTester("with")};module.exports={meta:{docs:{description:"require or disallow padding lines between statements",category:"Stylistic Issues",recommended:false},fixable:"whitespace",schema:{definitions:{paddingType:{enum:Object.keys(PaddingTypes)},statementType:{anyOf:[{enum:Object.keys(StatementTypes)},{type:"array",items:{enum:Object.keys(StatementTypes)},minItems:1,uniqueItems:true,additionalItems:false}]}},type:"array",items:{type:"object",properties:{blankLine:{$ref:"#/definitions/paddingType"},prev:{$ref:"#/definitions/statementType"},next:{$ref:"#/definitions/statementType"}},additionalProperties:false,required:["blankLine","prev","next"]},additionalItems:false}},create:function create(context){var sourceCode=context.getSourceCode();var configureList=context.options||[];var scopeInfo=null;function enterScope(){scopeInfo={upper:scopeInfo,prevNode:null}}function exitScope(){scopeInfo=scopeInfo.upper}function match(node,type){while(node.type==="LabeledStatement"){node=node.body}if(Array.isArray(type)){return type.some(match.bind(null,node))}return StatementTypes[type].test(node,sourceCode)}function getPaddingType(prevNode,nextNode){for(var i=configureList.length-1;i>=0;--i){var configure=configureList[i];var matched=match(prevNode,configure.prev)&&match(nextNode,configure.next);if(matched){return PaddingTypes[configure.blankLine]}}return PaddingTypes.any}function getPaddingLineSequences(prevNode,nextNode){var pairs=[];var prevToken=getActualLastToken(sourceCode,prevNode);if(nextNode.loc.start.line-prevToken.loc.end.line>=2){do{var token=sourceCode.getTokenAfter(prevToken,{includeComments:true});if(token.loc.start.line-prevToken.loc.end.line>=2){pairs.push([prevToken,token])}prevToken=token}while(prevToken.range[0]0){return}var variable=getVariableOfArguments(context.getScope());if(variable&&variable.references.length>0){return}var callbackInfo=getCallbackInfo(node);if(callbackInfo.isCallback&&(!allowUnboundThis||!scopeInfo.this||callbackInfo.isLexicalThis)&&!scopeInfo.super&&!scopeInfo.meta){context.report({node:node,message:"Unexpected function expression.",fix:function fix(fixer){if(!callbackInfo.isLexicalThis&&scopeInfo.this||hasDuplicateParams(node.params)){return null}var paramsLeftParen=node.params.length?sourceCode.getTokenBefore(node.params[0]):sourceCode.getTokenBefore(node.body,1);var paramsRightParen=sourceCode.getTokenBefore(node.body);var asyncKeyword=node.async?"async ":"";var paramsFullText=sourceCode.text.slice(paramsLeftParen.range[0],paramsRightParen.range[1]);var arrowFunctionText=""+asyncKeyword+paramsFullText+" => "+sourceCode.getText(node.body);var replacedNode=callbackInfo.isLexicalThis?node.parent.parent:node;var needsParens=replacedNode.parent.type!=="CallExpression"&&replacedNode.parent.type!=="ConditionalExpression";var replacementText=needsParens?"("+arrowFunctionText+")":arrowFunctionText;return fixer.replaceText(replacedNode,replacementText)}})}}}}}},{}],236:[function(require,module,exports){"use strict";var PATTERN_TYPE=/^(?:.+?Pattern|RestElement|SpreadProperty|ExperimentalRestProperty|Property)$/;var DECLARATION_HOST_TYPE=/^(?:Program|BlockStatement|SwitchCase)$/;var DESTRUCTURING_HOST_TYPE=/^(?:VariableDeclarator|AssignmentExpression)$/;var pushAll=Function.apply.bind(Array.prototype.push);function isInitOfForStatement(node){return node.parent.type==="ForStatement"&&node.parent.init===node}function canBecomeVariableDeclaration(identifier){var node=identifier.parent;while(PATTERN_TYPE.test(node.type)){node=node.parent}return node.type==="VariableDeclarator"||node.type==="AssignmentExpression"&&node.parent.type==="ExpressionStatement"&&DECLARATION_HOST_TYPE.test(node.parent.parent.type)}function getIdentifierIfShouldBeConst(variable,ignoreReadBeforeAssign){if(variable.eslintUsed&&variable.scope.type==="global"){return null}var writer=null;var isReadBeforeInit=false;var references=variable.references;for(var i=0;i1&&node.arguments[0].params[1].type==="Identifier"){context.getDeclaredVariables(node.arguments[0]).find(function(variable){return variable.name===node.arguments[0].params[1].name}).references.filter(function(ref){return ref.isRead()}).filter(function(ref){return ref.identifier.parent.type==="CallExpression"&&ref.identifier===ref.identifier.parent.callee}).forEach(function(ref){return checkRejectCall(ref.identifier.parent)})}}}}}},{"../ast-utils":22}],240:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"require `Reflect` methods where applicable",category:"ECMAScript 6",recommended:false,replacedBy:[]},deprecated:true,schema:[{type:"object",properties:{exceptions:{type:"array",items:{enum:["apply","call","delete","defineProperty","getOwnPropertyDescriptor","getPrototypeOf","setPrototypeOf","isExtensible","getOwnPropertyNames","preventExtensions"]},uniqueItems:true}},additionalProperties:false}]},create:function create(context){var existingNames={apply:"Function.prototype.apply",call:"Function.prototype.call",defineProperty:"Object.defineProperty",getOwnPropertyDescriptor:"Object.getOwnPropertyDescriptor",getPrototypeOf:"Object.getPrototypeOf",setPrototypeOf:"Object.setPrototypeOf",isExtensible:"Object.isExtensible",getOwnPropertyNames:"Object.getOwnPropertyNames",preventExtensions:"Object.preventExtensions"};var reflectSubsitutes={apply:"Reflect.apply",call:"Reflect.apply",defineProperty:"Reflect.defineProperty",getOwnPropertyDescriptor:"Reflect.getOwnPropertyDescriptor",getPrototypeOf:"Reflect.getPrototypeOf",setPrototypeOf:"Reflect.setPrototypeOf",isExtensible:"Reflect.isExtensible",getOwnPropertyNames:"Reflect.getOwnPropertyNames",preventExtensions:"Reflect.preventExtensions"};var exceptions=(context.options[0]||{}).exceptions||[];function report(node,existing,substitute){context.report({node:node,message:"Avoid using {{existing}}, instead use {{substitute}}.",data:{existing:existing,substitute:substitute}})}return{CallExpression:function CallExpression(node){var methodName=(node.callee.property||{}).name;var isReflectCall=(node.callee.object||{}).name==="Reflect";var hasReflectSubsitute=reflectSubsitutes.hasOwnProperty(methodName);var userConfiguredException=exceptions.indexOf(methodName)!==-1;if(hasReflectSubsitute&&!isReflectCall&&!userConfiguredException){report(node,existingNames[methodName],reflectSubsitutes[methodName])}},UnaryExpression:function UnaryExpression(node){var isDeleteOperator=node.operator==="delete";var targetsIdentifier=node.argument.type==="Identifier";var userConfiguredException=exceptions.indexOf("delete")!==-1;if(isDeleteOperator&&!targetsIdentifier&&!userConfiguredException){report(node,"the delete keyword","Reflect.deleteProperty")}}}}}},{}],241:[function(require,module,exports){"use strict";function getVariableOfArguments(scope){var variables=scope.variables;for(var i=0;i=0}function areQuotesRedundant(rawKey,tokens,skipNumberLiterals){return tokens.length===1&&tokens[0].start===0&&tokens[0].end===rawKey.length&&(["Identifier","Keyword","Null","Boolean"].indexOf(tokens[0].type)>=0||tokens[0].type==="Numeric"&&!skipNumberLiterals&&String(+tokens[0].value)===tokens[0].value)}function getUnquotedKey(key){return key.type==="Identifier"?key.name:key.value}function getQuotedKey(key){if(key.type==="Literal"&&typeof key.value==="string"){return sourceCode.getText(key)}return'"'+(key.type==="Identifier"?key.name:key.value)+'"'}function checkUnnecessaryQuotes(node){var key=node.key;var tokens=void 0;if(node.method||node.computed||node.shorthand){return}if(key.type==="Literal"&&typeof key.value==="string"){try{tokens=espree.tokenize(key.value)}catch(e){return}if(tokens.length!==1){return}var isKeywordToken=isKeyword(tokens[0].value);if(isKeywordToken&&KEYWORDS){return}if(CHECK_UNNECESSARY&&areQuotesRedundant(key.value,tokens,NUMBERS)){context.report({node:node,message:MESSAGE_UNNECESSARY,data:{property:key.value},fix:function fix(fixer){return fixer.replaceText(key,getUnquotedKey(key))}})}}else if(KEYWORDS&&key.type==="Identifier"&&isKeyword(key.name)){context.report({node:node,message:MESSAGE_RESERVED,data:{property:key.name},fix:function fix(fixer){return fixer.replaceText(key,getQuotedKey(key))}})}else if(NUMBERS&&key.type==="Literal"&&typeof key.value==="number"){context.report({node:node,message:MESSAGE_NUMERIC,data:{property:key.value},fix:function fix(fixer){return fixer.replaceText(key,getQuotedKey(key))}})}}function checkOmittedQuotes(node){var key=node.key;if(!node.method&&!node.computed&&!node.shorthand&&!(key.type==="Literal"&&typeof key.value==="string")){context.report({node:node,message:MESSAGE_UNQUOTED,data:{property:key.name||key.value},fix:function fix(fixer){return fixer.replaceText(key,getQuotedKey(key))}})}}function checkConsistency(node,checkQuotesRedundancy){var quotedProps=[],unquotedProps=[];var keywordKeyName=null,necessaryQuotes=false;node.properties.forEach(function(property){var key=property.key;var tokens=void 0;if(!key||property.method||property.computed||property.shorthand){return}if(key.type==="Literal"&&typeof key.value==="string"){quotedProps.push(property);if(checkQuotesRedundancy){try{tokens=espree.tokenize(key.value)}catch(e){necessaryQuotes=true;return}necessaryQuotes=necessaryQuotes||!areQuotesRedundant(key.value,tokens)||KEYWORDS&&isKeyword(tokens[0].value)}}else if(KEYWORDS&&checkQuotesRedundancy&&key.type==="Identifier"&&isKeyword(key.name)){unquotedProps.push(property);necessaryQuotes=true;keywordKeyName=key.name}else{unquotedProps.push(property)}});if(checkQuotesRedundancy&"edProps.length&&!necessaryQuotes){quotedProps.forEach(function(property){context.report({node:property,message:"Properties shouldn't be quoted as all quotes are redundant.",fix:function fix(fixer){return fixer.replaceText(property.key,getUnquotedKey(property.key))}})})}else if(unquotedProps.length&&keywordKeyName){unquotedProps.forEach(function(property){context.report({node:property,message:"Properties should be quoted as '{{property}}' is a reserved word.",data:{property:keywordKeyName},fix:function fix(fixer){return fixer.replaceText(property.key,getQuotedKey(property.key))}})})}else if(quotedProps.length&&unquotedProps.length){unquotedProps.forEach(function(property){context.report({node:property,message:"Inconsistently quoted property '{{key}}' found.",data:{key:property.key.name||property.key.value},fix:function fix(fixer){return fixer.replaceText(property.key,getQuotedKey(property.key))}})})}}return{Property:function Property(node){if(MODE==="always"||!MODE){checkOmittedQuotes(node)}if(MODE==="as-needed"){checkUnnecessaryQuotes(node)}},ObjectExpression:function ObjectExpression(node){if(MODE==="consistent"){checkConsistency(node,false)}if(MODE==="consistent-as-needed"){checkConsistency(node,true)}}}}}},{"../util/keywords":278,espree:"espree"}],245:[function(require,module,exports){"use strict";var _templateObject=_taggedTemplateLiteral(["(^|[^\\])(\\\\)*[","]"],["(^|[^\\\\])(\\\\\\\\)*[","]"]);function _taggedTemplateLiteral(strings,raw){return Object.freeze(Object.defineProperties(strings,{raw:{value:Object.freeze(raw)}}))}var astUtils=require("../ast-utils");var QUOTE_SETTINGS={double:{quote:'"',alternateQuote:"'",description:"doublequote"},single:{quote:"'",alternateQuote:'"',description:"singlequote"},backtick:{quote:"`",alternateQuote:'"',description:"backtick"}};var UNESCAPED_LINEBREAK_PATTERN=new RegExp(String.raw(_templateObject,Array.from(astUtils.LINEBREAKS).join("")));QUOTE_SETTINGS.double.convert=QUOTE_SETTINGS.single.convert=QUOTE_SETTINGS.backtick.convert=function(str){var newQuote=this.quote;var oldQuote=str[0];if(newQuote===oldQuote){return str}return newQuote+str.slice(1,-1).replace(/\\(\${|\r\n?|\n|.)|["'`]|\${|(\r\n?|\n)/g,function(match,escaped,newline){if(escaped===oldQuote||oldQuote==="`"&&escaped==="${"){return escaped}if(match===newQuote||newQuote==="`"&&match==="${"){return"\\"+match}if(newline&&oldQuote==="`"){return"\\n"}return match})+newQuote};var AVOID_ESCAPE="avoid-escape";module.exports={meta:{docs:{description:"enforce the consistent use of either backticks, double, or single quotes",category:"Stylistic Issues",recommended:false},fixable:"code",schema:[{enum:["single","double","backtick"]},{anyOf:[{enum:["avoid-escape"]},{type:"object",properties:{avoidEscape:{type:"boolean"},allowTemplateLiterals:{type:"boolean"}},additionalProperties:false}]}]},create:function create(context){var quoteOption=context.options[0],settings=QUOTE_SETTINGS[quoteOption||"double"],options=context.options[1],allowTemplateLiterals=options&&options.allowTemplateLiterals===true,sourceCode=context.getSourceCode();var avoidEscape=options&&options.avoidEscape===true;if(options===AVOID_ESCAPE){avoidEscape=true}function isJSXLiteral(node){return node.parent.type==="JSXAttribute"||node.parent.type==="JSXElement"}function isDirective(node){return node.type==="ExpressionStatement"&&node.expression.type==="Literal"&&typeof node.expression.value==="string"}function isPartOfDirectivePrologue(node){var block=node.parent.parent;if(block.type!=="Program"&&(block.type!=="BlockStatement"||!astUtils.isFunction(block.parent))){return false}for(var i=0;i=0}if(!isValid){context.report({node:node,message:"Strings must use {{description}}.",data:{description:settings.description},fix:function fix(fixer){return fixer.replaceText(node,settings.convert(node.raw))}})}}},TemplateLiteral:function TemplateLiteral(node){if(allowTemplateLiterals||quoteOption==="backtick"||node.parent.type==="TaggedTemplateExpression"&&node===node.parent.quasi){return}var shouldWarn=node.quasis.length===1&&!UNESCAPED_LINEBREAK_PATTERN.test(node.quasis[0].value.raw);if(shouldWarn){context.report({node:node,message:"Strings must use {{description}}.",data:{description:settings.description},fix:function fix(fixer){if(isPartOfDirectivePrologue(node)){return null}return fixer.replaceText(node,settings.convert(sourceCode.getText(node)))}})}}}}}},{"../ast-utils":22}],246:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");var MODE_ALWAYS="always",MODE_AS_NEEDED="as-needed";function isShadowed(variable){return variable.defs.length>=1}function isParseIntMethod(node){return node.type==="MemberExpression"&&!node.computed&&node.property.type==="Identifier"&&node.property.name==="parseInt"}function isValidRadix(radix){return!(radix.type==="Literal"&&typeof radix.value!=="number"||radix.type==="Identifier"&&radix.name==="undefined")}function isDefaultRadix(radix){return radix.type==="Literal"&&radix.value===10}module.exports={meta:{docs:{description:"enforce the consistent use of the radix argument when using `parseInt()`",category:"Best Practices",recommended:false},schema:[{enum:["always","as-needed"]}]},create:function create(context){var mode=context.options[0]||MODE_ALWAYS;function checkArguments(node){var args=node.arguments;switch(args.length){case 0:context.report({node:node,message:"Missing parameters."});break;case 1:if(mode===MODE_ALWAYS){context.report({node:node,message:"Missing radix parameter."})}break;default:if(mode===MODE_AS_NEEDED&&isDefaultRadix(args[1])){context.report({node:node,message:"Redundant radix parameter."})}else if(!isValidRadix(args[1])){context.report({node:node,message:"Invalid radix parameter."})}break}}return{"Program:exit":function ProgramExit(){var scope=context.getScope();var variable=void 0;variable=astUtils.getVariableByName(scope,"parseInt");if(!isShadowed(variable)){variable.references.forEach(function(reference){var node=reference.identifier;if(astUtils.isCallee(node)){checkArguments(node.parent)}})}variable=astUtils.getVariableByName(scope,"Number");if(!isShadowed(variable)){variable.references.forEach(function(reference){var node=reference.identifier.parent;if(isParseIntMethod(node)&&astUtils.isCallee(node)){checkArguments(node.parent)}})}}}}}},{"../ast-utils":22}],247:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");function capitalizeFirstLetter(text){return text[0].toUpperCase()+text.slice(1)}module.exports={meta:{docs:{description:"disallow async functions which have no `await` expression",category:"Best Practices",recommended:false},schema:[]},create:function create(context){var sourceCode=context.getSourceCode();var scopeInfo=null;function enterFunction(){scopeInfo={upper:scopeInfo,hasAwait:false}}function exitFunction(node){if(node.async&&!scopeInfo.hasAwait&&!astUtils.isEmptyFunction(node)){context.report({node:node,loc:astUtils.getFunctionHeadLoc(node,sourceCode),message:"{{name}} has no 'await' expression.",data:{name:capitalizeFirstLetter(astUtils.getFunctionNameWithKind(node))}})}scopeInfo=scopeInfo.upper}return{FunctionDeclaration:enterFunction,FunctionExpression:enterFunction,ArrowFunctionExpression:enterFunction,"FunctionDeclaration:exit":exitFunction,"FunctionExpression:exit":exitFunction,"ArrowFunctionExpression:exit":exitFunction,AwaitExpression:function AwaitExpression(){scopeInfo.hasAwait=true}}}}},{"../ast-utils":22}],248:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"require JSDoc comments",category:"Stylistic Issues",recommended:false},schema:[{type:"object",properties:{require:{type:"object",properties:{ClassDeclaration:{type:"boolean"},MethodDefinition:{type:"boolean"},FunctionDeclaration:{type:"boolean"},ArrowFunctionExpression:{type:"boolean"}},additionalProperties:false}},additionalProperties:false}]},create:function create(context){var source=context.getSourceCode();var DEFAULT_OPTIONS={FunctionDeclaration:true,MethodDefinition:false,ClassDeclaration:false};var options=Object.assign(DEFAULT_OPTIONS,context.options[0]&&context.options[0].require||{});function report(node){context.report({node:node,message:"Missing JSDoc comment."})}function checkClassMethodJsDoc(node){if(node.parent.type==="MethodDefinition"){var jsdocComment=source.getJSDocComment(node);if(!jsdocComment){report(node)}}}function checkJsDoc(node){var jsdocComment=source.getJSDocComment(node);if(!jsdocComment){report(node)}}return{FunctionDeclaration:function FunctionDeclaration(node){if(options.FunctionDeclaration){checkJsDoc(node)}},FunctionExpression:function FunctionExpression(node){if(options.MethodDefinition){checkClassMethodJsDoc(node)}},ClassDeclaration:function ClassDeclaration(node){if(options.ClassDeclaration){checkJsDoc(node)}},ArrowFunctionExpression:function ArrowFunctionExpression(node){if(options.ArrowFunctionExpression&&node.parent.type==="VariableDeclarator"){checkJsDoc(node)}}}}}},{}],249:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"require generator functions to contain `yield`",category:"ECMAScript 6",recommended:true},schema:[]},create:function create(context){var stack=[];function beginChecking(node){if(node.generator){stack.push(0)}}function endChecking(node){if(!node.generator){return}var countYield=stack.pop();if(countYield===0&&node.body.body.length>0){context.report({node:node,message:"This generator function does not have 'yield'."})}}return{FunctionDeclaration:beginChecking,"FunctionDeclaration:exit":endChecking,FunctionExpression:beginChecking,"FunctionExpression:exit":endChecking,YieldExpression:function YieldExpression(){if(stack.length>0){stack[stack.length-1]+=1}}}}}},{}],250:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"enforce spacing between rest and spread operators and their expressions",category:"ECMAScript 6",recommended:false},fixable:"whitespace",schema:[{enum:["always","never"]}]},create:function create(context){var sourceCode=context.getSourceCode(),alwaysSpace=context.options[0]==="always";function checkWhiteSpace(node){var operator=sourceCode.getFirstToken(node),nextToken=sourceCode.getTokenAfter(operator),hasWhitespace=sourceCode.isSpaceBetweenTokens(operator,nextToken);var type=void 0;switch(node.type){case"SpreadElement":type="spread";break;case"RestElement":type="rest";break;case"ExperimentalSpreadProperty":type="spread property";break;case"ExperimentalRestProperty":type="rest property";break;default:return}if(alwaysSpace&&!hasWhitespace){context.report({node:node,loc:{line:operator.loc.end.line,column:operator.loc.end.column},message:"Expected whitespace after {{type}} operator.",data:{type:type},fix:function fix(fixer){return fixer.replaceTextRange([operator.range[1],nextToken.range[0]]," ")}})}else if(!alwaysSpace&&hasWhitespace){context.report({node:node,loc:{line:operator.loc.end.line,column:operator.loc.end.column},message:"Unexpected whitespace after {{type}} operator.",data:{type:type},fix:function fix(fixer){return fixer.removeRange([operator.range[1],nextToken.range[0]])}})}}return{SpreadElement:checkWhiteSpace,RestElement:checkWhiteSpace,ExperimentalSpreadProperty:checkWhiteSpace,ExperimentalRestProperty:checkWhiteSpace}}}},{}],251:[function(require,module,exports){"use strict";var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj};var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"enforce consistent spacing before and after semicolons",category:"Stylistic Issues",recommended:false},fixable:"whitespace",schema:[{type:"object",properties:{before:{type:"boolean"},after:{type:"boolean"}},additionalProperties:false}]},create:function create(context){var config=context.options[0],sourceCode=context.getSourceCode();var requireSpaceBefore=false,requireSpaceAfter=true;if((typeof config==="undefined"?"undefined":_typeof(config))==="object"){if(config.hasOwnProperty("before")){requireSpaceBefore=config.before}if(config.hasOwnProperty("after")){requireSpaceAfter=config.after}}function hasLeadingSpace(token){var tokenBefore=sourceCode.getTokenBefore(token);return tokenBefore&&astUtils.isTokenOnSameLine(tokenBefore,token)&&sourceCode.isSpaceBetweenTokens(tokenBefore,token)}function hasTrailingSpace(token){var tokenAfter=sourceCode.getTokenAfter(token);return tokenAfter&&astUtils.isTokenOnSameLine(token,tokenAfter)&&sourceCode.isSpaceBetweenTokens(token,tokenAfter)}function isLastTokenInCurrentLine(token){var tokenAfter=sourceCode.getTokenAfter(token);return!(tokenAfter&&astUtils.isTokenOnSameLine(token,tokenAfter))}function isFirstTokenInCurrentLine(token){var tokenBefore=sourceCode.getTokenBefore(token);return!(tokenBefore&&astUtils.isTokenOnSameLine(token,tokenBefore))}function isBeforeClosingParen(token){var nextToken=sourceCode.getTokenAfter(token);return nextToken&&astUtils.isClosingBraceToken(nextToken)||astUtils.isClosingParenToken(nextToken)}function checkSemicolonSpacing(token,node){if(astUtils.isSemicolonToken(token)){var location=token.loc.start;if(hasLeadingSpace(token)){if(!requireSpaceBefore){context.report({node:node,loc:location,message:"Unexpected whitespace before semicolon.",fix:function fix(fixer){var tokenBefore=sourceCode.getTokenBefore(token);return fixer.removeRange([tokenBefore.range[1],token.range[0]])}})}}else{if(requireSpaceBefore){context.report({node:node,loc:location,message:"Missing whitespace before semicolon.",fix:function fix(fixer){return fixer.insertTextBefore(token," ")}})}}if(!isFirstTokenInCurrentLine(token)&&!isLastTokenInCurrentLine(token)&&!isBeforeClosingParen(token)){if(hasTrailingSpace(token)){if(!requireSpaceAfter){context.report({node:node,loc:location,message:"Unexpected whitespace after semicolon.",fix:function fix(fixer){var tokenAfter=sourceCode.getTokenAfter(token);return fixer.removeRange([token.range[1],tokenAfter.range[0]])}})}}else{if(requireSpaceAfter){context.report({node:node,loc:location,message:"Missing whitespace after semicolon.",fix:function fix(fixer){return fixer.insertTextAfter(token," ")}})}}}}}function checkNode(node){var token=sourceCode.getLastToken(node);checkSemicolonSpacing(token,node)}return{VariableDeclaration:checkNode,ExpressionStatement:checkNode,BreakStatement:checkNode,ContinueStatement:checkNode,DebuggerStatement:checkNode,ReturnStatement:checkNode,ThrowStatement:checkNode,ImportDeclaration:checkNode,ExportNamedDeclaration:checkNode,ExportAllDeclaration:checkNode,ExportDefaultDeclaration:checkNode,ForStatement:function ForStatement(node){if(node.init){checkSemicolonSpacing(sourceCode.getTokenAfter(node.init),node)}if(node.test){checkSemicolonSpacing(sourceCode.getTokenAfter(node.test),node)}}}}}},{"../ast-utils":22}],252:[function(require,module,exports){"use strict";function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}var astUtils=require("../ast-utils");var SELECTOR=":matches("+["BreakStatement","ContinueStatement","DebuggerStatement","DoWhileStatement","EmptyStatement","ExportAllDeclaration","ExportDefaultDeclaration","ExportNamedDeclaration","ExpressionStatement","ImportDeclaration","ReturnStatement","ThrowStatement","VariableDeclaration"].join(",")+")";module.exports={meta:{docs:{description:"enforce location of semicolons",category:"Stylistic Issues",recommended:false},schema:[{enum:["last","first"]}],fixable:"whitespace"},create:function create(context){var _ref;var sourceCode=context.getSourceCode();var option=context.options[0]||"last";function commentsExistBetween(left,right){return sourceCode.getFirstTokenBetween(left,right,{includeComments:true,filter:astUtils.isCommentToken})!==null}function check(semiToken,expected){var prevToken=sourceCode.getTokenBefore(semiToken);var nextToken=sourceCode.getTokenAfter(semiToken);var prevIsSameLine=!prevToken||astUtils.isTokenOnSameLine(prevToken,semiToken);var nextIsSameLine=!nextToken||astUtils.isTokenOnSameLine(semiToken,nextToken);if(expected==="last"&&!prevIsSameLine||expected==="first"&&!nextIsSameLine){context.report({loc:semiToken.loc,message:"Expected this semicolon to be at {{pos}}.",data:{pos:expected==="last"?"the end of the previous line":"the beginning of the next line"},fix:function fix(fixer){if(prevToken&&nextToken&&commentsExistBetween(prevToken,nextToken)){return null}var start=prevToken?prevToken.range[1]:semiToken.range[0];var end=nextToken?nextToken.range[0]:semiToken.range[1];var text=expected==="last"?";\n":"\n;";return fixer.replaceTextRange([start,end],text)}})}}return _ref={},_defineProperty(_ref,SELECTOR,function(node){var lastToken=sourceCode.getLastToken(node);if(astUtils.isSemicolonToken(lastToken)){check(lastToken,option)}}),_defineProperty(_ref,"ForStatement",function ForStatement(node){var firstSemi=node.init&&sourceCode.getTokenAfter(node.init,astUtils.isSemicolonToken);var secondSemi=node.test&&sourceCode.getTokenAfter(node.test,astUtils.isSemicolonToken);if(firstSemi){check(firstSemi,"last")}if(secondSemi){check(secondSemi,"last")}}),_ref}}},{"../ast-utils":22}],253:[function(require,module,exports){"use strict";var FixTracker=require("../util/fix-tracker");var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"require or disallow semicolons instead of ASI",category:"Stylistic Issues",recommended:false},fixable:"code",schema:{anyOf:[{type:"array",items:[{enum:["never"]}],minItems:0,maxItems:1},{type:"array",items:[{enum:["always"]},{type:"object",properties:{omitLastInOneLineBlock:{type:"boolean"}},additionalProperties:false}],minItems:0,maxItems:2}]}},create:function create(context){var OPT_OUT_PATTERN=/^[-[(/+`]/;var options=context.options[1];var never=context.options[0]==="never",exceptOneLine=options&&options.omitLastInOneLineBlock===true,sourceCode=context.getSourceCode();function report(node,missing){var lastToken=sourceCode.getLastToken(node);var message=void 0,fix=void 0,loc=lastToken.loc;if(!missing){message="Missing semicolon.";loc=loc.end;fix=function fix(fixer){return fixer.insertTextAfter(lastToken,";")}}else{message="Extra semicolon.";loc=loc.start;fix=function fix(fixer){return new FixTracker(fixer,sourceCode).retainSurroundingTokens(lastToken).remove(lastToken)}}context.report({node:node,loc:loc,message:message,fix:fix})}function isUnnecessarySemicolon(lastToken){if(!astUtils.isSemicolonToken(lastToken)){return false}var nextToken=sourceCode.getTokenAfter(lastToken);if(!nextToken){return true}var lastTokenLine=lastToken.loc.end.line;var nextTokenLine=nextToken.loc.start.line;var isOptOutToken=OPT_OUT_PATTERN.test(nextToken.value)&&nextToken.value!=="++"&&nextToken.value!=="--";var isDivider=astUtils.isClosingBraceToken(nextToken)||astUtils.isSemicolonToken(nextToken);return lastTokenLine!==nextTokenLine&&!isOptOutToken||isDivider}function isOneLinerBlock(node){var nextToken=sourceCode.getTokenAfter(node);if(!nextToken||nextToken.value!=="}"){return false}var parent=node.parent;return parent&&parent.type==="BlockStatement"&&parent.loc.start.line===parent.loc.end.line}function checkForSemicolon(node){var lastToken=sourceCode.getLastToken(node);if(never){if(isUnnecessarySemicolon(lastToken)){report(node,true)}}else{if(!astUtils.isSemicolonToken(lastToken)){if(!exceptOneLine||!isOneLinerBlock(node)){report(node)}}else{if(exceptOneLine&&isOneLinerBlock(node)){report(node,true)}}}}function checkForSemicolonForVariableDeclaration(node){var ancestors=context.getAncestors(),parentIndex=ancestors.length-1,parent=ancestors[parentIndex];if((parent.type!=="ForStatement"||parent.init!==node)&&(!/^For(?:In|Of)Statement/.test(parent.type)||parent.left!==node)){checkForSemicolon(node)}}return{VariableDeclaration:checkForSemicolonForVariableDeclaration,ExpressionStatement:checkForSemicolon,ReturnStatement:checkForSemicolon,ThrowStatement:checkForSemicolon,DoWhileStatement:checkForSemicolon,DebuggerStatement:checkForSemicolon,BreakStatement:checkForSemicolon,ContinueStatement:checkForSemicolon,ImportDeclaration:checkForSemicolon,ExportAllDeclaration:checkForSemicolon,ExportNamedDeclaration:function ExportNamedDeclaration(node){if(!node.declaration){checkForSemicolon(node)}},ExportDefaultDeclaration:function ExportDefaultDeclaration(node){if(!/(?:Class|Function)Declaration/.test(node.declaration.type)){checkForSemicolon(node)}}}}}},{"../ast-utils":22,"../util/fix-tracker":277}],254:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"enforce sorted import declarations within modules",category:"ECMAScript 6",recommended:false},schema:[{type:"object",properties:{ignoreCase:{type:"boolean"},memberSyntaxSortOrder:{type:"array",items:{enum:["none","all","multiple","single"]},uniqueItems:true,minItems:4,maxItems:4},ignoreMemberSort:{type:"boolean"}},additionalProperties:false}],fixable:"code"},create:function create(context){var configuration=context.options[0]||{},ignoreCase=configuration.ignoreCase||false,ignoreMemberSort=configuration.ignoreMemberSort||false,memberSyntaxSortOrder=configuration.memberSyntaxSortOrder||["none","all","multiple","single"],sourceCode=context.getSourceCode();var previousDeclaration=null;function usedMemberSyntax(node){if(node.specifiers.length===0){return"none"}else if(node.specifiers[0].type==="ImportNamespaceSpecifier"){return"all"}else if(node.specifiers.length===1){return"single"}return"multiple"}function getMemberParameterGroupIndex(node){return memberSyntaxSortOrder.indexOf(usedMemberSyntax(node))}function getFirstLocalMemberName(node){if(node.specifiers[0]){return node.specifiers[0].local.name}return null}return{ImportDeclaration:function ImportDeclaration(node){if(previousDeclaration){var currentMemberSyntaxGroupIndex=getMemberParameterGroupIndex(node),previousMemberSyntaxGroupIndex=getMemberParameterGroupIndex(previousDeclaration);var currentLocalMemberName=getFirstLocalMemberName(node),previousLocalMemberName=getFirstLocalMemberName(previousDeclaration);if(ignoreCase){previousLocalMemberName=previousLocalMemberName&&previousLocalMemberName.toLowerCase();currentLocalMemberName=currentLocalMemberName&¤tLocalMemberName.toLowerCase()}if(currentMemberSyntaxGroupIndex!==previousMemberSyntaxGroupIndex){if(currentMemberSyntaxGroupIndexname});if(firstUnsortedIndex!==-1){context.report({node:importSpecifiers[firstUnsortedIndex],message:"Member '{{memberName}}' of the import declaration should be sorted alphabetically.",data:{memberName:importSpecifiers[firstUnsortedIndex].local.name},fix:function fix(fixer){if(importSpecifiers.some(function(specifier){return sourceCode.getCommentsBefore(specifier).length||sourceCode.getCommentsAfter(specifier).length})){return null}return fixer.replaceTextRange([importSpecifiers[0].range[0],importSpecifiers[importSpecifiers.length-1].range[1]],importSpecifiers.slice().sort(function(specifierA,specifierB){var aName=getSortableName(specifierA);var bName=getSortableName(specifierB);return aName>bName?1:-1}).reduce(function(sourceText,specifier,index){var textAfterSpecifier=index===importSpecifiers.length-1?"":sourceCode.getText().slice(importSpecifiers[index].range[1],importSpecifiers[index+1].range[0]);return sourceText+sourceCode.getText(specifier)+textAfterSpecifier},""))}})}}previousDeclaration=node}}}}},{}],255:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils"),naturalCompare=require("natural-compare");function getPropertyName(node){return astUtils.getStaticPropertyName(node)||node.key.name||null}var isValidOrders={asc:function asc(a,b){return a<=b},ascI:function ascI(a,b){return a.toLowerCase()<=b.toLowerCase()},ascN:function ascN(a,b){return naturalCompare(a,b)<=0},ascIN:function ascIN(a,b){return naturalCompare(a.toLowerCase(),b.toLowerCase())<=0},desc:function desc(a,b){return isValidOrders.asc(b,a)},descI:function descI(a,b){return isValidOrders.ascI(b,a)},descN:function descN(a,b){return isValidOrders.ascN(b,a)},descIN:function descIN(a,b){return isValidOrders.ascIN(b,a)}};module.exports={meta:{docs:{description:"require object keys to be sorted",category:"Stylistic Issues",recommended:false},schema:[{enum:["asc","desc"]},{type:"object",properties:{caseSensitive:{type:"boolean"},natural:{type:"boolean"}},additionalProperties:false}]},create:function create(context){var order=context.options[0]||"asc";var options=context.options[1];var insensitive=(options&&options.caseSensitive)===false;var natual=Boolean(options&&options.natural);var isValidOrder=isValidOrders[order+(insensitive?"I":"")+(natual?"N":"")];var stack=null;return{ObjectExpression:function ObjectExpression(){stack={upper:stack,prevName:null}},"ObjectExpression:exit":function ObjectExpressionExit(){stack=stack.upper},Property:function Property(node){if(node.parent.type==="ObjectPattern"){return}var prevName=stack.prevName;var thisName=getPropertyName(node);stack.prevName=thisName||prevName;if(!prevName||!thisName){return}if(!isValidOrder(prevName,thisName)){context.report({node:node,loc:node.key.loc,message:"Expected object keys to be in {{natual}}{{insensitive}}{{order}}ending order. '{{thisName}}' should be before '{{prevName}}'.",data:{thisName:thisName,prevName:prevName,order:order,insensitive:insensitive?"insensitive ":"",natual:natual?"natural ":""}})}}}}}},{"../ast-utils":22,"natural-compare":17}],256:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"require variables within the same declaration block to be sorted",category:"Stylistic Issues",recommended:false},schema:[{type:"object",properties:{ignoreCase:{type:"boolean"}},additionalProperties:false}]},create:function create(context){var configuration=context.options[0]||{},ignoreCase=configuration.ignoreCase||false;return{VariableDeclaration:function VariableDeclaration(node){var idDeclarations=node.declarations.filter(function(decl){return decl.id.type==="Identifier"});idDeclarations.slice(1).reduce(function(memo,decl){var lastVariableName=memo.id.name,currenVariableName=decl.id.name;if(ignoreCase){lastVariableName=lastVariableName.toLowerCase();currenVariableName=currenVariableName.toLowerCase()}if(currenVariableName"||token.type==="Keyword"}function checkPrecedingSpace(node){var precedingToken=sourceCode.getTokenBefore(node);var requireSpace=void 0;if(precedingToken&&!isConflicted(precedingToken)&&astUtils.isTokenOnSameLine(precedingToken,node)){var hasSpace=sourceCode.isSpaceBetweenTokens(precedingToken,node);var parent=context.getAncestors().pop();if(parent.type==="FunctionExpression"||parent.type==="FunctionDeclaration"){requireSpace=checkFunctions}else if(node.type==="ClassBody"){requireSpace=checkClasses}else{requireSpace=checkKeywords}if(requireSpace){if(!hasSpace){context.report({node:node,message:"Missing space before opening brace.",fix:function fix(fixer){return fixer.insertTextBefore(node," ")}})}}else{if(hasSpace){context.report({node:node,message:"Unexpected space before opening brace.",fix:function fix(fixer){return fixer.removeRange([precedingToken.range[1],node.range[0]])}})}}}}function checkSpaceBeforeCaseBlock(node){var cases=node.cases;var openingBrace=void 0;if(cases.length>0){openingBrace=sourceCode.getTokenBefore(cases[0])}else{openingBrace=sourceCode.getLastToken(node,1)}checkPrecedingSpace(openingBrace)}return{BlockStatement:checkPrecedingSpace,ClassBody:checkPrecedingSpace,SwitchStatement:checkSpaceBeforeCaseBlock}}}},{"../ast-utils":22}],258:[function(require,module,exports){"use strict";var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj};var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"enforce consistent spacing before `function` definition opening parenthesis",category:"Stylistic Issues",recommended:false},fixable:"whitespace",schema:[{oneOf:[{enum:["always","never"]},{type:"object",properties:{anonymous:{enum:["always","never","ignore"]},named:{enum:["always","never","ignore"]},asyncArrow:{enum:["always","never","ignore"]}},additionalProperties:false}]}]},create:function create(context){var sourceCode=context.getSourceCode();var baseConfig=typeof context.options[0]==="string"?context.options[0]:"always";var overrideConfig=_typeof(context.options[0])==="object"?context.options[0]:{};function isNamedFunction(node){if(node.id){return true}var parent=node.parent;return parent.type==="MethodDefinition"||parent.type==="Property"&&(parent.kind==="get"||parent.kind==="set"||parent.method)}function getConfigForFunction(node){if(node.type==="ArrowFunctionExpression"){if(node.async&&astUtils.isOpeningParenToken(sourceCode.getFirstToken(node,{skip:1}))){return overrideConfig.asyncArrow||baseConfig}}else if(isNamedFunction(node)){return overrideConfig.named||baseConfig}else if(!node.generator){return overrideConfig.anonymous||baseConfig}return"ignore"}function checkFunction(node){var functionConfig=getConfigForFunction(node);if(functionConfig==="ignore"){return}var rightToken=sourceCode.getFirstToken(node,astUtils.isOpeningParenToken);var leftToken=sourceCode.getTokenBefore(rightToken);var hasSpacing=sourceCode.isSpaceBetweenTokens(leftToken,rightToken);if(hasSpacing&&functionConfig==="never"){context.report({node:node,loc:leftToken.loc.end,message:"Unexpected space before function parentheses.",fix:function fix(fixer){return fixer.removeRange([leftToken.range[1],rightToken.range[0]])}})}else if(!hasSpacing&&functionConfig==="always"){context.report({node:node,loc:leftToken.loc.end,message:"Missing space before function parentheses.",fix:function fix(fixer){return fixer.insertTextAfter(leftToken," ")}})}}return{ArrowFunctionExpression:checkFunction,FunctionDeclaration:checkFunction,FunctionExpression:checkFunction}}}},{"../ast-utils":22}],259:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"enforce consistent spacing inside parentheses",category:"Stylistic Issues",recommended:false},fixable:"whitespace",schema:[{enum:["always","never"]},{type:"object",properties:{exceptions:{type:"array",items:{enum:["{}","[]","()","empty"]},uniqueItems:true}},additionalProperties:false}]},create:function create(context){var MISSING_SPACE_MESSAGE="There must be a space inside this paren.",REJECTED_SPACE_MESSAGE="There should be no spaces inside this paren.",ALWAYS=context.options[0]==="always",exceptionsArrayOptions=context.options.length===2?context.options[1].exceptions:[],options={};var exceptions=void 0;if(exceptionsArrayOptions.length){options.braceException=exceptionsArrayOptions.indexOf("{}")!==-1;options.bracketException=exceptionsArrayOptions.indexOf("[]")!==-1;options.parenException=exceptionsArrayOptions.indexOf("()")!==-1;options.empty=exceptionsArrayOptions.indexOf("empty")!==-1}function getExceptions(){var openers=[],closers=[];if(options.braceException){openers.push("{");closers.push("}")}if(options.bracketException){openers.push("[");closers.push("]")}if(options.parenException){openers.push("(");closers.push(")")}if(options.empty){openers.push(")");closers.push("(")}return{openers:openers,closers:closers}}var sourceCode=context.getSourceCode();function isOpenerException(token){return token.type==="Punctuator"&&exceptions.openers.indexOf(token.value)>=0}function isCloserException(token){return token.type==="Punctuator"&&exceptions.closers.indexOf(token.value)>=0}function shouldOpenerHaveSpace(left,right){if(sourceCode.isSpaceBetweenTokens(left,right)){return false}if(ALWAYS){if(astUtils.isClosingParenToken(right)){return false}return!isOpenerException(right)}return isOpenerException(right)}function shouldCloserHaveSpace(left,right){if(astUtils.isOpeningParenToken(left)){return false}if(sourceCode.isSpaceBetweenTokens(left,right)){return false}if(ALWAYS){return!isCloserException(left)}return isCloserException(left)}function shouldOpenerRejectSpace(left,right){if(right.type==="Line"){return false}if(!astUtils.isTokenOnSameLine(left,right)){return false}if(!sourceCode.isSpaceBetweenTokens(left,right)){return false}if(ALWAYS){return isOpenerException(right)}return!isOpenerException(right)}function shouldCloserRejectSpace(left,right){if(astUtils.isOpeningParenToken(left)){return false}if(!astUtils.isTokenOnSameLine(left,right)){return false}if(!sourceCode.isSpaceBetweenTokens(left,right)){return false}if(ALWAYS){return isCloserException(left)}return!isCloserException(left)}return{Program:function checkParenSpaces(node){exceptions=getExceptions();var tokens=sourceCode.tokensAndComments;tokens.forEach(function(token,i){var prevToken=tokens[i-1];var nextToken=tokens[i+1];if(!astUtils.isOpeningParenToken(token)&&!astUtils.isClosingParenToken(token)){return}if(token.value==="("&&shouldOpenerHaveSpace(token,nextToken)){context.report({node:node,loc:token.loc.start,message:MISSING_SPACE_MESSAGE,fix:function fix(fixer){return fixer.insertTextAfter(token," ")}})}else if(token.value==="("&&shouldOpenerRejectSpace(token,nextToken)){context.report({node:node,loc:token.loc.start,message:REJECTED_SPACE_MESSAGE,fix:function fix(fixer){return fixer.removeRange([token.range[1],nextToken.range[0]])}})}else if(token.value===")"&&shouldCloserHaveSpace(prevToken,token)){context.report({node:node,loc:token.loc.start,message:MISSING_SPACE_MESSAGE,fix:function fix(fixer){return fixer.insertTextBefore(token," ")}})}else if(token.value===")"&&shouldCloserRejectSpace(prevToken,token)){context.report({node:node,loc:token.loc.start,message:REJECTED_SPACE_MESSAGE,fix:function fix(fixer){return fixer.removeRange([prevToken.range[1],token.range[0]])}})}})}}}}},{"../ast-utils":22}],260:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"require spacing around infix operators",category:"Stylistic Issues",recommended:false},fixable:"whitespace",schema:[{type:"object",properties:{int32Hint:{type:"boolean"}},additionalProperties:false}]},create:function create(context){var int32Hint=context.options[0]?context.options[0].int32Hint===true:false;var OPERATORS=["*","/","%","+","-","<<",">>",">>>","<","<=",">",">=","in","instanceof","==","!=","===","!==","&","^","|","&&","||","=","+=","-=","*=","/=","%=","<<=",">>=",">>>=","&=","^=","|=","?",":",",","**"];var sourceCode=context.getSourceCode();function getFirstNonSpacedToken(left,right){var tokens=sourceCode.getTokensBetween(left,right,1);for(var i=1,l=tokens.length-1;i=0&&(tokens[i-1].range[1]>=op.range[0]||op.range[1]>=tokens[i+1].range[0])){return op}}return null}function report(mainNode,culpritToken){context.report({node:mainNode,loc:culpritToken.loc.start,message:"Infix operators must be spaced.",fix:function fix(fixer){var previousToken=sourceCode.getTokenBefore(culpritToken);var afterToken=sourceCode.getTokenAfter(culpritToken);var fixString="";if(culpritToken.range[0]-previousToken.range[1]===0){fixString=" "}fixString+=culpritToken.value;if(afterToken.range[0]-culpritToken.range[1]===0){fixString+=" "}return fixer.replaceText(culpritToken,fixString)}})}function checkBinary(node){var leftNode=node.left.typeAnnotation?node.left.typeAnnotation:node.left;var rightNode=node.right;var nonSpacedNode=getFirstNonSpacedToken(leftNode,rightNode);if(nonSpacedNode){if(!(int32Hint&&sourceCode.getText(node).substr(-2)==="|0")){report(node,nonSpacedNode)}}}function checkConditional(node){var nonSpacedConsequesntNode=getFirstNonSpacedToken(node.test,node.consequent);var nonSpacedAlternateNode=getFirstNonSpacedToken(node.consequent,node.alternate);if(nonSpacedConsequesntNode){report(node,nonSpacedConsequesntNode)}else if(nonSpacedAlternateNode){report(node,nonSpacedAlternateNode)}}function checkVar(node){var leftNode=node.id.typeAnnotation?node.id.typeAnnotation:node.id;var rightNode=node.init;if(rightNode){var nonSpacedNode=getFirstNonSpacedToken(leftNode,rightNode);if(nonSpacedNode){report(node,nonSpacedNode)}}}return{AssignmentExpression:checkBinary,AssignmentPattern:checkBinary,BinaryExpression:checkBinary,LogicalExpression:checkBinary,ConditionalExpression:checkConditional,VariableDeclarator:checkVar}}}},{}],261:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"enforce consistent spacing before or after unary operators",category:"Stylistic Issues",recommended:false},fixable:"whitespace",schema:[{type:"object",properties:{words:{type:"boolean"},nonwords:{type:"boolean"},overrides:{type:"object",additionalProperties:{type:"boolean"}}},additionalProperties:false}]},create:function create(context){var options=context.options&&Array.isArray(context.options)&&context.options[0]||{words:true,nonwords:false};var sourceCode=context.getSourceCode();function isFirstBangInBangBangExpression(node){return node&&node.type==="UnaryExpression"&&node.argument.operator==="!"&&node.argument&&node.argument.type==="UnaryExpression"&&node.argument.operator==="!"}function isArgumentObjectExpression(node){return node.argument&&node.argument.type&&node.argument.type==="ObjectExpression"}function overrideExistsForOperator(node,operator){return options.overrides&&options.overrides.hasOwnProperty(operator)}function overrideEnforcesSpaces(node,operator){return options.overrides[operator]}function verifyWordHasSpaces(node,firstToken,secondToken,word){if(secondToken.range[0]===firstToken.range[1]){context.report({node:node,message:"Unary word operator '{{word}}' must be followed by whitespace.",data:{word:word},fix:function fix(fixer){return fixer.insertTextAfter(firstToken," ")}})}}function verifyWordDoesntHaveSpaces(node,firstToken,secondToken,word){if(isArgumentObjectExpression(node)){if(secondToken.range[0]>firstToken.range[1]){context.report({node:node,message:"Unexpected space after unary word operator '{{word}}'.",data:{word:word},fix:function fix(fixer){return fixer.removeRange([firstToken.range[1],secondToken.range[0]])}})}}}function checkUnaryWordOperatorForSpaces(node,firstToken,secondToken,word){word=word||firstToken.value;if(overrideExistsForOperator(node,word)){if(overrideEnforcesSpaces(node,word)){verifyWordHasSpaces(node,firstToken,secondToken,word)}else{verifyWordDoesntHaveSpaces(node,firstToken,secondToken,word)}}else if(options.words){verifyWordHasSpaces(node,firstToken,secondToken,word)}else{verifyWordDoesntHaveSpaces(node,firstToken,secondToken,word)}}function checkForSpacesAfterYield(node){var tokens=sourceCode.getFirstTokens(node,3),word="yield";if(!node.argument||node.delegate){return}checkUnaryWordOperatorForSpaces(node,tokens[0],tokens[1],word)}function checkForSpacesAfterAwait(node){var tokens=sourceCode.getFirstTokens(node,3);checkUnaryWordOperatorForSpaces(node,tokens[0],tokens[1],"await")}function verifyNonWordsHaveSpaces(node,firstToken,secondToken){if(node.prefix){if(isFirstBangInBangBangExpression(node)){return}if(firstToken.range[1]===secondToken.range[0]){context.report({node:node,message:"Unary operator '{{operator}}' must be followed by whitespace.",data:{operator:firstToken.value},fix:function fix(fixer){return fixer.insertTextAfter(firstToken," ")}})}}else{if(firstToken.range[1]===secondToken.range[0]){context.report({node:node,message:"Space is required before unary expressions '{{token}}'.",data:{token:secondToken.value},fix:function fix(fixer){return fixer.insertTextBefore(secondToken," ")}})}}}function verifyNonWordsDontHaveSpaces(node,firstToken,secondToken){if(node.prefix){if(secondToken.range[0]>firstToken.range[1]){context.report({node:node,message:"Unexpected space after unary operator '{{operator}}'.",data:{operator:firstToken.value},fix:function fix(fixer){if(astUtils.canTokensBeAdjacent(firstToken,secondToken)){return fixer.removeRange([firstToken.range[1],secondToken.range[0]])}return null}})}}else{if(secondToken.range[0]>firstToken.range[1]){context.report({node:node,message:"Unexpected space before unary operator '{{operator}}'.",data:{operator:secondToken.value},fix:function fix(fixer){return fixer.removeRange([firstToken.range[1],secondToken.range[0]])}})}}}function checkForSpaces(node){var tokens=node.type==="UpdateExpression"&&!node.prefix?sourceCode.getLastTokens(node,2):sourceCode.getFirstTokens(node,2);var firstToken=tokens[0];var secondToken=tokens[1];if((node.type==="NewExpression"||node.prefix)&&firstToken.type==="Keyword"){checkUnaryWordOperatorForSpaces(node,firstToken,secondToken);return}var operator=node.prefix?tokens[0].value:tokens[1].value;if(overrideExistsForOperator(node,operator)){if(overrideEnforcesSpaces(node,operator)){verifyNonWordsHaveSpaces(node,firstToken,secondToken)}else{verifyNonWordsDontHaveSpaces(node,firstToken,secondToken)}}else if(options.nonwords){verifyNonWordsHaveSpaces(node,firstToken,secondToken)}else{verifyNonWordsDontHaveSpaces(node,firstToken,secondToken)}}return{UnaryExpression:checkForSpaces,UpdateExpression:checkForSpaces,NewExpression:checkForSpaces,YieldExpression:checkForSpacesAfterYield,AwaitExpression:checkForSpacesAfterAwait}}}},{"../ast-utils":22}],262:[function(require,module,exports){"use strict";var lodash=require("lodash");var astUtils=require("../ast-utils");function escape(s){var isOneChar=s.length===1;s=lodash.escapeRegExp(s);return isOneChar?s:"(?:"+s+")"}function escapeAndRepeat(s){return escape(s)+"+"}function parseMarkersOption(markers){markers=markers?markers.slice(0):[];if(markers.indexOf("*")===-1){markers.push("*")}return markers}function createExceptionsPattern(exceptions){var pattern="";if(exceptions.length===0){pattern+="\\s"}else{pattern+="(?:\\s|";if(exceptions.length===1){pattern+=escapeAndRepeat(exceptions[0])}else{pattern+="(?:";pattern+=exceptions.map(escapeAndRepeat).join("|");pattern+=")"}pattern+="(?:$|["+Array.from(astUtils.LINEBREAKS).join("")+"]))"}return pattern}function createAlwaysStylePattern(markers,exceptions){var pattern="^";if(markers.length===1){pattern+=escape(markers[0])}else{pattern+="(?:";pattern+=markers.map(escape).join("|");pattern+=")"}pattern+="?";pattern+=createExceptionsPattern(exceptions);return new RegExp(pattern)}function createNeverStylePattern(markers){var pattern="^("+markers.map(escape).join("|")+")?[ \t]+";return new RegExp(pattern)}module.exports={meta:{docs:{description:"enforce consistent spacing after the `//` or `/*` in a comment",category:"Stylistic Issues",recommended:false},fixable:"whitespace",schema:[{enum:["always","never"]},{type:"object",properties:{exceptions:{type:"array",items:{type:"string"}},markers:{type:"array",items:{type:"string"}},line:{type:"object",properties:{exceptions:{type:"array",items:{type:"string"}},markers:{type:"array",items:{type:"string"}}},additionalProperties:false},block:{type:"object",properties:{exceptions:{type:"array",items:{type:"string"}},markers:{type:"array",items:{type:"string"}},balanced:{type:"boolean"}},additionalProperties:false}},additionalProperties:false}]},create:function create(context){var sourceCode=context.getSourceCode();var requireSpace=context.options[0]!=="never";var config=context.options[1]||{};var balanced=config.block&&config.block.balanced;var styleRules=["block","line"].reduce(function(rule,type){var markers=parseMarkersOption(config[type]&&config[type].markers||config.markers);var exceptions=config[type]&&config[type].exceptions||config.exceptions||[];var endNeverPattern="[ \t]+$";rule[type]={beginRegex:requireSpace?createAlwaysStylePattern(markers,exceptions):createNeverStylePattern(markers),endRegex:balanced&&requireSpace?new RegExp(createExceptionsPattern(exceptions)+"$"):new RegExp(endNeverPattern),hasExceptions:exceptions.length>0,markers:new RegExp("^("+markers.map(escape).join("|")+")")};return rule},{});function reportBegin(node,message,match,refChar){var type=node.type.toLowerCase(),commentIdentifier=type==="block"?"/*":"//";context.report({node:node,fix:function fix(fixer){var start=node.range[0];var end=start+2;if(requireSpace){if(match){end+=match[0].length}return fixer.insertTextAfterRange([start,end]," ")}end+=match[0].length;return fixer.replaceTextRange([start,end],commentIdentifier+(match[1]?match[1]:""))},message:message,data:{refChar:refChar}})}function reportEnd(node,message,match){context.report({node:node,fix:function fix(fixer){if(requireSpace){return fixer.insertTextAfterRange([node.start,node.end-2]," ")}var end=node.end-2,start=end-match[0].length;return fixer.replaceTextRange([start,end],"")},message:message})}function checkCommentForSpace(node){var type=node.type.toLowerCase(),rule=styleRules[type],commentIdentifier=type==="block"?"/*":"//";if(node.value.length===0){return}var beginMatch=rule.beginRegex.exec(node.value);var endMatch=rule.endRegex.exec(node.value);if(requireSpace){if(!beginMatch){var hasMarker=rule.markers.exec(node.value);var marker=hasMarker?commentIdentifier+hasMarker[0]:commentIdentifier;if(rule.hasExceptions){reportBegin(node,"Expected exception block, space or tab after '{{refChar}}' in comment.",hasMarker,marker)}else{reportBegin(node,"Expected space or tab after '{{refChar}}' in comment.",hasMarker,marker)}}if(balanced&&type==="block"&&!endMatch){reportEnd(node,"Expected space or tab before '*/' in comment.")}}else{if(beginMatch){if(!beginMatch[1]){reportBegin(node,"Unexpected space or tab after '{{refChar}}' in comment.",beginMatch,commentIdentifier)}else{reportBegin(node,"Unexpected space or tab after marker ({{refChar}}) in comment.",beginMatch,beginMatch[1])}}if(balanced&&type==="block"&&endMatch){reportEnd(node,"Unexpected space or tab before '*/' in comment.",endMatch)}}}return{Program:function Program(){var comments=sourceCode.getAllComments();comments.filter(function(token){return token.type!=="Shebang"}).forEach(checkCommentForSpace)}}}}},{"../ast-utils":22,lodash:16}],263:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");var messages={function:"Use the function form of 'use strict'.",global:"Use the global form of 'use strict'.",multiple:"Multiple 'use strict' directives.",never:"Strict mode is not permitted.",unnecessary:"Unnecessary 'use strict' directive.",module:"'use strict' is unnecessary inside of modules.",implied:"'use strict' is unnecessary when implied strict mode is enabled.",unnecessaryInClasses:"'use strict' is unnecessary inside of classes.",nonSimpleParameterList:"'use strict' directive inside a function with non-simple parameter list throws a syntax error since ES2016.",wrap:"Wrap {{name}} in a function with 'use strict' directive."};function getUseStrictDirectives(statements){var directives=[];for(var i=0;i0,isParentGlobal=scopes.length===0&&classScopes.length===0,isParentStrict=scopes.length>0&&scopes[scopes.length-1],isStrict=useStrictDirectives.length>0;if(isStrict){if(!isSimpleParameterList(node.params)){context.report({node:useStrictDirectives[0],message:messages.nonSimpleParameterList})}else if(isParentStrict){context.report({node:useStrictDirectives[0],message:messages.unnecessary,fix:getFixFunction(useStrictDirectives[0])})}else if(isInClass){context.report({node:useStrictDirectives[0],message:messages.unnecessaryInClasses,fix:getFixFunction(useStrictDirectives[0])})}reportAllExceptFirst(useStrictDirectives,messages.multiple,true)}else if(isParentGlobal){if(isSimpleParameterList(node.params)){context.report({node:node,message:messages.function})}else{context.report({node:node,message:messages.wrap,data:{name:astUtils.getFunctionNameWithKind(node)}})}}scopes.push(isParentStrict||isStrict)}function exitFunctionInFunctionMode(){scopes.pop()}function enterFunction(node){var isBlock=node.body.type==="BlockStatement",useStrictDirectives=isBlock?getUseStrictDirectives(node.body.body):[];if(mode==="function"){enterFunctionInFunctionMode(node,useStrictDirectives)}else if(useStrictDirectives.length>0){if(isSimpleParameterList(node.params)){reportAll(useStrictDirectives,messages[mode],shouldFix(mode))}else{context.report({node:useStrictDirectives[0],message:messages.nonSimpleParameterList});reportAllExceptFirst(useStrictDirectives,messages.multiple,true)}}}var rule={Program:function Program(node){var useStrictDirectives=getUseStrictDirectives(node.body);if(node.sourceType==="module"){mode="module"}if(mode==="global"){if(node.body.length>0&&useStrictDirectives.length===0){context.report({node:node,message:messages.global})}reportAllExceptFirst(useStrictDirectives,messages.multiple,true)}else{reportAll(useStrictDirectives,messages[mode],shouldFix(mode))}},FunctionDeclaration:enterFunction,FunctionExpression:enterFunction,ArrowFunctionExpression:enterFunction};if(mode==="function"){Object.assign(rule,{ClassBody:function ClassBody(){classScopes.push(true)},"ClassBody:exit":function ClassBodyExit(){classScopes.pop()},"FunctionDeclaration:exit":exitFunctionInFunctionMode,"FunctionExpression:exit":exitFunctionInFunctionMode,"ArrowFunctionExpression:exit":exitFunctionInFunctionMode})}return rule}}},{"../ast-utils":22}],264:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"enforce spacing around colons of switch statements",category:"Stylistic Issues",recommended:false},schema:[{type:"object",properties:{before:{type:"boolean"},after:{type:"boolean"}},additionalProperties:false}],fixable:"whitespace"},create:function create(context){var sourceCode=context.getSourceCode();var options=context.options[0]||{};var beforeSpacing=options.before===true;var afterSpacing=options.after!==false;function getColonToken(node){if(node.test){return sourceCode.getTokenAfter(node.test,astUtils.isColonToken)}return sourceCode.getFirstToken(node,1)}function isValidSpacing(left,right,expected){return astUtils.isClosingBraceToken(right)||!astUtils.isTokenOnSameLine(left,right)||sourceCode.isSpaceBetweenTokens(left,right)===expected}function commentsExistBetween(left,right){return sourceCode.getFirstTokenBetween(left,right,{includeComments:true,filter:astUtils.isCommentToken})!==null}function _fix(fixer,left,right,spacing){if(commentsExistBetween(left,right)){return null}if(spacing){return fixer.insertTextAfter(left," ")}return fixer.removeRange([left.range[1],right.range[0]])}return{SwitchCase:function SwitchCase(node){var colonToken=getColonToken(node);var beforeToken=sourceCode.getTokenBefore(colonToken);var afterToken=sourceCode.getTokenAfter(colonToken);if(!isValidSpacing(beforeToken,colonToken,beforeSpacing)){context.report({node:node,loc:colonToken.loc,message:"{{verb}} space(s) before this colon.",data:{verb:beforeSpacing?"Expected":"Unexpected"},fix:function fix(fixer){return _fix(fixer,beforeToken,colonToken,beforeSpacing)}})}if(!isValidSpacing(colonToken,afterToken,afterSpacing)){context.report({node:node,loc:colonToken.loc,message:"{{verb}} space(s) after this colon.",data:{verb:afterSpacing?"Expected":"Unexpected"},fix:function fix(fixer){return _fix(fixer,colonToken,afterToken,afterSpacing)}})}}}}}},{"../ast-utils":22}],265:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");module.exports={meta:{docs:{description:"require symbol descriptions",category:"ECMAScript 6",recommended:false},schema:[]},create:function create(context){function checkArgument(node){if(node.arguments.length===0){context.report({node:node,message:"Expected Symbol to have a description."})}}return{"Program:exit":function ProgramExit(){var scope=context.getScope();var variable=astUtils.getVariableByName(scope,"Symbol");if(variable&&variable.defs.length===0){variable.references.forEach(function(reference){var node=reference.identifier;if(astUtils.isCallee(node)){checkArgument(node.parent)}})}}}}}},{"../ast-utils":22}],266:[function(require,module,exports){"use strict";var astUtils=require("../ast-utils");var OPEN_PAREN=/\$\{$/;var CLOSE_PAREN=/^\}/;module.exports={meta:{docs:{description:"require or disallow spacing around embedded expressions of template strings",category:"ECMAScript 6",recommended:false},fixable:"whitespace",schema:[{enum:["always","never"]}]},create:function create(context){var sourceCode=context.getSourceCode();var always=context.options[0]==="always";var prefix=always?"Expected":"Unexpected";function checkSpacingBefore(token){var prevToken=sourceCode.getTokenBefore(token);if(prevToken&&CLOSE_PAREN.test(token.value)&&astUtils.isTokenOnSameLine(prevToken,token)&&sourceCode.isSpaceBetweenTokens(prevToken,token)!==always){context.report({loc:token.loc.start,message:"{{prefix}} space(s) before '}'.",data:{prefix:prefix},fix:function fix(fixer){if(always){return fixer.insertTextBefore(token," ")}return fixer.removeRange([prevToken.range[1],token.range[0]])}})}}function checkSpacingAfter(token){var nextToken=sourceCode.getTokenAfter(token);if(nextToken&&OPEN_PAREN.test(token.value)&&astUtils.isTokenOnSameLine(token,nextToken)&&sourceCode.isSpaceBetweenTokens(token,nextToken)!==always){context.report({loc:{line:token.loc.end.line,column:token.loc.end.column-2},message:"{{prefix}} space(s) after '${'.",data:{prefix:prefix},fix:function fix(fixer){if(always){return fixer.insertTextAfter(token," ")}return fixer.removeRange([token.range[1],nextToken.range[0]])}})}}return{TemplateElement:function TemplateElement(node){var token=sourceCode.getFirstToken(node);checkSpacingBefore(token);checkSpacingAfter(token)}}}}},{"../ast-utils":22}],267:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"require or disallow spacing between template tags and their literals",category:"Stylistic Issues",recommended:false},fixable:"whitespace",schema:[{enum:["always","never"]}]},create:function create(context){var never=context.options[0]!=="always";var sourceCode=context.getSourceCode();function checkSpacing(node){var tagToken=sourceCode.getTokenBefore(node.quasi);var literalToken=sourceCode.getFirstToken(node.quasi);var hasWhitespace=sourceCode.isSpaceBetweenTokens(tagToken,literalToken);if(never&&hasWhitespace){context.report({node:node,loc:tagToken.loc.start,message:"Unexpected space between template tag and template literal.",fix:function fix(fixer){var comments=sourceCode.getCommentsBefore(node.quasi);if(comments.some(function(comment){return comment.type==="Line"})){return null}return fixer.replaceTextRange([tagToken.range[1],literalToken.range[0]],comments.reduce(function(text,comment){return text+sourceCode.getText(comment)},""))}})}else if(!never&&!hasWhitespace){context.report({node:node,loc:tagToken.loc.start,message:"Missing space between template tag and template literal.",fix:function fix(fixer){return fixer.insertTextAfter(tagToken," ")}})}}return{TaggedTemplateExpression:checkSpacing}}}},{}],268:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"require or disallow Unicode byte order mark (BOM)",category:"Stylistic Issues",recommended:false},fixable:"whitespace",schema:[{enum:["always","never"]}]},create:function create(context){return{Program:function checkUnicodeBOM(node){var sourceCode=context.getSourceCode(),location={column:0,line:1},requireBOM=context.options[0]||"never";if(!sourceCode.hasBOM&&requireBOM==="always"){context.report({node:node,loc:location,message:"Expected Unicode BOM (Byte Order Mark).",fix:function fix(fixer){return fixer.insertTextBeforeRange([0,1],"\ufeff")}})}else if(sourceCode.hasBOM&&requireBOM==="never"){context.report({node:node,loc:location,message:"Unexpected Unicode BOM (Byte Order Mark).",fix:function fix(fixer){return fixer.removeRange([-1,0])}})}}}}}},{}],269:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"require calls to `isNaN()` when checking for `NaN`",category:"Possible Errors",recommended:true},schema:[]},create:function create(context){return{BinaryExpression:function BinaryExpression(node){if(/^(?:[<>]|[!=]=)=?$/.test(node.operator)&&(node.left.name==="NaN"||node.right.name==="NaN")){context.report({node:node,message:"Use the isNaN function to compare with NaN."})}}}}}},{}],270:[function(require,module,exports){"use strict";var doctrine=require("doctrine");module.exports={meta:{docs:{description:"enforce valid JSDoc comments",category:"Possible Errors",recommended:false},schema:[{type:"object",properties:{prefer:{type:"object",additionalProperties:{type:"string"}},preferType:{type:"object",additionalProperties:{type:"string"}},requireReturn:{type:"boolean"},requireParamDescription:{type:"boolean"},requireReturnDescription:{type:"boolean"},matchDescription:{type:"string"},requireReturnType:{type:"boolean"}},additionalProperties:false}]},create:function create(context){var options=context.options[0]||{},prefer=options.prefer||{},sourceCode=context.getSourceCode(),requireReturn=options.requireReturn!==false,requireParamDescription=options.requireParamDescription!==false,requireReturnDescription=options.requireReturnDescription!==false,requireReturnType=options.requireReturnType!==false,preferType=options.preferType||{},checkPreferType=Object.keys(preferType).length!==0;var fns=[];function isTypeClass(node){return node.type==="ClassExpression"||node.type==="ClassDeclaration"}function startFunction(node){fns.push({returnPresent:node.type==="ArrowFunctionExpression"&&node.body.type!=="BlockStatement"||isTypeClass(node)})}function addReturn(node){var functionState=fns[fns.length-1];if(functionState&&node.argument!==null){functionState.returnPresent=true}}function isValidReturnType(tag){return tag.type===null||tag.type.name==="void"||tag.type.type==="UndefinedLiteral"}function canTypeBeValidated(type){return type!=="UndefinedLiteral"&&type!=="NullLiteral"&&type!=="NullableLiteral"&&type!=="FunctionType"&&type!=="AllLiteral"}function getCurrentExpectedTypes(type){var currentType=void 0;if(type.name){currentType=type.name}else if(type.expression){currentType=type.expression.name}var expectedType=currentType&&preferType[currentType];return{currentType:currentType,expectedType:expectedType}}function validateType(jsdocNode,type){if(!type||!canTypeBeValidated(type.type)){return}var typesToCheck=[];var elements=[];switch(type.type){case"TypeApplication":elements=type.applications[0].type==="UnionType"?type.applications[0].elements:type.applications;typesToCheck.push(getCurrentExpectedTypes(type));break;case"RecordType":elements=type.fields;break;case"UnionType":case"ArrayType":elements=type.elements;break;case"FieldType":if(type.value){typesToCheck.push(getCurrentExpectedTypes(type.value))}break;default:typesToCheck.push(getCurrentExpectedTypes(type))}elements.forEach(validateType.bind(null,jsdocNode));typesToCheck.forEach(function(typeToCheck){if(typeToCheck.expectedType&&typeToCheck.expectedType!==typeToCheck.currentType){context.report({node:jsdocNode,message:"Use '{{expectedType}}' instead of '{{currentType}}'.",data:{currentType:typeToCheck.currentType,expectedType:typeToCheck.expectedType}})}})}function checkJSDoc(node){var jsdocNode=sourceCode.getJSDocComment(node),functionData=fns.pop(),params=Object.create(null);var hasReturns=false,hasConstructor=false,isInterface=false,isOverride=false,isAbstract=false,jsdoc=void 0;if(jsdocNode){try{jsdoc=doctrine.parse(jsdocNode.value,{strict:true,unwrap:true,sloppy:true})}catch(ex){if(/braces/i.test(ex.message)){context.report({node:jsdocNode,message:"JSDoc type missing brace."})}else{context.report({node:jsdocNode,message:"JSDoc syntax error."})}return}jsdoc.tags.forEach(function(tag){switch(tag.title.toLowerCase()){case"param":case"arg":case"argument":if(!tag.type){context.report({node:jsdocNode,message:"Missing JSDoc parameter type for '{{name}}'.",data:{name:tag.name}})}if(!tag.description&&requireParamDescription){context.report({node:jsdocNode,message:"Missing JSDoc parameter description for '{{name}}'.",data:{name:tag.name}})}if(params[tag.name]){context.report({node:jsdocNode,message:"Duplicate JSDoc parameter '{{name}}'.",data:{name:tag.name}})}else if(tag.name.indexOf(".")===-1){params[tag.name]=1}break;case"return":case"returns":hasReturns=true;if(!requireReturn&&!functionData.returnPresent&&(tag.type===null||!isValidReturnType(tag))&&!isAbstract){context.report({node:jsdocNode,message:"Unexpected @{{title}} tag; function has no return statement.",data:{title:tag.title}})}else{if(requireReturnType&&!tag.type){context.report({node:jsdocNode,message:"Missing JSDoc return type."})}if(!isValidReturnType(tag)&&!tag.description&&requireReturnDescription){context.report({node:jsdocNode,message:"Missing JSDoc return description."})}}break;case"constructor":case"class":hasConstructor=true;break;case"override":case"inheritdoc":isOverride=true;break;case"abstract":case"virtual":isAbstract=true;break;case"interface":isInterface=true;break}if(prefer.hasOwnProperty(tag.title)&&tag.title!==prefer[tag.title]){context.report({node:jsdocNode,message:"Use @{{name}} instead.",data:{name:prefer[tag.title]}})}if(checkPreferType&&tag.type){validateType(jsdocNode,tag.type)}});if(!isOverride&&!hasReturns&&!hasConstructor&&!isInterface&&node.parent.kind!=="get"&&node.parent.kind!=="constructor"&&node.parent.kind!=="set"&&!isTypeClass(node)){if(requireReturn||functionData.returnPresent){context.report({node:jsdocNode,message:"Missing JSDoc @{{returns}} for function.",data:{returns:prefer.returns||"returns"}})}}var jsdocParams=Object.keys(params);if(node.params){node.params.forEach(function(param,i){if(param.type==="AssignmentPattern"){param=param.left}var name=param.name;if(param.type==="Identifier"){if(jsdocParams[i]&&name!==jsdocParams[i]){context.report({node:jsdocNode,message:"Expected JSDoc for '{{name}}' but found '{{jsdocName}}'.",data:{name:name,jsdocName:jsdocParams[i]}})}else if(!params[name]&&!isOverride){context.report({node:jsdocNode,message:"Missing JSDoc for parameter '{{name}}'.",data:{name:name}})}}})}if(options.matchDescription){var regex=new RegExp(options.matchDescription);if(!regex.test(jsdoc.description)){context.report({node:jsdocNode,message:"JSDoc description does not satisfy the regex pattern."})}}}}return{ArrowFunctionExpression:startFunction,FunctionExpression:startFunction,FunctionDeclaration:startFunction,ClassExpression:startFunction,ClassDeclaration:startFunction,"ArrowFunctionExpression:exit":checkJSDoc,"FunctionExpression:exit":checkJSDoc,"FunctionDeclaration:exit":checkJSDoc,"ClassExpression:exit":checkJSDoc,"ClassDeclaration:exit":checkJSDoc,ReturnStatement:addReturn}}}},{doctrine:2}],271:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"enforce comparing `typeof` expressions against valid strings",category:"Possible Errors",recommended:true},schema:[{type:"object",properties:{requireStringLiterals:{type:"boolean"}},additionalProperties:false}]},create:function create(context){var VALID_TYPES=["symbol","undefined","object","boolean","number","string","function"],OPERATORS=["==","===","!=","!=="];var requireStringLiterals=context.options[0]&&context.options[0].requireStringLiterals;function isTypeofExpression(node){return node.type==="UnaryExpression"&&node.operator==="typeof"}return{UnaryExpression:function UnaryExpression(node){if(isTypeofExpression(node)){var parent=context.getAncestors().pop();if(parent.type==="BinaryExpression"&&OPERATORS.indexOf(parent.operator)!==-1){var sibling=parent.left===node?parent.right:parent.left;if(sibling.type==="Literal"||sibling.type==="TemplateLiteral"&&!sibling.expressions.length){var value=sibling.type==="Literal"?sibling.value:sibling.quasis[0].value.cooked;if(VALID_TYPES.indexOf(value)===-1){context.report({node:sibling,message:"Invalid typeof comparison value."})}}else if(requireStringLiterals&&!isTypeofExpression(sibling)){context.report({node:sibling,message:"Typeof comparisons should be to string literals."})}}}}}}}},{}],272:[function(require,module,exports){"use strict";module.exports={meta:{docs:{description:"require `var` declarations be placed at the top of their containing scope",category:"Best Practices",recommended:false},schema:[]},create:function create(context){var errorMessage="All 'var' declarations must be at the top of the function scope.";function looksLikeDirective(node){return node.type==="ExpressionStatement"&&node.expression.type==="Literal"&&typeof node.expression.value==="string"}function looksLikeImport(node){return node.type==="ImportDeclaration"||node.type==="ImportSpecifier"||node.type==="ImportDefaultSpecifier"||node.type==="ImportNamespaceSpecifier"}function isVariableDeclaration(node){return node.type==="VariableDeclaration"||node.type==="ExportNamedDeclaration"&&node.declaration&&node.declaration.type==="VariableDeclaration"}function isVarOnTop(node,statements){var l=statements.length;var i=0;for(;i|<=|>=)$/.test(operator)}function isEqualityOperator(operator){return/^(==|===)$/.test(operator)}function isRangeTestOperator(operator){return["<","<="].indexOf(operator)>=0}function looksLikeLiteral(node){return node.type==="UnaryExpression"&&node.operator==="-"&&node.prefix&&node.argument.type==="Literal"&&typeof node.argument.value==="number"}function getNormalizedLiteral(node,defaultValue){if(node.type==="Literal"){return node}if(looksLikeLiteral(node)){return{type:"Literal",value:-node.argument.value,raw:"-"+node.argument.value}}if(defaultValue){return{type:"Literal",value:defaultValue,raw:String(defaultValue)}}return null}function same(a,b){if(a.type!==b.type){return false}switch(a.type){case"Identifier":return a.name===b.name;case"Literal":return a.value===b.value;case"MemberExpression":{var nameA=astUtils.getStaticPropertyName(a);if(nameA){return same(a.object,b.object)&&nameA===astUtils.getStaticPropertyName(b)}return a.computed===b.computed&&same(a.object,b.object)&&same(a.property,b.property)}case"ThisExpression":return true;default:return false}}module.exports={meta:{docs:{description:'require or disallow "Yoda" conditions',category:"Best Practices",recommended:false},schema:[{enum:["always","never"]},{type:"object",properties:{exceptRange:{type:"boolean"},onlyEquality:{type:"boolean"}},additionalProperties:false}],fixable:"code"},create:function create(context){var always=context.options[0]==="always";var exceptRange=context.options[1]&&context.options[1].exceptRange;var onlyEquality=context.options[1]&&context.options[1].onlyEquality;var sourceCode=context.getSourceCode();function isRangeTest(node){var left=node.left,right=node.right;function isBetweenTest(){var leftLiteral=void 0,rightLiteral=void 0;return node.operator==="&&"&&(leftLiteral=getNormalizedLiteral(left.left))&&(rightLiteral=getNormalizedLiteral(right.right,Number.POSITIVE_INFINITY))&&leftLiteral.value<=rightLiteral.value&&same(left.right,right.left)}function isOutsideTest(){var leftLiteral=void 0,rightLiteral=void 0;return node.operator==="||"&&(leftLiteral=getNormalizedLiteral(left.right,Number.NEGATIVE_INFINITY))&&(rightLiteral=getNormalizedLiteral(right.left))&&leftLiteral.value<=rightLiteral.value&&same(left.left,right.right)}function isParenWrapped(){return astUtils.isParenthesised(sourceCode,node)}return node.type==="LogicalExpression"&&left.type==="BinaryExpression"&&right.type==="BinaryExpression"&&isRangeTestOperator(left.operator)&&isRangeTestOperator(right.operator)&&(isBetweenTest()||isOutsideTest())&&isParenWrapped()}var OPERATOR_FLIP_MAP={"===":"===","!==":"!==","==":"==","!=":"!=","<":">",">":"<","<=":">=",">=":"<="};function getFlippedString(node){var operatorToken=sourceCode.getFirstTokenBetween(node.left,node.right,function(token){return token.value===node.operator});var textBeforeOperator=sourceCode.getText().slice(sourceCode.getTokenBefore(operatorToken).range[1],operatorToken.range[0]);var textAfterOperator=sourceCode.getText().slice(operatorToken.range[1],sourceCode.getTokenAfter(operatorToken).range[0]);var leftText=sourceCode.getText().slice(node.range[0],sourceCode.getTokenBefore(operatorToken).range[1]);var rightText=sourceCode.getText().slice(sourceCode.getTokenAfter(operatorToken).range[0],node.range[1]);return rightText+textBeforeOperator+OPERATOR_FLIP_MAP[operatorToken.value]+textAfterOperator+leftText}return{BinaryExpression:function BinaryExpression(node){var expectedLiteral=always?node.left:node.right;var expectedNonLiteral=always?node.right:node.left;if((expectedNonLiteral.type==="Literal"||looksLikeLiteral(expectedNonLiteral))&&!(expectedLiteral.type==="Literal"||looksLikeLiteral(expectedLiteral))&&!(!isEqualityOperator(node.operator)&&onlyEquality)&&isComparisonOperator(node.operator)&&!(exceptRange&&isRangeTest(context.getAncestors().pop()))){context.report({node:node,message:"Expected literal to be on the {{expectedSide}} side of {{operator}}.",data:{operator:node.operator,expectedSide:always?"left":"right"},fix:function fix(fixer){return fixer.replaceText(node,getFlippedString(node))}})}}}}}},{"../ast-utils":22}],277:[function(require,module,exports){"use strict";var _createClass=function(){function defineProperties(target,props){for(var i=0;i