1jQuery.easing.jswing=jQuery.easing.swing;jQuery.extend(jQuery.easing,{def:"easeOutQuad",swing:function(n,t,i,r,u){return jQuery.easing[jQuery.easing.def](n,t,i,r,u)},easeInQuad:function(n,t,i,r,u){return r*(t/=u)*t+i},easeOutQuad:function(n,t,i,r,u){return-r*(t/=u)*(t-2)+i},easeInOutQuad:function(n,t,i,r,u){return(t/=u/2)<1?r/2*t*t+i:-r/2*(--t*(t-2)-1)+i},easeInCubic:function(n,t,i,r,u){return r*(t/=u)*t*t+i},easeOutCubic:function(n,t,i,r,u){return r*((t=t/u-1)*t*t+1)+i},easeInOutCubic:function(n,t,i,r,u){return(t/=u/2)<1?r/2*t*t*t+i:r/2*((t-=2)*t*t+2)+i},easeInQuart:function(n,t,i,r,u){return r*(t/=u)*t*t*t+i},easeOutQuart:function(n,t,i,r,u){return-r*((t=t/u-1)*t*t*t-1)+i},easeInOutQuart:function(n,t,i,r,u){return(t/=u/2)<1?r/2*t*t*t*t+i:-r/2*((t-=2)*t*t*t-2)+i},easeInQuint:function(n,t,i,r,u){return r*(t/=u)*t*t*t*t+i},easeOutQuint:function(n,t,i,r,u){return r*((t=t/u-1)*t*t*t*t+1)+i},easeInOutQuint:function(n,t,i,r,u){return(t/=u/2)<1?r/2*t*t*t*t*t+i:r/2*((t-=2)*t*t*t*t+2)+i},easeInSine:function(n,t,i,r,u){return-r*Math.cos(t/u*(Math.PI/2))+r+i},easeOutSine:function(n,t,i,r,u){return r*Math.sin(t/u*(Math.PI/2))+i},easeInOutSine:function(n,t,i,r,u){return-r/2*(Math.cos(Math.PI*t/u)-1)+i},easeInExpo:function(n,t,i,r,u){return t==0?i:r*Math.pow(2,10*(t/u-1))+i},easeOutExpo:function(n,t,i,r,u){return t==u?i+r:r*(-Math.pow(2,-10*t/u)+1)+i},easeInOutExpo:function(n,t,i,r,u){return t==0?i:t==u?i+r:(t/=u/2)<1?r/2*Math.pow(2,10*(t-1))+i:r/2*(-Math.pow(2,-10*--t)+2)+i},easeInCirc:function(n,t,i,r,u){return-r*(Math.sqrt(1-(t/=u)*t)-1)+i},easeOutCirc:function(n,t,i,r,u){return r*Math.sqrt(1-(t=t/u-1)*t)+i},easeInOutCirc:function(n,t,i,r,u){return(t/=u/2)<1?-r/2*(Math.sqrt(1-t*t)-1)+i:r/2*(Math.sqrt(1-(t-=2)*t)+1)+i},easeInElastic:function(n,t,i,r,u){var o=1.70158,f=0,e=r;return t==0?i:(t/=u)==1?i+r:(f||(f=u*.3),e<Math.abs(r)?(e=r,o=f/4):o=f/(2*Math.PI)*Math.asin(r/e),-(e*Math.pow(2,10*(t-=1))*Math.sin((t*u-o)*2*Math.PI/f))+i)},easeOutElastic:function(n,t,i,r,u){var o=1.70158,f=0,e=r;return t==0?i:(t/=u)==1?i+r:(f||(f=u*.3),e<Math.abs(r)?(e=r,o=f/4):o=f/(2*Math.PI)*Math.asin(r/e),e*Math.pow(2,-10*t)*Math.sin((t*u-o)*2*Math.PI/f)+r+i)},easeInOutElastic:function(n,t,i,r,u){var o=1.70158,f=0,e=r;return t==0?i:(t/=u/2)==2?i+r:(f||(f=u*.3*1.5),e<Math.abs(r)?(e=r,o=f/4):o=f/(2*Math.PI)*Math.asin(r/e),t<1)?-.5*e*Math.pow(2,10*(t-=1))*Math.sin((t*u-o)*2*Math.PI/f)+i:e*Math.pow(2,-10*(t-=1))*Math.sin((t*u-o)*2*Math.PI/f)*.5+r+i},easeInBack:function(n,t,i,r,u,f){return f==undefined&&(f=1.70158),r*(t/=u)*t*((f+1)*t-f)+i},easeOutBack:function(n,t,i,r,u,f){return f==undefined&&(f=1.70158),r*((t=t/u-1)*t*((f+1)*t+f)+1)+i},easeInOutBack:function(n,t,i,r,u,f){return(f==undefined&&(f=1.70158),(t/=u/2)<1)?r/2*t*t*(((f*=1.525)+1)*t-f)+i:r/2*((t-=2)*t*(((f*=1.525)+1)*t+f)+2)+i},easeInBounce:function(n,t,i,r,u){return r-jQuery.easing.easeOutBounce(n,u-t,0,r,u)+i},easeOutBounce:function(n,t,i,r,u){return(t/=u)<1/2.75?r*7.5625*t*t+i:t<2/2.75?r*(7.5625*(t-=1.5/2.75)*t+.75)+i:t<2.5/2.75?r*(7.5625*(t-=2.25/2.75)*t+.9375)+i:r*(7.5625*(t-=2.625/2.75)*t+.984375)+i},easeInOutBounce:function(n,t,i,r,u){return t<u/2?jQuery.easing.easeInBounce(n,t*2,0,r,u)*.5+i:jQuery.easing.easeOutBounce(n,t*2-u,0,r,u)*.5+r*.5+i}}); 2;;;(function(n){typeof define=="function"&&define.amd?define(["jquery"],n):n(jQuery)})(function(n){function i(n){return t.raw?n:decodeURIComponent(n.replace(u," "))}function r(n){n.indexOf('"')===0&&(n=n.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,"\\"));n=i(n);try{return t.json?JSON.parse(n):n}catch(r){}}var u=/\+/g,t=n.cookie=function(u,f,e){var l,h,c,o,s,a;if(f!==undefined)return e=n.extend({},t.defaults,e),typeof e.expires=="number"&&(l=e.expires,h=e.expires=new Date,h.setDate(h.getDate()+l)),f=t.json?JSON.stringify(f):String(f),document.cookie=[t.raw?u:encodeURIComponent(u),"=",t.raw?f:encodeURIComponent(f),e.expires?"; expires="+e.expires.toUTCString():"",e.path?"; path="+e.path:"",e.domain?"; domain="+e.domain:"",e.secure?"; secure":""].join("");for(c=document.cookie.split("; "),o=u?undefined:{},s=0,a=c.length;s<a;s++){var v=c[s].split("="),y=i(v.shift()),p=v.join("=");if(u&&u===y){o=r(p);break}u||(o[y]=r(p))}return o};t.defaults={};
2n.removeCookie=function(t,i){return n.cookie(t)!==undefined?(n.cookie(t,"",n.extend({},i,{expires:-1})),!0):!1}}); 3;;;if(typeof jQuery==='undefined'){throw new Error('Bootstrap\'s JavaScript requires jQuery')} 4+function($){'use strict';var version=$.fn.jquery.split(' ')[0].split('.') 5if((version[0]<2&&version[1]<9)||(version[0]==1&&version[1]==9&&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') 6var transEndEventNames={WebkitTransition:'webkitTransitionEnd',MozTransition:'transitionend',OTransition:'oTransitionEnd otransitionend',transition:'transitionend'} 7for(var name in transEndEventNames){if(el.style[name]!==undefined){return{end:transEndEventNames[name]}}} 8return false} 9$.fn.emulateTransitionEnd=function(duration){var called=false 10var $el=this 11$(this).one('bsTransitionEnd',function(){called=true}) 12var callback=function(){if(!called)$($el).trigger($.support.transition.end)} 13setTimeout(callback,duration) 14return this} 15$(function(){$.support.transition=transitionEnd() 16if(!$.support.transition)return 17$.event.special.bsTransitionEnd={bindType:$.support.transition.end,delegateType:$.supp
vendor: 45,653 bytes, lines 17-757
17ort.transition.end,handle:function(e){if($(e.target).is(this))return e.handleObj.handler.apply(this,arguments)}}})}(jQuery);+function($){'use strict';var dismiss='[data-dismiss="alert"]' 18var Alert=function(el){$(el).on('click',dismiss,this.close)} 19Alert.VERSION='3.3.2' 20Alert.TRANSITION_DURATION=150 21Alert.prototype.close=function(e){var $this=$(this) 22var selector=$this.attr('data-target') 23if(!selector){selector=$this.attr('href') 24selector=selector&&selector.replace(/.*(?=#[^\s]*$)/,'')} 25var $parent=$(selector) 26if(e)e.preventDefault() 27if(!$parent.length){$parent=$this.closest('.alert')} 28$parent.trigger(e=$.Event('close.bs.alert')) 29if(e.isDefaultPrevented())return 30$parent.removeClass('in') 31function removeElement(){$parent.detach().trigger('closed.bs.alert').remove()} 32$.support.transition&&$parent.hasClass('fade')?$parent.one('bsTransitionEnd',removeElement).emulateTransitionEnd(Alert.TRANSITION_DURATION):removeElement()} 33function Plugin(option){return this.each(function(){var $this=$(this) 34var data=$this.data('bs.alert') 35if(!data)$this.data('bs.alert',(data=new Alert(this))) 36if(typeof option=='string')data[option].call($this)})} 37var old=$.fn.alert 38$.fn.alert=Plugin 39$.fn.alert.Constructor=Alert 40$.fn.alert.noConflict=function(){$.fn.alert=old 41return this} 42$(document).on('click.bs.alert.data-api',dismiss,Alert.prototype.close)}(jQuery);+function($){'use strict';var Button=function(element,options){this.$element=$(element) 43this.options=$.extend({},Button.DEFAULTS,options) 44this.isLoading=false} 45Button.VERSION='3.3.2' 46Button.DEFAULTS={loadingText:'loading...'} 47Button.prototype.setState=function(state){var d='disabled' 48var $el=this.$element 49var val=$el.is('input')?'val':'html' 50var data=$el.data() 51state=state+'Text' 52if(data.resetText==null)$el.data('resetText',$el[val]()) 53setTimeout($.proxy(function(){$el[val](data[state]==null?this.options[state]:data[state]) 54if(state=='loadingText'){this.isLoading=true 55$el.addClass(d).attr(d,d)}else if(this.isLoading){this.isLoading=false 56$el.removeClass(d).removeAttr(d)}},this),0)} 57Button.prototype.toggle=function(){var changed=true 58var $parent=this.$element.closest('[data-toggle="buttons"]') 59if($parent.length){var $input=this.$element.find('input') 60if($input.prop('type')=='radio'){if($input.prop('checked')&&this.$element.hasClass('active'))changed=false 61else $parent.find('.active').removeClass('active')} 62if(changed)$input.prop('checked',!this.$element.hasClass('active')).trigger('change')}else{this.$element.attr('aria-pressed',!this.$element.hasClass('active'))} 63if(changed)this.$element.toggleClass('active')} 64function Plugin(option){return this.each(function(){var $this=$(this) 65var data=$this.data('bs.button') 66var options=typeof option=='object'&&option 67if(!data)$this.data('bs.button',(data=new Button(this,options))) 68if(option=='toggle')data.toggle() 69else if(option)data.setState(option)})} 70var old=$.fn.button 71$.fn.button=Plugin 72$.fn.button.Constructor=Button 73$.fn.button.noConflict=function(){$.fn.button=old 74return this} 75$(document).on('click.bs.button.data-api','[data-toggle^="button"]',function(e){var $btn=$(e.target) 76if(!$btn.hasClass('btn'))$btn=$btn.closest('.btn') 77Plugin.call($btn,'toggle') 78e.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';var Carousel=function(element,options){this.$element=$(element) 79this.$indicators=this.$element.find('.carousel-indicators') 80this.options=options 81this.paused=this.sliding=this.interval=this.$active=this.$items=null 82this.options.keyboard&&this.$element.on('keydown.bs.carousel',$.proxy(this.keydown,this)) 83this.options.pause=='hover'&&!('ontouchstart' in document.documentElement)&&this.$element.on('mouseenter.bs.carousel',$.proxy(this.pause,this)).on('mouseleave.bs.carousel',$.proxy(this.cycle,this))} 84Carousel.VERSION='3.3.2' 85Carousel.TRANSITION_DURATION=600 86Carousel.DEFAULTS={interval:5000,pause:'hover',wrap:true,keyboard:true} 87Carousel.prototype.keydown=function(e){if(/input|textarea/i.test(e.target.tagName))return 88switch(e.which){case 37:this.prev();break 89case 39:this.next();break 90default:return} 91e.preventDefault()} 92Carousel.prototype.cycle=function(e){e||(this.paused=false) 93this.interval&&clearInterval(this.interval) 94this.options.interval&&!this.paused&&(this.interval=setInterval($.proxy(this.next,this),this.options.interval)) 95return this} 96Carousel.prototype.getItemIndex=function(item){this.$items=item.parent().children('.item') 97return this.$items.index(item||this.$active)} 98Carousel.prototype.getItemForDirection=function(direction,active){var activeIndex=this.getItemIndex(active) 99var willWrap=(direction=='prev'&&activeIndex===0)||(direction=='next'&&activeIndex==(this.$items.length-1)) 100if(willWrap&&!this.options.wrap)return active 101var delta=direction=='prev'?-1:1 102var itemIndex=(activeIndex+delta)%this.$items.length 103return this.$items.eq(itemIndex)} 104Carousel.prototype.to=function(pos){var that=this 105var activeIndex=this.getItemIndex(this.$active=this.$element.find('.item.active')) 106if(pos>(this.$items.length-1)||pos<0)return 107if(this.sliding)return this.$element.one('slid.bs.carousel',function(){that.to(pos)}) 108if(activeIndex==pos)return this.pause().cycle() 109return this.slide(pos>activeIndex?'next':'prev',this.$items.eq(pos))} 110Carousel.prototype.pause=function(e){e||(this.paused=true) 111if(this.$element.find('.next, .prev').length&&$.support.transition){this.$element.trigger($.support.transition.end) 112this.cycle(true)} 113this.interval=clearInterval(this.interval) 114return this} 115Carousel.prototype.next=function(){if(this.sliding)return 116return this.slide('next')} 117Carousel.prototype.prev=function(){if(this.sliding)return 118return this.slide('prev')} 119Carousel.prototype.slide=function(type,next){var $active=this.$element.find('.item.active') 120var $next=next||this.getItemForDirection(type,$active) 121var isCycling=this.interval 122var direction=type=='next'?'left':'right' 123var that=this 124if($next.hasClass('active'))return(this.sliding=false) 125var relatedTarget=$next[0] 126var slideEvent=$.Event('slide.bs.carousel',{relatedTarget:relatedTarget,direction:direction}) 127this.$element.trigger(slideEvent) 128if(slideEvent.isDefaultPrevented())return 129this.sliding=true 130isCycling&&this.pause() 131if(this.$indicators.length){this.$indicators.find('.active').removeClass('active') 132var $nextIndicator=$(this.$indicators.children()[this.getItemIndex($next)]) 133$nextIndicator&&$nextIndicator.addClass('active')} 134var slidEvent=$.Event('slid.bs.carousel',{relatedTarget:relatedTarget,direction:direction}) 135if($.support.transition&&this.$element.hasClass('slide')){$next.addClass(type) 136$next[0].offsetWidth 137$active.addClass(direction) 138$next.addClass(direction) 139$active.one('bsTransitionEnd',function(){$next.removeClass([type,direction].join(' ')).addClass('active') 140$active.removeClass(['active',direction].join(' ')) 141that.sliding=false 142setTimeout(function(){that.$element.trigger(slidEvent)},0)}).emulateTransitionEnd(Carousel.TRANSITION_DURATION)}else{$active.removeClass('active') 143$next.addClass('active') 144this.sliding=false 145this.$element.trigger(slidEvent)} 146isCycling&&this.cycle() 147return this} 148function Plugin(option){return this.each(function(){var $this=$(this) 149var data=$this.data('bs.carousel') 150var options=$.extend({},Carousel.DEFAULTS,$this.data(),typeof option=='object'&&option) 151var action=typeof option=='string'?option:options.slide 152if(!data)$this.data('bs.carousel',(data=new Carousel(this,options))) 153if(typeof option=='number')data.to(option) 154else if(action)data[action]() 155else if(options.interval)data.pause().cycle()})} 156var old=$.fn.carousel 157$.fn.carousel=Plugin 158$.fn.carousel.Constructor=Carousel 159$.fn.carousel.noConflict=function(){$.fn.carousel=old 160return this} 161var clickHandler=function(e){var href 162var $this=$(this) 163var $target=$($this.attr('data-target')||(href=$this.attr('href'))&&href.replace(/.*(?=#[^\s]+$)/,'')) 164if(!$target.hasClass('carousel'))return 165var options=$.extend({},$target.data(),$this.data()) 166var slideIndex=$this.attr('data-slide-to') 167if(slideIndex)options.interval=false 168Plugin.call($target,options) 169if(slideIndex){$target.data('bs.carousel').to(slideIndex)} 170e.preventDefault()} 171$(document).on('click.bs.carousel.data-api','[data-slide]',clickHandler).on('click.bs.carousel.data-api','[data-slide-to]',clickHandler) 172$(window).on('load',function(){$('[data-ride="carousel"]').each(function(){var $carousel=$(this) 173Plugin.call($carousel,$carousel.data())})})}(jQuery);+function($){'use strict';var Collapse=function(element,options){this.$element=$(element) 174this.options=$.extend({},Collapse.DEFAULTS,options) 175this.$trigger=$(this.options.trigger).filter('[href="#'+element.id+'"], [data-target="#'+element.id+'"]') 176this.transitioning=null 177if(this.options.parent){this.$parent=this.getParent()}else{this.addAriaAndCollapsedClass(this.$element,this.$trigger)} 178if(this.options.toggle)this.toggle()} 179Collapse.VERSION='3.3.2' 180Collapse.TRANSITION_DURATION=350 181Collapse.DEFAULTS={toggle:true,trigger:'[data-toggle="collapse"]'} 182Collapse.prototype.dimension=function(){var hasWidth=this.$element.hasClass('width') 183return hasWidth?'width':'height'} 184Collapse.prototype.show=function(){if(this.transitioning||this.$element.hasClass('in'))return 185var activesData 186var actives=this.$parent&&this.$parent.children('.panel').children('.in, .collapsing') 187if(actives&&actives.length){activesData=actives.data('bs.collapse') 188if(activesData&&activesData.transitioning)return} 189var startEvent=$.Event('show.bs.collapse') 190this.$element.trigger(startEvent) 191if(startEvent.isDefaultPrevented())return 192if(actives&&actives.length){Plugin.call(actives,'hide') 193activesData||actives.data('bs.collapse',null)} 194var dimension=this.dimension() 195this.$element.removeClass('collapse').addClass('collapsing')[dimension](0).attr('aria-expanded',true) 196this.$trigger.removeClass('collapsed').attr('aria-expanded',true) 197this.transitioning=1 198var complete=function(){this.$element.removeClass('collapsing').addClass('collapse in')[dimension]('') 199this.transitioning=0 200this.$element.trigger('shown.bs.collapse')} 201if(!$.support.transition)return complete.call(this) 202var scrollSize=$.camelCase(['scroll',dimension].join('-')) 203this.$element.one('bsTransitionEnd',$.proxy(complete,this)).emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize])} 204Collapse.prototype.hide=function(){if(this.transitioning||!this.$element.hasClass('in'))return 205var startEvent=$.Event('hide.bs.collapse') 206this.$element.trigger(startEvent) 207if(startEvent.isDefaultPrevented())return 208var dimension=this.dimension() 209this.$element[dimension](this.$element[dimension]())[0].offsetHeight 210this.$element.addClass('collapsing').removeClass('collapse in').attr('aria-expanded',false) 211this.$trigger.addClass('collapsed').attr('aria-expanded',false) 212this.transitioning=1 213var complete=function(){this.transitioning=0 214this.$element.removeClass('collapsing').addClass('collapse').trigger('hidden.bs.collapse')} 215if(!$.support.transition)return complete.call(this) 216this.$element 217[dimension](0).one('bsTransitionEnd',$.proxy(complete,this)).emulateTransitionEnd(Collapse.TRANSITION_DURATION)} 218Collapse.prototype.toggle=function(){this[this.$element.hasClass('in')?'hide':'show']()} 219Collapse.prototype.getParent=function(){return $(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each($.proxy(function(i,element){var $element=$(element) 220this.addAriaAndCollapsedClass(getTargetFromTrigger($element),$element)},this)).end()} 221Collapse.prototype.addAriaAndCollapsedClass=function($element,$trigger){var isOpen=$element.hasClass('in') 222$element.attr('aria-expanded',isOpen) 223$trigger.toggleClass('collapsed',!isOpen).attr('aria-expanded',isOpen)} 224function getTargetFromTrigger($trigger){var href 225var target=$trigger.attr('data-target')||(href=$trigger.attr('href'))&&href.replace(/.*(?=#[^\s]+$)/,'') 226return $(target)} 227function Plugin(option){return this.each(function(){var $this=$(this) 228var data=$this.data('bs.collapse') 229var options=$.extend({},Collapse.DEFAULTS,$this.data(),typeof option=='object'&&option) 230if(!data&&options.toggle&&option=='show')options.toggle=false 231if(!data)$this.data('bs.collapse',(data=new Collapse(this,options))) 232if(typeof option=='string')data[option]()})} 233var old=$.fn.collapse 234$.fn.collapse=Plugin 235$.fn.collapse.Constructor=Collapse 236$.fn.collapse.noConflict=function(){$.fn.collapse=old 237return this} 238$(document).on('click.bs.collapse.data-api','[data-toggle="collapse"]',function(e){var $this=$(this) 239if(!$this.attr('data-target'))e.preventDefault() 240var $target=getTargetFromTrigger($this) 241var data=$target.data('bs.collapse') 242var option=data?'toggle':$.extend({},$this.data(),{trigger:this}) 243Plugin.call($target,option)})}(jQuery);+function($){'use strict';var backdrop='.dropdown-backdrop' 244var toggle='[data-toggle="dropdown"]' 245var Dropdown=function(element){$(element).on('click.bs.dropdown',this.toggle)} 246Dropdown.VERSION='3.3.2' 247Dropdown.prototype.toggle=function(e){var $this=$(this) 248if($this.is('.disabled, :disabled'))return 249var $parent=getParent($this) 250var isActive=$parent.hasClass('open') 251clearMenus() 252if(!isActive){if('ontouchstart' in document.documentElement&&!$parent.closest('.navbar-nav').length){$('<div class="dropdown-backdrop"/>').insertAfter($(this)).on('click',clearMenus)} 253var relatedTarget={relatedTarget:this} 254$parent.trigger(e=$.Event('show.bs.dropdown',relatedTarget)) 255if(e.isDefaultPrevented())return 256$this.trigger('focus').attr('aria-expanded','true') 257$parent.toggleClass('open').trigger('shown.bs.dropdown',relatedTarget)} 258return false} 259Dropdown.prototype.keydown=function(e){if(!/(38|40|27|32)/.test(e.which)||/input|textarea/i.test(e.target.tagName))return 260var $this=$(this) 261e.preventDefault() 262e.stopPropagation() 263if($this.is('.disabled, :disabled'))return 264var $parent=getParent($this) 265var isActive=$parent.hasClass('open') 266if((!isActive&&e.which!=27)||(isActive&&e.which==27)){if(e.which==27)$parent.find(toggle).trigger('focus') 267return $this.trigger('click')} 268var desc=' li:not(.divider):visible a' 269var $items=$parent.find('[role="menu"]'+desc+', [role="listbox"]'+desc) 270if(!$items.length)return 271var index=$items.index(e.target) 272if(e.which==38&&index>0)index-- 273if(e.which==40&&index<$items.length-1)index++ 274if(!~index)index=0 275$items.eq(index).trigger('focus')} 276function clearMenus(e){if(e&&e.which===3)return 277$(backdrop).remove() 278$(toggle).each(function(){var $this=$(this) 279var $parent=getParent($this) 280var relatedTarget={relatedTarget:this} 281if(!$parent.hasClass('open'))return 282$parent.trigger(e=$.Event('hide.bs.dropdown',relatedTarget)) 283if(e.isDefaultPrevented())return 284$this.attr('aria-expanded','false') 285$parent.removeClass('open').trigger('hidden.bs.dropdown',relatedTarget)})} 286function getParent($this){var selector=$this.attr('data-target') 287if(!selector){selector=$this.attr('href') 288selector=selector&&/#[A-Za-z]/.test(selector)&&selector.replace(/.*(?=#[^\s]*$)/,'')} 289var $parent=selector&&$(selector) 290return $parent&&$parent.length?$parent:$this.parent()} 291function Plugin(option){return this.each(function(){var $this=$(this) 292var data=$this.data('bs.dropdown') 293if(!data)$this.data('bs.dropdown',(data=new Dropdown(this))) 294if(typeof option=='string')data[option].call($this)})} 295var old=$.fn.dropdown 296$.fn.dropdown=Plugin 297$.fn.dropdown.Constructor=Dropdown 298$.fn.dropdown.noConflict=function(){$.fn.dropdown=old 299return this} 300$(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','[role="menu"]',Dropdown.prototype.keydown).on('keydown.bs.dropdown.data-api','[role="listbox"]',Dropdown.prototype.keydown)}(jQuery);+function($){'use strict';var Modal=function(element,options){this.options=options 301this.$body=$(document.body) 302this.$element=$(element) 303this.$backdrop=this.isShown=null 304this.scrollbarWidth=0 305if(this.options.remote){this.$element.find('.modal-content').load(this.options.remote,$.proxy(function(){this.$element.trigger('loaded.bs.modal')},this))}} 306Modal.VERSION='3.3.2' 307Modal.TRANSITION_DURATION=300 308Modal.BACKDROP_TRANSITION_DURATION=150 309Modal.DEFAULTS={backdrop:true,keyboard:true,show:true} 310Modal.prototype.toggle=function(_relatedTarget){return this.isShown?this.hide():this.show(_relatedTarget)} 311Modal.prototype.show=function(_relatedTarget){var that=this 312var e=$.Event('show.bs.modal',{relatedTarget:_relatedTarget}) 313this.$element.trigger(e) 314if(this.isShown||e.isDefaultPrevented())return 315this.isShown=true 316this.checkScrollbar() 317this.setScrollbar() 318this.$body.addClass('modal-open') 319this.escape() 320this.resize() 321this.$element.on('click.dismiss.bs.modal','[data-dismiss="modal"]',$.proxy(this.hide,this)) 322this.backdrop(function(){var transition=$.support.transition&&that.$element.hasClass('fade') 323if(!that.$element.parent().length){that.$element.appendTo(that.$body)} 324that.$element.show().scrollTop(0) 325if(that.options.backdrop)that.adjustBackdrop() 326that.adjustDialog() 327if(transition){that.$element[0].offsetWidth} 328that.$element.addClass('in').attr('aria-hidden',false) 329that.enforceFocus() 330var e=$.Event('shown.bs.modal',{relatedTarget:_relatedTarget}) 331transition?that.$element.find('.modal-dialog').one('bsTransitionEnd',function(){that.$element.trigger('focus').trigger(e)}).emulateTransitionEnd(Modal.TRANSITION_DURATION):that.$element.trigger('focus').trigger(e)})} 332Modal.prototype.hide=function(e){if(e)e.preventDefault() 333e=$.Event('hide.bs.modal') 334this.$element.trigger(e) 335if(!this.isShown||e.isDefaultPrevented())return 336this.isShown=false 337this.escape() 338this.resize() 339$(document).off('focusin.bs.modal') 340this.$element.removeClass('in').attr('aria-hidden',true).off('click.dismiss.bs.modal') 341$.support.transition&&this.$element.hasClass('fade')?this.$element.one('bsTransitionEnd',$.proxy(this.hideModal,this)).emulateTransitionEnd(Modal.TRANSITION_DURATION):this.hideModal()} 342Modal.prototype.enforceFocus=function(){$(document).off('focusin.bs.modal').on('focusin.bs.modal',$.proxy(function(e){if(this.$element[0]!==e.target&&!this.$element.has(e.target).length){this.$element.trigger('focus')}},this))} 343Modal.prototype.escape=function(){if(this.isShown&&this.options.keyboard){this.$element.on('keydown.dismiss.bs.modal',$.proxy(function(e){e.which==27&&this.hide()},this))}else if(!this.isShown){this.$element.off('keydown.dismiss.bs.modal')}} 344Modal.prototype.resize=function(){if(this.isShown){$(window).on('resize.bs.modal',$.proxy(this.handleUpdate,this))}else{$(window).off('resize.bs.modal')}} 345Modal.prototype.hideModal=function(){var that=this 346this.$element.hide() 347this.backdrop(function(){that.$body.removeClass('modal-open') 348that.resetAdjustments() 349that.resetScrollbar() 350that.$element.trigger('hidden.bs.modal')})} 351Modal.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove() 352this.$backdrop=null} 353Modal.prototype.backdrop=function(callback){var that=this 354var animate=this.$element.hasClass('fade')?'fade':'' 355if(this.isShown&&this.options.backdrop){var doAnimate=$.support.transition&&animate 356this.$backdrop=$('<div class="modal-backdrop '+animate+'" />').prependTo(this.$element).on('click.dismiss.bs.modal',$.proxy(function(e){if(e.target!==e.currentTarget)return 357this.options.backdrop=='static'?this.$element[0].focus.call(this.$element[0]):this.hide.call(this)},this)) 358if(doAnimate)this.$backdrop[0].offsetWidth 359this.$backdrop.addClass('in') 360if(!callback)return 361doAnimate?this.$backdrop.one('bsTransitionEnd',callback).emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION):callback()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass('in') 362var callbackRemove=function(){that.removeBackdrop() 363callback&&callback()} 364$.support.transition&&this.$element.hasClass('fade')?this.$backdrop.one('bsTransitionEnd',callbackRemove).emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION):callbackRemove()}else if(callback){callback()}} 365Modal.prototype.handleUpdate=function(){if(this.options.backdrop)this.adjustBackdrop() 366this.adjustDialog()} 367Modal.prototype.adjustBackdrop=function(){this.$backdrop.css('height',0).css('height',this.$element[0].scrollHeight)} 368Modal.prototype.adjustDialog=function(){var modalIsOverflowing=this.$element[0].scrollHeight>document.documentElement.clientHeight 369this.$element.css({paddingLeft:!this.bodyIsOverflowing&&modalIsOverflowing?this.scrollbarWidth:'',paddingRight:this.bodyIsOverflowing&&!modalIsOverflowing?this.scrollbarWidth:''})} 370Modal.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:'',paddingRight:''})} 371Modal.prototype.checkScrollbar=function(){this.bodyIsOverflowing=document.body.scrollHeight>document.documentElement.clientHeight 372this.scrollbarWidth=this.measureScrollbar()} 373Modal.prototype.setScrollbar=function(){var bodyPad=parseInt((this.$body.css('padding-right')||0),10) 374if(this.bodyIsOverflowing)this.$body.css('padding-right',bodyPad+this.scrollbarWidth)} 375Modal.prototype.resetScrollbar=function(){this.$body.css('padding-right','')} 376Modal.prototype.measureScrollbar=function(){var scrollDiv=document.createElement('div') 377scrollDiv.className='modal-scrollbar-measure' 378this.$body.append(scrollDiv) 379var scrollbarWidth=scrollDiv.offsetWidth-scrollDiv.clientWidth 380this.$body[0].removeChild(scrollDiv) 381return scrollbarWidth} 382function Plugin(option,_relatedTarget){return this.each(function(){var $this=$(this) 383var data=$this.data('bs.modal') 384var options=$.extend({},Modal.DEFAULTS,$this.data(),typeof option=='object'&&option) 385if(!data)$this.data('bs.modal',(data=new Modal(this,options))) 386if(typeof option=='string')data[option](_relatedTarget) 387else if(options.show)data.show(_relatedTarget)})} 388var old=$.fn.modal 389$.fn.modal=Plugin 390$.fn.modal.Constructor=Modal 391$.fn.modal.noConflict=function(){$.fn.modal=old 392return this} 393$(document).on('click.bs.modal.data-api','[data-toggle="modal"]',function(e){var $this=$(this) 394var href=$this.attr('href') 395var $target=$($this.attr('data-target')||(href&&href.replace(/.*(?=#[^\s]+$)/,''))) 396var option=$target.data('bs.modal')?'toggle':$.extend({remote:!/#/.test(href)&&href},$target.data(),$this.data()) 397if($this.is('a'))e.preventDefault() 398$target.one('show.bs.modal',function(showEvent){if(showEvent.isDefaultPrevented())return 399$target.one('hidden.bs.modal',function(){$this.is(':visible')&&$this.trigger('focus')})}) 400Plugin.call($target,option,this)})}(jQuery);+function($){'use strict';var Tooltip=function(element,options){this.type=this.options=this.enabled=this.timeout=this.hoverState=this.$element=null 401this.init('tooltip',element,options)} 402Tooltip.VERSION='3.3.2' 403Tooltip.TRANSITION_DURATION=150 404Tooltip.DEFAULTS={animation:true,placement:'top',selector:false,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:'hover focus',title:'',delay:0,html:false,container:false,viewport:{selector:'body',padding:0}} 405Tooltip.prototype.init=function(type,element,options){this.enabled=true 406this.type=type 407this.$element=$(element) 408this.options=this.getOptions(options) 409this.$viewport=this.options.viewport&&$(this.options.viewport.selector||this.options.viewport) 410var triggers=this.options.trigger.split(' ') 411for(var i=triggers.length;i--;){var trigger=triggers[i] 412if(trigger=='click'){this.$element.on('click.'+this.type,this.options.selector,$.proxy(this.toggle,this))}else if(trigger!='manual'){var eventIn=trigger=='hover'?'mouseenter':'focusin' 413var eventOut=trigger=='hover'?'mouseleave':'focusout' 414this.$element.on(eventIn+'.'+this.type,this.options.selector,$.proxy(this.enter,this)) 415this.$element.on(eventOut+'.'+this.type,this.options.selector,$.proxy(this.leave,this))}} 416this.options.selector?(this._options=$.extend({},this.options,{trigger:'manual',selector:''})):this.fixTitle()} 417Tooltip.prototype.getDefaults=function(){return Tooltip.DEFAULTS} 418Tooltip.prototype.getOptions=function(options){options=$.extend({},this.getDefaults(),this.$element.data(),options) 419if(options.delay&&typeof options.delay=='number'){options.delay={show:options.delay,hide:options.delay}} 420return options} 421Tooltip.prototype.getDelegateOptions=function(){var options={} 422var defaults=this.getDefaults() 423this._options&&$.each(this._options,function(key,value){if(defaults[key]!=value)options[key]=value}) 424return options} 425Tooltip.prototype.enter=function(obj){var self=obj instanceof this.constructor?obj:$(obj.currentTarget).data('bs.'+this.type) 426if(self&&self.$tip&&self.$tip.is(':visible')){self.hoverState='in' 427return} 428if(!self){self=new this.constructor(obj.currentTarget,this.getDelegateOptions()) 429$(obj.currentTarget).data('bs.'+this.type,self)} 430clearTimeout(self.timeout) 431self.hoverState='in' 432if(!self.options.delay||!self.options.delay.show)return self.show() 433self.timeout=setTimeout(function(){if(self.hoverState=='in')self.show()},self.options.delay.show)} 434Tooltip.prototype.leave=function(obj){var self=obj instanceof this.constructor?obj:$(obj.currentTarget).data('bs.'+this.type) 435if(!self){self=new this.constructor(obj.currentTarget,this.getDelegateOptions()) 436$(obj.currentTarget).data('bs.'+this.type,self)} 437clearTimeout(self.timeout) 438self.hoverState='out' 439if(!self.options.delay||!self.options.delay.hide)return self.hide() 440self.timeout=setTimeout(function(){if(self.hoverState=='out')self.hide()},self.options.delay.hide)} 441Tooltip.prototype.show=function(){var e=$.Event('show.bs.'+this.type) 442if(this.hasContent()&&this.enabled){this.$element.trigger(e) 443var inDom=$.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]) 444if(e.isDefaultPrevented()||!inDom)return 445var that=this 446var $tip=this.tip() 447var tipId=this.getUID(this.type) 448this.setContent() 449$tip.attr('id',tipId) 450this.$element.attr('aria-describedby',tipId) 451if(this.options.animation)$tip.addClass('fade') 452var placement=typeof this.options.placement=='function'?this.options.placement.call(this,$tip[0],this.$element[0]):this.options.placement 453var autoToken=/\s?auto?\s?/i 454var autoPlace=autoToken.test(placement) 455if(autoPlace)placement=placement.replace(autoToken,'')||'top' 456$tip.detach().css({top:0,left:0,display:'block'}).addClass(placement).data('bs.'+this.type,this) 457this.options.container?$tip.appendTo(this.options.container):$tip.insertAfter(this.$element) 458var pos=this.getPosition() 459var actualWidth=$tip[0].offsetWidth 460var actualHeight=$tip[0].offsetHeight 461if(autoPlace){var orgPlacement=placement 462var $container=this.options.container?$(this.options.container):this.$element.parent() 463var containerDim=this.getPosition($container) 464placement=placement=='bottom'&&pos.bottom+actualHeight>containerDim.bottom?'top':placement=='top'&&pos.top-actualHeight<containerDim.top?'bottom':placement=='right'&&pos.right+actualWidth>containerDim.width?'left':placement=='left'&&pos.left-actualWidth<containerDim.left?'right':placement 465$tip.removeClass(orgPlacement).addClass(placement)} 466var calculatedOffset=this.getCalculatedOffset(placement,pos,actualWidth,actualHeight) 467this.applyPlacement(calculatedOffset,placement) 468var complete=function(){var prevHoverState=that.hoverState 469that.$element.trigger('shown.bs.'+that.type) 470that.hoverState=null 471if(prevHoverState=='out')that.leave(that)} 472$.support.transition&&this.$tip.hasClass('fade')?$tip.one('bsTransitionEnd',complete).emulateTransitionEnd(Tooltip.TRANSITION_DURATION):complete()}} 473Tooltip.prototype.applyPlacement=function(offset,placement){var $tip=this.tip() 474var width=$tip[0].offsetWidth 475var height=$tip[0].offsetHeight 476var marginTop=parseInt($tip.css('margin-top'),10) 477var marginLeft=parseInt($tip.css('margin-left'),10) 478if(isNaN(marginTop))marginTop=0 479if(isNaN(marginLeft))marginLeft=0 480offset.top=offset.top+marginTop 481offset.left=offset.left+marginLeft 482$.offset.setOffset($tip[0],$.extend({using:function(props){$tip.css({top:Math.round(props.top),left:Math.round(props.left)})}},offset),0) 483$tip.addClass('in') 484var actualWidth=$tip[0].offsetWidth 485var actualHeight=$tip[0].offsetHeight 486if(placement=='top'&&actualHeight!=height){offset.top=offset.top+height-actualHeight} 487var delta=this.getViewportAdjustedDelta(placement,offset,actualWidth,actualHeight) 488if(delta.left)offset.left+=delta.left 489else offset.top+=delta.top 490var isVertical=/top|bottom/.test(placement) 491var arrowDelta=isVertical?delta.left*2-width+actualWidth:delta.top*2-height+actualHeight 492var arrowOffsetPosition=isVertical?'offsetWidth':'offsetHeight' 493$tip.offset(offset) 494this.replaceArrow(arrowDelta,$tip[0][arrowOffsetPosition],isVertical)} 495Tooltip.prototype.replaceArrow=function(delta,dimension,isHorizontal){this.arrow().css(isHorizontal?'left':'top',50*(1-delta/dimension)+'%').css(isHorizontal?'top':'left','')} 496Tooltip.prototype.setContent=function(){var $tip=this.tip() 497var title=this.getTitle() 498$tip.find('.tooltip-inner')[this.options.html?'html':'text'](title) 499$tip.removeClass('fade in top bottom left right')} 500Tooltip.prototype.hide=function(callback){var that=this 501var $tip=this.tip() 502var e=$.Event('hide.bs.'+this.type) 503function complete(){if(that.hoverState!='in')$tip.detach() 504that.$element.removeAttr('aria-describedby').trigger('hidden.bs.'+that.type) 505callback&&callback()} 506this.$element.trigger(e) 507if(e.isDefaultPrevented())return 508$tip.removeClass('in') 509$.support.transition&&this.$tip.hasClass('fade')?$tip.one('bsTransitionEnd',complete).emulateTransitionEnd(Tooltip.TRANSITION_DURATION):complete() 510this.hoverState=null 511return this} 512Tooltip.prototype.fixTitle=function(){var $e=this.$element 513if($e.attr('title')||typeof($e.attr('data-original-title'))!='string'){$e.attr('data-original-title',$e.attr('title')||'').attr('title','')}} 514Tooltip.prototype.hasContent=function(){return this.getTitle()} 515Tooltip.prototype.getPosition=function($element){$element=$element||this.$element 516var el=$element[0] 517var isBody=el.tagName=='BODY' 518var elRect=el.getBoundingClientRect() 519if(elRect.width==null){elRect=$.extend({},elRect,{width:elRect.right-elRect.left,height:elRect.bottom-elRect.top})} 520var elOffset=isBody?{top:0,left:0}:$element.offset() 521var scroll={scroll:isBody?document.documentElement.scrollTop||document.body.scrollTop:$element.scrollTop()} 522var outerDims=isBody?{width:$(window).width(),height:$(window).height()}:null 523return $.extend({},elRect,scroll,outerDims,elOffset)} 524Tooltip.prototype.getCalculatedOffset=function(placement,pos,actualWidth,actualHeight){return placement=='bottom'?{top:pos.top+pos.height,left:pos.left+pos.width/2-actualWidth/2}:placement=='top'?{top:pos.top-actualHeight,left:pos.left+pos.width/2-actualWidth/2}:placement=='left'?{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}} 525Tooltip.prototype.getViewportAdjustedDelta=function(placement,pos,actualWidth,actualHeight){var delta={top:0,left:0} 526if(!this.$viewport)return delta 527var viewportPadding=this.options.viewport&&this.options.viewport.padding||0 528var viewportDimensions=this.getPosition(this.$viewport) 529if(/right|left/.test(placement)){var topEdgeOffset=pos.top-viewportPadding-viewportDimensions.scroll 530var bottomEdgeOffset=pos.top+viewportPadding-viewportDimensions.scroll+actualHeight 531if(topEdgeOffset<viewportDimensions.top){delta.top=viewportDimensions.top-topEdgeOffset}else if(bottomEdgeOffset>viewportDimensions.top+viewportDimensions.height){delta.top=viewportDimensions.top+viewportDimensions.height-bottomEdgeOffset}}else{var leftEdgeOffset=pos.left-viewportPadding 532var rightEdgeOffset=pos.left+viewportPadding+actualWidth 533if(leftEdgeOffset<viewportDimensions.left){delta.left=viewportDimensions.left-leftEdgeOffset}else if(rightEdgeOffset>viewportDimensions.width){delta.left=viewportDimensions.left+viewportDimensions.width-rightEdgeOffset}} 534return delta} 535Tooltip.prototype.getTitle=function(){var title 536var $e=this.$element 537var o=this.options 538title=$e.attr('data-original-title')||(typeof o.title=='function'?o.title.call($e[0]):o.title) 539return title} 540Tooltip.prototype.getUID=function(prefix){do prefix+=~~(Math.random()*1000000) 541while(document.getElementById(prefix)) 542return prefix} 543Tooltip.prototype.tip=function(){return(this.$tip=this.$tip||$(this.options.template))} 544Tooltip.prototype.arrow=function(){return(this.$arrow=this.$arrow||this.tip().find('.tooltip-arrow'))} 545Tooltip.prototype.enable=function(){this.enabled=true} 546Tooltip.prototype.disable=function(){this.enabled=false} 547Tooltip.prototype.toggleEnabled=function(){this.enabled=!this.enabled} 548Tooltip.prototype.toggle=function(e){var self=this 549if(e){self=$(e.currentTarget).data('bs.'+this.type) 550if(!self){self=new this.constructor(e.currentTarget,this.getDelegateOptions()) 551$(e.currentTarget).data('bs.'+this.type,self)}} 552self.tip().hasClass('in')?self.leave(self):self.enter(self)} 553Tooltip.prototype.destroy=function(){var that=this 554clearTimeout(this.timeout) 555this.hide(function(){that.$element.off('.'+that.type).removeData('bs.'+that.type)})} 556function Plugin(option){return this.each(function(){var $this=$(this) 557var data=$this.data('bs.tooltip') 558var options=typeof option=='object'&&option 559if(!data&&option=='destroy')return 560if(!data)$this.data('bs.tooltip',(data=new Tooltip(this,options))) 561if(typeof option=='string')data[option]()})} 562var old=$.fn.tooltip 563$.fn.tooltip=Plugin 564$.fn.tooltip.Constructor=Tooltip 565$.fn.tooltip.noConflict=function(){$.fn.tooltip=old 566return this}}(jQuery);+function($){'use strict';var Popover=function(element,options){this.init('popover',element,options)} 567if(!$.fn.tooltip)throw new Error('Popover requires tooltip.js') 568Popover.VERSION='3.3.2' 569Popover.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>'}) 570Popover.prototype=$.extend({},$.fn.tooltip.Constructor.prototype) 571Popover.prototype.constructor=Popover 572Popover.prototype.getDefaults=function(){return Popover.DEFAULTS} 573Popover.prototype.setContent=function(){var $tip=this.tip() 574var title=this.getTitle() 575var content=this.getContent() 576$tip.find('.popover-title')[this.options.html?'html':'text'](title) 577$tip.find('.popover-content').children().detach().end()[this.options.html?(typeof content=='string'?'html':'append'):'text'](content) 578$tip.removeClass('fade top bottom left right in') 579if(!$tip.find('.popover-title').html())$tip.find('.popover-title').hide()} 580Popover.prototype.hasContent=function(){return this.getTitle()||this.getContent()} 581Popover.prototype.getContent=function(){var $e=this.$element 582var o=this.options 583return $e.attr('data-content')||(typeof o.content=='function'?o.content.call($e[0]):o.content)} 584Popover.prototype.arrow=function(){return(this.$arrow=this.$arrow||this.tip().find('.arrow'))} 585Popover.prototype.tip=function(){if(!this.$tip)this.$tip=$(this.options.template) 586return this.$tip} 587function Plugin(option){return this.each(function(){var $this=$(this) 588var data=$this.data('bs.popover') 589var options=typeof option=='object'&&option 590if(!data&&option=='destroy')return 591if(!data)$this.data('bs.popover',(data=new Popover(this,options))) 592if(typeof option=='string')data[option]()})} 593var old=$.fn.popover 594$.fn.popover=Plugin 595$.fn.popover.Constructor=Popover 596$.fn.popover.noConflict=function(){$.fn.popover=old 597return this}}(jQuery);+function($){'use strict';function ScrollSpy(element,options){var process=$.proxy(this.process,this) 598this.$body=$('body') 599this.$scrollElement=$(element).is('body')?$(window):$(element) 600this.options=$.extend({},ScrollSpy.DEFAULTS,options) 601this.selector=(this.options.target||'')+' .nav li > a' 602this.offsets=[] 603this.targets=[] 604this.activeTarget=null 605this.scrollHeight=0 606this.$scrollElement.on('scroll.bs.scrollspy',process) 607this.refresh() 608this.process()} 609ScrollSpy.VERSION='3.3.2' 610ScrollSpy.DEFAULTS={offset:10} 611ScrollSpy.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)} 612ScrollSpy.prototype.refresh=function(){var offsetMethod='offset' 613var offsetBase=0 614if(!$.isWindow(this.$scrollElement[0])){offsetMethod='position' 615offsetBase=this.$scrollElement.scrollTop()} 616this.offsets=[] 617this.targets=[] 618this.scrollHeight=this.getScrollHeight() 619var self=this 620this.$body.find(this.selector).map(function(){var $el=$(this) 621var href=$el.data('target')||$el.attr('href') 622var $href=/^#./.test(href)&&$(href) 623return($href&&$href.length&&$href.is(':visible')&&[[$href[offsetMethod]().top+offsetBase,href]])||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){self.offsets.push(this[0]) 624self.targets.push(this[1])})} 625ScrollSpy.prototype.process=function(){var scrollTop=this.$scrollElement.scrollTop()+this.options.offset 626var scrollHeight=this.getScrollHeight() 627var maxScroll=this.options.offset+scrollHeight-this.$scrollElement.height() 628var offsets=this.offsets 629var targets=this.targets 630var activeTarget=this.activeTarget 631var i 632if(this.scrollHeight!=scrollHeight){this.refresh()} 633if(scrollTop>=maxScroll){return activeTarget!=(i=targets[targets.length-1])&&this.activate(i)} 634if(activeTarget&&scrollTop<offsets[0]){this.activeTarget=null 635return this.clear()} 636for(i=offsets.length;i--;){activeTarget!=targets[i]&&scrollTop>=offsets[i]&&(!offsets[i+1]||scrollTop<=offsets[i+1])&&this.activate(targets[i])}} 637ScrollSpy.prototype.activate=function(target){this.activeTarget=target 638this.clear() 639var selector=this.selector+'[data-target="'+target+'"],'+ 640this.selector+'[href="'+target+'"]' 641var active=$(selector).parents('li').addClass('active') 642if(active.parent('.dropdown-menu').length){active=active.closest('li.dropdown').addClass('active')} 643active.trigger('activate.bs.scrollspy')} 644ScrollSpy.prototype.clear=function(){$(this.selector).parentsUntil(this.options.target,'.active').removeClass('active')} 645function Plugin(option){return this.each(function(){var $this=$(this) 646var data=$this.data('bs.scrollspy') 647var options=typeof option=='object'&&option 648if(!data)$this.data('bs.scrollspy',(data=new ScrollSpy(this,options))) 649if(typeof option=='string')data[option]()})} 650var old=$.fn.scrollspy 651$.fn.scrollspy=Plugin 652$.fn.scrollspy.Constructor=ScrollSpy 653$.fn.scrollspy.noConflict=function(){$.fn.scrollspy=old 654return this} 655$(window).on('load.bs.scrollspy.data-api',function(){$('[data-spy="scroll"]').each(function(){var $spy=$(this) 656Plugin.call($spy,$spy.data())})})}(jQuery);+function($){'use strict';var Tab=function(element){this.element=$(element)} 657Tab.VERSION='3.3.2' 658Tab.TRANSITION_DURATION=150 659Tab.prototype.show=function(){var $this=this.element 660var $ul=$this.closest('ul:not(.dropdown-menu)') 661var selector=$this.data('target') 662if(!selector){selector=$this.attr('href') 663selector=selector&&selector.replace(/.*(?=#[^\s]*$)/,'')} 664if($this.parent('li').hasClass('active'))return 665var $previous=$ul.find('.active:last a') 666var hideEvent=$.Event('hide.bs.tab',{relatedTarget:$this[0]}) 667var showEvent=$.Event('show.bs.tab',{relatedTarget:$previous[0]}) 668$previous.trigger(hideEvent) 669$this.trigger(showEvent) 670if(showEvent.isDefaultPrevented()||hideEvent.isDefaultPrevented())return 671var $target=$(selector) 672this.activate($this.closest('li'),$ul) 673this.activate($target,$target.parent(),function(){$previous.trigger({type:'hidden.bs.tab',relatedTarget:$this[0]}) 674$this.trigger({type:'shown.bs.tab',relatedTarget:$previous[0]})})} 675Tab.prototype.activate=function(element,container,callback){var $active=container.find('> .active') 676var transition=callback&&$.support.transition&&(($active.length&&$active.hasClass('fade'))||!!container.find('> .fade').length) 677function next(){$active.removeClass('active').find('> .dropdown-menu > .active').removeClass('active').end().find('[data-toggle="tab"]').attr('aria-expanded',false) 678element.addClass('active').find('[data-toggle="tab"]').attr('aria-expanded',true) 679if(transition){element[0].offsetWidth 680element.addClass('in')}else{element.removeClass('fade')} 681if(element.parent('.dropdown-menu')){element.closest('li.dropdown').addClass('active').end().find('[data-toggle="tab"]').attr('aria-expanded',true)} 682callback&&callback()} 683$active.length&&transition?$active.one('bsTransitionEnd',next).emulateTransitionEnd(Tab.TRANSITION_DURATION):next() 684$active.removeClass('in')} 685function Plugin(option){return this.each(function(){var $this=$(this) 686var data=$this.data('bs.tab') 687if(!data)$this.data('bs.tab',(data=new Tab(this))) 688if(typeof option=='string')data[option]()})} 689var old=$.fn.tab 690$.fn.tab=Plugin 691$.fn.tab.Constructor=Tab 692$.fn.tab.noConflict=function(){$.fn.tab=old 693return this} 694var clickHandler=function(e){e.preventDefault() 695Plugin.call($(this),'show')} 696$(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';var Affix=function(element,options){this.options=$.extend({},Affix.DEFAULTS,options) 697this.$target=$(this.options.target).on('scroll.bs.affix.data-api',$.proxy(this.checkPosition,this)).on('click.bs.affix.data-api',$.proxy(this.checkPositionWithEventLoop,this)) 698this.$element=$(element) 699this.affixed=this.unpin=this.pinnedOffset=null 700this.checkPosition()} 701Affix.VERSION='3.3.2' 702Affix.RESET='affix affix-top affix-bottom' 703Affix.DEFAULTS={offset:0,target:window} 704Affix.prototype.getState=function(scrollHeight,height,offsetTop,offsetBottom){var scrollTop=this.$target.scrollTop() 705var position=this.$element.offset() 706var targetHeight=this.$target.height() 707if(offsetTop!=null&&this.affixed=='top')return scrollTop<offsetTop?'top':false 708if(this.affixed=='bottom'){if(offsetTop!=null)return(scrollTop+this.unpin<=position.top)?false:'bottom' 709return(scrollTop+targetHeight<=scrollHeight-offsetBottom)?false:'bottom'} 710var initializing=this.affixed==null 711var colliderTop=initializing?scrollTop:position.top 712var colliderHeight=initializing?targetHeight:height 713if(offsetTop!=null&&scrollTop<=offsetTop)return'top' 714if(offsetBottom!=null&&(colliderTop+colliderHeight>=scrollHeight-offsetBottom))return'bottom' 715return false} 716Affix.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset 717this.$element.removeClass(Affix.RESET).addClass('affix') 718var scrollTop=this.$target.scrollTop() 719var position=this.$element.offset() 720return(this.pinnedOffset=position.top-scrollTop)} 721Affix.prototype.checkPositionWithEventLoop=function(){setTimeout($.proxy(this.checkPosition,this),1)} 722Affix.prototype.checkPosition=function(){if(!this.$element.is(':visible'))return 723var height=this.$element.height() 724var offset=this.options.offset 725var offsetTop=offset.top 726var offsetBottom=offset.bottom 727var scrollHeight=$('body').height() 728if(typeof offset!='object')offsetBottom=offsetTop=offset 729if(typeof offsetTop=='function')offsetTop=offset.top(this.$element) 730if(typeof offsetBottom=='function')offsetBottom=offset.bottom(this.$element) 731var affix=this.getState(scrollHeight,height,offsetTop,offsetBottom) 732if(this.affixed!=affix){if(this.unpin!=null)this.$element.css('top','') 733var affixType='affix'+(affix?'-'+affix:'') 734var e=$.Event(affixType+'.bs.affix') 735this.$element.trigger(e) 736if(e.isDefaultPrevented())return 737this.affixed=affix 738this.unpin=affix=='bottom'?this.getPinnedOffset():null 739this.$element.removeClass(Affix.RESET).addClass(affixType).trigger(affixType.replace('affix','affixed')+'.bs.affix')} 740if(affix=='bottom'){this.$element.offset({top:scrollHeight-height-offsetBottom})}} 741function Plugin(option){return this.each(function(){var $this=$(this) 742var data=$this.data('bs.affix') 743var options=typeof option=='object'&&option 744if(!data)$this.data('bs.affix',(data=new Affix(this,options))) 745if(typeof option=='string')data[option]()})} 746var old=$.fn.affix 747$.fn.affix=Plugin 748$.fn.affix.Constructor=Affix 749$.fn.affix.noConflict=function(){$.fn.affix=old 750return this} 751$(window).on('load',function(){$('[data-spy="affix"]').each(function(){var $spy=$(this) 752var data=$spy.data() 753data.offset=data.offset||{} 754if(data.offsetBottom!=null)data.offset.bottom=data.offsetBottom 755if(data.offsetTop!=null)data.offset.top=data.offsetTop 756Plugin.call($spy,data)})})}(jQuery); 757;;;(function(n,t){"use strict";function nt(){if(!i.READY){h.determineEventTypes();r.each(i.gestures,function(n){u.register(n)});h.onTouch(i.DOCUMENT,o,u.detect);h.onTouch(i.DOCUMENT,f,u.detect);i.READY=!0}}function g(n,i){Date.now||(Date.now=function(){return(new Date).getTime()});n.utils.each(["on","off"],function(r){n.utils[r]=function(n,u,f){i(n)[r](u,function(n){var r=i.extend({},n.originalEvent,n);r.button===t&&(r.button=n.which-1);f.call(this,r)})}});n.Instance.prototype.trigger=function(n,t){var r=i(this.element);return r.has(t.target).length&&(r=i(t.target)),r.trigger({type:n,gesture:t})};i.fn.hammer=function(t){return this.each(function(){var u=i(this),r=u.data("hammer");r?r&&t&&n.utils.extend(r.options,t):u.data("hammer",new n(this,t||{}))})}}var i=function i(n,t){return new i.Instance(n,t||{})},r;i.VERSION="1.1.3";i.defaults={behavior:{userSelect:"none",touchAction:"pan-y",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}};i.DOCUMENT=document;i.HAS_POINTEREVENTS=navigator.pointerEnabled||navigator.msPointerEnabled;i.HAS_TOUCHEVENTS="ontouchstart" in n;i.IS_MOBILE=/mobile|tablet|ip(ad|hone|od)|android|silk/i.test(navigator.userAgent);i.NO_MOUSEEVENTS=i.HAS_TOUCHEVENTS&&i.IS_MOBILE||i.HAS_POINTEREVENTS;i.CALCULATE_INTERVAL=25;var l={},w=i.DIRECTION_DOWN="down",k=i.DIRECTION_LEFT="left",b=i.DIRECTION_UP="up",d=i.DIRECTION_RIGHT="right",a=i.POINTER_MOUSE="mouse",y=i.POINTER_TOUCH="touch",p=i.POINTER_PEN="pen",e=i.EVENT_START="start",o=i.EVENT_MOVE="move",f=i.EVENT_END="end",s=i.EVENT_RELEASE="release",v=i.EVENT_TOUCH="touch";i.READY=!1;
757i.plugins=i.plugins||{};i.gestures=i.gestures||{};r=i.utils={extend:function(n,i,r){for(var u in i)i.hasOwnProperty(u)&&(n[u]===t||!r)&&(n[u]=i[u]);return n},on:function(n,t,i){n.addEventListener(t,i,!1)},off:function(n,t,i){n.removeEventListener(t,i,!1)},each:function(n,i,r){var u,f;if("forEach" in n)n.forEach(i,r);else if(n.length!==t){for(u=0,f=n.length;u<f;u++)if(i.call(r,n[u],u,n)===!1)return}else for(u in n)if(n.hasOwnProperty(u)&&i.call(r,n[u],u,n)===!1)return},inStr:function(n,t){return n.indexOf(t)>-1},inArray:function(n,t){var r,i,u;if(n.indexOf)return r=n.indexOf(t),r===-1?!1:r;for(i=0,u=n.length;i<u;i++)if(n[i]===t)return i;return!1},toArray:function(n){return Array.prototype.slice.call(n,0)},hasParent:function(n,t){while(n){if(n==t)return!0;n=n.parentNode}return!1},getCenter:function(n){var u=[],f=[],e=[],o=[],t=Math.min,i=Math.max;return n.length===1?{pageX:n[0].pageX,pageY:n[0].pageY,clientX:n[0].clientX,clientY:n[0].clientY}:(r.each(n,function(n){u.push(n.pageX);f.push(n.pageY);e.push(n.clientX);o.push(n.clientY)}),{pageX:(t.apply(Math,u)+i.apply(Math,u))/2,pageY:(t.apply(Math,f)+i.apply(Math,f))/2,clientX:(t.apply(Math,e)+i.apply(Math,e))/2,clientY:(t.apply(Math,o)+i.apply(Math,o))/2})},getVelocity:function(n,t,i){return{x:Math.abs(t/n)||0,y:Math.abs(i/n)||0}},getAngle:function(n,t){var i=t.clientX-n.clientX,r=t.clientY-n.clientY;return Math.atan2(r,i)*180/Math.PI},getDirection:function(n,t){var i=Math.abs(n.clientX-t.clientX),r=Math.abs(n.clientY-t.clientY);return i>=r?n.clientX-t.clientX>0?k:d:n.clientY-t.clientY>0?b:w},getDistance:function(n,t){var i=t.clientX-n.clientX,r=t.clientY-n.clientY;return Math.sqrt(i*i+r*r)},getScale:function(n,t){return n.length>=2&&t.length>=2?this.getDistance(t[0],t[1])/this.getDistance(n[0],n[1]):1},getRotation:function(n,t){return n.length>=2&&t.length>=2?this.getAngle(t[1],t[0])-this.getAngle(n[1],n[0]):0},isVertical:function(n){return n==b||n==w},setPrefixedCss:function(n,t,i,u){var o=["","Webkit","Moz","O","ms"],e,f;for(t=r.toCamelCase(t),e=0;e<o.length;e++)if(f=t,o[e]&&(f=o[e]+f.slice(0,1).toUpperCase()+f.slice(1)),f in n.style){n.style[f]=(u==null||u)&&i||"";break}},toggleBehavior:function(n,t,i){if(t&&n&&n.style){r.each(t,function(t,u){r.setPrefixedCss(n,u,t,i)});var u=i&&function(){return!1};t.userSelect=="none"&&(n.onselectstart=u);t.userDrag=="none"&&(n.ondragstart=u)}},toCamelCase:function(n){return n.replace(/[_-]([a-z])/g,function(n){return n[1].toUpperCase()})}};i.Instance=function(n,t){var f=this;nt();this.element=n;this.enabled=!0;r.each(t,function(n,i){delete t[i];t[r.toCamelCase(i)]=n});this.options=r.extend(r.extend({},i.defaults),t||{});this.options.behavior&&r.toggleBehavior(this.element,this.options.behavior,!0);this.eventStartHandler=h.onTouch(n,e,function(n){f.enabled&&n.eventType==e?u.startDetect(f,n):n.eventType==v&&u.detect(n)});this.eventHandlers=[]};i.Instance.prototype={on:function(n,t){var i=this;h.on(i.element,n,t,function(n){i.eventHandlers.push({gesture:n,handler:t})});return i},off:function(n,t){var i=this;return h.off(i.element,n,t,function(n){var u=r.inArray({gesture:n,handler:t});u!==!1&&i.eventHandlers.splice(u,1)}),i},trigger:function(n,t){var u,f;return t||(t={}),u=i.DOCUMENT.createEvent("Event"),u.initEvent(n,!0,!0),u.gesture=t,f=this.element,r.hasParent(t.target,f)&&(f=t.target),f.dispatchEvent(u),this},enable:function(n){return this.enabled=n,this},dispose:function(){var t,n;for(r.toggleBehavior(this.element,this.options.behavior,!1),t=-1;n=this.eventHandlers[++t];)r.off(this.element,n.gesture,n.handler);return this.eventHandlers=[],h.off(this.element,l[e],this.eventStartHandler),null}};var h=i.event={preventMouseEvents:!1,started:!1,shouldDetect:!1,on:function(n,t,i,u){var f=t.split(" ");r.each(f,function(t){r.on(n,t,i);u&&u(t)})},off:function(n,t,i,u){var f=t.split(" ");r.each(f,function(t){r.off(n,t,i);u&&u(t)})},onTouch:function(n,t,u){var o=this,s=function(s){var v=s.type.toLowerCase(),h=i.HAS_POINTEREVENTS,l=r.inStr(v,"mouse"),a;l&&o.preventMouseEvents||(l&&t==e&&s.button===0?(o.preventMouseEvents=!1,o.shouldDetect=!0):h&&t==e?o.shouldDetect=s.buttons===1||c.matchType(y,s):l||t!=e||(o.preventMouseEvents=!0,o.shouldDetect=!0),h&&t!=f&&c.updatePointer(t,s),o.shouldDetect&&(a=o.doDetect.call(o,s,t,n,u)),a==f&&(o.preventMouseEvents=!1,o.shouldDetect=!1,c.reset()),h&&t==f&&c.updatePointer(t,s))};this.on(n,l[t],s);return s},doDetect:function(n,t,i,r){var l=this.getTouchList(n,t),p=l.length,c=t,a=l.trigger,y=p,h;
757return t==e?a=v:t==f&&(a=s,y=l.length-(n.changedTouches?n.changedTouches.length:1)),y>0&&this.started&&(c=o),this.started=!0,h=this.collectEventData(i,c,l,n),t!=f&&r.call(u,h),a&&(h.changedLength=y,h.eventType=a,r.call(u,h),h.eventType=c,delete h.changedLength),c==f&&(r.call(u,h),this.started=!1),c},determineEventTypes:function(){var t;return t=i.HAS_POINTEREVENTS?n.PointerEvent?["pointerdown","pointermove","pointerup pointercancel lostpointercapture"]:["MSPointerDown","MSPointerMove","MSPointerUp MSPointerCancel MSLostPointerCapture"]:i.NO_MOUSEEVENTS?["touchstart","touchmove","touchend touchcancel"]:["touchstart mousedown","touchmove mousemove","touchend touchcancel mouseup"],l[e]=t[0],l[o]=t[1],l[f]=t[2],l},getTouchList:function(n,t){if(i.HAS_POINTEREVENTS)return c.getTouchList();if(n.touches){if(t==o)return n.touches;var u=[],e=[].concat(r.toArray(n.touches),r.toArray(n.changedTouches)),f=[];return r.each(e,function(n){r.inArray(u,n.identifier)===!1&&f.push(n);u.push(n.identifier)}),f}return n.identifier=1,[n]},collectEventData:function(n,t,i,f){var e=y;return r.inStr(f.type,"mouse")||c.matchType(a,f)?e=a:c.matchType(p,f)&&(e=p),{center:r.getCenter(i),timeStamp:Date.now(),target:f.target,touches:i,eventType:t,pointerType:e,srcEvent:f,preventDefault:function(){var n=this.srcEvent;n.preventManipulation&&n.preventManipulation();n.preventDefault&&n.preventDefault()},stopPropagation:function(){this.srcEvent.stopPropagation()},stopDetect:function(){return u.stopDetect()}}}},c=i.PointerEvent={pointers:{},getTouchList:function(){var n=[];return r.each(this.pointers,function(t){n.push(t)}),n},updatePointer:function(n,t){n==f||n!=f&&t.buttons!==1?delete this.pointers[t.pointerId]:(t.identifier=t.pointerId,this.pointers[t.pointerId]=t)},matchType:function(n,t){if(!t.pointerType)return!1;var r=t.pointerType,i={};return i[a]=r===(t.MSPOINTER_TYPE_MOUSE||a),i[y]=r===(t.MSPOINTER_TYPE_TOUCH||y),i[p]=r===(t.MSPOINTER_TYPE_PEN||p),i[n]},reset:function(){this.pointers={}}},u=i.detection={gestures:[],current:null,previous:null,stopped:!1,startDetect:function(n,t){this.current||(this.stopped=!1,this.current={inst:n,startEvent:r.extend({},t),lastEvent:!1,lastCalcEvent:!1,futureCalcEvent:!1,lastCalcData:{},name:""},this.detect(t))},detect:function(n){if(this.current&&!this.stopped){n=this.extendEventData(n);var t=this.current.inst,i=t.options;return r.each(this.gestures,function(r){!this.stopped&&t.enabled&&i[r.name]&&r.handler.call(r,n,t)},this),this.current&&(this.current.lastEvent=n),n.eventType==f&&this.stopDetect(),n}},stopDetect:function(){this.previous=r.extend({},this.current);this.current=null;this.stopped=!0},getCalculatedData:function(n,t,u,f,e){var o=this.current,l=!1,c=o.lastCalcEvent,h=o.lastCalcData;c&&n.timeStamp-c.timeStamp>i.CALCULATE_INTERVAL&&(t=c.center,u=n.timeStamp-c.timeStamp,f=n.center.clientX-c.center.clientX,e=n.center.clientY-c.center.clientY,l=!0);(n.eventType==v||n.eventType==s)&&(o.futureCalcEvent=n);(!o.lastCalcEvent||l)&&(h.velocity=r.getVelocity(u,f,e),h.angle=r.getAngle(t,n.center),h.direction=r.getDirection(t,n.center),o.lastCalcEvent=o.futureCalcEvent||n,o.futureCalcEvent=n);n.velocityX=h.velocity.x;n.velocityY=h.velocity.y;n.interimAngle=h.angle;n.interimDirection=h.direction},extendEventData:function(n){var i=this.current,t=i.startEvent,o=i.lastEvent||t;(n.eventType==v||n.eventType==s)&&(t.touches=[],r.each(n.touches,function(n){t.touches.push({clientX:n.clientX,clientY:n.clientY})}));var u=n.timeStamp-t.timeStamp,f=n.center.clientX-t.center.clientX,e=n.center.clientY-t.center.clientY;return this.getCalculatedData(n,o.center,u,f,e),r.extend(n,{startEvent:t,deltaTime:u,deltaX:f,deltaY:e,distance:r.getDistance(t.center,n.center),angle:r.getAngle(t.center,n.center),direction:r.getDirection(t.center,n.center),scale:r.getScale(t.touches,n.touches),rotation:r.getRotation(t.touches,n.touches)}),n},register:function(n){var u=n.defaults||{};return u[n.name]===t&&(u[n.name]=!0),r.extend(i.defaults,u,!0),n.index=n.index||1e3,this.gestures.push(n),this.gestures.sort(function(n,t){return n.index<t.index?-1:n.index>t.index?1:0}),this.gestures}};(function(n){function h(i,h){var c=u.current,l,a,v,y;if(!(h.options.dragMaxTouches>0)||!(i.touches.length>h.options.dragMaxTouches))switch(i.eventType){case e:t=!1;break;case o:if(i.distance<h.options.dragMinDistance&&c.name!=n)return;l=c.startEvent.center;c.name!=n&&(c.name=n,h.options.dragDistanceCorrection&&i.distance>0&&(a=Math.abs(h.options.dragMinDistance/i.distance),l.pageX+=i.deltaX*a,l.pageY+=i.deltaY*a,l.clientX+=i.deltaX*a,l.clientY+=i.deltaY*a,i=u.extendEventData(i))
757);(c.lastEvent.dragLockToAxis||h.options.dragLockToAxis&&h.options.dragLockMinDistance<=i.distance)&&(i.dragLockToAxis=!0);v=c.lastEvent.direction;i.dragLockToAxis&&v!==i.direction&&(i.direction=r.isVertical(v)?i.deltaY<0?b:w:i.deltaX<0?k:d);t||(h.trigger(n+"start",i),t=!0);h.trigger(n,i);h.trigger(n+i.direction,i);y=r.isVertical(i.direction);(h.options.dragBlockVertical&&y||h.options.dragBlockHorizontal&&!y)&&i.preventDefault();break;case s:t&&i.changedLength<=h.options.dragMaxTouches&&(h.trigger(n+"end",i),t=!1);break;case f:t=!1}}var t=!1;i.gestures.Drag={name:n,index:50,handler:h,defaults:{dragMinDistance:10,dragDistanceCorrection:!0,dragMaxTouches:1,dragBlockHorizontal:!1,dragBlockVertical:!1,dragLockToAxis:!1,dragLockMinDistance:25}}})("drag");i.gestures.Gesture={name:"gesture",index:1337,handler:function(n,t){t.trigger(this.name,n)}},function(n){function r(i,r){var h=r.options,f=u.current;switch(i.eventType){case e:clearTimeout(t);f.name=n;t=setTimeout(function(){f&&f.name==n&&r.trigger(n,i)},h.holdTimeout);break;case o:i.distance>h.holdThreshold&&clearTimeout(t);break;case s:clearTimeout(t)}}var t;i.gestures.Hold={name:n,index:10,defaults:{holdTimeout:500,holdThreshold:2},handler:r}}("hold");i.gestures.Release={name:"release",index:Infinity,handler:function(n,t){n.eventType==s&&t.trigger(this.name,n)}};i.gestures.Swipe={name:"swipe",index:40,defaults:{swipeMinTouches:1,swipeMaxTouches:1,swipeVelocityX:.6,swipeVelocityY:.6},handler:function(n,t){if(n.eventType==s){var r=n.touches.length,i=t.options;if(r<i.swipeMinTouches||r>i.swipeMaxTouches)return;(n.velocityX>i.swipeVelocityX||n.velocityY>i.swipeVelocityY)&&(t.trigger(this.name,n),t.trigger(this.name+n.direction,n))}}},function(n){function s(i,s){var h=s.options,v=u.current,c=u.previous,l,a;switch(i.eventType){case e:t=!1;break;case o:t=t||i.distance>h.tapMaxDistance;break;case f:!r.inStr(i.srcEvent.type,"cancel")&&i.deltaTime<h.tapMaxTime&&!t&&(l=c&&c.lastEvent&&i.timeStamp-c.lastEvent.timeStamp,a=!1,c&&c.name==n&&l&&l<h.doubleTapInterval&&i.distance<h.doubleTapDistance&&(s.trigger("doubletap",i),a=!0),(!a||h.tapAlways)&&(v.name=n,s.trigger(v.name,i)))}}var t=!1;i.gestures.Tap={name:n,index:100,handler:s,defaults:{tapMaxTime:250,tapMaxDistance:10,tapAlways:!0,doubleTapDistance:20,doubleTapInterval:300}}}("tap");i.gestures.Touch={name:"touch",index:-Infinity,defaults:{preventDefault:!1,preventMouse:!1},handler:function(n,t){if(t.options.preventMouse&&n.pointerType==a){n.stopDetect();return}t.options.preventDefault&&n.preventDefault();n.eventType==v&&t.trigger("touch",n)}},function(n){function r(i,r){switch(i.eventType){case e:t=!1;break;case o:if(i.touches.length<2)return;var f=Math.abs(1-i.scale),h=Math.abs(i.rotation);if(f<r.options.transformMinScale&&h<r.options.transformMinRotation)return;u.current.name=n;t||(r.trigger(n+"start",i),t=!0);r.trigger(n,i);h>r.options.transformMinRotation&&r.trigger("rotate",i);f>r.options.transformMinScale&&(r.trigger("pinch",i),r.trigger("pinch"+(i.scale<1?"in":"out"),i));break;case s:t&&i.changedLength<2&&(r.trigger(n+"end",i),t=!1)}}var t=!1;i.gestures.Transform={name:n,index:45,defaults:{transformMinScale:.01,transformMinRotation:1},handler:r}}("transform");n.Hammer=i;typeof module!="undefined"&&module.exports&&(module.exports=i);typeof define=="function"&&define.amd?define(["jquery"],function(t){return g(n.Hammer,t)}):g(n.Hammer,n.jQuery||n.Zepto)})(window); 758;;;(function($,n,t){function r(n){return n=n||location.href,"#"+n.replace(/^[^#]*#?(.*)$/,"$1")}var i="hashchange",u=document,f,o=$.event.special,s=u.documentMode,e="on"+i in n&&(s===t||s>7);$.fn[i]=function(n){return n?this.bind(i,n):this.trigger(i)};$.fn[i].delay=50;o[i]=$.extend(o[i],{setup:function(){if(e)return!1;$(f.start)},teardown:function(){if(e)return!1;$(f.stop)}});f=function(){function l(){var u=r(),t=a(s);u!==s?(c(s=u,t),$(n).trigger(i)):t!==s&&(location.href=location.href.replace(/#.*/,"")+t);o=setTimeout(l,$.fn[i].delay)}var f={},o,s=r(),h=function(n){return n},c=h,a=h;return f.start=function(){o||l()},f.stop=function(){o&&clearTimeout(o);o=t},$.browser.msie&&!e&&function(){var n,t;f.start=function(){n||(t=$.fn[i].src,t=t&&t+r(),n=$('<iframe tabindex="-1" title="empty"/>').hide().one("load",function(){t||c(r());l()}).attr("src",t||"javascript:0").insertAfter("body")[0].contentWindow,u.on
758propertychange=function(){try{event.propertyName==="title"&&(n.document.title=u.title)}catch(t){}})};f.stop=h;a=function(){return r(n.location.href)};c=function(t,r){var f=n.document,e=$.fn[i].domain;t!==r&&(f.title=u.title,f.open(),e&&f.write('<script>document.domain="'+e+'"<\/script>'),f.close(),n.location.hash=t)}}(),f}()})(jQuery,this); 759;;;(function(n,t){var $=n.jQuery||n.Cowboy||(n.Cowboy={}),i;$.throttle=i=function(n,i,r,u){function o(){function o(){e=+new Date;r.apply(h,c)}function l(){f=t}var h=this,s=+new Date-e,c=arguments;u&&!f&&o();f&&clearTimeout(f);u===t&&s>n?o():i!==!0&&(f=setTimeout(u?l:o,u===t?n-s:n))}var f,e=0;return typeof i!="boolean"&&(u=r,r=i,i=t),$.guid&&(o.guid=r.guid=r.guid||$.guid++),o};$.debounce=function(n,r,u){return u===t?i(n,r,!1):i(n,u,r!==!1)}})(this); 760;;;var Mustache=typeof module!="undefined"&&module.exports||{};(function(n){function v(n){return a.test(n)}function g(n){return String(n).replace(/&(?!\w+;)|[<>"']/g,function(n){return y[n]||n})}function i(n,t,i,r){var u,h;r=r||"<template>";var e=t.split("\n"),o=Math.max(i-3,0),c=Math.min(e.length,i+3),f=e.slice(o,c),s;for(u=0,h=f.length;u<h;++u)s=u+o+1,f[u]=(s===i?" >> ":" ")+f[u];return n.template=t,n.line=i,n.file=r,n.message=[r+":"+i,f.join("\n"),"",n.message].join("\n"),n}function p(n,t,i){if(n===".")return t[t.length-1];for(var e=n.split("."),s=e.length-1,h=e[s],u,r,c=t.length,o,f;c;){for(f=t.slice(0),r=t[--c],o=0;o<s;){if(r=r[e[o++]],r==null)break;f.push(r)}if(r&&typeof r=="object"&&h in r){u=r[h];break}}return(typeof u=="function"&&(u=u.call(f[f.length-1])),u==null)?i:u}function nt(n,t,i,r){var o="",e=p(n,t),s,h;return r?(e==null||e===!1||f(e)&&e.length===0)&&(o+=i()):f(e)?l(e,function(n){t.push(n);o+=i();t.pop()}):typeof e=="object"?(t.push(e),o+=i(),t.pop()):typeof e=="function"?(s=t[t.length-1],h=function(n){return u(n,s)},o+=e.call(s,i(),h)||""):e&&(o+=i()),o}function w(r,u){var f,et,k,rt,d,g;u=u||{};var c=u.tags||n.tags,y=c[0],s=c[c.length-1],e=['var buffer = "";',"\nvar line = 1;","\ntry {",'\nbuffer += "'],w=[],nt=!1,p=!1,ut=function(){if(!nt||p||u.space)w=[];else while(w.length)e.splice(w.pop(),1);nt=!1;p=!1},h=[],b,tt,it,ot=function(n){c=t(n).split(/\s+/);tt=c[0];it=c[c.length-1]},st=function(n){e.push('";',b,'\nvar partial = partials["'+t(n)+'"];',"\nif (partial) {","\n buffer += render(partial,stack[stack.length - 1],partials);","\n}",'\nbuffer += "')},ft=function(n,f){var o=t(n);if(o==="")throw i(new Error("Section name may not be empty"),r,l,u.file);h.push({name:o,inverted:f});e.push('";',b,'\nvar name = "'+o+'";',"\nvar callback = (function () {","\n return function () {",'\n var buffer = "";','\nbuffer += "')},ht=function(n){ft(n,!0)},ct=function(n){var f=t(n),o=h.length!=0&&h[h.length-1].name,s;if(!o||f!=o)throw i(new Error('Section named "'+f+'" was never opened'),r,l,u.file);s=h.pop();e.push('";',"\n return buffer;","\n };","\n})();");
760s.inverted?e.push("\nbuffer += renderSection(name,stack,callback,true);"):e.push("\nbuffer += renderSection(name,stack,callback);");e.push('\nbuffer += "')},lt=function(n){e.push('";',b,'\nbuffer += lookup("'+t(n)+'",stack,"");','\nbuffer += "')},at=function(n){e.push('";',b,'\nbuffer += escapeHTML(lookup("'+t(n)+'",stack,""));','\nbuffer += "')},l=1,a,o;for(f=0,et=r.length;f<et;++f)if(r.slice(f,f+y.length)===y){f+=y.length;a=r.substr(f,1);b="\nline = "+l+";";tt=y;it=s;nt=!0;switch(a){case"!":f++;o=null;break;case"=":f++;s="="+s;o=ot;break;case">":f++;o=st;break;case"#":f++;o=ft;break;case"^":f++;o=ht;break;case"/":f++;o=ct;break;case"{":s="}"+s;case"&":f++;p=!0;o=lt;break;default:p=!0;o=at}if(k=r.indexOf(s,f),k===-1)throw i(new Error('Tag "'+y+'" was not closed properly'),r,l,u.file);for(rt=r.substring(f,k),o&&o(rt),d=0;~(d=rt.indexOf("\n",d));)l++,d++;f=k+s.length-1;y=tt;s=it}else{a=r.substr(f,1);switch(a){case'"':case"\\":p=!0;e.push("\\"+a);break;case"\r":break;case"\n":w.push(e.length);e.push("\\n");ut();l++;break;default:v(a)?w.push(e.length):p=!0;e.push(a)}}if(h.length!=0)throw i(new Error('Section "'+h[h.length-1].name+'" was not closed properly'),r,l,u.file);return ut(),e.push('";',"\nreturn buffer;","\n} catch (e) { throw {error: e, line: line}; }"),g=e.join("").replace(/buffer \+= "";\n/g,""),u.debug&&(typeof console!="undefined"&&console.log?console.log(g):typeof print=="function"&&print(g)),g}function b(n,t){var r=w(n,t),f=new Function("view,partials,stack,lookup,escapeHTML,renderSection,render",r);return function(r,e){e=e||{};var s=[r];try{return f(r,e,s,p,g,nt,u)}catch(o){throw i(o.error,n,o.line,t.file);}}}function tt(){r={}}function k(n,t){return(t=t||{},t.cache!==!1)?(r[n]||(r[n]=b(n,t)),r[n]):b(n,t)}function u(n,t,i){return k(n)(t,i)}var l,a,t,e,o,y,r;n.name="mustache.js";n.version="0.5.0-dev";n.tags=["{{","}}"];n.parse=w;n.compile=k;n.render=u;n.clearCache=tt;
760n.to_html=function(n,t,i,r){var f=u(n,t,i);if(typeof r=="function")r(f);else return f};var d=Object.prototype.toString,s=Array.isArray,h=Array.prototype.forEach,c=String.prototype.trim,f;f=s?s:function(n){return d.call(n)==="[object Array]"};l=h?function(n,t,i){return h.call(n,t,i)}:function(n,t,i){for(var r=0,u=n.length;r<u;++r)t.call(i,n[r],r,n)};a=/^\s*$/;c?t=function(n){return n==null?"":c.call(n)}:(v(" ")?(e=/^\s+/,o=/\s+$/):(e=/^[\s\xA0]+/,o=/[\s\xA0]+$/),t=function(n){return n==null?"":String(n).replace(e,"").replace(o,"")});y={"&":"&","<":"<",">":">",'"':""","'":"'"};r={}})(Mustache); 761;;;(function(n,t){typeof exports=="object"?module.exports=t(require("./punycode"),require("./IPv6"),require("./SecondLevelDomains")):typeof define=="function"&&define.amd?define(["./punycode","./IPv6","./SecondLevelDomains"],t):n.URI=t(n.punycode,n.IPv6,n.SecondLevelDomains,n)})(this,function(n,t,i,r){"use strict";function u(n,t){return(this instanceof u)?(n===undefined&&(n=typeof location!="undefined"?location.href+"":""),this.href(n),t!==undefined)?this.absoluteTo(t):this:new u(n,t)}function l(n){return n.replace(/([.*+?^=!:${}()|[\]\/\\])/g,"\\$1")}function v(n){return n===undefined?"Undefined":String(Object.prototype.toString.call(n)).slice(8,-1)}function e(n){return v(n)==="Array"}function k(n,t){var u={},i,r;if(e(t))for(i=0,r=t.length;i<r;i++)u[t[i]]=!0;else u[t]=!0;for(i=0,r=n.length;i<r;i++)u[n[i]]!==undefined&&(n.splice(i,1),r--,i--);return n}function a(n,t){var i,r,u;if(e(t)){for(i=0,r=t.length;i<r;i++)if(!a(n,t[i]))return!1;return!0}for(u=v(t),i=0,r=n.length;i<r;i++)if(u==="RegExp"){if(typeof n[i]=="string"&&n[i].match(t))return!0}else if(n[i]===t)return!0;return!1}function p(n,t){if(!e(n)||!e(t)||n.length!==t.length)return!1;n.sort();t.sort();for(var i=0,r=n.length;i<r;i++)if(n[i]!==t[i])return!1;return!0}function d(n){return escape(n)}function y(n){return encodeURIComponent(n).replace(/[!'()*]/g,d).replace(/\*/g,"%2A")}var b=r&&r.URI,f,h,s,o,c,w;u.version="1.12.1";f=u.prototype;h=Object.prototype.hasOwnProperty;u._parts=function(){return{protocol:null,username:null,password:null,hostname:null,urn:null,port:null,path:null,query:null,fragment:null,duplicateQueryParameters:u.duplicateQueryParameters,escapeQuerySpace:u.escapeQuerySpace}};u.duplicateQueryParameters=!1;u.escapeQuerySpace=!0;u.protocol_expression=/^[a-z][a-z0-9.+-]*$/i;u.idn_expression=/[^a-z0-9\.-]/i;u.punycode_expression=/(xn--)/i;u.ip4_expression=/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/;u.ip6_expression=/^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$/;u.find_uri_expression=/\b((?:[a-z][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?ëÃȉâ¬Åââ¬Âââ¬Ëââ¬â¢]))/ig;u.findUri={start:/\b(?:([a-z][a-z0-9.+-]*:\/\/)|www\.)/gi,end:/[\s\r\n]|$/,trim:/[`!()\[\]{};:'".,<>?ëÃȉâ¬Åââ¬Âââ¬Å¾Ã¢â¬Ëââ¬â¢]+$/};u.defaultPorts={http:"80",https:"443",ftp:"21",gopher:"70",ws:"80",wss:"443"};
761u.invalid_hostname_characters=/[^a-zA-Z0-9\.-]/;u.domAttributes={a:"href",blockquote:"cite",link:"href",base:"href",script:"src",form:"action",img:"src",area:"href",iframe:"src",embed:"src",source:"src",track:"src",input:"src"};u.getDomAttribute=function(n){if(!n||!n.nodeName)return undefined;var t=n.nodeName.toLowerCase();return t==="input"&&n.type!=="image"?undefined:u.domAttributes[t]};u.encode=y;u.decode=decodeURIComponent;u.iso8859=function(){u.encode=escape;u.decode=unescape};u.unicode=function(){u.encode=y;u.decode=decodeURIComponent};u.characters={pathname:{encode:{expression:/%(24|26|2B|2C|3B|3D|3A|40)/ig,map:{"%24":"$","%26":"&","%2B":"+","%2C":",","%3B":";","%3D":"=","%3A":":","%40":"@"}},decode:{expression:/[\/\?#]/g,map:{"/":"%2F","?":"%3F","#":"%23"}}},reserved:{encode:{expression:/%(21|23|24|26|27|28|29|2A|2B|2C|2F|3A|3B|3D|3F|40|5B|5D)/ig,map:{"%3A":":","%2F":"/","%3F":"?","%23":"#","%5B":"[","%5D":"]","%40":"@","%21":"!","%24":"$","%26":"&","%27":"'","%28":"(","%29":")","%2A":"*","%2B":"+","%2C":",","%3B":";","%3D":"="}}}};u.encodeQuery=function(n,t){var i=u.encode(n+"");return t===undefined&&(t=u.escapeQuerySpace),t?i.replace(/%20/g,"+"):i};u.decodeQuery=function(n,t){n+="";t===undefined&&(t=u.escapeQuerySpace);try{return u.decode(t?n.replace(/\+/g,"%20"):n)}catch(i){return n}};u.recodePath=function(n){for(var t=(n+"").split("/"),i=0,r=t.length;i<r;i++)t[i]=u.encodePathSegment(u.decode(t[i]));return t.join("/")};u.decodePath=function(n){for(var t=(n+"").split("/"),i=0,r=t.length;i<r;i++)t[i]=u.decodePathSegment(t[i]);return t.join("/")};s={encode:"encode",decode:"decode"};c=function(n,t){return function(i){return u[t](i+"").replace(u.characters[n][t].expression,function(i){return u.characters[n][t].map[i]})}};for(o in s)u[o+"PathSegment"]=c("pathname",s[o]);u.encodeReserved=c("reserved","encode");u.parse=function(n,t){var i;return t||(t={}),i=n.indexOf("#"),i>-1&&(t.fragment=n.substring(i+1)||null,n=n.substring(0,i)),i=n.indexOf("?"),i>-1&&(t.query=n.substring(i+1)||null,n=n.substring(0,i)),n.substring(0,2)==="//"?(t.protocol=null,n=n.substring(2),n=u.parseAuthority(n,t)):(i=n.indexOf(":"),i>-1&&(t.protocol=n.substring(0,i)||null,t.protocol&&!t.protocol.match(u.protocol_expression)?t.protocol=undefined:t.protocol==="file"?n=n.substring(i+3):n.substring(i+1,i+3)==="//"?(n=n.substring(i+3),n=u.parseAuthority(n,t)):(n=n.substring(i+1),t.urn=!0))),t.path=n,t};u.parseHost=function(n,t){var i=n.indexOf("/"),r,u;return i===-1&&(i=n.length),n.charAt(0)==="["?(r=n.indexOf("]"),t.hostname=n.substring(1,r)||null,t.port=n.substring(r+2,i)||null):n.indexOf(":")!==n.lastIndexOf(":")?(t.hostname=n.substring(0,i)||null,t.port=null):(u=n.substring(0,i).split(":"),t.hostname=u[0]||null,t.port=u[1]||null),t.hostname&&n.substring(i).charAt(0)!=="/"&&(i++,n="/"+n),n.substring(i)||"/"};u.parseAuthority=function(n,t){return n=u.parseUserinfo(n,t),u.parseHost(n,t)};u.parseUserinfo=function(n,t){var r=n.indexOf("/"),f=r>-1?n.lastIndexOf("@",r):n.indexOf("@"),i;return f>-1&&(r===-1||f<r)?(i=n.substring(0,f).split(":"),t.username=i[0]?u.decode(i[0]):null,i.shift(),t.password=i[0]?u.decode(i.join(":")):null,n=n.substring(f+1)):(t.username=null,t.password=null),n};u.parseQuery=function(n,t){var e;if(!n)return{};if(n=n.replace(/&+/g,"&").replace(/^\?*&*|&+$/g,""),!n)return{};var i={},s=n.split("&"),h=s.length,f,r,o;for(e=0;e<h;e++)f=s[e].split("="),r=u.decodeQuery(f.shift(),t),o=f.length?u.decodeQuery(f.join("="),t):null,i[r]?(typeof i[r]=="string"&&(i[r]=[i[r]]),i[r].push(o)):i[r]=o;return i};u.build=function(n){var t="";return n.protocol&&(t+=n.protocol+":"),!n.urn&&(t||n.hostname)&&(t+="//"),t+=u.buildAuthority(n)||"",typeof n.path=="string"&&(n.path.charAt(0)!=="/"&&typeof n.hostname=="string"&&(t+="/"),t+=n.path),typeof n.query=="string"&&n.query&&(t+="?"+n.query),typeof n.fragment=="string"&&n.fragment&&(t+="#"+n.fragment),t};u.buildHost=function(n){var t="";if(n.hostname)u.ip6_expression.test(n.hostname)?t+=n.port?"["+n.hostname+"]:"+n.port:n.hostname:(t+=n.hostname,n.port&&(t+=":"+n.port));else return"";return t};u.buildAuthority=function(n){return u.buildUserinfo(n)+u.buildHost(n)};u.buildUserinfo=function(n){var t="";return n.username&&(t+=u.encode(n.username),n.password&&(t+=":"+u.encode(n.password)),t+="@"),t};u.buildQuery=function(n,t,i){var o="",s,r,f,c;for(r in n)if(h.call(n,r)&&r)if(e(n[r]))for(s={},f=0,c=n[r].length;f<c;f++)n[r][f]!==undefined&&s[n[r][f]+""]===undefined&&(o+="&"+u.buildQueryParameter(r,n[r][f],i),t!==!0&&(s[n[r][f]+""]=!0));
761else n[r]!==undefined&&(o+="&"+u.buildQueryParameter(r,n[r],i));return o.substring(1)};u.buildQueryParameter=function(n,t,i){return u.encodeQuery(n,i)+(t!==null?"="+u.encodeQuery(t,i):"")};u.addQuery=function(n,t,i){if(typeof t=="object")for(var r in t)h.call(t,r)&&u.addQuery(n,r,t[r]);else if(typeof t=="string"){if(n[t]===undefined){n[t]=i;return}typeof n[t]=="string"&&(n[t]=[n[t]]);e(i)||(i=[i]);n[t]=n[t].concat(i)}else throw new TypeError("URI.addQuery() accepts an object, string as the name parameter");};u.removeQuery=function(n,t,i){var r,o,f;if(e(t))for(r=0,o=t.length;r<o;r++)n[t[r]]=undefined;else if(typeof t=="object")for(f in t)h.call(t,f)&&u.removeQuery(n,f,t[f]);else if(typeof t=="string")i!==undefined?n[t]===i?n[t]=undefined:e(n[t])&&(n[t]=k(n[t],i)):n[t]=undefined;else throw new TypeError("URI.addQuery() accepts an object, string as the first parameter");};u.hasQuery=function(n,t,i,r){var f,o,s;if(typeof t=="object"){for(f in t)if(h.call(t,f)&&!u.hasQuery(n,f,t[f]))return!1;return!0}if(typeof t!="string")throw new TypeError("URI.hasQuery() accepts an object, string as the name parameter");switch(v(i)){case"Undefined":return t in n;case"Boolean":return o=Boolean(e(n[t])?n[t].length:n[t]),i===o;
761case"Function":return!!i(n[t],t,n);case"Array":return e(n[t])?(s=r?a:p,s(n[t],i)):!1;case"RegExp":return e(n[t])?r?a(n[t],i):!1:Boolean(n[t]&&n[t].match(i));case"Number":i=String(i);case"String":return e(n[t])?r?a(n[t],i):!1:n[t]===i;default:throw new TypeError("URI.hasQuery() accepts undefined, boolean, string, number, RegExp, Function as the value parameter");}};u.commonPath=function(n,t){for(var r=Math.min(n.length,t.length),i=0;i<r;i++)if(n.charAt(i)!==t.charAt(i)){i--;break}return i<1?n.charAt(0)===t.charAt(0)&&n.charAt(0)==="/"?"/":"":((n.charAt(i)!=="/"||t.charAt(i)!=="/")&&(i=n.substring(0,i).lastIndexOf("/")),n.substring(0,i+1))};u.withinString=function(n,t,i){var s,r,h,f,o,c;i||(i={});var e=i.start||u.findUri.start,l=i.end||u.findUri.end,a=i.trim||u.findUri.trim;for(e.lastIndex=0;;){if(s=e.exec(n),!s)break;(r=s.index,i.ignoreHtml&&(h=n.slice(Math.max(r-3,0),r),h&&/[a-z0-9-]=["']?$/i.test(h)))||(f=r+n.slice(r).search(l),o=n.slice(r,f).replace(a,""),i.ignore&&i.ignore.test(o))||(f=r+o.length,c=t(o,r,f,n),n=n.slice(0,r)+c+n.slice(f),e.lastIndex=r+c.length)}return e.lastIndex=0,n};u.ensureValidHostname=function(t){if(t.match(u.invalid_hostname_characters)){if(!n)throw new TypeError("Hostname '"+t+"' contains characters other than [A-Z0-9.-] and Punycode.js is not available");if(n.toASCII(t).match(u.invalid_hostname_characters))throw new TypeError("Hostname '"+t+"' contains characters other than [A-Z0-9.-]");}};u.noConflict=function(n){if(n){var i={URI:this.noConflict()};return URITemplate&&typeof URITemplate.noConflict=="function"&&(i.URITemplate=URITemplate.noConflict()),t&&typeof t.noConflict=="function"&&(i.IPv6=t.noConflict()),SecondLevelDomains&&typeof SecondLevelDomains.noConflict=="function"&&(i.SecondLevelDomains=SecondLevelDomains.noConflict()),i}return r.URI===this&&(r.URI=b),this};f.build=function(n){return n===!0?this._deferred_build=!0:(n===undefined||this._deferred_build)&&(this._string=u.build(this._parts),this._deferred_build=!1),this};f.clone=function(){return new u(this)};f.valueOf=f.toString=function(){return this.build(!1)._string};s={protocol:"protocol",username:"username",password:"password",hostname:"hostname",port:"port"};c=function(n){return function(t,i){return t===undefined?this._parts[n]||"":(this._parts[n]=t||null,this.build(!i),this)}};for(o in s)f[o]=c(s[o]);s={query:"?",fragment:"#"};c=function(n,t){return function(i,r){return i===undefined?this._parts[n]||"":(i!==null&&(i=i+"",i.charAt(0)===t&&(i=i.substring(1))),this._parts[n]=i,this.build(!r),this)}};for(o in s)f[o]=c(o,s[o]);s={search:["?","query"],hash:["#","fragment"]};c=function(n,t){return function(i,r){var u=this[n](i,r);return typeof u=="string"&&u.length?t+u:u}};for(o in s)f[o]=c(s[o][1],s[o][0]);f.pathname=function(n,t){if(n===undefined||n===!0){var i=this._parts.path||(this._parts.hostname?"/":"");return n?u.decodePath(i):i}return this._parts.path=n?u.recodePath(n):"/",this.build(!t),this};f.path=f.pathname;f.href=function(n,t){var i,r,f,o,e;if(n===undefined)return this.toString();if(this._string="",this._parts=u._parts(),r=n instanceof u,f=typeof n=="object"&&(n.hostname||n.path||n.pathname),n.nodeName&&(o=u.getDomAttribute(n),n=n[o]||"",f=!1),!r&&f&&n.pathname!==undefined&&(n=n.toString()),typeof n=="string")this._parts=u.parse(n,this._parts);else if(r||f){e=r?n._parts:n;for(i in e)h.call(this._parts,i)&&(this._parts[i]=e[i])}else throw new TypeError("invalid input");return this.build(!t),this};f.is=function(n){var r=!1,f=!1,e=!1,t=!1,s=!1,h=!1,c=!1,o=!this._parts.urn;this._parts.hostname&&(o=!1,f=u.ip4_expression.test(this._parts.hostname),e=u.ip6_expression.test(this._parts.hostname),r=f||e,t=!r,s=t&&i&&i.has(this._parts.hostname),h=t&&u.idn_expression.test(this._parts.hostname),c=t&&u.punycode_expression.test(this._parts.hostname));switch(n.toLowerCase()){case"relative":return o;case"absolute":return!o;case"domain":case"name":return t;case"sld":return s;case"ip":return r;case"ip4":case"ipv4":case"inet4":return f;case"ip6":case"ipv6":case"inet6":return e;case"idn":return h;case"url":return!this._parts.urn;case"urn":return!!this._parts.urn;case"punycode":return c}return null};var g=f.protocol,nt=f.port,tt=f.hostname;
761return f.protocol=function(n,t){if(n!==undefined&&n&&(n=n.replace(/:(\/\/)?$/,""),!n.match(u.protocol_expression)))throw new TypeError("Protocol '"+n+"' contains characters other than [A-Z0-9.+-] or doesn't start with [A-Z]");return g.call(this,n,t)},f.scheme=f.protocol,f.port=function(n,t){if(this._parts.urn)return n===undefined?"":this;if(n!==undefined&&(n===0&&(n=null),n&&(n+="",n.charAt(0)===":"&&(n=n.substring(1)),n.match(/[^0-9]/))))throw new TypeError("Port '"+n+"' contains characters other than [0-9]");return nt.call(this,n,t)},f.hostname=function(n,t){if(this._parts.urn)return n===undefined?"":this;if(n!==undefined){var i={};u.parseHost(n,i);n=i.hostname}return tt.call(this,n,t)},f.host=function(n,t){return this._parts.urn?n===undefined?"":this:n===undefined?this._parts.hostname?u.buildHost(this._parts):"":(u.parseHost(n,this._parts),this.build(!t),this)},f.authority=function(n,t){return this._parts.urn?n===undefined?"":this:n===undefined?this._parts.hostname?u.buildAuthority(this._parts):"":(u.parseAuthority(n,this._parts),this.build(!t),this)},f.userinfo=function(n,t){if(this._parts.urn)return n===undefined?"":this;if(n===undefined){if(!this._parts.username)return"";var i=u.buildUserinfo(this._parts);return i.substring(0,i.length-1)}return n[n.length-1]!=="@"&&(n+="@"),u.parseUserinfo(n,this._parts),this.build(!t),this},f.resource=function(n,t){var i;return n===undefined?this.path()+this.search()+this.hash():(i=u.parse(n),this._parts.path=i.path,this._parts.query=i.query,this._parts.fragment=i.fragment,this.build(!t),this)},f.subdomain=function(n,t){var i;if(this._parts.urn)return n===undefined?"":this;
761if(n===undefined)return!this._parts.hostname||this.is("IP")?"":(i=this._parts.hostname.length-this.domain().length-1,this._parts.hostname.substring(0,i)||"");var r=this._parts.hostname.length-this.domain().length,f=this._parts.hostname.substring(0,r),e=new RegExp("^"+l(f));return n&&n.charAt(n.length-1)!=="."&&(n+="."),n&&u.ensureValidHostname(n),this._parts.hostname=this._parts.hostname.replace(e,n),this.build(!t),this},f.domain=function(n,t){var r,i,f;if(this._parts.urn)return n===undefined?"":this;if(typeof n=="boolean"&&(t=n,n=undefined),n===undefined)return!this._parts.hostname||this.is("IP")?"":(r=this._parts.hostname.match(/\./g),r&&r.length<2)?this._parts.hostname:(i=this._parts.hostname.length-this.tld(t).length-1,i=this._parts.hostname.lastIndexOf(".",i-1)+1,this._parts.hostname.substring(i)||"");if(!n)throw new TypeError("cannot set domain empty");return u.ensureValidHostname(n),!this._parts.hostname||this.is("IP")?this._parts.hostname=n:(f=new RegExp(l(this.domain())+"$"),this._parts.hostname=this._parts.hostname.replace(f,n)),this.build(!t),this},f.tld=function(n,t){var f,r,u;if(this._parts.urn)return n===undefined?"":this;if(typeof n=="boolean"&&(t=n,n=undefined),n===undefined)return!this._parts.hostname||this.is("IP")?""
761:(f=this._parts.hostname.lastIndexOf("."),r=this._parts.hostname.substring(f+1),t!==!0&&i&&i.list[r.toLowerCase()])?i.get(this._parts.hostname)||r:r;if(n)if(n.match(/[^a-zA-Z0-9-]/))if(i&&i.is(n))u=new RegExp(l(this.tld())+"$"),this._parts.hostname=this._parts.hostname.replace(u,n);else throw new TypeError("TLD '"+n+"' contains characters other than [A-Z0-9]");else if(!this._parts.hostname||this.is("IP"))throw new ReferenceError("cannot set TLD on non-domain host");else u=new RegExp(l(this.tld())+"$"),this._parts.hostname=this._parts.hostname.replace(u,n);else throw new TypeError("cannot set TLD empty");return this.build(!t),this},f.directory=function(n,t){var r,i;if(this._parts.urn)return n===undefined?"":this;if(n===undefined||n===!0)return!this._parts.path&&!this._parts.hostname?"":this._parts.path==="/"?"/":(r=this._parts.path.length-this.filename().length-1,i=this._parts.path.substring(0,r)||(this._parts.hostname?"/":""),n?u.decodePath(i):i);var f=this._parts.path.length-this.filename().length,e=this._parts.path.substring(0,f),o=new RegExp("^"+l(e));return this.is("relative")||(n||(n="/"),n.charAt(0)!=="/"&&(n="/"+n)),n&&n.charAt(n.length-1)!=="/"&&(n+="/"),n=u.recodePath(n),this._parts.path=this._parts.path.replace(o,n),this.build(!t),this},f.filename=function(n,t){var f,i,r,e;return this._parts.urn?n===undefined?"":this:n===undefined||n===!0?!this._parts.path||this._parts.path==="/"?"":(f=this._parts.path.lastIndexOf("/"),i=this._parts.path.substring(f+1),n?u.decodePathSegment(i):i):(r=!1,n.charAt(0)==="/"&&(n=n.substring(1)),n.match(/\.?\//)&&(r=!0),e=new RegExp(l(this.filename())+"$"),n=u.recodePath(n),this._parts.path=this._parts.path.replace(e,n),r?this.normalizePath(t):this.build(!t),this)},f.suffix=function(n,t){var r,f,e,o,i,s;if(this._parts.urn)return n===undefined?"":this;if(n===undefined||n===!0)return!this._parts.path||this._parts.path==="/"?"":(r=this.filename(),f=r.lastIndexOf("."),f===-1)?"":(e=r.substring(f+1),o=/^[a-z0-9%]+$/i.test(e)?e:"",n?u.decodePathSegment(o):o);if(n.charAt(0)==="."&&(n=n.substring(1)),i=this.suffix(),i)s=n?new RegExp(l(i)+"$"):new RegExp(l("."+i)+"$");else{if(!n)return this;this._parts.path+="."+u.recodePath(n)}return s&&(n=u.recodePath(n),this._parts.path=this._parts.path.replace(s,n)),this.build(!t),this},f.segment=function(n,t,i){var f=this._parts.urn?":":"/",o=this.path(),s=o.substring(0,1)==="/",r=o.split(f),u,h;if(n!==undefined&&typeof n!="number"&&(i=t,t=n,n=undefined),n!==undefined&&typeof n!="number")throw new Error("Bad segment '"+n+"', must be 0-based integer");if(s&&r.shift(),n<0&&(n=Math.max(r.length+n,0)),t===undefined)return n===undefined?r:r[n];if(n===null||r[n]===undefined)if(e(t))for(r=[],u=0,h=t.length;u<h;u++)(t[u].length||r.length&&r[r.length-1].length)&&(r.length&&!r[r.length-1].length&&r.pop(),r.push(t[u]));else(t||typeof t=="string")&&(r[r.length-1]===""?r[r.length-1]=t:r.push(t));else t||typeof t=="string"&&t.length?r[n]=t:r.splice(n,1);return s&&r.unshift(""),this.path(r.join(f),i)},f.segmentCoded=function(n,t,i){var f,r,o;if(typeof n!="number"&&(i=t,t=n,n=undefined),t===undefined){if(f=this.segment(n,t,i),e(f))for(r=0,o=f.length;r<o;r++)f[r]=u.decode(f[r]);else f=f!==undefined?u.decode(f):undefined;return f}if(e(t))for(r=0,o=t.length;r<o;r++)t[r]=u.decode(t[r]);else t=typeof t=="string"?u.encode(t):t;return this.segment(n,t,i)},w=f.query,f.query=function(n,t){if(n===!0)return u.parseQuery(this._parts.query,this._parts.escapeQuerySpace);if(typeof n=="function"){var i=u.parseQuery(this._parts.query,this._parts.escapeQuerySpace),r=n.call(this,i);return this._parts.query=u.buildQuery(r||i,this._parts.duplicateQueryParameters,this._parts.escapeQuerySpace),this.build(!t),this}return n!==undefined&&typeof n!="string"?(this._parts.query=u.buildQuery(n,this._parts.duplicateQueryParameters,this._parts.escapeQuerySpace),this.build(!t),this):w.call(this,n,t)},f.setQuery=function(n,t,i){var f=u.parseQuery(this._parts.query,this._parts.escapeQuerySpace),r;if(typeof n=="object")for(r in n)h.call(n,r)&&(f[r]=n[r]);else if(typeof n=="string")f[n]=t!==undefined?t:null;else throw new TypeError("URI.addQuery() accepts an object, string as the name parameter");return this._parts.query=u.buildQuery(f,this._parts.duplicateQueryParameters,this._parts.escapeQuerySpace),typeof n!="str
761ing"&&(i=t),this.build(!i),this},f.addQuery=function(n,t,i){var r=u.parseQuery(this._parts.query,this._parts.escapeQuerySpace);return u.addQuery(r,n,t===undefined?null:t),this._parts.query=u.buildQuery(r,this._parts.duplicateQueryParameters,this._parts.escapeQuerySpace),typeof n!="string"&&(i=t),this.build(!i),this},f.removeQuery=function(n,t,i){var r=u.parseQuery(this._parts.query,this._parts.escapeQuerySpace);return u.removeQuery(r,n,t),this._parts.query=u.buildQuery(r,this._parts.duplicateQueryParameters,this._parts.escapeQuerySpace),typeof n!="string"&&(i=t),this.build(!i),this},f.hasQuery=function(n,t,i){var r=u.parseQuery(this._parts.query,this._parts.escapeQuerySpace);return u.hasQuery(r,n,t,i)},f.setSearch=f.setQuery,f.addSearch=f.addQuery,f.removeSearch=f.removeQuery,f.hasSearch=f.hasQuery,f.normalize=function(){return this._parts.urn?this.normalizeProtocol(!1).normalizeQuery(!1).normalizeFragment(!1).build():this.normalizeProtocol(!1).normalizeHostname(!1).normalizePort(!1).normalizePath(!1).normalizeQuery(!1).normalizeFragment(!1).build()},f.normalizeProtocol=function(n){return typeof this._parts.protocol=="string"&&(this._parts.protocol=this._parts.protocol.toLowerCase(),this.build(!n)),this},f.normalizeHostname=function(i){return this._parts.hostname&&(this.is("IDN")&&n?this._parts.hostname=n.toASCII(this._parts.hostname):this.is("IPv6")&&t&&(this._parts.hostname=t.best(this._parts.hostname)),this._parts.hostname=this._parts.hostname.toLowerCase(),this.build(!i)),this},f.normalizePort=function(n){return typeof this._parts.protocol=="string"&&this._parts.port===u.defaultPorts[this._parts.protocol]&&(this._parts.port=null,this.build(!n)),this},f.normalizePath=function(n){if(this._parts.urn||!this._parts.path||this._parts.path==="/")return this;var e,t=this._parts.path,r="",i,f;for(t.charAt(0)!=="/"&&(e=!0,t="/"+t),t=t.replace(/(\/(\.\/)+)|(\/\.$)/g,"/").replace(/\/{2,}/g,"/"),e&&(r=t.substring(1).match(/^(\.\.\/)+/)||"",r&&(r=r[0]));;){if(i=t.indexOf("/.."),i===-1)break;else if(i===0){t=t.substring(3);continue}f=t.substring(0,i).lastIndexOf("/");f===-1&&(f=i);t=t.substring(0,f)+t.substring(i+3)}return e&&this.is("relative")&&(t=r+t.substring(1)),t=u.recodePath(t),this._parts.path=t,this.build(!n),this},f.normalizePathname=f.normalizePath,f.normalizeQuery=function(n){return typeof this._parts.query=="string"&&(this._parts.query.length?this.query(u.parseQuery(this._parts.query,this._parts.escapeQuerySpace)):this._parts.query=null,this.build(!n)),this},f.normalizeFragment=function(n){return this._parts.fragment||(this._parts.fragment=null,this.build(!n)),this},f.normalizeSearch=f.normalizeQuery,f.normalizeHash=f.normalizeFragment,f.iso8859=function(){var n=u.encode,t=u.decode;return u.encode=escape,u.decode=decodeURIComponent,this.normalize(),u.encode=n,u.decode=t,this},f.unicode=function(){var n=u.encode,t=u.decode;return u.encode=y,u.decode=unescape,this.normalize(),u.encode=n,u.decode=t,this},f.readable=function(){var t=this.clone(),i,r,f;if(t.username("").password("").normalize(),i="",t._parts.protocol&&(i+=t._parts.protocol+"://"),t._parts.hostname&&(t.is("punycode")&&n?(i+=n.toUnicode(t._parts.hostname),t._parts.port&&(i+=":"+t._parts.port)):i+=t.host()),t._parts.hostname&&t._parts.path&&t._parts.path.charAt(0)!=="/"&&(i+="/"),i+=t.path(!0),t._parts.query){r="";for(var e=0,o=t._parts.query.split("&"),s=o.length;e<s;e++)f=(o[e]||"").split("="),r+="&"+u.decodeQuery(f[0],this._parts.escapeQuerySpace).replace(/&/g,"%26"),f[1]!==undefined&&(r+="="+u.decodeQuery(f[1],this._parts.escapeQuerySpace).replace(/&/g,"%26"));i+="?"+r.substring(1)}return i+u.decodeQuery(t.hash(),!0)},f.absoluteTo=function(n){var t=this.clone(),e=["protocol","username","password","hostname","port"],i,r,f;if(this._parts.urn)throw new Error("URNs do not have any generally defined hierarchical components");if(n instanceof u||(n=new u(n)),t._parts.protocol||(t._parts.protocol=n._parts.protocol),this._parts.hostname)return t;for(r=0;f=e[r];r++)t._parts[f]=n._parts[f];return t._parts.path?t._parts.path.substring(-2)===".."&&(t._parts.path+="/"):(t._parts.path=n._parts.path,t._parts.query||(t._parts.query=n._parts.query
761)),t.path().charAt(0)!=="/"&&(i=n.directory(),t._parts.path=(i?i+"/":"")+t._parts.path,t.normalizePath()),t.build(),t},f.relativeTo=function(n){var i=this.clone().normalize(),t,r,f,e,o,s;if(i._parts.urn)throw new Error("URNs do not have any generally defined hierarchical components");if(n=new u(n).normalize(),t=i._parts,r=n._parts,e=i.path(),o=n.path(),e.charAt(0)!=="/")throw new Error("URI is already relative");if(o.charAt(0)!=="/")throw new Error("Cannot calculate a URI relative to another relative URI");if((t.protocol===r.protocol&&(t.protocol=null),t.username!==r.username||t.password!==r.password)||t.protocol!==null||t.username!==null||t.password!==null)return i.build();if(t.hostname===r.hostname&&t.port===r.port)t.hostname=null,t.port=null;else return i.build();return e===o?(t.path="",i.build()):(f=u.commonPath(i.path(),n.path()),!f)?i.build():(s=r.path.substring(f.length).replace(/[^\/]*$/,"").replace(/.*?\//g,"../"),t.path=s+t.path.substring(f.length),i.build())},f.equals=function(n){var r=this.clone(),f=new u(n),i={},o={},l={},s,c,t;if(r.normalize(),f.normalize(),r.toString()===f.toString())return!0;if((s=r.query(),c=f.query(),r.query(""),f.query(""),r.toString()!==f.toString())||s.length!==c.length)return!1;i=u.parseQuery(s,this._parts.escapeQuerySpace);o=u.parseQuery(c,this._parts.escapeQuerySpace);for(t in i)if(h.call(i,t)){if(e(i[t])){if(!p(i[t],o[t]))return!1}else if(i[t]!==o[t])return!1;l[t]=!0}for(t in o)if(h.call(o,t)&&!l[t])return!1;return!0},f.duplicateQueryParameters=function(n){return this._parts.duplicateQueryParameters=!!n,this},f.escapeQuerySpace=function(n){return this._parts.escapeQuerySpace=!!n,this},u}); 762;;;
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.