;(function(factory){if(typeof define==="function"&&define.amd){define(["jquery"],function(jQuery){return factory(jQuery,window);});}else if(typeof module==="object"&&module.exports){module.exports=factory(require("jquery"),window);}else{factory(jQuery,window);}})(function(jQuery,window){"use strict";jQuery.migrateVersion="3.1.0";function compareVersions(v1,v2){var rVersionParts=/^(\d+)\.(\d+)\.(\d+)/,v1p=rVersionParts.exec(v1)||[],v2p=rVersionParts.exec(v2)||[];for(var i=1;i<=3;i++){if(+v1p[i]>+v2p[i]){return 1;}
if(+v1p[i]<+v2p[i]){return-1;}}
return 0;}
function jQueryVersionSince(version){return compareVersions(jQuery.fn.jquery,version)>=0;}
(function(){if(!window.console||!window.console.log){return;}
if(!jQuery||!jQueryVersionSince("3.0.0")){window.console.log("JQMIGRATE: jQuery 3.0.0+ REQUIRED");}
if(jQuery.migrateWarnings){window.console.log("JQMIGRATE: Migrate plugin loaded multiple times");}
window.console.log("JQMIGRATE: Migrate is installed"+
(jQuery.migrateMute?"":" with logging active")+", version "+jQuery.migrateVersion);})();var warnedAbout={};jQuery.migrateWarnings=[];if(jQuery.migrateTrace===undefined){jQuery.migrateTrace=true;}
jQuery.migrateReset=function(){warnedAbout={};jQuery.migrateWarnings.length=0;};function migrateWarn(msg){var console=window.console;if(!warnedAbout[msg]){warnedAbout[msg]=true;jQuery.migrateWarnings.push(msg);if(console&&console.warn&&!jQuery.migrateMute){console.warn("JQMIGRATE: "+msg);if(jQuery.migrateTrace&&console.trace){console.trace();}}}}
function migrateWarnProp(obj,prop,value,msg){Object.defineProperty(obj,prop,{configurable:true,enumerable:true,get:function(){migrateWarn(msg);return value;},set:function(newValue){migrateWarn(msg);value=newValue;}});}
function migrateWarnFunc(obj,prop,newFunc,msg){obj[prop]=function(){migrateWarn(msg);return newFunc.apply(this,arguments);};}
if(window.document.compatMode==="BackCompat"){migrateWarn("jQuery is not compatible with Quirks Mode");}
var oldInit=jQuery.fn.init,oldIsNumeric=jQuery.isNumeric,oldFind=jQuery.find,rattrHashTest=/\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/,rattrHashGlob=/\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/g;jQuery.fn.init=function(arg1){var args=Array.prototype.slice.call(arguments);if(typeof arg1==="string"&&arg1==="#"){migrateWarn("jQuery( '#' ) is not a valid selector");args[0]=[];}
return oldInit.apply(this,args);};jQuery.fn.init.prototype=jQuery.fn;jQuery.find=function(selector){var args=Array.prototype.slice.call(arguments);if(typeof selector==="string"&&rattrHashTest.test(selector)){try{window.document.querySelector(selector);}catch(err1){selector=selector.replace(rattrHashGlob,function(_,attr,op,value){return"["+attr+op+"\""+value+"\"]";});try{window.document.querySelector(selector);migrateWarn("Attribute selector with '#' must be quoted: "+args[0]);args[0]=selector;}catch(err2){migrateWarn("Attribute selector with '#' was not fixed: "+args[0]);}}}
return oldFind.apply(this,args);};var findProp;for(findProp in oldFind){if(Object.prototype.hasOwnProperty.call(oldFind,findProp)){jQuery.find[findProp]=oldFind[findProp];}}
jQuery.fn.size=function(){migrateWarn("jQuery.fn.size() is deprecated and removed; use the .length property");return this.length;};jQuery.parseJSON=function(){migrateWarn("jQuery.parseJSON is deprecated; use JSON.parse");return JSON.parse.apply(null,arguments);};jQuery.isNumeric=function(val){function isNumeric2(obj){var realStringObj=obj&&obj.toString();return!jQuery.isArray(obj)&&(realStringObj-parseFloat(realStringObj)+1)>=0;}
var newValue=oldIsNumeric(val),oldValue=isNumeric2(val);if(newValue!==oldValue){migrateWarn("jQuery.isNumeric() should not be called on constructed objects");}
return oldValue;};if(jQueryVersionSince("3.3.0")){migrateWarnFunc(jQuery,"isWindow",function(obj){return obj!=null&&obj===obj.window;},"jQuery.isWindow() is deprecated");}
migrateWarnFunc(jQuery,"holdReady",jQuery.holdReady,"jQuery.holdReady is deprecated");migrateWarnFunc(jQuery,"unique",jQuery.uniqueSort,"jQuery.unique is deprecated; use jQuery.uniqueSort");migrateWarnProp(jQuery.expr,"filters",jQuery.expr.pseudos,"jQuery.expr.filters is deprecated; use jQuery.expr.pseudos");migrateWarnProp(jQuery.expr,":",jQuery.expr.pseudos,"jQuery.expr[':'] is deprecated; use jQuery.expr.pseudos");if(jQueryVersionSince("3.2.0")){migrateWarnFunc(jQuery,"nodeName",jQuery.nodeName,"jQuery.nodeName is deprecated");}
var oldAjax=jQuery.ajax;jQuery.ajax=function(){var jQXHR=oldAjax.apply(this,arguments);if(jQXHR.promise){migrateWarnFunc(jQXHR,"success",jQXHR.done,"jQXHR.success is deprecated and removed");migrateWarnFunc(jQXHR,"error",jQXHR.fail,"jQXHR.error is deprecated and removed");migrateWarnFunc(jQXHR,"complete",jQXHR.always,"jQXHR.complete is deprecated and removed");}
return jQXHR;};var oldRemoveAttr=jQuery.fn.removeAttr,oldToggleClass=jQuery.fn.toggleClass,rmatchNonSpace=/\S+/g;jQuery.fn.removeAttr=function(name){var self=this;jQuery.each(name.match(rmatchNonSpace),function(_i,attr){if(jQuery.expr.match.bool.test(attr)){migrateWarn("jQuery.fn.removeAttr no longer sets boolean properties: "+attr);self.prop(attr,false);}});return oldRemoveAttr.apply(this,arguments);};jQuery.fn.toggleClass=function(state){if(state!==undefined&&typeof state!=="boolean"){return oldToggleClass.apply(this,arguments);}
migrateWarn("jQuery.fn.toggleClass( boolean ) is deprecated");return this.each(function(){var className=this.getAttribute&&this.getAttribute("class")||"";if(className){jQuery.data(this,"__className__",className);}
if(this.setAttribute){this.setAttribute("class",className||state===false?"":jQuery.data(this,"__className__")||"");}});};var internalSwapCall=false;if(jQuery.swap){jQuery.each(["height","width","reliableMarginRight"],function(_,name){var oldHook=jQuery.cssHooks[name]&&jQuery.cssHooks[name].get;if(oldHook){jQuery.cssHooks[name].get=function(){var ret;internalSwapCall=true;ret=oldHook.apply(this,arguments);internalSwapCall=false;return ret;};}});}
jQuery.swap=function(elem,options,callback,args){var ret,name,old={};if(!internalSwapCall){migrateWarn("jQuery.swap() is undocumented and deprecated");}
for(name in options){old[name]=elem.style[name];elem.style[name]=options[name];}
ret=callback.apply(elem,args||[]);for(name in options){elem.style[name]=old[name];}
return ret;};var oldData=jQuery.data;jQuery.data=function(elem,name,value){var curData;if(name&&typeof name==="object"&&arguments.length===2){curData=jQuery.hasData(elem)&&oldData.call(this,elem);var sameKeys={};for(var key in name){if(key!==jQuery.camelCase(key)){migrateWarn("jQuery.data() always sets/gets camelCased names: "+key);curData[key]=name[key];}else{sameKeys[key]=name[key];}}
oldData.call(this,elem,sameKeys);return name;}
if(name&&typeof name==="string"&&name!==jQuery.camelCase(name)){curData=jQuery.hasData(elem)&&oldData.call(this,elem);if(curData&&name in curData){migrateWarn("jQuery.data() always sets/gets camelCased names: "+name);if(arguments.length>2){curData[name]=value;}
return curData[name];}}
return oldData.apply(this,arguments);};var oldTweenRun=jQuery.Tween.prototype.run;var linearEasing=function(pct){return pct;};jQuery.Tween.prototype.run=function(){if(jQuery.easing[this.easing].length>1){migrateWarn("'jQuery.easing."+this.easing.toString()+"' should use only one argument");jQuery.easing[this.easing]=linearEasing;}
oldTweenRun.apply(this,arguments);};var intervalValue=jQuery.fx.interval||13,intervalMsg="jQuery.fx.interval is deprecated";if(window.requestAnimationFrame){Object.defineProperty(jQuery.fx,"interval",{configurable:true,enumerable:true,get:function(){if(!window.document.hidden){migrateWarn(intervalMsg);}
return intervalValue;},set:function(newValue){migrateWarn(intervalMsg);intervalValue=newValue;}});}
var oldLoad=jQuery.fn.load,oldEventAdd=jQuery.event.add,originalFix=jQuery.event.fix;jQuery.event.props=[];jQuery.event.fixHooks={};migrateWarnProp(jQuery.event.props,"concat",jQuery.event.props.concat,"jQuery.event.props.concat() is deprecated and removed");jQuery.event.fix=function(originalEvent){var event,type=originalEvent.type,fixHook=this.fixHooks[type],props=jQuery.event.props;if(props.length){migrateWarn("jQuery.event.props are deprecated and removed: "+props.join());while(props.length){jQuery.event.addProp(props.pop());}}
if(fixHook&&!fixHook._migrated_){fixHook._migrated_=true;migrateWarn("jQuery.event.fixHooks are deprecated and removed: "+type);if((props=fixHook.props)&&props.length){while(props.length){jQuery.event.addProp(props.pop());}}}
event=originalFix.call(this,originalEvent);return fixHook&&fixHook.filter?fixHook.filter(event,originalEvent):event;};jQuery.event.add=function(elem,types){if(elem===window&&types==="load"&&window.document.readyState==="complete"){migrateWarn("jQuery(window).on('load'...) called after load event occurred");}
return oldEventAdd.apply(this,arguments);};jQuery.each(["load","unload","error"],function(_,name){jQuery.fn[name]=function(){var args=Array.prototype.slice.call(arguments,0);if(name==="load"&&typeof args[0]==="string"){return oldLoad.apply(this,args);}
migrateWarn("jQuery.fn."+name+"() is deprecated");args.splice(0,0,name);if(arguments.length){return this.on.apply(this,args);}
this.triggerHandler.apply(this,args);return this;};});jQuery.each(("blur focus focusin focusout resize scroll click dblclick "+"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave "+"change select submit keydown keypress keyup contextmenu").split(" "),function(_i,name){jQuery.fn[name]=function(data,fn){migrateWarn("jQuery.fn."+name+"() event shorthand is deprecated");return arguments.length>0?this.on(name,null,data,fn):this.trigger(name);};});jQuery(function(){jQuery(window.document).triggerHandler("ready");});jQuery.event.special.ready={setup:function(){if(this===window.document){migrateWarn("'ready' event is deprecated");}}};jQuery.fn.extend({bind:function(types,data,fn){migrateWarn("jQuery.fn.bind() is deprecated");return this.on(types,null,data,fn);},unbind:function(types,fn){migrateWarn("jQuery.fn.unbind() is deprecated");return this.off(types,null,fn);},delegate:function(selector,types,data,fn){migrateWarn("jQuery.fn.delegate() is deprecated");return this.on(types,selector,data,fn);},undelegate:function(selector,types,fn){migrateWarn("jQuery.fn.undelegate() is deprecated");return arguments.length===1?this.off(selector,"**"):this.off(types,selector||"**",fn);},hover:function(fnOver,fnOut){migrateWarn("jQuery.fn.hover() is deprecated");return this.on("mouseenter",fnOver).on("mouseleave",fnOut||fnOver);}});var oldOffset=jQuery.fn.offset;jQuery.fn.offset=function(){var docElem,elem=this[0],origin={top:0,left:0};if(!elem||!elem.nodeType){migrateWarn("jQuery.fn.offset() requires a valid DOM element");return origin;}
docElem=(elem.ownerDocument||window.document).documentElement;if(!jQuery.contains(docElem,elem)){migrateWarn("jQuery.fn.offset() requires an element connected to a document");return origin;}
return oldOffset.apply(this,arguments);};var oldParam=jQuery.param;jQuery.param=function(data,traditional){var ajaxTraditional=jQuery.ajaxSettings&&jQuery.ajaxSettings.traditional;if(traditional===undefined&&ajaxTraditional){migrateWarn("jQuery.param() no longer uses jQuery.ajaxSettings.traditional");traditional=ajaxTraditional;}
return oldParam.call(this,data,traditional);};var oldSelf=jQuery.fn.andSelf||jQuery.fn.addBack;jQuery.fn.andSelf=function(){migrateWarn("jQuery.fn.andSelf() is deprecated and removed, use jQuery.fn.addBack()");return oldSelf.apply(this,arguments);};var oldDeferred=jQuery.Deferred,tuples=[["resolve","done",jQuery.Callbacks("once memory"),jQuery.Callbacks("once memory"),"resolved"],["reject","fail",jQuery.Callbacks("once memory"),jQuery.Callbacks("once memory"),"rejected"],["notify","progress",jQuery.Callbacks("memory"),jQuery.Callbacks("memory")]];jQuery.Deferred=function(func){var deferred=oldDeferred(),promise=deferred.promise();deferred.pipe=promise.pipe=function(){var fns=arguments;migrateWarn("deferred.pipe() is deprecated");return jQuery.Deferred(function(newDefer){jQuery.each(tuples,function(i,tuple){var fn=jQuery.isFunction(fns[i])&&fns[i];deferred[tuple[1]](function(){var returned=fn&&fn.apply(this,arguments);if(returned&&jQuery.isFunction(returned.promise)){returned.promise().done(newDefer.resolve).fail(newDefer.reject).progress(newDefer.notify);}else{newDefer[tuple[0]+"With"](this===promise?newDefer.promise():this,fn?[returned]:arguments);}});});fns=null;}).promise();};if(func){func.call(deferred,deferred);}
return deferred;};jQuery.Deferred.exceptionHook=oldDeferred.exceptionHook;return jQuery;});