diff --git a/dist/build.js b/dist/build.js index 4b49da0..9d14162 100644 --- a/dist/build.js +++ b/dist/build.js @@ -1,4 +1,22208 @@ -!function e(t,n,i){function a(o,s){if(!n[o]){if(!t[o]){var l="function"==typeof require&&require;if(!s&&l)return l(o,!0);if(r)return r(o,!0);var u=new Error("Cannot find module '"+o+"'");throw u.code="MODULE_NOT_FOUND",u}var c=n[o]={exports:{}};t[o][0].call(c.exports,function(e){var n=t[o][1][e];return a(n?n:e)},c,c.exports,e,t,n,i)}return n[o].exports}for(var r="function"==typeof require&&require,o=0;os;)o.call(e,a=r[s++])&&t.push(a);return t}},{"./$":24}],15:[function(e,t,n){var i=e("./$.global"),a=e("./$.core"),r=e("./$.ctx"),o="prototype",s=function(e,t,n){var l,u,c,h=e&s.F,d=e&s.G,f=e&s.S,p=e&s.P,v=e&s.B,b=e&s.W,m=d?a:a[t]||(a[t]={}),g=d?i:f?i[t]:(i[t]||{})[o];d&&(n=t);for(l in n)u=!h&&g&&l in g,u&&l in m||(c=u?g[l]:n[l],m[l]=d&&"function"!=typeof g[l]?n[l]:v&&u?r(c,i):b&&g[l]==c?function(e){var t=function(t){return this instanceof e?new e(t):e(t)};return t[o]=e[o],t}(c):p&&"function"==typeof c?r(Function.call,c):c,p&&((m[o]||(m[o]={}))[l]=c))};s.F=1,s.G=2,s.S=4,s.P=8,s.B=16,s.W=32,t.exports=s},{"./$.core":10,"./$.ctx":11,"./$.global":18}],16:[function(e,t,n){t.exports=function(e){try{return!!e()}catch(t){return!0}}},{}],17:[function(e,t,n){var i=e("./$.to-iobject"),a=e("./$").getNames,r={}.toString,o="object"==typeof window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],s=function(e){try{return a(e)}catch(t){return o.slice()}};t.exports.get=function(e){return o&&"[object Window]"==r.call(e)?s(e):a(i(e))}},{"./$":24,"./$.to-iobject":31}],18:[function(e,t,n){var i=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=i)},{}],19:[function(e,t,n){var i={}.hasOwnProperty;t.exports=function(e,t){return i.call(e,t)}},{}],20:[function(e,t,n){var i=e("./$"),a=e("./$.property-desc");t.exports=e("./$.descriptors")?function(e,t,n){return i.setDesc(e,t,a(1,n))}:function(e,t,n){return e[t]=n,e}},{"./$":24,"./$.descriptors":13,"./$.property-desc":27}],21:[function(e,t,n){var i=e("./$.cof");t.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==i(e)?e.split(""):Object(e)}},{"./$.cof":9}],22:[function(e,t,n){var i=e("./$.cof");t.exports=Array.isArray||function(e){return"Array"==i(e)}},{"./$.cof":9}],23:[function(e,t,n){t.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},{}],24:[function(e,t,n){var i=Object;t.exports={create:i.create,getProto:i.getPrototypeOf,isEnum:{}.propertyIsEnumerable,getDesc:i.getOwnPropertyDescriptor,setDesc:i.defineProperty,setDescs:i.defineProperties,getKeys:i.keys,getNames:i.getOwnPropertyNames,getSymbols:i.getOwnPropertySymbols,each:[].forEach}},{}],25:[function(e,t,n){var i=e("./$"),a=e("./$.to-iobject");t.exports=function(e,t){for(var n,r=a(e),o=i.getKeys(r),s=o.length,l=0;s>l;)if(r[n=o[l++]]===t)return n}},{"./$":24,"./$.to-iobject":31}],26:[function(e,t,n){t.exports=!0},{}],27:[function(e,t,n){t.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},{}],28:[function(e,t,n){t.exports=e("./$.hide")},{"./$.hide":20}],29:[function(e,t,n){var i=e("./$").setDesc,a=e("./$.has"),r=e("./$.wks")("toStringTag");t.exports=function(e,t,n){e&&!a(e=n?e:e.prototype,r)&&i(e,r,{configurable:!0,value:t})}},{"./$":24,"./$.has":19,"./$.wks":33}],30:[function(e,t,n){var i=e("./$.global"),a="__core-js_shared__",r=i[a]||(i[a]={});t.exports=function(e){return r[e]||(r[e]={})}},{"./$.global":18}],31:[function(e,t,n){var i=e("./$.iobject"),a=e("./$.defined");t.exports=function(e){return i(a(e))}},{"./$.defined":12,"./$.iobject":21}],32:[function(e,t,n){var i=0,a=Math.random();t.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++i+a).toString(36))}},{}],33:[function(e,t,n){var i=e("./$.shared")("wks"),a=e("./$.uid"),r=e("./$.global").Symbol;t.exports=function(e){return i[e]||(i[e]=r&&r[e]||(r||a)("Symbol."+e))}},{"./$.global":18,"./$.shared":30,"./$.uid":32}],34:[function(e,t,n){},{}],35:[function(e,t,n){"use strict";var i=e("./$"),a=e("./$.global"),r=e("./$.has"),o=e("./$.descriptors"),s=e("./$.export"),l=e("./$.redefine"),u=e("./$.fails"),c=e("./$.shared"),h=e("./$.set-to-string-tag"),d=e("./$.uid"),f=e("./$.wks"),p=e("./$.keyof"),v=e("./$.get-names"),b=e("./$.enum-keys"),m=e("./$.is-array"),g=e("./$.an-object"),y=e("./$.to-iobject"),_=e("./$.property-desc"),w=i.getDesc,C=i.setDesc,$=i.create,k=v.get,S=a.Symbol,A=a.JSON,x=A&&A.stringify,T=!1,O=f("_hidden"),N=i.isEnum,j=c("symbol-registry"),M=c("symbols"),P="function"==typeof S,E=Object.prototype,F=o&&u(function(){return 7!=$(C({},"a",{get:function(){return C(this,"a",{value:7}).a}})).a})?function(e,t,n){var i=w(E,t);i&&delete E[t],C(e,t,n),i&&e!==E&&C(E,t,i)}:C,I=function(e){var t=M[e]=$(S.prototype);return t._k=e,o&&T&&F(E,e,{configurable:!0,set:function(t){r(this,O)&&r(this[O],e)&&(this[O][e]=!1),F(this,e,_(1,t))}}),t},D=function(e){return"symbol"==typeof e},R=function(e,t,n){return n&&r(M,t)?(n.enumerable?(r(e,O)&&e[O][t]&&(e[O][t]=!1),n=$(n,{enumerable:_(0,!1)})):(r(e,O)||C(e,O,_(1,{})),e[O][t]=!0),F(e,t,n)):C(e,t,n)},B=function(e,t){g(e);for(var n,i=b(t=y(t)),a=0,r=i.length;r>a;)R(e,n=i[a++],t[n]);return e},L=function(e,t){return void 0===t?$(e):B($(e),t)},G=function(e){var t=N.call(this,e);return t||!r(this,e)||!r(M,e)||r(this,O)&&this[O][e]?t:!0},H=function(e,t){var n=w(e=y(e),t);return!n||!r(M,t)||r(e,O)&&e[O][t]||(n.enumerable=!0),n},V=function(e){for(var t,n=k(y(e)),i=[],a=0;n.length>a;)r(M,t=n[a++])||t==O||i.push(t);return i},z=function(e){for(var t,n=k(y(e)),i=[],a=0;n.length>a;)r(M,t=n[a++])&&i.push(M[t]);return i},U=function(e){if(void 0!==e&&!D(e)){for(var t,n,i=[e],a=1,r=arguments;r.length>a;)i.push(r[a++]);return t=i[1],"function"==typeof t&&(n=t),!n&&m(t)||(t=function(e,t){return n&&(t=n.call(this,e,t)),D(t)?void 0:t}),i[1]=t,x.apply(A,i)}},W=u(function(){var e=S();return"[null]"!=x([e])||"{}"!=x({a:e})||"{}"!=x(Object(e))});P||(S=function(){if(D(this))throw TypeError("Symbol is not a constructor");return I(d(arguments.length>0?arguments[0]:void 0))},l(S.prototype,"toString",function(){return this._k}),D=function(e){return e instanceof S},i.create=L,i.isEnum=G,i.getDesc=H,i.setDesc=R,i.setDescs=B,i.getNames=v.get=V,i.getSymbols=z,o&&!e("./$.library")&&l(E,"propertyIsEnumerable",G,!0));var K={"for":function(e){return r(j,e+="")?j[e]:j[e]=S(e)},keyFor:function(e){return p(j,e)},useSetter:function(){T=!0},useSimple:function(){T=!1}};i.each.call("hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),function(e){var t=f(e);K[e]=P?t:I(t)}),T=!0,s(s.G+s.W,{Symbol:S}),s(s.S,"Symbol",K),s(s.S+s.F*!P,"Object",{create:L,defineProperty:R,defineProperties:B,getOwnPropertyDescriptor:H,getOwnPropertyNames:V,getOwnPropertySymbols:z}),A&&s(s.S+s.F*(!P||W),"JSON",{stringify:U}),h(S,"Symbol"),h(Math,"Math",!0),h(a.JSON,"JSON",!0)},{"./$":24,"./$.an-object":8,"./$.descriptors":13,"./$.enum-keys":14,"./$.export":15,"./$.fails":16,"./$.get-names":17,"./$.global":18,"./$.has":19,"./$.is-array":22,"./$.keyof":25,"./$.library":26,"./$.property-desc":27,"./$.redefine":28,"./$.set-to-string-tag":29,"./$.shared":30,"./$.to-iobject":31,"./$.uid":32,"./$.wks":33}],36:[function(e,t,n){(function(e){"use strict";function n(e,t,i){if(a(e,t))return void(e[t]=i);if(e._isVue)return void n(e._data,t,i);var r=e.__ob__;if(!r)return void(e[t]=i);if(r.convert(t,i),r.dep.notify(),r.vms)for(var o=r.vms.length;o--;){var s=r.vms[o];s._proxy(t),s._digest()}return i}function i(e,t){if(a(e,t)){delete e[t];var n=e.__ob__;if(n&&(n.dep.notify(),n.vms))for(var i=n.vms.length;i--;){var r=n.vms[i];r._unproxy(t),r._digest()}}}function a(e,t){return $n.call(e,t)}function r(e){return kn.test(e)}function o(e){var t=(e+"").charCodeAt(0);return 36===t||95===t}function s(e){return null==e?"":e.toString()}function l(e){if("string"!=typeof e)return e;var t=Number(e);return isNaN(t)?e:t}function u(e){return"true"===e?!0:"false"===e?!1:e}function c(e){var t=e.charCodeAt(0),n=e.charCodeAt(e.length-1);return t!==n||34!==t&&39!==t?e:e.slice(1,-1)}function h(e){return e.replace(Sn,d)}function d(e,t){return t?t.toUpperCase():""}function f(e){return e.replace(An,"$1-$2").toLowerCase()}function p(e){return e.replace(xn,d)}function v(e,t){return function(n){var i=arguments.length;return i?i>1?e.apply(t,arguments):e.call(t,n):e.call(t)}}function b(e,t){t=t||0;for(var n=e.length-t,i=new Array(n);n--;)i[n]=e[n+t];return i}function m(e,t){for(var n=Object.keys(t),i=n.length;i--;)e[n[i]]=t[n[i]];return e}function g(e){return null!==e&&"object"==typeof e}function y(e){return Tn.call(e)===On}function _(e,t,n,i){Object.defineProperty(e,t,{value:n,enumerable:!!i,writable:!0,configurable:!0})}function w(e,t){var n,i,a,r,o,s=function l(){var s=Date.now()-r;t>s&&s>=0?n=setTimeout(l,t-s):(n=null,o=e.apply(a,i),n||(a=i=null))};return function(){return a=this,i=arguments,r=Date.now(),n||(n=setTimeout(s,t)),o}}function C(e,t){for(var n=e.length;n--;)if(e[n]===t)return n;return-1}function $(e){var t=function n(){return n.cancelled?void 0:e.apply(this,arguments)};return t.cancel=function(){t.cancelled=!0},t}function k(e,t){return e==t||(g(e)&&g(t)?JSON.stringify(e)===JSON.stringify(t):!1)}function S(e){this.size=0,this.limit=e,this.head=this.tail=void 0,this._keymap=Object.create(null)}function A(){var e,t=Un.slice(Yn,qn).trim();if(t){e={};var n=t.match(ai);e.name=n[0],n.length>1&&(e.args=n.slice(1).map(x))}e&&(Wn.filters=Wn.filters||[]).push(e),Yn=qn+1}function x(e){if(ri.test(e))return{value:l(e),dynamic:!1};var t=c(e),n=t===e;return{value:n?e:t,dynamic:n}}function T(e){var t=ii.get(e);if(t)return t;for(Un=e,Qn=Xn=!1,ei=ti=ni=0,Yn=0,Wn={},qn=0,Zn=Un.length;Zn>qn;qn++)if(Jn=Kn,Kn=Un.charCodeAt(qn),Qn)39===Kn&&92!==Jn&&(Qn=!Qn);else if(Xn)34===Kn&&92!==Jn&&(Xn=!Xn);else if(124===Kn&&124!==Un.charCodeAt(qn+1)&&124!==Un.charCodeAt(qn-1))null==Wn.expression?(Yn=qn+1,Wn.expression=Un.slice(0,qn).trim()):A();else switch(Kn){case 34:Xn=!0;break;case 39:Qn=!0;break;case 40:ni++;break;case 41:ni--;break;case 91:ti++;break;case 93:ti--;break;case 123:ei++;break;case 125:ei--}return null==Wn.expression?Wn.expression=Un.slice(0,qn).trim():0!==Yn&&A(),ii.put(e,Wn),Wn}function O(e){return e.replace(si,"\\$&")}function N(){var e=O(vi.delimiters[0]),t=O(vi.delimiters[1]),n=O(vi.unsafeDelimiters[0]),i=O(vi.unsafeDelimiters[1]);ui=new RegExp(n+"(.+?)"+i+"|"+e+"(.+?)"+t,"g"),ci=new RegExp("^"+n+".*"+i+"$"),li=new S(1e3)}function j(e){li||N();var t=li.get(e);if(t)return t;if(e=e.replace(/\n/g,""),!ui.test(e))return null;for(var n,i,a,r,o,s,l=[],u=ui.lastIndex=0;n=ui.exec(e);)i=n.index,i>u&&l.push({value:e.slice(u,i)}),a=ci.test(n[0]),r=a?n[1]:n[2],o=r.charCodeAt(0),s=42===o,r=s?r.slice(1):r,l.push({tag:!0,value:r.trim(),html:a,oneTime:s}),u=i+n[0].length;return u1?e.map(function(e){return P(e,t)}).join("+"):P(e[0],t,!0)}function P(e,t,n){return e.tag?e.oneTime&&t?'"'+t.$eval(e.value)+'"':E(e.value,n):'"'+e.value+'"'}function E(e,t){if(hi.test(e)){var n=T(e);return n.filters?"this._applyFilters("+n.expression+",null,"+JSON.stringify(n.filters)+",false)":"("+e+")"}return t?e:"("+e+")"}function F(e,t,n,i){R(e,1,function(){t.appendChild(e)},n,i)}function I(e,t,n,i){R(e,1,function(){z(e,t)},n,i)}function D(e,t,n){R(e,-1,function(){W(e)},t,n)}function R(e,t,n,i,a){var r=e.__v_trans;if(!r||!r.hooks&&!Rn||!i._isCompiled||i.$parent&&!i.$parent._isCompiled)return n(),void(a&&a());var o=t>0?"enter":"leave";r[o](n,a)}function B(e){if("string"==typeof e){e=document.querySelector(e)}return e}function L(e){var t=document.documentElement,n=e&&e.parentNode;return t===e||t===n||!(!n||1!==n.nodeType||!t.contains(n))}function G(e,t){var n=e.getAttribute(t);return null!==n&&e.removeAttribute(t),n}function H(e,t){var n=G(e,":"+t);return null===n&&(n=G(e,"v-bind:"+t)),n}function V(e,t){return e.hasAttribute(t)||e.hasAttribute(":"+t)||e.hasAttribute("v-bind:"+t)}function z(e,t){t.parentNode.insertBefore(e,t)}function U(e,t){t.nextSibling?z(e,t.nextSibling):t.parentNode.appendChild(e)}function W(e){e.parentNode.removeChild(e)}function K(e,t){t.firstChild?z(e,t.firstChild):t.appendChild(e)}function J(e,t){var n=e.parentNode;n&&n.replaceChild(t,e)}function q(e,t,n,i){e.addEventListener(t,n,i)}function Z(e,t,n){e.removeEventListener(t,n)}function Y(e,t){Fn&&!/svg$/.test(e.namespaceURI)?e.className=t:e.setAttribute("class",t)}function Q(e,t){if(e.classList)e.classList.add(t);else{var n=" "+(e.getAttribute("class")||"")+" ";n.indexOf(" "+t+" ")<0&&Y(e,(n+t).trim())}}function X(e,t){if(e.classList)e.classList.remove(t);else{for(var n=" "+(e.getAttribute("class")||"")+" ",i=" "+t+" ";n.indexOf(i)>=0;)n=n.replace(i," ");Y(e,n.trim())}e.className||e.removeAttribute("class")}function ee(e,t){var n,i;if(ie(e)&&le(e.content)&&(e=e.content),e.hasChildNodes())for(te(e),i=t?document.createDocumentFragment():document.createElement("div");n=e.firstChild;)i.appendChild(n);return i}function te(e){for(var t;t=e.firstChild,ne(t);)e.removeChild(t);for(;t=e.lastChild,ne(t);)e.removeChild(t)}function ne(e){return e&&(3===e.nodeType&&!e.data.trim()||8===e.nodeType)}function ie(e){return e.tagName&&"template"===e.tagName.toLowerCase()}function ae(e,t){var n=vi.debug?document.createComment(e):document.createTextNode(t?" ":"");return n.__v_anchor=!0,n}function re(e){if(e.hasAttributes())for(var t=e.attributes,n=0,i=t.length;i>n;n++){var a=t[n].name;if(gi.test(a))return h(a.replace(gi,""))}}function oe(e,t,n){for(var i;e!==t;)i=e.nextSibling,n(e),e=i;n(t)}function se(e,t,n,i,a){function r(){if(s++,o&&s>=l.length){for(var e=0;ea;a++){var o=i[a];yi.test(o)||_i.test(o)||(t=n[o],y(t)&&(n[o]=mn.extend(t)))}}function ge(e){var t,n,i=e.props;if(Nn(i))for(e.props={},t=i.length;t--;)n=i[t],"string"==typeof n?e.props[n]=null:n.name&&(e.props[n.name]=n);else if(y(i)){var a=Object.keys(i);for(t=a.length;t--;)n=i[a[t]],"function"==typeof n&&(i[a[t]]={type:n})}}function ye(e){if(Nn(e)){for(var t,n={},i=e.length;i--;){t=e[i];var a="function"==typeof t?t.options&&t.options.name||t.id:t.name||t.id;a&&(n[a]=t)}return n}return e}function _e(e,t,n){function i(i){var a=wi[i]||Ci;o[i]=a(e[i],t[i],n,i)}me(t),ge(t);var r,o={};if(t.mixins)for(var s=0,l=t.mixins.length;l>s;s++)e=_e(e,t.mixins[s],n);for(r in e)i(r);for(r in t)a(e,r)||i(r);return o}function we(e,t,n){if("string"==typeof n){var i,a=e[t];return a[n]||a[i=h(n)]||a[i.charAt(0).toUpperCase()+i.slice(1)]}}function Ce(e,t,n){}function $e(){this.id=$i++,this.subs=[]}function ke(e){if(this.value=e,this.dep=new $e,_(e,"__ob__",this),Nn(e)){var t=jn?Se:Ae;t(e,Si,Ai),this.observeArray(e)}else this.walk(e)}function Se(e,t){e.__proto__=t}function Ae(e,t,n){for(var i=0,a=n.length;a>i;i++){var r=n[i];_(e,r,t[r])}}function xe(e,t){if(e&&"object"==typeof e){var n;return a(e,"__ob__")&&e.__ob__ instanceof ke?n=e.__ob__:(Nn(e)||y(e))&&Object.isExtensible(e)&&!e._isVue&&(n=new ke(e)),n&&t&&n.addVm(t),n}}function Te(e,t,n){var i=new $e,a=Object.getOwnPropertyDescriptor(e,t);if(!a||a.configurable!==!1){var r=a&&a.get,o=a&&a.set,s=xe(n);Object.defineProperty(e,t,{enumerable:!0,configurable:!0,get:function(){var t=r?r.call(e):n;if($e.target&&(i.depend(),s&&s.dep.depend(),Nn(t)))for(var a,o=0,l=t.length;l>o;o++)a=t[o],a&&a.__ob__&&a.__ob__.dep.depend();return t},set:function(t){var a=r?r.call(e):n;t!==a&&(o?o.call(e,t):n=t,s=xe(t),i.notify())}})}}function Oe(e){e.prototype._init=function(e){e=e||{},this.$el=null,this.$parent=e.parent,this.$root=this.$parent?this.$parent.$root:this,this.$children=[],this.$refs={},this.$els={},this._watchers=[],this._directives=[],this._uid=Ti++,this._isVue=!0,this._events={},this._eventsCount={},this._isFragment=!1,this._fragment=this._fragmentStart=this._fragmentEnd=null,this._isCompiled=this._isDestroyed=this._isReady=this._isAttached=this._isBeingDestroyed=this._vForRemoving=!1,this._unlinkFn=null,this._context=e._context||this.$parent,this._scope=e._scope,this._frag=e._frag,this._frag&&this._frag.children.push(this),this.$parent&&this.$parent.$children.push(this),e=this.$options=_e(this.constructor.options,e,this),this._updateRef(),this._data={},this._callHook("init"),this._initState(),this._initEvents(),this._callHook("created"),e.el&&this.$mount(e.el)}}function Ne(e){if(void 0===e)return"eof";var t=e.charCodeAt(0);switch(t){case 91:case 93:case 46:case 34:case 39:case 48:return e;case 95:case 36:return"ident";case 32:case 9:case 10:case 13:case 160:case 65279:case 8232:case 8233:return"ws"}return t>=97&&122>=t||t>=65&&90>=t?"ident":t>=49&&57>=t?"number":"else"}function je(e){var t=e.trim();return"0"===e.charAt(0)&&isNaN(e)?!1:r(t)?c(t):"*"+t}function Me(e){function t(){var t=e[c+1];return h===Bi&&"'"===t||h===Li&&'"'===t?(c++,i="\\"+t,f[Ni](),!0):void 0}var n,i,a,r,o,s,l,u=[],c=-1,h=Ei,d=0,f=[];for(f[ji]=function(){void 0!==a&&(u.push(a),a=void 0)},f[Ni]=function(){void 0===a?a=i:a+=i},f[Mi]=function(){f[Ni](),d++},f[Pi]=function(){if(d>0)d--,h=Ri,f[Ni]();else{if(d=0,a=je(a),a===!1)return!1;f[ji]()}};null!=h;)if(c++,n=e[c],"\\"!==n||!t()){if(r=Ne(n),l=Vi[h],o=l[r]||l["else"]||Hi,o===Hi)return;if(h=o[0],s=f[o[1]],s&&(i=o[2],i=void 0===i?n:i,s()===!1))return;if(h===Gi)return u.raw=e,u}}function Pe(e){var t=Oi.get(e);return t||(t=Me(e),t&&Oi.put(e,t)),t}function Ee(e,t){return He(t).get(e)}function Fe(e,t,i){var a=e;if("string"==typeof t&&(t=Me(t)),!t||!g(e))return!1;for(var r,o,s=0,l=t.length;l>s;s++)r=e,o=t[s],"*"===o.charAt(0)&&(o=He(o.slice(1)).get.call(a,a)),l-1>s?(e=e[o],g(e)||(e={},n(r,o,e))):Nn(e)?e.$set(o,i):o in e?e[o]=i:n(e,o,i);return!0}function Ie(e,t){var n=ia.length;return ia[n]=t?e.replace(Yi,"\\n"):e,'"'+n+'"'}function De(e){var t=e.charAt(0),n=e.slice(1);return Ki.test(n)?e:(n=n.indexOf('"')>-1?n.replace(Xi,Re):n,t+"scope."+n)}function Re(e,t){return ia[t]}function Be(e){qi.test(e),ia.length=0;var t=e.replace(Qi,Ie).replace(Zi,"");return t=(" "+t).replace(ta,De).replace(Xi,Re),Le(t)}function Le(e){try{return new Function("scope","return "+e+";")}catch(t){}}function Ge(e){var t=Pe(e);return t?function(e,n){Fe(e,t,n)}:void 0}function He(e,t){e=e.trim();var n=Ui.get(e);if(n)return t&&!n.set&&(n.set=Ge(n.exp)),n;var i={exp:e};return i.get=Ve(e)&&e.indexOf("[")<0?Le("scope."+e):Be(e),t&&(i.set=Ge(e)),Ui.put(e,i),i}function Ve(e){return ea.test(e)&&!na.test(e)&&"Math."!==e.slice(0,5)}function ze(){ra=[],oa=[],sa={},la={},ua=ca=!1}function Ue(){We(ra),ca=!0,We(oa),Pn&&Pn.emit("flush"),ze()}function We(e){for(var t=0;t0){var o=r+(i?t:ue(t));a=Ca.get(o),a||(a=Nt(n,e.$options,!0),Ca.put(o,a))}else a=Nt(n,e.$options,!0);this.linker=a}function ut(e,t,n){var i=e.node.previousSibling;if(i){for(e=i.__v_frag;!(e&&e.forId===n&&e.inserted||i===t);){if(i=i.previousSibling,!i)return;e=i.__v_frag}return e}}function ct(e){var t=e.node;if(e.end)for(;!t.__vue__&&t!==e.end&&t.nextSibling;)t=t.nextSibling;return t.__vue__}function ht(e){for(var t=-1,n=new Array(Math.floor(e));++ts;s++)if(i=e.options[s],r=n?i.hasAttribute("selected"):i.selected){if(a=i.hasOwnProperty("_value")?i._value:i.value,!t)return a;o.push(a)}return o}function ft(e,t){for(var n=e.length;n--;)if(k(e[n],t))return n;return-1}function pt(e,t){var n=t.map(function(e){var t=e.charCodeAt(0);return t>47&&58>t?parseInt(e,10):1===e.length&&(t=e.toUpperCase().charCodeAt(0),t>64&&91>t)?t:Va[e]});return n=[].concat.apply([],n),function(t){return n.indexOf(t.keyCode)>-1?e.call(this,t):void 0}}function vt(e){return function(t){return t.stopPropagation(),e.call(this,t)}}function bt(e){return function(t){return t.preventDefault(),e.call(this,t)}}function mt(e){return function(t){return t.target===t.currentTarget?e.call(this,t):void 0}}function gt(e){if(Ja[e])return Ja[e];var t=yt(e);return Ja[e]=Ja[t]=t,t}function yt(e){e=f(e);var t=h(e),n=t.charAt(0).toUpperCase()+t.slice(1);qa||(qa=document.createElement("div"));for(var i,a=Ua.length;a--;)if(i=Wa[a]+n,i in qa.style)return Ua[a]+e;return t in qa.style?e:void 0}function _t(e){for(var t={},n=e.trim().split(/\s+/),i=n.length;i--;)t[n[i]]=!0;return t}function wt(e,t){return Nn(e)?e.indexOf(t)>-1:a(e,t)}function Ct(e,t,n){function i(){++r>=a?n():e[r].call(t,i)}var a=e.length,r=0;e[0].call(t,i)}function $t(e){dr.push(e),fr||(fr=!0,Vn(kt))}function kt(){for(var e=document.documentElement.offsetHeight,t=0;ta;a++)i[a]._bind();return i}function Mt(e,t){return e=e.descriptor.def.priority||Nr,t=t.descriptor.def.priority||Nr,e>t?-1:e===t?0:1}function Pt(e,t,n,i){function a(a){Et(e,t,a),n&&i&&Et(n,i)}return a.dirs=t,a}function Et(e,t,n){for(var i=t.length;i--;)t[i]._teardown()}function Ft(e,t,n,i){var a=xt(t,n),r=jt(function(){a(e,i)},e);return Pt(e,r)}function It(e,t,n){var i,a,r=t._containerAttrs,o=t._replacerAttrs;if(11!==e.nodeType)t._asComponent?(r&&n&&(i=Zt(r,n)),o&&(a=Zt(o,t))):a=Zt(e.attributes,t);else;return t._containerAttrs=t._replacerAttrs=null,function(e,t,n){var r,o=e._context;o&&i&&(r=jt(function(){i(o,t,null,n)},o));var s=jt(function(){a&&a(e,t)},e);return Pt(e,s,o,r)}}function Dt(e,t){var n=e.nodeType;return 1===n&&"SCRIPT"!==e.tagName?Rt(e,t):3===n&&e.data.trim()?Bt(e,t):null}function Rt(e,t){if("TEXTAREA"===e.tagName){var n=j(e.value);n&&(e.setAttribute(":value",M(n)),e.value="")}var i,a=e.hasAttributes();return a&&(i=Kt(e,t)),i||(i=Ut(e,t)),i||(i=Wt(e,t)),!i&&a&&(i=Zt(e.attributes,t)),i}function Bt(e,t){if(e._skip)return Lt;var n=j(e.wholeText);if(!n)return null;for(var i=e.nextSibling;i&&3===i.nodeType;)i._skip=!0,i=i.nextSibling;for(var a,r,o=document.createDocumentFragment(),s=0,l=n.length;l>s;s++)r=n[s],a=r.tag?Gt(r,t):document.createTextNode(r.value),o.appendChild(a);return Ht(n,o,t)}function Lt(e,t){W(t)}function Gt(e,t){function n(t){if(!e.descriptor){var n=T(e.value);e.descriptor={name:t,def:sr[t],expression:n.expression,filters:n.filters}}}var i;return e.oneTime?i=document.createTextNode(e.value):e.html?(i=document.createComment("v-html"),n("html")):(i=document.createTextNode(" "),n("text")),i}function Ht(e,t){return function(n,i,a,r){for(var o,s,l,u=t.cloneNode(!0),c=b(u.childNodes),h=0,d=e.length;d>h;h++)o=e[h],s=o.value,o.tag&&(l=c[h],o.oneTime?(s=(r||n).$eval(s),o.html?J(l,et(s,!0)):l.data=s):n._bindDir(o.descriptor,l,a,r));J(i,u)}}function Vt(e,t){for(var n,i,a,r=[],o=0,s=e.length;s>o;o++)a=e[o],n=Dt(a,t),i=n&&n.terminal||"SCRIPT"===a.tagName||!a.hasChildNodes()?null:Vt(a.childNodes,t),r.push(n,i);return r.length?zt(r):null}function zt(e){return function(t,n,i,a,r){for(var o,s,l,u=0,c=0,h=e.length;h>u;c++){o=n[c],s=e[u++],l=e[u++];var d=b(o.childNodes);s&&s(t,o,i,a,r),l&&l(t,d,i,a,r)}}}function Ut(e,t){var n=e.tagName.toLowerCase();if(!yi.test(n)){var i=we(t,"elementDirectives",n); -return i?qt(e,n,"",t,i):void 0}}function Wt(e,t){var n=ce(e,t);if(n){var i=re(e),a={name:"component",ref:i,expression:n.id,def:_r.component,modifiers:{literal:!n.dynamic}},r=function(e,t,n,r,o){i&&Te((r||e).$refs,i,null),e._bindDir(a,t,n,r,o)};return r.terminal=!0,r}}function Kt(e,t){if(null!==G(e,"v-pre"))return Jt;if(e.hasAttribute("v-else")){var n=e.previousElementSibling;if(n&&n.hasAttribute("v-if"))return Jt}for(var i,a,r=0,o=Or.length;o>r;r++)if(a=Or[r],i=e.getAttribute("v-"+a),null!=i)return qt(e,a,i,t)}function Jt(){}function qt(e,t,n,i,a){var r=T(n),o={name:t,expression:r.expression,filters:r.filters,raw:n,def:a||we(i,"directives",t)};"for"!==t&&"router-view"!==t||(o.ref=re(e));var s=function(e,t,n,i,a){o.ref&&Te((i||e).$refs,o.ref,null),e._bindDir(o,t,n,i,a)};return s.terminal=!0,s}function Zt(e,t){function n(e,t,n){var i=n&&Xt(n),a=!i&&T(r);v.push({name:e,attr:o,raw:s,def:t,arg:u,modifiers:c,expression:a&&a.expression,filters:a&&a.filters,interp:n,hasOneTime:i})}for(var i,a,r,o,s,l,u,c,h,d,f,p=e.length,v=[];p--;)if(i=e[p],a=o=i.name,r=s=i.value,d=j(r),u=null,c=Yt(a),a=a.replace(xr,""),d)r=M(d),u=a,n("bind",sr.bind,d);else if(Tr.test(a))c.literal=!kr.test(a),n("transition",_r.transition);else if(Sr.test(a))u=a.replace(Sr,""),n("on",sr.on);else if(kr.test(a))l=a.replace(kr,""),"style"===l||"class"===l?n(l,_r[l]):(u=l,n("bind",sr.bind));else if(f=a.match(Ar)){if(l=f[1],u=f[2],"else"===l)continue;h=we(t,"directives",l),h&&n(l,h)}return v.length?Qt(v):void 0}function Yt(e){var t=Object.create(null),n=e.match(xr);if(n)for(var i=n.length;i--;)t[n[i].slice(1)]=!0;return t}function Qt(e){return function(t,n,i,a,r){for(var o=e.length;o--;)t._bindDir(e[o],n,i,a,r)}}function Xt(e){for(var t=e.length;t--;)if(e[t].oneTime)return!0}function en(e,t){return t&&(t._containerAttrs=nn(e)),ie(e)&&(e=et(e)),t&&(t._asComponent&&!t.template&&(t.template=""),t.template&&(t._content=ee(e),e=tn(e,t))),le(e)&&(K(ae("v-start",!0),e),e.appendChild(ae("v-end",!0))),e}function tn(e,t){var n=t.template,i=et(n,!0);if(i){var a=i.firstChild,r=a.tagName&&a.tagName.toLowerCase();return t.replace?(e===document.body,i.childNodes.length>1||1!==a.nodeType||"component"===r||we(t,"components",r)||V(a,"is")||we(t,"elementDirectives",r)||a.hasAttribute("v-for")||a.hasAttribute("v-if")?i:(t._replacerAttrs=nn(a),an(e,a),a)):(e.appendChild(i),e)}}function nn(e){return 1===e.nodeType&&e.hasAttributes()?b(e.attributes):void 0}function an(e,t){for(var n,i,a=e.attributes,r=a.length;r--;)n=a[r].name,i=a[r].value,t.hasAttribute(n)||jr.test(n)?"class"!==n||j(i)||i.split(/\s+/).forEach(function(e){Q(t,e)}):t.setAttribute(n,i)}function rn(e,t,n){function i(e,n){var i='[slot="'+n+'"]',r=t.querySelectorAll(i);r.length&&(a[n]=on(r,t))}if(t){var a=n._slotContents={},r=e.querySelectorAll("slot");if(r.length){for(var o,s,l,u=0,c=r.length;c>u;u++)s=r[u],(l=s.getAttribute("name"))?i(s,l):o=!0;o&&(a["default"]=on(t.childNodes,t))}}}function on(e,t){var n=document.createDocumentFragment();e=b(e);for(var i=0,a=e.length;a>i;i++){var r=e[i];r.parentNode===t&&(!ie(r)||r.hasAttribute("v-if")||r.hasAttribute("v-for")||(t.removeChild(r),r=et(r)),n.appendChild(r))}return n}function sn(e){function t(){}function i(e,t){var n=new Je(t,e,null,{lazy:!0});return function(){return n.dirty&&n.evaluate(),$e.target&&n.depend(),n.value}}Object.defineProperty(e.prototype,"$data",{get:function(){return this._data},set:function(e){e!==this._data&&this._setData(e)}}),e.prototype._initState=function(){this._initProps(),this._initMeta(),this._initMethods(),this._initData(),this._initComputed()},e.prototype._initProps=function(){var e=this.$options,t=e.el,n=e.props;t=e.el=B(t),this._propsUnlinkFn=t&&1===t.nodeType&&n?Ft(this,t,n,this._scope):null},e.prototype._initData=function(){var e=this._data,t=this.$options.data,i=t&&t();if(i){this._data=i;for(var r in e)null===this._props[r].raw&&a(i,r)||n(i,r,e[r])}var o,s,l=this._data,u=Object.keys(l);for(o=u.length;o--;)s=u[o],this._proxy(s);xe(l,this)},e.prototype._setData=function(e){e=e||{};var t=this._data;this._data=e;var n,i,r;for(n=Object.keys(t),r=n.length;r--;)i=n[r],i in e||this._unproxy(i);for(n=Object.keys(e),r=n.length;r--;)i=n[r],a(this,i)||this._proxy(i);t.__ob__.removeVm(this),xe(e,this),this._digest()},e.prototype._proxy=function(e){if(!o(e)){var t=this;Object.defineProperty(t,e,{configurable:!0,enumerable:!0,get:function(){return t._data[e]},set:function(n){t._data[e]=n}})}},e.prototype._unproxy=function(e){o(e)||delete this[e]},e.prototype._digest=function(){for(var e=0,t=this._watchers.length;t>e;e++)this._watchers[e].update(!0)},e.prototype._initComputed=function(){var e=this.$options.computed;if(e)for(var n in e){var a=e[n],r={enumerable:!0,configurable:!0};"function"==typeof a?(r.get=i(a,this),r.set=t):(r.get=a.get?a.cache!==!1?i(a.get,this):v(a.get,this):t,r.set=a.set?v(a.set,this):t),Object.defineProperty(this,n,r)}},e.prototype._initMethods=function(){var e=this.$options.methods;if(e)for(var t in e)this[t]=v(e[t],this)},e.prototype._initMeta=function(){var e=this.$options._meta;if(e)for(var t in e)Te(this,t,e[t])}}function ln(e){function t(e,t){for(var n,i,a=t.attributes,r=0,o=a.length;o>r;r++)n=a[r].name,Pr.test(n)&&(n=n.replace(Pr,""),i=(e._scope||e._context).$eval(a[r].value,!0),"function"==typeof i&&(i._fromParent=!0,e.$on(n.replace(Pr),i)))}function n(e,t,n){if(n){var a,r,o,s;for(r in n)if(a=n[r],Nn(a))for(o=0,s=a.length;s>o;o++)i(e,t,r,a[o]);else i(e,t,r,a)}}function i(e,t,n,a,r){var o=typeof a;if("function"===o)e[t](n,a,r);else if("string"===o){var s=e.$options.methods,l=s&&s[a];l&&e[t](n,l,r)}else a&&"object"===o&&i(e,t,n,a.handler,a)}function a(){this._isAttached||(this._isAttached=!0,this.$children.forEach(r))}function r(e){!e._isAttached&&L(e.$el)&&e._callHook("attached")}function o(){this._isAttached&&(this._isAttached=!1,this.$children.forEach(s))}function s(e){e._isAttached&&!L(e.$el)&&e._callHook("detached")}e.prototype._initEvents=function(){var e=this.$options;e._asComponent&&t(this,e.el),n(this,"$on",e.events),n(this,"$watch",e.watch)},e.prototype._initDOMHooks=function(){this.$on("hook:attached",a),this.$on("hook:detached",o)},e.prototype._callHook=function(e){this.$emit("pre-hook:"+e);var t=this.$options[e];if(t)for(var n=0,i=t.length;i>n;n++)t[n].call(this);this.$emit("hook:"+e)}}function un(){}function cn(e,t,n,i,a,r){this.vm=t,this.el=n,this.descriptor=e,this.name=e.name,this.expression=e.expression,this.arg=e.arg,this.modifiers=e.modifiers,this.filters=e.filters,this.literal=this.modifiers&&this.modifiers.literal,this._locked=!1,this._bound=!1,this._listeners=null,this._host=i,this._scope=a,this._frag=r}function hn(e){e.prototype._updateRef=function(e){var t=this.$options._ref;if(t){var n=(this._scope||this._context).$refs;e?n[t]===this&&(n[t]=null):n[t]=this}},e.prototype._compile=function(e){var t=this.$options,n=e;if(e=en(e,t),this._initElement(e),1!==e.nodeType||null===G(e,"v-pre")){var i=this._context&&this._context.$options,a=It(e,t,i);rn(e,t._content,this);var r,o=this.constructor;t._linkerCachable&&(r=o.linker,r||(r=o.linker=Nt(e,t)));var s=a(this,e,this._scope),l=r?r(this,e):Nt(e,t)(this,e);this._unlinkFn=function(){s(),l(!0)},t.replace&&J(n,e),this._isCompiled=!0,this._callHook("compiled")}},e.prototype._initElement=function(e){le(e)?(this._isFragment=!0,this.$el=this._fragmentStart=e.firstChild,this._fragmentEnd=e.lastChild,3===this._fragmentStart.nodeType&&(this._fragmentStart.data=this._fragmentEnd.data=""),this._fragment=e):this.$el=e,this.$el.__vue__=this,this._callHook("beforeCompile")},e.prototype._bindDir=function(e,t,n,i,a){this._directives.push(new cn(e,this,t,n,i,a))},e.prototype._destroy=function(e,t){if(this._isBeingDestroyed)return void(t||this._cleanup());var n,i,a=this,r=function(){!n||i||t||a._cleanup()};e&&this.$el&&(i=!0,this.$remove(function(){i=!1,r()})),this._callHook("beforeDestroy"),this._isBeingDestroyed=!0;var o,s=this.$parent;for(s&&!s._isBeingDestroyed&&(s.$children.$remove(this),this._updateRef(!0)),o=this.$children.length;o--;)this.$children[o].$destroy();for(this._propsUnlinkFn&&this._propsUnlinkFn(),this._unlinkFn&&this._unlinkFn(),o=this._watchers.length;o--;)this._watchers[o].teardown();this.$el&&(this.$el.__vue__=null),n=!0,r()},e.prototype._cleanup=function(){this._isDestroyed||(this._frag&&this._frag.children.$remove(this),this._data.__ob__&&this._data.__ob__.removeVm(this),this.$el=this.$parent=this.$root=this.$children=this._watchers=this._context=this._scope=this._directives=null,this._isDestroyed=!0,this._callHook("destroyed"),this.$off())}}function dn(e){e.prototype._applyFilters=function(e,t,n,i){var a,r,o,s,l,u,c,h,d;for(u=0,c=n.length;c>u;u++)if(a=n[u],r=we(this.$options,"filters",a.name),r&&(r=i?r.write:r.read||r,"function"==typeof r)){if(o=i?[e,t]:[e],l=i?2:1,a.args)for(h=0,d=a.args.length;d>h;h++)s=a.args[h],o[h+l]=s.dynamic?this.$get(s.value):s.value;e=r.apply(this,o)}return e},e.prototype._resolveComponent=function(t,n){var i=we(this.$options,"components",t);if(i)if(i.options)n(i);else if(i.resolved)n(i.resolved);else if(i.requested)i.pendingCallbacks.push(n);else{i.requested=!0;var a=i.pendingCallbacks=[n];i.call(this,function(t){y(t)&&(t=e.extend(t)),i.resolved=t;for(var n=0,r=a.length;r>n;n++)a[n](t)},function(e){})}}}function fn(e){function t(e){return JSON.parse(JSON.stringify(e))}e.prototype.$get=function(e,t){var n=He(e);if(n){if(t&&!Ve(e)){var i=this;return function(){i.$arguments=b(arguments);var e=n.get.call(i,i);return i.$arguments=null,e}}try{return n.get.call(this,this)}catch(a){}}},e.prototype.$set=function(e,t){var n=He(e,!0);n&&n.set&&n.set.call(this,this,t)},e.prototype.$delete=function(e){i(this._data,e)},e.prototype.$watch=function(e,t,n){var i,a=this;"string"==typeof e&&(i=T(e),e=i.expression);var r=new Je(a,e,t,{deep:n&&n.deep,sync:n&&n.sync,filters:i&&i.filters,user:!n||n.user!==!1});return n&&n.immediate&&t.call(a,r.value),function(){r.teardown()}},e.prototype.$eval=function(e,t){if(Er.test(e)){var n=T(e),i=this.$get(n.expression,t);return n.filters?this._applyFilters(i,null,n.filters):i}return this.$get(e,t)},e.prototype.$interpolate=function(e){var t=j(e),n=this;return t?1===t.length?n.$eval(t[0].value)+"":t.map(function(e){return e.tag?n.$eval(e.value):e.value}).join(""):e},e.prototype.$log=function(e){var n=e?Ee(this._data,e):this._data;if(n&&(n=t(n)),!e)for(var i in this.$options.computed)n[i]=t(this[i]);console.log(n)}}function pn(e){function t(e,t,i,a,r,o){t=n(t);var s=!L(t),l=a===!1||s?r:o,u=!s&&!e._isAttached&&!L(e.$el);return e._isFragment?(oe(e._fragmentStart,e._fragmentEnd,function(n){l(n,t,e)}),i&&i()):l(e.$el,t,e,i),u&&e._callHook("attached"),e}function n(e){return"string"==typeof e?document.querySelector(e):e}function i(e,t,n,i){t.appendChild(e),i&&i()}function a(e,t,n,i){z(e,t),i&&i()}function r(e,t,n){W(e),n&&n()}e.prototype.$nextTick=function(e){Vn(e,this)},e.prototype.$appendTo=function(e,n,a){return t(this,e,n,a,i,F)},e.prototype.$prependTo=function(e,t,i){return e=n(e),e.hasChildNodes()?this.$before(e.firstChild,t,i):this.$appendTo(e,t,i),this},e.prototype.$before=function(e,n,i){return t(this,e,n,i,a,I)},e.prototype.$after=function(e,t,i){return e=n(e),e.nextSibling?this.$before(e.nextSibling,t,i):this.$appendTo(e.parentNode,t,i),this},e.prototype.$remove=function(e,t){if(!this.$el.parentNode)return e&&e();var n=this._isAttached&&L(this.$el);n||(t=!1);var i=this,a=function(){n&&i._callHook("detached"),e&&e()};if(this._isFragment)se(this._fragmentStart,this._fragmentEnd,this,this._fragment,a);else{var o=t===!1?r:D;o(this.$el,this,a)}return this}}function vn(e){function t(e,t,i){var a=e.$parent;if(a&&i&&!n.test(t))for(;a;)a._eventsCount[t]=(a._eventsCount[t]||0)+i,a=a.$parent}e.prototype.$on=function(e,n){return(this._events[e]||(this._events[e]=[])).push(n),t(this,e,1),this},e.prototype.$once=function(e,t){function n(){i.$off(e,n),t.apply(this,arguments)}var i=this;return n.fn=t,this.$on(e,n),this},e.prototype.$off=function(e,n){var i;if(!arguments.length){if(this.$parent)for(e in this._events)i=this._events[e],i&&t(this,e,-i.length);return this._events={},this}if(i=this._events[e],!i)return this;if(1===arguments.length)return t(this,e,-i.length),this._events[e]=null,this;for(var a,r=i.length;r--;)if(a=i[r],a===n||a.fn===n){t(this,e,-1),i.splice(r,1);break}return this},e.prototype.$emit=function(e){var t="string"==typeof e;e=t?e:e.name;var n=this._events[e],i=t||!n;if(n){n=n.length>1?b(n):n;var a=t&&n.some(function(e){return e._fromParent});a&&(i=!1);for(var r=b(arguments,1),o=0,s=n.length;s>o;o++){var l=n[o],u=l.apply(this,r);u!==!0||a&&!l._fromParent||(i=!0)}}return i},e.prototype.$broadcast=function(e){var t="string"==typeof e;if(e=t?e:e.name,this._eventsCount[e]){var n=this.$children,i=b(arguments);t&&(i[0]={name:e,source:this});for(var a=0,r=n.length;r>a;a++){var o=n[a],s=o.$emit.apply(o,i);s&&o.$broadcast.apply(o,i)}return this}},e.prototype.$dispatch=function(e){var t=this.$emit.apply(this,arguments);if(t){var n=this.$parent,i=b(arguments);for(i[0]={name:e,source:this};n;)t=n.$emit.apply(n,i),n=t?n.$parent:null;return this}};var n=/^hook:/}function bn(e){function t(){this._isAttached=!0,this._isReady=!0,this._callHook("ready")}e.prototype.$mount=function(e){return this._isCompiled?void 0:(e=B(e),e||(e=document.createElement("div")),this._compile(e),this._initDOMHooks(),L(this.$el)?(this._callHook("attached"),t.call(this)):this.$once("hook:attached",t),this)},e.prototype.$destroy=function(e,t){this._destroy(e,t)},e.prototype.$compile=function(e,t,n,i){return Nt(e,this.$options,!0)(this,e,t,n,i)}}function mn(e){this._init(e)}function gn(e,t,n){return n=n?parseInt(n,10):0,t=l(t),"number"==typeof t?e.slice(n,n+t):e}function yn(e,t,n){if(e=Rr(e),null==t)return e;if("function"==typeof t)return e.filter(t);t=(""+t).toLowerCase();for(var i,a,r,o,s="in"===n?3:2,l=b(arguments,s).reduce(function(e,t){return e.concat(t)},[]),u=[],c=0,h=e.length;h>c;c++)if(i=e[c],r=i&&i.$value||i,o=l.length){for(;o--;)if(a=l[o],"$key"===a&&wn(i.$key,t)||wn(Ee(r,a),t)){u.push(i);break}}else wn(i,t)&&u.push(i);return u}function _n(e,t,n){if(e=Rr(e),!t)return e;var i=n&&0>n?-1:1;return e.slice().sort(function(e,n){return"$key"!==t&&(g(e)&&"$value"in e&&(e=e.$value),g(n)&&"$value"in n&&(n=n.$value)),e=g(e)?Ee(e,t):e,n=g(n)?Ee(n,t):n,e===n?0:e>n?i:-i})}function wn(e,t){var n;if(y(e)){var i=Object.keys(e);for(n=i.length;n--;)if(wn(e[i[n]],t))return!0}else if(Nn(e)){for(n=e.length;n--;)if(wn(e[n],t))return!0}else if(null!=e)return e.toString().toLowerCase().indexOf(t)>-1}function Cn(e){function t(e){return new Function("return function "+p(e)+" (options) { this._init(options) }")()}e.options={directives:sr,elementDirectives:Dr,filters:Lr,transitions:{},components:{},partials:{},replace:!0},e.util=xi,e.config=vi,e.set=n,e["delete"]=i,e.nextTick=Vn,e.compiler=Mr,e.FragmentFactory=lt,e.internalDirectives=_r,e.parsers={path:zi,text:di,template:_a,directive:oi,expression:aa},e.cid=0;var a=1;e.extend=function(e){e=e||{};var n=this,i=0===n.cid;if(i&&e._Ctor)return e._Ctor;var r=e.name||n.options.name,o=t(r||"VueComponent");return o.prototype=Object.create(n.prototype),o.prototype.constructor=o,o.cid=a++,o.options=_e(n.options,e),o["super"]=n,o.extend=n.extend,vi._assetTypes.forEach(function(e){o[e]=n[e]}),r&&(o.options.components[r]=o),i&&(e._Ctor=o),o},e.use=function(e){if(!e.installed){var t=b(arguments,1);return t.unshift(this),"function"==typeof e.install?e.install.apply(e,t):e.apply(null,t),e.installed=!0,this}},e.mixin=function(t){e.options=_e(e.options,t)},vi._assetTypes.forEach(function(t){e[t]=function(n,i){return i?("component"===t&&y(i)&&(i.name=n,i=e.extend(i)),this.options[t+"s"][n]=i,i):this.options[t+"s"][n]}}),m(e.transition,mi)}var $n=Object.prototype.hasOwnProperty,kn=/^\s?(true|false|-?[\d\.]+|'[^']*'|"[^"]*")\s?$/,Sn=/-(\w)/g,An=/([a-z\d])([A-Z])/g,xn=/(?:^|[-_\/])(\w)/g,Tn=Object.prototype.toString,On="[object Object]",Nn=Array.isArray,jn="__proto__"in{},Mn="undefined"!=typeof window&&"[object Object]"!==Object.prototype.toString.call(window),Pn=Mn&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__,En=Mn&&window.navigator.userAgent.toLowerCase(),Fn=En&&En.indexOf("msie 9.0")>0,In=En&&En.indexOf("android")>0,Dn=void 0,Rn=void 0,Bn=void 0,Ln=void 0;if(Mn&&!Fn){var Gn=void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend,Hn=void 0===window.onanimationend&&void 0!==window.onwebkitanimationend;Dn=Gn?"WebkitTransition":"transition",Rn=Gn?"webkitTransitionEnd":"transitionend",Bn=Hn?"WebkitAnimation":"animation",Ln=Hn?"webkitAnimationEnd":"animationend"}var Vn=function(){function t(){a=!1;var e=i.slice(0);i=[];for(var t=0;tt;t++)e[t].update()};var ki=Array.prototype,Si=Object.create(ki);["push","pop","shift","unshift","splice","sort","reverse"].forEach(function(e){var t=ki[e];_(Si,e,function(){for(var n=arguments.length,i=new Array(n);n--;)i[n]=arguments[n];var a,r=t.apply(this,i),o=this.__ob__;switch(e){case"push":a=i;break;case"unshift":a=i;break;case"splice":a=i.slice(2)}return a&&o.observeArray(a),o.dep.notify(),r})}),_(ki,"$set",function(e,t){return e>=this.length&&(this.length=Number(e)+1),this.splice(e,1,t)[0]}),_(ki,"$remove",function(e){if(this.length){var t=C(this,e);return t>-1?this.splice(t,1):void 0}});var Ai=Object.getOwnPropertyNames(Si);ke.prototype.walk=function(e){for(var t=Object.keys(e),n=0,i=t.length;i>n;n++)this.convert(t[n],e[t[n]])},ke.prototype.observeArray=function(e){for(var t=0,n=e.length;n>t;t++)xe(e[t])},ke.prototype.convert=function(e,t){Te(this.value,e,t)},ke.prototype.addVm=function(e){(this.vms||(this.vms=[])).push(e)},ke.prototype.removeVm=function(e){this.vms.$remove(e)};var xi=Object.freeze({defineReactive:Te,set:n,del:i,hasOwn:a,isLiteral:r,isReserved:o,_toString:s,toNumber:l,toBoolean:u,stripQuotes:c,camelize:h,hyphenate:f,classify:p,bind:v,toArray:b,extend:m,isObject:g,isPlainObject:y,def:_,debounce:w,indexOf:C,cancellable:$,looseEqual:k,isArray:Nn,hasProto:jn,inBrowser:Mn,devtools:Pn,isIE9:Fn,isAndroid:In,get transitionProp(){return Dn},get transitionEndEvent(){return Rn},get animationProp(){return Bn},get animationEndEvent(){return Ln},nextTick:Vn,query:B,inDoc:L,getAttr:G,getBindAttr:H,hasBindAttr:V,before:z,after:U,remove:W,prepend:K,replace:J,on:q,off:Z,setClass:Y,addClass:Q,removeClass:X,extractContent:ee,trimNode:te,isTemplate:ie,createAnchor:ae,findRef:re,mapNodeRange:oe,removeNodeRange:se,isFragment:le,getOuterHTML:ue,mergeOptions:_e,resolveAsset:we,assertAsset:Ce,checkComponentAttr:ce,initProp:de,assertProp:fe,coerceProp:pe,commonTagRE:yi,reservedTagRE:_i,get warn(){return bi}}),Ti=0,Oi=new S(1e3),Ni=0,ji=1,Mi=2,Pi=3,Ei=0,Fi=1,Ii=2,Di=3,Ri=4,Bi=5,Li=6,Gi=7,Hi=8,Vi=[];Vi[Ei]={ws:[Ei],ident:[Di,Ni],"[":[Ri],eof:[Gi]},Vi[Fi]={ws:[Fi],".":[Ii],"[":[Ri],eof:[Gi]},Vi[Ii]={ws:[Ii],ident:[Di,Ni]},Vi[Di]={ident:[Di,Ni],0:[Di,Ni],number:[Di,Ni],ws:[Fi,ji],".":[Ii,ji],"[":[Ri,ji],eof:[Gi,ji]},Vi[Ri]={"'":[Bi,Ni],'"':[Li,Ni],"[":[Ri,Mi],"]":[Fi,Pi],eof:Hi,"else":[Ri,Ni]},Vi[Bi]={"'":[Ri,Ni],eof:Hi,"else":[Bi,Ni]},Vi[Li]={'"':[Ri,Ni],eof:Hi,"else":[Li,Ni]};var zi=Object.freeze({parsePath:Pe,getPath:Ee,setPath:Fe}),Ui=new S(1e3),Wi="Math,Date,this,true,false,null,undefined,Infinity,NaN,isNaN,isFinite,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,parseInt,parseFloat",Ki=new RegExp("^("+Wi.replace(/,/g,"\\b|")+"\\b)"),Ji="break,case,class,catch,const,continue,debugger,default,delete,do,else,export,extends,finally,for,function,if,import,in,instanceof,let,return,super,switch,throw,try,var,while,with,yield,enum,await,implements,package,proctected,static,interface,private,public",qi=new RegExp("^("+Ji.replace(/,/g,"\\b|")+"\\b)"),Zi=/\s/g,Yi=/\n/g,Qi=/[\{,]\s*[\w\$_]+\s*:|('(?:[^'\\]|\\.)*'|"(?:[^"\\]|\\.)*"|`(?:[^`\\]|\\.)*\$\{|\}(?:[^`\\]|\\.)*`|`(?:[^`\\]|\\.)*`)|new |typeof |void /g,Xi=/"(\d+)"/g,ea=/^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['.*?'\]|\[".*?"\]|\[\d+\]|\[[A-Za-z_$][\w$]*\])*$/,ta=/[^\w$\.](?:[A-Za-z_$][\w$]*)/g,na=/^(?:true|false)$/,ia=[],aa=Object.freeze({parseExpression:He,isSimplePath:Ve}),ra=[],oa=[],sa={},la={},ua=!1,ca=!1,ha=0;Je.prototype.addDep=function(e){var t=e.id;this.newDeps[t]||(this.newDeps[t]=e,this.deps[t]||(this.deps[t]=e,e.addSub(this)))},Je.prototype.get=function(){this.beforeGet();var e,t=this.scope||this.vm;try{e=this.getter.call(t,t)}catch(n){}return this.deep&&qe(e),this.preProcess&&(e=this.preProcess(e)),this.filters&&(e=t._applyFilters(e,null,this.filters,!1)),this.postProcess&&(e=this.postProcess(e)),this.afterGet(),e},Je.prototype.set=function(e){var t=this.scope||this.vm;this.filters&&(e=t._applyFilters(e,this.value,this.filters,!0));try{this.setter.call(t,t,e)}catch(n){}var i=t.$forContext;if(i&&i.alias===this.expression){if(i.filters)return;i._withLock(function(){t.$key?i.rawValue[t.$key]=e:i.rawValue.$set(t.$index,e)})}},Je.prototype.beforeGet=function(){$e.target=this,this.newDeps=Object.create(null)},Je.prototype.afterGet=function(){$e.target=null;for(var e=Object.keys(this.deps),t=e.length;t--;){var n=e[t];this.newDeps[n]||this.deps[n].removeSub(this)}this.deps=this.newDeps},Je.prototype.update=function(e){this.lazy?this.dirty=!0:this.sync||!vi.async?this.run():(this.shallow=this.queued?e?this.shallow:!1:!!e,this.queued=!0,Ke(this))},Je.prototype.run=function(){if(this.active){var e=this.get();if(e!==this.value||(g(e)||this.deep)&&!this.shallow){var t=this.value;this.value=e;this.prevError;this.cb.call(this.vm,e,t)}this.queued=this.shallow=!1}},Je.prototype.evaluate=function(){var e=$e.target;this.value=this.get(),this.dirty=!1,$e.target=e},Je.prototype.depend=function(){for(var e=Object.keys(this.deps),t=e.length;t--;)this.deps[e[t]].depend()},Je.prototype.teardown=function(){if(this.active){this.vm._isBeingDestroyed||this.vm._vForRemoving||this.vm._watchers.$remove(this);for(var e=Object.keys(this.deps),t=e.length;t--;)this.deps[e[t]].removeSub(this);this.active=!1,this.vm=this.cb=this.value=null}};var da={bind:function(){this.attr=3===this.el.nodeType?"data":"textContent"},update:function(e){this.el[this.attr]=s(e)}},fa=new S(1e3),pa=new S(1e3),va={efault:[0,"",""],legend:[1,"
","
"],tr:[2,"","
"],col:[2,"","
"]};va.td=va.th=[3,"","
"],va.option=va.optgroup=[1,'"],va.thead=va.tbody=va.colgroup=va.caption=va.tfoot=[1,"","
"],va.g=va.defs=va.symbol=va.use=va.image=va.text=va.circle=va.ellipse=va.line=va.path=va.polygon=va.polyline=va.rect=[1,'',""];var ba=/<([\w:]+)/,ma=/&#?\w+?;/,ga=function(){if(Mn){var e=document.createElement("div");return e.innerHTML="",!e.cloneNode(!0).firstChild.innerHTML}return!1}(),ya=function(){if(Mn){var e=document.createElement("textarea");return e.placeholder="t","t"===e.cloneNode(!0).value}return!1}(),_a=Object.freeze({cloneNode:Xe,parseTemplate:et}),wa={bind:function(){8===this.el.nodeType&&(this.nodes=[],this.anchor=ae("v-html"),J(this.el,this.anchor))},update:function(e){e=s(e),this.nodes?this.swap(e):this.el.innerHTML=e},swap:function(e){for(var t=this.nodes.length;t--;)W(this.nodes[t]);var n=et(e,!0,!0);this.nodes=b(n.childNodes),z(n,this.anchor)}};tt.prototype.callHook=function(e){var t,n;for(t=0,n=this.childFrags.length;n>t;t++)this.childFrags[t].callHook(e);for(t=0,n=this.children.length;n>t;t++)e(this.children[t])},tt.prototype.beforeRemove=function(){var e,t;for(e=0,t=this.childFrags.length;t>e;e++)this.childFrags[e].beforeRemove(!1);for(e=0,t=this.children.length;t>e;e++)this.children[e].$destroy(!1,!0);var n=this.unlink.dirs;for(e=0,t=n.length;t>e;e++)n[e]._watcher&&n[e]._watcher.teardown()},tt.prototype.destroy=function(){this.parentFrag&&this.parentFrag.childFrags.$remove(this),this.node.__v_frag=null,this.unlink()};var Ca=new S(5e3);lt.prototype.create=function(e,t,n){var i=Xe(this.template);return new tt(this.linker,this.vm,i,e,t,n)};var $a=700,ka=800,Sa=850,Aa=1100,xa=1500,Ta=1500,Oa=1750,Na=2e3,ja=2e3,Ma=2100,Pa=0,Ea={priority:Na,params:["track-by","stagger","enter-stagger","leave-stagger"],bind:function(){var e=this.expression.match(/(.*) (?:in|of) (.*)/);if(e){var t=e[1].match(/\((.*),(.*)\)/);t?(this.iterator=t[1].trim(),this.alias=t[2].trim()):this.alias=e[1].trim(),this.expression=e[2]}if(this.alias){this.id="__v-for__"+ ++Pa;var n=this.el.tagName;this.isOption=("OPTION"===n||"OPTGROUP"===n)&&"SELECT"===this.el.parentNode.tagName,this.start=ae("v-for-start"),this.end=ae("v-for-end"),J(this.el,this.end),z(this.start,this.end),this.cache=Object.create(null),this.factory=new lt(this.vm,this.el)}},update:function(e){this.diff(e),this.updateRef(),this.updateModel()},diff:function(e){var t,n,i,r,o,s,l=e[0],u=this.fromObject=g(l)&&a(l,"$key")&&a(l,"$value"),c=this.params.trackBy,h=this.frags,d=this.frags=new Array(e.length),f=this.alias,p=this.iterator,v=this.start,b=this.end,m=L(v),y=!h;for(t=0,n=e.length;n>t;t++)l=e[t],r=u?l.$key:null,o=u?l.$value:l,s=!g(o),i=!y&&this.getCachedFrag(o,t,r),i?(i.reused=!0,i.scope.$index=t,r&&(i.scope.$key=r),p&&(i.scope[p]=null!==r?r:t),(c||u||s)&&(i.scope[f]=o)):(i=this.create(o,f,t,r),i.fresh=!y),d[t]=i,y&&i.before(b);if(!y){var _=0,w=h.length-d.length;for(this.vm._vForRemoving=!0,t=0,n=h.length;n>t;t++)i=h[t],i.reused||(this.deleteCachedFrag(i),this.remove(i,_++,w,m));this.vm._vForRemoving=!1,_&&(this.vm._watchers=this.vm._watchers.filter(function(e){return e.active}));var C,$,k,S=0;for(t=0,n=d.length;n>t;t++)i=d[t],C=d[t-1],$=C?C.staggerCb?C.staggerAnchor:C.end||C.node:v,i.reused&&!i.staggerCb?(k=ut(i,v,this.id),k===C||k&&ut(k,v,this.id)===C||this.move(i,$)):this.insert(i,S++,$,m),i.reused=i.fresh=!1}},create:function(e,t,n,i){var a=this._host,r=this._scope||this.vm,o=Object.create(r);o.$refs=Object.create(r.$refs),o.$els=Object.create(r.$els),o.$parent=r,o.$forContext=this,Te(o,t,e),Te(o,"$index",n),i?Te(o,"$key",i):o.$key&&_(o,"$key",null),this.iterator&&Te(o,this.iterator,null!==i?i:n);var s=this.factory.create(a,o,this._frag);return s.forId=this.id,this.cacheFrag(e,s,n,i),s},updateRef:function(){var e=this.descriptor.ref;if(e){var t,n=(this._scope||this.vm).$refs;this.fromObject?(t={},this.frags.forEach(function(e){t[e.scope.$key]=ct(e)})):t=this.frags.map(ct),n[e]=t}},updateModel:function(){if(this.isOption){var e=this.start.parentNode,t=e&&e.__v_model;t&&t.forceUpdate()}},insert:function(e,t,n,i){e.staggerCb&&(e.staggerCb.cancel(),e.staggerCb=null);var a=this.getStagger(e,t,null,"enter");if(i&&a){var r=e.staggerAnchor;r||(r=e.staggerAnchor=ae("stagger-anchor"),r.__v_frag=e),U(r,n);var o=e.staggerCb=$(function(){e.staggerCb=null,e.before(r),W(r)});setTimeout(o,a)}else e.before(n.nextSibling)},remove:function(e,t,n,i){if(e.staggerCb)return e.staggerCb.cancel(),void(e.staggerCb=null);var a=this.getStagger(e,t,n,"leave");if(i&&a){var r=e.staggerCb=$(function(){e.staggerCb=null,e.remove()});setTimeout(r,a)}else e.remove()},move:function(e,t){t.nextSibling||this.end.parentNode.appendChild(this.end),e.before(t.nextSibling,!1)},cacheFrag:function(e,t,n,i){var r,o=this.params.trackBy,s=this.cache,l=!g(e);i||o||l?(r=o?"$index"===o?n:e[o]:i||e,s[r]||(s[r]=t)):(r=this.id,a(e,r)?null===e[r]&&(e[r]=t):_(e,r,t)),t.raw=e},getCachedFrag:function(e,t,n){var i,a=this.params.trackBy,r=!g(e);if(n||a||r){var o=a?"$index"===a?t:e[a]:n||e;i=this.cache[o]}else i=e[this.id];return i&&(i.reused||i.fresh),i},deleteCachedFrag:function(e){var t=e.raw,n=this.params.trackBy,i=e.scope,r=i.$index,o=a(i,"$key")&&i.$key,s=!g(t);if(n||o||s){var l=n?"$index"===n?r:t[n]:o||t;this.cache[l]=null}else t[this.id]=null,e.raw=null},getStagger:function(e,t,n,i){i+="Stagger";var a=e.node.__v_trans,r=a&&a.hooks,o=r&&(r[i]||r.stagger);return o?o.call(e,t,n):t*parseInt(this.params[i]||this.params.stagger,10)},_preProcess:function(e){return this.rawValue=e,e},_postProcess:function(e){if(Nn(e))return e;if(y(e)){for(var t,n=Object.keys(e),i=n.length,a=new Array(i);i--;)t=n[i],a[i]={$key:t,$value:e[t]};return a}return"number"!=typeof e||isNaN(e)||(e=ht(e)),e||[]},unbind:function(){if(this.descriptor.ref&&((this._scope||this.vm).$refs[this.descriptor.ref]=null),this.frags)for(var e,t=this.frags.length;t--;)e=this.frags[t],this.deleteCachedFrag(e),e.destroy()}},Fa={priority:ja,bind:function(){var e=this.el;if(e.__vue__)this.invalid=!0;else{var t=e.nextElementSibling;t&&null!==G(t,"v-else")&&(W(t),this.elseFactory=new lt(t._context||this.vm,t)),this.anchor=ae("v-if"),J(e,this.anchor),this.factory=new lt(this.vm,e); -}},update:function(e){this.invalid||(e?this.frag||this.insert():this.remove())},insert:function(){this.elseFrag&&(this.elseFrag.remove(),this.elseFrag=null),this.frag=this.factory.create(this._host,this._scope,this._frag),this.frag.before(this.anchor)},remove:function(){this.frag&&(this.frag.remove(),this.frag=null),this.elseFactory&&!this.elseFrag&&(this.elseFrag=this.elseFactory.create(this._host,this._scope,this._frag),this.elseFrag.before(this.anchor))},unbind:function(){this.frag&&this.frag.destroy(),this.elseFrag&&this.elseFrag.destroy()}},Ia={bind:function(){var e=this.el.nextElementSibling;e&&null!==G(e,"v-else")&&(this.elseEl=e)},update:function(e){this.apply(this.el,e),this.elseEl&&this.apply(this.elseEl,!e)},apply:function(e,t){function n(){e.style.display=t?"":"none"}L(e)?R(e,t?1:-1,n,this.vm):n()}},Da={bind:function(){var e=this,t=this.el,n="range"===t.type,i=this.params.lazy,a=this.params.number,r=this.params.debounce,o=!1;if(In||n||(this.on("compositionstart",function(){o=!0}),this.on("compositionend",function(){o=!1,i||e.listener()})),this.focused=!1,n||i||(this.on("focus",function(){e.focused=!0}),this.on("blur",function(){e.focused=!1})),this.listener=this.rawListener=function(){if(!o&&e._bound){var i=a||n?l(t.value):t.value;e.set(i),Vn(function(){e._bound&&!e.focused&&e.update(e._watcher.value)})}},r&&(this.listener=w(this.listener,r)),this.hasjQuery="function"==typeof jQuery,this.hasjQuery){var s=jQuery.fn.on?"on":"bind";jQuery(t)[s]("change",this.rawListener),i||jQuery(t)[s]("input",this.listener)}else this.on("change",this.rawListener),i||this.on("input",this.listener);!i&&Fn&&(this.on("cut",function(){Vn(e.listener)}),this.on("keyup",function(t){46!==t.keyCode&&8!==t.keyCode||e.listener()})),(t.hasAttribute("value")||"TEXTAREA"===t.tagName&&t.value.trim())&&(this.afterBind=this.listener)},update:function(e){this.el.value=s(e)},unbind:function(){var e=this.el;if(this.hasjQuery){var t=jQuery.fn.off?"off":"unbind";jQuery(e)[t]("change",this.listener),jQuery(e)[t]("input",this.listener)}}},Ra={bind:function(){var e=this,t=this.el;this.getValue=function(){if(t.hasOwnProperty("_value"))return t._value;var n=t.value;return e.params.number&&(n=l(n)),n},this.listener=function(){e.set(e.getValue())},this.on("change",this.listener),t.hasAttribute("checked")&&(this.afterBind=this.listener)},update:function(e){this.el.checked=k(e,this.getValue())}},Ba={bind:function(){var e=this,t=this.el;this.forceUpdate=function(){e._watcher&&e.update(e._watcher.get())};var n=this.multiple=t.hasAttribute("multiple");this.listener=function(){var i=dt(t,n);i=e.params.number?Nn(i)?i.map(l):l(i):i,e.set(i)},this.on("change",this.listener);var i=dt(t,n,!0);(n&&i.length||!n&&null!==i)&&(this.afterBind=this.listener),this.vm.$on("hook:attached",this.forceUpdate)},update:function(e){var t=this.el;t.selectedIndex=-1;for(var n,i,a=this.multiple&&Nn(e),r=t.options,o=r.length;o--;)n=r[o],i=n.hasOwnProperty("_value")?n._value:n.value,n.selected=a?ft(e,i)>-1:k(e,i)},unbind:function(){this.vm.$off("hook:attached",this.forceUpdate)}},La={bind:function(){function e(){var e=n.checked;return e&&n.hasOwnProperty("_trueValue")?n._trueValue:!e&&n.hasOwnProperty("_falseValue")?n._falseValue:e}var t=this,n=this.el;this.getValue=function(){return n.hasOwnProperty("_value")?n._value:t.params.number?l(n.value):n.value},this.listener=function(){var i=t._watcher.value;if(Nn(i)){var a=t.getValue();n.checked?C(i,a)<0&&i.push(a):i.$remove(a)}else t.set(e())},this.on("change",this.listener),n.hasAttribute("checked")&&(this.afterBind=this.listener)},update:function(e){var t=this.el;Nn(e)?t.checked=C(e,this.getValue())>-1:t.hasOwnProperty("_trueValue")?t.checked=k(e,t._trueValue):t.checked=!!e}},Ga={text:Da,radio:Ra,select:Ba,checkbox:La},Ha={priority:ka,twoWay:!0,handlers:Ga,params:["lazy","number","debounce"],bind:function(){this.checkFilters(),this.hasRead&&!this.hasWrite;var e,t=this.el,n=t.tagName;if("INPUT"===n)e=Ga[t.type]||Ga.text;else if("SELECT"===n)e=Ga.select;else{if("TEXTAREA"!==n)return;e=Ga.text}t.__v_model=this,e.bind.call(this),this.update=e.update,this._unbind=e.unbind},checkFilters:function(){var e=this.filters;if(e)for(var t=e.length;t--;){var n=we(this.vm.$options,"filters",e[t].name);("function"==typeof n||n.read)&&(this.hasRead=!0),n.write&&(this.hasWrite=!0)}},unbind:function(){this.el.__v_model=null,this._unbind&&this._unbind()}},Va={esc:27,tab:9,enter:13,space:32,"delete":[8,46],up:38,left:37,right:39,down:40},za={priority:$a,acceptStatement:!0,keyCodes:Va,bind:function(){if("IFRAME"===this.el.tagName&&"load"!==this.arg){var e=this;this.iframeBind=function(){q(e.el.contentWindow,e.arg,e.handler,e.modifiers.capture)},this.on("load",this.iframeBind)}},update:function(e){if(this.descriptor.raw||(e=function(){}),"function"==typeof e){this.modifiers.stop&&(e=vt(e)),this.modifiers.prevent&&(e=bt(e)),this.modifiers.self&&(e=mt(e));var t=Object.keys(this.modifiers).filter(function(e){return"stop"!==e&&"prevent"!==e});t.length&&(e=pt(e,t)),this.reset(),this.handler=e,this.iframeBind?this.iframeBind():q(this.el,this.arg,this.handler,this.modifiers.capture)}},reset:function(){var e=this.iframeBind?this.el.contentWindow:this.el;this.handler&&Z(e,this.arg,this.handler)},unbind:function(){this.reset()}},Ua=["-webkit-","-moz-","-ms-"],Wa=["Webkit","Moz","ms"],Ka=/!important;?$/,Ja=Object.create(null),qa=null,Za={deep:!0,update:function(e){"string"==typeof e?this.el.style.cssText=e:Nn(e)?this.handleObject(e.reduce(m,{})):this.handleObject(e||{})},handleObject:function(e){var t,n,i=this.cache||(this.cache={});for(t in i)t in e||(this.handleSingle(t,null),delete i[t]);for(t in e)n=e[t],n!==i[t]&&(i[t]=n,this.handleSingle(t,n))},handleSingle:function(e,t){if(e=gt(e))if(null!=t&&(t+=""),t){var n=Ka.test(t)?"important":"";n&&(t=t.replace(Ka,"").trim()),this.el.style.setProperty(e,t,n)}else this.el.style.removeProperty(e)}},Ya="http://www.w3.org/1999/xlink",Qa=/^xlink:/,Xa=/^v-|^:|^@|^(?:is|transition|transition-mode|debounce|track-by|stagger|enter-stagger|leave-stagger)$/,er=/^(?:value|checked|selected|muted)$/,tr=/^(?:draggable|contenteditable|spellcheck)$/,nr={value:"_value","true-value":"_trueValue","false-value":"_falseValue"},ir={priority:Sa,bind:function(){var e=this.arg,t=this.el.tagName;e||(this.deep=!0);var n=this.descriptor,i=n.interp;if(i){n.hasOneTime&&(this.expression=M(i,this._scope||this.vm)),(Xa.test(e)||"name"===e&&("PARTIAL"===t||"SLOT"===t))&&(this.el.removeAttribute(e),this.invalid=!0)}},update:function(e){if(!this.invalid){var t=this.arg;this.arg?this.handleSingle(t,e):this.handleObject(e||{})}},handleObject:Za.handleObject,handleSingle:function(e,t){var n=this.el,i=this.descriptor.interp;this.modifiers.camel&&(e=h(e)),!i&&er.test(e)&&e in n&&(n[e]="value"===e&&null==t?"":t);var a=nr[e];if(!i&&a){n[a]=t;var r=n.__v_model;r&&r.listener()}return"value"===e&&"TEXTAREA"===n.tagName?void n.removeAttribute(e):void(tr.test(e)?n.setAttribute(e,t?"true":"false"):null!=t&&t!==!1?"class"===e?(n.__v_trans&&(t+=" "+n.__v_trans.id+"-transition"),Y(n,t)):Qa.test(e)?n.setAttributeNS(Ya,e,t===!0?"":t):n.setAttribute(e,t===!0?"":t):n.removeAttribute(e))}},ar={priority:xa,bind:function(){if(this.arg){var e=this.id=h(this.arg),t=(this._scope||this.vm).$els;a(t,e)?t[e]=this.el:Te(t,e,this.el)}},unbind:function(){var e=(this._scope||this.vm).$els;e[this.id]===this.el&&(e[this.id]=null)}},rr={bind:function(){}},or={bind:function(){var e=this.el;this.vm.$once("pre-hook:compiled",function(){e.removeAttribute("v-cloak")})}},sr={text:da,html:wa,"for":Ea,"if":Fa,show:Ia,model:Ha,on:za,bind:ir,el:ar,ref:rr,cloak:or},lr={deep:!0,update:function(e){e&&"string"==typeof e?this.handleObject(_t(e)):y(e)?this.handleObject(e):Nn(e)?this.handleArray(e):this.cleanup()},handleObject:function(e){this.cleanup(e);for(var t=this.prevKeys=Object.keys(e),n=0,i=t.length;i>n;n++){var a=t[n];e[a]?Q(this.el,a):X(this.el,a)}},handleArray:function(e){this.cleanup(e);for(var t=0,n=e.length;n>t;t++)e[t]&&Q(this.el,e[t]);this.prevKeys=e.slice()},cleanup:function(e){if(this.prevKeys)for(var t=this.prevKeys.length;t--;){var n=this.prevKeys[t];!n||e&&wt(e,n)||X(this.el,n)}}},ur={priority:Ta,params:["keep-alive","transition-mode","inline-template"],bind:function(){this.el.__vue__||(this.keepAlive=this.params.keepAlive,this.keepAlive&&(this.cache={}),this.params.inlineTemplate&&(this.inlineTemplate=ee(this.el,!0)),this.pendingComponentCb=this.Component=null,this.pendingRemovals=0,this.pendingRemovalCb=null,this.anchor=ae("v-component"),J(this.el,this.anchor),this.el.removeAttribute("is"),this.descriptor.ref&&this.el.removeAttribute("v-ref:"+f(this.descriptor.ref)),this.literal&&this.setComponent(this.expression))},update:function(e){this.literal||this.setComponent(e)},setComponent:function(e,t){if(this.invalidatePending(),e){var n=this;this.resolveComponent(e,function(){n.mountComponent(t)})}else this.unbuild(!0),this.remove(this.childVM,t),this.childVM=null},resolveComponent:function(e,t){var n=this;this.pendingComponentCb=$(function(i){n.ComponentName=i.options.name||e,n.Component=i,t()}),this.vm._resolveComponent(e,this.pendingComponentCb)},mountComponent:function(e){this.unbuild(!0);var t=this,n=this.Component.options.activate,i=this.getCached(),a=this.build();n&&!i?(this.waitingFor=a,Ct(n,a,function(){t.waitingFor===a&&(t.waitingFor=null,t.transition(a,e))})):(i&&a._updateRef(),this.transition(a,e))},invalidatePending:function(){this.pendingComponentCb&&(this.pendingComponentCb.cancel(),this.pendingComponentCb=null)},build:function(e){var t=this.getCached();if(t)return t;if(this.Component){var n={name:this.ComponentName,el:Xe(this.el),template:this.inlineTemplate,parent:this._host||this.vm,_linkerCachable:!this.inlineTemplate,_ref:this.descriptor.ref,_asComponent:!0,_isRouterView:this._isRouterView,_context:this.vm,_scope:this._scope,_frag:this._frag};e&&m(n,e);var i=new this.Component(n);return this.keepAlive&&(this.cache[this.Component.cid]=i),i}},getCached:function(){return this.keepAlive&&this.cache[this.Component.cid]},unbuild:function(e){this.waitingFor&&(this.waitingFor.$destroy(),this.waitingFor=null);var t=this.childVM;return!t||this.keepAlive?void(t&&t._updateRef(!0)):void t.$destroy(!1,e)},remove:function(e,t){var n=this.keepAlive;if(e){this.pendingRemovals++,this.pendingRemovalCb=t;var i=this;e.$remove(function(){i.pendingRemovals--,n||e._cleanup(),!i.pendingRemovals&&i.pendingRemovalCb&&(i.pendingRemovalCb(),i.pendingRemovalCb=null)})}else t&&t()},transition:function(e,t){var n=this,i=this.childVM;switch(this.childVM=e,n.params.transitionMode){case"in-out":e.$before(n.anchor,function(){n.remove(i,t)});break;case"out-in":n.remove(i,function(){e.$before(n.anchor,t)});break;default:n.remove(i),e.$before(n.anchor,t)}},unbind:function(){if(this.invalidatePending(),this.unbuild(),this.cache){for(var e in this.cache)this.cache[e].$destroy();this.cache=null}}},cr=vi._propBindingModes,hr={bind:function(){var e=this.vm,t=e._context,n=this.descriptor.prop,i=n.path,a=n.parentPath,r=n.mode===cr.TWO_WAY,o=this.parentWatcher=new Je(t,a,function(t){t=pe(n,t),fe(n,t)&&(e[i]=t)},{twoWay:r,filters:n.filters,scope:this._scope});if(de(e,n,o.value),r){var s=this;e.$once("pre-hook:created",function(){s.childWatcher=new Je(e,i,function(e){o.set(e)},{sync:!0})})}},unbind:function(){this.parentWatcher.teardown(),this.childWatcher&&this.childWatcher.teardown()}},dr=[],fr=!1,pr="transition",vr="animation",br=Dn+"Duration",mr=Bn+"Duration",gr=St.prototype;gr.enter=function(e,t){this.cancelPending(),this.callHook("beforeEnter"),this.cb=t,Q(this.el,this.enterClass),e(),this.entered=!1,this.callHookWithCb("enter"),this.entered||(this.cancel=this.hooks&&this.hooks.enterCancelled,$t(this.enterNextTick))},gr.enterNextTick=function(){this.justEntered=!0;var e=this;setTimeout(function(){e.justEntered=!1},17);var t=this.enterDone,n=this.getCssTransitionType(this.enterClass);this.pendingJsCb?n===pr&&X(this.el,this.enterClass):n===pr?(X(this.el,this.enterClass),this.setupCssCb(Rn,t)):n===vr?this.setupCssCb(Ln,t):t()},gr.enterDone=function(){this.entered=!0,this.cancel=this.pendingJsCb=null,X(this.el,this.enterClass),this.callHook("afterEnter"),this.cb&&this.cb()},gr.leave=function(e,t){this.cancelPending(),this.callHook("beforeLeave"),this.op=e,this.cb=t,Q(this.el,this.leaveClass),this.left=!1,this.callHookWithCb("leave"),this.left||(this.cancel=this.hooks&&this.hooks.leaveCancelled,this.op&&!this.pendingJsCb&&(this.justEntered?this.leaveDone():$t(this.leaveNextTick)))},gr.leaveNextTick=function(){var e=this.getCssTransitionType(this.leaveClass);if(e){var t=e===pr?Rn:Ln;this.setupCssCb(t,this.leaveDone)}else this.leaveDone()},gr.leaveDone=function(){this.left=!0,this.cancel=this.pendingJsCb=null,this.op(),X(this.el,this.leaveClass),this.callHook("afterLeave"),this.cb&&this.cb(),this.op=null},gr.cancelPending=function(){this.op=this.cb=null;var e=!1;this.pendingCssCb&&(e=!0,Z(this.el,this.pendingCssEvent,this.pendingCssCb),this.pendingCssEvent=this.pendingCssCb=null),this.pendingJsCb&&(e=!0,this.pendingJsCb.cancel(),this.pendingJsCb=null),e&&(X(this.el,this.enterClass),X(this.el,this.leaveClass)),this.cancel&&(this.cancel.call(this.vm,this.el),this.cancel=null)},gr.callHook=function(e){this.hooks&&this.hooks[e]&&this.hooks[e].call(this.vm,this.el)},gr.callHookWithCb=function(e){var t=this.hooks&&this.hooks[e];t&&(t.length>1&&(this.pendingJsCb=$(this[e+"Done"])),t.call(this.vm,this.el,this.pendingJsCb))},gr.getCssTransitionType=function(e){if(!(!Rn||document.hidden||this.hooks&&this.hooks.css===!1||At(this.el))){var t=this.type||this.typeCache[e];if(t)return t;var n=this.el.style,i=window.getComputedStyle(this.el),a=n[br]||i[br];if(a&&"0s"!==a)t=pr;else{var r=n[mr]||i[mr];r&&"0s"!==r&&(t=vr)}return t&&(this.typeCache[e]=t),t}},gr.setupCssCb=function(e,t){this.pendingCssEvent=e;var n=this,i=this.el,a=this.pendingCssCb=function(r){r.target===i&&(Z(i,e,a),n.pendingCssEvent=n.pendingCssCb=null,!n.pendingJsCb&&t&&t())};q(i,e,a)};var yr={priority:Aa,update:function(e,t){var n=this.el,i=we(this.vm.$options,"transitions",e);e=e||"v",n.__v_trans=new St(n,e,i,this.vm),t&&X(n,t+"-transition"),Q(n,e+"-transition")}},_r={style:Za,"class":lr,component:ur,prop:hr,transition:yr},wr=vi._propBindingModes,Cr={},$r=/^[$_a-zA-Z]+[\w$]*$/,kr=/^v-bind:|^:/,Sr=/^v-on:|^@/,Ar=/^v-([^:]+)(?:$|:(.*)$)/,xr=/\.[^\.]+/g,Tr=/^(v-bind:|:)?transition$/,Or=["for","if"],Nr=1e3;Jt.terminal=!0;var jr=/[^\w\-:\.]/,Mr=Object.freeze({compile:Nt,compileAndLinkProps:Ft,compileRoot:It,terminalDirectives:Or,transclude:en,scanSlots:rn}),Pr=/^v-on:|^@/;cn.prototype._bind=function(){var e=this.name,t=this.descriptor;if(("cloak"!==e||this.vm._isCompiled)&&this.el&&this.el.removeAttribute){var n=t.attr||"v-"+e;this.el.removeAttribute(n)}var i=t.def;if("function"==typeof i?this.update=i:m(this,i),this._setupParams(),this.bind&&this.bind(),this._bound=!0,this.literal)this.update&&this.update(t.raw);else if((this.expression||this.modifiers)&&(this.update||this.twoWay)&&!this._checkStatement()){var a=this;this.update?this._update=function(e,t){a._locked||a.update(e,t)}:this._update=un;var r=this._preProcess?v(this._preProcess,this):null,o=this._postProcess?v(this._postProcess,this):null,s=this._watcher=new Je(this.vm,this.expression,this._update,{filters:this.filters,twoWay:this.twoWay,deep:this.deep,preProcess:r,postProcess:o,scope:this._scope});this.afterBind?this.afterBind():this.update&&this.update(s.value)}},cn.prototype._setupParams=function(){if(this.params){var e=this.params;this.params=Object.create(null);for(var t,n,i,a=e.length;a--;)t=e[a],i=h(t),n=H(this.el,t),null!=n?this._setupParamWatcher(i,n):(n=G(this.el,t),null!=n&&(this.params[i]=""===n?!0:n))}},cn.prototype._setupParamWatcher=function(e,t){var n=this,i=!1,a=(this._scope||this.vm).$watch(t,function(t,a){if(n.params[e]=t,i){var r=n.paramWatchers&&n.paramWatchers[e];r&&r.call(n,t,a)}else i=!0},{immediate:!0,user:!1});(this._paramUnwatchFns||(this._paramUnwatchFns=[])).push(a)},cn.prototype._checkStatement=function(){var e=this.expression;if(e&&this.acceptStatement&&!Ve(e)){var t=He(e).get,n=this._scope||this.vm,i=function(e){n.$event=e,t.call(n,n),n.$event=null};return this.filters&&(i=n._applyFilters(i,null,this.filters)),this.update(i),!0}},cn.prototype.set=function(e){this.twoWay&&this._withLock(function(){this._watcher.set(e)})},cn.prototype._withLock=function(e){var t=this;t._locked=!0,e.call(t),Vn(function(){t._locked=!1})},cn.prototype.on=function(e,t,n){q(this.el,e,t,n),(this._listeners||(this._listeners=[])).push([e,t])},cn.prototype._teardown=function(){if(this._bound){this._bound=!1,this.unbind&&this.unbind(),this._watcher&&this._watcher.teardown();var e,t=this._listeners;if(t)for(e=t.length;e--;)Z(this.el,t[e][0],t[e][1]);var n=this._paramUnwatchFns;if(n)for(e=n.length;e--;)n[e]();this.vm=this.el=this._watcher=this._listeners=null}};var Er=/[^|]\|[^|]/;Oe(mn),sn(mn),ln(mn),hn(mn),dn(mn),fn(mn),pn(mn),vn(mn),bn(mn);var Fr={priority:Ma,params:["name"],bind:function(){var e=this.params.name||"default",t=this.vm._slotContents&&this.vm._slotContents[e];t&&t.hasChildNodes()?this.compile(t.cloneNode(!0),this.vm._context,this.vm):this.fallback()},compile:function(e,t,n){if(e&&t){if(this.el.hasChildNodes()&&1===e.childNodes.length&&1===e.childNodes[0].nodeType&&e.childNodes[0].hasAttribute("v-if")){var i=document.createElement("template");i.setAttribute("v-else",""),i.innerHTML=this.el.innerHTML,i._context=this.vm,e.appendChild(i)}var a=n?n._scope:this._scope;this.unlink=t.$compile(e,n,a,this._frag)}e?J(this.el,e):W(this.el)},fallback:function(){this.compile(ee(this.el,!0),this.vm)},unbind:function(){this.unlink&&this.unlink()}},Ir={priority:Oa,params:["name"],paramWatchers:{name:function(e){Fa.remove.call(this),e&&this.insert(e)}},bind:function(){this.anchor=ae("v-partial"),J(this.el,this.anchor),this.insert(this.params.name)},insert:function(e){var t=we(this.vm.$options,"partials",e);t&&(this.factory=new lt(this.vm,t),Fa.insert.call(this))},unbind:function(){this.frag&&this.frag.destroy()}},Dr={slot:Fr,partial:Ir},Rr=Ea._postProcess,Br=/(\d{3})(?=\d)/g,Lr={orderBy:_n,filterBy:yn,limitBy:gn,json:{read:function(e,t){return"string"==typeof e?e:JSON.stringify(e,null,Number(t)||2)},write:function(e){try{return JSON.parse(e)}catch(t){return e}}},capitalize:function(e){return e||0===e?(e=e.toString(),e.charAt(0).toUpperCase()+e.slice(1)):""},uppercase:function(e){return e||0===e?e.toString().toUpperCase():""},lowercase:function(e){return e||0===e?e.toString().toLowerCase():""},currency:function(e,t){if(e=parseFloat(e),!isFinite(e)||!e&&0!==e)return"";t=null!=t?t:"$";var n=Math.abs(e).toFixed(2),i=n.slice(0,-3),a=i.length%3,r=a>0?i.slice(0,a)+(i.length>3?",":""):"",o=n.slice(-3),s=0>e?"-":"";return s+t+r+i.slice(a).replace(Br,"$1,")+o},pluralize:function(e){var t=b(arguments,1);return t.length>1?t[e%10-1]||t[t.length-1]:t[0]+(1===e?"":"s")},debounce:function(e,t){return e?(t||(t=300),w(e,t)):void 0}};Cn(mn),mn.version="1.0.17",Pn&&Pn.emit("init",mn),t.exports=mn}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],37:[function(e,t,n){var i=n.cache={};n.insert=function(e){if(!i[e]){i[e]=!0;var t=document.createElement("style");return t.setAttribute("type","text/css"),"textContent"in t?t.textContent=e:t.styleSheet.cssText=e,document.getElementsByTagName("head")[0].appendChild(t),t}}},{}],38:[function(e,t,n){function i(e){return e&&e.__esModule?e:{"default":e}}e("vueify-insert-css").insert("body{color:#404040}.jumbotron-top{color:#fff;background:#4cc3d9;margin-bottom:0}.btn-custom{color:#fff;background:#f16745}.jumbotron.jumbotron-green{padding:75px 0}#v-select .dropdown-toggle{background:#fff}#output,#v-select .dropdown-toggle:after{color:#404040}#output{height:200px;border:none}");Object.defineProperty(n,"__esModule",{value:!0});var a=e("vue"),r=i(a),o=e("./components/Select.vue"),s=i(o);r["default"].config.debug=!0,n["default"]={components:{vSelect:s["default"]},data:function(){return{select:null,placeholder:"Choose a Country",multiple:!0,maxHeight:"400px",options:{advanced:e("./countries.js"),simple:e("./simpleCountries.js"),simpler:[{label:"This is Foo",value:"foo"},{label:"This is Bar",value:"bar"},{label:"This is Baz",value:"baz"}]},optionType:"advanced"}}},t.exports.__esModule&&(t.exports=t.exports["default"]),("function"==typeof t.exports?t.exports.options:t.exports).template="

Vue Select

A simple component that provides similar functionality to Select2 without the overhead of jQuery.

View on GitHub
{{ select | json }}


The options property is watched for changes, and the value is reset anytime the options change. This is useful if you have multiple selection boxes that depend on its ancestors values.
Equivalent to the multiple attribute to a <select>. You'll want to clear any selections you have made before changing this option. It's not one that should be changed after render.
Limit the height of the dropdown menu.
Equivalent to the placeholder attribute.
Install from GitHub using NPM
  <template>\n    <div id=\"myApp\">\n      <v-select :value.sync=\"selected\" :options=\"options\"></v-select>\n    </div>\n  </template>\n\n  <script>\n    import vSelect from 'vue-select'\n    export default {\n      components: {vSelect},\n\n      data() {\n        return {\n          selected: null,\n          options: ['foo','bar','baz']\n        }\n      }\n    }\n  </script>\n      
  • value Represents the currently selected value(s)
    • type: String
    • required: true
  • options An array of strings or objects to be used as dropdown choices. Supports ['foo','bar'] & [{label: 'Foo', value: 'foo'}]. When using the [{}] syntax, the objects in the array can have as many properties as you need, as long as the object contains value and label keys.
    • type: Array
    • default: []
  • maxHeight Limit the height of the dropdown menu
    • type: String
    • default: '400px'
  • searchable Toggle filtering of options
    • type: Boolean
    • default: true
  • multiple Equivalent to multiple attribute on a <select>
    • type: Boolean
    • default: true
  • placeholder Equivalent to placeholder attribute on an <input>
    • type: String
    • default: ''
  • transition Vue transition prop applied to the .dropdown-menu
    • type: Boolean
    • default: true
  • theme Theme option to style the component. Available options: 'default', 'cyan'.
    • type: String
    • default: 'default'
"},{"./components/Select.vue":39,"./countries.js":40,"./simpleCountries.js":42,vue:36,"vueify-insert-css":37}],39:[function(e,t,n){function i(e){return e&&e.__esModule?e:{"default":e}}e("vueify-insert-css").insert(".dropdown[_v-4622d1b0]{position:relative}.open-indicator[_v-4622d1b0]{position:absolute;top:10px;right:10px;display:inline-block;cursor:pointer;pointer-events:all;-webkit-transition:all .15s cubic-bezier(1,-.115,.975,.855);transition:all .15s cubic-bezier(1,-.115,.975,.855);-webkit-transition-timing-function:cubic-bezier(1,-.115,.975,.855);transition-timing-function:cubic-bezier(1,-.115,.975,.855)}.open .open-indicator[_v-4622d1b0]{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.dropdown-toggle[_v-4622d1b0]{display:block;padding:0;background:none;border:1px solid rgba(60,60,60,.26);border-radius:4px;white-space:normal}.searchable .dropdown-toggle[_v-4622d1b0]{cursor:text}.open .dropdown-toggle[_v-4622d1b0]{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.dropdown-menu[_v-4622d1b0]{margin:0;width:100%;overflow-y:scroll;border-top:none;border-top-left-radius:0;border-top-right-radius:0}.alert[_v-4622d1b0]{height:26px;margin:4px 1px 0 3px;padding:0 .25em;float:left;line-height:1.7em}.alert .close[_v-4622d1b0]{float:none;margin-right:0;font-size:20px}input[type=search][_v-4622d1b0],input[type=search][_v-4622d1b0]:focus{display:inline-block;border:none;outline:none;margin:0;width:10em;max-width:100%;background:none;position:relative;box-shadow:none;float:left;clear:none}input[type=search][_v-4622d1b0]:disabled,li a[_v-4622d1b0]{cursor:pointer}.theme-default .alert[_v-4622d1b0]{color:#333;background-color:#f0f0f0;border-color:#ccc}.theme-default.dropdown.open .dropdown-menu[_v-4622d1b0],.theme-default.dropdown.open .dropdown-toggle[_v-4622d1b0]{border-color:rgba(60,60,60,.26)}.theme-default .active a[_v-4622d1b0]{background:rgba(50,50,50,.1);color:#333}.theme-default .highlight a[_v-4622d1b0],.theme-default li:hover a[_v-4622d1b0]{background:#f0f0f0;color:#333}.theme-cyan .alert[_v-4622d1b0]{color:#147688;background-color:#d7f3f9;border-color:#91ddec}.theme-cyan.dropdown.open .dropdown-menu[_v-4622d1b0],.theme-cyan.dropdown.open .dropdown-toggle[_v-4622d1b0]{border-color:#4cc3d9}.theme-cyan .active a[_v-4622d1b0]{background:rgba(50,50,50,.1);color:#333}.theme-cyan.dropdown .highlight a[_v-4622d1b0],.theme-cyan.dropdown li:hover a[_v-4622d1b0]{background:#4cc3d9;color:#fff}");Object.defineProperty(n,"__esModule",{value:!0});var a=e("babel-runtime/helpers/defineProperty"),r=i(a),o=e("babel-runtime/helpers/typeof"),s=i(o);n["default"]={props:{value:{twoway:!0,required:!0},options:{type:Array,"default":function(){return[]}},theme:{type:String,"default":"default"},maxHeight:{type:String,"default":"400px"},searchable:{type:Boolean,"default":!0},multiple:{type:Boolean,"default":!1},placeholder:{type:String,"default":""},transition:{type:String,"default":"expand"},clearSearchOnSelect:{type:Boolean,"default":!0}},data:function(){return{search:"",open:!1,typeAheadPointer:-1}},watch:{options:function(){this.$set("value",this.multiple?[]:null)},multiple:function(e){this.$set("value",e?[]:null)}},methods:{select:function(e){this.isOptionSelected(e)?this.multiple&&this.value.$remove(e):this.multiple?this.value?this.value.push(e):this.$set("value",[e]):this.value=e,this.multiple||(this.open=!this.open),this.clearSearchOnSelect&&(this.search="")},toggleDropdown:function(e){e.target!==this.$els.openIndicator&&e.target!==this.$els.search&&e.target!==this.$els.toggle&&e.target!==this.$el||(this.open?this.$els.search.blur():(this.open=!0,this.$els.search.focus()))},isOptionSelected:function(e){return this.multiple&&this.value?-1!==this.value.indexOf(e):this.value===e},getOptionValue:function(e){return"object"===("undefined"==typeof e?"undefined":(0,s["default"])(e))&&e.value?e.value:e},getOptionLabel:function(e){return"object"===("undefined"==typeof e?"undefined":(0,s["default"])(e))&&e.label?e.label:e},typeAheadUp:function(){this.typeAheadPointer>0&&this.typeAheadPointer--},typeAheadDown:function(){this.typeAheadPointer
  • {{ getOptionLabel(option) }}
  • Sorry, no matching options.'},{"babel-runtime/helpers/defineProperty":3,"babel-runtime/helpers/typeof":4,"vueify-insert-css":37}],40:[function(e,t,n){"use strict";t.exports=[{value:"AF",label:"Afghanistan"},{value:"AX",label:"Ã…land Islands"},{value:"AL",label:"Albania"},{value:"DZ",label:"Algeria"},{value:"AS",label:"American Samoa"},{value:"AD",label:"Andorra"},{value:"AO", -label:"Angola"},{value:"AI",label:"Anguilla"},{value:"AQ",label:"Antarctica"},{value:"AG",label:"Antigua and Barbuda"},{value:"AR",label:"Argentina"},{value:"AM",label:"Armenia"},{value:"AW",label:"Aruba"},{value:"AU",label:"Australia"},{value:"AT",label:"Austria"},{value:"AZ",label:"Azerbaijan"},{value:"BS",label:"Bahamas"},{value:"BH",label:"Bahrain"},{value:"BD",label:"Bangladesh"},{value:"BB",label:"Barbados"},{value:"BY",label:"Belarus"},{value:"BE",label:"Belgium"},{value:"BZ",label:"Belize"},{value:"BJ",label:"Benin"},{value:"BM",label:"Bermuda"},{value:"BT",label:"Bhutan"},{value:"BO",label:"Bolivia"},{value:"BA",label:"Bosnia and Herzegovina"},{value:"BW",label:"Botswana"},{value:"BV",label:"Bouvet Island"},{value:"BR",label:"Brazil"},{value:"IO",label:"British Indian Ocean Territory"},{value:"BN",label:"Brunei Darussalam"},{value:"BG",label:"Bulgaria"},{value:"BF",label:"Burkina Faso"},{value:"BI",label:"Burundi"},{value:"KH",label:"Cambodia"},{value:"CM",label:"Cameroon"},{value:"CA",label:"Canada"},{value:"CV",label:"Cape Verde"},{value:"KY",label:"Cayman Islands"},{value:"CF",label:"Central African Republic"},{value:"TD",label:"Chad"},{value:"CL",label:"Chile"},{value:"CN",label:"China"},{value:"CX",label:"Christmas Island"},{value:"CC",label:"Cocos (Keeling) Islands"},{value:"CO",label:"Colombia"},{value:"KM",label:"Comoros"},{value:"CG",label:"Congo"},{value:"CD",label:"Congo, The Democratic Republic of The"},{value:"CK",label:"Cook Islands"},{value:"CR",label:"Costa Rica"},{value:"CI",label:"Cote D'ivoire"},{value:"HR",label:"Croatia"},{value:"CU",label:"Cuba"},{value:"CY",label:"Cyprus"},{value:"CZ",label:"Czech Republic"},{value:"DK",label:"Denmark"},{value:"DJ",label:"Djibouti"},{value:"DM",label:"Dominica"},{value:"DO",label:"Dominican Republic"},{value:"EC",label:"Ecuador"},{value:"EG",label:"Egypt"},{value:"SV",label:"El Salvador"},{value:"GQ",label:"Equatorial Guinea"},{value:"ER",label:"Eritrea"},{value:"EE",label:"Estonia"},{value:"ET",label:"Ethiopia"},{value:"FK",label:"Falkland Islands (Malvinas)"},{value:"FO",label:"Faroe Islands"},{value:"FJ",label:"Fiji"},{value:"FI",label:"Finland"},{value:"FR",label:"France"},{value:"GF",label:"French Guiana"},{value:"PF",label:"French Polynesia"},{value:"TF",label:"French Southern Territories"},{value:"GA",label:"Gabon"},{value:"GM",label:"Gambia"},{value:"GE",label:"Georgia"},{value:"DE",label:"Germany"},{value:"GH",label:"Ghana"},{value:"GI",label:"Gibraltar"},{value:"GR",label:"Greece"},{value:"GL",label:"Greenland"},{value:"GD",label:"Grenada"},{value:"GP",label:"Guadeloupe"},{value:"GU",label:"Guam"},{value:"GT",label:"Guatemala"},{value:"GG",label:"Guernsey"},{value:"GN",label:"Guinea"},{value:"GW",label:"Guinea-bissau"},{value:"GY",label:"Guyana"},{value:"HT",label:"Haiti"},{value:"HM",label:"Heard Island and Mcdonald Islands"},{value:"VA",label:"Holy See (Vatican City State)"},{value:"HN",label:"Honduras"},{value:"HK",label:"Hong Kong"},{value:"HU",label:"Hungary"},{value:"IS",label:"Iceland"},{value:"IN",label:"India"},{value:"ID",label:"Indonesia"},{value:"IR",label:"Iran, Islamic Republic of"},{value:"IQ",label:"Iraq"},{value:"IE",label:"Ireland"},{value:"IM",label:"Isle of Man"},{value:"IL",label:"Israel"},{value:"IT",label:"Italy"},{value:"JM",label:"Jamaica"},{value:"JP",label:"Japan"},{value:"JE",label:"Jersey"},{value:"JO",label:"Jordan"},{value:"KZ",label:"Kazakhstan"},{value:"KE",label:"Kenya"},{value:"KI",label:"Kiribati"},{value:"KP",label:"Korea, Democratic People's Republic of"},{value:"KR",label:"Korea, Republic of"},{value:"KW",label:"Kuwait"},{value:"KG",label:"Kyrgyzstan"},{value:"LA",label:"Lao People's Democratic Republic"},{value:"LV",label:"Latvia"},{value:"LB",label:"Lebanon"},{value:"LS",label:"Lesotho"},{value:"LR",label:"Liberia"},{value:"LY",label:"Libyan Arab Jamahiriya"},{value:"LI",label:"Liechtenstein"},{value:"LT",label:"Lithuania"},{value:"LU",label:"Luxembourg"},{value:"MO",label:"Macao"},{value:"MK",label:"Macedonia, The Former Yugoslav Republic of"},{value:"MG",label:"Madagascar"},{value:"MW",label:"Malawi"},{value:"MY",label:"Malaysia"},{value:"MV",label:"Maldives"},{value:"ML",label:"Mali"},{value:"MT",label:"Malta"},{value:"MH",label:"Marshall Islands"},{value:"MQ",label:"Martinique"},{value:"MR",label:"Mauritania"},{value:"MU",label:"Mauritius"},{value:"YT",label:"Mayotte"},{value:"MX",label:"Mexico"},{value:"FM",label:"Micronesia, Federated States of"},{value:"MD",label:"Moldova, Republic of"},{value:"MC",label:"Monaco"},{value:"MN",label:"Mongolia"},{value:"ME",label:"Montenegro"},{value:"MS",label:"Montserrat"},{value:"MA",label:"Morocco"},{value:"MZ",label:"Mozambique"},{value:"MM",label:"Myanmar"},{value:"NA",label:"Namibia"},{value:"NR",label:"Nauru"},{value:"NP",label:"Nepal"},{value:"NL",label:"Netherlands"},{value:"AN",label:"Netherlands Antilles"},{value:"NC",label:"New Caledonia"},{value:"NZ",label:"New Zealand"},{value:"NI",label:"Nicaragua"},{value:"NE",label:"Niger"},{value:"NG",label:"Nigeria"},{value:"NU",label:"Niue"},{value:"NF",label:"Norfolk Island"},{value:"MP",label:"Northern Mariana Islands"},{value:"NO",label:"Norway"},{value:"OM",label:"Oman"},{value:"PK",label:"Pakistan"},{value:"PW",label:"Palau"},{value:"PS",label:"Palestinian Territory, Occupied"},{value:"PA",label:"Panama"},{value:"PG",label:"Papua New Guinea"},{value:"PY",label:"Paraguay"},{value:"PE",label:"Peru"},{value:"PH",label:"Philippines"},{value:"PN",label:"Pitcairn"},{value:"PL",label:"Poland"},{value:"PT",label:"Portugal"},{value:"PR",label:"Puerto Rico"},{value:"QA",label:"Qatar"},{value:"RE",label:"Reunion"},{value:"RO",label:"Romania"},{value:"RU",label:"Russian Federation"},{value:"RW",label:"Rwanda"},{value:"SH",label:"Saint Helena"},{value:"KN",label:"Saint Kitts and Nevis"},{value:"LC",label:"Saint Lucia"},{value:"PM",label:"Saint Pierre and Miquelon"},{value:"VC",label:"Saint Vincent and The Grenadines"},{value:"WS",label:"Samoa"},{value:"SM",label:"San Marino"},{value:"ST",label:"Sao Tome and Principe"},{value:"SA",label:"Saudi Arabia"},{value:"SN",label:"Senegal"},{value:"RS",label:"Serbia"},{value:"SC",label:"Seychelles"},{value:"SL",label:"Sierra Leone"},{value:"SG",label:"Singapore"},{value:"SK",label:"Slovakia"},{value:"SI",label:"Slovenia"},{value:"SB",label:"Solomon Islands"},{value:"SO",label:"Somalia"},{value:"ZA",label:"South Africa"},{value:"GS",label:"South Georgia and The South Sandwich Islands"},{value:"ES",label:"Spain"},{value:"LK",label:"Sri Lanka"},{value:"SD",label:"Sudan"},{value:"SR",label:"Suriname"},{value:"SJ",label:"Svalbard and Jan Mayen"},{value:"SZ",label:"Swaziland"},{value:"SE",label:"Sweden"},{value:"CH",label:"Switzerland"},{value:"SY",label:"Syrian Arab Republic"},{value:"TW",label:"Taiwan, Province of China"},{value:"TJ",label:"Tajikistan"},{value:"TZ",label:"Tanzania, United Republic of"},{value:"TH",label:"Thailand"},{value:"TL",label:"Timor-leste"},{value:"TG",label:"Togo"},{value:"TK",label:"Tokelau"},{value:"TO",label:"Tonga"},{value:"TT",label:"Trinidad and Tobago"},{value:"TN",label:"Tunisia"},{value:"TR",label:"Turkey"},{value:"TM",label:"Turkmenistan"},{value:"TC",label:"Turks and Caicos Islands"},{value:"TV",label:"Tuvalu"},{value:"UG",label:"Uganda"},{value:"UA",label:"Ukraine"},{value:"AE",label:"United Arab Emirates"},{value:"GB",label:"United Kingdom"},{value:"US",label:"United States"},{value:"UM",label:"United States Minor Outlying Islands"},{value:"UY",label:"Uruguay"},{value:"UZ",label:"Uzbekistan"},{value:"VU",label:"Vanuatu"},{value:"VE",label:"Venezuela"},{value:"VN",label:"Viet Nam"},{value:"VG",label:"Virgin Islands, British"},{value:"VI",label:"Virgin Islands, U.S."},{value:"WF",label:"Wallis and Futuna"},{value:"EH",label:"Western Sahara"},{value:"YE",label:"Yemen"},{value:"ZM",label:"Zambia"},{value:"ZW",label:"Zimbabwe"}]},{}],41:[function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{"default":e}}var a=e("vue"),r=i(a),o=e("./App.vue"),s=i(o);r["default"].transition("bounce",{enterClass:"bounceInLeft",leaveClass:"bounceOutRight"}),r["default"].transition("zoom",{enterClass:"zoomIn",leaveClass:"zoomOut"}),r["default"].transition("fade",{enterClass:"fadeIn",leaveClass:"fadeOut"}),r["default"].transition("fadeInDownBig",{enterClass:"fadeInDownBig",leaveClass:"fadeOutDownBig"}),r["default"].transition("slideInDown",{enterClass:"slideInDown",leaveClass:"slideOutDown"}),r["default"].transition("slideUp",{enterClass:"fadeInDown",leaveClass:"fadeOutUp"}),r["default"].transition("lightSpeed",{enterClass:"lightSpeedIn",leaveClass:"lightSpeedOut"}),r["default"].transition("flipX",{enterClass:"flipInX",leaveClass:"flipOutX"}),r["default"].transition("flipY",{enterClass:"flipInY",leaveClass:"flipOutY"}),r["default"].transition("rotate",{enterClass:"rotateIn",leaveClass:"rotateOut"}),new r["default"]({el:"body",components:{App:s["default"]}})},{"./App.vue":38,vue:36}],42:[function(e,t,n){"use strict";t.exports=["Afghanistan","Ã…land Islands","Albania","Algeria","American Samoa","Andorra","Angola","Anguilla","Antarctica","Antigua and Barbuda","Argentina","Armenia","Aruba","Australia","Austria","Azerbaijan","Bahamas","Bahrain","Bangladesh","Barbados","Belarus","Belgium","Belize","Benin","Bermuda","Bhutan","Bolivia","Bosnia and Herzegovina","Botswana","Bouvet Island","Brazil","British Indian Ocean Territory","Brunei Darussalam","Bulgaria","Burkina Faso","Burundi","Cambodia","Cameroon","Canada","Cape Verde","Cayman Islands","Central African Republic","Chad","Chile","China","Christmas Island","Cocos (Keeling) Islands","Colombia","Comoros","Congo","Congo, The Democratic Republic of The","Cook Islands","Costa Rica","Cote D'ivoire","Croatia","Cuba","Cyprus","Czech Republic","Denmark","Djibouti","Dominica","Dominican Republic","Ecuador","Egypt","El Salvador","Equatorial Guinea","Eritrea","Estonia","Ethiopia","Falkland Islands (Malvinas)","Faroe Islands","Fiji","Finland","France","French Guiana","French Polynesia","French Southern Territories","Gabon","Gambia","Georgia","Germany","Ghana","Gibraltar","Greece","Greenland","Grenada","Guadeloupe","Guam","Guatemala","Guernsey","Guinea","Guinea-bissau","Guyana","Haiti","Heard Island and Mcdonald Islands","Holy See (Vatican City State)","Honduras","Hong Kong","Hungary","Iceland","India","Indonesia","Iran, Islamic Republic of","Iraq","Ireland","Isle of Man","Israel","Italy","Jamaica","Japan","Jersey","Jordan","Kazakhstan","Kenya","Kiribati","Korea, Democratic People's Republic of","Korea, Republic of","Kuwait","Kyrgyzstan","Lao People's Democratic Republic","Latvia","Lebanon","Lesotho","Liberia","Libyan Arab Jamahiriya","Liechtenstein","Lithuania","Luxembourg","Macao","Macedonia, The Former Yugoslav Republic of","Madagascar","Malawi","Malaysia","Maldives","Mali","Malta","Marshall Islands","Martinique","Mauritania","Mauritius","Mayotte","Mexico","Micronesia, Federated States of","Moldova, Republic of","Monaco","Mongolia","Montenegro","Montserrat","Morocco","Mozambique","Myanmar","Namibia","Nauru","Nepal","Netherlands","Netherlands Antilles","New Caledonia","New Zealand","Nicaragua","Niger","Nigeria","Niue","Norfolk Island","Northern Mariana Islands","Norway","Oman","Pakistan","Palau","Palestinian Territory, Occupied","Panama","Papua New Guinea","Paraguay","Peru","Philippines","Pitcairn","Poland","Portugal","Puerto Rico","Qatar","Reunion","Romania","Russian Federation","Rwanda","Saint Helena","Saint Kitts and Nevis","Saint Lucia","Saint Pierre and Miquelon","Saint Vincent and The Grenadines","Samoa","San Marino","Sao Tome and Principe","Saudi Arabia","Senegal","Serbia","Seychelles","Sierra Leone","Singapore","Slovakia","Slovenia","Solomon Islands","Somalia","South Africa","South Georgia and The South Sandwich Islands","Spain","Sri Lanka","Sudan","Suriname","Svalbard and Jan Mayen","Swaziland","Sweden","Switzerland","Syrian Arab Republic","Taiwan, Province of China","Tajikistan","Tanzania, United Republic of","Thailand","Timor-leste","Togo","Tokelau","Tonga","Trinidad and Tobago","Tunisia","Turkey","Turkmenistan","Turks and Caicos Islands","Tuvalu","Uganda","Ukraine","United Arab Emirates","United Kingdom","United States","United States Minor Outlying Islands","Uruguay","Uzbekistan","Vanuatu","Venezuela","Viet Nam","Virgin Islands, British","Virgin Islands, U.S.","Wallis and Futuna","Western Sahara","Yemen","Zambia","Zimbabwe"]},{}]},{},[41]); +(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 i)if(isEnum.call(it, key = symbols[i++]))keys.push(key); + } + return keys; +}; +}).apply(this, arguments); + +},{"./$":22}],13:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/babel-runtime/node_modules/core-js/library/modules/$.export.js", module); +(function(){ +var global = require('./$.global') + , core = require('./$.core') + , ctx = require('./$.ctx') + , 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 + , IS_WRAP = type & $export.W + , exports = IS_GLOBAL ? core : core[name] || (core[name] = {}) + , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE] + , key, own, out; + if(IS_GLOBAL)source = name; + for(key in source){ + // contains in native + own = !IS_FORCED && target && key in target; + if(own && key in exports)continue; + // export native or passed + out = own ? target[key] : source[key]; + // prevent global pollution for namespaces + exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key] + // bind timers to global for call from export context + : IS_BIND && own ? ctx(out, global) + // wrap global constructors for prevent change them in library + : IS_WRAP && target[key] == out ? (function(C){ + var F = function(param){ + return this instanceof C ? new C(param) : C(param); + }; + F[PROTOTYPE] = C[PROTOTYPE]; + return F; + // make static versions for prototype methods + })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; + if(IS_PROTO)(exports[PROTOTYPE] || (exports[PROTOTYPE] = {}))[key] = out; + } +}; +// type bitmap +$export.F = 1; // forced +$export.G = 2; // global +$export.S = 4; // static +$export.P = 8; // proto +$export.B = 16; // bind +$export.W = 32; // wrap +module.exports = $export; +}).apply(this, arguments); + +},{"./$.core":8,"./$.ctx":9,"./$.global":16}],14:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/babel-runtime/node_modules/core-js/library/modules/$.fails.js", module); +(function(){ +module.exports = function(exec){ + try { + return !!exec(); + } catch(e){ + return true; + } +}; +}).apply(this, arguments); + +},{}],15:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/babel-runtime/node_modules/core-js/library/modules/$.get-names.js", module); +(function(){ +// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window +var toIObject = require('./$.to-iobject') + , getNames = require('./$').getNames + , toString = {}.toString; + +var windowNames = typeof window == 'object' && Object.getOwnPropertyNames + ? Object.getOwnPropertyNames(window) : []; + +var getWindowNames = function(it){ + try { + return getNames(it); + } catch(e){ + return windowNames.slice(); + } +}; + +module.exports.get = function getOwnPropertyNames(it){ + if(windowNames && toString.call(it) == '[object Window]')return getWindowNames(it); + return getNames(toIObject(it)); +}; +}).apply(this, arguments); + +},{"./$":22,"./$.to-iobject":29}],16:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/babel-runtime/node_modules/core-js/library/modules/$.global.js", module); +(function(){ +// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 +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; // eslint-disable-line no-undef +}).apply(this, arguments); + +},{}],17:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/babel-runtime/node_modules/core-js/library/modules/$.has.js", module); +(function(){ +var hasOwnProperty = {}.hasOwnProperty; +module.exports = function(it, key){ + return hasOwnProperty.call(it, key); +}; +}).apply(this, arguments); + +},{}],18:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/babel-runtime/node_modules/core-js/library/modules/$.hide.js", module); +(function(){ +var $ = require('./$') + , createDesc = require('./$.property-desc'); +module.exports = require('./$.descriptors') ? function(object, key, value){ + return $.setDesc(object, key, createDesc(1, value)); +} : function(object, key, value){ + object[key] = value; + return object; +}; +}).apply(this, arguments); + +},{"./$":22,"./$.descriptors":11,"./$.property-desc":25}],19:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/babel-runtime/node_modules/core-js/library/modules/$.iobject.js", module); +(function(){ +// fallback for non-array-like ES3 and non-enumerable old V8 strings +var cof = require('./$.cof'); +module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){ + return cof(it) == 'String' ? it.split('') : Object(it); +}; +}).apply(this, arguments); + +},{"./$.cof":7}],20:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/babel-runtime/node_modules/core-js/library/modules/$.is-array.js", module); +(function(){ +// 7.2.2 IsArray(argument) +var cof = require('./$.cof'); +module.exports = Array.isArray || function(arg){ + return cof(arg) == 'Array'; +}; +}).apply(this, arguments); + +},{"./$.cof":7}],21:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/babel-runtime/node_modules/core-js/library/modules/$.is-object.js", module); +(function(){ +module.exports = function(it){ + return typeof it === 'object' ? it !== null : typeof it === 'function'; +}; +}).apply(this, arguments); + +},{}],22:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/babel-runtime/node_modules/core-js/library/modules/$.js", module); +(function(){ +var $Object = Object; +module.exports = { + create: $Object.create, + getProto: $Object.getPrototypeOf, + isEnum: {}.propertyIsEnumerable, + getDesc: $Object.getOwnPropertyDescriptor, + setDesc: $Object.defineProperty, + setDescs: $Object.defineProperties, + getKeys: $Object.keys, + getNames: $Object.getOwnPropertyNames, + getSymbols: $Object.getOwnPropertySymbols, + each: [].forEach +}; +}).apply(this, arguments); + +},{}],23:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/babel-runtime/node_modules/core-js/library/modules/$.keyof.js", module); +(function(){ +var $ = require('./$') + , toIObject = require('./$.to-iobject'); +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; +}; +}).apply(this, arguments); + +},{"./$":22,"./$.to-iobject":29}],24:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/babel-runtime/node_modules/core-js/library/modules/$.library.js", module); +(function(){ +module.exports = true; +}).apply(this, arguments); + +},{}],25:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/babel-runtime/node_modules/core-js/library/modules/$.property-desc.js", module); +(function(){ +module.exports = function(bitmap, value){ + return { + enumerable : !(bitmap & 1), + configurable: !(bitmap & 2), + writable : !(bitmap & 4), + value : value + }; +}; +}).apply(this, arguments); + +},{}],26:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/babel-runtime/node_modules/core-js/library/modules/$.redefine.js", module); +(function(){ +module.exports = require('./$.hide'); +}).apply(this, arguments); + +},{"./$.hide":18}],27:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/babel-runtime/node_modules/core-js/library/modules/$.set-to-string-tag.js", module); +(function(){ +var def = require('./$').setDesc + , has = require('./$.has') + , TAG = require('./$.wks')('toStringTag'); + +module.exports = function(it, tag, stat){ + if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag}); +}; +}).apply(this, arguments); + +},{"./$":22,"./$.has":17,"./$.wks":31}],28:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/babel-runtime/node_modules/core-js/library/modules/$.shared.js", module); +(function(){ +var global = require('./$.global') + , SHARED = '__core-js_shared__' + , store = global[SHARED] || (global[SHARED] = {}); +module.exports = function(key){ + return store[key] || (store[key] = {}); +}; +}).apply(this, arguments); + +},{"./$.global":16}],29:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/babel-runtime/node_modules/core-js/library/modules/$.to-iobject.js", module); +(function(){ +// to indexed object, toObject with fallback for non-array-like ES3 strings +var IObject = require('./$.iobject') + , defined = require('./$.defined'); +module.exports = function(it){ + return IObject(defined(it)); +}; +}).apply(this, arguments); + +},{"./$.defined":10,"./$.iobject":19}],30:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/babel-runtime/node_modules/core-js/library/modules/$.uid.js", module); +(function(){ +var id = 0 + , px = Math.random(); +module.exports = function(key){ + return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); +}; +}).apply(this, arguments); + +},{}],31:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/babel-runtime/node_modules/core-js/library/modules/$.wks.js", module); +(function(){ +var store = require('./$.shared')('wks') + , uid = require('./$.uid') + , Symbol = require('./$.global').Symbol; +module.exports = function(name){ + return store[name] || (store[name] = + Symbol && Symbol[name] || (Symbol || uid)('Symbol.' + name)); +}; +}).apply(this, arguments); + +},{"./$.global":16,"./$.shared":28,"./$.uid":30}],32:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.to-string.js", module); +(function(){ + +}).apply(this, arguments); + +},{}],33:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/babel-runtime/node_modules/core-js/library/modules/es6.symbol.js", module); +(function(){ +'use strict'; +// ECMAScript 6 symbols shim +var $ = require('./$') + , global = require('./$.global') + , has = require('./$.has') + , DESCRIPTORS = require('./$.descriptors') + , $export = require('./$.export') + , redefine = require('./$.redefine') + , $fails = require('./$.fails') + , shared = require('./$.shared') + , setToStringTag = require('./$.set-to-string-tag') + , uid = require('./$.uid') + , wks = require('./$.wks') + , keyOf = require('./$.keyof') + , $names = require('./$.get-names') + , enumKeys = require('./$.enum-keys') + , isArray = require('./$.is-array') + , anObject = require('./$.an-object') + , toIObject = require('./$.to-iobject') + , createDesc = require('./$.property-desc') + , getDesc = $.getDesc + , setDesc = $.setDesc + , _create = $.create + , getNames = $names.get + , $Symbol = global.Symbol + , $JSON = global.JSON + , _stringify = $JSON && $JSON.stringify + , setter = false + , HIDDEN = wks('_hidden') + , isEnum = $.isEnum + , SymbolRegistry = shared('symbol-registry') + , AllSymbols = shared('symbols') + , useNative = typeof $Symbol == 'function' + , ObjectProto = Object.prototype; + +// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687 +var setSymbolDesc = DESCRIPTORS && $fails(function(){ + return _create(setDesc({}, 'a', { + get: function(){ return setDesc(this, 'a', {value: 7}).a; } + })).a != 7; +}) ? function(it, key, D){ + var protoDesc = getDesc(ObjectProto, key); + if(protoDesc)delete ObjectProto[key]; + setDesc(it, key, D); + if(protoDesc && it !== ObjectProto)setDesc(ObjectProto, key, protoDesc); +} : setDesc; + +var wrap = function(tag){ + var sym = AllSymbols[tag] = _create($Symbol.prototype); + sym._k = tag; + DESCRIPTORS && setter && setSymbolDesc(ObjectProto, tag, { + configurable: true, + set: function(value){ + if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false; + setSymbolDesc(this, tag, createDesc(1, value)); + } + }); + return sym; +}; + +var isSymbol = function(it){ + return typeof it == 'symbol'; +}; + +var $defineProperty = function defineProperty(it, key, D){ + if(D && has(AllSymbols, key)){ + if(!D.enumerable){ + if(!has(it, HIDDEN))setDesc(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 setDesc(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); + return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] + ? E : true; +}; +var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){ + var D = getDesc(it = toIObject(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 = getNames(toIObject(it)) + , result = [] + , i = 0 + , key; + while(names.length > i)if(!has(AllSymbols, key = names[i++]) && key != HIDDEN)result.push(key); + return result; +}; +var $getOwnPropertySymbols = function getOwnPropertySymbols(it){ + var names = getNames(toIObject(it)) + , result = [] + , i = 0 + , key; + while(names.length > i)if(has(AllSymbols, key = names[i++]))result.push(AllSymbols[key]); + return result; +}; +var $stringify = function stringify(it){ + if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined + var args = [it] + , i = 1 + , $$ = arguments + , replacer, $replacer; + while($$.length > i)args.push($$[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); +}; +var buggyJSON = $fails(function(){ + var S = $Symbol(); + // MS Edge converts symbol values to JSON as {} + // WebKit converts symbol values to JSON as null + // V8 throws on boxed symbols + return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}'; +}); + +// 19.4.1.1 Symbol([description]) +if(!useNative){ + $Symbol = function Symbol(){ + if(isSymbol(this))throw TypeError('Symbol is not a constructor'); + return wrap(uid(arguments.length > 0 ? arguments[0] : undefined)); + }; + redefine($Symbol.prototype, 'toString', function toString(){ + return this._k; + }); + + isSymbol = function(it){ + return it instanceof $Symbol; + }; + + $.create = $create; + $.isEnum = $propertyIsEnumerable; + $.getDesc = $getOwnPropertyDescriptor; + $.setDesc = $defineProperty; + $.setDescs = $defineProperties; + $.getNames = $names.get = $getOwnPropertyNames; + $.getSymbols = $getOwnPropertySymbols; + + if(DESCRIPTORS && !require('./$.library')){ + redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true); + } +} + +var symbolStatics = { + // 19.4.2.1 Symbol.for(key) + 'for': function(key){ + return has(SymbolRegistry, key += '') + ? SymbolRegistry[key] + : SymbolRegistry[key] = $Symbol(key); + }, + // 19.4.2.5 Symbol.keyFor(sym) + keyFor: function keyFor(key){ + return keyOf(SymbolRegistry, key); + }, + useSetter: function(){ setter = true; }, + useSimple: function(){ setter = false; } +}; +// 19.4.2.2 Symbol.hasInstance +// 19.4.2.3 Symbol.isConcatSpreadable +// 19.4.2.4 Symbol.iterator +// 19.4.2.6 Symbol.match +// 19.4.2.8 Symbol.replace +// 19.4.2.9 Symbol.search +// 19.4.2.10 Symbol.species +// 19.4.2.11 Symbol.split +// 19.4.2.12 Symbol.toPrimitive +// 19.4.2.13 Symbol.toStringTag +// 19.4.2.14 Symbol.unscopables +$.each.call(( + 'hasInstance,isConcatSpreadable,iterator,match,replace,search,' + + 'species,split,toPrimitive,toStringTag,unscopables' +).split(','), function(it){ + var sym = wks(it); + symbolStatics[it] = useNative ? sym : wrap(sym); +}); + +setter = true; + +$export($export.G + $export.W, {Symbol: $Symbol}); + +$export($export.S, 'Symbol', symbolStatics); + +$export($export.S + $export.F * !useNative, 'Object', { + // 19.1.2.2 Object.create(O [, Properties]) + create: $create, + // 19.1.2.4 Object.defineProperty(O, P, Attributes) + defineProperty: $defineProperty, + // 19.1.2.3 Object.defineProperties(O, Properties) + defineProperties: $defineProperties, + // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P) + getOwnPropertyDescriptor: $getOwnPropertyDescriptor, + // 19.1.2.7 Object.getOwnPropertyNames(O) + getOwnPropertyNames: $getOwnPropertyNames, + // 19.1.2.8 Object.getOwnPropertySymbols(O) + getOwnPropertySymbols: $getOwnPropertySymbols +}); + +// 24.3.2 JSON.stringify(value [, replacer [, space]]) +$JSON && $export($export.S + $export.F * (!useNative || buggyJSON), 'JSON', {stringify: $stringify}); + +// 19.4.3.5 Symbol.prototype[@@toStringTag] +setToStringTag($Symbol, 'Symbol'); +// 20.2.1.9 Math[@@toStringTag] +setToStringTag(Math, 'Math', true); +// 24.3.3 JSON[@@toStringTag] +setToStringTag(global.JSON, 'JSON', true); +}).apply(this, arguments); + +},{"./$":22,"./$.an-object":6,"./$.descriptors":11,"./$.enum-keys":12,"./$.export":13,"./$.fails":14,"./$.get-names":15,"./$.global":16,"./$.has":17,"./$.is-array":20,"./$.keyof":23,"./$.library":24,"./$.property-desc":25,"./$.redefine":26,"./$.set-to-string-tag":27,"./$.shared":28,"./$.to-iobject":29,"./$.uid":30,"./$.wks":31}],34:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/inc/index.js", module); +(function(){ +(function (global){ +'use strict'; + +var has = require('../lib/has'); +var StrSet = require('../lib/str-set'); +var forEach = require('lodash/collection/forEach'); +var some = require('lodash/collection/some'); +var map = require('lodash/collection/map'); +var filter = require('lodash/collection/filter'); +var zipObject = require('lodash/array/zipObject'); +var forOwn = require('lodash/object/forOwn'); +var mapValues = require('lodash/object/mapValues'); +var assign = require('lodash/object/assign'); + +function emitError(err) { + setTimeout(function() { + throw err; + }, 0); +} + +function makeModuleIndexesToNames(moduleMeta) { + var moduleIndexesToNames = {}; + forOwn(moduleMeta, function(value, name) { + moduleIndexesToNames[value.index] = name; + }); + return moduleIndexesToNames; +} + +var console = global.console ? global.console : { + error: function(){}, log: function() {} +}; + +function main( + moduleDefs, cachedModules, moduleMeta, updateUrl, + updateMode, supportModes, ignoreUnaccepted, updateCacheBust, bundleKey, + socketio, + bundle__filename, bundle__dirname +) { + var moduleIndexesToNames = makeModuleIndexesToNames(moduleMeta); + + var socket; + var name, i, len; + + if (!global._hmr[bundleKey].setStatus) { + var runtimeModuleInfo = {}; + var createInfoEntry = function(name) { + runtimeModuleInfo[name] = { + index: moduleMeta[name].index, + hash: moduleMeta[name].hash, + parents: new StrSet(moduleMeta[name].parents), + module: null, + disposeData: null, + accepters: new StrSet(), + accepting: new StrSet(), + decliners: new StrSet(), + declining: new StrSet(), + selfAcceptCbs: [], // may contain null. nonzero length means module is self-accepting + disposeHandlers: [] + }; + }; + for (name in moduleMeta) { + if (has(moduleMeta, name)) { + createInfoEntry(name); + } + } + + // loaders take a callback(err, data). They may give null for data if they + // know there hasn't been an update. + var fileReloaders = { + fs: function(cb) { + var fs; + try { + fs = require('f'+'s'); + } catch(e) { + cb(e); + return; + } + fs.readFile(localHmr.updateUrl || bundle__filename, 'utf8', cb); + }, + ajax: function(cb) { + var xhr; + try { + xhr = new XMLHttpRequest(); + } catch(e) { + cb(e); + return; + } + xhr.onreadystatechange = function() { + if (xhr.readyState === 4) { + if (xhr.status === 200) { + cb(null, xhr.responseText); + } else { + cb(new Error("Request had response "+xhr.status)); + } + } + }; + var url = localHmr.updateUrl + (updateCacheBust?'?_v='+(+new Date()):''); + xhr.open('GET', url, true); + xhr.send(); + } + }; + + var lastScriptData = null; + + // cb(err, expectUpdate) + var reloadAndRunScript = function(cb) { + if (!has(fileReloaders, localHmr.updateMode)) { + cb(new Error("updateMode "+localHmr.updateMode+" not implemented")); + return; + } + var reloader = fileReloaders[localHmr.updateMode]; + reloader(function(err, data) { + if (err || !data || lastScriptData === data) { + cb(err, false); + return; + } + lastScriptData = data; + localHmr.newLoad = null; + try { + //jshint evil:true + if (bundle__filename || bundle__dirname) { + new Function('require', '__filename', '__dirname', data)(require, bundle__filename, bundle__dirname); + } else { + new Function('require', data)(require); + } + // running the file sets _hmr.newLoad + } catch (err2) { + localHmr.newLoad = null; + cb(err2); + return; + } + if (!localHmr.newLoad) { + cb(new Error("Reloaded script did not set hot module reload data")); + return; + } + cb(null, true); + }); + }; + + var getOutdatedModules = function() { + var outdated = []; + var name; + // add changed and deleted modules + for (name in runtimeModuleInfo) { + if (has(runtimeModuleInfo, name)) { + if ( + !has(localHmr.newLoad.moduleMeta, name) || + runtimeModuleInfo[name].hash !== localHmr.newLoad.moduleMeta[name].hash + ) { + outdated.push(name); + } + } + } + // add brand new modules + for (name in localHmr.newLoad.moduleMeta) { + if (has(localHmr.newLoad.moduleMeta, name)) { + if (!has(runtimeModuleInfo, name)) { + outdated.push(name); + } + } + } + // add modules that are non-accepting/declining parents of outdated modules. + // important: if outdated has new elements added during the loop, + // then we iterate over them too. + for (var i=0; i 3 + */ +function last(array) { + var length = array ? array.length : 0; + return length ? array[length - 1] : undefined; +} + +module.exports = last; + +}).apply(this, arguments); + +},{}],38:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/lodash/array/zipObject.js", module); +(function(){ +var isArray = require('../lang/isArray'); + +/** + * The inverse of `_.pairs`; this method returns an object composed from arrays + * of property names and values. Provide either a single two dimensional array, + * e.g. `[[key1, value1], [key2, value2]]` or two arrays, one of property names + * and one of corresponding values. + * + * @static + * @memberOf _ + * @alias object + * @category Array + * @param {Array} props The property names. + * @param {Array} [values=[]] The property values. + * @returns {Object} Returns the new object. + * @example + * + * _.zipObject([['fred', 30], ['barney', 40]]); + * // => { 'fred': 30, 'barney': 40 } + * + * _.zipObject(['fred', 'barney'], [30, 40]); + * // => { 'fred': 30, 'barney': 40 } + */ +function zipObject(props, values) { + var index = -1, + length = props ? props.length : 0, + result = {}; + + if (length && !values && !isArray(props[0])) { + values = []; + } + while (++index < length) { + var key = props[index]; + if (values) { + result[key] = values[index]; + } else if (key) { + result[key[0]] = key[1]; + } + } + return result; +} + +module.exports = zipObject; + +}).apply(this, arguments); + +},{"../lang/isArray":92}],39:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/lodash/collection/filter.js", module); +(function(){ +var arrayFilter = require('../internal/arrayFilter'), + baseCallback = require('../internal/baseCallback'), + baseFilter = require('../internal/baseFilter'), + isArray = require('../lang/isArray'); + +/** + * Iterates over elements of `collection`, returning an array of all elements + * `predicate` returns truthy for. The predicate is bound to `thisArg` and + * invoked with three arguments: (value, index|key, collection). + * + * If a property name is provided for `predicate` the created `_.property` + * style callback returns the property value of the given element. + * + * If a value is also provided for `thisArg` the created `_.matchesProperty` + * style callback returns `true` for elements that have a matching property + * value, else `false`. + * + * If an object is provided for `predicate` the created `_.matches` style + * callback returns `true` for elements that have the properties of the given + * object, else `false`. + * + * @static + * @memberOf _ + * @alias select + * @category Collection + * @param {Array|Object|string} collection The collection to iterate over. + * @param {Function|Object|string} [predicate=_.identity] The function invoked + * per iteration. + * @param {*} [thisArg] The `this` binding of `predicate`. + * @returns {Array} Returns the new filtered array. + * @example + * + * _.filter([4, 5, 6], function(n) { + * return n % 2 == 0; + * }); + * // => [4, 6] + * + * var users = [ + * { 'user': 'barney', 'age': 36, 'active': true }, + * { 'user': 'fred', 'age': 40, 'active': false } + * ]; + * + * // using the `_.matches` callback shorthand + * _.pluck(_.filter(users, { 'age': 36, 'active': true }), 'user'); + * // => ['barney'] + * + * // using the `_.matchesProperty` callback shorthand + * _.pluck(_.filter(users, 'active', false), 'user'); + * // => ['fred'] + * + * // using the `_.property` callback shorthand + * _.pluck(_.filter(users, 'active'), 'user'); + * // => ['barney'] + */ +function filter(collection, predicate, thisArg) { + var func = isArray(collection) ? arrayFilter : baseFilter; + predicate = baseCallback(predicate, thisArg, 3); + return func(collection, predicate); +} + +module.exports = filter; + +}).apply(this, arguments); + +},{"../internal/arrayFilter":45,"../internal/baseCallback":50,"../internal/baseFilter":53,"../lang/isArray":92}],40:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/lodash/collection/forEach.js", module); +(function(){ +var arrayEach = require('../internal/arrayEach'), + baseEach = require('../internal/baseEach'), + createForEach = require('../internal/createForEach'); + +/** + * Iterates over elements of `collection` invoking `iteratee` for each element. + * The `iteratee` is bound to `thisArg` and invoked with three arguments: + * (value, index|key, collection). Iteratee functions may exit iteration early + * by explicitly returning `false`. + * + * **Note:** As with other "Collections" methods, objects with a "length" property + * are iterated like arrays. To avoid this behavior `_.forIn` or `_.forOwn` + * may be used for object iteration. + * + * @static + * @memberOf _ + * @alias each + * @category Collection + * @param {Array|Object|string} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @param {*} [thisArg] The `this` binding of `iteratee`. + * @returns {Array|Object|string} Returns `collection`. + * @example + * + * _([1, 2]).forEach(function(n) { + * console.log(n); + * }).value(); + * // => logs each value from left to right and returns the array + * + * _.forEach({ 'a': 1, 'b': 2 }, function(n, key) { + * console.log(n, key); + * }); + * // => logs each value-key pair and returns the object (iteration order is not guaranteed) + */ +var forEach = createForEach(arrayEach, baseEach); + +module.exports = forEach; + +}).apply(this, arguments); + +},{"../internal/arrayEach":44,"../internal/baseEach":52,"../internal/createForEach":72}],41:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/lodash/collection/map.js", module); +(function(){ +var arrayMap = require('../internal/arrayMap'), + baseCallback = require('../internal/baseCallback'), + baseMap = require('../internal/baseMap'), + isArray = require('../lang/isArray'); + +/** + * Creates an array of values by running each element in `collection` through + * `iteratee`. The `iteratee` is bound to `thisArg` and invoked with three + * arguments: (value, index|key, collection). + * + * If a property name is provided for `iteratee` the created `_.property` + * style callback returns the property value of the given element. + * + * If a value is also provided for `thisArg` the created `_.matchesProperty` + * style callback returns `true` for elements that have a matching property + * value, else `false`. + * + * If an object is provided for `iteratee` the created `_.matches` style + * callback returns `true` for elements that have the properties of the given + * object, else `false`. + * + * Many lodash methods are guarded to work as iteratees for methods like + * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`. + * + * The guarded methods are: + * `ary`, `callback`, `chunk`, `clone`, `create`, `curry`, `curryRight`, + * `drop`, `dropRight`, `every`, `fill`, `flatten`, `invert`, `max`, `min`, + * `parseInt`, `slice`, `sortBy`, `take`, `takeRight`, `template`, `trim`, + * `trimLeft`, `trimRight`, `trunc`, `random`, `range`, `sample`, `some`, + * `sum`, `uniq`, and `words` + * + * @static + * @memberOf _ + * @alias collect + * @category Collection + * @param {Array|Object|string} collection The collection to iterate over. + * @param {Function|Object|string} [iteratee=_.identity] The function invoked + * per iteration. + * @param {*} [thisArg] The `this` binding of `iteratee`. + * @returns {Array} Returns the new mapped array. + * @example + * + * function timesThree(n) { + * return n * 3; + * } + * + * _.map([1, 2], timesThree); + * // => [3, 6] + * + * _.map({ 'a': 1, 'b': 2 }, timesThree); + * // => [3, 6] (iteration order is not guaranteed) + * + * var users = [ + * { 'user': 'barney' }, + * { 'user': 'fred' } + * ]; + * + * // using the `_.property` callback shorthand + * _.map(users, 'user'); + * // => ['barney', 'fred'] + */ +function map(collection, iteratee, thisArg) { + var func = isArray(collection) ? arrayMap : baseMap; + iteratee = baseCallback(iteratee, thisArg, 3); + return func(collection, iteratee); +} + +module.exports = map; + +}).apply(this, arguments); + +},{"../internal/arrayMap":46,"../internal/baseCallback":50,"../internal/baseMap":60,"../lang/isArray":92}],42:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/lodash/collection/some.js", module); +(function(){ +var arraySome = require('../internal/arraySome'), + baseCallback = require('../internal/baseCallback'), + baseSome = require('../internal/baseSome'), + isArray = require('../lang/isArray'), + isIterateeCall = require('../internal/isIterateeCall'); + +/** + * Checks if `predicate` returns truthy for **any** element of `collection`. + * The function returns as soon as it finds a passing value and does not iterate + * over the entire collection. The predicate is bound to `thisArg` and invoked + * with three arguments: (value, index|key, collection). + * + * If a property name is provided for `predicate` the created `_.property` + * style callback returns the property value of the given element. + * + * If a value is also provided for `thisArg` the created `_.matchesProperty` + * style callback returns `true` for elements that have a matching property + * value, else `false`. + * + * If an object is provided for `predicate` the created `_.matches` style + * callback returns `true` for elements that have the properties of the given + * object, else `false`. + * + * @static + * @memberOf _ + * @alias any + * @category Collection + * @param {Array|Object|string} collection The collection to iterate over. + * @param {Function|Object|string} [predicate=_.identity] The function invoked + * per iteration. + * @param {*} [thisArg] The `this` binding of `predicate`. + * @returns {boolean} Returns `true` if any element passes the predicate check, + * else `false`. + * @example + * + * _.some([null, 0, 'yes', false], Boolean); + * // => true + * + * var users = [ + * { 'user': 'barney', 'active': true }, + * { 'user': 'fred', 'active': false } + * ]; + * + * // using the `_.matches` callback shorthand + * _.some(users, { 'user': 'barney', 'active': false }); + * // => false + * + * // using the `_.matchesProperty` callback shorthand + * _.some(users, 'active', false); + * // => true + * + * // using the `_.property` callback shorthand + * _.some(users, 'active'); + * // => true + */ +function some(collection, predicate, thisArg) { + var func = isArray(collection) ? arraySome : baseSome; + if (thisArg && isIterateeCall(collection, predicate, thisArg)) { + predicate = undefined; + } + if (typeof predicate != 'function' || thisArg !== undefined) { + predicate = baseCallback(predicate, thisArg, 3); + } + return func(collection, predicate); +} + +module.exports = some; + +}).apply(this, arguments); + +},{"../internal/arraySome":47,"../internal/baseCallback":50,"../internal/baseSome":66,"../internal/isIterateeCall":83,"../lang/isArray":92}],43:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/lodash/function/restParam.js", module); +(function(){ +/** Used as the `TypeError` message for "Functions" methods. */ +var FUNC_ERROR_TEXT = 'Expected a function'; + +/* Native method references for those with the same name as other `lodash` methods. */ +var nativeMax = Math.max; + +/** + * Creates a function that invokes `func` with the `this` binding of the + * created function and arguments from `start` and beyond provided as an array. + * + * **Note:** This method is based on the [rest parameter](https://developer.mozilla.org/Web/JavaScript/Reference/Functions/rest_parameters). + * + * @static + * @memberOf _ + * @category Function + * @param {Function} func The function to apply a rest parameter to. + * @param {number} [start=func.length-1] The start position of the rest parameter. + * @returns {Function} Returns the new function. + * @example + * + * var say = _.restParam(function(what, names) { + * return what + ' ' + _.initial(names).join(', ') + + * (_.size(names) > 1 ? ', & ' : '') + _.last(names); + * }); + * + * say('hello', 'fred', 'barney', 'pebbles'); + * // => 'hello fred, barney, & pebbles' + */ +function restParam(func, start) { + if (typeof func != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + start = nativeMax(start === undefined ? (func.length - 1) : (+start || 0), 0); + return function() { + var args = arguments, + index = -1, + length = nativeMax(args.length - start, 0), + rest = Array(length); + + while (++index < length) { + rest[index] = args[start + index]; + } + switch (start) { + case 0: return func.call(this, rest); + case 1: return func.call(this, args[0], rest); + case 2: return func.call(this, args[0], args[1], rest); + } + var otherArgs = Array(start + 1); + index = -1; + while (++index < start) { + otherArgs[index] = args[index]; + } + otherArgs[start] = rest; + return func.apply(this, otherArgs); + }; +} + +module.exports = restParam; + +}).apply(this, arguments); + +},{}],44:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/lodash/internal/arrayEach.js", module); +(function(){ +/** + * A specialized version of `_.forEach` for arrays without support for callback + * shorthands and `this` binding. + * + * @private + * @param {Array} array The array to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns `array`. + */ +function arrayEach(array, iteratee) { + var index = -1, + length = array.length; + + while (++index < length) { + if (iteratee(array[index], index, array) === false) { + break; + } + } + return array; +} + +module.exports = arrayEach; + +}).apply(this, arguments); + +},{}],45:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/lodash/internal/arrayFilter.js", module); +(function(){ +/** + * A specialized version of `_.filter` for arrays without support for callback + * shorthands and `this` binding. + * + * @private + * @param {Array} array The array to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {Array} Returns the new filtered array. + */ +function arrayFilter(array, predicate) { + var index = -1, + length = array.length, + resIndex = -1, + result = []; + + while (++index < length) { + var value = array[index]; + if (predicate(value, index, array)) { + result[++resIndex] = value; + } + } + return result; +} + +module.exports = arrayFilter; + +}).apply(this, arguments); + +},{}],46:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/lodash/internal/arrayMap.js", module); +(function(){ +/** + * A specialized version of `_.map` for arrays without support for callback + * shorthands and `this` binding. + * + * @private + * @param {Array} array The array to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the new mapped array. + */ +function arrayMap(array, iteratee) { + var index = -1, + length = array.length, + result = Array(length); + + while (++index < length) { + result[index] = iteratee(array[index], index, array); + } + return result; +} + +module.exports = arrayMap; + +}).apply(this, arguments); + +},{}],47:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/lodash/internal/arraySome.js", module); +(function(){ +/** + * A specialized version of `_.some` for arrays without support for callback + * shorthands and `this` binding. + * + * @private + * @param {Array} array The array to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {boolean} Returns `true` if any element passes the predicate check, + * else `false`. + */ +function arraySome(array, predicate) { + var index = -1, + length = array.length; + + while (++index < length) { + if (predicate(array[index], index, array)) { + return true; + } + } + return false; +} + +module.exports = arraySome; + +}).apply(this, arguments); + +},{}],48:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/lodash/internal/assignWith.js", module); +(function(){ +var keys = require('../object/keys'); + +/** + * A specialized version of `_.assign` for customizing assigned values without + * support for argument juggling, multiple sources, and `this` binding `customizer` + * functions. + * + * @private + * @param {Object} object The destination object. + * @param {Object} source The source object. + * @param {Function} customizer The function to customize assigned values. + * @returns {Object} Returns `object`. + */ +function assignWith(object, source, customizer) { + var index = -1, + props = keys(source), + length = props.length; + + while (++index < length) { + var key = props[index], + value = object[key], + result = customizer(value, source[key], key, object, source); + + if ((result === result ? (result !== value) : (value === value)) || + (value === undefined && !(key in object))) { + object[key] = result; + } + } + return object; +} + +module.exports = assignWith; + +}).apply(this, arguments); + +},{"../object/keys":99}],49:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/lodash/internal/baseAssign.js", module); +(function(){ +var baseCopy = require('./baseCopy'), + keys = require('../object/keys'); + +/** + * The base implementation of `_.assign` without support for argument juggling, + * multiple sources, and `customizer` functions. + * + * @private + * @param {Object} object The destination object. + * @param {Object} source The source object. + * @returns {Object} Returns `object`. + */ +function baseAssign(object, source) { + return source == null + ? object + : baseCopy(source, keys(source), object); +} + +module.exports = baseAssign; + +}).apply(this, arguments); + +},{"../object/keys":99,"./baseCopy":51}],50:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/lodash/internal/baseCallback.js", module); +(function(){ +var baseMatches = require('./baseMatches'), + baseMatchesProperty = require('./baseMatchesProperty'), + bindCallback = require('./bindCallback'), + identity = require('../utility/identity'), + property = require('../utility/property'); + +/** + * The base implementation of `_.callback` which supports specifying the + * number of arguments to provide to `func`. + * + * @private + * @param {*} [func=_.identity] The value to convert to a callback. + * @param {*} [thisArg] The `this` binding of `func`. + * @param {number} [argCount] The number of arguments to provide to `func`. + * @returns {Function} Returns the callback. + */ +function baseCallback(func, thisArg, argCount) { + var type = typeof func; + if (type == 'function') { + return thisArg === undefined + ? func + : bindCallback(func, thisArg, argCount); + } + if (func == null) { + return identity; + } + if (type == 'object') { + return baseMatches(func); + } + return thisArg === undefined + ? property(func) + : baseMatchesProperty(func, thisArg); +} + +module.exports = baseCallback; + +}).apply(this, arguments); + +},{"../utility/identity":103,"../utility/property":104,"./baseMatches":61,"./baseMatchesProperty":62,"./bindCallback":68}],51:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/lodash/internal/baseCopy.js", module); +(function(){ +/** + * Copies properties of `source` to `object`. + * + * @private + * @param {Object} source The object to copy properties from. + * @param {Array} props The property names to copy. + * @param {Object} [object={}] The object to copy properties to. + * @returns {Object} Returns `object`. + */ +function baseCopy(source, props, object) { + object || (object = {}); + + var index = -1, + length = props.length; + + while (++index < length) { + var key = props[index]; + object[key] = source[key]; + } + return object; +} + +module.exports = baseCopy; + +}).apply(this, arguments); + +},{}],52:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/lodash/internal/baseEach.js", module); +(function(){ +var baseForOwn = require('./baseForOwn'), + createBaseEach = require('./createBaseEach'); + +/** + * The base implementation of `_.forEach` without support for callback + * shorthands and `this` binding. + * + * @private + * @param {Array|Object|string} collection The collection to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array|Object|string} Returns `collection`. + */ +var baseEach = createBaseEach(baseForOwn); + +module.exports = baseEach; + +}).apply(this, arguments); + +},{"./baseForOwn":55,"./createBaseEach":70}],53:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/lodash/internal/baseFilter.js", module); +(function(){ +var baseEach = require('./baseEach'); + +/** + * The base implementation of `_.filter` without support for callback + * shorthands and `this` binding. + * + * @private + * @param {Array|Object|string} collection The collection to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {Array} Returns the new filtered array. + */ +function baseFilter(collection, predicate) { + var result = []; + baseEach(collection, function(value, index, collection) { + if (predicate(value, index, collection)) { + result.push(value); + } + }); + return result; +} + +module.exports = baseFilter; + +}).apply(this, arguments); + +},{"./baseEach":52}],54:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/lodash/internal/baseFor.js", module); +(function(){ +var createBaseFor = require('./createBaseFor'); + +/** + * The base implementation of `baseForIn` and `baseForOwn` which iterates + * over `object` properties returned by `keysFunc` invoking `iteratee` for + * each property. Iteratee functions may exit iteration early by explicitly + * returning `false`. + * + * @private + * @param {Object} object The object to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @param {Function} keysFunc The function to get the keys of `object`. + * @returns {Object} Returns `object`. + */ +var baseFor = createBaseFor(); + +module.exports = baseFor; + +}).apply(this, arguments); + +},{"./createBaseFor":71}],55:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/lodash/internal/baseForOwn.js", module); +(function(){ +var baseFor = require('./baseFor'), + keys = require('../object/keys'); + +/** + * The base implementation of `_.forOwn` without support for callback + * shorthands and `this` binding. + * + * @private + * @param {Object} object The object to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Object} Returns `object`. + */ +function baseForOwn(object, iteratee) { + return baseFor(object, iteratee, keys); +} + +module.exports = baseForOwn; + +}).apply(this, arguments); + +},{"../object/keys":99,"./baseFor":54}],56:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/lodash/internal/baseGet.js", module); +(function(){ +var toObject = require('./toObject'); + +/** + * The base implementation of `get` without support for string paths + * and default values. + * + * @private + * @param {Object} object The object to query. + * @param {Array} path The path of the property to get. + * @param {string} [pathKey] The key representation of path. + * @returns {*} Returns the resolved value. + */ +function baseGet(object, path, pathKey) { + if (object == null) { + return; + } + if (pathKey !== undefined && pathKey in toObject(object)) { + path = [pathKey]; + } + var index = 0, + length = path.length; + + while (object != null && index < length) { + object = object[path[index++]]; + } + return (index && index == length) ? object : undefined; +} + +module.exports = baseGet; + +}).apply(this, arguments); + +},{"./toObject":89}],57:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/lodash/internal/baseIsEqual.js", module); +(function(){ +var baseIsEqualDeep = require('./baseIsEqualDeep'), + isObject = require('../lang/isObject'), + isObjectLike = require('./isObjectLike'); + +/** + * The base implementation of `_.isEqual` without support for `this` binding + * `customizer` functions. + * + * @private + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @param {Function} [customizer] The function to customize comparing values. + * @param {boolean} [isLoose] Specify performing partial comparisons. + * @param {Array} [stackA] Tracks traversed `value` objects. + * @param {Array} [stackB] Tracks traversed `other` objects. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + */ +function baseIsEqual(value, other, customizer, isLoose, stackA, stackB) { + if (value === other) { + return true; + } + if (value == null || other == null || (!isObject(value) && !isObjectLike(other))) { + return value !== value && other !== other; + } + return baseIsEqualDeep(value, other, baseIsEqual, customizer, isLoose, stackA, stackB); +} + +module.exports = baseIsEqual; + +}).apply(this, arguments); + +},{"../lang/isObject":95,"./baseIsEqualDeep":58,"./isObjectLike":86}],58:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/lodash/internal/baseIsEqualDeep.js", module); +(function(){ +var equalArrays = require('./equalArrays'), + equalByTag = require('./equalByTag'), + equalObjects = require('./equalObjects'), + isArray = require('../lang/isArray'), + isTypedArray = require('../lang/isTypedArray'); + +/** `Object#toString` result references. */ +var argsTag = '[object Arguments]', + arrayTag = '[object Array]', + objectTag = '[object Object]'; + +/** Used for native method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) + * of values. + */ +var objToString = objectProto.toString; + +/** + * A specialized version of `baseIsEqual` for arrays and objects which performs + * deep comparisons and tracks traversed objects enabling objects with circular + * references to be compared. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Function} [customizer] The function to customize comparing objects. + * @param {boolean} [isLoose] Specify performing partial comparisons. + * @param {Array} [stackA=[]] Tracks traversed `value` objects. + * @param {Array} [stackB=[]] Tracks traversed `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ +function baseIsEqualDeep(object, other, equalFunc, customizer, isLoose, stackA, stackB) { + var objIsArr = isArray(object), + othIsArr = isArray(other), + objTag = arrayTag, + othTag = arrayTag; + + if (!objIsArr) { + objTag = objToString.call(object); + if (objTag == argsTag) { + objTag = objectTag; + } else if (objTag != objectTag) { + objIsArr = isTypedArray(object); + } + } + if (!othIsArr) { + othTag = objToString.call(other); + if (othTag == argsTag) { + othTag = objectTag; + } else if (othTag != objectTag) { + othIsArr = isTypedArray(other); + } + } + var objIsObj = objTag == objectTag, + othIsObj = othTag == objectTag, + isSameTag = objTag == othTag; + + if (isSameTag && !(objIsArr || objIsObj)) { + return equalByTag(object, other, objTag); + } + if (!isLoose) { + var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'), + othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__'); + + if (objIsWrapped || othIsWrapped) { + return equalFunc(objIsWrapped ? object.value() : object, othIsWrapped ? other.value() : other, customizer, isLoose, stackA, stackB); + } + } + if (!isSameTag) { + return false; + } + // Assume cyclic values are equal. + // For more information on detecting circular references see https://es5.github.io/#JO. + stackA || (stackA = []); + stackB || (stackB = []); + + var length = stackA.length; + while (length--) { + if (stackA[length] == object) { + return stackB[length] == other; + } + } + // Add `object` and `other` to the stack of traversed objects. + stackA.push(object); + stackB.push(other); + + var result = (objIsArr ? equalArrays : equalObjects)(object, other, equalFunc, customizer, isLoose, stackA, stackB); + + stackA.pop(); + stackB.pop(); + + return result; +} + +module.exports = baseIsEqualDeep; + +}).apply(this, arguments); + +},{"../lang/isArray":92,"../lang/isTypedArray":96,"./equalArrays":75,"./equalByTag":76,"./equalObjects":77}],59:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/lodash/internal/baseIsMatch.js", module); +(function(){ +var baseIsEqual = require('./baseIsEqual'), + toObject = require('./toObject'); + +/** + * The base implementation of `_.isMatch` without support for callback + * shorthands and `this` binding. + * + * @private + * @param {Object} object The object to inspect. + * @param {Array} matchData The propery names, values, and compare flags to match. + * @param {Function} [customizer] The function to customize comparing objects. + * @returns {boolean} Returns `true` if `object` is a match, else `false`. + */ +function baseIsMatch(object, matchData, customizer) { + var index = matchData.length, + length = index, + noCustomizer = !customizer; + + if (object == null) { + return !length; + } + object = toObject(object); + while (index--) { + var data = matchData[index]; + if ((noCustomizer && data[2]) + ? data[1] !== object[data[0]] + : !(data[0] in object) + ) { + return false; + } + } + while (++index < length) { + data = matchData[index]; + var key = data[0], + objValue = object[key], + srcValue = data[1]; + + if (noCustomizer && data[2]) { + if (objValue === undefined && !(key in object)) { + return false; + } + } else { + var result = customizer ? customizer(objValue, srcValue, key) : undefined; + if (!(result === undefined ? baseIsEqual(srcValue, objValue, customizer, true) : result)) { + return false; + } + } + } + return true; +} + +module.exports = baseIsMatch; + +}).apply(this, arguments); + +},{"./baseIsEqual":57,"./toObject":89}],60:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/lodash/internal/baseMap.js", module); +(function(){ +var baseEach = require('./baseEach'), + isArrayLike = require('./isArrayLike'); + +/** + * The base implementation of `_.map` without support for callback shorthands + * and `this` binding. + * + * @private + * @param {Array|Object|string} collection The collection to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the new mapped array. + */ +function baseMap(collection, iteratee) { + var index = -1, + result = isArrayLike(collection) ? Array(collection.length) : []; + + baseEach(collection, function(value, key, collection) { + result[++index] = iteratee(value, key, collection); + }); + return result; +} + +module.exports = baseMap; + +}).apply(this, arguments); + +},{"./baseEach":52,"./isArrayLike":81}],61:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/lodash/internal/baseMatches.js", module); +(function(){ +var baseIsMatch = require('./baseIsMatch'), + getMatchData = require('./getMatchData'), + toObject = require('./toObject'); + +/** + * The base implementation of `_.matches` which does not clone `source`. + * + * @private + * @param {Object} source The object of property values to match. + * @returns {Function} Returns the new function. + */ +function baseMatches(source) { + var matchData = getMatchData(source); + if (matchData.length == 1 && matchData[0][2]) { + var key = matchData[0][0], + value = matchData[0][1]; + + return function(object) { + if (object == null) { + return false; + } + return object[key] === value && (value !== undefined || (key in toObject(object))); + }; + } + return function(object) { + return baseIsMatch(object, matchData); + }; +} + +module.exports = baseMatches; + +}).apply(this, arguments); + +},{"./baseIsMatch":59,"./getMatchData":79,"./toObject":89}],62:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/lodash/internal/baseMatchesProperty.js", module); +(function(){ +var baseGet = require('./baseGet'), + baseIsEqual = require('./baseIsEqual'), + baseSlice = require('./baseSlice'), + isArray = require('../lang/isArray'), + isKey = require('./isKey'), + isStrictComparable = require('./isStrictComparable'), + last = require('../array/last'), + toObject = require('./toObject'), + toPath = require('./toPath'); + +/** + * The base implementation of `_.matchesProperty` which does not clone `srcValue`. + * + * @private + * @param {string} path The path of the property to get. + * @param {*} srcValue The value to compare. + * @returns {Function} Returns the new function. + */ +function baseMatchesProperty(path, srcValue) { + var isArr = isArray(path), + isCommon = isKey(path) && isStrictComparable(srcValue), + pathKey = (path + ''); + + path = toPath(path); + return function(object) { + if (object == null) { + return false; + } + var key = pathKey; + object = toObject(object); + if ((isArr || !isCommon) && !(key in object)) { + object = path.length == 1 ? object : baseGet(object, baseSlice(path, 0, -1)); + if (object == null) { + return false; + } + key = last(path); + object = toObject(object); + } + return object[key] === srcValue + ? (srcValue !== undefined || (key in object)) + : baseIsEqual(srcValue, object[key], undefined, true); + }; +} + +module.exports = baseMatchesProperty; + +}).apply(this, arguments); + +},{"../array/last":37,"../lang/isArray":92,"./baseGet":56,"./baseIsEqual":57,"./baseSlice":65,"./isKey":84,"./isStrictComparable":87,"./toObject":89,"./toPath":90}],63:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/lodash/internal/baseProperty.js", module); +(function(){ +/** + * The base implementation of `_.property` without support for deep paths. + * + * @private + * @param {string} key The key of the property to get. + * @returns {Function} Returns the new function. + */ +function baseProperty(key) { + return function(object) { + return object == null ? undefined : object[key]; + }; +} + +module.exports = baseProperty; + +}).apply(this, arguments); + +},{}],64:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/lodash/internal/basePropertyDeep.js", module); +(function(){ +var baseGet = require('./baseGet'), + toPath = require('./toPath'); + +/** + * A specialized version of `baseProperty` which supports deep paths. + * + * @private + * @param {Array|string} path The path of the property to get. + * @returns {Function} Returns the new function. + */ +function basePropertyDeep(path) { + var pathKey = (path + ''); + path = toPath(path); + return function(object) { + return baseGet(object, path, pathKey); + }; +} + +module.exports = basePropertyDeep; + +}).apply(this, arguments); + +},{"./baseGet":56,"./toPath":90}],65:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/lodash/internal/baseSlice.js", module); +(function(){ +/** + * The base implementation of `_.slice` without an iteratee call guard. + * + * @private + * @param {Array} array The array to slice. + * @param {number} [start=0] The start position. + * @param {number} [end=array.length] The end position. + * @returns {Array} Returns the slice of `array`. + */ +function baseSlice(array, start, end) { + var index = -1, + length = array.length; + + start = start == null ? 0 : (+start || 0); + if (start < 0) { + start = -start > length ? 0 : (length + start); + } + end = (end === undefined || end > length) ? length : (+end || 0); + if (end < 0) { + end += length; + } + length = start > end ? 0 : ((end - start) >>> 0); + start >>>= 0; + + var result = Array(length); + while (++index < length) { + result[index] = array[index + start]; + } + return result; +} + +module.exports = baseSlice; + +}).apply(this, arguments); + +},{}],66:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/lodash/internal/baseSome.js", module); +(function(){ +var baseEach = require('./baseEach'); + +/** + * The base implementation of `_.some` without support for callback shorthands + * and `this` binding. + * + * @private + * @param {Array|Object|string} collection The collection to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {boolean} Returns `true` if any element passes the predicate check, + * else `false`. + */ +function baseSome(collection, predicate) { + var result; + + baseEach(collection, function(value, index, collection) { + result = predicate(value, index, collection); + return !result; + }); + return !!result; +} + +module.exports = baseSome; + +}).apply(this, arguments); + +},{"./baseEach":52}],67:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/lodash/internal/baseToString.js", module); +(function(){ +/** + * Converts `value` to a string if it's not one. An empty string is returned + * for `null` or `undefined` values. + * + * @private + * @param {*} value The value to process. + * @returns {string} Returns the string. + */ +function baseToString(value) { + return value == null ? '' : (value + ''); +} + +module.exports = baseToString; + +}).apply(this, arguments); + +},{}],68:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/lodash/internal/bindCallback.js", module); +(function(){ +var identity = require('../utility/identity'); + +/** + * A specialized version of `baseCallback` which only supports `this` binding + * and specifying the number of arguments to provide to `func`. + * + * @private + * @param {Function} func The function to bind. + * @param {*} thisArg The `this` binding of `func`. + * @param {number} [argCount] The number of arguments to provide to `func`. + * @returns {Function} Returns the callback. + */ +function bindCallback(func, thisArg, argCount) { + if (typeof func != 'function') { + return identity; + } + if (thisArg === undefined) { + return func; + } + switch (argCount) { + case 1: return function(value) { + return func.call(thisArg, value); + }; + case 3: return function(value, index, collection) { + return func.call(thisArg, value, index, collection); + }; + case 4: return function(accumulator, value, index, collection) { + return func.call(thisArg, accumulator, value, index, collection); + }; + case 5: return function(value, other, key, object, source) { + return func.call(thisArg, value, other, key, object, source); + }; + } + return function() { + return func.apply(thisArg, arguments); + }; +} + +module.exports = bindCallback; + +}).apply(this, arguments); + +},{"../utility/identity":103}],69:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/lodash/internal/createAssigner.js", module); +(function(){ +var bindCallback = require('./bindCallback'), + isIterateeCall = require('./isIterateeCall'), + restParam = require('../function/restParam'); + +/** + * Creates a `_.assign`, `_.defaults`, or `_.merge` function. + * + * @private + * @param {Function} assigner The function to assign values. + * @returns {Function} Returns the new assigner function. + */ +function createAssigner(assigner) { + return restParam(function(object, sources) { + var index = -1, + length = object == null ? 0 : sources.length, + customizer = length > 2 ? sources[length - 2] : undefined, + guard = length > 2 ? sources[2] : undefined, + thisArg = length > 1 ? sources[length - 1] : undefined; + + if (typeof customizer == 'function') { + customizer = bindCallback(customizer, thisArg, 5); + length -= 2; + } else { + customizer = typeof thisArg == 'function' ? thisArg : undefined; + length -= (customizer ? 1 : 0); + } + if (guard && isIterateeCall(sources[0], sources[1], guard)) { + customizer = length < 3 ? undefined : customizer; + length = 1; + } + while (++index < length) { + var source = sources[index]; + if (source) { + assigner(object, source, customizer); + } + } + return object; + }); +} + +module.exports = createAssigner; + +}).apply(this, arguments); + +},{"../function/restParam":43,"./bindCallback":68,"./isIterateeCall":83}],70:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/lodash/internal/createBaseEach.js", module); +(function(){ +var getLength = require('./getLength'), + isLength = require('./isLength'), + toObject = require('./toObject'); + +/** + * Creates a `baseEach` or `baseEachRight` function. + * + * @private + * @param {Function} eachFunc The function to iterate over a collection. + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Function} Returns the new base function. + */ +function createBaseEach(eachFunc, fromRight) { + return function(collection, iteratee) { + var length = collection ? getLength(collection) : 0; + if (!isLength(length)) { + return eachFunc(collection, iteratee); + } + var index = fromRight ? length : -1, + iterable = toObject(collection); + + while ((fromRight ? index-- : ++index < length)) { + if (iteratee(iterable[index], index, iterable) === false) { + break; + } + } + return collection; + }; +} + +module.exports = createBaseEach; + +}).apply(this, arguments); + +},{"./getLength":78,"./isLength":85,"./toObject":89}],71:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/lodash/internal/createBaseFor.js", module); +(function(){ +var toObject = require('./toObject'); + +/** + * Creates a base function for `_.forIn` or `_.forInRight`. + * + * @private + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Function} Returns the new base function. + */ +function createBaseFor(fromRight) { + return function(object, iteratee, keysFunc) { + var iterable = toObject(object), + props = keysFunc(object), + length = props.length, + index = fromRight ? length : -1; + + while ((fromRight ? index-- : ++index < length)) { + var key = props[index]; + if (iteratee(iterable[key], key, iterable) === false) { + break; + } + } + return object; + }; +} + +module.exports = createBaseFor; + +}).apply(this, arguments); + +},{"./toObject":89}],72:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/lodash/internal/createForEach.js", module); +(function(){ +var bindCallback = require('./bindCallback'), + isArray = require('../lang/isArray'); + +/** + * Creates a function for `_.forEach` or `_.forEachRight`. + * + * @private + * @param {Function} arrayFunc The function to iterate over an array. + * @param {Function} eachFunc The function to iterate over a collection. + * @returns {Function} Returns the new each function. + */ +function createForEach(arrayFunc, eachFunc) { + return function(collection, iteratee, thisArg) { + return (typeof iteratee == 'function' && thisArg === undefined && isArray(collection)) + ? arrayFunc(collection, iteratee) + : eachFunc(collection, bindCallback(iteratee, thisArg, 3)); + }; +} + +module.exports = createForEach; + +}).apply(this, arguments); + +},{"../lang/isArray":92,"./bindCallback":68}],73:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/lodash/internal/createForOwn.js", module); +(function(){ +var bindCallback = require('./bindCallback'); + +/** + * Creates a function for `_.forOwn` or `_.forOwnRight`. + * + * @private + * @param {Function} objectFunc The function to iterate over an object. + * @returns {Function} Returns the new each function. + */ +function createForOwn(objectFunc) { + return function(object, iteratee, thisArg) { + if (typeof iteratee != 'function' || thisArg !== undefined) { + iteratee = bindCallback(iteratee, thisArg, 3); + } + return objectFunc(object, iteratee); + }; +} + +module.exports = createForOwn; + +}).apply(this, arguments); + +},{"./bindCallback":68}],74:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/lodash/internal/createObjectMapper.js", module); +(function(){ +var baseCallback = require('./baseCallback'), + baseForOwn = require('./baseForOwn'); + +/** + * Creates a function for `_.mapKeys` or `_.mapValues`. + * + * @private + * @param {boolean} [isMapKeys] Specify mapping keys instead of values. + * @returns {Function} Returns the new map function. + */ +function createObjectMapper(isMapKeys) { + return function(object, iteratee, thisArg) { + var result = {}; + iteratee = baseCallback(iteratee, thisArg, 3); + + baseForOwn(object, function(value, key, object) { + var mapped = iteratee(value, key, object); + key = isMapKeys ? mapped : key; + value = isMapKeys ? value : mapped; + result[key] = value; + }); + return result; + }; +} + +module.exports = createObjectMapper; + +}).apply(this, arguments); + +},{"./baseCallback":50,"./baseForOwn":55}],75:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/lodash/internal/equalArrays.js", module); +(function(){ +var arraySome = require('./arraySome'); + +/** + * A specialized version of `baseIsEqualDeep` for arrays with support for + * partial deep comparisons. + * + * @private + * @param {Array} array The array to compare. + * @param {Array} other The other array to compare. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Function} [customizer] The function to customize comparing arrays. + * @param {boolean} [isLoose] Specify performing partial comparisons. + * @param {Array} [stackA] Tracks traversed `value` objects. + * @param {Array} [stackB] Tracks traversed `other` objects. + * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`. + */ +function equalArrays(array, other, equalFunc, customizer, isLoose, stackA, stackB) { + var index = -1, + arrLength = array.length, + othLength = other.length; + + if (arrLength != othLength && !(isLoose && othLength > arrLength)) { + return false; + } + // Ignore non-index properties. + while (++index < arrLength) { + var arrValue = array[index], + othValue = other[index], + result = customizer ? customizer(isLoose ? othValue : arrValue, isLoose ? arrValue : othValue, index) : undefined; + + if (result !== undefined) { + if (result) { + continue; + } + return false; + } + // Recursively compare arrays (susceptible to call stack limits). + if (isLoose) { + if (!arraySome(other, function(othValue) { + return arrValue === othValue || equalFunc(arrValue, othValue, customizer, isLoose, stackA, stackB); + })) { + return false; + } + } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, customizer, isLoose, stackA, stackB))) { + return false; + } + } + return true; +} + +module.exports = equalArrays; + +}).apply(this, arguments); + +},{"./arraySome":47}],76:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/lodash/internal/equalByTag.js", module); +(function(){ +/** `Object#toString` result references. */ +var boolTag = '[object Boolean]', + dateTag = '[object Date]', + errorTag = '[object Error]', + numberTag = '[object Number]', + regexpTag = '[object RegExp]', + stringTag = '[object String]'; + +/** + * A specialized version of `baseIsEqualDeep` for comparing objects of + * the same `toStringTag`. + * + * **Note:** This function only supports comparing values with tags of + * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {string} tag The `toStringTag` of the objects to compare. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ +function equalByTag(object, other, tag) { + switch (tag) { + case boolTag: + case dateTag: + // Coerce dates and booleans to numbers, dates to milliseconds and booleans + // to `1` or `0` treating invalid dates coerced to `NaN` as not equal. + return +object == +other; + + case errorTag: + return object.name == other.name && object.message == other.message; + + case numberTag: + // Treat `NaN` vs. `NaN` as equal. + return (object != +object) + ? other != +other + : object == +other; + + case regexpTag: + case stringTag: + // Coerce regexes to strings and treat strings primitives and string + // objects as equal. See https://es5.github.io/#x15.10.6.4 for more details. + return object == (other + ''); + } + return false; +} + +module.exports = equalByTag; + +}).apply(this, arguments); + +},{}],77:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/lodash/internal/equalObjects.js", module); +(function(){ +var keys = require('../object/keys'); + +/** Used for native method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * A specialized version of `baseIsEqualDeep` for objects with support for + * partial deep comparisons. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Function} [customizer] The function to customize comparing values. + * @param {boolean} [isLoose] Specify performing partial comparisons. + * @param {Array} [stackA] Tracks traversed `value` objects. + * @param {Array} [stackB] Tracks traversed `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ +function equalObjects(object, other, equalFunc, customizer, isLoose, stackA, stackB) { + var objProps = keys(object), + objLength = objProps.length, + othProps = keys(other), + othLength = othProps.length; + + if (objLength != othLength && !isLoose) { + return false; + } + var index = objLength; + while (index--) { + var key = objProps[index]; + if (!(isLoose ? key in other : hasOwnProperty.call(other, key))) { + return false; + } + } + var skipCtor = isLoose; + while (++index < objLength) { + key = objProps[index]; + var objValue = object[key], + othValue = other[key], + result = customizer ? customizer(isLoose ? othValue : objValue, isLoose? objValue : othValue, key) : undefined; + + // Recursively compare objects (susceptible to call stack limits). + if (!(result === undefined ? equalFunc(objValue, othValue, customizer, isLoose, stackA, stackB) : result)) { + return false; + } + skipCtor || (skipCtor = key == 'constructor'); + } + if (!skipCtor) { + var objCtor = object.constructor, + othCtor = other.constructor; + + // Non `Object` object instances with different constructors are not equal. + if (objCtor != othCtor && + ('constructor' in object && 'constructor' in other) && + !(typeof objCtor == 'function' && objCtor instanceof objCtor && + typeof othCtor == 'function' && othCtor instanceof othCtor)) { + return false; + } + } + return true; +} + +module.exports = equalObjects; + +}).apply(this, arguments); + +},{"../object/keys":99}],78:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/lodash/internal/getLength.js", module); +(function(){ +var baseProperty = require('./baseProperty'); + +/** + * Gets the "length" property value of `object`. + * + * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792) + * that affects Safari on at least iOS 8.1-8.3 ARM64. + * + * @private + * @param {Object} object The object to query. + * @returns {*} Returns the "length" value. + */ +var getLength = baseProperty('length'); + +module.exports = getLength; + +}).apply(this, arguments); + +},{"./baseProperty":63}],79:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/lodash/internal/getMatchData.js", module); +(function(){ +var isStrictComparable = require('./isStrictComparable'), + pairs = require('../object/pairs'); + +/** + * Gets the propery names, values, and compare flags of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the match data of `object`. + */ +function getMatchData(object) { + var result = pairs(object), + length = result.length; + + while (length--) { + result[length][2] = isStrictComparable(result[length][1]); + } + return result; +} + +module.exports = getMatchData; + +}).apply(this, arguments); + +},{"../object/pairs":102,"./isStrictComparable":87}],80:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/lodash/internal/getNative.js", module); +(function(){ +var isNative = require('../lang/isNative'); + +/** + * Gets the native function at `key` of `object`. + * + * @private + * @param {Object} object The object to query. + * @param {string} key The key of the method to get. + * @returns {*} Returns the function if it's native, else `undefined`. + */ +function getNative(object, key) { + var value = object == null ? undefined : object[key]; + return isNative(value) ? value : undefined; +} + +module.exports = getNative; + +}).apply(this, arguments); + +},{"../lang/isNative":94}],81:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/lodash/internal/isArrayLike.js", module); +(function(){ +var getLength = require('./getLength'), + isLength = require('./isLength'); + +/** + * Checks if `value` is array-like. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is array-like, else `false`. + */ +function isArrayLike(value) { + return value != null && isLength(getLength(value)); +} + +module.exports = isArrayLike; + +}).apply(this, arguments); + +},{"./getLength":78,"./isLength":85}],82:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/lodash/internal/isIndex.js", module); +(function(){ +/** Used to detect unsigned integer values. */ +var reIsUint = /^\d+$/; + +/** + * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer) + * of an array-like value. + */ +var MAX_SAFE_INTEGER = 9007199254740991; + +/** + * Checks if `value` is a valid array-like index. + * + * @private + * @param {*} value The value to check. + * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. + * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. + */ +function isIndex(value, length) { + value = (typeof value == 'number' || reIsUint.test(value)) ? +value : -1; + length = length == null ? MAX_SAFE_INTEGER : length; + return value > -1 && value % 1 == 0 && value < length; +} + +module.exports = isIndex; + +}).apply(this, arguments); + +},{}],83:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/lodash/internal/isIterateeCall.js", module); +(function(){ +var isArrayLike = require('./isArrayLike'), + isIndex = require('./isIndex'), + isObject = require('../lang/isObject'); + +/** + * Checks if the provided arguments are from an iteratee call. + * + * @private + * @param {*} value The potential iteratee value argument. + * @param {*} index The potential iteratee index or key argument. + * @param {*} object The potential iteratee object argument. + * @returns {boolean} Returns `true` if the arguments are from an iteratee call, else `false`. + */ +function isIterateeCall(value, index, object) { + if (!isObject(object)) { + return false; + } + var type = typeof index; + if (type == 'number' + ? (isArrayLike(object) && isIndex(index, object.length)) + : (type == 'string' && index in object)) { + var other = object[index]; + return value === value ? (value === other) : (other !== other); + } + return false; +} + +module.exports = isIterateeCall; + +}).apply(this, arguments); + +},{"../lang/isObject":95,"./isArrayLike":81,"./isIndex":82}],84:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/lodash/internal/isKey.js", module); +(function(){ +var isArray = require('../lang/isArray'), + toObject = require('./toObject'); + +/** Used to match property names within property paths. */ +var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\n\\]|\\.)*?\1)\]/, + reIsPlainProp = /^\w*$/; + +/** + * Checks if `value` is a property name and not a property path. + * + * @private + * @param {*} value The value to check. + * @param {Object} [object] The object to query keys on. + * @returns {boolean} Returns `true` if `value` is a property name, else `false`. + */ +function isKey(value, object) { + var type = typeof value; + if ((type == 'string' && reIsPlainProp.test(value)) || type == 'number') { + return true; + } + if (isArray(value)) { + return false; + } + var result = !reIsDeepProp.test(value); + return result || (object != null && value in toObject(object)); +} + +module.exports = isKey; + +}).apply(this, arguments); + +},{"../lang/isArray":92,"./toObject":89}],85:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/lodash/internal/isLength.js", module); +(function(){ +/** + * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer) + * of an array-like value. + */ +var MAX_SAFE_INTEGER = 9007199254740991; + +/** + * Checks if `value` is a valid array-like length. + * + * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength). + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. + */ +function isLength(value) { + return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; +} + +module.exports = isLength; + +}).apply(this, arguments); + +},{}],86:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/lodash/internal/isObjectLike.js", module); +(function(){ +/** + * Checks if `value` is object-like. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is object-like, else `false`. + */ +function isObjectLike(value) { + return !!value && typeof value == 'object'; +} + +module.exports = isObjectLike; + +}).apply(this, arguments); + +},{}],87:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/lodash/internal/isStrictComparable.js", module); +(function(){ +var isObject = require('../lang/isObject'); + +/** + * Checks if `value` is suitable for strict equality comparisons, i.e. `===`. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` if suitable for strict + * equality comparisons, else `false`. + */ +function isStrictComparable(value) { + return value === value && !isObject(value); +} + +module.exports = isStrictComparable; + +}).apply(this, arguments); + +},{"../lang/isObject":95}],88:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/lodash/internal/shimKeys.js", module); +(function(){ +var isArguments = require('../lang/isArguments'), + isArray = require('../lang/isArray'), + isIndex = require('./isIndex'), + isLength = require('./isLength'), + keysIn = require('../object/keysIn'); + +/** Used for native method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * A fallback implementation of `Object.keys` which creates an array of the + * own enumerable property names of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + */ +function shimKeys(object) { + var props = keysIn(object), + propsLength = props.length, + length = propsLength && object.length; + + var allowIndexes = !!length && isLength(length) && + (isArray(object) || isArguments(object)); + + var index = -1, + result = []; + + while (++index < propsLength) { + var key = props[index]; + if ((allowIndexes && isIndex(key, length)) || hasOwnProperty.call(object, key)) { + result.push(key); + } + } + return result; +} + +module.exports = shimKeys; + +}).apply(this, arguments); + +},{"../lang/isArguments":91,"../lang/isArray":92,"../object/keysIn":100,"./isIndex":82,"./isLength":85}],89:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/lodash/internal/toObject.js", module); +(function(){ +var isObject = require('../lang/isObject'); + +/** + * Converts `value` to an object if it's not one. + * + * @private + * @param {*} value The value to process. + * @returns {Object} Returns the object. + */ +function toObject(value) { + return isObject(value) ? value : Object(value); +} + +module.exports = toObject; + +}).apply(this, arguments); + +},{"../lang/isObject":95}],90:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/lodash/internal/toPath.js", module); +(function(){ +var baseToString = require('./baseToString'), + isArray = require('../lang/isArray'); + +/** Used to match property names within property paths. */ +var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\n\\]|\\.)*?)\2)\]/g; + +/** Used to match backslashes in property paths. */ +var reEscapeChar = /\\(\\)?/g; + +/** + * Converts `value` to property path array if it's not one. + * + * @private + * @param {*} value The value to process. + * @returns {Array} Returns the property path array. + */ +function toPath(value) { + if (isArray(value)) { + return value; + } + var result = []; + baseToString(value).replace(rePropName, function(match, number, quote, string) { + result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match)); + }); + return result; +} + +module.exports = toPath; + +}).apply(this, arguments); + +},{"../lang/isArray":92,"./baseToString":67}],91:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/lodash/lang/isArguments.js", module); +(function(){ +var isArrayLike = require('../internal/isArrayLike'), + isObjectLike = require('../internal/isObjectLike'); + +/** Used for native method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** Native method references. */ +var propertyIsEnumerable = objectProto.propertyIsEnumerable; + +/** + * Checks if `value` is classified as an `arguments` object. + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. + * @example + * + * _.isArguments(function() { return arguments; }()); + * // => true + * + * _.isArguments([1, 2, 3]); + * // => false + */ +function isArguments(value) { + return isObjectLike(value) && isArrayLike(value) && + hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee'); +} + +module.exports = isArguments; + +}).apply(this, arguments); + +},{"../internal/isArrayLike":81,"../internal/isObjectLike":86}],92:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/lodash/lang/isArray.js", module); +(function(){ +var getNative = require('../internal/getNative'), + isLength = require('../internal/isLength'), + isObjectLike = require('../internal/isObjectLike'); + +/** `Object#toString` result references. */ +var arrayTag = '[object Array]'; + +/** Used for native method references. */ +var objectProto = Object.prototype; + +/** + * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) + * of values. + */ +var objToString = objectProto.toString; + +/* Native method references for those with the same name as other `lodash` methods. */ +var nativeIsArray = getNative(Array, 'isArray'); + +/** + * Checks if `value` is classified as an `Array` object. + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. + * @example + * + * _.isArray([1, 2, 3]); + * // => true + * + * _.isArray(function() { return arguments; }()); + * // => false + */ +var isArray = nativeIsArray || function(value) { + return isObjectLike(value) && isLength(value.length) && objToString.call(value) == arrayTag; +}; + +module.exports = isArray; + +}).apply(this, arguments); + +},{"../internal/getNative":80,"../internal/isLength":85,"../internal/isObjectLike":86}],93:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/lodash/lang/isFunction.js", module); +(function(){ +var isObject = require('./isObject'); + +/** `Object#toString` result references. */ +var funcTag = '[object Function]'; + +/** Used for native method references. */ +var objectProto = Object.prototype; + +/** + * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) + * of values. + */ +var objToString = objectProto.toString; + +/** + * Checks if `value` is classified as a `Function` object. + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. + * @example + * + * _.isFunction(_); + * // => true + * + * _.isFunction(/abc/); + * // => false + */ +function isFunction(value) { + // The use of `Object#toString` avoids issues with the `typeof` operator + // in older versions of Chrome and Safari which return 'function' for regexes + // and Safari 8 which returns 'object' for typed array constructors. + return isObject(value) && objToString.call(value) == funcTag; +} + +module.exports = isFunction; + +}).apply(this, arguments); + +},{"./isObject":95}],94:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/lodash/lang/isNative.js", module); +(function(){ +var isFunction = require('./isFunction'), + isObjectLike = require('../internal/isObjectLike'); + +/** Used to detect host constructors (Safari > 5). */ +var reIsHostCtor = /^\[object .+?Constructor\]$/; + +/** Used for native method references. */ +var objectProto = Object.prototype; + +/** Used to resolve the decompiled source of functions. */ +var fnToString = Function.prototype.toString; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** Used to detect if a method is native. */ +var reIsNative = RegExp('^' + + fnToString.call(hasOwnProperty).replace(/[\\^$.*+?()[\]{}|]/g, '\\$&') + .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' +); + +/** + * Checks if `value` is a native function. + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a native function, else `false`. + * @example + * + * _.isNative(Array.prototype.push); + * // => true + * + * _.isNative(_); + * // => false + */ +function isNative(value) { + if (value == null) { + return false; + } + if (isFunction(value)) { + return reIsNative.test(fnToString.call(value)); + } + return isObjectLike(value) && reIsHostCtor.test(value); +} + +module.exports = isNative; + +}).apply(this, arguments); + +},{"../internal/isObjectLike":86,"./isFunction":93}],95:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/lodash/lang/isObject.js", module); +(function(){ +/** + * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`. + * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an object, else `false`. + * @example + * + * _.isObject({}); + * // => true + * + * _.isObject([1, 2, 3]); + * // => true + * + * _.isObject(1); + * // => false + */ +function isObject(value) { + // Avoid a V8 JIT bug in Chrome 19-20. + // See https://code.google.com/p/v8/issues/detail?id=2291 for more details. + var type = typeof value; + return !!value && (type == 'object' || type == 'function'); +} + +module.exports = isObject; + +}).apply(this, arguments); + +},{}],96:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/lodash/lang/isTypedArray.js", module); +(function(){ +var isLength = require('../internal/isLength'), + isObjectLike = require('../internal/isObjectLike'); + +/** `Object#toString` result references. */ +var argsTag = '[object Arguments]', + arrayTag = '[object Array]', + boolTag = '[object Boolean]', + dateTag = '[object Date]', + errorTag = '[object Error]', + funcTag = '[object Function]', + mapTag = '[object Map]', + numberTag = '[object Number]', + objectTag = '[object Object]', + regexpTag = '[object RegExp]', + setTag = '[object Set]', + stringTag = '[object String]', + weakMapTag = '[object WeakMap]'; + +var arrayBufferTag = '[object ArrayBuffer]', + 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]'; + +/** Used to identify `toStringTag` values of typed arrays. */ +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[dateTag] = typedArrayTags[errorTag] = +typedArrayTags[funcTag] = typedArrayTags[mapTag] = +typedArrayTags[numberTag] = typedArrayTags[objectTag] = +typedArrayTags[regexpTag] = typedArrayTags[setTag] = +typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false; + +/** Used for native method references. */ +var objectProto = Object.prototype; + +/** + * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) + * of values. + */ +var objToString = objectProto.toString; + +/** + * Checks if `value` is classified as a typed array. + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. + * @example + * + * _.isTypedArray(new Uint8Array); + * // => true + * + * _.isTypedArray([]); + * // => false + */ +function isTypedArray(value) { + return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[objToString.call(value)]; +} + +module.exports = isTypedArray; + +}).apply(this, arguments); + +},{"../internal/isLength":85,"../internal/isObjectLike":86}],97:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/lodash/object/assign.js", module); +(function(){ +var assignWith = require('../internal/assignWith'), + baseAssign = require('../internal/baseAssign'), + createAssigner = require('../internal/createAssigner'); + +/** + * Assigns own enumerable properties of source object(s) to the destination + * object. Subsequent sources overwrite property assignments of previous sources. + * If `customizer` is provided it's invoked to produce the assigned values. + * The `customizer` is bound to `thisArg` and invoked with five arguments: + * (objectValue, sourceValue, key, object, source). + * + * **Note:** This method mutates `object` and is based on + * [`Object.assign`](http://ecma-international.org/ecma-262/6.0/#sec-object.assign). + * + * @static + * @memberOf _ + * @alias extend + * @category Object + * @param {Object} object The destination object. + * @param {...Object} [sources] The source objects. + * @param {Function} [customizer] The function to customize assigned values. + * @param {*} [thisArg] The `this` binding of `customizer`. + * @returns {Object} Returns `object`. + * @example + * + * _.assign({ 'user': 'barney' }, { 'age': 40 }, { 'user': 'fred' }); + * // => { 'user': 'fred', 'age': 40 } + * + * // using a customizer callback + * var defaults = _.partialRight(_.assign, function(value, other) { + * return _.isUndefined(value) ? other : value; + * }); + * + * defaults({ 'user': 'barney' }, { 'age': 36 }, { 'user': 'fred' }); + * // => { 'user': 'barney', 'age': 36 } + */ +var assign = createAssigner(function(object, source, customizer) { + return customizer + ? assignWith(object, source, customizer) + : baseAssign(object, source); +}); + +module.exports = assign; + +}).apply(this, arguments); + +},{"../internal/assignWith":48,"../internal/baseAssign":49,"../internal/createAssigner":69}],98:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/lodash/object/forOwn.js", module); +(function(){ +var baseForOwn = require('../internal/baseForOwn'), + createForOwn = require('../internal/createForOwn'); + +/** + * Iterates over own enumerable properties of an object invoking `iteratee` + * for each property. The `iteratee` is bound to `thisArg` and invoked with + * three arguments: (value, key, object). Iteratee functions may exit iteration + * early by explicitly returning `false`. + * + * @static + * @memberOf _ + * @category Object + * @param {Object} object The object to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @param {*} [thisArg] The `this` binding of `iteratee`. + * @returns {Object} Returns `object`. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.forOwn(new Foo, function(value, key) { + * console.log(key); + * }); + * // => logs 'a' and 'b' (iteration order is not guaranteed) + */ +var forOwn = createForOwn(baseForOwn); + +module.exports = forOwn; + +}).apply(this, arguments); + +},{"../internal/baseForOwn":55,"../internal/createForOwn":73}],99:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/lodash/object/keys.js", module); +(function(){ +var getNative = require('../internal/getNative'), + isArrayLike = require('../internal/isArrayLike'), + isObject = require('../lang/isObject'), + shimKeys = require('../internal/shimKeys'); + +/* Native method references for those with the same name as other `lodash` methods. */ +var nativeKeys = getNative(Object, 'keys'); + +/** + * Creates an array of the own enumerable property names of `object`. + * + * **Note:** Non-object values are coerced to objects. See the + * [ES spec](http://ecma-international.org/ecma-262/6.0/#sec-object.keys) + * for more details. + * + * @static + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.keys(new Foo); + * // => ['a', 'b'] (iteration order is not guaranteed) + * + * _.keys('hi'); + * // => ['0', '1'] + */ +var keys = !nativeKeys ? shimKeys : function(object) { + var Ctor = object == null ? undefined : object.constructor; + if ((typeof Ctor == 'function' && Ctor.prototype === object) || + (typeof object != 'function' && isArrayLike(object))) { + return shimKeys(object); + } + return isObject(object) ? nativeKeys(object) : []; +}; + +module.exports = keys; + +}).apply(this, arguments); + +},{"../internal/getNative":80,"../internal/isArrayLike":81,"../internal/shimKeys":88,"../lang/isObject":95}],100:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/lodash/object/keysIn.js", module); +(function(){ +var isArguments = require('../lang/isArguments'), + isArray = require('../lang/isArray'), + isIndex = require('../internal/isIndex'), + isLength = require('../internal/isLength'), + isObject = require('../lang/isObject'); + +/** Used for native method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Creates an array of the own and inherited enumerable property names of `object`. + * + * **Note:** Non-object values are coerced to objects. + * + * @static + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.keysIn(new Foo); + * // => ['a', 'b', 'c'] (iteration order is not guaranteed) + */ +function keysIn(object) { + if (object == null) { + return []; + } + if (!isObject(object)) { + object = Object(object); + } + var length = object.length; + length = (length && isLength(length) && + (isArray(object) || isArguments(object)) && length) || 0; + + var Ctor = object.constructor, + index = -1, + isProto = typeof Ctor == 'function' && Ctor.prototype === object, + result = Array(length), + skipIndexes = length > 0; + + while (++index < length) { + result[index] = (index + ''); + } + for (var key in object) { + if (!(skipIndexes && isIndex(key, length)) && + !(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) { + result.push(key); + } + } + return result; +} + +module.exports = keysIn; + +}).apply(this, arguments); + +},{"../internal/isIndex":82,"../internal/isLength":85,"../lang/isArguments":91,"../lang/isArray":92,"../lang/isObject":95}],101:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/lodash/object/mapValues.js", module); +(function(){ +var createObjectMapper = require('../internal/createObjectMapper'); + +/** + * Creates an object with the same keys as `object` and values generated by + * running each own enumerable property of `object` through `iteratee`. The + * iteratee function is bound to `thisArg` and invoked with three arguments: + * (value, key, object). + * + * If a property name is provided for `iteratee` the created `_.property` + * style callback returns the property value of the given element. + * + * If a value is also provided for `thisArg` the created `_.matchesProperty` + * style callback returns `true` for elements that have a matching property + * value, else `false`. + * + * If an object is provided for `iteratee` the created `_.matches` style + * callback returns `true` for elements that have the properties of the given + * object, else `false`. + * + * @static + * @memberOf _ + * @category Object + * @param {Object} object The object to iterate over. + * @param {Function|Object|string} [iteratee=_.identity] The function invoked + * per iteration. + * @param {*} [thisArg] The `this` binding of `iteratee`. + * @returns {Object} Returns the new mapped object. + * @example + * + * _.mapValues({ 'a': 1, 'b': 2 }, function(n) { + * return n * 3; + * }); + * // => { 'a': 3, 'b': 6 } + * + * var users = { + * 'fred': { 'user': 'fred', 'age': 40 }, + * 'pebbles': { 'user': 'pebbles', 'age': 1 } + * }; + * + * // using the `_.property` callback shorthand + * _.mapValues(users, 'age'); + * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed) + */ +var mapValues = createObjectMapper(); + +module.exports = mapValues; + +}).apply(this, arguments); + +},{"../internal/createObjectMapper":74}],102:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/lodash/object/pairs.js", module); +(function(){ +var keys = require('./keys'), + toObject = require('../internal/toObject'); + +/** + * Creates a two dimensional array of the key-value pairs for `object`, + * e.g. `[[key1, value1], [key2, value2]]`. + * + * @static + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the new array of key-value pairs. + * @example + * + * _.pairs({ 'barney': 36, 'fred': 40 }); + * // => [['barney', 36], ['fred', 40]] (iteration order is not guaranteed) + */ +function pairs(object) { + object = toObject(object); + + var index = -1, + props = keys(object), + length = props.length, + result = Array(length); + + while (++index < length) { + var key = props[index]; + result[index] = [key, object[key]]; + } + return result; +} + +module.exports = pairs; + +}).apply(this, arguments); + +},{"../internal/toObject":89,"./keys":99}],103:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/lodash/utility/identity.js", module); +(function(){ +/** + * This method returns the first argument provided to it. + * + * @static + * @memberOf _ + * @category Utility + * @param {*} value Any value. + * @returns {*} Returns `value`. + * @example + * + * var object = { 'user': 'fred' }; + * + * _.identity(object) === object; + * // => true + */ +function identity(value) { + return value; +} + +module.exports = identity; + +}).apply(this, arguments); + +},{}],104:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/lodash/utility/property.js", module); +(function(){ +var baseProperty = require('../internal/baseProperty'), + basePropertyDeep = require('../internal/basePropertyDeep'), + isKey = require('../internal/isKey'); + +/** + * Creates a function that returns the property value at `path` on a + * given object. + * + * @static + * @memberOf _ + * @category Utility + * @param {Array|string} path The path of the property to get. + * @returns {Function} Returns the new function. + * @example + * + * var objects = [ + * { 'a': { 'b': { 'c': 2 } } }, + * { 'a': { 'b': { 'c': 1 } } } + * ]; + * + * _.map(objects, _.property('a.b.c')); + * // => [2, 1] + * + * _.pluck(_.sortBy(objects, _.property(['a', 'b', 'c'])), 'a.b.c'); + * // => [1, 2] + */ +function property(path) { + return isKey(path) ? baseProperty(path) : basePropertyDeep(path); +} + +module.exports = property; + +}).apply(this, arguments); + +},{"../internal/baseProperty":63,"../internal/basePropertyDeep":64,"../internal/isKey":84}],105:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/socket.io-client/lib/index.js", module); +(function(){ + +/** + * Module dependencies. + */ + +var url = require('./url'); +var parser = require('socket.io-parser'); +var Manager = require('./manager'); +var debug = require('debug')('socket.io-client'); + +/** + * Module exports. + */ + +module.exports = exports = lookup; + +/** + * Managers cache. + */ + +var cache = exports.managers = {}; + +/** + * Looks up an existing `Manager` for multiplexing. + * If the user summons: + * + * `io('http://localhost/a');` + * `io('http://localhost/b');` + * + * We reuse the existing instance based on same scheme/port/host, + * and we initialize sockets for each namespace. + * + * @api public + */ + +function lookup(uri, opts) { + if (typeof uri == 'object') { + opts = uri; + uri = undefined; + } + + opts = opts || {}; + + var parsed = url(uri); + var source = parsed.source; + var id = parsed.id; + var path = parsed.path; + var sameNamespace = cache[id] && path in cache[id].nsps; + var newConnection = opts.forceNew || opts['force new connection'] || + false === opts.multiplex || sameNamespace; + + var io; + + if (newConnection) { + debug('ignoring socket cache for %s', source); + io = Manager(source, opts); + } else { + if (!cache[id]) { + debug('new io instance for %s', source); + cache[id] = Manager(source, opts); + } + io = cache[id]; + } + + return io.socket(parsed.path); +} + +/** + * Protocol version. + * + * @api public + */ + +exports.protocol = parser.protocol; + +/** + * `connect`. + * + * @param {String} uri + * @api public + */ + +exports.connect = lookup; + +/** + * Expose constructors for standalone build. + * + * @api public + */ + +exports.Manager = require('./manager'); +exports.Socket = require('./socket'); + +}).apply(this, arguments); + +},{"./manager":106,"./socket":108,"./url":109,"debug":113,"socket.io-parser":146}],106:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/socket.io-client/lib/manager.js", module); +(function(){ + +/** + * Module dependencies. + */ + +var eio = require('engine.io-client'); +var Socket = require('./socket'); +var Emitter = require('component-emitter'); +var parser = require('socket.io-parser'); +var on = require('./on'); +var bind = require('component-bind'); +var debug = require('debug')('socket.io-client:manager'); +var indexOf = require('indexof'); +var Backoff = require('backo2'); + +/** + * IE6+ hasOwnProperty + */ + +var has = Object.prototype.hasOwnProperty; + +/** + * Module exports + */ + +module.exports = Manager; + +/** + * `Manager` constructor. + * + * @param {String} engine instance or engine uri/opts + * @param {Object} options + * @api public + */ + +function Manager(uri, opts){ + if (!(this instanceof Manager)) return new Manager(uri, opts); + if (uri && ('object' == typeof uri)) { + opts = uri; + uri = undefined; + } + opts = opts || {}; + + opts.path = opts.path || '/socket.io'; + this.nsps = {}; + this.subs = []; + this.opts = opts; + this.reconnection(opts.reconnection !== false); + this.reconnectionAttempts(opts.reconnectionAttempts || Infinity); + this.reconnectionDelay(opts.reconnectionDelay || 1000); + this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000); + this.randomizationFactor(opts.randomizationFactor || 0.5); + this.backoff = new Backoff({ + min: this.reconnectionDelay(), + max: this.reconnectionDelayMax(), + jitter: this.randomizationFactor() + }); + this.timeout(null == opts.timeout ? 20000 : opts.timeout); + this.readyState = 'closed'; + this.uri = uri; + this.connecting = []; + this.lastPing = null; + this.encoding = false; + this.packetBuffer = []; + this.encoder = new parser.Encoder(); + this.decoder = new parser.Decoder(); + this.autoConnect = opts.autoConnect !== false; + if (this.autoConnect) this.open(); +} + +/** + * Propagate given event to sockets and emit on `this` + * + * @api private + */ + +Manager.prototype.emitAll = function() { + this.emit.apply(this, arguments); + for (var nsp in this.nsps) { + if (has.call(this.nsps, nsp)) { + this.nsps[nsp].emit.apply(this.nsps[nsp], arguments); + } + } +}; + +/** + * Update `socket.id` of all sockets + * + * @api private + */ + +Manager.prototype.updateSocketIds = function(){ + for (var nsp in this.nsps) { + if (has.call(this.nsps, nsp)) { + this.nsps[nsp].id = this.engine.id; + } + } +}; + +/** + * Mix in `Emitter`. + */ + +Emitter(Manager.prototype); + +/** + * Sets the `reconnection` config. + * + * @param {Boolean} true/false if it should automatically reconnect + * @return {Manager} self or value + * @api public + */ + +Manager.prototype.reconnection = function(v){ + if (!arguments.length) return this._reconnection; + this._reconnection = !!v; + return this; +}; + +/** + * Sets the reconnection attempts config. + * + * @param {Number} max reconnection attempts before giving up + * @return {Manager} self or value + * @api public + */ + +Manager.prototype.reconnectionAttempts = function(v){ + if (!arguments.length) return this._reconnectionAttempts; + this._reconnectionAttempts = v; + return this; +}; + +/** + * Sets the delay between reconnections. + * + * @param {Number} delay + * @return {Manager} self or value + * @api public + */ + +Manager.prototype.reconnectionDelay = function(v){ + if (!arguments.length) return this._reconnectionDelay; + this._reconnectionDelay = v; + this.backoff && this.backoff.setMin(v); + return this; +}; + +Manager.prototype.randomizationFactor = function(v){ + if (!arguments.length) return this._randomizationFactor; + this._randomizationFactor = v; + this.backoff && this.backoff.setJitter(v); + return this; +}; + +/** + * Sets the maximum delay between reconnections. + * + * @param {Number} delay + * @return {Manager} self or value + * @api public + */ + +Manager.prototype.reconnectionDelayMax = function(v){ + if (!arguments.length) return this._reconnectionDelayMax; + this._reconnectionDelayMax = v; + this.backoff && this.backoff.setMax(v); + return this; +}; + +/** + * Sets the connection timeout. `false` to disable + * + * @return {Manager} self or value + * @api public + */ + +Manager.prototype.timeout = function(v){ + if (!arguments.length) return this._timeout; + this._timeout = v; + return this; +}; + +/** + * Starts trying to reconnect if reconnection is enabled and we have not + * started reconnecting yet + * + * @api private + */ + +Manager.prototype.maybeReconnectOnOpen = function() { + // Only try to reconnect if it's the first time we're connecting + if (!this.reconnecting && this._reconnection && this.backoff.attempts === 0) { + // keeps reconnection from firing twice for the same reconnection loop + this.reconnect(); + } +}; + + +/** + * Sets the current transport `socket`. + * + * @param {Function} optional, callback + * @return {Manager} self + * @api public + */ + +Manager.prototype.open = +Manager.prototype.connect = function(fn){ + debug('readyState %s', this.readyState); + if (~this.readyState.indexOf('open')) return this; + + debug('opening %s', this.uri); + this.engine = eio(this.uri, this.opts); + var socket = this.engine; + var self = this; + this.readyState = 'opening'; + this.skipReconnect = false; + + // emit `open` + var openSub = on(socket, 'open', function() { + self.onopen(); + fn && fn(); + }); + + // emit `connect_error` + var errorSub = on(socket, 'error', function(data){ + debug('connect_error'); + self.cleanup(); + self.readyState = 'closed'; + self.emitAll('connect_error', data); + if (fn) { + var err = new Error('Connection error'); + err.data = data; + fn(err); + } else { + // Only do this if there is no fn to handle the error + self.maybeReconnectOnOpen(); + } + }); + + // emit `connect_timeout` + if (false !== this._timeout) { + var timeout = this._timeout; + debug('connect attempt will timeout after %d', timeout); + + // set timer + var timer = setTimeout(function(){ + debug('connect attempt timed out after %d', timeout); + openSub.destroy(); + socket.close(); + socket.emit('error', 'timeout'); + self.emitAll('connect_timeout', timeout); + }, timeout); + + this.subs.push({ + destroy: function(){ + clearTimeout(timer); + } + }); + } + + this.subs.push(openSub); + this.subs.push(errorSub); + + return this; +}; + +/** + * Called upon transport open. + * + * @api private + */ + +Manager.prototype.onopen = function(){ + debug('open'); + + // clear old subs + this.cleanup(); + + // mark as open + this.readyState = 'open'; + this.emit('open'); + + // add new subs + var socket = this.engine; + this.subs.push(on(socket, 'data', bind(this, 'ondata'))); + this.subs.push(on(socket, 'ping', bind(this, 'onping'))); + this.subs.push(on(socket, 'pong', bind(this, 'onpong'))); + this.subs.push(on(socket, 'error', bind(this, 'onerror'))); + this.subs.push(on(socket, 'close', bind(this, 'onclose'))); + this.subs.push(on(this.decoder, 'decoded', bind(this, 'ondecoded'))); +}; + +/** + * Called upon a ping. + * + * @api private + */ + +Manager.prototype.onping = function(){ + this.lastPing = new Date; + this.emitAll('ping'); +}; + +/** + * Called upon a packet. + * + * @api private + */ + +Manager.prototype.onpong = function(){ + this.emitAll('pong', new Date - this.lastPing); +}; + +/** + * Called with data. + * + * @api private + */ + +Manager.prototype.ondata = function(data){ + this.decoder.add(data); +}; + +/** + * Called when parser fully decodes a packet. + * + * @api private + */ + +Manager.prototype.ondecoded = function(packet) { + this.emit('packet', packet); +}; + +/** + * Called upon socket error. + * + * @api private + */ + +Manager.prototype.onerror = function(err){ + debug('error', err); + this.emitAll('error', err); +}; + +/** + * Creates a new socket for the given `nsp`. + * + * @return {Socket} + * @api public + */ + +Manager.prototype.socket = function(nsp){ + var socket = this.nsps[nsp]; + if (!socket) { + socket = new Socket(this, nsp); + this.nsps[nsp] = socket; + var self = this; + socket.on('connecting', onConnecting); + socket.on('connect', function(){ + socket.id = self.engine.id; + }); + + if (this.autoConnect) { + // manually call here since connecting evnet is fired before listening + onConnecting(); + } + } + + function onConnecting() { + if (!~indexOf(self.connecting, socket)) { + self.connecting.push(socket); + } + } + + return socket; +}; + +/** + * Called upon a socket close. + * + * @param {Socket} socket + */ + +Manager.prototype.destroy = function(socket){ + var index = indexOf(this.connecting, socket); + if (~index) this.connecting.splice(index, 1); + if (this.connecting.length) return; + + this.close(); +}; + +/** + * Writes a packet. + * + * @param {Object} packet + * @api private + */ + +Manager.prototype.packet = function(packet){ + debug('writing packet %j', packet); + var self = this; + + if (!self.encoding) { + // encode, then write to engine with result + self.encoding = true; + this.encoder.encode(packet, function(encodedPackets) { + for (var i = 0; i < encodedPackets.length; i++) { + self.engine.write(encodedPackets[i], packet.options); + } + self.encoding = false; + self.processPacketQueue(); + }); + } else { // add packet to the queue + self.packetBuffer.push(packet); + } +}; + +/** + * If packet buffer is non-empty, begins encoding the + * next packet in line. + * + * @api private + */ + +Manager.prototype.processPacketQueue = function() { + if (this.packetBuffer.length > 0 && !this.encoding) { + var pack = this.packetBuffer.shift(); + this.packet(pack); + } +}; + +/** + * Clean up transport subscriptions and packet buffer. + * + * @api private + */ + +Manager.prototype.cleanup = function(){ + debug('cleanup'); + + var sub; + while (sub = this.subs.shift()) sub.destroy(); + + this.packetBuffer = []; + this.encoding = false; + this.lastPing = null; + + this.decoder.destroy(); +}; + +/** + * Close the current socket. + * + * @api private + */ + +Manager.prototype.close = +Manager.prototype.disconnect = function(){ + debug('disconnect'); + this.skipReconnect = true; + this.reconnecting = false; + if ('opening' == this.readyState) { + // `onclose` will not fire because + // an open event never happened + this.cleanup(); + } + this.backoff.reset(); + this.readyState = 'closed'; + if (this.engine) this.engine.close(); +}; + +/** + * Called upon engine close. + * + * @api private + */ + +Manager.prototype.onclose = function(reason){ + debug('onclose'); + + this.cleanup(); + this.backoff.reset(); + this.readyState = 'closed'; + this.emit('close', reason); + + if (this._reconnection && !this.skipReconnect) { + this.reconnect(); + } +}; + +/** + * Attempt a reconnection. + * + * @api private + */ + +Manager.prototype.reconnect = function(){ + if (this.reconnecting || this.skipReconnect) return this; + + var self = this; + + if (this.backoff.attempts >= this._reconnectionAttempts) { + debug('reconnect failed'); + this.backoff.reset(); + this.emitAll('reconnect_failed'); + this.reconnecting = false; + } else { + var delay = this.backoff.duration(); + debug('will wait %dms before reconnect attempt', delay); + + this.reconnecting = true; + var timer = setTimeout(function(){ + if (self.skipReconnect) return; + + debug('attempting reconnect'); + self.emitAll('reconnect_attempt', self.backoff.attempts); + self.emitAll('reconnecting', self.backoff.attempts); + + // check again for the case socket closed in above events + if (self.skipReconnect) return; + + self.open(function(err){ + if (err) { + debug('reconnect attempt error'); + self.reconnecting = false; + self.reconnect(); + self.emitAll('reconnect_error', err.data); + } else { + debug('reconnect success'); + self.onreconnect(); + } + }); + }, delay); + + this.subs.push({ + destroy: function(){ + clearTimeout(timer); + } + }); + } +}; + +/** + * Called upon successful reconnect. + * + * @api private + */ + +Manager.prototype.onreconnect = function(){ + var attempt = this.backoff.attempts; + this.reconnecting = false; + this.backoff.reset(); + this.updateSocketIds(); + this.emitAll('reconnect', attempt); +}; + +}).apply(this, arguments); + +},{"./on":107,"./socket":108,"backo2":110,"component-bind":111,"component-emitter":112,"debug":113,"engine.io-client":116,"indexof":143,"socket.io-parser":146}],107:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/socket.io-client/lib/on.js", module); +(function(){ + +/** + * Module exports. + */ + +module.exports = on; + +/** + * Helper for subscriptions. + * + * @param {Object|EventEmitter} obj with `Emitter` mixin or `EventEmitter` + * @param {String} event name + * @param {Function} callback + * @api public + */ + +function on(obj, ev, fn) { + obj.on(ev, fn); + return { + destroy: function(){ + obj.removeListener(ev, fn); + } + }; +} + +}).apply(this, arguments); + +},{}],108:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/socket.io-client/lib/socket.js", module); +(function(){ + +/** + * Module dependencies. + */ + +var parser = require('socket.io-parser'); +var Emitter = require('component-emitter'); +var toArray = require('to-array'); +var on = require('./on'); +var bind = require('component-bind'); +var debug = require('debug')('socket.io-client:socket'); +var hasBin = require('has-binary'); + +/** + * Module exports. + */ + +module.exports = exports = Socket; + +/** + * Internal events (blacklisted). + * These events can't be emitted by the user. + * + * @api private + */ + +var events = { + connect: 1, + connect_error: 1, + connect_timeout: 1, + connecting: 1, + disconnect: 1, + error: 1, + reconnect: 1, + reconnect_attempt: 1, + reconnect_failed: 1, + reconnect_error: 1, + reconnecting: 1, + ping: 1, + pong: 1 +}; + +/** + * Shortcut to `Emitter#emit`. + */ + +var emit = Emitter.prototype.emit; + +/** + * `Socket` constructor. + * + * @api public + */ + +function Socket(io, nsp){ + this.io = io; + this.nsp = nsp; + this.json = this; // compat + this.ids = 0; + this.acks = {}; + this.receiveBuffer = []; + this.sendBuffer = []; + this.connected = false; + this.disconnected = true; + if (this.io.autoConnect) this.open(); +} + +/** + * Mix in `Emitter`. + */ + +Emitter(Socket.prototype); + +/** + * Subscribe to open, close and packet events + * + * @api private + */ + +Socket.prototype.subEvents = function() { + if (this.subs) return; + + var io = this.io; + this.subs = [ + on(io, 'open', bind(this, 'onopen')), + on(io, 'packet', bind(this, 'onpacket')), + on(io, 'close', bind(this, 'onclose')) + ]; +}; + +/** + * "Opens" the socket. + * + * @api public + */ + +Socket.prototype.open = +Socket.prototype.connect = function(){ + if (this.connected) return this; + + this.subEvents(); + this.io.open(); // ensure open + if ('open' == this.io.readyState) this.onopen(); + this.emit('connecting'); + return this; +}; + +/** + * Sends a `message` event. + * + * @return {Socket} self + * @api public + */ + +Socket.prototype.send = function(){ + var args = toArray(arguments); + args.unshift('message'); + this.emit.apply(this, args); + return this; +}; + +/** + * Override `emit`. + * If the event is in `events`, it's emitted normally. + * + * @param {String} event name + * @return {Socket} self + * @api public + */ + +Socket.prototype.emit = function(ev){ + if (events.hasOwnProperty(ev)) { + emit.apply(this, arguments); + return this; + } + + var args = toArray(arguments); + var parserType = parser.EVENT; // default + if (hasBin(args)) { parserType = parser.BINARY_EVENT; } // binary + var packet = { type: parserType, data: args }; + + packet.options = {}; + packet.options.compress = !this.flags || false !== this.flags.compress; + + // event ack callback + if ('function' == typeof args[args.length - 1]) { + debug('emitting packet with ack id %d', this.ids); + this.acks[this.ids] = args.pop(); + packet.id = this.ids++; + } + + if (this.connected) { + this.packet(packet); + } else { + this.sendBuffer.push(packet); + } + + delete this.flags; + + return this; +}; + +/** + * Sends a packet. + * + * @param {Object} packet + * @api private + */ + +Socket.prototype.packet = function(packet){ + packet.nsp = this.nsp; + this.io.packet(packet); +}; + +/** + * Called upon engine `open`. + * + * @api private + */ + +Socket.prototype.onopen = function(){ + debug('transport is open - connecting'); + + // write connect packet if necessary + if ('/' != this.nsp) { + this.packet({ type: parser.CONNECT }); + } +}; + +/** + * Called upon engine `close`. + * + * @param {String} reason + * @api private + */ + +Socket.prototype.onclose = function(reason){ + debug('close (%s)', reason); + this.connected = false; + this.disconnected = true; + delete this.id; + this.emit('disconnect', reason); +}; + +/** + * Called with socket packet. + * + * @param {Object} packet + * @api private + */ + +Socket.prototype.onpacket = function(packet){ + if (packet.nsp != this.nsp) return; + + switch (packet.type) { + case parser.CONNECT: + this.onconnect(); + break; + + case parser.EVENT: + this.onevent(packet); + break; + + case parser.BINARY_EVENT: + this.onevent(packet); + break; + + case parser.ACK: + this.onack(packet); + break; + + case parser.BINARY_ACK: + this.onack(packet); + break; + + case parser.DISCONNECT: + this.ondisconnect(); + break; + + case parser.ERROR: + this.emit('error', packet.data); + break; + } +}; + +/** + * Called upon a server event. + * + * @param {Object} packet + * @api private + */ + +Socket.prototype.onevent = function(packet){ + var args = packet.data || []; + debug('emitting event %j', args); + + if (null != packet.id) { + debug('attaching ack callback to event'); + args.push(this.ack(packet.id)); + } + + if (this.connected) { + emit.apply(this, args); + } else { + this.receiveBuffer.push(args); + } +}; + +/** + * Produces an ack callback to emit with an event. + * + * @api private + */ + +Socket.prototype.ack = function(id){ + var self = this; + var sent = false; + return function(){ + // prevent double callbacks + if (sent) return; + sent = true; + var args = toArray(arguments); + debug('sending ack %j', args); + + var type = hasBin(args) ? parser.BINARY_ACK : parser.ACK; + self.packet({ + type: type, + id: id, + data: args + }); + }; +}; + +/** + * Called upon a server acknowlegement. + * + * @param {Object} packet + * @api private + */ + +Socket.prototype.onack = function(packet){ + var ack = this.acks[packet.id]; + if ('function' == typeof ack) { + debug('calling ack %s with %j', packet.id, packet.data); + ack.apply(this, packet.data); + delete this.acks[packet.id]; + } else { + debug('bad ack %s', packet.id); + } +}; + +/** + * Called upon server connect. + * + * @api private + */ + +Socket.prototype.onconnect = function(){ + this.connected = true; + this.disconnected = false; + this.emit('connect'); + this.emitBuffered(); +}; + +/** + * Emit buffered events (received and emitted). + * + * @api private + */ + +Socket.prototype.emitBuffered = function(){ + var i; + for (i = 0; i < this.receiveBuffer.length; i++) { + emit.apply(this, this.receiveBuffer[i]); + } + this.receiveBuffer = []; + + for (i = 0; i < this.sendBuffer.length; i++) { + this.packet(this.sendBuffer[i]); + } + this.sendBuffer = []; +}; + +/** + * Called upon server disconnect. + * + * @api private + */ + +Socket.prototype.ondisconnect = function(){ + debug('server disconnect (%s)', this.nsp); + this.destroy(); + this.onclose('io server disconnect'); +}; + +/** + * Called upon forced client/server side disconnections, + * this method ensures the manager stops tracking us and + * that reconnections don't get triggered for this. + * + * @api private. + */ + +Socket.prototype.destroy = function(){ + if (this.subs) { + // clean subscriptions to avoid reconnections + for (var i = 0; i < this.subs.length; i++) { + this.subs[i].destroy(); + } + this.subs = null; + } + + this.io.destroy(this); +}; + +/** + * Disconnects the socket manually. + * + * @return {Socket} self + * @api public + */ + +Socket.prototype.close = +Socket.prototype.disconnect = function(){ + if (this.connected) { + debug('performing disconnect (%s)', this.nsp); + this.packet({ type: parser.DISCONNECT }); + } + + // remove socket from pool + this.destroy(); + + if (this.connected) { + // fire events + this.onclose('io client disconnect'); + } + return this; +}; + +/** + * Sets the compress flag. + * + * @param {Boolean} if `true`, compresses the sending data + * @return {Socket} self + * @api public + */ + +Socket.prototype.compress = function(compress){ + this.flags = this.flags || {}; + this.flags.compress = compress; + return this; +}; + +}).apply(this, arguments); + +},{"./on":107,"component-bind":111,"component-emitter":112,"debug":113,"has-binary":141,"socket.io-parser":146,"to-array":151}],109:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/socket.io-client/lib/url.js", module); +(function(){ +(function (global){ + +/** + * Module dependencies. + */ + +var parseuri = require('parseuri'); +var debug = require('debug')('socket.io-client:url'); + +/** + * Module exports. + */ + +module.exports = url; + +/** + * URL parser. + * + * @param {String} url + * @param {Object} An object meant to mimic window.location. + * Defaults to window.location. + * @api public + */ + +function url(uri, loc){ + var obj = uri; + + // default to window.location + var loc = loc || global.location; + if (null == uri) uri = loc.protocol + '//' + loc.host; + + // relative path support + if ('string' == typeof uri) { + if ('/' == uri.charAt(0)) { + if ('/' == uri.charAt(1)) { + uri = loc.protocol + uri; + } else { + uri = loc.host + uri; + } + } + + if (!/^(https?|wss?):\/\//.test(uri)) { + debug('protocol-less url %s', uri); + if ('undefined' != typeof loc) { + uri = loc.protocol + '//' + uri; + } else { + uri = 'https://' + uri; + } + } + + // parse + debug('parse %s', uri); + obj = parseuri(uri); + } + + // make sure we treat `localhost:80` and `localhost` equally + if (!obj.port) { + if (/^(http|ws)$/.test(obj.protocol)) { + obj.port = '80'; + } + else if (/^(http|ws)s$/.test(obj.protocol)) { + obj.port = '443'; + } + } + + obj.path = obj.path || '/'; + + var ipv6 = obj.host.indexOf(':') !== -1; + var host = ipv6 ? '[' + obj.host + ']' : obj.host; + + // define unique id + obj.id = obj.protocol + '://' + host + ':' + obj.port; + // define href + obj.href = obj.protocol + '://' + host + (loc && loc.port == obj.port ? '' : (':' + obj.port)); + + return obj; +} + +}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) + +}).apply(this, arguments); + +},{"debug":113,"parseuri":144}],110:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/socket.io-client/node_modules/backo2/index.js", module); +(function(){ + +/** + * Expose `Backoff`. + */ + +module.exports = Backoff; + +/** + * Initialize backoff timer with `opts`. + * + * - `min` initial timeout in milliseconds [100] + * - `max` max timeout [10000] + * - `jitter` [0] + * - `factor` [2] + * + * @param {Object} opts + * @api public + */ + +function Backoff(opts) { + opts = opts || {}; + this.ms = opts.min || 100; + this.max = opts.max || 10000; + this.factor = opts.factor || 2; + this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0; + this.attempts = 0; +} + +/** + * Return the backoff duration. + * + * @return {Number} + * @api public + */ + +Backoff.prototype.duration = function(){ + var ms = this.ms * Math.pow(this.factor, this.attempts++); + if (this.jitter) { + var rand = Math.random(); + var deviation = Math.floor(rand * this.jitter * ms); + ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation; + } + return Math.min(ms, this.max) | 0; +}; + +/** + * Reset the number of attempts. + * + * @api public + */ + +Backoff.prototype.reset = function(){ + this.attempts = 0; +}; + +/** + * Set the minimum duration + * + * @api public + */ + +Backoff.prototype.setMin = function(min){ + this.ms = min; +}; + +/** + * Set the maximum duration + * + * @api public + */ + +Backoff.prototype.setMax = function(max){ + this.max = max; +}; + +/** + * Set the jitter + * + * @api public + */ + +Backoff.prototype.setJitter = function(jitter){ + this.jitter = jitter; +}; + + +}).apply(this, arguments); + +},{}],111:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/socket.io-client/node_modules/component-bind/index.js", module); +(function(){ +/** + * Slice reference. + */ + +var slice = [].slice; + +/** + * Bind `obj` to `fn`. + * + * @param {Object} obj + * @param {Function|String} fn or string + * @return {Function} + * @api public + */ + +module.exports = function(obj, fn){ + if ('string' == typeof fn) fn = obj[fn]; + if ('function' != typeof fn) throw new Error('bind() requires a function'); + var args = slice.call(arguments, 2); + return function(){ + return fn.apply(obj, args.concat(slice.call(arguments))); + } +}; + +}).apply(this, arguments); + +},{}],112:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/socket.io-client/node_modules/component-emitter/index.js", module); +(function(){ + +/** + * Expose `Emitter`. + */ + +module.exports = Emitter; + +/** + * Initialize a new `Emitter`. + * + * @api public + */ + +function Emitter(obj) { + if (obj) return mixin(obj); +}; + +/** + * Mixin the emitter properties. + * + * @param {Object} obj + * @return {Object} + * @api private + */ + +function mixin(obj) { + for (var key in Emitter.prototype) { + obj[key] = Emitter.prototype[key]; + } + return obj; +} + +/** + * Listen on the given `event` with `fn`. + * + * @param {String} event + * @param {Function} fn + * @return {Emitter} + * @api public + */ + +Emitter.prototype.on = +Emitter.prototype.addEventListener = function(event, fn){ + this._callbacks = this._callbacks || {}; + (this._callbacks['$' + event] = this._callbacks['$' + event] || []) + .push(fn); + return this; +}; + +/** + * Adds an `event` listener that will be invoked a single + * time then automatically removed. + * + * @param {String} event + * @param {Function} fn + * @return {Emitter} + * @api public + */ + +Emitter.prototype.once = function(event, fn){ + function on() { + this.off(event, on); + fn.apply(this, arguments); + } + + on.fn = fn; + this.on(event, on); + return this; +}; + +/** + * Remove the given callback for `event` or all + * registered callbacks. + * + * @param {String} event + * @param {Function} fn + * @return {Emitter} + * @api public + */ + +Emitter.prototype.off = +Emitter.prototype.removeListener = +Emitter.prototype.removeAllListeners = +Emitter.prototype.removeEventListener = function(event, fn){ + this._callbacks = this._callbacks || {}; + + // all + if (0 == arguments.length) { + this._callbacks = {}; + return this; + } + + // specific event + var callbacks = this._callbacks['$' + event]; + if (!callbacks) return this; + + // remove all handlers + if (1 == arguments.length) { + delete this._callbacks['$' + event]; + return this; + } + + // remove specific handler + var cb; + for (var i = 0; i < callbacks.length; i++) { + cb = callbacks[i]; + if (cb === fn || cb.fn === fn) { + callbacks.splice(i, 1); + break; + } + } + return this; +}; + +/** + * Emit `event` with the given args. + * + * @param {String} event + * @param {Mixed} ... + * @return {Emitter} + */ + +Emitter.prototype.emit = function(event){ + this._callbacks = this._callbacks || {}; + var args = [].slice.call(arguments, 1) + , callbacks = this._callbacks['$' + event]; + + if (callbacks) { + callbacks = callbacks.slice(0); + for (var i = 0, len = callbacks.length; i < len; ++i) { + callbacks[i].apply(this, args); + } + } + + return this; +}; + +/** + * Return array of callbacks for `event`. + * + * @param {String} event + * @return {Array} + * @api public + */ + +Emitter.prototype.listeners = function(event){ + this._callbacks = this._callbacks || {}; + return this._callbacks['$' + event] || []; +}; + +/** + * Check if this emitter has `event` handlers. + * + * @param {String} event + * @return {Boolean} + * @api public + */ + +Emitter.prototype.hasListeners = function(event){ + return !! this.listeners(event).length; +}; + +}).apply(this, arguments); + +},{}],113:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/socket.io-client/node_modules/debug/browser.js", module); +(function(){ + +/** + * This is the web browser implementation of `debug()`. + * + * Expose `debug()` as the module. + */ + +exports = module.exports = require('./debug'); +exports.log = log; +exports.formatArgs = formatArgs; +exports.save = save; +exports.load = load; +exports.useColors = useColors; +exports.storage = 'undefined' != typeof chrome + && 'undefined' != typeof chrome.storage + ? chrome.storage.local + : localstorage(); + +/** + * Colors. + */ + +exports.colors = [ + 'lightseagreen', + 'forestgreen', + 'goldenrod', + 'dodgerblue', + 'darkorchid', + 'crimson' +]; + +/** + * Currently only WebKit-based Web Inspectors, Firefox >= v31, + * and the Firebug extension (any Firefox version) are known + * to support "%c" CSS customizations. + * + * TODO: add a `localStorage` variable to explicitly enable/disable colors + */ + +function useColors() { + // is webkit? http://stackoverflow.com/a/16459606/376773 + return ('WebkitAppearance' in document.documentElement.style) || + // is firebug? http://stackoverflow.com/a/398120/376773 + (window.console && (console.firebug || (console.exception && console.table))) || + // is firefox >= v31? + // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages + (navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31); +} + +/** + * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default. + */ + +exports.formatters.j = function(v) { + return JSON.stringify(v); +}; + + +/** + * Colorize log arguments if enabled. + * + * @api public + */ + +function formatArgs() { + var args = arguments; + var useColors = this.useColors; + + args[0] = (useColors ? '%c' : '') + + this.namespace + + (useColors ? ' %c' : ' ') + + args[0] + + (useColors ? '%c ' : ' ') + + '+' + exports.humanize(this.diff); + + if (!useColors) return args; + + var c = 'color: ' + this.color; + args = [args[0], c, 'color: inherit'].concat(Array.prototype.slice.call(args, 1)); + + // the final "%c" is somewhat tricky, because there could be other + // arguments passed either before or after the %c, so we need to + // figure out the correct index to insert the CSS into + var index = 0; + var lastC = 0; + args[0].replace(/%[a-z%]/g, function(match) { + if ('%%' === match) return; + index++; + if ('%c' === match) { + // we only are interested in the *last* %c + // (the user may have provided their own) + lastC = index; + } + }); + + args.splice(lastC, 0, c); + return args; +} + +/** + * Invokes `console.log()` when available. + * No-op when `console.log` is not a "function". + * + * @api public + */ + +function log() { + // this hackery is required for IE8/9, where + // the `console.log` function doesn't have 'apply' + return 'object' === typeof console + && console.log + && Function.prototype.apply.call(console.log, console, arguments); +} + +/** + * Save `namespaces`. + * + * @param {String} namespaces + * @api private + */ + +function save(namespaces) { + try { + if (null == namespaces) { + exports.storage.removeItem('debug'); + } else { + exports.storage.debug = namespaces; + } + } catch(e) {} +} + +/** + * Load `namespaces`. + * + * @return {String} returns the previously persisted debug modes + * @api private + */ + +function load() { + var r; + try { + r = exports.storage.debug; + } catch(e) {} + return r; +} + +/** + * Enable namespaces listed in `localStorage.debug` initially. + */ + +exports.enable(load()); + +/** + * Localstorage attempts to return the localstorage. + * + * This is necessary because safari throws + * when a user disables cookies/localstorage + * and you attempt to access it. + * + * @return {LocalStorage} + * @api private + */ + +function localstorage(){ + try { + return window.localStorage; + } catch (e) {} +} + +}).apply(this, arguments); + +},{"./debug":114}],114:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/socket.io-client/node_modules/debug/debug.js", module); +(function(){ + +/** + * This is the common logic for both the Node.js and web browser + * implementations of `debug()`. + * + * Expose `debug()` as the module. + */ + +exports = module.exports = debug; +exports.coerce = coerce; +exports.disable = disable; +exports.enable = enable; +exports.enabled = enabled; +exports.humanize = require('ms'); + +/** + * The currently active debug mode names, and names to skip. + */ + +exports.names = []; +exports.skips = []; + +/** + * Map of special "%n" handling functions, for the debug "format" argument. + * + * Valid key names are a single, lowercased letter, i.e. "n". + */ + +exports.formatters = {}; + +/** + * Previously assigned color. + */ + +var prevColor = 0; + +/** + * Previous log timestamp. + */ + +var prevTime; + +/** + * Select a color. + * + * @return {Number} + * @api private + */ + +function selectColor() { + return exports.colors[prevColor++ % exports.colors.length]; +} + +/** + * Create a debugger with the given `namespace`. + * + * @param {String} namespace + * @return {Function} + * @api public + */ + +function debug(namespace) { + + // define the `disabled` version + function disabled() { + } + disabled.enabled = false; + + // define the `enabled` version + function enabled() { + + var self = enabled; + + // set `diff` timestamp + var curr = +new Date(); + var ms = curr - (prevTime || curr); + self.diff = ms; + self.prev = prevTime; + self.curr = curr; + prevTime = curr; + + // add the `color` if not set + if (null == self.useColors) self.useColors = exports.useColors(); + if (null == self.color && self.useColors) self.color = selectColor(); + + var args = Array.prototype.slice.call(arguments); + + args[0] = exports.coerce(args[0]); + + if ('string' !== typeof args[0]) { + // anything else let's inspect with %o + args = ['%o'].concat(args); + } + + // apply any `formatters` transformations + var index = 0; + args[0] = args[0].replace(/%([a-z%])/g, function(match, format) { + // if we encounter an escaped % then don't increase the array index + if (match === '%%') return match; + index++; + var formatter = exports.formatters[format]; + if ('function' === typeof formatter) { + var val = args[index]; + match = formatter.call(self, val); + + // now we need to remove `args[index]` since it's inlined in the `format` + args.splice(index, 1); + index--; + } + return match; + }); + + if ('function' === typeof exports.formatArgs) { + args = exports.formatArgs.apply(self, args); + } + var logFn = enabled.log || exports.log || console.log.bind(console); + logFn.apply(self, args); + } + enabled.enabled = true; + + var fn = exports.enabled(namespace) ? enabled : disabled; + + fn.namespace = namespace; + + return fn; +} + +/** + * Enables a debug mode by namespaces. This can include modes + * separated by a colon and wildcards. + * + * @param {String} namespaces + * @api public + */ + +function enable(namespaces) { + exports.save(namespaces); + + var split = (namespaces || '').split(/[\s,]+/); + var len = split.length; + + for (var i = 0; i < len; i++) { + if (!split[i]) continue; // ignore empty strings + namespaces = split[i].replace(/\*/g, '.*?'); + if (namespaces[0] === '-') { + exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$')); + } else { + exports.names.push(new RegExp('^' + namespaces + '$')); + } + } +} + +/** + * Disable debug output. + * + * @api public + */ + +function disable() { + exports.enable(''); +} + +/** + * Returns true if the given mode name is enabled, false otherwise. + * + * @param {String} name + * @return {Boolean} + * @api public + */ + +function enabled(name) { + var i, len; + for (i = 0, len = exports.skips.length; i < len; i++) { + if (exports.skips[i].test(name)) { + return false; + } + } + for (i = 0, len = exports.names.length; i < len; i++) { + if (exports.names[i].test(name)) { + return true; + } + } + return false; +} + +/** + * Coerce `val`. + * + * @param {Mixed} val + * @return {Mixed} + * @api private + */ + +function coerce(val) { + if (val instanceof Error) return val.stack || val.message; + return val; +} + +}).apply(this, arguments); + +},{"ms":115}],115:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/socket.io-client/node_modules/debug/node_modules/ms/index.js", module); +(function(){ +/** + * Helpers. + */ + +var s = 1000; +var m = s * 60; +var h = m * 60; +var d = h * 24; +var y = d * 365.25; + +/** + * Parse or format the given `val`. + * + * Options: + * + * - `long` verbose formatting [false] + * + * @param {String|Number} val + * @param {Object} options + * @return {String|Number} + * @api public + */ + +module.exports = function(val, options){ + options = options || {}; + if ('string' == typeof val) return parse(val); + return options.long + ? long(val) + : short(val); +}; + +/** + * Parse the given `str` and return milliseconds. + * + * @param {String} str + * @return {Number} + * @api private + */ + +function parse(str) { + str = '' + str; + if (str.length > 10000) 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; + } +} + +/** + * Short format for `ms`. + * + * @param {Number} ms + * @return {String} + * @api private + */ + +function short(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'; +} + +/** + * Long format for `ms`. + * + * @param {Number} ms + * @return {String} + * @api private + */ + +function long(ms) { + return plural(ms, d, 'day') + || plural(ms, h, 'hour') + || plural(ms, m, 'minute') + || plural(ms, s, 'second') + || ms + ' ms'; +} + +/** + * Pluralization helper. + */ + +function plural(ms, n, name) { + if (ms < n) return; + if (ms < n * 1.5) return Math.floor(ms / n) + ' ' + name; + return Math.ceil(ms / n) + ' ' + name + 's'; +} + +}).apply(this, arguments); + +},{}],116:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/socket.io-client/node_modules/engine.io-client/index.js", module); +(function(){ + +module.exports = require('./lib/'); + +}).apply(this, arguments); + +},{"./lib/":117}],117:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/socket.io-client/node_modules/engine.io-client/lib/index.js", module); +(function(){ + +module.exports = require('./socket'); + +/** + * Exports parser + * + * @api public + * + */ +module.exports.parser = require('engine.io-parser'); + +}).apply(this, arguments); + +},{"./socket":118,"engine.io-parser":128}],118:[function(require,module,exports){ +_hmr["websocket:null"].initModule("node_modules/browserify-hmr/node_modules/socket.io-client/node_modules/engine.io-client/lib/socket.js", module); +(function(){ +(function (global){ +/** + * Module dependencies. + */ + +var transports = require('./transports'); +var Emitter = require('component-emitter'); +var debug = require('debug')('engine.io-client:socket'); +var index = require('indexof'); +var parser = require('engine.io-parser'); +var parseuri = require('parseuri'); +var parsejson = require('parsejson'); +var parseqs = require('parseqs'); + +/** + * Module exports. + */ + +module.exports = Socket; + +/** + * Noop function. + * + * @api private + */ + +function noop(){} + +/** + * Socket constructor. + * + * @param {String|Object} uri or options + * @param {Object} options + * @api public + */ + +function Socket(uri, opts){ + if (!(this instanceof Socket)) return new Socket(uri, opts); + + opts = opts || {}; + + if (uri && 'object' == typeof uri) { + opts = uri; + uri = null; + } + + if (uri) { + uri = parseuri(uri); + opts.hostname = uri.host; + opts.secure = uri.protocol == 'https' || uri.protocol == 'wss'; + opts.port = uri.port; + if (uri.query) opts.query = uri.query; + } else if (opts.host) { + opts.hostname = parseuri(opts.host).host; + } + + this.secure = null != opts.secure ? opts.secure : + (global.location && 'https:' == location.protocol); + + if (opts.hostname && !opts.port) { + // if no port is specified manually, use the protocol default + opts.port = this.secure ? '443' : '80'; + } + + this.agent = opts.agent || false; + this.hostname = opts.hostname || + (global.location ? location.hostname : 'localhost'); + this.port = opts.port || (global.location && location.port ? + location.port : + (this.secure ? 443 : 80)); + this.query = opts.query || {}; + if ('string' == typeof this.query) this.query = parseqs.decode(this.query); + this.upgrade = false !== opts.upgrade; + this.path = (opts.path || '/engine.io').replace(/\/$/, '') + '/'; + this.forceJSONP = !!opts.forceJSONP; + this.jsonp = false !== opts.jsonp; + this.forceBase64 = !!opts.forceBase64; + this.enablesXDR = !!opts.enablesXDR; + this.timestampParam = opts.timestampParam || 't'; + this.timestampRequests = opts.timestampRequests; + this.transports = opts.transports || ['polling', 'websocket']; + this.readyState = ''; + this.writeBuffer = []; + this.policyPort = opts.policyPort || 843; + this.rememberUpgrade = opts.rememberUpgrade || false; + this.binaryType = null; + this.onlyBinaryUpgrades = opts.onlyBinaryUpgrades; + this.perMessageDeflate = false !== opts.perMessageDeflate ? (opts.perMessageDeflate || {}) : false; + + if (true === this.perMessageDeflate) this.perMessageDeflate = {}; + if (this.perMessageDeflate && null == this.perMessageDeflate.threshold) { + this.perMessageDeflate.threshold = 1024; + } + + // SSL options for Node.js client + this.pfx = opts.pfx || null; + this.key = opts.key || null; + this.passphrase = opts.passphrase || null; + this.cert = opts.cert || null; + this.ca = opts.ca || null; + this.ciphers = opts.ciphers || null; + this.rejectUnauthorized = opts.rejectUnauthorized === undefined ? null : opts.rejectUnauthorized; + + // other options for Node.js client + var freeGlobal = typeof global == 'object' && global; + if (freeGlobal.global === freeGlobal) { + if (opts.extraHeaders && Object.keys(opts.extraHeaders).length > 0) { + this.extraHeaders = opts.extraHeaders; + } + } + + this.open(); +} + +Socket.priorWebsocketSuccess = false; + +/** + * Mix in `Emitter`. + */ + +Emitter(Socket.prototype); + +/** + * Protocol version. + * + * @api public + */ + +Socket.protocol = parser.protocol; // this is an int + +/** + * Expose deps for legacy compatibility + * and standalone browser access. + */ + +Socket.Socket = Socket; +Socket.Transport = require('./transport'); +Socket.transports = require('./transports'); +Socket.parser = require('engine.io-parser'); + +/** + * Creates transport of the given type. + * + * @param {String} transport name + * @return {Transport} + * @api private + */ + +Socket.prototype.createTransport = function (name) { + debug('creating transport "%s"', name); + var query = clone(this.query); + + // append engine.io protocol identifier + query.EIO = parser.protocol; + + // transport name + query.transport = name; + + // session id if we already have one + if (this.id) query.sid = this.id; + + var transport = new transports[name]({ + agent: this.agent, + hostname: this.hostname, + port: this.port, + secure: this.secure, + path: this.path, + query: query, + forceJSONP: this.forceJSONP, + jsonp: this.jsonp, + forceBase64: this.forceBase64, + enablesXDR: this.enablesXDR, + timestampRequests: this.timestampRequests, + timestampParam: this.timestampParam, + policyPort: this.policyPort, + socket: this, + pfx: this.pfx, + key: this.key, + passphrase: this.passphrase, + cert: this.cert, + ca: this.ca, + ciphers: this.ciphers, + rejectUnauthorized: this.rejectUnauthorized, + perMessageDeflate: this.perMessageDeflate, + extraHeaders: this.extraHeaders + }); + + return transport; +}; + +function clone (obj) { + var o = {}; + for (var i in obj) { + if (obj.hasOwnProperty(i)) { + o[i] = obj[i]; + } + } + return o; +} + +/** + * Initializes transport to use and starts probe. + * + * @api private + */ +Socket.prototype.open = function () { + var transport; + if (this.rememberUpgrade && Socket.priorWebsocketSuccess && this.transports.indexOf('websocket') != -1) { + transport = 'websocket'; + } else if (0 === this.transports.length) { + // Emit error on next tick so it can be listened to + var self = this; + setTimeout(function() { + self.emit('error', 'No transports available'); + }, 0); + return; + } else { + transport = this.transports[0]; + } + this.readyState = 'opening'; + + // Retry with the next transport if the transport is disabled (jsonp: false) + try { + transport = this.createTransport(transport); + } catch (e) { + this.transports.shift(); + this.open(); + return; + } + + transport.open(); + this.setTransport(transport); +}; + +/** + * Sets the current transport. Disables the existing one (if any). + * + * @api private + */ + +Socket.prototype.setTransport = function(transport){ + debug('setting transport %s', transport.name); + var self = this; + + if (this.transport) { + debug('clearing existing transport %s', this.transport.name); + this.transport.removeAllListeners(); + } + + // set up transport + this.transport = transport; + + // set up transport listeners + transport + .on('drain', function(){ + self.onDrain(); + }) + .on('packet', function(packet){ + self.onPacket(packet); + }) + .on('error', function(e){ + self.onError(e); + }) + .on('close', function(){ + self.onClose('transport close'); + }); +}; + +/** + * Probes a transport. + * + * @param {String} transport name + * @api private + */ + +Socket.prototype.probe = function (name) { + debug('probing transport "%s"', name); + var transport = this.createTransport(name, { probe: 1 }) + , failed = false + , self = this; + + Socket.priorWebsocketSuccess = false; + + function onTransportOpen(){ + if (self.onlyBinaryUpgrades) { + var upgradeLosesBinary = !this.supportsBinary && self.transport.supportsBinary; + failed = failed || upgradeLosesBinary; + } + if (failed) return; + + debug('probe transport "%s" opened', name); + transport.send([{ type: 'ping', data: 'probe' }]); + transport.once('packet', function (msg) { + if (failed) return; + if ('pong' == msg.type && 'probe' == msg.data) { + debug('probe transport "%s" pong', name); + self.upgrading = true; + self.emit('upgrading', transport); + if (!transport) return; + Socket.priorWebsocketSuccess = 'websocket' == transport.name; + + debug('pausing current transport "%s"', self.transport.name); + self.transport.pause(function () { + if (failed) return; + if ('closed' == self.readyState) return; + debug('changing transport and sending upgrade packet'); + + cleanup(); + + self.setTransport(transport); + transport.send([{ type: 'upgrade' }]); + self.emit('upgrade', transport); + transport = null; + self.upgrading = false; + self.flush(); + }); + } else { + debug('probe transport "%s" failed', name); + var err = new Error('probe error'); + err.transport = transport.name; + self.emit('upgradeError', err); + } + }); + } + + function freezeTransport() { + if (failed) return; + + // Any callback called by transport should be ignored since now + failed = true; + + cleanup(); + + transport.close(); + transport = null; + } + + //Handle any error that happens while probing + function onerror(err) { + var error = new Error('probe error: ' + err); + error.transport = transport.name; + + freezeTransport(); + + debug('probe transport "%s" failed because of error: %s', name, err); + + self.emit('upgradeError', error); + } + + function onTransportClose(){ + onerror("transport closed"); + } + + //When the socket is closed while we're probing + function onclose(){ + onerror("socket closed"); + } + + //When the socket is upgraded while we're probing + function onupgrade(to){ + if (transport && to.name != transport.name) { + debug('"%s" works - aborting "%s"', to.name, transport.name); + freezeTransport(); + } + } + + //Remove all listeners on the transport and on self + function cleanup(){ + transport.removeListener('open', onTransportOpen); + transport.removeListener('error', onerror); + transport.removeListener('close', onTransportClose); + self.removeListener('close', onclose); + self.removeListener('upgrading', onupgrade); + } + + transport.once('open', onTransportOpen); + transport.once('error', onerror); + transport.once('close', onTransportClose); + + this.once('close', onclose); + this.once('upgrading', onupgrade); + + transport.open(); + +}; + +/** + * Called when connection is deemed open. + * + * @api public + */ + +Socket.prototype.onOpen = function () { + debug('socket open'); + this.readyState = 'open'; + Socket.priorWebsocketSuccess = 'websocket' == this.transport.name; + this.emit('open'); + this.flush(); + + // we check for `readyState` in case an `open` + // listener already closed the socket + if ('open' == this.readyState && this.upgrade && this.transport.pause) { + debug('starting upgrade probes'); + for (var i = 0, l = this.upgrades.length; i < l; i++) { + this.probe(this.upgrades[i]); + } + } +}; + +/** + * Handles a packet. + * + * @api private + */ + +Socket.prototype.onPacket = function (packet) { + if ('opening' == this.readyState || 'open' == this.readyState) { + debug('socket receive: type "%s", data "%s"', packet.type, packet.data); + + this.emit('packet', packet); + + // Socket is live - any packet counts + this.emit('heartbeat'); + + switch (packet.type) { + case 'open': + this.onHandshake(parsejson(packet.data)); + break; + + case 'pong': + this.setPing(); + this.emit('pong'); + break; + + case 'error': + var err = new Error('server error'); + err.code = packet.data; + this.onError(err); + break; + + case 'message': + this.emit('data', packet.data); + this.emit('message', packet.data); + break; + } + } else { + debug('packet received with socket readyState "%s"', this.readyState); + } +}; + +/** + * Called upon handshake completion. + * + * @param {Object} handshake obj + * @api private + */ + +Socket.prototype.onHandshake = function (data) { + this.emit('handshake', data); + this.id = data.sid; + this.transport.query.sid = data.sid; + this.upgrades = this.filterUpgrades(data.upgrades); + this.pingInterval = data.pingInterval; + this.pingTimeout = data.pingTimeout; + this.onOpen(); + // In case open handler closes socket + if ('closed' == this.readyState) return; + this.setPing(); + + // Prolong liveness of socket on heartbeat + this.removeListener('heartbeat', this.onHeartbeat); + this.on('heartbeat', this.onHeartbeat); +}; + +/** + * Resets ping timeout. + * + * @api private + */ + +Socket.prototype.onHeartbeat = function (timeout) { + clearTimeout(this.pingTimeoutTimer); + var self = this; + self.pingTimeoutTimer = setTimeout(function () { + if ('closed' == self.readyState) return; + self.onClose('ping timeout'); + }, timeout || (self.pingInterval + self.pingTimeout)); +}; + +/** + * Pings server every `this.pingInterval` and expects response + * within `this.pingTimeout` or closes connection. + * + * @api private + */ + +Socket.prototype.setPing = function () { + var self = this; + clearTimeout(self.pingIntervalTimer); + self.pingIntervalTimer = setTimeout(function () { + debug('writing ping packet - expecting pong within %sms', self.pingTimeout); + self.ping(); + self.onHeartbeat(self.pingTimeout); + }, self.pingInterval); +}; + +/** +* Sends a ping packet. +* +* @api private +*/ + +Socket.prototype.ping = function () { + var self = this; + this.sendPacket('ping', function(){ + self.emit('ping'); + }); +}; + +/** + * Called on `drain` event + * + * @api private + */ + +Socket.prototype.onDrain = function() { + this.writeBuffer.splice(0, this.prevBufferLen); + + // setting prevBufferLen = 0 is very important + // for example, when upgrading, upgrade packet is sent over, + // and a nonzero prevBufferLen could cause problems on `drain` + this.prevBufferLen = 0; + + if (0 === this.writeBuffer.length) { + this.emit('drain'); + } else { + this.flush(); + } +}; + +/** + * Flush write buffers. + * + * @api private + */ + +Socket.prototype.flush = function () { + if ('closed' != this.readyState && this.transport.writable && + !this.upgrading && this.writeBuffer.length) { + debug('flushing %d packets in socket', this.writeBuffer.length); + this.transport.send(this.writeBuffer); + // keep track of current length of writeBuffer + // splice writeBuffer and callbackBuffer on `drain` + this.prevBufferLen = this.writeBuffer.length; + this.emit('flush'); + } +}; + +/** + * Sends a message. + * + * @param {String} message. + * @param {Function} callback function. + * @param {Object} options. + * @return {Socket} for chaining. + * @api public + */ + +Socket.prototype.write = +Socket.prototype.send = function (msg, options, fn) { + this.sendPacket('message', msg, options, fn); + return this; +}; + +/** + * Sends a packet. + * + * @param {String} packet type. + * @param {String} data. + * @param {Object} options. + * @param {Function} callback function. + * @api private + */ + +Socket.prototype.sendPacket = function (type, data, options, fn) { + if('function' == typeof data) { + fn = data; + data = undefined; + } + + if ('function' == typeof options) { + fn = options; + options = null; + } + + if ('closing' == this.readyState || 'closed' == this.readyState) { + return; + } + + options = options || {}; + options.compress = false !== options.compress; + + var packet = { + type: type, + data: data, + options: options + }; + this.emit('packetCreate', packet); + this.writeBuffer.push(packet); + if (fn) this.once('flush', fn); + this.flush(); +}; + +/** + * Closes the connection. + * + * @api private + */ + +Socket.prototype.close = function () { + if ('opening' == this.readyState || 'open' == this.readyState) { + this.readyState = 'closing'; + + var self = this; + + if (this.writeBuffer.length) { + this.once('drain', function() { + if (this.upgrading) { + waitForUpgrade(); + } else { + close(); + } + }); + } else if (this.upgrading) { + waitForUpgrade(); + } else { + close(); + } + } + + function close() { + self.onClose('forced close'); + debug('socket closing - telling transport to close'); + self.transport.close(); + } + + function cleanupAndClose() { + self.removeListener('upgrade', cleanupAndClose); + self.removeListener('upgradeError', cleanupAndClose); + close(); + } + + function waitForUpgrade() { + // wait for upgrade to finish since we can't send packets while pausing a transport + self.once('upgrade', cleanupAndClose); + self.once('upgradeError', cleanupAndClose); + } + + return this; +}; + +/** + * Called upon transport error + * + * @api private + */ + +Socket.prototype.onError = function (err) { + debug('socket error %j', err); + Socket.priorWebsocketSuccess = false; + this.emit('error', err); + this.onClose('transport error', err); +}; + +/** + * Called upon transport close. + * + * @api private + */ + +Socket.prototype.onClose = function (reason, desc) { + if ('opening' == this.readyState || 'open' == this.readyState || 'closing' == this.readyState) { + debug('socket close with reason: "%s"', reason); + var self = this; + + // clear timers + clearTimeout(this.pingIntervalTimer); + clearTimeout(this.pingTimeoutTimer); + + // stop event from firing again for transport + this.transport.removeAllListeners('close'); + + // ensure transport won't stay open + this.transport.close(); + + // ignore further transport communication + this.transport.removeAllListeners(); + + // set ready state + this.readyState = 'closed'; + + // clear session id + this.id = null; + + // emit close event + this.emit('close', reason, desc); + + // clean buffers after, so users can still + // grab the buffers on `close` event + self.writeBuffer = []; + self.prevBufferLen = 0; + } +}; + +/** + * Filters upgrades, returning only those matching client transports. + * + * @param {Array} server upgrades + * @api private + * + */ + +Socket.prototype.filterUpgrades = function (upgrades) { + var filteredUpgrades = []; + for (var i = 0, j = upgrades.length; i