text: if(function(global,factory){"object"==typeof module&&"object"==typeof module.exports?module.exports=global.document?factory(global,!0):function(w){if(!w.document)throw new Error("jQuery requires a window with a document");return factory(w)}:factory(global)}("undefined"!=typeof window?window:this,function(window,noGlobal){function isArraylike(obj){var length="length"in obj&&obj.length,type=jQuery.type(obj);return"function"===type||jQuery.isWindow(obj)?!1:1===obj.nodeType&&length?!0:"array"===type||0===length||"number"==typeof length&&length>0&&length-1 in obj}function winnow(elements,qualifier,not){if(jQuery.isFunction(qualifier))return jQuery.grep(elements,function(elem,i){return!!qualifier.call(elem,i,elem)!==not});if(qualifier.nodeType)return jQuery.grep(elements,function(elem){return elem===qualifier!==not});if("string"==typeof qualifier){if(risSimple.test(qualifier))return jQuery.filter(qualifier,elements,not);qualifier=jQuery.filter(qualifier,elements)}return jQuery.grep(elements,function(elem){return indexOf.call(qualifier,elem)>=0!==not})}function sibling(cur,dir){for(;(cur=cur[dir])&&1!==cur.nodeType;);return cur}function createOptions(options){var object=optionsCache[options]={};return jQuery.each(options.match(rnotwhite)||[],function(_,flag){object[flag]=!0}),object}function completed(){document.removeEventListener("DOMContentLoaded",completed,!1),window.removeEventListener("load",completed,!1),jQuery.ready()}function Data(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=jQuery.expando+Data.uid++}function dataAttr(elem,key,data){var name;if(void 0===data&&1===elem.nodeType)if(name="data-"+key.replace(rmultiDash,"-$1").toLowerCase(),data=elem.getAttribute(name),"string"==typeof data){try{data="true"===data?!0:"false"===data?!1:"null"===data?null:+data+""===data?+data:rbrace.test(data)?jQuery.parseJSON(data):data}catch(e){}data_user.set(elem,key,data)}else data=void 0;return data}function returnTrue(){return!0}function returnFalse(){return!1}function safeActiveElement(){try{return document.activeElement}catch(err){}}function manipulationTarget(elem,content){return jQuery.nodeName(elem,"table")&&jQuery.nodeName(11!==content.nodeType?content:content.firstChild,"tr")?elem.getElementsByTagName("tbody")[0]||elem.appendChild(elem.ownerDocument.createElement("tbody")):elem}function disableScript(elem){return elem.type=(null!==elem.getAttribute("type"))+"/"+elem.type,elem}function restoreScript(elem){var match=rscriptTypeMasked.exec(elem.type);return match?elem.type=match[1]:elem.removeAttribute("type"),elem}function setGlobalEval(elems,refElements){for(var i=0,l=elems.length;l>i;i++)data_priv.set(elems[i],"globalEval",!refElements||data_priv.get(refElements[i],"globalEval"))}function cloneCopyEvent(src,dest){var i,l,type,pdataOld,pdataCur,udataOld,udataCur,events;if(1===dest.nodeType){if(data_priv.hasData(src)&&(pdataOld=data_priv.access(src),pdataCur=data_priv.set(dest,pdataOld),events=pdataOld.events)){delete pdataCur.handle,pdataCur.events={};for(type in events)for(i=0,l=events[type].length;l>i;i++)jQuery.event.add(dest,type,events[type][i])}data_user.hasData(src)&&(udataOld=data_user.access(src),udataCur=jQuery.extend({},udataOld),data_user.set(dest,udataCur))}}function getAll(context,tag){var ret=context.getElementsByTagName?context.getElementsByTagName(tag||"*"):context.querySelectorAll?context.querySelectorAll(tag||"*"):[];return void 0===tag||tag&&jQuery.nodeName(context,tag)?jQuery.merge([context],ret):ret}function fixInput(src,dest){var nodeName=dest.nodeName.toLowerCase();"input"===nodeName&&rcheckableType.test(src.type)?dest.checked=src.checked:("input"===nodeName||"textarea"===nodeName)&&(dest.defaultValue=src.defaultValue)}function actualDisplay(name,doc){var style,elem=jQuery(doc.createElement(name)).appendTo(doc.body),display=window.getDefaultComputedStyle&&(style=window.getDefaultComputedStyle(elem[0]))?style.display:jQuery.css(elem[0],"display");return elem.detach(),display}function defaultDisplay(nodeName){var doc=document,display=elemdisplay[nodeName];return display||(display=actualDisplay(nodeName,doc),"none"!==display&&display||(iframe=(iframe||jQuery("<iframe frameborder='0' width='0' height='0'/>")).appendTo(doc.documentElement),doc=iframe[0].contentDocument,doc.write(),doc.close(),display=actualDisplay(nodeName,doc),iframe.detach()),elemdisplay[nodeName]=display),display}function curCSS(elem,name,computed){var width,minWidth,maxWidth,ret,style=elem.style;return computed=computed||getStyles(elem),computed&&(ret=computed.getPropertyValue(name)||computed[name]),computed&&(""!==ret||jQuery.contains(elem.ownerDocument,elem)||(ret=jQuery.style(elem,name)),rnumnonpx.test(ret)&&rmargin.test(name)&&(width=style.width,minWidth=style.minWidth,maxWidth=style.maxWidth,style.minWidth=style.maxWidth=style.width=ret,ret=computed.width,style.width=width,style.minWidth=minWidth,style.maxWidth=maxWidth)),void 0!==ret?ret+"":ret}function addGetHookIf(conditionFn,hookFn){return{get:function(){return conditionFn()?void delete this.get:(this.get=hookFn).apply(this,arguments)}}}function vendorPropName(style,name){if(name in style)return name;for(var capName=name[0].toUpperCase()+name.slice(1),origName=name,i=cssPrefixes.length;i--;)if(name=cssPrefixes[i]+capName,name in style)return name;return origName}function setPositiveNumber(elem,value,subtract){var matches=rnumsplit.exec(value);return matches?Math.max(0,matches[1]-(subtract||0))+(matches[2]||"px"):value}function augmentWidthOrHeight(elem,name,extra,isBorderBox,styles){for(var i=extra===(isBorderBox?"border":"content")?4:"width"===name?1:0,val=0;4>i;i+=2)"margin"===extra&&(val+=jQuery.css(elem,extra+cssExpand[i],!0,styles)),isBorderBox?("content"===extra&&(val-=jQuery.css(elem,"padding"+cssExpand[i],!0,styles)),"margin"!==extra&&(val-=jQuery.css(elem,"border"+cssExpand[i]+"Width",!0,styles))):(val+=jQuery.css(elem,"padding"+cssExpand[i],!0,styles),"padding"!==extra&&(val+=jQuery.css(elem,"border"+cssExpand[i]+"Width",!0,styles)));return val}function getWidthOrHeight(elem,name,extra){var valueIsBorderBox=!0,val="width"===name?elem.offsetWidth:elem.offsetHeight,styles=getStyles(elem),isBorderBox="border-box"===jQuery.css(elem,"boxSizing",!1,styles);if(0>=val||null==val){if(val=curCSS(elem,name,styles),(0>val||null==val)&&(val=elem.style[name]),rnumnonpx.test(val))return val;valueIsBorderBox=isBorderBox&&(support.boxSizingReliable()||val===elem.style[name]),val=parseFloat(val)||0}return val+augmentWidthOrHeight(elem,name,extra||(isBorderBox?"border":"content"),valueIsBorderBox,styles)+"px"}function showHide(elements,show){for(var display,elem,hidden,values=[],index=0,length=elements.length;length>index;index++)elem=elements[index],elem.style&&(values[index]=data_priv.get(elem,"olddisplay"),display=elem.style.display,show?(values[index]||"none"!==display||(elem.style.display=""),""===elem.style.display&&isHidden(elem)&&(values[index]=data_priv.access(elem,"olddisplay",defaultDisplay(elem.nodeName)))):(hidden=isHidden(elem),"none"===display&&hidden||data_priv.set(elem,"olddisplay",hidden?display:jQuery.css(elem,"display"))));for(index=0;length>index;index++)elem=elements[index],elem.style&&(show&&"none"!==elem.style.display&&""!==elem.style.display||(elem.style.display=show?values[index]||"":"none"));return elements}function Tween(elem,options,prop,end,easing){return new Tween.prototype.init(elem,options,prop,end,easing)}function createFxNow(){return setTimeout(function(){fxNow=void 0}),fxNow=jQuery.now()}function genFx(type,includeWidth){var which,i=0,attrs={height:type};for(includeWidth=includeWidth?1:0;4>i;i+=2-includeWidth)which=cssExpand[i],attrs["margin"+which]=attrs["padding"+which]=type;return includeWidth&&(attrs.opacity=attrs.width=type),attrs}function createTween(value,prop,animation){for(var tween,collection=(tweeners[prop]||[]).concat(tweeners["*"]),index=0,length=collection.length;length>index;index++)if(tween=collection[index].call(animation,prop,value))return tween}function defaultPrefilter(elem,props,opts){var prop,value,toggle,tween,hooks,oldfire,display,checkDisplay,anim=this,orig={},style=elem.style,hidden=elem.nodeType&&isHidden(elem),dataShow=data_priv.get(elem,"fxshow");opts.queue||(hooks=jQuery._queueHooks(elem,"fx"),null==hooks.unqueued&&(hooks.unqueued=0,oldfire=hooks.empty.fire,hooks.empty.fire=function(){hooks.unqueued||oldfire()}),hooks.unqueued++,anim.always(function(){anim.always(function(){hooks.unqueued--,jQuery.queue(elem,"fx").length||hooks.empty.fire()})})),1===elem.nodeType&&("height"in props||"width"in props)&&(opts.overflow=[style.overflow,style.overflowX,style.overflowY],display=jQuery.css(elem,"display"),checkDisplay="none"===display?data_priv.get(elem,"olddisplay")||defaultDisplay(elem.nodeName):display,"inline"===checkDisplay&&"none"===jQuery.css(elem,"float")&&(style.display="inline-block")),opts.overflow&&(style.overflow="hidden",anim.always(function(){style.overflow=opts.overflow[0],style.overflowX=opts.overflow[1],style.overflowY=opts.overflow[2]}));for(prop in props)if(value=props[prop],rfxtypes.exec(value)){if(delete props[prop],toggle=toggle||"toggle"===value,value===(hidden?"hide":"show")){if("show"!==value||!dataShow||void 0===dataShow[prop])continue;hidden=!0}orig[prop]=dataShow&&dataShow[prop]||jQuery.style(elem,prop)}else display=void 0;if(jQuery.isEmptyObject(orig))"inline"===("none"===display?defaultDisplay(elem.nodeName):display)&&(style.display=display);else{dataShow?"hidden"in dataShow&&(hidden=dataShow.hidden):dataShow=data_priv.access(elem,"fxshow",{}),toggle&&(dataShow.hidden=!hidden),hidden?jQuery(elem).show():anim.done(function(){jQuery(elem).hide()}),anim.done(function(){var prop;data_priv.remove(elem,"fxshow");for(prop in orig)jQuery.style(elem,prop,orig[prop])});for(prop in orig)tween=createTween(hidden?dataShow[prop]:0,prop,anim),prop in dataShow||(dataShow[prop]=tween.start,hidden&&(tween.end=tween.start,tween.start="width"===prop||"height"===prop?1:0))}}function propFilter(props,specialEasing){var index,name,easing,value,hooks;for(index in props)if(name=jQuery.camelCase(index),easing=specialEasing[name],value=props[index],jQuery.isArray(value)&&(easing=value[1],value=props[index]=value[0]),index!==name&&(props[name]=value,delete props[index]),hooks=jQuery.cssHooks[name],hooks&&"expand"in hooks){value=hooks.expand(value),delete props[name];for(index in value)index in props||(props[index]=value[index],specialEasing[index]=easing)}else specialEasing[name]=easing}function Animation(elem,properties,options){var result,stopped,index=0,length=animationPrefilters.length,deferred=jQuery.Deferred().always(function(){delete tick.elem}),tick=function(){if(stopped)return!1;for(var currentTime=fxNow||createFxNow(),remaining=Math.max(0,animation.startTime+animation.duration-currentTime),temp=remaining/animation.duration||0,percent=1-temp,index=0,length=animation.tweens.length;length>index;index++)animation.tweens[index].run(percent);return deferred.notifyWith(elem,[animation,percent,remaining]),1>percent&&length?remaining:(deferred.resolveWith(elem,[animation]),!1)},animation=deferred.promise({elem:elem,props:jQuery.extend({},properties),opts:jQuery.extend(!0,{specialEasing:{}},options),originalProperties:properties,originalOptions:options,startTime:fxNow||createFxNow(),duration:options.duration,tweens:[],createTween:function(prop,end){var tween=jQuery.Tween(elem,animation.opts,prop,end,animation.opts.specialEasing[prop]||animation.opts.easing);return animation.tweens.push(tween),tween},stop:function(gotoEnd){var index=0,length=gotoEnd?animation.tweens.length:0;if(stopped)return this;for(stopped=!0;length>index;index++)animation.tweens[index].run(1);return gotoEnd?deferred.resolveWith(elem,[animation,gotoEnd]):deferred.rejectWith(elem,[animation,gotoEnd]),this}}),props=animation.props;for(propFilter(props,animation.opts.specialEasing);length>index;index++)if(result=animationPrefilters[index].call(animation,elem,props,animation.opts))return result;return jQuery.map(props,createTween,animation),jQuery.isFunction(animation.opts.start)&&animation.opts.start.call(elem,animation),jQuery.fx.timer(jQuery.extend(tick,{elem:elem,anim:animation,queue:animation.opts.queue})),animation.progress(animation.opts.progress).done(animation.opts.done,animation.opts.complete).fail(animation.opts.fail).always(animation.opts.always)}function addToPrefiltersOrTransports(structure){return function(dataTypeExpression,func){"string"!=typeof dataTypeExpression&&(func=dataTypeExpression,dataTypeExpression="*");var dataType,i=0,dataTypes=dataTypeExpression.toLowerCase().match(rnotwhite)||[];if(jQuery.isFunction(func))for(;dataType=dataTypes[i++];)"+"===dataType[0]?(dataType=dataType.slice(1)||"*",(structure[dataType]=structure[dataType]||[]).unshift(func)):(structure[dataType]=structure[dataType]||[]).push(func)}}function inspectPrefiltersOrTransports(structure,options,originalOptions,jqXHR){function inspect(dataType){var selected;return inspected[dataType]=!0,jQuery.each(structure[dataType]||[],function(_,prefilterOrFactory){var dataTypeOrTransport=prefilterOrFactory(options,originalOptions,jqXHR);return"string"!=typeof dataTypeOrTransport||seekingTransport||inspected[dataTypeOrTransport]?seekingTransport?!(selected=dataTypeOrTransport):void 0:(options.dataTypes.unshift(dataTypeOrTransport),inspect(dataTypeOrTransport),!1)}),selected}var inspected={},seekingTransport=structure===transports;return inspect(options.dataTypes[0])||!inspected["*"]&&inspect("*")}function ajaxExtend(target,src){var key,deep,flatOptions=jQuery.ajaxSettings.flatOptions||{};for(key in src)void 0!==src[key]&&((flatOptions[key]?target:deep||(deep={}))[key]=src[key]);return deep&&jQuery.extend(!0,target,deep),target}function ajaxHandleResponses(s,jqXHR,responses){for(var ct,type,finalDataType,firstDataType,contents=s.contents,dataTypes=s.dataTypes;"*"===dataTypes[0];)dataTypes.shift(),void 0===ct&&(ct=s.mimeType||jqXHR.getResponseHeader("Content-Type"));if(ct)for(type in contents)if(contents[type]&&contents[type].test(ct)){dataTypes.unshift(type);break}if(dataTypes[0]in responses)finalDataType=dataTypes[0];else{for(type in responses){if(!dataTypes[0]||s.converters[type+" "+dataTypes[0]]){finalDataType=type;break}firstDataType||(firstDataType=type)}finalDataType=finalDataType||firstDataType}return finalDataType?(finalDataType!==dataTypes[0]&&dataTypes.unshift(finalDataType),responses[finalDataType]):void 0}function ajaxConvert(s,response,jqXHR,isSuccess){var conv2,current,conv,tmp,prev,converters={},dataTypes=s.dataTypes.slice();if(dataTypes[1])for(conv in s.converters)converters[conv.toLowerCase()]=s.converters[conv];for(current=dataTypes.shift();current;)if(s.responseFields[current]&&(jqXHR[s.responseFields[current]]=response),!prev&&isSuccess&&s.dataFilter&&(response=s.dataFilter(response,s.dataType)),prev=current,current=dataTypes.shift())if("*"===current)current=prev;else if("*"!==prev&&prev!==current){if(conv=converters[prev+" "+current]||converters["* "+current],!conv)for(conv2 in converters)if(tmp=conv2.split(" "),tmp[1]===current&&(conv=converters[prev+" "+tmp[0]]||converters["* "+tmp[0]])){conv===!0?conv=converters[conv2]:converters[conv2]!==!0&&(current=tmp[0],dataTypes.unshift(tmp[1]));break}if(conv!==!0)if(conv&&s["throws"])response=conv(response);else try{response=conv(response)}catch(e){return{state:"parsererror",error:conv?e:"No conversion from "+prev+" to "+current}}}return{state:"success",data:response}}function buildParams(prefix,obj,traditional,add){var name;if(jQuery.isArray(obj))jQuery.each(obj,function(i,v){traditional||rbracket.test(prefix)?add(prefix,v):buildParams(prefix+"["+("object"==typeof v?i:"")+"]",v,traditional,add)});else if(traditional||"object"!==jQuery.type(obj))add(prefix,obj);else for(name in obj)buildParams(prefix+"["+name+"]",obj[name],traditional,add)}function getWindow(elem){return jQuery.isWindow(elem)?elem:9===elem.nodeType&&elem.defaultView}var arr=[],slice=arr.slice,concat=arr.concat,push=arr.push,indexOf=arr.indexOf,class2type={},toString=class2type.toString,hasOwn=class2type.hasOwnProperty,support={},document=window.document,version="2.1.4",jQuery=function(selector,context){return new jQuery.fn.init(selector,context)},rtrim=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,rmsPrefix=/^-ms-/,rdashAlpha=/-([\da-z])/gi,fcamelCase=function(all,letter){return letter.toUpperCase()};jQuery.fn=jQuery.prototype={jquery:version,constructor:jQuery,selector:"",length:0,toArray:function(){return slice.call(this)},get:function(num){return null!=num?0>num?this[num+this.length]:this[num]:slice.call(this)},pushStack:function(elems){var ret=jQuery.merge(this.constructor(),elems);return ret.prevObject=this,ret.context=this.context,ret},each:function(callback,args){return jQuery.each(this,callback,args)},map:function(callback){return this.pushStack(jQuery.map(this,function(elem,i){return callback.call(elem,i,elem)}))},slice:function(){return this.pushStack(slice.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(i){var len=this.length,j=+i+(0>i?len:0);return this.pushStack(j>=0&&len>j?[this[j]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:push,sort:arr.sort,splice:arr.splice},jQuery.extend=jQuery.fn.extend=function(){var options,name,src,copy,copyIsArray,clone,target=arguments[0]||{},i=1,length=arguments.length,deep=!1;for("boolean"==typeof target&&(deep=target,target=arguments[i]||{},i++),"object"==typeof target||jQuery.isFunction(target)||(target={}),i===length&&(target=this,i--);length>i;i++)if(null!=(options=arguments[i]))for(name in options)src=target[name],copy=options[name],target!==copy&&(deep&&copy&&(jQuery.isPlainObject(copy)||(copyIsArray=jQuery.isArray(copy)))?(copyIsArray?(copyIsArray=!1,clone=src&&jQuery.isArray(src)?src:[]):clone=src&&jQuery.isPlainObject(src)?src:{},target[name]=jQuery.extend(deep,clone,copy)):void 0!==copy&&(target[name]=copy));return target},jQuery.extend({expando:"jQuery"+(version+Math.random()).replace(/\D/g,""),isReady:!0,error:function(msg){throw new Error(msg)},noop:function(){},isFunction:function(obj){return"function"===jQuery.type(obj)},isArray:Array.isArray,isWindow:function(obj){return null!=obj&&obj===obj.window},isNumeric:function(obj){return!jQuery.isArray(obj)&&obj-parseFloat(obj)+1>=0},isPlainObject:function(obj){return"object"!==jQuery.type(obj)||obj.nodeType||jQuery.isWindow(obj)?!1:obj.constructor&&!hasOwn.call(obj.constructor.prototype,"isPrototypeOf")?!1:!0},isEmptyObject:function(obj){var name;for(name in obj)return!1;return!0},type:function(obj){return null==obj?obj+"":"object"==typeof obj||"function"==typeof obj?class2type[toString.call(obj)]||"object":typeof obj},globalEval:function(code){var script,indirect=eval;code=jQuery.trim(code),code&&(1===code.indexOf("use strict")?(script=document.createElement("script"),script.text=code,document.head.appendChild(script).parentNode.removeChild(script)):indirect(code))},camelCase:function(string){return string.replace(rmsPrefix,"ms-").replace(rdashAlpha,fcamelCase)},nodeName:function(elem,name){return elem.nodeName&&elem.nodeName.toLowerCase()===name.toLowerCase()},each:function(obj,callback,args){var value,i=0,length=obj.length,isArray=isArraylike(obj);if(args){if(isArray)for(;length>i&&(value=callback.apply(obj[i],args),value!==!1);i++);else for(i in obj)if(value=callback.apply(obj[i],args),value===!1)break}else if(isArray)for(;length>i&&(value=callback.call(obj[i],i,obj[i]),value!==!1);i++);else for(i in obj)if(value=callback.call(obj[i],i,obj[i]),value===!1)break;return obj},trim:function(text){return null==text?"":(text+"").replace(rtrim,"")},makeArray:function(arr,results){var ret=results||[];return null!=arr&&(isArraylike(Object(arr))?jQuery.merge(ret,"string"==typeof arr?[arr]:arr):push.call(ret,arr)),ret},inArray:function(elem,arr,i){return null==arr?-1:indexOf.call(arr,elem,i)},merge:function(first,second){for(var len=+second.length,j=0,i=first.length;len>j;j++)first[i++]=second[j];return first.length=i,first},grep:function(elems,callback,invert){for(var callbackInverse,matches=[],i=0,length=elems.length,callbackExpect=!invert;length>i;i++)callbackInverse=!callback(elems[i],i),callbackInverse!==callbackExpect&&matches.push(elems[i]);return matches},map:function(elems,callback,arg){var value,i=0,length=elems.length,isArray=isArraylike(elems),ret=[];if(isArray)for(;length>i;i++)value=callback(elems[i],i,arg),null!=value&&ret.push(value);else for(i in elems)value=callback(elems[i],i,arg),null!=value&&ret.push(value);return concat.apply([],ret)},guid:1,proxy:function(fn,context){var tmp,args,proxy;return"string"==typeof context&&(tmp=fn[context],context=fn,fn=tmp),jQuery.isFunction(fn)?(args=slice.call(arguments,2),proxy=function(){return fn.apply(context||this,args.concat(slice.call(arguments)))},proxy.guid=fn.guid=fn.guid||jQuery.guid++,proxy):void 0},now:Date.now,support:support}),jQuery.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(i,name){class2type["[object "+name+"]"]=name.toLowerCase()});var Sizzle=function(window){function Sizzle(selector,context,results,seed){var match,elem,m,nodeType,i,groups,old,nid,newContext,newSelector;if((context?context.ownerDocument||context:preferredDoc)!==document&&setDocument(context),context=context||document,results=results||[],nodeType=context.nodeType,"string"!=typeof selector||!selector||1!==nodeType&&9!==nodeType&&11!==nodeType)return results;if(!seed&&documentIsHTML){if(11!==nodeType&&(match=rquickExpr.exec(selector)))if(m=match[1]){if(9===nodeType){if(elem=context.getElementById(m),!elem||!elem.parentNode)return results;if(elem.id===m)return results.push(elem),results}else if(context.ownerDocument&&(elem=context.ownerDocument.getElementById(m))&&contains(context,elem)&&elem.id===m)return results.push(elem),results}else{if(match[2])return push.apply(results,context.getElementsByTagName(selector)),results;if((m=match[3])&&support.getElementsByClassName)return push.apply(results,context.getElementsByClassName(m)),results}if(support.qsa&&(!rbuggyQSA||!rbuggyQSA.test(selector))){if(nid=old=expando,newContext=context,newSelector=1!==nodeType&&selector,1===nodeType&&"object"!==context.nodeName.toLowerCase()){for(groups=tokenize(selector),(old=context.getAttribute("id"))?nid=old.replace(rescape,"\\$&"):context.setAttribute("id",nid),nid="[id='"+nid+"'] ",i=groups.length;i--;)groups[i]=nid+toSelector(groups[i]);newContext=rsibling.test(selector)&&testContext(context.parentNode)||context,newSelector=groups.join(",")}if(newSelector)try{return push.apply(results,newContext.querySelectorAll(newSelector)),results}catch(qsaError){}finally{old||context.removeAttribute("id")}}}return select(selector.replace(rtrim,"$1"),context,results,seed)}function createCache(){function cache(key,value){return keys.push(key+" ")>Expr.cacheLength&&delete cache[keys.shift()],cache[key+" "]=value}var keys=[];return cache}function markFunction(fn){return fn[expando]=!0,fn}function assert(fn){var div=document.createElement("div");try{return!!fn(div)}catch(e){return!1}finally{div.parentNode&&div.parentNode.removeChild(div),div=null}}function addHandle(attrs,handler){for(var arr=attrs.split("|"),i=attrs.length;i--;)Expr.attrHandle[arr[i]]=handler}function siblingCheck(a,b){var cur=b&&a,diff=cur&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||MAX_NEGATIVE)-(~a.sourceIndex||MAX_NEGATIVE);if(diff)return diff;if(cur)for(;cur=cur.nextSibling;)if(cur===b)return-1;return a?1:-1}function createInputPseudo(type){return function(elem){var name=elem.nodeName.toLowerCase();return"input"===name&&elem.type===type}}function createButtonPseudo(type){return function(elem){var name=elem.nodeName.toLowerCase();return("input"===name||"button"===name)&&elem.type===type}}function createPositionalPseudo(fn){return markFunction(function(argument){return argument=+argument,markFunction(function(seed,matches){for(var j,matchIndexes=fn([],seed.length,argument),i=matchIndexes.length;i--;)seed[j=matchIndexes[i]]&&(seed[j]=!(matches[j]=seed[j]))})})}function testContext(context){return context&&"undefined"!=typeof context.getElementsByTagName&&context}function setFilters(){}function toSelector(tokens){for(var i=0,len=tokens.length,selector="";len>i;i++)selector+=tokens[i].value;return selector}function addCombinator(matcher,combinator,base){var dir=combinator.dir,checkNonElements=base&&"parentNode"===dir,doneName=done++;return combinator.first?function(elem,context,xml){for(;elem=elem[dir];)if(1===elem.nodeType||checkNonElements)return matcher(elem,context,xml)}:function(elem,context,xml){var oldCache,outerCache,newCache=[dirruns,doneName];if(xml){for(;elem=elem[dir];)if((1===elem.nodeType||checkNonElements)&&matcher(elem,context,xml))return!0}else for(;elem=elem[dir];)if(1===elem.nodeType||checkNonElements){if(outerCache=elem[expando]||(elem[expando]={}),(oldCache=outerCache[dir])&&oldCache[0]===dirruns&&oldCache[1]===doneName)return newCache[2]=oldCache[2];if(outerCache[dir]=newCache,newCache[2]=matcher(elem,context,xml))return!0}}}function elementMatcher(matchers){return matchers.length>1?function(elem,context,xml){for(var i=matchers.length;i--;)if(!matchers[i](elem,context,xml))return!1;return!0}:matchers[0]}function multipleContexts(selector,contexts,results){for(var i=0,len=contexts.length;len>i;i++)Sizzle(selector,contexts[i],results);return results}function condense(unmatched,map,filter,context,xml){for(var elem,newUnmatched=[],i=0,len=unmatched.length,mapped=null!=map;len>i;i++)(elem=unmatched[i])&&(!filter||filter(elem,context,xml))&&(newUnmatched.push(elem),mapped&&map.push(i));return newUnmatched}function setMatcher(preFilter,selector,matcher,postFilter,postFinder,postSelector){return postFilter&&!postFilter[expando]&&(postFilter=setMatcher(postFilter)),postFinder&&!postFinder[expando]&&(postFinder=setMatcher(postFinder,postSelector)),markFunction(function(seed,results,context,xml){var temp,i,elem,preMap=[],postMap=[],preexisting=results.length,elems=seed||multipleContexts(selector||"*",context.nodeType?[context]:context,[]),matcherIn=!preFilter||!seed&&selector?elems:condense(elems,preMap,preFilter,context,xml),matcherOut=matcher?postFinder||(seed?preFilter:preexisting||postFilter)?[]:results:matcherIn;if(matcher&&matcher(matcherIn,matcherOut,context,xml),postFilter)for(temp=condense(matcherOut,postMap),postFilter(temp,[],context,xml),i=temp.length;i--;)(elem=temp[i])&&(matcherOut[postMap[i]]=!(matcherIn[postMap[i]]=elem));if(seed){if(postFinder||preFilter){if(postFinder){for(temp=[],i=matcherOut.length;i--;)(elem=matcherOut[i])&&temp.push(matcherIn[i]=elem);postFinder(null,matcherOut=[],temp,xml)}for(i=matcherOut.length;i--;)(elem=matcherOut[i])&&(temp=postFinder?indexOf(seed,elem):preMap[i])>-1&&(seed[temp]=!(results[temp]=elem))}}else matcherOut=condense(matcherOut===results?matcherOut.splice(preexisting,matcherOut.length):matcherOut),postFinder?postFinder(null,results,matcherOut,xml):push.apply(results,matcherOut)})}function matcherFromTokens(tokens){for(var checkContext,matcher,j,len=tokens.length,leadingRelative=Expr.relative[tokens[0].type],implicitRelative=leadingRelative||Expr.relative[" "],i=leadingRelative?1:0,matchContext=addCombinator(function(elem){return elem===checkContext},implicitRelative,!0),matchAnyContext=addCombinator(function(elem){return indexOf(checkContext,elem)>-1},implicitRelative,!0),matchers=[function(elem,context,xml){var ret=!leadingRelative&&(xml||context!==outermostContext)||((checkContext=context).nodeType?matchContext(elem,context,xml):matchAnyContext(elem,context,xml));return checkContext=null,ret}];len>i;i++)if(matcher=Expr.relative[tokens[i].type])matchers=[addCombinator(elementMatcher(matchers),matcher)];else{if(matcher=Expr.filter[tokens[i].type].apply(null,tokens[i].matches),matcher[expando]){for(j=++i;len>j&&!Expr.relative[tokens[j].type];j++);return setMatcher(i>1&&elementMatcher(matchers),i>1&&toSelector(tokens.slice(0,i-1).concat({value:" "===tokens[i-2].type?"*":""})).replace(rtrim,"$1"),matcher,j>i&&matcherFromTokens(tokens.slice(i,j)),len>j&&matcherFromTokens(tokens=tokens.slice(j)),len>j&&toSelector(tokens))}matchers.push(matcher)}return elementMatcher(matchers)}function matcherFromGroupMatchers(elementMatchers,setMatchers){var bySet=setMatchers.length>0,byElement=elementMatchers.length>0,superMatcher=function(seed,context,xml,results,outermost){var elem,j,matcher,matchedCount=0,i="0",unmatched=seed&&[],setMatched=[],contextBackup=outermostContext,elems=seed||byElement&&Expr.find.TAG("*",outermost),dirrunsUnique=dirruns+=null==contextBackup?1:Math.random()||.1,len=elems.length;for(outermost&&(outermostContext=context!==document&&context);i!==len&&null!=(elem=elems[i]);i++){if(byElement&&elem){for(j=0;matcher=elementMatchers[j++];)if(matcher(elem,context,xml)){results.push(elem);break}outermost&&(dirruns=dirrunsUnique)}bySet&&((elem=!matcher&&elem)&&matchedCount--,seed&&unmatched.push(elem))}if(matchedCount+=i,bySet&&i!==matchedCount){for(j=0;matcher=setMatchers[j++];)matcher(unmatched,setMatched,context,xml);if(seed){if(matchedCount>0)for(;i--;)unmatched[i]||setMatched[i]||(setMatched[i]=pop.call(results));setMatched=condense(setMatched)}push.apply(results,setMatched),outermost&&!seed&&setMatched.length>0&&matchedCount+setMatchers.length>1&&Sizzle.uniqueSort(results)}return outermost&&(dirruns=dirrunsUnique,outermostContext=contextBackup),unmatched};return bySet?markFunction(superMatcher):superMatcher}var i,support,Expr,getText,isXML,tokenize,compile,select,outermostContext,sortInput,hasDuplicate,setDocument,document,docElem,documentIsHTML,rbuggyQSA,rbuggyMatches,matches,contains,expando="sizzle"+1*new Date,preferredDoc=window.document,dirruns=0,done=0,classCache=createCache(),tokenCache=createCache(),compilerCache=createCache(),sortOrder=function(a,b){return a===b&&(hasDuplicate=!0),0},MAX_NEGATIVE=1<<31,hasOwn={}.hasOwnProperty,arr=[],pop=arr.pop,push_native=arr.push,push=arr.push,slice=arr.slice,indexOf=function(list,elem){for(var i=0,len=list.length;len>i;i++)if(list[i]===elem)return i;return-1},booleans="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",whitespace="[\\x20\\t\\r\\n\\f]",characterEncoding="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",identifier=characterEncoding.replace("w","w#"),attributes="\\["+whitespace+"*("+characterEncoding+")(?:"+whitespace+"*([*^$|!~]?=)"+whitespace+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+identifier+"))|)"+whitespace+"*\\]",pseudos=":("+characterEncoding+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+attributes+")*)|.*)\\)|)",rwhitespace=new RegExp(whitespace+"+","g"),rtrim=new RegExp("^"+whitespace+"+|((?:^|[^\\\\])(?:\\\\.)*)"+whitespace+"+$","g"),rcomma=new RegExp("^"+whitespace+"*,"+whitespace+"*"),rcombinators=new RegExp("^"+whitespace+"*([>+~]|"+whitespace+")"+whitespace+"*"),rattributeQuotes=new RegExp("="+whitespace+"*([^\\]'\"]*?)"+whitespace+"*\\]","g"),rpseudo=new RegExp(pseudos),ridentifier=new RegExp("^"+identifier+"$"),matchExpr={ID:new RegExp("^#("+characterEncoding+")"),CLASS:new RegExp("^\\.("+characterEncoding+")"),TAG:new RegExp("^("+characterEncoding.replace("w","w*")+")"),ATTR:new RegExp("^"+attributes),PSEUDO:new RegExp("^"+pseudos),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+whitespace+"*(even|odd|(([+-]|)(\\d*)n|)"+whitespace+"*(?:([+-]|)"+whitespace+"*(\\d+)|))"+whitespace+"*\\)|)","i"),bool:new RegExp("^(?:"+booleans+")$","i"),needsContext:new RegExp("^"+whitespace+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+whitespace+"*((?:-\\d)?\\d*)"+whitespace+"*\\)|)(?=[^-]|$)","i")},rinputs=/^(?:input|select|textarea|button)$/i,rheader=/^h\d$/i,rnative=/^[^{]+\{\s*\[native \w/,rquickExpr=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,rsibling=/[+~]/,rescape=/'|\\/g,runescape=new RegExp("\\\\([\\da-f]{1,6}"+whitespace+"?|("+whitespace+")|.)","ig"),funescape=function(_,escaped,escapedWhitespace){
  var high="0x"+escaped-65536;return high!==high||escapedWhitespace?escaped:0>high?String.fromCharCode(high+65536):String.fromCharCode(high>>10|55296,1023&high|56320)},unloadHandler=function(){setDocument()};try{push.apply(arr=slice.call(preferredDoc.childNodes),preferredDoc.childNodes),arr[preferredDoc.childNodes.length].nodeType}catch(e){push={apply:arr.length?function(target,els){push_native.apply(target,slice.call(els))}:function(target,els){for(var j=target.length,i=0;target[j++]=els[i++];);target.length=j-1}}}support=Sizzle.support={},isXML=Sizzle.isXML=function(elem){var documentElement=elem&&(elem.ownerDocument||elem).documentElement;return documentElement?"HTML"!==documentElement.nodeName:!1},setDocument=Sizzle.setDocument=function(node){var hasCompare,parent,doc=node?node.ownerDocument||node:preferredDoc;return doc!==document&&9===doc.nodeType&&doc.documentElement?(document=doc,docElem=doc.documentElement,parent=doc.defaultView,parent&&parent!==parent.top&&(parent.addEventListener?parent.addEventListener("unload",unloadHandler,!1):parent.attachEvent&&parent.attachEvent("onunload",unloadHandler)),documentIsHTML=!isXML(doc),support.attributes=assert(function(div){return div.className="i",!div.getAttribute("className")}),support.getElementsByTagName=assert(function(div){return div.appendChild(doc.createComment("")),!div.getElementsByTagName("*").length}),support.getElementsByClassName=rnative.test(doc.getElementsByClassName),support.getById=assert(function(div){return docElem.appendChild(div).id=expando,!doc.getElementsByName||!doc.getElementsByName(expando).length}),support.getById?(Expr.find.ID=function(id,context){if("undefined"!=typeof context.getElementById&&documentIsHTML){var m=context.getElementById(id);return m&&m.parentNode?[m]:[]}},Expr.filter.ID=function(id){var attrId=id.replace(runescape,funescape);return function(elem){return elem.getAttribute("id")===attrId}}):(delete Expr.find.ID,Expr.filter.ID=function(id){var attrId=id.replace(runescape,funescape);return function(elem){var node="undefined"!=typeof elem.getAttributeNode&&elem.getAttributeNode("id");return node&&node.value===attrId}}),Expr.find.TAG=support.getElementsByTagName?function(tag,context){return"undefined"!=typeof context.getElementsByTagName?context.getElementsByTagName(tag):support.qsa?context.querySelectorAll(tag):void 0}:function(tag,context){var elem,tmp=[],i=0,results=context.getElementsByTagName(tag);if("*"===tag){for(;elem=results[i++];)1===elem.nodeType&&tmp.push(elem);return tmp}return results},Expr.find.CLASS=support.getElementsByClassName&&function(className,context){return documentIsHTML?context.getElementsByClassName(className):void 0},rbuggyMatches=[],rbuggyQSA=[],(support.qsa=rnative.test(doc.querySelectorAll))&&(assert(function(div){docElem.appendChild(div).innerHTML="<a id='"+expando+"'></a><select id='"+expando+"-\f]' msallowcapture=''><option selected=''></option></select>",div.querySelectorAll("[msallowcapture^='']").length&&rbuggyQSA.push("[*^$]="+whitespace+"*(?:''|\"\")"),div.querySelectorAll("[selected]").length||rbuggyQSA.push("\\["+whitespace+"*(?:value|"+booleans+")"),div.querySelectorAll("[id~="+expando+"-]").length||rbuggyQSA.push("~="),div.querySelectorAll(":checked").length||rbuggyQSA.push(":checked"),div.querySelectorAll("a#"+expando+"+*").length||rbuggyQSA.push(".#.+[+~]")}),assert(function(div){var input=doc.createElement("input");input.setAttribute("type","hidden"),div.appendChild(input).setAttribute("name","D"),div.querySelectorAll("[name=d]").length&&rbuggyQSA.push("name"+whitespace+"*[*^$|!~]?="),div.querySelectorAll(":enabled").length||rbuggyQSA.push(":enabled",":disabled"),div.querySelectorAll("*,:x"),rbuggyQSA.push(",.*:")})),(support.matchesSelector=rnative.test(matches=docElem.matches||docElem.webkitMatchesSelector||docElem.mozMatchesSelector||docElem.oMatchesSelector||docElem.msMatchesSelector))&&assert(function(div){support.disconnectedMatch=matches.call(div,"div"),matches.call(div,"[s!='']:x"),rbuggyMatches.push("!=",pseudos)}),rbuggyQSA=rbuggyQSA.length&&new RegExp(rbuggyQSA.join("|")),rbuggyMatches=rbuggyMatches.length&&new RegExp(rbuggyMatches.join("|")),hasCompare=rnative.test(docElem.compareDocumentPosition),contains=hasCompare||rnative.test(docElem.contains)?function(a,b){var adown=9===a.nodeType?a.documentElement:a,bup=b&&b.parentNode;return a===bup||!(!bup||1!==bup.nodeType||!(adown.contains?adown.contains(bup):a.compareDocumentPosition&&16&a.compareDocumentPosition(bup)))}:function(a,b){if(b)for(;b=b.parentNode;)if(b===a)return!0;return!1},sortOrder=hasCompare?function(a,b){if(a===b)return hasDuplicate=!0,0;var compare=!a.compareDocumentPosition-!b.compareDocumentPosition;return compare?compare:(compare=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&compare||!support.sortDetached&&b.compareDocumentPosition(a)===compare?a===doc||a.ownerDocument===preferredDoc&&contains(preferredDoc,a)?-1:b===doc||b.ownerDocument===preferredDoc&&contains(preferredDoc,b)?1:sortInput?indexOf(sortInput,a)-indexOf(sortInput,b):0:4&compare?-1:1)}:function(a,b){if(a===b)return hasDuplicate=!0,0;var cur,i=0,aup=a.parentNode,bup=b.parentNode,ap=[a],bp=[b];if(!aup||!bup)return a===doc?-1:b===doc?1:aup?-1:bup?1:sortInput?indexOf(sortInput,a)-indexOf(sortInput,b):0;if(aup===bup)return siblingCheck(a,b);for(cur=a;cur=cur.parentNode;)ap.unshift(cur);for(cur=b;cur=cur.parentNode;)bp.unshift(cur);for(;ap[i]===bp[i];)i++;return i?siblingCheck(ap[i],bp[i]):ap[i]===preferredDoc?-1:bp[i]===preferredDoc?1:0},doc):document},Sizzle.matches=function(expr,elements){return Sizzle(expr,null,null,elements)},Sizzle.matchesSelector=function(elem,expr){if((elem.ownerDocument||elem)!==document&&setDocument(elem),expr=expr.replace(rattributeQuotes,"='$1']"),support.matchesSelector&&documentIsHTML&&(!rbuggyMatches||!rbuggyMatches.test(expr))&&(!rbuggyQSA||!rbuggyQSA.test(expr)))try{var ret=matches.call(elem,expr);if(ret||support.disconnectedMatch||elem.document&&11!==elem.document.nodeType)return ret}catch(e){}return Sizzle(expr,document,null,[elem]).length>0},Sizzle.contains=function(context,elem){return(context.ownerDocument||context)!==document&&setDocument(context),contains(context,elem)},Sizzle.attr=function(elem,name){(elem.ownerDocument||elem)!==document&&setDocument(elem);var fn=Expr.attrHandle[name.toLowerCase()],val=fn&&hasOwn.call(Expr.attrHandle,name.toLowerCase())?fn(elem,name,!documentIsHTML):void 0;return void 0!==val?val:support.attributes||!documentIsHTML?elem.getAttribute(name):(val=elem.getAttributeNode(name))&&val.specified?val.value:null},Sizzle.error=function(msg){throw new Error("Syntax error, unrecognized expression: "+msg)},Sizzle.uniqueSort=function(results){var elem,duplicates=[],j=0,i=0;if(hasDuplicate=!support.detectDuplicates,sortInput=!support.sortStable&&results.slice(0),results.sort(sortOrder),hasDuplicate){for(;elem=results[i++];)elem===results[i]&&(j=duplicates.push(i));for(;j--;)results.splice(duplicates[j],1)}return sortInput=null,results},getText=Sizzle.getText=function(elem){var node,ret="",i=0,nodeType=elem.nodeType;if(nodeType){if(1===nodeType||9===nodeType||11===nodeType){if("string"==typeof elem.textContent)return elem.textContent;for(elem=elem.firstChild;elem;elem=elem.nextSibling)ret+=getText(elem)}else if(3===nodeType||4===nodeType)return elem.nodeValue}else for(;node=elem[i++];)ret+=getText(node);return ret},Expr=Sizzle.selectors={cacheLength:50,createPseudo:markFunction,match:matchExpr,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(match){return match[1]=match[1].replace(runescape,funescape),match[3]=(match[3]||match[4]||match[5]||"").replace(runescape,funescape),"~="===match[2]&&(match[3]=" "+match[3]+" "),match.slice(0,4)},CHILD:function(match){return match[1]=match[1].toLowerCase(),"nth"===match[1].slice(0,3)?(match[3]||Sizzle.error(match[0]),match[4]=+(match[4]?match[5]+(match[6]||1):2*("even"===match[3]||"odd"===match[3])),match[5]=+(match[7]+match[8]||"odd"===match[3])):match[3]&&Sizzle.error(match[0]),match},PSEUDO:function(match){var excess,unquoted=!match[6]&&match[2];return matchExpr.CHILD.test(match[0])?null:(match[3]?match[2]=match[4]||match[5]||"":unquoted&&rpseudo.test(unquoted)&&(excess=tokenize(unquoted,!0))&&(excess=unquoted.indexOf(")",unquoted.length-excess)-unquoted.length)&&(match[0]=match[0].slice(0,excess),match[2]=unquoted.slice(0,excess)),match.slice(0,3))}},filter:{TAG:function(nodeNameSelector){var nodeName=nodeNameSelector.replace(runescape,funescape).toLowerCase();return"*"===nodeNameSelector?function(){return!0}:function(elem){return elem.nodeName&&elem.nodeName.toLowerCase()===nodeName}},CLASS:function(className){var pattern=classCache[className+" "];return pattern||(pattern=new RegExp("(^|"+whitespace+")"+className+"("+whitespace+"|$)"))&&classCache(className,function(elem){return pattern.test("string"==typeof elem.className&&elem.className||"undefined"!=typeof elem.getAttribute&&elem.getAttribute("class")||"")})},ATTR:function(name,operator,check){return function(elem){var result=Sizzle.attr(elem,name);return null==result?"!="===operator:operator?(result+="","="===operator?result===check:"!="===operator?result!==check:"^="===operator?check&&0===result.indexOf(check):"*="===operator?check&&result.indexOf(check)>-1:"$="===operator?check&&result.slice(-check.length)===check:"~="===operator?(" "+result.replace(rwhitespace," ")+" ").indexOf(check)>-1:"|="===operator?result===check||result.slice(0,check.length+1)===check+"-":!1):!0}},CHILD:function(type,what,argument,first,last){var simple="nth"!==type.slice(0,3),forward="last"!==type.slice(-4),ofType="of-type"===what;return 1===first&&0===last?function(elem){return!!elem.parentNode}:function(elem,context,xml){var cache,outerCache,node,diff,nodeIndex,start,dir=simple!==forward?"nextSibling":"previousSibling",parent=elem.parentNode,name=ofType&&elem.nodeName.toLowerCase(),useCache=!xml&&!ofType;if(parent){if(simple){for(;dir;){for(node=elem;node=node[dir];)if(ofType?node.nodeName.toLowerCase()===name:1===node.nodeType)return!1;start=dir="only"===type&&!start&&"nextSibling"}return!0}if(start=[forward?parent.firstChild:parent.lastChild],forward&&useCache){for(outerCache=parent[expando]||(parent[expando]={}),cache=outerCache[type]||[],nodeIndex=cache[0]===dirruns&&cache[1],diff=cache[0]===dirruns&&cache[2],node=nodeIndex&&parent.childNodes[nodeIndex];node=++nodeIndex&&node&&node[dir]||(diff=nodeIndex=0)||start.pop();)if(1===node.nodeType&&++diff&&node===elem){outerCache[type]=[dirruns,nodeIndex,diff];break}}else if(useCache&&(cache=(elem[expando]||(elem[expando]={}))[type])&&cache[0]===dirruns)diff=cache[1];else for(;(node=++nodeIndex&&node&&node[dir]||(diff=nodeIndex=0)||start.pop())&&((ofType?node.nodeName.toLowerCase()!==name:1!==node.nodeType)||!++diff||(useCache&&((node[expando]||(node[expando]={}))[type]=[dirruns,diff]),node!==elem)););return diff-=last,diff===first||diff%first===0&&diff/first>=0}}},PSEUDO:function(pseudo,argument){var args,fn=Expr.pseudos[pseudo]||Expr.setFilters[pseudo.toLowerCase()]||Sizzle.error("unsupported pseudo: "+pseudo);return fn[expando]?fn(argument):fn.length>1?(args=[pseudo,pseudo,"",argument],Expr.setFilters.hasOwnProperty(pseudo.toLowerCase())?markFunction(function(seed,matches){for(var idx,matched=fn(seed,argument),i=matched.length;i--;)idx=indexOf(seed,matched[i]),seed[idx]=!(matches[idx]=matched[i])}):function(elem){return fn(elem,0,args)}):fn}},pseudos:{not:markFunction(function(selector){var input=[],results=[],matcher=compile(selector.replace(rtrim,"$1"));return matcher[expando]?markFunction(function(seed,matches,context,xml){for(var elem,unmatched=matcher(seed,null,xml,[]),i=seed.length;i--;)(elem=unmatched[i])&&(seed[i]=!(matches[i]=elem))}):function(elem,context,xml){return input[0]=elem,matcher(input,null,xml,results),input[0]=null,!results.pop()}}),has:markFunction(function(selector){return function(elem){return Sizzle(selector,elem).length>0}}),contains:markFunction(function(text){return text=text.replace(runescape,funescape),function(elem){return(elem.textContent||elem.innerText||getText(elem)).indexOf(text)>-1}}),lang:markFunction(function(lang){return ridentifier.test(lang||"")||Sizzle.error("unsupported lang: "+lang),lang=lang.replace(runescape,funescape).toLowerCase(),function(elem){var elemLang;do if(elemLang=documentIsHTML?elem.lang:elem.getAttribute("xml:lang")||elem.getAttribute("lang"))return elemLang=elemLang.toLowerCase(),elemLang===lang||0===elemLang.indexOf(lang+"-");while((elem=elem.parentNode)&&1===elem.nodeType);return!1}}),target:function(elem){var hash=window.location&&window.location.hash;return hash&&hash.slice(1)===elem.id},root:function(elem){return elem===docElem},focus:function(elem){return elem===document.activeElement&&(!document.hasFocus||document.hasFocus())&&!!(elem.type||elem.href||~elem.tabIndex)},enabled:function(elem){return elem.disabled===!1},disabled:function(elem){return elem.disabled===!0},checked:function(elem){var nodeName=elem.nodeName.toLowerCase();return"input"===nodeName&&!!elem.checked||"option"===nodeName&&!!elem.selected},selected:function(elem){return elem.parentNode&&elem.parentNode.selectedIndex,elem.selected===!0},empty:function(elem){for(elem=elem.firstChild;elem;elem=elem.nextSibling)if(elem.nodeType<6)return!1;return!0},parent:function(elem){return!Expr.pseudos.empty(elem)},header:function(elem){return rheader.test(elem.nodeName)},input:function(elem){return rinputs.test(elem.nodeName)},button:function(elem){var name=elem.nodeName.toLowerCase();return"input"===name&&"button"===elem.type||"button"===name},text:function(elem){var attr;return"input"===elem.nodeName.toLowerCase()&&"text"===elem.type&&(null==(attr=elem.getAttribute("type"))||"text"===attr.toLowerCase())},first:createPositionalPseudo(function(){return[0]}),last:createPositionalPseudo(function(matchIndexes,length){return[length-1]}),eq:createPositionalPseudo(function(matchIndexes,length,argument){return[0>argument?argument+length:argument]}),even:createPositionalPseudo(function(matchIndexes,length){for(var i=0;length>i;i+=2)matchIndexes.push(i);return matchIndexes}),odd:createPositionalPseudo(function(matchIndexes,length){for(var i=1;length>i;i+=2)matchIndexes.push(i);return matchIndexes}),lt:createPositionalPseudo(function(matchIndexes,length,argument){for(var i=0>argument?argument+length:argument;--i>=0;)matchIndexes.push(i);return matchIndexes}),gt:createPositionalPseudo(function(matchIndexes,length,argument){for(var i=0>argument?argument+length:argument;++i<length;)matchIndexes.push(i);return matchIndexes})}},Expr.pseudos.nth=Expr.pseudos.eq;for(i in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})Expr.pseudos[i]=createInputPseudo(i);for(i in{submit:!0,reset:!0})Expr.pseudos[i]=createButtonPseudo(i);return setFilters.prototype=Expr.filters=Expr.pseudos,Expr.setFilters=new setFilters,tokenize=Sizzle.tokenize=function(selector,parseOnly){var matched,match,tokens,type,soFar,groups,preFilters,cached=tokenCache[selector+" "];if(cached)return parseOnly?0:cached.slice(0);for(soFar=selector,groups=[],preFilters=Expr.preFilter;soFar;){(!matched||(match=rcomma.exec(soFar)))&&(match&&(soFar=soFar.slice(match[0].length)||soFar),groups.push(tokens=[])),matched=!1,(match=rcombinators.exec(soFar))&&(matched=match.shift(),tokens.push({value:matched,type:match[0].replace(rtrim," ")}),soFar=soFar.slice(matched.length));for(type in Expr.filter)!(match=matchExpr[type].exec(soFar))||preFilters[type]&&!(match=preFilters[type](match))||(matched=match.shift(),tokens.push({value:matched,type:type,matches:match}),soFar=soFar.slice(matched.length));if(!matched)break}return parseOnly?soFar.length:soFar?Sizzle.error(selector):tokenCache(selector,groups).slice(0)},compile=Sizzle.compile=function(selector,match){var i,setMatchers=[],elementMatchers=[],cached=compilerCache[selector+" "];if(!cached){for(match||(match=tokenize(selector)),i=match.length;i--;)cached=matcherFromTokens(match[i]),cached[expando]?setMatchers.push(cached):elementMatchers.push(cached);cached=compilerCache(selector,matcherFromGroupMatchers(elementMatchers,setMatchers)),cached.selector=selector}return cached},select=Sizzle.select=function(selector,context,results,seed){var i,tokens,token,type,find,compiled="function"==typeof selector&&selector,match=!seed&&tokenize(selector=compiled.selector||selector);if(results=results||[],1===match.length){if(tokens=match[0]=match[0].slice(0),tokens.length>2&&"ID"===(token=tokens[0]).type&&support.getById&&9===context.nodeType&&documentIsHTML&&Expr.relative[tokens[1].type]){if(context=(Expr.find.ID(token.matches[0].replace(runescape,funescape),context)||[])[0],!context)return results;compiled&&(context=context.parentNode),selector=selector.slice(tokens.shift().value.length)}for(i=matchExpr.needsContext.test(selector)?0:tokens.length;i--&&(token=tokens[i],!Expr.relative[type=token.type]);)if((find=Expr.find[type])&&(seed=find(token.matches[0].replace(runescape,funescape),rsibling.test(tokens[0].type)&&testContext(context.parentNode)||context))){if(tokens.splice(i,1),selector=seed.length&&toSelector(tokens),!selector)return push.apply(results,seed),results;break}}return(compiled||compile(selector,match))(seed,context,!documentIsHTML,results,rsibling.test(selector)&&testContext(context.parentNode)||context),results},support.sortStable=expando.split("").sort(sortOrder).join("")===expando,support.detectDuplicates=!!hasDuplicate,setDocument(),support.sortDetached=assert(function(div1){return 1&div1.compareDocumentPosition(document.createElement("div"))}),assert(function(div){return div.innerHTML="<a href='#'></a>","#"===div.firstChild.getAttribute("href")})||addHandle("type|href|height|width",function(elem,name,isXML){return isXML?void 0:elem.getAttribute(name,"type"===name.toLowerCase()?1:2)}),support.attributes&&assert(function(div){return div.innerHTML="<input/>",div.firstChild.setAttribute("value",""),""===div.firstChild.getAttribute("value")})||addHandle("value",function(elem,name,isXML){return isXML||"input"!==elem.nodeName.toLowerCase()?void 0:elem.defaultValue}),assert(function(div){return null==div.getAttribute("disabled")})||addHandle(booleans,function(elem,name,isXML){var val;return isXML?void 0:elem[name]===!0?name.toLowerCase():(val=elem.getAttributeNode(name))&&val.specified?val.value:null}),Sizzle}(window);jQuery.find=Sizzle,jQuery.expr=Sizzle.selectors,jQuery.expr[":"]=jQuery.expr.pseudos,jQuery.unique=Sizzle.uniqueSort,jQuery.text=Sizzle.getText,jQuery.isXMLDoc=Sizzle.isXML,jQuery.contains=Sizzle.contains;var rneedsContext=jQuery.expr.match.needsContext,rsingleTag=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,risSimple=/^.[^:#\[\.,]*$/;jQuery.filter=function(expr,elems,not){var elem=elems[0];return not&&(expr=":not("+expr+")"),1===elems.length&&1===elem.nodeType?jQuery.find.matchesSelector(elem,expr)?[elem]:[]:jQuery.find.matches(expr,jQuery.grep(elems,function(elem){return 1===elem.nodeType}))},jQuery.fn.extend({find:function(selector){var i,len=this.length,ret=[],self=this;if("string"!=typeof selector)return this.pushStack(jQuery(selector).filter(function(){for(i=0;len>i;i++)if(jQuery.contains(self[i],this))return!0}));for(i=0;len>i;i++)jQuery.find(selector,self[i],ret);return ret=this.pushStack(len>1?jQuery.unique(ret):ret),ret.selector=this.selector?this.selector+" "+selector:selector,ret},filter:function(selector){return this.pushStack(winnow(this,selector||[],!1))},not:function(selector){return this.pushStack(winnow(this,selector||[],!0))},is:function(selector){return!!winnow(this,"string"==typeof selector&&rneedsContext.test(selector)?jQuery(selector):selector||[],!1).length}});var rootjQuery,rquickExpr=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,init=jQuery.fn.init=function(selector,context){var match,elem;if(!selector)return this;if("string"==typeof selector){if(match="<"===selector[0]&&">"===selector[selector.length-1]&&selector.length>=3?[null,selector,null]:rquickExpr.exec(selector),!match||!match[1]&&context)return!context||context.jquery?(context||rootjQuery).find(selector):this.constructor(context).find(selector);if(match[1]){if(context=context instanceof jQuery?context[0]:context,jQuery.merge(this,jQuery.parseHTML(match[1],context&&context.nodeType?context.ownerDocument||context:document,!0)),rsingleTag.test(match[1])&&jQuery.isPlainObject(context))for(match in context)jQuery.isFunction(this[match])?this[match](context[match]):this.attr(match,context[match]);return this}return elem=document.getElementById(match[2]),elem&&elem.parentNode&&(this.length=1,this[0]=elem),this.context=document,this.selector=selector,this}return selector.nodeType?(this.context=this[0]=selector,this.length=1,this):jQuery.isFunction(selector)?"undefined"!=typeof rootjQuery.ready?rootjQuery.ready(selector):selector(jQuery):(void 0!==selector.selector&&(this.selector=selector.selector,this.context=selector.context),jQuery.makeArray(selector,this))};init.prototype=jQuery.fn,rootjQuery=jQuery(document);var rparentsprev=/^(?:parents|prev(?:Until|All))/,guaranteedUnique={children:!0,contents:!0,next:!0,prev:!0};jQuery.extend({dir:function(elem,dir,until){for(var matched=[],truncate=void 0!==until;(elem=elem[dir])&&9!==elem.nodeType;)if(1===elem.nodeType){if(truncate&&jQuery(elem).is(until))break;matched.push(elem)}return matched},sibling:function(n,elem){for(var matched=[];n;n=n.nextSibling)1===n.nodeType&&n!==elem&&matched.push(n);return matched}}),jQuery.fn.extend({has:function(target){var targets=jQuery(target,this),l=targets.length;return this.filter(function(){for(var i=0;l>i;i++)if(jQuery.contains(this,targets[i]))return!0})},closest:function(selectors,context){for(var cur,i=0,l=this.length,matched=[],pos=rneedsContext.test(selectors)||"string"!=typeof selectors?jQuery(selectors,context||this.context):0;l>i;i++)for(cur=this[i];cur&&cur!==context;cur=cur.parentNode)if(cur.nodeType<11&&(pos?pos.index(cur)>-1:1===cur.nodeType&&jQuery.find.matchesSelector(cur,selectors))){matched.push(cur);break}return this.pushStack(matched.length>1?jQuery.unique(matched):matched)},index:function(elem){return elem?"string"==typeof elem?indexOf.call(jQuery(elem),this[0]):indexOf.call(this,elem.jquery?elem[0]:elem):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(selector,context){return this.pushStack(jQuery.unique(jQuery.merge(this.get(),jQuery(selector,context))))},addBack:function(selector){return this.add(null==selector?this.prevObject:this.prevObject.filter(selector))}}),jQuery.each({parent:function(elem){var parent=elem.parentNode;return parent&&11!==parent.nodeType?parent:null},parents:function(elem){return jQuery.dir(elem,"parentNode")},parentsUntil:function(elem,i,until){return jQuery.dir(elem,"parentNode",until)},next:function(elem){return sibling(elem,"nextSibling")},prev:function(elem){return sibling(elem,"previousSibling")},nextAll:function(elem){return jQuery.dir(elem,"nextSibling")},prevAll:function(elem){return jQuery.dir(elem,"previousSibling")},nextUntil:function(elem,i,until){return jQuery.dir(elem,"nextSibling",until)},prevUntil:function(elem,i,until){return jQuery.dir(elem,"previousSibling",until)},siblings:function(elem){return jQuery.sibling((elem.parentNode||{}).firstChild,elem)},children:function(elem){return jQuery.sibling(elem.firstChild)},contents:function(elem){return elem.contentDocument||jQuery.merge([],elem.childNodes)}},function(name,fn){jQuery.fn[name]=function(until,selector){var matched=jQuery.map(this,fn,until);return"Until"!==name.slice(-5)&&(selector=until),selector&&"string"==typeof selector&&(matched=jQuery.filter(selector,matched)),this.length>1&&(guaranteedUnique[name]||jQuery.unique(matched),rparentsprev.test(name)&&matched.reverse()),this.pushStack(matched)}});var rnotwhite=/\S+/g,optionsCache={};jQuery.Callbacks=function(options){options="string"==typeof options?optionsCache[options]||createOptions(options):jQuery.extend({},options);var memory,fired,firing,firingStart,firingLength,firingIndex,list=[],stack=!options.once&&[],fire=function(data){for(memory=options.memory&&data,fired=!0,firingIndex=firingStart||0,firingStart=0,firingLength=list.length,firing=!0;list&&firingLength>firingIndex;firingIndex++)if(list[firingIndex].apply(data[0],data[1])===!1&&options.stopOnFalse){memory=!1;break}firing=!1,list&&(stack?stack.length&&fire(stack.shift()):memory?list=[]:self.disable())},self={add:function(){if(list){var start=list.length;!function add(args){jQuery.each(args,function(_,arg){var type=jQuery.type(arg);"function"===type?options.unique&&self.has(arg)||list.push(arg):arg&&arg.length&&"string"!==type&&add(arg)})}(arguments),firing?firingLength=list.length:memory&&(firingStart=start,fire(memory))}return this},remove:function(){return list&&jQuery.each(arguments,function(_,arg){for(var index;(index=jQuery.inArray(arg,list,index))>-1;)list.splice(index,1),firing&&(firingLength>=index&&firingLength--,firingIndex>=index&&firingIndex--)}),this},has:function(fn){return fn?jQuery.inArray(fn,list)>-1:!(!list||!list.length)},empty:function(){return list=[],firingLength=0,this},disable:function(){return list=stack=memory=void 0,this},disabled:function(){return!list},lock:function(){return stack=void 0,memory||self.disable(),this},locked:function(){return!stack},fireWith:function(context,args){return!list||fired&&!stack||(args=args||[],args=[context,args.slice?args.slice():args],firing?stack.push(args):fire(args)),this},fire:function(){return self.fireWith(this,arguments),this},fired:function(){return!!fired}};return self},jQuery.extend({Deferred:function(func){var tuples=[["resolve","done",jQuery.Callbacks("once memory"),"resolved"],["reject","fail",jQuery.Callbacks("once memory"),"rejected"],["notify","progress",jQuery.Callbacks("memory")]],state="pending",promise={state:function(){return state},always:function(){return deferred.done(arguments).fail(arguments),this},then:function(){var fns=arguments;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);returned&&jQuery.isFunction(returned.promise)?returned.promise().done(newDefer.resolve).fail(newDefer.reject).progress(newDefer.notify):newDefer[tuple[0]+"With"](this===promise?newDefer.promise():this,fn?[returned]:arguments)})}),fns=null}).promise()},promise:function(obj){return null!=obj?jQuery.extend(obj,promise):promise}},deferred={};return promise.pipe=promise.then,jQuery.each(tuples,function(i,tuple){var list=tuple[2],stateString=tuple[3];promise[tuple[1]]=list.add,stateString&&list.add(function(){state=stateString},tuples[1^i][2].disable,tuples[2][2].lock),deferred[tuple[0]]=function(){return deferred[tuple[0]+"With"](this===deferred?promise:this,arguments),this},deferred[tuple[0]+"With"]=list.fireWith}),promise.promise(deferred),func&&func.call(deferred,deferred),deferred},when:function(subordinate){var progressValues,progressContexts,resolveContexts,i=0,resolveValues=slice.call(arguments),length=resolveValues.length,remaining=1!==length||subordinate&&jQuery.isFunction(subordinate.promise)?length:0,deferred=1===remaining?subordinate:jQuery.Deferred(),updateFunc=function(i,contexts,values){return function(value){contexts[i]=this,values[i]=arguments.length>1?slice.call(arguments):value,values===progressValues?deferred.notifyWith(contexts,values):--remaining||deferred.resolveWith(contexts,values)}};if(length>1)for(progressValues=new Array(length),progressContexts=new Array(length),resolveContexts=new Array(length);length>i;i++)resolveValues[i]&&jQuery.isFunction(resolveValues[i].promise)?resolveValues[i].promise().done(updateFunc(i,resolveContexts,resolveValues)).fail(deferred.reject).progress(updateFunc(i,progressContexts,progressValues)):--remaining;return remaining||deferred.resolveWith(resolveContexts,resolveValues),deferred.promise()}});var readyList;jQuery.fn.ready=function(fn){return jQuery.ready.promise().done(fn),this},jQuery.extend({isReady:!1,readyWait:1,holdReady:function(hold){hold?jQuery.readyWait++:jQuery.ready(!0)},ready:function(wait){(wait===!0?--jQuery.readyWait:jQuery.isReady)||(jQuery.isReady=!0,wait!==!0&&--jQuery.readyWait>0||(readyList.resolveWith(document,[jQuery]),jQuery.fn.triggerHandler&&(jQuery(document).triggerHandler("ready"),jQuery(document).off("ready"))))}}),jQuery.ready.promise=function(obj){return readyList||(readyList=jQuery.Deferred(),"complete"===document.readyState?setTimeout(jQuery.ready):(document.addEventListener("DOMContentLoaded",completed,!1),window.addEventListener("load",completed,!1))),readyList.promise(obj)},jQuery.ready.promise();var access=jQuery.access=function(elems,fn,key,value,chainable,emptyGet,raw){var i=0,len=elems.length,bulk=null==key;if("object"===jQuery.type(key)){chainable=!0;for(i in key)jQuery.access(elems,fn,i,key[i],!0,emptyGet,raw)}else if(void 0!==value&&(chainable=!0,jQuery.isFunction(value)||(raw=!0),bulk&&(raw?(fn.call(elems,value),fn=null):(bulk=fn,fn=function(elem,key,value){return bulk.call(jQuery(elem),value)})),fn))for(;len>i;i++)fn(elems[i],key,raw?value:value.call(elems[i],i,fn(elems[i],key)));return chainable?elems:bulk?fn.call(elems):len?fn(elems[0],key):emptyGet};jQuery.acceptData=function(owner){return 1===owner.nodeType||9===owner.nodeType||!+owner.nodeType},Data.uid=1,Data.accepts=jQuery.acceptData,Data.prototype={key:function(owner){if(!Data.accepts(owner))return 0;var descriptor={},unlock=owner[this.expando];if(!unlock){unlock=Data.uid++;try{descriptor[this.expando]={value:unlock},Object.defineProperties(owner,descriptor)}catch(e){descriptor[this.expando]=unlock,jQuery.extend(owner,descriptor)}}return this.cache[unlock]||(this.cache[unlock]={}),unlock},set:function(owner,data,value){var prop,unlock=this.key(owner),cache=this.cache[unlock];if("string"==typeof data)cache[data]=value;else if(jQuery.isEmptyObject(cache))jQuery.extend(this.cache[unlock],data);else for(prop in data)cache[prop]=data[prop];return cache},get:function(owner,key){var cache=this.cache[this.key(owner)];return void 0===key?cache:cache[key]},access:function(owner,key,value){var stored;return void 0===key||key&&"string"==typeof key&&void 0===value?(stored=this.get(owner,key),void 0!==stored?stored:this.get(owner,jQuery.camelCase(key))):(this.set(owner,key,value),void 0!==value?value:key)},remove:function(owner,key){var i,name,camel,unlock=this.key(owner),cache=this.cache[unlock];if(void 0===key)this.cache[unlock]={};else{jQuery.isArray(key)?name=key.concat(key.map(jQuery.camelCase)):(camel=jQuery.camelCase(key),key in cache?name=[key,camel]:(name=camel,name=name in cache?[name]:name.match(rnotwhite)||[])),i=name.length;for(;i--;)delete cache[name[i]]}},hasData:function(owner){return!jQuery.isEmptyObject(this.cache[owner[this.expando]]||{})},discard:function(owner){owner[this.expando]&&delete this.cache[owner[this.expando]]}};var data_priv=new Data,data_user=new Data,rbrace=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,rmultiDash=/([A-Z])/g;jQuery.extend({hasData:function(elem){return data_user.hasData(elem)||data_priv.hasData(elem)},data:function(elem,name,data){return data_user.access(elem,name,data)},removeData:function(elem,name){data_user.remove(elem,name)},_data:function(elem,name,data){return data_priv.access(elem,name,data)},_removeData:function(elem,name){data_priv.remove(elem,name)}}),jQuery.fn.extend({data:function(key,value){var i,name,data,elem=this[0],attrs=elem&&elem.attributes;if(void 0===key){if(this.length&&(data=data_user.get(elem),1===elem.nodeType&&!data_priv.get(elem,"hasDataAttrs"))){for(i=attrs.length;i--;)attrs[i]&&(name=attrs[i].name,0===name.indexOf("data-")&&(name=jQuery.camelCase(name.slice(5)),dataAttr(elem,name,data[name])));data_priv.set(elem,"hasDataAttrs",!0)}return data}return"object"==typeof key?this.each(function(){data_user.set(this,key)}):access(this,function(value){var data,camelKey=jQuery.camelCase(key);
  if(elem&&void 0===value){if(data=data_user.get(elem,key),void 0!==data)return data;if(data=data_user.get(elem,camelKey),void 0!==data)return data;if(data=dataAttr(elem,camelKey,void 0),void 0!==data)return data}else this.each(function(){var data=data_user.get(this,camelKey);data_user.set(this,camelKey,value),-1!==key.indexOf("-")&&void 0!==data&&data_user.set(this,key,value)})},null,value,arguments.length>1,null,!0)},removeData:function(key){return this.each(function(){data_user.remove(this,key)})}}),jQuery.extend({queue:function(elem,type,data){var queue;return elem?(type=(type||"fx")+"queue",queue=data_priv.get(elem,type),data&&(!queue||jQuery.isArray(data)?queue=data_priv.access(elem,type,jQuery.makeArray(data)):queue.push(data)),queue||[]):void 0},dequeue:function(elem,type){type=type||"fx";var queue=jQuery.queue(elem,type),startLength=queue.length,fn=queue.shift(),hooks=jQuery._queueHooks(elem,type),next=function(){jQuery.dequeue(elem,type)};"inprogress"===fn&&(fn=queue.shift(),startLength--),fn&&("fx"===type&&queue.unshift("inprogress"),delete hooks.stop,fn.call(elem,next,hooks)),!startLength&&hooks&&hooks.empty.fire()},_queueHooks:function(elem,type){var key=type+"queueHooks";return data_priv.get(elem,key)||data_priv.access(elem,key,{empty:jQuery.Callbacks("once memory").add(function(){data_priv.remove(elem,[type+"queue",key])})})}}),jQuery.fn.extend({queue:function(type,data){var setter=2;return"string"!=typeof type&&(data=type,type="fx",setter--),arguments.length<setter?jQuery.queue(this[0],type):void 0===data?this:this.each(function(){var queue=jQuery.queue(this,type,data);jQuery._queueHooks(this,type),"fx"===type&&"inprogress"!==queue[0]&&jQuery.dequeue(this,type)})},dequeue:function(type){return this.each(function(){jQuery.dequeue(this,type)})},clearQueue:function(type){return this.queue(type||"fx",[])},promise:function(type,obj){var tmp,count=1,defer=jQuery.Deferred(),elements=this,i=this.length,resolve=function(){--count||defer.resolveWith(elements,[elements])};for("string"!=typeof type&&(obj=type,type=void 0),type=type||"fx";i--;)tmp=data_priv.get(elements[i],type+"queueHooks"),tmp&&tmp.empty&&(count++,tmp.empty.add(resolve));return resolve(),defer.promise(obj)}});var pnum=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,cssExpand=["Top","Right","Bottom","Left"],isHidden=function(elem,el){return elem=el||elem,"none"===jQuery.css(elem,"display")||!jQuery.contains(elem.ownerDocument,elem)},rcheckableType=/^(?:checkbox|radio)$/i;!function(){var fragment=document.createDocumentFragment(),div=fragment.appendChild(document.createElement("div")),input=document.createElement("input");input.setAttribute("type","radio"),input.setAttribute("checked","checked"),input.setAttribute("name","t"),div.appendChild(input),support.checkClone=div.cloneNode(!0).cloneNode(!0).lastChild.checked,div.innerHTML="<textarea>x</textarea>",support.noCloneChecked=!!div.cloneNode(!0).lastChild.defaultValue}();var strundefined="undefined";support.focusinBubbles="onfocusin"in window;var rkeyEvent=/^key/,rmouseEvent=/^(?:mouse|pointer|contextmenu)|click/,rfocusMorph=/^(?:focusinfocus|focusoutblur)$/,rtypenamespace=/^([^.]*)(?:\.(.+)|)$/;jQuery.event={global:{},add:function(elem,types,handler,data,selector){var handleObjIn,eventHandle,tmp,events,t,handleObj,special,handlers,type,namespaces,origType,elemData=data_priv.get(elem);if(elemData)for(handler.handler&&(handleObjIn=handler,handler=handleObjIn.handler,selector=handleObjIn.selector),handler.guid||(handler.guid=jQuery.guid++),(events=elemData.events)||(events=elemData.events={}),(eventHandle=elemData.handle)||(eventHandle=elemData.handle=function(e){return typeof jQuery!==strundefined&&jQuery.event.triggered!==e.type?jQuery.event.dispatch.apply(elem,arguments):void 0}),types=(types||"").match(rnotwhite)||[""],t=types.length;t--;)tmp=rtypenamespace.exec(types[t])||[],type=origType=tmp[1],namespaces=(tmp[2]||"").split(".").sort(),type&&(special=jQuery.event.special[type]||{},type=(selector?special.delegateType:special.bindType)||type,special=jQuery.event.special[type]||{},handleObj=jQuery.extend({type:type,origType:origType,data:data,handler:handler,guid:handler.guid,selector:selector,needsContext:selector&&jQuery.expr.match.needsContext.test(selector),namespace:namespaces.join(".")},handleObjIn),(handlers=events[type])||(handlers=events[type]=[],handlers.delegateCount=0,special.setup&&special.setup.call(elem,data,namespaces,eventHandle)!==!1||elem.addEventListener&&elem.addEventListener(type,eventHandle,!1)),special.add&&(special.add.call(elem,handleObj),handleObj.handler.guid||(handleObj.handler.guid=handler.guid)),selector?handlers.splice(handlers.delegateCount++,0,handleObj):handlers.push(handleObj),jQuery.event.global[type]=!0)},remove:function(elem,types,handler,selector,mappedTypes){var j,origCount,tmp,events,t,handleObj,special,handlers,type,namespaces,origType,elemData=data_priv.hasData(elem)&&data_priv.get(elem);if(elemData&&(events=elemData.events)){for(types=(types||"").match(rnotwhite)||[""],t=types.length;t--;)if(tmp=rtypenamespace.exec(types[t])||[],type=origType=tmp[1],namespaces=(tmp[2]||"").split(".").sort(),type){for(special=jQuery.event.special[type]||{},type=(selector?special.delegateType:special.bindType)||type,handlers=events[type]||[],tmp=tmp[2]&&new RegExp("(^|\\.)"+namespaces.join("\\.(?:.*\\.|)")+"(\\.|$)"),origCount=j=handlers.length;j--;)handleObj=handlers[j],!mappedTypes&&origType!==handleObj.origType||handler&&handler.guid!==handleObj.guid||tmp&&!tmp.test(handleObj.namespace)||selector&&selector!==handleObj.selector&&("**"!==selector||!handleObj.selector)||(handlers.splice(j,1),handleObj.selector&&handlers.delegateCount--,special.remove&&special.remove.call(elem,handleObj));origCount&&!handlers.length&&(special.teardown&&special.teardown.call(elem,namespaces,elemData.handle)!==!1||jQuery.removeEvent(elem,type,elemData.handle),delete events[type])}else for(type in events)jQuery.event.remove(elem,type+types[t],handler,selector,!0);jQuery.isEmptyObject(events)&&(delete elemData.handle,data_priv.remove(elem,"events"))}},trigger:function(event,data,elem,onlyHandlers){var i,cur,tmp,bubbleType,ontype,handle,special,eventPath=[elem||document],type=hasOwn.call(event,"type")?event.type:event,namespaces=hasOwn.call(event,"namespace")?event.namespace.split("."):[];if(cur=tmp=elem=elem||document,3!==elem.nodeType&&8!==elem.nodeType&&!rfocusMorph.test(type+jQuery.event.triggered)&&(type.indexOf(".")>=0&&(namespaces=type.split("."),type=namespaces.shift(),namespaces.sort()),ontype=type.indexOf(":")<0&&"on"+type,event=event[jQuery.expando]?event:new jQuery.Event(type,"object"==typeof event&&event),event.isTrigger=onlyHandlers?2:3,event.namespace=namespaces.join("."),event.namespace_re=event.namespace?new RegExp("(^|\\.)"+namespaces.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,event.result=void 0,event.target||(event.target=elem),data=null==data?[event]:jQuery.makeArray(data,[event]),special=jQuery.event.special[type]||{},onlyHandlers||!special.trigger||special.trigger.apply(elem,data)!==!1)){if(!onlyHandlers&&!special.noBubble&&!jQuery.isWindow(elem)){for(bubbleType=special.delegateType||type,rfocusMorph.test(bubbleType+type)||(cur=cur.parentNode);cur;cur=cur.parentNode)eventPath.push(cur),tmp=cur;tmp===(elem.ownerDocument||document)&&eventPath.push(tmp.defaultView||tmp.parentWindow||window)}for(i=0;(cur=eventPath[i++])&&!event.isPropagationStopped();)event.type=i>1?bubbleType:special.bindType||type,handle=(data_priv.get(cur,"events")||{})[event.type]&&data_priv.get(cur,"handle"),handle&&handle.apply(cur,data),handle=ontype&&cur[ontype],handle&&handle.apply&&jQuery.acceptData(cur)&&(event.result=handle.apply(cur,data),event.result===!1&&event.preventDefault());return event.type=type,onlyHandlers||event.isDefaultPrevented()||special._default&&special._default.apply(eventPath.pop(),data)!==!1||!jQuery.acceptData(elem)||ontype&&jQuery.isFunction(elem[type])&&!jQuery.isWindow(elem)&&(tmp=elem[ontype],tmp&&(elem[ontype]=null),jQuery.event.triggered=type,elem[type](),jQuery.event.triggered=void 0,tmp&&(elem[ontype]=tmp)),event.result}},dispatch:function(event){event=jQuery.event.fix(event);var i,j,ret,matched,handleObj,handlerQueue=[],args=slice.call(arguments),handlers=(data_priv.get(this,"events")||{})[event.type]||[],special=jQuery.event.special[event.type]||{};if(args[0]=event,event.delegateTarget=this,!special.preDispatch||special.preDispatch.call(this,event)!==!1){for(handlerQueue=jQuery.event.handlers.call(this,event,handlers),i=0;(matched=handlerQueue[i++])&&!event.isPropagationStopped();)for(event.currentTarget=matched.elem,j=0;(handleObj=matched.handlers[j++])&&!event.isImmediatePropagationStopped();)(!event.namespace_re||event.namespace_re.test(handleObj.namespace))&&(event.handleObj=handleObj,event.data=handleObj.data,ret=((jQuery.event.special[handleObj.origType]||{}).handle||handleObj.handler).apply(matched.elem,args),void 0!==ret&&(event.result=ret)===!1&&(event.preventDefault(),event.stopPropagation()));return special.postDispatch&&special.postDispatch.call(this,event),event.result}},handlers:function(event,handlers){var i,matches,sel,handleObj,handlerQueue=[],delegateCount=handlers.delegateCount,cur=event.target;if(delegateCount&&cur.nodeType&&(!event.button||"click"!==event.type))for(;cur!==this;cur=cur.parentNode||this)if(cur.disabled!==!0||"click"!==event.type){for(matches=[],i=0;delegateCount>i;i++)handleObj=handlers[i],sel=handleObj.selector+" ",void 0===matches[sel]&&(matches[sel]=handleObj.needsContext?jQuery(sel,this).index(cur)>=0:jQuery.find(sel,this,null,[cur]).length),matches[sel]&&matches.push(handleObj);matches.length&&handlerQueue.push({elem:cur,handlers:matches})}return delegateCount<handlers.length&&handlerQueue.push({elem:this,handlers:handlers.slice(delegateCount)}),handlerQueue},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(event,original){return null==event.which&&(event.which=null!=original.charCode?original.charCode:original.keyCode),event}},mouseHooks:{props:"button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(event,original){var eventDoc,doc,body,button=original.button;return null==event.pageX&&null!=original.clientX&&(eventDoc=event.target.ownerDocument||document,doc=eventDoc.documentElement,body=eventDoc.body,event.pageX=original.clientX+(doc&&doc.scrollLeft||body&&body.scrollLeft||0)-(doc&&doc.clientLeft||body&&body.clientLeft||0),event.pageY=original.clientY+(doc&&doc.scrollTop||body&&body.scrollTop||0)-(doc&&doc.clientTop||body&&body.clientTop||0)),event.which||void 0===button||(event.which=1&button?1:2&button?3:4&button?2:0),event}},fix:function(event){if(event[jQuery.expando])return event;var i,prop,copy,type=event.type,originalEvent=event,fixHook=this.fixHooks[type];for(fixHook||(this.fixHooks[type]=fixHook=rmouseEvent.test(type)?this.mouseHooks:rkeyEvent.test(type)?this.keyHooks:{}),copy=fixHook.props?this.props.concat(fixHook.props):this.props,event=new jQuery.Event(originalEvent),i=copy.length;i--;)prop=copy[i],event[prop]=originalEvent[prop];return event.target||(event.target=document),3===event.target.nodeType&&(event.target=event.target.parentNode),fixHook.filter?fixHook.filter(event,originalEvent):event},special:{load:{noBubble:!0},focus:{trigger:function(){return this!==safeActiveElement()&&this.focus?(this.focus(),!1):void 0},delegateType:"focusin"},blur:{trigger:function(){return this===safeActiveElement()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return"checkbox"===this.type&&this.click&&jQuery.nodeName(this,"input")?(this.click(),!1):void 0},_default:function(event){return jQuery.nodeName(event.target,"a")}},beforeunload:{postDispatch:function(event){void 0!==event.result&&event.originalEvent&&(event.originalEvent.returnValue=event.result)}}},simulate:function(type,elem,event,bubble){var e=jQuery.extend(new jQuery.Event,event,{type:type,isSimulated:!0,originalEvent:{}});bubble?jQuery.event.trigger(e,null,elem):jQuery.event.dispatch.call(elem,e),e.isDefaultPrevented()&&event.preventDefault()}},jQuery.removeEvent=function(elem,type,handle){elem.removeEventListener&&elem.removeEventListener(type,handle,!1)},jQuery.Event=function(src,props){return this instanceof jQuery.Event?(src&&src.type?(this.originalEvent=src,this.type=src.type,this.isDefaultPrevented=src.defaultPrevented||void 0===src.defaultPrevented&&src.returnValue===!1?returnTrue:returnFalse):this.type=src,props&&jQuery.extend(this,props),this.timeStamp=src&&src.timeStamp||jQuery.now(),void(this[jQuery.expando]=!0)):new jQuery.Event(src,props)},jQuery.Event.prototype={isDefaultPrevented:returnFalse,isPropagationStopped:returnFalse,isImmediatePropagationStopped:returnFalse,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=returnTrue,e&&e.preventDefault&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=returnTrue,e&&e.stopPropagation&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=returnTrue,e&&e.stopImmediatePropagation&&e.stopImmediatePropagation(),this.stopPropagation()}},jQuery.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(orig,fix){jQuery.event.special[orig]={delegateType:fix,bindType:fix,handle:function(event){var ret,target=this,related=event.relatedTarget,handleObj=event.handleObj;return(!related||related!==target&&!jQuery.contains(target,related))&&(event.type=handleObj.origType,ret=handleObj.handler.apply(this,arguments),event.type=fix),ret}}}),support.focusinBubbles||jQuery.each({focus:"focusin",blur:"focusout"},function(orig,fix){var handler=function(event){jQuery.event.simulate(fix,event.target,jQuery.event.fix(event),!0)};jQuery.event.special[fix]={setup:function(){var doc=this.ownerDocument||this,attaches=data_priv.access(doc,fix);attaches||doc.addEventListener(orig,handler,!0),data_priv.access(doc,fix,(attaches||0)+1)},teardown:function(){var doc=this.ownerDocument||this,attaches=data_priv.access(doc,fix)-1;attaches?data_priv.access(doc,fix,attaches):(doc.removeEventListener(orig,handler,!0),data_priv.remove(doc,fix))}}}),jQuery.fn.extend({on:function(types,selector,data,fn,one){var origFn,type;if("object"==typeof types){"string"!=typeof selector&&(data=data||selector,selector=void 0);for(type in types)this.on(type,selector,data,types[type],one);return this}if(null==data&&null==fn?(fn=selector,data=selector=void 0):null==fn&&("string"==typeof selector?(fn=data,data=void 0):(fn=data,data=selector,selector=void 0)),fn===!1)fn=returnFalse;else if(!fn)return this;return 1===one&&(origFn=fn,fn=function(event){return jQuery().off(event),origFn.apply(this,arguments)},fn.guid=origFn.guid||(origFn.guid=jQuery.guid++)),this.each(function(){jQuery.event.add(this,types,fn,data,selector)})},one:function(types,selector,data,fn){return this.on(types,selector,data,fn,1)},off:function(types,selector,fn){var handleObj,type;if(types&&types.preventDefault&&types.handleObj)return handleObj=types.handleObj,jQuery(types.delegateTarget).off(handleObj.namespace?handleObj.origType+"."+handleObj.namespace:handleObj.origType,handleObj.selector,handleObj.handler),this;if("object"==typeof types){for(type in types)this.off(type,selector,types[type]);return this}return(selector===!1||"function"==typeof selector)&&(fn=selector,selector=void 0),fn===!1&&(fn=returnFalse),this.each(function(){jQuery.event.remove(this,types,fn,selector)})},trigger:function(type,data){return this.each(function(){jQuery.event.trigger(type,data,this)})},triggerHandler:function(type,data){var elem=this[0];return elem?jQuery.event.trigger(type,data,elem,!0):void 0}});var rxhtmlTag=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,rtagName=/<([\w:]+)/,rhtml=/<|&#?\w+;/,rnoInnerhtml=/<(?:script|style|link)/i,rchecked=/checked\s*(?:[^=]|=\s*.checked.)/i,rscriptType=/^$|\/(?:java|ecma)script/i,rscriptTypeMasked=/^true\/(.*)/,rcleanScript=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,wrapMap={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};wrapMap.optgroup=wrapMap.option,wrapMap.tbody=wrapMap.tfoot=wrapMap.colgroup=wrapMap.caption=wrapMap.thead,wrapMap.th=wrapMap.td,jQuery.extend({clone:function(elem,dataAndEvents,deepDataAndEvents){var i,l,srcElements,destElements,clone=elem.cloneNode(!0),inPage=jQuery.contains(elem.ownerDocument,elem);if(!(support.noCloneChecked||1!==elem.nodeType&&11!==elem.nodeType||jQuery.isXMLDoc(elem)))for(destElements=getAll(clone),srcElements=getAll(elem),i=0,l=srcElements.length;l>i;i++)fixInput(srcElements[i],destElements[i]);if(dataAndEvents)if(deepDataAndEvents)for(srcElements=srcElements||getAll(elem),destElements=destElements||getAll(clone),i=0,l=srcElements.length;l>i;i++)cloneCopyEvent(srcElements[i],destElements[i]);else cloneCopyEvent(elem,clone);return destElements=getAll(clone,"script"),destElements.length>0&&setGlobalEval(destElements,!inPage&&getAll(elem,"script")),clone},buildFragment:function(elems,context,scripts,selection){for(var elem,tmp,tag,wrap,contains,j,fragment=context.createDocumentFragment(),nodes=[],i=0,l=elems.length;l>i;i++)if(elem=elems[i],elem||0===elem)if("object"===jQuery.type(elem))jQuery.merge(nodes,elem.nodeType?[elem]:elem);else if(rhtml.test(elem)){for(tmp=tmp||fragment.appendChild(context.createElement("div")),tag=(rtagName.exec(elem)||["",""])[1].toLowerCase(),wrap=wrapMap[tag]||wrapMap._default,tmp.innerHTML=wrap[1]+elem.replace(rxhtmlTag,"<$1></$2>")+wrap[2],j=wrap[0];j--;)tmp=tmp.lastChild;jQuery.merge(nodes,tmp.childNodes),tmp=fragment.firstChild,tmp.textContent=""}else nodes.push(context.createTextNode(elem));for(fragment.textContent="",i=0;elem=nodes[i++];)if((!selection||-1===jQuery.inArray(elem,selection))&&(contains=jQuery.contains(elem.ownerDocument,elem),tmp=getAll(fragment.appendChild(elem),"script"),contains&&setGlobalEval(tmp),scripts))for(j=0;elem=tmp[j++];)rscriptType.test(elem.type||"")&&scripts.push(elem);return fragment},cleanData:function(elems){for(var data,elem,type,key,special=jQuery.event.special,i=0;void 0!==(elem=elems[i]);i++){if(jQuery.acceptData(elem)&&(key=elem[data_priv.expando],key&&(data=data_priv.cache[key]))){if(data.events)for(type in data.events)special[type]?jQuery.event.remove(elem,type):jQuery.removeEvent(elem,type,data.handle);data_priv.cache[key]&&delete data_priv.cache[key]}delete data_user.cache[elem[data_user.expando]]}}}),jQuery.fn.extend({text:function(value){return access(this,function(value){return void 0===value?jQuery.text(this):this.empty().each(function(){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&(this.textContent=value)})},null,value,arguments.length)},append:function(){return this.domManip(arguments,function(elem){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var target=manipulationTarget(this,elem);target.appendChild(elem)}})},prepend:function(){return this.domManip(arguments,function(elem){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var target=manipulationTarget(this,elem);target.insertBefore(elem,target.firstChild)}})},before:function(){return this.domManip(arguments,function(elem){this.parentNode&&this.parentNode.insertBefore(elem,this)})},after:function(){return this.domManip(arguments,function(elem){this.parentNode&&this.parentNode.insertBefore(elem,this.nextSibling)})},remove:function(selector,keepData){for(var elem,elems=selector?jQuery.filter(selector,this):this,i=0;null!=(elem=elems[i]);i++)keepData||1!==elem.nodeType||jQuery.cleanData(getAll(elem)),elem.parentNode&&(keepData&&jQuery.contains(elem.ownerDocument,elem)&&setGlobalEval(getAll(elem,"script")),elem.parentNode.removeChild(elem));return this},empty:function(){for(var elem,i=0;null!=(elem=this[i]);i++)1===elem.nodeType&&(jQuery.cleanData(getAll(elem,!1)),elem.textContent="");return this},clone:function(dataAndEvents,deepDataAndEvents){return dataAndEvents=null==dataAndEvents?!1:dataAndEvents,deepDataAndEvents=null==deepDataAndEvents?dataAndEvents:deepDataAndEvents,this.map(function(){return jQuery.clone(this,dataAndEvents,deepDataAndEvents)})},html:function(value){return access(this,function(value){var elem=this[0]||{},i=0,l=this.length;if(void 0===value&&1===elem.nodeType)return elem.innerHTML;if("string"==typeof value&&!rnoInnerhtml.test(value)&&!wrapMap[(rtagName.exec(value)||["",""])[1].toLowerCase()]){value=value.replace(rxhtmlTag,"<$1></$2>");try{for(;l>i;i++)elem=this[i]||{},1===elem.nodeType&&(jQuery.cleanData(getAll(elem,!1)),elem.innerHTML=value);elem=0}catch(e){}}elem&&this.empty().append(value)},null,value,arguments.length)},replaceWith:function(){var arg=arguments[0];return this.domManip(arguments,function(elem){arg=this.parentNode,jQuery.cleanData(getAll(this)),arg&&arg.replaceChild(elem,this)}),arg&&(arg.length||arg.nodeType)?this:this.remove()},detach:function(selector){return this.remove(selector,!0)},domManip:function(args,callback){args=concat.apply([],args);var fragment,first,scripts,hasScripts,node,doc,i=0,l=this.length,set=this,iNoClone=l-1,value=args[0],isFunction=jQuery.isFunction(value);if(isFunction||l>1&&"string"==typeof value&&!support.checkClone&&rchecked.test(value))return this.each(function(index){var self=set.eq(index);isFunction&&(args[0]=value.call(this,index,self.html())),self.domManip(args,callback)});if(l&&(fragment=jQuery.buildFragment(args,this[0].ownerDocument,!1,this),first=fragment.firstChild,1===fragment.childNodes.length&&(fragment=first),first)){for(scripts=jQuery.map(getAll(fragment,"script"),disableScript),hasScripts=scripts.length;l>i;i++)node=fragment,i!==iNoClone&&(node=jQuery.clone(node,!0,!0),hasScripts&&jQuery.merge(scripts,getAll(node,"script"))),callback.call(this[i],node,i);if(hasScripts)for(doc=scripts[scripts.length-1].ownerDocument,jQuery.map(scripts,restoreScript),i=0;hasScripts>i;i++)node=scripts[i],rscriptType.test(node.type||"")&&!data_priv.access(node,"globalEval")&&jQuery.contains(doc,node)&&(node.src?jQuery._evalUrl&&jQuery._evalUrl(node.src):jQuery.globalEval(node.textContent.replace(rcleanScript,"")))}return this}}),jQuery.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(name,original){jQuery.fn[name]=function(selector){for(var elems,ret=[],insert=jQuery(selector),last=insert.length-1,i=0;last>=i;i++)elems=i===last?this:this.clone(!0),jQuery(insert[i])[original](elems),push.apply(ret,elems.get());return this.pushStack(ret)}});var iframe,elemdisplay={},rmargin=/^margin/,rnumnonpx=new RegExp("^("+pnum+")(?!px)[a-z%]+$","i"),getStyles=function(elem){return elem.ownerDocument.defaultView.opener?elem.ownerDocument.defaultView.getComputedStyle(elem,null):window.getComputedStyle(elem,null)};!function(){function computePixelPositionAndBoxSizingReliable(){div.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute",div.innerHTML="",docElem.appendChild(container);var divStyle=window.getComputedStyle(div,null);pixelPositionVal="1%"!==divStyle.top,boxSizingReliableVal="4px"===divStyle.width,docElem.removeChild(container)}var pixelPositionVal,boxSizingReliableVal,docElem=document.documentElement,container=document.createElement("div"),div=document.createElement("div");div.style&&(div.style.backgroundClip="content-box",div.cloneNode(!0).style.backgroundClip="",support.clearCloneStyle="content-box"===div.style.backgroundClip,container.style.cssText="border:0;width:0;height:0;top:0;left:-9999px;margin-top:1px;position:absolute",container.appendChild(div),window.getComputedStyle&&jQuery.extend(support,{pixelPosition:function(){return computePixelPositionAndBoxSizingReliable(),pixelPositionVal},boxSizingReliable:function(){return null==boxSizingReliableVal&&computePixelPositionAndBoxSizingReliable(),boxSizingReliableVal},reliableMarginRight:function(){var ret,marginDiv=div.appendChild(document.createElement("div"));return marginDiv.style.cssText=div.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",marginDiv.style.marginRight=marginDiv.style.width="0",div.style.width="1px",docElem.appendChild(container),ret=!parseFloat(window.getComputedStyle(marginDiv,null).marginRight),docElem.removeChild(container),div.removeChild(marginDiv),ret}}))}(),jQuery.swap=function(elem,options,callback,args){var ret,name,old={};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 rdisplayswap=/^(none|table(?!-c[ea]).+)/,rnumsplit=new RegExp("^("+pnum+")(.*)$","i"),rrelNum=new RegExp("^([+-])=("+pnum+")","i"),cssShow={position:"absolute",visibility:"hidden",display:"block"},cssNormalTransform={letterSpacing:"0",fontWeight:"400"},cssPrefixes=["Webkit","O","Moz","ms"];jQuery.extend({cssHooks:{opacity:{get:function(elem,computed){if(computed){var ret=curCSS(elem,"opacity");return""===ret?"1":ret}}}},cssNumber:{columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(elem,name,value,extra){if(elem&&3!==elem.nodeType&&8!==elem.nodeType&&elem.style){var ret,type,hooks,origName=jQuery.camelCase(name),style=elem.style;return name=jQuery.cssProps[origName]||(jQuery.cssProps[origName]=vendorPropName(style,origName)),hooks=jQuery.cssHooks[name]||jQuery.cssHooks[origName],void 0===value?hooks&&"get"in hooks&&void 0!==(ret=hooks.get(elem,!1,extra))?ret:style[name]:(type=typeof value,"string"===type&&(ret=rrelNum.exec(value))&&(value=(ret[1]+1)*ret[2]+parseFloat(jQuery.css(elem,name)),type="number"),null!=value&&value===value&&("number"!==type||jQuery.cssNumber[origName]||(value+="px"),support.clearCloneStyle||""!==value||0!==name.indexOf("background")||(style[name]="inherit"),hooks&&"set"in hooks&&void 0===(value=hooks.set(elem,value,extra))||(style[name]=value)),void 0)}},css:function(elem,name,extra,styles){var val,num,hooks,origName=jQuery.camelCase(name);return name=jQuery.cssProps[origName]||(jQuery.cssProps[origName]=vendorPropName(elem.style,origName)),hooks=jQuery.cssHooks[name]||jQuery.cssHooks[origName],hooks&&"get"in hooks&&(val=hooks.get(elem,!0,extra)),void 0===val&&(val=curCSS(elem,name,styles)),"normal"===val&&name in cssNormalTransform&&(val=cssNormalTransform[name]),""===extra||extra?(num=parseFloat(val),extra===!0||jQuery.isNumeric(num)?num||0:val):val}}),jQuery.each(["height","width"],function(i,name){jQuery.cssHooks[name]={get:function(elem,computed,extra){return computed?rdisplayswap.test(jQuery.css(elem,"display"))&&0===elem.offsetWidth?jQuery.swap(elem,cssShow,function(){return getWidthOrHeight(elem,name,extra)}):getWidthOrHeight(elem,name,extra):void 0},set:function(elem,value,extra){var styles=extra&&getStyles(elem);return setPositiveNumber(elem,value,extra?augmentWidthOrHeight(elem,name,extra,"border-box"===jQuery.css(elem,"boxSizing",!1,styles),styles):0)}}}),jQuery.cssHooks.marginRight=addGetHookIf(support.reliableMarginRight,function(elem,computed){return computed?jQuery.swap(elem,{display:"inline-block"},curCSS,[elem,"marginRight"]):void 0}),jQuery.each({margin:"",padding:"",border:"Width"},function(prefix,suffix){jQuery.cssHooks[prefix+suffix]={expand:function(value){for(var i=0,expanded={},parts="string"==typeof value?value.split(" "):[value];4>i;i++)expanded[prefix+cssExpand[i]+suffix]=parts[i]||parts[i-2]||parts[0];return expanded}},rmargin.test(prefix)||(jQuery.cssHooks[prefix+suffix].set=setPositiveNumber)}),jQuery.fn.extend({css:function(name,value){return access(this,function(elem,name,value){var styles,len,map={},i=0;if(jQuery.isArray(name)){for(styles=getStyles(elem),len=name.length;len>i;i++)map[name[i]]=jQuery.css(elem,name[i],!1,styles);return map}return void 0!==value?jQuery.style(elem,name,value):jQuery.css(elem,name)},name,value,arguments.length>1)},show:function(){return showHide(this,!0)},hide:function(){return showHide(this)},toggle:function(state){return"boolean"==typeof state?state?this.show():this.hide():this.each(function(){isHidden(this)?jQuery(this).show():jQuery(this).hide()})}}),jQuery.Tween=Tween,Tween.prototype={constructor:Tween,init:function(elem,options,prop,end,easing,unit){this.elem=elem,this.prop=prop,this.easing=easing||"swing",this.options=options,this.start=this.now=this.cur(),this.end=end,this.unit=unit||(jQuery.cssNumber[prop]?"":"px")},cur:function(){var hooks=Tween.propHooks[this.prop];return hooks&&hooks.get?hooks.get(this):Tween.propHooks._default.get(this)},run:function(percent){var eased,hooks=Tween.propHooks[this.prop];return this.options.duration?this.pos=eased=jQuery.easing[this.easing](percent,this.options.duration*percent,0,1,this.options.duration):this.pos=eased=percent,this.now=(this.end-this.start)*eased+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),hooks&&hooks.set?hooks.set(this):Tween.propHooks._default.set(this),this}},Tween.prototype.init.prototype=Tween.prototype,Tween.propHooks={_default:{get:function(tween){var result;return null==tween.elem[tween.prop]||tween.elem.style&&null!=tween.elem.style[tween.prop]?(result=jQuery.css(tween.elem,tween.prop,""),result&&"auto"!==result?result:0):tween.elem[tween.prop]},set:function(tween){jQuery.fx.step[tween.prop]?jQuery.fx.step[tween.prop](tween):tween.elem.style&&(null!=tween.elem.style[jQuery.cssProps[tween.prop]]||jQuery.cssHooks[tween.prop])?jQuery.style(tween.elem,tween.prop,tween.now+tween.unit):tween.elem[tween.prop]=tween.now}}},Tween.propHooks.scrollTop=Tween.propHooks.scrollLeft={set:function(tween){tween.elem.nodeType&&tween.elem.parentNode&&(tween.elem[tween.prop]=tween.now)}},jQuery.easing={linear:function(p){return p},swing:function(p){return.5-Math.cos(p*Math.PI)/2}},jQuery.fx=Tween.prototype.init,jQuery.fx.step={};var fxNow,timerId,rfxtypes=/^(?:toggle|show|hide)$/,rfxnum=new RegExp("^(?:([+-])=|)("+pnum+")([a-z%]*)$","i"),rrun=/queueHooks$/,animationPrefilters=[defaultPrefilter],tweeners={"*":[function(prop,value){var tween=this.createTween(prop,value),target=tween.cur(),parts=rfxnum.exec(value),unit=parts&&parts[3]||(jQuery.cssNumber[prop]?"":"px"),start=(jQuery.cssNumber[prop]||"px"!==unit&&+target)&&rfxnum.exec(jQuery.css(tween.elem,prop)),scale=1,maxIterations=20;if(start&&start[3]!==unit){unit=unit||start[3],parts=parts||[],start=+target||1;do scale=scale||".5",start/=scale,jQuery.style(tween.elem,prop,start+unit);while(scale!==(scale=tween.cur()/target)&&1!==scale&&--maxIterations)}return parts&&(start=tween.start=+start||+target||0,tween.unit=unit,tween.end=parts[1]?start+(parts[1]+1)*parts[2]:+parts[2]),tween}]};jQuery.Animation=jQuery.extend(Animation,{tweener:function(props,callback){jQuery.isFunction(props)?(callback=props,props=["*"]):props=props.split(" ");for(var prop,index=0,length=props.length;length>index;index++)prop=props[index],tweeners[prop]=tweeners[prop]||[],tweeners[prop].unshift(callback)},prefilter:function(callback,prepend){prepend?animationPrefilters.unshift(callback):animationPrefilters.push(callback)}}),jQuery.speed=function(speed,easing,fn){var opt=speed&&"object"==typeof speed?jQuery.extend({},speed):{complete:fn||!fn&&easing||jQuery.isFunction(speed)&&speed,duration:speed,easing:fn&&easing||easing&&!jQuery.isFunction(easing)&&easing};return opt.duration=jQuery.fx.off?0:"number"==typeof opt.duration?opt.duration:opt.duration in jQuery.fx.speeds?jQuery.fx.speeds[opt.duration]:jQuery.fx.speeds._default,
  (null==opt.queue||opt.queue===!0)&&(opt.queue="fx"),opt.old=opt.complete,opt.complete=function(){jQuery.isFunction(opt.old)&&opt.old.call(this),opt.queue&&jQuery.dequeue(this,opt.queue)},opt},jQuery.fn.extend({fadeTo:function(speed,to,easing,callback){return this.filter(isHidden).css("opacity",0).show().end().animate({opacity:to},speed,easing,callback)},animate:function(prop,speed,easing,callback){var empty=jQuery.isEmptyObject(prop),optall=jQuery.speed(speed,easing,callback),doAnimation=function(){var anim=Animation(this,jQuery.extend({},prop),optall);(empty||data_priv.get(this,"finish"))&&anim.stop(!0)};return doAnimation.finish=doAnimation,empty||optall.queue===!1?this.each(doAnimation):this.queue(optall.queue,doAnimation)},stop:function(type,clearQueue,gotoEnd){var stopQueue=function(hooks){var stop=hooks.stop;delete hooks.stop,stop(gotoEnd)};return"string"!=typeof type&&(gotoEnd=clearQueue,clearQueue=type,type=void 0),clearQueue&&type!==!1&&this.queue(type||"fx",[]),this.each(function(){var dequeue=!0,index=null!=type&&type+"queueHooks",timers=jQuery.timers,data=data_priv.get(this);if(index)data[index]&&data[index].stop&&stopQueue(data[index]);else for(index in data)data[index]&&data[index].stop&&rrun.test(index)&&stopQueue(data[index]);for(index=timers.length;index--;)timers[index].elem!==this||null!=type&&timers[index].queue!==type||(timers[index].anim.stop(gotoEnd),dequeue=!1,timers.splice(index,1));(dequeue||!gotoEnd)&&jQuery.dequeue(this,type)})},finish:function(type){return type!==!1&&(type=type||"fx"),this.each(function(){var index,data=data_priv.get(this),queue=data[type+"queue"],hooks=data[type+"queueHooks"],timers=jQuery.timers,length=queue?queue.length:0;for(data.finish=!0,jQuery.queue(this,type,[]),hooks&&hooks.stop&&hooks.stop.call(this,!0),index=timers.length;index--;)timers[index].elem===this&&timers[index].queue===type&&(timers[index].anim.stop(!0),timers.splice(index,1));for(index=0;length>index;index++)queue[index]&&queue[index].finish&&queue[index].finish.call(this);delete data.finish})}}),jQuery.each(["toggle","show","hide"],function(i,name){var cssFn=jQuery.fn[name];jQuery.fn[name]=function(speed,easing,callback){return null==speed||"boolean"==typeof speed?cssFn.apply(this,arguments):this.animate(genFx(name,!0),speed,easing,callback)}}),jQuery.each({slideDown:genFx("show"),slideUp:genFx("hide"),slideToggle:genFx("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(name,props){jQuery.fn[name]=function(speed,easing,callback){return this.animate(props,speed,easing,callback)}}),jQuery.timers=[],jQuery.fx.tick=function(){var timer,i=0,timers=jQuery.timers;for(fxNow=jQuery.now();i<timers.length;i++)timer=timers[i],timer()||timers[i]!==timer||timers.splice(i--,1);timers.length||jQuery.fx.stop(),fxNow=void 0},jQuery.fx.timer=function(timer){jQuery.timers.push(timer),timer()?jQuery.fx.start():jQuery.timers.pop()},jQuery.fx.interval=13,jQuery.fx.start=function(){timerId||(timerId=setInterval(jQuery.fx.tick,jQuery.fx.interval))},jQuery.fx.stop=function(){clearInterval(timerId),timerId=null},jQuery.fx.speeds={slow:600,fast:200,_default:400},jQuery.fn.delay=function(time,type){return time=jQuery.fx?jQuery.fx.speeds[time]||time:time,type=type||"fx",this.queue(type,function(next,hooks){var timeout=setTimeout(next,time);hooks.stop=function(){clearTimeout(timeout)}})},function(){var input=document.createElement("input"),select=document.createElement("select"),opt=select.appendChild(document.createElement("option"));input.type="checkbox",support.checkOn=""!==input.value,support.optSelected=opt.selected,select.disabled=!0,support.optDisabled=!opt.disabled,input=document.createElement("input"),input.value="t",input.type="radio",support.radioValue="t"===input.value}();var nodeHook,boolHook,attrHandle=jQuery.expr.attrHandle;jQuery.fn.extend({attr:function(name,value){return access(this,jQuery.attr,name,value,arguments.length>1)},removeAttr:function(name){return this.each(function(){jQuery.removeAttr(this,name)})}}),jQuery.extend({attr:function(elem,name,value){var hooks,ret,nType=elem.nodeType;if(elem&&3!==nType&&8!==nType&&2!==nType)return typeof elem.getAttribute===strundefined?jQuery.prop(elem,name,value):(1===nType&&jQuery.isXMLDoc(elem)||(name=name.toLowerCase(),hooks=jQuery.attrHooks[name]||(jQuery.expr.match.bool.test(name)?boolHook:nodeHook)),void 0===value?hooks&&"get"in hooks&&null!==(ret=hooks.get(elem,name))?ret:(ret=jQuery.find.attr(elem,name),null==ret?void 0:ret):null!==value?hooks&&"set"in hooks&&void 0!==(ret=hooks.set(elem,value,name))?ret:(elem.setAttribute(name,value+""),value):void jQuery.removeAttr(elem,name))},removeAttr:function(elem,value){var name,propName,i=0,attrNames=value&&value.match(rnotwhite);if(attrNames&&1===elem.nodeType)for(;name=attrNames[i++];)propName=jQuery.propFix[name]||name,jQuery.expr.match.bool.test(name)&&(elem[propName]=!1),elem.removeAttribute(name)},attrHooks:{type:{set:function(elem,value){if(!support.radioValue&&"radio"===value&&jQuery.nodeName(elem,"input")){var val=elem.value;return elem.setAttribute("type",value),val&&(elem.value=val),value}}}}}),boolHook={set:function(elem,value,name){return value===!1?jQuery.removeAttr(elem,name):elem.setAttribute(name,name),name}},jQuery.each(jQuery.expr.match.bool.source.match(/\w+/g),function(i,name){var getter=attrHandle[name]||jQuery.find.attr;attrHandle[name]=function(elem,name,isXML){var ret,handle;return isXML||(handle=attrHandle[name],attrHandle[name]=ret,ret=null!=getter(elem,name,isXML)?name.toLowerCase():null,attrHandle[name]=handle),ret}});var rfocusable=/^(?:input|select|textarea|button)$/i;jQuery.fn.extend({prop:function(name,value){return access(this,jQuery.prop,name,value,arguments.length>1)},removeProp:function(name){return this.each(function(){delete this[jQuery.propFix[name]||name]})}}),jQuery.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(elem,name,value){var ret,hooks,notxml,nType=elem.nodeType;if(elem&&3!==nType&&8!==nType&&2!==nType)return notxml=1!==nType||!jQuery.isXMLDoc(elem),notxml&&(name=jQuery.propFix[name]||name,hooks=jQuery.propHooks[name]),void 0!==value?hooks&&"set"in hooks&&void 0!==(ret=hooks.set(elem,value,name))?ret:elem[name]=value:hooks&&"get"in hooks&&null!==(ret=hooks.get(elem,name))?ret:elem[name]},propHooks:{tabIndex:{get:function(elem){return elem.hasAttribute("tabindex")||rfocusable.test(elem.nodeName)||elem.href?elem.tabIndex:-1}}}}),support.optSelected||(jQuery.propHooks.selected={get:function(elem){var parent=elem.parentNode;return parent&&parent.parentNode&&parent.parentNode.selectedIndex,null}}),jQuery.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){jQuery.propFix[this.toLowerCase()]=this});var rclass=/[\t\r\n\f]/g;jQuery.fn.extend({addClass:function(value){var classes,elem,cur,clazz,j,finalValue,proceed="string"==typeof value&&value,i=0,len=this.length;if(jQuery.isFunction(value))return this.each(function(j){jQuery(this).addClass(value.call(this,j,this.className))});if(proceed)for(classes=(value||"").match(rnotwhite)||[];len>i;i++)if(elem=this[i],cur=1===elem.nodeType&&(elem.className?(" "+elem.className+" ").replace(rclass," "):" ")){for(j=0;clazz=classes[j++];)cur.indexOf(" "+clazz+" ")<0&&(cur+=clazz+" ");finalValue=jQuery.trim(cur),elem.className!==finalValue&&(elem.className=finalValue)}return this},removeClass:function(value){var classes,elem,cur,clazz,j,finalValue,proceed=0===arguments.length||"string"==typeof value&&value,i=0,len=this.length;if(jQuery.isFunction(value))return this.each(function(j){jQuery(this).removeClass(value.call(this,j,this.className))});if(proceed)for(classes=(value||"").match(rnotwhite)||[];len>i;i++)if(elem=this[i],cur=1===elem.nodeType&&(elem.className?(" "+elem.className+" ").replace(rclass," "):"")){for(j=0;clazz=classes[j++];)for(;cur.indexOf(" "+clazz+" ")>=0;)cur=cur.replace(" "+clazz+" "," ");finalValue=value?jQuery.trim(cur):"",elem.className!==finalValue&&(elem.className=finalValue)}return this},toggleClass:function(value,stateVal){var type=typeof value;return"boolean"==typeof stateVal&&"string"===type?stateVal?this.addClass(value):this.removeClass(value):jQuery.isFunction(value)?this.each(function(i){jQuery(this).toggleClass(value.call(this,i,this.className,stateVal),stateVal)}):this.each(function(){if("string"===type)for(var className,i=0,self=jQuery(this),classNames=value.match(rnotwhite)||[];className=classNames[i++];)self.hasClass(className)?self.removeClass(className):self.addClass(className);else(type===strundefined||"boolean"===type)&&(this.className&&data_priv.set(this,"__className__",this.className),this.className=this.className||value===!1?"":data_priv.get(this,"__className__")||"")})},hasClass:function(selector){for(var className=" "+selector+" ",i=0,l=this.length;l>i;i++)if(1===this[i].nodeType&&(" "+this[i].className+" ").replace(rclass," ").indexOf(className)>=0)return!0;return!1}});var rreturn=/\r/g;jQuery.fn.extend({val:function(value){var hooks,ret,isFunction,elem=this[0];{if(arguments.length)return isFunction=jQuery.isFunction(value),this.each(function(i){var val;1===this.nodeType&&(val=isFunction?value.call(this,i,jQuery(this).val()):value,null==val?val="":"number"==typeof val?val+="":jQuery.isArray(val)&&(val=jQuery.map(val,function(value){return null==value?"":value+""})),hooks=jQuery.valHooks[this.type]||jQuery.valHooks[this.nodeName.toLowerCase()],hooks&&"set"in hooks&&void 0!==hooks.set(this,val,"value")||(this.value=val))});if(elem)return hooks=jQuery.valHooks[elem.type]||jQuery.valHooks[elem.nodeName.toLowerCase()],hooks&&"get"in hooks&&void 0!==(ret=hooks.get(elem,"value"))?ret:(ret=elem.value,"string"==typeof ret?ret.replace(rreturn,""):null==ret?"":ret)}}}),jQuery.extend({valHooks:{option:{get:function(elem){var val=jQuery.find.attr(elem,"value");return null!=val?val:jQuery.trim(jQuery.text(elem))}},select:{get:function(elem){for(var value,option,options=elem.options,index=elem.selectedIndex,one="select-one"===elem.type||0>index,values=one?null:[],max=one?index+1:options.length,i=0>index?max:one?index:0;max>i;i++)if(option=options[i],(option.selected||i===index)&&(support.optDisabled?!option.disabled:null===option.getAttribute("disabled"))&&(!option.parentNode.disabled||!jQuery.nodeName(option.parentNode,"optgroup"))){if(value=jQuery(option).val(),one)return value;values.push(value)}return values},set:function(elem,value){for(var optionSet,option,options=elem.options,values=jQuery.makeArray(value),i=options.length;i--;)option=options[i],(option.selected=jQuery.inArray(option.value,values)>=0)&&(optionSet=!0);return optionSet||(elem.selectedIndex=-1),values}}}}),jQuery.each(["radio","checkbox"],function(){jQuery.valHooks[this]={set:function(elem,value){return jQuery.isArray(value)?elem.checked=jQuery.inArray(jQuery(elem).val(),value)>=0:void 0}},support.checkOn||(jQuery.valHooks[this].get=function(elem){return null===elem.getAttribute("value")?"on":elem.value})}),jQuery.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(i,name){jQuery.fn[name]=function(data,fn){return arguments.length>0?this.on(name,null,data,fn):this.trigger(name)}}),jQuery.fn.extend({hover:function(fnOver,fnOut){return this.mouseenter(fnOver).mouseleave(fnOut||fnOver)},bind:function(types,data,fn){return this.on(types,null,data,fn)},unbind:function(types,fn){return this.off(types,null,fn)},delegate:function(selector,types,data,fn){return this.on(types,selector,data,fn)},undelegate:function(selector,types,fn){return 1===arguments.length?this.off(selector,"**"):this.off(types,selector||"**",fn)}});var nonce=jQuery.now(),rquery=/\?/;jQuery.parseJSON=function(data){return JSON.parse(data+"")},jQuery.parseXML=function(data){var xml,tmp;if(!data||"string"!=typeof data)return null;try{tmp=new DOMParser,xml=tmp.parseFromString(data,"text/xml")}catch(e){xml=void 0}return(!xml||xml.getElementsByTagName("parsererror").length)&&jQuery.error("Invalid XML: "+data),xml};var rhash=/#.*$/,rts=/([?&])_=[^&]*/,rheaders=/^(.*?):[ \t]*([^\r\n]*)$/gm,rlocalProtocol=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,rnoContent=/^(?:GET|HEAD)$/,rprotocol=/^\/\//,rurl=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,prefilters={},transports={},allTypes="*/".concat("*"),ajaxLocation=window.location.href,ajaxLocParts=rurl.exec(ajaxLocation.toLowerCase())||[];jQuery.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:ajaxLocation,type:"GET",isLocal:rlocalProtocol.test(ajaxLocParts[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":allTypes,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":jQuery.parseJSON,"text xml":jQuery.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(target,settings){return settings?ajaxExtend(ajaxExtend(target,jQuery.ajaxSettings),settings):ajaxExtend(jQuery.ajaxSettings,target)},ajaxPrefilter:addToPrefiltersOrTransports(prefilters),ajaxTransport:addToPrefiltersOrTransports(transports),ajax:function(url,options){function done(status,nativeStatusText,responses,headers){var isSuccess,success,error,response,modified,statusText=nativeStatusText;2!==state&&(state=2,timeoutTimer&&clearTimeout(timeoutTimer),transport=void 0,responseHeadersString=headers||"",jqXHR.readyState=status>0?4:0,isSuccess=status>=200&&300>status||304===status,responses&&(response=ajaxHandleResponses(s,jqXHR,responses)),response=ajaxConvert(s,response,jqXHR,isSuccess),isSuccess?(s.ifModified&&(modified=jqXHR.getResponseHeader("Last-Modified"),modified&&(jQuery.lastModified[cacheURL]=modified),modified=jqXHR.getResponseHeader("etag"),modified&&(jQuery.etag[cacheURL]=modified)),204===status||"HEAD"===s.type?statusText="nocontent":304===status?statusText="notmodified":(statusText=response.state,success=response.data,error=response.error,isSuccess=!error)):(error=statusText,(status||!statusText)&&(statusText="error",0>status&&(status=0))),jqXHR.status=status,jqXHR.statusText=(nativeStatusText||statusText)+"",isSuccess?deferred.resolveWith(callbackContext,[success,statusText,jqXHR]):deferred.rejectWith(callbackContext,[jqXHR,statusText,error]),jqXHR.statusCode(statusCode),statusCode=void 0,fireGlobals&&globalEventContext.trigger(isSuccess?"ajaxSuccess":"ajaxError",[jqXHR,s,isSuccess?success:error]),completeDeferred.fireWith(callbackContext,[jqXHR,statusText]),fireGlobals&&(globalEventContext.trigger("ajaxComplete",[jqXHR,s]),--jQuery.active||jQuery.event.trigger("ajaxStop")))}"object"==typeof url&&(options=url,url=void 0),options=options||{};var transport,cacheURL,responseHeadersString,responseHeaders,timeoutTimer,parts,fireGlobals,i,s=jQuery.ajaxSetup({},options),callbackContext=s.context||s,globalEventContext=s.context&&(callbackContext.nodeType||callbackContext.jquery)?jQuery(callbackContext):jQuery.event,deferred=jQuery.Deferred(),completeDeferred=jQuery.Callbacks("once memory"),statusCode=s.statusCode||{},requestHeaders={},requestHeadersNames={},state=0,strAbort="canceled",jqXHR={readyState:0,getResponseHeader:function(key){var match;if(2===state){if(!responseHeaders)for(responseHeaders={};match=rheaders.exec(responseHeadersString);)responseHeaders[match[1].toLowerCase()]=match[2];match=responseHeaders[key.toLowerCase()]}return null==match?null:match},getAllResponseHeaders:function(){return 2===state?responseHeadersString:null},setRequestHeader:function(name,value){var lname=name.toLowerCase();return state||(name=requestHeadersNames[lname]=requestHeadersNames[lname]||name,requestHeaders[name]=value),this},overrideMimeType:function(type){return state||(s.mimeType=type),this},statusCode:function(map){var code;if(map)if(2>state)for(code in map)statusCode[code]=[statusCode[code],map[code]];else jqXHR.always(map[jqXHR.status]);return this},abort:function(statusText){var finalText=statusText||strAbort;return transport&&transport.abort(finalText),done(0,finalText),this}};if(deferred.promise(jqXHR).complete=completeDeferred.add,jqXHR.success=jqXHR.done,jqXHR.error=jqXHR.fail,s.url=((url||s.url||ajaxLocation)+"").replace(rhash,"").replace(rprotocol,ajaxLocParts[1]+"//"),s.type=options.method||options.type||s.method||s.type,s.dataTypes=jQuery.trim(s.dataType||"*").toLowerCase().match(rnotwhite)||[""],null==s.crossDomain&&(parts=rurl.exec(s.url.toLowerCase()),s.crossDomain=!(!parts||parts[1]===ajaxLocParts[1]&&parts[2]===ajaxLocParts[2]&&(parts[3]||("http:"===parts[1]?"80":"443"))===(ajaxLocParts[3]||("http:"===ajaxLocParts[1]?"80":"443")))),s.data&&s.processData&&"string"!=typeof s.data&&(s.data=jQuery.param(s.data,s.traditional)),inspectPrefiltersOrTransports(prefilters,s,options,jqXHR),2===state)return jqXHR;fireGlobals=jQuery.event&&s.global,fireGlobals&&0===jQuery.active++&&jQuery.event.trigger("ajaxStart"),s.type=s.type.toUpperCase(),s.hasContent=!rnoContent.test(s.type),cacheURL=s.url,s.hasContent||(s.data&&(cacheURL=s.url+=(rquery.test(cacheURL)?"&":"?")+s.data,delete s.data),s.cache===!1&&(s.url=rts.test(cacheURL)?cacheURL.replace(rts,"$1_="+nonce++):cacheURL+(rquery.test(cacheURL)?"&":"?")+"_="+nonce++)),s.ifModified&&(jQuery.lastModified[cacheURL]&&jqXHR.setRequestHeader("If-Modified-Since",jQuery.lastModified[cacheURL]),jQuery.etag[cacheURL]&&jqXHR.setRequestHeader("If-None-Match",jQuery.etag[cacheURL])),(s.data&&s.hasContent&&s.contentType!==!1||options.contentType)&&jqXHR.setRequestHeader("Content-Type",s.contentType),jqXHR.setRequestHeader("Accept",s.dataTypes[0]&&s.accepts[s.dataTypes[0]]?s.accepts[s.dataTypes[0]]+("*"!==s.dataTypes[0]?", "+allTypes+"; q=0.01":""):s.accepts["*"]);for(i in s.headers)jqXHR.setRequestHeader(i,s.headers[i]);if(s.beforeSend&&(s.beforeSend.call(callbackContext,jqXHR,s)===!1||2===state))return jqXHR.abort();strAbort="abort";for(i in{success:1,error:1,complete:1})jqXHR[i](s[i]);if(transport=inspectPrefiltersOrTransports(transports,s,options,jqXHR)){jqXHR.readyState=1,fireGlobals&&globalEventContext.trigger("ajaxSend",[jqXHR,s]),s.async&&s.timeout>0&&(timeoutTimer=setTimeout(function(){jqXHR.abort("timeout")},s.timeout));try{state=1,transport.send(requestHeaders,done)}catch(e){if(!(2>state))throw e;done(-1,e)}}else done(-1,"No Transport");return jqXHR},getJSON:function(url,data,callback){return jQuery.get(url,data,callback,"json")},getScript:function(url,callback){return jQuery.get(url,void 0,callback,"script")}}),jQuery.each(["get","post"],function(i,method){jQuery[method]=function(url,data,callback,type){return jQuery.isFunction(data)&&(type=type||callback,callback=data,data=void 0),jQuery.ajax({url:url,type:method,dataType:type,data:data,success:callback})}}),jQuery._evalUrl=function(url){return jQuery.ajax({url:url,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},jQuery.fn.extend({wrapAll:function(html){var wrap;return jQuery.isFunction(html)?this.each(function(i){jQuery(this).wrapAll(html.call(this,i))}):(this[0]&&(wrap=jQuery(html,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&wrap.insertBefore(this[0]),wrap.map(function(){for(var elem=this;elem.firstElementChild;)elem=elem.firstElementChild;return elem}).append(this)),this)},wrapInner:function(html){return jQuery.isFunction(html)?this.each(function(i){jQuery(this).wrapInner(html.call(this,i))}):this.each(function(){var self=jQuery(this),contents=self.contents();contents.length?contents.wrapAll(html):self.append(html)})},wrap:function(html){var isFunction=jQuery.isFunction(html);return this.each(function(i){jQuery(this).wrapAll(isFunction?html.call(this,i):html)})},unwrap:function(){return this.parent().each(function(){jQuery.nodeName(this,"body")||jQuery(this).replaceWith(this.childNodes)}).end()}}),jQuery.expr.filters.hidden=function(elem){return elem.offsetWidth<=0&&elem.offsetHeight<=0},jQuery.expr.filters.visible=function(elem){return!jQuery.expr.filters.hidden(elem)};var r20=/%20/g,rbracket=/\[\]$/,rCRLF=/\r?\n/g,rsubmitterTypes=/^(?:submit|button|image|reset|file)$/i,rsubmittable=/^(?:input|select|textarea|keygen)/i;jQuery.param=function(a,traditional){var prefix,s=[],add=function(key,value){value=jQuery.isFunction(value)?value():null==value?"":value,s[s.length]=encodeURIComponent(key)+"="+encodeURIComponent(value)};if(void 0===traditional&&(traditional=jQuery.ajaxSettings&&jQuery.ajaxSettings.traditional),jQuery.isArray(a)||a.jquery&&!jQuery.isPlainObject(a))jQuery.each(a,function(){add(this.name,this.value)});else for(prefix in a)buildParams(prefix,a[prefix],traditional,add);return s.join("&").replace(r20,"+")},jQuery.fn.extend({serialize:function(){return jQuery.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var elements=jQuery.prop(this,"elements");return elements?jQuery.makeArray(elements):this}).filter(function(){var type=this.type;return this.name&&!jQuery(this).is(":disabled")&&rsubmittable.test(this.nodeName)&&!rsubmitterTypes.test(type)&&(this.checked||!rcheckableType.test(type))}).map(function(i,elem){var val=jQuery(this).val();return null==val?null:jQuery.isArray(val)?jQuery.map(val,function(val){return{name:elem.name,value:val.replace(rCRLF,"\r\n")}}):{name:elem.name,value:val.replace(rCRLF,"\r\n")}}).get()}}),jQuery.ajaxSettings.xhr=function(){try{return new XMLHttpRequest}catch(e){}};var xhrId=0,xhrCallbacks={},xhrSuccessStatus={0:200,1223:204},xhrSupported=jQuery.ajaxSettings.xhr();window.attachEvent&&window.attachEvent("onunload",function(){for(var key in xhrCallbacks)xhrCallbacks[key]()}),support.cors=!!xhrSupported&&"withCredentials"in xhrSupported,support.ajax=xhrSupported=!!xhrSupported,jQuery.ajaxTransport(function(options){var callback;return support.cors||xhrSupported&&!options.crossDomain?{send:function(headers,complete){var i,xhr=options.xhr(),id=++xhrId;if(xhr.open(options.type,options.url,options.async,options.username,options.password),options.xhrFields)for(i in options.xhrFields)xhr[i]=options.xhrFields[i];options.mimeType&&xhr.overrideMimeType&&xhr.overrideMimeType(options.mimeType),options.crossDomain||headers["X-Requested-With"]||(headers["X-Requested-With"]="XMLHttpRequest");for(i in headers)xhr.setRequestHeader(i,headers[i]);callback=function(type){return function(){callback&&(delete xhrCallbacks[id],callback=xhr.onload=xhr.onerror=null,"abort"===type?xhr.abort():"error"===type?complete(xhr.status,xhr.statusText):complete(xhrSuccessStatus[xhr.status]||xhr.status,xhr.statusText,"string"==typeof xhr.responseText?{text:xhr.responseText}:void 0,xhr.getAllResponseHeaders()))}},xhr.onload=callback(),xhr.onerror=callback("error"),callback=xhrCallbacks[id]=callback("abort");try{xhr.send(options.hasContent&&options.data||null)}catch(e){if(callback)throw e}},abort:function(){callback&&callback()}}:void 0}),jQuery.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(text){return jQuery.globalEval(text),text}}}),jQuery.ajaxPrefilter("script",function(s){void 0===s.cache&&(s.cache=!1),s.crossDomain&&(s.type="GET")}),jQuery.ajaxTransport("script",function(s){if(s.crossDomain){var script,callback;return{send:function(_,complete){script=jQuery("<script>").prop({async:!0,charset:s.scriptCharset,src:s.url}).on("load error",callback=function(evt){script.remove(),callback=null,evt&&complete("error"===evt.type?404:200,evt.type)}),document.head.appendChild(script[0])},abort:function(){callback&&callback()}}}});var oldCallbacks=[],rjsonp=/(=)\?(?=&|$)|\?\?/;jQuery.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var callback=oldCallbacks.pop()||jQuery.expando+"_"+nonce++;return this[callback]=!0,callback}}),jQuery.ajaxPrefilter("json jsonp",function(s,originalSettings,jqXHR){var callbackName,overwritten,responseContainer,jsonProp=s.jsonp!==!1&&(rjsonp.test(s.url)?"url":"string"==typeof s.data&&!(s.contentType||"").indexOf("application/x-www-form-urlencoded")&&rjsonp.test(s.data)&&"data");return jsonProp||"jsonp"===s.dataTypes[0]?(callbackName=s.jsonpCallback=jQuery.isFunction(s.jsonpCallback)?s.jsonpCallback():s.jsonpCallback,jsonProp?s[jsonProp]=s[jsonProp].replace(rjsonp,"$1"+callbackName):s.jsonp!==!1&&(s.url+=(rquery.test(s.url)?"&":"?")+s.jsonp+"="+callbackName),s.converters["script json"]=function(){return responseContainer||jQuery.error(callbackName+" was not called"),responseContainer[0]},s.dataTypes[0]="json",overwritten=window[callbackName],window[callbackName]=function(){responseContainer=arguments},jqXHR.always(function(){window[callbackName]=overwritten,s[callbackName]&&(s.jsonpCallback=originalSettings.jsonpCallback,oldCallbacks.push(callbackName)),responseContainer&&jQuery.isFunction(overwritten)&&overwritten(responseContainer[0]),responseContainer=overwritten=void 0}),"script"):void 0}),jQuery.parseHTML=function(data,context,keepScripts){if(!data||"string"!=typeof data)return null;"boolean"==typeof context&&(keepScripts=context,context=!1),context=context||document;var parsed=rsingleTag.exec(data),scripts=!keepScripts&&[];return parsed?[context.createElement(parsed[1])]:(parsed=jQuery.buildFragment([data],context,scripts),scripts&&scripts.length&&jQuery(scripts).remove(),jQuery.merge([],parsed.childNodes))};var _load=jQuery.fn.load;jQuery.fn.load=function(url,params,callback){if("string"!=typeof url&&_load)return _load.apply(this,arguments);var selector,type,response,self=this,off=url.indexOf(" ");return off>=0&&(selector=jQuery.trim(url.slice(off)),url=url.slice(0,off)),jQuery.isFunction(params)?(callback=params,params=void 0):params&&"object"==typeof params&&(type="POST"),self.length>0&&jQuery.ajax({url:url,type:type,dataType:"html",data:params}).done(function(responseText){response=arguments,self.html(selector?jQuery("<div>").append(jQuery.parseHTML(responseText)).find(selector):responseText)}).complete(callback&&function(jqXHR,status){self.each(callback,response||[jqXHR.responseText,status,jqXHR])}),this},jQuery.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(i,type){jQuery.fn[type]=function(fn){return this.on(type,fn)}}),jQuery.expr.filters.animated=function(elem){return jQuery.grep(jQuery.timers,function(fn){return elem===fn.elem}).length};var docElem=window.document.documentElement;jQuery.offset={setOffset:function(elem,options,i){var curPosition,curLeft,curCSSTop,curTop,curOffset,curCSSLeft,calculatePosition,position=jQuery.css(elem,"position"),curElem=jQuery(elem),props={};"static"===position&&(elem.style.position="relative"),curOffset=curElem.offset(),curCSSTop=jQuery.css(elem,"top"),curCSSLeft=jQuery.css(elem,"left"),calculatePosition=("absolute"===position||"fixed"===position)&&(curCSSTop+curCSSLeft).indexOf("auto")>-1,calculatePosition?(curPosition=curElem.position(),curTop=curPosition.top,curLeft=curPosition.left):(curTop=parseFloat(curCSSTop)||0,curLeft=parseFloat(curCSSLeft)||0),jQuery.isFunction(options)&&(options=options.call(elem,i,curOffset)),null!=options.top&&(props.top=options.top-curOffset.top+curTop),null!=options.left&&(props.left=options.left-curOffset.left+curLeft),"using"in options?options.using.call(elem,props):curElem.css(props)}},jQuery.fn.extend({offset:function(options){if(arguments.length)return void 0===options?this:this.each(function(i){jQuery.offset.setOffset(this,options,i)});var docElem,win,elem=this[0],box={top:0,left:0},doc=elem&&elem.ownerDocument;if(doc)return docElem=doc.documentElement,jQuery.contains(docElem,elem)?(typeof elem.getBoundingClientRect!==strundefined&&(box=elem.getBoundingClientRect()),win=getWindow(doc),{top:box.top+win.pageYOffset-docElem.clientTop,left:box.left+win.pageXOffset-docElem.clientLeft}):box},position:function(){if(this[0]){var offsetParent,offset,elem=this[0],parentOffset={top:0,left:0};return"fixed"===jQuery.css(elem,"position")?offset=elem.getBoundingClientRect():(offsetParent=this.offsetParent(),offset=this.offset(),jQuery.nodeName(offsetParent[0],"html")||(parentOffset=offsetParent.offset()),parentOffset.top+=jQuery.css(offsetParent[0],"borderTopWidth",!0),parentOffset.left+=jQuery.css(offsetParent[0],"borderLeftWidth",!0)),{top:offset.top-parentOffset.top-jQuery.css(elem,"marginTop",!0),left:offset.left-parentOffset.left-jQuery.css(elem,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var offsetParent=this.offsetParent||docElem;offsetParent&&!jQuery.nodeName(offsetParent,"html")&&"static"===jQuery.css(offsetParent,"position");)offsetParent=offsetParent.offsetParent;return offsetParent||docElem})}}),jQuery.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(method,prop){var top="pageYOffset"===prop;jQuery.fn[method]=function(val){return access(this,function(elem,method,val){var win=getWindow(elem);return void 0===val?win?win[prop]:elem[method]:void(win?win.scrollTo(top?window.pageXOffset:val,top?val:window.pageYOffset):elem[method]=val)},method,val,arguments.length,null)}}),jQuery.each(["top","left"],function(i,prop){jQuery.cssHooks[prop]=addGetHookIf(support.pixelPosition,function(elem,computed){return computed?(computed=curCSS(elem,prop),rnumnonpx.test(computed)?jQuery(elem).position()[prop]+"px":computed):void 0})}),jQuery.each({Height:"height",Width:"width"},function(name,type){jQuery.each({padding:"inner"+name,content:type,"":"outer"+name},function(defaultExtra,funcName){jQuery.fn[funcName]=function(margin,value){var chainable=arguments.length&&(defaultExtra||"boolean"!=typeof margin),extra=defaultExtra||(margin===!0||value===!0?"margin":"border");return access(this,function(elem,type,value){var doc;return jQuery.isWindow(elem)?elem.document.documentElement["client"+name]:9===elem.nodeType?(doc=elem.documentElement,Math.max(elem.body["scroll"+name],doc["scroll"+name],elem.body["offset"+name],doc["offset"+name],doc["client"+name])):void 0===value?jQuery.css(elem,type,extra):jQuery.style(elem,type,value,extra)},type,chainable?margin:void 0,chainable,null)}})}),jQuery.fn.size=function(){return this.length},jQuery.fn.andSelf=jQuery.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return jQuery});var _jQuery=window.jQuery,_$=window.$;return jQuery.noConflict=function(deep){return window.$===jQuery&&(window.$=_$),deep&&window.jQuery===jQuery&&(window.jQuery=_jQuery),jQuery},typeof noGlobal===strundefined&&(window.jQuery=window.$=jQuery),jQuery}),function(window,document,undefined){"use strict";function minErr(module,ErrorConstructor){return ErrorConstructor=ErrorConstructor||Error,function(){var message,i,code=arguments[0],prefix="["+(module?module+":":"")+code+"] ",template=arguments[1],templateArgs=arguments;for(message=prefix+template.replace(/\{\d+\}/g,function(match){var index=+match.slice(1,-1);return index+2<templateArgs.length?toDebugString(templateArgs[index+2]):match}),message=message+"\nhttp://errors.angularjs.org/1.3.18/"+(module?module+"/":"")+code,i=2;i<arguments.length;i++)message=message+(2==i?"?":"&")+"p"+(i-2)+"="+encodeURIComponent(toDebugString(arguments[i]));return new ErrorConstructor(message)}}function isArrayLike(obj){if(null==obj||isWindow(obj))return!1;var length="length"in Object(obj)&&obj.length;return obj.nodeType===NODE_TYPE_ELEMENT&&length?!0:isString(obj)||isArray(obj)||0===length||"number"==typeof length&&length>0&&length-1 in obj}function forEach(obj,iterator,context){var key,length;if(obj)if(isFunction(obj))for(key in obj)"prototype"==key||"length"==key||"name"==key||obj.hasOwnProperty&&!obj.hasOwnProperty(key)||iterator.call(context,obj[key],key,obj);else if(isArray(obj)||isArrayLike(obj)){var isPrimitive="object"!=typeof obj;for(key=0,
  length=obj.length;length>key;key++)(isPrimitive||key in obj)&&iterator.call(context,obj[key],key,obj)}else if(obj.forEach&&obj.forEach!==forEach)obj.forEach(iterator,context,obj);else for(key in obj)obj.hasOwnProperty(key)&&iterator.call(context,obj[key],key,obj);return obj}function sortedKeys(obj){return Object.keys(obj).sort()}function forEachSorted(obj,iterator,context){for(var keys=sortedKeys(obj),i=0;i<keys.length;i++)iterator.call(context,obj[keys[i]],keys[i]);return keys}function reverseParams(iteratorFn){return function(value,key){iteratorFn(key,value)}}function nextUid(){return++uid}function setHashKey(obj,h){h?obj.$$hashKey=h:delete obj.$$hashKey}function extend(dst){for(var h=dst.$$hashKey,i=1,ii=arguments.length;ii>i;i++){var obj=arguments[i];if(obj)for(var keys=Object.keys(obj),j=0,jj=keys.length;jj>j;j++){var key=keys[j];dst[key]=obj[key]}}return setHashKey(dst,h),dst}function int(str){return parseInt(str,10)}function inherit(parent,extra){return extend(Object.create(parent),extra)}function noop(){}function identity($){return $}function valueFn(value){return function(){return value}}function isUndefined(value){return"undefined"==typeof value}function isDefined(value){return"undefined"!=typeof value}function isObject(value){return null!==value&&"object"==typeof value}function isString(value){return"string"==typeof value}function isNumber(value){return"number"==typeof value}function isDate(value){return"[object Date]"===toString.call(value)}function isFunction(value){return"function"==typeof value}function isRegExp(value){return"[object RegExp]"===toString.call(value)}function isWindow(obj){return obj&&obj.window===obj}function isScope(obj){return obj&&obj.$evalAsync&&obj.$watch}function isFile(obj){return"[object File]"===toString.call(obj)}function isFormData(obj){return"[object FormData]"===toString.call(obj)}function isBlob(obj){return"[object Blob]"===toString.call(obj)}function isBoolean(value){return"boolean"==typeof value}function isPromiseLike(obj){return obj&&isFunction(obj.then)}function isElement(node){return!(!node||!(node.nodeName||node.prop&&node.attr&&node.find))}function makeMap(str){var i,obj={},items=str.split(",");for(i=0;i<items.length;i++)obj[items[i]]=!0;return obj}function nodeName_(element){return lowercase(element.nodeName||element[0]&&element[0].nodeName)}function arrayRemove(array,value){var index=array.indexOf(value);return index>=0&&array.splice(index,1),value}function copy(source,destination,stackSource,stackDest){if(isWindow(source)||isScope(source))throw ngMinErr("cpws","Can't copy! Making copies of Window or Scope instances is not supported.");if(destination){if(source===destination)throw ngMinErr("cpi","Can't copy! Source and destination are identical.");if(stackSource=stackSource||[],stackDest=stackDest||[],isObject(source)){var index=stackSource.indexOf(source);if(-1!==index)return stackDest[index];stackSource.push(source),stackDest.push(destination)}var result;if(isArray(source)){destination.length=0;for(var i=0;i<source.length;i++)result=copy(source[i],null,stackSource,stackDest),isObject(source[i])&&(stackSource.push(source[i]),stackDest.push(result)),destination.push(result)}else{var h=destination.$$hashKey;isArray(destination)?destination.length=0:forEach(destination,function(value,key){delete destination[key]});for(var key in source)source.hasOwnProperty(key)&&(result=copy(source[key],null,stackSource,stackDest),isObject(source[key])&&(stackSource.push(source[key]),stackDest.push(result)),destination[key]=result);setHashKey(destination,h)}}else if(destination=source,source)if(isArray(source))destination=copy(source,[],stackSource,stackDest);else if(isDate(source))destination=new Date(source.getTime());else if(isRegExp(source))destination=new RegExp(source.source,source.toString().match(/[^\/]*$/)[0]),destination.lastIndex=source.lastIndex;else if(isObject(source)){var emptyObject=Object.create(Object.getPrototypeOf(source));destination=copy(source,emptyObject,stackSource,stackDest)}return destination}function shallowCopy(src,dst){if(isArray(src)){dst=dst||[];for(var i=0,ii=src.length;ii>i;i++)dst[i]=src[i]}else if(isObject(src)){dst=dst||{};for(var key in src)("$"!==key.charAt(0)||"$"!==key.charAt(1))&&(dst[key]=src[key])}return dst||src}function equals(o1,o2){if(o1===o2)return!0;if(null===o1||null===o2)return!1;if(o1!==o1&&o2!==o2)return!0;var length,key,keySet,t1=typeof o1,t2=typeof o2;if(t1==t2&&"object"==t1){if(!isArray(o1)){if(isDate(o1))return isDate(o2)?equals(o1.getTime(),o2.getTime()):!1;if(isRegExp(o1))return isRegExp(o2)?o1.toString()==o2.toString():!1;if(isScope(o1)||isScope(o2)||isWindow(o1)||isWindow(o2)||isArray(o2)||isDate(o2)||isRegExp(o2))return!1;keySet={};for(key in o1)if("$"!==key.charAt(0)&&!isFunction(o1[key])){if(!equals(o1[key],o2[key]))return!1;keySet[key]=!0}for(key in o2)if(!keySet.hasOwnProperty(key)&&"$"!==key.charAt(0)&&o2[key]!==undefined&&!isFunction(o2[key]))return!1;return!0}if(!isArray(o2))return!1;if((length=o1.length)==o2.length){for(key=0;length>key;key++)if(!equals(o1[key],o2[key]))return!1;return!0}}return!1}function concat(array1,array2,index){return array1.concat(slice.call(array2,index))}function sliceArgs(args,startIndex){return slice.call(args,startIndex||0)}function bind(self,fn){var curryArgs=arguments.length>2?sliceArgs(arguments,2):[];return!isFunction(fn)||fn instanceof RegExp?fn:curryArgs.length?function(){return arguments.length?fn.apply(self,concat(curryArgs,arguments,0)):fn.apply(self,curryArgs)}:function(){return arguments.length?fn.apply(self,arguments):fn.call(self)}}function toJsonReplacer(key,value){var val=value;return"string"==typeof key&&"$"===key.charAt(0)&&"$"===key.charAt(1)?val=undefined:isWindow(value)?val="$WINDOW":value&&document===value?val="$DOCUMENT":isScope(value)&&(val="$SCOPE"),val}function toJson(obj,pretty){return"undefined"==typeof obj?undefined:(isNumber(pretty)||(pretty=pretty?2:null),JSON.stringify(obj,toJsonReplacer,pretty))}function fromJson(json){return isString(json)?JSON.parse(json):json}function startingTag(element){element=jqLite(element).clone();try{element.empty()}catch(e){}var elemHtml=jqLite("<div>").append(element).html();try{return element[0].nodeType===NODE_TYPE_TEXT?lowercase(elemHtml):elemHtml.match(/^(<[^>]+>)/)[1].replace(/^<([\w\-]+)/,function(match,nodeName){return"<"+lowercase(nodeName)})}catch(e){return lowercase(elemHtml)}}function tryDecodeURIComponent(value){try{return decodeURIComponent(value)}catch(e){}}function parseKeyValue(keyValue){var key_value,key,obj={};return forEach((keyValue||"").split("&"),function(keyValue){if(keyValue&&(key_value=keyValue.replace(/\+/g,"%20").split("="),key=tryDecodeURIComponent(key_value[0]),isDefined(key))){var val=isDefined(key_value[1])?tryDecodeURIComponent(key_value[1]):!0;hasOwnProperty.call(obj,key)?isArray(obj[key])?obj[key].push(val):obj[key]=[obj[key],val]:obj[key]=val}}),obj}function toKeyValue(obj){var parts=[];return forEach(obj,function(value,key){isArray(value)?forEach(value,function(arrayValue){parts.push(encodeUriQuery(key,!0)+(arrayValue===!0?"":"="+encodeUriQuery(arrayValue,!0)))}):parts.push(encodeUriQuery(key,!0)+(value===!0?"":"="+encodeUriQuery(value,!0)))}),parts.length?parts.join("&"):""}function encodeUriSegment(val){return encodeUriQuery(val,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function encodeUriQuery(val,pctEncodeSpaces){return encodeURIComponent(val).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%3B/gi,";").replace(/%20/g,pctEncodeSpaces?"%20":"+")}function getNgAttribute(element,ngAttr){var attr,i,ii=ngAttrPrefixes.length;for(element=jqLite(element),i=0;ii>i;++i)if(attr=ngAttrPrefixes[i]+ngAttr,isString(attr=element.attr(attr)))return attr;return null}function angularInit(element,bootstrap){var appElement,module,config={};forEach(ngAttrPrefixes,function(prefix){var name=prefix+"app";!appElement&&element.hasAttribute&&element.hasAttribute(name)&&(appElement=element,module=element.getAttribute(name))}),forEach(ngAttrPrefixes,function(prefix){var candidate,name=prefix+"app";!appElement&&(candidate=element.querySelector("["+name.replace(":","\\:")+"]"))&&(appElement=candidate,module=candidate.getAttribute(name))}),appElement&&(config.strictDi=null!==getNgAttribute(appElement,"strict-di"),bootstrap(appElement,module?[module]:[],config))}function bootstrap(element,modules,config){isObject(config)||(config={});var defaultConfig={strictDi:!1};config=extend(defaultConfig,config);var doBootstrap=function(){if(element=jqLite(element),element.injector()){var tag=element[0]===document?"document":startingTag(element);throw ngMinErr("btstrpd","App Already Bootstrapped with this Element '{0}'",tag.replace(/</,"&lt;").replace(/>/,"&gt;"))}modules=modules||[],modules.unshift(["$provide",function($provide){$provide.value("$rootElement",element)}]),config.debugInfoEnabled&&modules.push(["$compileProvider",function($compileProvider){$compileProvider.debugInfoEnabled(!0)}]),modules.unshift("ng");var injector=createInjector(modules,config.strictDi);return injector.invoke(["$rootScope","$rootElement","$compile","$injector",function(scope,element,compile,injector){scope.$apply(function(){element.data("$injector",injector),compile(element)(scope)})}]),injector},NG_ENABLE_DEBUG_INFO=/^NG_ENABLE_DEBUG_INFO!/,NG_DEFER_BOOTSTRAP=/^NG_DEFER_BOOTSTRAP!/;return window&&NG_ENABLE_DEBUG_INFO.test(window.name)&&(config.debugInfoEnabled=!0,window.name=window.name.replace(NG_ENABLE_DEBUG_INFO,"")),window&&!NG_DEFER_BOOTSTRAP.test(window.name)?doBootstrap():(window.name=window.name.replace(NG_DEFER_BOOTSTRAP,""),angular.resumeBootstrap=function(extraModules){return forEach(extraModules,function(module){modules.push(module)}),doBootstrap()},void(isFunction(angular.resumeDeferredBootstrap)&&angular.resumeDeferredBootstrap()))}function reloadWithDebugInfo(){window.name="NG_ENABLE_DEBUG_INFO!"+window.name,window.location.reload()}function getTestability(rootElement){var injector=angular.element(rootElement).injector();if(!injector)throw ngMinErr("test","no injector found for element argument to getTestability");return injector.get("$$testability")}function snake_case(name,separator){return separator=separator||"_",name.replace(SNAKE_CASE_REGEXP,function(letter,pos){return(pos?separator:"")+letter.toLowerCase()})}function bindJQuery(){var originalCleanData;bindJQueryFired||(jQuery=window.jQuery,jQuery&&jQuery.fn.on?(jqLite=jQuery,extend(jQuery.fn,{scope:JQLitePrototype.scope,isolateScope:JQLitePrototype.isolateScope,controller:JQLitePrototype.controller,injector:JQLitePrototype.injector,inheritedData:JQLitePrototype.inheritedData}),originalCleanData=jQuery.cleanData,jQuery.cleanData=function(elems){var events;if(skipDestroyOnNextJQueryCleanData)skipDestroyOnNextJQueryCleanData=!1;else for(var elem,i=0;null!=(elem=elems[i]);i++)events=jQuery._data(elem,"events"),events&&events.$destroy&&jQuery(elem).triggerHandler("$destroy");originalCleanData(elems)}):jqLite=JQLite,angular.element=jqLite,bindJQueryFired=!0)}function assertArg(arg,name,reason){if(!arg)throw ngMinErr("areq","Argument '{0}' is {1}",name||"?",reason||"required");return arg}function assertArgFn(arg,name,acceptArrayAnnotation){return acceptArrayAnnotation&&isArray(arg)&&(arg=arg[arg.length-1]),assertArg(isFunction(arg),name,"not a function, got "+(arg&&"object"==typeof arg?arg.constructor.name||"Object":typeof arg)),arg}function assertNotHasOwnProperty(name,context){if("hasOwnProperty"===name)throw ngMinErr("badname","hasOwnProperty is not a valid {0} name",context)}function getter(obj,path,bindFnToScope){if(!path)return obj;for(var key,keys=path.split("."),lastInstance=obj,len=keys.length,i=0;len>i;i++)key=keys[i],obj&&(obj=(lastInstance=obj)[key]);return!bindFnToScope&&isFunction(obj)?bind(lastInstance,obj):obj}function getBlockNodes(nodes){var node=nodes[0],endNode=nodes[nodes.length-1],blockNodes=[node];do{if(node=node.nextSibling,!node)break;blockNodes.push(node)}while(node!==endNode);return jqLite(blockNodes)}function createMap(){return Object.create(null)}function setupModuleLoader(window){function ensure(obj,name,factory){return obj[name]||(obj[name]=factory())}var $injectorMinErr=minErr("$injector"),ngMinErr=minErr("ng"),angular=ensure(window,"angular",Object);return angular.$$minErr=angular.$$minErr||minErr,ensure(angular,"module",function(){var modules={};return function(name,requires,configFn){var assertNotHasOwnProperty=function(name,context){if("hasOwnProperty"===name)throw ngMinErr("badname","hasOwnProperty is not a valid {0} name",context)};return assertNotHasOwnProperty(name,"module"),requires&&modules.hasOwnProperty(name)&&(modules[name]=null),ensure(modules,name,function(){function invokeLater(provider,method,insertMethod,queue){return queue||(queue=invokeQueue),function(){return queue[insertMethod||"push"]([provider,method,arguments]),moduleInstance}}if(!requires)throw $injectorMinErr("nomod","Module '{0}' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.",name);var invokeQueue=[],configBlocks=[],runBlocks=[],config=invokeLater("$injector","invoke","push",configBlocks),moduleInstance={_invokeQueue:invokeQueue,_configBlocks:configBlocks,_runBlocks:runBlocks,requires:requires,name:name,provider:invokeLater("$provide","provider"),factory:invokeLater("$provide","factory"),service:invokeLater("$provide","service"),value:invokeLater("$provide","value"),constant:invokeLater("$provide","constant","unshift"),animation:invokeLater("$animateProvider","register"),filter:invokeLater("$filterProvider","register"),controller:invokeLater("$controllerProvider","register"),directive:invokeLater("$compileProvider","directive"),config:config,run:function(block){return runBlocks.push(block),this}};return configFn&&config(configFn),moduleInstance})}})}function serializeObject(obj){var seen=[];return JSON.stringify(obj,function(key,val){if(val=toJsonReplacer(key,val),isObject(val)){if(seen.indexOf(val)>=0)return"<<already seen>>";seen.push(val)}return val})}function toDebugString(obj){return"function"==typeof obj?obj.toString().replace(/ \{[\s\S]*$/,""):"undefined"==typeof obj?"undefined":"string"!=typeof obj?serializeObject(obj):obj}function publishExternalAPI(angular){extend(angular,{bootstrap:bootstrap,copy:copy,extend:extend,equals:equals,element:jqLite,forEach:forEach,injector:createInjector,noop:noop,bind:bind,toJson:toJson,fromJson:fromJson,identity:identity,isUndefined:isUndefined,isDefined:isDefined,isString:isString,isFunction:isFunction,isObject:isObject,isNumber:isNumber,isElement:isElement,isArray:isArray,version:version,isDate:isDate,lowercase:lowercase,uppercase:uppercase,callbacks:{counter:0},getTestability:getTestability,$$minErr:minErr,$$csp:csp,reloadWithDebugInfo:reloadWithDebugInfo}),angularModule=setupModuleLoader(window);try{angularModule("ngLocale")}catch(e){angularModule("ngLocale",[]).provider("$locale",$LocaleProvider)}angularModule("ng",["ngLocale"],["$provide",function($provide){$provide.provider({$$sanitizeUri:$$SanitizeUriProvider}),$provide.provider("$compile",$CompileProvider).directive({a:htmlAnchorDirective,input:inputDirective,textarea:inputDirective,form:formDirective,script:scriptDirective,select:selectDirective,style:styleDirective,option:optionDirective,ngBind:ngBindDirective,ngBindHtml:ngBindHtmlDirective,ngBindTemplate:ngBindTemplateDirective,ngClass:ngClassDirective,ngClassEven:ngClassEvenDirective,ngClassOdd:ngClassOddDirective,ngCloak:ngCloakDirective,ngController:ngControllerDirective,ngForm:ngFormDirective,ngHide:ngHideDirective,ngIf:ngIfDirective,ngInclude:ngIncludeDirective,ngInit:ngInitDirective,ngNonBindable:ngNonBindableDirective,ngPluralize:ngPluralizeDirective,ngRepeat:ngRepeatDirective,ngShow:ngShowDirective,ngStyle:ngStyleDirective,ngSwitch:ngSwitchDirective,ngSwitchWhen:ngSwitchWhenDirective,ngSwitchDefault:ngSwitchDefaultDirective,ngOptions:ngOptionsDirective,ngTransclude:ngTranscludeDirective,ngModel:ngModelDirective,ngList:ngListDirective,ngChange:ngChangeDirective,pattern:patternDirective,ngPattern:patternDirective,required:requiredDirective,ngRequired:requiredDirective,minlength:minlengthDirective,ngMinlength:minlengthDirective,maxlength:maxlengthDirective,ngMaxlength:maxlengthDirective,ngValue:ngValueDirective,ngModelOptions:ngModelOptionsDirective}).directive({ngInclude:ngIncludeFillContentDirective}).directive(ngAttributeAliasDirectives).directive(ngEventDirectives),$provide.provider({$anchorScroll:$AnchorScrollProvider,$animate:$AnimateProvider,$browser:$BrowserProvider,$cacheFactory:$CacheFactoryProvider,$controller:$ControllerProvider,$document:$DocumentProvider,$exceptionHandler:$ExceptionHandlerProvider,$filter:$FilterProvider,$interpolate:$InterpolateProvider,$interval:$IntervalProvider,$http:$HttpProvider,$httpBackend:$HttpBackendProvider,$location:$LocationProvider,$log:$LogProvider,$parse:$ParseProvider,$rootScope:$RootScopeProvider,$q:$QProvider,$$q:$$QProvider,$sce:$SceProvider,$sceDelegate:$SceDelegateProvider,$sniffer:$SnifferProvider,$templateCache:$TemplateCacheProvider,$templateRequest:$TemplateRequestProvider,$$testability:$$TestabilityProvider,$timeout:$TimeoutProvider,$window:$WindowProvider,$$rAF:$$RAFProvider,$$asyncCallback:$$AsyncCallbackProvider,$$jqLite:$$jqLiteProvider})}])}function jqNextId(){return++jqId}function camelCase(name){return name.replace(SPECIAL_CHARS_REGEXP,function(_,separator,letter,offset){return offset?letter.toUpperCase():letter}).replace(MOZ_HACK_REGEXP,"Moz$1")}function jqLiteIsTextNode(html){return!HTML_REGEXP.test(html)}function jqLiteAcceptsData(node){var nodeType=node.nodeType;return nodeType===NODE_TYPE_ELEMENT||!nodeType||nodeType===NODE_TYPE_DOCUMENT}function jqLiteBuildFragment(html,context){var tmp,tag,wrap,i,fragment=context.createDocumentFragment(),nodes=[];if(jqLiteIsTextNode(html))nodes.push(context.createTextNode(html));else{for(tmp=tmp||fragment.appendChild(context.createElement("div")),tag=(TAG_NAME_REGEXP.exec(html)||["",""])[1].toLowerCase(),wrap=wrapMap[tag]||wrapMap._default,tmp.innerHTML=wrap[1]+html.replace(XHTML_TAG_REGEXP,"<$1></$2>")+wrap[2],i=wrap[0];i--;)tmp=tmp.lastChild;nodes=concat(nodes,tmp.childNodes),tmp=fragment.firstChild,tmp.textContent=""}return fragment.textContent="",fragment.innerHTML="",forEach(nodes,function(node){fragment.appendChild(node)}),fragment}function jqLiteParseHTML(html,context){context=context||document;var parsed;return(parsed=SINGLE_TAG_REGEXP.exec(html))?[context.createElement(parsed[1])]:(parsed=jqLiteBuildFragment(html,context))?parsed.childNodes:[]}function JQLite(element){if(element instanceof JQLite)return element;var argIsString;if(isString(element)&&(element=trim(element),argIsString=!0),!(this instanceof JQLite)){if(argIsString&&"<"!=element.charAt(0))throw jqLiteMinErr("nosel","Looking up elements via selectors is not supported by jqLite! See: http://docs.angularjs.org/api/angular.element");return new JQLite(element)}argIsString?jqLiteAddNodes(this,jqLiteParseHTML(element)):jqLiteAddNodes(this,element)}function jqLiteClone(element){return element.cloneNode(!0)}function jqLiteDealoc(element,onlyDescendants){if(onlyDescendants||jqLiteRemoveData(element),element.querySelectorAll)for(var descendants=element.querySelectorAll("*"),i=0,l=descendants.length;l>i;i++)jqLiteRemoveData(descendants[i])}function jqLiteOff(element,type,fn,unsupported){if(isDefined(unsupported))throw jqLiteMinErr("offargs","jqLite#off() does not support the `selector` argument");var expandoStore=jqLiteExpandoStore(element),events=expandoStore&&expandoStore.events,handle=expandoStore&&expandoStore.handle;if(handle)if(type)forEach(type.split(" "),function(type){if(isDefined(fn)){var listenerFns=events[type];if(arrayRemove(listenerFns||[],fn),listenerFns&&listenerFns.length>0)return}removeEventListenerFn(element,type,handle),delete events[type]});else for(type in events)"$destroy"!==type&&removeEventListenerFn(element,type,handle),delete events[type]}function jqLiteRemoveData(element,name){var expandoId=element.ng339,expandoStore=expandoId&&jqCache[expandoId];if(expandoStore){if(name)return void delete expandoStore.data[name];expandoStore.handle&&(expandoStore.events.$destroy&&expandoStore.handle({},"$destroy"),jqLiteOff(element)),delete jqCache[expandoId],element.ng339=undefined}}function jqLiteExpandoStore(element,createIfNecessary){var expandoId=element.ng339,expandoStore=expandoId&&jqCache[expandoId];return createIfNecessary&&!expandoStore&&(element.ng339=expandoId=jqNextId(),expandoStore=jqCache[expandoId]={events:{},data:{},handle:undefined}),expandoStore}function jqLiteData(element,key,value){if(jqLiteAcceptsData(element)){var isSimpleSetter=isDefined(value),isSimpleGetter=!isSimpleSetter&&key&&!isObject(key),massGetter=!key,expandoStore=jqLiteExpandoStore(element,!isSimpleGetter),data=expandoStore&&expandoStore.data;if(isSimpleSetter)data[key]=value;else{if(massGetter)return data;if(isSimpleGetter)return data&&data[key];extend(data,key)}}}function jqLiteHasClass(element,selector){return element.getAttribute?(" "+(element.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").indexOf(" "+selector+" ")>-1:!1}function jqLiteRemoveClass(element,cssClasses){cssClasses&&element.setAttribute&&forEach(cssClasses.split(" "),function(cssClass){element.setAttribute("class",trim((" "+(element.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").replace(" "+trim(cssClass)+" "," ")))})}function jqLiteAddClass(element,cssClasses){if(cssClasses&&element.setAttribute){var existingClasses=(" "+(element.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ");forEach(cssClasses.split(" "),function(cssClass){cssClass=trim(cssClass),-1===existingClasses.indexOf(" "+cssClass+" ")&&(existingClasses+=cssClass+" ")}),element.setAttribute("class",trim(existingClasses))}}function jqLiteAddNodes(root,elements){if(elements)if(elements.nodeType)root[root.length++]=elements;else{var length=elements.length;if("number"==typeof length&&elements.window!==elements){if(length)for(var i=0;length>i;i++)root[root.length++]=elements[i]}else root[root.length++]=elements}}function jqLiteController(element,name){return jqLiteInheritedData(element,"$"+(name||"ngController")+"Controller")}function jqLiteInheritedData(element,name,value){element.nodeType==NODE_TYPE_DOCUMENT&&(element=element.documentElement);for(var names=isArray(name)?name:[name];element;){for(var i=0,ii=names.length;ii>i;i++)if((value=jqLite.data(element,names[i]))!==undefined)return value;element=element.parentNode||element.nodeType===NODE_TYPE_DOCUMENT_FRAGMENT&&element.host}}function jqLiteEmpty(element){for(jqLiteDealoc(element,!0);element.firstChild;)element.removeChild(element.firstChild)}function jqLiteRemove(element,keepData){keepData||jqLiteDealoc(element);var parent=element.parentNode;parent&&parent.removeChild(element)}function jqLiteDocumentLoaded(action,win){win=win||window,"complete"===win.document.readyState?win.setTimeout(action):jqLite(win).on("load",action)}function getBooleanAttrName(element,name){var booleanAttr=BOOLEAN_ATTR[name.toLowerCase()];return booleanAttr&&BOOLEAN_ELEMENTS[nodeName_(element)]&&booleanAttr}function getAliasedAttrName(element,name){var nodeName=element.nodeName;return("INPUT"===nodeName||"TEXTAREA"===nodeName)&&ALIASED_ATTR[name]}function createEventHandler(element,events){var eventHandler=function(event,type){event.isDefaultPrevented=function(){return event.defaultPrevented};var eventFns=events[type||event.type],eventFnsLength=eventFns?eventFns.length:0;if(eventFnsLength){if(isUndefined(event.immediatePropagationStopped)){var originalStopImmediatePropagation=event.stopImmediatePropagation;event.stopImmediatePropagation=function(){event.immediatePropagationStopped=!0,event.stopPropagation&&event.stopPropagation(),originalStopImmediatePropagation&&originalStopImmediatePropagation.call(event)}}event.isImmediatePropagationStopped=function(){return event.immediatePropagationStopped===!0},eventFnsLength>1&&(eventFns=shallowCopy(eventFns));for(var i=0;eventFnsLength>i;i++)event.isImmediatePropagationStopped()||eventFns[i].call(element,event)}};return eventHandler.elem=element,eventHandler}function $$jqLiteProvider(){this.$get=function(){return extend(JQLite,{hasClass:function(node,classes){return node.attr&&(node=node[0]),jqLiteHasClass(node,classes)},addClass:function(node,classes){return node.attr&&(node=node[0]),jqLiteAddClass(node,classes)},removeClass:function(node,classes){return node.attr&&(node=node[0]),jqLiteRemoveClass(node,classes)}})}}function hashKey(obj,nextUidFn){var key=obj&&obj.$$hashKey;if(key)return"function"==typeof key&&(key=obj.$$hashKey()),key;var objType=typeof obj;return key="function"==objType||"object"==objType&&null!==obj?obj.$$hashKey=objType+":"+(nextUidFn||nextUid)():objType+":"+obj}function HashMap(array,isolatedUid){if(isolatedUid){var uid=0;this.nextUid=function(){return++uid}}forEach(array,this.put,this)}function anonFn(fn){var fnText=fn.toString().replace(STRIP_COMMENTS,""),args=fnText.match(FN_ARGS);return args?"function("+(args[1]||"").replace(/[\s\r\n]+/," ")+")":"fn"}function annotate(fn,strictDi,name){var $inject,fnText,argDecl,last;if("function"==typeof fn){if(!($inject=fn.$inject)){if($inject=[],fn.length){if(strictDi)throw isString(name)&&name||(name=fn.name||anonFn(fn)),$injectorMinErr("strictdi","{0} is not using explicit annotation and cannot be invoked in strict mode",name);fnText=fn.toString().replace(STRIP_COMMENTS,""),argDecl=fnText.match(FN_ARGS),forEach(argDecl[1].split(FN_ARG_SPLIT),function(arg){arg.replace(FN_ARG,function(all,underscore,name){$inject.push(name)})})}fn.$inject=$inject}}else isArray(fn)?(last=fn.length-1,assertArgFn(fn[last],"fn"),$inject=fn.slice(0,last)):assertArgFn(fn,"fn",!0);return $inject}function createInjector(modulesToLoad,strictDi){function supportObject(delegate){return function(key,value){return isObject(key)?void forEach(key,reverseParams(delegate)):delegate(key,value)}}function provider(name,provider_){if(assertNotHasOwnProperty(name,"service"),(isFunction(provider_)||isArray(provider_))&&(provider_=providerInjector.instantiate(provider_)),!provider_.$get)throw $injectorMinErr("pget","Provider '{0}' must define $get factory method.",name);return providerCache[name+providerSuffix]=provider_}function enforceReturnValue(name,factory){return function(){var result=instanceInjector.invoke(factory,this);if(isUndefined(result))throw $injectorMinErr("undef","Provider '{0}' must return a value from $get factory method.",name);return result}}function factory(name,factoryFn,enforce){return provider(name,{$get:enforce!==!1?enforceReturnValue(name,factoryFn):factoryFn})}function service(name,constructor){return factory(name,["$injector",function($injector){return $injector.instantiate(constructor)}])}function value(name,val){return factory(name,valueFn(val),!1)}function constant(name,value){assertNotHasOwnProperty(name,"constant"),providerCache[name]=value,instanceCache[name]=value}function decorator(serviceName,decorFn){var origProvider=providerInjector.get(serviceName+providerSuffix),orig$get=origProvider.$get;origProvider.$get=function(){var origInstance=instanceInjector.invoke(orig$get,origProvider);return instanceInjector.invoke(decorFn,null,{$delegate:origInstance})}}function loadModules(modulesToLoad){var moduleFn,runBlocks=[];return forEach(modulesToLoad,function(module){function runInvokeQueue(queue){var i,ii;for(i=0,ii=queue.length;ii>i;i++){var invokeArgs=queue[i],provider=providerInjector.get(invokeArgs[0]);provider[invokeArgs[1]].apply(provider,invokeArgs[2])}}if(!loadedModules.get(module)){loadedModules.put(module,!0);try{isString(module)?(moduleFn=angularModule(module),runBlocks=runBlocks.concat(loadModules(moduleFn.requires)).concat(moduleFn._runBlocks),runInvokeQueue(moduleFn._invokeQueue),runInvokeQueue(moduleFn._configBlocks)):isFunction(module)?runBlocks.push(providerInjector.invoke(module)):isArray(module)?runBlocks.push(providerInjector.invoke(module)):assertArgFn(module,"module")}catch(e){throw isArray(module)&&(module=module[module.length-1]),e.message&&e.stack&&-1==e.stack.indexOf(e.message)&&(e=e.message+"\n"+e.stack),$injectorMinErr("modulerr","Failed to instantiate module {0} due to:\n{1}",module,e.stack||e.message||e)}}}),runBlocks}function createInternalInjector(cache,factory){function getService(serviceName,caller){if(cache.hasOwnProperty(serviceName)){if(cache[serviceName]===INSTANTIATING)throw $injectorMinErr("cdep","Circular dependency found: {0}",serviceName+" <- "+path.join(" <- "));return cache[serviceName]}try{return path.unshift(serviceName),cache[serviceName]=INSTANTIATING,cache[serviceName]=factory(serviceName,caller)}catch(err){throw cache[serviceName]===INSTANTIATING&&delete cache[serviceName],err}finally{path.shift()}}function invoke(fn,self,locals,serviceName){"string"==typeof locals&&(serviceName=locals,locals=null);var length,i,key,args=[],$inject=createInjector.$$annotate(fn,strictDi,serviceName);for(i=0,length=$inject.length;length>i;i++){if(key=$inject[i],"string"!=typeof key)throw $injectorMinErr("itkn","Incorrect injection token! Expected service name as string, got {0}",key);args.push(locals&&locals.hasOwnProperty(key)?locals[key]:getService(key,serviceName))}return isArray(fn)&&(fn=fn[length]),fn.apply(self,args)}function instantiate(Type,locals,serviceName){var instance=Object.create((isArray(Type)?Type[Type.length-1]:Type).prototype||null),returnedValue=invoke(Type,instance,locals,serviceName);return isObject(returnedValue)||isFunction(returnedValue)?returnedValue:instance}return{invoke:invoke,instantiate:instantiate,get:getService,annotate:createInjector.$$annotate,has:function(name){return providerCache.hasOwnProperty(name+providerSuffix)||cache.hasOwnProperty(name)}}}strictDi=strictDi===!0;var INSTANTIATING={},providerSuffix="Provider",path=[],loadedModules=new HashMap([],!0),providerCache={$provide:{provider:supportObject(provider),factory:supportObject(factory),service:supportObject(service),value:supportObject(value),constant:supportObject(constant),decorator:decorator}},providerInjector=providerCache.$injector=createInternalInjector(providerCache,function(serviceName,caller){throw angular.isString(caller)&&path.push(caller),$injectorMinErr("unpr","Unknown provider: {0}",path.join(" <- "))}),instanceCache={},instanceInjector=instanceCache.$injector=createInternalInjector(instanceCache,function(serviceName,caller){var provider=providerInjector.get(serviceName+providerSuffix,caller);return instanceInjector.invoke(provider.$get,provider,undefined,serviceName)});return forEach(loadModules(modulesToLoad),function(fn){instanceInjector.invoke(fn||noop)}),instanceInjector}function $AnchorScrollProvider(){var autoScrollingEnabled=!0;this.disableAutoScrolling=function(){autoScrollingEnabled=!1},this.$get=["$window","$location","$rootScope",function($window,$location,$rootScope){function getFirstAnchor(list){var result=null;return Array.prototype.some.call(list,function(element){return"a"===nodeName_(element)?(result=element,!0):void 0}),result}function getYOffset(){var offset=scroll.yOffset;if(isFunction(offset))offset=offset();else if(isElement(offset)){var elem=offset[0],style=$window.getComputedStyle(elem);offset="fixed"!==style.position?0:elem.getBoundingClientRect().bottom}else isNumber(offset)||(offset=0);return offset}function scrollTo(elem){if(elem){elem.scrollIntoView();var offset=getYOffset();if(offset){var elemTop=elem.getBoundingClientRect().top;$window.scrollBy(0,elemTop-offset)}}else $window.scrollTo(0,0)}function scroll(){var elm,hash=$location.hash();hash?(elm=document.getElementById(hash))?scrollTo(elm):(elm=getFirstAnchor(document.getElementsByName(hash)))?scrollTo(elm):"top"===hash&&scrollTo(null):scrollTo(null)}var document=$window.document;return autoScrollingEnabled&&$rootScope.$watch(function(){return $location.hash();
  },function(newVal,oldVal){(newVal!==oldVal||""!==newVal)&&jqLiteDocumentLoaded(function(){$rootScope.$evalAsync(scroll)})}),scroll}]}function $$AsyncCallbackProvider(){this.$get=["$$rAF","$timeout",function($$rAF,$timeout){return $$rAF.supported?function(fn){return $$rAF(fn)}:function(fn){return $timeout(fn,0,!1)}}]}function Browser(window,document,$log,$sniffer){function completeOutstandingRequest(fn){try{fn.apply(null,sliceArgs(arguments,1))}finally{if(outstandingRequestCount--,0===outstandingRequestCount)for(;outstandingRequestCallbacks.length;)try{outstandingRequestCallbacks.pop()()}catch(e){$log.error(e)}}}function getHash(url){var index=url.indexOf("#");return-1===index?"":url.substr(index)}function startPoller(interval,setTimeout){!function check(){forEach(pollFns,function(pollFn){pollFn()}),pollTimeout=setTimeout(check,interval)}()}function cacheStateAndFireUrlChange(){cacheState(),fireUrlChange()}function getCurrentState(){try{return history.state}catch(e){}}function cacheState(){cachedState=getCurrentState(),cachedState=isUndefined(cachedState)?null:cachedState,equals(cachedState,lastCachedState)&&(cachedState=lastCachedState),lastCachedState=cachedState}function fireUrlChange(){(lastBrowserUrl!==self.url()||lastHistoryState!==cachedState)&&(lastBrowserUrl=self.url(),lastHistoryState=cachedState,forEach(urlChangeListeners,function(listener){listener(self.url(),cachedState)}))}function safeDecodeURIComponent(str){try{return decodeURIComponent(str)}catch(e){return str}}var self=this,rawDocument=document[0],location=window.location,history=window.history,setTimeout=window.setTimeout,clearTimeout=window.clearTimeout,pendingDeferIds={};self.isMock=!1;var outstandingRequestCount=0,outstandingRequestCallbacks=[];self.$$completeOutstandingRequest=completeOutstandingRequest,self.$$incOutstandingRequestCount=function(){outstandingRequestCount++},self.notifyWhenNoOutstandingRequests=function(callback){forEach(pollFns,function(pollFn){pollFn()}),0===outstandingRequestCount?callback():outstandingRequestCallbacks.push(callback)};var pollTimeout,pollFns=[];self.addPollFn=function(fn){return isUndefined(pollTimeout)&&startPoller(100,setTimeout),pollFns.push(fn),fn};var cachedState,lastHistoryState,lastBrowserUrl=location.href,baseElement=document.find("base"),reloadLocation=null;cacheState(),lastHistoryState=cachedState,self.url=function(url,replace,state){if(isUndefined(state)&&(state=null),location!==window.location&&(location=window.location),history!==window.history&&(history=window.history),url){var sameState=lastHistoryState===state;if(lastBrowserUrl===url&&(!$sniffer.history||sameState))return self;var sameBase=lastBrowserUrl&&stripHash(lastBrowserUrl)===stripHash(url);return lastBrowserUrl=url,lastHistoryState=state,!$sniffer.history||sameBase&&sameState?((!sameBase||reloadLocation)&&(reloadLocation=url),replace?location.replace(url):sameBase?location.hash=getHash(url):location.href=url):(history[replace?"replaceState":"pushState"](state,"",url),cacheState(),lastHistoryState=cachedState),self}return reloadLocation||location.href.replace(/%27/g,"'")},self.state=function(){return cachedState};var urlChangeListeners=[],urlChangeInit=!1,lastCachedState=null;self.onUrlChange=function(callback){return urlChangeInit||($sniffer.history&&jqLite(window).on("popstate",cacheStateAndFireUrlChange),jqLite(window).on("hashchange",cacheStateAndFireUrlChange),urlChangeInit=!0),urlChangeListeners.push(callback),callback},self.$$checkUrlChange=fireUrlChange,self.baseHref=function(){var href=baseElement.attr("href");return href?href.replace(/^(https?\:)?\/\/[^\/]*/,""):""};var lastCookies={},lastCookieString="",cookiePath=self.baseHref();self.cookies=function(name,value){var cookieLength,cookieArray,cookie,i,index;if(!name){if(rawDocument.cookie!==lastCookieString)for(lastCookieString=rawDocument.cookie,cookieArray=lastCookieString.split("; "),lastCookies={},i=0;i<cookieArray.length;i++)cookie=cookieArray[i],index=cookie.indexOf("="),index>0&&(name=safeDecodeURIComponent(cookie.substring(0,index)),lastCookies[name]===undefined&&(lastCookies[name]=safeDecodeURIComponent(cookie.substring(index+1))));return lastCookies}value===undefined?rawDocument.cookie=encodeURIComponent(name)+"=;path="+cookiePath+";expires=Thu, 01 Jan 1970 00:00:00 GMT":isString(value)&&(cookieLength=(rawDocument.cookie=encodeURIComponent(name)+"="+encodeURIComponent(value)+";path="+cookiePath).length+1,cookieLength>4096&&$log.warn("Cookie '"+name+"' possibly not set or overflowed because it was too large ("+cookieLength+" > 4096 bytes)!"))},self.defer=function(fn,delay){var timeoutId;return outstandingRequestCount++,timeoutId=setTimeout(function(){delete pendingDeferIds[timeoutId],completeOutstandingRequest(fn)},delay||0),pendingDeferIds[timeoutId]=!0,timeoutId},self.defer.cancel=function(deferId){return pendingDeferIds[deferId]?(delete pendingDeferIds[deferId],clearTimeout(deferId),completeOutstandingRequest(noop),!0):!1}}function $BrowserProvider(){this.$get=["$window","$log","$sniffer","$document",function($window,$log,$sniffer,$document){return new Browser($window,$document,$log,$sniffer)}]}function $CacheFactoryProvider(){this.$get=function(){function cacheFactory(cacheId,options){function refresh(entry){entry!=freshEnd&&(staleEnd?staleEnd==entry&&(staleEnd=entry.n):staleEnd=entry,link(entry.n,entry.p),link(entry,freshEnd),freshEnd=entry,freshEnd.n=null)}function link(nextEntry,prevEntry){nextEntry!=prevEntry&&(nextEntry&&(nextEntry.p=prevEntry),prevEntry&&(prevEntry.n=nextEntry))}if(cacheId in caches)throw minErr("$cacheFactory")("iid","CacheId '{0}' is already taken!",cacheId);var size=0,stats=extend({},options,{id:cacheId}),data={},capacity=options&&options.capacity||Number.MAX_VALUE,lruHash={},freshEnd=null,staleEnd=null;return caches[cacheId]={put:function(key,value){if(capacity<Number.MAX_VALUE){var lruEntry=lruHash[key]||(lruHash[key]={key:key});refresh(lruEntry)}if(!isUndefined(value))return key in data||size++,data[key]=value,size>capacity&&this.remove(staleEnd.key),value},get:function(key){if(capacity<Number.MAX_VALUE){var lruEntry=lruHash[key];if(!lruEntry)return;refresh(lruEntry)}return data[key]},remove:function(key){if(capacity<Number.MAX_VALUE){var lruEntry=lruHash[key];if(!lruEntry)return;lruEntry==freshEnd&&(freshEnd=lruEntry.p),lruEntry==staleEnd&&(staleEnd=lruEntry.n),link(lruEntry.n,lruEntry.p),delete lruHash[key]}delete data[key],size--},removeAll:function(){data={},size=0,lruHash={},freshEnd=staleEnd=null},destroy:function(){data=null,stats=null,lruHash=null,delete caches[cacheId]},info:function(){return extend({},stats,{size:size})}}}var caches={};return cacheFactory.info=function(){var info={};return forEach(caches,function(cache,cacheId){info[cacheId]=cache.info()}),info},cacheFactory.get=function(cacheId){return caches[cacheId]},cacheFactory}}function $TemplateCacheProvider(){this.$get=["$cacheFactory",function($cacheFactory){return $cacheFactory("templates")}]}function $CompileProvider($provide,$$sanitizeUriProvider){function parseIsolateBindings(scope,directiveName){var LOCAL_REGEXP=/^\s*([@&]|=(\*?))(\??)\s*(\w*)\s*$/,bindings={};return forEach(scope,function(definition,scopeName){var match=definition.match(LOCAL_REGEXP);if(!match)throw $compileMinErr("iscp","Invalid isolate scope definition for directive '{0}'. Definition: {... {1}: '{2}' ...}",directiveName,scopeName,definition);bindings[scopeName]={mode:match[1][0],collection:"*"===match[2],optional:"?"===match[3],attrName:match[4]||scopeName}}),bindings}function assertValidDirectiveName(name){var letter=name.charAt(0);if(!letter||letter!==lowercase(letter))throw $compileMinErr("baddir","Directive name '{0}' is invalid. The first character must be a lowercase letter",name);return name}var hasDirectives={},Suffix="Directive",COMMENT_DIRECTIVE_REGEXP=/^\s*directive\:\s*([\w\-]+)\s+(.*)$/,CLASS_DIRECTIVE_REGEXP=/(([\w\-]+)(?:\:([^;]+))?;?)/,ALL_OR_NOTHING_ATTRS=makeMap("ngSrc,ngSrcset,src,srcset"),REQUIRE_PREFIX_REGEXP=/^(?:(\^\^?)?(\?)?(\^\^?)?)?/,EVENT_HANDLER_ATTR_REGEXP=/^(on[a-z]+|formaction)$/;this.directive=function registerDirective(name,directiveFactory){return assertNotHasOwnProperty(name,"directive"),isString(name)?(assertValidDirectiveName(name),assertArg(directiveFactory,"directiveFactory"),hasDirectives.hasOwnProperty(name)||(hasDirectives[name]=[],$provide.factory(name+Suffix,["$injector","$exceptionHandler",function($injector,$exceptionHandler){var directives=[];return forEach(hasDirectives[name],function(directiveFactory,index){try{var directive=$injector.invoke(directiveFactory);isFunction(directive)?directive={compile:valueFn(directive)}:!directive.compile&&directive.link&&(directive.compile=valueFn(directive.link)),directive.priority=directive.priority||0,directive.index=index,directive.name=directive.name||name,directive.require=directive.require||directive.controller&&directive.name,directive.restrict=directive.restrict||"EA",isObject(directive.scope)&&(directive.$$isolateBindings=parseIsolateBindings(directive.scope,directive.name)),directives.push(directive)}catch(e){$exceptionHandler(e)}}),directives}])),hasDirectives[name].push(directiveFactory)):forEach(name,reverseParams(registerDirective)),this},this.aHrefSanitizationWhitelist=function(regexp){return isDefined(regexp)?($$sanitizeUriProvider.aHrefSanitizationWhitelist(regexp),this):$$sanitizeUriProvider.aHrefSanitizationWhitelist()},this.imgSrcSanitizationWhitelist=function(regexp){return isDefined(regexp)?($$sanitizeUriProvider.imgSrcSanitizationWhitelist(regexp),this):$$sanitizeUriProvider.imgSrcSanitizationWhitelist()};var debugInfoEnabled=!0;this.debugInfoEnabled=function(enabled){return isDefined(enabled)?(debugInfoEnabled=enabled,this):debugInfoEnabled},this.$get=["$injector","$interpolate","$exceptionHandler","$templateRequest","$parse","$controller","$rootScope","$document","$sce","$animate","$$sanitizeUri",function($injector,$interpolate,$exceptionHandler,$templateRequest,$parse,$controller,$rootScope,$document,$sce,$animate,$$sanitizeUri){function safeAddClass($element,className){try{$element.addClass(className)}catch(e){}}function compile($compileNodes,transcludeFn,maxPriority,ignoreDirective,previousCompileContext){$compileNodes instanceof jqLite||($compileNodes=jqLite($compileNodes)),forEach($compileNodes,function(node,index){node.nodeType==NODE_TYPE_TEXT&&node.nodeValue.match(/\S+/)&&($compileNodes[index]=jqLite(node).wrap("<span></span>").parent()[0])});var compositeLinkFn=compileNodes($compileNodes,transcludeFn,$compileNodes,maxPriority,ignoreDirective,previousCompileContext);compile.$$addScopeClass($compileNodes);var namespace=null;return function(scope,cloneConnectFn,options){assertArg(scope,"scope"),options=options||{};var parentBoundTranscludeFn=options.parentBoundTranscludeFn,transcludeControllers=options.transcludeControllers,futureParentElement=options.futureParentElement;parentBoundTranscludeFn&&parentBoundTranscludeFn.$$boundTransclude&&(parentBoundTranscludeFn=parentBoundTranscludeFn.$$boundTransclude),namespace||(namespace=detectNamespaceForChildElements(futureParentElement));var $linkNode;if($linkNode="html"!==namespace?jqLite(wrapTemplate(namespace,jqLite("<div>").append($compileNodes).html())):cloneConnectFn?JQLitePrototype.clone.call($compileNodes):$compileNodes,transcludeControllers)for(var controllerName in transcludeControllers)$linkNode.data("$"+controllerName+"Controller",transcludeControllers[controllerName].instance);return compile.$$addScopeInfo($linkNode,scope),cloneConnectFn&&cloneConnectFn($linkNode,scope),compositeLinkFn&&compositeLinkFn(scope,$linkNode,$linkNode,parentBoundTranscludeFn),$linkNode}}function detectNamespaceForChildElements(parentElement){var node=parentElement&&parentElement[0];return node&&"foreignobject"!==nodeName_(node)&&node.toString().match(/SVG/)?"svg":"html"}function compileNodes(nodeList,transcludeFn,$rootElement,maxPriority,ignoreDirective,previousCompileContext){function compositeLinkFn(scope,nodeList,$rootElement,parentBoundTranscludeFn){var nodeLinkFn,childLinkFn,node,childScope,i,ii,idx,childBoundTranscludeFn,stableNodeList;if(nodeLinkFnFound){var nodeListLength=nodeList.length;for(stableNodeList=new Array(nodeListLength),i=0;i<linkFns.length;i+=3)idx=linkFns[i],stableNodeList[idx]=nodeList[idx]}else stableNodeList=nodeList;for(i=0,ii=linkFns.length;ii>i;)node=stableNodeList[linkFns[i++]],nodeLinkFn=linkFns[i++],childLinkFn=linkFns[i++],nodeLinkFn?(nodeLinkFn.scope?(childScope=scope.$new(),compile.$$addScopeInfo(jqLite(node),childScope)):childScope=scope,childBoundTranscludeFn=nodeLinkFn.transcludeOnThisElement?createBoundTranscludeFn(scope,nodeLinkFn.transclude,parentBoundTranscludeFn,nodeLinkFn.elementTranscludeOnThisElement):!nodeLinkFn.templateOnThisElement&&parentBoundTranscludeFn?parentBoundTranscludeFn:!parentBoundTranscludeFn&&transcludeFn?createBoundTranscludeFn(scope,transcludeFn):null,nodeLinkFn(childLinkFn,childScope,node,$rootElement,childBoundTranscludeFn)):childLinkFn&&childLinkFn(scope,node.childNodes,undefined,parentBoundTranscludeFn)}for(var attrs,directives,nodeLinkFn,childNodes,childLinkFn,linkFnFound,nodeLinkFnFound,linkFns=[],i=0;i<nodeList.length;i++)attrs=new Attributes,directives=collectDirectives(nodeList[i],[],attrs,0===i?maxPriority:undefined,ignoreDirective),nodeLinkFn=directives.length?applyDirectivesToNode(directives,nodeList[i],attrs,transcludeFn,$rootElement,null,[],[],previousCompileContext):null,nodeLinkFn&&nodeLinkFn.scope&&compile.$$addScopeClass(attrs.$$element),childLinkFn=nodeLinkFn&&nodeLinkFn.terminal||!(childNodes=nodeList[i].childNodes)||!childNodes.length?null:compileNodes(childNodes,nodeLinkFn?(nodeLinkFn.transcludeOnThisElement||!nodeLinkFn.templateOnThisElement)&&nodeLinkFn.transclude:transcludeFn),(nodeLinkFn||childLinkFn)&&(linkFns.push(i,nodeLinkFn,childLinkFn),linkFnFound=!0,nodeLinkFnFound=nodeLinkFnFound||nodeLinkFn),previousCompileContext=null;return linkFnFound?compositeLinkFn:null}function createBoundTranscludeFn(scope,transcludeFn,previousBoundTranscludeFn,elementTransclusion){var boundTranscludeFn=function(transcludedScope,cloneFn,controllers,futureParentElement,containingScope){return transcludedScope||(transcludedScope=scope.$new(!1,containingScope),transcludedScope.$$transcluded=!0),transcludeFn(transcludedScope,cloneFn,{parentBoundTranscludeFn:previousBoundTranscludeFn,transcludeControllers:controllers,futureParentElement:futureParentElement})};return boundTranscludeFn}function collectDirectives(node,directives,attrs,maxPriority,ignoreDirective){var match,className,nodeType=node.nodeType,attrsMap=attrs.$attr;switch(nodeType){case NODE_TYPE_ELEMENT:addDirective(directives,directiveNormalize(nodeName_(node)),"E",maxPriority,ignoreDirective);for(var attr,name,nName,ngAttrName,value,isNgAttr,nAttrs=node.attributes,j=0,jj=nAttrs&&nAttrs.length;jj>j;j++){var attrStartName=!1,attrEndName=!1;attr=nAttrs[j],name=attr.name,value=trim(attr.value),ngAttrName=directiveNormalize(name),(isNgAttr=NG_ATTR_BINDING.test(ngAttrName))&&(name=name.replace(PREFIX_REGEXP,"").substr(8).replace(/_(.)/g,function(match,letter){return letter.toUpperCase()}));var directiveNName=ngAttrName.replace(/(Start|End)$/,"");directiveIsMultiElement(directiveNName)&&ngAttrName===directiveNName+"Start"&&(attrStartName=name,attrEndName=name.substr(0,name.length-5)+"end",name=name.substr(0,name.length-6)),nName=directiveNormalize(name.toLowerCase()),attrsMap[nName]=name,(isNgAttr||!attrs.hasOwnProperty(nName))&&(attrs[nName]=value,getBooleanAttrName(node,nName)&&(attrs[nName]=!0)),addAttrInterpolateDirective(node,directives,value,nName,isNgAttr),addDirective(directives,nName,"A",maxPriority,ignoreDirective,attrStartName,attrEndName)}if(className=node.className,isObject(className)&&(className=className.animVal),isString(className)&&""!==className)for(;match=CLASS_DIRECTIVE_REGEXP.exec(className);)nName=directiveNormalize(match[2]),addDirective(directives,nName,"C",maxPriority,ignoreDirective)&&(attrs[nName]=trim(match[3])),className=className.substr(match.index+match[0].length);break;case NODE_TYPE_TEXT:addTextInterpolateDirective(directives,node.nodeValue);break;case NODE_TYPE_COMMENT:try{match=COMMENT_DIRECTIVE_REGEXP.exec(node.nodeValue),match&&(nName=directiveNormalize(match[1]),addDirective(directives,nName,"M",maxPriority,ignoreDirective)&&(attrs[nName]=trim(match[2])))}catch(e){}}return directives.sort(byPriority),directives}function groupScan(node,attrStart,attrEnd){var nodes=[],depth=0;if(attrStart&&node.hasAttribute&&node.hasAttribute(attrStart)){do{if(!node)throw $compileMinErr("uterdir","Unterminated attribute, found '{0}' but no matching '{1}' found.",attrStart,attrEnd);node.nodeType==NODE_TYPE_ELEMENT&&(node.hasAttribute(attrStart)&&depth++,node.hasAttribute(attrEnd)&&depth--),nodes.push(node),node=node.nextSibling}while(depth>0)}else nodes.push(node);return jqLite(nodes)}function groupElementsLinkFnWrapper(linkFn,attrStart,attrEnd){return function(scope,element,attrs,controllers,transcludeFn){return element=groupScan(element[0],attrStart,attrEnd),linkFn(scope,element,attrs,controllers,transcludeFn)}}function applyDirectivesToNode(directives,compileNode,templateAttrs,transcludeFn,jqCollection,originalReplaceDirective,preLinkFns,postLinkFns,previousCompileContext){function addLinkFns(pre,post,attrStart,attrEnd){pre&&(attrStart&&(pre=groupElementsLinkFnWrapper(pre,attrStart,attrEnd)),pre.require=directive.require,pre.directiveName=directiveName,(newIsolateScopeDirective===directive||directive.$$isolateScope)&&(pre=cloneAndAnnotateFn(pre,{isolateScope:!0})),preLinkFns.push(pre)),post&&(attrStart&&(post=groupElementsLinkFnWrapper(post,attrStart,attrEnd)),post.require=directive.require,post.directiveName=directiveName,(newIsolateScopeDirective===directive||directive.$$isolateScope)&&(post=cloneAndAnnotateFn(post,{isolateScope:!0})),postLinkFns.push(post))}function getControllers(directiveName,require,$element,elementControllers){var value,match,retrievalMethod="data",optional=!1,$searchElement=$element;if(isString(require)){if(match=require.match(REQUIRE_PREFIX_REGEXP),require=require.substring(match[0].length),match[3]&&(match[1]?match[3]=null:match[1]=match[3]),"^"===match[1]?retrievalMethod="inheritedData":"^^"===match[1]&&(retrievalMethod="inheritedData",$searchElement=$element.parent()),"?"===match[2]&&(optional=!0),value=null,elementControllers&&"data"===retrievalMethod&&(value=elementControllers[require])&&(value=value.instance),value=value||$searchElement[retrievalMethod]("$"+require+"Controller"),!value&&!optional)throw $compileMinErr("ctreq","Controller '{0}', required by directive '{1}', can't be found!",require,directiveName);return value||null}return isArray(require)&&(value=[],forEach(require,function(require){value.push(getControllers(directiveName,require,$element,elementControllers))})),value}function nodeLinkFn(childLinkFn,scope,linkNode,$rootElement,boundTranscludeFn){function controllersBoundTransclude(scope,cloneAttachFn,futureParentElement){var transcludeControllers;return isScope(scope)||(futureParentElement=cloneAttachFn,cloneAttachFn=scope,scope=undefined),hasElementTranscludeDirective&&(transcludeControllers=elementControllers),futureParentElement||(futureParentElement=hasElementTranscludeDirective?$element.parent():$element),boundTranscludeFn(scope,cloneAttachFn,transcludeControllers,futureParentElement,scopeToChild)}var i,ii,linkFn,controller,isolateScope,elementControllers,transcludeFn,$element,attrs;if(compileNode===linkNode?(attrs=templateAttrs,$element=templateAttrs.$$element):($element=jqLite(linkNode),attrs=new Attributes($element,templateAttrs)),newIsolateScopeDirective&&(isolateScope=scope.$new(!0)),boundTranscludeFn&&(transcludeFn=controllersBoundTransclude,transcludeFn.$$boundTransclude=boundTranscludeFn),controllerDirectives&&(controllers={},elementControllers={},forEach(controllerDirectives,function(directive){var controllerInstance,locals={$scope:directive===newIsolateScopeDirective||directive.$$isolateScope?isolateScope:scope,$element:$element,$attrs:attrs,$transclude:transcludeFn};controller=directive.controller,"@"==controller&&(controller=attrs[directive.name]),controllerInstance=$controller(controller,locals,!0,directive.controllerAs),elementControllers[directive.name]=controllerInstance,hasElementTranscludeDirective||$element.data("$"+directive.name+"Controller",controllerInstance.instance),controllers[directive.name]=controllerInstance})),newIsolateScopeDirective){compile.$$addScopeInfo($element,isolateScope,!0,!(templateDirective&&(templateDirective===newIsolateScopeDirective||templateDirective===newIsolateScopeDirective.$$originalDirective))),compile.$$addScopeClass($element,!0);var isolateScopeController=controllers&&controllers[newIsolateScopeDirective.name],isolateBindingContext=isolateScope;isolateScopeController&&isolateScopeController.identifier&&newIsolateScopeDirective.bindToController===!0&&(isolateBindingContext=isolateScopeController.instance),forEach(isolateScope.$$isolateBindings=newIsolateScopeDirective.$$isolateBindings,function(definition,scopeName){var lastValue,parentGet,parentSet,compare,attrName=definition.attrName,optional=definition.optional,mode=definition.mode;switch(mode){case"@":attrs.$observe(attrName,function(value){isolateBindingContext[scopeName]=value}),attrs.$$observers[attrName].$$scope=scope,attrs[attrName]&&(isolateBindingContext[scopeName]=$interpolate(attrs[attrName])(scope));break;case"=":if(optional&&!attrs[attrName])return;parentGet=$parse(attrs[attrName]),compare=parentGet.literal?equals:function(a,b){return a===b||a!==a&&b!==b},parentSet=parentGet.assign||function(){throw lastValue=isolateBindingContext[scopeName]=parentGet(scope),$compileMinErr("nonassign","Expression '{0}' used with directive '{1}' is non-assignable!",attrs[attrName],newIsolateScopeDirective.name)},lastValue=isolateBindingContext[scopeName]=parentGet(scope);var parentValueWatch=function(parentValue){return compare(parentValue,isolateBindingContext[scopeName])||(compare(parentValue,lastValue)?parentSet(scope,parentValue=isolateBindingContext[scopeName]):isolateBindingContext[scopeName]=parentValue),lastValue=parentValue};parentValueWatch.$stateful=!0;var unwatch;unwatch=definition.collection?scope.$watchCollection(attrs[attrName],parentValueWatch):scope.$watch($parse(attrs[attrName],parentValueWatch),null,parentGet.literal),isolateScope.$on("$destroy",unwatch);break;case"&":parentGet=$parse(attrs[attrName]),isolateBindingContext[scopeName]=function(locals){return parentGet(scope,locals)}}})}for(controllers&&(forEach(controllers,function(controller){controller()}),controllers=null),i=0,ii=preLinkFns.length;ii>i;i++)linkFn=preLinkFns[i],invokeLinkFn(linkFn,linkFn.isolateScope?isolateScope:scope,$element,attrs,linkFn.require&&getControllers(linkFn.directiveName,linkFn.require,$element,elementControllers),transcludeFn);var scopeToChild=scope;for(newIsolateScopeDirective&&(newIsolateScopeDirective.template||null===newIsolateScopeDirective.templateUrl)&&(scopeToChild=isolateScope),childLinkFn&&childLinkFn(scopeToChild,linkNode.childNodes,undefined,boundTranscludeFn),i=postLinkFns.length-1;i>=0;i--)linkFn=postLinkFns[i],invokeLinkFn(linkFn,linkFn.isolateScope?isolateScope:scope,$element,attrs,linkFn.require&&getControllers(linkFn.directiveName,linkFn.require,$element,elementControllers),transcludeFn)}previousCompileContext=previousCompileContext||{};for(var newScopeDirective,controllers,directive,directiveName,$template,linkFn,directiveValue,terminalPriority=-Number.MAX_VALUE,controllerDirectives=previousCompileContext.controllerDirectives,newIsolateScopeDirective=previousCompileContext.newIsolateScopeDirective,templateDirective=previousCompileContext.templateDirective,nonTlbTranscludeDirective=previousCompileContext.nonTlbTranscludeDirective,hasTranscludeDirective=!1,hasTemplate=!1,hasElementTranscludeDirective=previousCompileContext.hasElementTranscludeDirective,$compileNode=templateAttrs.$$element=jqLite(compileNode),replaceDirective=originalReplaceDirective,childTranscludeFn=transcludeFn,i=0,ii=directives.length;ii>i;i++){directive=directives[i];var attrStart=directive.$$start,attrEnd=directive.$$end;if(attrStart&&($compileNode=groupScan(compileNode,attrStart,attrEnd)),$template=undefined,terminalPriority>directive.priority)break;if((directiveValue=directive.scope)&&(directive.templateUrl||(isObject(directiveValue)?(assertNoDuplicate("new/isolated scope",newIsolateScopeDirective||newScopeDirective,directive,$compileNode),newIsolateScopeDirective=directive):assertNoDuplicate("new/isolated scope",newIsolateScopeDirective,directive,$compileNode)),newScopeDirective=newScopeDirective||directive),directiveName=directive.name,!directive.templateUrl&&directive.controller&&(directiveValue=directive.controller,controllerDirectives=controllerDirectives||{},assertNoDuplicate("'"+directiveName+"' controller",controllerDirectives[directiveName],directive,$compileNode),controllerDirectives[directiveName]=directive),(directiveValue=directive.transclude)&&(hasTranscludeDirective=!0,directive.$$tlb||(assertNoDuplicate("transclusion",nonTlbTranscludeDirective,directive,$compileNode),nonTlbTranscludeDirective=directive),"element"==directiveValue?(hasElementTranscludeDirective=!0,terminalPriority=directive.priority,$template=$compileNode,$compileNode=templateAttrs.$$element=jqLite(document.createComment(" "+directiveName+": "+templateAttrs[directiveName]+" ")),compileNode=$compileNode[0],replaceWith(jqCollection,sliceArgs($template),compileNode),childTranscludeFn=compile($template,transcludeFn,terminalPriority,replaceDirective&&replaceDirective.name,{nonTlbTranscludeDirective:nonTlbTranscludeDirective})):($template=jqLite(jqLiteClone(compileNode)).contents(),$compileNode.empty(),childTranscludeFn=compile($template,transcludeFn))),directive.template)if(hasTemplate=!0,assertNoDuplicate("template",templateDirective,directive,$compileNode),templateDirective=directive,directiveValue=isFunction(directive.template)?directive.template($compileNode,templateAttrs):directive.template,directiveValue=denormalizeTemplate(directiveValue),directive.replace){if(replaceDirective=directive,$template=jqLiteIsTextNode(directiveValue)?[]:removeComments(wrapTemplate(directive.templateNamespace,trim(directiveValue))),compileNode=$template[0],1!=$template.length||compileNode.nodeType!==NODE_TYPE_ELEMENT)throw $compileMinErr("tplrt","Template for directive '{0}' must have exactly one root element. {1}",directiveName,"");replaceWith(jqCollection,$compileNode,compileNode);var newTemplateAttrs={$attr:{}},templateDirectives=collectDirectives(compileNode,[],newTemplateAttrs),unprocessedDirectives=directives.splice(i+1,directives.length-(i+1));newIsolateScopeDirective&&markDirectivesAsIsolate(templateDirectives),directives=directives.concat(templateDirectives).concat(unprocessedDirectives),mergeTemplateAttributes(templateAttrs,newTemplateAttrs),ii=directives.length}else $compileNode.html(directiveValue);if(directive.templateUrl)hasTemplate=!0,assertNoDuplicate("template",templateDirective,directive,$compileNode),templateDirective=directive,directive.replace&&(replaceDirective=directive),nodeLinkFn=compileTemplateUrl(directives.splice(i,directives.length-i),$compileNode,templateAttrs,jqCollection,hasTranscludeDirective&&childTranscludeFn,preLinkFns,postLinkFns,{controllerDirectives:controllerDirectives,newIsolateScopeDirective:newIsolateScopeDirective,templateDirective:templateDirective,nonTlbTranscludeDirective:nonTlbTranscludeDirective}),ii=directives.length;else if(directive.compile)try{linkFn=directive.compile($compileNode,templateAttrs,childTranscludeFn),isFunction(linkFn)?addLinkFns(null,linkFn,attrStart,attrEnd):linkFn&&addLinkFns(linkFn.pre,linkFn.post,attrStart,attrEnd)}catch(e){$exceptionHandler(e,startingTag($compileNode))}directive.terminal&&(nodeLinkFn.terminal=!0,terminalPriority=Math.max(terminalPriority,directive.priority))}return nodeLinkFn.scope=newScopeDirective&&newScopeDirective.scope===!0,nodeLinkFn.transcludeOnThisElement=hasTranscludeDirective,nodeLinkFn.elementTranscludeOnThisElement=hasElementTranscludeDirective,nodeLinkFn.templateOnThisElement=hasTemplate,nodeLinkFn.transclude=childTranscludeFn,previousCompileContext.hasElementTranscludeDirective=hasElementTranscludeDirective,nodeLinkFn}function markDirectivesAsIsolate(directives){for(var j=0,jj=directives.length;jj>j;j++)directives[j]=inherit(directives[j],{$$isolateScope:!0})}function addDirective(tDirectives,name,location,maxPriority,ignoreDirective,startAttrName,endAttrName){if(name===ignoreDirective)return null;var match=null;if(hasDirectives.hasOwnProperty(name))for(var directive,directives=$injector.get(name+Suffix),i=0,ii=directives.length;ii>i;i++)try{directive=directives[i],(maxPriority===undefined||maxPriority>directive.priority)&&-1!=directive.restrict.indexOf(location)&&(startAttrName&&(directive=inherit(directive,{$$start:startAttrName,$$end:endAttrName})),tDirectives.push(directive),match=directive)}catch(e){$exceptionHandler(e)}return match}function directiveIsMultiElement(name){if(hasDirectives.hasOwnProperty(name))for(var directive,directives=$injector.get(name+Suffix),i=0,ii=directives.length;ii>i;i++)if(directive=directives[i],directive.multiElement)return!0;return!1}function mergeTemplateAttributes(dst,src){var srcAttr=src.$attr,dstAttr=dst.$attr,$element=dst.$$element;forEach(dst,function(value,key){"$"!=key.charAt(0)&&(src[key]&&src[key]!==value&&(value+=("style"===key?";":" ")+src[key]),dst.$set(key,value,!0,srcAttr[key]))}),forEach(src,function(value,key){"class"==key?(safeAddClass($element,value),dst["class"]=(dst["class"]?dst["class"]+" ":"")+value):"style"==key?($element.attr("style",$element.attr("style")+";"+value),dst.style=(dst.style?dst.style+";":"")+value):"$"==key.charAt(0)||dst.hasOwnProperty(key)||(dst[key]=value,dstAttr[key]=srcAttr[key])})}function compileTemplateUrl(directives,$compileNode,tAttrs,$rootElement,childTranscludeFn,preLinkFns,postLinkFns,previousCompileContext){var afterTemplateNodeLinkFn,afterTemplateChildLinkFn,linkQueue=[],beforeTemplateCompileNode=$compileNode[0],origAsyncDirective=directives.shift(),derivedSyncDirective=inherit(origAsyncDirective,{templateUrl:null,transclude:null,replace:null,$$originalDirective:origAsyncDirective}),templateUrl=isFunction(origAsyncDirective.templateUrl)?origAsyncDirective.templateUrl($compileNode,tAttrs):origAsyncDirective.templateUrl,templateNamespace=origAsyncDirective.templateNamespace;return $compileNode.empty(),$templateRequest(templateUrl).then(function(content){var compileNode,tempTemplateAttrs,$template,childBoundTranscludeFn;if(content=denormalizeTemplate(content),origAsyncDirective.replace){if($template=jqLiteIsTextNode(content)?[]:removeComments(wrapTemplate(templateNamespace,trim(content))),compileNode=$template[0],1!=$template.length||compileNode.nodeType!==NODE_TYPE_ELEMENT)throw $compileMinErr("tplrt","Template for directive '{0}' must have exactly one root element. {1}",origAsyncDirective.name,templateUrl);tempTemplateAttrs={$attr:{}},replaceWith($rootElement,$compileNode,compileNode);var templateDirectives=collectDirectives(compileNode,[],tempTemplateAttrs);isObject(origAsyncDirective.scope)&&markDirectivesAsIsolate(templateDirectives),directives=templateDirectives.concat(directives),mergeTemplateAttributes(tAttrs,tempTemplateAttrs)}else compileNode=beforeTemplateCompileNode,$compileNode.html(content);for(directives.unshift(derivedSyncDirective),afterTemplateNodeLinkFn=applyDirectivesToNode(directives,compileNode,tAttrs,childTranscludeFn,$compileNode,origAsyncDirective,preLinkFns,postLinkFns,previousCompileContext),forEach($rootElement,function(node,i){node==compileNode&&($rootElement[i]=$compileNode[0])}),afterTemplateChildLinkFn=compileNodes($compileNode[0].childNodes,childTranscludeFn);linkQueue.length;){var scope=linkQueue.shift(),beforeTemplateLinkNode=linkQueue.shift(),linkRootElement=linkQueue.shift(),boundTranscludeFn=linkQueue.shift(),linkNode=$compileNode[0];
  if(!scope.$$destroyed){if(beforeTemplateLinkNode!==beforeTemplateCompileNode){var oldClasses=beforeTemplateLinkNode.className;previousCompileContext.hasElementTranscludeDirective&&origAsyncDirective.replace||(linkNode=jqLiteClone(compileNode)),replaceWith(linkRootElement,jqLite(beforeTemplateLinkNode),linkNode),safeAddClass(jqLite(linkNode),oldClasses)}childBoundTranscludeFn=afterTemplateNodeLinkFn.transcludeOnThisElement?createBoundTranscludeFn(scope,afterTemplateNodeLinkFn.transclude,boundTranscludeFn):boundTranscludeFn,afterTemplateNodeLinkFn(afterTemplateChildLinkFn,scope,linkNode,$rootElement,childBoundTranscludeFn)}}linkQueue=null}),function(ignoreChildLinkFn,scope,node,rootElement,boundTranscludeFn){var childBoundTranscludeFn=boundTranscludeFn;scope.$$destroyed||(linkQueue?linkQueue.push(scope,node,rootElement,childBoundTranscludeFn):(afterTemplateNodeLinkFn.transcludeOnThisElement&&(childBoundTranscludeFn=createBoundTranscludeFn(scope,afterTemplateNodeLinkFn.transclude,boundTranscludeFn)),afterTemplateNodeLinkFn(afterTemplateChildLinkFn,scope,node,rootElement,childBoundTranscludeFn)))}}function byPriority(a,b){var diff=b.priority-a.priority;return 0!==diff?diff:a.name!==b.name?a.name<b.name?-1:1:a.index-b.index}function assertNoDuplicate(what,previousDirective,directive,element){if(previousDirective)throw $compileMinErr("multidir","Multiple directives [{0}, {1}] asking for {2} on: {3}",previousDirective.name,directive.name,what,startingTag(element))}function addTextInterpolateDirective(directives,text){var interpolateFn=$interpolate(text,!0);interpolateFn&&directives.push({priority:0,compile:function(templateNode){var templateNodeParent=templateNode.parent(),hasCompileParent=!!templateNodeParent.length;return hasCompileParent&&compile.$$addBindingClass(templateNodeParent),function(scope,node){var parent=node.parent();hasCompileParent||compile.$$addBindingClass(parent),compile.$$addBindingInfo(parent,interpolateFn.expressions),scope.$watch(interpolateFn,function(value){node[0].nodeValue=value})}}})}function wrapTemplate(type,template){switch(type=lowercase(type||"html")){case"svg":case"math":var wrapper=document.createElement("div");return wrapper.innerHTML="<"+type+">"+template+"</"+type+">",wrapper.childNodes[0].childNodes;default:return template}}function getTrustedContext(node,attrNormalizedName){if("srcdoc"==attrNormalizedName)return $sce.HTML;var tag=nodeName_(node);return"xlinkHref"==attrNormalizedName||"form"==tag&&"action"==attrNormalizedName||"img"!=tag&&("src"==attrNormalizedName||"ngSrc"==attrNormalizedName)?$sce.RESOURCE_URL:void 0}function addAttrInterpolateDirective(node,directives,value,name,allOrNothing){var trustedContext=getTrustedContext(node,name);allOrNothing=ALL_OR_NOTHING_ATTRS[name]||allOrNothing;var interpolateFn=$interpolate(value,!0,trustedContext,allOrNothing);if(interpolateFn){if("multiple"===name&&"select"===nodeName_(node))throw $compileMinErr("selmulti","Binding to the 'multiple' attribute is not supported. Element: {0}",startingTag(node));directives.push({priority:100,compile:function(){return{pre:function(scope,element,attr){var $$observers=attr.$$observers||(attr.$$observers={});if(EVENT_HANDLER_ATTR_REGEXP.test(name))throw $compileMinErr("nodomevents","Interpolations for HTML DOM event attributes are disallowed.  Please use the ng- versions (such as ng-click instead of onclick) instead.");var newValue=attr[name];newValue!==value&&(interpolateFn=newValue&&$interpolate(newValue,!0,trustedContext,allOrNothing),value=newValue),interpolateFn&&(attr[name]=interpolateFn(scope),($$observers[name]||($$observers[name]=[])).$$inter=!0,(attr.$$observers&&attr.$$observers[name].$$scope||scope).$watch(interpolateFn,function(newValue,oldValue){"class"===name&&newValue!=oldValue?attr.$updateClass(newValue,oldValue):attr.$set(name,newValue)}))}}}})}}function replaceWith($rootElement,elementsToRemove,newNode){var i,ii,firstElementToRemove=elementsToRemove[0],removeCount=elementsToRemove.length,parent=firstElementToRemove.parentNode;if($rootElement)for(i=0,ii=$rootElement.length;ii>i;i++)if($rootElement[i]==firstElementToRemove){$rootElement[i++]=newNode;for(var j=i,j2=j+removeCount-1,jj=$rootElement.length;jj>j;j++,j2++)jj>j2?$rootElement[j]=$rootElement[j2]:delete $rootElement[j];$rootElement.length-=removeCount-1,$rootElement.context===firstElementToRemove&&($rootElement.context=newNode);break}parent&&parent.replaceChild(newNode,firstElementToRemove);var fragment=document.createDocumentFragment();fragment.appendChild(firstElementToRemove),jqLite(newNode).data(jqLite(firstElementToRemove).data()),jQuery?(skipDestroyOnNextJQueryCleanData=!0,jQuery.cleanData([firstElementToRemove])):delete jqLite.cache[firstElementToRemove[jqLite.expando]];for(var k=1,kk=elementsToRemove.length;kk>k;k++){var element=elementsToRemove[k];jqLite(element).remove(),fragment.appendChild(element),delete elementsToRemove[k]}elementsToRemove[0]=newNode,elementsToRemove.length=1}function cloneAndAnnotateFn(fn,annotation){return extend(function(){return fn.apply(null,arguments)},fn,annotation)}function invokeLinkFn(linkFn,scope,$element,attrs,controllers,transcludeFn){try{linkFn(scope,$element,attrs,controllers,transcludeFn)}catch(e){$exceptionHandler(e,startingTag($element))}}var Attributes=function(element,attributesToCopy){if(attributesToCopy){var i,l,key,keys=Object.keys(attributesToCopy);for(i=0,l=keys.length;l>i;i++)key=keys[i],this[key]=attributesToCopy[key]}else this.$attr={};this.$$element=element};Attributes.prototype={$normalize:directiveNormalize,$addClass:function(classVal){classVal&&classVal.length>0&&$animate.addClass(this.$$element,classVal)},$removeClass:function(classVal){classVal&&classVal.length>0&&$animate.removeClass(this.$$element,classVal)},$updateClass:function(newClasses,oldClasses){var toAdd=tokenDifference(newClasses,oldClasses);toAdd&&toAdd.length&&$animate.addClass(this.$$element,toAdd);var toRemove=tokenDifference(oldClasses,newClasses);toRemove&&toRemove.length&&$animate.removeClass(this.$$element,toRemove)},$set:function(key,value,writeAttr,attrName){var nodeName,node=this.$$element[0],booleanKey=getBooleanAttrName(node,key),aliasedKey=getAliasedAttrName(node,key),observer=key;if(booleanKey?(this.$$element.prop(key,value),attrName=booleanKey):aliasedKey&&(this[aliasedKey]=value,observer=aliasedKey),this[key]=value,attrName?this.$attr[key]=attrName:(attrName=this.$attr[key],attrName||(this.$attr[key]=attrName=snake_case(key,"-"))),nodeName=nodeName_(this.$$element),"a"===nodeName&&"href"===key||"img"===nodeName&&"src"===key)this[key]=value=$$sanitizeUri(value,"src"===key);else if("img"===nodeName&&"srcset"===key){for(var result="",trimmedSrcset=trim(value),srcPattern=/(\s+\d+x\s*,|\s+\d+w\s*,|\s+,|,\s+)/,pattern=/\s/.test(trimmedSrcset)?srcPattern:/(,)/,rawUris=trimmedSrcset.split(pattern),nbrUrisWith2parts=Math.floor(rawUris.length/2),i=0;nbrUrisWith2parts>i;i++){var innerIdx=2*i;result+=$$sanitizeUri(trim(rawUris[innerIdx]),!0),result+=" "+trim(rawUris[innerIdx+1])}var lastTuple=trim(rawUris[2*i]).split(/\s/);result+=$$sanitizeUri(trim(lastTuple[0]),!0),2===lastTuple.length&&(result+=" "+trim(lastTuple[1])),this[key]=value=result}writeAttr!==!1&&(null===value||value===undefined?this.$$element.removeAttr(attrName):this.$$element.attr(attrName,value));var $$observers=this.$$observers;$$observers&&forEach($$observers[observer],function(fn){try{fn(value)}catch(e){$exceptionHandler(e)}})},$observe:function(key,fn){var attrs=this,$$observers=attrs.$$observers||(attrs.$$observers=createMap()),listeners=$$observers[key]||($$observers[key]=[]);return listeners.push(fn),$rootScope.$evalAsync(function(){!listeners.$$inter&&attrs.hasOwnProperty(key)&&fn(attrs[key])}),function(){arrayRemove(listeners,fn)}}};var startSymbol=$interpolate.startSymbol(),endSymbol=$interpolate.endSymbol(),denormalizeTemplate="{{"==startSymbol||"}}"==endSymbol?identity:function(template){return template.replace(/\{\{/g,startSymbol).replace(/}}/g,endSymbol)},NG_ATTR_BINDING=/^ngAttr[A-Z]/;return compile.$$addBindingInfo=debugInfoEnabled?function($element,binding){var bindings=$element.data("$binding")||[];isArray(binding)?bindings=bindings.concat(binding):bindings.push(binding),$element.data("$binding",bindings)}:noop,compile.$$addBindingClass=debugInfoEnabled?function($element){safeAddClass($element,"ng-binding")}:noop,compile.$$addScopeInfo=debugInfoEnabled?function($element,scope,isolated,noTemplate){var dataName=isolated?noTemplate?"$isolateScopeNoTemplate":"$isolateScope":"$scope";$element.data(dataName,scope)}:noop,compile.$$addScopeClass=debugInfoEnabled?function($element,isolated){safeAddClass($element,isolated?"ng-isolate-scope":"ng-scope")}:noop,compile}]}function directiveNormalize(name){return camelCase(name.replace(PREFIX_REGEXP,""))}function tokenDifference(str1,str2){var values="",tokens1=str1.split(/\s+/),tokens2=str2.split(/\s+/);outer:for(var i=0;i<tokens1.length;i++){for(var token=tokens1[i],j=0;j<tokens2.length;j++)if(token==tokens2[j])continue outer;values+=(values.length>0?" ":"")+token}return values}function removeComments(jqNodes){jqNodes=jqLite(jqNodes);var i=jqNodes.length;if(1>=i)return jqNodes;for(;i--;){var node=jqNodes[i];node.nodeType===NODE_TYPE_COMMENT&&splice.call(jqNodes,i,1)}return jqNodes}function $ControllerProvider(){var controllers={},globals=!1,CNTRL_REG=/^(\S+)(\s+as\s+(\w+))?$/;this.register=function(name,constructor){assertNotHasOwnProperty(name,"controller"),isObject(name)?extend(controllers,name):controllers[name]=constructor},this.allowGlobals=function(){globals=!0},this.$get=["$injector","$window",function($injector,$window){function addIdentifier(locals,identifier,instance,name){if(!locals||!isObject(locals.$scope))throw minErr("$controller")("noscp","Cannot export controller '{0}' as '{1}'! No $scope object provided via `locals`.",name,identifier);locals.$scope[identifier]=instance}return function(expression,locals,later,ident){var instance,match,constructor,identifier;if(later=later===!0,ident&&isString(ident)&&(identifier=ident),isString(expression)){if(match=expression.match(CNTRL_REG),!match)throw $controllerMinErr("ctrlfmt","Badly formed controller string '{0}'. Must match `__name__ as __id__` or `__name__`.",expression);constructor=match[1],identifier=identifier||match[3],expression=controllers.hasOwnProperty(constructor)?controllers[constructor]:getter(locals.$scope,constructor,!0)||(globals?getter($window,constructor,!0):undefined),assertArgFn(expression,constructor,!0)}if(later){var controllerPrototype=(isArray(expression)?expression[expression.length-1]:expression).prototype;return instance=Object.create(controllerPrototype||null),identifier&&addIdentifier(locals,identifier,instance,constructor||expression.name),extend(function(){return $injector.invoke(expression,instance,locals,constructor),instance},{instance:instance,identifier:identifier})}return instance=$injector.instantiate(expression,locals,constructor),identifier&&addIdentifier(locals,identifier,instance,constructor||expression.name),instance}}]}function $DocumentProvider(){this.$get=["$window",function(window){return jqLite(window.document)}]}function $ExceptionHandlerProvider(){this.$get=["$log",function($log){return function(exception,cause){$log.error.apply($log,arguments)}}]}function defaultHttpResponseTransform(data,headers){if(isString(data)){var tempData=data.replace(JSON_PROTECTION_PREFIX,"").trim();if(tempData){var contentType=headers("Content-Type");(contentType&&0===contentType.indexOf(APPLICATION_JSON)||isJsonLike(tempData))&&(data=fromJson(tempData))}}return data}function isJsonLike(str){var jsonStart=str.match(JSON_START);return jsonStart&&JSON_ENDS[jsonStart[0]].test(str)}function parseHeaders(headers){var key,val,i,parsed=createMap();return headers?(forEach(headers.split("\n"),function(line){i=line.indexOf(":"),key=lowercase(trim(line.substr(0,i))),val=trim(line.substr(i+1)),key&&(parsed[key]=parsed[key]?parsed[key]+", "+val:val)}),parsed):parsed}function headersGetter(headers){var headersObj=isObject(headers)?headers:undefined;return function(name){if(headersObj||(headersObj=parseHeaders(headers)),name){var value=headersObj[lowercase(name)];return void 0===value&&(value=null),value}return headersObj}}function transformData(data,headers,status,fns){return isFunction(fns)?fns(data,headers,status):(forEach(fns,function(fn){data=fn(data,headers,status)}),data)}function isSuccess(status){return status>=200&&300>status}function $HttpProvider(){var defaults=this.defaults={transformResponse:[defaultHttpResponseTransform],transformRequest:[function(d){return!isObject(d)||isFile(d)||isBlob(d)||isFormData(d)?d:toJson(d)}],headers:{common:{Accept:"application/json, text/plain, */*"},post:shallowCopy(CONTENT_TYPE_APPLICATION_JSON),put:shallowCopy(CONTENT_TYPE_APPLICATION_JSON),patch:shallowCopy(CONTENT_TYPE_APPLICATION_JSON)},xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN"},useApplyAsync=!1;this.useApplyAsync=function(value){return isDefined(value)?(useApplyAsync=!!value,this):useApplyAsync};var interceptorFactories=this.interceptors=[];this.$get=["$httpBackend","$browser","$cacheFactory","$rootScope","$q","$injector",function($httpBackend,$browser,$cacheFactory,$rootScope,$q,$injector){function $http(requestConfig){function transformResponse(response){var resp=extend({},response);return response.data?resp.data=transformData(response.data,response.headers,response.status,config.transformResponse):resp.data=response.data,isSuccess(response.status)?resp:$q.reject(resp)}function executeHeaderFns(headers){var headerContent,processedHeaders={};return forEach(headers,function(headerFn,header){isFunction(headerFn)?(headerContent=headerFn(),null!=headerContent&&(processedHeaders[header]=headerContent)):processedHeaders[header]=headerFn}),processedHeaders}function mergeHeaders(config){var defHeaderName,lowercaseDefHeaderName,reqHeaderName,defHeaders=defaults.headers,reqHeaders=extend({},config.headers);defHeaders=extend({},defHeaders.common,defHeaders[lowercase(config.method)]);defaultHeadersIteration:for(defHeaderName in defHeaders){lowercaseDefHeaderName=lowercase(defHeaderName);for(reqHeaderName in reqHeaders)if(lowercase(reqHeaderName)===lowercaseDefHeaderName)continue defaultHeadersIteration;reqHeaders[defHeaderName]=defHeaders[defHeaderName]}return executeHeaderFns(reqHeaders)}if(!angular.isObject(requestConfig))throw minErr("$http")("badreq","Http request configuration must be an object.  Received: {0}",requestConfig);var config=extend({method:"get",transformRequest:defaults.transformRequest,transformResponse:defaults.transformResponse},requestConfig);config.headers=mergeHeaders(requestConfig),config.method=uppercase(config.method);var serverRequest=function(config){var headers=config.headers,reqData=transformData(config.data,headersGetter(headers),undefined,config.transformRequest);return isUndefined(reqData)&&forEach(headers,function(value,header){"content-type"===lowercase(header)&&delete headers[header]}),isUndefined(config.withCredentials)&&!isUndefined(defaults.withCredentials)&&(config.withCredentials=defaults.withCredentials),sendReq(config,reqData).then(transformResponse,transformResponse)},chain=[serverRequest,undefined],promise=$q.when(config);for(forEach(reversedInterceptors,function(interceptor){(interceptor.request||interceptor.requestError)&&chain.unshift(interceptor.request,interceptor.requestError),(interceptor.response||interceptor.responseError)&&chain.push(interceptor.response,interceptor.responseError)});chain.length;){var thenFn=chain.shift(),rejectFn=chain.shift();promise=promise.then(thenFn,rejectFn)}return promise.success=function(fn){return assertArgFn(fn,"fn"),promise.then(function(response){fn(response.data,response.status,response.headers,config)}),promise},promise.error=function(fn){return assertArgFn(fn,"fn"),promise.then(null,function(response){fn(response.data,response.status,response.headers,config)}),promise},promise}function createShortMethods(names){forEach(arguments,function(name){$http[name]=function(url,config){return $http(extend(config||{},{method:name,url:url}))}})}function createShortMethodsWithData(name){forEach(arguments,function(name){$http[name]=function(url,data,config){return $http(extend(config||{},{method:name,url:url,data:data}))}})}function sendReq(config,reqData){function done(status,response,headersString,statusText){function resolveHttpPromise(){resolvePromise(response,status,headersString,statusText)}cache&&(isSuccess(status)?cache.put(url,[status,response,parseHeaders(headersString),statusText]):cache.remove(url)),useApplyAsync?$rootScope.$applyAsync(resolveHttpPromise):(resolveHttpPromise(),$rootScope.$$phase||$rootScope.$apply())}function resolvePromise(response,status,headers,statusText){status=Math.max(status,0),(isSuccess(status)?deferred.resolve:deferred.reject)({data:response,status:status,headers:headersGetter(headers),config:config,statusText:statusText})}function resolvePromiseWithResult(result){resolvePromise(result.data,result.status,shallowCopy(result.headers()),result.statusText)}function removePendingReq(){var idx=$http.pendingRequests.indexOf(config);-1!==idx&&$http.pendingRequests.splice(idx,1)}var cache,cachedResp,deferred=$q.defer(),promise=deferred.promise,reqHeaders=config.headers,url=buildUrl(config.url,config.params);if($http.pendingRequests.push(config),promise.then(removePendingReq,removePendingReq),!config.cache&&!defaults.cache||config.cache===!1||"GET"!==config.method&&"JSONP"!==config.method||(cache=isObject(config.cache)?config.cache:isObject(defaults.cache)?defaults.cache:defaultCache),cache&&(cachedResp=cache.get(url),isDefined(cachedResp)?isPromiseLike(cachedResp)?cachedResp.then(resolvePromiseWithResult,resolvePromiseWithResult):isArray(cachedResp)?resolvePromise(cachedResp[1],cachedResp[0],shallowCopy(cachedResp[2]),cachedResp[3]):resolvePromise(cachedResp,200,{},"OK"):cache.put(url,promise)),isUndefined(cachedResp)){var xsrfValue=urlIsSameOrigin(config.url)?$browser.cookies()[config.xsrfCookieName||defaults.xsrfCookieName]:undefined;xsrfValue&&(reqHeaders[config.xsrfHeaderName||defaults.xsrfHeaderName]=xsrfValue),$httpBackend(config.method,url,reqData,done,reqHeaders,config.timeout,config.withCredentials,config.responseType)}return promise}function buildUrl(url,params){if(!params)return url;var parts=[];return forEachSorted(params,function(value,key){null===value||isUndefined(value)||(isArray(value)||(value=[value]),forEach(value,function(v){isObject(v)&&(v=isDate(v)?v.toISOString():toJson(v)),parts.push(encodeUriQuery(key)+"="+encodeUriQuery(v))}))}),parts.length>0&&(url+=(-1==url.indexOf("?")?"?":"&")+parts.join("&")),url}var defaultCache=$cacheFactory("$http"),reversedInterceptors=[];return forEach(interceptorFactories,function(interceptorFactory){reversedInterceptors.unshift(isString(interceptorFactory)?$injector.get(interceptorFactory):$injector.invoke(interceptorFactory))}),$http.pendingRequests=[],createShortMethods("get","delete","head","jsonp"),createShortMethodsWithData("post","put","patch"),$http.defaults=defaults,$http}]}function createXhr(){return new window.XMLHttpRequest}function $HttpBackendProvider(){this.$get=["$browser","$window","$document",function($browser,$window,$document){return createHttpBackend($browser,createXhr,$browser.defer,$window.angular.callbacks,$document[0])}]}function createHttpBackend($browser,createXhr,$browserDefer,callbacks,rawDocument){function jsonpReq(url,callbackId,done){var script=rawDocument.createElement("script"),callback=null;return script.type="text/javascript",script.src=url,script.async=!0,callback=function(event){removeEventListenerFn(script,"load",callback),removeEventListenerFn(script,"error",callback),rawDocument.body.removeChild(script),script=null;var status=-1,text="unknown";event&&("load"!==event.type||callbacks[callbackId].called||(event={type:"error"}),text=event.type,status="error"===event.type?404:200),done&&done(status,text)},addEventListenerFn(script,"load",callback),addEventListenerFn(script,"error",callback),rawDocument.body.appendChild(script),callback}return function(method,url,post,callback,headers,timeout,withCredentials,responseType){function timeoutRequest(){jsonpDone&&jsonpDone(),xhr&&xhr.abort()}function completeRequest(callback,status,response,headersString,statusText){timeoutId!==undefined&&$browserDefer.cancel(timeoutId),jsonpDone=xhr=null,callback(status,response,headersString,statusText),$browser.$$completeOutstandingRequest(noop)}if($browser.$$incOutstandingRequestCount(),url=url||$browser.url(),"jsonp"==lowercase(method)){var callbackId="_"+(callbacks.counter++).toString(36);callbacks[callbackId]=function(data){callbacks[callbackId].data=data,callbacks[callbackId].called=!0};var jsonpDone=jsonpReq(url.replace("JSON_CALLBACK","angular.callbacks."+callbackId),callbackId,function(status,text){completeRequest(callback,status,callbacks[callbackId].data,"",text),callbacks[callbackId]=noop})}else{var xhr=createXhr();xhr.open(method,url,!0),forEach(headers,function(value,key){isDefined(value)&&xhr.setRequestHeader(key,value)}),xhr.onload=function(){var statusText=xhr.statusText||"",response="response"in xhr?xhr.response:xhr.responseText,status=1223===xhr.status?204:xhr.status;0===status&&(status=response?200:"file"==urlResolve(url).protocol?404:0),completeRequest(callback,status,response,xhr.getAllResponseHeaders(),statusText)};var requestError=function(){completeRequest(callback,-1,null,null,"")};if(xhr.onerror=requestError,xhr.onabort=requestError,withCredentials&&(xhr.withCredentials=!0),responseType)try{xhr.responseType=responseType}catch(e){if("json"!==responseType)throw e}xhr.send(post||null)}if(timeout>0)var timeoutId=$browserDefer(timeoutRequest,timeout);else isPromiseLike(timeout)&&timeout.then(timeoutRequest)}}function $InterpolateProvider(){var startSymbol="{{",endSymbol="}}";this.startSymbol=function(value){return value?(startSymbol=value,this):startSymbol},this.endSymbol=function(value){return value?(endSymbol=value,this):endSymbol},this.$get=["$parse","$exceptionHandler","$sce",function($parse,$exceptionHandler,$sce){function escape(ch){return"\\\\\\"+ch}function $interpolate(text,mustHaveExpression,trustedContext,allOrNothing){function unescapeText(text){return text.replace(escapedStartRegexp,startSymbol).replace(escapedEndRegexp,endSymbol)}function parseStringifyInterceptor(value){try{return value=getValue(value),allOrNothing&&!isDefined(value)?value:stringify(value)}catch(err){var newErr=$interpolateMinErr("interr","Can't interpolate: {0}\n{1}",text,err.toString());$exceptionHandler(newErr)}}allOrNothing=!!allOrNothing;for(var startIndex,endIndex,exp,index=0,expressions=[],parseFns=[],textLength=text.length,concat=[],expressionPositions=[];textLength>index;){if(-1==(startIndex=text.indexOf(startSymbol,index))||-1==(endIndex=text.indexOf(endSymbol,startIndex+startSymbolLength))){index!==textLength&&concat.push(unescapeText(text.substring(index)));break}index!==startIndex&&concat.push(unescapeText(text.substring(index,startIndex))),exp=text.substring(startIndex+startSymbolLength,endIndex),expressions.push(exp),parseFns.push($parse(exp,parseStringifyInterceptor)),index=endIndex+endSymbolLength,expressionPositions.push(concat.length),concat.push("")}if(trustedContext&&concat.length>1)throw $interpolateMinErr("noconcat","Error while interpolating: {0}\nStrict Contextual Escaping disallows interpolations that concatenate multiple expressions when a trusted value is required.  See http://docs.angularjs.org/api/ng.$sce",text);if(!mustHaveExpression||expressions.length){var compute=function(values){for(var i=0,ii=expressions.length;ii>i;i++){if(allOrNothing&&isUndefined(values[i]))return;concat[expressionPositions[i]]=values[i]}return concat.join("")},getValue=function(value){return trustedContext?$sce.getTrusted(trustedContext,value):$sce.valueOf(value)},stringify=function(value){if(null==value)return"";switch(typeof value){case"string":break;case"number":value=""+value;break;default:value=toJson(value)}return value};return extend(function(context){var i=0,ii=expressions.length,values=new Array(ii);try{for(;ii>i;i++)values[i]=parseFns[i](context);return compute(values)}catch(err){var newErr=$interpolateMinErr("interr","Can't interpolate: {0}\n{1}",text,err.toString());$exceptionHandler(newErr)}},{exp:text,expressions:expressions,$$watchDelegate:function(scope,listener,objectEquality){var lastValue;return scope.$watchGroup(parseFns,function(values,oldValues){var currValue=compute(values);isFunction(listener)&&listener.call(this,currValue,values!==oldValues?lastValue:currValue,scope),lastValue=currValue},objectEquality)}})}}var startSymbolLength=startSymbol.length,endSymbolLength=endSymbol.length,escapedStartRegexp=new RegExp(startSymbol.replace(/./g,escape),"g"),escapedEndRegexp=new RegExp(endSymbol.replace(/./g,escape),"g");return $interpolate.startSymbol=function(){return startSymbol},$interpolate.endSymbol=function(){return endSymbol},$interpolate}]}function $IntervalProvider(){this.$get=["$rootScope","$window","$q","$$q",function($rootScope,$window,$q,$$q){function interval(fn,delay,count,invokeApply){var setInterval=$window.setInterval,clearInterval=$window.clearInterval,iteration=0,skipApply=isDefined(invokeApply)&&!invokeApply,deferred=(skipApply?$$q:$q).defer(),promise=deferred.promise;return count=isDefined(count)?count:0,promise.then(null,null,fn),promise.$$intervalId=setInterval(function(){deferred.notify(iteration++),count>0&&iteration>=count&&(deferred.resolve(iteration),clearInterval(promise.$$intervalId),delete intervals[promise.$$intervalId]),skipApply||$rootScope.$apply()},delay),intervals[promise.$$intervalId]=deferred,promise}var intervals={};return interval.cancel=function(promise){return promise&&promise.$$intervalId in intervals?(intervals[promise.$$intervalId].reject("canceled"),$window.clearInterval(promise.$$intervalId),delete intervals[promise.$$intervalId],!0):!1},interval}]}function $LocaleProvider(){this.$get=function(){return{id:"en-us",NUMBER_FORMATS:{DECIMAL_SEP:".",GROUP_SEP:",",PATTERNS:[{minInt:1,minFrac:0,maxFrac:3,posPre:"",posSuf:"",negPre:"-",negSuf:"",gSize:3,lgSize:3},{minInt:1,minFrac:2,maxFrac:2,posPre:"¤",posSuf:"",negPre:"(¤",negSuf:")",gSize:3,lgSize:3}],CURRENCY_SYM:"$"},DATETIME_FORMATS:{MONTH:"January,February,March,April,May,June,July,August,September,October,November,December".split(","),SHORTMONTH:"Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec".split(","),DAY:"Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday".split(","),SHORTDAY:"Sun,Mon,Tue,Wed,Thu,Fri,Sat".split(","),AMPMS:["AM","PM"],medium:"MMM d, y h:mm:ss a","short":"M/d/yy h:mm a",fullDate:"EEEE, MMMM d, y",longDate:"MMMM d, y",mediumDate:"MMM d, y",shortDate:"M/d/yy",mediumTime:"h:mm:ss a",shortTime:"h:mm a",ERANAMES:["Before Christ","Anno Domini"],ERAS:["BC","AD"]},pluralCat:function(num){return 1===num?"one":"other"}}}}function encodePath(path){for(var segments=path.split("/"),i=segments.length;i--;)segments[i]=encodeUriSegment(segments[i]);return segments.join("/")}function parseAbsoluteUrl(absoluteUrl,locationObj){var parsedUrl=urlResolve(absoluteUrl);locationObj.$$protocol=parsedUrl.protocol,locationObj.$$host=parsedUrl.hostname,locationObj.$$port=int(parsedUrl.port)||DEFAULT_PORTS[parsedUrl.protocol]||null}function parseAppUrl(relativeUrl,locationObj){var prefixed="/"!==relativeUrl.charAt(0);prefixed&&(relativeUrl="/"+relativeUrl);var match=urlResolve(relativeUrl);locationObj.$$path=decodeURIComponent(prefixed&&"/"===match.pathname.charAt(0)?match.pathname.substring(1):match.pathname),locationObj.$$search=parseKeyValue(match.search),locationObj.$$hash=decodeURIComponent(match.hash),locationObj.$$path&&"/"!=locationObj.$$path.charAt(0)&&(locationObj.$$path="/"+locationObj.$$path)}function beginsWith(begin,whole){return 0===whole.indexOf(begin)?whole.substr(begin.length):void 0}function stripHash(url){var index=url.indexOf("#");return-1==index?url:url.substr(0,index)}function trimEmptyHash(url){return url.replace(/(#.+)|#$/,"$1")}function stripFile(url){return url.substr(0,stripHash(url).lastIndexOf("/")+1)}function serverBase(url){return url.substring(0,url.indexOf("/",url.indexOf("//")+2))}function LocationHtml5Url(appBase,basePrefix){this.$$html5=!0,basePrefix=basePrefix||"";var appBaseNoFile=stripFile(appBase);parseAbsoluteUrl(appBase,this),this.$$parse=function(url){var pathUrl=beginsWith(appBaseNoFile,url);if(!isString(pathUrl))throw $locationMinErr("ipthprfx",'Invalid url "{0}", missing path prefix "{1}".',url,appBaseNoFile);parseAppUrl(pathUrl,this),this.$$path||(this.$$path="/"),this.$$compose()},this.$$compose=function(){var search=toKeyValue(this.$$search),hash=this.$$hash?"#"+encodeUriSegment(this.$$hash):"";this.$$url=encodePath(this.$$path)+(search?"?"+search:"")+hash,this.$$absUrl=appBaseNoFile+this.$$url.substr(1)},this.$$parseLinkUrl=function(url,relHref){if(relHref&&"#"===relHref[0])return this.hash(relHref.slice(1)),!0;var appUrl,prevAppUrl,rewrittenUrl;return(appUrl=beginsWith(appBase,url))!==undefined?(prevAppUrl=appUrl,rewrittenUrl=(appUrl=beginsWith(basePrefix,appUrl))!==undefined?appBaseNoFile+(beginsWith("/",appUrl)||appUrl):appBase+prevAppUrl):(appUrl=beginsWith(appBaseNoFile,url))!==undefined?rewrittenUrl=appBaseNoFile+appUrl:appBaseNoFile==url+"/"&&(rewrittenUrl=appBaseNoFile),rewrittenUrl&&this.$$parse(rewrittenUrl),!!rewrittenUrl}}function LocationHashbangUrl(appBase,hashPrefix){var appBaseNoFile=stripFile(appBase);parseAbsoluteUrl(appBase,this),this.$$parse=function(url){function removeWindowsDriveName(path,url,base){var firstPathSegmentMatch,windowsFilePathExp=/^\/[A-Z]:(\/.*)/;return 0===url.indexOf(base)&&(url=url.replace(base,"")),windowsFilePathExp.exec(url)?path:(firstPathSegmentMatch=windowsFilePathExp.exec(path),firstPathSegmentMatch?firstPathSegmentMatch[1]:path)}var withoutHashUrl,withoutBaseUrl=beginsWith(appBase,url)||beginsWith(appBaseNoFile,url);isUndefined(withoutBaseUrl)||"#"!==withoutBaseUrl.charAt(0)?this.$$html5?withoutHashUrl=withoutBaseUrl:(withoutHashUrl="",isUndefined(withoutBaseUrl)&&(appBase=url,this.replace())):(withoutHashUrl=beginsWith(hashPrefix,withoutBaseUrl),isUndefined(withoutHashUrl)&&(withoutHashUrl=withoutBaseUrl)),parseAppUrl(withoutHashUrl,this),this.$$path=removeWindowsDriveName(this.$$path,withoutHashUrl,appBase),this.$$compose()},this.$$compose=function(){var search=toKeyValue(this.$$search),hash=this.$$hash?"#"+encodeUriSegment(this.$$hash):"";this.$$url=encodePath(this.$$path)+(search?"?"+search:"")+hash,this.$$absUrl=appBase+(this.$$url?hashPrefix+this.$$url:"")},this.$$parseLinkUrl=function(url,relHref){return stripHash(appBase)==stripHash(url)?(this.$$parse(url),!0):!1}}function LocationHashbangInHtml5Url(appBase,hashPrefix){this.$$html5=!0,LocationHashbangUrl.apply(this,arguments);var appBaseNoFile=stripFile(appBase);this.$$parseLinkUrl=function(url,relHref){if(relHref&&"#"===relHref[0])return this.hash(relHref.slice(1)),!0;var rewrittenUrl,appUrl;return appBase==stripHash(url)?rewrittenUrl=url:(appUrl=beginsWith(appBaseNoFile,url))?rewrittenUrl=appBase+hashPrefix+appUrl:appBaseNoFile===url+"/"&&(rewrittenUrl=appBaseNoFile),rewrittenUrl&&this.$$parse(rewrittenUrl),!!rewrittenUrl},this.$$compose=function(){var search=toKeyValue(this.$$search),hash=this.$$hash?"#"+encodeUriSegment(this.$$hash):"";this.$$url=encodePath(this.$$path)+(search?"?"+search:"")+hash,this.$$absUrl=appBase+hashPrefix+this.$$url}}function locationGetter(property){return function(){return this[property]}}function locationGetterSetter(property,preprocess){return function(value){return isUndefined(value)?this[property]:(this[property]=preprocess(value),this.$$compose(),this)}}function $LocationProvider(){var hashPrefix="",html5Mode={enabled:!1,requireBase:!0,rewriteLinks:!0};this.hashPrefix=function(prefix){return isDefined(prefix)?(hashPrefix=prefix,this):hashPrefix},this.html5Mode=function(mode){return isBoolean(mode)?(html5Mode.enabled=mode,
  this):isObject(mode)?(isBoolean(mode.enabled)&&(html5Mode.enabled=mode.enabled),isBoolean(mode.requireBase)&&(html5Mode.requireBase=mode.requireBase),isBoolean(mode.rewriteLinks)&&(html5Mode.rewriteLinks=mode.rewriteLinks),this):html5Mode},this.$get=["$rootScope","$browser","$sniffer","$rootElement","$window",function($rootScope,$browser,$sniffer,$rootElement,$window){function setBrowserUrlWithFallback(url,replace,state){var oldUrl=$location.url(),oldState=$location.$$state;try{$browser.url(url,replace,state),$location.$$state=$browser.state()}catch(e){throw $location.url(oldUrl),$location.$$state=oldState,e}}function afterLocationChange(oldUrl,oldState){$rootScope.$broadcast("$locationChangeSuccess",$location.absUrl(),oldUrl,$location.$$state,oldState)}var $location,LocationMode,appBase,baseHref=$browser.baseHref(),initialUrl=$browser.url();if(html5Mode.enabled){if(!baseHref&&html5Mode.requireBase)throw $locationMinErr("nobase","$location in HTML5 mode requires a <base> tag to be present!");appBase=serverBase(initialUrl)+(baseHref||"/"),LocationMode=$sniffer.history?LocationHtml5Url:LocationHashbangInHtml5Url}else appBase=stripHash(initialUrl),LocationMode=LocationHashbangUrl;$location=new LocationMode(appBase,"#"+hashPrefix),$location.$$parseLinkUrl(initialUrl,initialUrl),$location.$$state=$browser.state();var IGNORE_URI_REGEXP=/^\s*(javascript|mailto):/i;$rootElement.on("click",function(event){if(html5Mode.rewriteLinks&&!event.ctrlKey&&!event.metaKey&&!event.shiftKey&&2!=event.which&&2!=event.button){for(var elm=jqLite(event.target);"a"!==nodeName_(elm[0]);)if(elm[0]===$rootElement[0]||!(elm=elm.parent())[0])return;var absHref=elm.prop("href"),relHref=elm.attr("href")||elm.attr("xlink:href");isObject(absHref)&&"[object SVGAnimatedString]"===absHref.toString()&&(absHref=urlResolve(absHref.animVal).href),IGNORE_URI_REGEXP.test(absHref)||!absHref||elm.attr("target")||event.isDefaultPrevented()||$location.$$parseLinkUrl(absHref,relHref)&&(event.preventDefault(),$location.absUrl()!=$browser.url()&&($rootScope.$apply(),$window.angular["ff-684208-preventDefault"]=!0))}}),trimEmptyHash($location.absUrl())!=trimEmptyHash(initialUrl)&&$browser.url($location.absUrl(),!0);var initializing=!0;return $browser.onUrlChange(function(newUrl,newState){$rootScope.$evalAsync(function(){var defaultPrevented,oldUrl=$location.absUrl(),oldState=$location.$$state;$location.$$parse(newUrl),$location.$$state=newState,defaultPrevented=$rootScope.$broadcast("$locationChangeStart",newUrl,oldUrl,newState,oldState).defaultPrevented,$location.absUrl()===newUrl&&(defaultPrevented?($location.$$parse(oldUrl),$location.$$state=oldState,setBrowserUrlWithFallback(oldUrl,!1,oldState)):(initializing=!1,afterLocationChange(oldUrl,oldState)))}),$rootScope.$$phase||$rootScope.$digest()}),$rootScope.$watch(function(){var oldUrl=trimEmptyHash($browser.url()),newUrl=trimEmptyHash($location.absUrl()),oldState=$browser.state(),currentReplace=$location.$$replace,urlOrStateChanged=oldUrl!==newUrl||$location.$$html5&&$sniffer.history&&oldState!==$location.$$state;(initializing||urlOrStateChanged)&&(initializing=!1,$rootScope.$evalAsync(function(){var newUrl=$location.absUrl(),defaultPrevented=$rootScope.$broadcast("$locationChangeStart",newUrl,oldUrl,$location.$$state,oldState).defaultPrevented;$location.absUrl()===newUrl&&(defaultPrevented?($location.$$parse(oldUrl),$location.$$state=oldState):(urlOrStateChanged&&setBrowserUrlWithFallback(newUrl,currentReplace,oldState===$location.$$state?null:$location.$$state),afterLocationChange(oldUrl,oldState)))})),$location.$$replace=!1}),$location}]}function $LogProvider(){var debug=!0,self=this;this.debugEnabled=function(flag){return isDefined(flag)?(debug=flag,this):debug},this.$get=["$window",function($window){function formatError(arg){return arg instanceof Error&&(arg.stack?arg=arg.message&&-1===arg.stack.indexOf(arg.message)?"Error: "+arg.message+"\n"+arg.stack:arg.stack:arg.sourceURL&&(arg=arg.message+"\n"+arg.sourceURL+":"+arg.line)),arg}function consoleLog(type){var console=$window.console||{},logFn=console[type]||console.log||noop,hasApply=!1;try{hasApply=!!logFn.apply}catch(e){}return hasApply?function(){var args=[];return forEach(arguments,function(arg){args.push(formatError(arg))}),logFn.apply(console,args)}:function(arg1,arg2){logFn(arg1,null==arg2?"":arg2)}}return{log:consoleLog("log"),info:consoleLog("info"),warn:consoleLog("warn"),error:consoleLog("error"),debug:function(){var fn=consoleLog("debug");return function(){debug&&fn.apply(self,arguments)}}()}}]}function ensureSafeMemberName(name,fullExpression){if("__defineGetter__"===name||"__defineSetter__"===name||"__lookupGetter__"===name||"__lookupSetter__"===name||"__proto__"===name)throw $parseMinErr("isecfld","Attempting to access a disallowed field in Angular expressions! Expression: {0}",fullExpression);return name}function ensureSafeObject(obj,fullExpression){if(obj){if(obj.constructor===obj)throw $parseMinErr("isecfn","Referencing Function in Angular expressions is disallowed! Expression: {0}",fullExpression);if(obj.window===obj)throw $parseMinErr("isecwindow","Referencing the Window in Angular expressions is disallowed! Expression: {0}",fullExpression);if(obj.children&&(obj.nodeName||obj.prop&&obj.attr&&obj.find))throw $parseMinErr("isecdom","Referencing DOM nodes in Angular expressions is disallowed! Expression: {0}",fullExpression);if(obj===Object)throw $parseMinErr("isecobj","Referencing Object in Angular expressions is disallowed! Expression: {0}",fullExpression)}return obj}function ensureSafeFunction(obj,fullExpression){if(obj){if(obj.constructor===obj)throw $parseMinErr("isecfn","Referencing Function in Angular expressions is disallowed! Expression: {0}",fullExpression);if(obj===CALL||obj===APPLY||obj===BIND)throw $parseMinErr("isecff","Referencing call, apply or bind in Angular expressions is disallowed! Expression: {0}",fullExpression)}}function isConstant(exp){return exp.constant}function setter(obj,locals,path,setValue,fullExp){ensureSafeObject(obj,fullExp),ensureSafeObject(locals,fullExp);for(var key,element=path.split("."),i=0;element.length>1;i++){key=ensureSafeMemberName(element.shift(),fullExp);var propertyObj=0===i&&locals&&locals[key]||obj[key];propertyObj||(propertyObj={},obj[key]=propertyObj),obj=ensureSafeObject(propertyObj,fullExp)}return key=ensureSafeMemberName(element.shift(),fullExp),ensureSafeObject(obj[key],fullExp),obj[key]=setValue,setValue}function isPossiblyDangerousMemberName(name){return"constructor"==name}function cspSafeGetterFn(key0,key1,key2,key3,key4,fullExp,expensiveChecks){ensureSafeMemberName(key0,fullExp),ensureSafeMemberName(key1,fullExp),ensureSafeMemberName(key2,fullExp),ensureSafeMemberName(key3,fullExp),ensureSafeMemberName(key4,fullExp);var eso=function(o){return ensureSafeObject(o,fullExp)},eso0=expensiveChecks||isPossiblyDangerousMemberName(key0)?eso:identity,eso1=expensiveChecks||isPossiblyDangerousMemberName(key1)?eso:identity,eso2=expensiveChecks||isPossiblyDangerousMemberName(key2)?eso:identity,eso3=expensiveChecks||isPossiblyDangerousMemberName(key3)?eso:identity,eso4=expensiveChecks||isPossiblyDangerousMemberName(key4)?eso:identity;return function(scope,locals){var pathVal=locals&&locals.hasOwnProperty(key0)?locals:scope;return null==pathVal?pathVal:(pathVal=eso0(pathVal[key0]),key1?null==pathVal?undefined:(pathVal=eso1(pathVal[key1]),key2?null==pathVal?undefined:(pathVal=eso2(pathVal[key2]),key3?null==pathVal?undefined:(pathVal=eso3(pathVal[key3]),key4?null==pathVal?undefined:pathVal=eso4(pathVal[key4]):pathVal):pathVal):pathVal):pathVal)}}function getterFnWithEnsureSafeObject(fn,fullExpression){return function(s,l){return fn(s,l,ensureSafeObject,fullExpression)}}function getterFn(path,options,fullExp){var expensiveChecks=options.expensiveChecks,getterFnCache=expensiveChecks?getterFnCacheExpensive:getterFnCacheDefault,fn=getterFnCache[path];if(fn)return fn;var pathKeys=path.split("."),pathKeysLength=pathKeys.length;if(options.csp)fn=6>pathKeysLength?cspSafeGetterFn(pathKeys[0],pathKeys[1],pathKeys[2],pathKeys[3],pathKeys[4],fullExp,expensiveChecks):function(scope,locals){var val,i=0;do val=cspSafeGetterFn(pathKeys[i++],pathKeys[i++],pathKeys[i++],pathKeys[i++],pathKeys[i++],fullExp,expensiveChecks)(scope,locals),locals=undefined,scope=val;while(pathKeysLength>i);return val};else{var code="";expensiveChecks&&(code+="s = eso(s, fe);\nl = eso(l, fe);\n");var needsEnsureSafeObject=expensiveChecks;forEach(pathKeys,function(key,index){ensureSafeMemberName(key,fullExp);var lookupJs=(index?"s":'((l&&l.hasOwnProperty("'+key+'"))?l:s)')+"."+key;(expensiveChecks||isPossiblyDangerousMemberName(key))&&(lookupJs="eso("+lookupJs+", fe)",needsEnsureSafeObject=!0),code+="if(s == null) return undefined;\ns="+lookupJs+";\n"}),code+="return s;";var evaledFnGetter=new Function("s","l","eso","fe",code);evaledFnGetter.toString=valueFn(code),needsEnsureSafeObject&&(evaledFnGetter=getterFnWithEnsureSafeObject(evaledFnGetter,fullExp)),fn=evaledFnGetter}return fn.sharedGetter=!0,fn.assign=function(self,value,locals){return setter(self,locals,path,value,path)},getterFnCache[path]=fn,fn}function getValueOf(value){return isFunction(value.valueOf)?value.valueOf():objectValueOf.call(value)}function $ParseProvider(){var cacheDefault=createMap(),cacheExpensive=createMap();this.$get=["$filter","$sniffer",function($filter,$sniffer){function wrapSharedExpression(exp){var wrapped=exp;return exp.sharedGetter&&(wrapped=function(self,locals){return exp(self,locals)},wrapped.literal=exp.literal,wrapped.constant=exp.constant,wrapped.assign=exp.assign),wrapped}function collectExpressionInputs(inputs,list){for(var i=0,ii=inputs.length;ii>i;i++){var input=inputs[i];input.constant||(input.inputs?collectExpressionInputs(input.inputs,list):-1===list.indexOf(input)&&list.push(input))}return list}function expressionInputDirtyCheck(newValue,oldValueOfValue){return null==newValue||null==oldValueOfValue?newValue===oldValueOfValue:"object"==typeof newValue&&(newValue=getValueOf(newValue),"object"==typeof newValue)?!1:newValue===oldValueOfValue||newValue!==newValue&&oldValueOfValue!==oldValueOfValue}function inputsWatchDelegate(scope,listener,objectEquality,parsedExpression){var lastResult,inputExpressions=parsedExpression.$$inputs||(parsedExpression.$$inputs=collectExpressionInputs(parsedExpression.inputs,[]));if(1===inputExpressions.length){var oldInputValue=expressionInputDirtyCheck;return inputExpressions=inputExpressions[0],scope.$watch(function(scope){var newInputValue=inputExpressions(scope);return expressionInputDirtyCheck(newInputValue,oldInputValue)||(lastResult=parsedExpression(scope),oldInputValue=newInputValue&&getValueOf(newInputValue)),lastResult},listener,objectEquality)}for(var oldInputValueOfValues=[],i=0,ii=inputExpressions.length;ii>i;i++)oldInputValueOfValues[i]=expressionInputDirtyCheck;return scope.$watch(function(scope){for(var changed=!1,i=0,ii=inputExpressions.length;ii>i;i++){var newInputValue=inputExpressions[i](scope);(changed||(changed=!expressionInputDirtyCheck(newInputValue,oldInputValueOfValues[i])))&&(oldInputValueOfValues[i]=newInputValue&&getValueOf(newInputValue))}return changed&&(lastResult=parsedExpression(scope)),lastResult},listener,objectEquality)}function oneTimeWatchDelegate(scope,listener,objectEquality,parsedExpression){var unwatch,lastValue;return unwatch=scope.$watch(function(scope){return parsedExpression(scope)},function(value,old,scope){lastValue=value,isFunction(listener)&&listener.apply(this,arguments),isDefined(value)&&scope.$$postDigest(function(){isDefined(lastValue)&&unwatch()})},objectEquality)}function oneTimeLiteralWatchDelegate(scope,listener,objectEquality,parsedExpression){function isAllDefined(value){var allDefined=!0;return forEach(value,function(val){isDefined(val)||(allDefined=!1)}),allDefined}var unwatch,lastValue;return unwatch=scope.$watch(function(scope){return parsedExpression(scope)},function(value,old,scope){lastValue=value,isFunction(listener)&&listener.call(this,value,old,scope),isAllDefined(value)&&scope.$$postDigest(function(){isAllDefined(lastValue)&&unwatch()})},objectEquality)}function constantWatchDelegate(scope,listener,objectEquality,parsedExpression){var unwatch;return unwatch=scope.$watch(function(scope){return parsedExpression(scope)},function(value,old,scope){isFunction(listener)&&listener.apply(this,arguments),unwatch()},objectEquality)}function addInterceptor(parsedExpression,interceptorFn){if(!interceptorFn)return parsedExpression;var watchDelegate=parsedExpression.$$watchDelegate,regularWatch=watchDelegate!==oneTimeLiteralWatchDelegate&&watchDelegate!==oneTimeWatchDelegate,fn=regularWatch?function(scope,locals){var value=parsedExpression(scope,locals);return interceptorFn(value,scope,locals)}:function(scope,locals){var value=parsedExpression(scope,locals),result=interceptorFn(value,scope,locals);return isDefined(value)?result:value};return parsedExpression.$$watchDelegate&&parsedExpression.$$watchDelegate!==inputsWatchDelegate?fn.$$watchDelegate=parsedExpression.$$watchDelegate:interceptorFn.$stateful||(fn.$$watchDelegate=inputsWatchDelegate,fn.inputs=[parsedExpression]),fn}var $parseOptions={csp:$sniffer.csp,expensiveChecks:!1},$parseOptionsExpensive={csp:$sniffer.csp,expensiveChecks:!0};return function(exp,interceptorFn,expensiveChecks){var parsedExpression,oneTime,cacheKey;switch(typeof exp){case"string":cacheKey=exp=exp.trim();var cache=expensiveChecks?cacheExpensive:cacheDefault;if(parsedExpression=cache[cacheKey],!parsedExpression){":"===exp.charAt(0)&&":"===exp.charAt(1)&&(oneTime=!0,exp=exp.substring(2));var parseOptions=expensiveChecks?$parseOptionsExpensive:$parseOptions,lexer=new Lexer(parseOptions),parser=new Parser(lexer,$filter,parseOptions);parsedExpression=parser.parse(exp),parsedExpression.constant?parsedExpression.$$watchDelegate=constantWatchDelegate:oneTime?(parsedExpression=wrapSharedExpression(parsedExpression),parsedExpression.$$watchDelegate=parsedExpression.literal?oneTimeLiteralWatchDelegate:oneTimeWatchDelegate):parsedExpression.inputs&&(parsedExpression.$$watchDelegate=inputsWatchDelegate),cache[cacheKey]=parsedExpression}return addInterceptor(parsedExpression,interceptorFn);case"function":return addInterceptor(exp,interceptorFn);default:return addInterceptor(noop,interceptorFn)}}}]}function $QProvider(){this.$get=["$rootScope","$exceptionHandler",function($rootScope,$exceptionHandler){return qFactory(function(callback){$rootScope.$evalAsync(callback)},$exceptionHandler)}]}function $$QProvider(){this.$get=["$browser","$exceptionHandler",function($browser,$exceptionHandler){return qFactory(function(callback){$browser.defer(callback)},$exceptionHandler)}]}function qFactory(nextTick,exceptionHandler){function callOnce(self,resolveFn,rejectFn){function wrap(fn){return function(value){called||(called=!0,fn.call(self,value))}}var called=!1;return[wrap(resolveFn),wrap(rejectFn)]}function Promise(){this.$$state={status:0}}function simpleBind(context,fn){return function(value){fn.call(context,value)}}function processQueue(state){var fn,promise,pending;pending=state.pending,state.processScheduled=!1,state.pending=undefined;for(var i=0,ii=pending.length;ii>i;++i){promise=pending[i][0],fn=pending[i][state.status];try{isFunction(fn)?promise.resolve(fn(state.value)):1===state.status?promise.resolve(state.value):promise.reject(state.value)}catch(e){promise.reject(e),exceptionHandler(e)}}}function scheduleProcessQueue(state){!state.processScheduled&&state.pending&&(state.processScheduled=!0,nextTick(function(){processQueue(state)}))}function Deferred(){this.promise=new Promise,this.resolve=simpleBind(this,this.resolve),this.reject=simpleBind(this,this.reject),this.notify=simpleBind(this,this.notify)}function all(promises){var deferred=new Deferred,counter=0,results=isArray(promises)?[]:{};return forEach(promises,function(promise,key){counter++,when(promise).then(function(value){results.hasOwnProperty(key)||(results[key]=value,--counter||deferred.resolve(results))},function(reason){results.hasOwnProperty(key)||deferred.reject(reason)})}),0===counter&&deferred.resolve(results),deferred.promise}var $qMinErr=minErr("$q",TypeError),defer=function(){return new Deferred};Promise.prototype={then:function(onFulfilled,onRejected,progressBack){var result=new Deferred;return this.$$state.pending=this.$$state.pending||[],this.$$state.pending.push([result,onFulfilled,onRejected,progressBack]),this.$$state.status>0&&scheduleProcessQueue(this.$$state),result.promise},"catch":function(callback){return this.then(null,callback)},"finally":function(callback,progressBack){return this.then(function(value){return handleCallback(value,!0,callback)},function(error){return handleCallback(error,!1,callback)},progressBack)}},Deferred.prototype={resolve:function(val){this.promise.$$state.status||(val===this.promise?this.$$reject($qMinErr("qcycle","Expected promise to be resolved with value other than itself '{0}'",val)):this.$$resolve(val))},$$resolve:function(val){var then,fns;fns=callOnce(this,this.$$resolve,this.$$reject);try{(isObject(val)||isFunction(val))&&(then=val&&val.then),isFunction(then)?(this.promise.$$state.status=-1,then.call(val,fns[0],fns[1],this.notify)):(this.promise.$$state.value=val,this.promise.$$state.status=1,scheduleProcessQueue(this.promise.$$state))}catch(e){fns[1](e),exceptionHandler(e)}},reject:function(reason){this.promise.$$state.status||this.$$reject(reason)},$$reject:function(reason){this.promise.$$state.value=reason,this.promise.$$state.status=2,scheduleProcessQueue(this.promise.$$state)},notify:function(progress){var callbacks=this.promise.$$state.pending;this.promise.$$state.status<=0&&callbacks&&callbacks.length&&nextTick(function(){for(var callback,result,i=0,ii=callbacks.length;ii>i;i++){result=callbacks[i][0],callback=callbacks[i][3];try{result.notify(isFunction(callback)?callback(progress):progress)}catch(e){exceptionHandler(e)}}})}};var reject=function(reason){var result=new Deferred;return result.reject(reason),result.promise},makePromise=function(value,resolved){var result=new Deferred;return resolved?result.resolve(value):result.reject(value),result.promise},handleCallback=function(value,isResolved,callback){var callbackOutput=null;try{isFunction(callback)&&(callbackOutput=callback())}catch(e){return makePromise(e,!1)}return isPromiseLike(callbackOutput)?callbackOutput.then(function(){return makePromise(value,isResolved)},function(error){return makePromise(error,!1)}):makePromise(value,isResolved)},when=function(value,callback,errback,progressBack){var result=new Deferred;return result.resolve(value),result.promise.then(callback,errback,progressBack)},$Q=function Q(resolver){function resolveFn(value){deferred.resolve(value)}function rejectFn(reason){deferred.reject(reason)}if(!isFunction(resolver))throw $qMinErr("norslvr","Expected resolverFn, got '{0}'",resolver);if(!(this instanceof Q))return new Q(resolver);var deferred=new Deferred;return resolver(resolveFn,rejectFn),deferred.promise};return $Q.defer=defer,$Q.reject=reject,$Q.when=when,$Q.all=all,$Q}function $$RAFProvider(){this.$get=["$window","$timeout",function($window,$timeout){function flush(){for(var i=0;i<taskQueue.length;i++){var task=taskQueue[i];task&&(taskQueue[i]=null,task())}taskCount=taskQueue.length=0}function queueFn(asyncFn){var index=taskQueue.length;return taskCount++,taskQueue.push(asyncFn),0===index&&(cancelLastRAF=rafFn(flush)),function(){index>=0&&(taskQueue[index]=null,index=null,0===--taskCount&&cancelLastRAF&&(cancelLastRAF(),cancelLastRAF=null,taskQueue.length=0))}}var requestAnimationFrame=$window.requestAnimationFrame||$window.webkitRequestAnimationFrame,cancelAnimationFrame=$window.cancelAnimationFrame||$window.webkitCancelAnimationFrame||$window.webkitCancelRequestAnimationFrame,rafSupported=!!requestAnimationFrame,rafFn=rafSupported?function(fn){var id=requestAnimationFrame(fn);return function(){cancelAnimationFrame(id)}}:function(fn){var timer=$timeout(fn,16.66,!1);return function(){$timeout.cancel(timer)}};queueFn.supported=rafSupported;var cancelLastRAF,taskCount=0,taskQueue=[];return queueFn}]}function $RootScopeProvider(){function createChildScopeClass(parent){function ChildScope(){this.$$watchers=this.$$nextSibling=this.$$childHead=this.$$childTail=null,this.$$listeners={},this.$$listenerCount={},this.$id=nextUid(),this.$$ChildScope=null}return ChildScope.prototype=parent,ChildScope}var TTL=10,$rootScopeMinErr=minErr("$rootScope"),lastDirtyWatch=null,applyAsyncId=null;this.digestTtl=function(value){return arguments.length&&(TTL=value),TTL},this.$get=["$injector","$exceptionHandler","$parse","$browser",function($injector,$exceptionHandler,$parse,$browser){function destroyChildScope($event){$event.currentScope.$$destroyed=!0}function Scope(){this.$id=nextUid(),this.$$phase=this.$parent=this.$$watchers=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=null,this.$root=this,this.$$destroyed=!1,this.$$listeners={},this.$$listenerCount={},this.$$isolateBindings=null}function beginPhase(phase){if($rootScope.$$phase)throw $rootScopeMinErr("inprog","{0} already in progress",$rootScope.$$phase);$rootScope.$$phase=phase}function clearPhase(){$rootScope.$$phase=null}function decrementListenerCount(current,count,name){do current.$$listenerCount[name]-=count,0===current.$$listenerCount[name]&&delete current.$$listenerCount[name];while(current=current.$parent)}function initWatchVal(){}function flushApplyAsync(){for(;applyAsyncQueue.length;)try{applyAsyncQueue.shift()()}catch(e){$exceptionHandler(e)}applyAsyncId=null}function scheduleApplyAsync(){null===applyAsyncId&&(applyAsyncId=$browser.defer(function(){$rootScope.$apply(flushApplyAsync)}))}Scope.prototype={constructor:Scope,$new:function(isolate,parent){var child;return parent=parent||this,isolate?(child=new Scope,child.$root=this.$root):(this.$$ChildScope||(this.$$ChildScope=createChildScopeClass(this)),child=new this.$$ChildScope),child.$parent=parent,child.$$prevSibling=parent.$$childTail,parent.$$childHead?(parent.$$childTail.$$nextSibling=child,parent.$$childTail=child):parent.$$childHead=parent.$$childTail=child,(isolate||parent!=this)&&child.$on("$destroy",destroyChildScope),child},$watch:function(watchExp,listener,objectEquality){var get=$parse(watchExp);if(get.$$watchDelegate)return get.$$watchDelegate(this,listener,objectEquality,get);var scope=this,array=scope.$$watchers,watcher={fn:listener,last:initWatchVal,get:get,exp:watchExp,eq:!!objectEquality};return lastDirtyWatch=null,isFunction(listener)||(watcher.fn=noop),array||(array=scope.$$watchers=[]),array.unshift(watcher),function(){arrayRemove(array,watcher),lastDirtyWatch=null}},$watchGroup:function(watchExpressions,listener){function watchGroupAction(){changeReactionScheduled=!1,firstRun?(firstRun=!1,listener(newValues,newValues,self)):listener(newValues,oldValues,self)}var oldValues=new Array(watchExpressions.length),newValues=new Array(watchExpressions.length),deregisterFns=[],self=this,changeReactionScheduled=!1,firstRun=!0;if(!watchExpressions.length){var shouldCall=!0;return self.$evalAsync(function(){shouldCall&&listener(newValues,newValues,self)}),function(){shouldCall=!1}}return 1===watchExpressions.length?this.$watch(watchExpressions[0],function(value,oldValue,scope){newValues[0]=value,oldValues[0]=oldValue,listener(newValues,value===oldValue?newValues:oldValues,scope)}):(forEach(watchExpressions,function(expr,i){var unwatchFn=self.$watch(expr,function(value,oldValue){newValues[i]=value,oldValues[i]=oldValue,changeReactionScheduled||(changeReactionScheduled=!0,self.$evalAsync(watchGroupAction))});deregisterFns.push(unwatchFn)}),function(){for(;deregisterFns.length;)deregisterFns.shift()()})},$watchCollection:function(obj,listener){function $watchCollectionInterceptor(_value){newValue=_value;var newLength,key,bothNaN,newItem,oldItem;if(!isUndefined(newValue)){if(isObject(newValue))if(isArrayLike(newValue)){oldValue!==internalArray&&(oldValue=internalArray,oldLength=oldValue.length=0,changeDetected++),newLength=newValue.length,oldLength!==newLength&&(changeDetected++,oldValue.length=oldLength=newLength);for(var i=0;newLength>i;i++)oldItem=oldValue[i],newItem=newValue[i],bothNaN=oldItem!==oldItem&&newItem!==newItem,bothNaN||oldItem===newItem||(changeDetected++,oldValue[i]=newItem)}else{oldValue!==internalObject&&(oldValue=internalObject={},oldLength=0,changeDetected++),newLength=0;for(key in newValue)newValue.hasOwnProperty(key)&&(newLength++,newItem=newValue[key],oldItem=oldValue[key],key in oldValue?(bothNaN=oldItem!==oldItem&&newItem!==newItem,bothNaN||oldItem===newItem||(changeDetected++,oldValue[key]=newItem)):(oldLength++,oldValue[key]=newItem,changeDetected++));if(oldLength>newLength){changeDetected++;for(key in oldValue)newValue.hasOwnProperty(key)||(oldLength--,delete oldValue[key])}}else oldValue!==newValue&&(oldValue=newValue,changeDetected++);return changeDetected}}function $watchCollectionAction(){if(initRun?(initRun=!1,listener(newValue,newValue,self)):listener(newValue,veryOldValue,self),trackVeryOldValue)if(isObject(newValue))if(isArrayLike(newValue)){veryOldValue=new Array(newValue.length);for(var i=0;i<newValue.length;i++)veryOldValue[i]=newValue[i]}else{veryOldValue={};for(var key in newValue)hasOwnProperty.call(newValue,key)&&(veryOldValue[key]=newValue[key])}else veryOldValue=newValue}$watchCollectionInterceptor.$stateful=!0;var newValue,oldValue,veryOldValue,self=this,trackVeryOldValue=listener.length>1,changeDetected=0,changeDetector=$parse(obj,$watchCollectionInterceptor),internalArray=[],internalObject={},initRun=!0,oldLength=0;return this.$watch(changeDetector,$watchCollectionAction)},$digest:function(){var watch,value,last,watchers,length,dirty,next,current,logIdx,asyncTask,ttl=TTL,target=this,watchLog=[];beginPhase("$digest"),$browser.$$checkUrlChange(),this===$rootScope&&null!==applyAsyncId&&($browser.defer.cancel(applyAsyncId),flushApplyAsync()),lastDirtyWatch=null;do{for(dirty=!1,current=target;asyncQueue.length;){try{asyncTask=asyncQueue.shift(),asyncTask.scope.$eval(asyncTask.expression,asyncTask.locals)}catch(e){$exceptionHandler(e)}lastDirtyWatch=null}traverseScopesLoop:do{if(watchers=current.$$watchers)for(length=watchers.length;length--;)try{if(watch=watchers[length])if((value=watch.get(current))===(last=watch.last)||(watch.eq?equals(value,last):"number"==typeof value&&"number"==typeof last&&isNaN(value)&&isNaN(last))){if(watch===lastDirtyWatch){dirty=!1;break traverseScopesLoop}}else dirty=!0,lastDirtyWatch=watch,watch.last=watch.eq?copy(value,null):value,watch.fn(value,last===initWatchVal?value:last,current),5>ttl&&(logIdx=4-ttl,watchLog[logIdx]||(watchLog[logIdx]=[]),watchLog[logIdx].push({msg:isFunction(watch.exp)?"fn: "+(watch.exp.name||watch.exp.toString()):watch.exp,newVal:value,oldVal:last}))}catch(e){$exceptionHandler(e)}if(!(next=current.$$childHead||current!==target&&current.$$nextSibling))for(;current!==target&&!(next=current.$$nextSibling);)current=current.$parent}while(current=next);if((dirty||asyncQueue.length)&&!ttl--)throw clearPhase(),$rootScopeMinErr("infdig","{0} $digest() iterations reached. Aborting!\nWatchers fired in the last 5 iterations: {1}",TTL,watchLog)}while(dirty||asyncQueue.length);for(clearPhase();postDigestQueue.length;)try{postDigestQueue.shift()()}catch(e){$exceptionHandler(e)}},$destroy:function(){if(!this.$$destroyed){var parent=this.$parent;if(this.$broadcast("$destroy"),this.$$destroyed=!0,this!==$rootScope){for(var eventName in this.$$listenerCount)decrementListenerCount(this,this.$$listenerCount[eventName],eventName);parent.$$childHead==this&&(parent.$$childHead=this.$$nextSibling),parent.$$childTail==this&&(parent.$$childTail=this.$$prevSibling),this.$$prevSibling&&(this.$$prevSibling.$$nextSibling=this.$$nextSibling),this.$$nextSibling&&(this.$$nextSibling.$$prevSibling=this.$$prevSibling),this.$destroy=this.$digest=this.$apply=this.$evalAsync=this.$applyAsync=noop,this.$on=this.$watch=this.$watchGroup=function(){return noop},this.$$listeners={},this.$parent=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=this.$root=this.$$watchers=null}}},$eval:function(expr,locals){return $parse(expr)(this,locals)},$evalAsync:function(expr,locals){$rootScope.$$phase||asyncQueue.length||$browser.defer(function(){asyncQueue.length&&$rootScope.$digest()}),asyncQueue.push({scope:this,expression:expr,locals:locals})},$$postDigest:function(fn){postDigestQueue.push(fn)},$apply:function(expr){try{return beginPhase("$apply"),this.$eval(expr)}catch(e){$exceptionHandler(e)}finally{clearPhase();try{$rootScope.$digest()}catch(e){throw $exceptionHandler(e),e}}},$applyAsync:function(expr){function $applyAsyncExpression(){scope.$eval(expr)}var scope=this;expr&&applyAsyncQueue.push($applyAsyncExpression),scheduleApplyAsync()},$on:function(name,listener){var namedListeners=this.$$listeners[name];namedListeners||(this.$$listeners[name]=namedListeners=[]),namedListeners.push(listener);var current=this;do current.$$listenerCount[name]||(current.$$listenerCount[name]=0),current.$$listenerCount[name]++;while(current=current.$parent);var self=this;return function(){var indexOfListener=namedListeners.indexOf(listener);-1!==indexOfListener&&(namedListeners[indexOfListener]=null,decrementListenerCount(self,1,name))}},$emit:function(name,args){var namedListeners,i,length,empty=[],scope=this,stopPropagation=!1,event={name:name,targetScope:scope,stopPropagation:function(){stopPropagation=!0},preventDefault:function(){event.defaultPrevented=!0},defaultPrevented:!1},listenerArgs=concat([event],arguments,1);do{for(namedListeners=scope.$$listeners[name]||empty,event.currentScope=scope,i=0,length=namedListeners.length;length>i;i++)if(namedListeners[i])try{namedListeners[i].apply(null,listenerArgs)}catch(e){$exceptionHandler(e)}else namedListeners.splice(i,1),i--,length--;if(stopPropagation)return event.currentScope=null,event;scope=scope.$parent}while(scope);return event.currentScope=null,event},$broadcast:function(name,args){var target=this,current=target,next=target,event={name:name,targetScope:target,preventDefault:function(){event.defaultPrevented=!0},defaultPrevented:!1};if(!target.$$listenerCount[name])return event;for(var listeners,i,length,listenerArgs=concat([event],arguments,1);current=next;){for(event.currentScope=current,listeners=current.$$listeners[name]||[],i=0,length=listeners.length;length>i;i++)if(listeners[i])try{listeners[i].apply(null,listenerArgs)}catch(e){$exceptionHandler(e)}else listeners.splice(i,1),i--,length--;if(!(next=current.$$listenerCount[name]&&current.$$childHead||current!==target&&current.$$nextSibling))for(;current!==target&&!(next=current.$$nextSibling);)current=current.$parent}return event.currentScope=null,event}};var $rootScope=new Scope,asyncQueue=$rootScope.$$asyncQueue=[],postDigestQueue=$rootScope.$$postDigestQueue=[],applyAsyncQueue=$rootScope.$$applyAsyncQueue=[];return $rootScope}]}function $$SanitizeUriProvider(){var aHrefSanitizationWhitelist=/^\s*(https?|ftp|mailto|tel|file):/,imgSrcSanitizationWhitelist=/^\s*((https?|ftp|file|blob):|data:image\/)/;this.aHrefSanitizationWhitelist=function(regexp){return isDefined(regexp)?(aHrefSanitizationWhitelist=regexp,this):aHrefSanitizationWhitelist},this.imgSrcSanitizationWhitelist=function(regexp){return isDefined(regexp)?(imgSrcSanitizationWhitelist=regexp,this):imgSrcSanitizationWhitelist},this.$get=function(){return function(uri,isImage){var normalizedVal,regex=isImage?imgSrcSanitizationWhitelist:aHrefSanitizationWhitelist;return normalizedVal=urlResolve(uri).href,""===normalizedVal||normalizedVal.match(regex)?uri:"unsafe:"+normalizedVal}}}function adjustMatcher(matcher){if("self"===matcher)return matcher;if(isString(matcher)){if(matcher.indexOf("***")>-1)throw $sceMinErr("iwcard","Illegal sequence *** in string matcher.  String: {0}",matcher);return matcher=escapeForRegexp(matcher).replace("\\*\\*",".*").replace("\\*","[^:/.?&;]*"),
  new RegExp("^"+matcher+"$")}if(isRegExp(matcher))return new RegExp("^"+matcher.source+"$");throw $sceMinErr("imatcher",'Matchers may only be "self", string patterns or RegExp objects')}function adjustMatchers(matchers){var adjustedMatchers=[];return isDefined(matchers)&&forEach(matchers,function(matcher){adjustedMatchers.push(adjustMatcher(matcher))}),adjustedMatchers}function $SceDelegateProvider(){this.SCE_CONTEXTS=SCE_CONTEXTS;var resourceUrlWhitelist=["self"],resourceUrlBlacklist=[];this.resourceUrlWhitelist=function(value){return arguments.length&&(resourceUrlWhitelist=adjustMatchers(value)),resourceUrlWhitelist},this.resourceUrlBlacklist=function(value){return arguments.length&&(resourceUrlBlacklist=adjustMatchers(value)),resourceUrlBlacklist},this.$get=["$injector",function($injector){function matchUrl(matcher,parsedUrl){return"self"===matcher?urlIsSameOrigin(parsedUrl):!!matcher.exec(parsedUrl.href)}function isResourceUrlAllowedByPolicy(url){var i,n,parsedUrl=urlResolve(url.toString()),allowed=!1;for(i=0,n=resourceUrlWhitelist.length;n>i;i++)if(matchUrl(resourceUrlWhitelist[i],parsedUrl)){allowed=!0;break}if(allowed)for(i=0,n=resourceUrlBlacklist.length;n>i;i++)if(matchUrl(resourceUrlBlacklist[i],parsedUrl)){allowed=!1;break}return allowed}function generateHolderType(Base){var holderType=function(trustedValue){this.$$unwrapTrustedValue=function(){return trustedValue}};return Base&&(holderType.prototype=new Base),holderType.prototype.valueOf=function(){return this.$$unwrapTrustedValue()},holderType.prototype.toString=function(){return this.$$unwrapTrustedValue().toString()},holderType}function trustAs(type,trustedValue){var Constructor=byType.hasOwnProperty(type)?byType[type]:null;if(!Constructor)throw $sceMinErr("icontext","Attempted to trust a value in invalid context. Context: {0}; Value: {1}",type,trustedValue);if(null===trustedValue||trustedValue===undefined||""===trustedValue)return trustedValue;if("string"!=typeof trustedValue)throw $sceMinErr("itype","Attempted to trust a non-string value in a content requiring a string: Context: {0}",type);return new Constructor(trustedValue)}function valueOf(maybeTrusted){return maybeTrusted instanceof trustedValueHolderBase?maybeTrusted.$$unwrapTrustedValue():maybeTrusted}function getTrusted(type,maybeTrusted){if(null===maybeTrusted||maybeTrusted===undefined||""===maybeTrusted)return maybeTrusted;var constructor=byType.hasOwnProperty(type)?byType[type]:null;if(constructor&&maybeTrusted instanceof constructor)return maybeTrusted.$$unwrapTrustedValue();if(type===SCE_CONTEXTS.RESOURCE_URL){if(isResourceUrlAllowedByPolicy(maybeTrusted))return maybeTrusted;throw $sceMinErr("insecurl","Blocked loading resource from url not allowed by $sceDelegate policy.  URL: {0}",maybeTrusted.toString())}if(type===SCE_CONTEXTS.HTML)return htmlSanitizer(maybeTrusted);throw $sceMinErr("unsafe","Attempting to use an unsafe value in a safe context.")}var htmlSanitizer=function(html){throw $sceMinErr("unsafe","Attempting to use an unsafe value in a safe context.")};$injector.has("$sanitize")&&(htmlSanitizer=$injector.get("$sanitize"));var trustedValueHolderBase=generateHolderType(),byType={};return byType[SCE_CONTEXTS.HTML]=generateHolderType(trustedValueHolderBase),byType[SCE_CONTEXTS.CSS]=generateHolderType(trustedValueHolderBase),byType[SCE_CONTEXTS.URL]=generateHolderType(trustedValueHolderBase),byType[SCE_CONTEXTS.JS]=generateHolderType(trustedValueHolderBase),byType[SCE_CONTEXTS.RESOURCE_URL]=generateHolderType(byType[SCE_CONTEXTS.URL]),{trustAs:trustAs,getTrusted:getTrusted,valueOf:valueOf}}]}function $SceProvider(){var enabled=!0;this.enabled=function(value){return arguments.length&&(enabled=!!value),enabled},this.$get=["$parse","$sceDelegate",function($parse,$sceDelegate){if(enabled&&8>msie)throw $sceMinErr("iequirks","Strict Contextual Escaping does not support Internet Explorer version < 11 in quirks mode.  You can fix this by adding the text <!doctype html> to the top of your HTML document.  See http://docs.angularjs.org/api/ng.$sce for more information.");var sce=shallowCopy(SCE_CONTEXTS);sce.isEnabled=function(){return enabled},sce.trustAs=$sceDelegate.trustAs,sce.getTrusted=$sceDelegate.getTrusted,sce.valueOf=$sceDelegate.valueOf,enabled||(sce.trustAs=sce.getTrusted=function(type,value){return value},sce.valueOf=identity),sce.parseAs=function(type,expr){var parsed=$parse(expr);return parsed.literal&&parsed.constant?parsed:$parse(expr,function(value){return sce.getTrusted(type,value)})};var parse=sce.parseAs,getTrusted=sce.getTrusted,trustAs=sce.trustAs;return forEach(SCE_CONTEXTS,function(enumValue,name){var lName=lowercase(name);sce[camelCase("parse_as_"+lName)]=function(expr){return parse(enumValue,expr)},sce[camelCase("get_trusted_"+lName)]=function(value){return getTrusted(enumValue,value)},sce[camelCase("trust_as_"+lName)]=function(value){return trustAs(enumValue,value)}}),sce}]}function $SnifferProvider(){this.$get=["$window","$document",function($window,$document){var vendorPrefix,match,eventSupport={},android=int((/android (\d+)/.exec(lowercase(($window.navigator||{}).userAgent))||[])[1]),boxee=/Boxee/i.test(($window.navigator||{}).userAgent),document=$document[0]||{},vendorRegex=/^(Moz|webkit|ms)(?=[A-Z])/,bodyStyle=document.body&&document.body.style,transitions=!1,animations=!1;if(bodyStyle){for(var prop in bodyStyle)if(match=vendorRegex.exec(prop)){vendorPrefix=match[0],vendorPrefix=vendorPrefix.substr(0,1).toUpperCase()+vendorPrefix.substr(1);break}vendorPrefix||(vendorPrefix="WebkitOpacity"in bodyStyle&&"webkit"),transitions=!!("transition"in bodyStyle||vendorPrefix+"Transition"in bodyStyle),animations=!!("animation"in bodyStyle||vendorPrefix+"Animation"in bodyStyle),!android||transitions&&animations||(transitions=isString(document.body.style.webkitTransition),animations=isString(document.body.style.webkitAnimation))}return{history:!(!$window.history||!$window.history.pushState||4>android||boxee),hasEvent:function(event){if("input"===event&&11>=msie)return!1;if(isUndefined(eventSupport[event])){var divElm=document.createElement("div");eventSupport[event]="on"+event in divElm}return eventSupport[event]},csp:csp(),vendorPrefix:vendorPrefix,transitions:transitions,animations:animations,android:android}}]}function $TemplateRequestProvider(){this.$get=["$templateCache","$http","$q","$sce",function($templateCache,$http,$q,$sce){function handleRequestFn(tpl,ignoreRequestError){function handleError(resp){if(!ignoreRequestError)throw $compileMinErr("tpload","Failed to load template: {0}",tpl);return $q.reject(resp)}handleRequestFn.totalPendingRequests++,isString(tpl)&&$templateCache.get(tpl)||(tpl=$sce.getTrustedResourceUrl(tpl));var transformResponse=$http.defaults&&$http.defaults.transformResponse;isArray(transformResponse)?transformResponse=transformResponse.filter(function(transformer){return transformer!==defaultHttpResponseTransform}):transformResponse===defaultHttpResponseTransform&&(transformResponse=null);var httpOptions={cache:$templateCache,transformResponse:transformResponse};return $http.get(tpl,httpOptions)["finally"](function(){handleRequestFn.totalPendingRequests--}).then(function(response){return response.data},handleError)}return handleRequestFn.totalPendingRequests=0,handleRequestFn}]}function $$TestabilityProvider(){this.$get=["$rootScope","$browser","$location",function($rootScope,$browser,$location){var testability={};return testability.findBindings=function(element,expression,opt_exactMatch){var bindings=element.getElementsByClassName("ng-binding"),matches=[];return forEach(bindings,function(binding){var dataBinding=angular.element(binding).data("$binding");dataBinding&&forEach(dataBinding,function(bindingName){if(opt_exactMatch){var matcher=new RegExp("(^|\\s)"+escapeForRegexp(expression)+"(\\s|\\||$)");matcher.test(bindingName)&&matches.push(binding)}else-1!=bindingName.indexOf(expression)&&matches.push(binding)})}),matches},testability.findModels=function(element,expression,opt_exactMatch){for(var prefixes=["ng-","data-ng-","ng\\:"],p=0;p<prefixes.length;++p){var attributeEquals=opt_exactMatch?"=":"*=",selector="["+prefixes[p]+"model"+attributeEquals+'"'+expression+'"]',elements=element.querySelectorAll(selector);if(elements.length)return elements}},testability.getLocation=function(){return $location.url()},testability.setLocation=function(url){url!==$location.url()&&($location.url(url),$rootScope.$digest())},testability.whenStable=function(callback){$browser.notifyWhenNoOutstandingRequests(callback)},testability}]}function $TimeoutProvider(){this.$get=["$rootScope","$browser","$q","$$q","$exceptionHandler",function($rootScope,$browser,$q,$$q,$exceptionHandler){function timeout(fn,delay,invokeApply){var timeoutId,skipApply=isDefined(invokeApply)&&!invokeApply,deferred=(skipApply?$$q:$q).defer(),promise=deferred.promise;return timeoutId=$browser.defer(function(){try{deferred.resolve(fn())}catch(e){deferred.reject(e),$exceptionHandler(e)}finally{delete deferreds[promise.$$timeoutId]}skipApply||$rootScope.$apply()},delay),promise.$$timeoutId=timeoutId,deferreds[timeoutId]=deferred,promise}var deferreds={};return timeout.cancel=function(promise){return promise&&promise.$$timeoutId in deferreds?(deferreds[promise.$$timeoutId].reject("canceled"),delete deferreds[promise.$$timeoutId],$browser.defer.cancel(promise.$$timeoutId)):!1},timeout}]}function urlResolve(url){var href=url;return msie&&(urlParsingNode.setAttribute("href",href),href=urlParsingNode.href),urlParsingNode.setAttribute("href",href),{href:urlParsingNode.href,protocol:urlParsingNode.protocol?urlParsingNode.protocol.replace(/:$/,""):"",host:urlParsingNode.host,search:urlParsingNode.search?urlParsingNode.search.replace(/^\?/,""):"",hash:urlParsingNode.hash?urlParsingNode.hash.replace(/^#/,""):"",hostname:urlParsingNode.hostname,port:urlParsingNode.port,pathname:"/"===urlParsingNode.pathname.charAt(0)?urlParsingNode.pathname:"/"+urlParsingNode.pathname}}function urlIsSameOrigin(requestUrl){var parsed=isString(requestUrl)?urlResolve(requestUrl):requestUrl;return parsed.protocol===originUrl.protocol&&parsed.host===originUrl.host}function $WindowProvider(){this.$get=valueFn(window)}function $FilterProvider($provide){function register(name,factory){if(isObject(name)){var filters={};return forEach(name,function(filter,key){filters[key]=register(key,filter)}),filters}return $provide.factory(name+suffix,factory)}var suffix="Filter";this.register=register,this.$get=["$injector",function($injector){return function(name){return $injector.get(name+suffix)}}],register("currency",currencyFilter),register("date",dateFilter),register("filter",filterFilter),register("json",jsonFilter),register("limitTo",limitToFilter),register("lowercase",lowercaseFilter),register("number",numberFilter),register("orderBy",orderByFilter),register("uppercase",uppercaseFilter)}function filterFilter(){return function(array,expression,comparator){if(!isArray(array))return array;var predicateFn,matchAgainstAnyProp,expressionType=null!==expression?typeof expression:"null";switch(expressionType){case"function":predicateFn=expression;break;case"boolean":case"null":case"number":case"string":matchAgainstAnyProp=!0;case"object":predicateFn=createPredicateFn(expression,comparator,matchAgainstAnyProp);break;default:return array}return array.filter(predicateFn)}}function createPredicateFn(expression,comparator,matchAgainstAnyProp){var predicateFn,shouldMatchPrimitives=isObject(expression)&&"$"in expression;return comparator===!0?comparator=equals:isFunction(comparator)||(comparator=function(actual,expected){return isUndefined(actual)?!1:null===actual||null===expected?actual===expected:isObject(actual)||isObject(expected)?!1:(actual=lowercase(""+actual),expected=lowercase(""+expected),-1!==actual.indexOf(expected))}),predicateFn=function(item){return shouldMatchPrimitives&&!isObject(item)?deepCompare(item,expression.$,comparator,!1):deepCompare(item,expression,comparator,matchAgainstAnyProp)}}function deepCompare(actual,expected,comparator,matchAgainstAnyProp,dontMatchWholeObject){var actualType=null!==actual?typeof actual:"null",expectedType=null!==expected?typeof expected:"null";if("string"===expectedType&&"!"===expected.charAt(0))return!deepCompare(actual,expected.substring(1),comparator,matchAgainstAnyProp);if(isArray(actual))return actual.some(function(item){return deepCompare(item,expected,comparator,matchAgainstAnyProp)});switch(actualType){case"object":var key;if(matchAgainstAnyProp){for(key in actual)if("$"!==key.charAt(0)&&deepCompare(actual[key],expected,comparator,!0))return!0;return dontMatchWholeObject?!1:deepCompare(actual,expected,comparator,!1)}if("object"===expectedType){for(key in expected){var expectedVal=expected[key];if(!isFunction(expectedVal)&&!isUndefined(expectedVal)){var matchAnyProperty="$"===key,actualVal=matchAnyProperty?actual:actual[key];if(!deepCompare(actualVal,expectedVal,comparator,matchAnyProperty,matchAnyProperty))return!1}}return!0}return comparator(actual,expected);case"function":return!1;default:return comparator(actual,expected)}}function currencyFilter($locale){var formats=$locale.NUMBER_FORMATS;return function(amount,currencySymbol,fractionSize){return isUndefined(currencySymbol)&&(currencySymbol=formats.CURRENCY_SYM),isUndefined(fractionSize)&&(fractionSize=formats.PATTERNS[1].maxFrac),null==amount?amount:formatNumber(amount,formats.PATTERNS[1],formats.GROUP_SEP,formats.DECIMAL_SEP,fractionSize).replace(/\u00A4/g,currencySymbol)}}function numberFilter($locale){var formats=$locale.NUMBER_FORMATS;return function(number,fractionSize){return null==number?number:formatNumber(number,formats.PATTERNS[0],formats.GROUP_SEP,formats.DECIMAL_SEP,fractionSize)}}function formatNumber(number,pattern,groupSep,decimalSep,fractionSize){if(!isFinite(number)||isObject(number))return"";var isNegative=0>number;number=Math.abs(number);var numStr=number+"",formatedText="",parts=[],hasExponent=!1;if(-1!==numStr.indexOf("e")){var match=numStr.match(/([\d\.]+)e(-?)(\d+)/);match&&"-"==match[2]&&match[3]>fractionSize+1?number=0:(formatedText=numStr,hasExponent=!0)}if(hasExponent)fractionSize>0&&1>number&&(formatedText=number.toFixed(fractionSize),number=parseFloat(formatedText));else{var fractionLen=(numStr.split(DECIMAL_SEP)[1]||"").length;isUndefined(fractionSize)&&(fractionSize=Math.min(Math.max(pattern.minFrac,fractionLen),pattern.maxFrac)),number=+(Math.round(+(number.toString()+"e"+fractionSize)).toString()+"e"+-fractionSize);var fraction=(""+number).split(DECIMAL_SEP),whole=fraction[0];fraction=fraction[1]||"";var i,pos=0,lgroup=pattern.lgSize,group=pattern.gSize;if(whole.length>=lgroup+group)for(pos=whole.length-lgroup,i=0;pos>i;i++)(pos-i)%group===0&&0!==i&&(formatedText+=groupSep),formatedText+=whole.charAt(i);for(i=pos;i<whole.length;i++)(whole.length-i)%lgroup===0&&0!==i&&(formatedText+=groupSep),formatedText+=whole.charAt(i);for(;fraction.length<fractionSize;)fraction+="0";fractionSize&&"0"!==fractionSize&&(formatedText+=decimalSep+fraction.substr(0,fractionSize))}return 0===number&&(isNegative=!1),parts.push(isNegative?pattern.negPre:pattern.posPre,formatedText,isNegative?pattern.negSuf:pattern.posSuf),parts.join("")}function padNumber(num,digits,trim){var neg="";for(0>num&&(neg="-",num=-num),num=""+num;num.length<digits;)num="0"+num;return trim&&(num=num.substr(num.length-digits)),neg+num}function dateGetter(name,size,offset,trim){return offset=offset||0,function(date){var value=date["get"+name]();return(offset>0||value>-offset)&&(value+=offset),0===value&&-12==offset&&(value=12),padNumber(value,size,trim)}}function dateStrGetter(name,shortForm){return function(date,formats){var value=date["get"+name](),get=uppercase(shortForm?"SHORT"+name:name);return formats[get][value]}}function timeZoneGetter(date){var zone=-1*date.getTimezoneOffset(),paddedZone=zone>=0?"+":"";return paddedZone+=padNumber(Math[zone>0?"floor":"ceil"](zone/60),2)+padNumber(Math.abs(zone%60),2)}function getFirstThursdayOfYear(year){var dayOfWeekOnFirst=new Date(year,0,1).getDay();return new Date(year,0,(4>=dayOfWeekOnFirst?5:12)-dayOfWeekOnFirst)}function getThursdayThisWeek(datetime){return new Date(datetime.getFullYear(),datetime.getMonth(),datetime.getDate()+(4-datetime.getDay()))}function weekGetter(size){return function(date){var firstThurs=getFirstThursdayOfYear(date.getFullYear()),thisThurs=getThursdayThisWeek(date),diff=+thisThurs-+firstThurs,result=1+Math.round(diff/6048e5);return padNumber(result,size)}}function ampmGetter(date,formats){return date.getHours()<12?formats.AMPMS[0]:formats.AMPMS[1]}function eraGetter(date,formats){return date.getFullYear()<=0?formats.ERAS[0]:formats.ERAS[1]}function longEraGetter(date,formats){return date.getFullYear()<=0?formats.ERANAMES[0]:formats.ERANAMES[1]}function dateFilter($locale){function jsonStringToDate(string){var match;if(match=string.match(R_ISO8601_STR)){var date=new Date(0),tzHour=0,tzMin=0,dateSetter=match[8]?date.setUTCFullYear:date.setFullYear,timeSetter=match[8]?date.setUTCHours:date.setHours;match[9]&&(tzHour=int(match[9]+match[10]),tzMin=int(match[9]+match[11])),dateSetter.call(date,int(match[1]),int(match[2])-1,int(match[3]));var h=int(match[4]||0)-tzHour,m=int(match[5]||0)-tzMin,s=int(match[6]||0),ms=Math.round(1e3*parseFloat("0."+(match[7]||0)));return timeSetter.call(date,h,m,s,ms),date}return string}var R_ISO8601_STR=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;return function(date,format,timezone){var fn,match,text="",parts=[];if(format=format||"mediumDate",format=$locale.DATETIME_FORMATS[format]||format,isString(date)&&(date=NUMBER_STRING.test(date)?int(date):jsonStringToDate(date)),isNumber(date)&&(date=new Date(date)),!isDate(date))return date;for(;format;)match=DATE_FORMATS_SPLIT.exec(format),match?(parts=concat(parts,match,1),format=parts.pop()):(parts.push(format),format=null);return timezone&&"UTC"===timezone&&(date=new Date(date.getTime()),date.setMinutes(date.getMinutes()+date.getTimezoneOffset())),forEach(parts,function(value){fn=DATE_FORMATS[value],text+=fn?fn(date,$locale.DATETIME_FORMATS):value.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),text}}function jsonFilter(){return function(object,spacing){return isUndefined(spacing)&&(spacing=2),toJson(object,spacing)}}function limitToFilter(){return function(input,limit){return isNumber(input)&&(input=input.toString()),isArray(input)||isString(input)?(limit=Math.abs(Number(limit))===1/0?Number(limit):int(limit),limit?limit>0?input.slice(0,limit):input.slice(limit):isString(input)?"":[]):input}}function orderByFilter($parse){return function(array,sortPredicate,reverseOrder){function comparator(o1,o2){for(var i=0;i<sortPredicate.length;i++){var comp=sortPredicate[i](o1,o2);if(0!==comp)return comp}return 0}function reverseComparator(comp,descending){return descending?function(a,b){return comp(b,a)}:comp}function isPrimitive(value){switch(typeof value){case"number":case"boolean":case"string":return!0;default:return!1}}function objectToString(value){return null===value?"null":"function"==typeof value.valueOf&&(value=value.valueOf(),isPrimitive(value))?value:"function"==typeof value.toString&&(value=value.toString(),isPrimitive(value))?value:""}function compare(v1,v2){var t1=typeof v1,t2=typeof v2;return t1===t2&&"object"===t1&&(v1=objectToString(v1),v2=objectToString(v2)),t1===t2?("string"===t1&&(v1=v1.toLowerCase(),v2=v2.toLowerCase()),v1===v2?0:v2>v1?-1:1):t2>t1?-1:1}return isArrayLike(array)?(sortPredicate=isArray(sortPredicate)?sortPredicate:[sortPredicate],0===sortPredicate.length&&(sortPredicate=["+"]),sortPredicate=sortPredicate.map(function(predicate){var descending=!1,get=predicate||identity;if(isString(predicate)){if(("+"==predicate.charAt(0)||"-"==predicate.charAt(0))&&(descending="-"==predicate.charAt(0),predicate=predicate.substring(1)),""===predicate)return reverseComparator(compare,descending);if(get=$parse(predicate),get.constant){var key=get();return reverseComparator(function(a,b){return compare(a[key],b[key])},descending)}}return reverseComparator(function(a,b){return compare(get(a),get(b))},descending)}),slice.call(array).sort(reverseComparator(comparator,reverseOrder))):array}}function ngDirective(directive){return isFunction(directive)&&(directive={link:directive}),directive.restrict=directive.restrict||"AC",valueFn(directive)}function nullFormRenameControl(control,name){control.$name=name}function FormController(element,attrs,$scope,$animate,$interpolate){var form=this,controls=[],parentForm=form.$$parentForm=element.parent().controller("form")||nullFormCtrl;form.$error={},form.$$success={},form.$pending=undefined,form.$name=$interpolate(attrs.name||attrs.ngForm||"")($scope),form.$dirty=!1,form.$pristine=!0,form.$valid=!0,form.$invalid=!1,form.$submitted=!1,parentForm.$addControl(form),form.$rollbackViewValue=function(){forEach(controls,function(control){control.$rollbackViewValue()})},form.$commitViewValue=function(){forEach(controls,function(control){control.$commitViewValue()})},form.$addControl=function(control){assertNotHasOwnProperty(control.$name,"input"),controls.push(control),control.$name&&(form[control.$name]=control)},form.$$renameControl=function(control,newName){var oldName=control.$name;form[oldName]===control&&delete form[oldName],form[newName]=control,control.$name=newName},form.$removeControl=function(control){control.$name&&form[control.$name]===control&&delete form[control.$name],forEach(form.$pending,function(value,name){form.$setValidity(name,null,control)}),forEach(form.$error,function(value,name){form.$setValidity(name,null,control)}),forEach(form.$$success,function(value,name){form.$setValidity(name,null,control)}),arrayRemove(controls,control)},addSetValidityMethod({ctrl:this,$element:element,set:function(object,property,controller){var list=object[property];if(list){var index=list.indexOf(controller);-1===index&&list.push(controller)}else object[property]=[controller]},unset:function(object,property,controller){var list=object[property];list&&(arrayRemove(list,controller),0===list.length&&delete object[property])},parentForm:parentForm,$animate:$animate}),form.$setDirty=function(){$animate.removeClass(element,PRISTINE_CLASS),$animate.addClass(element,DIRTY_CLASS),form.$dirty=!0,form.$pristine=!1,parentForm.$setDirty()},form.$setPristine=function(){$animate.setClass(element,PRISTINE_CLASS,DIRTY_CLASS+" "+SUBMITTED_CLASS),form.$dirty=!1,form.$pristine=!0,form.$submitted=!1,forEach(controls,function(control){control.$setPristine()})},form.$setUntouched=function(){forEach(controls,function(control){control.$setUntouched()})},form.$setSubmitted=function(){$animate.addClass(element,SUBMITTED_CLASS),form.$submitted=!0,parentForm.$setSubmitted()}}function stringBasedInputType(ctrl){ctrl.$formatters.push(function(value){return ctrl.$isEmpty(value)?value:value.toString()})}function textInputType(scope,element,attr,ctrl,$sniffer,$browser){baseInputType(scope,element,attr,ctrl,$sniffer,$browser),stringBasedInputType(ctrl)}function baseInputType(scope,element,attr,ctrl,$sniffer,$browser){var type=lowercase(element[0].type);if(!$sniffer.android){var composing=!1;element.on("compositionstart",function(data){composing=!0}),element.on("compositionend",function(){composing=!1,listener()})}var listener=function(ev){if(timeout&&($browser.defer.cancel(timeout),timeout=null),!composing){var value=element.val(),event=ev&&ev.type;"password"===type||attr.ngTrim&&"false"===attr.ngTrim||(value=trim(value)),(ctrl.$viewValue!==value||""===value&&ctrl.$$hasNativeValidators)&&ctrl.$setViewValue(value,event)}};if($sniffer.hasEvent("input"))element.on("input",listener);else{var timeout,deferListener=function(ev,input,origValue){timeout||(timeout=$browser.defer(function(){timeout=null,input&&input.value===origValue||listener(ev)}))};element.on("keydown",function(event){var key=event.keyCode;91===key||key>15&&19>key||key>=37&&40>=key||deferListener(event,this,this.value)}),$sniffer.hasEvent("paste")&&element.on("paste cut",deferListener)}element.on("change",listener),ctrl.$render=function(){element.val(ctrl.$isEmpty(ctrl.$viewValue)?"":ctrl.$viewValue)}}function weekParser(isoWeek,existingDate){if(isDate(isoWeek))return isoWeek;if(isString(isoWeek)){WEEK_REGEXP.lastIndex=0;var parts=WEEK_REGEXP.exec(isoWeek);if(parts){var year=+parts[1],week=+parts[2],hours=0,minutes=0,seconds=0,milliseconds=0,firstThurs=getFirstThursdayOfYear(year),addDays=7*(week-1);return existingDate&&(hours=existingDate.getHours(),minutes=existingDate.getMinutes(),seconds=existingDate.getSeconds(),milliseconds=existingDate.getMilliseconds()),new Date(year,0,firstThurs.getDate()+addDays,hours,minutes,seconds,milliseconds)}}return NaN}function createDateParser(regexp,mapping){return function(iso,date){var parts,map;if(isDate(iso))return iso;if(isString(iso)){if('"'==iso.charAt(0)&&'"'==iso.charAt(iso.length-1)&&(iso=iso.substring(1,iso.length-1)),ISO_DATE_REGEXP.test(iso))return new Date(iso);if(regexp.lastIndex=0,parts=regexp.exec(iso))return parts.shift(),map=date?{yyyy:date.getFullYear(),MM:date.getMonth()+1,dd:date.getDate(),HH:date.getHours(),mm:date.getMinutes(),ss:date.getSeconds(),sss:date.getMilliseconds()/1e3}:{yyyy:1970,MM:1,dd:1,HH:0,mm:0,ss:0,sss:0},forEach(parts,function(part,index){index<mapping.length&&(map[mapping[index]]=+part)}),new Date(map.yyyy,map.MM-1,map.dd,map.HH,map.mm,map.ss||0,1e3*map.sss||0)}return NaN}}function createDateInputType(type,regexp,parseDate,format){return function(scope,element,attr,ctrl,$sniffer,$browser,$filter){function isValidDate(value){return value&&!(value.getTime&&value.getTime()!==value.getTime())}function parseObservedDateValue(val){return isDefined(val)?isDate(val)?val:parseDate(val):undefined}badInputChecker(scope,element,attr,ctrl),baseInputType(scope,element,attr,ctrl,$sniffer,$browser);var previousDate,timezone=ctrl&&ctrl.$options&&ctrl.$options.timezone;if(ctrl.$$parserName=type,ctrl.$parsers.push(function(value){if(ctrl.$isEmpty(value))return null;if(regexp.test(value)){var parsedDate=parseDate(value,previousDate);return"UTC"===timezone&&parsedDate.setMinutes(parsedDate.getMinutes()-parsedDate.getTimezoneOffset()),parsedDate}return undefined}),ctrl.$formatters.push(function(value){if(value&&!isDate(value))throw ngModelMinErr("datefmt","Expected `{0}` to be a date",value);if(isValidDate(value)){if(previousDate=value,previousDate&&"UTC"===timezone){var timezoneOffset=6e4*previousDate.getTimezoneOffset();previousDate=new Date(previousDate.getTime()+timezoneOffset)}return $filter("date")(value,format,timezone)}return previousDate=null,""}),isDefined(attr.min)||attr.ngMin){var minVal;ctrl.$validators.min=function(value){return!isValidDate(value)||isUndefined(minVal)||parseDate(value)>=minVal},attr.$observe("min",function(val){minVal=parseObservedDateValue(val),ctrl.$validate()})}if(isDefined(attr.max)||attr.ngMax){var maxVal;ctrl.$validators.max=function(value){return!isValidDate(value)||isUndefined(maxVal)||parseDate(value)<=maxVal},attr.$observe("max",function(val){maxVal=parseObservedDateValue(val),ctrl.$validate()})}}}function badInputChecker(scope,element,attr,ctrl){var node=element[0],nativeValidation=ctrl.$$hasNativeValidators=isObject(node.validity);nativeValidation&&ctrl.$parsers.push(function(value){var validity=element.prop(VALIDITY_STATE_PROPERTY)||{};return validity.badInput&&!validity.typeMismatch?undefined:value})}function numberInputType(scope,element,attr,ctrl,$sniffer,$browser){if(badInputChecker(scope,element,attr,ctrl),baseInputType(scope,element,attr,ctrl,$sniffer,$browser),ctrl.$$parserName="number",ctrl.$parsers.push(function(value){return ctrl.$isEmpty(value)?null:NUMBER_REGEXP.test(value)?parseFloat(value):undefined}),ctrl.$formatters.push(function(value){if(!ctrl.$isEmpty(value)){if(!isNumber(value))throw ngModelMinErr("numfmt","Expected `{0}` to be a number",value);value=value.toString()}return value}),isDefined(attr.min)||attr.ngMin){var minVal;ctrl.$validators.min=function(value){return ctrl.$isEmpty(value)||isUndefined(minVal)||value>=minVal},attr.$observe("min",function(val){isDefined(val)&&!isNumber(val)&&(val=parseFloat(val,10)),minVal=isNumber(val)&&!isNaN(val)?val:undefined,ctrl.$validate()})}if(isDefined(attr.max)||attr.ngMax){var maxVal;ctrl.$validators.max=function(value){return ctrl.$isEmpty(value)||isUndefined(maxVal)||maxVal>=value},attr.$observe("max",function(val){isDefined(val)&&!isNumber(val)&&(val=parseFloat(val,10)),maxVal=isNumber(val)&&!isNaN(val)?val:undefined,ctrl.$validate()})}}function urlInputType(scope,element,attr,ctrl,$sniffer,$browser){baseInputType(scope,element,attr,ctrl,$sniffer,$browser),stringBasedInputType(ctrl),ctrl.$$parserName="url",ctrl.$validators.url=function(modelValue,viewValue){var value=modelValue||viewValue;return ctrl.$isEmpty(value)||URL_REGEXP.test(value)}}function emailInputType(scope,element,attr,ctrl,$sniffer,$browser){baseInputType(scope,element,attr,ctrl,$sniffer,$browser),stringBasedInputType(ctrl),ctrl.$$parserName="email",ctrl.$validators.email=function(modelValue,viewValue){var value=modelValue||viewValue;return ctrl.$isEmpty(value)||EMAIL_REGEXP.test(value)}}function radioInputType(scope,element,attr,ctrl){isUndefined(attr.name)&&element.attr("name",nextUid());var listener=function(ev){element[0].checked&&ctrl.$setViewValue(attr.value,ev&&ev.type)};element.on("click",listener),ctrl.$render=function(){var value=attr.value;element[0].checked=value==ctrl.$viewValue},attr.$observe("value",ctrl.$render)}function parseConstantExpr($parse,context,name,expression,fallback){var parseFn;if(isDefined(expression)){if(parseFn=$parse(expression),!parseFn.constant)throw ngModelMinErr("constexpr","Expected constant expression for `{0}`, but saw `{1}`.",name,expression);return parseFn(context)}return fallback}function checkboxInputType(scope,element,attr,ctrl,$sniffer,$browser,$filter,$parse){var trueValue=parseConstantExpr($parse,scope,"ngTrueValue",attr.ngTrueValue,!0),falseValue=parseConstantExpr($parse,scope,"ngFalseValue",attr.ngFalseValue,!1),listener=function(ev){ctrl.$setViewValue(element[0].checked,ev&&ev.type)};element.on("click",listener),ctrl.$render=function(){element[0].checked=ctrl.$viewValue},ctrl.$isEmpty=function(value){return value===!1},ctrl.$formatters.push(function(value){return equals(value,trueValue)}),ctrl.$parsers.push(function(value){return value?trueValue:falseValue})}function classDirective(name,selector){return name="ngClass"+name,["$animate",function($animate){function arrayDifference(tokens1,tokens2){var values=[];outer:for(var i=0;i<tokens1.length;i++){for(var token=tokens1[i],j=0;j<tokens2.length;j++)if(token==tokens2[j])continue outer;values.push(token)}return values}function arrayClasses(classVal){if(isArray(classVal))return classVal;if(isString(classVal))return classVal.split(" ");if(isObject(classVal)){var classes=[];return forEach(classVal,function(v,k){v&&(classes=classes.concat(k.split(" ")))}),classes}return classVal}return{restrict:"AC",link:function(scope,element,attr){function addClasses(classes){var newClasses=digestClassCounts(classes,1);attr.$addClass(newClasses)}function removeClasses(classes){var newClasses=digestClassCounts(classes,-1);attr.$removeClass(newClasses)}function digestClassCounts(classes,count){var classCounts=element.data("$classCounts")||{},classesToUpdate=[];return forEach(classes,function(className){(count>0||classCounts[className])&&(classCounts[className]=(classCounts[className]||0)+count,classCounts[className]===+(count>0)&&classesToUpdate.push(className))}),element.data("$classCounts",classCounts),classesToUpdate.join(" ")}function updateClasses(oldClasses,newClasses){var toAdd=arrayDifference(newClasses,oldClasses),toRemove=arrayDifference(oldClasses,newClasses);toAdd=digestClassCounts(toAdd,1),toRemove=digestClassCounts(toRemove,-1),toAdd&&toAdd.length&&$animate.addClass(element,toAdd),toRemove&&toRemove.length&&$animate.removeClass(element,toRemove)}
  function ngClassWatchAction(newVal){if(selector===!0||scope.$index%2===selector){var newClasses=arrayClasses(newVal||[]);if(oldVal){if(!equals(newVal,oldVal)){var oldClasses=arrayClasses(oldVal);updateClasses(oldClasses,newClasses)}}else addClasses(newClasses)}oldVal=shallowCopy(newVal)}var oldVal;scope.$watch(attr[name],ngClassWatchAction,!0),attr.$observe("class",function(value){ngClassWatchAction(scope.$eval(attr[name]))}),"ngClass"!==name&&scope.$watch("$index",function($index,old$index){var mod=1&$index;if(mod!==(1&old$index)){var classes=arrayClasses(scope.$eval(attr[name]));mod===selector?addClasses(classes):removeClasses(classes)}})}}}]}function addSetValidityMethod(context){function setValidity(validationErrorKey,state,controller){state===undefined?createAndSet("$pending",validationErrorKey,controller):unsetAndCleanup("$pending",validationErrorKey,controller),isBoolean(state)?state?(unset(ctrl.$error,validationErrorKey,controller),set(ctrl.$$success,validationErrorKey,controller)):(set(ctrl.$error,validationErrorKey,controller),unset(ctrl.$$success,validationErrorKey,controller)):(unset(ctrl.$error,validationErrorKey,controller),unset(ctrl.$$success,validationErrorKey,controller)),ctrl.$pending?(cachedToggleClass(PENDING_CLASS,!0),ctrl.$valid=ctrl.$invalid=undefined,toggleValidationCss("",null)):(cachedToggleClass(PENDING_CLASS,!1),ctrl.$valid=isObjectEmpty(ctrl.$error),ctrl.$invalid=!ctrl.$valid,toggleValidationCss("",ctrl.$valid));var combinedState;combinedState=ctrl.$pending&&ctrl.$pending[validationErrorKey]?undefined:ctrl.$error[validationErrorKey]?!1:ctrl.$$success[validationErrorKey]?!0:null,toggleValidationCss(validationErrorKey,combinedState),parentForm.$setValidity(validationErrorKey,combinedState,ctrl)}function createAndSet(name,value,controller){ctrl[name]||(ctrl[name]={}),set(ctrl[name],value,controller)}function unsetAndCleanup(name,value,controller){ctrl[name]&&unset(ctrl[name],value,controller),isObjectEmpty(ctrl[name])&&(ctrl[name]=undefined)}function cachedToggleClass(className,switchValue){switchValue&&!classCache[className]?($animate.addClass($element,className),classCache[className]=!0):!switchValue&&classCache[className]&&($animate.removeClass($element,className),classCache[className]=!1)}function toggleValidationCss(validationErrorKey,isValid){validationErrorKey=validationErrorKey?"-"+snake_case(validationErrorKey,"-"):"",cachedToggleClass(VALID_CLASS+validationErrorKey,isValid===!0),cachedToggleClass(INVALID_CLASS+validationErrorKey,isValid===!1)}var ctrl=context.ctrl,$element=context.$element,classCache={},set=context.set,unset=context.unset,parentForm=context.parentForm,$animate=context.$animate;classCache[INVALID_CLASS]=!(classCache[VALID_CLASS]=$element.hasClass(VALID_CLASS)),ctrl.$setValidity=setValidity}function isObjectEmpty(obj){if(obj)for(var prop in obj)return!1;return!0}var REGEX_STRING_REGEXP=/^\/(.+)\/([a-z]*)$/,VALIDITY_STATE_PROPERTY="validity",lowercase=function(string){return isString(string)?string.toLowerCase():string},hasOwnProperty=Object.prototype.hasOwnProperty,uppercase=function(string){return isString(string)?string.toUpperCase():string},manualLowercase=function(s){return isString(s)?s.replace(/[A-Z]/g,function(ch){return String.fromCharCode(32|ch.charCodeAt(0))}):s},manualUppercase=function(s){return isString(s)?s.replace(/[a-z]/g,function(ch){return String.fromCharCode(-33&ch.charCodeAt(0))}):s};"i"!=="I".toLowerCase()&&(lowercase=manualLowercase,uppercase=manualUppercase);var msie,jqLite,jQuery,angularModule,slice=[].slice,splice=[].splice,push=[].push,toString=Object.prototype.toString,ngMinErr=minErr("ng"),angular=window.angular||(window.angular={}),uid=0;msie=document.documentMode,noop.$inject=[],identity.$inject=[];var skipDestroyOnNextJQueryCleanData,isArray=Array.isArray,trim=function(value){return isString(value)?value.trim():value},escapeForRegexp=function(s){return s.replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g,"\\$1").replace(/\x08/g,"\\x08")},csp=function(){if(isDefined(csp.isActive_))return csp.isActive_;var active=!(!document.querySelector("[ng-csp]")&&!document.querySelector("[data-ng-csp]"));if(!active)try{new Function("")}catch(e){active=!0}return csp.isActive_=active},ngAttrPrefixes=["ng-","data-ng-","ng:","x-ng-"],SNAKE_CASE_REGEXP=/[A-Z]/g,bindJQueryFired=!1,NODE_TYPE_ELEMENT=1,NODE_TYPE_ATTRIBUTE=2,NODE_TYPE_TEXT=3,NODE_TYPE_COMMENT=8,NODE_TYPE_DOCUMENT=9,NODE_TYPE_DOCUMENT_FRAGMENT=11,version={full:"1.3.18",major:1,minor:3,dot:18,codeName:"collective-penmanship"};JQLite.expando="ng339";var jqCache=JQLite.cache={},jqId=1,addEventListenerFn=function(element,type,fn){element.addEventListener(type,fn,!1)},removeEventListenerFn=function(element,type,fn){element.removeEventListener(type,fn,!1)};JQLite._data=function(node){return this.cache[node[this.expando]]||{}};var SPECIAL_CHARS_REGEXP=/([\:\-\_]+(.))/g,MOZ_HACK_REGEXP=/^moz([A-Z])/,MOUSE_EVENT_MAP={mouseleave:"mouseout",mouseenter:"mouseover"},jqLiteMinErr=minErr("jqLite"),SINGLE_TAG_REGEXP=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,HTML_REGEXP=/<|&#?\w+;/,TAG_NAME_REGEXP=/<([\w:]+)/,XHTML_TAG_REGEXP=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,wrapMap={option:[1,'<select multiple="multiple">',"</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};wrapMap.optgroup=wrapMap.option,wrapMap.tbody=wrapMap.tfoot=wrapMap.colgroup=wrapMap.caption=wrapMap.thead,wrapMap.th=wrapMap.td;var JQLitePrototype=JQLite.prototype={ready:function(fn){function trigger(){fired||(fired=!0,fn())}var fired=!1;"complete"===document.readyState?setTimeout(trigger):(this.on("DOMContentLoaded",trigger),JQLite(window).on("load",trigger))},toString:function(){var value=[];return forEach(this,function(e){value.push(""+e)}),"["+value.join(", ")+"]"},eq:function(index){return jqLite(index>=0?this[index]:this[this.length+index])},length:0,push:push,sort:[].sort,splice:[].splice},BOOLEAN_ATTR={};forEach("multiple,selected,checked,disabled,readOnly,required,open".split(","),function(value){BOOLEAN_ATTR[lowercase(value)]=value});var BOOLEAN_ELEMENTS={};forEach("input,select,option,textarea,button,form,details".split(","),function(value){BOOLEAN_ELEMENTS[value]=!0});var ALIASED_ATTR={ngMinlength:"minlength",ngMaxlength:"maxlength",ngMin:"min",ngMax:"max",ngPattern:"pattern"};forEach({data:jqLiteData,removeData:jqLiteRemoveData},function(fn,name){JQLite[name]=fn}),forEach({data:jqLiteData,inheritedData:jqLiteInheritedData,scope:function(element){return jqLite.data(element,"$scope")||jqLiteInheritedData(element.parentNode||element,["$isolateScope","$scope"])},isolateScope:function(element){return jqLite.data(element,"$isolateScope")||jqLite.data(element,"$isolateScopeNoTemplate")},controller:jqLiteController,injector:function(element){return jqLiteInheritedData(element,"$injector")},removeAttr:function(element,name){element.removeAttribute(name)},hasClass:jqLiteHasClass,css:function(element,name,value){return name=camelCase(name),isDefined(value)?void(element.style[name]=value):element.style[name]},attr:function(element,name,value){var nodeType=element.nodeType;if(nodeType!==NODE_TYPE_TEXT&&nodeType!==NODE_TYPE_ATTRIBUTE&&nodeType!==NODE_TYPE_COMMENT){var lowercasedName=lowercase(name);if(BOOLEAN_ATTR[lowercasedName]){if(!isDefined(value))return element[name]||(element.attributes.getNamedItem(name)||noop).specified?lowercasedName:undefined;value?(element[name]=!0,element.setAttribute(name,lowercasedName)):(element[name]=!1,element.removeAttribute(lowercasedName))}else if(isDefined(value))element.setAttribute(name,value);else if(element.getAttribute){var ret=element.getAttribute(name,2);return null===ret?undefined:ret}}},prop:function(element,name,value){return isDefined(value)?void(element[name]=value):element[name]},text:function(){function getText(element,value){if(isUndefined(value)){var nodeType=element.nodeType;return nodeType===NODE_TYPE_ELEMENT||nodeType===NODE_TYPE_TEXT?element.textContent:""}element.textContent=value}return getText.$dv="",getText}(),val:function(element,value){if(isUndefined(value)){if(element.multiple&&"select"===nodeName_(element)){var result=[];return forEach(element.options,function(option){option.selected&&result.push(option.value||option.text)}),0===result.length?null:result}return element.value}element.value=value},html:function(element,value){return isUndefined(value)?element.innerHTML:(jqLiteDealoc(element,!0),void(element.innerHTML=value))},empty:jqLiteEmpty},function(fn,name){JQLite.prototype[name]=function(arg1,arg2){var i,key,nodeCount=this.length;if(fn!==jqLiteEmpty&&(2==fn.length&&fn!==jqLiteHasClass&&fn!==jqLiteController?arg1:arg2)===undefined){if(isObject(arg1)){for(i=0;nodeCount>i;i++)if(fn===jqLiteData)fn(this[i],arg1);else for(key in arg1)fn(this[i],key,arg1[key]);return this}for(var value=fn.$dv,jj=value===undefined?Math.min(nodeCount,1):nodeCount,j=0;jj>j;j++){var nodeValue=fn(this[j],arg1,arg2);value=value?value+nodeValue:nodeValue}return value}for(i=0;nodeCount>i;i++)fn(this[i],arg1,arg2);return this}}),forEach({removeData:jqLiteRemoveData,on:function jqLiteOn(element,type,fn,unsupported){if(isDefined(unsupported))throw jqLiteMinErr("onargs","jqLite#on() does not support the `selector` or `eventData` parameters");if(jqLiteAcceptsData(element)){var expandoStore=jqLiteExpandoStore(element,!0),events=expandoStore.events,handle=expandoStore.handle;handle||(handle=expandoStore.handle=createEventHandler(element,events));for(var types=type.indexOf(" ")>=0?type.split(" "):[type],i=types.length;i--;){type=types[i];var eventFns=events[type];eventFns||(events[type]=[],"mouseenter"===type||"mouseleave"===type?jqLiteOn(element,MOUSE_EVENT_MAP[type],function(event){var target=this,related=event.relatedTarget;(!related||related!==target&&!target.contains(related))&&handle(event,type)}):"$destroy"!==type&&addEventListenerFn(element,type,handle),eventFns=events[type]),eventFns.push(fn)}}},off:jqLiteOff,one:function(element,type,fn){element=jqLite(element),element.on(type,function onFn(){element.off(type,fn),element.off(type,onFn)}),element.on(type,fn)},replaceWith:function(element,replaceNode){var index,parent=element.parentNode;jqLiteDealoc(element),forEach(new JQLite(replaceNode),function(node){index?parent.insertBefore(node,index.nextSibling):parent.replaceChild(node,element),index=node})},children:function(element){var children=[];return forEach(element.childNodes,function(element){element.nodeType===NODE_TYPE_ELEMENT&&children.push(element)}),children},contents:function(element){return element.contentDocument||element.childNodes||[]},append:function(element,node){var nodeType=element.nodeType;if(nodeType===NODE_TYPE_ELEMENT||nodeType===NODE_TYPE_DOCUMENT_FRAGMENT){node=new JQLite(node);for(var i=0,ii=node.length;ii>i;i++){var child=node[i];element.appendChild(child)}}},prepend:function(element,node){if(element.nodeType===NODE_TYPE_ELEMENT){var index=element.firstChild;forEach(new JQLite(node),function(child){element.insertBefore(child,index)})}},wrap:function(element,wrapNode){wrapNode=jqLite(wrapNode).eq(0).clone()[0];var parent=element.parentNode;parent&&parent.replaceChild(wrapNode,element),wrapNode.appendChild(element)},remove:jqLiteRemove,detach:function(element){jqLiteRemove(element,!0)},after:function(element,newElement){var index=element,parent=element.parentNode;newElement=new JQLite(newElement);for(var i=0,ii=newElement.length;ii>i;i++){var node=newElement[i];parent.insertBefore(node,index.nextSibling),index=node}},addClass:jqLiteAddClass,removeClass:jqLiteRemoveClass,toggleClass:function(element,selector,condition){selector&&forEach(selector.split(" "),function(className){var classCondition=condition;isUndefined(classCondition)&&(classCondition=!jqLiteHasClass(element,className)),(classCondition?jqLiteAddClass:jqLiteRemoveClass)(element,className)})},parent:function(element){var parent=element.parentNode;return parent&&parent.nodeType!==NODE_TYPE_DOCUMENT_FRAGMENT?parent:null},next:function(element){return element.nextElementSibling},find:function(element,selector){return element.getElementsByTagName?element.getElementsByTagName(selector):[]},clone:jqLiteClone,triggerHandler:function(element,event,extraParameters){var dummyEvent,eventFnsCopy,handlerArgs,eventName=event.type||event,expandoStore=jqLiteExpandoStore(element),events=expandoStore&&expandoStore.events,eventFns=events&&events[eventName];eventFns&&(dummyEvent={preventDefault:function(){this.defaultPrevented=!0},isDefaultPrevented:function(){return this.defaultPrevented===!0},stopImmediatePropagation:function(){this.immediatePropagationStopped=!0},isImmediatePropagationStopped:function(){return this.immediatePropagationStopped===!0},stopPropagation:noop,type:eventName,target:element},event.type&&(dummyEvent=extend(dummyEvent,event)),eventFnsCopy=shallowCopy(eventFns),handlerArgs=extraParameters?[dummyEvent].concat(extraParameters):[dummyEvent],forEach(eventFnsCopy,function(fn){dummyEvent.isImmediatePropagationStopped()||fn.apply(element,handlerArgs)}))}},function(fn,name){JQLite.prototype[name]=function(arg1,arg2,arg3){for(var value,i=0,ii=this.length;ii>i;i++)isUndefined(value)?(value=fn(this[i],arg1,arg2,arg3),isDefined(value)&&(value=jqLite(value))):jqLiteAddNodes(value,fn(this[i],arg1,arg2,arg3));return isDefined(value)?value:this},JQLite.prototype.bind=JQLite.prototype.on,JQLite.prototype.unbind=JQLite.prototype.off}),HashMap.prototype={put:function(key,value){this[hashKey(key,this.nextUid)]=value},get:function(key){return this[hashKey(key,this.nextUid)]},remove:function(key){var value=this[key=hashKey(key,this.nextUid)];return delete this[key],value}};var FN_ARGS=/^function\s*[^\(]*\(\s*([^\)]*)\)/m,FN_ARG_SPLIT=/,/,FN_ARG=/^\s*(_?)(\S+?)\1\s*$/,STRIP_COMMENTS=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/gm,$injectorMinErr=minErr("$injector");createInjector.$$annotate=annotate;var $animateMinErr=minErr("$animate"),$AnimateProvider=["$provide",function($provide){this.$$selectors={},this.register=function(name,factory){var key=name+"-animation";if(name&&"."!=name.charAt(0))throw $animateMinErr("notcsel","Expecting class selector starting with '.' got '{0}'.",name);this.$$selectors[name.substr(1)]=key,$provide.factory(key,factory)},this.classNameFilter=function(expression){return 1===arguments.length&&(this.$$classNameFilter=expression instanceof RegExp?expression:null),this.$$classNameFilter},this.$get=["$$q","$$asyncCallback","$rootScope",function($$q,$$asyncCallback,$rootScope){function runAnimationPostDigest(fn){var cancelFn,defer=$$q.defer();return defer.promise.$$cancelFn=function(){cancelFn&&cancelFn()},$rootScope.$$postDigest(function(){cancelFn=fn(function(){defer.resolve()})}),defer.promise}function resolveElementClasses(element,classes){var toAdd=[],toRemove=[],hasClasses=createMap();return forEach((element.attr("class")||"").split(/\s+/),function(className){hasClasses[className]=!0}),forEach(classes,function(status,className){var hasClass=hasClasses[className];status===!1&&hasClass?toRemove.push(className):status!==!0||hasClass||toAdd.push(className)}),toAdd.length+toRemove.length>0&&[toAdd.length?toAdd:null,toRemove.length?toRemove:null]}function cachedClassManipulation(cache,classes,op){for(var i=0,ii=classes.length;ii>i;++i){var className=classes[i];cache[className]=op}}function asyncPromise(){return currentDefer||(currentDefer=$$q.defer(),$$asyncCallback(function(){currentDefer.resolve(),currentDefer=null})),currentDefer.promise}function applyStyles(element,options){if(angular.isObject(options)){var styles=extend(options.from||{},options.to||{});element.css(styles)}}var currentDefer;return{animate:function(element,from,to){return applyStyles(element,{from:from,to:to}),asyncPromise()},enter:function(element,parent,after,options){return applyStyles(element,options),after?after.after(element):parent.prepend(element),asyncPromise()},leave:function(element,options){return applyStyles(element,options),element.remove(),asyncPromise()},move:function(element,parent,after,options){return this.enter(element,parent,after,options)},addClass:function(element,className,options){return this.setClass(element,className,[],options)},$$addClassImmediately:function(element,className,options){return element=jqLite(element),className=isString(className)?className:isArray(className)?className.join(" "):"",forEach(element,function(element){jqLiteAddClass(element,className)}),applyStyles(element,options),asyncPromise()},removeClass:function(element,className,options){return this.setClass(element,[],className,options)},$$removeClassImmediately:function(element,className,options){return element=jqLite(element),className=isString(className)?className:isArray(className)?className.join(" "):"",forEach(element,function(element){jqLiteRemoveClass(element,className)}),applyStyles(element,options),asyncPromise()},setClass:function(element,add,remove,options){var self=this,STORAGE_KEY="$$animateClasses",createdCache=!1;element=jqLite(element);var cache=element.data(STORAGE_KEY);cache?options&&cache.options&&(cache.options=angular.extend(cache.options||{},options)):(cache={classes:{},options:options},createdCache=!0);var classes=cache.classes;return add=isArray(add)?add:add.split(" "),remove=isArray(remove)?remove:remove.split(" "),cachedClassManipulation(classes,add,!0),cachedClassManipulation(classes,remove,!1),createdCache&&(cache.promise=runAnimationPostDigest(function(done){var cache=element.data(STORAGE_KEY);if(element.removeData(STORAGE_KEY),cache){var classes=resolveElementClasses(element,cache.classes);classes&&self.$$setClassImmediately(element,classes[0],classes[1],cache.options)}done()}),element.data(STORAGE_KEY,cache)),cache.promise},$$setClassImmediately:function(element,add,remove,options){return add&&this.$$addClassImmediately(element,add),remove&&this.$$removeClassImmediately(element,remove),applyStyles(element,options),asyncPromise()},enabled:noop,cancel:noop}}]}],$compileMinErr=minErr("$compile");$CompileProvider.$inject=["$provide","$$sanitizeUriProvider"];var PREFIX_REGEXP=/^((?:x|data)[\:\-_])/i,$controllerMinErr=minErr("$controller"),APPLICATION_JSON="application/json",CONTENT_TYPE_APPLICATION_JSON={"Content-Type":APPLICATION_JSON+";charset=utf-8"},JSON_START=/^\[|^\{(?!\{)/,JSON_ENDS={"[":/]$/,"{":/}$/},JSON_PROTECTION_PREFIX=/^\)\]\}',?\n/,$interpolateMinErr=minErr("$interpolate"),PATH_MATCH=/^([^\?#]*)(\?([^#]*))?(#(.*))?$/,DEFAULT_PORTS={http:80,https:443,ftp:21},$locationMinErr=minErr("$location"),locationPrototype={$$html5:!1,$$replace:!1,absUrl:locationGetter("$$absUrl"),url:function(url){if(isUndefined(url))return this.$$url;var match=PATH_MATCH.exec(url);return(match[1]||""===url)&&this.path(decodeURIComponent(match[1])),(match[2]||match[1]||""===url)&&this.search(match[3]||""),this.hash(match[5]||""),this},protocol:locationGetter("$$protocol"),host:locationGetter("$$host"),port:locationGetter("$$port"),path:locationGetterSetter("$$path",function(path){return path=null!==path?path.toString():"","/"==path.charAt(0)?path:"/"+path}),search:function(search,paramValue){switch(arguments.length){case 0:return this.$$search;case 1:if(isString(search)||isNumber(search))search=search.toString(),this.$$search=parseKeyValue(search);else{if(!isObject(search))throw $locationMinErr("isrcharg","The first argument of the `$location#search()` call must be a string or an object.");search=copy(search,{}),forEach(search,function(value,key){null==value&&delete search[key]}),this.$$search=search}break;default:isUndefined(paramValue)||null===paramValue?delete this.$$search[search]:this.$$search[search]=paramValue}return this.$$compose(),this},hash:locationGetterSetter("$$hash",function(hash){return null!==hash?hash.toString():""}),replace:function(){return this.$$replace=!0,this}};forEach([LocationHashbangInHtml5Url,LocationHashbangUrl,LocationHtml5Url],function(Location){Location.prototype=Object.create(locationPrototype),Location.prototype.state=function(state){if(!arguments.length)return this.$$state;if(Location!==LocationHtml5Url||!this.$$html5)throw $locationMinErr("nostate","History API state support is available only in HTML5 mode and only in browsers supporting HTML5 History API");return this.$$state=isUndefined(state)?null:state,this}});var $parseMinErr=minErr("$parse"),CALL=Function.prototype.call,APPLY=Function.prototype.apply,BIND=Function.prototype.bind,CONSTANTS=createMap();forEach({"null":function(){return null},"true":function(){return!0},"false":function(){return!1},undefined:function(){}},function(constantGetter,name){constantGetter.constant=constantGetter.literal=constantGetter.sharedGetter=!0,CONSTANTS[name]=constantGetter}),CONSTANTS["this"]=function(self){return self},CONSTANTS["this"].sharedGetter=!0;var OPERATORS=extend(createMap(),{"+":function(self,locals,a,b){return a=a(self,locals),b=b(self,locals),isDefined(a)?isDefined(b)?a+b:a:isDefined(b)?b:undefined},"-":function(self,locals,a,b){return a=a(self,locals),b=b(self,locals),(isDefined(a)?a:0)-(isDefined(b)?b:0)},"*":function(self,locals,a,b){return a(self,locals)*b(self,locals)},"/":function(self,locals,a,b){return a(self,locals)/b(self,locals)},"%":function(self,locals,a,b){return a(self,locals)%b(self,locals)},"===":function(self,locals,a,b){return a(self,locals)===b(self,locals)},"!==":function(self,locals,a,b){return a(self,locals)!==b(self,locals)},"==":function(self,locals,a,b){return a(self,locals)==b(self,locals)},"!=":function(self,locals,a,b){return a(self,locals)!=b(self,locals)},"<":function(self,locals,a,b){return a(self,locals)<b(self,locals)},">":function(self,locals,a,b){return a(self,locals)>b(self,locals)},"<=":function(self,locals,a,b){return a(self,locals)<=b(self,locals)},">=":function(self,locals,a,b){return a(self,locals)>=b(self,locals)},"&&":function(self,locals,a,b){return a(self,locals)&&b(self,locals)},"||":function(self,locals,a,b){return a(self,locals)||b(self,locals)},"!":function(self,locals,a){return!a(self,locals)},"=":!0,"|":!0}),ESCAPE={n:"\n",f:"\f",r:"\r",t:"	",v:"","'":"'",'"':'"'},Lexer=function(options){this.options=options};Lexer.prototype={constructor:Lexer,lex:function(text){for(this.text=text,this.index=0,this.tokens=[];this.index<this.text.length;){var ch=this.text.charAt(this.index);if('"'===ch||"'"===ch)this.readString(ch);else if(this.isNumber(ch)||"."===ch&&this.isNumber(this.peek()))this.readNumber();else if(this.isIdent(ch))this.readIdent();else if(this.is(ch,"(){}[].,;:?"))this.tokens.push({index:this.index,text:ch}),this.index++;else if(this.isWhitespace(ch))this.index++;else{var ch2=ch+this.peek(),ch3=ch2+this.peek(2),op1=OPERATORS[ch],op2=OPERATORS[ch2],op3=OPERATORS[ch3];if(op1||op2||op3){var token=op3?ch3:op2?ch2:ch;this.tokens.push({index:this.index,text:token,operator:!0}),this.index+=token.length}else this.throwError("Unexpected next character ",this.index,this.index+1)}}return this.tokens},is:function(ch,chars){return-1!==chars.indexOf(ch)},peek:function(i){var num=i||1;return this.index+num<this.text.length?this.text.charAt(this.index+num):!1},isNumber:function(ch){return ch>="0"&&"9">=ch&&"string"==typeof ch},isWhitespace:function(ch){return" "===ch||"\r"===ch||"	"===ch||"\n"===ch||""===ch||" "===ch},isIdent:function(ch){return ch>="a"&&"z">=ch||ch>="A"&&"Z">=ch||"_"===ch||"$"===ch},isExpOperator:function(ch){return"-"===ch||"+"===ch||this.isNumber(ch)},throwError:function(error,start,end){end=end||this.index;var colStr=isDefined(start)?"s "+start+"-"+this.index+" ["+this.text.substring(start,end)+"]":" "+end;throw $parseMinErr("lexerr","Lexer Error: {0} at column{1} in expression [{2}].",error,colStr,this.text)},readNumber:function(){for(var number="",start=this.index;this.index<this.text.length;){var ch=lowercase(this.text.charAt(this.index));if("."==ch||this.isNumber(ch))number+=ch;else{var peekCh=this.peek();if("e"==ch&&this.isExpOperator(peekCh))number+=ch;else if(this.isExpOperator(ch)&&peekCh&&this.isNumber(peekCh)&&"e"==number.charAt(number.length-1))number+=ch;else{if(!this.isExpOperator(ch)||peekCh&&this.isNumber(peekCh)||"e"!=number.charAt(number.length-1))break;this.throwError("Invalid exponent")}}this.index++}this.tokens.push({index:start,text:number,constant:!0,value:Number(number)})},readIdent:function(){for(var start=this.index;this.index<this.text.length;){var ch=this.text.charAt(this.index);if(!this.isIdent(ch)&&!this.isNumber(ch))break;this.index++}this.tokens.push({index:start,text:this.text.slice(start,this.index),identifier:!0})},readString:function(quote){var start=this.index;this.index++;for(var string="",rawString=quote,escape=!1;this.index<this.text.length;){var ch=this.text.charAt(this.index);if(rawString+=ch,escape){if("u"===ch){var hex=this.text.substring(this.index+1,this.index+5);hex.match(/[\da-f]{4}/i)||this.throwError("Invalid unicode escape [\\u"+hex+"]"),this.index+=4,string+=String.fromCharCode(parseInt(hex,16))}else{var rep=ESCAPE[ch];string+=rep||ch}escape=!1}else if("\\"===ch)escape=!0;else{if(ch===quote)return this.index++,void this.tokens.push({index:start,text:rawString,constant:!0,value:string});string+=ch}this.index++}this.throwError("Unterminated quote",start)}};var Parser=function(lexer,$filter,options){this.lexer=lexer,this.$filter=$filter,this.options=options};Parser.ZERO=extend(function(){return 0},{sharedGetter:!0,constant:!0}),Parser.prototype={constructor:Parser,parse:function(text){this.text=text,this.tokens=this.lexer.lex(text);var value=this.statements();return 0!==this.tokens.length&&this.throwError("is an unexpected token",this.tokens[0]),value.literal=!!value.literal,value.constant=!!value.constant,value},primary:function(){var primary;this.expect("(")?(primary=this.filterChain(),this.consume(")")):this.expect("[")?primary=this.arrayDeclaration():this.expect("{")?primary=this.object():this.peek().identifier&&this.peek().text in CONSTANTS?primary=CONSTANTS[this.consume().text]:this.peek().identifier?primary=this.identifier():this.peek().constant?primary=this.constant():this.throwError("not a primary expression",this.peek());for(var next,context;next=this.expect("(","[",".");)"("===next.text?(primary=this.functionCall(primary,context),context=null):"["===next.text?(context=primary,primary=this.objectIndex(primary)):"."===next.text?(context=primary,primary=this.fieldAccess(primary)):this.throwError("IMPOSSIBLE");return primary},throwError:function(msg,token){throw $parseMinErr("syntax","Syntax Error: Token '{0}' {1} at column {2} of the expression [{3}] starting at [{4}].",token.text,msg,token.index+1,this.text,this.text.substring(token.index))},peekToken:function(){if(0===this.tokens.length)throw $parseMinErr("ueoe","Unexpected end of expression: {0}",this.text);return this.tokens[0]},peek:function(e1,e2,e3,e4){return this.peekAhead(0,e1,e2,e3,e4)},peekAhead:function(i,e1,e2,e3,e4){if(this.tokens.length>i){var token=this.tokens[i],t=token.text;if(t===e1||t===e2||t===e3||t===e4||!e1&&!e2&&!e3&&!e4)return token}return!1},expect:function(e1,e2,e3,e4){var token=this.peek(e1,e2,e3,e4);return token?(this.tokens.shift(),token):!1},consume:function(e1){if(0===this.tokens.length)throw $parseMinErr("ueoe","Unexpected end of expression: {0}",this.text);var token=this.expect(e1);return token||this.throwError("is unexpected, expecting ["+e1+"]",this.peek()),token},unaryFn:function(op,right){var fn=OPERATORS[op];return extend(function(self,locals){return fn(self,locals,right)},{constant:right.constant,inputs:[right]})},binaryFn:function(left,op,right,isBranching){var fn=OPERATORS[op];return extend(function(self,locals){return fn(self,locals,left,right)},{constant:left.constant&&right.constant,inputs:!isBranching&&[left,right]})},identifier:function(){for(var id=this.consume().text;this.peek(".")&&this.peekAhead(1).identifier&&!this.peekAhead(2,"(");)id+=this.consume().text+this.consume().text;return getterFn(id,this.options,this.text)},constant:function(){var value=this.consume().value;return extend(function(){return value},{constant:!0,literal:!0})},statements:function(){for(var statements=[];;)if(this.tokens.length>0&&!this.peek("}",")",";","]")&&statements.push(this.filterChain()),!this.expect(";"))return 1===statements.length?statements[0]:function(self,locals){for(var value,i=0,ii=statements.length;ii>i;i++)value=statements[i](self,locals);return value}},filterChain:function(){for(var token,left=this.expression();token=this.expect("|");)left=this.filter(left);return left},filter:function(inputFn){var argsFn,args,fn=this.$filter(this.consume().text);if(this.peek(":"))for(argsFn=[],args=[];this.expect(":");)argsFn.push(this.expression());var inputs=[inputFn].concat(argsFn||[]);return extend(function(self,locals){var input=inputFn(self,locals);if(args){args[0]=input;for(var i=argsFn.length;i--;)args[i+1]=argsFn[i](self,locals);return fn.apply(undefined,args)}return fn(input)},{constant:!fn.$stateful&&inputs.every(isConstant),inputs:!fn.$stateful&&inputs})},expression:function(){return this.assignment()},assignment:function(){var right,token,left=this.ternary();return(token=this.expect("="))?(left.assign||this.throwError("implies assignment but ["+this.text.substring(0,token.index)+"] can not be assigned to",token),right=this.ternary(),extend(function(scope,locals){return left.assign(scope,right(scope,locals),locals)},{inputs:[left,right]})):left},ternary:function(){var middle,token,left=this.logicalOR();if((token=this.expect("?"))&&(middle=this.assignment(),this.consume(":"))){var right=this.assignment();return extend(function(self,locals){return left(self,locals)?middle(self,locals):right(self,locals)},{constant:left.constant&&middle.constant&&right.constant})}return left},logicalOR:function(){for(var token,left=this.logicalAND();token=this.expect("||");)left=this.binaryFn(left,token.text,this.logicalAND(),!0);return left},logicalAND:function(){for(var token,left=this.equality();token=this.expect("&&");)left=this.binaryFn(left,token.text,this.equality(),!0);return left},equality:function(){for(var token,left=this.relational();token=this.expect("==","!=","===","!==");)left=this.binaryFn(left,token.text,this.relational());return left},relational:function(){for(var token,left=this.additive();token=this.expect("<",">","<=",">=");)left=this.binaryFn(left,token.text,this.additive());return left},additive:function(){for(var token,left=this.multiplicative();token=this.expect("+","-");)left=this.binaryFn(left,token.text,this.multiplicative());return left},multiplicative:function(){for(var token,left=this.unary();token=this.expect("*","/","%");)left=this.binaryFn(left,token.text,this.unary());return left},unary:function(){var token;return this.expect("+")?this.primary():(token=this.expect("-"))?this.binaryFn(Parser.ZERO,token.text,this.unary()):(token=this.expect("!"))?this.unaryFn(token.text,this.unary()):this.primary()},fieldAccess:function(object){var getter=this.identifier();return extend(function(scope,locals,self){var o=self||object(scope,locals);return null==o?undefined:getter(o)},{assign:function(scope,value,locals){var o=object(scope,locals);return o||object.assign(scope,o={},locals),getter.assign(o,value)}})},objectIndex:function(obj){var expression=this.text,indexFn=this.expression();return this.consume("]"),extend(function(self,locals){var v,o=obj(self,locals),i=indexFn(self,locals);return ensureSafeMemberName(i,expression),o?v=ensureSafeObject(o[i],expression):undefined},{assign:function(self,value,locals){var key=ensureSafeMemberName(indexFn(self,locals),expression),o=ensureSafeObject(obj(self,locals),expression);return o||obj.assign(self,o={},locals),o[key]=value}})},functionCall:function(fnGetter,contextGetter){var argsFn=[];if(")"!==this.peekToken().text)do argsFn.push(this.expression());while(this.expect(","));this.consume(")");var expressionText=this.text,args=argsFn.length?[]:null;return function(scope,locals){var context=contextGetter?contextGetter(scope,locals):isDefined(contextGetter)?undefined:scope,fn=fnGetter(scope,locals,context)||noop;
  if(args)for(var i=argsFn.length;i--;)args[i]=ensureSafeObject(argsFn[i](scope,locals),expressionText);ensureSafeObject(context,expressionText),ensureSafeFunction(fn,expressionText);var v=fn.apply?fn.apply(context,args):fn(args[0],args[1],args[2],args[3],args[4]);return args&&(args.length=0),ensureSafeObject(v,expressionText)}},arrayDeclaration:function(){var elementFns=[];if("]"!==this.peekToken().text)do{if(this.peek("]"))break;elementFns.push(this.expression())}while(this.expect(","));return this.consume("]"),extend(function(self,locals){for(var array=[],i=0,ii=elementFns.length;ii>i;i++)array.push(elementFns[i](self,locals));return array},{literal:!0,constant:elementFns.every(isConstant),inputs:elementFns})},object:function(){var keys=[],valueFns=[];if("}"!==this.peekToken().text)do{if(this.peek("}"))break;var token=this.consume();token.constant?keys.push(token.value):token.identifier?keys.push(token.text):this.throwError("invalid key",token),this.consume(":"),valueFns.push(this.expression())}while(this.expect(","));return this.consume("}"),extend(function(self,locals){for(var object={},i=0,ii=valueFns.length;ii>i;i++)object[keys[i]]=valueFns[i](self,locals);return object},{literal:!0,constant:valueFns.every(isConstant),inputs:valueFns})}};var getterFnCacheDefault=createMap(),getterFnCacheExpensive=createMap(),objectValueOf=Object.prototype.valueOf,$sceMinErr=minErr("$sce"),SCE_CONTEXTS={HTML:"html",CSS:"css",URL:"url",RESOURCE_URL:"resourceUrl",JS:"js"},$compileMinErr=minErr("$compile"),urlParsingNode=document.createElement("a"),originUrl=urlResolve(window.location.href);$FilterProvider.$inject=["$provide"],currencyFilter.$inject=["$locale"],numberFilter.$inject=["$locale"];var DECIMAL_SEP=".",DATE_FORMATS={yyyy:dateGetter("FullYear",4),yy:dateGetter("FullYear",2,0,!0),y:dateGetter("FullYear",1),MMMM:dateStrGetter("Month"),MMM:dateStrGetter("Month",!0),MM:dateGetter("Month",2,1),M:dateGetter("Month",1,1),dd:dateGetter("Date",2),d:dateGetter("Date",1),HH:dateGetter("Hours",2),H:dateGetter("Hours",1),hh:dateGetter("Hours",2,-12),h:dateGetter("Hours",1,-12),mm:dateGetter("Minutes",2),m:dateGetter("Minutes",1),ss:dateGetter("Seconds",2),s:dateGetter("Seconds",1),sss:dateGetter("Milliseconds",3),EEEE:dateStrGetter("Day"),EEE:dateStrGetter("Day",!0),a:ampmGetter,Z:timeZoneGetter,ww:weekGetter(2),w:weekGetter(1),G:eraGetter,GG:eraGetter,GGG:eraGetter,GGGG:longEraGetter},DATE_FORMATS_SPLIT=/((?:[^yMdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z|G+|w+))(.*)/,NUMBER_STRING=/^\-?\d+$/;dateFilter.$inject=["$locale"];var lowercaseFilter=valueFn(lowercase),uppercaseFilter=valueFn(uppercase);orderByFilter.$inject=["$parse"];var htmlAnchorDirective=valueFn({restrict:"E",compile:function(element,attr){return attr.href||attr.xlinkHref||attr.name?void 0:function(scope,element){if("a"===element[0].nodeName.toLowerCase()){var href="[object SVGAnimatedString]"===toString.call(element.prop("href"))?"xlink:href":"href";element.on("click",function(event){element.attr(href)||event.preventDefault()})}}}}),ngAttributeAliasDirectives={};forEach(BOOLEAN_ATTR,function(propName,attrName){if("multiple"!=propName){var normalized=directiveNormalize("ng-"+attrName);ngAttributeAliasDirectives[normalized]=function(){return{restrict:"A",priority:100,link:function(scope,element,attr){scope.$watch(attr[normalized],function(value){attr.$set(attrName,!!value)})}}}}}),forEach(ALIASED_ATTR,function(htmlAttr,ngAttr){ngAttributeAliasDirectives[ngAttr]=function(){return{priority:100,link:function(scope,element,attr){if("ngPattern"===ngAttr&&"/"==attr.ngPattern.charAt(0)){var match=attr.ngPattern.match(REGEX_STRING_REGEXP);if(match)return void attr.$set("ngPattern",new RegExp(match[1],match[2]))}scope.$watch(attr[ngAttr],function(value){attr.$set(ngAttr,value)})}}}}),forEach(["src","srcset","href"],function(attrName){var normalized=directiveNormalize("ng-"+attrName);ngAttributeAliasDirectives[normalized]=function(){return{priority:99,link:function(scope,element,attr){var propName=attrName,name=attrName;"href"===attrName&&"[object SVGAnimatedString]"===toString.call(element.prop("href"))&&(name="xlinkHref",attr.$attr[name]="xlink:href",propName=null),attr.$observe(normalized,function(value){return value?(attr.$set(name,value),void(msie&&propName&&element.prop(propName,attr[name]))):void("href"===attrName&&attr.$set(name,null))})}}}});var nullFormCtrl={$addControl:noop,$$renameControl:nullFormRenameControl,$removeControl:noop,$setValidity:noop,$setDirty:noop,$setPristine:noop,$setSubmitted:noop},SUBMITTED_CLASS="ng-submitted";FormController.$inject=["$element","$attrs","$scope","$animate","$interpolate"];var formDirectiveFactory=function(isNgForm){return["$timeout",function($timeout){var formDirective={name:"form",restrict:isNgForm?"EAC":"E",controller:FormController,compile:function(formElement,attr){formElement.addClass(PRISTINE_CLASS).addClass(VALID_CLASS);var nameAttr=attr.name?"name":isNgForm&&attr.ngForm?"ngForm":!1;return{pre:function(scope,formElement,attr,controller){if(!("action"in attr)){var handleFormSubmission=function(event){scope.$apply(function(){controller.$commitViewValue(),controller.$setSubmitted()}),event.preventDefault()};addEventListenerFn(formElement[0],"submit",handleFormSubmission),formElement.on("$destroy",function(){$timeout(function(){removeEventListenerFn(formElement[0],"submit",handleFormSubmission)},0,!1)})}var parentFormCtrl=controller.$$parentForm;nameAttr&&(setter(scope,null,controller.$name,controller,controller.$name),attr.$observe(nameAttr,function(newValue){controller.$name!==newValue&&(setter(scope,null,controller.$name,undefined,controller.$name),parentFormCtrl.$$renameControl(controller,newValue),setter(scope,null,controller.$name,controller,controller.$name))})),formElement.on("$destroy",function(){parentFormCtrl.$removeControl(controller),nameAttr&&setter(scope,null,attr[nameAttr],undefined,controller.$name),extend(controller,nullFormCtrl)})}}}};return formDirective}]},formDirective=formDirectiveFactory(),ngFormDirective=formDirectiveFactory(!0),ISO_DATE_REGEXP=/\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)/,URL_REGEXP=/^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/,EMAIL_REGEXP=/^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i,NUMBER_REGEXP=/^\s*(\-|\+)?(\d+|(\d*(\.\d*)))\s*$/,DATE_REGEXP=/^(\d{4})-(\d{2})-(\d{2})$/,DATETIMELOCAL_REGEXP=/^(\d{4})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,WEEK_REGEXP=/^(\d{4})-W(\d\d)$/,MONTH_REGEXP=/^(\d{4})-(\d\d)$/,TIME_REGEXP=/^(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,inputType={text:textInputType,date:createDateInputType("date",DATE_REGEXP,createDateParser(DATE_REGEXP,["yyyy","MM","dd"]),"yyyy-MM-dd"),"datetime-local":createDateInputType("datetimelocal",DATETIMELOCAL_REGEXP,createDateParser(DATETIMELOCAL_REGEXP,["yyyy","MM","dd","HH","mm","ss","sss"]),"yyyy-MM-ddTHH:mm:ss.sss"),time:createDateInputType("time",TIME_REGEXP,createDateParser(TIME_REGEXP,["HH","mm","ss","sss"]),"HH:mm:ss.sss"),week:createDateInputType("week",WEEK_REGEXP,weekParser,"yyyy-Www"),month:createDateInputType("month",MONTH_REGEXP,createDateParser(MONTH_REGEXP,["yyyy","MM"]),"yyyy-MM"),number:numberInputType,url:urlInputType,email:emailInputType,radio:radioInputType,checkbox:checkboxInputType,hidden:noop,button:noop,submit:noop,reset:noop,file:noop},inputDirective=["$browser","$sniffer","$filter","$parse",function($browser,$sniffer,$filter,$parse){return{restrict:"E",require:["?ngModel"],link:{pre:function(scope,element,attr,ctrls){ctrls[0]&&(inputType[lowercase(attr.type)]||inputType.text)(scope,element,attr,ctrls[0],$sniffer,$browser,$filter,$parse)}}}}],CONSTANT_VALUE_REGEXP=/^(true|false|\d+)$/,ngValueDirective=function(){return{restrict:"A",priority:100,compile:function(tpl,tplAttr){return CONSTANT_VALUE_REGEXP.test(tplAttr.ngValue)?function(scope,elm,attr){attr.$set("value",scope.$eval(attr.ngValue))}:function(scope,elm,attr){scope.$watch(attr.ngValue,function(value){attr.$set("value",value)})}}}},ngBindDirective=["$compile",function($compile){return{restrict:"AC",compile:function(templateElement){return $compile.$$addBindingClass(templateElement),function(scope,element,attr){$compile.$$addBindingInfo(element,attr.ngBind),element=element[0],scope.$watch(attr.ngBind,function(value){element.textContent=value===undefined?"":value})}}}}],ngBindTemplateDirective=["$interpolate","$compile",function($interpolate,$compile){return{compile:function(templateElement){return $compile.$$addBindingClass(templateElement),function(scope,element,attr){var interpolateFn=$interpolate(element.attr(attr.$attr.ngBindTemplate));$compile.$$addBindingInfo(element,interpolateFn.expressions),element=element[0],attr.$observe("ngBindTemplate",function(value){element.textContent=value===undefined?"":value})}}}}],ngBindHtmlDirective=["$sce","$parse","$compile",function($sce,$parse,$compile){return{restrict:"A",compile:function(tElement,tAttrs){var ngBindHtmlGetter=$parse(tAttrs.ngBindHtml),ngBindHtmlWatch=$parse(tAttrs.ngBindHtml,function(value){return(value||"").toString()});return $compile.$$addBindingClass(tElement),function(scope,element,attr){$compile.$$addBindingInfo(element,attr.ngBindHtml),scope.$watch(ngBindHtmlWatch,function(){element.html($sce.getTrustedHtml(ngBindHtmlGetter(scope))||"")})}}}}],ngChangeDirective=valueFn({restrict:"A",require:"ngModel",link:function(scope,element,attr,ctrl){ctrl.$viewChangeListeners.push(function(){scope.$eval(attr.ngChange)})}}),ngClassDirective=classDirective("",!0),ngClassOddDirective=classDirective("Odd",0),ngClassEvenDirective=classDirective("Even",1),ngCloakDirective=ngDirective({compile:function(element,attr){attr.$set("ngCloak",undefined),element.removeClass("ng-cloak")}}),ngControllerDirective=[function(){return{restrict:"A",scope:!0,controller:"@",priority:500}}],ngEventDirectives={},forceAsyncEvents={blur:!0,focus:!0};forEach("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" "),function(eventName){var directiveName=directiveNormalize("ng-"+eventName);ngEventDirectives[directiveName]=["$parse","$rootScope",function($parse,$rootScope){return{restrict:"A",compile:function($element,attr){var fn=$parse(attr[directiveName],null,!0);return function(scope,element){element.on(eventName,function(event){var callback=function(){fn(scope,{$event:event})};forceAsyncEvents[eventName]&&$rootScope.$$phase?scope.$evalAsync(callback):scope.$apply(callback)})}}}}]});var ngIfDirective=["$animate",function($animate){return{multiElement:!0,transclude:"element",priority:600,terminal:!0,restrict:"A",$$tlb:!0,link:function($scope,$element,$attr,ctrl,$transclude){var block,childScope,previousElements;$scope.$watch($attr.ngIf,function(value){value?childScope||$transclude(function(clone,newScope){childScope=newScope,clone[clone.length++]=document.createComment(" end ngIf: "+$attr.ngIf+" "),block={clone:clone},$animate.enter(clone,$element.parent(),$element)}):(previousElements&&(previousElements.remove(),previousElements=null),childScope&&(childScope.$destroy(),childScope=null),block&&(previousElements=getBlockNodes(block.clone),$animate.leave(previousElements).then(function(){previousElements=null}),block=null))})}}}],ngIncludeDirective=["$templateRequest","$anchorScroll","$animate",function($templateRequest,$anchorScroll,$animate){return{restrict:"ECA",priority:400,terminal:!0,transclude:"element",controller:angular.noop,compile:function(element,attr){var srcExp=attr.ngInclude||attr.src,onloadExp=attr.onload||"",autoScrollExp=attr.autoscroll;return function(scope,$element,$attr,ctrl,$transclude){var currentScope,previousElement,currentElement,changeCounter=0,cleanupLastIncludeContent=function(){previousElement&&(previousElement.remove(),previousElement=null),currentScope&&(currentScope.$destroy(),currentScope=null),currentElement&&($animate.leave(currentElement).then(function(){previousElement=null}),previousElement=currentElement,currentElement=null)};scope.$watch(srcExp,function(src){var afterAnimation=function(){!isDefined(autoScrollExp)||autoScrollExp&&!scope.$eval(autoScrollExp)||$anchorScroll()},thisChangeId=++changeCounter;src?($templateRequest(src,!0).then(function(response){if(thisChangeId===changeCounter){var newScope=scope.$new();ctrl.template=response;var clone=$transclude(newScope,function(clone){cleanupLastIncludeContent(),$animate.enter(clone,null,$element).then(afterAnimation)});currentScope=newScope,currentElement=clone,currentScope.$emit("$includeContentLoaded",src),scope.$eval(onloadExp)}},function(){thisChangeId===changeCounter&&(cleanupLastIncludeContent(),scope.$emit("$includeContentError",src))}),scope.$emit("$includeContentRequested",src)):(cleanupLastIncludeContent(),ctrl.template=null)})}}}}],ngIncludeFillContentDirective=["$compile",function($compile){return{restrict:"ECA",priority:-400,require:"ngInclude",link:function(scope,$element,$attr,ctrl){return/SVG/.test($element[0].toString())?($element.empty(),void $compile(jqLiteBuildFragment(ctrl.template,document).childNodes)(scope,function(clone){$element.append(clone)},{futureParentElement:$element})):($element.html(ctrl.template),void $compile($element.contents())(scope))}}}],ngInitDirective=ngDirective({priority:450,compile:function(){return{pre:function(scope,element,attrs){scope.$eval(attrs.ngInit)}}}}),ngListDirective=function(){return{restrict:"A",priority:100,require:"ngModel",link:function(scope,element,attr,ctrl){var ngList=element.attr(attr.$attr.ngList)||", ",trimValues="false"!==attr.ngTrim,separator=trimValues?trim(ngList):ngList,parse=function(viewValue){if(!isUndefined(viewValue)){var list=[];return viewValue&&forEach(viewValue.split(separator),function(value){value&&list.push(trimValues?trim(value):value)}),list}};ctrl.$parsers.push(parse),ctrl.$formatters.push(function(value){return isArray(value)?value.join(ngList):undefined}),ctrl.$isEmpty=function(value){return!value||!value.length}}}},VALID_CLASS="ng-valid",INVALID_CLASS="ng-invalid",PRISTINE_CLASS="ng-pristine",DIRTY_CLASS="ng-dirty",UNTOUCHED_CLASS="ng-untouched",TOUCHED_CLASS="ng-touched",PENDING_CLASS="ng-pending",ngModelMinErr=minErr("ngModel"),NgModelController=["$scope","$exceptionHandler","$attrs","$element","$parse","$animate","$timeout","$rootScope","$q","$interpolate",function($scope,$exceptionHandler,$attr,$element,$parse,$animate,$timeout,$rootScope,$q,$interpolate){this.$viewValue=Number.NaN,this.$modelValue=Number.NaN,this.$$rawModelValue=undefined,this.$validators={},this.$asyncValidators={},this.$parsers=[],this.$formatters=[],this.$viewChangeListeners=[],this.$untouched=!0,this.$touched=!1,this.$pristine=!0,this.$dirty=!1,this.$valid=!0,this.$invalid=!1,this.$error={},this.$$success={},this.$pending=undefined,this.$name=$interpolate($attr.name||"",!1)($scope);var parserValid,parsedNgModel=$parse($attr.ngModel),parsedNgModelAssign=parsedNgModel.assign,ngModelGet=parsedNgModel,ngModelSet=parsedNgModelAssign,pendingDebounce=null,ctrl=this;this.$$setOptions=function(options){if(ctrl.$options=options,options&&options.getterSetter){var invokeModelGetter=$parse($attr.ngModel+"()"),invokeModelSetter=$parse($attr.ngModel+"($$$p)");ngModelGet=function($scope){var modelValue=parsedNgModel($scope);return isFunction(modelValue)&&(modelValue=invokeModelGetter($scope)),modelValue},ngModelSet=function($scope,newValue){isFunction(parsedNgModel($scope))?invokeModelSetter($scope,{$$$p:ctrl.$modelValue}):parsedNgModelAssign($scope,ctrl.$modelValue)}}else if(!parsedNgModel.assign)throw ngModelMinErr("nonassign","Expression '{0}' is non-assignable. Element: {1}",$attr.ngModel,startingTag($element))},this.$render=noop,this.$isEmpty=function(value){return isUndefined(value)||""===value||null===value||value!==value};var parentForm=$element.inheritedData("$formController")||nullFormCtrl,currentValidationRunId=0;addSetValidityMethod({ctrl:this,$element:$element,set:function(object,property){object[property]=!0},unset:function(object,property){delete object[property]},parentForm:parentForm,$animate:$animate}),this.$setPristine=function(){ctrl.$dirty=!1,ctrl.$pristine=!0,$animate.removeClass($element,DIRTY_CLASS),$animate.addClass($element,PRISTINE_CLASS)},this.$setDirty=function(){ctrl.$dirty=!0,ctrl.$pristine=!1,$animate.removeClass($element,PRISTINE_CLASS),$animate.addClass($element,DIRTY_CLASS),parentForm.$setDirty()},this.$setUntouched=function(){ctrl.$touched=!1,ctrl.$untouched=!0,$animate.setClass($element,UNTOUCHED_CLASS,TOUCHED_CLASS)},this.$setTouched=function(){ctrl.$touched=!0,ctrl.$untouched=!1,$animate.setClass($element,TOUCHED_CLASS,UNTOUCHED_CLASS)},this.$rollbackViewValue=function(){$timeout.cancel(pendingDebounce),ctrl.$viewValue=ctrl.$$lastCommittedViewValue,ctrl.$render()},this.$validate=function(){if(!isNumber(ctrl.$modelValue)||!isNaN(ctrl.$modelValue)){var viewValue=ctrl.$$lastCommittedViewValue,modelValue=ctrl.$$rawModelValue,prevValid=ctrl.$valid,prevModelValue=ctrl.$modelValue,allowInvalid=ctrl.$options&&ctrl.$options.allowInvalid;ctrl.$$runValidators(modelValue,viewValue,function(allValid){allowInvalid||prevValid===allValid||(ctrl.$modelValue=allValid?modelValue:undefined,ctrl.$modelValue!==prevModelValue&&ctrl.$$writeModelToScope())})}},this.$$runValidators=function(modelValue,viewValue,doneCallback){function processParseErrors(){var errorKey=ctrl.$$parserName||"parse";return parserValid!==undefined?(parserValid||(forEach(ctrl.$validators,function(v,name){setValidity(name,null)}),forEach(ctrl.$asyncValidators,function(v,name){setValidity(name,null)})),setValidity(errorKey,parserValid),parserValid):(setValidity(errorKey,null),!0)}function processSyncValidators(){var syncValidatorsValid=!0;return forEach(ctrl.$validators,function(validator,name){var result=validator(modelValue,viewValue);syncValidatorsValid=syncValidatorsValid&&result,setValidity(name,result)}),syncValidatorsValid?!0:(forEach(ctrl.$asyncValidators,function(v,name){setValidity(name,null)}),!1)}function processAsyncValidators(){var validatorPromises=[],allValid=!0;forEach(ctrl.$asyncValidators,function(validator,name){var promise=validator(modelValue,viewValue);if(!isPromiseLike(promise))throw ngModelMinErr("$asyncValidators","Expected asynchronous validator to return a promise but got '{0}' instead.",promise);setValidity(name,undefined),validatorPromises.push(promise.then(function(){setValidity(name,!0)},function(error){allValid=!1,setValidity(name,!1)}))}),validatorPromises.length?$q.all(validatorPromises).then(function(){validationDone(allValid)},noop):validationDone(!0)}function setValidity(name,isValid){localValidationRunId===currentValidationRunId&&ctrl.$setValidity(name,isValid)}function validationDone(allValid){localValidationRunId===currentValidationRunId&&doneCallback(allValid)}currentValidationRunId++;var localValidationRunId=currentValidationRunId;return processParseErrors()&&processSyncValidators()?void processAsyncValidators():void validationDone(!1)},this.$commitViewValue=function(){var viewValue=ctrl.$viewValue;$timeout.cancel(pendingDebounce),(ctrl.$$lastCommittedViewValue!==viewValue||""===viewValue&&ctrl.$$hasNativeValidators)&&(ctrl.$$lastCommittedViewValue=viewValue,ctrl.$pristine&&this.$setDirty(),this.$$parseAndValidate())},this.$$parseAndValidate=function(){function writeToModelIfNeeded(){ctrl.$modelValue!==prevModelValue&&ctrl.$$writeModelToScope()}var viewValue=ctrl.$$lastCommittedViewValue,modelValue=viewValue;if(parserValid=isUndefined(modelValue)?undefined:!0)for(var i=0;i<ctrl.$parsers.length;i++)if(modelValue=ctrl.$parsers[i](modelValue),isUndefined(modelValue)){parserValid=!1;break}isNumber(ctrl.$modelValue)&&isNaN(ctrl.$modelValue)&&(ctrl.$modelValue=ngModelGet($scope));var prevModelValue=ctrl.$modelValue,allowInvalid=ctrl.$options&&ctrl.$options.allowInvalid;ctrl.$$rawModelValue=modelValue,allowInvalid&&(ctrl.$modelValue=modelValue,writeToModelIfNeeded()),ctrl.$$runValidators(modelValue,ctrl.$$lastCommittedViewValue,function(allValid){allowInvalid||(ctrl.$modelValue=allValid?modelValue:undefined,writeToModelIfNeeded())})},this.$$writeModelToScope=function(){ngModelSet($scope,ctrl.$modelValue),forEach(ctrl.$viewChangeListeners,function(listener){try{listener()}catch(e){$exceptionHandler(e)}})},this.$setViewValue=function(value,trigger){ctrl.$viewValue=value,(!ctrl.$options||ctrl.$options.updateOnDefault)&&ctrl.$$debounceViewValueCommit(trigger)},this.$$debounceViewValueCommit=function(trigger){var debounce,debounceDelay=0,options=ctrl.$options;options&&isDefined(options.debounce)&&(debounce=options.debounce,isNumber(debounce)?debounceDelay=debounce:isNumber(debounce[trigger])?debounceDelay=debounce[trigger]:isNumber(debounce["default"])&&(debounceDelay=debounce["default"])),$timeout.cancel(pendingDebounce),debounceDelay?pendingDebounce=$timeout(function(){ctrl.$commitViewValue()},debounceDelay):$rootScope.$$phase?ctrl.$commitViewValue():$scope.$apply(function(){ctrl.$commitViewValue()})},$scope.$watch(function(){var modelValue=ngModelGet($scope);if(modelValue!==ctrl.$modelValue&&(ctrl.$modelValue===ctrl.$modelValue||modelValue===modelValue)){ctrl.$modelValue=ctrl.$$rawModelValue=modelValue,parserValid=undefined;for(var formatters=ctrl.$formatters,idx=formatters.length,viewValue=modelValue;idx--;)viewValue=formatters[idx](viewValue);ctrl.$viewValue!==viewValue&&(ctrl.$viewValue=ctrl.$$lastCommittedViewValue=viewValue,ctrl.$render(),ctrl.$$runValidators(modelValue,viewValue,noop))}return modelValue})}],ngModelDirective=["$rootScope",function($rootScope){return{restrict:"A",require:["ngModel","^?form","^?ngModelOptions"],controller:NgModelController,priority:1,compile:function(element){return element.addClass(PRISTINE_CLASS).addClass(UNTOUCHED_CLASS).addClass(VALID_CLASS),{pre:function(scope,element,attr,ctrls){var modelCtrl=ctrls[0],formCtrl=ctrls[1]||nullFormCtrl;modelCtrl.$$setOptions(ctrls[2]&&ctrls[2].$options),formCtrl.$addControl(modelCtrl),attr.$observe("name",function(newValue){modelCtrl.$name!==newValue&&formCtrl.$$renameControl(modelCtrl,newValue)}),scope.$on("$destroy",function(){formCtrl.$removeControl(modelCtrl)})},post:function(scope,element,attr,ctrls){var modelCtrl=ctrls[0];modelCtrl.$options&&modelCtrl.$options.updateOn&&element.on(modelCtrl.$options.updateOn,function(ev){modelCtrl.$$debounceViewValueCommit(ev&&ev.type)}),element.on("blur",function(ev){modelCtrl.$touched||($rootScope.$$phase?scope.$evalAsync(modelCtrl.$setTouched):scope.$apply(modelCtrl.$setTouched))})}}}}}],DEFAULT_REGEXP=/(\s+|^)default(\s+|$)/,ngModelOptionsDirective=function(){return{restrict:"A",controller:["$scope","$attrs",function($scope,$attrs){var that=this;this.$options=$scope.$eval($attrs.ngModelOptions),this.$options.updateOn!==undefined?(this.$options.updateOnDefault=!1,this.$options.updateOn=trim(this.$options.updateOn.replace(DEFAULT_REGEXP,function(){return that.$options.updateOnDefault=!0," "}))):this.$options.updateOnDefault=!0}]}},ngNonBindableDirective=ngDirective({terminal:!0,priority:1e3}),ngPluralizeDirective=["$locale","$interpolate",function($locale,$interpolate){var BRACE=/{}/g,IS_WHEN=/^when(Minus)?(.+)$/;return{restrict:"EA",link:function(scope,element,attr){function updateElementText(newText){element.text(newText||"")}var lastCount,numberExp=attr.count,whenExp=attr.$attr.when&&element.attr(attr.$attr.when),offset=attr.offset||0,whens=scope.$eval(whenExp)||{},whensExpFns={},startSymbol=$interpolate.startSymbol(),endSymbol=$interpolate.endSymbol(),braceReplacement=startSymbol+numberExp+"-"+offset+endSymbol,watchRemover=angular.noop;forEach(attr,function(expression,attributeName){var tmpMatch=IS_WHEN.exec(attributeName);if(tmpMatch){var whenKey=(tmpMatch[1]?"-":"")+lowercase(tmpMatch[2]);whens[whenKey]=element.attr(attr.$attr[attributeName])}}),forEach(whens,function(expression,key){whensExpFns[key]=$interpolate(expression.replace(BRACE,braceReplacement))}),scope.$watch(numberExp,function(newVal){var count=parseFloat(newVal),countIsNaN=isNaN(count);countIsNaN||count in whens||(count=$locale.pluralCat(count-offset)),count===lastCount||countIsNaN&&isNaN(lastCount)||(watchRemover(),watchRemover=scope.$watch(whensExpFns[count],updateElementText),lastCount=count)})}}}],ngRepeatDirective=["$parse","$animate",function($parse,$animate){var NG_REMOVED="$$NG_REMOVED",ngRepeatMinErr=minErr("ngRepeat"),updateScope=function(scope,index,valueIdentifier,value,keyIdentifier,key,arrayLength){scope[valueIdentifier]=value,keyIdentifier&&(scope[keyIdentifier]=key),scope.$index=index,scope.$first=0===index,scope.$last=index===arrayLength-1,scope.$middle=!(scope.$first||scope.$last),scope.$odd=!(scope.$even=0===(1&index))},getBlockStart=function(block){return block.clone[0]},getBlockEnd=function(block){return block.clone[block.clone.length-1]};return{restrict:"A",multiElement:!0,transclude:"element",priority:1e3,terminal:!0,$$tlb:!0,compile:function($element,$attr){var expression=$attr.ngRepeat,ngRepeatEndComment=document.createComment(" end ngRepeat: "+expression+" "),match=expression.match(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+track\s+by\s+([\s\S]+?))?\s*$/);if(!match)throw ngRepeatMinErr("iexp","Expected expression in form of '_item_ in _collection_[ track by _id_]' but got '{0}'.",expression);var lhs=match[1],rhs=match[2],aliasAs=match[3],trackByExp=match[4];if(match=lhs.match(/^(?:(\s*[\$\w]+)|\(\s*([\$\w]+)\s*,\s*([\$\w]+)\s*\))$/),!match)throw ngRepeatMinErr("iidexp","'_item_' in '_item_ in _collection_' should be an identifier or '(_key_, _value_)' expression, but got '{0}'.",lhs);var valueIdentifier=match[3]||match[1],keyIdentifier=match[2];if(aliasAs&&(!/^[$a-zA-Z_][$a-zA-Z0-9_]*$/.test(aliasAs)||/^(null|undefined|this|\$index|\$first|\$middle|\$last|\$even|\$odd|\$parent|\$root|\$id)$/.test(aliasAs)))throw ngRepeatMinErr("badident","alias '{0}' is invalid --- must be a valid JS identifier which is not a reserved name.",aliasAs);var trackByExpGetter,trackByIdExpFn,trackByIdArrayFn,trackByIdObjFn,hashFnLocals={$id:hashKey};return trackByExp?trackByExpGetter=$parse(trackByExp):(trackByIdArrayFn=function(key,value){return hashKey(value)},trackByIdObjFn=function(key){return key}),function($scope,$element,$attr,ctrl,$transclude){trackByExpGetter&&(trackByIdExpFn=function(key,value,index){return keyIdentifier&&(hashFnLocals[keyIdentifier]=key),hashFnLocals[valueIdentifier]=value,hashFnLocals.$index=index,trackByExpGetter($scope,hashFnLocals)});var lastBlockMap=createMap();$scope.$watchCollection(rhs,function(collection){var index,length,nextNode,collectionLength,key,value,trackById,trackByIdFn,collectionKeys,block,nextBlockOrder,elementsToRemove,previousNode=$element[0],nextBlockMap=createMap();if(aliasAs&&($scope[aliasAs]=collection),isArrayLike(collection))collectionKeys=collection,trackByIdFn=trackByIdExpFn||trackByIdArrayFn;else{trackByIdFn=trackByIdExpFn||trackByIdObjFn,collectionKeys=[];for(var itemKey in collection)collection.hasOwnProperty(itemKey)&&"$"!=itemKey.charAt(0)&&collectionKeys.push(itemKey);collectionKeys.sort()}for(collectionLength=collectionKeys.length,nextBlockOrder=new Array(collectionLength),index=0;collectionLength>index;index++)if(key=collection===collectionKeys?index:collectionKeys[index],value=collection[key],trackById=trackByIdFn(key,value,index),lastBlockMap[trackById])block=lastBlockMap[trackById],delete lastBlockMap[trackById],nextBlockMap[trackById]=block,nextBlockOrder[index]=block;else{if(nextBlockMap[trackById])throw forEach(nextBlockOrder,function(block){block&&block.scope&&(lastBlockMap[block.id]=block)}),ngRepeatMinErr("dupes","Duplicates in a repeater are not allowed. Use 'track by' expression to specify unique keys. Repeater: {0}, Duplicate key: {1}, Duplicate value: {2}",expression,trackById,value);nextBlockOrder[index]={id:trackById,scope:undefined,clone:undefined},nextBlockMap[trackById]=!0}for(var blockKey in lastBlockMap){if(block=lastBlockMap[blockKey],elementsToRemove=getBlockNodes(block.clone),$animate.leave(elementsToRemove),elementsToRemove[0].parentNode)for(index=0,length=elementsToRemove.length;length>index;index++)elementsToRemove[index][NG_REMOVED]=!0;block.scope.$destroy()}for(index=0;collectionLength>index;index++)if(key=collection===collectionKeys?index:collectionKeys[index],value=collection[key],block=nextBlockOrder[index],block.scope){nextNode=previousNode;do nextNode=nextNode.nextSibling;while(nextNode&&nextNode[NG_REMOVED]);getBlockStart(block)!=nextNode&&$animate.move(getBlockNodes(block.clone),null,jqLite(previousNode)),previousNode=getBlockEnd(block),updateScope(block.scope,index,valueIdentifier,value,keyIdentifier,key,collectionLength)}else $transclude(function(clone,scope){block.scope=scope;var endNode=ngRepeatEndComment.cloneNode(!1);clone[clone.length++]=endNode,$animate.enter(clone,null,jqLite(previousNode)),previousNode=endNode,block.clone=clone,nextBlockMap[block.id]=block,updateScope(block.scope,index,valueIdentifier,value,keyIdentifier,key,collectionLength)});lastBlockMap=nextBlockMap})}}}}],NG_HIDE_CLASS="ng-hide",NG_HIDE_IN_PROGRESS_CLASS="ng-hide-animate",ngShowDirective=["$animate",function($animate){return{restrict:"A",multiElement:!0,link:function(scope,element,attr){scope.$watch(attr.ngShow,function(value){$animate[value?"removeClass":"addClass"](element,NG_HIDE_CLASS,{tempClasses:NG_HIDE_IN_PROGRESS_CLASS})})}}}],ngHideDirective=["$animate",function($animate){return{restrict:"A",multiElement:!0,link:function(scope,element,attr){scope.$watch(attr.ngHide,function(value){$animate[value?"addClass":"removeClass"](element,NG_HIDE_CLASS,{tempClasses:NG_HIDE_IN_PROGRESS_CLASS})})}}}],ngStyleDirective=ngDirective(function(scope,element,attr){scope.$watch(attr.ngStyle,function(newStyles,oldStyles){oldStyles&&newStyles!==oldStyles&&forEach(oldStyles,function(val,style){element.css(style,"")}),newStyles&&element.css(newStyles)},!0)}),ngSwitchDirective=["$animate",function($animate){return{restrict:"EA",require:"ngSwitch",controller:["$scope",function(){this.cases={}}],link:function(scope,element,attr,ngSwitchController){var watchExpr=attr.ngSwitch||attr.on,selectedTranscludes=[],selectedElements=[],previousLeaveAnimations=[],selectedScopes=[],spliceFactory=function(array,index){return function(){array.splice(index,1)}};scope.$watch(watchExpr,function(value){var i,ii;for(i=0,ii=previousLeaveAnimations.length;ii>i;++i)$animate.cancel(previousLeaveAnimations[i]);for(previousLeaveAnimations.length=0,i=0,ii=selectedScopes.length;ii>i;++i){var selected=getBlockNodes(selectedElements[i].clone);selectedScopes[i].$destroy();var promise=previousLeaveAnimations[i]=$animate.leave(selected);promise.then(spliceFactory(previousLeaveAnimations,i))}selectedElements.length=0,selectedScopes.length=0,(selectedTranscludes=ngSwitchController.cases["!"+value]||ngSwitchController.cases["?"])&&forEach(selectedTranscludes,function(selectedTransclude){selectedTransclude.transclude(function(caseElement,selectedScope){selectedScopes.push(selectedScope);var anchor=selectedTransclude.element;caseElement[caseElement.length++]=document.createComment(" end ngSwitchWhen: ");var block={clone:caseElement};selectedElements.push(block),$animate.enter(caseElement,anchor.parent(),anchor)})})})}}}],ngSwitchWhenDirective=ngDirective({transclude:"element",priority:1200,require:"^ngSwitch",multiElement:!0,link:function(scope,element,attrs,ctrl,$transclude){ctrl.cases["!"+attrs.ngSwitchWhen]=ctrl.cases["!"+attrs.ngSwitchWhen]||[],ctrl.cases["!"+attrs.ngSwitchWhen].push({transclude:$transclude,element:element})}}),ngSwitchDefaultDirective=ngDirective({transclude:"element",priority:1200,require:"^ngSwitch",multiElement:!0,link:function(scope,element,attr,ctrl,$transclude){ctrl.cases["?"]=ctrl.cases["?"]||[],ctrl.cases["?"].push({transclude:$transclude,element:element})}}),ngTranscludeDirective=ngDirective({restrict:"EAC",link:function($scope,$element,$attrs,controller,$transclude){
  if(!$transclude)throw minErr("ngTransclude")("orphan","Illegal use of ngTransclude directive in the template! No parent directive that requires a transclusion found. Element: {0}",startingTag($element));$transclude(function(clone){$element.empty(),$element.append(clone)})}}),scriptDirective=["$templateCache",function($templateCache){return{restrict:"E",terminal:!0,compile:function(element,attr){if("text/ng-template"==attr.type){var templateUrl=attr.id,text=element[0].text;$templateCache.put(templateUrl,text)}}}}],ngOptionsMinErr=minErr("ngOptions"),ngOptionsDirective=valueFn({restrict:"A",terminal:!0}),selectDirective=["$compile","$parse",function($compile,$parse){var NG_OPTIONS_REGEXP=/^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+group\s+by\s+([\s\S]+?))?\s+for\s+(?:([\$\w][\$\w]*)|(?:\(\s*([\$\w][\$\w]*)\s*,\s*([\$\w][\$\w]*)\s*\)))\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?$/,nullModelCtrl={$setViewValue:noop};return{restrict:"E",require:["select","?ngModel"],controller:["$element","$scope","$attrs",function($element,$scope,$attrs){var nullOption,unknownOption,self=this,optionsMap={},ngModelCtrl=nullModelCtrl;self.databound=$attrs.ngModel,self.init=function(ngModelCtrl_,nullOption_,unknownOption_){ngModelCtrl=ngModelCtrl_,nullOption=nullOption_,unknownOption=unknownOption_},self.addOption=function(value,element){assertNotHasOwnProperty(value,'"option value"'),optionsMap[value]=!0,ngModelCtrl.$viewValue==value&&($element.val(value),unknownOption.parent()&&unknownOption.remove()),element&&element[0].hasAttribute("selected")&&(element[0].selected=!0)},self.removeOption=function(value){this.hasOption(value)&&(delete optionsMap[value],ngModelCtrl.$viewValue===value&&this.renderUnknownOption(value))},self.renderUnknownOption=function(val){var unknownVal="? "+hashKey(val)+" ?";unknownOption.val(unknownVal),$element.prepend(unknownOption),$element.val(unknownVal),unknownOption.prop("selected",!0)},self.hasOption=function(value){return optionsMap.hasOwnProperty(value)},$scope.$on("$destroy",function(){self.renderUnknownOption=noop})}],link:function(scope,element,attr,ctrls){function setupAsSingle(scope,selectElement,ngModelCtrl,selectCtrl){ngModelCtrl.$render=function(){var viewValue=ngModelCtrl.$viewValue;selectCtrl.hasOption(viewValue)?(unknownOption.parent()&&unknownOption.remove(),selectElement.val(viewValue),""===viewValue&&emptyOption.prop("selected",!0)):null==viewValue&&emptyOption?selectElement.val(""):selectCtrl.renderUnknownOption(viewValue)},selectElement.on("change",function(){scope.$apply(function(){unknownOption.parent()&&unknownOption.remove(),ngModelCtrl.$setViewValue(selectElement.val())})})}function setupAsMultiple(scope,selectElement,ctrl){var lastView;ctrl.$render=function(){var items=new HashMap(ctrl.$viewValue);forEach(selectElement.find("option"),function(option){option.selected=isDefined(items.get(option.value))})},scope.$watch(function(){equals(lastView,ctrl.$viewValue)||(lastView=shallowCopy(ctrl.$viewValue),ctrl.$render())}),selectElement.on("change",function(){scope.$apply(function(){var array=[];forEach(selectElement.find("option"),function(option){option.selected&&array.push(option.value)}),ctrl.$setViewValue(array)})})}function setupAsOptions(scope,selectElement,ctrl){function callExpression(exprFn,key,value){return locals[valueName]=value,keyName&&(locals[keyName]=key),exprFn(scope,locals)}function selectionChanged(){scope.$apply(function(){var viewValue,collection=valuesFn(scope)||[];if(multiple)viewValue=[],forEach(selectElement.val(),function(selectedKey){selectedKey=trackFn?trackKeysCache[selectedKey]:selectedKey,viewValue.push(getViewValue(selectedKey,collection[selectedKey]))});else{var selectedKey=trackFn?trackKeysCache[selectElement.val()]:selectElement.val();viewValue=getViewValue(selectedKey,collection[selectedKey])}ctrl.$setViewValue(viewValue),render()})}function getViewValue(key,value){if("?"===key)return undefined;if(""===key)return null;var viewValueFn=selectAsFn?selectAsFn:valueFn;return callExpression(viewValueFn,key,value)}function getLabels(){var toDisplay,values=valuesFn(scope);if(values&&isArray(values)){toDisplay=new Array(values.length);for(var i=0,ii=values.length;ii>i;i++)toDisplay[i]=callExpression(displayFn,i,values[i]);return toDisplay}if(values){toDisplay={};for(var prop in values)values.hasOwnProperty(prop)&&(toDisplay[prop]=callExpression(displayFn,prop,values[prop]))}return toDisplay}function createIsSelectedFn(viewValue){var selectedSet;if(multiple)if(trackFn&&isArray(viewValue)){selectedSet=new HashMap([]);for(var trackIndex=0;trackIndex<viewValue.length;trackIndex++)selectedSet.put(callExpression(trackFn,null,viewValue[trackIndex]),!0)}else selectedSet=new HashMap(viewValue);else trackFn&&(viewValue=callExpression(trackFn,null,viewValue));return function(key,value){var compareValueFn;return compareValueFn=trackFn?trackFn:selectAsFn?selectAsFn:valueFn,multiple?isDefined(selectedSet.remove(callExpression(compareValueFn,key,value))):viewValue===callExpression(compareValueFn,key,value)}}function scheduleRendering(){renderScheduled||(scope.$$postDigest(render),renderScheduled=!0)}function updateLabelMap(labelMap,label,added){labelMap[label]=labelMap[label]||0,labelMap[label]+=added?1:-1}function render(){renderScheduled=!1;var optionGroupName,optionGroup,option,existingParent,existingOptions,existingOption,key,value,groupLength,length,groupIndex,index,selected,lastElement,element,label,optionId,optionGroups={"":[]},optionGroupNames=[""],viewValue=ctrl.$viewValue,values=valuesFn(scope)||[],keys=keyName?sortedKeys(values):values,labelMap={},isSelected=createIsSelectedFn(viewValue),anySelected=!1;for(trackKeysCache={},index=0;length=keys.length,length>index;index++)key=index,keyName&&(key=keys[index],"$"===key.charAt(0))||(value=values[key],optionGroupName=callExpression(groupByFn,key,value)||"",(optionGroup=optionGroups[optionGroupName])||(optionGroup=optionGroups[optionGroupName]=[],optionGroupNames.push(optionGroupName)),selected=isSelected(key,value),anySelected=anySelected||selected,label=callExpression(displayFn,key,value),label=isDefined(label)?label:"",optionId=trackFn?trackFn(scope,locals):keyName?keys[index]:index,trackFn&&(trackKeysCache[optionId]=key),optionGroup.push({id:optionId,label:label,selected:selected}));for(multiple||(nullOption||null===viewValue?optionGroups[""].unshift({id:"",label:"",selected:!anySelected}):anySelected||optionGroups[""].unshift({id:"?",label:"",selected:!0})),groupIndex=0,groupLength=optionGroupNames.length;groupLength>groupIndex;groupIndex++){for(optionGroupName=optionGroupNames[groupIndex],optionGroup=optionGroups[optionGroupName],optionGroupsCache.length<=groupIndex?(existingParent={element:optGroupTemplate.clone().attr("label",optionGroupName),label:optionGroup.label},existingOptions=[existingParent],optionGroupsCache.push(existingOptions),selectElement.append(existingParent.element)):(existingOptions=optionGroupsCache[groupIndex],existingParent=existingOptions[0],existingParent.label!=optionGroupName&&existingParent.element.attr("label",existingParent.label=optionGroupName)),lastElement=null,index=0,length=optionGroup.length;length>index;index++)option=optionGroup[index],(existingOption=existingOptions[index+1])?(lastElement=existingOption.element,existingOption.label!==option.label&&(updateLabelMap(labelMap,existingOption.label,!1),updateLabelMap(labelMap,option.label,!0),lastElement.text(existingOption.label=option.label),lastElement.prop("label",existingOption.label)),existingOption.id!==option.id&&lastElement.val(existingOption.id=option.id),lastElement[0].selected!==option.selected&&(lastElement.prop("selected",existingOption.selected=option.selected),msie&&lastElement.prop("selected",existingOption.selected))):(""===option.id&&nullOption?element=nullOption:(element=optionTemplate.clone()).val(option.id).prop("selected",option.selected).attr("selected",option.selected).prop("label",option.label).text(option.label),existingOptions.push(existingOption={element:element,label:option.label,id:option.id,selected:option.selected}),updateLabelMap(labelMap,option.label,!0),lastElement?lastElement.after(element):existingParent.element.append(element),lastElement=element);for(index++;existingOptions.length>index;)option=existingOptions.pop(),updateLabelMap(labelMap,option.label,!1),option.element.remove()}for(;optionGroupsCache.length>groupIndex;){for(optionGroup=optionGroupsCache.pop(),index=1;index<optionGroup.length;++index)updateLabelMap(labelMap,optionGroup[index].label,!1);optionGroup[0].element.remove()}forEach(labelMap,function(count,label){count>0?selectCtrl.addOption(label):0>count&&selectCtrl.removeOption(label)})}var match;if(!(match=optionsExp.match(NG_OPTIONS_REGEXP)))throw ngOptionsMinErr("iexp","Expected expression in form of '_select_ (as _label_)? for (_key_,)?_value_ in _collection_' but got '{0}'. Element: {1}",optionsExp,startingTag(selectElement));var displayFn=$parse(match[2]||match[1]),valueName=match[4]||match[6],selectAs=/ as /.test(match[0])&&match[1],selectAsFn=selectAs?$parse(selectAs):null,keyName=match[5],groupByFn=$parse(match[3]||""),valueFn=$parse(match[2]?match[1]:valueName),valuesFn=$parse(match[7]),track=match[8],trackFn=track?$parse(match[8]):null,trackKeysCache={},optionGroupsCache=[[{element:selectElement,label:""}]],locals={};nullOption&&($compile(nullOption)(scope),nullOption.removeClass("ng-scope"),nullOption.remove()),selectElement.empty(),selectElement.on("change",selectionChanged),ctrl.$render=render,scope.$watchCollection(valuesFn,scheduleRendering),scope.$watchCollection(getLabels,scheduleRendering),multiple&&scope.$watchCollection(function(){return ctrl.$modelValue},scheduleRendering)}if(ctrls[1]){for(var emptyOption,selectCtrl=ctrls[0],ngModelCtrl=ctrls[1],multiple=attr.multiple,optionsExp=attr.ngOptions,nullOption=!1,renderScheduled=!1,optionTemplate=jqLite(document.createElement("option")),optGroupTemplate=jqLite(document.createElement("optgroup")),unknownOption=optionTemplate.clone(),i=0,children=element.children(),ii=children.length;ii>i;i++)if(""===children[i].value){emptyOption=nullOption=children.eq(i);break}selectCtrl.init(ngModelCtrl,nullOption,unknownOption),multiple&&(ngModelCtrl.$isEmpty=function(value){return!value||0===value.length}),optionsExp?setupAsOptions(scope,element,ngModelCtrl):multiple?setupAsMultiple(scope,element,ngModelCtrl):setupAsSingle(scope,element,ngModelCtrl,selectCtrl)}}}}],optionDirective=["$interpolate",function($interpolate){var nullSelectCtrl={addOption:noop,removeOption:noop};return{restrict:"E",priority:100,compile:function(element,attr){if(isUndefined(attr.value)){var interpolateFn=$interpolate(element.text(),!0);interpolateFn||attr.$set("value",element.text())}return function(scope,element,attr){var selectCtrlName="$selectController",parent=element.parent(),selectCtrl=parent.data(selectCtrlName)||parent.parent().data(selectCtrlName);selectCtrl&&selectCtrl.databound||(selectCtrl=nullSelectCtrl),interpolateFn?scope.$watch(interpolateFn,function(newVal,oldVal){attr.$set("value",newVal),oldVal!==newVal&&selectCtrl.removeOption(oldVal),selectCtrl.addOption(newVal,element)}):selectCtrl.addOption(attr.value,element),element.on("$destroy",function(){selectCtrl.removeOption(attr.value)})}}}}],styleDirective=valueFn({restrict:"E",terminal:!1}),requiredDirective=function(){return{restrict:"A",require:"?ngModel",link:function(scope,elm,attr,ctrl){ctrl&&(attr.required=!0,ctrl.$validators.required=function(modelValue,viewValue){return!attr.required||!ctrl.$isEmpty(viewValue)},attr.$observe("required",function(){ctrl.$validate()}))}}},patternDirective=function(){return{restrict:"A",require:"?ngModel",link:function(scope,elm,attr,ctrl){if(ctrl){var regexp,patternExp=attr.ngPattern||attr.pattern;attr.$observe("pattern",function(regex){if(isString(regex)&&regex.length>0&&(regex=new RegExp("^"+regex+"$")),regex&&!regex.test)throw minErr("ngPattern")("noregexp","Expected {0} to be a RegExp but was {1}. Element: {2}",patternExp,regex,startingTag(elm));regexp=regex||undefined,ctrl.$validate()}),ctrl.$validators.pattern=function(value){return ctrl.$isEmpty(value)||isUndefined(regexp)||regexp.test(value)}}}}},maxlengthDirective=function(){return{restrict:"A",require:"?ngModel",link:function(scope,elm,attr,ctrl){if(ctrl){var maxlength=-1;attr.$observe("maxlength",function(value){var intVal=int(value);maxlength=isNaN(intVal)?-1:intVal,ctrl.$validate()}),ctrl.$validators.maxlength=function(modelValue,viewValue){return 0>maxlength||ctrl.$isEmpty(viewValue)||viewValue.length<=maxlength}}}}},minlengthDirective=function(){return{restrict:"A",require:"?ngModel",link:function(scope,elm,attr,ctrl){if(ctrl){var minlength=0;attr.$observe("minlength",function(value){minlength=int(value)||0,ctrl.$validate()}),ctrl.$validators.minlength=function(modelValue,viewValue){return ctrl.$isEmpty(viewValue)||viewValue.length>=minlength}}}}};return window.angular.bootstrap?void console.log("WARNING: Tried to load angular more than once."):(bindJQuery(),publishExternalAPI(angular),void jqLite(document).ready(function(){angularInit(document,bootstrap)}))}(window,document),!window.angular.$$csp()&&window.angular.element(document.head).prepend('<style type="text/css">@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide:not(.ng-hide-animate){display:none !important;}ng\\:form{display:block;}</style>'),angular.module("ui.bootstrap",["ui.bootstrap.tpls","ui.bootstrap.transition","ui.bootstrap.collapse","ui.bootstrap.accordion","ui.bootstrap.alert","ui.bootstrap.bindHtml","ui.bootstrap.buttons","ui.bootstrap.carousel","ui.bootstrap.dateparser","ui.bootstrap.position","ui.bootstrap.datepicker","ui.bootstrap.dropdown","ui.bootstrap.modal","ui.bootstrap.pagination","ui.bootstrap.tooltip","ui.bootstrap.popover","ui.bootstrap.progressbar","ui.bootstrap.rating","ui.bootstrap.tabs","ui.bootstrap.timepicker","ui.bootstrap.typeahead"]),angular.module("ui.bootstrap.tpls",["template/accordion/accordion-group.html","template/accordion/accordion.html","template/alert/alert.html","template/carousel/carousel.html","template/carousel/slide.html","template/datepicker/datepicker.html","template/datepicker/day.html","template/datepicker/month.html","template/datepicker/popup.html","template/datepicker/year.html","template/modal/backdrop.html","template/modal/window.html","template/pagination/pager.html","template/pagination/pagination.html","template/tooltip/tooltip-html-unsafe-popup.html","template/tooltip/tooltip-popup.html","template/popover/popover.html","template/progressbar/bar.html","template/progressbar/progress.html","template/progressbar/progressbar.html","template/rating/rating.html","template/tabs/tab.html","template/tabs/tabset.html","template/timepicker/timepicker.html","template/typeahead/typeahead-match.html","template/typeahead/typeahead-popup.html"]),angular.module("ui.bootstrap.transition",[]).factory("$transition",["$q","$timeout","$rootScope",function($q,$timeout,$rootScope){function findEndEventName(endEventNames){for(var name in endEventNames)if(void 0!==transElement.style[name])return endEventNames[name]}var $transition=function(element,trigger,options){options=options||{};var deferred=$q.defer(),endEventName=$transition[options.animation?"animationEndEventName":"transitionEndEventName"],transitionEndHandler=function(event){$rootScope.$apply(function(){element.unbind(endEventName,transitionEndHandler),deferred.resolve(element)})};return endEventName&&element.bind(endEventName,transitionEndHandler),$timeout(function(){angular.isString(trigger)?element.addClass(trigger):angular.isFunction(trigger)?trigger(element):angular.isObject(trigger)&&element.css(trigger),endEventName||deferred.resolve(element)}),deferred.promise.cancel=function(){endEventName&&element.unbind(endEventName,transitionEndHandler),deferred.reject("Transition cancelled")},deferred.promise},transElement=document.createElement("trans"),transitionEndEventNames={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd",transition:"transitionend"},animationEndEventNames={WebkitTransition:"webkitAnimationEnd",MozTransition:"animationend",OTransition:"oAnimationEnd",transition:"animationend"};return $transition.transitionEndEventName=findEndEventName(transitionEndEventNames),$transition.animationEndEventName=findEndEventName(animationEndEventNames),$transition}]),angular.module("ui.bootstrap.collapse",["ui.bootstrap.transition"]).directive("collapse",["$transition",function($transition){return{link:function(scope,element,attrs){function doTransition(change){function newTransitionDone(){currentTransition===newTransition&&(currentTransition=void 0)}var newTransition=$transition(element,change);return currentTransition&&currentTransition.cancel(),currentTransition=newTransition,newTransition.then(newTransitionDone,newTransitionDone),newTransition}function expand(){initialAnimSkip?(initialAnimSkip=!1,expandDone()):(element.removeClass("collapse").addClass("collapsing"),doTransition({height:element[0].scrollHeight+"px"}).then(expandDone))}function expandDone(){element.removeClass("collapsing"),element.addClass("collapse in"),element.css({height:"auto"})}function collapse(){if(initialAnimSkip)initialAnimSkip=!1,collapseDone(),element.css({height:0});else{element.css({height:element[0].scrollHeight+"px"});element[0].offsetWidth;element.removeClass("collapse in").addClass("collapsing"),doTransition({height:0}).then(collapseDone)}}function collapseDone(){element.removeClass("collapsing"),element.addClass("collapse")}var currentTransition,initialAnimSkip=!0;scope.$watch(attrs.collapse,function(shouldCollapse){shouldCollapse?collapse():expand()})}}}]),angular.module("ui.bootstrap.accordion",["ui.bootstrap.collapse"]).constant("accordionConfig",{closeOthers:!0}).controller("AccordionController",["$scope","$attrs","accordionConfig",function($scope,$attrs,accordionConfig){this.groups=[],this.closeOthers=function(openGroup){var closeOthers=angular.isDefined($attrs.closeOthers)?$scope.$eval($attrs.closeOthers):accordionConfig.closeOthers;closeOthers&&angular.forEach(this.groups,function(group){group!==openGroup&&(group.isOpen=!1)})},this.addGroup=function(groupScope){var that=this;this.groups.push(groupScope),groupScope.$on("$destroy",function(event){that.removeGroup(groupScope)})},this.removeGroup=function(group){var index=this.groups.indexOf(group);-1!==index&&this.groups.splice(index,1)}}]).directive("accordion",function(){return{restrict:"EA",controller:"AccordionController",transclude:!0,replace:!1,templateUrl:"template/accordion/accordion.html"}}).directive("accordionGroup",function(){return{require:"^accordion",restrict:"EA",transclude:!0,replace:!0,templateUrl:"template/accordion/accordion-group.html",scope:{heading:"@",isOpen:"=?",isDisabled:"=?"},controller:function(){this.setHeading=function(element){this.heading=element}},link:function(scope,element,attrs,accordionCtrl){accordionCtrl.addGroup(scope),scope.$watch("isOpen",function(value){value&&accordionCtrl.closeOthers(scope)}),scope.toggleOpen=function(){scope.isDisabled||(scope.isOpen=!scope.isOpen)}}}}).directive("accordionHeading",function(){return{restrict:"EA",transclude:!0,template:"",replace:!0,require:"^accordionGroup",link:function(scope,element,attr,accordionGroupCtrl,transclude){accordionGroupCtrl.setHeading(transclude(scope,function(){}))}}}).directive("accordionTransclude",function(){return{require:"^accordionGroup",link:function(scope,element,attr,controller){scope.$watch(function(){return controller[attr.accordionTransclude]},function(heading){heading&&(element.html(""),element.append(heading))})}}}),angular.module("ui.bootstrap.alert",[]).controller("AlertController",["$scope","$attrs",function($scope,$attrs){$scope.closeable="close"in $attrs}]).directive("alert",function(){return{restrict:"EA",controller:"AlertController",templateUrl:"template/alert/alert.html",transclude:!0,replace:!0,scope:{type:"@",close:"&"}}}),angular.module("ui.bootstrap.bindHtml",[]).directive("bindHtmlUnsafe",function(){return function(scope,element,attr){element.addClass("ng-binding").data("$binding",attr.bindHtmlUnsafe),scope.$watch(attr.bindHtmlUnsafe,function(value){element.html(value||"")})}}),angular.module("ui.bootstrap.buttons",[]).constant("buttonConfig",{activeClass:"active",toggleEvent:"click"}).controller("ButtonsController",["buttonConfig",function(buttonConfig){this.activeClass=buttonConfig.activeClass||"active",this.toggleEvent=buttonConfig.toggleEvent||"click"}]).directive("btnRadio",function(){return{require:["btnRadio","ngModel"],controller:"ButtonsController",link:function(scope,element,attrs,ctrls){var buttonsCtrl=ctrls[0],ngModelCtrl=ctrls[1];ngModelCtrl.$render=function(){element.toggleClass(buttonsCtrl.activeClass,angular.equals(ngModelCtrl.$modelValue,scope.$eval(attrs.btnRadio)))},element.bind(buttonsCtrl.toggleEvent,function(){var isActive=element.hasClass(buttonsCtrl.activeClass);(!isActive||angular.isDefined(attrs.uncheckable))&&scope.$apply(function(){ngModelCtrl.$setViewValue(isActive?null:scope.$eval(attrs.btnRadio)),ngModelCtrl.$render()})})}}}).directive("btnCheckbox",function(){return{require:["btnCheckbox","ngModel"],controller:"ButtonsController",link:function(scope,element,attrs,ctrls){function getTrueValue(){return getCheckboxValue(attrs.btnCheckboxTrue,!0)}function getFalseValue(){return getCheckboxValue(attrs.btnCheckboxFalse,!1)}function getCheckboxValue(attributeValue,defaultValue){var val=scope.$eval(attributeValue);return angular.isDefined(val)?val:defaultValue}var buttonsCtrl=ctrls[0],ngModelCtrl=ctrls[1];ngModelCtrl.$render=function(){element.toggleClass(buttonsCtrl.activeClass,angular.equals(ngModelCtrl.$modelValue,getTrueValue()))},element.bind(buttonsCtrl.toggleEvent,function(){scope.$apply(function(){ngModelCtrl.$setViewValue(element.hasClass(buttonsCtrl.activeClass)?getFalseValue():getTrueValue()),ngModelCtrl.$render()})})}}}),angular.module("ui.bootstrap.carousel",["ui.bootstrap.transition"]).controller("CarouselController",["$scope","$timeout","$transition",function($scope,$timeout,$transition){function restartTimer(){resetTimer();var interval=+$scope.interval;!isNaN(interval)&&interval>=0&&(currentTimeout=$timeout(timerFn,interval))}function resetTimer(){currentTimeout&&($timeout.cancel(currentTimeout),currentTimeout=null)}function timerFn(){isPlaying?($scope.next(),restartTimer()):$scope.pause()}var currentTimeout,isPlaying,self=this,slides=self.slides=$scope.slides=[],currentIndex=-1;self.currentSlide=null;var destroyed=!1;self.select=$scope.select=function(nextSlide,direction){function goNext(){if(!destroyed){if(self.currentSlide&&angular.isString(direction)&&!$scope.noTransition&&nextSlide.$element){nextSlide.$element.addClass(direction);nextSlide.$element[0].offsetWidth;angular.forEach(slides,function(slide){angular.extend(slide,{direction:"",entering:!1,leaving:!1,active:!1})}),angular.extend(nextSlide,{direction:direction,active:!0,entering:!0}),angular.extend(self.currentSlide||{},{direction:direction,leaving:!0}),$scope.$currentTransition=$transition(nextSlide.$element,{}),function(next,current){$scope.$currentTransition.then(function(){transitionDone(next,current)},function(){transitionDone(next,current)})}(nextSlide,self.currentSlide)}else transitionDone(nextSlide,self.currentSlide);self.currentSlide=nextSlide,currentIndex=nextIndex,restartTimer()}}function transitionDone(next,current){angular.extend(next,{direction:"",active:!0,leaving:!1,entering:!1}),angular.extend(current||{},{direction:"",active:!1,leaving:!1,entering:!1}),$scope.$currentTransition=null}var nextIndex=slides.indexOf(nextSlide);void 0===direction&&(direction=nextIndex>currentIndex?"next":"prev"),nextSlide&&nextSlide!==self.currentSlide&&($scope.$currentTransition?($scope.$currentTransition.cancel(),$timeout(goNext)):goNext())},$scope.$on("$destroy",function(){destroyed=!0}),self.indexOfSlide=function(slide){return slides.indexOf(slide)},$scope.next=function(){var newIndex=(currentIndex+1)%slides.length;return $scope.$currentTransition?void 0:self.select(slides[newIndex],"next")},$scope.prev=function(){var newIndex=0>currentIndex-1?slides.length-1:currentIndex-1;return $scope.$currentTransition?void 0:self.select(slides[newIndex],"prev")},$scope.isActive=function(slide){return self.currentSlide===slide},$scope.$watch("interval",restartTimer),$scope.$on("$destroy",resetTimer),$scope.play=function(){isPlaying||(isPlaying=!0,restartTimer())},$scope.pause=function(){$scope.noPause||(isPlaying=!1,resetTimer())},self.addSlide=function(slide,element){slide.$element=element,slides.push(slide),1===slides.length||slide.active?(self.select(slides[slides.length-1]),1==slides.length&&$scope.play()):slide.active=!1},self.removeSlide=function(slide){var index=slides.indexOf(slide);slides.splice(index,1),slides.length>0&&slide.active?index>=slides.length?self.select(slides[index-1]):self.select(slides[index]):currentIndex>index&&currentIndex--}}]).directive("carousel",[function(){return{restrict:"EA",transclude:!0,replace:!0,controller:"CarouselController",require:"carousel",templateUrl:"template/carousel/carousel.html",scope:{interval:"=",noTransition:"=",noPause:"="}}}]).directive("slide",function(){return{require:"^carousel",restrict:"EA",transclude:!0,replace:!0,templateUrl:"template/carousel/slide.html",scope:{active:"=?"},link:function(scope,element,attrs,carouselCtrl){carouselCtrl.addSlide(scope,element),scope.$on("$destroy",function(){carouselCtrl.removeSlide(scope)}),scope.$watch("active",function(active){active&&carouselCtrl.select(scope)})}}}),angular.module("ui.bootstrap.dateparser",[]).service("dateParser",["$locale","orderByFilter",function($locale,orderByFilter){function createParser(format){var map=[],regex=format.split("");return angular.forEach(formatCodeToRegex,function(data,code){var index=format.indexOf(code);if(index>-1){format=format.split(""),regex[index]="("+data.regex+")",format[index]="$";for(var i=index+1,n=index+code.length;n>i;i++)regex[i]="",format[i]="$";format=format.join(""),map.push({index:index,apply:data.apply})}}),{regex:new RegExp("^"+regex.join("")+"$"),map:orderByFilter(map,"index")}}function isValid(year,month,date){return 1===month&&date>28?29===date&&(year%4===0&&year%100!==0||year%400===0):3===month||5===month||8===month||10===month?31>date:!0}this.parsers={};var formatCodeToRegex={yyyy:{regex:"\\d{4}",apply:function(value){this.year=+value}},yy:{regex:"\\d{2}",apply:function(value){this.year=+value+2e3}},y:{regex:"\\d{1,4}",apply:function(value){this.year=+value}},MMMM:{regex:$locale.DATETIME_FORMATS.MONTH.join("|"),apply:function(value){this.month=$locale.DATETIME_FORMATS.MONTH.indexOf(value)}},MMM:{regex:$locale.DATETIME_FORMATS.SHORTMONTH.join("|"),apply:function(value){this.month=$locale.DATETIME_FORMATS.SHORTMONTH.indexOf(value)}},MM:{regex:"0[1-9]|1[0-2]",apply:function(value){this.month=value-1}},M:{regex:"[1-9]|1[0-2]",apply:function(value){this.month=value-1}},dd:{regex:"[0-2][0-9]{1}|3[0-1]{1}",apply:function(value){this.date=+value}},d:{regex:"[1-2]?[0-9]{1}|3[0-1]{1}",apply:function(value){this.date=+value}},EEEE:{regex:$locale.DATETIME_FORMATS.DAY.join("|")},EEE:{regex:$locale.DATETIME_FORMATS.SHORTDAY.join("|")}};this.parse=function(input,format){if(!angular.isString(input)||!format)return input;format=$locale.DATETIME_FORMATS[format]||format,this.parsers[format]||(this.parsers[format]=createParser(format));var parser=this.parsers[format],regex=parser.regex,map=parser.map,results=input.match(regex);if(results&&results.length){for(var dt,fields={year:1900,month:0,date:1,hours:0},i=1,n=results.length;n>i;i++){var mapper=map[i-1];mapper.apply&&mapper.apply.call(fields,results[i])}return isValid(fields.year,fields.month,fields.date)&&(dt=new Date(fields.year,fields.month,fields.date,fields.hours)),dt}}}]),angular.module("ui.bootstrap.position",[]).factory("$position",["$document","$window",function($document,$window){function getStyle(el,cssprop){return el.currentStyle?el.currentStyle[cssprop]:$window.getComputedStyle?$window.getComputedStyle(el)[cssprop]:el.style[cssprop]}function isStaticPositioned(element){return"static"===(getStyle(element,"position")||"static")}var parentOffsetEl=function(element){for(var docDomEl=$document[0],offsetParent=element.offsetParent||docDomEl;offsetParent&&offsetParent!==docDomEl&&isStaticPositioned(offsetParent);)offsetParent=offsetParent.offsetParent;return offsetParent||docDomEl};return{position:function(element){var elBCR=this.offset(element),offsetParentBCR={top:0,left:0},offsetParentEl=parentOffsetEl(element[0]);offsetParentEl!=$document[0]&&(offsetParentBCR=this.offset(angular.element(offsetParentEl)),offsetParentBCR.top+=offsetParentEl.clientTop-offsetParentEl.scrollTop,offsetParentBCR.left+=offsetParentEl.clientLeft-offsetParentEl.scrollLeft);var boundingClientRect=element[0].getBoundingClientRect();return{width:boundingClientRect.width||element.prop("offsetWidth"),height:boundingClientRect.height||element.prop("offsetHeight"),top:elBCR.top-offsetParentBCR.top,left:elBCR.left-offsetParentBCR.left}},offset:function(element){var boundingClientRect=element[0].getBoundingClientRect();return{width:boundingClientRect.width||element.prop("offsetWidth"),height:boundingClientRect.height||element.prop("offsetHeight"),top:boundingClientRect.top+($window.pageYOffset||$document[0].documentElement.scrollTop),left:boundingClientRect.left+($window.pageXOffset||$document[0].documentElement.scrollLeft)}},positionElements:function(hostEl,targetEl,positionStr,appendToBody){var hostElPos,targetElWidth,targetElHeight,targetElPos,positionStrParts=positionStr.split("-"),pos0=positionStrParts[0],pos1=positionStrParts[1]||"center";hostElPos=appendToBody?this.offset(hostEl):this.position(hostEl),targetElWidth=targetEl.prop("offsetWidth"),targetElHeight=targetEl.prop("offsetHeight");var shiftWidth={center:function(){return hostElPos.left+hostElPos.width/2-targetElWidth/2},left:function(){return hostElPos.left},right:function(){return hostElPos.left+hostElPos.width}},shiftHeight={center:function(){return hostElPos.top+hostElPos.height/2-targetElHeight/2},top:function(){return hostElPos.top},bottom:function(){return hostElPos.top+hostElPos.height}};switch(pos0){case"right":targetElPos={top:shiftHeight[pos1](),left:shiftWidth[pos0]()};break;case"left":targetElPos={top:shiftHeight[pos1](),left:hostElPos.left-targetElWidth};break;case"bottom":targetElPos={top:shiftHeight[pos0](),left:shiftWidth[pos1]()};break;default:targetElPos={top:hostElPos.top-targetElHeight,left:shiftWidth[pos1]()}}return targetElPos}}}]),angular.module("ui.bootstrap.datepicker",["ui.bootstrap.dateparser","ui.bootstrap.position"]).constant("datepickerConfig",{formatDay:"dd",formatMonth:"MMMM",formatYear:"yyyy",formatDayHeader:"EEE",formatDayTitle:"MMMM yyyy",formatMonthTitle:"yyyy",datepickerMode:"day",minMode:"day",maxMode:"year",showWeeks:!0,startingDay:0,yearRange:20,minDate:null,maxDate:null}).controller("DatepickerController",["$scope","$attrs","$parse","$interpolate","$timeout","$log","dateFilter","datepickerConfig",function($scope,$attrs,$parse,$interpolate,$timeout,$log,dateFilter,datepickerConfig){var self=this,ngModelCtrl={$setViewValue:angular.noop};this.modes=["day","month","year"],angular.forEach(["formatDay","formatMonth","formatYear","formatDayHeader","formatDayTitle","formatMonthTitle","minMode","maxMode","showWeeks","startingDay","yearRange"],function(key,index){self[key]=angular.isDefined($attrs[key])?8>index?$interpolate($attrs[key])($scope.$parent):$scope.$parent.$eval($attrs[key]):datepickerConfig[key]}),angular.forEach(["minDate","maxDate"],function(key){$attrs[key]?$scope.$parent.$watch($parse($attrs[key]),function(value){self[key]=value?new Date(value):null,self.refreshView()}):self[key]=datepickerConfig[key]?new Date(datepickerConfig[key]):null}),$scope.datepickerMode=$scope.datepickerMode||datepickerConfig.datepickerMode,
  $scope.uniqueId="datepicker-"+$scope.$id+"-"+Math.floor(1e4*Math.random()),this.activeDate=angular.isDefined($attrs.initDate)?$scope.$parent.$eval($attrs.initDate):new Date,$scope.isActive=function(dateObject){return 0===self.compare(dateObject.date,self.activeDate)?($scope.activeDateId=dateObject.uid,!0):!1},this.init=function(ngModelCtrl_){ngModelCtrl=ngModelCtrl_,ngModelCtrl.$render=function(){self.render()}},this.render=function(){if(ngModelCtrl.$modelValue){var date=new Date(ngModelCtrl.$modelValue),isValid=!isNaN(date);isValid?this.activeDate=date:$log.error('Datepicker directive: "ng-model" value must be a Date object, a number of milliseconds since 01.01.1970 or a string representing an RFC2822 or ISO 8601 date.'),ngModelCtrl.$setValidity("date",isValid)}this.refreshView()},this.refreshView=function(){if(this.element){this._refreshView();var date=ngModelCtrl.$modelValue?new Date(ngModelCtrl.$modelValue):null;ngModelCtrl.$setValidity("date-disabled",!date||this.element&&!this.isDisabled(date))}},this.createDateObject=function(date,format){var model=ngModelCtrl.$modelValue?new Date(ngModelCtrl.$modelValue):null;return{date:date,label:dateFilter(date,format),selected:model&&0===this.compare(date,model),disabled:this.isDisabled(date),current:0===this.compare(date,new Date)}},this.isDisabled=function(date){return this.minDate&&this.compare(date,this.minDate)<0||this.maxDate&&this.compare(date,this.maxDate)>0||$attrs.dateDisabled&&$scope.dateDisabled({date:date,mode:$scope.datepickerMode})},this.split=function(arr,size){for(var arrays=[];arr.length>0;)arrays.push(arr.splice(0,size));return arrays},$scope.select=function(date){if($scope.datepickerMode===self.minMode){var dt=ngModelCtrl.$modelValue?new Date(ngModelCtrl.$modelValue):new Date(0,0,0,0,0,0,0);dt.setFullYear(date.getFullYear(),date.getMonth(),date.getDate()),ngModelCtrl.$setViewValue(dt),ngModelCtrl.$render()}else self.activeDate=date,$scope.datepickerMode=self.modes[self.modes.indexOf($scope.datepickerMode)-1]},$scope.move=function(direction){var year=self.activeDate.getFullYear()+direction*(self.step.years||0),month=self.activeDate.getMonth()+direction*(self.step.months||0);self.activeDate.setFullYear(year,month,1),self.refreshView()},$scope.toggleMode=function(direction){direction=direction||1,$scope.datepickerMode===self.maxMode&&1===direction||$scope.datepickerMode===self.minMode&&-1===direction||($scope.datepickerMode=self.modes[self.modes.indexOf($scope.datepickerMode)+direction])},$scope.keys={13:"enter",32:"space",33:"pageup",34:"pagedown",35:"end",36:"home",37:"left",38:"up",39:"right",40:"down"};var focusElement=function(){$timeout(function(){self.element[0].focus()},0,!1)};$scope.$on("datepicker.focus",focusElement),$scope.keydown=function(evt){var key=$scope.keys[evt.which];if(key&&!evt.shiftKey&&!evt.altKey)if(evt.preventDefault(),evt.stopPropagation(),"enter"===key||"space"===key){if(self.isDisabled(self.activeDate))return;$scope.select(self.activeDate),focusElement()}else!evt.ctrlKey||"up"!==key&&"down"!==key?(self.handleKeyDown(key,evt),self.refreshView()):($scope.toggleMode("up"===key?1:-1),focusElement())}}]).directive("datepicker",function(){return{restrict:"EA",replace:!0,templateUrl:"template/datepicker/datepicker.html",scope:{datepickerMode:"=?",dateDisabled:"&"},require:["datepicker","?^ngModel"],controller:"DatepickerController",link:function(scope,element,attrs,ctrls){var datepickerCtrl=ctrls[0],ngModelCtrl=ctrls[1];ngModelCtrl&&datepickerCtrl.init(ngModelCtrl)}}}).directive("daypicker",["dateFilter",function(dateFilter){return{restrict:"EA",replace:!0,templateUrl:"template/datepicker/day.html",require:"^datepicker",link:function(scope,element,attrs,ctrl){function getDaysInMonth(year,month){return 1!==month||year%4!==0||year%100===0&&year%400!==0?DAYS_IN_MONTH[month]:29}function getDates(startDate,n){var dates=new Array(n),current=new Date(startDate),i=0;for(current.setHours(12);n>i;)dates[i++]=new Date(current),current.setDate(current.getDate()+1);return dates}function getISO8601WeekNumber(date){var checkDate=new Date(date);checkDate.setDate(checkDate.getDate()+4-(checkDate.getDay()||7));var time=checkDate.getTime();return checkDate.setMonth(0),checkDate.setDate(1),Math.floor(Math.round((time-checkDate)/864e5)/7)+1}scope.showWeeks=ctrl.showWeeks,ctrl.step={months:1},ctrl.element=element;var DAYS_IN_MONTH=[31,28,31,30,31,30,31,31,30,31,30,31];ctrl._refreshView=function(){var year=ctrl.activeDate.getFullYear(),month=ctrl.activeDate.getMonth(),firstDayOfMonth=new Date(year,month,1),difference=ctrl.startingDay-firstDayOfMonth.getDay(),numDisplayedFromPreviousMonth=difference>0?7-difference:-difference,firstDate=new Date(firstDayOfMonth);numDisplayedFromPreviousMonth>0&&firstDate.setDate(-numDisplayedFromPreviousMonth+1);for(var days=getDates(firstDate,42),i=0;42>i;i++)days[i]=angular.extend(ctrl.createDateObject(days[i],ctrl.formatDay),{secondary:days[i].getMonth()!==month,uid:scope.uniqueId+"-"+i});scope.labels=new Array(7);for(var j=0;7>j;j++)scope.labels[j]={abbr:dateFilter(days[j].date,ctrl.formatDayHeader),full:dateFilter(days[j].date,"EEEE")};if(scope.title=dateFilter(ctrl.activeDate,ctrl.formatDayTitle),scope.rows=ctrl.split(days,7),scope.showWeeks){scope.weekNumbers=[];for(var weekNumber=getISO8601WeekNumber(scope.rows[0][0].date),numWeeks=scope.rows.length;scope.weekNumbers.push(weekNumber++)<numWeeks;);}},ctrl.compare=function(date1,date2){return new Date(date1.getFullYear(),date1.getMonth(),date1.getDate())-new Date(date2.getFullYear(),date2.getMonth(),date2.getDate())},ctrl.handleKeyDown=function(key,evt){var date=ctrl.activeDate.getDate();if("left"===key)date-=1;else if("up"===key)date-=7;else if("right"===key)date+=1;else if("down"===key)date+=7;else if("pageup"===key||"pagedown"===key){var month=ctrl.activeDate.getMonth()+("pageup"===key?-1:1);ctrl.activeDate.setMonth(month,1),date=Math.min(getDaysInMonth(ctrl.activeDate.getFullYear(),ctrl.activeDate.getMonth()),date)}else"home"===key?date=1:"end"===key&&(date=getDaysInMonth(ctrl.activeDate.getFullYear(),ctrl.activeDate.getMonth()));ctrl.activeDate.setDate(date)},ctrl.refreshView()}}}]).directive("monthpicker",["dateFilter",function(dateFilter){return{restrict:"EA",replace:!0,templateUrl:"template/datepicker/month.html",require:"^datepicker",link:function(scope,element,attrs,ctrl){ctrl.step={years:1},ctrl.element=element,ctrl._refreshView=function(){for(var months=new Array(12),year=ctrl.activeDate.getFullYear(),i=0;12>i;i++)months[i]=angular.extend(ctrl.createDateObject(new Date(year,i,1),ctrl.formatMonth),{uid:scope.uniqueId+"-"+i});scope.title=dateFilter(ctrl.activeDate,ctrl.formatMonthTitle),scope.rows=ctrl.split(months,3)},ctrl.compare=function(date1,date2){return new Date(date1.getFullYear(),date1.getMonth())-new Date(date2.getFullYear(),date2.getMonth())},ctrl.handleKeyDown=function(key,evt){var date=ctrl.activeDate.getMonth();if("left"===key)date-=1;else if("up"===key)date-=3;else if("right"===key)date+=1;else if("down"===key)date+=3;else if("pageup"===key||"pagedown"===key){var year=ctrl.activeDate.getFullYear()+("pageup"===key?-1:1);ctrl.activeDate.setFullYear(year)}else"home"===key?date=0:"end"===key&&(date=11);ctrl.activeDate.setMonth(date)},ctrl.refreshView()}}}]).directive("yearpicker",["dateFilter",function(dateFilter){return{restrict:"EA",replace:!0,templateUrl:"template/datepicker/year.html",require:"^datepicker",link:function(scope,element,attrs,ctrl){function getStartingYear(year){return parseInt((year-1)/range,10)*range+1}var range=ctrl.yearRange;ctrl.step={years:range},ctrl.element=element,ctrl._refreshView=function(){for(var years=new Array(range),i=0,start=getStartingYear(ctrl.activeDate.getFullYear());range>i;i++)years[i]=angular.extend(ctrl.createDateObject(new Date(start+i,0,1),ctrl.formatYear),{uid:scope.uniqueId+"-"+i});scope.title=[years[0].label,years[range-1].label].join(" - "),scope.rows=ctrl.split(years,5)},ctrl.compare=function(date1,date2){return date1.getFullYear()-date2.getFullYear()},ctrl.handleKeyDown=function(key,evt){var date=ctrl.activeDate.getFullYear();"left"===key?date-=1:"up"===key?date-=5:"right"===key?date+=1:"down"===key?date+=5:"pageup"===key||"pagedown"===key?date+=("pageup"===key?-1:1)*ctrl.step.years:"home"===key?date=getStartingYear(ctrl.activeDate.getFullYear()):"end"===key&&(date=getStartingYear(ctrl.activeDate.getFullYear())+range-1),ctrl.activeDate.setFullYear(date)},ctrl.refreshView()}}}]).constant("datepickerPopupConfig",{datepickerPopup:"yyyy-MM-dd",currentText:"Today",clearText:"Clear",closeText:"Done",closeOnDateSelection:!0,appendToBody:!1,showButtonBar:!0}).directive("datepickerPopup",["$compile","$parse","$document","$position","dateFilter","dateParser","datepickerPopupConfig",function($compile,$parse,$document,$position,dateFilter,dateParser,datepickerPopupConfig){return{restrict:"EA",require:"ngModel",scope:{isOpen:"=?",currentText:"@",clearText:"@",closeText:"@",dateDisabled:"&"},link:function(scope,element,attrs,ngModel){function cameltoDash(string){return string.replace(/([A-Z])/g,function($1){return"-"+$1.toLowerCase()})}function parseDate(viewValue){if(viewValue){if(angular.isDate(viewValue)&&!isNaN(viewValue))return ngModel.$setValidity("date",!0),viewValue;if(angular.isString(viewValue)){var date=dateParser.parse(viewValue,dateFormat)||new Date(viewValue);return isNaN(date)?void ngModel.$setValidity("date",!1):(ngModel.$setValidity("date",!0),date)}return void ngModel.$setValidity("date",!1)}return ngModel.$setValidity("date",!0),null}var dateFormat,closeOnDateSelection=angular.isDefined(attrs.closeOnDateSelection)?scope.$parent.$eval(attrs.closeOnDateSelection):datepickerPopupConfig.closeOnDateSelection,appendToBody=angular.isDefined(attrs.datepickerAppendToBody)?scope.$parent.$eval(attrs.datepickerAppendToBody):datepickerPopupConfig.appendToBody;scope.showButtonBar=angular.isDefined(attrs.showButtonBar)?scope.$parent.$eval(attrs.showButtonBar):datepickerPopupConfig.showButtonBar,scope.getText=function(key){return scope[key+"Text"]||datepickerPopupConfig[key+"Text"]},attrs.$observe("datepickerPopup",function(value){dateFormat=value||datepickerPopupConfig.datepickerPopup,ngModel.$render()});var popupEl=angular.element("<div datepicker-popup-wrap><div datepicker></div></div>");popupEl.attr({"ng-model":"date","ng-change":"dateSelection()"});var datepickerEl=angular.element(popupEl.children()[0]);attrs.datepickerOptions&&angular.forEach(scope.$parent.$eval(attrs.datepickerOptions),function(value,option){datepickerEl.attr(cameltoDash(option),value)}),scope.watchData={},angular.forEach(["minDate","maxDate","datepickerMode"],function(key){if(attrs[key]){var getAttribute=$parse(attrs[key]);if(scope.$parent.$watch(getAttribute,function(value){scope.watchData[key]=value}),datepickerEl.attr(cameltoDash(key),"watchData."+key),"datepickerMode"===key){var setAttribute=getAttribute.assign;scope.$watch("watchData."+key,function(value,oldvalue){value!==oldvalue&&setAttribute(scope.$parent,value)})}}}),attrs.dateDisabled&&datepickerEl.attr("date-disabled","dateDisabled({ date: date, mode: mode })"),ngModel.$parsers.unshift(parseDate),scope.dateSelection=function(dt){angular.isDefined(dt)&&(scope.date=dt),ngModel.$setViewValue(scope.date),ngModel.$render(),closeOnDateSelection&&(scope.isOpen=!1,element[0].focus())},element.bind("input change keyup",function(){scope.$apply(function(){scope.date=ngModel.$modelValue})}),ngModel.$render=function(){var date=ngModel.$viewValue?dateFilter(ngModel.$viewValue,dateFormat):"";element.val(date),scope.date=parseDate(ngModel.$modelValue)};var documentClickBind=function(event){scope.isOpen&&event.target!==element[0]&&scope.$apply(function(){scope.isOpen=!1})},keydown=function(evt,noApply){scope.keydown(evt)};element.bind("keydown",keydown),scope.keydown=function(evt){27===evt.which?(evt.preventDefault(),evt.stopPropagation(),scope.close()):40!==evt.which||scope.isOpen||(scope.isOpen=!0)},scope.$watch("isOpen",function(value){value?(scope.$broadcast("datepicker.focus"),scope.position=appendToBody?$position.offset(element):$position.position(element),scope.position.top=scope.position.top+element.prop("offsetHeight"),$document.bind("click",documentClickBind)):$document.unbind("click",documentClickBind)}),scope.select=function(date){if("today"===date){var today=new Date;angular.isDate(ngModel.$modelValue)?(date=new Date(ngModel.$modelValue),date.setFullYear(today.getFullYear(),today.getMonth(),today.getDate())):date=new Date(today.setHours(0,0,0,0))}scope.dateSelection(date)},scope.close=function(){scope.isOpen=!1,element[0].focus()};var $popup=$compile(popupEl)(scope);popupEl.remove(),appendToBody?$document.find("body").append($popup):element.after($popup),scope.$on("$destroy",function(){$popup.remove(),element.unbind("keydown",keydown),$document.unbind("click",documentClickBind)})}}}]).directive("datepickerPopupWrap",function(){return{restrict:"EA",replace:!0,transclude:!0,templateUrl:"template/datepicker/popup.html",link:function(scope,element,attrs){element.bind("click",function(event){event.preventDefault(),event.stopPropagation()})}}}),angular.module("ui.bootstrap.dropdown",[]).constant("dropdownConfig",{openClass:"open"}).service("dropdownService",["$document",function($document){var openScope=null;this.open=function(dropdownScope){openScope||($document.bind("click",closeDropdown),$document.bind("keydown",escapeKeyBind)),openScope&&openScope!==dropdownScope&&(openScope.isOpen=!1),openScope=dropdownScope},this.close=function(dropdownScope){openScope===dropdownScope&&(openScope=null,$document.unbind("click",closeDropdown),$document.unbind("keydown",escapeKeyBind))};var closeDropdown=function(evt){var toggleElement=openScope.getToggleElement();evt&&toggleElement&&toggleElement[0].contains(evt.target)||openScope.$apply(function(){openScope.isOpen=!1})},escapeKeyBind=function(evt){27===evt.which&&(openScope.focusToggleElement(),closeDropdown())}}]).controller("DropdownController",["$scope","$attrs","$parse","dropdownConfig","dropdownService","$animate",function($scope,$attrs,$parse,dropdownConfig,dropdownService,$animate){var getIsOpen,self=this,scope=$scope.$new(),openClass=dropdownConfig.openClass,setIsOpen=angular.noop,toggleInvoker=$attrs.onToggle?$parse($attrs.onToggle):angular.noop;this.init=function(element){self.$element=element,$attrs.isOpen&&(getIsOpen=$parse($attrs.isOpen),setIsOpen=getIsOpen.assign,$scope.$watch(getIsOpen,function(value){scope.isOpen=!!value}))},this.toggle=function(open){return scope.isOpen=arguments.length?!!open:!scope.isOpen},this.isOpen=function(){return scope.isOpen},scope.getToggleElement=function(){return self.toggleElement},scope.focusToggleElement=function(){self.toggleElement&&self.toggleElement[0].focus()},scope.$watch("isOpen",function(isOpen,wasOpen){$animate[isOpen?"addClass":"removeClass"](self.$element,openClass),isOpen?(scope.focusToggleElement(),dropdownService.open(scope)):dropdownService.close(scope),setIsOpen($scope,isOpen),angular.isDefined(isOpen)&&isOpen!==wasOpen&&toggleInvoker($scope,{open:!!isOpen})}),$scope.$on("$locationChangeSuccess",function(){scope.isOpen=!1}),$scope.$on("$destroy",function(){scope.$destroy()})}]).directive("dropdown",function(){return{restrict:"CA",controller:"DropdownController",link:function(scope,element,attrs,dropdownCtrl){dropdownCtrl.init(element)}}}).directive("dropdownToggle",function(){return{restrict:"CA",require:"?^dropdown",link:function(scope,element,attrs,dropdownCtrl){if(dropdownCtrl){dropdownCtrl.toggleElement=element;var toggleDropdown=function(event){event.preventDefault(),element.hasClass("disabled")||attrs.disabled||scope.$apply(function(){dropdownCtrl.toggle()})};element.bind("click",toggleDropdown),element.attr({"aria-haspopup":!0,"aria-expanded":!1}),scope.$watch(dropdownCtrl.isOpen,function(isOpen){element.attr("aria-expanded",!!isOpen)}),scope.$on("$destroy",function(){element.unbind("click",toggleDropdown)})}}}}),angular.module("ui.bootstrap.modal",["ui.bootstrap.transition"]).factory("$$stackedMap",function(){return{createNew:function(){var stack=[];return{add:function(key,value){stack.push({key:key,value:value})},get:function(key){for(var i=0;i<stack.length;i++)if(key==stack[i].key)return stack[i]},keys:function(){for(var keys=[],i=0;i<stack.length;i++)keys.push(stack[i].key);return keys},top:function(){return stack[stack.length-1]},remove:function(key){for(var idx=-1,i=0;i<stack.length;i++)if(key==stack[i].key){idx=i;break}return stack.splice(idx,1)[0]},removeTop:function(){return stack.splice(stack.length-1,1)[0]},length:function(){return stack.length}}}}}).directive("modalBackdrop",["$timeout",function($timeout){return{restrict:"EA",replace:!0,templateUrl:"template/modal/backdrop.html",link:function(scope,element,attrs){scope.backdropClass=attrs.backdropClass||"",scope.animate=!1,$timeout(function(){scope.animate=!0})}}}]).directive("modalWindow",["$modalStack","$timeout",function($modalStack,$timeout){return{restrict:"EA",scope:{index:"@",animate:"="},replace:!0,transclude:!0,templateUrl:function(tElement,tAttrs){return tAttrs.templateUrl||"template/modal/window.html"},link:function(scope,element,attrs){element.addClass(attrs.windowClass||""),scope.size=attrs.size,$timeout(function(){scope.animate=!0,element[0].querySelectorAll("[autofocus]").length||element[0].focus()}),scope.close=function(evt){var modal=$modalStack.getTop();modal&&modal.value.backdrop&&"static"!=modal.value.backdrop&&evt.target===evt.currentTarget&&(evt.preventDefault(),evt.stopPropagation(),$modalStack.dismiss(modal.key,"backdrop click"))}}}}]).directive("modalTransclude",function(){return{link:function($scope,$element,$attrs,controller,$transclude){$transclude($scope.$parent,function(clone){$element.empty(),$element.append(clone)})}}}).factory("$modalStack",["$transition","$timeout","$document","$compile","$rootScope","$$stackedMap",function($transition,$timeout,$document,$compile,$rootScope,$$stackedMap){function backdropIndex(){for(var topBackdropIndex=-1,opened=openedWindows.keys(),i=0;i<opened.length;i++)openedWindows.get(opened[i]).value.backdrop&&(topBackdropIndex=i);return topBackdropIndex}function removeModalWindow(modalInstance){var body=$document.find("body").eq(0),modalWindow=openedWindows.get(modalInstance).value;openedWindows.remove(modalInstance),removeAfterAnimate(modalWindow.modalDomEl,modalWindow.modalScope,300,function(){modalWindow.modalScope.$destroy(),body.toggleClass(OPENED_MODAL_CLASS,openedWindows.length()>0),checkRemoveBackdrop()})}function checkRemoveBackdrop(){if(backdropDomEl&&-1==backdropIndex()){var backdropScopeRef=backdropScope;removeAfterAnimate(backdropDomEl,backdropScope,150,function(){backdropScopeRef.$destroy(),backdropScopeRef=null}),backdropDomEl=void 0,backdropScope=void 0}}function removeAfterAnimate(domEl,scope,emulateTime,done){function afterAnimating(){afterAnimating.done||(afterAnimating.done=!0,domEl.remove(),done&&done())}scope.animate=!1;var transitionEndEventName=$transition.transitionEndEventName;if(transitionEndEventName){var timeout=$timeout(afterAnimating,emulateTime);domEl.bind(transitionEndEventName,function(){$timeout.cancel(timeout),afterAnimating(),scope.$apply()})}else $timeout(afterAnimating)}var backdropDomEl,backdropScope,OPENED_MODAL_CLASS="modal-open",openedWindows=$$stackedMap.createNew(),$modalStack={};return $rootScope.$watch(backdropIndex,function(newBackdropIndex){backdropScope&&(backdropScope.index=newBackdropIndex)}),$document.bind("keydown",function(evt){var modal;27===evt.which&&(modal=openedWindows.top(),modal&&modal.value.keyboard&&(evt.preventDefault(),$rootScope.$apply(function(){$modalStack.dismiss(modal.key,"escape key press")})))}),$modalStack.open=function(modalInstance,modal){openedWindows.add(modalInstance,{deferred:modal.deferred,modalScope:modal.scope,backdrop:modal.backdrop,keyboard:modal.keyboard});var body=$document.find("body").eq(0),currBackdropIndex=backdropIndex();if(currBackdropIndex>=0&&!backdropDomEl){backdropScope=$rootScope.$new(!0),backdropScope.index=currBackdropIndex;var angularBackgroundDomEl=angular.element("<div modal-backdrop></div>");angularBackgroundDomEl.attr("backdrop-class",modal.backdropClass),backdropDomEl=$compile(angularBackgroundDomEl)(backdropScope),body.append(backdropDomEl)}var angularDomEl=angular.element("<div modal-window></div>");angularDomEl.attr({"template-url":modal.windowTemplateUrl,"window-class":modal.windowClass,size:modal.size,index:openedWindows.length()-1,animate:"animate"}).html(modal.content);var modalDomEl=$compile(angularDomEl)(modal.scope);openedWindows.top().value.modalDomEl=modalDomEl,body.append(modalDomEl),body.addClass(OPENED_MODAL_CLASS)},$modalStack.close=function(modalInstance,result){var modalWindow=openedWindows.get(modalInstance);modalWindow&&(modalWindow.value.deferred.resolve(result),removeModalWindow(modalInstance))},$modalStack.dismiss=function(modalInstance,reason){var modalWindow=openedWindows.get(modalInstance);modalWindow&&(modalWindow.value.deferred.reject(reason),removeModalWindow(modalInstance))},$modalStack.dismissAll=function(reason){for(var topModal=this.getTop();topModal;)this.dismiss(topModal.key,reason),topModal=this.getTop()},$modalStack.getTop=function(){return openedWindows.top()},$modalStack}]).provider("$modal",function(){var $modalProvider={options:{backdrop:!0,keyboard:!0},$get:["$injector","$rootScope","$q","$http","$templateCache","$controller","$modalStack",function($injector,$rootScope,$q,$http,$templateCache,$controller,$modalStack){function getTemplatePromise(options){return options.template?$q.when(options.template):$http.get(angular.isFunction(options.templateUrl)?options.templateUrl():options.templateUrl,{cache:$templateCache}).then(function(result){return result.data})}function getResolvePromises(resolves){var promisesArr=[];return angular.forEach(resolves,function(value){(angular.isFunction(value)||angular.isArray(value))&&promisesArr.push($q.when($injector.invoke(value)))}),promisesArr}var $modal={};return $modal.open=function(modalOptions){var modalResultDeferred=$q.defer(),modalOpenedDeferred=$q.defer(),modalInstance={result:modalResultDeferred.promise,opened:modalOpenedDeferred.promise,close:function(result){$modalStack.close(modalInstance,result)},dismiss:function(reason){$modalStack.dismiss(modalInstance,reason)}};if(modalOptions=angular.extend({},$modalProvider.options,modalOptions),modalOptions.resolve=modalOptions.resolve||{},!modalOptions.template&&!modalOptions.templateUrl)throw new Error("One of template or templateUrl options is required.");var templateAndResolvePromise=$q.all([getTemplatePromise(modalOptions)].concat(getResolvePromises(modalOptions.resolve)));return templateAndResolvePromise.then(function(tplAndVars){var modalScope=(modalOptions.scope||$rootScope).$new();modalScope.$close=modalInstance.close,modalScope.$dismiss=modalInstance.dismiss;var ctrlInstance,ctrlLocals={},resolveIter=1;modalOptions.controller&&(ctrlLocals.$scope=modalScope,ctrlLocals.$modalInstance=modalInstance,angular.forEach(modalOptions.resolve,function(value,key){ctrlLocals[key]=tplAndVars[resolveIter++]}),ctrlInstance=$controller(modalOptions.controller,ctrlLocals),modalOptions.controllerAs&&(modalScope[modalOptions.controllerAs]=ctrlInstance)),$modalStack.open(modalInstance,{scope:modalScope,deferred:modalResultDeferred,content:tplAndVars[0],backdrop:modalOptions.backdrop,keyboard:modalOptions.keyboard,backdropClass:modalOptions.backdropClass,windowClass:modalOptions.windowClass,windowTemplateUrl:modalOptions.windowTemplateUrl,size:modalOptions.size})},function(reason){modalResultDeferred.reject(reason)}),templateAndResolvePromise.then(function(){modalOpenedDeferred.resolve(!0)},function(){modalOpenedDeferred.reject(!1)}),modalInstance},$modal}]};return $modalProvider}),angular.module("ui.bootstrap.pagination",[]).controller("PaginationController",["$scope","$attrs","$parse",function($scope,$attrs,$parse){var self=this,ngModelCtrl={$setViewValue:angular.noop},setNumPages=$attrs.numPages?$parse($attrs.numPages).assign:angular.noop;this.init=function(ngModelCtrl_,config){ngModelCtrl=ngModelCtrl_,this.config=config,ngModelCtrl.$render=function(){self.render()},$attrs.itemsPerPage?$scope.$parent.$watch($parse($attrs.itemsPerPage),function(value){self.itemsPerPage=parseInt(value,10),$scope.totalPages=self.calculateTotalPages()}):this.itemsPerPage=config.itemsPerPage},this.calculateTotalPages=function(){var totalPages=this.itemsPerPage<1?1:Math.ceil($scope.totalItems/this.itemsPerPage);return Math.max(totalPages||0,1)},this.render=function(){$scope.page=parseInt(ngModelCtrl.$viewValue,10)||1},$scope.selectPage=function(page){$scope.page!==page&&page>0&&page<=$scope.totalPages&&(ngModelCtrl.$setViewValue(page),ngModelCtrl.$render())},$scope.getText=function(key){return $scope[key+"Text"]||self.config[key+"Text"]},$scope.noPrevious=function(){return 1===$scope.page},$scope.noNext=function(){return $scope.page===$scope.totalPages},$scope.$watch("totalItems",function(){$scope.totalPages=self.calculateTotalPages()}),$scope.$watch("totalPages",function(value){setNumPages($scope.$parent,value),$scope.page>value?$scope.selectPage(value):ngModelCtrl.$render()})}]).constant("paginationConfig",{itemsPerPage:10,boundaryLinks:!1,directionLinks:!0,firstText:"First",previousText:"Previous",nextText:"Next",lastText:"Last",rotate:!0}).directive("pagination",["$parse","paginationConfig",function($parse,paginationConfig){return{restrict:"EA",scope:{totalItems:"=",firstText:"@",previousText:"@",nextText:"@",lastText:"@"},require:["pagination","?ngModel"],controller:"PaginationController",templateUrl:"template/pagination/pagination.html",replace:!0,link:function(scope,element,attrs,ctrls){function makePage(number,text,isActive){return{number:number,text:text,active:isActive}}function getPages(currentPage,totalPages){var pages=[],startPage=1,endPage=totalPages,isMaxSized=angular.isDefined(maxSize)&&totalPages>maxSize;isMaxSized&&(rotate?(startPage=Math.max(currentPage-Math.floor(maxSize/2),1),endPage=startPage+maxSize-1,endPage>totalPages&&(endPage=totalPages,startPage=endPage-maxSize+1)):(startPage=(Math.ceil(currentPage/maxSize)-1)*maxSize+1,endPage=Math.min(startPage+maxSize-1,totalPages)));for(var number=startPage;endPage>=number;number++){var page=makePage(number,number,number===currentPage);pages.push(page)}if(isMaxSized&&!rotate){if(startPage>1){var previousPageSet=makePage(startPage-1,"...",!1);pages.unshift(previousPageSet)}if(totalPages>endPage){var nextPageSet=makePage(endPage+1,"...",!1);pages.push(nextPageSet)}}return pages}var paginationCtrl=ctrls[0],ngModelCtrl=ctrls[1];if(ngModelCtrl){var maxSize=angular.isDefined(attrs.maxSize)?scope.$parent.$eval(attrs.maxSize):paginationConfig.maxSize,rotate=angular.isDefined(attrs.rotate)?scope.$parent.$eval(attrs.rotate):paginationConfig.rotate;scope.boundaryLinks=angular.isDefined(attrs.boundaryLinks)?scope.$parent.$eval(attrs.boundaryLinks):paginationConfig.boundaryLinks,scope.directionLinks=angular.isDefined(attrs.directionLinks)?scope.$parent.$eval(attrs.directionLinks):paginationConfig.directionLinks,paginationCtrl.init(ngModelCtrl,paginationConfig),attrs.maxSize&&scope.$parent.$watch($parse(attrs.maxSize),function(value){maxSize=parseInt(value,10),paginationCtrl.render()});var originalRender=paginationCtrl.render;paginationCtrl.render=function(){originalRender(),scope.page>0&&scope.page<=scope.totalPages&&(scope.pages=getPages(scope.page,scope.totalPages))}}}}}]).constant("pagerConfig",{itemsPerPage:10,previousText:"« Previous",nextText:"Next »",align:!0}).directive("pager",["pagerConfig",function(pagerConfig){return{restrict:"EA",scope:{totalItems:"=",previousText:"@",nextText:"@"},require:["pager","?ngModel"],controller:"PaginationController",templateUrl:"template/pagination/pager.html",replace:!0,link:function(scope,element,attrs,ctrls){var paginationCtrl=ctrls[0],ngModelCtrl=ctrls[1];ngModelCtrl&&(scope.align=angular.isDefined(attrs.align)?scope.$parent.$eval(attrs.align):pagerConfig.align,paginationCtrl.init(ngModelCtrl,pagerConfig))}}}]),angular.module("ui.bootstrap.tooltip",["ui.bootstrap.position","ui.bootstrap.bindHtml"]).provider("$tooltip",function(){function snake_case(name){var regexp=/[A-Z]/g,separator="-";return name.replace(regexp,function(letter,pos){return(pos?separator:"")+letter.toLowerCase()})}var defaultOptions={placement:"top",animation:!0,popupDelay:0},triggerMap={mouseenter:"mouseleave",click:"click",focus:"blur"},globalOptions={};this.options=function(value){angular.extend(globalOptions,value)},this.setTriggers=function(triggers){angular.extend(triggerMap,triggers)},this.$get=["$window","$compile","$timeout","$parse","$document","$position","$interpolate",function($window,$compile,$timeout,$parse,$document,$position,$interpolate){return function(type,prefix,defaultTriggerShow){function getTriggers(trigger){var show=trigger||options.trigger||defaultTriggerShow,hide=triggerMap[show]||show;return{show:show,hide:hide}}var options=angular.extend({},defaultOptions,globalOptions),directiveName=snake_case(type),startSym=$interpolate.startSymbol(),endSym=$interpolate.endSymbol(),template="<div "+directiveName+'-popup title="'+startSym+"tt_title"+endSym+'" content="'+startSym+"tt_content"+endSym+'" placement="'+startSym+"tt_placement"+endSym+'" animation="tt_animation" is-open="tt_isOpen"></div>';return{restrict:"EA",scope:!0,compile:function(tElem,tAttrs){var tooltipLinker=$compile(template);return function(scope,element,attrs){function toggleTooltipBind(){scope.tt_isOpen?hideTooltipBind():showTooltipBind()}function showTooltipBind(){(!hasEnableExp||scope.$eval(attrs[prefix+"Enable"]))&&(scope.tt_popupDelay?popupTimeout||(popupTimeout=$timeout(show,scope.tt_popupDelay,!1),popupTimeout.then(function(reposition){reposition()})):show()())}function hideTooltipBind(){scope.$apply(function(){hide()})}function show(){return popupTimeout=null,transitionTimeout&&($timeout.cancel(transitionTimeout),transitionTimeout=null),scope.tt_content?(createTooltip(),tooltip.css({top:0,left:0,display:"block"}),appendToBody?$document.find("body").append(tooltip):element.after(tooltip),positionTooltip(),scope.tt_isOpen=!0,scope.$digest(),positionTooltip):angular.noop}function hide(){scope.tt_isOpen=!1,$timeout.cancel(popupTimeout),popupTimeout=null,scope.tt_animation?transitionTimeout||(transitionTimeout=$timeout(removeTooltip,500)):removeTooltip()}function createTooltip(){tooltip&&removeTooltip(),tooltip=tooltipLinker(scope,function(){}),scope.$digest()}function removeTooltip(){transitionTimeout=null,tooltip&&(tooltip.remove(),tooltip=null)}var tooltip,transitionTimeout,popupTimeout,appendToBody=angular.isDefined(options.appendToBody)?options.appendToBody:!1,triggers=getTriggers(void 0),hasEnableExp=angular.isDefined(attrs[prefix+"Enable"]),positionTooltip=function(){var ttPosition=$position.positionElements(element,tooltip,scope.tt_placement,appendToBody);ttPosition.top+="px",ttPosition.left+="px",tooltip.css(ttPosition)};scope.tt_isOpen=!1,attrs.$observe(type,function(val){scope.tt_content=val,!val&&scope.tt_isOpen&&hide()}),attrs.$observe(prefix+"Title",function(val){scope.tt_title=val}),attrs.$observe(prefix+"Placement",function(val){scope.tt_placement=angular.isDefined(val)?val:options.placement}),attrs.$observe(prefix+"PopupDelay",function(val){var delay=parseInt(val,10);scope.tt_popupDelay=isNaN(delay)?options.popupDelay:delay});var unregisterTriggers=function(){element.unbind(triggers.show,showTooltipBind),element.unbind(triggers.hide,hideTooltipBind)};attrs.$observe(prefix+"Trigger",function(val){unregisterTriggers(),triggers=getTriggers(val),triggers.show===triggers.hide?element.bind(triggers.show,toggleTooltipBind):(element.bind(triggers.show,showTooltipBind),element.bind(triggers.hide,hideTooltipBind))});var animation=scope.$eval(attrs[prefix+"Animation"]);scope.tt_animation=angular.isDefined(animation)?!!animation:options.animation,attrs.$observe(prefix+"AppendToBody",function(val){
  appendToBody=angular.isDefined(val)?$parse(val)(scope):appendToBody}),appendToBody&&scope.$on("$locationChangeSuccess",function(){scope.tt_isOpen&&hide()}),scope.$on("$destroy",function(){$timeout.cancel(transitionTimeout),$timeout.cancel(popupTimeout),unregisterTriggers(),removeTooltip()})}}}}}]}).directive("tooltipPopup",function(){return{restrict:"EA",replace:!0,scope:{content:"@",placement:"@",animation:"&",isOpen:"&"},templateUrl:"template/tooltip/tooltip-popup.html"}}).directive("tooltip",["$tooltip",function($tooltip){return $tooltip("tooltip","tooltip","mouseenter")}]).directive("tooltipHtmlUnsafePopup",function(){return{restrict:"EA",replace:!0,scope:{content:"@",placement:"@",animation:"&",isOpen:"&"},templateUrl:"template/tooltip/tooltip-html-unsafe-popup.html"}}).directive("tooltipHtmlUnsafe",["$tooltip",function($tooltip){return $tooltip("tooltipHtmlUnsafe","tooltip","mouseenter")}]),angular.module("ui.bootstrap.popover",["ui.bootstrap.tooltip"]).directive("popoverPopup",function(){return{restrict:"EA",replace:!0,scope:{title:"@",content:"@",placement:"@",animation:"&",isOpen:"&"},templateUrl:"template/popover/popover.html"}}).directive("popover",["$tooltip",function($tooltip){return $tooltip("popover","popover","click")}]),angular.module("ui.bootstrap.progressbar",[]).constant("progressConfig",{animate:!0,max:100}).controller("ProgressController",["$scope","$attrs","progressConfig",function($scope,$attrs,progressConfig){var self=this,animate=angular.isDefined($attrs.animate)?$scope.$parent.$eval($attrs.animate):progressConfig.animate;this.bars=[],$scope.max=angular.isDefined($attrs.max)?$scope.$parent.$eval($attrs.max):progressConfig.max,this.addBar=function(bar,element){animate||element.css({transition:"none"}),this.bars.push(bar),bar.$watch("value",function(value){bar.percent=+(100*value/$scope.max).toFixed(2)}),bar.$on("$destroy",function(){element=null,self.removeBar(bar)})},this.removeBar=function(bar){this.bars.splice(this.bars.indexOf(bar),1)}}]).directive("progress",function(){return{restrict:"EA",replace:!0,transclude:!0,controller:"ProgressController",require:"progress",scope:{},templateUrl:"template/progressbar/progress.html"}}).directive("bar",function(){return{restrict:"EA",replace:!0,transclude:!0,require:"^progress",scope:{value:"=",type:"@"},templateUrl:"template/progressbar/bar.html",link:function(scope,element,attrs,progressCtrl){progressCtrl.addBar(scope,element)}}}).directive("progressbar",function(){return{restrict:"EA",replace:!0,transclude:!0,controller:"ProgressController",scope:{value:"=",type:"@"},templateUrl:"template/progressbar/progressbar.html",link:function(scope,element,attrs,progressCtrl){progressCtrl.addBar(scope,angular.element(element.children()[0]))}}}),angular.module("ui.bootstrap.rating",[]).constant("ratingConfig",{max:5,stateOn:null,stateOff:null}).controller("RatingController",["$scope","$attrs","ratingConfig",function($scope,$attrs,ratingConfig){var ngModelCtrl={$setViewValue:angular.noop};this.init=function(ngModelCtrl_){ngModelCtrl=ngModelCtrl_,ngModelCtrl.$render=this.render,this.stateOn=angular.isDefined($attrs.stateOn)?$scope.$parent.$eval($attrs.stateOn):ratingConfig.stateOn,this.stateOff=angular.isDefined($attrs.stateOff)?$scope.$parent.$eval($attrs.stateOff):ratingConfig.stateOff;var ratingStates=angular.isDefined($attrs.ratingStates)?$scope.$parent.$eval($attrs.ratingStates):new Array(angular.isDefined($attrs.max)?$scope.$parent.$eval($attrs.max):ratingConfig.max);$scope.range=this.buildTemplateObjects(ratingStates)},this.buildTemplateObjects=function(states){for(var i=0,n=states.length;n>i;i++)states[i]=angular.extend({index:i},{stateOn:this.stateOn,stateOff:this.stateOff},states[i]);return states},$scope.rate=function(value){!$scope.readonly&&value>=0&&value<=$scope.range.length&&(ngModelCtrl.$setViewValue(value),ngModelCtrl.$render())},$scope.enter=function(value){$scope.readonly||($scope.value=value),$scope.onHover({value:value})},$scope.reset=function(){$scope.value=ngModelCtrl.$viewValue,$scope.onLeave()},$scope.onKeydown=function(evt){/(37|38|39|40)/.test(evt.which)&&(evt.preventDefault(),evt.stopPropagation(),$scope.rate($scope.value+(38===evt.which||39===evt.which?1:-1)))},this.render=function(){$scope.value=ngModelCtrl.$viewValue}}]).directive("rating",function(){return{restrict:"EA",require:["rating","ngModel"],scope:{readonly:"=?",onHover:"&",onLeave:"&"},controller:"RatingController",templateUrl:"template/rating/rating.html",replace:!0,link:function(scope,element,attrs,ctrls){var ratingCtrl=ctrls[0],ngModelCtrl=ctrls[1];ngModelCtrl&&ratingCtrl.init(ngModelCtrl)}}}),angular.module("ui.bootstrap.tabs",[]).controller("TabsetController",["$scope",function($scope){var ctrl=this,tabs=ctrl.tabs=$scope.tabs=[];ctrl.select=function(selectedTab){angular.forEach(tabs,function(tab){tab.active&&tab!==selectedTab&&(tab.active=!1,tab.onDeselect())}),selectedTab.active=!0,selectedTab.onSelect()},ctrl.addTab=function(tab){tabs.push(tab),1===tabs.length?tab.active=!0:tab.active&&ctrl.select(tab)},ctrl.removeTab=function(tab){var index=tabs.indexOf(tab);if(tab.active&&tabs.length>1){var newActiveIndex=index==tabs.length-1?index-1:index+1;ctrl.select(tabs[newActiveIndex])}tabs.splice(index,1)}}]).directive("tabset",function(){return{restrict:"EA",transclude:!0,replace:!0,scope:{type:"@"},controller:"TabsetController",templateUrl:"template/tabs/tabset.html",link:function(scope,element,attrs){scope.vertical=angular.isDefined(attrs.vertical)?scope.$parent.$eval(attrs.vertical):!1,scope.justified=angular.isDefined(attrs.justified)?scope.$parent.$eval(attrs.justified):!1}}}).directive("tab",["$parse",function($parse){return{require:"^tabset",restrict:"EA",replace:!0,templateUrl:"template/tabs/tab.html",transclude:!0,scope:{active:"=?",heading:"@",onSelect:"&select",onDeselect:"&deselect"},controller:function(){},compile:function(elm,attrs,transclude){return function(scope,elm,attrs,tabsetCtrl){scope.$watch("active",function(active){active&&tabsetCtrl.select(scope)}),scope.disabled=!1,attrs.disabled&&scope.$parent.$watch($parse(attrs.disabled),function(value){scope.disabled=!!value}),scope.select=function(){scope.disabled||(scope.active=!0)},tabsetCtrl.addTab(scope),scope.$on("$destroy",function(){tabsetCtrl.removeTab(scope)}),scope.$transcludeFn=transclude}}}}]).directive("tabHeadingTransclude",[function(){return{restrict:"A",require:"^tab",link:function(scope,elm,attrs,tabCtrl){scope.$watch("headingElement",function(heading){heading&&(elm.html(""),elm.append(heading))})}}}]).directive("tabContentTransclude",function(){function isTabHeading(node){return node.tagName&&(node.hasAttribute("tab-heading")||node.hasAttribute("data-tab-heading")||"tab-heading"===node.tagName.toLowerCase()||"data-tab-heading"===node.tagName.toLowerCase())}return{restrict:"A",require:"^tabset",link:function(scope,elm,attrs){var tab=scope.$eval(attrs.tabContentTransclude);tab.$transcludeFn(tab.$parent,function(contents){angular.forEach(contents,function(node){isTabHeading(node)?tab.headingElement=node:elm.append(node)})})}}}),angular.module("ui.bootstrap.timepicker",[]).constant("timepickerConfig",{hourStep:1,minuteStep:1,showMeridian:!0,meridians:null,readonlyInput:!1,mousewheel:!0}).controller("TimepickerController",["$scope","$attrs","$parse","$log","$locale","timepickerConfig",function($scope,$attrs,$parse,$log,$locale,timepickerConfig){function getHoursFromTemplate(){var hours=parseInt($scope.hours,10),valid=$scope.showMeridian?hours>0&&13>hours:hours>=0&&24>hours;return valid?($scope.showMeridian&&(12===hours&&(hours=0),$scope.meridian===meridians[1]&&(hours+=12)),hours):void 0}function getMinutesFromTemplate(){var minutes=parseInt($scope.minutes,10);return minutes>=0&&60>minutes?minutes:void 0}function pad(value){return angular.isDefined(value)&&value.toString().length<2?"0"+value:value}function refresh(keyboardChange){makeValid(),ngModelCtrl.$setViewValue(new Date(selected)),updateTemplate(keyboardChange)}function makeValid(){ngModelCtrl.$setValidity("time",!0),$scope.invalidHours=!1,$scope.invalidMinutes=!1}function updateTemplate(keyboardChange){var hours=selected.getHours(),minutes=selected.getMinutes();$scope.showMeridian&&(hours=0===hours||12===hours?12:hours%12),$scope.hours="h"===keyboardChange?hours:pad(hours),$scope.minutes="m"===keyboardChange?minutes:pad(minutes),$scope.meridian=selected.getHours()<12?meridians[0]:meridians[1]}function addMinutes(minutes){var dt=new Date(selected.getTime()+6e4*minutes);selected.setHours(dt.getHours(),dt.getMinutes()),refresh()}var selected=new Date,ngModelCtrl={$setViewValue:angular.noop},meridians=angular.isDefined($attrs.meridians)?$scope.$parent.$eval($attrs.meridians):timepickerConfig.meridians||$locale.DATETIME_FORMATS.AMPMS;this.init=function(ngModelCtrl_,inputs){ngModelCtrl=ngModelCtrl_,ngModelCtrl.$render=this.render;var hoursInputEl=inputs.eq(0),minutesInputEl=inputs.eq(1),mousewheel=angular.isDefined($attrs.mousewheel)?$scope.$parent.$eval($attrs.mousewheel):timepickerConfig.mousewheel;mousewheel&&this.setupMousewheelEvents(hoursInputEl,minutesInputEl),$scope.readonlyInput=angular.isDefined($attrs.readonlyInput)?$scope.$parent.$eval($attrs.readonlyInput):timepickerConfig.readonlyInput,this.setupInputEvents(hoursInputEl,minutesInputEl)};var hourStep=timepickerConfig.hourStep;$attrs.hourStep&&$scope.$parent.$watch($parse($attrs.hourStep),function(value){hourStep=parseInt(value,10)});var minuteStep=timepickerConfig.minuteStep;$attrs.minuteStep&&$scope.$parent.$watch($parse($attrs.minuteStep),function(value){minuteStep=parseInt(value,10)}),$scope.showMeridian=timepickerConfig.showMeridian,$attrs.showMeridian&&$scope.$parent.$watch($parse($attrs.showMeridian),function(value){if($scope.showMeridian=!!value,ngModelCtrl.$error.time){var hours=getHoursFromTemplate(),minutes=getMinutesFromTemplate();angular.isDefined(hours)&&angular.isDefined(minutes)&&(selected.setHours(hours),refresh())}else updateTemplate()}),this.setupMousewheelEvents=function(hoursInputEl,minutesInputEl){var isScrollingUp=function(e){e.originalEvent&&(e=e.originalEvent);var delta=e.wheelDelta?e.wheelDelta:-e.deltaY;return e.detail||delta>0};hoursInputEl.bind("mousewheel wheel",function(e){$scope.$apply(isScrollingUp(e)?$scope.incrementHours():$scope.decrementHours()),e.preventDefault()}),minutesInputEl.bind("mousewheel wheel",function(e){$scope.$apply(isScrollingUp(e)?$scope.incrementMinutes():$scope.decrementMinutes()),e.preventDefault()})},this.setupInputEvents=function(hoursInputEl,minutesInputEl){if($scope.readonlyInput)return $scope.updateHours=angular.noop,void($scope.updateMinutes=angular.noop);var invalidate=function(invalidHours,invalidMinutes){ngModelCtrl.$setViewValue(null),ngModelCtrl.$setValidity("time",!1),angular.isDefined(invalidHours)&&($scope.invalidHours=invalidHours),angular.isDefined(invalidMinutes)&&($scope.invalidMinutes=invalidMinutes)};$scope.updateHours=function(){var hours=getHoursFromTemplate();angular.isDefined(hours)?(selected.setHours(hours),refresh("h")):invalidate(!0)},hoursInputEl.bind("blur",function(e){!$scope.invalidHours&&$scope.hours<10&&$scope.$apply(function(){$scope.hours=pad($scope.hours)})}),$scope.updateMinutes=function(){var minutes=getMinutesFromTemplate();angular.isDefined(minutes)?(selected.setMinutes(minutes),refresh("m")):invalidate(void 0,!0)},minutesInputEl.bind("blur",function(e){!$scope.invalidMinutes&&$scope.minutes<10&&$scope.$apply(function(){$scope.minutes=pad($scope.minutes)})})},this.render=function(){var date=ngModelCtrl.$modelValue?new Date(ngModelCtrl.$modelValue):null;isNaN(date)?(ngModelCtrl.$setValidity("time",!1),$log.error('Timepicker directive: "ng-model" value must be a Date object, a number of milliseconds since 01.01.1970 or a string representing an RFC2822 or ISO 8601 date.')):(date&&(selected=date),makeValid(),updateTemplate())},$scope.incrementHours=function(){addMinutes(60*hourStep)},$scope.decrementHours=function(){addMinutes(60*-hourStep)},$scope.incrementMinutes=function(){addMinutes(minuteStep)},$scope.decrementMinutes=function(){addMinutes(-minuteStep)},$scope.toggleMeridian=function(){addMinutes(720*(selected.getHours()<12?1:-1))}}]).directive("timepicker",function(){return{restrict:"EA",require:["timepicker","?^ngModel"],controller:"TimepickerController",replace:!0,scope:{},templateUrl:"template/timepicker/timepicker.html",link:function(scope,element,attrs,ctrls){var timepickerCtrl=ctrls[0],ngModelCtrl=ctrls[1];ngModelCtrl&&timepickerCtrl.init(ngModelCtrl,element.find("input"))}}}),angular.module("ui.bootstrap.typeahead",["ui.bootstrap.position","ui.bootstrap.bindHtml"]).factory("typeaheadParser",["$parse",function($parse){var TYPEAHEAD_REGEXP=/^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?\s+for\s+(?:([\$\w][\$\w\d]*))\s+in\s+([\s\S]+?)$/;return{parse:function(input){var match=input.match(TYPEAHEAD_REGEXP);if(!match)throw new Error('Expected typeahead specification in form of "_modelValue_ (as _label_)? for _item_ in _collection_" but got "'+input+'".');return{itemName:match[3],source:$parse(match[4]),viewMapper:$parse(match[2]||match[1]),modelMapper:$parse(match[1])}}}}]).directive("typeahead",["$compile","$parse","$q","$timeout","$document","$position","typeaheadParser",function($compile,$parse,$q,$timeout,$document,$position,typeaheadParser){var HOT_KEYS=[9,13,27,38,40];return{require:"ngModel",link:function(originalScope,element,attrs,modelCtrl){var hasFocus,minSearch=originalScope.$eval(attrs.typeaheadMinLength)||1,waitTime=originalScope.$eval(attrs.typeaheadWaitMs)||0,isEditable=originalScope.$eval(attrs.typeaheadEditable)!==!1,isLoadingSetter=$parse(attrs.typeaheadLoading).assign||angular.noop,onSelectCallback=$parse(attrs.typeaheadOnSelect),inputFormatter=attrs.typeaheadInputFormatter?$parse(attrs.typeaheadInputFormatter):void 0,appendToBody=attrs.typeaheadAppendToBody?originalScope.$eval(attrs.typeaheadAppendToBody):!1,$setModelValue=$parse(attrs.ngModel).assign,parserResult=typeaheadParser.parse(attrs.typeahead),scope=originalScope.$new();originalScope.$on("$destroy",function(){scope.$destroy()});var popupId="typeahead-"+scope.$id+"-"+Math.floor(1e4*Math.random());element.attr({"aria-autocomplete":"list","aria-expanded":!1,"aria-owns":popupId});var popUpEl=angular.element("<div typeahead-popup></div>");popUpEl.attr({id:popupId,matches:"matches",active:"activeIdx",select:"select(activeIdx)",query:"query",position:"position"}),angular.isDefined(attrs.typeaheadTemplateUrl)&&popUpEl.attr("template-url",attrs.typeaheadTemplateUrl);var resetMatches=function(){scope.matches=[],scope.activeIdx=-1,element.attr("aria-expanded",!1)},getMatchId=function(index){return popupId+"-option-"+index};scope.$watch("activeIdx",function(index){0>index?element.removeAttr("aria-activedescendant"):element.attr("aria-activedescendant",getMatchId(index))});var getMatchesAsync=function(inputValue){var locals={$viewValue:inputValue};isLoadingSetter(originalScope,!0),$q.when(parserResult.source(originalScope,locals)).then(function(matches){var onCurrentRequest=inputValue===modelCtrl.$viewValue;if(onCurrentRequest&&hasFocus)if(matches.length>0){scope.activeIdx=0,scope.matches.length=0;for(var i=0;i<matches.length;i++)locals[parserResult.itemName]=matches[i],scope.matches.push({id:getMatchId(i),label:parserResult.viewMapper(scope,locals),model:matches[i]});scope.query=inputValue,scope.position=appendToBody?$position.offset(element):$position.position(element),scope.position.top=scope.position.top+element.prop("offsetHeight"),element.attr("aria-expanded",!0)}else resetMatches();onCurrentRequest&&isLoadingSetter(originalScope,!1)},function(){resetMatches(),isLoadingSetter(originalScope,!1)})};resetMatches(),scope.query=void 0;var timeoutPromise,scheduleSearchWithTimeout=function(inputValue){timeoutPromise=$timeout(function(){getMatchesAsync(inputValue)},waitTime)},cancelPreviousTimeout=function(){timeoutPromise&&$timeout.cancel(timeoutPromise)};modelCtrl.$parsers.unshift(function(inputValue){return hasFocus=!0,inputValue&&inputValue.length>=minSearch?waitTime>0?(cancelPreviousTimeout(),scheduleSearchWithTimeout(inputValue)):getMatchesAsync(inputValue):(isLoadingSetter(originalScope,!1),cancelPreviousTimeout(),resetMatches()),isEditable?inputValue:inputValue?void modelCtrl.$setValidity("editable",!1):(modelCtrl.$setValidity("editable",!0),inputValue)}),modelCtrl.$formatters.push(function(modelValue){var candidateViewValue,emptyViewValue,locals={};return inputFormatter?(locals.$model=modelValue,inputFormatter(originalScope,locals)):(locals[parserResult.itemName]=modelValue,candidateViewValue=parserResult.viewMapper(originalScope,locals),locals[parserResult.itemName]=void 0,emptyViewValue=parserResult.viewMapper(originalScope,locals),candidateViewValue!==emptyViewValue?candidateViewValue:modelValue)}),scope.select=function(activeIdx){var model,item,locals={};locals[parserResult.itemName]=item=scope.matches[activeIdx].model,model=parserResult.modelMapper(originalScope,locals),$setModelValue(originalScope,model),modelCtrl.$setValidity("editable",!0),onSelectCallback(originalScope,{$item:item,$model:model,$label:parserResult.viewMapper(originalScope,locals)}),resetMatches(),$timeout(function(){element[0].focus()},0,!1)},element.bind("keydown",function(evt){0!==scope.matches.length&&-1!==HOT_KEYS.indexOf(evt.which)&&(evt.preventDefault(),40===evt.which?(scope.activeIdx=(scope.activeIdx+1)%scope.matches.length,scope.$digest()):38===evt.which?(scope.activeIdx=(scope.activeIdx?scope.activeIdx:scope.matches.length)-1,scope.$digest()):13===evt.which||9===evt.which?scope.$apply(function(){scope.select(scope.activeIdx)}):27===evt.which&&(evt.stopPropagation(),resetMatches(),scope.$digest()))}),element.bind("blur",function(evt){hasFocus=!1});var dismissClickHandler=function(evt){element[0]!==evt.target&&(resetMatches(),scope.$digest())};$document.bind("click",dismissClickHandler),originalScope.$on("$destroy",function(){$document.unbind("click",dismissClickHandler)});var $popup=$compile(popUpEl)(scope);appendToBody?$document.find("body").append($popup):element.after($popup)}}}]).directive("typeaheadPopup",function(){return{restrict:"EA",scope:{matches:"=",query:"=",active:"=",position:"=",select:"&"},replace:!0,templateUrl:"template/typeahead/typeahead-popup.html",link:function(scope,element,attrs){scope.templateUrl=attrs.templateUrl,scope.isOpen=function(){return scope.matches.length>0},scope.isActive=function(matchIdx){return scope.active==matchIdx},scope.selectActive=function(matchIdx){scope.active=matchIdx},scope.selectMatch=function(activeIdx){scope.select({activeIdx:activeIdx})}}}}).directive("typeaheadMatch",["$http","$templateCache","$compile","$parse",function($http,$templateCache,$compile,$parse){return{restrict:"EA",scope:{index:"=",match:"=",query:"="},link:function(scope,element,attrs){var tplUrl=$parse(attrs.templateUrl)(scope.$parent)||"template/typeahead/typeahead-match.html";$http.get(tplUrl,{cache:$templateCache}).success(function(tplContent){element.replaceWith($compile(tplContent.trim())(scope))})}}}]).filter("typeaheadHighlight",function(){function escapeRegexp(queryToEscape){return queryToEscape.replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1")}return function(matchItem,query){return query?(""+matchItem).replace(new RegExp(escapeRegexp(query),"gi"),"<strong>$&</strong>"):matchItem}}),angular.module("template/accordion/accordion-group.html",[]).run(["$templateCache",function($templateCache){$templateCache.put("template/accordion/accordion-group.html",'<div class="panel panel-default">\n  <div class="panel-heading">\n    <h4 class="panel-title">\n      <a class="accordion-toggle" ng-click="toggleOpen()" accordion-transclude="heading"><span ng-class="{\'text-muted\': isDisabled}">{{heading}}</span></a>\n    </h4>\n  </div>\n  <div class="panel-collapse" collapse="!isOpen">\n	  <div class="panel-body" ng-transclude></div>\n  </div>\n</div>')}]),angular.module("template/accordion/accordion.html",[]).run(["$templateCache",function($templateCache){$templateCache.put("template/accordion/accordion.html",'<div class="panel-group" ng-transclude></div>')}]),angular.module("template/alert/alert.html",[]).run(["$templateCache",function($templateCache){$templateCache.put("template/alert/alert.html",'<div class="alert" ng-class="[\'alert-\' + (type || \'warning\'), closeable ? \'alert-dismissable\' : null]" role="alert">\n    <button ng-show="closeable" type="button" class="close" ng-click="close()">\n        <span aria-hidden="true">&times;</span>\n        <span class="sr-only">Close</span>\n    </button>\n    <div ng-transclude></div>\n</div>\n')}]),angular.module("template/carousel/carousel.html",[]).run(["$templateCache",function($templateCache){$templateCache.put("template/carousel/carousel.html",'<div ng-mouseenter="pause()" ng-mouseleave="play()" class="carousel" ng-swipe-right="prev()" ng-swipe-left="next()">\n    <ol class="carousel-indicators" ng-show="slides.length > 1">\n        <li ng-repeat="slide in slides track by $index" ng-class="{active: isActive(slide)}" ng-click="select(slide)"></li>\n    </ol>\n    <div class="carousel-inner" ng-transclude></div>\n    <a class="left carousel-control" ng-click="prev()" ng-show="slides.length > 1"><span class="glyphicon glyphicon-chevron-left"></span></a>\n    <a class="right carousel-control" ng-click="next()" ng-show="slides.length > 1"><span class="glyphicon glyphicon-chevron-right"></span></a>\n</div>\n')}]),angular.module("template/carousel/slide.html",[]).run(["$templateCache",function($templateCache){$templateCache.put("template/carousel/slide.html","<div ng-class=\"{\n    'active': leaving || (active && !entering),\n    'prev': (next || active) && direction=='prev',\n    'next': (next || active) && direction=='next',\n    'right': direction=='prev',\n    'left': direction=='next'\n  }\" class=\"item text-center\" ng-transclude></div>\n")}]),angular.module("template/datepicker/datepicker.html",[]).run(["$templateCache",function($templateCache){$templateCache.put("template/datepicker/datepicker.html",'<div ng-switch="datepickerMode" role="application" ng-keydown="keydown($event)">\n  <daypicker ng-switch-when="day" tabindex="0"></daypicker>\n  <monthpicker ng-switch-when="month" tabindex="0"></monthpicker>\n  <yearpicker ng-switch-when="year" tabindex="0"></yearpicker>\n</div>')}]),angular.module("template/datepicker/day.html",[]).run(["$templateCache",function($templateCache){$templateCache.put("template/datepicker/day.html",'<table role="grid" aria-labelledby="{{uniqueId}}-title" aria-activedescendant="{{activeDateId}}">\n  <thead>\n    <tr>\n      <th><button type="button" class="btn btn-default btn-sm pull-left" ng-click="move(-1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-left"></i></button></th>\n      <th colspan="{{5 + showWeeks}}"><button id="{{uniqueId}}-title" role="heading" aria-live="assertive" aria-atomic="true" type="button" class="btn btn-default btn-sm" ng-click="toggleMode()" tabindex="-1" style="width:100%;"><strong>{{title}}</strong></button></th>\n      <th><button type="button" class="btn btn-default btn-sm pull-right" ng-click="move(1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-right"></i></button></th>\n    </tr>\n    <tr>\n      <th ng-show="showWeeks" class="text-center"></th>\n      <th ng-repeat="label in labels track by $index" class="text-center"><small aria-label="{{label.full}}">{{label.abbr}}</small></th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr ng-repeat="row in rows track by $index">\n      <td ng-show="showWeeks" class="text-center h6"><em>{{ weekNumbers[$index] }}</em></td>\n      <td ng-repeat="dt in row track by dt.date" class="text-center" role="gridcell" id="{{dt.uid}}" aria-disabled="{{!!dt.disabled}}">\n        <button type="button" style="width:100%;" class="btn btn-default btn-sm" ng-class="{\'btn-info\': dt.selected, active: isActive(dt)}" ng-click="select(dt.date)" ng-disabled="dt.disabled" tabindex="-1"><span ng-class="{\'text-muted\': dt.secondary, \'text-info\': dt.current}">{{dt.label}}</span></button>\n      </td>\n    </tr>\n  </tbody>\n</table>\n')}]),angular.module("template/datepicker/month.html",[]).run(["$templateCache",function($templateCache){$templateCache.put("template/datepicker/month.html",'<table role="grid" aria-labelledby="{{uniqueId}}-title" aria-activedescendant="{{activeDateId}}">\n  <thead>\n    <tr>\n      <th><button type="button" class="btn btn-default btn-sm pull-left" ng-click="move(-1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-left"></i></button></th>\n      <th><button id="{{uniqueId}}-title" role="heading" aria-live="assertive" aria-atomic="true" type="button" class="btn btn-default btn-sm" ng-click="toggleMode()" tabindex="-1" style="width:100%;"><strong>{{title}}</strong></button></th>\n      <th><button type="button" class="btn btn-default btn-sm pull-right" ng-click="move(1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-right"></i></button></th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr ng-repeat="row in rows track by $index">\n      <td ng-repeat="dt in row track by dt.date" class="text-center" role="gridcell" id="{{dt.uid}}" aria-disabled="{{!!dt.disabled}}">\n        <button type="button" style="width:100%;" class="btn btn-default" ng-class="{\'btn-info\': dt.selected, active: isActive(dt)}" ng-click="select(dt.date)" ng-disabled="dt.disabled" tabindex="-1"><span ng-class="{\'text-info\': dt.current}">{{dt.label}}</span></button>\n      </td>\n    </tr>\n  </tbody>\n</table>\n')}]),angular.module("template/datepicker/popup.html",[]).run(["$templateCache",function($templateCache){$templateCache.put("template/datepicker/popup.html",'<ul class="dropdown-menu" ng-style="{display: (isOpen && \'block\') || \'none\', top: position.top+\'px\', left: position.left+\'px\'}" ng-keydown="keydown($event)">\n	<li ng-transclude></li>\n	<li ng-if="showButtonBar" style="padding:10px 9px 2px">\n		<span class="btn-group">\n			<button type="button" class="btn btn-sm btn-info" ng-click="select(\'today\')">{{ getText(\'current\') }}</button>\n			<button type="button" class="btn btn-sm btn-danger" ng-click="select(null)">{{ getText(\'clear\') }}</button>\n		</span>\n		<button type="button" class="btn btn-sm btn-success pull-right" ng-click="close()">{{ getText(\'close\') }}</button>\n	</li>\n</ul>\n')}]),angular.module("template/datepicker/year.html",[]).run(["$templateCache",function($templateCache){$templateCache.put("template/datepicker/year.html",'<table role="grid" aria-labelledby="{{uniqueId}}-title" aria-activedescendant="{{activeDateId}}">\n  <thead>\n    <tr>\n      <th><button type="button" class="btn btn-default btn-sm pull-left" ng-click="move(-1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-left"></i></button></th>\n      <th colspan="3"><button id="{{uniqueId}}-title" role="heading" aria-live="assertive" aria-atomic="true" type="button" class="btn btn-default btn-sm" ng-click="toggleMode()" tabindex="-1" style="width:100%;"><strong>{{title}}</strong></button></th>\n      <th><button type="button" class="btn btn-default btn-sm pull-right" ng-click="move(1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-right"></i></button></th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr ng-repeat="row in rows track by $index">\n      <td ng-repeat="dt in row track by dt.date" class="text-center" role="gridcell" id="{{dt.uid}}" aria-disabled="{{!!dt.disabled}}">\n        <button type="button" style="width:100%;" class="btn btn-default" ng-class="{\'btn-info\': dt.selected, active: isActive(dt)}" ng-click="select(dt.date)" ng-disabled="dt.disabled" tabindex="-1"><span ng-class="{\'text-info\': dt.current}">{{dt.label}}</span></button>\n      </td>\n    </tr>\n  </tbody>\n</table>\n')}]),angular.module("template/modal/backdrop.html",[]).run(["$templateCache",function($templateCache){$templateCache.put("template/modal/backdrop.html",'<div class="modal-backdrop fade {{ backdropClass }}"\n     ng-class="{in: animate}"\n     ng-style="{\'z-index\': 1040 + (index && 1 || 0) + index*10}"\n></div>\n')}]),angular.module("template/modal/window.html",[]).run(["$templateCache",function($templateCache){$templateCache.put("template/modal/window.html",'<div tabindex="-1" role="dialog" class="modal fade" ng-class="{in: animate}" ng-style="{\'z-index\': 1050 + index*10, display: \'block\'}" ng-click="close($event)">\n    <div class="modal-dialog" ng-class="{\'modal-sm\': size == \'sm\', \'modal-lg\': size == \'lg\'}"><div class="modal-content" modal-transclude></div></div>\n</div>')}]),angular.module("template/pagination/pager.html",[]).run(["$templateCache",function($templateCache){$templateCache.put("template/pagination/pager.html",'<ul class="pager">\n  <li ng-class="{disabled: noPrevious(), previous: align}"><a href ng-click="selectPage(page - 1)">{{getText(\'previous\')}}</a></li>\n  <li ng-class="{disabled: noNext(), next: align}"><a href ng-click="selectPage(page + 1)">{{getText(\'next\')}}</a></li>\n</ul>')}]),angular.module("template/pagination/pagination.html",[]).run(["$templateCache",function($templateCache){$templateCache.put("template/pagination/pagination.html",'<ul class="pagination">\n  <li ng-if="boundaryLinks" ng-class="{disabled: noPrevious()}"><a href ng-click="selectPage(1)">{{getText(\'first\')}}</a></li>\n  <li ng-if="directionLinks" ng-class="{disabled: noPrevious()}"><a href ng-click="selectPage(page - 1)">{{getText(\'previous\')}}</a></li>\n  <li ng-repeat="page in pages track by $index" ng-class="{active: page.active}"><a href ng-click="selectPage(page.number)">{{page.text}}</a></li>\n  <li ng-if="directionLinks" ng-class="{disabled: noNext()}"><a href ng-click="selectPage(page + 1)">{{getText(\'next\')}}</a></li>\n  <li ng-if="boundaryLinks" ng-class="{disabled: noNext()}"><a href ng-click="selectPage(totalPages)">{{getText(\'last\')}}</a></li>\n</ul>')}]),angular.module("template/tooltip/tooltip-html-unsafe-popup.html",[]).run(["$templateCache",function($templateCache){$templateCache.put("template/tooltip/tooltip-html-unsafe-popup.html",'<div class="tooltip {{placement}}" ng-class="{ in: isOpen(), fade: animation() }">\n  <div class="tooltip-arrow"></div>\n  <div class="tooltip-inner" bind-html-unsafe="content"></div>\n</div>\n')}]),angular.module("template/tooltip/tooltip-popup.html",[]).run(["$templateCache",function($templateCache){$templateCache.put("template/tooltip/tooltip-popup.html",'<div class="tooltip {{placement}}" ng-class="{ in: isOpen(), fade: animation() }">\n  <div class="tooltip-arrow"></div>\n  <div class="tooltip-inner" ng-bind="content"></div>\n</div>\n')}]),angular.module("template/popover/popover.html",[]).run(["$templateCache",function($templateCache){$templateCache.put("template/popover/popover.html",'<div class="popover {{placement}}" ng-class="{ in: isOpen(), fade: animation() }">\n  <div class="arrow"></div>\n\n  <div class="popover-inner">\n      <h3 class="popover-title" ng-bind="title" ng-show="title"></h3>\n      <div class="popover-content" ng-bind="content"></div>\n  </div>\n</div>\n')}]),angular.module("template/progressbar/bar.html",[]).run(["$templateCache",function($templateCache){$templateCache.put("template/progressbar/bar.html",'<div class="progress-bar" ng-class="type && \'progress-bar-\' + type" role="progressbar" aria-valuenow="{{value}}" aria-valuemin="0" aria-valuemax="{{max}}" ng-style="{width: percent + \'%\'}" aria-valuetext="{{percent | number:0}}%" ng-transclude></div>')}]),angular.module("template/progressbar/progress.html",[]).run(["$templateCache",function($templateCache){$templateCache.put("template/progressbar/progress.html",'<div class="progress" ng-transclude></div>')}]),angular.module("template/progressbar/progressbar.html",[]).run(["$templateCache",function($templateCache){$templateCache.put("template/progressbar/progressbar.html",'<div class="progress">\n  <div class="progress-bar" ng-class="type && \'progress-bar-\' + type" role="progressbar" aria-valuenow="{{value}}" aria-valuemin="0" aria-valuemax="{{max}}" ng-style="{width: percent + \'%\'}" aria-valuetext="{{percent | number:0}}%" ng-transclude></div>\n</div>');
  }]),angular.module("template/rating/rating.html",[]).run(["$templateCache",function($templateCache){$templateCache.put("template/rating/rating.html",'<span ng-mouseleave="reset()" ng-keydown="onKeydown($event)" tabindex="0" role="slider" aria-valuemin="0" aria-valuemax="{{range.length}}" aria-valuenow="{{value}}">\n    <i ng-repeat="r in range track by $index" ng-mouseenter="enter($index + 1)" ng-click="rate($index + 1)" class="glyphicon" ng-class="$index < value && (r.stateOn || \'glyphicon-star\') || (r.stateOff || \'glyphicon-star-empty\')">\n        <span class="sr-only">({{ $index < value ? \'*\' : \' \' }})</span>\n    </i>\n</span>')}]),angular.module("template/tabs/tab.html",[]).run(["$templateCache",function($templateCache){$templateCache.put("template/tabs/tab.html",'<li ng-class="{active: active, disabled: disabled}">\n  <a ng-click="select()" tab-heading-transclude>{{heading}}</a>\n</li>\n')}]),angular.module("template/tabs/tabset.html",[]).run(["$templateCache",function($templateCache){$templateCache.put("template/tabs/tabset.html",'<div>\n  <ul class="nav nav-{{type || \'tabs\'}}" ng-class="{\'nav-stacked\': vertical, \'nav-justified\': justified}" ng-transclude></ul>\n  <div class="tab-content">\n    <div class="tab-pane" \n         ng-repeat="tab in tabs" \n         ng-class="{active: tab.active}"\n         tab-content-transclude="tab">\n    </div>\n  </div>\n</div>\n')}]),angular.module("template/timepicker/timepicker.html",[]).run(["$templateCache",function($templateCache){$templateCache.put("template/timepicker/timepicker.html",'<table>\n	<tbody>\n		<tr class="text-center">\n			<td><a ng-click="incrementHours()" class="btn btn-link"><span class="glyphicon glyphicon-chevron-up"></span></a></td>\n			<td>&nbsp;</td>\n			<td><a ng-click="incrementMinutes()" class="btn btn-link"><span class="glyphicon glyphicon-chevron-up"></span></a></td>\n			<td ng-show="showMeridian"></td>\n		</tr>\n		<tr>\n			<td style="width:50px;" class="form-group" ng-class="{\'has-error\': invalidHours}">\n				<input type="text" ng-model="hours" ng-change="updateHours()" class="form-control text-center" ng-mousewheel="incrementHours()" ng-readonly="readonlyInput" maxlength="2">\n			</td>\n			<td>:</td>\n			<td style="width:50px;" class="form-group" ng-class="{\'has-error\': invalidMinutes}">\n				<input type="text" ng-model="minutes" ng-change="updateMinutes()" class="form-control text-center" ng-readonly="readonlyInput" maxlength="2">\n			</td>\n			<td ng-show="showMeridian"><button type="button" class="btn btn-default text-center" ng-click="toggleMeridian()">{{meridian}}</button></td>\n		</tr>\n		<tr class="text-center">\n			<td><a ng-click="decrementHours()" class="btn btn-link"><span class="glyphicon glyphicon-chevron-down"></span></a></td>\n			<td>&nbsp;</td>\n			<td><a ng-click="decrementMinutes()" class="btn btn-link"><span class="glyphicon glyphicon-chevron-down"></span></a></td>\n			<td ng-show="showMeridian"></td>\n		</tr>\n	</tbody>\n</table>\n')}]),angular.module("template/typeahead/typeahead-match.html",[]).run(["$templateCache",function($templateCache){$templateCache.put("template/typeahead/typeahead-match.html",'<a tabindex="-1" bind-html-unsafe="match.label | typeaheadHighlight:query"></a>')}]),angular.module("template/typeahead/typeahead-popup.html",[]).run(["$templateCache",function($templateCache){$templateCache.put("template/typeahead/typeahead-popup.html",'<ul class="dropdown-menu" ng-show="isOpen()" ng-style="{top: position.top+\'px\', left: position.left+\'px\'}" style="display: block;" role="listbox" aria-hidden="{{!isOpen()}}">\n    <li ng-repeat="match in matches track by $index" ng-class="{active: isActive($index) }" ng-mouseenter="selectActive($index)" ng-click="selectMatch($index)" role="option" id="{{match.id}}">\n        <div typeahead-match index="$index" match="match" query="query" template-url="templateUrl"></div>\n    </li>\n</ul>\n')}]),"undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function($){"use strict";var version=$.fn.jquery.split(" ")[0].split(".");if(version[0]<2&&version[1]<9||1==version[0]&&9==version[1]&&version[2]<1)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher")}(jQuery),+function($){"use strict";function transitionEnd(){var el=document.createElement("bootstrap"),transEndEventNames={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var name in transEndEventNames)if(void 0!==el.style[name])return{end:transEndEventNames[name]};return!1}$.fn.emulateTransitionEnd=function(duration){var called=!1,$el=this;$(this).one("bsTransitionEnd",function(){called=!0});var callback=function(){called||$($el).trigger($.support.transition.end)};return setTimeout(callback,duration),this},$(function(){$.support.transition=transitionEnd(),$.support.transition&&($.event.special.bsTransitionEnd={bindType:$.support.transition.end,delegateType:$.support.transition.end,handle:function(e){return $(e.target).is(this)?e.handleObj.handler.apply(this,arguments):void 0}})})}(jQuery),+function($){"use strict";function Plugin(option){return this.each(function(){var $this=$(this),data=$this.data("bs.alert");data||$this.data("bs.alert",data=new Alert(this)),"string"==typeof option&&data[option].call($this)})}var dismiss='[data-dismiss="alert"]',Alert=function(el){$(el).on("click",dismiss,this.close)};Alert.VERSION="3.3.5",Alert.TRANSITION_DURATION=150,Alert.prototype.close=function(e){function removeElement(){$parent.detach().trigger("closed.bs.alert").remove()}var $this=$(this),selector=$this.attr("data-target");selector||(selector=$this.attr("href"),selector=selector&&selector.replace(/.*(?=#[^\s]*$)/,""));var $parent=$(selector);e&&e.preventDefault(),$parent.length||($parent=$this.closest(".alert")),$parent.trigger(e=$.Event("close.bs.alert")),e.isDefaultPrevented()||($parent.removeClass("in"),$.support.transition&&$parent.hasClass("fade")?$parent.one("bsTransitionEnd",removeElement).emulateTransitionEnd(Alert.TRANSITION_DURATION):removeElement())};var old=$.fn.alert;$.fn.alert=Plugin,$.fn.alert.Constructor=Alert,$.fn.alert.noConflict=function(){return $.fn.alert=old,this},$(document).on("click.bs.alert.data-api",dismiss,Alert.prototype.close)}(jQuery),+function($){"use strict";function Plugin(option){return this.each(function(){var $this=$(this),data=$this.data("bs.button"),options="object"==typeof option&&option;data||$this.data("bs.button",data=new Button(this,options)),"toggle"==option?data.toggle():option&&data.setState(option)})}var Button=function(element,options){this.$element=$(element),this.options=$.extend({},Button.DEFAULTS,options),this.isLoading=!1};Button.VERSION="3.3.5",Button.DEFAULTS={loadingText:"loading..."},Button.prototype.setState=function(state){var d="disabled",$el=this.$element,val=$el.is("input")?"val":"html",data=$el.data();state+="Text",null==data.resetText&&$el.data("resetText",$el[val]()),setTimeout($.proxy(function(){$el[val](null==data[state]?this.options[state]:data[state]),"loadingText"==state?(this.isLoading=!0,$el.addClass(d).attr(d,d)):this.isLoading&&(this.isLoading=!1,$el.removeClass(d).removeAttr(d))},this),0)},Button.prototype.toggle=function(){var changed=!0,$parent=this.$element.closest('[data-toggle="buttons"]');if($parent.length){var $input=this.$element.find("input");"radio"==$input.prop("type")?($input.prop("checked")&&(changed=!1),$parent.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==$input.prop("type")&&($input.prop("checked")!==this.$element.hasClass("active")&&(changed=!1),this.$element.toggleClass("active")),$input.prop("checked",this.$element.hasClass("active")),changed&&$input.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var old=$.fn.button;$.fn.button=Plugin,$.fn.button.Constructor=Button,$.fn.button.noConflict=function(){return $.fn.button=old,this},$(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(e){var $btn=$(e.target);$btn.hasClass("btn")||($btn=$btn.closest(".btn")),Plugin.call($btn,"toggle"),$(e.target).is('input[type="radio"]')||$(e.target).is('input[type="checkbox"]')||e.preventDefault()}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(e){$(e.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(e.type))})}(jQuery),+function($){"use strict";function Plugin(option){return this.each(function(){var $this=$(this),data=$this.data("bs.carousel"),options=$.extend({},Carousel.DEFAULTS,$this.data(),"object"==typeof option&&option),action="string"==typeof option?option:options.slide;data||$this.data("bs.carousel",data=new Carousel(this,options)),"number"==typeof option?data.to(option):action?data[action]():options.interval&&data.pause().cycle()})}var Carousel=function(element,options){this.$element=$(element),this.$indicators=this.$element.find(".carousel-indicators"),this.options=options,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",$.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",$.proxy(this.pause,this)).on("mouseleave.bs.carousel",$.proxy(this.cycle,this))};Carousel.VERSION="3.3.5",Carousel.TRANSITION_DURATION=600,Carousel.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},Carousel.prototype.keydown=function(e){if(!/input|textarea/i.test(e.target.tagName)){switch(e.which){case 37:this.prev();break;case 39:this.next();break;default:return}e.preventDefault()}},Carousel.prototype.cycle=function(e){return e||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval($.proxy(this.next,this),this.options.interval)),this},Carousel.prototype.getItemIndex=function(item){return this.$items=item.parent().children(".item"),this.$items.index(item||this.$active)},Carousel.prototype.getItemForDirection=function(direction,active){var activeIndex=this.getItemIndex(active),willWrap="prev"==direction&&0===activeIndex||"next"==direction&&activeIndex==this.$items.length-1;if(willWrap&&!this.options.wrap)return active;var delta="prev"==direction?-1:1,itemIndex=(activeIndex+delta)%this.$items.length;return this.$items.eq(itemIndex)},Carousel.prototype.to=function(pos){var that=this,activeIndex=this.getItemIndex(this.$active=this.$element.find(".item.active"));return pos>this.$items.length-1||0>pos?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){that.to(pos)}):activeIndex==pos?this.pause().cycle():this.slide(pos>activeIndex?"next":"prev",this.$items.eq(pos))},Carousel.prototype.pause=function(e){return e||(this.paused=!0),this.$element.find(".next, .prev").length&&$.support.transition&&(this.$element.trigger($.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},Carousel.prototype.next=function(){return this.sliding?void 0:this.slide("next")},Carousel.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},Carousel.prototype.slide=function(type,next){var $active=this.$element.find(".item.active"),$next=next||this.getItemForDirection(type,$active),isCycling=this.interval,direction="next"==type?"left":"right",that=this;if($next.hasClass("active"))return this.sliding=!1;var relatedTarget=$next[0],slideEvent=$.Event("slide.bs.carousel",{relatedTarget:relatedTarget,direction:direction});if(this.$element.trigger(slideEvent),!slideEvent.isDefaultPrevented()){if(this.sliding=!0,isCycling&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var $nextIndicator=$(this.$indicators.children()[this.getItemIndex($next)]);$nextIndicator&&$nextIndicator.addClass("active")}var slidEvent=$.Event("slid.bs.carousel",{relatedTarget:relatedTarget,direction:direction});return $.support.transition&&this.$element.hasClass("slide")?($next.addClass(type),$next[0].offsetWidth,$active.addClass(direction),$next.addClass(direction),$active.one("bsTransitionEnd",function(){$next.removeClass([type,direction].join(" ")).addClass("active"),$active.removeClass(["active",direction].join(" ")),that.sliding=!1,setTimeout(function(){that.$element.trigger(slidEvent)},0)}).emulateTransitionEnd(Carousel.TRANSITION_DURATION)):($active.removeClass("active"),$next.addClass("active"),this.sliding=!1,this.$element.trigger(slidEvent)),isCycling&&this.cycle(),this}};var old=$.fn.carousel;$.fn.carousel=Plugin,$.fn.carousel.Constructor=Carousel,$.fn.carousel.noConflict=function(){return $.fn.carousel=old,this};var clickHandler=function(e){var href,$this=$(this),$target=$($this.attr("data-target")||(href=$this.attr("href"))&&href.replace(/.*(?=#[^\s]+$)/,""));if($target.hasClass("carousel")){var options=$.extend({},$target.data(),$this.data()),slideIndex=$this.attr("data-slide-to");slideIndex&&(options.interval=!1),Plugin.call($target,options),slideIndex&&$target.data("bs.carousel").to(slideIndex),e.preventDefault()}};$(document).on("click.bs.carousel.data-api","[data-slide]",clickHandler).on("click.bs.carousel.data-api","[data-slide-to]",clickHandler),$(window).on("load",function(){$('[data-ride="carousel"]').each(function(){var $carousel=$(this);Plugin.call($carousel,$carousel.data())})})}(jQuery),+function($){"use strict";function getTargetFromTrigger($trigger){var href,target=$trigger.attr("data-target")||(href=$trigger.attr("href"))&&href.replace(/.*(?=#[^\s]+$)/,"");return $(target)}function Plugin(option){return this.each(function(){var $this=$(this),data=$this.data("bs.collapse"),options=$.extend({},Collapse.DEFAULTS,$this.data(),"object"==typeof option&&option);!data&&options.toggle&&/show|hide/.test(option)&&(options.toggle=!1),data||$this.data("bs.collapse",data=new Collapse(this,options)),"string"==typeof option&&data[option]()})}var Collapse=function(element,options){this.$element=$(element),this.options=$.extend({},Collapse.DEFAULTS,options),this.$trigger=$('[data-toggle="collapse"][href="#'+element.id+'"],[data-toggle="collapse"][data-target="#'+element.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};Collapse.VERSION="3.3.5",Collapse.TRANSITION_DURATION=350,Collapse.DEFAULTS={toggle:!0},Collapse.prototype.dimension=function(){var hasWidth=this.$element.hasClass("width");return hasWidth?"width":"height"},Collapse.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var activesData,actives=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(actives&&actives.length&&(activesData=actives.data("bs.collapse"),activesData&&activesData.transitioning))){var startEvent=$.Event("show.bs.collapse");if(this.$element.trigger(startEvent),!startEvent.isDefaultPrevented()){actives&&actives.length&&(Plugin.call(actives,"hide"),activesData||actives.data("bs.collapse",null));var dimension=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[dimension](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var complete=function(){this.$element.removeClass("collapsing").addClass("collapse in")[dimension](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!$.support.transition)return complete.call(this);var scrollSize=$.camelCase(["scroll",dimension].join("-"));this.$element.one("bsTransitionEnd",$.proxy(complete,this)).emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize])}}}},Collapse.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var startEvent=$.Event("hide.bs.collapse");if(this.$element.trigger(startEvent),!startEvent.isDefaultPrevented()){var dimension=this.dimension();this.$element[dimension](this.$element[dimension]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var complete=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return $.support.transition?void this.$element[dimension](0).one("bsTransitionEnd",$.proxy(complete,this)).emulateTransitionEnd(Collapse.TRANSITION_DURATION):complete.call(this)}}},Collapse.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},Collapse.prototype.getParent=function(){return $(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each($.proxy(function(i,element){var $element=$(element);this.addAriaAndCollapsedClass(getTargetFromTrigger($element),$element)},this)).end()},Collapse.prototype.addAriaAndCollapsedClass=function($element,$trigger){var isOpen=$element.hasClass("in");$element.attr("aria-expanded",isOpen),$trigger.toggleClass("collapsed",!isOpen).attr("aria-expanded",isOpen)};var old=$.fn.collapse;$.fn.collapse=Plugin,$.fn.collapse.Constructor=Collapse,$.fn.collapse.noConflict=function(){return $.fn.collapse=old,this},$(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(e){var $this=$(this);$this.attr("data-target")||e.preventDefault();var $target=getTargetFromTrigger($this),data=$target.data("bs.collapse"),option=data?"toggle":$this.data();Plugin.call($target,option)})}(jQuery),+function($){"use strict";function getParent($this){var selector=$this.attr("data-target");selector||(selector=$this.attr("href"),selector=selector&&/#[A-Za-z]/.test(selector)&&selector.replace(/.*(?=#[^\s]*$)/,""));var $parent=selector&&$(selector);return $parent&&$parent.length?$parent:$this.parent()}function clearMenus(e){e&&3===e.which||($(backdrop).remove(),$(toggle).each(function(){var $this=$(this),$parent=getParent($this),relatedTarget={relatedTarget:this};$parent.hasClass("open")&&(e&&"click"==e.type&&/input|textarea/i.test(e.target.tagName)&&$.contains($parent[0],e.target)||($parent.trigger(e=$.Event("hide.bs.dropdown",relatedTarget)),e.isDefaultPrevented()||($this.attr("aria-expanded","false"),$parent.removeClass("open").trigger("hidden.bs.dropdown",relatedTarget))))}))}function Plugin(option){return this.each(function(){var $this=$(this),data=$this.data("bs.dropdown");data||$this.data("bs.dropdown",data=new Dropdown(this)),"string"==typeof option&&data[option].call($this)})}var backdrop=".dropdown-backdrop",toggle='[data-toggle="dropdown"]',Dropdown=function(element){$(element).on("click.bs.dropdown",this.toggle)};Dropdown.VERSION="3.3.5",Dropdown.prototype.toggle=function(e){var $this=$(this);if(!$this.is(".disabled, :disabled")){var $parent=getParent($this),isActive=$parent.hasClass("open");if(clearMenus(),!isActive){"ontouchstart"in document.documentElement&&!$parent.closest(".navbar-nav").length&&$(document.createElement("div")).addClass("dropdown-backdrop").insertAfter($(this)).on("click",clearMenus);var relatedTarget={relatedTarget:this};if($parent.trigger(e=$.Event("show.bs.dropdown",relatedTarget)),e.isDefaultPrevented())return;$this.trigger("focus").attr("aria-expanded","true"),$parent.toggleClass("open").trigger("shown.bs.dropdown",relatedTarget)}return!1}},Dropdown.prototype.keydown=function(e){if(/(38|40|27|32)/.test(e.which)&&!/input|textarea/i.test(e.target.tagName)){var $this=$(this);if(e.preventDefault(),e.stopPropagation(),!$this.is(".disabled, :disabled")){var $parent=getParent($this),isActive=$parent.hasClass("open");if(!isActive&&27!=e.which||isActive&&27==e.which)return 27==e.which&&$parent.find(toggle).trigger("focus"),$this.trigger("click");var desc=" li:not(.disabled):visible a",$items=$parent.find(".dropdown-menu"+desc);if($items.length){var index=$items.index(e.target);38==e.which&&index>0&&index--,40==e.which&&index<$items.length-1&&index++,~index||(index=0),$items.eq(index).trigger("focus")}}}};var old=$.fn.dropdown;$.fn.dropdown=Plugin,$.fn.dropdown.Constructor=Dropdown,$.fn.dropdown.noConflict=function(){return $.fn.dropdown=old,this},$(document).on("click.bs.dropdown.data-api",clearMenus).on("click.bs.dropdown.data-api",".dropdown form",function(e){e.stopPropagation()}).on("click.bs.dropdown.data-api",toggle,Dropdown.prototype.toggle).on("keydown.bs.dropdown.data-api",toggle,Dropdown.prototype.keydown).on("keydown.bs.dropdown.data-api",".dropdown-menu",Dropdown.prototype.keydown)}(jQuery),+function($){"use strict";function Plugin(option,_relatedTarget){return this.each(function(){var $this=$(this),data=$this.data("bs.modal"),options=$.extend({},Modal.DEFAULTS,$this.data(),"object"==typeof option&&option);data||$this.data("bs.modal",data=new Modal(this,options)),"string"==typeof option?data[option](_relatedTarget):options.show&&data.show(_relatedTarget)})}var Modal=function(element,options){this.options=options,this.$body=$(document.body),this.$element=$(element),this.$dialog=this.$element.find(".modal-dialog"),this.$backdrop=null,this.isShown=null,this.originalBodyPad=null,this.scrollbarWidth=0,this.ignoreBackdropClick=!1,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,$.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};Modal.VERSION="3.3.5",Modal.TRANSITION_DURATION=300,Modal.BACKDROP_TRANSITION_DURATION=150,Modal.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},Modal.prototype.toggle=function(_relatedTarget){return this.isShown?this.hide():this.show(_relatedTarget)},Modal.prototype.show=function(_relatedTarget){var that=this,e=$.Event("show.bs.modal",{relatedTarget:_relatedTarget});this.$element.trigger(e),this.isShown||e.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.setScrollbar(),this.$body.addClass("modal-open"),this.escape(),this.resize(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',$.proxy(this.hide,this)),this.$dialog.on("mousedown.dismiss.bs.modal",function(){that.$element.one("mouseup.dismiss.bs.modal",function(e){$(e.target).is(that.$element)&&(that.ignoreBackdropClick=!0)})}),this.backdrop(function(){var transition=$.support.transition&&that.$element.hasClass("fade");that.$element.parent().length||that.$element.appendTo(that.$body),that.$element.show().scrollTop(0),that.adjustDialog(),transition&&that.$element[0].offsetWidth,that.$element.addClass("in"),that.enforceFocus();var e=$.Event("shown.bs.modal",{relatedTarget:_relatedTarget});transition?that.$dialog.one("bsTransitionEnd",function(){that.$element.trigger("focus").trigger(e)}).emulateTransitionEnd(Modal.TRANSITION_DURATION):that.$element.trigger("focus").trigger(e)}))},Modal.prototype.hide=function(e){e&&e.preventDefault(),e=$.Event("hide.bs.modal"),this.$element.trigger(e),this.isShown&&!e.isDefaultPrevented()&&(this.isShown=!1,this.escape(),this.resize(),$(document).off("focusin.bs.modal"),this.$element.removeClass("in").off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"),this.$dialog.off("mousedown.dismiss.bs.modal"),$.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",$.proxy(this.hideModal,this)).emulateTransitionEnd(Modal.TRANSITION_DURATION):this.hideModal())},Modal.prototype.enforceFocus=function(){$(document).off("focusin.bs.modal").on("focusin.bs.modal",$.proxy(function(e){this.$element[0]===e.target||this.$element.has(e.target).length||this.$element.trigger("focus")},this))},Modal.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keydown.dismiss.bs.modal",$.proxy(function(e){27==e.which&&this.hide()},this)):this.isShown||this.$element.off("keydown.dismiss.bs.modal")},Modal.prototype.resize=function(){this.isShown?$(window).on("resize.bs.modal",$.proxy(this.handleUpdate,this)):$(window).off("resize.bs.modal")},Modal.prototype.hideModal=function(){var that=this;this.$element.hide(),this.backdrop(function(){that.$body.removeClass("modal-open"),that.resetAdjustments(),that.resetScrollbar(),that.$element.trigger("hidden.bs.modal")})},Modal.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},Modal.prototype.backdrop=function(callback){var that=this,animate=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var doAnimate=$.support.transition&&animate;if(this.$backdrop=$(document.createElement("div")).addClass("modal-backdrop "+animate).appendTo(this.$body),this.$element.on("click.dismiss.bs.modal",$.proxy(function(e){return this.ignoreBackdropClick?void(this.ignoreBackdropClick=!1):void(e.target===e.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus():this.hide()))},this)),doAnimate&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!callback)return;doAnimate?this.$backdrop.one("bsTransitionEnd",callback).emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION):callback()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var callbackRemove=function(){that.removeBackdrop(),callback&&callback()};$.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",callbackRemove).emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION):callbackRemove()}else callback&&callback()},Modal.prototype.handleUpdate=function(){this.adjustDialog()},Modal.prototype.adjustDialog=function(){var modalIsOverflowing=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&modalIsOverflowing?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!modalIsOverflowing?this.scrollbarWidth:""})},Modal.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},Modal.prototype.checkScrollbar=function(){var fullWindowWidth=window.innerWidth;if(!fullWindowWidth){var documentElementRect=document.documentElement.getBoundingClientRect();fullWindowWidth=documentElementRect.right-Math.abs(documentElementRect.left)}this.bodyIsOverflowing=document.body.clientWidth<fullWindowWidth,this.scrollbarWidth=this.measureScrollbar()},Modal.prototype.setScrollbar=function(){var bodyPad=parseInt(this.$body.css("padding-right")||0,10);this.originalBodyPad=document.body.style.paddingRight||"",this.bodyIsOverflowing&&this.$body.css("padding-right",bodyPad+this.scrollbarWidth)},Modal.prototype.resetScrollbar=function(){this.$body.css("padding-right",this.originalBodyPad)},Modal.prototype.measureScrollbar=function(){var scrollDiv=document.createElement("div");scrollDiv.className="modal-scrollbar-measure",this.$body.append(scrollDiv);var scrollbarWidth=scrollDiv.offsetWidth-scrollDiv.clientWidth;return this.$body[0].removeChild(scrollDiv),scrollbarWidth};var old=$.fn.modal;$.fn.modal=Plugin,$.fn.modal.Constructor=Modal,$.fn.modal.noConflict=function(){return $.fn.modal=old,this},$(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(e){var $this=$(this),href=$this.attr("href"),$target=$($this.attr("data-target")||href&&href.replace(/.*(?=#[^\s]+$)/,"")),option=$target.data("bs.modal")?"toggle":$.extend({remote:!/#/.test(href)&&href},$target.data(),$this.data());$this.is("a")&&e.preventDefault(),$target.one("show.bs.modal",function(showEvent){showEvent.isDefaultPrevented()||$target.one("hidden.bs.modal",function(){$this.is(":visible")&&$this.trigger("focus")})}),Plugin.call($target,option,this)})}(jQuery),+function($){"use strict";function Plugin(option){return this.each(function(){var $this=$(this),data=$this.data("bs.tooltip"),options="object"==typeof option&&option;(data||!/destroy|hide/.test(option))&&(data||$this.data("bs.tooltip",data=new Tooltip(this,options)),"string"==typeof option&&data[option]())})}var Tooltip=function(element,options){this.type=null,this.options=null,this.enabled=null,this.timeout=null,this.hoverState=null,this.$element=null,this.inState=null,this.init("tooltip",element,options)};Tooltip.VERSION="3.3.5",Tooltip.TRANSITION_DURATION=150,Tooltip.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},Tooltip.prototype.init=function(type,element,options){if(this.enabled=!0,this.type=type,this.$element=$(element),this.options=this.getOptions(options),this.$viewport=this.options.viewport&&$($.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var triggers=this.options.trigger.split(" "),i=triggers.length;i--;){var trigger=triggers[i];if("click"==trigger)this.$element.on("click."+this.type,this.options.selector,$.proxy(this.toggle,this));else if("manual"!=trigger){var eventIn="hover"==trigger?"mouseenter":"focusin",eventOut="hover"==trigger?"mouseleave":"focusout";this.$element.on(eventIn+"."+this.type,this.options.selector,$.proxy(this.enter,this)),this.$element.on(eventOut+"."+this.type,this.options.selector,$.proxy(this.leave,this))}}this.options.selector?this._options=$.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},Tooltip.prototype.getDefaults=function(){return Tooltip.DEFAULTS},Tooltip.prototype.getOptions=function(options){return options=$.extend({},this.getDefaults(),this.$element.data(),options),options.delay&&"number"==typeof options.delay&&(options.delay={show:options.delay,hide:options.delay}),options},Tooltip.prototype.getDelegateOptions=function(){var options={},defaults=this.getDefaults();return this._options&&$.each(this._options,function(key,value){defaults[key]!=value&&(options[key]=value)}),options},Tooltip.prototype.enter=function(obj){var self=obj instanceof this.constructor?obj:$(obj.currentTarget).data("bs."+this.type);return self||(self=new this.constructor(obj.currentTarget,this.getDelegateOptions()),$(obj.currentTarget).data("bs."+this.type,self)),obj instanceof $.Event&&(self.inState["focusin"==obj.type?"focus":"hover"]=!0),self.tip().hasClass("in")||"in"==self.hoverState?void(self.hoverState="in"):(clearTimeout(self.timeout),self.hoverState="in",self.options.delay&&self.options.delay.show?void(self.timeout=setTimeout(function(){"in"==self.hoverState&&self.show()},self.options.delay.show)):self.show())},Tooltip.prototype.isInStateTrue=function(){for(var key in this.inState)if(this.inState[key])return!0;return!1},Tooltip.prototype.leave=function(obj){var self=obj instanceof this.constructor?obj:$(obj.currentTarget).data("bs."+this.type);return self||(self=new this.constructor(obj.currentTarget,this.getDelegateOptions()),$(obj.currentTarget).data("bs."+this.type,self)),obj instanceof $.Event&&(self.inState["focusout"==obj.type?"focus":"hover"]=!1),self.isInStateTrue()?void 0:(clearTimeout(self.timeout),self.hoverState="out",self.options.delay&&self.options.delay.hide?void(self.timeout=setTimeout(function(){"out"==self.hoverState&&self.hide()},self.options.delay.hide)):self.hide())},Tooltip.prototype.show=function(){var e=$.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(e);var inDom=$.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(e.isDefaultPrevented()||!inDom)return;var that=this,$tip=this.tip(),tipId=this.getUID(this.type);this.setContent(),$tip.attr("id",tipId),this.$element.attr("aria-describedby",tipId),this.options.animation&&$tip.addClass("fade");var placement="function"==typeof this.options.placement?this.options.placement.call(this,$tip[0],this.$element[0]):this.options.placement,autoToken=/\s?auto?\s?/i,autoPlace=autoToken.test(placement);
  autoPlace&&(placement=placement.replace(autoToken,"")||"top"),$tip.detach().css({top:0,left:0,display:"block"}).addClass(placement).data("bs."+this.type,this),this.options.container?$tip.appendTo(this.options.container):$tip.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var pos=this.getPosition(),actualWidth=$tip[0].offsetWidth,actualHeight=$tip[0].offsetHeight;if(autoPlace){var orgPlacement=placement,viewportDim=this.getPosition(this.$viewport);placement="bottom"==placement&&pos.bottom+actualHeight>viewportDim.bottom?"top":"top"==placement&&pos.top-actualHeight<viewportDim.top?"bottom":"right"==placement&&pos.right+actualWidth>viewportDim.width?"left":"left"==placement&&pos.left-actualWidth<viewportDim.left?"right":placement,$tip.removeClass(orgPlacement).addClass(placement)}var calculatedOffset=this.getCalculatedOffset(placement,pos,actualWidth,actualHeight);this.applyPlacement(calculatedOffset,placement);var complete=function(){var prevHoverState=that.hoverState;that.$element.trigger("shown.bs."+that.type),that.hoverState=null,"out"==prevHoverState&&that.leave(that)};$.support.transition&&this.$tip.hasClass("fade")?$tip.one("bsTransitionEnd",complete).emulateTransitionEnd(Tooltip.TRANSITION_DURATION):complete()}},Tooltip.prototype.applyPlacement=function(offset,placement){var $tip=this.tip(),width=$tip[0].offsetWidth,height=$tip[0].offsetHeight,marginTop=parseInt($tip.css("margin-top"),10),marginLeft=parseInt($tip.css("margin-left"),10);isNaN(marginTop)&&(marginTop=0),isNaN(marginLeft)&&(marginLeft=0),offset.top+=marginTop,offset.left+=marginLeft,$.offset.setOffset($tip[0],$.extend({using:function(props){$tip.css({top:Math.round(props.top),left:Math.round(props.left)})}},offset),0),$tip.addClass("in");var actualWidth=$tip[0].offsetWidth,actualHeight=$tip[0].offsetHeight;"top"==placement&&actualHeight!=height&&(offset.top=offset.top+height-actualHeight);var delta=this.getViewportAdjustedDelta(placement,offset,actualWidth,actualHeight);delta.left?offset.left+=delta.left:offset.top+=delta.top;var isVertical=/top|bottom/.test(placement),arrowDelta=isVertical?2*delta.left-width+actualWidth:2*delta.top-height+actualHeight,arrowOffsetPosition=isVertical?"offsetWidth":"offsetHeight";$tip.offset(offset),this.replaceArrow(arrowDelta,$tip[0][arrowOffsetPosition],isVertical)},Tooltip.prototype.replaceArrow=function(delta,dimension,isVertical){this.arrow().css(isVertical?"left":"top",50*(1-delta/dimension)+"%").css(isVertical?"top":"left","")},Tooltip.prototype.setContent=function(){var $tip=this.tip(),title=this.getTitle();$tip.find(".tooltip-inner")[this.options.html?"html":"text"](title),$tip.removeClass("fade in top bottom left right")},Tooltip.prototype.hide=function(callback){function complete(){"in"!=that.hoverState&&$tip.detach(),that.$element.removeAttr("aria-describedby").trigger("hidden.bs."+that.type),callback&&callback()}var that=this,$tip=$(this.$tip),e=$.Event("hide.bs."+this.type);return this.$element.trigger(e),e.isDefaultPrevented()?void 0:($tip.removeClass("in"),$.support.transition&&$tip.hasClass("fade")?$tip.one("bsTransitionEnd",complete).emulateTransitionEnd(Tooltip.TRANSITION_DURATION):complete(),this.hoverState=null,this)},Tooltip.prototype.fixTitle=function(){var $e=this.$element;($e.attr("title")||"string"!=typeof $e.attr("data-original-title"))&&$e.attr("data-original-title",$e.attr("title")||"").attr("title","")},Tooltip.prototype.hasContent=function(){return this.getTitle()},Tooltip.prototype.getPosition=function($element){$element=$element||this.$element;var el=$element[0],isBody="BODY"==el.tagName,elRect=el.getBoundingClientRect();null==elRect.width&&(elRect=$.extend({},elRect,{width:elRect.right-elRect.left,height:elRect.bottom-elRect.top}));var elOffset=isBody?{top:0,left:0}:$element.offset(),scroll={scroll:isBody?document.documentElement.scrollTop||document.body.scrollTop:$element.scrollTop()},outerDims=isBody?{width:$(window).width(),height:$(window).height()}:null;return $.extend({},elRect,scroll,outerDims,elOffset)},Tooltip.prototype.getCalculatedOffset=function(placement,pos,actualWidth,actualHeight){return"bottom"==placement?{top:pos.top+pos.height,left:pos.left+pos.width/2-actualWidth/2}:"top"==placement?{top:pos.top-actualHeight,left:pos.left+pos.width/2-actualWidth/2}:"left"==placement?{top:pos.top+pos.height/2-actualHeight/2,left:pos.left-actualWidth}:{top:pos.top+pos.height/2-actualHeight/2,left:pos.left+pos.width}},Tooltip.prototype.getViewportAdjustedDelta=function(placement,pos,actualWidth,actualHeight){var delta={top:0,left:0};if(!this.$viewport)return delta;var viewportPadding=this.options.viewport&&this.options.viewport.padding||0,viewportDimensions=this.getPosition(this.$viewport);if(/right|left/.test(placement)){var topEdgeOffset=pos.top-viewportPadding-viewportDimensions.scroll,bottomEdgeOffset=pos.top+viewportPadding-viewportDimensions.scroll+actualHeight;topEdgeOffset<viewportDimensions.top?delta.top=viewportDimensions.top-topEdgeOffset:bottomEdgeOffset>viewportDimensions.top+viewportDimensions.height&&(delta.top=viewportDimensions.top+viewportDimensions.height-bottomEdgeOffset)}else{var leftEdgeOffset=pos.left-viewportPadding,rightEdgeOffset=pos.left+viewportPadding+actualWidth;leftEdgeOffset<viewportDimensions.left?delta.left=viewportDimensions.left-leftEdgeOffset:rightEdgeOffset>viewportDimensions.right&&(delta.left=viewportDimensions.left+viewportDimensions.width-rightEdgeOffset)}return delta},Tooltip.prototype.getTitle=function(){var title,$e=this.$element,o=this.options;return title=$e.attr("data-original-title")||("function"==typeof o.title?o.title.call($e[0]):o.title)},Tooltip.prototype.getUID=function(prefix){do prefix+=~~(1e6*Math.random());while(document.getElementById(prefix));return prefix},Tooltip.prototype.tip=function(){if(!this.$tip&&(this.$tip=$(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},Tooltip.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},Tooltip.prototype.enable=function(){this.enabled=!0},Tooltip.prototype.disable=function(){this.enabled=!1},Tooltip.prototype.toggleEnabled=function(){this.enabled=!this.enabled},Tooltip.prototype.toggle=function(e){var self=this;e&&(self=$(e.currentTarget).data("bs."+this.type),self||(self=new this.constructor(e.currentTarget,this.getDelegateOptions()),$(e.currentTarget).data("bs."+this.type,self))),e?(self.inState.click=!self.inState.click,self.isInStateTrue()?self.enter(self):self.leave(self)):self.tip().hasClass("in")?self.leave(self):self.enter(self)},Tooltip.prototype.destroy=function(){var that=this;clearTimeout(this.timeout),this.hide(function(){that.$element.off("."+that.type).removeData("bs."+that.type),that.$tip&&that.$tip.detach(),that.$tip=null,that.$arrow=null,that.$viewport=null})};var old=$.fn.tooltip;$.fn.tooltip=Plugin,$.fn.tooltip.Constructor=Tooltip,$.fn.tooltip.noConflict=function(){return $.fn.tooltip=old,this}}(jQuery),+function($){"use strict";function Plugin(option){return this.each(function(){var $this=$(this),data=$this.data("bs.popover"),options="object"==typeof option&&option;(data||!/destroy|hide/.test(option))&&(data||$this.data("bs.popover",data=new Popover(this,options)),"string"==typeof option&&data[option]())})}var Popover=function(element,options){this.init("popover",element,options)};if(!$.fn.tooltip)throw new Error("Popover requires tooltip.js");Popover.VERSION="3.3.5",Popover.DEFAULTS=$.extend({},$.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),Popover.prototype=$.extend({},$.fn.tooltip.Constructor.prototype),Popover.prototype.constructor=Popover,Popover.prototype.getDefaults=function(){return Popover.DEFAULTS},Popover.prototype.setContent=function(){var $tip=this.tip(),title=this.getTitle(),content=this.getContent();$tip.find(".popover-title")[this.options.html?"html":"text"](title),$tip.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof content?"html":"append":"text"](content),$tip.removeClass("fade top bottom left right in"),$tip.find(".popover-title").html()||$tip.find(".popover-title").hide()},Popover.prototype.hasContent=function(){return this.getTitle()||this.getContent()},Popover.prototype.getContent=function(){var $e=this.$element,o=this.options;return $e.attr("data-content")||("function"==typeof o.content?o.content.call($e[0]):o.content)},Popover.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var old=$.fn.popover;$.fn.popover=Plugin,$.fn.popover.Constructor=Popover,$.fn.popover.noConflict=function(){return $.fn.popover=old,this}}(jQuery),+function($){"use strict";function ScrollSpy(element,options){this.$body=$(document.body),this.$scrollElement=$($(element).is(document.body)?window:element),this.options=$.extend({},ScrollSpy.DEFAULTS,options),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",$.proxy(this.process,this)),this.refresh(),this.process()}function Plugin(option){return this.each(function(){var $this=$(this),data=$this.data("bs.scrollspy"),options="object"==typeof option&&option;data||$this.data("bs.scrollspy",data=new ScrollSpy(this,options)),"string"==typeof option&&data[option]()})}ScrollSpy.VERSION="3.3.5",ScrollSpy.DEFAULTS={offset:10},ScrollSpy.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},ScrollSpy.prototype.refresh=function(){var that=this,offsetMethod="offset",offsetBase=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),$.isWindow(this.$scrollElement[0])||(offsetMethod="position",offsetBase=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var $el=$(this),href=$el.data("target")||$el.attr("href"),$href=/^#./.test(href)&&$(href);return $href&&$href.length&&$href.is(":visible")&&[[$href[offsetMethod]().top+offsetBase,href]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){that.offsets.push(this[0]),that.targets.push(this[1])})},ScrollSpy.prototype.process=function(){var i,scrollTop=this.$scrollElement.scrollTop()+this.options.offset,scrollHeight=this.getScrollHeight(),maxScroll=this.options.offset+scrollHeight-this.$scrollElement.height(),offsets=this.offsets,targets=this.targets,activeTarget=this.activeTarget;if(this.scrollHeight!=scrollHeight&&this.refresh(),scrollTop>=maxScroll)return activeTarget!=(i=targets[targets.length-1])&&this.activate(i);if(activeTarget&&scrollTop<offsets[0])return this.activeTarget=null,this.clear();for(i=offsets.length;i--;)activeTarget!=targets[i]&&scrollTop>=offsets[i]&&(void 0===offsets[i+1]||scrollTop<offsets[i+1])&&this.activate(targets[i])},ScrollSpy.prototype.activate=function(target){this.activeTarget=target,this.clear();var selector=this.selector+'[data-target="'+target+'"],'+this.selector+'[href="'+target+'"]',active=$(selector).parents("li").addClass("active");active.parent(".dropdown-menu").length&&(active=active.closest("li.dropdown").addClass("active")),active.trigger("activate.bs.scrollspy")},ScrollSpy.prototype.clear=function(){$(this.selector).parentsUntil(this.options.target,".active").removeClass("active")};var old=$.fn.scrollspy;$.fn.scrollspy=Plugin,$.fn.scrollspy.Constructor=ScrollSpy,$.fn.scrollspy.noConflict=function(){return $.fn.scrollspy=old,this},$(window).on("load.bs.scrollspy.data-api",function(){$('[data-spy="scroll"]').each(function(){var $spy=$(this);Plugin.call($spy,$spy.data())})})}(jQuery),+function($){"use strict";function Plugin(option){return this.each(function(){var $this=$(this),data=$this.data("bs.tab");data||$this.data("bs.tab",data=new Tab(this)),"string"==typeof option&&data[option]()})}var Tab=function(element){this.element=$(element)};Tab.VERSION="3.3.5",Tab.TRANSITION_DURATION=150,Tab.prototype.show=function(){var $this=this.element,$ul=$this.closest("ul:not(.dropdown-menu)"),selector=$this.data("target");if(selector||(selector=$this.attr("href"),selector=selector&&selector.replace(/.*(?=#[^\s]*$)/,"")),!$this.parent("li").hasClass("active")){var $previous=$ul.find(".active:last a"),hideEvent=$.Event("hide.bs.tab",{relatedTarget:$this[0]}),showEvent=$.Event("show.bs.tab",{relatedTarget:$previous[0]});if($previous.trigger(hideEvent),$this.trigger(showEvent),!showEvent.isDefaultPrevented()&&!hideEvent.isDefaultPrevented()){var $target=$(selector);this.activate($this.closest("li"),$ul),this.activate($target,$target.parent(),function(){$previous.trigger({type:"hidden.bs.tab",relatedTarget:$this[0]}),$this.trigger({type:"shown.bs.tab",relatedTarget:$previous[0]})})}}},Tab.prototype.activate=function(element,container,callback){function next(){$active.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),element.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),transition?(element[0].offsetWidth,element.addClass("in")):element.removeClass("fade"),element.parent(".dropdown-menu").length&&element.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),callback&&callback()}var $active=container.find("> .active"),transition=callback&&$.support.transition&&($active.length&&$active.hasClass("fade")||!!container.find("> .fade").length);$active.length&&transition?$active.one("bsTransitionEnd",next).emulateTransitionEnd(Tab.TRANSITION_DURATION):next(),$active.removeClass("in")};var old=$.fn.tab;$.fn.tab=Plugin,$.fn.tab.Constructor=Tab,$.fn.tab.noConflict=function(){return $.fn.tab=old,this};var clickHandler=function(e){e.preventDefault(),Plugin.call($(this),"show")};$(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',clickHandler).on("click.bs.tab.data-api",'[data-toggle="pill"]',clickHandler)}(jQuery),+function($){"use strict";function Plugin(option){return this.each(function(){var $this=$(this),data=$this.data("bs.affix"),options="object"==typeof option&&option;data||$this.data("bs.affix",data=new Affix(this,options)),"string"==typeof option&&data[option]()})}var Affix=function(element,options){this.options=$.extend({},Affix.DEFAULTS,options),this.$target=$(this.options.target).on("scroll.bs.affix.data-api",$.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",$.proxy(this.checkPositionWithEventLoop,this)),this.$element=$(element),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};Affix.VERSION="3.3.5",Affix.RESET="affix affix-top affix-bottom",Affix.DEFAULTS={offset:0,target:window},Affix.prototype.getState=function(scrollHeight,height,offsetTop,offsetBottom){var scrollTop=this.$target.scrollTop(),position=this.$element.offset(),targetHeight=this.$target.height();if(null!=offsetTop&&"top"==this.affixed)return offsetTop>scrollTop?"top":!1;if("bottom"==this.affixed)return null!=offsetTop?scrollTop+this.unpin<=position.top?!1:"bottom":scrollHeight-offsetBottom>=scrollTop+targetHeight?!1:"bottom";var initializing=null==this.affixed,colliderTop=initializing?scrollTop:position.top,colliderHeight=initializing?targetHeight:height;return null!=offsetTop&&offsetTop>=scrollTop?"top":null!=offsetBottom&&colliderTop+colliderHeight>=scrollHeight-offsetBottom?"bottom":!1},Affix.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(Affix.RESET).addClass("affix");var scrollTop=this.$target.scrollTop(),position=this.$element.offset();return this.pinnedOffset=position.top-scrollTop},Affix.prototype.checkPositionWithEventLoop=function(){setTimeout($.proxy(this.checkPosition,this),1)},Affix.prototype.checkPosition=function(){if(this.$element.is(":visible")){var height=this.$element.height(),offset=this.options.offset,offsetTop=offset.top,offsetBottom=offset.bottom,scrollHeight=Math.max($(document).height(),$(document.body).height());"object"!=typeof offset&&(offsetBottom=offsetTop=offset),"function"==typeof offsetTop&&(offsetTop=offset.top(this.$element)),"function"==typeof offsetBottom&&(offsetBottom=offset.bottom(this.$element));var affix=this.getState(scrollHeight,height,offsetTop,offsetBottom);if(this.affixed!=affix){null!=this.unpin&&this.$element.css("top","");var affixType="affix"+(affix?"-"+affix:""),e=$.Event(affixType+".bs.affix");if(this.$element.trigger(e),e.isDefaultPrevented())return;this.affixed=affix,this.unpin="bottom"==affix?this.getPinnedOffset():null,this.$element.removeClass(Affix.RESET).addClass(affixType).trigger(affixType.replace("affix","affixed")+".bs.affix")}"bottom"==affix&&this.$element.offset({top:scrollHeight-height-offsetBottom})}};var old=$.fn.affix;$.fn.affix=Plugin,$.fn.affix.Constructor=Affix,$.fn.affix.noConflict=function(){return $.fn.affix=old,this},$(window).on("load",function(){$('[data-spy="affix"]').each(function(){var $spy=$(this),data=$spy.data();data.offset=data.offset||{},null!=data.offsetBottom&&(data.offset.bottom=data.offsetBottom),null!=data.offsetTop&&(data.offset.top=data.offsetTop),Plugin.call($spy,data)})})}(jQuery),function($,window,document,undefined){function Plugin(element,options){this.element=$(element),this.settings=$.extend({},defaults,options),this._defaults=defaults,this._name=pluginName,this.init()}var pluginName="metisMenu",defaults={toggle:!0,doubleTapToGo:!1};Plugin.prototype={init:function(){var $this=this.element,$toggle=this.settings.toggle,obj=this;this.isIE()<=9?($this.find("li.active").has("ul").children("ul").collapse("show"),$this.find("li").not(".active").has("ul").children("ul").collapse("hide")):($this.find("li.active").has("ul").children("ul").addClass("collapse in"),$this.find("li").not(".active").has("ul").children("ul").addClass("collapse")),obj.settings.doubleTapToGo&&$this.find("li.active").has("ul").children("a").addClass("doubleTapToGo"),$this.find("li").has("ul").children("a").on("click."+pluginName,function(e){return e.preventDefault(),obj.settings.doubleTapToGo&&obj.doubleTapToGo($(this))&&"#"!==$(this).attr("href")&&""!==$(this).attr("href")?(e.stopPropagation(),void(document.location=$(this).attr("href"))):($(this).parent("li").toggleClass("active").children("ul").collapse("toggle"),void($toggle&&$(this).parent("li").siblings().removeClass("active").children("ul.in").collapse("hide")))})},isIE:function(){for(var undef,v=3,div=document.createElement("div"),all=div.getElementsByTagName("i");div.innerHTML="<!--[if gt IE "+ ++v+"]><i></i><![endif]-->",all[0];)return v>4?v:undef},doubleTapToGo:function(elem){var $this=this.element;return elem.hasClass("doubleTapToGo")?(elem.removeClass("doubleTapToGo"),!0):elem.parent().children("ul").length?($this.find(".doubleTapToGo").removeClass("doubleTapToGo"),elem.addClass("doubleTapToGo"),!1):void 0},remove:function(){this.element.off("."+pluginName),this.element.removeData(pluginName)}},$.fn[pluginName]=function(options){return this.each(function(){var el=$(this);el.data(pluginName)&&el.data(pluginName).remove(),el.data(pluginName,new Plugin(this,options))}),this}}(jQuery,window,document),function(){function baseIndexOf(array,value,fromIndex){for(var index=(fromIndex||0)-1,length=array?array.length:0;++index<length;)if(array[index]===value)return index;return-1}function cacheIndexOf(cache,value){var type=typeof value;if(cache=cache.cache,"boolean"==type||null==value)return cache[value]?0:-1;"number"!=type&&"string"!=type&&(type="object");var key="number"==type?value:keyPrefix+value;return cache=(cache=cache[type])&&cache[key],"object"==type?cache&&baseIndexOf(cache,value)>-1?0:-1:cache?0:-1}function cachePush(value){var cache=this.cache,type=typeof value;if("boolean"==type||null==value)cache[value]=!0;else{"number"!=type&&"string"!=type&&(type="object");var key="number"==type?value:keyPrefix+value,typeCache=cache[type]||(cache[type]={});"object"==type?(typeCache[key]||(typeCache[key]=[])).push(value):typeCache[key]=!0}}function charAtCallback(value){return value.charCodeAt(0)}function compareAscending(a,b){for(var ac=a.criteria,bc=b.criteria,index=-1,length=ac.length;++index<length;){var value=ac[index],other=bc[index];if(value!==other){if(value>other||"undefined"==typeof value)return 1;if(other>value||"undefined"==typeof other)return-1}}return a.index-b.index}function createCache(array){var index=-1,length=array.length,first=array[0],mid=array[length/2|0],last=array[length-1];if(first&&"object"==typeof first&&mid&&"object"==typeof mid&&last&&"object"==typeof last)return!1;var cache=getObject();cache["false"]=cache["null"]=cache["true"]=cache.undefined=!1;var result=getObject();for(result.array=array,result.cache=cache,result.push=cachePush;++index<length;)result.push(array[index]);return result}function escapeStringChar(match){return"\\"+stringEscapes[match]}function getArray(){return arrayPool.pop()||[]}function getObject(){return objectPool.pop()||{array:null,cache:null,criteria:null,"false":!1,index:0,"null":!1,number:null,object:null,push:null,string:null,"true":!1,undefined:!1,value:null}}function isNode(value){return"function"!=typeof value.toString&&"string"==typeof(value+"")}function releaseArray(array){array.length=0,arrayPool.length<maxPoolSize&&arrayPool.push(array)}function releaseObject(object){var cache=object.cache;cache&&releaseObject(cache),object.array=object.cache=object.criteria=object.object=object.number=object.string=object.value=null,objectPool.length<maxPoolSize&&objectPool.push(object)}function slice(array,start,end){start||(start=0),"undefined"==typeof end&&(end=array?array.length:0);for(var index=-1,length=end-start||0,result=Array(0>length?0:length);++index<length;)result[index]=array[start+index];return result}function runInContext(context){function lodash(value){return value&&"object"==typeof value&&!isArray(value)&&hasOwnProperty.call(value,"__wrapped__")?value:new lodashWrapper(value)}function lodashWrapper(value,chainAll){this.__chain__=!!chainAll,this.__wrapped__=value}function baseBind(bindData){function bound(){if(partialArgs){var args=slice(partialArgs);push.apply(args,arguments)}if(this instanceof bound){var thisBinding=baseCreate(func.prototype),result=func.apply(thisBinding,args||arguments);return isObject(result)?result:thisBinding}return func.apply(thisArg,args||arguments)}var func=bindData[0],partialArgs=bindData[2],thisArg=bindData[4];return setBindData(bound,bindData),bound}function baseClone(value,isDeep,callback,stackA,stackB){if(callback){var result=callback(value);if("undefined"!=typeof result)return result}var isObj=isObject(value);if(!isObj)return value;var className=toString.call(value);if(!cloneableClasses[className]||!support.nodeClass&&isNode(value))return value;var ctor=ctorByClass[className];switch(className){case boolClass:case dateClass:return new ctor(+value);case numberClass:case stringClass:return new ctor(value);case regexpClass:return result=ctor(value.source,reFlags.exec(value)),result.lastIndex=value.lastIndex,result}var isArr=isArray(value);if(isDeep){var initedStack=!stackA;stackA||(stackA=getArray()),stackB||(stackB=getArray());for(var length=stackA.length;length--;)if(stackA[length]==value)return stackB[length];result=isArr?ctor(value.length):{}}else result=isArr?slice(value):assign({},value);return isArr&&(hasOwnProperty.call(value,"index")&&(result.index=value.index),hasOwnProperty.call(value,"input")&&(result.input=value.input)),isDeep?(stackA.push(value),stackB.push(result),(isArr?baseEach:forOwn)(value,function(objValue,key){result[key]=baseClone(objValue,isDeep,callback,stackA,stackB)}),initedStack&&(releaseArray(stackA),releaseArray(stackB)),result):result}function baseCreate(prototype,properties){return isObject(prototype)?nativeCreate(prototype):{}}function baseCreateCallback(func,thisArg,argCount){if("function"!=typeof func)return identity;if("undefined"==typeof thisArg||!("prototype"in func))return func;var bindData=func.__bindData__;if("undefined"==typeof bindData&&(support.funcNames&&(bindData=!func.name),bindData=bindData||!support.funcDecomp,!bindData)){var source=fnToString.call(func);support.funcNames||(bindData=!reFuncName.test(source)),bindData||(bindData=reThis.test(source),setBindData(func,bindData))}if(bindData===!1||bindData!==!0&&1&bindData[1])return func;switch(argCount){case 1:return function(value){return func.call(thisArg,value)};case 2:return function(a,b){return func.call(thisArg,a,b)};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)}}return bind(func,thisArg)}function baseCreateWrapper(bindData){function bound(){var thisBinding=isBind?thisArg:this;if(partialArgs){var args=slice(partialArgs);push.apply(args,arguments)}if((partialRightArgs||isCurry)&&(args||(args=slice(arguments)),partialRightArgs&&push.apply(args,partialRightArgs),isCurry&&args.length<arity))return bitmask|=16,baseCreateWrapper([func,isCurryBound?bitmask:-4&bitmask,args,null,thisArg,arity]);if(args||(args=arguments),isBindKey&&(func=thisBinding[key]),this instanceof bound){thisBinding=baseCreate(func.prototype);var result=func.apply(thisBinding,args);return isObject(result)?result:thisBinding}return func.apply(thisBinding,args)}var func=bindData[0],bitmask=bindData[1],partialArgs=bindData[2],partialRightArgs=bindData[3],thisArg=bindData[4],arity=bindData[5],isBind=1&bitmask,isBindKey=2&bitmask,isCurry=4&bitmask,isCurryBound=8&bitmask,key=func;return setBindData(bound,bindData),bound}function baseDifference(array,values){var index=-1,indexOf=getIndexOf(),length=array?array.length:0,isLarge=length>=largeArraySize&&indexOf===baseIndexOf,result=[];if(isLarge){var cache=createCache(values);cache?(indexOf=cacheIndexOf,values=cache):isLarge=!1}for(;++index<length;){var value=array[index];indexOf(values,value)<0&&result.push(value)}return isLarge&&releaseObject(values),result}function baseFlatten(array,isShallow,isStrict,fromIndex){for(var index=(fromIndex||0)-1,length=array?array.length:0,result=[];++index<length;){var value=array[index];if(value&&"object"==typeof value&&"number"==typeof value.length&&(isArray(value)||isArguments(value))){isShallow||(value=baseFlatten(value,isShallow,isStrict));var valIndex=-1,valLength=value.length,resIndex=result.length;for(result.length+=valLength;++valIndex<valLength;)result[resIndex++]=value[valIndex]}else isStrict||result.push(value)}return result}function baseIsEqual(a,b,callback,isWhere,stackA,stackB){if(callback){var result=callback(a,b);if("undefined"!=typeof result)return!!result}if(a===b)return 0!==a||1/a==1/b;var type=typeof a,otherType=typeof b;if(!(a!==a||a&&objectTypes[type]||b&&objectTypes[otherType]))return!1;if(null==a||null==b)return a===b;var className=toString.call(a),otherClass=toString.call(b);if(className==argsClass&&(className=objectClass),otherClass==argsClass&&(otherClass=objectClass),className!=otherClass)return!1;switch(className){case boolClass:case dateClass:return+a==+b;case numberClass:return a!=+a?b!=+b:0==a?1/a==1/b:a==+b;case regexpClass:case stringClass:return a==String(b)}var isArr=className==arrayClass;if(!isArr){var aWrapped=hasOwnProperty.call(a,"__wrapped__"),bWrapped=hasOwnProperty.call(b,"__wrapped__");if(aWrapped||bWrapped)return baseIsEqual(aWrapped?a.__wrapped__:a,bWrapped?b.__wrapped__:b,callback,isWhere,stackA,stackB);if(className!=objectClass||!support.nodeClass&&(isNode(a)||isNode(b)))return!1;var ctorA=!support.argsObject&&isArguments(a)?Object:a.constructor,ctorB=!support.argsObject&&isArguments(b)?Object:b.constructor;if(ctorA!=ctorB&&!(isFunction(ctorA)&&ctorA instanceof ctorA&&isFunction(ctorB)&&ctorB instanceof ctorB)&&"constructor"in a&&"constructor"in b)return!1}var initedStack=!stackA;stackA||(stackA=getArray()),stackB||(stackB=getArray());for(var length=stackA.length;length--;)if(stackA[length]==a)return stackB[length]==b;var size=0;if(result=!0,stackA.push(a),stackB.push(b),isArr){if(length=a.length,size=b.length,result=size==length,result||isWhere)for(;size--;){var index=length,value=b[size];if(isWhere)for(;index--&&!(result=baseIsEqual(a[index],value,callback,isWhere,stackA,stackB)););else if(!(result=baseIsEqual(a[size],value,callback,isWhere,stackA,stackB)))break}}else forIn(b,function(value,key,b){return hasOwnProperty.call(b,key)?(size++,result=hasOwnProperty.call(a,key)&&baseIsEqual(a[key],value,callback,isWhere,stackA,stackB)):void 0}),result&&!isWhere&&forIn(a,function(value,key,a){return hasOwnProperty.call(a,key)?result=--size>-1:void 0});return stackA.pop(),stackB.pop(),initedStack&&(releaseArray(stackA),releaseArray(stackB)),result}function baseMerge(object,source,callback,stackA,stackB){(isArray(source)?forEach:forOwn)(source,function(source,key){var found,isArr,result=source,value=object[key];if(source&&((isArr=isArray(source))||isPlainObject(source))){for(var stackLength=stackA.length;stackLength--;)if(found=stackA[stackLength]==source){value=stackB[stackLength];break}if(!found){var isShallow;callback&&(result=callback(value,source),(isShallow="undefined"!=typeof result)&&(value=result)),isShallow||(value=isArr?isArray(value)?value:[]:isPlainObject(value)?value:{}),stackA.push(source),stackB.push(value),isShallow||baseMerge(value,source,callback,stackA,stackB)}}else callback&&(result=callback(value,source),"undefined"==typeof result&&(result=source)),"undefined"!=typeof result&&(value=result);object[key]=value})}function baseRandom(min,max){return min+floor(nativeRandom()*(max-min+1))}function baseUniq(array,isSorted,callback){var index=-1,indexOf=getIndexOf(),length=array?array.length:0,result=[],isLarge=!isSorted&&length>=largeArraySize&&indexOf===baseIndexOf,seen=callback||isLarge?getArray():result;if(isLarge){var cache=createCache(seen);indexOf=cacheIndexOf,seen=cache}for(;++index<length;){var value=array[index],computed=callback?callback(value,index,array):value;(isSorted?!index||seen[seen.length-1]!==computed:indexOf(seen,computed)<0)&&((callback||isLarge)&&seen.push(computed),result.push(value))}return isLarge?(releaseArray(seen.array),releaseObject(seen)):callback&&releaseArray(seen),result}function createAggregator(setter){return function(collection,callback,thisArg){var result={};if(callback=lodash.createCallback(callback,thisArg,3),isArray(collection))for(var index=-1,length=collection.length;++index<length;){var value=collection[index];setter(result,value,callback(value,index,collection),collection)}else baseEach(collection,function(value,key,collection){setter(result,value,callback(value,key,collection),collection)});return result}}function createWrapper(func,bitmask,partialArgs,partialRightArgs,thisArg,arity){var isBind=1&bitmask,isBindKey=2&bitmask,isCurry=4&bitmask,isPartial=16&bitmask,isPartialRight=32&bitmask;if(!isBindKey&&!isFunction(func))throw new TypeError;isPartial&&!partialArgs.length&&(bitmask&=-17,isPartial=partialArgs=!1),isPartialRight&&!partialRightArgs.length&&(bitmask&=-33,isPartialRight=partialRightArgs=!1);var bindData=func&&func.__bindData__;if(bindData&&bindData!==!0)return bindData=slice(bindData),bindData[2]&&(bindData[2]=slice(bindData[2])),bindData[3]&&(bindData[3]=slice(bindData[3])),!isBind||1&bindData[1]||(bindData[4]=thisArg),!isBind&&1&bindData[1]&&(bitmask|=8),!isCurry||4&bindData[1]||(bindData[5]=arity),isPartial&&push.apply(bindData[2]||(bindData[2]=[]),partialArgs),isPartialRight&&unshift.apply(bindData[3]||(bindData[3]=[]),partialRightArgs),bindData[1]|=bitmask,createWrapper.apply(null,bindData);var creater=1==bitmask||17===bitmask?baseBind:baseCreateWrapper;return creater([func,bitmask,partialArgs,partialRightArgs,thisArg,arity])}function createIterator(){iteratorData.shadowedProps=shadowedProps,
  iteratorData.array=iteratorData.bottom=iteratorData.loop=iteratorData.top="",iteratorData.init="iterable",iteratorData.useHas=!0;for(var object,index=0;object=arguments[index];index++)for(var key in object)iteratorData[key]=object[key];var args=iteratorData.args;iteratorData.firstArg=/^[^,]+/.exec(args)[0];var factory=Function("baseCreateCallback, errorClass, errorProto, hasOwnProperty, indicatorObject, isArguments, isArray, isString, keys, objectProto, objectTypes, nonEnumProps, stringClass, stringProto, toString","return function("+args+") {\n"+iteratorTemplate(iteratorData)+"\n}");return factory(baseCreateCallback,errorClass,errorProto,hasOwnProperty,indicatorObject,isArguments,isArray,isString,iteratorData.keys,objectProto,objectTypes,nonEnumProps,stringClass,stringProto,toString)}function escapeHtmlChar(match){return htmlEscapes[match]}function getIndexOf(){var result=(result=lodash.indexOf)===indexOf?baseIndexOf:result;return result}function isNative(value){return"function"==typeof value&&reNative.test(value)}function shimIsPlainObject(value){var ctor,result;return!value||toString.call(value)!=objectClass||(ctor=value.constructor,isFunction(ctor)&&!(ctor instanceof ctor))||!support.argsClass&&isArguments(value)||!support.nodeClass&&isNode(value)?!1:support.ownLast?(forIn(value,function(value,key,object){return result=hasOwnProperty.call(object,key),!1}),result!==!1):(forIn(value,function(value,key){result=key}),"undefined"==typeof result||hasOwnProperty.call(value,result))}function unescapeHtmlChar(match){return htmlUnescapes[match]}function isArguments(value){return value&&"object"==typeof value&&"number"==typeof value.length&&toString.call(value)==argsClass||!1}function clone(value,isDeep,callback,thisArg){return"boolean"!=typeof isDeep&&null!=isDeep&&(thisArg=callback,callback=isDeep,isDeep=!1),baseClone(value,isDeep,"function"==typeof callback&&baseCreateCallback(callback,thisArg,1))}function cloneDeep(value,callback,thisArg){return baseClone(value,!0,"function"==typeof callback&&baseCreateCallback(callback,thisArg,1))}function create(prototype,properties){var result=baseCreate(prototype);return properties?assign(result,properties):result}function findKey(object,callback,thisArg){var result;return callback=lodash.createCallback(callback,thisArg,3),forOwn(object,function(value,key,object){return callback(value,key,object)?(result=key,!1):void 0}),result}function findLastKey(object,callback,thisArg){var result;return callback=lodash.createCallback(callback,thisArg,3),forOwnRight(object,function(value,key,object){return callback(value,key,object)?(result=key,!1):void 0}),result}function forInRight(object,callback,thisArg){var pairs=[];forIn(object,function(value,key){pairs.push(key,value)});var length=pairs.length;for(callback=baseCreateCallback(callback,thisArg,3);length--&&callback(pairs[length--],pairs[length],object)!==!1;);return object}function forOwnRight(object,callback,thisArg){var props=keys(object),length=props.length;for(callback=baseCreateCallback(callback,thisArg,3);length--;){var key=props[length];if(callback(object[key],key,object)===!1)break}return object}function functions(object){var result=[];return forIn(object,function(value,key){isFunction(value)&&result.push(key)}),result.sort()}function has(object,key){return object?hasOwnProperty.call(object,key):!1}function invert(object){for(var index=-1,props=keys(object),length=props.length,result={};++index<length;){var key=props[index];result[object[key]]=key}return result}function isBoolean(value){return value===!0||value===!1||value&&"object"==typeof value&&toString.call(value)==boolClass||!1}function isDate(value){return value&&"object"==typeof value&&toString.call(value)==dateClass||!1}function isElement(value){return value&&1===value.nodeType||!1}function isEmpty(value){var result=!0;if(!value)return result;var className=toString.call(value),length=value.length;return className==arrayClass||className==stringClass||(support.argsClass?className==argsClass:isArguments(value))||className==objectClass&&"number"==typeof length&&isFunction(value.splice)?!length:(forOwn(value,function(){return result=!1}),result)}function isEqual(a,b,callback,thisArg){return baseIsEqual(a,b,"function"==typeof callback&&baseCreateCallback(callback,thisArg,2))}function isFinite(value){return nativeIsFinite(value)&&!nativeIsNaN(parseFloat(value))}function isFunction(value){return"function"==typeof value}function isObject(value){return!(!value||!objectTypes[typeof value])}function isNaN(value){return isNumber(value)&&value!=+value}function isNull(value){return null===value}function isNumber(value){return"number"==typeof value||value&&"object"==typeof value&&toString.call(value)==numberClass||!1}function isRegExp(value){return value&&objectTypes[typeof value]&&toString.call(value)==regexpClass||!1}function isString(value){return"string"==typeof value||value&&"object"==typeof value&&toString.call(value)==stringClass||!1}function isUndefined(value){return"undefined"==typeof value}function mapValues(object,callback,thisArg){var result={};return callback=lodash.createCallback(callback,thisArg,3),forOwn(object,function(value,key,object){result[key]=callback(value,key,object)}),result}function merge(object){var args=arguments,length=2;if(!isObject(object))return object;if("number"!=typeof args[2]&&(length=args.length),length>3&&"function"==typeof args[length-2])var callback=baseCreateCallback(args[--length-1],args[length--],2);else length>2&&"function"==typeof args[length-1]&&(callback=args[--length]);for(var sources=slice(arguments,1,length),index=-1,stackA=getArray(),stackB=getArray();++index<length;)baseMerge(object,sources[index],callback,stackA,stackB);return releaseArray(stackA),releaseArray(stackB),object}function omit(object,callback,thisArg){var result={};if("function"!=typeof callback){var props=[];forIn(object,function(value,key){props.push(key)}),props=baseDifference(props,baseFlatten(arguments,!0,!1,1));for(var index=-1,length=props.length;++index<length;){var key=props[index];result[key]=object[key]}}else callback=lodash.createCallback(callback,thisArg,3),forIn(object,function(value,key,object){callback(value,key,object)||(result[key]=value)});return result}function pairs(object){for(var index=-1,props=keys(object),length=props.length,result=Array(length);++index<length;){var key=props[index];result[index]=[key,object[key]]}return result}function pick(object,callback,thisArg){var result={};if("function"!=typeof callback)for(var index=-1,props=baseFlatten(arguments,!0,!1,1),length=isObject(object)?props.length:0;++index<length;){var key=props[index];key in object&&(result[key]=object[key])}else callback=lodash.createCallback(callback,thisArg,3),forIn(object,function(value,key,object){callback(value,key,object)&&(result[key]=value)});return result}function transform(object,callback,accumulator,thisArg){var isArr=isArray(object);if(null==accumulator)if(isArr)accumulator=[];else{var ctor=object&&object.constructor,proto=ctor&&ctor.prototype;accumulator=baseCreate(proto)}return callback&&(callback=lodash.createCallback(callback,thisArg,4),(isArr?baseEach:forOwn)(object,function(value,index,object){return callback(accumulator,value,index,object)})),accumulator}function values(object){for(var index=-1,props=keys(object),length=props.length,result=Array(length);++index<length;)result[index]=object[props[index]];return result}function at(collection){var args=arguments,index=-1,props=baseFlatten(args,!0,!1,1),length=args[2]&&args[2][args[1]]===collection?1:props.length,result=Array(length);for(support.unindexedChars&&isString(collection)&&(collection=collection.split(""));++index<length;)result[index]=collection[props[index]];return result}function contains(collection,target,fromIndex){var index=-1,indexOf=getIndexOf(),length=collection?collection.length:0,result=!1;return fromIndex=(0>fromIndex?nativeMax(0,length+fromIndex):fromIndex)||0,isArray(collection)?result=indexOf(collection,target,fromIndex)>-1:"number"==typeof length?result=(isString(collection)?collection.indexOf(target,fromIndex):indexOf(collection,target,fromIndex))>-1:baseEach(collection,function(value){return++index>=fromIndex?!(result=value===target):void 0}),result}function every(collection,callback,thisArg){var result=!0;if(callback=lodash.createCallback(callback,thisArg,3),isArray(collection))for(var index=-1,length=collection.length;++index<length&&(result=!!callback(collection[index],index,collection)););else baseEach(collection,function(value,index,collection){return result=!!callback(value,index,collection)});return result}function filter(collection,callback,thisArg){var result=[];if(callback=lodash.createCallback(callback,thisArg,3),isArray(collection))for(var index=-1,length=collection.length;++index<length;){var value=collection[index];callback(value,index,collection)&&result.push(value)}else baseEach(collection,function(value,index,collection){callback(value,index,collection)&&result.push(value)});return result}function find(collection,callback,thisArg){if(callback=lodash.createCallback(callback,thisArg,3),!isArray(collection)){var result;return baseEach(collection,function(value,index,collection){return callback(value,index,collection)?(result=value,!1):void 0}),result}for(var index=-1,length=collection.length;++index<length;){var value=collection[index];if(callback(value,index,collection))return value}}function findLast(collection,callback,thisArg){var result;return callback=lodash.createCallback(callback,thisArg,3),forEachRight(collection,function(value,index,collection){return callback(value,index,collection)?(result=value,!1):void 0}),result}function forEach(collection,callback,thisArg){if(callback&&"undefined"==typeof thisArg&&isArray(collection))for(var index=-1,length=collection.length;++index<length&&callback(collection[index],index,collection)!==!1;);else baseEach(collection,callback,thisArg);return collection}function forEachRight(collection,callback,thisArg){var iterable=collection,length=collection?collection.length:0;if(callback=callback&&"undefined"==typeof thisArg?callback:baseCreateCallback(callback,thisArg,3),isArray(collection))for(;length--&&callback(collection[length],length,collection)!==!1;);else{if("number"!=typeof length){var props=keys(collection);length=props.length}else support.unindexedChars&&isString(collection)&&(iterable=collection.split(""));baseEach(collection,function(value,key,collection){return key=props?props[--length]:--length,callback(iterable[key],key,collection)})}return collection}function invoke(collection,methodName){var args=slice(arguments,2),index=-1,isFunc="function"==typeof methodName,length=collection?collection.length:0,result=Array("number"==typeof length?length:0);return forEach(collection,function(value){result[++index]=(isFunc?methodName:value[methodName]).apply(value,args)}),result}function map(collection,callback,thisArg){var index=-1,length=collection?collection.length:0,result=Array("number"==typeof length?length:0);if(callback=lodash.createCallback(callback,thisArg,3),isArray(collection))for(;++index<length;)result[index]=callback(collection[index],index,collection);else baseEach(collection,function(value,key,collection){result[++index]=callback(value,key,collection)});return result}function max(collection,callback,thisArg){var computed=-(1/0),result=computed;if("function"!=typeof callback&&thisArg&&thisArg[callback]===collection&&(callback=null),null==callback&&isArray(collection))for(var index=-1,length=collection.length;++index<length;){var value=collection[index];value>result&&(result=value)}else callback=null==callback&&isString(collection)?charAtCallback:lodash.createCallback(callback,thisArg,3),baseEach(collection,function(value,index,collection){var current=callback(value,index,collection);current>computed&&(computed=current,result=value)});return result}function min(collection,callback,thisArg){var computed=1/0,result=computed;if("function"!=typeof callback&&thisArg&&thisArg[callback]===collection&&(callback=null),null==callback&&isArray(collection))for(var index=-1,length=collection.length;++index<length;){var value=collection[index];result>value&&(result=value)}else callback=null==callback&&isString(collection)?charAtCallback:lodash.createCallback(callback,thisArg,3),baseEach(collection,function(value,index,collection){var current=callback(value,index,collection);computed>current&&(computed=current,result=value)});return result}function reduce(collection,callback,accumulator,thisArg){var noaccum=arguments.length<3;if(callback=lodash.createCallback(callback,thisArg,4),isArray(collection)){var index=-1,length=collection.length;for(noaccum&&(accumulator=collection[++index]);++index<length;)accumulator=callback(accumulator,collection[index],index,collection)}else baseEach(collection,function(value,index,collection){accumulator=noaccum?(noaccum=!1,value):callback(accumulator,value,index,collection)});return accumulator}function reduceRight(collection,callback,accumulator,thisArg){var noaccum=arguments.length<3;return callback=lodash.createCallback(callback,thisArg,4),forEachRight(collection,function(value,index,collection){accumulator=noaccum?(noaccum=!1,value):callback(accumulator,value,index,collection)}),accumulator}function reject(collection,callback,thisArg){return callback=lodash.createCallback(callback,thisArg,3),filter(collection,function(value,index,collection){return!callback(value,index,collection)})}function sample(collection,n,guard){if(collection&&"number"!=typeof collection.length?collection=values(collection):support.unindexedChars&&isString(collection)&&(collection=collection.split("")),null==n||guard)return collection?collection[baseRandom(0,collection.length-1)]:undefined;var result=shuffle(collection);return result.length=nativeMin(nativeMax(0,n),result.length),result}function shuffle(collection){var index=-1,length=collection?collection.length:0,result=Array("number"==typeof length?length:0);return forEach(collection,function(value){var rand=baseRandom(0,++index);result[index]=result[rand],result[rand]=value}),result}function size(collection){var length=collection?collection.length:0;return"number"==typeof length?length:keys(collection).length}function some(collection,callback,thisArg){var result;if(callback=lodash.createCallback(callback,thisArg,3),isArray(collection))for(var index=-1,length=collection.length;++index<length&&!(result=callback(collection[index],index,collection)););else baseEach(collection,function(value,index,collection){return!(result=callback(value,index,collection))});return!!result}function sortBy(collection,callback,thisArg){var index=-1,isArr=isArray(callback),length=collection?collection.length:0,result=Array("number"==typeof length?length:0);for(isArr||(callback=lodash.createCallback(callback,thisArg,3)),forEach(collection,function(value,key,collection){var object=result[++index]=getObject();isArr?object.criteria=map(callback,function(key){return value[key]}):(object.criteria=getArray())[0]=callback(value,key,collection),object.index=index,object.value=value}),length=result.length,result.sort(compareAscending);length--;){var object=result[length];result[length]=object.value,isArr||releaseArray(object.criteria),releaseObject(object)}return result}function toArray(collection){return collection&&"number"==typeof collection.length?support.unindexedChars&&isString(collection)?collection.split(""):slice(collection):values(collection)}function compact(array){for(var index=-1,length=array?array.length:0,result=[];++index<length;){var value=array[index];value&&result.push(value)}return result}function difference(array){return baseDifference(array,baseFlatten(arguments,!0,!0,1))}function findIndex(array,callback,thisArg){var index=-1,length=array?array.length:0;for(callback=lodash.createCallback(callback,thisArg,3);++index<length;)if(callback(array[index],index,array))return index;return-1}function findLastIndex(array,callback,thisArg){var length=array?array.length:0;for(callback=lodash.createCallback(callback,thisArg,3);length--;)if(callback(array[length],length,array))return length;return-1}function first(array,callback,thisArg){var n=0,length=array?array.length:0;if("number"!=typeof callback&&null!=callback){var index=-1;for(callback=lodash.createCallback(callback,thisArg,3);++index<length&&callback(array[index],index,array);)n++}else if(n=callback,null==n||thisArg)return array?array[0]:undefined;return slice(array,0,nativeMin(nativeMax(0,n),length))}function flatten(array,isShallow,callback,thisArg){return"boolean"!=typeof isShallow&&null!=isShallow&&(thisArg=callback,callback="function"!=typeof isShallow&&thisArg&&thisArg[isShallow]===array?null:isShallow,isShallow=!1),null!=callback&&(array=map(array,callback,thisArg)),baseFlatten(array,isShallow)}function indexOf(array,value,fromIndex){if("number"==typeof fromIndex){var length=array?array.length:0;fromIndex=0>fromIndex?nativeMax(0,length+fromIndex):fromIndex||0}else if(fromIndex){var index=sortedIndex(array,value);return array[index]===value?index:-1}return baseIndexOf(array,value,fromIndex)}function initial(array,callback,thisArg){var n=0,length=array?array.length:0;if("number"!=typeof callback&&null!=callback){var index=length;for(callback=lodash.createCallback(callback,thisArg,3);index--&&callback(array[index],index,array);)n++}else n=null==callback||thisArg?1:callback||n;return slice(array,0,nativeMin(nativeMax(0,length-n),length))}function intersection(){for(var args=[],argsIndex=-1,argsLength=arguments.length,caches=getArray(),indexOf=getIndexOf(),trustIndexOf=indexOf===baseIndexOf,seen=getArray();++argsIndex<argsLength;){var value=arguments[argsIndex];(isArray(value)||isArguments(value))&&(args.push(value),caches.push(trustIndexOf&&value.length>=largeArraySize&&createCache(argsIndex?args[argsIndex]:seen)))}var array=args[0],index=-1,length=array?array.length:0,result=[];outer:for(;++index<length;){var cache=caches[0];if(value=array[index],(cache?cacheIndexOf(cache,value):indexOf(seen,value))<0){for(argsIndex=argsLength,(cache||seen).push(value);--argsIndex;)if(cache=caches[argsIndex],(cache?cacheIndexOf(cache,value):indexOf(args[argsIndex],value))<0)continue outer;result.push(value)}}for(;argsLength--;)cache=caches[argsLength],cache&&releaseObject(cache);return releaseArray(caches),releaseArray(seen),result}function last(array,callback,thisArg){var n=0,length=array?array.length:0;if("number"!=typeof callback&&null!=callback){var index=length;for(callback=lodash.createCallback(callback,thisArg,3);index--&&callback(array[index],index,array);)n++}else if(n=callback,null==n||thisArg)return array?array[length-1]:undefined;return slice(array,nativeMax(0,length-n))}function lastIndexOf(array,value,fromIndex){var index=array?array.length:0;for("number"==typeof fromIndex&&(index=(0>fromIndex?nativeMax(0,index+fromIndex):nativeMin(fromIndex,index-1))+1);index--;)if(array[index]===value)return index;return-1}function pull(array){for(var args=arguments,argsIndex=0,argsLength=args.length,length=array?array.length:0;++argsIndex<argsLength;)for(var index=-1,value=args[argsIndex];++index<length;)array[index]===value&&(splice.call(array,index--,1),length--);return array}function range(start,end,step){start=+start||0,step="number"==typeof step?step:+step||1,null==end&&(end=start,start=0);for(var index=-1,length=nativeMax(0,ceil((end-start)/(step||1))),result=Array(length);++index<length;)result[index]=start,start+=step;return result}function remove(array,callback,thisArg){var index=-1,length=array?array.length:0,result=[];for(callback=lodash.createCallback(callback,thisArg,3);++index<length;){var value=array[index];callback(value,index,array)&&(result.push(value),splice.call(array,index--,1),length--)}return result}function rest(array,callback,thisArg){if("number"!=typeof callback&&null!=callback){var n=0,index=-1,length=array?array.length:0;for(callback=lodash.createCallback(callback,thisArg,3);++index<length&&callback(array[index],index,array);)n++}else n=null==callback||thisArg?1:nativeMax(0,callback);return slice(array,n)}function sortedIndex(array,value,callback,thisArg){var low=0,high=array?array.length:low;for(callback=callback?lodash.createCallback(callback,thisArg,1):identity,value=callback(value);high>low;){var mid=low+high>>>1;callback(array[mid])<value?low=mid+1:high=mid}return low}function union(){return baseUniq(baseFlatten(arguments,!0,!0))}function uniq(array,isSorted,callback,thisArg){return"boolean"!=typeof isSorted&&null!=isSorted&&(thisArg=callback,callback="function"!=typeof isSorted&&thisArg&&thisArg[isSorted]===array?null:isSorted,isSorted=!1),null!=callback&&(callback=lodash.createCallback(callback,thisArg,3)),baseUniq(array,isSorted,callback)}function without(array){return baseDifference(array,slice(arguments,1))}function xor(){for(var index=-1,length=arguments.length;++index<length;){var array=arguments[index];if(isArray(array)||isArguments(array))var result=result?baseUniq(baseDifference(result,array).concat(baseDifference(array,result))):array}return result||[]}function zip(){for(var array=arguments.length>1?arguments:arguments[0],index=-1,length=array?max(pluck(array,"length")):0,result=Array(0>length?0:length);++index<length;)result[index]=pluck(array,index);return result}function zipObject(keys,values){var index=-1,length=keys?keys.length:0,result={};for(values||!length||isArray(keys[0])||(values=[]);++index<length;){var key=keys[index];values?result[key]=values[index]:key&&(result[key[0]]=key[1])}return result}function after(n,func){if(!isFunction(func))throw new TypeError;return function(){return--n<1?func.apply(this,arguments):void 0}}function bind(func,thisArg){return arguments.length>2?createWrapper(func,17,slice(arguments,2),null,thisArg):createWrapper(func,1,null,null,thisArg)}function bindAll(object){for(var funcs=arguments.length>1?baseFlatten(arguments,!0,!1,1):functions(object),index=-1,length=funcs.length;++index<length;){var key=funcs[index];object[key]=createWrapper(object[key],1,null,null,object)}return object}function bindKey(object,key){return arguments.length>2?createWrapper(key,19,slice(arguments,2),null,object):createWrapper(key,3,null,null,object)}function compose(){for(var funcs=arguments,length=funcs.length;length--;)if(!isFunction(funcs[length]))throw new TypeError;return function(){for(var args=arguments,length=funcs.length;length--;)args=[funcs[length].apply(this,args)];return args[0]}}function curry(func,arity){return arity="number"==typeof arity?arity:+arity||func.length,createWrapper(func,4,null,null,null,arity)}function debounce(func,wait,options){var args,maxTimeoutId,result,stamp,thisArg,timeoutId,trailingCall,lastCalled=0,maxWait=!1,trailing=!0;if(!isFunction(func))throw new TypeError;if(wait=nativeMax(0,wait)||0,options===!0){var leading=!0;trailing=!1}else isObject(options)&&(leading=options.leading,maxWait="maxWait"in options&&(nativeMax(wait,options.maxWait)||0),trailing="trailing"in options?options.trailing:trailing);var delayed=function(){var remaining=wait-(now()-stamp);if(0>=remaining){maxTimeoutId&&clearTimeout(maxTimeoutId);var isCalled=trailingCall;maxTimeoutId=timeoutId=trailingCall=undefined,isCalled&&(lastCalled=now(),result=func.apply(thisArg,args),timeoutId||maxTimeoutId||(args=thisArg=null))}else timeoutId=setTimeout(delayed,remaining)},maxDelayed=function(){timeoutId&&clearTimeout(timeoutId),maxTimeoutId=timeoutId=trailingCall=undefined,(trailing||maxWait!==wait)&&(lastCalled=now(),result=func.apply(thisArg,args),timeoutId||maxTimeoutId||(args=thisArg=null))};return function(){if(args=arguments,stamp=now(),thisArg=this,trailingCall=trailing&&(timeoutId||!leading),maxWait===!1)var leadingCall=leading&&!timeoutId;else{maxTimeoutId||leading||(lastCalled=stamp);var remaining=maxWait-(stamp-lastCalled),isCalled=0>=remaining;isCalled?(maxTimeoutId&&(maxTimeoutId=clearTimeout(maxTimeoutId)),lastCalled=stamp,result=func.apply(thisArg,args)):maxTimeoutId||(maxTimeoutId=setTimeout(maxDelayed,remaining))}return isCalled&&timeoutId?timeoutId=clearTimeout(timeoutId):timeoutId||wait===maxWait||(timeoutId=setTimeout(delayed,wait)),leadingCall&&(isCalled=!0,result=func.apply(thisArg,args)),!isCalled||timeoutId||maxTimeoutId||(args=thisArg=null),result}}function defer(func){if(!isFunction(func))throw new TypeError;var args=slice(arguments,1);return setTimeout(function(){func.apply(undefined,args)},1)}function delay(func,wait){if(!isFunction(func))throw new TypeError;var args=slice(arguments,2);return setTimeout(function(){func.apply(undefined,args)},wait)}function memoize(func,resolver){if(!isFunction(func))throw new TypeError;var memoized=function(){var cache=memoized.cache,key=resolver?resolver.apply(this,arguments):keyPrefix+arguments[0];return hasOwnProperty.call(cache,key)?cache[key]:cache[key]=func.apply(this,arguments)};return memoized.cache={},memoized}function once(func){var ran,result;if(!isFunction(func))throw new TypeError;return function(){return ran?result:(ran=!0,result=func.apply(this,arguments),func=null,result)}}function partial(func){return createWrapper(func,16,slice(arguments,1))}function partialRight(func){return createWrapper(func,32,null,slice(arguments,1))}function throttle(func,wait,options){var leading=!0,trailing=!0;if(!isFunction(func))throw new TypeError;return options===!1?leading=!1:isObject(options)&&(leading="leading"in options?options.leading:leading,trailing="trailing"in options?options.trailing:trailing),debounceOptions.leading=leading,debounceOptions.maxWait=wait,debounceOptions.trailing=trailing,debounce(func,wait,debounceOptions)}function wrap(value,wrapper){return createWrapper(wrapper,16,[value])}function constant(value){return function(){return value}}function createCallback(func,thisArg,argCount){var type=typeof func;if(null==func||"function"==type)return baseCreateCallback(func,thisArg,argCount);if("object"!=type)return property(func);var props=keys(func),key=props[0],a=func[key];return 1!=props.length||a!==a||isObject(a)?function(object){for(var length=props.length,result=!1;length--&&(result=baseIsEqual(object[props[length]],func[props[length]],null,!0)););return result}:function(object){var b=object[key];return a===b&&(0!==a||1/a==1/b)}}function escape(string){return null==string?"":String(string).replace(reUnescapedHtml,escapeHtmlChar)}function identity(value){return value}function mixin(object,source,options){var chain=!0,methodNames=source&&functions(source);source&&(options||methodNames.length)||(null==options&&(options=source),ctor=lodashWrapper,source=object,object=lodash,methodNames=functions(source)),options===!1?chain=!1:isObject(options)&&"chain"in options&&(chain=options.chain);var ctor=object,isFunc=isFunction(ctor);forEach(methodNames,function(methodName){var func=object[methodName]=source[methodName];isFunc&&(ctor.prototype[methodName]=function(){var chainAll=this.__chain__,value=this.__wrapped__,args=[value];push.apply(args,arguments);var result=func.apply(object,args);if(chain||chainAll){if(value===result&&isObject(result))return this;result=new ctor(result),result.__chain__=chainAll}return result})})}function noConflict(){return context._=oldDash,this}function noop(){}function property(key){return function(object){return object[key]}}function random(min,max,floating){var noMin=null==min,noMax=null==max;if(null==floating&&("boolean"==typeof min&&noMax?(floating=min,min=1):noMax||"boolean"!=typeof max||(floating=max,noMax=!0)),noMin&&noMax&&(max=1),min=+min||0,noMax?(max=min,min=0):max=+max||0,floating||min%1||max%1){var rand=nativeRandom();return nativeMin(min+rand*(max-min+parseFloat("1e-"+((rand+"").length-1))),max)}return baseRandom(min,max)}function result(object,key){if(object){var value=object[key];return isFunction(value)?object[key]():value}}function template(text,data,options){var settings=lodash.templateSettings;text=String(text||""),options=defaults({},options,settings);var isEvaluating,imports=defaults({},options.imports,settings.imports),importsKeys=keys(imports),importsValues=values(imports),index=0,interpolate=options.interpolate||reNoMatch,source="__p += '",reDelimiters=RegExp((options.escape||reNoMatch).source+"|"+interpolate.source+"|"+(interpolate===reInterpolate?reEsTemplate:reNoMatch).source+"|"+(options.evaluate||reNoMatch).source+"|$","g");text.replace(reDelimiters,function(match,escapeValue,interpolateValue,esTemplateValue,evaluateValue,offset){return interpolateValue||(interpolateValue=esTemplateValue),source+=text.slice(index,offset).replace(reUnescapedString,escapeStringChar),escapeValue&&(source+="' +\n__e("+escapeValue+") +\n'"),evaluateValue&&(isEvaluating=!0,source+="';\n"+evaluateValue+";\n__p += '"),interpolateValue&&(source+="' +\n((__t = ("+interpolateValue+")) == null ? '' : __t) +\n'"),index=offset+match.length,match}),source+="';\n";var variable=options.variable,hasVariable=variable;hasVariable||(variable="obj",source="with ("+variable+") {\n"+source+"\n}\n"),source=(isEvaluating?source.replace(reEmptyStringLeading,""):source).replace(reEmptyStringMiddle,"$1").replace(reEmptyStringTrailing,"$1;"),source="function("+variable+") {\n"+(hasVariable?"":variable+" || ("+variable+" = {});\n")+"var __t, __p = '', __e = _.escape"+(isEvaluating?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+source+"return __p\n}";var sourceURL="\n/*\n//# sourceURL="+(options.sourceURL||"/lodash/template/source["+templateCounter++ +"]")+"\n*/";try{var result=Function(importsKeys,"return "+source+sourceURL).apply(undefined,importsValues)}catch(e){throw e.source=source,e}return data?result(data):(result.source=source,result)}function times(n,callback,thisArg){n=(n=+n)>-1?n:0;var index=-1,result=Array(n);for(callback=baseCreateCallback(callback,thisArg,1);++index<n;)result[index]=callback(index);return result}function unescape(string){return null==string?"":String(string).replace(reEscapedHtml,unescapeHtmlChar)}function uniqueId(prefix){var id=++idCounter;return String(null==prefix?"":prefix)+id}function chain(value){return value=new lodashWrapper(value),value.__chain__=!0,value}function tap(value,interceptor){return interceptor(value),value}function wrapperChain(){return this.__chain__=!0,this}function wrapperToString(){return String(this.__wrapped__)}function wrapperValueOf(){return this.__wrapped__}context=context?_.defaults(root.Object(),context,_.pick(root,contextProps)):root;var Array=context.Array,Boolean=context.Boolean,Date=context.Date,Error=context.Error,Function=context.Function,Math=context.Math,Number=context.Number,Object=context.Object,RegExp=context.RegExp,String=context.String,TypeError=context.TypeError,arrayRef=[],errorProto=Error.prototype,objectProto=Object.prototype,stringProto=String.prototype,oldDash=context._,toString=objectProto.toString,reNative=RegExp("^"+String(toString).replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/toString| for [^\]]+/g,".*?")+"$"),ceil=Math.ceil,clearTimeout=context.clearTimeout,floor=Math.floor,fnToString=Function.prototype.toString,getPrototypeOf=isNative(getPrototypeOf=Object.getPrototypeOf)&&getPrototypeOf,hasOwnProperty=objectProto.hasOwnProperty,push=arrayRef.push,propertyIsEnumerable=objectProto.propertyIsEnumerable,setTimeout=context.setTimeout,splice=arrayRef.splice,unshift=arrayRef.unshift,defineProperty=function(){try{var o={},func=isNative(func=Object.defineProperty)&&func,result=func(o,o,o)&&func}catch(e){}return result}(),nativeCreate=isNative(nativeCreate=Object.create)&&nativeCreate,nativeIsArray=isNative(nativeIsArray=Array.isArray)&&nativeIsArray,nativeIsFinite=context.isFinite,nativeIsNaN=context.isNaN,nativeKeys=isNative(nativeKeys=Object.keys)&&nativeKeys,nativeMax=Math.max,nativeMin=Math.min,nativeParseInt=context.parseInt,nativeRandom=Math.random,ctorByClass={};ctorByClass[arrayClass]=Array,ctorByClass[boolClass]=Boolean,ctorByClass[dateClass]=Date,ctorByClass[funcClass]=Function,ctorByClass[objectClass]=Object,ctorByClass[numberClass]=Number,ctorByClass[regexpClass]=RegExp,
  ctorByClass[stringClass]=String;var nonEnumProps={};nonEnumProps[arrayClass]=nonEnumProps[dateClass]=nonEnumProps[numberClass]={constructor:!0,toLocaleString:!0,toString:!0,valueOf:!0},nonEnumProps[boolClass]=nonEnumProps[stringClass]={constructor:!0,toString:!0,valueOf:!0},nonEnumProps[errorClass]=nonEnumProps[funcClass]=nonEnumProps[regexpClass]={constructor:!0,toString:!0},nonEnumProps[objectClass]={constructor:!0},function(){for(var length=shadowedProps.length;length--;){var key=shadowedProps[length];for(var className in nonEnumProps)hasOwnProperty.call(nonEnumProps,className)&&!hasOwnProperty.call(nonEnumProps[className],key)&&(nonEnumProps[className][key]=!1)}}(),lodashWrapper.prototype=lodash.prototype;var support=lodash.support={};!function(){var ctor=function(){this.x=1},object={0:1,length:1},props=[];ctor.prototype={valueOf:1,y:1};for(var key in new ctor)props.push(key);for(key in arguments);support.argsClass=toString.call(arguments)==argsClass,support.argsObject=arguments.constructor==Object&&!(arguments instanceof Array),support.enumErrorProps=propertyIsEnumerable.call(errorProto,"message")||propertyIsEnumerable.call(errorProto,"name"),support.enumPrototypes=propertyIsEnumerable.call(ctor,"prototype"),support.funcDecomp=!isNative(context.WinRTError)&&reThis.test(runInContext),support.funcNames="string"==typeof Function.name,support.nonEnumArgs=0!=key,support.nonEnumShadows=!/valueOf/.test(props),support.ownLast="x"!=props[0],support.spliceObjects=(arrayRef.splice.call(object,0,1),!object[0]),support.unindexedChars="x"[0]+Object("x")[0]!="xx";try{support.nodeClass=!(toString.call(document)==objectClass&&!({toString:0}+""))}catch(e){support.nodeClass=!0}}(1),lodash.templateSettings={escape:/<%-([\s\S]+?)%>/g,evaluate:/<%([\s\S]+?)%>/g,interpolate:reInterpolate,variable:"",imports:{_:lodash}};var iteratorTemplate=function(obj){var __p="var index, iterable = "+obj.firstArg+", result = "+obj.init+";\nif (!iterable) return result;\n"+obj.top+";";obj.array?(__p+="\nvar length = iterable.length; index = -1;\nif ("+obj.array+") {  ",support.unindexedChars&&(__p+="\n  if (isString(iterable)) {\n    iterable = iterable.split('')\n  }  "),__p+="\n  while (++index < length) {\n    "+obj.loop+";\n  }\n}\nelse {  "):support.nonEnumArgs&&(__p+="\n  var length = iterable.length; index = -1;\n  if (length && isArguments(iterable)) {\n    while (++index < length) {\n      index += '';\n      "+obj.loop+";\n    }\n  } else {  "),support.enumPrototypes&&(__p+="\n  var skipProto = typeof iterable == 'function';\n  "),support.enumErrorProps&&(__p+="\n  var skipErrorProps = iterable === errorProto || iterable instanceof Error;\n  ");var conditions=[];if(support.enumPrototypes&&conditions.push('!(skipProto && index == "prototype")'),support.enumErrorProps&&conditions.push('!(skipErrorProps && (index == "message" || index == "name"))'),obj.useHas&&obj.keys)__p+="\n  var ownIndex = -1,\n      ownProps = objectTypes[typeof iterable] && keys(iterable),\n      length = ownProps ? ownProps.length : 0;\n\n  while (++ownIndex < length) {\n    index = ownProps[ownIndex];\n",conditions.length&&(__p+="    if ("+conditions.join(" && ")+") {\n  "),__p+=obj.loop+";    ",conditions.length&&(__p+="\n    }"),__p+="\n  }  ";else if(__p+="\n  for (index in iterable) {\n",obj.useHas&&conditions.push("hasOwnProperty.call(iterable, index)"),conditions.length&&(__p+="    if ("+conditions.join(" && ")+") {\n  "),__p+=obj.loop+";    ",conditions.length&&(__p+="\n    }"),__p+="\n  }    ",support.nonEnumShadows){for(__p+="\n\n  if (iterable !== objectProto) {\n    var ctor = iterable.constructor,\n        isProto = iterable === (ctor && ctor.prototype),\n        className = iterable === stringProto ? stringClass : iterable === errorProto ? errorClass : toString.call(iterable),\n        nonEnum = nonEnumProps[className];\n      ",k=0;k<7;k++)__p+="\n    index = '"+obj.shadowedProps[k]+"';\n    if ((!(isProto && nonEnum[index]) && hasOwnProperty.call(iterable, index))",obj.useHas||(__p+=" || (!nonEnum[index] && iterable[index] !== objectProto[index])"),__p+=") {\n      "+obj.loop+";\n    }      ";__p+="\n  }    "}return(obj.array||support.nonEnumArgs)&&(__p+="\n}"),__p+=obj.bottom+";\nreturn result"};nativeCreate||(baseCreate=function(){function Object(){}return function(prototype){if(isObject(prototype)){Object.prototype=prototype;var result=new Object;Object.prototype=null}return result||context.Object()}}());var setBindData=defineProperty?function(func,value){descriptor.value=value,defineProperty(func,"__bindData__",descriptor),descriptor.value=null}:noop;support.argsClass||(isArguments=function(value){return value&&"object"==typeof value&&"number"==typeof value.length&&hasOwnProperty.call(value,"callee")&&!propertyIsEnumerable.call(value,"callee")||!1});var isArray=nativeIsArray||function(value){return value&&"object"==typeof value&&"number"==typeof value.length&&toString.call(value)==arrayClass||!1},shimKeys=createIterator({args:"object",init:"[]",top:"if (!(objectTypes[typeof object])) return result",loop:"result.push(index)"}),keys=nativeKeys?function(object){return isObject(object)?support.enumPrototypes&&"function"==typeof object||support.nonEnumArgs&&object.length&&isArguments(object)?shimKeys(object):nativeKeys(object):[]}:shimKeys,eachIteratorOptions={args:"collection, callback, thisArg",top:"callback = callback && typeof thisArg == 'undefined' ? callback : baseCreateCallback(callback, thisArg, 3)",array:"typeof length == 'number'",keys:keys,loop:"if (callback(iterable[index], index, collection) === false) return result"},defaultsIteratorOptions={args:"object, source, guard",top:"var args = arguments,\n    argsIndex = 0,\n    argsLength = typeof guard == 'number' ? 2 : args.length;\nwhile (++argsIndex < argsLength) {\n  iterable = args[argsIndex];\n  if (iterable && objectTypes[typeof iterable]) {",keys:keys,loop:"if (typeof result[index] == 'undefined') result[index] = iterable[index]",bottom:"  }\n}"},forOwnIteratorOptions={top:"if (!objectTypes[typeof iterable]) return result;\n"+eachIteratorOptions.top,array:!1},htmlEscapes={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},htmlUnescapes=invert(htmlEscapes),reEscapedHtml=RegExp("("+keys(htmlUnescapes).join("|")+")","g"),reUnescapedHtml=RegExp("["+keys(htmlEscapes).join("")+"]","g"),baseEach=createIterator(eachIteratorOptions),assign=createIterator(defaultsIteratorOptions,{top:defaultsIteratorOptions.top.replace(";",";\nif (argsLength > 3 && typeof args[argsLength - 2] == 'function') {\n  var callback = baseCreateCallback(args[--argsLength - 1], args[argsLength--], 2);\n} else if (argsLength > 2 && typeof args[argsLength - 1] == 'function') {\n  callback = args[--argsLength];\n}"),loop:"result[index] = callback ? callback(result[index], iterable[index]) : iterable[index]"}),defaults=createIterator(defaultsIteratorOptions),forIn=createIterator(eachIteratorOptions,forOwnIteratorOptions,{useHas:!1}),forOwn=createIterator(eachIteratorOptions,forOwnIteratorOptions);isFunction(/x/)&&(isFunction=function(value){return"function"==typeof value&&toString.call(value)==funcClass});var isPlainObject=getPrototypeOf?function(value){if(!value||toString.call(value)!=objectClass||!support.argsClass&&isArguments(value))return!1;var valueOf=value.valueOf,objProto=isNative(valueOf)&&(objProto=getPrototypeOf(valueOf))&&getPrototypeOf(objProto);return objProto?value==objProto||getPrototypeOf(value)==objProto:shimIsPlainObject(value)}:shimIsPlainObject,countBy=createAggregator(function(result,value,key){hasOwnProperty.call(result,key)?result[key]++:result[key]=1}),groupBy=createAggregator(function(result,value,key){(hasOwnProperty.call(result,key)?result[key]:result[key]=[]).push(value)}),indexBy=createAggregator(function(result,value,key){result[key]=value}),pluck=map,where=filter,now=isNative(now=Date.now)&&now||function(){return(new Date).getTime()},parseInt=8==nativeParseInt(whitespace+"08")?nativeParseInt:function(value,radix){return nativeParseInt(isString(value)?value.replace(reLeadingSpacesAndZeros,""):value,radix||0)};return lodash.after=after,lodash.assign=assign,lodash.at=at,lodash.bind=bind,lodash.bindAll=bindAll,lodash.bindKey=bindKey,lodash.chain=chain,lodash.compact=compact,lodash.compose=compose,lodash.constant=constant,lodash.countBy=countBy,lodash.create=create,lodash.createCallback=createCallback,lodash.curry=curry,lodash.debounce=debounce,lodash.defaults=defaults,lodash.defer=defer,lodash.delay=delay,lodash.difference=difference,lodash.filter=filter,lodash.flatten=flatten,lodash.forEach=forEach,lodash.forEachRight=forEachRight,lodash.forIn=forIn,lodash.forInRight=forInRight,lodash.forOwn=forOwn,lodash.forOwnRight=forOwnRight,lodash.functions=functions,lodash.groupBy=groupBy,lodash.indexBy=indexBy,lodash.initial=initial,lodash.intersection=intersection,lodash.invert=invert,lodash.invoke=invoke,lodash.keys=keys,lodash.map=map,lodash.mapValues=mapValues,lodash.max=max,lodash.memoize=memoize,lodash.merge=merge,lodash.min=min,lodash.omit=omit,lodash.once=once,lodash.pairs=pairs,lodash.partial=partial,lodash.partialRight=partialRight,lodash.pick=pick,lodash.pluck=pluck,lodash.property=property,lodash.pull=pull,lodash.range=range,lodash.reject=reject,lodash.remove=remove,lodash.rest=rest,lodash.shuffle=shuffle,lodash.sortBy=sortBy,lodash.tap=tap,lodash.throttle=throttle,lodash.times=times,lodash.toArray=toArray,lodash.transform=transform,lodash.union=union,lodash.uniq=uniq,lodash.values=values,lodash.where=where,lodash.without=without,lodash.wrap=wrap,lodash.xor=xor,lodash.zip=zip,lodash.zipObject=zipObject,lodash.collect=map,lodash.drop=rest,lodash.each=forEach,lodash.eachRight=forEachRight,lodash.extend=assign,lodash.methods=functions,lodash.object=zipObject,lodash.select=filter,lodash.tail=rest,lodash.unique=uniq,lodash.unzip=zip,mixin(lodash),lodash.clone=clone,lodash.cloneDeep=cloneDeep,lodash.contains=contains,lodash.escape=escape,lodash.every=every,lodash.find=find,lodash.findIndex=findIndex,lodash.findKey=findKey,lodash.findLast=findLast,lodash.findLastIndex=findLastIndex,lodash.findLastKey=findLastKey,lodash.has=has,lodash.identity=identity,lodash.indexOf=indexOf,lodash.isArguments=isArguments,lodash.isArray=isArray,lodash.isBoolean=isBoolean,lodash.isDate=isDate,lodash.isElement=isElement,lodash.isEmpty=isEmpty,lodash.isEqual=isEqual,lodash.isFinite=isFinite,lodash.isFunction=isFunction,lodash.isNaN=isNaN,lodash.isNull=isNull,lodash.isNumber=isNumber,lodash.isObject=isObject,lodash.isPlainObject=isPlainObject,lodash.isRegExp=isRegExp,lodash.isString=isString,lodash.isUndefined=isUndefined,lodash.lastIndexOf=lastIndexOf,lodash.mixin=mixin,lodash.noConflict=noConflict,lodash.noop=noop,lodash.now=now,lodash.parseInt=parseInt,lodash.random=random,lodash.reduce=reduce,lodash.reduceRight=reduceRight,lodash.result=result,lodash.runInContext=runInContext,lodash.size=size,lodash.some=some,lodash.sortedIndex=sortedIndex,lodash.template=template,lodash.unescape=unescape,lodash.uniqueId=uniqueId,lodash.all=every,lodash.any=some,lodash.detect=find,lodash.findWhere=find,lodash.foldl=reduce,lodash.foldr=reduceRight,lodash.include=contains,lodash.inject=reduce,mixin(function(){var source={};return forOwn(lodash,function(func,methodName){lodash.prototype[methodName]||(source[methodName]=func)}),source}(),!1),lodash.first=first,lodash.last=last,lodash.sample=sample,lodash.take=first,lodash.head=first,forOwn(lodash,function(func,methodName){var callbackable="sample"!==methodName;lodash.prototype[methodName]||(lodash.prototype[methodName]=function(n,guard){var chainAll=this.__chain__,result=func(this.__wrapped__,n,guard);return chainAll||null!=n&&(!guard||callbackable&&"function"==typeof n)?new lodashWrapper(result,chainAll):result})}),lodash.VERSION="2.4.2",lodash.prototype.chain=wrapperChain,lodash.prototype.toString=wrapperToString,lodash.prototype.value=wrapperValueOf,lodash.prototype.valueOf=wrapperValueOf,baseEach(["join","pop","shift"],function(methodName){var func=arrayRef[methodName];lodash.prototype[methodName]=function(){var chainAll=this.__chain__,result=func.apply(this.__wrapped__,arguments);return chainAll?new lodashWrapper(result,chainAll):result}}),baseEach(["push","reverse","sort","unshift"],function(methodName){var func=arrayRef[methodName];lodash.prototype[methodName]=function(){return func.apply(this.__wrapped__,arguments),this}}),baseEach(["concat","slice","splice"],function(methodName){var func=arrayRef[methodName];lodash.prototype[methodName]=function(){return new lodashWrapper(func.apply(this.__wrapped__,arguments),this.__chain__)}}),support.spliceObjects||baseEach(["pop","shift","splice"],function(methodName){var func=arrayRef[methodName],isSplice="splice"==methodName;lodash.prototype[methodName]=function(){var chainAll=this.__chain__,value=this.__wrapped__,result=func.apply(value,arguments);return 0===value.length&&delete value[0],chainAll||isSplice?new lodashWrapper(result,chainAll):result}}),lodash}var undefined,arrayPool=[],objectPool=[],idCounter=0,indicatorObject={},keyPrefix=+new Date+"",largeArraySize=75,maxPoolSize=40,whitespace=" 	\f \ufeff\n\r\u2028\u2029 ᠎             　",reEmptyStringLeading=/\b__p \+= '';/g,reEmptyStringMiddle=/\b(__p \+=) '' \+/g,reEmptyStringTrailing=/(__e\(.*?\)|\b__t\)) \+\n'';/g,reEsTemplate=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,reFlags=/\w*$/,reFuncName=/^\s*function[ \n\r\t]+\w/,reInterpolate=/<%=([\s\S]+?)%>/g,reLeadingSpacesAndZeros=RegExp("^["+whitespace+"]*0+(?=.$)"),reNoMatch=/($^)/,reThis=/\bthis\b/,reUnescapedString=/['\n\r\t\u2028\u2029\\]/g,contextProps=["Array","Boolean","Date","Error","Function","Math","Number","Object","RegExp","String","_","attachEvent","clearTimeout","isFinite","isNaN","parseInt","setTimeout"],shadowedProps=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],templateCounter=0,argsClass="[object Arguments]",arrayClass="[object Array]",boolClass="[object Boolean]",dateClass="[object Date]",errorClass="[object Error]",funcClass="[object Function]",numberClass="[object Number]",objectClass="[object Object]",regexpClass="[object RegExp]",stringClass="[object String]",cloneableClasses={};cloneableClasses[funcClass]=!1,cloneableClasses[argsClass]=cloneableClasses[arrayClass]=cloneableClasses[boolClass]=cloneableClasses[dateClass]=cloneableClasses[numberClass]=cloneableClasses[objectClass]=cloneableClasses[regexpClass]=cloneableClasses[stringClass]=!0;var debounceOptions={leading:!1,maxWait:0,trailing:!1},descriptor={configurable:!1,enumerable:!1,value:null,writable:!1},iteratorData={args:"",array:null,bottom:"",firstArg:"",init:"",keys:null,loop:"",shadowedProps:null,support:null,top:"",useHas:!1},objectTypes={"boolean":!1,"function":!0,object:!0,number:!1,string:!1,undefined:!1},stringEscapes={"\\":"\\","'":"'","\n":"n","\r":"r","	":"t","\u2028":"u2028","\u2029":"u2029"},root=objectTypes[typeof window]&&window||this,freeExports=objectTypes[typeof exports]&&exports&&!exports.nodeType&&exports,freeModule=objectTypes[typeof module]&&module&&!module.nodeType&&module,moduleExports=freeModule&&freeModule.exports===freeExports&&freeExports,freeGlobal=objectTypes[typeof global]&&global;!freeGlobal||freeGlobal.global!==freeGlobal&&freeGlobal.window!==freeGlobal||(root=freeGlobal);var _=runInContext();"function"==typeof define&&"object"==typeof define.amd&&define.amd?(root._=_,define(function(){return _})):freeExports&&freeModule?moduleExports?(freeModule.exports=_)._=_:freeExports._=_:root._=_}.call(this),function(){var module=angular.module("restangular",[]);module.provider("Restangular",function(){var Configurer={};Configurer.init=function(object,config){function RestangularResource(config,$http,url,configurer){var resource={};return _.each(_.keys(configurer),function(key){var value=configurer[key];value.params=_.extend({},value.params,config.defaultRequestParams[value.method.toLowerCase()]),_.isEmpty(value.params)&&delete value.params,config.isSafe(value.method)?resource[key]=function(){return $http(_.extend(value,{url:url}))}:resource[key]=function(data){return $http(_.extend(value,{url:url,data:data}))}}),resource}object.configuration=config;var safeMethods=["get","head","options","trace","getlist"];config.isSafe=function(operation){return _.contains(safeMethods,operation.toLowerCase())};var absolutePattern=/^https?:\/\//i;config.isAbsoluteUrl=function(string){return _.isUndefined(config.absoluteUrl)||_.isNull(config.absoluteUrl)?string&&absolutePattern.test(string):config.absoluteUrl},config.absoluteUrl=_.isUndefined(config.absoluteUrl)?!0:config.absoluteUrl,object.setSelfLinkAbsoluteUrl=function(value){config.absoluteUrl=value},config.baseUrl=_.isUndefined(config.baseUrl)?"":config.baseUrl,object.setBaseUrl=function(newBaseUrl){return config.baseUrl=/\/$/.test(newBaseUrl)?newBaseUrl.substring(0,newBaseUrl.length-1):newBaseUrl,this},config.extraFields=config.extraFields||[],object.setExtraFields=function(newExtraFields){return config.extraFields=newExtraFields,this},config.defaultHttpFields=config.defaultHttpFields||{},object.setDefaultHttpFields=function(values){return config.defaultHttpFields=values,this},config.withHttpValues=function(httpLocalConfig,obj){return _.defaults(obj,httpLocalConfig,config.defaultHttpFields)},config.encodeIds=_.isUndefined(config.encodeIds)?!0:config.encodeIds,object.setEncodeIds=function(encode){config.encodeIds=encode},config.defaultRequestParams=config.defaultRequestParams||{get:{},post:{},put:{},remove:{},common:{}},object.setDefaultRequestParams=function(param1,param2){var methods=[],params=param2||param1;return _.isUndefined(param2)?methods.push("common"):_.isArray(param1)?methods=param1:methods.push(param1),_.each(methods,function(method){config.defaultRequestParams[method]=params}),this},object.requestParams=config.defaultRequestParams,config.defaultHeaders=config.defaultHeaders||{},object.setDefaultHeaders=function(headers){return config.defaultHeaders=headers,object.defaultHeaders=config.defaultHeaders,this},object.defaultHeaders=config.defaultHeaders,config.methodOverriders=config.methodOverriders||[],object.setMethodOverriders=function(values){var overriders=_.extend([],values);return config.isOverridenMethod("delete",overriders)&&overriders.push("remove"),config.methodOverriders=overriders,this},config.jsonp=_.isUndefined(config.jsonp)?!1:config.jsonp,object.setJsonp=function(active){config.jsonp=active},config.isOverridenMethod=function(method,values){var search=values||config.methodOverriders;return!_.isUndefined(_.find(search,function(one){return one.toLowerCase()===method.toLowerCase()}))},config.urlCreator=config.urlCreator||"path",object.setUrlCreator=function(name){if(!_.has(config.urlCreatorFactory,name))throw new Error("URL Path selected isn't valid");return config.urlCreator=name,this},config.restangularFields=config.restangularFields||{id:"id",route:"route",parentResource:"parentResource",restangularCollection:"restangularCollection",cannonicalId:"__cannonicalId",etag:"restangularEtag",selfLink:"href",get:"get",getList:"getList",put:"put",post:"post",remove:"remove",head:"head",trace:"trace",options:"options",patch:"patch",getRestangularUrl:"getRestangularUrl",getRequestedUrl:"getRequestedUrl",putElement:"putElement",addRestangularMethod:"addRestangularMethod",getParentList:"getParentList",clone:"clone",ids:"ids",httpConfig:"_$httpConfig",reqParams:"reqParams",one:"one",all:"all",several:"several",oneUrl:"oneUrl",allUrl:"allUrl",customPUT:"customPUT",customPOST:"customPOST",customDELETE:"customDELETE",customGET:"customGET",customGETLIST:"customGETLIST",customOperation:"customOperation",doPUT:"doPUT",doPOST:"doPOST",doDELETE:"doDELETE",doGET:"doGET",doGETLIST:"doGETLIST",fromServer:"fromServer",withConfig:"withConfig",withHttpConfig:"withHttpConfig",singleOne:"singleOne",plain:"plain",save:"save"},object.setRestangularFields=function(resFields){return config.restangularFields=_.extend(config.restangularFields,resFields),this},config.isRestangularized=function(obj){return!!obj[config.restangularFields.one]||!!obj[config.restangularFields.all]},config.setFieldToElem=function(field,elem,value){var properties=field.split("."),idValue=elem;return _.each(_.initial(properties),function(prop){idValue[prop]={},idValue=idValue[prop]}),idValue[_.last(properties)]=value,this},config.getFieldFromElem=function(field,elem){var properties=field.split("."),idValue=elem;return _.each(properties,function(prop){idValue&&(idValue=idValue[prop])}),angular.copy(idValue)},config.setIdToElem=function(elem,id){return config.setFieldToElem(config.restangularFields.id,elem,id),this},config.getIdFromElem=function(elem){return config.getFieldFromElem(config.restangularFields.id,elem)},config.isValidId=function(elemId){return""!==elemId&&!_.isUndefined(elemId)&&!_.isNull(elemId)},config.setUrlToElem=function(elem,url,route){return config.setFieldToElem(config.restangularFields.selfLink,elem,url),this},config.getUrlFromElem=function(elem){return config.getFieldFromElem(config.restangularFields.selfLink,elem)},config.useCannonicalId=_.isUndefined(config.useCannonicalId)?!1:config.useCannonicalId,object.setUseCannonicalId=function(value){return config.useCannonicalId=value,this},config.getCannonicalIdFromElem=function(elem){var cannonicalId=elem[config.restangularFields.cannonicalId],actualId=config.isValidId(cannonicalId)?cannonicalId:config.getIdFromElem(elem);return actualId},config.responseInterceptors=config.responseInterceptors||[],config.defaultResponseInterceptor=function(data,operation,what,url,response,deferred){return data},config.responseExtractor=function(data,operation,what,url,response,deferred){var interceptors=angular.copy(config.responseInterceptors);interceptors.push(config.defaultResponseInterceptor);var theData=data;return _.each(interceptors,function(interceptor){theData=interceptor(theData,operation,what,url,response,deferred)}),theData},object.addResponseInterceptor=function(extractor){return config.responseInterceptors.push(extractor),this},object.setResponseInterceptor=object.addResponseInterceptor,object.setResponseExtractor=object.addResponseInterceptor,config.requestInterceptors=config.requestInterceptors||[],config.defaultInterceptor=function(element,operation,path,url,headers,params,httpConfig){return{element:element,headers:headers,params:params,httpConfig:httpConfig}},config.fullRequestInterceptor=function(element,operation,path,url,headers,params,httpConfig){var interceptors=angular.copy(config.requestInterceptors),defaultRequest=config.defaultInterceptor(element,operation,path,url,headers,params,httpConfig);return _.reduce(interceptors,function(request,interceptor){return _.extend(request,interceptor(request.element,operation,path,url,request.headers,request.params,request.httpConfig))},defaultRequest)},object.addRequestInterceptor=function(interceptor){return config.requestInterceptors.push(function(elem,operation,path,url,headers,params,httpConfig){return{headers:headers,params:params,element:interceptor(elem,operation,path,url),httpConfig:httpConfig}}),this},object.setRequestInterceptor=object.addRequestInterceptor,object.addFullRequestInterceptor=function(interceptor){return config.requestInterceptors.push(interceptor),this},object.setFullRequestInterceptor=object.addFullRequestInterceptor,config.errorInterceptor=config.errorInterceptor||function(){},object.setErrorInterceptor=function(interceptor){return config.errorInterceptor=interceptor,this},config.onBeforeElemRestangularized=config.onBeforeElemRestangularized||function(elem){return elem},object.setOnBeforeElemRestangularized=function(post){return config.onBeforeElemRestangularized=post,this},config.onElemRestangularized=config.onElemRestangularized||function(elem){return elem},object.setOnElemRestangularized=function(post){return config.onElemRestangularized=post,this},config.shouldSaveParent=config.shouldSaveParent||function(){return!0},object.setParentless=function(values){return _.isArray(values)?config.shouldSaveParent=function(route){return!_.contains(values,route)}:_.isBoolean(values)&&(config.shouldSaveParent=function(){return!values}),this},config.suffix=_.isUndefined(config.suffix)?null:config.suffix,object.setRequestSuffix=function(newSuffix){return config.suffix=newSuffix,this},config.transformers=config.transformers||{},object.addElementTransformer=function(type,secondArg,thirdArg){var isCollection=null,transformer=null;2===arguments.length?transformer=secondArg:(transformer=thirdArg,isCollection=secondArg);var typeTransformers=config.transformers[type];return typeTransformers||(typeTransformers=config.transformers[type]=[]),typeTransformers.push(function(coll,elem){return _.isNull(isCollection)||coll==isCollection?transformer(elem):elem}),object},object.extendCollection=function(route,fn){return object.addElementTransformer(route,!0,fn)},object.extendModel=function(route,fn){return object.addElementTransformer(route,!1,fn)},config.transformElem=function(elem,isCollection,route,Restangular,force){if(!force&&!config.transformLocalElements&&!elem[config.restangularFields.fromServer])return elem;var typeTransformers=config.transformers[route],changedElem=elem;return typeTransformers&&_.each(typeTransformers,function(transformer){changedElem=transformer(isCollection,changedElem)}),config.onElemRestangularized(changedElem,isCollection,route,Restangular)},config.transformLocalElements=_.isUndefined(config.transformLocalElements)?!1:config.transformLocalElements,object.setTransformOnlyServerElements=function(active){config.transformLocalElements=!active},config.fullResponse=_.isUndefined(config.fullResponse)?!1:config.fullResponse,object.setFullResponse=function(full){return config.fullResponse=full,this},config.urlCreatorFactory={};var BaseCreator=function(){};BaseCreator.prototype.setConfig=function(config){return this.config=config,this},BaseCreator.prototype.parentsArray=function(current){for(var parents=[];current;)parents.push(current),current=current[this.config.restangularFields.parentResource];return parents.reverse()},BaseCreator.prototype.resource=function(current,$http,localHttpConfig,callHeaders,callParams,what,etag,operation){var params=_.defaults(callParams||{},this.config.defaultRequestParams.common),headers=_.defaults(callHeaders||{},this.config.defaultHeaders);etag&&(config.isSafe(operation)?headers["If-None-Match"]=etag:headers["If-Match"]=etag);var url=this.base(current);if(what){var add="";/\/$/.test(url)||(add+="/"),add+=what,url+=add}return this.config.suffix&&-1===url.indexOf(this.config.suffix,url.length-this.config.suffix.length)&&!this.config.getUrlFromElem(current)&&(url+=this.config.suffix),current[this.config.restangularFields.httpConfig]=void 0,RestangularResource(this.config,$http,url,{getList:this.config.withHttpValues(localHttpConfig,{method:"GET",params:params,headers:headers}),get:this.config.withHttpValues(localHttpConfig,{method:"GET",params:params,headers:headers}),jsonp:this.config.withHttpValues(localHttpConfig,{method:"jsonp",params:params,headers:headers}),put:this.config.withHttpValues(localHttpConfig,{method:"PUT",params:params,headers:headers}),post:this.config.withHttpValues(localHttpConfig,{method:"POST",params:params,headers:headers}),remove:this.config.withHttpValues(localHttpConfig,{method:"DELETE",params:params,headers:headers}),head:this.config.withHttpValues(localHttpConfig,{method:"HEAD",params:params,headers:headers}),trace:this.config.withHttpValues(localHttpConfig,{method:"TRACE",params:params,headers:headers}),options:this.config.withHttpValues(localHttpConfig,{method:"OPTIONS",params:params,headers:headers}),patch:this.config.withHttpValues(localHttpConfig,{method:"PATCH",params:params,headers:headers})})};var Path=function(){};Path.prototype=new BaseCreator,Path.prototype.base=function(current){var __this=this;return _.reduce(this.parentsArray(current),function(acum,elem){var elemUrl,elemSelfLink=__this.config.getUrlFromElem(elem);if(elemSelfLink){if(__this.config.isAbsoluteUrl(elemSelfLink))return elemSelfLink;elemUrl=elemSelfLink}else if(elemUrl=elem[__this.config.restangularFields.route],elem[__this.config.restangularFields.restangularCollection]){var ids=elem[__this.config.restangularFields.ids];ids&&(elemUrl+="/"+ids.join(","))}else{var elemId;elemId=__this.config.useCannonicalId?__this.config.getCannonicalIdFromElem(elem):__this.config.getIdFromElem(elem),config.isValidId(elemId)&&!elem.singleOne&&(elemUrl+="/"+(__this.config.encodeIds?encodeURIComponent(elemId):elemId))}return acum.replace(/\/$/,"")+"/"+elemUrl},this.config.baseUrl)},Path.prototype.fetchUrl=function(current,what){var baseUrl=this.base(current);return what&&(baseUrl+="/"+what),baseUrl},Path.prototype.fetchRequestedUrl=function(current,what){function sortedKeys(obj){var keys=[];for(var key in obj)obj.hasOwnProperty(key)&&keys.push(key);return keys.sort()}function forEachSorted(obj,iterator,context){for(var keys=sortedKeys(obj),i=0;i<keys.length;i++)iterator.call(context,obj[keys[i]],keys[i]);return keys}function encodeUriQuery(val,pctEncodeSpaces){return encodeURIComponent(val).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,pctEncodeSpaces?"%20":"+")}var url=this.fetchUrl(current,what),params=current[config.restangularFields.reqParams];if(!params)return url;var parts=[];return forEachSorted(params,function(value,key){null!=value&&void 0!=value&&(angular.isArray(value)||(value=[value]),angular.forEach(value,function(v){angular.isObject(v)&&(v=angular.toJson(v)),parts.push(encodeUriQuery(key)+"="+encodeUriQuery(v))}))}),url+(this.config.suffix||"")+(-1===url.indexOf("?")?"?":"&")+parts.join("&")},config.urlCreatorFactory.path=Path};var globalConfiguration={};Configurer.init(this,globalConfiguration),this.$get=["$http","$q",function($http,$q){function createServiceForConfiguration(config){function restangularizeBase(parent,elem,route,reqParams,fromServer){if(elem[config.restangularFields.route]=route,elem[config.restangularFields.getRestangularUrl]=_.bind(urlHandler.fetchUrl,urlHandler,elem),elem[config.restangularFields.getRequestedUrl]=_.bind(urlHandler.fetchRequestedUrl,urlHandler,elem),elem[config.restangularFields.addRestangularMethod]=_.bind(addRestangularMethodFunction,elem),elem[config.restangularFields.clone]=_.bind(copyRestangularizedElement,elem,elem),elem[config.restangularFields.reqParams]=_.isEmpty(reqParams)?null:reqParams,elem[config.restangularFields.withHttpConfig]=_.bind(withHttpConfig,elem),elem[config.restangularFields.plain]=_.bind(stripRestangular,elem,elem),elem[config.restangularFields.one]=_.bind(one,elem,elem),elem[config.restangularFields.all]=_.bind(all,elem,elem),elem[config.restangularFields.several]=_.bind(several,elem,elem),elem[config.restangularFields.oneUrl]=_.bind(oneUrl,elem,elem),elem[config.restangularFields.allUrl]=_.bind(allUrl,elem,elem),elem[config.restangularFields.fromServer]=!!fromServer,parent&&config.shouldSaveParent(route)){var parentId=config.getIdFromElem(parent),parentUrl=config.getUrlFromElem(parent),restangularFieldsForParent=_.union(_.values(_.pick(config.restangularFields,["route","singleOne","parentResource"])),config.extraFields),parentResource=_.pick(parent,restangularFieldsForParent);config.isValidId(parentId)&&config.setIdToElem(parentResource,parentId),config.isValidId(parentUrl)&&config.setUrlToElem(parentResource,parentUrl),elem[config.restangularFields.parentResource]=parentResource}else elem[config.restangularFields.parentResource]=null;return elem}function one(parent,route,id,singleOne){if(_.isNumber(route)||_.isNumber(parent)){var error="You're creating a Restangular entity with the number ";throw error+="instead of the route or the parent. You can't call .one(12)",new Error(error)}var elem={};return config.setIdToElem(elem,id),config.setFieldToElem(config.restangularFields.singleOne,elem,singleOne),restangularizeElem(parent,elem,route,!1)}function all(parent,route){
  return restangularizeCollection(parent,[],route,!1)}function several(parent,route,ids){var collection=[];return collection[config.restangularFields.ids]=Array.prototype.splice.call(arguments,2),restangularizeCollection(parent,collection,route,!1)}function oneUrl(parent,route,url){if(!route)throw new Error("Route is mandatory when creating new Restangular objects.");var elem={};return config.setUrlToElem(elem,url,route),restangularizeElem(parent,elem,route,!1)}function allUrl(parent,route,url){if(!route)throw new Error("Route is mandatory when creating new Restangular objects.");var elem={};return config.setUrlToElem(elem,url,route),restangularizeCollection(parent,elem,route,!1)}function restangularizePromise(promise,isCollection,valueToFill){return promise.call=_.bind(promiseCall,promise),promise.get=_.bind(promiseGet,promise),promise[config.restangularFields.restangularCollection]=isCollection,isCollection&&(promise.push=_.bind(promiseCall,promise,"push")),promise.$object=valueToFill,promise}function promiseCall(method){var deferred=$q.defer(),callArgs=arguments,filledValue={};return this.then(function(val){var params=Array.prototype.slice.call(callArgs,1),func=val[method];func.apply(val,params),filledValue=val,deferred.resolve(val)}),restangularizePromise(deferred.promise,this[config.restangularFields.restangularCollection],filledValue)}function promiseGet(what){var deferred=$q.defer(),filledValue={};return this.then(function(val){filledValue=val[what],deferred.resolve(filledValue)}),restangularizePromise(deferred.promise,this[config.restangularFields.restangularCollection],filledValue)}function resolvePromise(deferred,response,data,filledValue){return _.extend(filledValue,data),config.fullResponse?deferred.resolve(_.extend(response,{data:data})):void deferred.resolve(data)}function stripRestangular(elem){if(_.isArray(elem)){var array=[];return _.each(elem,function(value){array.push(stripRestangular(value))}),array}return _.omit(elem,_.values(_.omit(config.restangularFields,"id")))}function addCustomOperation(elem){elem[config.restangularFields.customOperation]=_.bind(customFunction,elem),_.each(["put","post","get","delete"],function(oper){_.each(["do","custom"],function(alias){var callFunction,callOperation="delete"===oper?"remove":oper,name=alias+oper.toUpperCase();callFunction="put"!==callOperation&&"post"!==callOperation?customFunction:function(operation,elem,path,params,headers){return _.bind(customFunction,this)(operation,path,params,headers,elem)},elem[name]=_.bind(callFunction,elem,callOperation)})}),elem[config.restangularFields.customGETLIST]=_.bind(fetchFunction,elem),elem[config.restangularFields.doGETLIST]=elem[config.restangularFields.customGETLIST]}function copyRestangularizedElement(fromElement,toElement){var copiedElement=angular.copy(fromElement,toElement);return restangularizeElem(copiedElement[config.restangularFields.parentResource],copiedElement,copiedElement[config.restangularFields.route],!0)}function restangularizeElem(parent,element,route,fromServer,collection,reqParams){var elem=config.onBeforeElemRestangularized(element,!1,route),localElem=restangularizeBase(parent,elem,route,reqParams,fromServer);return config.useCannonicalId&&(localElem[config.restangularFields.cannonicalId]=config.getIdFromElem(localElem)),collection&&(localElem[config.restangularFields.getParentList]=function(){return collection}),localElem[config.restangularFields.restangularCollection]=!1,localElem[config.restangularFields.get]=_.bind(getFunction,localElem),localElem[config.restangularFields.getList]=_.bind(fetchFunction,localElem),localElem[config.restangularFields.put]=_.bind(putFunction,localElem),localElem[config.restangularFields.post]=_.bind(postFunction,localElem),localElem[config.restangularFields.remove]=_.bind(deleteFunction,localElem),localElem[config.restangularFields.head]=_.bind(headFunction,localElem),localElem[config.restangularFields.trace]=_.bind(traceFunction,localElem),localElem[config.restangularFields.options]=_.bind(optionsFunction,localElem),localElem[config.restangularFields.patch]=_.bind(patchFunction,localElem),localElem[config.restangularFields.save]=_.bind(save,localElem),addCustomOperation(localElem),config.transformElem(localElem,!1,route,service,!0)}function restangularizeCollection(parent,element,route,fromServer,reqParams){var elem=config.onBeforeElemRestangularized(element,!0,route),localElem=restangularizeBase(parent,elem,route,reqParams,fromServer);return localElem[config.restangularFields.restangularCollection]=!0,localElem[config.restangularFields.post]=_.bind(postFunction,localElem,null),localElem[config.restangularFields.remove]=_.bind(deleteFunction,localElem),localElem[config.restangularFields.head]=_.bind(headFunction,localElem),localElem[config.restangularFields.trace]=_.bind(traceFunction,localElem),localElem[config.restangularFields.putElement]=_.bind(putElementFunction,localElem),localElem[config.restangularFields.options]=_.bind(optionsFunction,localElem),localElem[config.restangularFields.patch]=_.bind(patchFunction,localElem),localElem[config.restangularFields.get]=_.bind(getById,localElem),localElem[config.restangularFields.getList]=_.bind(fetchFunction,localElem,null),addCustomOperation(localElem),config.transformElem(localElem,!0,route,service,!0)}function restangularizeCollectionAndElements(parent,element,route){var collection=restangularizeCollection(parent,element,route,!1);return _.each(collection,function(elem){restangularizeElem(parent,elem,route,!1)}),collection}function getById(id,reqParams,headers){return this.customGET(id.toString(),reqParams,headers)}function putElementFunction(idx,params,headers){var __this=this,elemToPut=this[idx],deferred=$q.defer(),filledArray=[];return filledArray=config.transformElem(filledArray,!0,elemToPut[config.restangularFields.route],service),elemToPut.put(params,headers).then(function(serverElem){var newArray=copyRestangularizedElement(__this);newArray[idx]=serverElem,filledArray=newArray,deferred.resolve(newArray)},function(response){deferred.reject(response)}),restangularizePromise(deferred.promise,!0,filledArray)}function parseResponse(resData,operation,route,fetchUrl,response,deferred){var data=config.responseExtractor(resData,operation,route,fetchUrl,response,deferred),etag=response.headers("ETag");return data&&etag&&(data[config.restangularFields.etag]=etag),data}function fetchFunction(what,reqParams,headers){var __this=this,deferred=$q.defer(),operation="getList",url=urlHandler.fetchUrl(this,what),whatFetched=what||__this[config.restangularFields.route],request=config.fullRequestInterceptor(null,operation,whatFetched,url,headers||{},reqParams||{},this[config.restangularFields.httpConfig]||{}),filledArray=[];filledArray=config.transformElem(filledArray,!0,whatFetched,service);var method="getList";return config.jsonp&&(method="jsonp"),urlHandler.resource(this,$http,request.httpConfig,request.headers,request.params,what,this[config.restangularFields.etag],operation)[method]().then(function(response){var resData=response.data,fullParams=response.config.params,data=parseResponse(resData,operation,whatFetched,url,response,deferred);if((_.isUndefined(data)||""===data)&&(data=[]),!_.isArray(data))throw new Error("Response for getList SHOULD be an array and not an object or something else");var processedData=_.map(data,function(elem){return __this[config.restangularFields.restangularCollection]?restangularizeElem(__this[config.restangularFields.parentResource],elem,__this[config.restangularFields.route],!0,data):restangularizeElem(__this,elem,what,!0,data)});processedData=_.extend(data,processedData),__this[config.restangularFields.restangularCollection]?resolvePromise(deferred,response,restangularizeCollection(__this[config.restangularFields.parentResource],processedData,__this[config.restangularFields.route],!0,fullParams),filledArray):resolvePromise(deferred,response,restangularizeCollection(__this,processedData,what,!0,fullParams),filledArray)},function(response){304===response.status&&__this[config.restangularFields.restangularCollection]?resolvePromise(deferred,response,__this,filledArray):config.errorInterceptor(response,deferred)!==!1&&deferred.reject(response)}),restangularizePromise(deferred.promise,!0,filledArray)}function withHttpConfig(httpConfig){return this[config.restangularFields.httpConfig]=httpConfig,this}function save(params,headers){return this[config.restangularFields.fromServer]?this[config.restangularFields.put](params,headers):_.bind(elemFunction,this)("post",void 0,params,void 0,headers)}function elemFunction(operation,what,params,obj,headers){var __this=this,deferred=$q.defer(),resParams=params||{},route=what||this[config.restangularFields.route],fetchUrl=urlHandler.fetchUrl(this,what),callObj=obj||this,etag=callObj[config.restangularFields.etag]||("post"!=operation?this[config.restangularFields.etag]:null);_.isObject(callObj)&&config.isRestangularized(callObj)&&(callObj=stripRestangular(callObj));var request=config.fullRequestInterceptor(callObj,operation,route,fetchUrl,headers||{},resParams||{},this[config.restangularFields.httpConfig]||{}),filledObject={};filledObject=config.transformElem(filledObject,!1,route,service);var okCallback=function(response){var resData=response.data,fullParams=response.config.params,elem=parseResponse(resData,operation,route,fetchUrl,response,deferred);elem?"post"!==operation||__this[config.restangularFields.restangularCollection]?(data=restangularizeElem(__this[config.restangularFields.parentResource],elem,__this[config.restangularFields.route],!0,null,fullParams),data[config.restangularFields.singleOne]=__this[config.restangularFields.singleOne],resolvePromise(deferred,response,data,filledObject)):resolvePromise(deferred,response,restangularizeElem(__this,elem,what,!0,null,fullParams),filledObject):resolvePromise(deferred,response,void 0,filledObject)},errorCallback=function(response){304===response.status&&config.isSafe(operation)?resolvePromise(deferred,response,__this,filledObject):config.errorInterceptor(response,deferred)!==!1&&deferred.reject(response)},callOperation=operation,callHeaders=_.extend({},request.headers),isOverrideOperation=config.isOverridenMethod(operation);return isOverrideOperation?(callOperation="post",callHeaders=_.extend(callHeaders,{"X-HTTP-Method-Override":"remove"===operation?"DELETE":operation})):config.jsonp&&"get"===callOperation&&(callOperation="jsonp"),config.isSafe(operation)?isOverrideOperation?urlHandler.resource(this,$http,request.httpConfig,callHeaders,request.params,what,etag,callOperation)[callOperation]({}).then(okCallback,errorCallback):urlHandler.resource(this,$http,request.httpConfig,callHeaders,request.params,what,etag,callOperation)[callOperation]().then(okCallback,errorCallback):urlHandler.resource(this,$http,request.httpConfig,callHeaders,request.params,what,etag,callOperation)[callOperation](request.element).then(okCallback,errorCallback),restangularizePromise(deferred.promise,!1,filledObject)}function getFunction(params,headers){return _.bind(elemFunction,this)("get",void 0,params,void 0,headers)}function deleteFunction(params,headers){return _.bind(elemFunction,this)("remove",void 0,params,void 0,headers)}function putFunction(params,headers){return _.bind(elemFunction,this)("put",void 0,params,void 0,headers)}function postFunction(what,elem,params,headers){return _.bind(elemFunction,this)("post",what,params,elem,headers)}function headFunction(params,headers){return _.bind(elemFunction,this)("head",void 0,params,void 0,headers)}function traceFunction(params,headers){return _.bind(elemFunction,this)("trace",void 0,params,void 0,headers)}function optionsFunction(params,headers){return _.bind(elemFunction,this)("options",void 0,params,void 0,headers)}function patchFunction(elem,params,headers){return _.bind(elemFunction,this)("patch",void 0,params,elem,headers)}function customFunction(operation,path,params,headers,elem){return _.bind(elemFunction,this)(operation,path,params,elem,headers)}function addRestangularMethodFunction(name,operation,path,defaultParams,defaultHeaders,defaultElem){var bindedFunction;bindedFunction="getList"===operation?_.bind(fetchFunction,this,path):_.bind(customFunction,this,operation,path);var createdFunction=function(params,headers,elem){var callParams=_.defaults({params:params,headers:headers,elem:elem},{params:defaultParams,headers:defaultHeaders,elem:defaultElem});return bindedFunction(callParams.params,callParams.headers,callParams.elem)};config.isSafe(operation)?this[name]=createdFunction:this[name]=function(elem,params,headers){return createdFunction(params,headers,elem)}}function withConfigurationFunction(configurer){var newConfig=angular.copy(_.omit(config,"configuration"));return Configurer.init(newConfig,newConfig),configurer(newConfig),createServiceForConfiguration(newConfig)}function toService(route,parent){var serv={},collection=(parent||service).all(route);return serv.one=_.bind(one,parent||service,parent,route),serv.post=_.bind(collection.post,collection),serv.getList=_.bind(collection.getList,collection),serv}var service={},urlHandler=new config.urlCreatorFactory[config.urlCreator];return urlHandler.setConfig(config),Configurer.init(service,config),service.copy=_.bind(copyRestangularizedElement,service),service.service=_.bind(toService,service),service.withConfig=_.bind(withConfigurationFunction,service),service.one=_.bind(one,service,null),service.all=_.bind(all,service,null),service.several=_.bind(several,service,null),service.oneUrl=_.bind(oneUrl,service,null),service.allUrl=_.bind(allUrl,service,null),service.stripRestangular=_.bind(stripRestangular,service),service.restangularizeElement=_.bind(restangularizeElem,service),service.restangularizeCollection=_.bind(restangularizeCollectionAndElements,service),service}return createServiceForConfiguration(globalConfiguration)}]})}(),function(window,angular,undefined){"use strict";function isValidDottedPath(path){return null!=path&&""!==path&&"hasOwnProperty"!==path&&MEMBER_NAME_REGEX.test("."+path)}function lookupDottedPath(obj,path){if(!isValidDottedPath(path))throw $resourceMinErr("badmember",'Dotted member path "@{0}" is invalid.',path);for(var keys=path.split("."),i=0,ii=keys.length;ii>i&&obj!==undefined;i++){var key=keys[i];obj=null!==obj?obj[key]:undefined}return obj}function shallowClearAndCopy(src,dst){dst=dst||{},angular.forEach(dst,function(value,key){delete dst[key]});for(var key in src)!src.hasOwnProperty(key)||"$"===key.charAt(0)&&"$"===key.charAt(1)||(dst[key]=src[key]);return dst}var $resourceMinErr=angular.$$minErr("$resource"),MEMBER_NAME_REGEX=/^(\.[a-zA-Z_$][0-9a-zA-Z_$]*)+$/;angular.module("ngResource",["ng"]).provider("$resource",function(){var provider=this;this.defaults={stripTrailingSlashes:!0,actions:{get:{method:"GET"},save:{method:"POST"},query:{method:"GET",isArray:!0},remove:{method:"DELETE"},"delete":{method:"DELETE"}}},this.$get=["$http","$q",function($http,$q){function encodeUriSegment(val){return encodeUriQuery(val,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function encodeUriQuery(val,pctEncodeSpaces){return encodeURIComponent(val).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,pctEncodeSpaces?"%20":"+")}function Route(template,defaults){this.template=template,this.defaults=extend({},provider.defaults,defaults),this.urlParams={}}function resourceFactory(url,paramDefaults,actions,options){function extractParams(data,actionParams){var ids={};return actionParams=extend({},paramDefaults,actionParams),forEach(actionParams,function(value,key){isFunction(value)&&(value=value()),ids[key]=value&&value.charAt&&"@"==value.charAt(0)?lookupDottedPath(data,value.substr(1)):value}),ids}function defaultResponseInterceptor(response){return response.resource}function Resource(value){shallowClearAndCopy(value||{},this)}var route=new Route(url,options);return actions=extend({},provider.defaults.actions,actions),Resource.prototype.toJSON=function(){var data=extend({},this);return delete data.$promise,delete data.$resolved,data},forEach(actions,function(action,name){var hasBody=/^(POST|PUT|PATCH)$/i.test(action.method);Resource[name]=function(a1,a2,a3,a4){var data,success,error,params={};switch(arguments.length){case 4:error=a4,success=a3;case 3:case 2:if(!isFunction(a2)){params=a1,data=a2,success=a3;break}if(isFunction(a1)){success=a1,error=a2;break}success=a2,error=a3;case 1:isFunction(a1)?success=a1:hasBody?data=a1:params=a1;break;case 0:break;default:throw $resourceMinErr("badargs","Expected up to 4 arguments [params, data, success, error], got {0} arguments",arguments.length)}var isInstanceCall=this instanceof Resource,value=isInstanceCall?data:action.isArray?[]:new Resource(data),httpConfig={},responseInterceptor=action.interceptor&&action.interceptor.response||defaultResponseInterceptor,responseErrorInterceptor=action.interceptor&&action.interceptor.responseError||undefined;forEach(action,function(value,key){"params"!=key&&"isArray"!=key&&"interceptor"!=key&&(httpConfig[key]=copy(value))}),hasBody&&(httpConfig.data=data),route.setUrlParams(httpConfig,extend({},extractParams(data,action.params||{}),params),action.url);var promise=$http(httpConfig).then(function(response){var data=response.data,promise=value.$promise;if(data){if(angular.isArray(data)!==!!action.isArray)throw $resourceMinErr("badcfg","Error in resource configuration for action `{0}`. Expected response to contain an {1} but got an {2}",name,action.isArray?"array":"object",angular.isArray(data)?"array":"object");action.isArray?(value.length=0,forEach(data,function(item){"object"==typeof item?value.push(new Resource(item)):value.push(item)})):(shallowClearAndCopy(data,value),value.$promise=promise)}return value.$resolved=!0,response.resource=value,response},function(response){return value.$resolved=!0,(error||noop)(response),$q.reject(response)});return promise=promise.then(function(response){var value=responseInterceptor(response);return(success||noop)(value,response.headers),value},responseErrorInterceptor),isInstanceCall?promise:(value.$promise=promise,value.$resolved=!1,value)},Resource.prototype["$"+name]=function(params,success,error){isFunction(params)&&(error=success,success=params,params={});var result=Resource[name].call(this,params,this,success,error);return result.$promise||result}}),Resource.bind=function(additionalParamDefaults){return resourceFactory(url,extend({},paramDefaults,additionalParamDefaults),actions)},Resource}var noop=angular.noop,forEach=angular.forEach,extend=angular.extend,copy=angular.copy,isFunction=angular.isFunction;return Route.prototype={setUrlParams:function(config,params,actionUrl){var val,encodedVal,self=this,url=actionUrl||self.template,urlParams=self.urlParams={};forEach(url.split(/\W/),function(param){if("hasOwnProperty"===param)throw $resourceMinErr("badname","hasOwnProperty is not a valid parameter name.");!new RegExp("^\\d+$").test(param)&&param&&new RegExp("(^|[^\\\\]):"+param+"(\\W|$)").test(url)&&(urlParams[param]=!0)}),url=url.replace(/\\:/g,":"),params=params||{},forEach(self.urlParams,function(_,urlParam){val=params.hasOwnProperty(urlParam)?params[urlParam]:self.defaults[urlParam],angular.isDefined(val)&&null!==val?(encodedVal=encodeUriSegment(val),url=url.replace(new RegExp(":"+urlParam+"(\\W|$)","g"),function(match,p1){return encodedVal+p1})):url=url.replace(new RegExp("(/?):"+urlParam+"(\\W|$)","g"),function(match,leadingSlashes,tail){return"/"==tail.charAt(0)?tail:leadingSlashes+tail})}),self.defaults.stripTrailingSlashes&&(url=url.replace(/\/+$/,"")||"/"),url=url.replace(/\/\.(?=\w+($|\?))/,"."),config.url=url.replace(/\/\\\./,"/."),forEach(params,function(value,key){self.urlParams[key]||(config.params=config.params||{},config.params[key]=value)})}},resourceFactory}]})}(window,window.angular),function(window,angular,undefined){"use strict";angular.module("ngCookies",["ng"]).factory("$cookies",["$rootScope","$browser",function($rootScope,$browser){function push(){var name,value,browserCookies,updated;for(name in lastCookies)isUndefined(cookies[name])&&($browser.cookies(name,undefined),delete lastCookies[name]);for(name in cookies)value=cookies[name],angular.isString(value)||(value=""+value,cookies[name]=value),value!==lastCookies[name]&&($browser.cookies(name,value),lastCookies[name]=value,updated=!0);if(updated){browserCookies=$browser.cookies();for(name in cookies)cookies[name]!==browserCookies[name]&&(isUndefined(browserCookies[name])?(delete cookies[name],delete lastCookies[name]):cookies[name]=lastCookies[name]=browserCookies[name])}}var lastBrowserCookies,cookies={},lastCookies={},runEval=!1,copy=angular.copy,isUndefined=angular.isUndefined;return $browser.addPollFn(function(){var currentCookies=$browser.cookies();lastBrowserCookies!=currentCookies&&(lastBrowserCookies=currentCookies,copy(currentCookies,lastCookies),copy(currentCookies,cookies),runEval&&$rootScope.$apply())})(),runEval=!0,$rootScope.$watch(push),cookies}]).factory("$cookieStore",["$cookies",function($cookies){return{get:function(key){var value=$cookies[key];return value?angular.fromJson(value):value},put:function(key,value){$cookies[key]=angular.toJson(value)},remove:function(key){delete $cookies[key]}}}])}(window,window.angular),function(window,angular,undefined){"use strict";function $SanitizeProvider(){this.$get=["$$sanitizeUri",function($$sanitizeUri){return function(html){var buf=[];return htmlParser(html,htmlSanitizeWriter(buf,function(uri,isImage){return!/^unsafe/.test($$sanitizeUri(uri,isImage))})),buf.join("")}}]}function sanitizeText(chars){var buf=[],writer=htmlSanitizeWriter(buf,angular.noop);return writer.chars(chars),buf.join("")}function makeMap(str){var i,obj={},items=str.split(",");for(i=0;i<items.length;i++)obj[items[i]]=!0;return obj}function htmlParser(html,handler){function parseStartTag(tag,tagName,rest,unary){if(tagName=angular.lowercase(tagName),blockElements[tagName])for(;stack.last()&&inlineElements[stack.last()];)parseEndTag("",stack.last());optionalEndTagElements[tagName]&&stack.last()==tagName&&parseEndTag("",tagName),unary=voidElements[tagName]||!!unary,unary||stack.push(tagName);var attrs={};rest.replace(ATTR_REGEXP,function(match,name,doubleQuotedValue,singleQuotedValue,unquotedValue){var value=doubleQuotedValue||singleQuotedValue||unquotedValue||"";attrs[name]=decodeEntities(value)}),handler.start&&handler.start(tagName,attrs,unary)}function parseEndTag(tag,tagName){var i,pos=0;if(tagName=angular.lowercase(tagName))for(pos=stack.length-1;pos>=0&&stack[pos]!=tagName;pos--);if(pos>=0){for(i=stack.length-1;i>=pos;i--)handler.end&&handler.end(stack[i]);stack.length=pos}}"string"!=typeof html&&(html=null===html||"undefined"==typeof html?"":""+html);var index,chars,match,text,stack=[],last=html;for(stack.last=function(){return stack[stack.length-1]};html;){if(text="",chars=!0,stack.last()&&specialElements[stack.last()]?(html=html.replace(new RegExp("([\\W\\w]*)<\\s*\\/\\s*"+stack.last()+"[^>]*>","i"),function(all,text){return text=text.replace(COMMENT_REGEXP,"$1").replace(CDATA_REGEXP,"$1"),handler.chars&&handler.chars(decodeEntities(text)),""}),parseEndTag("",stack.last())):(0===html.indexOf("<!--")?(index=html.indexOf("--",4),index>=0&&html.lastIndexOf("-->",index)===index&&(handler.comment&&handler.comment(html.substring(4,index)),html=html.substring(index+3),chars=!1)):DOCTYPE_REGEXP.test(html)?(match=html.match(DOCTYPE_REGEXP),match&&(html=html.replace(match[0],""),chars=!1)):BEGING_END_TAGE_REGEXP.test(html)?(match=html.match(END_TAG_REGEXP),match&&(html=html.substring(match[0].length),match[0].replace(END_TAG_REGEXP,parseEndTag),chars=!1)):BEGIN_TAG_REGEXP.test(html)&&(match=html.match(START_TAG_REGEXP),match?(match[4]&&(html=html.substring(match[0].length),match[0].replace(START_TAG_REGEXP,parseStartTag)),chars=!1):(text+="<",html=html.substring(1))),chars&&(index=html.indexOf("<"),text+=0>index?html:html.substring(0,index),html=0>index?"":html.substring(index),handler.chars&&handler.chars(decodeEntities(text)))),html==last)throw $sanitizeMinErr("badparse","The sanitizer was unable to parse the following block of html: {0}",html);last=html}parseEndTag()}function decodeEntities(value){return value?(hiddenPre.innerHTML=value.replace(/</g,"&lt;"),hiddenPre.textContent):""}function encodeEntities(value){return value.replace(/&/g,"&amp;").replace(SURROGATE_PAIR_REGEXP,function(value){var hi=value.charCodeAt(0),low=value.charCodeAt(1);return"&#"+(1024*(hi-55296)+(low-56320)+65536)+";"}).replace(NON_ALPHANUMERIC_REGEXP,function(value){return"&#"+value.charCodeAt(0)+";"}).replace(/</g,"&lt;").replace(/>/g,"&gt;")}function htmlSanitizeWriter(buf,uriValidator){var ignore=!1,out=angular.bind(buf,buf.push);return{start:function(tag,attrs,unary){tag=angular.lowercase(tag),!ignore&&specialElements[tag]&&(ignore=tag),ignore||validElements[tag]!==!0||(out("<"),out(tag),angular.forEach(attrs,function(value,key){var lkey=angular.lowercase(key),isImage="img"===tag&&"src"===lkey||"background"===lkey;validAttrs[lkey]!==!0||uriAttrs[lkey]===!0&&!uriValidator(value,isImage)||(out(" "),out(key),out('="'),out(encodeEntities(value)),out('"'))}),out(unary?"/>":">"))},end:function(tag){tag=angular.lowercase(tag),ignore||validElements[tag]!==!0||(out("</"),out(tag),out(">")),tag==ignore&&(ignore=!1)},chars:function(chars){ignore||out(encodeEntities(chars))}}}var $sanitizeMinErr=angular.$$minErr("$sanitize"),START_TAG_REGEXP=/^<((?:[a-zA-Z])[\w:-]*)((?:\s+[\w:-]+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)\s*(>?)/,END_TAG_REGEXP=/^<\/\s*([\w:-]+)[^>]*>/,ATTR_REGEXP=/([\w:-]+)(?:\s*=\s*(?:(?:"((?:[^"])*)")|(?:'((?:[^'])*)')|([^>\s]+)))?/g,BEGIN_TAG_REGEXP=/^</,BEGING_END_TAGE_REGEXP=/^<\//,COMMENT_REGEXP=/<!--(.*?)-->/g,DOCTYPE_REGEXP=/<!DOCTYPE([^>]*?)>/i,CDATA_REGEXP=/<!\[CDATA\[(.*?)]]>/g,SURROGATE_PAIR_REGEXP=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,NON_ALPHANUMERIC_REGEXP=/([^\#-~| |!])/g,voidElements=makeMap("area,br,col,hr,img,wbr"),optionalEndTagBlockElements=makeMap("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),optionalEndTagInlineElements=makeMap("rp,rt"),optionalEndTagElements=angular.extend({},optionalEndTagInlineElements,optionalEndTagBlockElements),blockElements=angular.extend({},optionalEndTagBlockElements,makeMap("address,article,aside,blockquote,caption,center,del,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,map,menu,nav,ol,pre,script,section,table,ul")),inlineElements=angular.extend({},optionalEndTagInlineElements,makeMap("a,abbr,acronym,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,q,ruby,rp,rt,s,samp,small,span,strike,strong,sub,sup,time,tt,u,var")),svgElements=makeMap("animate,animateColor,animateMotion,animateTransform,circle,defs,desc,ellipse,font-face,font-face-name,font-face-src,g,glyph,hkern,image,linearGradient,line,marker,metadata,missing-glyph,mpath,path,polygon,polyline,radialGradient,rect,set,stop,svg,switch,text,title,tspan,use"),specialElements=makeMap("script,style"),validElements=angular.extend({},voidElements,blockElements,inlineElements,optionalEndTagElements,svgElements),uriAttrs=makeMap("background,cite,href,longdesc,src,usemap,xlink:href"),htmlAttrs=makeMap("abbr,align,alt,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,coords,dir,face,headers,height,hreflang,hspace,ismap,lang,language,nohref,nowrap,rel,rev,rows,rowspan,rules,scope,scrolling,shape,size,span,start,summary,target,title,type,valign,value,vspace,width"),svgAttrs=makeMap("accent-height,accumulate,additive,alphabetic,arabic-form,ascent,attributeName,attributeType,baseProfile,bbox,begin,by,calcMode,cap-height,class,color,color-rendering,content,cx,cy,d,dx,dy,descent,display,dur,end,fill,fill-rule,font-family,font-size,font-stretch,font-style,font-variant,font-weight,from,fx,fy,g1,g2,glyph-name,gradientUnits,hanging,height,horiz-adv-x,horiz-origin-x,ideographic,k,keyPoints,keySplines,keyTimes,lang,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mathematical,max,min,offset,opacity,orient,origin,overline-position,overline-thickness,panose-1,path,pathLength,points,preserveAspectRatio,r,refX,refY,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,rotate,rx,ry,slope,stemh,stemv,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,systemLanguage,target,text-anchor,to,transform,type,u1,u2,underline-position,underline-thickness,unicode,unicode-range,units-per-em,values,version,viewBox,visibility,width,widths,x,x-height,x1,x2,xlink:actuate,xlink:arcrole,xlink:role,xlink:show,xlink:title,xlink:type,xml:base,xml:lang,xml:space,xmlns,xmlns:xlink,y,y1,y2,zoomAndPan"),validAttrs=angular.extend({},uriAttrs,svgAttrs,htmlAttrs),hiddenPre=document.createElement("pre");angular.module("ngSanitize",[]).provider("$sanitize",$SanitizeProvider),angular.module("ngSanitize").filter("linky",["$sanitize",function($sanitize){var LINKY_URL_REGEXP=/((ftp|https?):\/\/|(www\.)|(mailto:)?[A-Za-z0-9._%+-]+@)\S*[^\s.;,(){}<>"”’]/i,MAILTO_REGEXP=/^mailto:/i;return function(text,target){function addText(text){text&&html.push(sanitizeText(text))}function addLink(url,text){html.push("<a "),angular.isDefined(target)&&html.push('target="',target,'" '),html.push('href="',url.replace(/"/g,"&quot;"),'">'),addText(text),html.push("</a>")}if(!text)return text;for(var match,url,i,raw=text,html=[];match=raw.match(LINKY_URL_REGEXP);)url=match[0],match[2]||match[4]||(url=(match[3]?"http://":"mailto:")+url),i=match.index,addText(raw.substr(0,i)),addLink(url,match[0].replace(MAILTO_REGEXP,"")),raw=raw.substring(i+match[0].length);return addText(raw),$sanitize(html.join(""))}}])}(window,window.angular),function(window,angular,undefined){"use strict";angular.module("ngAnimate",["ng"]).directive("ngAnimateChildren",function(){var NG_ANIMATE_CHILDREN="$$ngAnimateChildren";return function(scope,element,attrs){var val=attrs.ngAnimateChildren;angular.isString(val)&&0===val.length?element.data(NG_ANIMATE_CHILDREN,!0):scope.$watch(val,function(value){element.data(NG_ANIMATE_CHILDREN,!!value)})}}).factory("$$animateReflow",["$$rAF","$document",function($$rAF,$document){var bod=$document[0].body;return function(fn){return $$rAF(function(){fn(bod.offsetWidth)})}}]).config(["$provide","$animateProvider",function($provide,$animateProvider){function extractElementNode(element){for(var i=0;i<element.length;i++){var elm=element[i];if(elm.nodeType==ELEMENT_NODE)return elm}}function prepareElement(element){return element&&angular.element(element)}function stripCommentsFromElement(element){return angular.element(extractElementNode(element))}function isMatchingElement(elm1,elm2){return extractElementNode(elm1)==extractElementNode(elm2)}var $$jqLite,noop=angular.noop,forEach=angular.forEach,selectors=$animateProvider.$$selectors,isArray=angular.isArray,isString=angular.isString,isObject=angular.isObject,ELEMENT_NODE=1,NG_ANIMATE_STATE="$$ngAnimateState",NG_ANIMATE_CHILDREN="$$ngAnimateChildren",NG_ANIMATE_CLASS_NAME="ng-animate",rootAnimateState={running:!0};$provide.decorator("$animate",["$delegate","$$q","$injector","$sniffer","$rootElement","$$asyncCallback","$rootScope","$document","$templateRequest","$$jqLite",function($delegate,$$q,$injector,$sniffer,$rootElement,$$asyncCallback,$rootScope,$document,$templateRequest,$$$jqLite){function classBasedAnimationsBlocked(element,setter){var data=element.data(NG_ANIMATE_STATE)||{};return setter&&(data.running=!0,data.structural=!0,element.data(NG_ANIMATE_STATE,data)),data.disabled||data.running&&data.structural}function runAnimationPostDigest(fn){var cancelFn,defer=$$q.defer();return defer.promise.$$cancelFn=function(){cancelFn&&cancelFn()},$rootScope.$$postDigest(function(){cancelFn=fn(function(){defer.resolve()})}),defer.promise}function parseAnimateOptions(options){
  return isObject(options)?(options.tempClasses&&isString(options.tempClasses)&&(options.tempClasses=options.tempClasses.split(/\s+/)),options):void 0}function resolveElementClasses(element,cache,runningAnimations){runningAnimations=runningAnimations||{};var lookup={};forEach(runningAnimations,function(data,selector){forEach(selector.split(" "),function(s){lookup[s]=data})});var hasClasses=Object.create(null);forEach((element.attr("class")||"").split(/\s+/),function(className){hasClasses[className]=!0});var toAdd=[],toRemove=[];return forEach(cache&&cache.classes||[],function(status,className){var hasClass=hasClasses[className],matchingAnimation=lookup[className]||{};status===!1?(hasClass||"addClass"==matchingAnimation.event)&&toRemove.push(className):status===!0&&(hasClass&&"removeClass"!=matchingAnimation.event||toAdd.push(className))}),toAdd.length+toRemove.length>0&&[toAdd.join(" "),toRemove.join(" ")]}function lookup(name){if(name){var matches=[],flagMap={},classes=name.substr(1).split(".");($sniffer.transitions||$sniffer.animations)&&matches.push($injector.get(selectors[""]));for(var i=0;i<classes.length;i++){var klass=classes[i],selectorFactoryName=selectors[klass];selectorFactoryName&&!flagMap[klass]&&(matches.push($injector.get(selectorFactoryName)),flagMap[klass]=!0)}return matches}}function animationRunner(element,animationEvent,className,options){function registerAnimation(animationFactory,event){var afterFn=animationFactory[event],beforeFn=animationFactory["before"+event.charAt(0).toUpperCase()+event.substr(1)];return afterFn||beforeFn?("leave"==event&&(beforeFn=afterFn,afterFn=null),after.push({event:event,fn:afterFn}),before.push({event:event,fn:beforeFn}),!0):void 0}function run(fns,cancellations,allCompleteFn){function afterAnimationComplete(index){if(cancellations){if((cancellations[index]||noop)(),++count<animations.length)return;cancellations=null}allCompleteFn()}var animations=[];forEach(fns,function(animation){animation.fn&&animations.push(animation)});var count=0;forEach(animations,function(animation,index){var progress=function(){afterAnimationComplete(index)};switch(animation.event){case"setClass":cancellations.push(animation.fn(element,classNameAdd,classNameRemove,progress,options));break;case"animate":cancellations.push(animation.fn(element,className,options.from,options.to,progress));break;case"addClass":cancellations.push(animation.fn(element,classNameAdd||className,progress,options));break;case"removeClass":cancellations.push(animation.fn(element,classNameRemove||className,progress,options));break;default:cancellations.push(animation.fn(element,progress,options))}}),cancellations&&0===cancellations.length&&allCompleteFn()}var node=element[0];if(node){options&&(options.to=options.to||{},options.from=options.from||{});var classNameAdd,classNameRemove;isArray(className)&&(classNameAdd=className[0],classNameRemove=className[1],classNameAdd?classNameRemove?className=classNameAdd+" "+classNameRemove:(className=classNameAdd,animationEvent="addClass"):(className=classNameRemove,animationEvent="removeClass"));var isSetClassOperation="setClass"==animationEvent,isClassBased=isSetClassOperation||"addClass"==animationEvent||"removeClass"==animationEvent||"animate"==animationEvent,currentClassName=element.attr("class"),classes=currentClassName+" "+className;if(isAnimatableClassName(classes)){var beforeComplete=noop,beforeCancel=[],before=[],afterComplete=noop,afterCancel=[],after=[],animationLookup=(" "+classes).replace(/\s+/g,".");return forEach(lookup(animationLookup),function(animationFactory){var created=registerAnimation(animationFactory,animationEvent);!created&&isSetClassOperation&&(registerAnimation(animationFactory,"addClass"),registerAnimation(animationFactory,"removeClass"))}),{node:node,event:animationEvent,className:className,isClassBased:isClassBased,isSetClassOperation:isSetClassOperation,applyStyles:function(){options&&element.css(angular.extend(options.from||{},options.to||{}))},before:function(allCompleteFn){beforeComplete=allCompleteFn,run(before,beforeCancel,function(){beforeComplete=noop,allCompleteFn()})},after:function(allCompleteFn){afterComplete=allCompleteFn,run(after,afterCancel,function(){afterComplete=noop,allCompleteFn()})},cancel:function(){beforeCancel&&(forEach(beforeCancel,function(cancelFn){(cancelFn||noop)(!0)}),beforeComplete(!0)),afterCancel&&(forEach(afterCancel,function(cancelFn){(cancelFn||noop)(!0)}),afterComplete(!0))}}}}}function performAnimation(animationEvent,className,element,parentElement,afterElement,domOperation,options,doneCallback){function fireDOMCallback(animationPhase){var eventName="$animate:"+animationPhase;elementEvents&&elementEvents[eventName]&&elementEvents[eventName].length>0&&$$asyncCallback(function(){element.triggerHandler(eventName,{event:animationEvent,className:className})})}function fireBeforeCallbackAsync(){fireDOMCallback("before")}function fireAfterCallbackAsync(){fireDOMCallback("after")}function fireDoneCallbackAsync(){fireDOMCallback("close"),doneCallback()}function fireDOMOperation(){fireDOMOperation.hasBeenRun||(fireDOMOperation.hasBeenRun=!0,domOperation())}function closeAnimation(){if(!closeAnimation.hasBeenRun){runner&&runner.applyStyles(),closeAnimation.hasBeenRun=!0,options&&options.tempClasses&&forEach(options.tempClasses,function(className){$$jqLite.removeClass(element,className)});var data=element.data(NG_ANIMATE_STATE);data&&(runner&&runner.isClassBased?cleanup(element,className):($$asyncCallback(function(){var data=element.data(NG_ANIMATE_STATE)||{};localAnimationCount==data.index&&cleanup(element,className,animationEvent)}),element.data(NG_ANIMATE_STATE,data))),fireDoneCallbackAsync()}}var noopCancel=noop,runner=animationRunner(element,animationEvent,className,options);if(!runner)return fireDOMOperation(),fireBeforeCallbackAsync(),fireAfterCallbackAsync(),closeAnimation(),noopCancel;animationEvent=runner.event,className=runner.className;var elementEvents=angular.element._data(runner.node);if(elementEvents=elementEvents&&elementEvents.events,parentElement||(parentElement=afterElement?afterElement.parent():element.parent()),animationsDisabled(element,parentElement))return fireDOMOperation(),fireBeforeCallbackAsync(),fireAfterCallbackAsync(),closeAnimation(),noopCancel;var ngAnimateState=element.data(NG_ANIMATE_STATE)||{},runningAnimations=ngAnimateState.active||{},totalActiveAnimations=ngAnimateState.totalActive||0,lastAnimation=ngAnimateState.last,skipAnimation=!1;if(totalActiveAnimations>0){var animationsToCancel=[];if(runner.isClassBased){if("setClass"==lastAnimation.event)animationsToCancel.push(lastAnimation),cleanup(element,className);else if(runningAnimations[className]){var current=runningAnimations[className];current.event==animationEvent?skipAnimation=!0:(animationsToCancel.push(current),cleanup(element,className))}}else if("leave"==animationEvent&&runningAnimations["ng-leave"])skipAnimation=!0;else{for(var klass in runningAnimations)animationsToCancel.push(runningAnimations[klass]);ngAnimateState={},cleanup(element,!0)}animationsToCancel.length>0&&forEach(animationsToCancel,function(operation){operation.cancel()})}if(!runner.isClassBased||runner.isSetClassOperation||"animate"==animationEvent||skipAnimation||(skipAnimation="addClass"==animationEvent==element.hasClass(className)),skipAnimation)return fireDOMOperation(),fireBeforeCallbackAsync(),fireAfterCallbackAsync(),fireDoneCallbackAsync(),noopCancel;runningAnimations=ngAnimateState.active||{},totalActiveAnimations=ngAnimateState.totalActive||0,"leave"==animationEvent&&element.one("$destroy",function(e){var element=angular.element(this),state=element.data(NG_ANIMATE_STATE);if(state){var activeLeaveAnimation=state.active["ng-leave"];activeLeaveAnimation&&(activeLeaveAnimation.cancel(),cleanup(element,"ng-leave"))}}),$$jqLite.addClass(element,NG_ANIMATE_CLASS_NAME),options&&options.tempClasses&&forEach(options.tempClasses,function(className){$$jqLite.addClass(element,className)});var localAnimationCount=globalAnimationCounter++;return totalActiveAnimations++,runningAnimations[className]=runner,element.data(NG_ANIMATE_STATE,{last:runner,active:runningAnimations,index:localAnimationCount,totalActive:totalActiveAnimations}),fireBeforeCallbackAsync(),runner.before(function(cancelled){var data=element.data(NG_ANIMATE_STATE);cancelled=cancelled||!data||!data.active[className]||runner.isClassBased&&data.active[className].event!=animationEvent,fireDOMOperation(),cancelled===!0?closeAnimation():(fireAfterCallbackAsync(),runner.after(closeAnimation))}),runner.cancel}function cancelChildAnimations(element){var node=extractElementNode(element);if(node){var nodes=angular.isFunction(node.getElementsByClassName)?node.getElementsByClassName(NG_ANIMATE_CLASS_NAME):node.querySelectorAll("."+NG_ANIMATE_CLASS_NAME);forEach(nodes,function(element){element=angular.element(element);var data=element.data(NG_ANIMATE_STATE);data&&data.active&&forEach(data.active,function(runner){runner.cancel()})})}}function cleanup(element,className){if(isMatchingElement(element,$rootElement))rootAnimateState.disabled||(rootAnimateState.running=!1,rootAnimateState.structural=!1);else if(className){var data=element.data(NG_ANIMATE_STATE)||{},removeAnimations=className===!0;!removeAnimations&&data.active&&data.active[className]&&(data.totalActive--,delete data.active[className]),(removeAnimations||!data.totalActive)&&($$jqLite.removeClass(element,NG_ANIMATE_CLASS_NAME),element.removeData(NG_ANIMATE_STATE))}}function animationsDisabled(element,parentElement){if(rootAnimateState.disabled)return!0;if(isMatchingElement(element,$rootElement))return rootAnimateState.running;var allowChildAnimations,parentRunningAnimation,hasParent;do{if(0===parentElement.length)break;var isRoot=isMatchingElement(parentElement,$rootElement),state=isRoot?rootAnimateState:parentElement.data(NG_ANIMATE_STATE)||{};if(state.disabled)return!0;if(isRoot&&(hasParent=!0),allowChildAnimations!==!1){var animateChildrenFlag=parentElement.data(NG_ANIMATE_CHILDREN);angular.isDefined(animateChildrenFlag)&&(allowChildAnimations=animateChildrenFlag)}parentRunningAnimation=parentRunningAnimation||state.running||state.last&&!state.last.isClassBased}while(parentElement=parentElement.parent());return!hasParent||!allowChildAnimations&&parentRunningAnimation}$$jqLite=$$$jqLite,$rootElement.data(NG_ANIMATE_STATE,rootAnimateState);var deregisterWatch=$rootScope.$watch(function(){return $templateRequest.totalPendingRequests},function(val,oldVal){0===val&&(deregisterWatch(),$rootScope.$$postDigest(function(){$rootScope.$$postDigest(function(){rootAnimateState.running=!1})}))}),globalAnimationCounter=0,classNameFilter=$animateProvider.classNameFilter(),isAnimatableClassName=classNameFilter?function(className){return classNameFilter.test(className)}:function(){return!0};return{animate:function(element,from,to,className,options){return className=className||"ng-inline-animate",options=parseAnimateOptions(options)||{},options.from=to?from:null,options.to=to?to:from,runAnimationPostDigest(function(done){return performAnimation("animate",className,stripCommentsFromElement(element),null,null,noop,options,done)})},enter:function(element,parentElement,afterElement,options){return options=parseAnimateOptions(options),element=angular.element(element),parentElement=prepareElement(parentElement),afterElement=prepareElement(afterElement),classBasedAnimationsBlocked(element,!0),$delegate.enter(element,parentElement,afterElement),runAnimationPostDigest(function(done){return performAnimation("enter","ng-enter",stripCommentsFromElement(element),parentElement,afterElement,noop,options,done)})},leave:function(element,options){return options=parseAnimateOptions(options),element=angular.element(element),cancelChildAnimations(element),classBasedAnimationsBlocked(element,!0),runAnimationPostDigest(function(done){return performAnimation("leave","ng-leave",stripCommentsFromElement(element),null,null,function(){$delegate.leave(element)},options,done)})},move:function(element,parentElement,afterElement,options){return options=parseAnimateOptions(options),element=angular.element(element),parentElement=prepareElement(parentElement),afterElement=prepareElement(afterElement),cancelChildAnimations(element),classBasedAnimationsBlocked(element,!0),$delegate.move(element,parentElement,afterElement),runAnimationPostDigest(function(done){return performAnimation("move","ng-move",stripCommentsFromElement(element),parentElement,afterElement,noop,options,done)})},addClass:function(element,className,options){return this.setClass(element,className,[],options)},removeClass:function(element,className,options){return this.setClass(element,[],className,options)},setClass:function(element,add,remove,options){options=parseAnimateOptions(options);var STORAGE_KEY="$$animateClasses";if(element=angular.element(element),element=stripCommentsFromElement(element),classBasedAnimationsBlocked(element))return $delegate.$$setClassImmediately(element,add,remove,options);var classes,cache=element.data(STORAGE_KEY),hasCache=!!cache;return cache||(cache={},cache.classes={}),classes=cache.classes,add=isArray(add)?add:add.split(" "),forEach(add,function(c){c&&c.length&&(classes[c]=!0)}),remove=isArray(remove)?remove:remove.split(" "),forEach(remove,function(c){c&&c.length&&(classes[c]=!1)}),hasCache?(options&&cache.options&&(cache.options=angular.extend(cache.options||{},options)),cache.promise):(element.data(STORAGE_KEY,cache={classes:classes,options:options}),cache.promise=runAnimationPostDigest(function(done){var cache,parentNode,parentElement,elementNode=extractElementNode(element);if(elementNode&&(cache=element.data(STORAGE_KEY),element.removeData(STORAGE_KEY),parentElement=element.parent(),parentNode=elementNode.parentNode),!parentNode||parentNode.$$NG_REMOVED||elementNode.$$NG_REMOVED)return void done();var state=element.data(NG_ANIMATE_STATE)||{},classes=resolveElementClasses(element,cache,state.active);return classes?performAnimation("setClass",classes,element,parentElement,null,function(){classes[0]&&$delegate.$$addClassImmediately(element,classes[0]),classes[1]&&$delegate.$$removeClassImmediately(element,classes[1])},cache.options,done):done()}))},cancel:function(promise){promise.$$cancelFn()},enabled:function(value,element){switch(arguments.length){case 2:if(value)cleanup(element);else{var data=element.data(NG_ANIMATE_STATE)||{};data.disabled=!0,element.data(NG_ANIMATE_STATE,data)}break;case 1:rootAnimateState.disabled=!value;break;default:value=!rootAnimateState.disabled}return!!value}}}]),$animateProvider.register("",["$window","$sniffer","$timeout","$$animateReflow",function($window,$sniffer,$timeout,$$animateReflow){function clearCacheAfterReflow(){cancelAnimationReflow||(cancelAnimationReflow=$$animateReflow(function(){animationReflowQueue=[],cancelAnimationReflow=null,lookupCache={}}))}function afterReflow(element,callback){cancelAnimationReflow&&cancelAnimationReflow(),animationReflowQueue.push(callback),cancelAnimationReflow=$$animateReflow(function(){forEach(animationReflowQueue,function(fn){fn()}),animationReflowQueue=[],cancelAnimationReflow=null,lookupCache={}})}function animationCloseHandler(element,totalTime){var node=extractElementNode(element);element=angular.element(node),animationElementQueue.push(element);var futureTimestamp=Date.now()+totalTime;closingTimestamp>=futureTimestamp||($timeout.cancel(closingTimer),closingTimestamp=futureTimestamp,closingTimer=$timeout(function(){closeAllAnimations(animationElementQueue),animationElementQueue=[]},totalTime,!1))}function closeAllAnimations(elements){forEach(elements,function(element){var elementData=element.data(NG_ANIMATE_CSS_DATA_KEY);elementData&&forEach(elementData.closeAnimationFns,function(fn){fn()})})}function getElementAnimationDetails(element,cacheKey){var data=cacheKey?lookupCache[cacheKey]:null;if(!data){var transitionDuration=0,transitionDelay=0,animationDuration=0,animationDelay=0;forEach(element,function(element){if(element.nodeType==ELEMENT_NODE){var elementStyles=$window.getComputedStyle(element)||{},transitionDurationStyle=elementStyles[TRANSITION_PROP+DURATION_KEY];transitionDuration=Math.max(parseMaxTime(transitionDurationStyle),transitionDuration);var transitionDelayStyle=elementStyles[TRANSITION_PROP+DELAY_KEY];transitionDelay=Math.max(parseMaxTime(transitionDelayStyle),transitionDelay);elementStyles[ANIMATION_PROP+DELAY_KEY];animationDelay=Math.max(parseMaxTime(elementStyles[ANIMATION_PROP+DELAY_KEY]),animationDelay);var aDuration=parseMaxTime(elementStyles[ANIMATION_PROP+DURATION_KEY]);aDuration>0&&(aDuration*=parseInt(elementStyles[ANIMATION_PROP+ANIMATION_ITERATION_COUNT_KEY],10)||1),animationDuration=Math.max(aDuration,animationDuration)}}),data={total:0,transitionDelay:transitionDelay,transitionDuration:transitionDuration,animationDelay:animationDelay,animationDuration:animationDuration},cacheKey&&(lookupCache[cacheKey]=data)}return data}function parseMaxTime(str){var maxValue=0,values=isString(str)?str.split(/\s*,\s*/):[];return forEach(values,function(value){maxValue=Math.max(parseFloat(value)||0,maxValue)}),maxValue}function getCacheKey(element){var parentElement=element.parent(),parentID=parentElement.data(NG_ANIMATE_PARENT_KEY);return parentID||(parentElement.data(NG_ANIMATE_PARENT_KEY,++parentCounter),parentID=parentCounter),parentID+"-"+extractElementNode(element).getAttribute("class")}function animateSetup(animationEvent,element,className,styles){var structural=["ng-enter","ng-leave","ng-move"].indexOf(className)>=0,cacheKey=getCacheKey(element),eventCacheKey=cacheKey+" "+className,itemIndex=lookupCache[eventCacheKey]?++lookupCache[eventCacheKey].total:0,stagger={};if(itemIndex>0){var staggerClassName=className+"-stagger",staggerCacheKey=cacheKey+" "+staggerClassName,applyClasses=!lookupCache[staggerCacheKey];applyClasses&&$$jqLite.addClass(element,staggerClassName),stagger=getElementAnimationDetails(element,staggerCacheKey),applyClasses&&$$jqLite.removeClass(element,staggerClassName)}$$jqLite.addClass(element,className);var formerData=element.data(NG_ANIMATE_CSS_DATA_KEY)||{},timings=getElementAnimationDetails(element,eventCacheKey),transitionDuration=timings.transitionDuration,animationDuration=timings.animationDuration;if(structural&&0===transitionDuration&&0===animationDuration)return $$jqLite.removeClass(element,className),!1;var blockTransition=styles||structural&&transitionDuration>0,blockAnimation=animationDuration>0&&stagger.animationDelay>0&&0===stagger.animationDuration,closeAnimationFns=formerData.closeAnimationFns||[];element.data(NG_ANIMATE_CSS_DATA_KEY,{stagger:stagger,cacheKey:eventCacheKey,running:formerData.running||0,itemIndex:itemIndex,blockTransition:blockTransition,closeAnimationFns:closeAnimationFns});var node=extractElementNode(element);return blockTransition&&(blockTransitions(node,!0),styles&&element.css(styles)),blockAnimation&&blockAnimations(node,!0),!0}function animateRun(animationEvent,element,className,activeAnimationComplete,styles){function onEnd(){element.off(css3AnimationEvents,onAnimationProgress),$$jqLite.removeClass(element,activeClassName),$$jqLite.removeClass(element,pendingClassName),staggerTimeout&&$timeout.cancel(staggerTimeout),animateClose(element,className);var node=extractElementNode(element);for(var i in appliedStyles)node.style.removeProperty(appliedStyles[i])}function onAnimationProgress(event){event.stopPropagation();var ev=event.originalEvent||event,timeStamp=ev.$manualTimeStamp||ev.timeStamp||Date.now(),elapsedTime=parseFloat(ev.elapsedTime.toFixed(ELAPSED_TIME_MAX_DECIMAL_PLACES));Math.max(timeStamp-startTime,0)>=maxDelayTime&&elapsedTime>=maxDuration&&activeAnimationComplete()}var node=extractElementNode(element),elementData=element.data(NG_ANIMATE_CSS_DATA_KEY);if(-1==node.getAttribute("class").indexOf(className)||!elementData)return void activeAnimationComplete();var activeClassName="",pendingClassName="";forEach(className.split(" "),function(klass,i){var prefix=(i>0?" ":"")+klass;activeClassName+=prefix+"-active",pendingClassName+=prefix+"-pending"});var style="",appliedStyles=[],itemIndex=elementData.itemIndex,stagger=elementData.stagger,staggerTime=0;if(itemIndex>0){var transitionStaggerDelay=0;stagger.transitionDelay>0&&0===stagger.transitionDuration&&(transitionStaggerDelay=stagger.transitionDelay*itemIndex);var animationStaggerDelay=0;stagger.animationDelay>0&&0===stagger.animationDuration&&(animationStaggerDelay=stagger.animationDelay*itemIndex,appliedStyles.push(CSS_PREFIX+"animation-play-state")),staggerTime=Math.round(100*Math.max(transitionStaggerDelay,animationStaggerDelay))/100}staggerTime||($$jqLite.addClass(element,activeClassName),elementData.blockTransition&&blockTransitions(node,!1));var eventCacheKey=elementData.cacheKey+" "+activeClassName,timings=getElementAnimationDetails(element,eventCacheKey),maxDuration=Math.max(timings.transitionDuration,timings.animationDuration);if(0===maxDuration)return $$jqLite.removeClass(element,activeClassName),animateClose(element,className),void activeAnimationComplete();!staggerTime&&styles&&Object.keys(styles).length>0&&(timings.transitionDuration||(element.css("transition",timings.animationDuration+"s linear all"),appliedStyles.push("transition")),element.css(styles));var maxDelay=Math.max(timings.transitionDelay,timings.animationDelay),maxDelayTime=maxDelay*ONE_SECOND;if(appliedStyles.length>0){var oldStyle=node.getAttribute("style")||"";";"!==oldStyle.charAt(oldStyle.length-1)&&(oldStyle+=";"),node.setAttribute("style",oldStyle+" "+style)}var staggerTimeout,startTime=Date.now(),css3AnimationEvents=ANIMATIONEND_EVENT+" "+TRANSITIONEND_EVENT,animationTime=(maxDelay+maxDuration)*CLOSING_TIME_BUFFER,totalTime=(staggerTime+animationTime)*ONE_SECOND;return staggerTime>0&&($$jqLite.addClass(element,pendingClassName),staggerTimeout=$timeout(function(){staggerTimeout=null,timings.transitionDuration>0&&blockTransitions(node,!1),timings.animationDuration>0&&blockAnimations(node,!1),$$jqLite.addClass(element,activeClassName),$$jqLite.removeClass(element,pendingClassName),styles&&(0===timings.transitionDuration&&element.css("transition",timings.animationDuration+"s linear all"),element.css(styles),appliedStyles.push("transition"))},staggerTime*ONE_SECOND,!1)),element.on(css3AnimationEvents,onAnimationProgress),elementData.closeAnimationFns.push(function(){onEnd(),activeAnimationComplete()}),elementData.running++,animationCloseHandler(element,totalTime),onEnd}function blockTransitions(node,bool){node.style[TRANSITION_PROP+PROPERTY_KEY]=bool?"none":""}function blockAnimations(node,bool){node.style[ANIMATION_PROP+ANIMATION_PLAYSTATE_KEY]=bool?"paused":""}function animateBefore(animationEvent,element,className,styles){return animateSetup(animationEvent,element,className,styles)?function(cancelled){cancelled&&animateClose(element,className)}:void 0}function animateAfter(animationEvent,element,className,afterAnimationComplete,styles){return element.data(NG_ANIMATE_CSS_DATA_KEY)?animateRun(animationEvent,element,className,afterAnimationComplete,styles):(animateClose(element,className),void afterAnimationComplete())}function animate(animationEvent,element,className,animationComplete,options){var preReflowCancellation=animateBefore(animationEvent,element,className,options.from);if(!preReflowCancellation)return clearCacheAfterReflow(),void animationComplete();var cancel=preReflowCancellation;return afterReflow(element,function(){cancel=animateAfter(animationEvent,element,className,animationComplete,options.to)}),function(cancelled){(cancel||noop)(cancelled)}}function animateClose(element,className){$$jqLite.removeClass(element,className);var data=element.data(NG_ANIMATE_CSS_DATA_KEY);data&&(data.running&&data.running--,data.running&&0!==data.running||element.removeData(NG_ANIMATE_CSS_DATA_KEY))}function suffixClasses(classes,suffix){var className="";return classes=isArray(classes)?classes:classes.split(/\s+/),forEach(classes,function(klass,i){klass&&klass.length>0&&(className+=(i>0?" ":"")+klass+suffix)}),className}var TRANSITION_PROP,TRANSITIONEND_EVENT,ANIMATION_PROP,ANIMATIONEND_EVENT,CSS_PREFIX="";window.ontransitionend===undefined&&window.onwebkittransitionend!==undefined?(CSS_PREFIX="-webkit-",TRANSITION_PROP="WebkitTransition",TRANSITIONEND_EVENT="webkitTransitionEnd transitionend"):(TRANSITION_PROP="transition",TRANSITIONEND_EVENT="transitionend"),window.onanimationend===undefined&&window.onwebkitanimationend!==undefined?(CSS_PREFIX="-webkit-",ANIMATION_PROP="WebkitAnimation",ANIMATIONEND_EVENT="webkitAnimationEnd animationend"):(ANIMATION_PROP="animation",ANIMATIONEND_EVENT="animationend");var cancelAnimationReflow,DURATION_KEY="Duration",PROPERTY_KEY="Property",DELAY_KEY="Delay",ANIMATION_ITERATION_COUNT_KEY="IterationCount",ANIMATION_PLAYSTATE_KEY="PlayState",NG_ANIMATE_PARENT_KEY="$$ngAnimateKey",NG_ANIMATE_CSS_DATA_KEY="$$ngAnimateCSS3Data",ELAPSED_TIME_MAX_DECIMAL_PLACES=3,CLOSING_TIME_BUFFER=1.5,ONE_SECOND=1e3,lookupCache={},parentCounter=0,animationReflowQueue=[],closingTimer=null,closingTimestamp=0,animationElementQueue=[];return{animate:function(element,className,from,to,animationCompleted,options){return options=options||{},options.from=from,options.to=to,animate("animate",element,className,animationCompleted,options)},enter:function(element,animationCompleted,options){return options=options||{},animate("enter",element,"ng-enter",animationCompleted,options)},leave:function(element,animationCompleted,options){return options=options||{},animate("leave",element,"ng-leave",animationCompleted,options)},move:function(element,animationCompleted,options){return options=options||{},animate("move",element,"ng-move",animationCompleted,options)},beforeSetClass:function(element,add,remove,animationCompleted,options){options=options||{};var className=suffixClasses(remove,"-remove")+" "+suffixClasses(add,"-add"),cancellationMethod=animateBefore("setClass",element,className,options.from);return cancellationMethod?(afterReflow(element,animationCompleted),cancellationMethod):(clearCacheAfterReflow(),void animationCompleted())},beforeAddClass:function(element,className,animationCompleted,options){options=options||{};var cancellationMethod=animateBefore("addClass",element,suffixClasses(className,"-add"),options.from);return cancellationMethod?(afterReflow(element,animationCompleted),cancellationMethod):(clearCacheAfterReflow(),void animationCompleted())},beforeRemoveClass:function(element,className,animationCompleted,options){options=options||{};var cancellationMethod=animateBefore("removeClass",element,suffixClasses(className,"-remove"),options.from);return cancellationMethod?(afterReflow(element,animationCompleted),cancellationMethod):(clearCacheAfterReflow(),void animationCompleted())},setClass:function(element,add,remove,animationCompleted,options){options=options||{},remove=suffixClasses(remove,"-remove"),add=suffixClasses(add,"-add");var className=remove+" "+add;return animateAfter("setClass",element,className,animationCompleted,options.to)},addClass:function(element,className,animationCompleted,options){return options=options||{},animateAfter("addClass",element,suffixClasses(className,"-add"),animationCompleted,options.to)},removeClass:function(element,className,animationCompleted,options){return options=options||{},animateAfter("removeClass",element,suffixClasses(className,"-remove"),animationCompleted,options.to)}}}])}])}(window,window.angular),function(window,angular,undefined){"use strict";function nodeName_(element){return angular.lowercase(element.nodeName||element[0]&&element[0].nodeName)}function makeSwipeDirective(directiveName,direction,eventName){ngTouch.directive(directiveName,["$parse","$swipe",function($parse,$swipe){var MAX_VERTICAL_DISTANCE=75,MAX_VERTICAL_RATIO=.3,MIN_HORIZONTAL_DISTANCE=30;return function(scope,element,attr){function validSwipe(coords){if(!startCoords)return!1;var deltaY=Math.abs(coords.y-startCoords.y),deltaX=(coords.x-startCoords.x)*direction;return valid&&MAX_VERTICAL_DISTANCE>deltaY&&deltaX>0&&deltaX>MIN_HORIZONTAL_DISTANCE&&MAX_VERTICAL_RATIO>deltaY/deltaX}var startCoords,valid,swipeHandler=$parse(attr[directiveName]),pointerTypes=["touch"];angular.isDefined(attr.ngSwipeDisableMouse)||pointerTypes.push("mouse"),$swipe.bind(element,{start:function(coords,event){startCoords=coords,valid=!0},cancel:function(event){valid=!1},end:function(coords,event){validSwipe(coords)&&scope.$apply(function(){element.triggerHandler(eventName),swipeHandler(scope,{$event:event})})}},pointerTypes)}}])}var ngTouch=angular.module("ngTouch",[]);ngTouch.factory("$swipe",[function(){function getCoordinates(event){var originalEvent=event.originalEvent||event,touches=originalEvent.touches&&originalEvent.touches.length?originalEvent.touches:[originalEvent],e=originalEvent.changedTouches&&originalEvent.changedTouches[0]||touches[0];return{x:e.clientX,y:e.clientY}}function getEvents(pointerTypes,eventType){var res=[];return angular.forEach(pointerTypes,function(pointerType){var eventName=POINTER_EVENTS[pointerType][eventType];eventName&&res.push(eventName)}),res.join(" ")}var MOVE_BUFFER_RADIUS=10,POINTER_EVENTS={mouse:{start:"mousedown",move:"mousemove",end:"mouseup"},touch:{start:"touchstart",move:"touchmove",end:"touchend",cancel:"touchcancel"}};return{bind:function(element,eventHandlers,pointerTypes){var totalX,totalY,startCoords,lastPos,active=!1;pointerTypes=pointerTypes||["mouse","touch"],element.on(getEvents(pointerTypes,"start"),function(event){startCoords=getCoordinates(event),active=!0,totalX=0,totalY=0,lastPos=startCoords,eventHandlers.start&&eventHandlers.start(startCoords,event)});var events=getEvents(pointerTypes,"cancel");events&&element.on(events,function(event){active=!1,eventHandlers.cancel&&eventHandlers.cancel(event)}),element.on(getEvents(pointerTypes,"move"),function(event){if(active&&startCoords){var coords=getCoordinates(event);if(totalX+=Math.abs(coords.x-lastPos.x),totalY+=Math.abs(coords.y-lastPos.y),lastPos=coords,!(MOVE_BUFFER_RADIUS>totalX&&MOVE_BUFFER_RADIUS>totalY))return totalY>totalX?(active=!1,void(eventHandlers.cancel&&eventHandlers.cancel(event))):(event.preventDefault(),void(eventHandlers.move&&eventHandlers.move(coords,event)))}}),element.on(getEvents(pointerTypes,"end"),function(event){active&&(active=!1,eventHandlers.end&&eventHandlers.end(getCoordinates(event),event))})}}}]),ngTouch.config(["$provide",function($provide){$provide.decorator("ngClickDirective",["$delegate",function($delegate){return $delegate.shift(),$delegate}])}]),ngTouch.directive("ngClick",["$parse","$timeout","$rootElement",function($parse,$timeout,$rootElement){function hit(x1,y1,x2,y2){return Math.abs(x1-x2)<CLICKBUSTER_THRESHOLD&&Math.abs(y1-y2)<CLICKBUSTER_THRESHOLD}function checkAllowableRegions(touchCoordinates,x,y){for(var i=0;i<touchCoordinates.length;i+=2)if(hit(touchCoordinates[i],touchCoordinates[i+1],x,y))return touchCoordinates.splice(i,i+2),!0;return!1}function onClick(event){if(!(Date.now()-lastPreventedTime>PREVENT_DURATION)){var touches=event.touches&&event.touches.length?event.touches:[event],x=touches[0].clientX,y=touches[0].clientY;1>x&&1>y||lastLabelClickCoordinates&&lastLabelClickCoordinates[0]===x&&lastLabelClickCoordinates[1]===y||(lastLabelClickCoordinates&&(lastLabelClickCoordinates=null),"label"===nodeName_(event.target)&&(lastLabelClickCoordinates=[x,y]),checkAllowableRegions(touchCoordinates,x,y)||(event.stopPropagation(),event.preventDefault(),event.target&&event.target.blur&&event.target.blur()))}}function onTouchStart(event){var touches=event.touches&&event.touches.length?event.touches:[event],x=touches[0].clientX,y=touches[0].clientY;touchCoordinates.push(x,y),$timeout(function(){for(var i=0;i<touchCoordinates.length;i+=2)if(touchCoordinates[i]==x&&touchCoordinates[i+1]==y)return void touchCoordinates.splice(i,i+2)},PREVENT_DURATION,!1)}function preventGhostClick(x,y){touchCoordinates||($rootElement[0].addEventListener("click",onClick,!0),
  $rootElement[0].addEventListener("touchstart",onTouchStart,!0),touchCoordinates=[]),lastPreventedTime=Date.now(),checkAllowableRegions(touchCoordinates,x,y)}var lastPreventedTime,touchCoordinates,lastLabelClickCoordinates,TAP_DURATION=750,MOVE_TOLERANCE=12,PREVENT_DURATION=2500,CLICKBUSTER_THRESHOLD=25,ACTIVE_CLASS_NAME="ng-click-active";return function(scope,element,attr){function resetState(){tapping=!1,element.removeClass(ACTIVE_CLASS_NAME)}var tapElement,startTime,touchStartX,touchStartY,clickHandler=$parse(attr.ngClick),tapping=!1;element.on("touchstart",function(event){tapping=!0,tapElement=event.target?event.target:event.srcElement,3==tapElement.nodeType&&(tapElement=tapElement.parentNode),element.addClass(ACTIVE_CLASS_NAME),startTime=Date.now();var originalEvent=event.originalEvent||event,touches=originalEvent.touches&&originalEvent.touches.length?originalEvent.touches:[originalEvent],e=touches[0];touchStartX=e.clientX,touchStartY=e.clientY}),element.on("touchmove",function(event){resetState()}),element.on("touchcancel",function(event){resetState()}),element.on("touchend",function(event){var diff=Date.now()-startTime,originalEvent=event.originalEvent||event,touches=originalEvent.changedTouches&&originalEvent.changedTouches.length?originalEvent.changedTouches:originalEvent.touches&&originalEvent.touches.length?originalEvent.touches:[originalEvent],e=touches[0],x=e.clientX,y=e.clientY,dist=Math.sqrt(Math.pow(x-touchStartX,2)+Math.pow(y-touchStartY,2));tapping&&TAP_DURATION>diff&&MOVE_TOLERANCE>dist&&(preventGhostClick(x,y),tapElement&&tapElement.blur(),angular.isDefined(attr.disabled)&&attr.disabled!==!1||element.triggerHandler("click",[event])),resetState()}),element.onclick=function(event){},element.on("click",function(event,touchend){scope.$apply(function(){clickHandler(scope,{$event:touchend||event})})}),element.on("mousedown",function(event){element.addClass(ACTIVE_CLASS_NAME)}),element.on("mousemove mouseup",function(event){element.removeClass(ACTIVE_CLASS_NAME)})}}]),makeSwipeDirective("ngSwipeLeft",-1,"swipeleft"),makeSwipeDirective("ngSwipeRight",1,"swiperight")}(window,window.angular),function(window,angular,undefined){"use strict";function $RouteProvider(){function inherit(parent,extra){return angular.extend(Object.create(parent),extra)}function pathRegExp(path,opts){var insensitive=opts.caseInsensitiveMatch,ret={originalPath:path,regexp:path},keys=ret.keys=[];return path=path.replace(/([().])/g,"\\$1").replace(/(\/)?:(\w+)([\?\*])?/g,function(_,slash,key,option){var optional="?"===option?option:null,star="*"===option?option:null;return keys.push({name:key,optional:!!optional}),slash=slash||"",""+(optional?"":slash)+"(?:"+(optional?slash:"")+(star&&"(.+?)"||"([^/]+)")+(optional||"")+")"+(optional||"")}).replace(/([\/$\*])/g,"\\$1"),ret.regexp=new RegExp("^"+path+"$",insensitive?"i":""),ret}var routes={};this.when=function(path,route){var routeCopy=angular.copy(route);if(angular.isUndefined(routeCopy.reloadOnSearch)&&(routeCopy.reloadOnSearch=!0),angular.isUndefined(routeCopy.caseInsensitiveMatch)&&(routeCopy.caseInsensitiveMatch=this.caseInsensitiveMatch),routes[path]=angular.extend(routeCopy,path&&pathRegExp(path,routeCopy)),path){var redirectPath="/"==path[path.length-1]?path.substr(0,path.length-1):path+"/";routes[redirectPath]=angular.extend({redirectTo:path},pathRegExp(redirectPath,routeCopy))}return this},this.caseInsensitiveMatch=!1,this.otherwise=function(params){return"string"==typeof params&&(params={redirectTo:params}),this.when(null,params),this},this.$get=["$rootScope","$location","$routeParams","$q","$injector","$templateRequest","$sce",function($rootScope,$location,$routeParams,$q,$injector,$templateRequest,$sce){function switchRouteMatcher(on,route){var keys=route.keys,params={};if(!route.regexp)return null;var m=route.regexp.exec(on);if(!m)return null;for(var i=1,len=m.length;len>i;++i){var key=keys[i-1],val=m[i];key&&val&&(params[key.name]=val)}return params}function prepareRoute($locationEvent){var lastRoute=$route.current;preparedRoute=parseRoute(),preparedRouteIsUpdateOnly=preparedRoute&&lastRoute&&preparedRoute.$$route===lastRoute.$$route&&angular.equals(preparedRoute.pathParams,lastRoute.pathParams)&&!preparedRoute.reloadOnSearch&&!forceReload,preparedRouteIsUpdateOnly||!lastRoute&&!preparedRoute||$rootScope.$broadcast("$routeChangeStart",preparedRoute,lastRoute).defaultPrevented&&$locationEvent&&$locationEvent.preventDefault()}function commitRoute(){var lastRoute=$route.current,nextRoute=preparedRoute;preparedRouteIsUpdateOnly?(lastRoute.params=nextRoute.params,angular.copy(lastRoute.params,$routeParams),$rootScope.$broadcast("$routeUpdate",lastRoute)):(nextRoute||lastRoute)&&(forceReload=!1,$route.current=nextRoute,nextRoute&&nextRoute.redirectTo&&(angular.isString(nextRoute.redirectTo)?$location.path(interpolate(nextRoute.redirectTo,nextRoute.params)).search(nextRoute.params).replace():$location.url(nextRoute.redirectTo(nextRoute.pathParams,$location.path(),$location.search())).replace()),$q.when(nextRoute).then(function(){if(nextRoute){var template,templateUrl,locals=angular.extend({},nextRoute.resolve);return angular.forEach(locals,function(value,key){locals[key]=angular.isString(value)?$injector.get(value):$injector.invoke(value,null,null,key)}),angular.isDefined(template=nextRoute.template)?angular.isFunction(template)&&(template=template(nextRoute.params)):angular.isDefined(templateUrl=nextRoute.templateUrl)&&(angular.isFunction(templateUrl)&&(templateUrl=templateUrl(nextRoute.params)),angular.isDefined(templateUrl)&&(nextRoute.loadedTemplateUrl=$sce.valueOf(templateUrl),template=$templateRequest(templateUrl))),angular.isDefined(template)&&(locals.$template=template),$q.all(locals)}}).then(function(locals){nextRoute==$route.current&&(nextRoute&&(nextRoute.locals=locals,angular.copy(nextRoute.params,$routeParams)),$rootScope.$broadcast("$routeChangeSuccess",nextRoute,lastRoute))},function(error){nextRoute==$route.current&&$rootScope.$broadcast("$routeChangeError",nextRoute,lastRoute,error)}))}function parseRoute(){var params,match;return angular.forEach(routes,function(route,path){!match&&(params=switchRouteMatcher($location.path(),route))&&(match=inherit(route,{params:angular.extend({},$location.search(),params),pathParams:params}),match.$$route=route)}),match||routes[null]&&inherit(routes[null],{params:{},pathParams:{}})}function interpolate(string,params){var result=[];return angular.forEach((string||"").split(":"),function(segment,i){if(0===i)result.push(segment);else{var segmentMatch=segment.match(/(\w+)(?:[?*])?(.*)/),key=segmentMatch[1];result.push(params[key]),result.push(segmentMatch[2]||""),delete params[key]}}),result.join("")}var preparedRoute,preparedRouteIsUpdateOnly,forceReload=!1,$route={routes:routes,reload:function(){forceReload=!0,$rootScope.$evalAsync(function(){prepareRoute(),commitRoute()})},updateParams:function(newParams){if(!this.current||!this.current.$$route)throw $routeMinErr("norout","Tried updating route when with no current route");newParams=angular.extend({},this.current.params,newParams),$location.path(interpolate(this.current.$$route.originalPath,newParams)),$location.search(newParams)}};return $rootScope.$on("$locationChangeStart",prepareRoute),$rootScope.$on("$locationChangeSuccess",commitRoute),$route}]}function $RouteParamsProvider(){this.$get=function(){return{}}}function ngViewFactory($route,$anchorScroll,$animate){return{restrict:"ECA",terminal:!0,priority:400,transclude:"element",link:function(scope,$element,attr,ctrl,$transclude){function cleanupLastView(){previousLeaveAnimation&&($animate.cancel(previousLeaveAnimation),previousLeaveAnimation=null),currentScope&&(currentScope.$destroy(),currentScope=null),currentElement&&(previousLeaveAnimation=$animate.leave(currentElement),previousLeaveAnimation.then(function(){previousLeaveAnimation=null}),currentElement=null)}function update(){var locals=$route.current&&$route.current.locals,template=locals&&locals.$template;if(angular.isDefined(template)){var newScope=scope.$new(),current=$route.current,clone=$transclude(newScope,function(clone){$animate.enter(clone,null,currentElement||$element).then(function(){!angular.isDefined(autoScrollExp)||autoScrollExp&&!scope.$eval(autoScrollExp)||$anchorScroll()}),cleanupLastView()});currentElement=clone,currentScope=current.scope=newScope,currentScope.$emit("$viewContentLoaded"),currentScope.$eval(onloadExp)}else cleanupLastView()}var currentScope,currentElement,previousLeaveAnimation,autoScrollExp=attr.autoscroll,onloadExp=attr.onload||"";scope.$on("$routeChangeSuccess",update),update()}}}function ngViewFillContentFactory($compile,$controller,$route){return{restrict:"ECA",priority:-400,link:function(scope,$element){var current=$route.current,locals=current.locals;$element.html(locals.$template);var link=$compile($element.contents());if(current.controller){locals.$scope=scope;var controller=$controller(current.controller,locals);current.controllerAs&&(scope[current.controllerAs]=controller),$element.data("$ngControllerController",controller),$element.children().data("$ngControllerController",controller)}link(scope)}}}var ngRouteModule=angular.module("ngRoute",["ng"]).provider("$route",$RouteProvider),$routeMinErr=angular.$$minErr("ngRoute");ngRouteModule.provider("$routeParams",$RouteParamsProvider),ngRouteModule.directive("ngView",ngViewFactory),ngRouteModule.directive("ngView",ngViewFillContentFactory),ngViewFactory.$inject=["$route","$anchorScroll","$animate"],ngViewFillContentFactory.$inject=["$compile","$controller","$route"]}(window,window.angular),angular.module("toggle-switch",["ng"]).directive("toggleSwitch",function(){return{restrict:"EA",replace:!0,require:"ngModel",scope:{disabled:"@",onLabel:"@",offLabel:"@",knobLabel:"@"},template:'<div role="radio" class="toggle-switch" ng-class="{ \'disabled\': disabled }"><div class="toggle-switch-animate" ng-class="{\'switch-off\': !model, \'switch-on\': model}"><span class="switch-left" ng-bind="onLabel"></span><span class="knob" ng-bind="knobLabel"></span><span class="switch-right" ng-bind="offLabel"></span></div></div>',link:function(scope,element,attrs,ngModelCtrl){attrs.onLabel||(attrs.onLabel="On"),attrs.offLabel||(attrs.offLabel="Off"),attrs.knobLabel||(attrs.knobLabel=" "),attrs.disabled||(attrs.disabled=!1),element.on("click",function(){scope.$apply(scope.toggle)}),ngModelCtrl.$formatters.push(function(modelValue){return modelValue}),ngModelCtrl.$parsers.push(function(viewValue){return viewValue}),ngModelCtrl.$render=function(){scope.model=ngModelCtrl.$viewValue},scope.toggle=function(){scope.disabled||(scope.model=!scope.model,ngModelCtrl.$setViewValue(scope.model))}}}}),function(){"use strict";function Waypoint(options){if(!options)throw new Error("No options passed to Waypoint constructor");if(!options.element)throw new Error("No element option passed to Waypoint constructor");if(!options.handler)throw new Error("No handler option passed to Waypoint constructor");this.key="waypoint-"+keyCounter,this.options=Waypoint.Adapter.extend({},Waypoint.defaults,options),this.element=this.options.element,this.adapter=new Waypoint.Adapter(this.element),this.callback=options.handler,this.axis=this.options.horizontal?"horizontal":"vertical",this.enabled=this.options.enabled,this.triggerPoint=null,this.group=Waypoint.Group.findOrCreate({name:this.options.group,axis:this.axis}),this.context=Waypoint.Context.findOrCreateByElement(this.options.context),Waypoint.offsetAliases[this.options.offset]&&(this.options.offset=Waypoint.offsetAliases[this.options.offset]),this.group.add(this),this.context.add(this),allWaypoints[this.key]=this,keyCounter+=1}var keyCounter=0,allWaypoints={};Waypoint.prototype.queueTrigger=function(direction){this.group.queueTrigger(this,direction)},Waypoint.prototype.trigger=function(args){this.enabled&&this.callback&&this.callback.apply(this,args)},Waypoint.prototype.destroy=function(){this.context.remove(this),this.group.remove(this),delete allWaypoints[this.key]},Waypoint.prototype.disable=function(){return this.enabled=!1,this},Waypoint.prototype.enable=function(){return this.context.refresh(),this.enabled=!0,this},Waypoint.prototype.next=function(){return this.group.next(this)},Waypoint.prototype.previous=function(){return this.group.previous(this)},Waypoint.invokeAll=function(method){var allWaypointsArray=[];for(var waypointKey in allWaypoints)allWaypointsArray.push(allWaypoints[waypointKey]);for(var i=0,end=allWaypointsArray.length;end>i;i++)allWaypointsArray[i][method]()},Waypoint.destroyAll=function(){Waypoint.invokeAll("destroy")},Waypoint.disableAll=function(){Waypoint.invokeAll("disable")},Waypoint.enableAll=function(){Waypoint.invokeAll("enable")},Waypoint.refreshAll=function(){Waypoint.Context.refreshAll()},Waypoint.viewportHeight=function(){return window.innerHeight||document.documentElement.clientHeight},Waypoint.viewportWidth=function(){return document.documentElement.clientWidth},Waypoint.adapters=[],Waypoint.defaults={context:window,continuous:!0,enabled:!0,group:"default",horizontal:!1,offset:0},Waypoint.offsetAliases={"bottom-in-view":function(){return this.context.innerHeight()-this.adapter.outerHeight()},"right-in-view":function(){return this.context.innerWidth()-this.adapter.outerWidth()}},window.Waypoint=Waypoint}(),function(){"use strict";function requestAnimationFrameShim(callback){window.setTimeout(callback,1e3/60)}function Context(element){this.element=element,this.Adapter=Waypoint.Adapter,this.adapter=new this.Adapter(element),this.key="waypoint-context-"+keyCounter,this.didScroll=!1,this.didResize=!1,this.oldScroll={x:this.adapter.scrollLeft(),y:this.adapter.scrollTop()},this.waypoints={vertical:{},horizontal:{}},element.waypointContextKey=this.key,contexts[element.waypointContextKey]=this,keyCounter+=1,this.createThrottledScrollHandler(),this.createThrottledResizeHandler()}var keyCounter=0,contexts={},Waypoint=window.Waypoint,oldWindowLoad=window.onload;Context.prototype.add=function(waypoint){var axis=waypoint.options.horizontal?"horizontal":"vertical";this.waypoints[axis][waypoint.key]=waypoint,this.refresh()},Context.prototype.checkEmpty=function(){var horizontalEmpty=this.Adapter.isEmptyObject(this.waypoints.horizontal),verticalEmpty=this.Adapter.isEmptyObject(this.waypoints.vertical);horizontalEmpty&&verticalEmpty&&(this.adapter.off(".waypoints"),delete contexts[this.key])},Context.prototype.createThrottledResizeHandler=function(){function resizeHandler(){self.handleResize(),self.didResize=!1}var self=this;this.adapter.on("resize.waypoints",function(){self.didResize||(self.didResize=!0,Waypoint.requestAnimationFrame(resizeHandler))})},Context.prototype.createThrottledScrollHandler=function(){function scrollHandler(){self.handleScroll(),self.didScroll=!1}var self=this;this.adapter.on("scroll.waypoints",function(){(!self.didScroll||Waypoint.isTouch)&&(self.didScroll=!0,Waypoint.requestAnimationFrame(scrollHandler))})},Context.prototype.handleResize=function(){Waypoint.Context.refreshAll()},Context.prototype.handleScroll=function(){var triggeredGroups={},axes={horizontal:{newScroll:this.adapter.scrollLeft(),oldScroll:this.oldScroll.x,forward:"right",backward:"left"},vertical:{newScroll:this.adapter.scrollTop(),oldScroll:this.oldScroll.y,forward:"down",backward:"up"}};for(var axisKey in axes){var axis=axes[axisKey],isForward=axis.newScroll>axis.oldScroll,direction=isForward?axis.forward:axis.backward;for(var waypointKey in this.waypoints[axisKey]){var waypoint=this.waypoints[axisKey][waypointKey],wasBeforeTriggerPoint=axis.oldScroll<waypoint.triggerPoint,nowAfterTriggerPoint=axis.newScroll>=waypoint.triggerPoint,crossedForward=wasBeforeTriggerPoint&&nowAfterTriggerPoint,crossedBackward=!wasBeforeTriggerPoint&&!nowAfterTriggerPoint;(crossedForward||crossedBackward)&&(waypoint.queueTrigger(direction),triggeredGroups[waypoint.group.id]=waypoint.group)}}for(var groupKey in triggeredGroups)triggeredGroups[groupKey].flushTriggers();this.oldScroll={x:axes.horizontal.newScroll,y:axes.vertical.newScroll}},Context.prototype.innerHeight=function(){return this.element==this.element.window?Waypoint.viewportHeight():this.adapter.innerHeight()},Context.prototype.remove=function(waypoint){delete this.waypoints[waypoint.axis][waypoint.key],this.checkEmpty()},Context.prototype.innerWidth=function(){return this.element==this.element.window?Waypoint.viewportWidth():this.adapter.innerWidth()},Context.prototype.destroy=function(){var allWaypoints=[];for(var axis in this.waypoints)for(var waypointKey in this.waypoints[axis])allWaypoints.push(this.waypoints[axis][waypointKey]);for(var i=0,end=allWaypoints.length;end>i;i++)allWaypoints[i].destroy()},Context.prototype.refresh=function(){var axes,isWindow=this.element==this.element.window,contextOffset=isWindow?void 0:this.adapter.offset(),triggeredGroups={};this.handleScroll(),axes={horizontal:{contextOffset:isWindow?0:contextOffset.left,contextScroll:isWindow?0:this.oldScroll.x,contextDimension:this.innerWidth(),oldScroll:this.oldScroll.x,forward:"right",backward:"left",offsetProp:"left"},vertical:{contextOffset:isWindow?0:contextOffset.top,contextScroll:isWindow?0:this.oldScroll.y,contextDimension:this.innerHeight(),oldScroll:this.oldScroll.y,forward:"down",backward:"up",offsetProp:"top"}};for(var axisKey in axes){var axis=axes[axisKey];for(var waypointKey in this.waypoints[axisKey]){var contextModifier,wasBeforeScroll,nowAfterScroll,triggeredBackward,triggeredForward,waypoint=this.waypoints[axisKey][waypointKey],adjustment=waypoint.options.offset,oldTriggerPoint=waypoint.triggerPoint,elementOffset=0,freshWaypoint=null==oldTriggerPoint;waypoint.element!==waypoint.element.window&&(elementOffset=waypoint.adapter.offset()[axis.offsetProp]),"function"==typeof adjustment?adjustment=adjustment.apply(waypoint):"string"==typeof adjustment&&(adjustment=parseFloat(adjustment),waypoint.options.offset.indexOf("%")>-1&&(adjustment=Math.ceil(axis.contextDimension*adjustment/100))),contextModifier=axis.contextScroll-axis.contextOffset,waypoint.triggerPoint=elementOffset+contextModifier-adjustment,wasBeforeScroll=oldTriggerPoint<axis.oldScroll,nowAfterScroll=waypoint.triggerPoint>=axis.oldScroll,triggeredBackward=wasBeforeScroll&&nowAfterScroll,triggeredForward=!wasBeforeScroll&&!nowAfterScroll,!freshWaypoint&&triggeredBackward?(waypoint.queueTrigger(axis.backward),triggeredGroups[waypoint.group.id]=waypoint.group):!freshWaypoint&&triggeredForward?(waypoint.queueTrigger(axis.forward),triggeredGroups[waypoint.group.id]=waypoint.group):freshWaypoint&&axis.oldScroll>=waypoint.triggerPoint&&(waypoint.queueTrigger(axis.forward),triggeredGroups[waypoint.group.id]=waypoint.group)}}return Waypoint.requestAnimationFrame(function(){for(var groupKey in triggeredGroups)triggeredGroups[groupKey].flushTriggers()}),this},Context.findOrCreateByElement=function(element){return Context.findByElement(element)||new Context(element)},Context.refreshAll=function(){for(var contextId in contexts)contexts[contextId].refresh()},Context.findByElement=function(element){return contexts[element.waypointContextKey]},window.onload=function(){oldWindowLoad&&oldWindowLoad(),Context.refreshAll()},Waypoint.requestAnimationFrame=function(callback){var requestFn=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||requestAnimationFrameShim;requestFn.call(window,callback)},Waypoint.Context=Context}(),function(){"use strict";function byTriggerPoint(a,b){return a.triggerPoint-b.triggerPoint}function byReverseTriggerPoint(a,b){return b.triggerPoint-a.triggerPoint}function Group(options){this.name=options.name,this.axis=options.axis,this.id=this.name+"-"+this.axis,this.waypoints=[],this.clearTriggerQueues(),groups[this.axis][this.name]=this}var groups={vertical:{},horizontal:{}},Waypoint=window.Waypoint;Group.prototype.add=function(waypoint){this.waypoints.push(waypoint)},Group.prototype.clearTriggerQueues=function(){this.triggerQueues={up:[],down:[],left:[],right:[]}},Group.prototype.flushTriggers=function(){for(var direction in this.triggerQueues){var waypoints=this.triggerQueues[direction],reverse="up"===direction||"left"===direction;waypoints.sort(reverse?byReverseTriggerPoint:byTriggerPoint);for(var i=0,end=waypoints.length;end>i;i+=1){var waypoint=waypoints[i];(waypoint.options.continuous||i===waypoints.length-1)&&waypoint.trigger([direction])}}this.clearTriggerQueues()},Group.prototype.next=function(waypoint){this.waypoints.sort(byTriggerPoint);var index=Waypoint.Adapter.inArray(waypoint,this.waypoints),isLast=index===this.waypoints.length-1;return isLast?null:this.waypoints[index+1]},Group.prototype.previous=function(waypoint){this.waypoints.sort(byTriggerPoint);var index=Waypoint.Adapter.inArray(waypoint,this.waypoints);return index?this.waypoints[index-1]:null},Group.prototype.queueTrigger=function(waypoint,direction){this.triggerQueues[direction].push(waypoint)},Group.prototype.remove=function(waypoint){var index=Waypoint.Adapter.inArray(waypoint,this.waypoints);index>-1&&this.waypoints.splice(index,1)},Group.prototype.first=function(){return this.waypoints[0]},Group.prototype.last=function(){return this.waypoints[this.waypoints.length-1]},Group.findOrCreate=function(options){return groups[options.axis][options.name]||new Group(options)},Waypoint.Group=Group}(),function(){"use strict";function isWindow(element){return element===element.window}function getWindow(element){return isWindow(element)?element:element.defaultView}function NoFrameworkAdapter(element){this.element=element,this.handlers={}}var Waypoint=window.Waypoint;NoFrameworkAdapter.prototype.innerHeight=function(){var isWin=isWindow(this.element);return isWin?this.element.innerHeight:this.element.clientHeight},NoFrameworkAdapter.prototype.innerWidth=function(){var isWin=isWindow(this.element);return isWin?this.element.innerWidth:this.element.clientWidth},NoFrameworkAdapter.prototype.off=function(event,handler){function removeListeners(element,listeners,handler){for(var i=0,end=listeners.length-1;end>i;i++){var listener=listeners[i];handler&&handler!==listener||element.removeEventListener(listener)}}var eventParts=event.split("."),eventType=eventParts[0],namespace=eventParts[1],element=this.element;if(namespace&&this.handlers[namespace]&&eventType)removeListeners(element,this.handlers[namespace][eventType],handler),this.handlers[namespace][eventType]=[];else if(eventType)for(var ns in this.handlers)removeListeners(element,this.handlers[ns][eventType]||[],handler),this.handlers[ns][eventType]=[];else if(namespace&&this.handlers[namespace]){for(var type in this.handlers[namespace])removeListeners(element,this.handlers[namespace][type],handler);this.handlers[namespace]={}}},NoFrameworkAdapter.prototype.offset=function(){if(!this.element.ownerDocument)return null;var documentElement=this.element.ownerDocument.documentElement,win=getWindow(this.element.ownerDocument),rect={top:0,left:0};return this.element.getBoundingClientRect&&(rect=this.element.getBoundingClientRect()),{top:rect.top+win.pageYOffset-documentElement.clientTop,left:rect.left+win.pageXOffset-documentElement.clientLeft}},NoFrameworkAdapter.prototype.on=function(event,handler){var eventParts=event.split("."),eventType=eventParts[0],namespace=eventParts[1]||"__default",nsHandlers=this.handlers[namespace]=this.handlers[namespace]||{},nsTypeList=nsHandlers[eventType]=nsHandlers[eventType]||[];nsTypeList.push(handler),this.element.addEventListener(eventType,handler)},NoFrameworkAdapter.prototype.outerHeight=function(includeMargin){var computedStyle,height=this.innerHeight();return includeMargin&&!isWindow(this.element)&&(computedStyle=window.getComputedStyle(this.element),height+=parseInt(computedStyle.marginTop,10),height+=parseInt(computedStyle.marginBottom,10)),height},NoFrameworkAdapter.prototype.outerWidth=function(includeMargin){var computedStyle,width=this.innerWidth();return includeMargin&&!isWindow(this.element)&&(computedStyle=window.getComputedStyle(this.element),width+=parseInt(computedStyle.marginLeft,10),width+=parseInt(computedStyle.marginRight,10)),width},NoFrameworkAdapter.prototype.scrollLeft=function(){var win=getWindow(this.element);return win?win.pageXOffset:this.element.scrollLeft},NoFrameworkAdapter.prototype.scrollTop=function(){var win=getWindow(this.element);return win?win.pageYOffset:this.element.scrollTop},NoFrameworkAdapter.extend=function(){function merge(target,obj){if("object"==typeof target&&"object"==typeof obj)for(var key in obj)obj.hasOwnProperty(key)&&(target[key]=obj[key]);return target}for(var args=Array.prototype.slice.call(arguments),i=1,end=args.length;end>i;i++)merge(args[0],args[i]);return args[0]},NoFrameworkAdapter.inArray=function(element,array,i){return null==array?-1:array.indexOf(element,i)},NoFrameworkAdapter.isEmptyObject=function(obj){for(var name in obj)return!1;return!0},Waypoint.adapters.push({name:"noframework",Adapter:NoFrameworkAdapter}),Waypoint.Adapter=NoFrameworkAdapter}(),function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a="function"==typeof require&&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}for(var i="function"==typeof require&&require,o=0;o<r.length;o++)s(r[o]);return s}({1:[function(require,module,exports){"use strict";function mountJQuery(jQuery){jQuery.fn.perfectScrollbar=function(settingOrCommand){return this.each(function(){if("object"==typeof settingOrCommand||"undefined"==typeof settingOrCommand){var settings=settingOrCommand;psInstances.get(this)||ps.initialize(this,settings)}else{var command=settingOrCommand;"update"===command?ps.update(this):"destroy"===command&&ps.destroy(this)}return jQuery(this)})}}var ps=require("../main"),psInstances=require("../plugin/instances");if("function"==typeof define&&define.amd)define(["jquery"],mountJQuery);else{var jq=window.jQuery?window.jQuery:window.$;"undefined"!=typeof jq&&mountJQuery(jq)}module.exports=mountJQuery},{"../main":7,"../plugin/instances":18}],2:[function(require,module,exports){"use strict";function oldAdd(element,className){var classes=element.className.split(" ");classes.indexOf(className)<0&&classes.push(className),element.className=classes.join(" ")}function oldRemove(element,className){var classes=element.className.split(" "),idx=classes.indexOf(className);idx>=0&&classes.splice(idx,1),element.className=classes.join(" ")}exports.add=function(element,className){element.classList?element.classList.add(className):oldAdd(element,className)},exports.remove=function(element,className){element.classList?element.classList.remove(className):oldRemove(element,className)},exports.list=function(element){return element.classList?element.classList:element.className.split(" ")}},{}],3:[function(require,module,exports){"use strict";function cssGet(element,styleName){return window.getComputedStyle(element)[styleName]}function cssSet(element,styleName,styleValue){return"number"==typeof styleValue&&(styleValue=styleValue.toString()+"px"),element.style[styleName]=styleValue,element}function cssMultiSet(element,obj){for(var key in obj){var val=obj[key];"number"==typeof val&&(val=val.toString()+"px"),element.style[key]=val}return element}var DOM={};DOM.e=function(tagName,className){var element=document.createElement(tagName);return element.className=className,element},DOM.appendTo=function(child,parent){return parent.appendChild(child),child},DOM.css=function(element,styleNameOrObject,styleValue){return"object"==typeof styleNameOrObject?cssMultiSet(element,styleNameOrObject):"undefined"==typeof styleValue?cssGet(element,styleNameOrObject):cssSet(element,styleNameOrObject,styleValue)},DOM.matches=function(element,query){return"undefined"!=typeof element.matches?element.matches(query):"undefined"!=typeof element.matchesSelector?element.matchesSelector(query):"undefined"!=typeof element.webkitMatchesSelector?element.webkitMatchesSelector(query):"undefined"!=typeof element.mozMatchesSelector?element.mozMatchesSelector(query):"undefined"!=typeof element.msMatchesSelector?element.msMatchesSelector(query):void 0},DOM.remove=function(element){"undefined"!=typeof element.remove?element.remove():element.parentNode&&element.parentNode.removeChild(element)},DOM.queryChildren=function(element,selector){return Array.prototype.filter.call(element.childNodes,function(child){return DOM.matches(child,selector)})},module.exports=DOM},{}],4:[function(require,module,exports){"use strict";var EventElement=function(element){this.element=element,this.events={}};EventElement.prototype.bind=function(eventName,handler){"undefined"==typeof this.events[eventName]&&(this.events[eventName]=[]),this.events[eventName].push(handler),this.element.addEventListener(eventName,handler,!1)},EventElement.prototype.unbind=function(eventName,handler){var isHandlerProvided="undefined"!=typeof handler;this.events[eventName]=this.events[eventName].filter(function(hdlr){return isHandlerProvided&&hdlr!==handler?!0:(this.element.removeEventListener(eventName,hdlr,!1),!1)},this)},EventElement.prototype.unbindAll=function(){for(var name in this.events)this.unbind(name)};var EventManager=function(){this.eventElements=[]};EventManager.prototype.eventElement=function(element){var ee=this.eventElements.filter(function(eventElement){return eventElement.element===element})[0];return"undefined"==typeof ee&&(ee=new EventElement(element),this.eventElements.push(ee)),ee},EventManager.prototype.bind=function(element,eventName,handler){this.eventElement(element).bind(eventName,handler)},EventManager.prototype.unbind=function(element,eventName,handler){this.eventElement(element).unbind(eventName,handler)},EventManager.prototype.unbindAll=function(){for(var i=0;i<this.eventElements.length;i++)this.eventElements[i].unbindAll()},EventManager.prototype.once=function(element,eventName,handler){var ee=this.eventElement(element),onceHandler=function(e){ee.unbind(eventName,onceHandler),handler(e)};ee.bind(eventName,onceHandler)},module.exports=EventManager},{}],5:[function(require,module,exports){"use strict";module.exports=function(){function s4(){return Math.floor(65536*(1+Math.random())).toString(16).substring(1)}return function(){return s4()+s4()+"-"+s4()+"-"+s4()+"-"+s4()+"-"+s4()+s4()+s4()}}()},{}],6:[function(require,module,exports){"use strict";var cls=require("./class"),d=require("./dom");exports.toInt=function(x){return parseInt(x,10)||0},exports.clone=function(obj){if(null===obj)return null;if("object"==typeof obj){var result={};for(var key in obj)result[key]=this.clone(obj[key]);return result}return obj},exports.extend=function(original,source){var result=this.clone(original);for(var key in source)result[key]=this.clone(source[key]);return result},exports.isEditable=function(el){return d.matches(el,"input,[contenteditable]")||d.matches(el,"select,[contenteditable]")||d.matches(el,"textarea,[contenteditable]")||d.matches(el,"button,[contenteditable]")},exports.removePsClasses=function(element){for(var clsList=cls.list(element),i=0;i<clsList.length;i++){var className=clsList[i];0===className.indexOf("ps-")&&cls.remove(element,className)}},exports.outerWidth=function(element){return this.toInt(d.css(element,"width"))+this.toInt(d.css(element,"paddingLeft"))+this.toInt(d.css(element,"paddingRight"))+this.toInt(d.css(element,"borderLeftWidth"))+this.toInt(d.css(element,"borderRightWidth"))},exports.startScrolling=function(element,axis){cls.add(element,"ps-in-scrolling"),"undefined"!=typeof axis?cls.add(element,"ps-"+axis):(cls.add(element,"ps-x"),cls.add(element,"ps-y"))},exports.stopScrolling=function(element,axis){cls.remove(element,"ps-in-scrolling"),"undefined"!=typeof axis?cls.remove(element,"ps-"+axis):(cls.remove(element,"ps-x"),cls.remove(element,"ps-y"))},exports.env={isWebKit:"WebkitAppearance"in document.documentElement.style,
  supportsTouch:"ontouchstart"in window||window.DocumentTouch&&document instanceof window.DocumentTouch,supportsIePointer:null!==window.navigator.msMaxTouchPoints}},{"./class":2,"./dom":3}],7:[function(require,module,exports){"use strict";var destroy=require("./plugin/destroy"),initialize=require("./plugin/initialize"),update=require("./plugin/update");module.exports={initialize:initialize,update:update,destroy:destroy}},{"./plugin/destroy":9,"./plugin/initialize":17,"./plugin/update":20}],8:[function(require,module,exports){"use strict";module.exports={wheelSpeed:1,wheelPropagation:!1,swipePropagation:!0,minScrollbarLength:null,maxScrollbarLength:null,useBothWheelAxes:!1,useKeyboard:!0,suppressScrollX:!1,suppressScrollY:!1,scrollXMarginOffset:0,scrollYMarginOffset:0,stopPropagationOnClick:!0}},{}],9:[function(require,module,exports){"use strict";var d=require("../lib/dom"),h=require("../lib/helper"),instances=require("./instances");module.exports=function(element){var i=instances.get(element);i&&(i.event.unbindAll(),d.remove(i.scrollbarX),d.remove(i.scrollbarY),d.remove(i.scrollbarXRail),d.remove(i.scrollbarYRail),h.removePsClasses(element),instances.remove(element))}},{"../lib/dom":3,"../lib/helper":6,"./instances":18}],10:[function(require,module,exports){"use strict";function bindClickRailHandler(element,i){function pageOffset(el){return el.getBoundingClientRect()}var stopPropagation=window.Event.prototype.stopPropagation.bind;i.settings.stopPropagationOnClick&&i.event.bind(i.scrollbarY,"click",stopPropagation),i.event.bind(i.scrollbarYRail,"click",function(e){var halfOfScrollbarLength=h.toInt(i.scrollbarYHeight/2),positionTop=i.railYRatio*(e.pageY-window.scrollY-pageOffset(i.scrollbarYRail).top-halfOfScrollbarLength),maxPositionTop=i.railYRatio*(i.railYHeight-i.scrollbarYHeight),positionRatio=positionTop/maxPositionTop;0>positionRatio?positionRatio=0:positionRatio>1&&(positionRatio=1),element.scrollTop=(i.contentHeight-i.containerHeight)*positionRatio,updateGeometry(element),e.stopPropagation()}),i.settings.stopPropagationOnClick&&i.event.bind(i.scrollbarX,"click",stopPropagation),i.event.bind(i.scrollbarXRail,"click",function(e){var halfOfScrollbarLength=h.toInt(i.scrollbarXWidth/2),positionLeft=i.railXRatio*(e.pageX-window.scrollX-pageOffset(i.scrollbarXRail).left-halfOfScrollbarLength),maxPositionLeft=i.railXRatio*(i.railXWidth-i.scrollbarXWidth),positionRatio=positionLeft/maxPositionLeft;0>positionRatio?positionRatio=0:positionRatio>1&&(positionRatio=1),element.scrollLeft=(i.contentWidth-i.containerWidth)*positionRatio-i.negativeScrollAdjustment,updateGeometry(element),e.stopPropagation()})}var h=require("../../lib/helper"),instances=require("../instances"),updateGeometry=require("../update-geometry");module.exports=function(element){var i=instances.get(element);bindClickRailHandler(element,i)}},{"../../lib/helper":6,"../instances":18,"../update-geometry":19}],11:[function(require,module,exports){"use strict";function bindMouseScrollXHandler(element,i){function updateScrollLeft(deltaX){var newLeft=currentLeft+deltaX*i.railXRatio,maxLeft=i.scrollbarXRail.getBoundingClientRect().left+i.railXRatio*(i.railXWidth-i.scrollbarXWidth);0>newLeft?i.scrollbarXLeft=0:newLeft>maxLeft?i.scrollbarXLeft=maxLeft:i.scrollbarXLeft=newLeft;var scrollLeft=h.toInt(i.scrollbarXLeft*(i.contentWidth-i.containerWidth)/(i.containerWidth-i.railXRatio*i.scrollbarXWidth))-i.negativeScrollAdjustment;element.scrollLeft=scrollLeft}var currentLeft=null,currentPageX=null,mouseMoveHandler=function(e){updateScrollLeft(e.pageX-currentPageX),updateGeometry(element),e.stopPropagation(),e.preventDefault()},mouseUpHandler=function(){h.stopScrolling(element,"x"),i.event.unbind(i.ownerDocument,"mousemove",mouseMoveHandler)};i.event.bind(i.scrollbarX,"mousedown",function(e){currentPageX=e.pageX,currentLeft=h.toInt(d.css(i.scrollbarX,"left"))*i.railXRatio,h.startScrolling(element,"x"),i.event.bind(i.ownerDocument,"mousemove",mouseMoveHandler),i.event.once(i.ownerDocument,"mouseup",mouseUpHandler),e.stopPropagation(),e.preventDefault()})}function bindMouseScrollYHandler(element,i){function updateScrollTop(deltaY){var newTop=currentTop+deltaY*i.railYRatio,maxTop=i.scrollbarYRail.getBoundingClientRect().top+i.railYRatio*(i.railYHeight-i.scrollbarYHeight);0>newTop?i.scrollbarYTop=0:newTop>maxTop?i.scrollbarYTop=maxTop:i.scrollbarYTop=newTop;var scrollTop=h.toInt(i.scrollbarYTop*(i.contentHeight-i.containerHeight)/(i.containerHeight-i.railYRatio*i.scrollbarYHeight));element.scrollTop=scrollTop}var currentTop=null,currentPageY=null,mouseMoveHandler=function(e){updateScrollTop(e.pageY-currentPageY),updateGeometry(element),e.stopPropagation(),e.preventDefault()},mouseUpHandler=function(){h.stopScrolling(element,"y"),i.event.unbind(i.ownerDocument,"mousemove",mouseMoveHandler)};i.event.bind(i.scrollbarY,"mousedown",function(e){currentPageY=e.pageY,currentTop=h.toInt(d.css(i.scrollbarY,"top"))*i.railYRatio,h.startScrolling(element,"y"),i.event.bind(i.ownerDocument,"mousemove",mouseMoveHandler),i.event.once(i.ownerDocument,"mouseup",mouseUpHandler),e.stopPropagation(),e.preventDefault()})}var d=require("../../lib/dom"),h=require("../../lib/helper"),instances=require("../instances"),updateGeometry=require("../update-geometry");module.exports=function(element){var i=instances.get(element);bindMouseScrollXHandler(element,i),bindMouseScrollYHandler(element,i)}},{"../../lib/dom":3,"../../lib/helper":6,"../instances":18,"../update-geometry":19}],12:[function(require,module,exports){"use strict";function bindKeyboardHandler(element,i){function shouldPreventDefault(deltaX,deltaY){var scrollTop=element.scrollTop;if(0===deltaX){if(!i.scrollbarYActive)return!1;if(0===scrollTop&&deltaY>0||scrollTop>=i.contentHeight-i.containerHeight&&0>deltaY)return!i.settings.wheelPropagation}var scrollLeft=element.scrollLeft;if(0===deltaY){if(!i.scrollbarXActive)return!1;if(0===scrollLeft&&0>deltaX||scrollLeft>=i.contentWidth-i.containerWidth&&deltaX>0)return!i.settings.wheelPropagation}return!0}var hovered=!1;i.event.bind(element,"mouseenter",function(){hovered=!0}),i.event.bind(element,"mouseleave",function(){hovered=!1});var shouldPrevent=!1;i.event.bind(i.ownerDocument,"keydown",function(e){if((!e.isDefaultPrevented||!e.isDefaultPrevented())&&hovered){var activeElement=document.activeElement?document.activeElement:i.ownerDocument.activeElement;if(activeElement){for(;activeElement.shadowRoot;)activeElement=activeElement.shadowRoot.activeElement;if(h.isEditable(activeElement))return}var deltaX=0,deltaY=0;switch(e.which){case 37:deltaX=-30;break;case 38:deltaY=30;break;case 39:deltaX=30;break;case 40:deltaY=-30;break;case 33:deltaY=90;break;case 32:deltaY=e.shiftKey?90:-90;break;case 34:deltaY=-90;break;case 35:deltaY=e.ctrlKey?-i.contentHeight:-i.containerHeight;break;case 36:deltaY=e.ctrlKey?element.scrollTop:i.containerHeight;break;default:return}element.scrollTop=element.scrollTop-deltaY,element.scrollLeft=element.scrollLeft+deltaX,updateGeometry(element),shouldPrevent=shouldPreventDefault(deltaX,deltaY),shouldPrevent&&e.preventDefault()}})}var h=require("../../lib/helper"),instances=require("../instances"),updateGeometry=require("../update-geometry");module.exports=function(element){var i=instances.get(element);bindKeyboardHandler(element,i)}},{"../../lib/helper":6,"../instances":18,"../update-geometry":19}],13:[function(require,module,exports){"use strict";function bindMouseWheelHandler(element,i){function shouldPreventDefault(deltaX,deltaY){var scrollTop=element.scrollTop;if(0===deltaX){if(!i.scrollbarYActive)return!1;if(0===scrollTop&&deltaY>0||scrollTop>=i.contentHeight-i.containerHeight&&0>deltaY)return!i.settings.wheelPropagation}var scrollLeft=element.scrollLeft;if(0===deltaY){if(!i.scrollbarXActive)return!1;if(0===scrollLeft&&0>deltaX||scrollLeft>=i.contentWidth-i.containerWidth&&deltaX>0)return!i.settings.wheelPropagation}return!0}function getDeltaFromEvent(e){var deltaX=e.deltaX,deltaY=-1*e.deltaY;return("undefined"==typeof deltaX||"undefined"==typeof deltaY)&&(deltaX=-1*e.wheelDeltaX/6,deltaY=e.wheelDeltaY/6),e.deltaMode&&1===e.deltaMode&&(deltaX*=10,deltaY*=10),deltaX!==deltaX&&deltaY!==deltaY&&(deltaX=0,deltaY=e.wheelDelta),[deltaX,deltaY]}function shouldBeConsumedByTextarea(deltaX,deltaY){var hoveredTextarea=element.querySelector("textarea:hover");if(hoveredTextarea){var maxScrollTop=hoveredTextarea.scrollHeight-hoveredTextarea.clientHeight;if(maxScrollTop>0&&!(0===hoveredTextarea.scrollTop&&deltaY>0||hoveredTextarea.scrollTop===maxScrollTop&&0>deltaY))return!0;var maxScrollLeft=hoveredTextarea.scrollLeft-hoveredTextarea.clientWidth;if(maxScrollLeft>0&&!(0===hoveredTextarea.scrollLeft&&0>deltaX||hoveredTextarea.scrollLeft===maxScrollLeft&&deltaX>0))return!0}return!1}function mousewheelHandler(e){if(h.env.isWebKit||!element.querySelector("select:focus")){var delta=getDeltaFromEvent(e),deltaX=delta[0],deltaY=delta[1];shouldBeConsumedByTextarea(deltaX,deltaY)||(shouldPrevent=!1,i.settings.useBothWheelAxes?i.scrollbarYActive&&!i.scrollbarXActive?(deltaY?element.scrollTop=element.scrollTop-deltaY*i.settings.wheelSpeed:element.scrollTop=element.scrollTop+deltaX*i.settings.wheelSpeed,shouldPrevent=!0):i.scrollbarXActive&&!i.scrollbarYActive&&(deltaX?element.scrollLeft=element.scrollLeft+deltaX*i.settings.wheelSpeed:element.scrollLeft=element.scrollLeft-deltaY*i.settings.wheelSpeed,shouldPrevent=!0):(element.scrollTop=element.scrollTop-deltaY*i.settings.wheelSpeed,element.scrollLeft=element.scrollLeft+deltaX*i.settings.wheelSpeed),updateGeometry(element),shouldPrevent=shouldPrevent||shouldPreventDefault(deltaX,deltaY),shouldPrevent&&(e.stopPropagation(),e.preventDefault()))}}var shouldPrevent=!1;"undefined"!=typeof window.onwheel?i.event.bind(element,"wheel",mousewheelHandler):"undefined"!=typeof window.onmousewheel&&i.event.bind(element,"mousewheel",mousewheelHandler)}var h=require("../../lib/helper"),instances=require("../instances"),updateGeometry=require("../update-geometry");module.exports=function(element){var i=instances.get(element);bindMouseWheelHandler(element,i)}},{"../../lib/helper":6,"../instances":18,"../update-geometry":19}],14:[function(require,module,exports){"use strict";function bindNativeScrollHandler(element,i){i.event.bind(element,"scroll",function(){updateGeometry(element)})}var instances=require("../instances"),updateGeometry=require("../update-geometry");module.exports=function(element){var i=instances.get(element);bindNativeScrollHandler(element,i)}},{"../instances":18,"../update-geometry":19}],15:[function(require,module,exports){"use strict";function bindSelectionHandler(element,i){function getRangeNode(){var selection=window.getSelection?window.getSelection():document.getSelection?document.getSelection():"";return 0===selection.toString().length?null:selection.getRangeAt(0).commonAncestorContainer}function startScrolling(){scrollingLoop||(scrollingLoop=setInterval(function(){return instances.get(element)?(element.scrollTop=element.scrollTop+scrollDiff.top,element.scrollLeft=element.scrollLeft+scrollDiff.left,void updateGeometry(element)):void clearInterval(scrollingLoop)},50))}function stopScrolling(){scrollingLoop&&(clearInterval(scrollingLoop),scrollingLoop=null),h.stopScrolling(element)}var scrollingLoop=null,scrollDiff={top:0,left:0},isSelected=!1;i.event.bind(i.ownerDocument,"selectionchange",function(){element.contains(getRangeNode())?isSelected=!0:(isSelected=!1,stopScrolling())}),i.event.bind(window,"mouseup",function(){isSelected&&(isSelected=!1,stopScrolling())}),i.event.bind(window,"mousemove",function(e){if(isSelected){var mousePosition={x:e.pageX,y:e.pageY},containerGeometry={left:element.offsetLeft,right:element.offsetLeft+element.offsetWidth,top:element.offsetTop,bottom:element.offsetTop+element.offsetHeight};mousePosition.x<containerGeometry.left+3?(scrollDiff.left=-5,h.startScrolling(element,"x")):mousePosition.x>containerGeometry.right-3?(scrollDiff.left=5,h.startScrolling(element,"x")):scrollDiff.left=0,mousePosition.y<containerGeometry.top+3?(containerGeometry.top+3-mousePosition.y<5?scrollDiff.top=-5:scrollDiff.top=-20,h.startScrolling(element,"y")):mousePosition.y>containerGeometry.bottom-3?(mousePosition.y-containerGeometry.bottom+3<5?scrollDiff.top=5:scrollDiff.top=20,h.startScrolling(element,"y")):scrollDiff.top=0,0===scrollDiff.top&&0===scrollDiff.left?stopScrolling():startScrolling()}})}var h=require("../../lib/helper"),instances=require("../instances"),updateGeometry=require("../update-geometry");module.exports=function(element){var i=instances.get(element);bindSelectionHandler(element,i)}},{"../../lib/helper":6,"../instances":18,"../update-geometry":19}],16:[function(require,module,exports){"use strict";function bindTouchHandler(element,i,supportsTouch,supportsIePointer){function shouldPreventDefault(deltaX,deltaY){var scrollTop=element.scrollTop,scrollLeft=element.scrollLeft,magnitudeX=Math.abs(deltaX),magnitudeY=Math.abs(deltaY);if(magnitudeY>magnitudeX){if(0>deltaY&&scrollTop===i.contentHeight-i.containerHeight||deltaY>0&&0===scrollTop)return!i.settings.swipePropagation}else if(magnitudeX>magnitudeY&&(0>deltaX&&scrollLeft===i.contentWidth-i.containerWidth||deltaX>0&&0===scrollLeft))return!i.settings.swipePropagation;return!0}function applyTouchMove(differenceX,differenceY){element.scrollTop=element.scrollTop-differenceY,element.scrollLeft=element.scrollLeft-differenceX,updateGeometry(element)}function globalTouchStart(){inGlobalTouch=!0}function globalTouchEnd(){inGlobalTouch=!1}function getTouch(e){return e.targetTouches?e.targetTouches[0]:e}function shouldHandle(e){return e.targetTouches&&1===e.targetTouches.length?!0:e.pointerType&&"mouse"!==e.pointerType&&e.pointerType!==e.MSPOINTER_TYPE_MOUSE?!0:!1}function touchStart(e){if(shouldHandle(e)){inLocalTouch=!0;var touch=getTouch(e);startOffset.pageX=touch.pageX,startOffset.pageY=touch.pageY,startTime=(new Date).getTime(),null!==easingLoop&&clearInterval(easingLoop),e.stopPropagation()}}function touchMove(e){if(!inGlobalTouch&&inLocalTouch&&shouldHandle(e)){var touch=getTouch(e),currentOffset={pageX:touch.pageX,pageY:touch.pageY},differenceX=currentOffset.pageX-startOffset.pageX,differenceY=currentOffset.pageY-startOffset.pageY;applyTouchMove(differenceX,differenceY),startOffset=currentOffset;var currentTime=(new Date).getTime(),timeGap=currentTime-startTime;timeGap>0&&(speed.x=differenceX/timeGap,speed.y=differenceY/timeGap,startTime=currentTime),shouldPreventDefault(differenceX,differenceY)&&(e.stopPropagation(),e.preventDefault())}}function touchEnd(){!inGlobalTouch&&inLocalTouch&&(inLocalTouch=!1,clearInterval(easingLoop),easingLoop=setInterval(function(){return instances.get(element)?Math.abs(speed.x)<.01&&Math.abs(speed.y)<.01?void clearInterval(easingLoop):(applyTouchMove(30*speed.x,30*speed.y),speed.x*=.8,void(speed.y*=.8)):void clearInterval(easingLoop)},10))}var startOffset={},startTime=0,speed={},easingLoop=null,inGlobalTouch=!1,inLocalTouch=!1;supportsTouch&&(i.event.bind(window,"touchstart",globalTouchStart),i.event.bind(window,"touchend",globalTouchEnd),i.event.bind(element,"touchstart",touchStart),i.event.bind(element,"touchmove",touchMove),i.event.bind(element,"touchend",touchEnd)),supportsIePointer&&(window.PointerEvent?(i.event.bind(window,"pointerdown",globalTouchStart),i.event.bind(window,"pointerup",globalTouchEnd),i.event.bind(element,"pointerdown",touchStart),i.event.bind(element,"pointermove",touchMove),i.event.bind(element,"pointerup",touchEnd)):window.MSPointerEvent&&(i.event.bind(window,"MSPointerDown",globalTouchStart),i.event.bind(window,"MSPointerUp",globalTouchEnd),i.event.bind(element,"MSPointerDown",touchStart),i.event.bind(element,"MSPointerMove",touchMove),i.event.bind(element,"MSPointerUp",touchEnd)))}var instances=require("../instances"),updateGeometry=require("../update-geometry");module.exports=function(element,supportsTouch,supportsIePointer){var i=instances.get(element);bindTouchHandler(element,i,supportsTouch,supportsIePointer)}},{"../instances":18,"../update-geometry":19}],17:[function(require,module,exports){"use strict";var cls=require("../lib/class"),h=require("../lib/helper"),instances=require("./instances"),updateGeometry=require("./update-geometry"),clickRailHandler=require("./handler/click-rail"),dragScrollbarHandler=require("./handler/drag-scrollbar"),keyboardHandler=require("./handler/keyboard"),mouseWheelHandler=require("./handler/mouse-wheel"),nativeScrollHandler=require("./handler/native-scroll"),selectionHandler=require("./handler/selection"),touchHandler=require("./handler/touch");module.exports=function(element,userSettings){userSettings="object"==typeof userSettings?userSettings:{},cls.add(element,"ps-container");var i=instances.add(element);i.settings=h.extend(i.settings,userSettings),clickRailHandler(element),dragScrollbarHandler(element),mouseWheelHandler(element),nativeScrollHandler(element),selectionHandler(element),(h.env.supportsTouch||h.env.supportsIePointer)&&touchHandler(element,h.env.supportsTouch,h.env.supportsIePointer),i.settings.useKeyboard&&keyboardHandler(element),updateGeometry(element)}},{"../lib/class":2,"../lib/helper":6,"./handler/click-rail":10,"./handler/drag-scrollbar":11,"./handler/keyboard":12,"./handler/mouse-wheel":13,"./handler/native-scroll":14,"./handler/selection":15,"./handler/touch":16,"./instances":18,"./update-geometry":19}],18:[function(require,module,exports){"use strict";function Instance(element){var i=this;i.settings=h.clone(defaultSettings),i.containerWidth=null,i.containerHeight=null,i.contentWidth=null,i.contentHeight=null,i.isRtl="rtl"===d.css(element,"direction"),i.isNegativeScroll=function(){var originalScrollLeft=element.scrollLeft,result=null;return element.scrollLeft=-1,result=element.scrollLeft<0,element.scrollLeft=originalScrollLeft,result}(),i.negativeScrollAdjustment=i.isNegativeScroll?element.scrollWidth-element.clientWidth:0,i.event=new EventManager,i.ownerDocument=element.ownerDocument||document,i.scrollbarXRail=d.appendTo(d.e("div","ps-scrollbar-x-rail"),element),i.scrollbarX=d.appendTo(d.e("div","ps-scrollbar-x"),i.scrollbarXRail),i.scrollbarXActive=null,i.scrollbarXWidth=null,i.scrollbarXLeft=null,i.scrollbarXBottom=h.toInt(d.css(i.scrollbarXRail,"bottom")),i.isScrollbarXUsingBottom=i.scrollbarXBottom===i.scrollbarXBottom,i.scrollbarXTop=i.isScrollbarXUsingBottom?null:h.toInt(d.css(i.scrollbarXRail,"top")),i.railBorderXWidth=h.toInt(d.css(i.scrollbarXRail,"borderLeftWidth"))+h.toInt(d.css(i.scrollbarXRail,"borderRightWidth")),d.css(i.scrollbarXRail,"display","block"),i.railXMarginWidth=h.toInt(d.css(i.scrollbarXRail,"marginLeft"))+h.toInt(d.css(i.scrollbarXRail,"marginRight")),d.css(i.scrollbarXRail,"display",""),i.railXWidth=null,i.railXRatio=null,i.scrollbarYRail=d.appendTo(d.e("div","ps-scrollbar-y-rail"),element),i.scrollbarY=d.appendTo(d.e("div","ps-scrollbar-y"),i.scrollbarYRail),i.scrollbarYActive=null,i.scrollbarYHeight=null,i.scrollbarYTop=null,i.scrollbarYRight=h.toInt(d.css(i.scrollbarYRail,"right")),i.isScrollbarYUsingRight=i.scrollbarYRight===i.scrollbarYRight,i.scrollbarYLeft=i.isScrollbarYUsingRight?null:h.toInt(d.css(i.scrollbarYRail,"left")),i.scrollbarYOuterWidth=i.isRtl?h.outerWidth(i.scrollbarY):null,i.railBorderYWidth=h.toInt(d.css(i.scrollbarYRail,"borderTopWidth"))+h.toInt(d.css(i.scrollbarYRail,"borderBottomWidth")),d.css(i.scrollbarYRail,"display","block"),i.railYMarginHeight=h.toInt(d.css(i.scrollbarYRail,"marginTop"))+h.toInt(d.css(i.scrollbarYRail,"marginBottom")),d.css(i.scrollbarYRail,"display",""),i.railYHeight=null,i.railYRatio=null}function getId(element){return"undefined"==typeof element.dataset?element.getAttribute("data-ps-id"):element.dataset.psId}function setId(element,id){"undefined"==typeof element.dataset?element.setAttribute("data-ps-id",id):element.dataset.psId=id}function removeId(element){"undefined"==typeof element.dataset?element.removeAttribute("data-ps-id"):delete element.dataset.psId}var d=require("../lib/dom"),defaultSettings=require("./default-setting"),EventManager=require("../lib/event-manager"),guid=require("../lib/guid"),h=require("../lib/helper"),instances={};exports.add=function(element){var newId=guid();return setId(element,newId),instances[newId]=new Instance(element),instances[newId]},exports.remove=function(element){delete instances[getId(element)],removeId(element)},exports.get=function(element){return instances[getId(element)]}},{"../lib/dom":3,"../lib/event-manager":4,"../lib/guid":5,"../lib/helper":6,"./default-setting":8}],19:[function(require,module,exports){"use strict";function getThumbSize(i,thumbSize){return i.settings.minScrollbarLength&&(thumbSize=Math.max(thumbSize,i.settings.minScrollbarLength)),i.settings.maxScrollbarLength&&(thumbSize=Math.min(thumbSize,i.settings.maxScrollbarLength)),thumbSize}function updateCss(element,i){var xRailOffset={width:i.railXWidth};i.isRtl?xRailOffset.left=i.negativeScrollAdjustment+element.scrollLeft+i.containerWidth-i.contentWidth:xRailOffset.left=element.scrollLeft,i.isScrollbarXUsingBottom?xRailOffset.bottom=i.scrollbarXBottom-element.scrollTop:xRailOffset.top=i.scrollbarXTop+element.scrollTop,d.css(i.scrollbarXRail,xRailOffset);var yRailOffset={top:element.scrollTop,height:i.railYHeight};i.isScrollbarYUsingRight?i.isRtl?yRailOffset.right=i.contentWidth-(i.negativeScrollAdjustment+element.scrollLeft)-i.scrollbarYRight-i.scrollbarYOuterWidth:yRailOffset.right=i.scrollbarYRight-element.scrollLeft:i.isRtl?yRailOffset.left=i.negativeScrollAdjustment+element.scrollLeft+2*i.containerWidth-i.contentWidth-i.scrollbarYLeft-i.scrollbarYOuterWidth:yRailOffset.left=i.scrollbarYLeft+element.scrollLeft,d.css(i.scrollbarYRail,yRailOffset),d.css(i.scrollbarX,{left:i.scrollbarXLeft,width:i.scrollbarXWidth-i.railBorderXWidth}),d.css(i.scrollbarY,{top:i.scrollbarYTop,height:i.scrollbarYHeight-i.railBorderYWidth})}var cls=require("../lib/class"),d=require("../lib/dom"),h=require("../lib/helper"),instances=require("./instances");module.exports=function(element){var i=instances.get(element);i.containerWidth=element.clientWidth,i.containerHeight=element.clientHeight,i.contentWidth=element.scrollWidth,i.contentHeight=element.scrollHeight;var existingRails;element.contains(i.scrollbarXRail)||(existingRails=d.queryChildren(element,".ps-scrollbar-x-rail"),existingRails.length>0&&existingRails.forEach(function(rail){d.remove(rail)}),d.appendTo(i.scrollbarXRail,element)),element.contains(i.scrollbarYRail)||(existingRails=d.queryChildren(element,".ps-scrollbar-y-rail"),existingRails.length>0&&existingRails.forEach(function(rail){d.remove(rail)}),d.appendTo(i.scrollbarYRail,element)),!i.settings.suppressScrollX&&i.containerWidth+i.settings.scrollXMarginOffset<i.contentWidth?(i.scrollbarXActive=!0,i.railXWidth=i.containerWidth-i.railXMarginWidth,i.railXRatio=i.containerWidth/i.railXWidth,i.scrollbarXWidth=getThumbSize(i,h.toInt(i.railXWidth*i.containerWidth/i.contentWidth)),i.scrollbarXLeft=h.toInt((i.negativeScrollAdjustment+element.scrollLeft)*(i.railXWidth-i.scrollbarXWidth)/(i.contentWidth-i.containerWidth))):(i.scrollbarXActive=!1,i.scrollbarXWidth=0,i.scrollbarXLeft=0,element.scrollLeft=0),!i.settings.suppressScrollY&&i.containerHeight+i.settings.scrollYMarginOffset<i.contentHeight?(i.scrollbarYActive=!0,i.railYHeight=i.containerHeight-i.railYMarginHeight,i.railYRatio=i.containerHeight/i.railYHeight,i.scrollbarYHeight=getThumbSize(i,h.toInt(i.railYHeight*i.containerHeight/i.contentHeight)),i.scrollbarYTop=h.toInt(element.scrollTop*(i.railYHeight-i.scrollbarYHeight)/(i.contentHeight-i.containerHeight))):(i.scrollbarYActive=!1,i.scrollbarYHeight=0,i.scrollbarYTop=0,element.scrollTop=0),i.scrollbarXLeft>=i.railXWidth-i.scrollbarXWidth&&(i.scrollbarXLeft=i.railXWidth-i.scrollbarXWidth),i.scrollbarYTop>=i.railYHeight-i.scrollbarYHeight&&(i.scrollbarYTop=i.railYHeight-i.scrollbarYHeight),updateCss(element,i),cls[i.scrollbarXActive?"add":"remove"](element,"ps-active-x"),cls[i.scrollbarYActive?"add":"remove"](element,"ps-active-y")}},{"../lib/class":2,"../lib/dom":3,"../lib/helper":6,"./instances":18}],20:[function(require,module,exports){"use strict";var d=require("../lib/dom"),h=require("../lib/helper"),instances=require("./instances"),updateGeometry=require("./update-geometry");module.exports=function(element){var i=instances.get(element);i&&(i.negativeScrollAdjustment=i.isNegativeScroll?element.scrollWidth-element.clientWidth:0,d.css(i.scrollbarXRail,"display","block"),d.css(i.scrollbarYRail,"display","block"),i.railXMarginWidth=h.toInt(d.css(i.scrollbarXRail,"marginLeft"))+h.toInt(d.css(i.scrollbarXRail,"marginRight")),i.railYMarginHeight=h.toInt(d.css(i.scrollbarYRail,"marginTop"))+h.toInt(d.css(i.scrollbarYRail,"marginBottom")),d.css(i.scrollbarXRail,"display","none"),d.css(i.scrollbarYRail,"display","none"),updateGeometry(element),d.css(i.scrollbarXRail,"display",""),d.css(i.scrollbarYRail,"display",""))}},{"../lib/dom":3,"../lib/helper":6,"./instances":18,"./update-geometry":19}]},{},[1]),function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a="function"==typeof require&&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}for(var i="function"==typeof require&&require,o=0;o<r.length;o++)s(r[o]);return s}({1:[function(require,module,exports){"use strict";var ps=require("../main");"function"==typeof define&&define.amd?define(ps):(window.PerfectScrollbar=ps,"undefined"==typeof window.Ps&&(window.Ps=ps))},{"../main":7}],2:[function(require,module,exports){"use strict";function oldAdd(element,className){var classes=element.className.split(" ");classes.indexOf(className)<0&&classes.push(className),element.className=classes.join(" ")}function oldRemove(element,className){var classes=element.className.split(" "),idx=classes.indexOf(className);idx>=0&&classes.splice(idx,1),element.className=classes.join(" ")}exports.add=function(element,className){element.classList?element.classList.add(className):oldAdd(element,className)},exports.remove=function(element,className){element.classList?element.classList.remove(className):oldRemove(element,className)},exports.list=function(element){return element.classList?element.classList:element.className.split(" ")}},{}],3:[function(require,module,exports){"use strict";function cssGet(element,styleName){return window.getComputedStyle(element)[styleName]}function cssSet(element,styleName,styleValue){return"number"==typeof styleValue&&(styleValue=styleValue.toString()+"px"),element.style[styleName]=styleValue,element}function cssMultiSet(element,obj){for(var key in obj){var val=obj[key];"number"==typeof val&&(val=val.toString()+"px"),element.style[key]=val}return element}var DOM={};DOM.e=function(tagName,className){var element=document.createElement(tagName);return element.className=className,element},DOM.appendTo=function(child,parent){return parent.appendChild(child),child},DOM.css=function(element,styleNameOrObject,styleValue){return"object"==typeof styleNameOrObject?cssMultiSet(element,styleNameOrObject):"undefined"==typeof styleValue?cssGet(element,styleNameOrObject):cssSet(element,styleNameOrObject,styleValue)},DOM.matches=function(element,query){return"undefined"!=typeof element.matches?element.matches(query):"undefined"!=typeof element.matchesSelector?element.matchesSelector(query):"undefined"!=typeof element.webkitMatchesSelector?element.webkitMatchesSelector(query):"undefined"!=typeof element.mozMatchesSelector?element.mozMatchesSelector(query):"undefined"!=typeof element.msMatchesSelector?element.msMatchesSelector(query):void 0},DOM.remove=function(element){"undefined"!=typeof element.remove?element.remove():element.parentNode&&element.parentNode.removeChild(element)},DOM.queryChildren=function(element,selector){return Array.prototype.filter.call(element.childNodes,function(child){return DOM.matches(child,selector)})},module.exports=DOM},{}],4:[function(require,module,exports){"use strict";var EventElement=function(element){this.element=element,this.events={}};EventElement.prototype.bind=function(eventName,handler){"undefined"==typeof this.events[eventName]&&(this.events[eventName]=[]),this.events[eventName].push(handler),this.element.addEventListener(eventName,handler,!1)},EventElement.prototype.unbind=function(eventName,handler){var isHandlerProvided="undefined"!=typeof handler;this.events[eventName]=this.events[eventName].filter(function(hdlr){return isHandlerProvided&&hdlr!==handler?!0:(this.element.removeEventListener(eventName,hdlr,!1),!1)},this)},EventElement.prototype.unbindAll=function(){for(var name in this.events)this.unbind(name)};var EventManager=function(){this.eventElements=[]};EventManager.prototype.eventElement=function(element){var ee=this.eventElements.filter(function(eventElement){return eventElement.element===element})[0];return"undefined"==typeof ee&&(ee=new EventElement(element),this.eventElements.push(ee)),ee},EventManager.prototype.bind=function(element,eventName,handler){this.eventElement(element).bind(eventName,handler)},EventManager.prototype.unbind=function(element,eventName,handler){this.eventElement(element).unbind(eventName,handler)},EventManager.prototype.unbindAll=function(){for(var i=0;i<this.eventElements.length;i++)this.eventElements[i].unbindAll()},EventManager.prototype.once=function(element,eventName,handler){var ee=this.eventElement(element),onceHandler=function(e){ee.unbind(eventName,onceHandler),handler(e)};ee.bind(eventName,onceHandler)},module.exports=EventManager},{}],5:[function(require,module,exports){"use strict";module.exports=function(){function s4(){return Math.floor(65536*(1+Math.random())).toString(16).substring(1)}return function(){return s4()+s4()+"-"+s4()+"-"+s4()+"-"+s4()+"-"+s4()+s4()+s4()}}()},{}],6:[function(require,module,exports){"use strict";var cls=require("./class"),d=require("./dom");exports.toInt=function(x){return parseInt(x,10)||0},exports.clone=function(obj){if(null===obj)return null;if("object"==typeof obj){var result={};for(var key in obj)result[key]=this.clone(obj[key]);return result}return obj},exports.extend=function(original,source){var result=this.clone(original);for(var key in source)result[key]=this.clone(source[key]);return result},exports.isEditable=function(el){return d.matches(el,"input,[contenteditable]")||d.matches(el,"select,[contenteditable]")||d.matches(el,"textarea,[contenteditable]")||d.matches(el,"button,[contenteditable]")},exports.removePsClasses=function(element){for(var clsList=cls.list(element),i=0;i<clsList.length;i++){var className=clsList[i];0===className.indexOf("ps-")&&cls.remove(element,className)}},exports.outerWidth=function(element){return this.toInt(d.css(element,"width"))+this.toInt(d.css(element,"paddingLeft"))+this.toInt(d.css(element,"paddingRight"))+this.toInt(d.css(element,"borderLeftWidth"))+this.toInt(d.css(element,"borderRightWidth"))},exports.startScrolling=function(element,axis){cls.add(element,"ps-in-scrolling"),"undefined"!=typeof axis?cls.add(element,"ps-"+axis):(cls.add(element,"ps-x"),cls.add(element,"ps-y"))},exports.stopScrolling=function(element,axis){cls.remove(element,"ps-in-scrolling"),"undefined"!=typeof axis?cls.remove(element,"ps-"+axis):(cls.remove(element,"ps-x"),cls.remove(element,"ps-y"))},exports.env={isWebKit:"WebkitAppearance"in document.documentElement.style,supportsTouch:"ontouchstart"in window||window.DocumentTouch&&document instanceof window.DocumentTouch,supportsIePointer:null!==window.navigator.msMaxTouchPoints}},{"./class":2,"./dom":3}],7:[function(require,module,exports){"use strict";var destroy=require("./plugin/destroy"),initialize=require("./plugin/initialize"),update=require("./plugin/update");module.exports={initialize:initialize,update:update,destroy:destroy}},{"./plugin/destroy":9,"./plugin/initialize":17,"./plugin/update":20}],8:[function(require,module,exports){
  "use strict";module.exports={wheelSpeed:1,wheelPropagation:!1,swipePropagation:!0,minScrollbarLength:null,maxScrollbarLength:null,useBothWheelAxes:!1,useKeyboard:!0,suppressScrollX:!1,suppressScrollY:!1,scrollXMarginOffset:0,scrollYMarginOffset:0,stopPropagationOnClick:!0}},{}],9:[function(require,module,exports){"use strict";var d=require("../lib/dom"),h=require("../lib/helper"),instances=require("./instances");module.exports=function(element){var i=instances.get(element);i&&(i.event.unbindAll(),d.remove(i.scrollbarX),d.remove(i.scrollbarY),d.remove(i.scrollbarXRail),d.remove(i.scrollbarYRail),h.removePsClasses(element),instances.remove(element))}},{"../lib/dom":3,"../lib/helper":6,"./instances":18}],10:[function(require,module,exports){"use strict";function bindClickRailHandler(element,i){function pageOffset(el){return el.getBoundingClientRect()}var stopPropagation=window.Event.prototype.stopPropagation.bind;i.settings.stopPropagationOnClick&&i.event.bind(i.scrollbarY,"click",stopPropagation),i.event.bind(i.scrollbarYRail,"click",function(e){var halfOfScrollbarLength=h.toInt(i.scrollbarYHeight/2),positionTop=i.railYRatio*(e.pageY-window.scrollY-pageOffset(i.scrollbarYRail).top-halfOfScrollbarLength),maxPositionTop=i.railYRatio*(i.railYHeight-i.scrollbarYHeight),positionRatio=positionTop/maxPositionTop;0>positionRatio?positionRatio=0:positionRatio>1&&(positionRatio=1),element.scrollTop=(i.contentHeight-i.containerHeight)*positionRatio,updateGeometry(element),e.stopPropagation()}),i.settings.stopPropagationOnClick&&i.event.bind(i.scrollbarX,"click",stopPropagation),i.event.bind(i.scrollbarXRail,"click",function(e){var halfOfScrollbarLength=h.toInt(i.scrollbarXWidth/2),positionLeft=i.railXRatio*(e.pageX-window.scrollX-pageOffset(i.scrollbarXRail).left-halfOfScrollbarLength),maxPositionLeft=i.railXRatio*(i.railXWidth-i.scrollbarXWidth),positionRatio=positionLeft/maxPositionLeft;0>positionRatio?positionRatio=0:positionRatio>1&&(positionRatio=1),element.scrollLeft=(i.contentWidth-i.containerWidth)*positionRatio-i.negativeScrollAdjustment,updateGeometry(element),e.stopPropagation()})}var h=require("../../lib/helper"),instances=require("../instances"),updateGeometry=require("../update-geometry");module.exports=function(element){var i=instances.get(element);bindClickRailHandler(element,i)}},{"../../lib/helper":6,"../instances":18,"../update-geometry":19}],11:[function(require,module,exports){"use strict";function bindMouseScrollXHandler(element,i){function updateScrollLeft(deltaX){var newLeft=currentLeft+deltaX*i.railXRatio,maxLeft=i.scrollbarXRail.getBoundingClientRect().left+i.railXRatio*(i.railXWidth-i.scrollbarXWidth);0>newLeft?i.scrollbarXLeft=0:newLeft>maxLeft?i.scrollbarXLeft=maxLeft:i.scrollbarXLeft=newLeft;var scrollLeft=h.toInt(i.scrollbarXLeft*(i.contentWidth-i.containerWidth)/(i.containerWidth-i.railXRatio*i.scrollbarXWidth))-i.negativeScrollAdjustment;element.scrollLeft=scrollLeft}var currentLeft=null,currentPageX=null,mouseMoveHandler=function(e){updateScrollLeft(e.pageX-currentPageX),updateGeometry(element),e.stopPropagation(),e.preventDefault()},mouseUpHandler=function(){h.stopScrolling(element,"x"),i.event.unbind(i.ownerDocument,"mousemove",mouseMoveHandler)};i.event.bind(i.scrollbarX,"mousedown",function(e){currentPageX=e.pageX,currentLeft=h.toInt(d.css(i.scrollbarX,"left"))*i.railXRatio,h.startScrolling(element,"x"),i.event.bind(i.ownerDocument,"mousemove",mouseMoveHandler),i.event.once(i.ownerDocument,"mouseup",mouseUpHandler),e.stopPropagation(),e.preventDefault()})}function bindMouseScrollYHandler(element,i){function updateScrollTop(deltaY){var newTop=currentTop+deltaY*i.railYRatio,maxTop=i.scrollbarYRail.getBoundingClientRect().top+i.railYRatio*(i.railYHeight-i.scrollbarYHeight);0>newTop?i.scrollbarYTop=0:newTop>maxTop?i.scrollbarYTop=maxTop:i.scrollbarYTop=newTop;var scrollTop=h.toInt(i.scrollbarYTop*(i.contentHeight-i.containerHeight)/(i.containerHeight-i.railYRatio*i.scrollbarYHeight));element.scrollTop=scrollTop}var currentTop=null,currentPageY=null,mouseMoveHandler=function(e){updateScrollTop(e.pageY-currentPageY),updateGeometry(element),e.stopPropagation(),e.preventDefault()},mouseUpHandler=function(){h.stopScrolling(element,"y"),i.event.unbind(i.ownerDocument,"mousemove",mouseMoveHandler)};i.event.bind(i.scrollbarY,"mousedown",function(e){currentPageY=e.pageY,currentTop=h.toInt(d.css(i.scrollbarY,"top"))*i.railYRatio,h.startScrolling(element,"y"),i.event.bind(i.ownerDocument,"mousemove",mouseMoveHandler),i.event.once(i.ownerDocument,"mouseup",mouseUpHandler),e.stopPropagation(),e.preventDefault()})}var d=require("../../lib/dom"),h=require("../../lib/helper"),instances=require("../instances"),updateGeometry=require("../update-geometry");module.exports=function(element){var i=instances.get(element);bindMouseScrollXHandler(element,i),bindMouseScrollYHandler(element,i)}},{"../../lib/dom":3,"../../lib/helper":6,"../instances":18,"../update-geometry":19}],12:[function(require,module,exports){"use strict";function bindKeyboardHandler(element,i){function shouldPreventDefault(deltaX,deltaY){var scrollTop=element.scrollTop;if(0===deltaX){if(!i.scrollbarYActive)return!1;if(0===scrollTop&&deltaY>0||scrollTop>=i.contentHeight-i.containerHeight&&0>deltaY)return!i.settings.wheelPropagation}var scrollLeft=element.scrollLeft;if(0===deltaY){if(!i.scrollbarXActive)return!1;if(0===scrollLeft&&0>deltaX||scrollLeft>=i.contentWidth-i.containerWidth&&deltaX>0)return!i.settings.wheelPropagation}return!0}var hovered=!1;i.event.bind(element,"mouseenter",function(){hovered=!0}),i.event.bind(element,"mouseleave",function(){hovered=!1});var shouldPrevent=!1;i.event.bind(i.ownerDocument,"keydown",function(e){if((!e.isDefaultPrevented||!e.isDefaultPrevented())&&hovered){var activeElement=document.activeElement?document.activeElement:i.ownerDocument.activeElement;if(activeElement){for(;activeElement.shadowRoot;)activeElement=activeElement.shadowRoot.activeElement;if(h.isEditable(activeElement))return}var deltaX=0,deltaY=0;switch(e.which){case 37:deltaX=-30;break;case 38:deltaY=30;break;case 39:deltaX=30;break;case 40:deltaY=-30;break;case 33:deltaY=90;break;case 32:deltaY=e.shiftKey?90:-90;break;case 34:deltaY=-90;break;case 35:deltaY=e.ctrlKey?-i.contentHeight:-i.containerHeight;break;case 36:deltaY=e.ctrlKey?element.scrollTop:i.containerHeight;break;default:return}element.scrollTop=element.scrollTop-deltaY,element.scrollLeft=element.scrollLeft+deltaX,updateGeometry(element),shouldPrevent=shouldPreventDefault(deltaX,deltaY),shouldPrevent&&e.preventDefault()}})}var h=require("../../lib/helper"),instances=require("../instances"),updateGeometry=require("../update-geometry");module.exports=function(element){var i=instances.get(element);bindKeyboardHandler(element,i)}},{"../../lib/helper":6,"../instances":18,"../update-geometry":19}],13:[function(require,module,exports){"use strict";function bindMouseWheelHandler(element,i){function shouldPreventDefault(deltaX,deltaY){var scrollTop=element.scrollTop;if(0===deltaX){if(!i.scrollbarYActive)return!1;if(0===scrollTop&&deltaY>0||scrollTop>=i.contentHeight-i.containerHeight&&0>deltaY)return!i.settings.wheelPropagation}var scrollLeft=element.scrollLeft;if(0===deltaY){if(!i.scrollbarXActive)return!1;if(0===scrollLeft&&0>deltaX||scrollLeft>=i.contentWidth-i.containerWidth&&deltaX>0)return!i.settings.wheelPropagation}return!0}function getDeltaFromEvent(e){var deltaX=e.deltaX,deltaY=-1*e.deltaY;return("undefined"==typeof deltaX||"undefined"==typeof deltaY)&&(deltaX=-1*e.wheelDeltaX/6,deltaY=e.wheelDeltaY/6),e.deltaMode&&1===e.deltaMode&&(deltaX*=10,deltaY*=10),deltaX!==deltaX&&deltaY!==deltaY&&(deltaX=0,deltaY=e.wheelDelta),[deltaX,deltaY]}function shouldBeConsumedByTextarea(deltaX,deltaY){var hoveredTextarea=element.querySelector("textarea:hover");if(hoveredTextarea){var maxScrollTop=hoveredTextarea.scrollHeight-hoveredTextarea.clientHeight;if(maxScrollTop>0&&!(0===hoveredTextarea.scrollTop&&deltaY>0||hoveredTextarea.scrollTop===maxScrollTop&&0>deltaY))return!0;var maxScrollLeft=hoveredTextarea.scrollLeft-hoveredTextarea.clientWidth;if(maxScrollLeft>0&&!(0===hoveredTextarea.scrollLeft&&0>deltaX||hoveredTextarea.scrollLeft===maxScrollLeft&&deltaX>0))return!0}return!1}function mousewheelHandler(e){if(h.env.isWebKit||!element.querySelector("select:focus")){var delta=getDeltaFromEvent(e),deltaX=delta[0],deltaY=delta[1];shouldBeConsumedByTextarea(deltaX,deltaY)||(shouldPrevent=!1,i.settings.useBothWheelAxes?i.scrollbarYActive&&!i.scrollbarXActive?(deltaY?element.scrollTop=element.scrollTop-deltaY*i.settings.wheelSpeed:element.scrollTop=element.scrollTop+deltaX*i.settings.wheelSpeed,shouldPrevent=!0):i.scrollbarXActive&&!i.scrollbarYActive&&(deltaX?element.scrollLeft=element.scrollLeft+deltaX*i.settings.wheelSpeed:element.scrollLeft=element.scrollLeft-deltaY*i.settings.wheelSpeed,shouldPrevent=!0):(element.scrollTop=element.scrollTop-deltaY*i.settings.wheelSpeed,element.scrollLeft=element.scrollLeft+deltaX*i.settings.wheelSpeed),updateGeometry(element),shouldPrevent=shouldPrevent||shouldPreventDefault(deltaX,deltaY),shouldPrevent&&(e.stopPropagation(),e.preventDefault()))}}var shouldPrevent=!1;"undefined"!=typeof window.onwheel?i.event.bind(element,"wheel",mousewheelHandler):"undefined"!=typeof window.onmousewheel&&i.event.bind(element,"mousewheel",mousewheelHandler)}var h=require("../../lib/helper"),instances=require("../instances"),updateGeometry=require("../update-geometry");module.exports=function(element){var i=instances.get(element);bindMouseWheelHandler(element,i)}},{"../../lib/helper":6,"../instances":18,"../update-geometry":19}],14:[function(require,module,exports){"use strict";function bindNativeScrollHandler(element,i){i.event.bind(element,"scroll",function(){updateGeometry(element)})}var instances=require("../instances"),updateGeometry=require("../update-geometry");module.exports=function(element){var i=instances.get(element);bindNativeScrollHandler(element,i)}},{"../instances":18,"../update-geometry":19}],15:[function(require,module,exports){"use strict";function bindSelectionHandler(element,i){function getRangeNode(){var selection=window.getSelection?window.getSelection():document.getSelection?document.getSelection():"";return 0===selection.toString().length?null:selection.getRangeAt(0).commonAncestorContainer}function startScrolling(){scrollingLoop||(scrollingLoop=setInterval(function(){return instances.get(element)?(element.scrollTop=element.scrollTop+scrollDiff.top,element.scrollLeft=element.scrollLeft+scrollDiff.left,void updateGeometry(element)):void clearInterval(scrollingLoop)},50))}function stopScrolling(){scrollingLoop&&(clearInterval(scrollingLoop),scrollingLoop=null),h.stopScrolling(element)}var scrollingLoop=null,scrollDiff={top:0,left:0},isSelected=!1;i.event.bind(i.ownerDocument,"selectionchange",function(){element.contains(getRangeNode())?isSelected=!0:(isSelected=!1,stopScrolling())}),i.event.bind(window,"mouseup",function(){isSelected&&(isSelected=!1,stopScrolling())}),i.event.bind(window,"mousemove",function(e){if(isSelected){var mousePosition={x:e.pageX,y:e.pageY},containerGeometry={left:element.offsetLeft,right:element.offsetLeft+element.offsetWidth,top:element.offsetTop,bottom:element.offsetTop+element.offsetHeight};mousePosition.x<containerGeometry.left+3?(scrollDiff.left=-5,h.startScrolling(element,"x")):mousePosition.x>containerGeometry.right-3?(scrollDiff.left=5,h.startScrolling(element,"x")):scrollDiff.left=0,mousePosition.y<containerGeometry.top+3?(containerGeometry.top+3-mousePosition.y<5?scrollDiff.top=-5:scrollDiff.top=-20,h.startScrolling(element,"y")):mousePosition.y>containerGeometry.bottom-3?(mousePosition.y-containerGeometry.bottom+3<5?scrollDiff.top=5:scrollDiff.top=20,h.startScrolling(element,"y")):scrollDiff.top=0,0===scrollDiff.top&&0===scrollDiff.left?stopScrolling():startScrolling()}})}var h=require("../../lib/helper"),instances=require("../instances"),updateGeometry=require("../update-geometry");module.exports=function(element){var i=instances.get(element);bindSelectionHandler(element,i)}},{"../../lib/helper":6,"../instances":18,"../update-geometry":19}],16:[function(require,module,exports){"use strict";function bindTouchHandler(element,i,supportsTouch,supportsIePointer){function shouldPreventDefault(deltaX,deltaY){var scrollTop=element.scrollTop,scrollLeft=element.scrollLeft,magnitudeX=Math.abs(deltaX),magnitudeY=Math.abs(deltaY);if(magnitudeY>magnitudeX){if(0>deltaY&&scrollTop===i.contentHeight-i.containerHeight||deltaY>0&&0===scrollTop)return!i.settings.swipePropagation}else if(magnitudeX>magnitudeY&&(0>deltaX&&scrollLeft===i.contentWidth-i.containerWidth||deltaX>0&&0===scrollLeft))return!i.settings.swipePropagation;return!0}function applyTouchMove(differenceX,differenceY){element.scrollTop=element.scrollTop-differenceY,element.scrollLeft=element.scrollLeft-differenceX,updateGeometry(element)}function globalTouchStart(){inGlobalTouch=!0}function globalTouchEnd(){inGlobalTouch=!1}function getTouch(e){return e.targetTouches?e.targetTouches[0]:e}function shouldHandle(e){return e.targetTouches&&1===e.targetTouches.length?!0:e.pointerType&&"mouse"!==e.pointerType&&e.pointerType!==e.MSPOINTER_TYPE_MOUSE?!0:!1}function touchStart(e){if(shouldHandle(e)){inLocalTouch=!0;var touch=getTouch(e);startOffset.pageX=touch.pageX,startOffset.pageY=touch.pageY,startTime=(new Date).getTime(),null!==easingLoop&&clearInterval(easingLoop),e.stopPropagation()}}function touchMove(e){if(!inGlobalTouch&&inLocalTouch&&shouldHandle(e)){var touch=getTouch(e),currentOffset={pageX:touch.pageX,pageY:touch.pageY},differenceX=currentOffset.pageX-startOffset.pageX,differenceY=currentOffset.pageY-startOffset.pageY;applyTouchMove(differenceX,differenceY),startOffset=currentOffset;var currentTime=(new Date).getTime(),timeGap=currentTime-startTime;timeGap>0&&(speed.x=differenceX/timeGap,speed.y=differenceY/timeGap,startTime=currentTime),shouldPreventDefault(differenceX,differenceY)&&(e.stopPropagation(),e.preventDefault())}}function touchEnd(){!inGlobalTouch&&inLocalTouch&&(inLocalTouch=!1,clearInterval(easingLoop),easingLoop=setInterval(function(){return instances.get(element)?Math.abs(speed.x)<.01&&Math.abs(speed.y)<.01?void clearInterval(easingLoop):(applyTouchMove(30*speed.x,30*speed.y),speed.x*=.8,void(speed.y*=.8)):void clearInterval(easingLoop)},10))}var startOffset={},startTime=0,speed={},easingLoop=null,inGlobalTouch=!1,inLocalTouch=!1;supportsTouch&&(i.event.bind(window,"touchstart",globalTouchStart),i.event.bind(window,"touchend",globalTouchEnd),i.event.bind(element,"touchstart",touchStart),i.event.bind(element,"touchmove",touchMove),i.event.bind(element,"touchend",touchEnd)),supportsIePointer&&(window.PointerEvent?(i.event.bind(window,"pointerdown",globalTouchStart),i.event.bind(window,"pointerup",globalTouchEnd),i.event.bind(element,"pointerdown",touchStart),i.event.bind(element,"pointermove",touchMove),i.event.bind(element,"pointerup",touchEnd)):window.MSPointerEvent&&(i.event.bind(window,"MSPointerDown",globalTouchStart),i.event.bind(window,"MSPointerUp",globalTouchEnd),i.event.bind(element,"MSPointerDown",touchStart),i.event.bind(element,"MSPointerMove",touchMove),i.event.bind(element,"MSPointerUp",touchEnd)))}var instances=require("../instances"),updateGeometry=require("../update-geometry");module.exports=function(element,supportsTouch,supportsIePointer){var i=instances.get(element);bindTouchHandler(element,i,supportsTouch,supportsIePointer)}},{"../instances":18,"../update-geometry":19}],17:[function(require,module,exports){"use strict";var cls=require("../lib/class"),h=require("../lib/helper"),instances=require("./instances"),updateGeometry=require("./update-geometry"),clickRailHandler=require("./handler/click-rail"),dragScrollbarHandler=require("./handler/drag-scrollbar"),keyboardHandler=require("./handler/keyboard"),mouseWheelHandler=require("./handler/mouse-wheel"),nativeScrollHandler=require("./handler/native-scroll"),selectionHandler=require("./handler/selection"),touchHandler=require("./handler/touch");module.exports=function(element,userSettings){userSettings="object"==typeof userSettings?userSettings:{},cls.add(element,"ps-container");var i=instances.add(element);i.settings=h.extend(i.settings,userSettings),clickRailHandler(element),dragScrollbarHandler(element),mouseWheelHandler(element),nativeScrollHandler(element),selectionHandler(element),(h.env.supportsTouch||h.env.supportsIePointer)&&touchHandler(element,h.env.supportsTouch,h.env.supportsIePointer),i.settings.useKeyboard&&keyboardHandler(element),updateGeometry(element)}},{"../lib/class":2,"../lib/helper":6,"./handler/click-rail":10,"./handler/drag-scrollbar":11,"./handler/keyboard":12,"./handler/mouse-wheel":13,"./handler/native-scroll":14,"./handler/selection":15,"./handler/touch":16,"./instances":18,"./update-geometry":19}],18:[function(require,module,exports){"use strict";function Instance(element){var i=this;i.settings=h.clone(defaultSettings),i.containerWidth=null,i.containerHeight=null,i.contentWidth=null,i.contentHeight=null,i.isRtl="rtl"===d.css(element,"direction"),i.isNegativeScroll=function(){var originalScrollLeft=element.scrollLeft,result=null;return element.scrollLeft=-1,result=element.scrollLeft<0,element.scrollLeft=originalScrollLeft,result}(),i.negativeScrollAdjustment=i.isNegativeScroll?element.scrollWidth-element.clientWidth:0,i.event=new EventManager,i.ownerDocument=element.ownerDocument||document,i.scrollbarXRail=d.appendTo(d.e("div","ps-scrollbar-x-rail"),element),i.scrollbarX=d.appendTo(d.e("div","ps-scrollbar-x"),i.scrollbarXRail),i.scrollbarXActive=null,i.scrollbarXWidth=null,i.scrollbarXLeft=null,i.scrollbarXBottom=h.toInt(d.css(i.scrollbarXRail,"bottom")),i.isScrollbarXUsingBottom=i.scrollbarXBottom===i.scrollbarXBottom,i.scrollbarXTop=i.isScrollbarXUsingBottom?null:h.toInt(d.css(i.scrollbarXRail,"top")),i.railBorderXWidth=h.toInt(d.css(i.scrollbarXRail,"borderLeftWidth"))+h.toInt(d.css(i.scrollbarXRail,"borderRightWidth")),d.css(i.scrollbarXRail,"display","block"),i.railXMarginWidth=h.toInt(d.css(i.scrollbarXRail,"marginLeft"))+h.toInt(d.css(i.scrollbarXRail,"marginRight")),d.css(i.scrollbarXRail,"display",""),i.railXWidth=null,i.railXRatio=null,i.scrollbarYRail=d.appendTo(d.e("div","ps-scrollbar-y-rail"),element),i.scrollbarY=d.appendTo(d.e("div","ps-scrollbar-y"),i.scrollbarYRail),i.scrollbarYActive=null,i.scrollbarYHeight=null,i.scrollbarYTop=null,i.scrollbarYRight=h.toInt(d.css(i.scrollbarYRail,"right")),i.isScrollbarYUsingRight=i.scrollbarYRight===i.scrollbarYRight,i.scrollbarYLeft=i.isScrollbarYUsingRight?null:h.toInt(d.css(i.scrollbarYRail,"left")),i.scrollbarYOuterWidth=i.isRtl?h.outerWidth(i.scrollbarY):null,i.railBorderYWidth=h.toInt(d.css(i.scrollbarYRail,"borderTopWidth"))+h.toInt(d.css(i.scrollbarYRail,"borderBottomWidth")),d.css(i.scrollbarYRail,"display","block"),i.railYMarginHeight=h.toInt(d.css(i.scrollbarYRail,"marginTop"))+h.toInt(d.css(i.scrollbarYRail,"marginBottom")),d.css(i.scrollbarYRail,"display",""),i.railYHeight=null,i.railYRatio=null}function getId(element){return"undefined"==typeof element.dataset?element.getAttribute("data-ps-id"):element.dataset.psId}function setId(element,id){"undefined"==typeof element.dataset?element.setAttribute("data-ps-id",id):element.dataset.psId=id}function removeId(element){"undefined"==typeof element.dataset?element.removeAttribute("data-ps-id"):delete element.dataset.psId}var d=require("../lib/dom"),defaultSettings=require("./default-setting"),EventManager=require("../lib/event-manager"),guid=require("../lib/guid"),h=require("../lib/helper"),instances={};exports.add=function(element){var newId=guid();return setId(element,newId),instances[newId]=new Instance(element),instances[newId]},exports.remove=function(element){delete instances[getId(element)],removeId(element)},exports.get=function(element){return instances[getId(element)]}},{"../lib/dom":3,"../lib/event-manager":4,"../lib/guid":5,"../lib/helper":6,"./default-setting":8}],19:[function(require,module,exports){"use strict";function getThumbSize(i,thumbSize){return i.settings.minScrollbarLength&&(thumbSize=Math.max(thumbSize,i.settings.minScrollbarLength)),i.settings.maxScrollbarLength&&(thumbSize=Math.min(thumbSize,i.settings.maxScrollbarLength)),thumbSize}function updateCss(element,i){var xRailOffset={width:i.railXWidth};i.isRtl?xRailOffset.left=i.negativeScrollAdjustment+element.scrollLeft+i.containerWidth-i.contentWidth:xRailOffset.left=element.scrollLeft,i.isScrollbarXUsingBottom?xRailOffset.bottom=i.scrollbarXBottom-element.scrollTop:xRailOffset.top=i.scrollbarXTop+element.scrollTop,d.css(i.scrollbarXRail,xRailOffset);var yRailOffset={top:element.scrollTop,height:i.railYHeight};i.isScrollbarYUsingRight?i.isRtl?yRailOffset.right=i.contentWidth-(i.negativeScrollAdjustment+element.scrollLeft)-i.scrollbarYRight-i.scrollbarYOuterWidth:yRailOffset.right=i.scrollbarYRight-element.scrollLeft:i.isRtl?yRailOffset.left=i.negativeScrollAdjustment+element.scrollLeft+2*i.containerWidth-i.contentWidth-i.scrollbarYLeft-i.scrollbarYOuterWidth:yRailOffset.left=i.scrollbarYLeft+element.scrollLeft,d.css(i.scrollbarYRail,yRailOffset),d.css(i.scrollbarX,{left:i.scrollbarXLeft,width:i.scrollbarXWidth-i.railBorderXWidth}),d.css(i.scrollbarY,{top:i.scrollbarYTop,height:i.scrollbarYHeight-i.railBorderYWidth})}var cls=require("../lib/class"),d=require("../lib/dom"),h=require("../lib/helper"),instances=require("./instances");module.exports=function(element){var i=instances.get(element);i.containerWidth=element.clientWidth,i.containerHeight=element.clientHeight,i.contentWidth=element.scrollWidth,i.contentHeight=element.scrollHeight;var existingRails;element.contains(i.scrollbarXRail)||(existingRails=d.queryChildren(element,".ps-scrollbar-x-rail"),existingRails.length>0&&existingRails.forEach(function(rail){d.remove(rail)}),d.appendTo(i.scrollbarXRail,element)),element.contains(i.scrollbarYRail)||(existingRails=d.queryChildren(element,".ps-scrollbar-y-rail"),existingRails.length>0&&existingRails.forEach(function(rail){d.remove(rail)}),d.appendTo(i.scrollbarYRail,element)),!i.settings.suppressScrollX&&i.containerWidth+i.settings.scrollXMarginOffset<i.contentWidth?(i.scrollbarXActive=!0,i.railXWidth=i.containerWidth-i.railXMarginWidth,i.railXRatio=i.containerWidth/i.railXWidth,i.scrollbarXWidth=getThumbSize(i,h.toInt(i.railXWidth*i.containerWidth/i.contentWidth)),i.scrollbarXLeft=h.toInt((i.negativeScrollAdjustment+element.scrollLeft)*(i.railXWidth-i.scrollbarXWidth)/(i.contentWidth-i.containerWidth))):(i.scrollbarXActive=!1,i.scrollbarXWidth=0,i.scrollbarXLeft=0,element.scrollLeft=0),!i.settings.suppressScrollY&&i.containerHeight+i.settings.scrollYMarginOffset<i.contentHeight?(i.scrollbarYActive=!0,i.railYHeight=i.containerHeight-i.railYMarginHeight,i.railYRatio=i.containerHeight/i.railYHeight,i.scrollbarYHeight=getThumbSize(i,h.toInt(i.railYHeight*i.containerHeight/i.contentHeight)),i.scrollbarYTop=h.toInt(element.scrollTop*(i.railYHeight-i.scrollbarYHeight)/(i.contentHeight-i.containerHeight))):(i.scrollbarYActive=!1,i.scrollbarYHeight=0,i.scrollbarYTop=0,element.scrollTop=0),i.scrollbarXLeft>=i.railXWidth-i.scrollbarXWidth&&(i.scrollbarXLeft=i.railXWidth-i.scrollbarXWidth),i.scrollbarYTop>=i.railYHeight-i.scrollbarYHeight&&(i.scrollbarYTop=i.railYHeight-i.scrollbarYHeight),updateCss(element,i),cls[i.scrollbarXActive?"add":"remove"](element,"ps-active-x"),cls[i.scrollbarYActive?"add":"remove"](element,"ps-active-y")}},{"../lib/class":2,"../lib/dom":3,"../lib/helper":6,"./instances":18}],20:[function(require,module,exports){"use strict";var d=require("../lib/dom"),h=require("../lib/helper"),instances=require("./instances"),updateGeometry=require("./update-geometry");module.exports=function(element){var i=instances.get(element);i&&(i.negativeScrollAdjustment=i.isNegativeScroll?element.scrollWidth-element.clientWidth:0,d.css(i.scrollbarXRail,"display","block"),d.css(i.scrollbarYRail,"display","block"),i.railXMarginWidth=h.toInt(d.css(i.scrollbarXRail,"marginLeft"))+h.toInt(d.css(i.scrollbarXRail,"marginRight")),i.railYMarginHeight=h.toInt(d.css(i.scrollbarYRail,"marginTop"))+h.toInt(d.css(i.scrollbarYRail,"marginBottom")),d.css(i.scrollbarXRail,"display","none"),d.css(i.scrollbarYRail,"display","none"),updateGeometry(element),d.css(i.scrollbarXRail,"display",""),d.css(i.scrollbarYRail,"display",""))}},{"../lib/dom":3,"../lib/helper":6,"./instances":18,"./update-geometry":19}]},{},[1]),function(factory){"use strict";"function"==typeof define&&define.amd?define(["jquery"],factory):"undefined"!=typeof module&&module.exports?module.exports=factory(require("jquery")):factory(jQuery)}(function($){"use strict";function isWin(elem){return!elem.nodeName||-1!==$.inArray(elem.nodeName.toLowerCase(),["iframe","#document","html","body"])}function both(val){return $.isFunction(val)||$.isPlainObject(val)?val:{top:val,left:val}}var $scrollTo=$.scrollTo=function(target,duration,settings){return $(window).scrollTo(target,duration,settings)};return $scrollTo.defaults={axis:"xy",duration:0,limit:!0},$.fn.scrollTo=function(target,duration,settings){"object"==typeof duration&&(settings=duration,duration=0),"function"==typeof settings&&(settings={onAfter:settings}),"max"===target&&(target=9e9),settings=$.extend({},$scrollTo.defaults,settings),duration=duration||settings.duration;var queue=settings.queue&&settings.axis.length>1;return queue&&(duration/=2),settings.offset=both(settings.offset),settings.over=both(settings.over),this.each(function(){function animate(callback){var opts=$.extend({},settings,{queue:!0,duration:duration,complete:callback&&function(){callback.call(elem,targ,settings)}});$elem.animate(attr,opts)}if(null!==target){var toff,win=isWin(this),elem=win?this.contentWindow||window:this,$elem=$(elem),targ=target,attr={};switch(typeof targ){case"number":case"string":if(/^([+-]=?)?\d+(\.\d+)?(px|%)?$/.test(targ)){targ=both(targ);break}if(targ=win?$(targ):$(targ,elem),!targ.length)return;case"object":(targ.is||targ.style)&&(toff=(targ=$(targ)).offset())}var offset=$.isFunction(settings.offset)&&settings.offset(elem,targ)||settings.offset;$.each(settings.axis.split(""),function(i,axis){var Pos="x"===axis?"Left":"Top",pos=Pos.toLowerCase(),key="scroll"+Pos,prev=$elem[key](),max=$scrollTo.max(elem,axis);if(toff)attr[key]=toff[pos]+(win?0:prev-$elem.offset()[pos]),settings.margin&&(attr[key]-=parseInt(targ.css("margin"+Pos),10)||0,attr[key]-=parseInt(targ.css("border"+Pos+"Width"),10)||0),attr[key]+=offset[pos]||0,settings.over[pos]&&(attr[key]+=targ["x"===axis?"width":"height"]()*settings.over[pos]);else{var val=targ[pos];attr[key]=val.slice&&"%"===val.slice(-1)?parseFloat(val)/100*max:val}settings.limit&&/^\d+$/.test(attr[key])&&(attr[key]=attr[key]<=0?0:Math.min(attr[key],max)),!i&&settings.axis.length>1&&(prev===attr[key]?attr={}:queue&&(animate(settings.onAfterFirst),attr={}))}),animate(settings.onAfter)}})},$scrollTo.max=function(elem,axis){var Dim="x"===axis?"Width":"Height",scroll="scroll"+Dim;if(!isWin(elem))return elem[scroll]-$(elem)[Dim.toLowerCase()]();var size="client"+Dim,doc=elem.ownerDocument||elem.document,html=doc.documentElement,body=doc.body;return Math.max(html[scroll],body[scroll])-Math.min(html[size],body[size])},$.Tween.propHooks.scrollLeft=$.Tween.propHooks.scrollTop={get:function(t){return $(t.elem)[t.prop]()},set:function(t){var curr=this.get(t);if(t.options.interrupt&&t._last&&t._last!==curr)return $(t.elem).stop();var next=Math.round(t.now);curr!==next&&($(t.elem)[t.prop](next),t._last=this.get(t))}},$scrollTo});var _self="undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{},Prism=function(){var lang=/\blang(?:uage)?-(?!\*)(\w+)\b/i,_=_self.Prism={util:{encode:function(tokens){return tokens instanceof Token?new Token(tokens.type,_.util.encode(tokens.content),tokens.alias):"Array"===_.util.type(tokens)?tokens.map(_.util.encode):tokens.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/\u00a0/g," ")},type:function(o){return Object.prototype.toString.call(o).match(/\[object (\w+)\]/)[1]},clone:function(o){var type=_.util.type(o);switch(type){case"Object":var clone={};for(var key in o)o.hasOwnProperty(key)&&(clone[key]=_.util.clone(o[key]));return clone;case"Array":return o.map&&o.map(function(v){return _.util.clone(v)})}return o}},languages:{extend:function(id,redef){var lang=_.util.clone(_.languages[id]);for(var key in redef)lang[key]=redef[key];return lang},insertBefore:function(inside,before,insert,root){root=root||_.languages;var grammar=root[inside];if(2==arguments.length){insert=arguments[1];for(var newToken in insert)insert.hasOwnProperty(newToken)&&(grammar[newToken]=insert[newToken]);return grammar}var ret={};for(var token in grammar)if(grammar.hasOwnProperty(token)){if(token==before)for(var newToken in insert)insert.hasOwnProperty(newToken)&&(ret[newToken]=insert[newToken]);ret[token]=grammar[token]}return _.languages.DFS(_.languages,function(key,value){value===root[inside]&&key!=inside&&(this[key]=ret)}),root[inside]=ret},DFS:function(o,callback,type){for(var i in o)o.hasOwnProperty(i)&&(callback.call(o,i,o[i],type||i),"Object"===_.util.type(o[i])?_.languages.DFS(o[i],callback):"Array"===_.util.type(o[i])&&_.languages.DFS(o[i],callback,i))}},highlightAll:function(async,callback){for(var element,elements=document.querySelectorAll('code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'),i=0;element=elements[i++];)_.highlightElement(element,async===!0,callback)},highlightElement:function(element,async,callback){for(var language,grammar,parent=element;parent&&!lang.test(parent.className);)parent=parent.parentNode;if(parent&&(language=(parent.className.match(lang)||[,""])[1],grammar=_.languages[language]),element.className=element.className.replace(lang,"").replace(/\s+/g," ")+" language-"+language,parent=element.parentNode,/pre/i.test(parent.nodeName)&&(parent.className=parent.className.replace(lang,"").replace(/\s+/g," ")+" language-"+language),grammar){var code=element.textContent;if(code){code=code.replace(/^(?:\r?\n|\r)/,"");var env={element:element,language:language,grammar:grammar,code:code};if(_.hooks.run("before-highlight",env),async&&_self.Worker){var worker=new Worker(_.filename);worker.onmessage=function(evt){env.highlightedCode=Token.stringify(JSON.parse(evt.data),language),_.hooks.run("before-insert",env),env.element.innerHTML=env.highlightedCode,callback&&callback.call(env.element),_.hooks.run("after-highlight",env)},worker.postMessage(JSON.stringify({language:env.language,code:env.code}))}else env.highlightedCode=_.highlight(env.code,env.grammar,env.language),_.hooks.run("before-insert",env),env.element.innerHTML=env.highlightedCode,callback&&callback.call(element),_.hooks.run("after-highlight",env)}}},highlight:function(text,grammar,language){var tokens=_.tokenize(text,grammar);return Token.stringify(_.util.encode(tokens),language)},tokenize:function(text,grammar,language){var Token=_.Token,strarr=[text],rest=grammar.rest;if(rest){for(var token in rest)grammar[token]=rest[token];delete grammar.rest}tokenloop:for(var token in grammar)if(grammar.hasOwnProperty(token)&&grammar[token]){var patterns=grammar[token];patterns="Array"===_.util.type(patterns)?patterns:[patterns];for(var j=0;j<patterns.length;++j){var pattern=patterns[j],inside=pattern.inside,lookbehind=!!pattern.lookbehind,lookbehindLength=0,alias=pattern.alias;pattern=pattern.pattern||pattern;for(var i=0;i<strarr.length;i++){var str=strarr[i];if(strarr.length>text.length)break tokenloop;if(!(str instanceof Token)){pattern.lastIndex=0;var match=pattern.exec(str);if(match){lookbehind&&(lookbehindLength=match[1].length);var from=match.index-1+lookbehindLength,match=match[0].slice(lookbehindLength),len=match.length,to=from+len,before=str.slice(0,from+1),after=str.slice(to+1),args=[i,1];before&&args.push(before);var wrapped=new Token(token,inside?_.tokenize(match,inside):match,alias);
  args.push(wrapped),after&&args.push(after),Array.prototype.splice.apply(strarr,args)}}}}}return strarr},hooks:{all:{},add:function(name,callback){var hooks=_.hooks.all;hooks[name]=hooks[name]||[],hooks[name].push(callback)},run:function(name,env){var callbacks=_.hooks.all[name];if(callbacks&&callbacks.length)for(var callback,i=0;callback=callbacks[i++];)callback(env)}}},Token=_.Token=function(type,content,alias){this.type=type,this.content=content,this.alias=alias};if(Token.stringify=function(o,language,parent){if("string"==typeof o)return o;if("Array"===_.util.type(o))return o.map(function(element){return Token.stringify(element,language,o)}).join("");var env={type:o.type,content:Token.stringify(o.content,language,parent),tag:"span",classes:["token",o.type],attributes:{},language:language,parent:parent};if("comment"==env.type&&(env.attributes.spellcheck="true"),o.alias){var aliases="Array"===_.util.type(o.alias)?o.alias:[o.alias];Array.prototype.push.apply(env.classes,aliases)}_.hooks.run("wrap",env);var attributes="";for(var name in env.attributes)attributes+=name+'="'+(env.attributes[name]||"")+'"';return"<"+env.tag+' class="'+env.classes.join(" ")+'" '+attributes+">"+env.content+"</"+env.tag+">"},!_self.document)return _self.addEventListener?(_self.addEventListener("message",function(evt){var message=JSON.parse(evt.data),lang=message.language,code=message.code;_self.postMessage(JSON.stringify(_.util.encode(_.tokenize(code,_.languages[lang])))),_self.close()},!1),_self.Prism):_self.Prism;var script=document.getElementsByTagName("script");return script=script[script.length-1],script&&(_.filename=script.src,document.addEventListener&&!script.hasAttribute("data-manual")&&document.addEventListener("DOMContentLoaded",_.highlightAll)),_self.Prism}();"undefined"!=typeof module&&module.exports&&(module.exports=Prism),Prism.languages.markup={comment:/<!--[\w\W]*?-->/,prolog:/<\?[\w\W]+?\?>/,doctype:/<!DOCTYPE[\w\W]+?>/,cdata:/<!\[CDATA\[[\w\W]*?]]>/i,tag:{pattern:/<\/?[^\s>\/]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\\1|\\?(?!\1)[\w\W])*\1|[^\s'">=]+))?)*\s*\/?>/i,inside:{tag:{pattern:/^<\/?[^\s>\/]+/i,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"attr-value":{pattern:/=(?:('|")[\w\W]*?(\1)|[^\s>]+)/i,inside:{punctuation:/[=>"']/}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:/&#?[\da-z]{1,8};/i},Prism.hooks.add("wrap",function(env){"entity"===env.type&&(env.attributes.title=env.content.replace(/&amp;/,"&"))}),Prism.languages.css={comment:/\/\*[\w\W]*?\*\//,atrule:{pattern:/@[\w-]+?.*?(;|(?=\s*\{))/i,inside:{rule:/@[\w-]+/}},url:/url\((?:(["'])(\\(?:\r\n|[\w\W])|(?!\1)[^\\\r\n])*\1|.*?)\)/i,selector:/[^\{\}\s][^\{\};]*?(?=\s*\{)/,string:/("|')(\\(?:\r\n|[\w\W])|(?!\1)[^\\\r\n])*\1/,property:/(\b|\B)[\w-]+(?=\s*:)/i,important:/\B!important\b/i,"function":/[-a-z0-9]+(?=\()/i,punctuation:/[(){};:]/},Prism.languages.css.atrule.inside.rest=Prism.util.clone(Prism.languages.css),Prism.languages.markup&&(Prism.languages.insertBefore("markup","tag",{style:{pattern:/<style[\w\W]*?>[\w\W]*?<\/style>/i,inside:{tag:{pattern:/<style[\w\W]*?>|<\/style>/i,inside:Prism.languages.markup.tag.inside},rest:Prism.languages.css},alias:"language-css"}}),Prism.languages.insertBefore("inside","attr-value",{"style-attr":{pattern:/\s*style=("|').*?\1/i,inside:{"attr-name":{pattern:/^\s*style/i,inside:Prism.languages.markup.tag.inside},punctuation:/^\s*=\s*['"]|['"]\s*$/,"attr-value":{pattern:/.+/i,inside:Prism.languages.css}},alias:"language-css"}},Prism.languages.markup.tag)),Prism.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\w\W]*?\*\//,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0}],string:/("|')(\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,"class-name":{pattern:/((?:(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[a-z0-9_\.\\]+/i,lookbehind:!0,inside:{punctuation:/(\.|\\)/}},keyword:/\b(if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/,"boolean":/\b(true|false)\b/,"function":/[a-z0-9_]+(?=\()/i,number:/\b-?(0x[\dA-Fa-f]+|\d*\.?\d+([Ee]-?\d+)?)\b/,operator:/[-+]{1,2}|!|<=?|>=?|={1,3}|&{1,2}|\|?\||\?|\*|\/|~|\^|%/,punctuation:/[{}[\];(),.:]/},Prism.languages.javascript=Prism.languages.extend("clike",{keyword:/\b(as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|false|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\b/,number:/\b-?(0x[\dA-Fa-f]+|0b[01]+|0o[0-7]+|\d*\.?\d+([Ee][+-]?\d+)?|NaN|Infinity)\b/,"function":/(?!\d)[a-z0-9_$]+(?=\()/i}),Prism.languages.insertBefore("javascript","keyword",{regex:{pattern:/(^|[^/])\/(?!\/)(\[.+?]|\\.|[^/\\\r\n])+\/[gimyu]{0,5}(?=\s*($|[\r\n,.;})]))/,lookbehind:!0}}),Prism.languages.insertBefore("javascript","class-name",{"template-string":{pattern:/`(?:\\`|\\?[^`])*`/,inside:{interpolation:{pattern:/\$\{[^}]+\}/,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:Prism.languages.javascript}},string:/[\s\S]+/}}}),Prism.languages.markup&&Prism.languages.insertBefore("markup","tag",{script:{pattern:/<script[\w\W]*?>[\w\W]*?<\/script>/i,inside:{tag:{pattern:/<script[\w\W]*?>|<\/script>/i,inside:Prism.languages.markup.tag.inside},rest:Prism.languages.javascript},alias:"language-javascript"}}),function(){self.Prism&&self.document&&document.querySelector&&(self.Prism.fileHighlight=function(){var Extensions={js:"javascript",html:"markup",svg:"markup",xml:"markup",py:"python",rb:"ruby",ps1:"powershell",psm1:"powershell"};Array.prototype.forEach&&Array.prototype.slice.call(document.querySelectorAll("pre[data-src]")).forEach(function(pre){for(var language,src=pre.getAttribute("data-src"),parent=pre,lang=/\blang(?:uage)?-(?!\*)(\w+)\b/i;parent&&!lang.test(parent.className);)parent=parent.parentNode;if(parent&&(language=(pre.className.match(lang)||[,""])[1]),!language){var extension=(src.match(/\.(\w+)$/)||[,""])[1];language=Extensions[extension]||extension}var code=document.createElement("code");code.className="language-"+language,pre.textContent="",code.textContent="Loading…",pre.appendChild(code);var xhr=new XMLHttpRequest;xhr.open("GET",src,!0),xhr.onreadystatechange=function(){4==xhr.readyState&&(xhr.status<400&&xhr.responseText?(code.textContent=xhr.responseText,Prism.highlightElement(code)):xhr.status>=400?code.textContent="✖ Error "+xhr.status+" while fetching file: "+xhr.statusText:code.textContent="✖ Error: File does not exist or is empty")},xhr.send(null)})},self.Prism.fileHighlight())}(),(window._gsQueue||(window._gsQueue=[])).push(function(){"use strict";window._gsDefine("TweenMax",["core.Animation","core.SimpleTimeline","TweenLite"],function(Animation,SimpleTimeline,TweenLite){var _slice=[].slice,TweenMax=function(target,duration,vars){TweenLite.call(this,target,duration,vars),this._cycle=0,this._yoyo=this.vars.yoyo===!0,this._repeat=this.vars.repeat||0,this._repeatDelay=this.vars.repeatDelay||0,this._dirty=!0,this.render=TweenMax.prototype.render},_tinyNum=1e-10,_isSelector=TweenLite._internals.isSelector,_isArray=TweenLite._internals.isArray,p=TweenMax.prototype=TweenLite.to({},.1,{}),_blankArray=[];TweenMax.version="1.11.8",p.constructor=TweenMax,p.kill()._gc=!1,TweenMax.killTweensOf=TweenMax.killDelayedCallsTo=TweenLite.killTweensOf,TweenMax.getTweensOf=TweenLite.getTweensOf,TweenMax.ticker=TweenLite.ticker,p.invalidate=function(){return this._yoyo=this.vars.yoyo===!0,this._repeat=this.vars.repeat||0,this._repeatDelay=this.vars.repeatDelay||0,this._uncache(!0),TweenLite.prototype.invalidate.call(this)},p.updateTo=function(vars,resetDuration){var p,curRatio=this.ratio;resetDuration&&this._startTime<this._timeline._time&&(this._startTime=this._timeline._time,this._uncache(!1),this._gc?this._enabled(!0,!1):this._timeline.insert(this,this._startTime-this._delay));for(p in vars)this.vars[p]=vars[p];if(this._initted)if(resetDuration)this._initted=!1;else if(this._gc&&this._enabled(!0,!1),this._notifyPluginsOfEnabled&&this._firstPT&&TweenLite._onPluginEvent("_onDisable",this),this._time/this._duration>.998){var prevTime=this._time;this.render(0,!0,!1),this._initted=!1,this.render(prevTime,!0,!1)}else if(this._time>0){this._initted=!1,this._init();for(var endValue,inv=1/(1-curRatio),pt=this._firstPT;pt;)endValue=pt.s+pt.c,pt.c*=inv,pt.s=endValue-pt.c,pt=pt._next}return this},p.render=function(time,suppressEvents,force){this._initted||0===this._duration&&this.vars.repeat&&this.invalidate();var isComplete,callback,pt,cycleDuration,r,type,pow,rawPrevTime,totalDur=this._dirty?this.totalDuration():this._totalDuration,prevTime=this._time,prevTotalTime=this._totalTime,prevCycle=this._cycle,duration=this._duration;if(time>=totalDur?(this._totalTime=totalDur,this._cycle=this._repeat,this._yoyo&&0!==(1&this._cycle)?(this._time=0,this.ratio=this._ease._calcEnd?this._ease.getRatio(0):0):(this._time=duration,this.ratio=this._ease._calcEnd?this._ease.getRatio(1):1),this._reversed||(isComplete=!0,callback="onComplete"),0===duration&&(rawPrevTime=this._rawPrevTime,this._startTime===this._timeline._duration&&(time=0),(0===time||0>rawPrevTime||rawPrevTime===_tinyNum)&&rawPrevTime!==time&&(force=!0,rawPrevTime>_tinyNum&&(callback="onReverseComplete")),this._rawPrevTime=rawPrevTime=!suppressEvents||time||this._rawPrevTime===time?time:_tinyNum)):1e-7>time?(this._totalTime=this._time=this._cycle=0,this.ratio=this._ease._calcEnd?this._ease.getRatio(0):0,(0!==prevTotalTime||0===duration&&this._rawPrevTime>0&&this._rawPrevTime!==_tinyNum)&&(callback="onReverseComplete",isComplete=this._reversed),0>time?(this._active=!1,0===duration&&(this._rawPrevTime>=0&&(force=!0),this._rawPrevTime=rawPrevTime=!suppressEvents||time||this._rawPrevTime===time?time:_tinyNum)):this._initted||(force=!0)):(this._totalTime=this._time=time,0!==this._repeat&&(cycleDuration=duration+this._repeatDelay,this._cycle=this._totalTime/cycleDuration>>0,0!==this._cycle&&this._cycle===this._totalTime/cycleDuration&&this._cycle--,this._time=this._totalTime-this._cycle*cycleDuration,this._yoyo&&0!==(1&this._cycle)&&(this._time=duration-this._time),this._time>duration?this._time=duration:this._time<0&&(this._time=0)),this._easeType?(r=this._time/duration,type=this._easeType,pow=this._easePower,(1===type||3===type&&r>=.5)&&(r=1-r),3===type&&(r*=2),1===pow?r*=r:2===pow?r*=r*r:3===pow?r*=r*r*r:4===pow&&(r*=r*r*r*r),1===type?this.ratio=1-r:2===type?this.ratio=r:this._time/duration<.5?this.ratio=r/2:this.ratio=1-r/2):this.ratio=this._ease.getRatio(this._time/duration)),prevTime===this._time&&!force&&prevCycle===this._cycle)return void(prevTotalTime!==this._totalTime&&this._onUpdate&&(suppressEvents||this._onUpdate.apply(this.vars.onUpdateScope||this,this.vars.onUpdateParams||_blankArray)));if(!this._initted){if(this._init(),!this._initted||this._gc)return;this._time&&!isComplete?this.ratio=this._ease.getRatio(this._time/duration):isComplete&&this._ease._calcEnd&&(this.ratio=this._ease.getRatio(0===this._time?0:1))}for(this._active||!this._paused&&this._time!==prevTime&&time>=0&&(this._active=!0),0===prevTotalTime&&(this._startAt&&(time>=0?this._startAt.render(time,suppressEvents,force):callback||(callback="_dummyGS")),this.vars.onStart&&(0!==this._totalTime||0===duration)&&(suppressEvents||this.vars.onStart.apply(this.vars.onStartScope||this,this.vars.onStartParams||_blankArray))),pt=this._firstPT;pt;)pt.f?pt.t[pt.p](pt.c*this.ratio+pt.s):pt.t[pt.p]=pt.c*this.ratio+pt.s,pt=pt._next;this._onUpdate&&(0>time&&this._startAt&&this._startTime&&this._startAt.render(time,suppressEvents,force),suppressEvents||(this._totalTime!==prevTotalTime||isComplete)&&this._onUpdate.apply(this.vars.onUpdateScope||this,this.vars.onUpdateParams||_blankArray)),this._cycle!==prevCycle&&(suppressEvents||this._gc||this.vars.onRepeat&&this.vars.onRepeat.apply(this.vars.onRepeatScope||this,this.vars.onRepeatParams||_blankArray)),callback&&(this._gc||(0>time&&this._startAt&&!this._onUpdate&&this._startTime&&this._startAt.render(time,suppressEvents,force),isComplete&&(this._timeline.autoRemoveChildren&&this._enabled(!1,!1),this._active=!1),!suppressEvents&&this.vars[callback]&&this.vars[callback].apply(this.vars[callback+"Scope"]||this,this.vars[callback+"Params"]||_blankArray),0===duration&&this._rawPrevTime===_tinyNum&&rawPrevTime!==_tinyNum&&(this._rawPrevTime=0)))},TweenMax.to=function(target,duration,vars){return new TweenMax(target,duration,vars)},TweenMax.from=function(target,duration,vars){return vars.runBackwards=!0,vars.immediateRender=0!=vars.immediateRender,new TweenMax(target,duration,vars)},TweenMax.fromTo=function(target,duration,fromVars,toVars){return toVars.startAt=fromVars,toVars.immediateRender=0!=toVars.immediateRender&&0!=fromVars.immediateRender,new TweenMax(target,duration,toVars)},TweenMax.staggerTo=TweenMax.allTo=function(targets,duration,vars,stagger,onCompleteAll,onCompleteAllParams,onCompleteAllScope){stagger=stagger||0;var l,copy,i,p,delay=vars.delay||0,a=[],finalComplete=function(){vars.onComplete&&vars.onComplete.apply(vars.onCompleteScope||this,arguments),onCompleteAll.apply(onCompleteAllScope||this,onCompleteAllParams||_blankArray)};for(_isArray(targets)||("string"==typeof targets&&(targets=TweenLite.selector(targets)||targets),_isSelector(targets)&&(targets=_slice.call(targets,0))),l=targets.length,i=0;l>i;i++){copy={};for(p in vars)copy[p]=vars[p];copy.delay=delay,i===l-1&&onCompleteAll&&(copy.onComplete=finalComplete),a[i]=new TweenMax(targets[i],duration,copy),delay+=stagger}return a},TweenMax.staggerFrom=TweenMax.allFrom=function(targets,duration,vars,stagger,onCompleteAll,onCompleteAllParams,onCompleteAllScope){return vars.runBackwards=!0,vars.immediateRender=0!=vars.immediateRender,TweenMax.staggerTo(targets,duration,vars,stagger,onCompleteAll,onCompleteAllParams,onCompleteAllScope)},TweenMax.staggerFromTo=TweenMax.allFromTo=function(targets,duration,fromVars,toVars,stagger,onCompleteAll,onCompleteAllParams,onCompleteAllScope){return toVars.startAt=fromVars,toVars.immediateRender=0!=toVars.immediateRender&&0!=fromVars.immediateRender,TweenMax.staggerTo(targets,duration,toVars,stagger,onCompleteAll,onCompleteAllParams,onCompleteAllScope)},TweenMax.delayedCall=function(delay,callback,params,scope,useFrames){return new TweenMax(callback,0,{delay:delay,onComplete:callback,onCompleteParams:params,onCompleteScope:scope,onReverseComplete:callback,onReverseCompleteParams:params,onReverseCompleteScope:scope,immediateRender:!1,useFrames:useFrames,overwrite:0})},TweenMax.set=function(target,vars){return new TweenMax(target,0,vars)},TweenMax.isTweening=function(target){return TweenLite.getTweensOf(target,!0).length>0};var _getChildrenOf=function(timeline,includeTimelines){for(var a=[],cnt=0,tween=timeline._first;tween;)tween instanceof TweenLite?a[cnt++]=tween:(includeTimelines&&(a[cnt++]=tween),a=a.concat(_getChildrenOf(tween,includeTimelines)),cnt=a.length),tween=tween._next;return a},getAllTweens=TweenMax.getAllTweens=function(includeTimelines){return _getChildrenOf(Animation._rootTimeline,includeTimelines).concat(_getChildrenOf(Animation._rootFramesTimeline,includeTimelines))};TweenMax.killAll=function(complete,tweens,delayedCalls,timelines){null==tweens&&(tweens=!0),null==delayedCalls&&(delayedCalls=!0);var isDC,tween,i,a=getAllTweens(0!=timelines),l=a.length,allTrue=tweens&&delayedCalls&&timelines;for(i=0;l>i;i++)tween=a[i],(allTrue||tween instanceof SimpleTimeline||(isDC=tween.target===tween.vars.onComplete)&&delayedCalls||tweens&&!isDC)&&(complete?tween.totalTime(tween.totalDuration()):tween._enabled(!1,!1))},TweenMax.killChildTweensOf=function(parent,complete){if(null!=parent){var a,curParent,p,i,l,tl=TweenLite._tweenLookup;if("string"==typeof parent&&(parent=TweenLite.selector(parent)||parent),_isSelector(parent)&&(parent=_slice.call(parent,0)),_isArray(parent))for(i=parent.length;--i>-1;)TweenMax.killChildTweensOf(parent[i],complete);else{a=[];for(p in tl)for(curParent=tl[p].target.parentNode;curParent;)curParent===parent&&(a=a.concat(tl[p].tweens)),curParent=curParent.parentNode;for(l=a.length,i=0;l>i;i++)complete&&a[i].totalTime(a[i].totalDuration()),a[i]._enabled(!1,!1)}}};var _changePause=function(pause,tweens,delayedCalls,timelines){tweens=tweens!==!1,delayedCalls=delayedCalls!==!1,timelines=timelines!==!1;for(var isDC,tween,a=getAllTweens(timelines),allTrue=tweens&&delayedCalls&&timelines,i=a.length;--i>-1;)tween=a[i],(allTrue||tween instanceof SimpleTimeline||(isDC=tween.target===tween.vars.onComplete)&&delayedCalls||tweens&&!isDC)&&tween.paused(pause)};return TweenMax.pauseAll=function(tweens,delayedCalls,timelines){_changePause(!0,tweens,delayedCalls,timelines)},TweenMax.resumeAll=function(tweens,delayedCalls,timelines){_changePause(!1,tweens,delayedCalls,timelines)},TweenMax.globalTimeScale=function(value){var tl=Animation._rootTimeline,t=TweenLite.ticker.time;return arguments.length?(value=value||_tinyNum,tl._startTime=t-(t-tl._startTime)*tl._timeScale/value,tl=Animation._rootFramesTimeline,t=TweenLite.ticker.frame,tl._startTime=t-(t-tl._startTime)*tl._timeScale/value,tl._timeScale=Animation._rootTimeline._timeScale=value,value):tl._timeScale},p.progress=function(value){return arguments.length?this.totalTime(this.duration()*(this._yoyo&&0!==(1&this._cycle)?1-value:value)+this._cycle*(this._duration+this._repeatDelay),!1):this._time/this.duration()},p.totalProgress=function(value){return arguments.length?this.totalTime(this.totalDuration()*value,!1):this._totalTime/this.totalDuration()},p.time=function(value,suppressEvents){return arguments.length?(this._dirty&&this.totalDuration(),value>this._duration&&(value=this._duration),this._yoyo&&0!==(1&this._cycle)?value=this._duration-value+this._cycle*(this._duration+this._repeatDelay):0!==this._repeat&&(value+=this._cycle*(this._duration+this._repeatDelay)),this.totalTime(value,suppressEvents)):this._time},p.duration=function(value){return arguments.length?Animation.prototype.duration.call(this,value):this._duration},p.totalDuration=function(value){return arguments.length?-1===this._repeat?this:this.duration((value-this._repeat*this._repeatDelay)/(this._repeat+1)):(this._dirty&&(this._totalDuration=-1===this._repeat?999999999999:this._duration*(this._repeat+1)+this._repeatDelay*this._repeat,this._dirty=!1),this._totalDuration)},p.repeat=function(value){return arguments.length?(this._repeat=value,this._uncache(!0)):this._repeat},p.repeatDelay=function(value){return arguments.length?(this._repeatDelay=value,this._uncache(!0)):this._repeatDelay},p.yoyo=function(value){return arguments.length?(this._yoyo=value,this):this._yoyo},TweenMax},!0),window._gsDefine("TimelineLite",["core.Animation","core.SimpleTimeline","TweenLite"],function(Animation,SimpleTimeline,TweenLite){var TimelineLite=function(vars){SimpleTimeline.call(this,vars),this._labels={},this.autoRemoveChildren=this.vars.autoRemoveChildren===!0,this.smoothChildTiming=this.vars.smoothChildTiming===!0,this._sortChildren=!0,this._onUpdate=this.vars.onUpdate;var val,p,v=this.vars;for(p in v)val=v[p],_isArray(val)&&-1!==val.join("").indexOf("{self}")&&(v[p]=this._swapSelfInParams(val));_isArray(v.tweens)&&this.add(v.tweens,0,v.align,v.stagger)},_tinyNum=1e-10,_isSelector=TweenLite._internals.isSelector,_isArray=TweenLite._internals.isArray,_blankArray=[],_globals=window._gsDefine.globals,_copy=function(vars){var p,copy={};for(p in vars)copy[p]=vars[p];return copy},_pauseCallback=function(tween,callback,params,scope){tween._timeline.pause(tween._startTime),callback&&callback.apply(scope||tween._timeline,params||_blankArray)},_slice=_blankArray.slice,p=TimelineLite.prototype=new SimpleTimeline;return TimelineLite.version="1.11.8",p.constructor=TimelineLite,p.kill()._gc=!1,p.to=function(target,duration,vars,position){var Engine=vars.repeat&&_globals.TweenMax||TweenLite;return duration?this.add(new Engine(target,duration,vars),position):this.set(target,vars,position)},p.from=function(target,duration,vars,position){return this.add((vars.repeat&&_globals.TweenMax||TweenLite).from(target,duration,vars),position)},p.fromTo=function(target,duration,fromVars,toVars,position){var Engine=toVars.repeat&&_globals.TweenMax||TweenLite;return duration?this.add(Engine.fromTo(target,duration,fromVars,toVars),position):this.set(target,toVars,position)},p.staggerTo=function(targets,duration,vars,stagger,position,onCompleteAll,onCompleteAllParams,onCompleteAllScope){var i,tl=new TimelineLite({onComplete:onCompleteAll,onCompleteParams:onCompleteAllParams,onCompleteScope:onCompleteAllScope,smoothChildTiming:this.smoothChildTiming});for("string"==typeof targets&&(targets=TweenLite.selector(targets)||targets),_isSelector(targets)&&(targets=_slice.call(targets,0)),stagger=stagger||0,i=0;i<targets.length;i++)vars.startAt&&(vars.startAt=_copy(vars.startAt)),tl.to(targets[i],duration,_copy(vars),i*stagger);return this.add(tl,position)},p.staggerFrom=function(targets,duration,vars,stagger,position,onCompleteAll,onCompleteAllParams,onCompleteAllScope){return vars.immediateRender=0!=vars.immediateRender,vars.runBackwards=!0,this.staggerTo(targets,duration,vars,stagger,position,onCompleteAll,onCompleteAllParams,onCompleteAllScope)},p.staggerFromTo=function(targets,duration,fromVars,toVars,stagger,position,onCompleteAll,onCompleteAllParams,onCompleteAllScope){return toVars.startAt=fromVars,toVars.immediateRender=0!=toVars.immediateRender&&0!=fromVars.immediateRender,this.staggerTo(targets,duration,toVars,stagger,position,onCompleteAll,onCompleteAllParams,onCompleteAllScope)},p.call=function(callback,params,scope,position){return this.add(TweenLite.delayedCall(0,callback,params,scope),position)},p.set=function(target,vars,position){return position=this._parseTimeOrLabel(position,0,!0),null==vars.immediateRender&&(vars.immediateRender=position===this._time&&!this._paused),this.add(new TweenLite(target,0,vars),position)},TimelineLite.exportRoot=function(vars,ignoreDelayedCalls){vars=vars||{},null==vars.smoothChildTiming&&(vars.smoothChildTiming=!0);var tween,next,tl=new TimelineLite(vars),root=tl._timeline;for(null==ignoreDelayedCalls&&(ignoreDelayedCalls=!0),root._remove(tl,!0),tl._startTime=0,tl._rawPrevTime=tl._time=tl._totalTime=root._time,tween=root._first;tween;)next=tween._next,ignoreDelayedCalls&&tween instanceof TweenLite&&tween.target===tween.vars.onComplete||tl.add(tween,tween._startTime-tween._delay),tween=next;return root.add(tl,0),tl},p.add=function(value,position,align,stagger){var curTime,l,i,child,tl,beforeRawTime;if("number"!=typeof position&&(position=this._parseTimeOrLabel(position,0,!0,value)),!(value instanceof Animation)){if(value instanceof Array||value&&value.push&&_isArray(value)){for(align=align||"normal",stagger=stagger||0,curTime=position,l=value.length,i=0;l>i;i++)_isArray(child=value[i])&&(child=new TimelineLite({tweens:child})),this.add(child,curTime),"string"!=typeof child&&"function"!=typeof child&&("sequence"===align?curTime=child._startTime+child.totalDuration()/child._timeScale:"start"===align&&(child._startTime-=child.delay())),curTime+=stagger;return this._uncache(!0)}if("string"==typeof value)return this.addLabel(value,position);if("function"!=typeof value)throw"Cannot add "+value+" into the timeline; it is not a tween, timeline, function, or string.";value=TweenLite.delayedCall(0,value)}if(SimpleTimeline.prototype.add.call(this,value,position),(this._gc||this._time===this._duration)&&!this._paused&&this._duration<this.duration())for(tl=this,beforeRawTime=tl.rawTime()>value._startTime;tl._timeline;)beforeRawTime&&tl._timeline.smoothChildTiming?tl.totalTime(tl._totalTime,!0):tl._gc&&tl._enabled(!0,!1),tl=tl._timeline;return this},p.remove=function(value){if(value instanceof Animation)return this._remove(value,!1);if(value instanceof Array||value&&value.push&&_isArray(value)){for(var i=value.length;--i>-1;)this.remove(value[i]);return this}return"string"==typeof value?this.removeLabel(value):this.kill(null,value)},p._remove=function(tween,skipDisable){SimpleTimeline.prototype._remove.call(this,tween,skipDisable);var last=this._last;return last?this._time>last._startTime+last._totalDuration/last._timeScale&&(this._time=this.duration(),this._totalTime=this._totalDuration):this._time=this._totalTime=this._duration=this._totalDuration=0,this},p.append=function(value,offsetOrLabel){return this.add(value,this._parseTimeOrLabel(null,offsetOrLabel,!0,value))},p.insert=p.insertMultiple=function(value,position,align,stagger){return this.add(value,position||0,align,stagger)},p.appendMultiple=function(tweens,offsetOrLabel,align,stagger){return this.add(tweens,this._parseTimeOrLabel(null,offsetOrLabel,!0,tweens),align,stagger)},p.addLabel=function(label,position){return this._labels[label]=this._parseTimeOrLabel(position),this},p.addPause=function(position,callback,params,scope){return this.call(_pauseCallback,["{self}",callback,params,scope],this,position)},p.removeLabel=function(label){return delete this._labels[label],this},p.getLabelTime=function(label){return null!=this._labels[label]?this._labels[label]:-1},p._parseTimeOrLabel=function(timeOrLabel,offsetOrLabel,appendIfAbsent,ignore){var i;if(ignore instanceof Animation&&ignore.timeline===this)this.remove(ignore);else if(ignore&&(ignore instanceof Array||ignore.push&&_isArray(ignore)))for(i=ignore.length;--i>-1;)ignore[i]instanceof Animation&&ignore[i].timeline===this&&this.remove(ignore[i]);if("string"==typeof offsetOrLabel)return this._parseTimeOrLabel(offsetOrLabel,appendIfAbsent&&"number"==typeof timeOrLabel&&null==this._labels[offsetOrLabel]?timeOrLabel-this.duration():0,appendIfAbsent);if(offsetOrLabel=offsetOrLabel||0,"string"!=typeof timeOrLabel||!isNaN(timeOrLabel)&&null==this._labels[timeOrLabel])null==timeOrLabel&&(timeOrLabel=this.duration());else{if(i=timeOrLabel.indexOf("="),-1===i)return null==this._labels[timeOrLabel]?appendIfAbsent?this._labels[timeOrLabel]=this.duration()+offsetOrLabel:offsetOrLabel:this._labels[timeOrLabel]+offsetOrLabel;offsetOrLabel=parseInt(timeOrLabel.charAt(i-1)+"1",10)*Number(timeOrLabel.substr(i+1)),timeOrLabel=i>1?this._parseTimeOrLabel(timeOrLabel.substr(0,i-1),0,appendIfAbsent):this.duration()}return Number(timeOrLabel)+offsetOrLabel},p.seek=function(position,suppressEvents){return this.totalTime("number"==typeof position?position:this._parseTimeOrLabel(position),suppressEvents!==!1)},p.stop=function(){return this.paused(!0)},p.gotoAndPlay=function(position,suppressEvents){return this.play(position,suppressEvents)},p.gotoAndStop=function(position,suppressEvents){return this.pause(position,suppressEvents)},p.render=function(time,suppressEvents,force){this._gc&&this._enabled(!0,!1);var tween,isComplete,next,callback,internalForce,totalDur=this._dirty?this.totalDuration():this._totalDuration,prevTime=this._time,prevStart=this._startTime,prevTimeScale=this._timeScale,prevPaused=this._paused;if(time>=totalDur?(this._totalTime=this._time=totalDur,this._reversed||this._hasPausedChild()||(isComplete=!0,callback="onComplete",0===this._duration&&(0===time||this._rawPrevTime<0||this._rawPrevTime===_tinyNum)&&this._rawPrevTime!==time&&this._first&&(internalForce=!0,this._rawPrevTime>_tinyNum&&(callback="onReverseComplete"))),this._rawPrevTime=this._duration||!suppressEvents||time||this._rawPrevTime===time?time:_tinyNum,time=totalDur+1e-4):1e-7>time?(this._totalTime=this._time=0,(0!==prevTime||0===this._duration&&this._rawPrevTime!==_tinyNum&&(this._rawPrevTime>0||0>time&&this._rawPrevTime>=0))&&(callback="onReverseComplete",isComplete=this._reversed),0>time?(this._active=!1,0===this._duration&&this._rawPrevTime>=0&&this._first&&(internalForce=!0),this._rawPrevTime=time):(this._rawPrevTime=this._duration||!suppressEvents||time||this._rawPrevTime===time?time:_tinyNum,time=0,this._initted||(internalForce=!0))):this._totalTime=this._time=this._rawPrevTime=time,this._time!==prevTime&&this._first||force||internalForce){if(this._initted||(this._initted=!0),this._active||!this._paused&&this._time!==prevTime&&time>0&&(this._active=!0),0===prevTime&&this.vars.onStart&&0!==this._time&&(suppressEvents||this.vars.onStart.apply(this.vars.onStartScope||this,this.vars.onStartParams||_blankArray)),this._time>=prevTime)for(tween=this._first;tween&&(next=tween._next,!this._paused||prevPaused);)(tween._active||tween._startTime<=this._time&&!tween._paused&&!tween._gc)&&(tween._reversed?tween.render((tween._dirty?tween.totalDuration():tween._totalDuration)-(time-tween._startTime)*tween._timeScale,suppressEvents,force):tween.render((time-tween._startTime)*tween._timeScale,suppressEvents,force)),tween=next;else for(tween=this._last;tween&&(next=tween._prev,!this._paused||prevPaused);)(tween._active||tween._startTime<=prevTime&&!tween._paused&&!tween._gc)&&(tween._reversed?tween.render((tween._dirty?tween.totalDuration():tween._totalDuration)-(time-tween._startTime)*tween._timeScale,suppressEvents,force):tween.render((time-tween._startTime)*tween._timeScale,suppressEvents,force)),tween=next;this._onUpdate&&(suppressEvents||this._onUpdate.apply(this.vars.onUpdateScope||this,this.vars.onUpdateParams||_blankArray)),callback&&(this._gc||(prevStart===this._startTime||prevTimeScale!==this._timeScale)&&(0===this._time||totalDur>=this.totalDuration())&&(isComplete&&(this._timeline.autoRemoveChildren&&this._enabled(!1,!1),this._active=!1),!suppressEvents&&this.vars[callback]&&this.vars[callback].apply(this.vars[callback+"Scope"]||this,this.vars[callback+"Params"]||_blankArray)))}},p._hasPausedChild=function(){for(var tween=this._first;tween;){if(tween._paused||tween instanceof TimelineLite&&tween._hasPausedChild())return!0;tween=tween._next}return!1},p.getChildren=function(nested,tweens,timelines,ignoreBeforeTime){ignoreBeforeTime=ignoreBeforeTime||-9999999999;for(var a=[],tween=this._first,cnt=0;tween;)tween._startTime<ignoreBeforeTime||(tween instanceof TweenLite?tweens!==!1&&(a[cnt++]=tween):(timelines!==!1&&(a[cnt++]=tween),nested!==!1&&(a=a.concat(tween.getChildren(!0,tweens,timelines)),cnt=a.length))),tween=tween._next;return a},p.getTweensOf=function(target,nested){for(var tweens=TweenLite.getTweensOf(target),i=tweens.length,a=[],cnt=0;--i>-1;)(tweens[i].timeline===this||nested&&this._contains(tweens[i]))&&(a[cnt++]=tweens[i]);return a},p._contains=function(tween){for(var tl=tween.timeline;tl;){if(tl===this)return!0;tl=tl.timeline}return!1},p.shiftChildren=function(amount,adjustLabels,ignoreBeforeTime){ignoreBeforeTime=ignoreBeforeTime||0;for(var p,tween=this._first,labels=this._labels;tween;)tween._startTime>=ignoreBeforeTime&&(tween._startTime+=amount),tween=tween._next;if(adjustLabels)for(p in labels)labels[p]>=ignoreBeforeTime&&(labels[p]+=amount);return this._uncache(!0)},p._kill=function(vars,target){if(!vars&&!target)return this._enabled(!1,!1);for(var tweens=target?this.getTweensOf(target):this.getChildren(!0,!0,!1),i=tweens.length,changed=!1;--i>-1;)tweens[i]._kill(vars,target)&&(changed=!0);return changed},p.clear=function(labels){var tweens=this.getChildren(!1,!0,!0),i=tweens.length;for(this._time=this._totalTime=0;--i>-1;)tweens[i]._enabled(!1,!1);return labels!==!1&&(this._labels={}),this._uncache(!0)},p.invalidate=function(){for(var tween=this._first;tween;)tween.invalidate(),tween=tween._next;return this},p._enabled=function(enabled,ignoreTimeline){if(enabled===this._gc)for(var tween=this._first;tween;)tween._enabled(enabled,!0),tween=tween._next;return SimpleTimeline.prototype._enabled.call(this,enabled,ignoreTimeline)},p.duration=function(value){return arguments.length?(0!==this.duration()&&0!==value&&this.timeScale(this._duration/value),this):(this._dirty&&this.totalDuration(),this._duration)},p.totalDuration=function(value){if(!arguments.length){if(this._dirty){for(var prev,end,max=0,tween=this._last,prevStart=999999999999;tween;)prev=tween._prev,tween._dirty&&tween.totalDuration(),
  tween._startTime>prevStart&&this._sortChildren&&!tween._paused?this.add(tween,tween._startTime-tween._delay):prevStart=tween._startTime,tween._startTime<0&&!tween._paused&&(max-=tween._startTime,this._timeline.smoothChildTiming&&(this._startTime+=tween._startTime/this._timeScale),this.shiftChildren(-tween._startTime,!1,-9999999999),prevStart=0),end=tween._startTime+tween._totalDuration/tween._timeScale,end>max&&(max=end),tween=prev;this._duration=this._totalDuration=max,this._dirty=!1}return this._totalDuration}return 0!==this.totalDuration()&&0!==value&&this.timeScale(this._totalDuration/value),this},p.usesFrames=function(){for(var tl=this._timeline;tl._timeline;)tl=tl._timeline;return tl===Animation._rootFramesTimeline},p.rawTime=function(){return this._paused?this._totalTime:(this._timeline.rawTime()-this._startTime)*this._timeScale},TimelineLite},!0),window._gsDefine("TimelineMax",["TimelineLite","TweenLite","easing.Ease"],function(TimelineLite,TweenLite,Ease){var TimelineMax=function(vars){TimelineLite.call(this,vars),this._repeat=this.vars.repeat||0,this._repeatDelay=this.vars.repeatDelay||0,this._cycle=0,this._yoyo=this.vars.yoyo===!0,this._dirty=!0},_tinyNum=1e-10,_blankArray=[],_easeNone=new Ease(null,null,1,0),p=TimelineMax.prototype=new TimelineLite;return p.constructor=TimelineMax,p.kill()._gc=!1,TimelineMax.version="1.11.8",p.invalidate=function(){return this._yoyo=this.vars.yoyo===!0,this._repeat=this.vars.repeat||0,this._repeatDelay=this.vars.repeatDelay||0,this._uncache(!0),TimelineLite.prototype.invalidate.call(this)},p.addCallback=function(callback,position,params,scope){return this.add(TweenLite.delayedCall(0,callback,params,scope),position)},p.removeCallback=function(callback,position){if(callback)if(null==position)this._kill(null,callback);else for(var a=this.getTweensOf(callback,!1),i=a.length,time=this._parseTimeOrLabel(position);--i>-1;)a[i]._startTime===time&&a[i]._enabled(!1,!1);return this},p.tweenTo=function(position,vars){vars=vars||{};var duration,p,t,copy={ease:_easeNone,overwrite:vars.delay?2:1,useFrames:this.usesFrames(),immediateRender:!1};for(p in vars)copy[p]=vars[p];return copy.time=this._parseTimeOrLabel(position),duration=Math.abs(Number(copy.time)-this._time)/this._timeScale||.001,t=new TweenLite(this,duration,copy),copy.onStart=function(){t.target.paused(!0),t.vars.time!==t.target.time()&&duration===t.duration()&&t.duration(Math.abs(t.vars.time-t.target.time())/t.target._timeScale),vars.onStart&&vars.onStart.apply(vars.onStartScope||t,vars.onStartParams||_blankArray)},t},p.tweenFromTo=function(fromPosition,toPosition,vars){vars=vars||{},fromPosition=this._parseTimeOrLabel(fromPosition),vars.startAt={onComplete:this.seek,onCompleteParams:[fromPosition],onCompleteScope:this},vars.immediateRender=vars.immediateRender!==!1;var t=this.tweenTo(toPosition,vars);return t.duration(Math.abs(t.vars.time-fromPosition)/this._timeScale||.001)},p.render=function(time,suppressEvents,force){this._gc&&this._enabled(!0,!1);var tween,isComplete,next,callback,internalForce,cycleDuration,totalDur=this._dirty?this.totalDuration():this._totalDuration,dur=this._duration,prevTime=this._time,prevTotalTime=this._totalTime,prevStart=this._startTime,prevTimeScale=this._timeScale,prevRawPrevTime=this._rawPrevTime,prevPaused=this._paused,prevCycle=this._cycle;if(time>=totalDur?(this._locked||(this._totalTime=totalDur,this._cycle=this._repeat),this._reversed||this._hasPausedChild()||(isComplete=!0,callback="onComplete",0===this._duration&&(0===time||0>prevRawPrevTime||prevRawPrevTime===_tinyNum)&&prevRawPrevTime!==time&&this._first&&(internalForce=!0,prevRawPrevTime>_tinyNum&&(callback="onReverseComplete"))),this._rawPrevTime=this._duration||!suppressEvents||time||this._rawPrevTime===time?time:_tinyNum,this._yoyo&&0!==(1&this._cycle)?this._time=time=0:(this._time=dur,time=dur+1e-4)):1e-7>time?(this._locked||(this._totalTime=this._cycle=0),this._time=0,(0!==prevTime||0===dur&&prevRawPrevTime!==_tinyNum&&(prevRawPrevTime>0||0>time&&prevRawPrevTime>=0)&&!this._locked)&&(callback="onReverseComplete",isComplete=this._reversed),0>time?(this._active=!1,0===dur&&prevRawPrevTime>=0&&this._first&&(internalForce=!0),this._rawPrevTime=time):(this._rawPrevTime=dur||!suppressEvents||time||this._rawPrevTime===time?time:_tinyNum,time=0,this._initted||(internalForce=!0))):(0===dur&&0>prevRawPrevTime&&(internalForce=!0),this._time=this._rawPrevTime=time,this._locked||(this._totalTime=time,0!==this._repeat&&(cycleDuration=dur+this._repeatDelay,this._cycle=this._totalTime/cycleDuration>>0,0!==this._cycle&&this._cycle===this._totalTime/cycleDuration&&this._cycle--,this._time=this._totalTime-this._cycle*cycleDuration,this._yoyo&&0!==(1&this._cycle)&&(this._time=dur-this._time),this._time>dur?(this._time=dur,time=dur+1e-4):this._time<0?this._time=time=0:time=this._time))),this._cycle!==prevCycle&&!this._locked){var backwards=this._yoyo&&0!==(1&prevCycle),wrap=backwards===(this._yoyo&&0!==(1&this._cycle)),recTotalTime=this._totalTime,recCycle=this._cycle,recRawPrevTime=this._rawPrevTime,recTime=this._time;if(this._totalTime=prevCycle*dur,this._cycle<prevCycle?backwards=!backwards:this._totalTime+=dur,this._time=prevTime,this._rawPrevTime=0===dur?prevRawPrevTime-1e-4:prevRawPrevTime,this._cycle=prevCycle,this._locked=!0,prevTime=backwards?0:dur,this.render(prevTime,suppressEvents,0===dur),suppressEvents||this._gc||this.vars.onRepeat&&this.vars.onRepeat.apply(this.vars.onRepeatScope||this,this.vars.onRepeatParams||_blankArray),wrap&&(prevTime=backwards?dur+1e-4:-1e-4,this.render(prevTime,!0,!1)),this._locked=!1,this._paused&&!prevPaused)return;this._time=recTime,this._totalTime=recTotalTime,this._cycle=recCycle,this._rawPrevTime=recRawPrevTime}if(!(this._time!==prevTime&&this._first||force||internalForce))return void(prevTotalTime!==this._totalTime&&this._onUpdate&&(suppressEvents||this._onUpdate.apply(this.vars.onUpdateScope||this,this.vars.onUpdateParams||_blankArray)));if(this._initted||(this._initted=!0),this._active||!this._paused&&this._totalTime!==prevTotalTime&&time>0&&(this._active=!0),0===prevTotalTime&&this.vars.onStart&&0!==this._totalTime&&(suppressEvents||this.vars.onStart.apply(this.vars.onStartScope||this,this.vars.onStartParams||_blankArray)),this._time>=prevTime)for(tween=this._first;tween&&(next=tween._next,!this._paused||prevPaused);)(tween._active||tween._startTime<=this._time&&!tween._paused&&!tween._gc)&&(tween._reversed?tween.render((tween._dirty?tween.totalDuration():tween._totalDuration)-(time-tween._startTime)*tween._timeScale,suppressEvents,force):tween.render((time-tween._startTime)*tween._timeScale,suppressEvents,force)),tween=next;else for(tween=this._last;tween&&(next=tween._prev,!this._paused||prevPaused);)(tween._active||tween._startTime<=prevTime&&!tween._paused&&!tween._gc)&&(tween._reversed?tween.render((tween._dirty?tween.totalDuration():tween._totalDuration)-(time-tween._startTime)*tween._timeScale,suppressEvents,force):tween.render((time-tween._startTime)*tween._timeScale,suppressEvents,force)),tween=next;this._onUpdate&&(suppressEvents||this._onUpdate.apply(this.vars.onUpdateScope||this,this.vars.onUpdateParams||_blankArray)),callback&&(this._locked||this._gc||(prevStart===this._startTime||prevTimeScale!==this._timeScale)&&(0===this._time||totalDur>=this.totalDuration())&&(isComplete&&(this._timeline.autoRemoveChildren&&this._enabled(!1,!1),this._active=!1),!suppressEvents&&this.vars[callback]&&this.vars[callback].apply(this.vars[callback+"Scope"]||this,this.vars[callback+"Params"]||_blankArray)))},p.getActive=function(nested,tweens,timelines){null==nested&&(nested=!0),null==tweens&&(tweens=!0),null==timelines&&(timelines=!1);var i,tween,a=[],all=this.getChildren(nested,tweens,timelines),cnt=0,l=all.length;for(i=0;l>i;i++)tween=all[i],tween.isActive()&&(a[cnt++]=tween);return a},p.getLabelAfter=function(time){time||0!==time&&(time=this._time);var i,labels=this.getLabelsArray(),l=labels.length;for(i=0;l>i;i++)if(labels[i].time>time)return labels[i].name;return null},p.getLabelBefore=function(time){null==time&&(time=this._time);for(var labels=this.getLabelsArray(),i=labels.length;--i>-1;)if(labels[i].time<time)return labels[i].name;return null},p.getLabelsArray=function(){var p,a=[],cnt=0;for(p in this._labels)a[cnt++]={time:this._labels[p],name:p};return a.sort(function(a,b){return a.time-b.time}),a},p.progress=function(value){return arguments.length?this.totalTime(this.duration()*(this._yoyo&&0!==(1&this._cycle)?1-value:value)+this._cycle*(this._duration+this._repeatDelay),!1):this._time/this.duration()},p.totalProgress=function(value){return arguments.length?this.totalTime(this.totalDuration()*value,!1):this._totalTime/this.totalDuration()},p.totalDuration=function(value){return arguments.length?-1===this._repeat?this:this.duration((value-this._repeat*this._repeatDelay)/(this._repeat+1)):(this._dirty&&(TimelineLite.prototype.totalDuration.call(this),this._totalDuration=-1===this._repeat?999999999999:this._duration*(this._repeat+1)+this._repeatDelay*this._repeat),this._totalDuration)},p.time=function(value,suppressEvents){return arguments.length?(this._dirty&&this.totalDuration(),value>this._duration&&(value=this._duration),this._yoyo&&0!==(1&this._cycle)?value=this._duration-value+this._cycle*(this._duration+this._repeatDelay):0!==this._repeat&&(value+=this._cycle*(this._duration+this._repeatDelay)),this.totalTime(value,suppressEvents)):this._time},p.repeat=function(value){return arguments.length?(this._repeat=value,this._uncache(!0)):this._repeat},p.repeatDelay=function(value){return arguments.length?(this._repeatDelay=value,this._uncache(!0)):this._repeatDelay},p.yoyo=function(value){return arguments.length?(this._yoyo=value,this):this._yoyo},p.currentLabel=function(value){return arguments.length?this.seek(value,!0):this.getLabelBefore(this._time+1e-8)},TimelineMax},!0),function(){var _RAD2DEG=180/Math.PI,_r1=[],_r2=[],_r3=[],_corProps={},Segment=function(a,b,c,d){this.a=a,this.b=b,this.c=c,this.d=d,this.da=d-a,this.ca=c-a,this.ba=b-a},_correlate=",x,y,z,left,top,right,bottom,marginTop,marginLeft,marginRight,marginBottom,paddingLeft,paddingTop,paddingRight,paddingBottom,backgroundPosition,backgroundPosition_y,",cubicToQuadratic=function(a,b,c,d){var q1={a:a},q2={},q3={},q4={c:d},mab=(a+b)/2,mbc=(b+c)/2,mcd=(c+d)/2,mabc=(mab+mbc)/2,mbcd=(mbc+mcd)/2,m8=(mbcd-mabc)/8;return q1.b=mab+(a-mab)/4,q2.b=mabc+m8,q1.c=q2.a=(q1.b+q2.b)/2,q2.c=q3.a=(mabc+mbcd)/2,q3.b=mbcd-m8,q4.b=mcd+(d-mcd)/4,q3.c=q4.a=(q3.b+q4.b)/2,[q1,q2,q3,q4]},_calculateControlPoints=function(a,curviness,quad,basic,correlate){var i,p1,p2,p3,seg,m1,m2,mm,cp2,qb,r1,r2,tl,l=a.length-1,ii=0,cp1=a[0].a;for(i=0;l>i;i++)seg=a[ii],p1=seg.a,p2=seg.d,p3=a[ii+1].d,correlate?(r1=_r1[i],r2=_r2[i],tl=(r2+r1)*curviness*.25/(basic?.5:_r3[i]||.5),m1=p2-(p2-p1)*(basic?.5*curviness:0!==r1?tl/r1:0),m2=p2+(p3-p2)*(basic?.5*curviness:0!==r2?tl/r2:0),mm=p2-(m1+((m2-m1)*(3*r1/(r1+r2)+.5)/4||0))):(m1=p2-(p2-p1)*curviness*.5,m2=p2+(p3-p2)*curviness*.5,mm=p2-(m1+m2)/2),m1+=mm,m2+=mm,seg.c=cp2=m1,0!==i?seg.b=cp1:seg.b=cp1=seg.a+.6*(seg.c-seg.a),seg.da=p2-p1,seg.ca=cp2-p1,seg.ba=cp1-p1,quad?(qb=cubicToQuadratic(p1,cp1,cp2,p2),a.splice(ii,1,qb[0],qb[1],qb[2],qb[3]),ii+=4):ii++,cp1=m2;seg=a[ii],seg.b=cp1,seg.c=cp1+.4*(seg.d-cp1),seg.da=seg.d-seg.a,seg.ca=seg.c-seg.a,seg.ba=cp1-seg.a,quad&&(qb=cubicToQuadratic(seg.a,cp1,seg.c,seg.d),a.splice(ii,1,qb[0],qb[1],qb[2],qb[3]))},_parseAnchors=function(values,p,correlate,prepend){var l,i,p1,p2,p3,tmp,a=[];if(prepend)for(values=[prepend].concat(values),i=values.length;--i>-1;)"string"==typeof(tmp=values[i][p])&&"="===tmp.charAt(1)&&(values[i][p]=prepend[p]+Number(tmp.charAt(0)+tmp.substr(2)));if(l=values.length-2,0>l)return a[0]=new Segment(values[0][p],0,0,values[-1>l?0:1][p]),a;for(i=0;l>i;i++)p1=values[i][p],p2=values[i+1][p],a[i]=new Segment(p1,0,0,p2),correlate&&(p3=values[i+2][p],_r1[i]=(_r1[i]||0)+(p2-p1)*(p2-p1),_r2[i]=(_r2[i]||0)+(p3-p2)*(p3-p2));return a[i]=new Segment(values[i][p],0,0,values[i+1][p]),a},bezierThrough=function(values,curviness,quadratic,basic,correlate,prepend){var i,p,a,j,r,l,seamless,last,obj={},props=[],first=prepend||values[0];correlate="string"==typeof correlate?","+correlate+",":_correlate,null==curviness&&(curviness=1);for(p in values[0])props.push(p);if(values.length>1){for(last=values[values.length-1],seamless=!0,i=props.length;--i>-1;)if(p=props[i],Math.abs(first[p]-last[p])>.05){seamless=!1;break}seamless&&(values=values.concat(),prepend&&values.unshift(prepend),values.push(values[1]),prepend=values[values.length-3])}for(_r1.length=_r2.length=_r3.length=0,i=props.length;--i>-1;)p=props[i],_corProps[p]=-1!==correlate.indexOf(","+p+","),obj[p]=_parseAnchors(values,p,_corProps[p],prepend);for(i=_r1.length;--i>-1;)_r1[i]=Math.sqrt(_r1[i]),_r2[i]=Math.sqrt(_r2[i]);if(!basic){for(i=props.length;--i>-1;)if(_corProps[p])for(a=obj[props[i]],l=a.length-1,j=0;l>j;j++)r=a[j+1].da/_r2[j]+a[j].da/_r1[j],_r3[j]=(_r3[j]||0)+r*r;for(i=_r3.length;--i>-1;)_r3[i]=Math.sqrt(_r3[i])}for(i=props.length,j=quadratic?4:1;--i>-1;)p=props[i],a=obj[p],_calculateControlPoints(a,curviness,quadratic,basic,_corProps[p]),seamless&&(a.splice(0,j),a.splice(a.length-j,j));return obj},_parseBezierData=function(values,type,prepend){type=type||"soft";var a,b,c,d,cur,i,j,l,p,cnt,tmp,obj={},inc="cubic"===type?3:2,soft="soft"===type,props=[];if(soft&&prepend&&(values=[prepend].concat(values)),null==values||values.length<inc+1)throw"invalid Bezier data";for(p in values[0])props.push(p);for(i=props.length;--i>-1;){for(p=props[i],obj[p]=cur=[],cnt=0,l=values.length,j=0;l>j;j++)a=null==prepend?values[j][p]:"string"==typeof(tmp=values[j][p])&&"="===tmp.charAt(1)?prepend[p]+Number(tmp.charAt(0)+tmp.substr(2)):Number(tmp),soft&&j>1&&l-1>j&&(cur[cnt++]=(a+cur[cnt-2])/2),cur[cnt++]=a;for(l=cnt-inc+1,cnt=0,j=0;l>j;j+=inc)a=cur[j],b=cur[j+1],c=cur[j+2],d=2===inc?0:cur[j+3],cur[cnt++]=tmp=3===inc?new Segment(a,b,c,d):new Segment(a,(2*b+a)/3,(2*b+c)/3,c);cur.length=cnt}return obj},_addCubicLengths=function(a,steps,resolution){for(var d,d1,s,da,ca,ba,p,i,inv,bez,index,inc=1/resolution,j=a.length;--j>-1;)for(bez=a[j],s=bez.a,da=bez.d-s,ca=bez.c-s,ba=bez.b-s,d=d1=0,i=1;resolution>=i;i++)p=inc*i,inv=1-p,d=d1-(d1=(p*p*da+3*inv*(p*ca+inv*ba))*p),index=j*resolution+i-1,steps[index]=(steps[index]||0)+d*d},_parseLengthData=function(obj,resolution){resolution=resolution>>0||6;var p,i,l,index,a=[],lengths=[],d=0,total=0,threshold=resolution-1,segments=[],curLS=[];for(p in obj)_addCubicLengths(obj[p],a,resolution);for(l=a.length,i=0;l>i;i++)d+=Math.sqrt(a[i]),index=i%resolution,curLS[index]=d,index===threshold&&(total+=d,index=i/resolution>>0,segments[index]=curLS,lengths[index]=total,d=0,curLS=[]);return{length:total,lengths:lengths,segments:segments}},BezierPlugin=window._gsDefine.plugin({propName:"bezier",priority:-1,version:"1.3.2",API:2,global:!0,init:function(target,vars,tween){this._target=target,vars instanceof Array&&(vars={values:vars}),this._func={},this._round={},this._props=[],this._timeRes=null==vars.timeResolution?6:parseInt(vars.timeResolution,10);var p,isFunc,i,j,prepend,values=vars.values||[],first={},second=values[0],autoRotate=vars.autoRotate||tween.vars.orientToBezier;this._autoRotate=autoRotate?autoRotate instanceof Array?autoRotate:[["x","y","rotation",autoRotate===!0?0:Number(autoRotate)||0]]:null;for(p in second)this._props.push(p);for(i=this._props.length;--i>-1;)p=this._props[i],this._overwriteProps.push(p),isFunc=this._func[p]="function"==typeof target[p],first[p]=isFunc?target[p.indexOf("set")||"function"!=typeof target["get"+p.substr(3)]?p:"get"+p.substr(3)]():parseFloat(target[p]),prepend||first[p]!==values[0][p]&&(prepend=first);if(this._beziers="cubic"!==vars.type&&"quadratic"!==vars.type&&"soft"!==vars.type?bezierThrough(values,isNaN(vars.curviness)?1:vars.curviness,!1,"thruBasic"===vars.type,vars.correlate,prepend):_parseBezierData(values,vars.type,first),this._segCount=this._beziers[p].length,this._timeRes){var ld=_parseLengthData(this._beziers,this._timeRes);this._length=ld.length,this._lengths=ld.lengths,this._segments=ld.segments,this._l1=this._li=this._s1=this._si=0,this._l2=this._lengths[0],this._curSeg=this._segments[0],this._s2=this._curSeg[0],this._prec=1/this._curSeg.length}if(autoRotate=this._autoRotate)for(this._initialRotations=[],autoRotate[0]instanceof Array||(this._autoRotate=autoRotate=[autoRotate]),i=autoRotate.length;--i>-1;){for(j=0;3>j;j++)p=autoRotate[i][j],this._func[p]="function"==typeof target[p]?target[p.indexOf("set")||"function"!=typeof target["get"+p.substr(3)]?p:"get"+p.substr(3)]:!1;p=autoRotate[i][2],this._initialRotations[i]=this._func[p]?this._func[p].call(this._target):this._target[p]}return this._startRatio=tween.vars.runBackwards?1:0,!0},set:function(v){var curIndex,inv,i,p,b,t,val,l,lengths,curSeg,segments=this._segCount,func=this._func,target=this._target,notStart=v!==this._startRatio;if(this._timeRes){if(lengths=this._lengths,curSeg=this._curSeg,v*=this._length,i=this._li,v>this._l2&&segments-1>i){for(l=segments-1;l>i&&(this._l2=lengths[++i])<=v;);this._l1=lengths[i-1],this._li=i,this._curSeg=curSeg=this._segments[i],this._s2=curSeg[this._s1=this._si=0]}else if(v<this._l1&&i>0){for(;i>0&&(this._l1=lengths[--i])>=v;);0===i&&v<this._l1?this._l1=0:i++,this._l2=lengths[i],this._li=i,this._curSeg=curSeg=this._segments[i],this._s1=curSeg[(this._si=curSeg.length-1)-1]||0,this._s2=curSeg[this._si]}if(curIndex=i,v-=this._l1,i=this._si,v>this._s2&&i<curSeg.length-1){for(l=curSeg.length-1;l>i&&(this._s2=curSeg[++i])<=v;);this._s1=curSeg[i-1],this._si=i}else if(v<this._s1&&i>0){for(;i>0&&(this._s1=curSeg[--i])>=v;);0===i&&v<this._s1?this._s1=0:i++,this._s2=curSeg[i],this._si=i}t=(i+(v-this._s1)/(this._s2-this._s1))*this._prec}else curIndex=0>v?0:v>=1?segments-1:segments*v>>0,t=(v-curIndex*(1/segments))*segments;for(inv=1-t,i=this._props.length;--i>-1;)p=this._props[i],b=this._beziers[p][curIndex],val=(t*t*b.da+3*inv*(t*b.ca+inv*b.ba))*t+b.a,this._round[p]&&(val=Math.round(val)),func[p]?target[p](val):target[p]=val;if(this._autoRotate){var b2,x1,y1,x2,y2,add,conv,ar=this._autoRotate;for(i=ar.length;--i>-1;)p=ar[i][2],add=ar[i][3]||0,conv=ar[i][4]===!0?1:_RAD2DEG,b=this._beziers[ar[i][0]],b2=this._beziers[ar[i][1]],b&&b2&&(b=b[curIndex],b2=b2[curIndex],x1=b.a+(b.b-b.a)*t,x2=b.b+(b.c-b.b)*t,x1+=(x2-x1)*t,x2+=(b.c+(b.d-b.c)*t-x2)*t,y1=b2.a+(b2.b-b2.a)*t,y2=b2.b+(b2.c-b2.b)*t,y1+=(y2-y1)*t,y2+=(b2.c+(b2.d-b2.c)*t-y2)*t,val=notStart?Math.atan2(y2-y1,x2-x1)*conv+add:this._initialRotations[i],func[p]?target[p](val):target[p]=val)}}}),p=BezierPlugin.prototype;BezierPlugin.bezierThrough=bezierThrough,BezierPlugin.cubicToQuadratic=cubicToQuadratic,BezierPlugin._autoCSS=!0,BezierPlugin.quadraticToCubic=function(a,b,c){return new Segment(a,(2*b+a)/3,(2*b+c)/3,c)},BezierPlugin._cssRegister=function(){var CSSPlugin=window._gsDefine.globals.CSSPlugin;if(CSSPlugin){var _internals=CSSPlugin._internals,_parseToProxy=_internals._parseToProxy,_setPluginRatio=_internals._setPluginRatio,CSSPropTween=_internals.CSSPropTween;_internals._registerComplexSpecialProp("bezier",{parser:function(t,e,prop,cssp,pt,plugin){e instanceof Array&&(e={values:e}),plugin=new BezierPlugin;var i,p,data,values=e.values,l=values.length-1,pluginValues=[],v={};if(0>l)return pt;for(i=0;l>=i;i++)data=_parseToProxy(t,values[i],cssp,pt,plugin,l!==i),pluginValues[i]=data.end;for(p in e)v[p]=e[p];return v.values=pluginValues,pt=new CSSPropTween(t,"bezier",0,0,data.pt,2),pt.data=data,pt.plugin=plugin,pt.setRatio=_setPluginRatio,0===v.autoRotate&&(v.autoRotate=!0),!v.autoRotate||v.autoRotate instanceof Array||(i=v.autoRotate===!0?0:Number(v.autoRotate),v.autoRotate=null!=data.end.left?[["left","top","rotation",i,!1]]:null!=data.end.x?[["x","y","rotation",i,!1]]:!1),v.autoRotate&&(cssp._transform||cssp._enableTransforms(!1),data.autoRotate=cssp._target._gsTransform),plugin._onInitTween(data.proxy,v,cssp._tween),pt}})}},p._roundProps=function(lookup,value){for(var op=this._overwriteProps,i=op.length;--i>-1;)(lookup[op[i]]||lookup.bezier||lookup.bezierThrough)&&(this._round[op[i]]=value)},p._kill=function(lookup){var p,i,a=this._props;for(p in this._beziers)if(p in lookup)for(delete this._beziers[p],delete this._func[p],i=a.length;--i>-1;)a[i]===p&&a.splice(i,1);return this._super._kill.call(this,lookup)}}(),window._gsDefine("plugins.CSSPlugin",["plugins.TweenPlugin","TweenLite"],function(TweenPlugin,TweenLite){var _hasPriority,_suffixMap,_cs,_overwriteProps,CSSPlugin=function(){TweenPlugin.call(this,"css"),this._overwriteProps.length=0,this.setRatio=CSSPlugin.prototype.setRatio},_specialProps={},p=CSSPlugin.prototype=new TweenPlugin("css");p.constructor=CSSPlugin,CSSPlugin.version="1.11.8",CSSPlugin.API=2,CSSPlugin.defaultTransformPerspective=0,CSSPlugin.defaultSkewType="compensated",p="px",CSSPlugin.suffixMap={top:p,right:p,bottom:p,left:p,width:p,height:p,fontSize:p,padding:p,margin:p,perspective:p,lineHeight:""};var _autoRound,_reqSafariFix,_isSafari,_isFirefox,_isSafariLT6,_ieVers,_numExp=/(?:\d|\-\d|\.\d|\-\.\d)+/g,_relNumExp=/(?:\d|\-\d|\.\d|\-\.\d|\+=\d|\-=\d|\+=.\d|\-=\.\d)+/g,_valuesExp=/(?:\+=|\-=|\-|\b)[\d\-\.]+[a-zA-Z0-9]*(?:%|\b)/gi,_NaNExp=/[^\d\-\.]/g,_suffixExp=/(?:\d|\-|\+|=|#|\.)*/g,_opacityExp=/opacity *= *([^)]*)/,_opacityValExp=/opacity:([^;]*)/,_alphaFilterExp=/alpha\(opacity *=.+?\)/i,_rgbhslExp=/^(rgb|hsl)/,_capsExp=/([A-Z])/g,_camelExp=/-([a-z])/gi,_urlExp=/(^(?:url\(\"|url\())|(?:(\"\))$|\)$)/gi,_camelFunc=function(s,g){return g.toUpperCase()},_horizExp=/(?:Left|Right|Width)/i,_ieGetMatrixExp=/(M11|M12|M21|M22)=[\d\-\.e]+/gi,_ieSetMatrixExp=/progid\:DXImageTransform\.Microsoft\.Matrix\(.+?\)/i,_commasOutsideParenExp=/,(?=[^\)]*(?:\(|$))/gi,_DEG2RAD=Math.PI/180,_RAD2DEG=180/Math.PI,_forcePT={},_doc=document,_tempDiv=_doc.createElement("div"),_tempImg=_doc.createElement("img"),_internals=CSSPlugin._internals={_specialProps:_specialProps},_agent=navigator.userAgent,_supportsOpacity=function(){var a,i=_agent.indexOf("Android"),d=_doc.createElement("div");return _isSafari=-1!==_agent.indexOf("Safari")&&-1===_agent.indexOf("Chrome")&&(-1===i||Number(_agent.substr(i+8,1))>3),_isSafariLT6=_isSafari&&Number(_agent.substr(_agent.indexOf("Version/")+8,1))<6,_isFirefox=-1!==_agent.indexOf("Firefox"),/MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(_agent)&&(_ieVers=parseFloat(RegExp.$1)),d.innerHTML="<a style='top:1px;opacity:.55;'>a</a>",a=d.getElementsByTagName("a")[0],a?/^0.55/.test(a.style.opacity):!1}(),_getIEOpacity=function(v){return _opacityExp.test("string"==typeof v?v:(v.currentStyle?v.currentStyle.filter:v.style.filter)||"")?parseFloat(RegExp.$1)/100:1},_log=function(s){window.console&&console.log(s)},_prefixCSS="",_prefix="",_checkPropPrefix=function(p,e){e=e||_tempDiv;var a,i,s=e.style;if(void 0!==s[p])return p;for(p=p.charAt(0).toUpperCase()+p.substr(1),a=["O","Moz","ms","Ms","Webkit"],i=5;--i>-1&&void 0===s[a[i]+p];);return i>=0?(_prefix=3===i?"ms":a[i],_prefixCSS="-"+_prefix.toLowerCase()+"-",_prefix+p):null},_getComputedStyle=_doc.defaultView?_doc.defaultView.getComputedStyle:function(){},_getStyle=CSSPlugin.getStyle=function(t,p,cs,calc,dflt){var rv;return _supportsOpacity||"opacity"!==p?(!calc&&t.style[p]?rv=t.style[p]:(cs=cs||_getComputedStyle(t,null))?rv=cs[p]||cs.getPropertyValue(p)||cs.getPropertyValue(p.replace(_capsExp,"-$1").toLowerCase()):t.currentStyle&&(rv=t.currentStyle[p]),null==dflt||rv&&"none"!==rv&&"auto"!==rv&&"auto auto"!==rv?rv:dflt):_getIEOpacity(t)},_convertToPixels=_internals.convertToPixels=function(t,p,v,sfx,recurse){if("px"===sfx||!sfx)return v;if("auto"===sfx||!v)return 0;var pix,cache,time,horiz=_horizExp.test(p),node=t,style=_tempDiv.style,neg=0>v;if(neg&&(v=-v),"%"===sfx&&-1!==p.indexOf("border"))pix=v/100*(horiz?t.clientWidth:t.clientHeight);else{if(style.cssText="border:0 solid red;position:"+_getStyle(t,"position")+";line-height:0;","%"!==sfx&&node.appendChild)style[horiz?"borderLeftWidth":"borderTopWidth"]=v+sfx;else{if(node=t.parentNode||_doc.body,cache=node._gsCache,time=TweenLite.ticker.frame,cache&&horiz&&cache.time===time)return cache.width*v/100;style[horiz?"width":"height"]=v+sfx}node.appendChild(_tempDiv),pix=parseFloat(_tempDiv[horiz?"offsetWidth":"offsetHeight"]),node.removeChild(_tempDiv),horiz&&"%"===sfx&&CSSPlugin.cacheWidths!==!1&&(cache=node._gsCache=node._gsCache||{},cache.time=time,cache.width=pix/v*100),0!==pix||recurse||(pix=_convertToPixels(t,p,v,sfx,!0))}return neg?-pix:pix},_calculateOffset=_internals.calculateOffset=function(t,p,cs){if("absolute"!==_getStyle(t,"position",cs))return 0;var dim="left"===p?"Left":"Top",v=_getStyle(t,"margin"+dim,cs);return t["offset"+dim]-(_convertToPixels(t,p,parseFloat(v),v.replace(_suffixExp,""))||0)},_getAllStyles=function(t,cs){var i,tr,s={};if(cs=cs||_getComputedStyle(t,null))if(i=cs.length)for(;--i>-1;)s[cs[i].replace(_camelExp,_camelFunc)]=cs.getPropertyValue(cs[i]);else for(i in cs)s[i]=cs[i];else if(cs=t.currentStyle||t.style)for(i in cs)"string"==typeof i&&void 0===s[i]&&(s[i.replace(_camelExp,_camelFunc)]=cs[i]);return _supportsOpacity||(s.opacity=_getIEOpacity(t)),tr=_getTransform(t,cs,!1),s.rotation=tr.rotation,s.skewX=tr.skewX,s.scaleX=tr.scaleX,s.scaleY=tr.scaleY,s.x=tr.x,s.y=tr.y,_supports3D&&(s.z=tr.z,s.rotationX=tr.rotationX,s.rotationY=tr.rotationY,s.scaleZ=tr.scaleZ),s.filters&&delete s.filters,s},_cssDif=function(t,s1,s2,vars,forceLookup){var val,p,mpt,difs={},style=t.style;for(p in s2)"cssText"!==p&&"length"!==p&&isNaN(p)&&(s1[p]!==(val=s2[p])||forceLookup&&forceLookup[p])&&-1===p.indexOf("Origin")&&("number"==typeof val||"string"==typeof val)&&(difs[p]="auto"!==val||"left"!==p&&"top"!==p?""!==val&&"auto"!==val&&"none"!==val||"string"!=typeof s1[p]||""===s1[p].replace(_NaNExp,"")?val:0:_calculateOffset(t,p),void 0!==style[p]&&(mpt=new MiniPropTween(style,p,style[p],mpt)));if(vars)for(p in vars)"className"!==p&&(difs[p]=vars[p]);return{difs:difs,firstMPT:mpt}},_dimensions={width:["Left","Right"],height:["Top","Bottom"]},_margins=["marginLeft","marginRight","marginTop","marginBottom"],_getDimension=function(t,p,cs){var v=parseFloat("width"===p?t.offsetWidth:t.offsetHeight),a=_dimensions[p],i=a.length;for(cs=cs||_getComputedStyle(t,null);--i>-1;)v-=parseFloat(_getStyle(t,"padding"+a[i],cs,!0))||0,v-=parseFloat(_getStyle(t,"border"+a[i]+"Width",cs,!0))||0;return v},_parsePosition=function(v,recObj){(null==v||""===v||"auto"===v||"auto auto"===v)&&(v="0 0");var a=v.split(" "),x=-1!==v.indexOf("left")?"0%":-1!==v.indexOf("right")?"100%":a[0],y=-1!==v.indexOf("top")?"0%":-1!==v.indexOf("bottom")?"100%":a[1];return null==y?y="0":"center"===y&&(y="50%"),("center"===x||isNaN(parseFloat(x))&&-1===(x+"").indexOf("="))&&(x="50%"),recObj&&(recObj.oxp=-1!==x.indexOf("%"),recObj.oyp=-1!==y.indexOf("%"),recObj.oxr="="===x.charAt(1),recObj.oyr="="===y.charAt(1),recObj.ox=parseFloat(x.replace(_NaNExp,"")),recObj.oy=parseFloat(y.replace(_NaNExp,""))),x+" "+y+(a.length>2?" "+a[2]:"")},_parseChange=function(e,b){return"string"==typeof e&&"="===e.charAt(1)?parseInt(e.charAt(0)+"1",10)*parseFloat(e.substr(2)):parseFloat(e)-parseFloat(b)},_parseVal=function(v,d){return null==v?d:"string"==typeof v&&"="===v.charAt(1)?parseInt(v.charAt(0)+"1",10)*Number(v.substr(2))+d:parseFloat(v)},_parseAngle=function(v,d,p,directionalEnd){var cap,split,dif,result,min=1e-6;return null==v?result=d:"number"==typeof v?result=v:(cap=360,split=v.split("_"),dif=Number(split[0].replace(_NaNExp,""))*(-1===v.indexOf("rad")?1:_RAD2DEG)-("="===v.charAt(1)?0:d),split.length&&(directionalEnd&&(directionalEnd[p]=d+dif),-1!==v.indexOf("short")&&(dif%=cap,dif!==dif%(cap/2)&&(dif=0>dif?dif+cap:dif-cap)),-1!==v.indexOf("_cw")&&0>dif?dif=(dif+9999999999*cap)%cap-(dif/cap|0)*cap:-1!==v.indexOf("ccw")&&dif>0&&(dif=(dif-9999999999*cap)%cap-(dif/cap|0)*cap)),result=d+dif),min>result&&result>-min&&(result=0),result},_colorLookup={aqua:[0,255,255],lime:[0,255,0],silver:[192,192,192],black:[0,0,0],maroon:[128,0,0],teal:[0,128,128],blue:[0,0,255],navy:[0,0,128],white:[255,255,255],fuchsia:[255,0,255],olive:[128,128,0],yellow:[255,255,0],orange:[255,165,0],gray:[128,128,128],purple:[128,0,128],green:[0,128,0],red:[255,0,0],pink:[255,192,203],cyan:[0,255,255],transparent:[255,255,255,0]},_hue=function(h,m1,m2){return h=0>h?h+1:h>1?h-1:h,255*(1>6*h?m1+(m2-m1)*h*6:.5>h?m2:2>3*h?m1+(m2-m1)*(2/3-h)*6:m1)+.5|0},_parseColor=function(v){var c1,c2,c3,h,s,l;return v&&""!==v?"number"==typeof v?[v>>16,v>>8&255,255&v]:(","===v.charAt(v.length-1)&&(v=v.substr(0,v.length-1)),_colorLookup[v]?_colorLookup[v]:"#"===v.charAt(0)?(4===v.length&&(c1=v.charAt(1),c2=v.charAt(2),c3=v.charAt(3),v="#"+c1+c1+c2+c2+c3+c3),v=parseInt(v.substr(1),16),[v>>16,v>>8&255,255&v]):"hsl"===v.substr(0,3)?(v=v.match(_numExp),h=Number(v[0])%360/360,s=Number(v[1])/100,l=Number(v[2])/100,c2=.5>=l?l*(s+1):l+s-l*s,c1=2*l-c2,v.length>3&&(v[3]=Number(v[3])),v[0]=_hue(h+1/3,c1,c2),v[1]=_hue(h,c1,c2),v[2]=_hue(h-1/3,c1,c2),v):(v=v.match(_numExp)||_colorLookup.transparent,v[0]=Number(v[0]),v[1]=Number(v[1]),v[2]=Number(v[2]),v.length>3&&(v[3]=Number(v[3])),v)):_colorLookup.black},_colorExp="(?:\\b(?:(?:rgb|rgba|hsl|hsla)\\(.+?\\))|\\B#.+?\\b";for(p in _colorLookup)_colorExp+="|"+p+"\\b";_colorExp=new RegExp(_colorExp+")","gi");var _getFormatter=function(dflt,clr,collapsible,multi){if(null==dflt)return function(v){return v};var formatter,dColor=clr?(dflt.match(_colorExp)||[""])[0]:"",dVals=dflt.split(dColor).join("").match(_valuesExp)||[],pfx=dflt.substr(0,dflt.indexOf(dVals[0])),sfx=")"===dflt.charAt(dflt.length-1)?")":"",delim=-1!==dflt.indexOf(" ")?" ":",",numVals=dVals.length,dSfx=numVals>0?dVals[0].replace(_numExp,""):"";return numVals?formatter=clr?function(v){var color,vals,i,a;if("number"==typeof v)v+=dSfx;else if(multi&&_commasOutsideParenExp.test(v)){for(a=v.replace(_commasOutsideParenExp,"|").split("|"),i=0;i<a.length;i++)a[i]=formatter(a[i]);return a.join(",")}if(color=(v.match(_colorExp)||[dColor])[0],vals=v.split(color).join("").match(_valuesExp)||[],i=vals.length,numVals>i--)for(;++i<numVals;)vals[i]=collapsible?vals[(i-1)/2|0]:dVals[i];return pfx+vals.join(delim)+delim+color+sfx+(-1!==v.indexOf("inset")?" inset":"")}:function(v){var vals,a,i;if("number"==typeof v)v+=dSfx;else if(multi&&_commasOutsideParenExp.test(v)){for(a=v.replace(_commasOutsideParenExp,"|").split("|"),i=0;i<a.length;i++)a[i]=formatter(a[i]);return a.join(",")}if(vals=v.match(_valuesExp)||[],i=vals.length,numVals>i--)for(;++i<numVals;)vals[i]=collapsible?vals[(i-1)/2|0]:dVals[i];return pfx+vals.join(delim)+sfx}:function(v){return v}},_getEdgeParser=function(props){return props=props.split(","),function(t,e,p,cssp,pt,plugin,vars){var i,a=(e+"").split(" ");for(vars={},i=0;4>i;i++)vars[props[i]]=a[i]=a[i]||a[(i-1)/2>>0];return cssp.parse(t,vars,pt,plugin)}},MiniPropTween=(_internals._setPluginRatio=function(v){this.plugin.setRatio(v);for(var val,pt,i,str,d=this.data,proxy=d.proxy,mpt=d.firstMPT,min=1e-6;mpt;)val=proxy[mpt.v],mpt.r?val=Math.round(val):min>val&&val>-min&&(val=0),mpt.t[mpt.p]=val,mpt=mpt._next;if(d.autoRotate&&(d.autoRotate.rotation=proxy.rotation),1===v)for(mpt=d.firstMPT;mpt;){if(pt=mpt.t,pt.type){if(1===pt.type){for(str=pt.xs0+pt.s+pt.xs1,i=1;i<pt.l;i++)str+=pt["xn"+i]+pt["xs"+(i+1)];pt.e=str}}else pt.e=pt.s+pt.xs0;mpt=mpt._next}},function(t,p,v,next,r){this.t=t,this.p=p,this.v=v,this.r=r,next&&(next._prev=this,this._next=next)}),CSSPropTween=(_internals._parseToProxy=function(t,vars,cssp,pt,plugin,shallow){var i,p,xp,mpt,firstPT,bpt=pt,start={},end={},transform=cssp._transform,oldForce=_forcePT;for(cssp._transform=null,_forcePT=vars,pt=firstPT=cssp.parse(t,vars,pt,plugin),_forcePT=oldForce,shallow&&(cssp._transform=transform,bpt&&(bpt._prev=null,bpt._prev&&(bpt._prev._next=null)));pt&&pt!==bpt;){if(pt.type<=1&&(p=pt.p,end[p]=pt.s+pt.c,start[p]=pt.s,shallow||(mpt=new MiniPropTween(pt,"s",p,mpt,pt.r),pt.c=0),1===pt.type))for(i=pt.l;--i>0;)xp="xn"+i,p=pt.p+"_"+xp,end[p]=pt.data[xp],start[p]=pt[xp],shallow||(mpt=new MiniPropTween(pt,xp,p,mpt,pt.rxp[xp]));
  pt=pt._next}return{proxy:start,end:end,firstMPT:mpt,pt:firstPT}},_internals.CSSPropTween=function(t,p,s,c,next,type,n,r,pr,b,e){this.t=t,this.p=p,this.s=s,this.c=c,this.n=n||p,t instanceof CSSPropTween||_overwriteProps.push(this.n),this.r=r,this.type=type||0,pr&&(this.pr=pr,_hasPriority=!0),this.b=void 0===b?s:b,this.e=void 0===e?s+c:e,next&&(this._next=next,next._prev=this)}),_parseComplex=CSSPlugin.parseComplex=function(t,p,b,e,clrs,dflt,pt,pr,plugin,setRatio){b=b||dflt||"",pt=new CSSPropTween(t,p,0,0,pt,setRatio?2:1,null,!1,pr,b,e),e+="";var i,xi,ni,bv,ev,bnums,enums,bn,rgba,temp,cv,str,ba=b.split(", ").join(",").split(" "),ea=e.split(", ").join(",").split(" "),l=ba.length,autoRound=_autoRound!==!1;for((-1!==e.indexOf(",")||-1!==b.indexOf(","))&&(ba=ba.join(" ").replace(_commasOutsideParenExp,", ").split(" "),ea=ea.join(" ").replace(_commasOutsideParenExp,", ").split(" "),l=ba.length),l!==ea.length&&(ba=(dflt||"").split(" "),l=ba.length),pt.plugin=plugin,pt.setRatio=setRatio,i=0;l>i;i++)if(bv=ba[i],ev=ea[i],bn=parseFloat(bv),bn||0===bn)pt.appendXtra("",bn,_parseChange(ev,bn),ev.replace(_relNumExp,""),autoRound&&-1!==ev.indexOf("px"),!0);else if(clrs&&("#"===bv.charAt(0)||_colorLookup[bv]||_rgbhslExp.test(bv)))str=","===ev.charAt(ev.length-1)?"),":")",bv=_parseColor(bv),ev=_parseColor(ev),rgba=bv.length+ev.length>6,rgba&&!_supportsOpacity&&0===ev[3]?(pt["xs"+pt.l]+=pt.l?" transparent":"transparent",pt.e=pt.e.split(ea[i]).join("transparent")):(_supportsOpacity||(rgba=!1),pt.appendXtra(rgba?"rgba(":"rgb(",bv[0],ev[0]-bv[0],",",!0,!0).appendXtra("",bv[1],ev[1]-bv[1],",",!0).appendXtra("",bv[2],ev[2]-bv[2],rgba?",":str,!0),rgba&&(bv=bv.length<4?1:bv[3],pt.appendXtra("",bv,(ev.length<4?1:ev[3])-bv,str,!1)));else if(bnums=bv.match(_numExp)){if(enums=ev.match(_relNumExp),!enums||enums.length!==bnums.length)return pt;for(ni=0,xi=0;xi<bnums.length;xi++)cv=bnums[xi],temp=bv.indexOf(cv,ni),pt.appendXtra(bv.substr(ni,temp-ni),Number(cv),_parseChange(enums[xi],cv),"",autoRound&&"px"===bv.substr(temp+cv.length,2),0===xi),ni=temp+cv.length;pt["xs"+pt.l]+=bv.substr(ni)}else pt["xs"+pt.l]+=pt.l?" "+bv:bv;if(-1!==e.indexOf("=")&&pt.data){for(str=pt.xs0+pt.data.s,i=1;i<pt.l;i++)str+=pt["xs"+i]+pt.data["xn"+i];pt.e=str+pt["xs"+i]}return pt.l||(pt.type=-1,pt.xs0=pt.e),pt.xfirst||pt},i=9;for(p=CSSPropTween.prototype,p.l=p.pr=0;--i>0;)p["xn"+i]=0,p["xs"+i]="";p.xs0="",p._next=p._prev=p.xfirst=p.data=p.plugin=p.setRatio=p.rxp=null,p.appendXtra=function(pfx,s,c,sfx,r,pad){var pt=this,l=pt.l;return pt["xs"+l]+=pad&&l?" "+pfx:pfx||"",c||0===l||pt.plugin?(pt.l++,pt.type=pt.setRatio?2:1,pt["xs"+pt.l]=sfx||"",l>0?(pt.data["xn"+l]=s+c,pt.rxp["xn"+l]=r,pt["xn"+l]=s,pt.plugin||(pt.xfirst=new CSSPropTween(pt,"xn"+l,s,c,pt.xfirst||pt,0,pt.n,r,pt.pr),pt.xfirst.xs0=0),pt):(pt.data={s:s+c},pt.rxp={},pt.s=s,pt.c=c,pt.r=r,pt)):(pt["xs"+l]+=s+(sfx||""),pt)};var SpecialProp=function(p,options){options=options||{},this.p=options.prefix?_checkPropPrefix(p)||p:p,_specialProps[p]=_specialProps[this.p]=this,this.format=options.formatter||_getFormatter(options.defaultValue,options.color,options.collapsible,options.multi),options.parser&&(this.parse=options.parser),this.clrs=options.color,this.multi=options.multi,this.keyword=options.keyword,this.dflt=options.defaultValue,this.pr=options.priority||0},_registerComplexSpecialProp=_internals._registerComplexSpecialProp=function(p,options,defaults){"object"!=typeof options&&(options={parser:defaults});var i,temp,a=p.split(","),d=options.defaultValue;for(defaults=defaults||[d],i=0;i<a.length;i++)options.prefix=0===i&&options.prefix,options.defaultValue=defaults[i]||d,temp=new SpecialProp(a[i],options)},_registerPluginProp=function(p){if(!_specialProps[p]){var pluginName=p.charAt(0).toUpperCase()+p.substr(1)+"Plugin";_registerComplexSpecialProp(p,{parser:function(t,e,p,cssp,pt,plugin,vars){var pluginClass=(window.GreenSockGlobals||window).com.greensock.plugins[pluginName];return pluginClass?(pluginClass._cssRegister(),_specialProps[p].parse(t,e,p,cssp,pt,plugin,vars)):(_log("Error: "+pluginName+" js file not loaded."),pt)}})}};p=SpecialProp.prototype,p.parseComplex=function(t,b,e,pt,plugin,setRatio){var i,ba,ea,l,bi,ei,kwd=this.keyword;if(this.multi&&(_commasOutsideParenExp.test(e)||_commasOutsideParenExp.test(b)?(ba=b.replace(_commasOutsideParenExp,"|").split("|"),ea=e.replace(_commasOutsideParenExp,"|").split("|")):kwd&&(ba=[b],ea=[e])),ea){for(l=ea.length>ba.length?ea.length:ba.length,i=0;l>i;i++)b=ba[i]=ba[i]||this.dflt,e=ea[i]=ea[i]||this.dflt,kwd&&(bi=b.indexOf(kwd),ei=e.indexOf(kwd),bi!==ei&&(e=-1===ei?ea:ba,e[i]+=" "+kwd));b=ba.join(", "),e=ea.join(", ")}return _parseComplex(t,this.p,b,e,this.clrs,this.dflt,pt,this.pr,plugin,setRatio)},p.parse=function(t,e,p,cssp,pt,plugin,vars){return this.parseComplex(t.style,this.format(_getStyle(t,this.p,_cs,!1,this.dflt)),this.format(e),pt,plugin)},CSSPlugin.registerSpecialProp=function(name,onInitTween,priority){_registerComplexSpecialProp(name,{parser:function(t,e,p,cssp,pt,plugin,vars){var rv=new CSSPropTween(t,p,0,0,pt,2,p,!1,priority);return rv.plugin=plugin,rv.setRatio=onInitTween(t,e,cssp._tween,p),rv},priority:priority})};var _transformProps="scaleX,scaleY,scaleZ,x,y,z,skewX,skewY,rotation,rotationX,rotationY,perspective".split(","),_transformProp=_checkPropPrefix("transform"),_transformPropCSS=_prefixCSS+"transform",_transformOriginProp=_checkPropPrefix("transformOrigin"),_supports3D=null!==_checkPropPrefix("perspective"),Transform=_internals.Transform=function(){this.skewY=0},_getTransform=_internals.getTransform=function(t,cs,rec,parse){if(t._gsTransform&&rec&&!parse)return t._gsTransform;var s,m,i,n,dec,scaleX,scaleY,rotation,skewX,difX,difY,difR,difS,tm=rec?t._gsTransform||new Transform:new Transform,invX=tm.scaleX<0,min=2e-5,rnd=1e5,minAngle=179.99,minPI=minAngle*_DEG2RAD,zOrigin=_supports3D?parseFloat(_getStyle(t,_transformOriginProp,cs,!1,"0 0 0").split(" ")[2])||tm.zOrigin||0:0;for(_transformProp?s=_getStyle(t,_transformPropCSS,cs,!0):t.currentStyle&&(s=t.currentStyle.filter.match(_ieGetMatrixExp),s=s&&4===s.length?[s[0].substr(4),Number(s[2].substr(4)),Number(s[1].substr(4)),s[3].substr(4),tm.x||0,tm.y||0].join(","):""),m=(s||"").match(/(?:\-|\b)[\d\-\.e]+\b/gi)||[],i=m.length;--i>-1;)n=Number(m[i]),m[i]=(dec=n-(n|=0))?(dec*rnd+(0>dec?-.5:.5)|0)/rnd+n:n;if(16===m.length){var a13=m[8],a23=m[9],a33=m[10],a14=m[12],a24=m[13],a34=m[14];if(tm.zOrigin&&(a34=-tm.zOrigin,a14=a13*a34-m[12],a24=a23*a34-m[13],a34=a33*a34+tm.zOrigin-m[14]),!rec||parse||null==tm.rotationX){var t1,t2,t3,cos,sin,yFlip,zFlip,a11=m[0],a21=m[1],a31=m[2],a41=m[3],a12=m[4],a22=m[5],a32=m[6],a42=m[7],a43=m[11],angle=Math.atan2(a32,a33),xFlip=-minPI>angle||angle>minPI;tm.rotationX=angle*_RAD2DEG,angle&&(cos=Math.cos(-angle),sin=Math.sin(-angle),t1=a12*cos+a13*sin,t2=a22*cos+a23*sin,t3=a32*cos+a33*sin,a13=a12*-sin+a13*cos,a23=a22*-sin+a23*cos,a33=a32*-sin+a33*cos,a43=a42*-sin+a43*cos,a12=t1,a22=t2,a32=t3),angle=Math.atan2(a13,a11),tm.rotationY=angle*_RAD2DEG,angle&&(yFlip=-minPI>angle||angle>minPI,cos=Math.cos(-angle),sin=Math.sin(-angle),t1=a11*cos-a13*sin,t2=a21*cos-a23*sin,t3=a31*cos-a33*sin,a23=a21*sin+a23*cos,a33=a31*sin+a33*cos,a43=a41*sin+a43*cos,a11=t1,a21=t2,a31=t3),angle=Math.atan2(a21,a22),tm.rotation=angle*_RAD2DEG,angle&&(zFlip=-minPI>angle||angle>minPI,cos=Math.cos(-angle),sin=Math.sin(-angle),a11=a11*cos+a12*sin,t2=a21*cos+a22*sin,a22=a21*-sin+a22*cos,a32=a31*-sin+a32*cos,a21=t2),zFlip&&xFlip?tm.rotation=tm.rotationX=0:zFlip&&yFlip?tm.rotation=tm.rotationY=0:yFlip&&xFlip&&(tm.rotationY=tm.rotationX=0),tm.scaleX=(Math.sqrt(a11*a11+a21*a21)*rnd+.5|0)/rnd,tm.scaleY=(Math.sqrt(a22*a22+a23*a23)*rnd+.5|0)/rnd,tm.scaleZ=(Math.sqrt(a32*a32+a33*a33)*rnd+.5|0)/rnd,tm.skewX=0,tm.perspective=a43?1/(0>a43?-a43:a43):0,tm.x=a14,tm.y=a24,tm.z=a34}}else if((!_supports3D||parse||!m.length||tm.x!==m[4]||tm.y!==m[5]||!tm.rotationX&&!tm.rotationY)&&(void 0===tm.x||"none"!==_getStyle(t,"display",cs))){var k=m.length>=6,a=k?m[0]:1,b=m[1]||0,c=m[2]||0,d=k?m[3]:1;tm.x=m[4]||0,tm.y=m[5]||0,scaleX=Math.sqrt(a*a+b*b),scaleY=Math.sqrt(d*d+c*c),rotation=a||b?Math.atan2(b,a)*_RAD2DEG:tm.rotation||0,skewX=c||d?Math.atan2(c,d)*_RAD2DEG+rotation:tm.skewX||0,difX=scaleX-Math.abs(tm.scaleX||0),difY=scaleY-Math.abs(tm.scaleY||0),Math.abs(skewX)>90&&Math.abs(skewX)<270&&(invX?(scaleX*=-1,skewX+=0>=rotation?180:-180,rotation+=0>=rotation?180:-180):(scaleY*=-1,skewX+=0>=skewX?180:-180)),difR=(rotation-tm.rotation)%180,difS=(skewX-tm.skewX)%180,(void 0===tm.skewX||difX>min||-min>difX||difY>min||-min>difY||difR>-minAngle&&minAngle>difR&&difR*rnd|!1||difS>-minAngle&&minAngle>difS&&difS*rnd|!1)&&(tm.scaleX=scaleX,tm.scaleY=scaleY,tm.rotation=rotation,tm.skewX=skewX),_supports3D&&(tm.rotationX=tm.rotationY=tm.z=0,tm.perspective=parseFloat(CSSPlugin.defaultTransformPerspective)||0,tm.scaleZ=1)}tm.zOrigin=zOrigin;for(i in tm)tm[i]<min&&tm[i]>-min&&(tm[i]=0);return rec&&(t._gsTransform=tm),tm},_setIETransformRatio=function(v){var filters,val,t=this.data,ang=-t.rotation*_DEG2RAD,skew=ang+t.skewX*_DEG2RAD,rnd=1e5,a=(Math.cos(ang)*t.scaleX*rnd|0)/rnd,b=(Math.sin(ang)*t.scaleX*rnd|0)/rnd,c=(Math.sin(skew)*-t.scaleY*rnd|0)/rnd,d=(Math.cos(skew)*t.scaleY*rnd|0)/rnd,style=this.t.style,cs=this.t.currentStyle;if(cs){val=b,b=-c,c=-val,filters=cs.filter,style.filter="";var dx,dy,w=this.t.offsetWidth,h=this.t.offsetHeight,clip="absolute"!==cs.position,m="progid:DXImageTransform.Microsoft.Matrix(M11="+a+", M12="+b+", M21="+c+", M22="+d,ox=t.x,oy=t.y;if(null!=t.ox&&(dx=(t.oxp?w*t.ox*.01:t.ox)-w/2,dy=(t.oyp?h*t.oy*.01:t.oy)-h/2,ox+=dx-(dx*a+dy*b),oy+=dy-(dx*c+dy*d)),clip?(dx=w/2,dy=h/2,m+=", Dx="+(dx-(dx*a+dy*b)+ox)+", Dy="+(dy-(dx*c+dy*d)+oy)+")"):m+=", sizingMethod='auto expand')",-1!==filters.indexOf("DXImageTransform.Microsoft.Matrix(")?style.filter=filters.replace(_ieSetMatrixExp,m):style.filter=m+" "+filters,(0===v||1===v)&&1===a&&0===b&&0===c&&1===d&&(clip&&-1===m.indexOf("Dx=0, Dy=0")||_opacityExp.test(filters)&&100!==parseFloat(RegExp.$1)||-1===filters.indexOf(filters.indexOf("Alpha"))&&style.removeAttribute("filter")),!clip){var marg,prop,dif,mult=8>_ieVers?1:-1;for(dx=t.ieOffsetX||0,dy=t.ieOffsetY||0,t.ieOffsetX=Math.round((w-((0>a?-a:a)*w+(0>b?-b:b)*h))/2+ox),t.ieOffsetY=Math.round((h-((0>d?-d:d)*h+(0>c?-c:c)*w))/2+oy),i=0;4>i;i++)prop=_margins[i],marg=cs[prop],val=-1!==marg.indexOf("px")?parseFloat(marg):_convertToPixels(this.t,prop,parseFloat(marg),marg.replace(_suffixExp,""))||0,dif=val!==t[prop]?2>i?-t.ieOffsetX:-t.ieOffsetY:2>i?dx-t.ieOffsetX:dy-t.ieOffsetY,style[prop]=(t[prop]=Math.round(val-dif*(0===i||2===i?1:mult)))+"px"}}},_set3DTransformRatio=_internals.set3DTransformRatio=function(v){var a11,a12,a13,a14,a21,a22,a23,a24,a31,a32,a33,a34,a41,a42,a43,zOrigin,rnd,cos,sin,t1,t2,t3,t4,t=this.data,style=this.t.style,angle=t.rotation*_DEG2RAD,sx=t.scaleX,sy=t.scaleY,sz=t.scaleZ,perspective=t.perspective;if(_isFirefox){var n=1e-4;n>sx&&sx>-n&&(sx=sz=2e-5),n>sy&&sy>-n&&(sy=sz=2e-5),!perspective||t.z||t.rotationX||t.rotationY||(perspective=0)}if(angle||t.skewX)cos=Math.cos(angle),sin=Math.sin(angle),a11=cos,a21=sin,t.skewX&&(angle-=t.skewX*_DEG2RAD,cos=Math.cos(angle),sin=Math.sin(angle),"simple"===t.skewType&&(t1=Math.tan(t.skewX*_DEG2RAD),t1=Math.sqrt(1+t1*t1),cos*=t1,sin*=t1)),a12=-sin,a22=cos;else{if(!(t.rotationY||t.rotationX||1!==sz||perspective))return void(style[_transformProp]="translate3d("+t.x+"px,"+t.y+"px,"+t.z+"px)"+(1!==sx||1!==sy?" scale("+sx+","+sy+")":""));a11=a22=1,a12=a21=0}a33=1,a13=a14=a23=a24=a31=a32=a34=a41=a42=0,a43=perspective?-1/perspective:0,zOrigin=t.zOrigin,rnd=1e5,angle=t.rotationY*_DEG2RAD,angle&&(cos=Math.cos(angle),sin=Math.sin(angle),a31=a33*-sin,a41=a43*-sin,a13=a11*sin,a23=a21*sin,a33*=cos,a43*=cos,a11*=cos,a21*=cos),angle=t.rotationX*_DEG2RAD,angle&&(cos=Math.cos(angle),sin=Math.sin(angle),t1=a12*cos+a13*sin,t2=a22*cos+a23*sin,t3=a32*cos+a33*sin,t4=a42*cos+a43*sin,a13=a12*-sin+a13*cos,a23=a22*-sin+a23*cos,a33=a32*-sin+a33*cos,a43=a42*-sin+a43*cos,a12=t1,a22=t2,a32=t3,a42=t4),1!==sz&&(a13*=sz,a23*=sz,a33*=sz,a43*=sz),1!==sy&&(a12*=sy,a22*=sy,a32*=sy,a42*=sy),1!==sx&&(a11*=sx,a21*=sx,a31*=sx,a41*=sx),zOrigin&&(a34-=zOrigin,a14=a13*a34,a24=a23*a34,a34=a33*a34+zOrigin),a14=(t1=(a14+=t.x)-(a14|=0))?(t1*rnd+(0>t1?-.5:.5)|0)/rnd+a14:a14,a24=(t1=(a24+=t.y)-(a24|=0))?(t1*rnd+(0>t1?-.5:.5)|0)/rnd+a24:a24,a34=(t1=(a34+=t.z)-(a34|=0))?(t1*rnd+(0>t1?-.5:.5)|0)/rnd+a34:a34,style[_transformProp]="matrix3d("+[(a11*rnd|0)/rnd,(a21*rnd|0)/rnd,(a31*rnd|0)/rnd,(a41*rnd|0)/rnd,(a12*rnd|0)/rnd,(a22*rnd|0)/rnd,(a32*rnd|0)/rnd,(a42*rnd|0)/rnd,(a13*rnd|0)/rnd,(a23*rnd|0)/rnd,(a33*rnd|0)/rnd,(a43*rnd|0)/rnd,a14,a24,a34,perspective?1+-a34/perspective:1].join(",")+")"},_set2DTransformRatio=_internals.set2DTransformRatio=function(v){var ang,skew,rnd,sx,sy,t=this.data,targ=this.t,style=targ.style;return t.rotationX||t.rotationY||t.z||t.force3D?(this.setRatio=_set3DTransformRatio,void _set3DTransformRatio.call(this,v)):void(t.rotation||t.skewX?(ang=t.rotation*_DEG2RAD,skew=ang-t.skewX*_DEG2RAD,rnd=1e5,sx=t.scaleX*rnd,sy=t.scaleY*rnd,style[_transformProp]="matrix("+(Math.cos(ang)*sx|0)/rnd+","+(Math.sin(ang)*sx|0)/rnd+","+(Math.sin(skew)*-sy|0)/rnd+","+(Math.cos(skew)*sy|0)/rnd+","+t.x+","+t.y+")"):style[_transformProp]="matrix("+t.scaleX+",0,0,"+t.scaleY+","+t.x+","+t.y+")")};_registerComplexSpecialProp("transform,scale,scaleX,scaleY,scaleZ,x,y,z,rotation,rotationX,rotationY,rotationZ,skewX,skewY,shortRotation,shortRotationX,shortRotationY,shortRotationZ,transformOrigin,transformPerspective,directionalRotation,parseTransform,force3D,skewType",{parser:function(t,e,p,cssp,pt,plugin,vars){if(cssp._transform)return pt;var m2,skewY,copy,orig,has3D,hasChange,dr,m1=cssp._transform=_getTransform(t,_cs,!0,vars.parseTransform),style=t.style,min=1e-6,i=_transformProps.length,v=vars,endRotations={};if("string"==typeof v.transform&&_transformProp)copy=style.cssText,style[_transformProp]=v.transform,style.display="block",m2=_getTransform(t,null,!1),style.cssText=copy;else if("object"==typeof v){if(m2={scaleX:_parseVal(null!=v.scaleX?v.scaleX:v.scale,m1.scaleX),scaleY:_parseVal(null!=v.scaleY?v.scaleY:v.scale,m1.scaleY),scaleZ:_parseVal(v.scaleZ,m1.scaleZ),x:_parseVal(v.x,m1.x),y:_parseVal(v.y,m1.y),z:_parseVal(v.z,m1.z),perspective:_parseVal(v.transformPerspective,m1.perspective)},dr=v.directionalRotation,null!=dr)if("object"==typeof dr)for(copy in dr)v[copy]=dr[copy];else v.rotation=dr;m2.rotation=_parseAngle("rotation"in v?v.rotation:"shortRotation"in v?v.shortRotation+"_short":"rotationZ"in v?v.rotationZ:m1.rotation,m1.rotation,"rotation",endRotations),_supports3D&&(m2.rotationX=_parseAngle("rotationX"in v?v.rotationX:"shortRotationX"in v?v.shortRotationX+"_short":m1.rotationX||0,m1.rotationX,"rotationX",endRotations),m2.rotationY=_parseAngle("rotationY"in v?v.rotationY:"shortRotationY"in v?v.shortRotationY+"_short":m1.rotationY||0,m1.rotationY,"rotationY",endRotations)),m2.skewX=null==v.skewX?m1.skewX:_parseAngle(v.skewX,m1.skewX),m2.skewY=null==v.skewY?m1.skewY:_parseAngle(v.skewY,m1.skewY),(skewY=m2.skewY-m1.skewY)&&(m2.skewX+=skewY,m2.rotation+=skewY)}for(_supports3D&&null!=v.force3D&&(m1.force3D=v.force3D,hasChange=!0),m1.skewType=v.skewType||m1.skewType||CSSPlugin.defaultSkewType,has3D=m1.force3D||m1.z||m1.rotationX||m1.rotationY||m2.z||m2.rotationX||m2.rotationY||m2.perspective,has3D||null==v.scale||(m2.scaleZ=1);--i>-1;)p=_transformProps[i],orig=m2[p]-m1[p],(orig>min||-min>orig||null!=_forcePT[p])&&(hasChange=!0,pt=new CSSPropTween(m1,p,m1[p],orig,pt),p in endRotations&&(pt.e=endRotations[p]),pt.xs0=0,pt.plugin=plugin,cssp._overwriteProps.push(pt.n));return orig=v.transformOrigin,(orig||_supports3D&&has3D&&m1.zOrigin)&&(_transformProp?(hasChange=!0,p=_transformOriginProp,orig=(orig||_getStyle(t,p,_cs,!1,"50% 50%"))+"",pt=new CSSPropTween(style,p,0,0,pt,-1,"transformOrigin"),pt.b=style[p],pt.plugin=plugin,_supports3D?(copy=m1.zOrigin,orig=orig.split(" "),m1.zOrigin=(orig.length>2&&(0===copy||"0px"!==orig[2])?parseFloat(orig[2]):copy)||0,pt.xs0=pt.e=style[p]=orig[0]+" "+(orig[1]||"50%")+" 0px",pt=new CSSPropTween(m1,"zOrigin",0,0,pt,-1,pt.n),pt.b=copy,pt.xs0=pt.e=m1.zOrigin):pt.xs0=pt.e=style[p]=orig):_parsePosition(orig+"",m1)),hasChange&&(cssp._transformType=has3D||3===this._transformType?3:2),pt},prefix:!0}),_registerComplexSpecialProp("boxShadow",{defaultValue:"0px 0px 0px 0px #999",prefix:!0,color:!0,multi:!0,keyword:"inset"}),_registerComplexSpecialProp("borderRadius",{defaultValue:"0px",parser:function(t,e,p,cssp,pt,plugin){e=this.format(e);var ea1,i,es2,bs2,bs,es,bn,en,w,h,esfx,bsfx,rel,hn,vn,em,props=["borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius"],style=t.style;for(w=parseFloat(t.offsetWidth),h=parseFloat(t.offsetHeight),ea1=e.split(" "),i=0;i<props.length;i++)this.p.indexOf("border")&&(props[i]=_checkPropPrefix(props[i])),bs=bs2=_getStyle(t,props[i],_cs,!1,"0px"),-1!==bs.indexOf(" ")&&(bs2=bs.split(" "),bs=bs2[0],bs2=bs2[1]),es=es2=ea1[i],bn=parseFloat(bs),bsfx=bs.substr((bn+"").length),rel="="===es.charAt(1),rel?(en=parseInt(es.charAt(0)+"1",10),es=es.substr(2),en*=parseFloat(es),esfx=es.substr((en+"").length-(0>en?1:0))||""):(en=parseFloat(es),esfx=es.substr((en+"").length)),""===esfx&&(esfx=_suffixMap[p]||bsfx),esfx!==bsfx&&(hn=_convertToPixels(t,"borderLeft",bn,bsfx),vn=_convertToPixels(t,"borderTop",bn,bsfx),"%"===esfx?(bs=hn/w*100+"%",bs2=vn/h*100+"%"):"em"===esfx?(em=_convertToPixels(t,"borderLeft",1,"em"),bs=hn/em+"em",bs2=vn/em+"em"):(bs=hn+"px",bs2=vn+"px"),rel&&(es=parseFloat(bs)+en+esfx,es2=parseFloat(bs2)+en+esfx)),pt=_parseComplex(style,props[i],bs+" "+bs2,es+" "+es2,!1,"0px",pt);return pt},prefix:!0,formatter:_getFormatter("0px 0px 0px 0px",!1,!0)}),_registerComplexSpecialProp("backgroundPosition",{defaultValue:"0 0",parser:function(t,e,p,cssp,pt,plugin){var ba,ea,i,pct,overlap,src,bp="background-position",cs=_cs||_getComputedStyle(t,null),bs=this.format((cs?_ieVers?cs.getPropertyValue(bp+"-x")+" "+cs.getPropertyValue(bp+"-y"):cs.getPropertyValue(bp):t.currentStyle.backgroundPositionX+" "+t.currentStyle.backgroundPositionY)||"0 0"),es=this.format(e);if(-1!==bs.indexOf("%")!=(-1!==es.indexOf("%"))&&(src=_getStyle(t,"backgroundImage").replace(_urlExp,""),src&&"none"!==src)){for(ba=bs.split(" "),ea=es.split(" "),_tempImg.setAttribute("src",src),i=2;--i>-1;)bs=ba[i],pct=-1!==bs.indexOf("%"),pct!==(-1!==ea[i].indexOf("%"))&&(overlap=0===i?t.offsetWidth-_tempImg.width:t.offsetHeight-_tempImg.height,ba[i]=pct?parseFloat(bs)/100*overlap+"px":parseFloat(bs)/overlap*100+"%");bs=ba.join(" ")}return this.parseComplex(t.style,bs,es,pt,plugin)},formatter:_parsePosition}),_registerComplexSpecialProp("backgroundSize",{defaultValue:"0 0",formatter:_parsePosition}),_registerComplexSpecialProp("perspective",{defaultValue:"0px",prefix:!0}),_registerComplexSpecialProp("perspectiveOrigin",{defaultValue:"50% 50%",prefix:!0}),_registerComplexSpecialProp("transformStyle",{prefix:!0}),_registerComplexSpecialProp("backfaceVisibility",{prefix:!0}),_registerComplexSpecialProp("userSelect",{prefix:!0}),_registerComplexSpecialProp("margin",{parser:_getEdgeParser("marginTop,marginRight,marginBottom,marginLeft")}),_registerComplexSpecialProp("padding",{parser:_getEdgeParser("paddingTop,paddingRight,paddingBottom,paddingLeft")}),_registerComplexSpecialProp("clip",{defaultValue:"rect(0px,0px,0px,0px)",parser:function(t,e,p,cssp,pt,plugin){var b,cs,delim;return 9>_ieVers?(cs=t.currentStyle,delim=8>_ieVers?" ":",",b="rect("+cs.clipTop+delim+cs.clipRight+delim+cs.clipBottom+delim+cs.clipLeft+")",e=this.format(e).split(",").join(delim)):(b=this.format(_getStyle(t,this.p,_cs,!1,this.dflt)),e=this.format(e)),this.parseComplex(t.style,b,e,pt,plugin)}}),_registerComplexSpecialProp("textShadow",{defaultValue:"0px 0px 0px #999",color:!0,multi:!0}),_registerComplexSpecialProp("autoRound,strictUnits",{parser:function(t,e,p,cssp,pt){return pt}}),_registerComplexSpecialProp("border",{defaultValue:"0px solid #000",parser:function(t,e,p,cssp,pt,plugin){return this.parseComplex(t.style,this.format(_getStyle(t,"borderTopWidth",_cs,!1,"0px")+" "+_getStyle(t,"borderTopStyle",_cs,!1,"solid")+" "+_getStyle(t,"borderTopColor",_cs,!1,"#000")),this.format(e),pt,plugin)},color:!0,formatter:function(v){var a=v.split(" ");return a[0]+" "+(a[1]||"solid")+" "+(v.match(_colorExp)||["#000"])[0]}}),_registerComplexSpecialProp("borderWidth",{parser:_getEdgeParser("borderTopWidth,borderRightWidth,borderBottomWidth,borderLeftWidth")}),_registerComplexSpecialProp("float,cssFloat,styleFloat",{parser:function(t,e,p,cssp,pt,plugin){var s=t.style,prop="cssFloat"in s?"cssFloat":"styleFloat";return new CSSPropTween(s,prop,0,0,pt,-1,p,!1,0,s[prop],e)}});var _setIEOpacityRatio=function(v){var skip,t=this.t,filters=t.filter||_getStyle(this.data,"filter"),val=this.s+this.c*v|0;100===val&&(-1===filters.indexOf("atrix(")&&-1===filters.indexOf("radient(")&&-1===filters.indexOf("oader(")?(t.removeAttribute("filter"),skip=!_getStyle(this.data,"filter")):(t.filter=filters.replace(_alphaFilterExp,""),skip=!0)),skip||(this.xn1&&(t.filter=filters=filters||"alpha(opacity="+val+")"),-1===filters.indexOf("opacity")?0===val&&this.xn1||(t.filter=filters+" alpha(opacity="+val+")"):t.filter=filters.replace(_opacityExp,"opacity="+val))};_registerComplexSpecialProp("opacity,alpha,autoAlpha",{defaultValue:"1",parser:function(t,e,p,cssp,pt,plugin){var b=parseFloat(_getStyle(t,"opacity",_cs,!1,"1")),style=t.style,isAutoAlpha="autoAlpha"===p;return"string"==typeof e&&"="===e.charAt(1)&&(e=("-"===e.charAt(0)?-1:1)*parseFloat(e.substr(2))+b),isAutoAlpha&&1===b&&"hidden"===_getStyle(t,"visibility",_cs)&&0!==e&&(b=0),_supportsOpacity?pt=new CSSPropTween(style,"opacity",b,e-b,pt):(pt=new CSSPropTween(style,"opacity",100*b,100*(e-b),pt),pt.xn1=isAutoAlpha?1:0,style.zoom=1,pt.type=2,pt.b="alpha(opacity="+pt.s+")",pt.e="alpha(opacity="+(pt.s+pt.c)+")",pt.data=t,pt.plugin=plugin,pt.setRatio=_setIEOpacityRatio),isAutoAlpha&&(pt=new CSSPropTween(style,"visibility",0,0,pt,-1,null,!1,0,0!==b?"inherit":"hidden",0===e?"hidden":"inherit"),pt.xs0="inherit",cssp._overwriteProps.push(pt.n),cssp._overwriteProps.push(p)),pt}});var _removeProp=function(s,p){p&&(s.removeProperty?("ms"===p.substr(0,2)&&(p="M"+p.substr(1)),s.removeProperty(p.replace(_capsExp,"-$1").toLowerCase())):s.removeAttribute(p))},_setClassNameRatio=function(v){if(this.t._gsClassPT=this,1===v||0===v){this.t.className=0===v?this.b:this.e;for(var mpt=this.data,s=this.t.style;mpt;)mpt.v?s[mpt.p]=mpt.v:_removeProp(s,mpt.p),mpt=mpt._next;1===v&&this.t._gsClassPT===this&&(this.t._gsClassPT=null)}else this.t.className!==this.e&&(this.t.className=this.e)};_registerComplexSpecialProp("className",{parser:function(t,e,p,cssp,pt,plugin,vars){var difData,bs,cnpt,cnptLookup,mpt,b=t.className,cssText=t.style.cssText;if(pt=cssp._classNamePT=new CSSPropTween(t,p,0,0,pt,2),pt.setRatio=_setClassNameRatio,pt.pr=-11,_hasPriority=!0,pt.b=b,bs=_getAllStyles(t,_cs),cnpt=t._gsClassPT){for(cnptLookup={},mpt=cnpt.data;mpt;)cnptLookup[mpt.p]=1,mpt=mpt._next;cnpt.setRatio(1)}return t._gsClassPT=pt,pt.e="="!==e.charAt(1)?e:b.replace(new RegExp("\\s*\\b"+e.substr(2)+"\\b"),"")+("+"===e.charAt(0)?" "+e.substr(2):""),cssp._tween._duration&&(t.className=pt.e,difData=_cssDif(t,bs,_getAllStyles(t),vars,cnptLookup),t.className=b,pt.data=difData.firstMPT,t.style.cssText=cssText,pt=pt.xfirst=cssp.parse(t,difData.difs,pt,plugin)),pt}});var _setClearPropsRatio=function(v){if((1===v||0===v)&&this.data._totalTime===this.data._totalDuration&&"isFromStart"!==this.data.data){var a,p,i,clearTransform,s=this.t.style,transformParse=_specialProps.transform.parse;if("all"===this.e)s.cssText="",clearTransform=!0;else for(a=this.e.split(","),i=a.length;--i>-1;)p=a[i],_specialProps[p]&&(_specialProps[p].parse===transformParse?clearTransform=!0:p="transformOrigin"===p?_transformOriginProp:_specialProps[p].p),_removeProp(s,p);clearTransform&&(_removeProp(s,_transformProp),this.t._gsTransform&&delete this.t._gsTransform)}};for(_registerComplexSpecialProp("clearProps",{parser:function(t,e,p,cssp,pt){return pt=new CSSPropTween(t,p,0,0,pt,2),pt.setRatio=_setClearPropsRatio,pt.e=e,pt.pr=-10,pt.data=cssp._tween,_hasPriority=!0,pt}}),p="bezier,throwProps,physicsProps,physics2D".split(","),i=p.length;i--;)_registerPluginProp(p[i]);p=CSSPlugin.prototype,p._firstPT=null,p._onInitTween=function(target,vars,tween){if(!target.nodeType)return!1;this._target=target,this._tween=tween,this._vars=vars,_autoRound=vars.autoRound,_hasPriority=!1,_suffixMap=vars.suffixMap||CSSPlugin.suffixMap,_cs=_getComputedStyle(target,""),_overwriteProps=this._overwriteProps;var v,pt,pt2,first,last,next,zIndex,tpt,threeD,style=target.style;if(_reqSafariFix&&""===style.zIndex&&(v=_getStyle(target,"zIndex",_cs),("auto"===v||""===v)&&(style.zIndex=0)),"string"==typeof vars&&(first=style.cssText,v=_getAllStyles(target,_cs),style.cssText=first+";"+vars,v=_cssDif(target,v,_getAllStyles(target)).difs,!_supportsOpacity&&_opacityValExp.test(vars)&&(v.opacity=parseFloat(RegExp.$1)),vars=v,style.cssText=first),this._firstPT=pt=this.parse(target,vars,null),this._transformType){for(threeD=3===this._transformType,_transformProp?_isSafari&&(_reqSafariFix=!0,""===style.zIndex&&(zIndex=_getStyle(target,"zIndex",_cs),("auto"===zIndex||""===zIndex)&&(style.zIndex=0)),_isSafariLT6&&(style.WebkitBackfaceVisibility=this._vars.WebkitBackfaceVisibility||(threeD?"visible":"hidden"))):style.zoom=1,pt2=pt;pt2&&pt2._next;)pt2=pt2._next;tpt=new CSSPropTween(target,"transform",0,0,null,2),this._linkCSSP(tpt,null,pt2),tpt.setRatio=threeD&&_supports3D?_set3DTransformRatio:_transformProp?_set2DTransformRatio:_setIETransformRatio,tpt.data=this._transform||_getTransform(target,_cs,!0),_overwriteProps.pop()}if(_hasPriority){for(;pt;){for(next=pt._next,pt2=first;pt2&&pt2.pr>pt.pr;)pt2=pt2._next;(pt._prev=pt2?pt2._prev:last)?pt._prev._next=pt:first=pt,(pt._next=pt2)?pt2._prev=pt:last=pt,pt=next}this._firstPT=first}return!0},p.parse=function(target,vars,pt,plugin){var p,sp,bn,en,bs,es,bsfx,esfx,isStr,rel,style=target.style;for(p in vars)es=vars[p],sp=_specialProps[p],sp?pt=sp.parse(target,es,p,this,pt,plugin,vars):(bs=_getStyle(target,p,_cs)+"",isStr="string"==typeof es,"color"===p||"fill"===p||"stroke"===p||-1!==p.indexOf("Color")||isStr&&_rgbhslExp.test(es)?(isStr||(es=_parseColor(es),es=(es.length>3?"rgba(":"rgb(")+es.join(",")+")"),pt=_parseComplex(style,p,bs,es,!0,"transparent",pt,0,plugin)):!isStr||-1===es.indexOf(" ")&&-1===es.indexOf(",")?(bn=parseFloat(bs),bsfx=bn||0===bn?bs.substr((bn+"").length):"",(""===bs||"auto"===bs)&&("width"===p||"height"===p?(bn=_getDimension(target,p,_cs),bsfx="px"):"left"===p||"top"===p?(bn=_calculateOffset(target,p,_cs),bsfx="px"):(bn="opacity"!==p?0:1,bsfx="")),rel=isStr&&"="===es.charAt(1),rel?(en=parseInt(es.charAt(0)+"1",10),es=es.substr(2),en*=parseFloat(es),esfx=es.replace(_suffixExp,"")):(en=parseFloat(es),esfx=isStr?es.substr((en+"").length)||"":""),""===esfx&&(esfx=p in _suffixMap?_suffixMap[p]:bsfx),es=en||0===en?(rel?en+bn:en)+esfx:vars[p],bsfx!==esfx&&""!==esfx&&(en||0===en)&&bn&&(bn=_convertToPixels(target,p,bn,bsfx),"%"===esfx?(bn/=_convertToPixels(target,p,100,"%")/100,vars.strictUnits!==!0&&(bs=bn+"%")):"em"===esfx?bn/=_convertToPixels(target,p,1,"em"):"px"!==esfx&&(en=_convertToPixels(target,p,en,esfx),esfx="px"),rel&&(en||0===en)&&(es=en+bn+esfx)),rel&&(en+=bn),!bn&&0!==bn||!en&&0!==en?void 0!==style[p]&&(es||es+""!="NaN"&&null!=es)?(pt=new CSSPropTween(style,p,en||bn||0,0,pt,-1,p,!1,0,bs,es),pt.xs0="none"!==es||"display"!==p&&-1===p.indexOf("Style")?es:bs):_log("invalid "+p+" tween value: "+vars[p]):(pt=new CSSPropTween(style,p,bn,en-bn,pt,0,p,_autoRound!==!1&&("px"===esfx||"zIndex"===p),0,bs,es),pt.xs0=esfx)):pt=_parseComplex(style,p,bs,es,!0,null,pt,0,plugin)),plugin&&pt&&!pt.plugin&&(pt.plugin=plugin);return pt},p.setRatio=function(v){var val,str,i,pt=this._firstPT,min=1e-6;if(1!==v||this._tween._time!==this._tween._duration&&0!==this._tween._time)if(v||this._tween._time!==this._tween._duration&&0!==this._tween._time||this._tween._rawPrevTime===-1e-6)for(;pt;){if(val=pt.c*v+pt.s,pt.r?val=Math.round(val):min>val&&val>-min&&(val=0),pt.type)if(1===pt.type)if(i=pt.l,2===i)pt.t[pt.p]=pt.xs0+val+pt.xs1+pt.xn1+pt.xs2;else if(3===i)pt.t[pt.p]=pt.xs0+val+pt.xs1+pt.xn1+pt.xs2+pt.xn2+pt.xs3;else if(4===i)pt.t[pt.p]=pt.xs0+val+pt.xs1+pt.xn1+pt.xs2+pt.xn2+pt.xs3+pt.xn3+pt.xs4;else if(5===i)pt.t[pt.p]=pt.xs0+val+pt.xs1+pt.xn1+pt.xs2+pt.xn2+pt.xs3+pt.xn3+pt.xs4+pt.xn4+pt.xs5;else{for(str=pt.xs0+val+pt.xs1,i=1;i<pt.l;i++)str+=pt["xn"+i]+pt["xs"+(i+1)];pt.t[pt.p]=str}else-1===pt.type?pt.t[pt.p]=pt.xs0:pt.setRatio&&pt.setRatio(v);else pt.t[pt.p]=val+pt.xs0;pt=pt._next}else for(;pt;)2!==pt.type?pt.t[pt.p]=pt.b:pt.setRatio(v),pt=pt._next;else for(;pt;)2!==pt.type?pt.t[pt.p]=pt.e:pt.setRatio(v),pt=pt._next},p._enableTransforms=function(threeD){this._transformType=threeD||3===this._transformType?3:2,this._transform=this._transform||_getTransform(this._target,_cs,!0)},p._linkCSSP=function(pt,next,prev,remove){return pt&&(next&&(next._prev=pt),pt._next&&(pt._next._prev=pt._prev),pt._prev?pt._prev._next=pt._next:this._firstPT===pt&&(this._firstPT=pt._next,remove=!0),prev?prev._next=pt:remove||null!==this._firstPT||(this._firstPT=pt),pt._next=next,pt._prev=prev),pt},p._kill=function(lookup){var pt,p,xfirst,copy=lookup;if(lookup.autoAlpha||lookup.alpha){copy={};for(p in lookup)copy[p]=lookup[p];copy.opacity=1,copy.autoAlpha&&(copy.visibility=1)}return lookup.className&&(pt=this._classNamePT)&&(xfirst=pt.xfirst,xfirst&&xfirst._prev?this._linkCSSP(xfirst._prev,pt._next,xfirst._prev._prev):xfirst===this._firstPT&&(this._firstPT=pt._next),pt._next&&this._linkCSSP(pt._next,pt._next._next,xfirst._prev),this._classNamePT=null),TweenPlugin.prototype._kill.call(this,copy)};var _getChildStyles=function(e,props,targets){var children,i,child,type;if(e.slice)for(i=e.length;--i>-1;)_getChildStyles(e[i],props,targets);else for(children=e.childNodes,i=children.length;--i>-1;)child=children[i],type=child.type,child.style&&(props.push(_getAllStyles(child)),targets&&targets.push(child)),1!==type&&9!==type&&11!==type||!child.childNodes.length||_getChildStyles(child,props,targets)};return CSSPlugin.cascadeTo=function(target,duration,vars){var i,difs,p,tween=TweenLite.to(target,duration,vars),results=[tween],b=[],e=[],targets=[],_reservedProps=TweenLite._internals.reservedProps;for(target=tween._targets||tween.target,_getChildStyles(target,b,targets),tween.render(duration,!0),_getChildStyles(target,e),tween.render(0,!0),tween._enabled(!0),i=targets.length;--i>-1;)if(difs=_cssDif(targets[i],b[i],e[i]),difs.firstMPT){difs=difs.difs;for(p in vars)_reservedProps[p]&&(difs[p]=vars[p]);results.push(TweenLite.to(targets[i],duration,difs))}return results},TweenPlugin.activate([CSSPlugin]),CSSPlugin},!0),function(){var RoundPropsPlugin=window._gsDefine.plugin({propName:"roundProps",priority:-1,API:2,init:function(target,value,tween){return this._tween=tween,!0}}),p=RoundPropsPlugin.prototype;p._onInitAllProps=function(){for(var prop,pt,next,tween=this._tween,rp=tween.vars.roundProps instanceof Array?tween.vars.roundProps:tween.vars.roundProps.split(","),i=rp.length,lookup={},rpt=tween._propLookup.roundProps;--i>-1;)lookup[rp[i]]=1;for(i=rp.length;--i>-1;)for(prop=rp[i],pt=tween._firstPT;pt;)next=pt._next,pt.pg?pt.t._roundProps(lookup,!0):pt.n===prop&&(this._add(pt.t,prop,pt.s,pt.c),next&&(next._prev=pt._prev),pt._prev?pt._prev._next=next:tween._firstPT===pt&&(tween._firstPT=next),pt._next=pt._prev=null,tween._propLookup[prop]=rpt),pt=next;return!1},p._add=function(target,p,s,c){this._addTween(target,p,s,s+c,p,!0),this._overwriteProps.push(p)}}(),window._gsDefine.plugin({propName:"attr",API:2,version:"0.3.0",init:function(target,value,tween){var p,start,end;if("function"!=typeof target.setAttribute)return!1;this._target=target,this._proxy={},this._start={},this._end={},this._endRatio=tween.vars.runBackwards?0:1;
  for(p in value)this._start[p]=this._proxy[p]=start=target.getAttribute(p),this._end[p]=end=value[p],this._addTween(this._proxy,p,parseFloat(start),end,p),this._overwriteProps.push(p);return!0},set:function(ratio){this._super.setRatio.call(this,ratio);for(var p,props=this._overwriteProps,i=props.length,lookup=0!==ratio&&1!==ratio?this._proxy:ratio===this._endRatio?this._end:this._start;--i>-1;)p=props[i],this._target.setAttribute(p,lookup[p]+"")}}),window._gsDefine.plugin({propName:"directionalRotation",API:2,version:"0.2.0",init:function(target,value,tween){"object"!=typeof value&&(value={rotation:value}),this.finals={};var p,v,start,end,dif,split,cap=value.useRadians===!0?2*Math.PI:360,min=1e-6;for(p in value)"useRadians"!==p&&(split=(value[p]+"").split("_"),v=split[0],start=parseFloat("function"!=typeof target[p]?target[p]:target[p.indexOf("set")||"function"!=typeof target["get"+p.substr(3)]?p:"get"+p.substr(3)]()),end=this.finals[p]="string"==typeof v&&"="===v.charAt(1)?start+parseInt(v.charAt(0)+"1",10)*Number(v.substr(2)):Number(v)||0,dif=end-start,split.length&&(v=split.join("_"),-1!==v.indexOf("short")&&(dif%=cap,dif!==dif%(cap/2)&&(dif=0>dif?dif+cap:dif-cap)),-1!==v.indexOf("_cw")&&0>dif?dif=(dif+9999999999*cap)%cap-(dif/cap|0)*cap:-1!==v.indexOf("ccw")&&dif>0&&(dif=(dif-9999999999*cap)%cap-(dif/cap|0)*cap)),(dif>min||-min>dif)&&(this._addTween(target,p,start,start+dif,p),this._overwriteProps.push(p)));return!0},set:function(ratio){var pt;if(1!==ratio)this._super.setRatio.call(this,ratio);else for(pt=this._firstPT;pt;)pt.f?pt.t[pt.p](this.finals[pt.p]):pt.t[pt.p]=this.finals[pt.p],pt=pt._next}})._autoCSS=!0,window._gsDefine("easing.Back",["easing.Ease"],function(Ease){var SteppedEase,RoughEase,_createElastic,w=window.GreenSockGlobals||window,gs=w.com.greensock,_2PI=2*Math.PI,_HALF_PI=Math.PI/2,_class=gs._class,_create=function(n,f){var C=_class("easing."+n,function(){},!0),p=C.prototype=new Ease;return p.constructor=C,p.getRatio=f,C},_easeReg=Ease.register||function(){},_wrap=function(name,EaseOut,EaseIn,EaseInOut,aliases){var C=_class("easing."+name,{easeOut:new EaseOut,easeIn:new EaseIn,easeInOut:new EaseInOut},!0);return _easeReg(C,name),C},EasePoint=function(time,value,next){this.t=time,this.v=value,next&&(this.next=next,next.prev=this,this.c=next.v-value,this.gap=next.t-time)},_createBack=function(n,f){var C=_class("easing."+n,function(overshoot){this._p1=overshoot||0===overshoot?overshoot:1.70158,this._p2=1.525*this._p1},!0),p=C.prototype=new Ease;return p.constructor=C,p.getRatio=f,p.config=function(overshoot){return new C(overshoot)},C},Back=_wrap("Back",_createBack("BackOut",function(p){return(p-=1)*p*((this._p1+1)*p+this._p1)+1}),_createBack("BackIn",function(p){return p*p*((this._p1+1)*p-this._p1)}),_createBack("BackInOut",function(p){return(p*=2)<1?.5*p*p*((this._p2+1)*p-this._p2):.5*((p-=2)*p*((this._p2+1)*p+this._p2)+2)})),SlowMo=_class("easing.SlowMo",function(linearRatio,power,yoyoMode){power=power||0===power?power:.7,null==linearRatio?linearRatio=.7:linearRatio>1&&(linearRatio=1),this._p=1!==linearRatio?power:0,this._p1=(1-linearRatio)/2,this._p2=linearRatio,this._p3=this._p1+this._p2,this._calcEnd=yoyoMode===!0},!0),p=SlowMo.prototype=new Ease;return p.constructor=SlowMo,p.getRatio=function(p){var r=p+(.5-p)*this._p;return p<this._p1?this._calcEnd?1-(p=1-p/this._p1)*p:r-(p=1-p/this._p1)*p*p*p*r:p>this._p3?this._calcEnd?1-(p=(p-this._p3)/this._p1)*p:r+(p-r)*(p=(p-this._p3)/this._p1)*p*p*p:this._calcEnd?1:r},SlowMo.ease=new SlowMo(.7,.7),p.config=SlowMo.config=function(linearRatio,power,yoyoMode){return new SlowMo(linearRatio,power,yoyoMode)},SteppedEase=_class("easing.SteppedEase",function(steps){steps=steps||1,this._p1=1/steps,this._p2=steps+1},!0),p=SteppedEase.prototype=new Ease,p.constructor=SteppedEase,p.getRatio=function(p){return 0>p?p=0:p>=1&&(p=.999999999),(this._p2*p>>0)*this._p1},p.config=SteppedEase.config=function(steps){return new SteppedEase(steps)},RoughEase=_class("easing.RoughEase",function(vars){vars=vars||{};for(var x,y,bump,invX,obj,pnt,taper=vars.taper||"none",a=[],cnt=0,points=0|(vars.points||20),i=points,randomize=vars.randomize!==!1,clamp=vars.clamp===!0,template=vars.template instanceof Ease?vars.template:null,strength="number"==typeof vars.strength?.4*vars.strength:.4;--i>-1;)x=randomize?Math.random():1/points*i,y=template?template.getRatio(x):x,"none"===taper?bump=strength:"out"===taper?(invX=1-x,bump=invX*invX*strength):"in"===taper?bump=x*x*strength:.5>x?(invX=2*x,bump=invX*invX*.5*strength):(invX=2*(1-x),bump=invX*invX*.5*strength),randomize?y+=Math.random()*bump-.5*bump:i%2?y+=.5*bump:y-=.5*bump,clamp&&(y>1?y=1:0>y&&(y=0)),a[cnt++]={x:x,y:y};for(a.sort(function(a,b){return a.x-b.x}),pnt=new EasePoint(1,1,null),i=points;--i>-1;)obj=a[i],pnt=new EasePoint(obj.x,obj.y,pnt);this._prev=new EasePoint(0,0,0!==pnt.t?pnt:pnt.next)},!0),p=RoughEase.prototype=new Ease,p.constructor=RoughEase,p.getRatio=function(p){var pnt=this._prev;if(p>pnt.t){for(;pnt.next&&p>=pnt.t;)pnt=pnt.next;pnt=pnt.prev}else for(;pnt.prev&&p<=pnt.t;)pnt=pnt.prev;return this._prev=pnt,pnt.v+(p-pnt.t)/pnt.gap*pnt.c},p.config=function(vars){return new RoughEase(vars)},RoughEase.ease=new RoughEase,_wrap("Bounce",_create("BounceOut",function(p){return 1/2.75>p?7.5625*p*p:2/2.75>p?7.5625*(p-=1.5/2.75)*p+.75:2.5/2.75>p?7.5625*(p-=2.25/2.75)*p+.9375:7.5625*(p-=2.625/2.75)*p+.984375}),_create("BounceIn",function(p){return(p=1-p)<1/2.75?1-7.5625*p*p:2/2.75>p?1-(7.5625*(p-=1.5/2.75)*p+.75):2.5/2.75>p?1-(7.5625*(p-=2.25/2.75)*p+.9375):1-(7.5625*(p-=2.625/2.75)*p+.984375)}),_create("BounceInOut",function(p){var invert=.5>p;return p=invert?1-2*p:2*p-1,p=1/2.75>p?7.5625*p*p:2/2.75>p?7.5625*(p-=1.5/2.75)*p+.75:2.5/2.75>p?7.5625*(p-=2.25/2.75)*p+.9375:7.5625*(p-=2.625/2.75)*p+.984375,invert?.5*(1-p):.5*p+.5})),_wrap("Circ",_create("CircOut",function(p){return Math.sqrt(1-(p-=1)*p)}),_create("CircIn",function(p){return-(Math.sqrt(1-p*p)-1)}),_create("CircInOut",function(p){return(p*=2)<1?-.5*(Math.sqrt(1-p*p)-1):.5*(Math.sqrt(1-(p-=2)*p)+1)})),_createElastic=function(n,f,def){var C=_class("easing."+n,function(amplitude,period){this._p1=amplitude||1,this._p2=period||def,this._p3=this._p2/_2PI*(Math.asin(1/this._p1)||0)},!0),p=C.prototype=new Ease;return p.constructor=C,p.getRatio=f,p.config=function(amplitude,period){return new C(amplitude,period)},C},_wrap("Elastic",_createElastic("ElasticOut",function(p){return this._p1*Math.pow(2,-10*p)*Math.sin((p-this._p3)*_2PI/this._p2)+1},.3),_createElastic("ElasticIn",function(p){return-(this._p1*Math.pow(2,10*(p-=1))*Math.sin((p-this._p3)*_2PI/this._p2))},.3),_createElastic("ElasticInOut",function(p){return(p*=2)<1?-.5*(this._p1*Math.pow(2,10*(p-=1))*Math.sin((p-this._p3)*_2PI/this._p2)):this._p1*Math.pow(2,-10*(p-=1))*Math.sin((p-this._p3)*_2PI/this._p2)*.5+1},.45)),_wrap("Expo",_create("ExpoOut",function(p){return 1-Math.pow(2,-10*p)}),_create("ExpoIn",function(p){return Math.pow(2,10*(p-1))-.001}),_create("ExpoInOut",function(p){return(p*=2)<1?.5*Math.pow(2,10*(p-1)):.5*(2-Math.pow(2,-10*(p-1)))})),_wrap("Sine",_create("SineOut",function(p){return Math.sin(p*_HALF_PI)}),_create("SineIn",function(p){return-Math.cos(p*_HALF_PI)+1}),_create("SineInOut",function(p){return-.5*(Math.cos(Math.PI*p)-1)})),_class("easing.EaseLookup",{find:function(s){return Ease.map[s]}},!0),_easeReg(w.SlowMo,"SlowMo","ease,"),_easeReg(RoughEase,"RoughEase","ease,"),_easeReg(SteppedEase,"SteppedEase","ease,"),Back},!0)}),function(window){"use strict";var _globals=window.GreenSockGlobals||window;if(!_globals.TweenLite){var a,i,p,_ticker,_tickerActive,_namespace=function(ns){var i,a=ns.split("."),p=_globals;for(i=0;i<a.length;i++)p[a[i]]=p=p[a[i]]||{};return p},gs=_namespace("com.greensock"),_tinyNum=1e-10,_slice=[].slice,_emptyFunc=function(){},_isArray=function(){var toString=Object.prototype.toString,array=toString.call([]);return function(obj){return null!=obj&&(obj instanceof Array||"object"==typeof obj&&!!obj.push&&toString.call(obj)===array)}}(),_defLookup={},Definition=function(ns,dependencies,func,global){this.sc=_defLookup[ns]?_defLookup[ns].sc:[],_defLookup[ns]=this,this.gsClass=null,this.func=func;var _classes=[];this.check=function(init){for(var cur,a,n,cl,i=dependencies.length,missing=i;--i>-1;)(cur=_defLookup[dependencies[i]]||new Definition(dependencies[i],[])).gsClass?(_classes[i]=cur.gsClass,missing--):init&&cur.sc.push(this);if(0===missing&&func)for(a=("com.greensock."+ns).split("."),n=a.pop(),cl=_namespace(a.join("."))[n]=this.gsClass=func.apply(func,_classes),global&&(_globals[n]=cl,"function"==typeof define&&define.amd?define((window.GreenSockAMDPath?window.GreenSockAMDPath+"/":"")+ns.split(".").join("/"),[],function(){return cl}):"undefined"!=typeof module&&module.exports&&(module.exports=cl)),i=0;i<this.sc.length;i++)this.sc[i].check()},this.check(!0)},_gsDefine=window._gsDefine=function(ns,dependencies,func,global){return new Definition(ns,dependencies,func,global)},_class=gs._class=function(ns,func,global){return func=func||function(){},_gsDefine(ns,[],function(){return func},global),func};_gsDefine.globals=_globals;var _baseParams=[0,0,1,1],_blankArray=[],Ease=_class("easing.Ease",function(func,extraParams,type,power){this._func=func,this._type=type||0,this._power=power||0,this._params=extraParams?_baseParams.concat(extraParams):_baseParams},!0),_easeMap=Ease.map={},_easeReg=Ease.register=function(ease,names,types,create){for(var e,name,j,type,na=names.split(","),i=na.length,ta=(types||"easeIn,easeOut,easeInOut").split(",");--i>-1;)for(name=na[i],e=create?_class("easing."+name,null,!0):gs.easing[name]||{},j=ta.length;--j>-1;)type=ta[j],_easeMap[name+"."+type]=_easeMap[type+name]=e[type]=ease.getRatio?ease:ease[type]||new ease};for(p=Ease.prototype,p._calcEnd=!1,p.getRatio=function(p){if(this._func)return this._params[0]=p,this._func.apply(null,this._params);var t=this._type,pw=this._power,r=1===t?1-p:2===t?p:.5>p?2*p:2*(1-p);return 1===pw?r*=r:2===pw?r*=r*r:3===pw?r*=r*r*r:4===pw&&(r*=r*r*r*r),1===t?1-r:2===t?r:.5>p?r/2:1-r/2},a=["Linear","Quad","Cubic","Quart","Quint,Strong"],i=a.length;--i>-1;)p=a[i]+",Power"+i,_easeReg(new Ease(null,null,1,i),p,"easeOut",!0),_easeReg(new Ease(null,null,2,i),p,"easeIn"+(0===i?",easeNone":"")),_easeReg(new Ease(null,null,3,i),p,"easeInOut");_easeMap.linear=gs.easing.Linear.easeIn,_easeMap.swing=gs.easing.Quad.easeInOut;var EventDispatcher=_class("events.EventDispatcher",function(target){this._listeners={},this._eventTarget=target||this});p=EventDispatcher.prototype,p.addEventListener=function(type,callback,scope,useParam,priority){priority=priority||0;var listener,i,list=this._listeners[type],index=0;for(null==list&&(this._listeners[type]=list=[]),i=list.length;--i>-1;)listener=list[i],listener.c===callback&&listener.s===scope?list.splice(i,1):0===index&&listener.pr<priority&&(index=i+1);list.splice(index,0,{c:callback,s:scope,up:useParam,pr:priority}),this!==_ticker||_tickerActive||_ticker.wake()},p.removeEventListener=function(type,callback){var i,list=this._listeners[type];if(list)for(i=list.length;--i>-1;)if(list[i].c===callback)return void list.splice(i,1)},p.dispatchEvent=function(type){var i,t,listener,list=this._listeners[type];if(list)for(i=list.length,t=this._eventTarget;--i>-1;)listener=list[i],listener.up?listener.c.call(listener.s||t,{type:type,target:t}):listener.c.call(listener.s||t)};var _reqAnimFrame=window.requestAnimationFrame,_cancelAnimFrame=window.cancelAnimationFrame,_getTime=Date.now||function(){return(new Date).getTime()},_lastUpdate=_getTime();for(a=["ms","moz","webkit","o"],i=a.length;--i>-1&&!_reqAnimFrame;)_reqAnimFrame=window[a[i]+"RequestAnimationFrame"],_cancelAnimFrame=window[a[i]+"CancelAnimationFrame"]||window[a[i]+"CancelRequestAnimationFrame"];_class("Ticker",function(fps,useRAF){var _fps,_req,_id,_gap,_nextTime,_self=this,_startTime=_getTime(),_useRAF=useRAF!==!1&&_reqAnimFrame,_tick=function(manual){_lastUpdate=_getTime(),_self.time=(_lastUpdate-_startTime)/1e3;var dispatch,overlap=_self.time-_nextTime;(!_fps||overlap>0||manual===!0)&&(_self.frame++,_nextTime+=overlap+(overlap>=_gap?.004:_gap-overlap),dispatch=!0),manual!==!0&&(_id=_req(_tick)),dispatch&&_self.dispatchEvent("tick")};EventDispatcher.call(_self),_self.time=_self.frame=0,_self.tick=function(){_tick(!0)},_self.sleep=function(){null!=_id&&(_useRAF&&_cancelAnimFrame?_cancelAnimFrame(_id):clearTimeout(_id),_req=_emptyFunc,_id=null,_self===_ticker&&(_tickerActive=!1))},_self.wake=function(){null!==_id&&_self.sleep(),_req=0===_fps?_emptyFunc:_useRAF&&_reqAnimFrame?_reqAnimFrame:function(f){return setTimeout(f,1e3*(_nextTime-_self.time)+1|0)},_self===_ticker&&(_tickerActive=!0),_tick(2)},_self.fps=function(value){return arguments.length?(_fps=value,_gap=1/(_fps||60),_nextTime=this.time+_gap,void _self.wake()):_fps},_self.useRAF=function(value){return arguments.length?(_self.sleep(),_useRAF=value,void _self.fps(_fps)):_useRAF},_self.fps(fps),setTimeout(function(){_useRAF&&(!_id||_self.frame<5)&&_self.useRAF(!1)},1500)}),p=gs.Ticker.prototype=new gs.events.EventDispatcher,p.constructor=gs.Ticker;var Animation=_class("core.Animation",function(duration,vars){if(this.vars=vars=vars||{},this._duration=this._totalDuration=duration||0,this._delay=Number(vars.delay)||0,this._timeScale=1,this._active=vars.immediateRender===!0,this.data=vars.data,this._reversed=vars.reversed===!0,_rootTimeline){_tickerActive||_ticker.wake();var tl=this.vars.useFrames?_rootFramesTimeline:_rootTimeline;tl.add(this,tl._time),this.vars.paused&&this.paused(!0)}});_ticker=Animation.ticker=new gs.Ticker,p=Animation.prototype,p._dirty=p._gc=p._initted=p._paused=!1,p._totalTime=p._time=0,p._rawPrevTime=-1,p._next=p._last=p._onUpdate=p._timeline=p.timeline=null,p._paused=!1;var _checkTimeout=function(){_tickerActive&&_getTime()-_lastUpdate>2e3&&_ticker.wake(),setTimeout(_checkTimeout,2e3)};_checkTimeout(),p.play=function(from,suppressEvents){return null!=from&&this.seek(from,suppressEvents),this.reversed(!1).paused(!1)},p.pause=function(atTime,suppressEvents){return null!=atTime&&this.seek(atTime,suppressEvents),this.paused(!0)},p.resume=function(from,suppressEvents){return null!=from&&this.seek(from,suppressEvents),this.paused(!1)},p.seek=function(time,suppressEvents){return this.totalTime(Number(time),suppressEvents!==!1)},p.restart=function(includeDelay,suppressEvents){return this.reversed(!1).paused(!1).totalTime(includeDelay?-this._delay:0,suppressEvents!==!1,!0)},p.reverse=function(from,suppressEvents){return null!=from&&this.seek(from||this.totalDuration(),suppressEvents),this.reversed(!0).paused(!1)},p.render=function(time,suppressEvents,force){},p.invalidate=function(){return this},p.isActive=function(){var rawTime,tl=this._timeline,startTime=this._startTime;return!tl||!this._gc&&!this._paused&&tl.isActive()&&(rawTime=tl.rawTime())>=startTime&&rawTime<startTime+this.totalDuration()/this._timeScale},p._enabled=function(enabled,ignoreTimeline){return _tickerActive||_ticker.wake(),this._gc=!enabled,this._active=this.isActive(),ignoreTimeline!==!0&&(enabled&&!this.timeline?this._timeline.add(this,this._startTime-this._delay):!enabled&&this.timeline&&this._timeline._remove(this,!0)),!1},p._kill=function(vars,target){return this._enabled(!1,!1)},p.kill=function(vars,target){return this._kill(vars,target),this},p._uncache=function(includeSelf){for(var tween=includeSelf?this:this.timeline;tween;)tween._dirty=!0,tween=tween.timeline;return this},p._swapSelfInParams=function(params){for(var i=params.length,copy=params.concat();--i>-1;)"{self}"===params[i]&&(copy[i]=this);return copy},p.eventCallback=function(type,callback,params,scope){if("on"===(type||"").substr(0,2)){var v=this.vars;if(1===arguments.length)return v[type];null==callback?delete v[type]:(v[type]=callback,v[type+"Params"]=_isArray(params)&&-1!==params.join("").indexOf("{self}")?this._swapSelfInParams(params):params,v[type+"Scope"]=scope),"onUpdate"===type&&(this._onUpdate=callback)}return this},p.delay=function(value){return arguments.length?(this._timeline.smoothChildTiming&&this.startTime(this._startTime+value-this._delay),this._delay=value,this):this._delay},p.duration=function(value){return arguments.length?(this._duration=this._totalDuration=value,this._uncache(!0),this._timeline.smoothChildTiming&&this._time>0&&this._time<this._duration&&0!==value&&this.totalTime(this._totalTime*(value/this._duration),!0),this):(this._dirty=!1,this._duration)},p.totalDuration=function(value){return this._dirty=!1,arguments.length?this.duration(value):this._totalDuration},p.time=function(value,suppressEvents){return arguments.length?(this._dirty&&this.totalDuration(),this.totalTime(value>this._duration?this._duration:value,suppressEvents)):this._time},p.totalTime=function(time,suppressEvents,uncapped){if(_tickerActive||_ticker.wake(),!arguments.length)return this._totalTime;if(this._timeline){if(0>time&&!uncapped&&(time+=this.totalDuration()),this._timeline.smoothChildTiming){this._dirty&&this.totalDuration();var totalDuration=this._totalDuration,tl=this._timeline;if(time>totalDuration&&!uncapped&&(time=totalDuration),this._startTime=(this._paused?this._pauseTime:tl._time)-(this._reversed?totalDuration-time:time)/this._timeScale,tl._dirty||this._uncache(!1),tl._timeline)for(;tl._timeline;)tl._timeline._time!==(tl._startTime+tl._totalTime)/tl._timeScale&&tl.totalTime(tl._totalTime,!0),tl=tl._timeline}this._gc&&this._enabled(!0,!1),(this._totalTime!==time||0===this._duration)&&this.render(time,suppressEvents,!1)}return this},p.progress=p.totalProgress=function(value,suppressEvents){return arguments.length?this.totalTime(this.duration()*value,suppressEvents):this._time/this.duration()},p.startTime=function(value){return arguments.length?(value!==this._startTime&&(this._startTime=value,this.timeline&&this.timeline._sortChildren&&this.timeline.add(this,value-this._delay)),this):this._startTime},p.timeScale=function(value){if(!arguments.length)return this._timeScale;if(value=value||_tinyNum,this._timeline&&this._timeline.smoothChildTiming){var pauseTime=this._pauseTime,t=pauseTime||0===pauseTime?pauseTime:this._timeline.totalTime();this._startTime=t-(t-this._startTime)*this._timeScale/value}return this._timeScale=value,this._uncache(!1)},p.reversed=function(value){return arguments.length?(value!=this._reversed&&(this._reversed=value,this.totalTime(this._timeline&&!this._timeline.smoothChildTiming?this.totalDuration()-this._totalTime:this._totalTime,!0)),this):this._reversed},p.paused=function(value){if(!arguments.length)return this._paused;if(value!=this._paused&&this._timeline){_tickerActive||value||_ticker.wake();var tl=this._timeline,raw=tl.rawTime(),elapsed=raw-this._pauseTime;!value&&tl.smoothChildTiming&&(this._startTime+=elapsed,this._uncache(!1)),this._pauseTime=value?raw:null,this._paused=value,this._active=this.isActive(),!value&&0!==elapsed&&this._initted&&this.duration()&&this.render(tl.smoothChildTiming?this._totalTime:(raw-this._startTime)/this._timeScale,!0,!0)}return this._gc&&!value&&this._enabled(!0,!1),this};var SimpleTimeline=_class("core.SimpleTimeline",function(vars){Animation.call(this,0,vars),this.autoRemoveChildren=this.smoothChildTiming=!0});p=SimpleTimeline.prototype=new Animation,p.constructor=SimpleTimeline,p.kill()._gc=!1,p._first=p._last=null,p._sortChildren=!1,p.add=p.insert=function(child,position,align,stagger){var prevTween,st;if(child._startTime=Number(position||0)+child._delay,child._paused&&this!==child._timeline&&(child._pauseTime=child._startTime+(this.rawTime()-child._startTime)/child._timeScale),child.timeline&&child.timeline._remove(child,!0),child.timeline=child._timeline=this,child._gc&&child._enabled(!0,!0),prevTween=this._last,this._sortChildren)for(st=child._startTime;prevTween&&prevTween._startTime>st;)prevTween=prevTween._prev;return prevTween?(child._next=prevTween._next,prevTween._next=child):(child._next=this._first,this._first=child),child._next?child._next._prev=child:this._last=child,child._prev=prevTween,this._timeline&&this._uncache(!0),this},p._remove=function(tween,skipDisable){return tween.timeline===this&&(skipDisable||tween._enabled(!1,!0),tween.timeline=null,tween._prev?tween._prev._next=tween._next:this._first===tween&&(this._first=tween._next),tween._next?tween._next._prev=tween._prev:this._last===tween&&(this._last=tween._prev),this._timeline&&this._uncache(!0)),this},p.render=function(time,suppressEvents,force){var next,tween=this._first;for(this._totalTime=this._time=this._rawPrevTime=time;tween;)next=tween._next,(tween._active||time>=tween._startTime&&!tween._paused)&&(tween._reversed?tween.render((tween._dirty?tween.totalDuration():tween._totalDuration)-(time-tween._startTime)*tween._timeScale,suppressEvents,force):tween.render((time-tween._startTime)*tween._timeScale,suppressEvents,force)),tween=next},p.rawTime=function(){return _tickerActive||_ticker.wake(),this._totalTime};var TweenLite=_class("TweenLite",function(target,duration,vars){if(Animation.call(this,duration,vars),this.render=TweenLite.prototype.render,null==target)throw"Cannot tween a null target.";this.target=target="string"!=typeof target?target:TweenLite.selector(target)||target;var i,targ,targets,isSelector=target.jquery||target.length&&target!==window&&target[0]&&(target[0]===window||target[0].nodeType&&target[0].style&&!target.nodeType),overwrite=this.vars.overwrite;if(this._overwrite=overwrite=null==overwrite?_overwriteLookup[TweenLite.defaultOverwrite]:"number"==typeof overwrite?overwrite>>0:_overwriteLookup[overwrite],(isSelector||target instanceof Array||target.push&&_isArray(target))&&"number"!=typeof target[0])for(this._targets=targets=_slice.call(target,0),this._propLookup=[],this._siblings=[],i=0;i<targets.length;i++)targ=targets[i],targ?"string"!=typeof targ?targ.length&&targ!==window&&targ[0]&&(targ[0]===window||targ[0].nodeType&&targ[0].style&&!targ.nodeType)?(targets.splice(i--,1),this._targets=targets=targets.concat(_slice.call(targ,0))):(this._siblings[i]=_register(targ,this,!1),1===overwrite&&this._siblings[i].length>1&&_applyOverwrite(targ,this,null,1,this._siblings[i])):(targ=targets[i--]=TweenLite.selector(targ),"string"==typeof targ&&targets.splice(i+1,1)):targets.splice(i--,1);else this._propLookup={},this._siblings=_register(target,this,!1),1===overwrite&&this._siblings.length>1&&_applyOverwrite(target,this,null,1,this._siblings);(this.vars.immediateRender||0===duration&&0===this._delay&&this.vars.immediateRender!==!1)&&this.render(-this._delay,!1,!0)},!0),_isSelector=function(v){return v.length&&v!==window&&v[0]&&(v[0]===window||v[0].nodeType&&v[0].style&&!v.nodeType)},_autoCSS=function(vars,target){var p,css={};for(p in vars)_reservedProps[p]||p in target&&"x"!==p&&"y"!==p&&"width"!==p&&"height"!==p&&"className"!==p&&"border"!==p||!(!_plugins[p]||_plugins[p]&&_plugins[p]._autoCSS)||(css[p]=vars[p],delete vars[p]);vars.css=css};p=TweenLite.prototype=new Animation,p.constructor=TweenLite,p.kill()._gc=!1,p.ratio=0,p._firstPT=p._targets=p._overwrittenProps=p._startAt=null,p._notifyPluginsOfEnabled=!1,TweenLite.version="1.11.8",TweenLite.defaultEase=p._ease=new Ease(null,null,1,1),TweenLite.defaultOverwrite="auto",TweenLite.ticker=_ticker,TweenLite.autoSleep=!0,TweenLite.selector=window.$||window.jQuery||function(e){return window.$?(TweenLite.selector=window.$,window.$(e)):window.document?window.document.getElementById("#"===e.charAt(0)?e.substr(1):e):e};var _internals=TweenLite._internals={isArray:_isArray,isSelector:_isSelector},_plugins=TweenLite._plugins={},_tweenLookup=TweenLite._tweenLookup={},_tweenLookupNum=0,_reservedProps=_internals.reservedProps={ease:1,delay:1,overwrite:1,onComplete:1,onCompleteParams:1,onCompleteScope:1,useFrames:1,runBackwards:1,startAt:1,onUpdate:1,onUpdateParams:1,onUpdateScope:1,onStart:1,onStartParams:1,onStartScope:1,onReverseComplete:1,onReverseCompleteParams:1,onReverseCompleteScope:1,onRepeat:1,onRepeatParams:1,onRepeatScope:1,easeParams:1,yoyo:1,immediateRender:1,repeat:1,repeatDelay:1,data:1,paused:1,reversed:1,autoCSS:1},_overwriteLookup={none:0,all:1,auto:2,concurrent:3,allOnStart:4,preexisting:5,"true":1,"false":0},_rootFramesTimeline=Animation._rootFramesTimeline=new SimpleTimeline,_rootTimeline=Animation._rootTimeline=new SimpleTimeline;_rootTimeline._startTime=_ticker.time,_rootFramesTimeline._startTime=_ticker.frame,_rootTimeline._active=_rootFramesTimeline._active=!0,Animation._updateRoot=function(){if(_rootTimeline.render((_ticker.time-_rootTimeline._startTime)*_rootTimeline._timeScale,!1,!1),_rootFramesTimeline.render((_ticker.frame-_rootFramesTimeline._startTime)*_rootFramesTimeline._timeScale,!1,!1),!(_ticker.frame%120)){var i,a,p;for(p in _tweenLookup){for(a=_tweenLookup[p].tweens,i=a.length;--i>-1;)a[i]._gc&&a.splice(i,1);0===a.length&&delete _tweenLookup[p]}if(p=_rootTimeline._first,(!p||p._paused)&&TweenLite.autoSleep&&!_rootFramesTimeline._first&&1===_ticker._listeners.tick.length){for(;p&&p._paused;)p=p._next;p||_ticker.sleep()}}},_ticker.addEventListener("tick",Animation._updateRoot);var _register=function(target,tween,scrub){var a,i,id=target._gsTweenID;if(_tweenLookup[id||(target._gsTweenID=id="t"+_tweenLookupNum++)]||(_tweenLookup[id]={target:target,tweens:[]}),tween&&(a=_tweenLookup[id].tweens,a[i=a.length]=tween,scrub))for(;--i>-1;)a[i]===tween&&a.splice(i,1);return _tweenLookup[id].tweens},_applyOverwrite=function(target,tween,props,mode,siblings){var i,changed,curTween,l;if(1===mode||mode>=4){for(l=siblings.length,i=0;l>i;i++)if((curTween=siblings[i])!==tween)curTween._gc||curTween._enabled(!1,!1)&&(changed=!0);else if(5===mode)break;return changed}var globalStart,startTime=tween._startTime+_tinyNum,overlaps=[],oCount=0,zeroDur=0===tween._duration;for(i=siblings.length;--i>-1;)(curTween=siblings[i])===tween||curTween._gc||curTween._paused||(curTween._timeline!==tween._timeline?(globalStart=globalStart||_checkOverlap(tween,0,zeroDur),0===_checkOverlap(curTween,globalStart,zeroDur)&&(overlaps[oCount++]=curTween)):curTween._startTime<=startTime&&curTween._startTime+curTween.totalDuration()/curTween._timeScale>startTime&&((zeroDur||!curTween._initted)&&startTime-curTween._startTime<=2e-10||(overlaps[oCount++]=curTween)));for(i=oCount;--i>-1;)curTween=overlaps[i],2===mode&&curTween._kill(props,target)&&(changed=!0),(2!==mode||!curTween._firstPT&&curTween._initted)&&curTween._enabled(!1,!1)&&(changed=!0);return changed},_checkOverlap=function(tween,reference,zeroDur){for(var tl=tween._timeline,ts=tl._timeScale,t=tween._startTime;tl._timeline;){if(t+=tl._startTime,ts*=tl._timeScale,tl._paused)return-100;tl=tl._timeline}return t/=ts,t>reference?t-reference:zeroDur&&t===reference||!tween._initted&&2*_tinyNum>t-reference?_tinyNum:(t+=tween.totalDuration()/tween._timeScale/ts)>reference+_tinyNum?0:t-reference-_tinyNum};p._init=function(){var i,initPlugins,pt,p,v=this.vars,op=this._overwrittenProps,dur=this._duration,immediate=v.immediateRender,ease=v.ease;if(v.startAt){if(this._startAt&&this._startAt.render(-1,!0),v.startAt.overwrite=0,v.startAt.immediateRender=!0,this._startAt=TweenLite.to(this.target,0,v.startAt),immediate)if(this._time>0)this._startAt=null;else if(0!==dur)return}else if(v.runBackwards&&0!==dur)if(this._startAt)this._startAt.render(-1,!0),this._startAt=null;else{pt={};for(p in v)_reservedProps[p]&&"autoCSS"!==p||(pt[p]=v[p]);if(pt.overwrite=0,pt.data="isFromStart",this._startAt=TweenLite.to(this.target,0,pt),v.immediateRender){if(0===this._time)return}else this._startAt.render(-1,!0)}if(ease?ease instanceof Ease?this._ease=v.easeParams instanceof Array?ease.config.apply(ease,v.easeParams):ease:this._ease="function"==typeof ease?new Ease(ease,v.easeParams):_easeMap[ease]||TweenLite.defaultEase:this._ease=TweenLite.defaultEase,this._easeType=this._ease._type,this._easePower=this._ease._power,this._firstPT=null,this._targets)for(i=this._targets.length;--i>-1;)this._initProps(this._targets[i],this._propLookup[i]={},this._siblings[i],op?op[i]:null)&&(initPlugins=!0);else initPlugins=this._initProps(this.target,this._propLookup,this._siblings,op);if(initPlugins&&TweenLite._onPluginEvent("_onInitAllProps",this),op&&(this._firstPT||"function"!=typeof this.target&&this._enabled(!1,!1)),v.runBackwards)for(pt=this._firstPT;pt;)pt.s+=pt.c,pt.c=-pt.c,pt=pt._next;this._onUpdate=v.onUpdate,this._initted=!0},p._initProps=function(target,propLookup,siblings,overwrittenProps){var p,i,initPlugins,plugin,pt,v;if(null==target)return!1;this.vars.css||target.style&&target!==window&&target.nodeType&&_plugins.css&&this.vars.autoCSS!==!1&&_autoCSS(this.vars,target);for(p in this.vars){if(v=this.vars[p],_reservedProps[p])v&&(v instanceof Array||v.push&&_isArray(v))&&-1!==v.join("").indexOf("{self}")&&(this.vars[p]=v=this._swapSelfInParams(v,this));else if(_plugins[p]&&(plugin=new _plugins[p])._onInitTween(target,this.vars[p],this)){for(this._firstPT=pt={_next:this._firstPT,t:plugin,p:"setRatio",s:0,c:1,f:!0,n:p,pg:!0,pr:plugin._priority},i=plugin._overwriteProps.length;--i>-1;)propLookup[plugin._overwriteProps[i]]=this._firstPT;(plugin._priority||plugin._onInitAllProps)&&(initPlugins=!0),(plugin._onDisable||plugin._onEnable)&&(this._notifyPluginsOfEnabled=!0)}else this._firstPT=propLookup[p]=pt={_next:this._firstPT,t:target,p:p,f:"function"==typeof target[p],n:p,pg:!1,pr:0},pt.s=pt.f?target[p.indexOf("set")||"function"!=typeof target["get"+p.substr(3)]?p:"get"+p.substr(3)]():parseFloat(target[p]),pt.c="string"==typeof v&&"="===v.charAt(1)?parseInt(v.charAt(0)+"1",10)*Number(v.substr(2)):Number(v)-pt.s||0;pt&&pt._next&&(pt._next._prev=pt)}return overwrittenProps&&this._kill(overwrittenProps,target)?this._initProps(target,propLookup,siblings,overwrittenProps):this._overwrite>1&&this._firstPT&&siblings.length>1&&_applyOverwrite(target,this,propLookup,this._overwrite,siblings)?(this._kill(propLookup,target),this._initProps(target,propLookup,siblings,overwrittenProps)):initPlugins},p.render=function(time,suppressEvents,force){var isComplete,callback,pt,rawPrevTime,prevTime=this._time,duration=this._duration;if(time>=duration)this._totalTime=this._time=duration,this.ratio=this._ease._calcEnd?this._ease.getRatio(1):1,this._reversed||(isComplete=!0,callback="onComplete"),0===duration&&(rawPrevTime=this._rawPrevTime,this._startTime===this._timeline._duration&&(time=0),(0===time||0>rawPrevTime||rawPrevTime===_tinyNum)&&rawPrevTime!==time&&(force=!0,rawPrevTime>_tinyNum&&(callback="onReverseComplete")),this._rawPrevTime=rawPrevTime=!suppressEvents||time||this._rawPrevTime===time?time:_tinyNum);else if(1e-7>time)this._totalTime=this._time=0,this.ratio=this._ease._calcEnd?this._ease.getRatio(0):0,(0!==prevTime||0===duration&&this._rawPrevTime>0&&this._rawPrevTime!==_tinyNum)&&(callback="onReverseComplete",isComplete=this._reversed),0>time?(this._active=!1,0===duration&&(this._rawPrevTime>=0&&(force=!0),this._rawPrevTime=rawPrevTime=!suppressEvents||time||this._rawPrevTime===time?time:_tinyNum)):this._initted||(force=!0);else if(this._totalTime=this._time=time,this._easeType){var r=time/duration,type=this._easeType,pow=this._easePower;(1===type||3===type&&r>=.5)&&(r=1-r),3===type&&(r*=2),1===pow?r*=r:2===pow?r*=r*r:3===pow?r*=r*r*r:4===pow&&(r*=r*r*r*r),1===type?this.ratio=1-r:2===type?this.ratio=r:.5>time/duration?this.ratio=r/2:this.ratio=1-r/2}else this.ratio=this._ease.getRatio(time/duration);if(this._time!==prevTime||force){if(!this._initted){if(this._init(),!this._initted||this._gc)return;this._time&&!isComplete?this.ratio=this._ease.getRatio(this._time/duration):isComplete&&this._ease._calcEnd&&(this.ratio=this._ease.getRatio(0===this._time?0:1))}for(this._active||!this._paused&&this._time!==prevTime&&time>=0&&(this._active=!0),0===prevTime&&(this._startAt&&(time>=0?this._startAt.render(time,suppressEvents,force):callback||(callback="_dummyGS")),this.vars.onStart&&(0!==this._time||0===duration)&&(suppressEvents||this.vars.onStart.apply(this.vars.onStartScope||this,this.vars.onStartParams||_blankArray))),
  pt=this._firstPT;pt;)pt.f?pt.t[pt.p](pt.c*this.ratio+pt.s):pt.t[pt.p]=pt.c*this.ratio+pt.s,pt=pt._next;this._onUpdate&&(0>time&&this._startAt&&this._startTime&&this._startAt.render(time,suppressEvents,force),suppressEvents||(this._time!==prevTime||isComplete)&&this._onUpdate.apply(this.vars.onUpdateScope||this,this.vars.onUpdateParams||_blankArray)),callback&&(this._gc||(0>time&&this._startAt&&!this._onUpdate&&this._startTime&&this._startAt.render(time,suppressEvents,force),isComplete&&(this._timeline.autoRemoveChildren&&this._enabled(!1,!1),this._active=!1),!suppressEvents&&this.vars[callback]&&this.vars[callback].apply(this.vars[callback+"Scope"]||this,this.vars[callback+"Params"]||_blankArray),0===duration&&this._rawPrevTime===_tinyNum&&rawPrevTime!==_tinyNum&&(this._rawPrevTime=0)))}},p._kill=function(vars,target){if("all"===vars&&(vars=null),null==vars&&(null==target||target===this.target))return this._enabled(!1,!1);target="string"!=typeof target?target||this._targets||this.target:TweenLite.selector(target)||target;var i,overwrittenProps,p,pt,propLookup,changed,killProps,record;if((_isArray(target)||_isSelector(target))&&"number"!=typeof target[0])for(i=target.length;--i>-1;)this._kill(vars,target[i])&&(changed=!0);else{if(this._targets){for(i=this._targets.length;--i>-1;)if(target===this._targets[i]){propLookup=this._propLookup[i]||{},this._overwrittenProps=this._overwrittenProps||[],overwrittenProps=this._overwrittenProps[i]=vars?this._overwrittenProps[i]||{}:"all";break}}else{if(target!==this.target)return!1;propLookup=this._propLookup,overwrittenProps=this._overwrittenProps=vars?this._overwrittenProps||{}:"all"}if(propLookup){killProps=vars||propLookup,record=vars!==overwrittenProps&&"all"!==overwrittenProps&&vars!==propLookup&&("object"!=typeof vars||!vars._tempKill);for(p in killProps)(pt=propLookup[p])&&(pt.pg&&pt.t._kill(killProps)&&(changed=!0),pt.pg&&0!==pt.t._overwriteProps.length||(pt._prev?pt._prev._next=pt._next:pt===this._firstPT&&(this._firstPT=pt._next),pt._next&&(pt._next._prev=pt._prev),pt._next=pt._prev=null),delete propLookup[p]),record&&(overwrittenProps[p]=1);!this._firstPT&&this._initted&&this._enabled(!1,!1)}}return changed},p.invalidate=function(){return this._notifyPluginsOfEnabled&&TweenLite._onPluginEvent("_onDisable",this),this._firstPT=null,this._overwrittenProps=null,this._onUpdate=null,this._startAt=null,this._initted=this._active=this._notifyPluginsOfEnabled=!1,this._propLookup=this._targets?{}:[],this},p._enabled=function(enabled,ignoreTimeline){if(_tickerActive||_ticker.wake(),enabled&&this._gc){var i,targets=this._targets;if(targets)for(i=targets.length;--i>-1;)this._siblings[i]=_register(targets[i],this,!0);else this._siblings=_register(this.target,this,!0)}return Animation.prototype._enabled.call(this,enabled,ignoreTimeline),this._notifyPluginsOfEnabled&&this._firstPT?TweenLite._onPluginEvent(enabled?"_onEnable":"_onDisable",this):!1},TweenLite.to=function(target,duration,vars){return new TweenLite(target,duration,vars)},TweenLite.from=function(target,duration,vars){return vars.runBackwards=!0,vars.immediateRender=0!=vars.immediateRender,new TweenLite(target,duration,vars)},TweenLite.fromTo=function(target,duration,fromVars,toVars){return toVars.startAt=fromVars,toVars.immediateRender=0!=toVars.immediateRender&&0!=fromVars.immediateRender,new TweenLite(target,duration,toVars)},TweenLite.delayedCall=function(delay,callback,params,scope,useFrames){return new TweenLite(callback,0,{delay:delay,onComplete:callback,onCompleteParams:params,onCompleteScope:scope,onReverseComplete:callback,onReverseCompleteParams:params,onReverseCompleteScope:scope,immediateRender:!1,useFrames:useFrames,overwrite:0})},TweenLite.set=function(target,vars){return new TweenLite(target,0,vars)},TweenLite.getTweensOf=function(target,onlyActive){if(null==target)return[];target="string"!=typeof target?target:TweenLite.selector(target)||target;var i,a,j,t;if((_isArray(target)||_isSelector(target))&&"number"!=typeof target[0]){for(i=target.length,a=[];--i>-1;)a=a.concat(TweenLite.getTweensOf(target[i],onlyActive));for(i=a.length;--i>-1;)for(t=a[i],j=i;--j>-1;)t===a[j]&&a.splice(i,1)}else for(a=_register(target).concat(),i=a.length;--i>-1;)(a[i]._gc||onlyActive&&!a[i].isActive())&&a.splice(i,1);return a},TweenLite.killTweensOf=TweenLite.killDelayedCallsTo=function(target,onlyActive,vars){"object"==typeof onlyActive&&(vars=onlyActive,onlyActive=!1);for(var a=TweenLite.getTweensOf(target,onlyActive),i=a.length;--i>-1;)a[i]._kill(vars,target)};var TweenPlugin=_class("plugins.TweenPlugin",function(props,priority){this._overwriteProps=(props||"").split(","),this._propName=this._overwriteProps[0],this._priority=priority||0,this._super=TweenPlugin.prototype},!0);if(p=TweenPlugin.prototype,TweenPlugin.version="1.10.1",TweenPlugin.API=2,p._firstPT=null,p._addTween=function(target,prop,start,end,overwriteProp,round){var c,pt;return null!=end&&(c="number"==typeof end||"="!==end.charAt(1)?Number(end)-start:parseInt(end.charAt(0)+"1",10)*Number(end.substr(2)))?(this._firstPT=pt={_next:this._firstPT,t:target,p:prop,s:start,c:c,f:"function"==typeof target[prop],n:overwriteProp||prop,r:round},pt._next&&(pt._next._prev=pt),pt):void 0},p.setRatio=function(v){for(var val,pt=this._firstPT,min=1e-6;pt;)val=pt.c*v+pt.s,pt.r?val=Math.round(val):min>val&&val>-min&&(val=0),pt.f?pt.t[pt.p](val):pt.t[pt.p]=val,pt=pt._next},p._kill=function(lookup){var i,a=this._overwriteProps,pt=this._firstPT;if(null!=lookup[this._propName])this._overwriteProps=[];else for(i=a.length;--i>-1;)null!=lookup[a[i]]&&a.splice(i,1);for(;pt;)null!=lookup[pt.n]&&(pt._next&&(pt._next._prev=pt._prev),pt._prev?(pt._prev._next=pt._next,pt._prev=null):this._firstPT===pt&&(this._firstPT=pt._next)),pt=pt._next;return!1},p._roundProps=function(lookup,value){for(var pt=this._firstPT;pt;)(lookup[this._propName]||null!=pt.n&&lookup[pt.n.split(this._propName+"_").join("")])&&(pt.r=value),pt=pt._next},TweenLite._onPluginEvent=function(type,tween){var changed,pt2,first,last,next,pt=tween._firstPT;if("_onInitAllProps"===type){for(;pt;){for(next=pt._next,pt2=first;pt2&&pt2.pr>pt.pr;)pt2=pt2._next;(pt._prev=pt2?pt2._prev:last)?pt._prev._next=pt:first=pt,(pt._next=pt2)?pt2._prev=pt:last=pt,pt=next}pt=tween._firstPT=first}for(;pt;)pt.pg&&"function"==typeof pt.t[type]&&pt.t[type]()&&(changed=!0),pt=pt._next;return changed},TweenPlugin.activate=function(plugins){for(var i=plugins.length;--i>-1;)plugins[i].API===TweenPlugin.API&&(_plugins[(new plugins[i])._propName]=plugins[i]);return!0},_gsDefine.plugin=function(config){if(!(config&&config.propName&&config.init&&config.API))throw"illegal plugin definition.";var prop,propName=config.propName,priority=config.priority||0,overwriteProps=config.overwriteProps,map={init:"_onInitTween",set:"setRatio",kill:"_kill",round:"_roundProps",initAll:"_onInitAllProps"},Plugin=_class("plugins."+propName.charAt(0).toUpperCase()+propName.substr(1)+"Plugin",function(){TweenPlugin.call(this,propName,priority),this._overwriteProps=overwriteProps||[]},config.global===!0),p=Plugin.prototype=new TweenPlugin(propName);p.constructor=Plugin,Plugin.API=config.API;for(prop in map)"function"==typeof config[prop]&&(p[map[prop]]=config[prop]);return Plugin.version=config.version,TweenPlugin.activate([Plugin]),Plugin},a=window._gsQueue){for(i=0;i<a.length;i++)a[i]();for(p in _defLookup)_defLookup[p].func||window.console.log("GSAP encountered missing dependency: com.greensock."+p)}_tickerActive=!1}}(window),"undefined"!=typeof module&&"undefined"!=typeof exports&&module.exports===exports&&(module.exports="ngFx"),function(angular,TweenMax,TimelineMax){"use strict;";function cssMixin(el,z){el.css("position","absolute"),z&&"leave"===z?el.css("z-index","9999px"):el.css("z-index","1000px")}function css3D(parent,view){var preservve={position:"relative",width:"100%",height:"100%","-webkit-perspective":"500px","-moz-perspective":"500px","-o-perspective":"500px",perspective:"500px"},trans={overflow:"hidden","-webkit-backface-visibility":"hidden","-moz-backface-visibility":"hidden","backface-visibility":"hidden","-webkit-transform":"translate3d(0, 0, 0)","-moz-transform":"translate3d(0, 0, 0)",transform:"translate3d(0, 0, 0),"," -webkit-transform-style":"preserve-3d","-moz-transform-style":"preserve-3d","transform-style":"preserve-3d"};parent.css(preservve),view.css(trans)}angular.module("fx.transitions",["fx.transitions.slides","fx.transitions.scales","fx.transitions.rotations","fx.transitions.specials","fx.transitions.view"]),angular.module("ngFx",["fx.animations","fx.transitions"]),angular.module("fx.animations",["fx.animations.fades","fx.animations.bounces","fx.animations.zooms","fx.animations.rotations","fx.animations.tada","fx.animations.pulse"]),angular.module("fx.animations.assist",[]).factory("Assist",["$filter","$window","$timeout","$rootScope",function($filter,$window,$timeout,$rootScope){return{emit:function(element,animation,motion){$rootScope.$broadcast(animation+":"+motion)},parseClassList:function(element,option){var ease,list=element[0].classList,results={trigger:!1,duration:.3,ease:$window.Back};return angular.forEach(list,function(className){"fx-easing"===className.slice(0,9)&&(ease=className.slice(10),results.ease=$window[$filter("cap")(ease)]||$window.Elastic),"fx-trigger"===className&&(results.trigger=!0),"fx-speed"===className.slice(0,8)&&(results.duration=parseInt(className.slice(9))/1e3)}),option?{ease:results.ease,speed:results.duration}:results},addTimer:function(options,element,end){var self=this,time=options.stagger?3*options.duration*1e3:1e3*options.duration,timer=$timeout(function(){options.trigger&&self.emit(element,options.animation,options.motion),end()},time);element.data(options.timeoutKey,timer)},removeTimer:function(element,timeoutKey,timer){$timeout.cancel(timer),element.removeData(timeoutKey)},timeoutKey:"$$fxTimer"}}]).filter("cap",[function(){return function(input){return input.charAt(0).toUpperCase()+input.slice(1)}}]);var timeoutKey="$$fxtimer";angular.module("fx.transitions.assist",[]).factory("TransAssist",["$timeout",function($timeout){function addTimer(el,time,done){var timer=$timeout(function(){done()},1e3*time+50);el.data(timeoutKey,timer)}function removeTimer(el){var timer=el.data(timeoutKey);timer&&(el.css("z-index","-1"),$timeout.cancel(timer),el.removeData(timeoutKey))}return{addTimer:addTimer,removeTimer:removeTimer}}]),angular.module("fx.transitions.create",["fx.transitions.assist","fx.animations.assist"]).factory("SlideTransition",["TransAssist","Assist",function(TransAssist,Assist){var slide;return function(effect){effect.from?this.enter=function(el,done){var customs;return cssMixin(el),customs=Assist.parseClassList(el,!0),effect.from.ease=customs.ease.easeInOut,effect.duration=customs.speed,TransAssist.addTimer(el,effect.duration,done),slide=new TimelineMax,slide.from(el,effect.duration,effect.from),function(cancel){cancel&&TransAssist.removeTimer(el)}}:!effect.from&&effect.to&&(this.leave=function(el,done){var customs;return cssMixin(el),customs=Assist.parseClassList(el,!0),effect.to.ease=customs.ease.easeInOut,effect.duration=customs.speed,TransAssist.addTimer(el,effect.duration,done),slide=new TimelineMax,slide.to(el,effect.duration,effect.to),function(cancel){cancel&&TransAssist.removeTimer(el)}})}}]).factory("RotationTransition",["TransAssist","Assist","$compile",function(TransAssist,Assist,$compile){var rotate;return function(effect){this[effect.when]=function(el,done){var customs,wrapper;return wrapper=$compile("<div></div>")(el.scope()),cssMixin(el),css3D(wrapper,el),angular.element(wrapper).append(el[0].outerHTML),customs=Assist.parseClassList(el,!0),effect.from.ease=customs.ease.easeOut,effect.duration=customs.duration,TransAssist.addTimer(el,effect.duration,done),rotate=new TimelineMax,rotate.from(el,1,effect.from).to(el,1,effect.to),function(cancel){cancel&&TransAssist.removeTimer(el)}}}}]),angular.module("fx.transitions.view",[]).directive("fxAnimate",["$injector",function($injector){return{link:function($scope,$ele){function addAnimations(animations,ele){angular.forEach(animations,function(animation,type){"ease"===type&&(animation="fx-easing-"+animation),"speed"===type&&(animation="fx-speed-"+animation),ele.addClass(animation)})}var $state,$route;$injector.has("$state")&&($state=$injector.get("$state")),$injector.has("$route")&&($route=$injector.get("$route"));var animations;if($state&&$state.current.animation&&$route&&$route.current&&$route.current.$$route&&$route.current.$$route.animation)throw new Error("You can only add animations on either $state or $route");$state&&(animations=$state.current.animation),$route&&$route.current&&(animations=$route.current.$$route.animation),addAnimations(animations,$ele)}}}]),angular.module("fx.transitions.rotations",["fx.transitions.create"]).animation(".rotate-out-right",["RotationTransition",function(RotationTransition){var effect={from:{transform:"rotateY(15deg)",opacity:".8"},to:{transform:"scale(0.8) translateZ(-200px)",opacity:"0"},when:"leave",duration:.5};return new RotationTransition(effect)}]),angular.module("fx.transitions.scales",["fx.transitions.create"]).animation(".shrink-in",["SlideTransition",function(SlideTransition){var effect={from:{opacity:"0",transform:"translateZ(0) scale(1.2)"},duration:.5};return new SlideTransition(effect)}]).animation(".shrink-out",["SlideTransition",function(SlideTransition){var effect={to:{opacity:"0",transform:"translateZ(0) scale(.8)"},duration:.5};return new SlideTransition(effect)}]).animation(".grow-in",["SlideTransition",function(SlideTransition){var effect={from:{opacity:"0",transform:"translateZ(0) scale(.8)"},duration:.5};return new SlideTransition(effect)}]).animation(".grow-out",["SlideTransition",function(SlideTransition){var effect={to:{opacity:"0",transform:"translateZ(0) scale(1.2)"},duration:.5};return new SlideTransition(effect)}]),angular.module("fx.transitions.slides",["fx.transitions.create"]).animation(".slide-in-left",["SlideTransition",function(SlideTransition){var effect={from:{transform:"translateZ(0) translateX(100%)"},duration:2};return new SlideTransition(effect)}]).animation(".slide-out-left",["SlideTransition",function(SlideTransition){var effect={to:{transform:"translateZ(0) translateX(-100%)"},duration:2};return new SlideTransition(effect)}]).animation(".slide-in-right",["SlideTransition",function(SlideTransition){var effect={from:{transform:"translateZ(0) translateX(-100%)"},duration:2};return new SlideTransition(effect)}]).animation(".slide-out-right",["SlideTransition",function(SlideTransition){var effect={to:{transform:"translateZ(0) translateX(100%)"},duration:2};return new SlideTransition(effect)}]).animation(".slide-in-down",["SlideTransition",function(SlideTransition){var effect={from:{transform:"translateZ(0) translateY(-100%)"},duration:2};return new SlideTransition(effect)}]).animation(".slide-out-down",["SlideTransition",function(SlideTransition){var effect={to:{transform:"translateZ(0) translateY(100%)"},duration:2};return new SlideTransition(effect)}]).animation(".slide-in-up",["SlideTransition",function(SlideTransition){var effect={from:{transform:"translateZ(0) translateY(100%)"},duration:2};return new SlideTransition(effect)}]).animation(".slide-out-up",["SlideTransition",function(SlideTransition){var effect={to:{transform:"translateZ(0) translateY(-100%)"},duration:2};return new SlideTransition(effect)}]).animation(".slide-in-left-fade",["SlideTransition",function(SlideTransition){var effect={from:{opacity:"0.3",transform:"translateZ(0) translateX(100%)"},duration:2};return new SlideTransition(effect)}]).animation(".slide-out-left-fade",["SlideTransition",function(SlideTransition){var effect={to:{opacity:"0.3",transform:"translateZ(0) translateX(-100%)"},duration:2};return new SlideTransition(effect)}]).animation(".slide-in-right-fade",["SlideTransition",function(SlideTransition){var effect={from:{opacity:"0.3",transform:"translateZ(0) translateX(-100%)"},duration:2};return new SlideTransition(effect)}]).animation(".slide-out-right-fade",["SlideTransition",function(SlideTransition){var effect={to:{opacity:"0.3",transform:"translateZ(0) translateX(100%)"},duration:2};return new SlideTransition(effect)}]).animation(".slide-in-down-fade",["SlideTransition",function(SlideTransition){var effect={from:{opacity:"0.3",transform:"translateZ(0) translateY(-100%)"},duration:2};return new SlideTransition(effect)}]).animation(".slide-out-down-fade",["SlideTransition",function(SlideTransition){var effect={to:{opacity:"0.3",transform:"translateZ(0) translateY(100%)"},duration:2};return new SlideTransition(effect)}]).animation(".slide-in-up-fade",["SlideTransition",function(SlideTransition){var effect={from:{opacity:"0.3",transform:"translateZ(0) translateY(100%)"},duration:2};return new SlideTransition(effect)}]).animation(".slide-out-up-fade",["SlideTransition",function(SlideTransition){var effect={to:{opacity:"0.3",transform:"translateZ(0) translateY(-100%)"},duration:2};return new SlideTransition(effect)}]),angular.module("fx.transitions.specials",[]).animation(".fx-fall-out",function(){return{leave:function(el,done){el.css("z-index","9999");var page=new TimelineMax({onComplete:done});page.to(el,{transform:"rotateZ(0deg)"}).to(el,.1,{transform:"rotateZ(10deg)"}).to(el,.3,{transform:"rotateZ(17deg)"}).to(el,.5,{transform:"rotateZ(15deg)"}).to(el,.2,{transform:"translateY(100%) rotateZ(17deg)"})}}}),angular.module("fx.animations.pulse",["fx.animations.assist"]).animation(".fx-pulse",["Assist",function(Assist){return{animate:function(element,className,to,from,done){var effect=[{effect:{transform:"scale3d(1,1,1)"}},{effect:{transform:"scale3d(1.05, 1.05, 1.05)"}},{effect:{transform:"scale3d(1, 1, 1)"}}],options=Assist.parseClassList(element);options.motion="addClass",options.animation="pulse";var eachTime=options.duration/effect.length;Assist.addTimer(options,element,done);var pulse=new TimelineMax;angular.forEach(effect,function(step,pos){step.easing=options.ease.easeInOut,pulse=pulse.to(element,eachTime,step.effect)})}}}]),angular.module("fx.animations.tada",["fx.animations.assist"]).animation(".fx-tada",["Assist",function(Assist){return{animate:function(element,classname,done){var effect=[{effect:{transform:"scale3d(1,1,1)"}},{effect:{transform:"scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg)"}},{effect:{transform:"scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg)"}},{effect:{transform:"scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg)"}},{effect:{transform:"scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg)"}},{effect:{transform:"scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg)"}},{effect:{transform:"scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg)"}},{effect:{transform:"scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg)"}},{effect:{transform:"scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg)"}},{effect:{transform:"scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg)"}},{effect:{transform:" scale3d(1, 1, 1)"}}],options=Assist.parseClassList(element);options.motion="addClass",options.animation="tada";var eachTime=options.duration/effect.length;Assist.addTimer(options,element,done);var tada=new TimelineMax;angular.forEach(effect,function(step,pos){step.easing=options.ease.easeInOut,tada=tada.to(element,eachTime,step.effect)})}}}]),angular.module("fx.animations.bounces",["fx.animations.bounces.factory"]).animation(".fx-bounce-normal",["BounceAnimation",function(BounceAnimation){var effect={first:{opacity:0,transform:"scale(.3)"},mid:{opacity:1,transform:"scale(1.05)"},third:{transform:"scale(.9)"},end:{opacity:1,transform:"scale(1)"},animation:"bounce-normal"};return new BounceAnimation(effect)}]).animation(".fx-bounce-down",["BounceAnimation",function(BounceAnimation){var effect={first:{opacity:0,transform:"translateY(-2000px)"},mid:{opacity:1,transform:"translateY(30px)"},third:{transform:"translateY(-10px)"},end:{transform:"translateY(0)"},animation:"bounce-down"};return new BounceAnimation(effect)}]).animation(".fx-bounce-left",["BounceAnimation",function(BounceAnimation){var effect={first:{opacity:0,transform:"translateX(-2000px)"},mid:{opacity:1,transform:"translateX(30px)"},third:{transform:"translateX(-10px)"},end:{transform:"translateX(0)"},animation:"bounce-left"};return new BounceAnimation(effect)}]).animation(".fx-bounce-up",["BounceAnimation",function(BounceAnimation){var effect={first:{opacity:0,transform:"translateY(2000px)"},mid:{opacity:1,transform:"translateY(-30px)"},third:{transform:"translateY(10px)"},end:{transform:"translateY(0)"},animation:"bounce-up"};return new BounceAnimation(effect)}]).animation(".fx-bounce-right",["BounceAnimation",function(BounceAnimation){var effect={first:{opacity:0,transform:"translateX(2000px)"},mid:{opacity:1,transform:"translateX(-30px)"},third:{transform:"translateX(10px)"},end:{transform:"translateX(0)"},animation:"bounce-right"};return new BounceAnimation(effect)}]),angular.module("fx.animations.bounces.factory",["fx.animations.assist"]).factory("BounceAnimation",["$timeout","$window","Assist",function($timeout,$window,Assist){return function(effect){var start=effect.first,mid=effect.mid,third=effect.third,end=effect.end,fx_type=effect.animation,startTime=.1;this.enter=function(element,done){var options=Assist.parseClassList(element);options.motion="enter",options.animation=fx_type,options.timeoutKey=Assist.timeoutKey,options.stagger=!0,Assist.addTimer(options,element,done);var enter=new TimelineMax;return enter.to(element,.01,start),enter.to(element,options.duration,mid),enter.to(element,options.duration,third),enter.to(element,options.duration,end),function(canceled){if(canceled){var timer=element.data(Assist.timeoutKey);timer&&Assist.removeTimer(element,Assist.timeoutKey,timer)}}},this.leave=function(element,done){var options=Assist.parseClassList(element);options.motion="leave",options.animation=fx_type,options.timeoutKey=Assist.timeoutKey,options.stagger=!0,Assist.addTimer(options,element,done);var leave=new TimelineMax;return leave.to(element,startTime,end),leave.to(element,options.duration,third),leave.to(element,options.duration,mid),leave.to(element,options.duration,start),function(canceled){if(canceled){var timer=element.data(timeoutKey);timer&&Assist.removeTimer(element,Assist.timeoutKey,timer)}}},this.move=this.enter,this.addClass=function(element,className,done){if(className){var options=Assist.parseClassList(element);options.motion="enter",options.animation=fx_type,options.timeoutKey=Assist.timeoutKey,Assist.addTimer(options,element,done);var bac=new TimelineMax;return bac.to(element,startTime,end),bac.to(element,options.duration,third),bac.to(element,options.duration,mid),bac.to(element,options.duration,start),function(canceled){if(canceled){var timer=element.data(timeoutKey);timer&&Assist.removeTimer(element,Assist.timeoutKey,timer)}}}done()},this.removeClass=function(element,className,done){if(className){var options=Assist.parseClassList(element);options.motion="leave",options.animation=fx_type,options.timeoutKey=Assist.timeoutKey;var rc=new TimelineMax;return rc.to(element,startTime,start),rc.to(element,options.duration,mid),rc.to(element,options.duration,third),rc.to(element,options.duration,end),function(canceled){if(canceled){var timer=element.data(timeoutKey);timer&&Assist.removeTimer(element,Assist.timeoutKey,timer)}}}done()}}}]),angular.module("fx.animations.fades",["fx.animations.fades.factory"]).animation(".fx-fade-normal",["FadeAnimation",function(FadeAnimation){var effect={enter:{opacity:1},leave:{opacity:0},animation:"fade-normal"};return new FadeAnimation(effect)}]).animation(".fx-fade-down",["FadeAnimation",function(FadeAnimation){var effect={enter:{opacity:1,transform:"translateY(0)"},leave:{opacity:0,transform:"translateY(-20px)"},inverse:{opacity:0,transform:"translateY(20px)"},animation:"fade-down"};return new FadeAnimation(effect)}]).animation(".fx-fade-down-big",["FadeAnimation",function(FadeAnimation){var effect={enter:{opacity:1,transform:"translateY(0)"},leave:{opacity:0,transform:"translateY(-2000px)"},inverse:{opacity:0,transform:"translateY(2000px)"},animation:"fade-down-big"};return new FadeAnimation(effect)}]).animation(".fx-fade-left",["FadeAnimation",function(FadeAnimation){var effect={enter:{opacity:1,transform:"translateX(0)"},leave:{opacity:0,transform:"translateX(-20px)"},inverse:{opacity:0,transform:"translateX(20px)"},animation:"fade-left"};return new FadeAnimation(effect)}]).animation(".fx-fade-left-big",["FadeAnimation",function(FadeAnimation){var effect={enter:{opacity:1,transform:"translateX(0)"},leave:{opacity:0,transform:"translateX(-2000px)"},inverse:{opacity:0,transform:"translateX(2000px)"},animation:"fade-left-big"};return new FadeAnimation(effect)}]).animation(".fx-fade-right",["FadeAnimation",function(FadeAnimation){var effect={enter:{opacity:1,transform:"translateX(0)"},leave:{opacity:0,transform:"translateX(20px)"},inverse:{opacity:0,transform:"translateX(-20px)"},animation:"fade-right"};return new FadeAnimation(effect)}]).animation(".fx-fade-right-big",["FadeAnimation",function(FadeAnimation){var effect={enter:{opacity:1,transform:"translateX(0)"},leave:{opacity:0,transform:"translateX(2000px)"},inverse:{opacity:0,transform:"translateX(-2000px)"},animation:"fade-right-big"};return new FadeAnimation(effect)}]).animation(".fx-fade-up",["FadeAnimation",function(FadeAnimation){var effect={enter:{opacity:1,transform:"translateY(0)"},leave:{opacity:0,transform:"translateY(20px)"},inverse:{opacity:0,transform:"translateY(-20px)"},animation:"fade-up"};return new FadeAnimation(effect)}]).animation(".fx-fade-up-big",["FadeAnimation",function(FadeAnimation){var effect={enter:{opacity:1,transform:"translateY(0)"},leave:{opacity:0,transform:"translateY(2000px)"},inverse:{opacity:0,transform:"translateY(-2000px)"},animation:"fade-up-big"};return new FadeAnimation(effect)}]).animation(".fx-fade-overlay",["FadeAnimation",function(FadeAnimation){var effect={enter:{opacity:.7},leave:{opacity:0},inverse:{opacity:0},animation:"fade-overlay"};return new FadeAnimation(effect)}]),angular.module("fx.animations.fades.factory",["fx.animations.assist"]).factory("FadeAnimation",["$timeout","$window","Assist",function($timeout,$window,Assist){return function(effect){var inEffect=effect.enter,outEffect=effect.leave,outEffectLeave=effect.inverse||effect.leave,fx_type=effect.animation;this.enter=function(element,done){var options=Assist.parseClassList(element);return options.motion="enter",options.animation=fx_type,options.timeoutKey=Assist.timeoutKey,Assist.addTimer(options,element,done),inEffect.ease=options.ease.easeOut,TweenMax.set(element,outEffect),TweenMax.to(element,options.duration,inEffect),function(canceled){var timer=element.data(timeoutKey);canceled&&timer&&Assist.removeTimer(element,Assist.timeoutKey,timer)}},this.leave=function(element,done){var options=Assist.parseClassList(element);return options.motion="leave",options.animation=fx_type,options.timeoutKey=Assist.timeoutKey,Assist.addTimer(options,element,done),outEffectLeave.ease=options.ease.easeIn,TweenMax.set(element,inEffect),TweenMax.to(element,options.duration,outEffectLeave),function(canceled){var timer=element.data(Assist.timeoutKey);canceled&&timer&&Assist.removeTimer(element,Assist.timeoutKey,timer)}},this.move=this.enter,this.addClass=function(element,className,done){if(className){var options=Assist.parseClassList(element);return options.motion="enter",options.animation=fx_type,options.timeoutKey=Assist.timeoutKey,Assist.addTimer(options,element,done),TweenMax.to(element,options.duration,outEffectLeave),function(canceled){if(canceled){var timer=element.data(timeoutKey);timer&&Assist.removeTimer(element,Assist.timeoutKey,timer)}}}done()},this.removeClass=function(element,className,done){if(className){var options=Assist.parseClassList(element);return options.motion="leave",options.animation=fx_type,options.timeoutKey=Assist.timeoutKey,TweenMax.set(element,outEffect),TweenMax.to(element,options.duration,inEffect),function(canceled){if(canceled){var timer=element.data(timeoutKey);timer&&Assist.removeTimer(element,Assist.timeoutKey,timer)}}}done()}}}]),angular.module("fx.animations.rotations",["fx.animations.rotations.factory"]).animation(".fx-rotate-counterclock",["RotateAnimation",function(RotateAnimation){var effect={start:{opacity:0,transformOrigin:"center center",transform:"rotate(-200deg)"},end:{opacity:1,transformOrigin:"center center",transform:"rotate(0)"},inverse:{opacity:0,transformOrigin:"center center",transform:"rotate(200deg)"},animation:"rotate-counterclock"};return new RotateAnimation(effect)}]).animation(".fx-rotate-clock",["RotateAnimation",function(RotateAnimation){var effect={start:{opacity:0,transformOrigin:"center center",transform:"rotate(200deg)"},end:{opacity:1,transformOrigin:"center center",transform:"rotate(0)"},inverse:{opacity:0,transformOrigin:"center center",transform:"rotate(-200deg)"},animation:"rotate-clock"};return new RotateAnimation(effect)}]).animation(".fx-rotate-clock-left",["RotateAnimation",function(RotateAnimation){var effect={start:{opacity:0,transformOrigin:"left bottom",transform:"rotate(-90deg)"},end:{opacity:1,transformOrigin:"left bottom",transform:"rotate(0)"},inverse:{opacity:0,transformOrigin:"left bottom",transform:"rotate(90deg)"},animation:"rotate-clock-left"};return new RotateAnimation(effect)}]).animation(".fx-rotate-counterclock-right",["RotateAnimation",function(RotateAnimation){var effect={start:{opacity:0,transformOrigin:"right bottom",transform:"rotate(90deg)"},end:{opacity:1,transformOrigin:"right bottom",transform:"rotate(0)"},inverse:{opacity:0,transformOrigin:"right bottom",transform:"rotate(-90deg)"},animation:"rotate-counterclock-right"};return new RotateAnimation(effect)}]).animation(".fx-rotate-counterclock-up",["RotateAnimation",function(RotateAnimation){var effect={start:{opacity:0,transformOrigin:"left bottom",transform:"rotate(90deg)"},end:{opacity:1,transformOrigin:"left bottom",transform:"rotate(0)"},inverse:{opacity:0,transformOrigin:"left bottom",transform:"rotate(-90deg)"},animation:"rotate-counterclock-up"};return new RotateAnimation(effect)}]).animation(".fx-rotate-clock-up",["RotateAnimation",function(RotateAnimation){var effect={start:{opacity:0,transformOrigin:"right bottom",transform:"rotate(-90deg)"},end:{opacity:1,transformOrigin:"right bottom",transform:"rotate(0)"},inverse:{opacity:0,transformOrigin:"right bottom",transform:"rotate(90deg)"},animation:"rotate-clock-up"};return new RotateAnimation(effect)}]),angular.module("fx.animations.rotations.factory",["fx.animations.assist"]).factory("RotateAnimation",["$timeout","$window","Assist",function($timeout,$window,Assist){return function(effect){var start=effect.start,end=effect.end,leaveEnd=effect.inverse,fx_type=effect.animation;this.enter=function(element,done){var options=Assist.parseClassList(element);return options.motion="enter",options.animation=fx_type,options.timeoutKey=Assist.timeoutKey,end.ease=options.ease.easeOut,Assist.addTimer(options,element,done),TweenMax.set(element,start),TweenMax.to(element,options.duration,end),function(canceled){if(canceled){var timer=element.data(Assist.timeoutKey);timer&&Assist.removeTimer(element,Assist.timeoutKey,timer)}}},this.leave=function(element,done){var options=Assist.parseClassList(element);return options.motion="leave",options.animation=fx_type,options.timeoutKey=Assist.timeoutKey,leaveEnd.ease=options.ease.easeIn,Assist.addTimer(options,element,done),TweenMax.set(element,end),TweenMax.to(element,options.duration,leaveEnd),function(canceled){if(canceled){var timer=element.data(timeoutKey);timer&&Assist.removeTimer(element,Assist.timeoutKey,timer)}}},this.move=this.enter,this.addClass=function(element,className,done){if(className){var options=Assist.parseClassList(element);return options.motion="enter",options.animation=fx_type,options.timeoutKey=Assist.timeoutKey,Assist.addTimer(options,element,done),TweenMax.set(element,end),TweenMax.to(element,options.duration,start),
  function(canceled){if(canceled){var timer=element.data(timeoutKey);timer&&Assist.removeTimer(element,Assist.timeoutKey,timer)}}}done()},this.removeClass=function(element,className,done){if(className){var options=Assist.parseClassList(element);return options.motion="enter",options.animation=fx_type,options.timeoutKey=Assist.timeoutKey,Assist.addTimer(options,element,done),TweenMax.set(element,start),TweenMax.to(element,options.duration,end),function(canceled){if(canceled){var timer=element.data(timeoutKey);timer&&Assist.removeTimer(element,Assist.timeoutKey,timer)}}}done()}}}]),angular.module("fx.animations.zooms",["fx.animations.zooms.factory"]).animation(".fx-zoom-normal",["ZoomAnimation",function(ZoomAnimation){var effect={start:{opacity:0,transform:"scale(.3)"},end:{opacity:1,transform:"scale(1)"},animation:"zoom-normal"};return new ZoomAnimation(effect)}]).animation(".fx-zoom-down",["ZoomAnimation",function(ZoomAnimation){var effect={start:{opacity:0,transform:"scale(.1) translateY(-2000px)"},end:{opacity:1,transform:"scale(1) translateY(0)"},animation:"zoom-down"};return new ZoomAnimation(effect)}]).animation(".fx-zoom-up",["ZoomAnimation",function(ZoomAnimation){var effect={start:{opacity:0,transform:"scale(.1) translateY(2000px)"},end:{opacity:1,transform:"scale(1) translateY(0)"},animation:"zoom-up"};return new ZoomAnimation(effect)}]).animation(".fx-zoom-right",["ZoomAnimation",function(ZoomAnimation){var effect={start:{opacity:0,transform:"scale(.1) translateX(2000px)"},end:{opacity:1,transform:"scale(1) translateX(0)"},animation:"zoom-right"};return new ZoomAnimation(effect)}]).animation(".fx-zoom-left",["ZoomAnimation",function(ZoomAnimation){var effect={start:{opacity:0,transform:"scale(.1) translateX(-2000px)"},end:{opacity:1,transform:"scale(1) translateX(0)"},animation:"zoom-left"};return new ZoomAnimation(effect)}]),angular.module("fx.animations.zooms.factory",["fx.animations.assist"]).factory("ZoomAnimation",["$timeout","$window","Assist",function($timeout,$window,Assist){return function(effect){var start=effect.start,end=effect.end,fx_type=effect.animation;this.enter=function(element,done){var options=Assist.parseClassList(element);return options.motion="enter",options.animation=fx_type,options.timeoutKey=Assist.timeoutKey,end.ease=options.ease.easeOut,Assist.addTimer(options,element,done),TweenMax.set(element,start),TweenMax.to(element,options.duration,end),function(canceled){if(canceled){var timer=element.data(Assist.timeoutKey);timer&&Assist.removeTimer(element,Assist.timeoutKey,timer)}}},this.leave=function(element,done){var options=Assist.parseClassList(element);return options.motion="leave",options.animation=fx_type,options.timeoutKey=Assist.timeoutKey,start.ease=options.ease.easeIn,Assist.addTimer(options,element,done),TweenMax.set(element,end),TweenMax.to(element,options.duration,start),function(canceled){if(canceled){var timer=element.data(timeoutKey);timer&&Assist.removeTimer(element,Assist.timeoutKey,timer)}}},this.move=this.enter,this.removeClass=function(element,className,done){if("ng-hide"===className){var options=Assist.parseClassList(element);return options.motion="leave",options.animation=fx_type,options.timeoutKey=Assist.timeoutKey,Assist.addTimer(options,element,done),TweenMax.set(element,start),TweenMax.to(element,options.duration,end),function(canceled){if(canceled){var timer=element.data(timeoutKey);timer&&Assist.removeTimer(element,Assist.timeoutKey,timer)}}}done()},this.addClass=function(element,className,done){if("ng-hide"===className){var options=Assist.parseClassList(element);return options.motion="enter",options.animation=fx_type,options.timeoutKey=Assist.timeoutKey,Assist.addTimer(options,element,done),TweenMax.set(element,end),TweenMax.to(element,options.duration,start),function(canceled){if(canceled){var timer=element.data(timeoutKey);timer&&Assist.removeTimer(element,Assist.timeoutKey,timer)}}}done()}}}])}(angular,TweenMax,TimelineMax);